New Case Study:See how Anthropic automated 95% of dependency reviews with Socket.Learn More
Socket
Sign inDemoInstall
Socket

@genialis/resolwe

Package Overview
Dependencies
Maintainers
4
Versions
86
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@genialis/resolwe - npm Package Compare versions

Comparing version 7.1.2 to 7.1.3

.vscode/settings.json

1

dist/api/auth.d.ts

@@ -24,2 +24,1 @@ import * as Rx from 'rx';

}
//# sourceMappingURL=auth.d.ts.map

@@ -18,2 +18,1 @@ import * as Rx from 'rx';

}
//# sourceMappingURL=base.d.ts.map

@@ -156,3 +156,3 @@ import * as Rx from 'rx';

*/
private _handleIsConnected;
private _handleIsConnected(isConnected);
/**

@@ -165,7 +165,7 @@ * Performs a request against the remote server. If the connection has not

*/
private _request;
private _request(request);
/**
* Processes any pending requests.
*/
private _processRequests;
private _processRequests();
/**

@@ -204,3 +204,3 @@ * @inheritdoc

*/
private _update;
private _update(method, path, data, parameters?);
/**

@@ -221,4 +221,3 @@ * @inheritdoc

*/
private _interceptErrors;
private _interceptErrors(url, xhr);
}
//# sourceMappingURL=connection.d.ts.map

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

//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9hcGkvY29ubmVjdGlvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUFBLDBCQUE0QjtBQUM1QiwrQkFBaUM7QUFDakMsdUJBQXlCO0FBQ3pCLHlCQUF1QjtBQUV2QixpREFBcUQ7QUFDckQsbUNBQWdFO0FBQ2hFLDZDQUErQztBQXNJL0M7O0dBRUc7QUFDSDtJQWFJOztPQUVHO0lBQ0g7UUFDSSxJQUFJLENBQUMsVUFBVSxHQUFHLE1BQU0sQ0FBQyxVQUFVLEVBQUUsQ0FBQztRQUN0QyxJQUFJLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQztRQUN4QixJQUFJLENBQUMsYUFBYSxHQUFHLEVBQUUsQ0FBQztRQUN4QixJQUFJLENBQUMsbUJBQW1CLEdBQUcsSUFBSSxFQUFFLENBQUMsT0FBTyxFQUFXLENBQUM7UUFDckQsSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLEVBQUUsQ0FBQyxPQUFPLEVBQVksQ0FBQztRQUMxQyxJQUFJLENBQUMscUJBQXFCLEdBQUcsSUFBSSxvQ0FBb0IsQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQzlFLENBQUM7SUFFRDs7T0FFRztJQUNJLG9DQUFTLEdBQWhCO1FBQ0ksT0FBTyxJQUFJLENBQUMsVUFBVSxDQUFDO0lBQzNCLENBQUM7SUFFRDs7T0FFRztJQUNJLHFDQUFVLEdBQWpCO1FBQ0ksT0FBTyxNQUFNLENBQUMsTUFBTSxDQUFDLFdBQVcsQ0FBQyxDQUFDO0lBQ3RDLENBQUM7SUFFRDs7T0FFRztJQUNJLGtDQUFPLEdBQWQsVUFBZSxPQUFlLEVBQUUsWUFBb0I7UUFBcEQsaUJBdUNDO1FBdENHLElBQUksSUFBSSxDQUFDLFdBQVcsRUFBRTtZQUNsQixPQUFPLENBQUMsSUFBSSxDQUFDLHlEQUF5RCxDQUFDLENBQUM7WUFDeEUsT0FBTztTQUNWO1FBRUQsSUFBSSxDQUFDLFFBQVEsR0FBRyxPQUFPLENBQUM7UUFDeEIsSUFBSSxDQUFDLGFBQWEsR0FBRyxZQUFZLENBQUM7UUFFbEMsSUFBSSxDQUFDLFdBQVcsR0FBRyxFQUFFLENBQUMsVUFBVSxDQUFDLE1BQU0sQ0FBQyxVQUFDLFFBQVE7WUFDN0MsSUFBTSxTQUFTLEdBQUcsQ0FBQyxDQUFDLFFBQVEsQ0FBQztnQkFDekIsS0FBSSxDQUFDLFVBQVUsR0FBRyxJQUFJLFNBQVMsQ0FBQyxLQUFJLENBQUMsYUFBYSxHQUFHLEtBQUksQ0FBQyxVQUFVLEdBQUcsc0JBQXNCLENBQUMsQ0FBQztnQkFFL0YsdUNBQXVDO2dCQUN2QyxLQUFJLENBQUMsVUFBVSxDQUFDLFNBQVMsR0FBRyxRQUFRLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztnQkFDM0QsMkVBQTJFO2dCQUMzRSxpRUFBaUU7Z0JBQ2pFLEtBQUksQ0FBQyxVQUFVLENBQUMsTUFBTSxHQUFHO29CQUNyQixLQUFJLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQztvQkFDeEIsS0FBSSxDQUFDLGtCQUFrQixDQUFDLElBQUksQ0FBQyxDQUFDO2dCQUNsQyxDQUFDLENBQUM7Z0JBQ0Ysd0ZBQXdGO2dCQUN4RixLQUFJLENBQUMsVUFBVSxDQUFDLE9BQU8sR0FBRyxVQUFDLEtBQUs7b0JBQzVCLElBQU0sS0FBSyxHQUFHLElBQUksdUJBQWMsQ0FBQyxxQkFBbUIsS0FBSyxDQUFDLElBQU0sRUFBRSxLQUFLLENBQUMsQ0FBQztvQkFDekUsS0FBSSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUM7b0JBQzNCLFNBQVMsRUFBRSxDQUFDO29CQUNaLEtBQUksQ0FBQyxrQkFBa0IsQ0FBQyxLQUFLLENBQUMsQ0FBQztnQkFDbkMsQ0FBQyxDQUFDO1lBQ04sQ0FBQyxFQUFFLElBQUksQ0FBQyxDQUFDO1lBRVQsU0FBUyxFQUFFLENBQUM7WUFFWixpRkFBaUY7WUFDakYsT0FBTyxDQUFDLENBQUMsSUFBSSxDQUFDO1FBQ2xCLENBQUMsQ0FBQyxDQUFDLE9BQU8sRUFBRSxDQUFDO1FBQ2IsSUFBSSxDQUFDLHFCQUFxQixHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsT0FBTyxFQUFFLENBQUM7UUFFeEQsbUNBQW1DO1FBQ25DLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLHFCQUFxQixDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLHFCQUFxQixDQUFDLENBQUMsQ0FBQztJQUNsRyxDQUFDO0lBRUQ7O09BRUc7SUFDSSxxQ0FBVSxHQUFqQjtRQUNJLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxPQUFPLEVBQUUsQ0FBQztJQUN6QyxDQUFDO0lBRUQ7O09BRUc7SUFDSSxzQ0FBVyxHQUFsQjtRQUNJLE9BQU8sSUFBSSxDQUFDLG1CQUFtQixDQUFDO0lBQ3BDLENBQUM7SUFFRDs7OztPQUlHO0lBQ0ssNkNBQWtCLEdBQTFCLFVBQTJCLFdBQW9CO1FBQzNDLElBQUksSUFBSSxDQUFDLFlBQVksS0FBSyxXQUFXLEVBQUU7WUFDbkMsSUFBSSxDQUFDLFlBQVksR0FBRyxXQUFXLENBQUM7WUFDaEMsSUFBSSxDQUFDLENBQUMsQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLG1CQUFtQixDQUFDLEVBQUU7Z0JBQzFDLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFDO2FBQ3REO1NBQ0o7SUFDTCxDQUFDO0lBRUQ7Ozs7OztPQU1HO0lBQ0ssbUNBQVEsR0FBaEIsVUFBaUIsT0FBK0I7UUFBaEQsaUJBY0M7UUFiRyxJQUFJLE9BQU8sR0FBRyxJQUFJLE9BQU8sQ0FBQyxVQUFDLE9BQU8sRUFBRSxNQUFNO1lBQ3RDLEtBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDO2dCQUNwQixPQUFPLEVBQUUsT0FBTztnQkFDaEIsT0FBTyxFQUFFLE9BQU87Z0JBQ2hCLE1BQU0sRUFBRSxNQUFNO2FBQ2pCLENBQUMsQ0FBQztZQUVILElBQUksS0FBSSxDQUFDLFVBQVUsSUFBSSxLQUFJLENBQUMsVUFBVSxDQUFDLFVBQVUsS0FBSyxTQUFTLENBQUMsSUFBSSxFQUFFO2dCQUNsRSxLQUFJLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQzthQUMzQjtRQUNMLENBQUMsQ0FBQyxDQUFDO1FBRUgsT0FBTyxPQUFPLENBQUM7SUFDbkIsQ0FBQztJQUVEOztPQUVHO0lBQ0ssMkNBQWdCLEdBQXhCO1FBQ0ksSUFBSSxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsTUFBTSxFQUFFO1lBQzVCLE9BQU87U0FDVjtRQUVELEtBQW9CLFVBQWtCLEVBQWxCLEtBQUEsSUFBSSxDQUFDLGFBQWEsRUFBbEIsY0FBa0IsRUFBbEIsSUFBa0IsRUFBRTtZQUFuQyxJQUFJLE9BQU8sU0FBQTtZQUNaLE9BQU8sQ0FBQyxPQUFPLEVBQUUsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUM7U0FDM0Q7UUFFRCxJQUFJLENBQUMsYUFBYSxHQUFHLEVBQUUsQ0FBQztJQUM1QixDQUFDO0lBRUQ7O09BRUc7SUFDSSw0Q0FBaUIsR0FBeEIsVUFBeUIsSUFBWSxFQUFFLGVBQW9CO1FBQ3ZELElBQU0sVUFBVSxHQUFHLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxlQUFlLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxHQUFHLE1BQU0sQ0FBQyxLQUFLLENBQUMsZUFBZSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztRQUMxRixPQUFPLElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxHQUFHLFVBQVUsQ0FBQztJQUM3QyxDQUFDO0lBRUQ7O09BRUc7SUFDSSw4QkFBRyxHQUFWLFVBQVcsSUFBWSxFQUFFLFVBQW1CO1FBQTVDLGlCQWlCQztRQWpCd0IsMkJBQUEsRUFBQSxlQUFtQjtRQUN4QyxJQUFNLEdBQUcsR0FBRyxJQUFJLENBQUMsaUJBQWlCLENBQUMsSUFBSSxFQUFFLFVBQVUsQ0FBQyxDQUFDO1FBRXJELE9BQU8sRUFBRSxDQUFDLFVBQVUsQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQztZQUMzQyxJQUFNLFNBQVMsR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDO2dCQUMxQixJQUFJLEVBQUUsS0FBSztnQkFDWCxHQUFHLEVBQUUsR0FBRztnQkFDUixXQUFXLEVBQUUsa0JBQWtCO2dCQUMvQixTQUFTLEVBQUU7b0JBQ1AsZUFBZSxFQUFFLElBQUk7aUJBQ3hCO2FBQ0osQ0FBQyxDQUFDO1lBRUgsS0FBSSxDQUFDLGdCQUFnQixDQUFDLEdBQUcsRUFBRSxTQUFTLENBQUMsQ0FBQztZQUV0QyxPQUFPLFNBQVMsQ0FBQztRQUNyQixDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ1IsQ0FBQztJQUVEOztPQUVHO0lBQ0ksK0JBQUksR0FBWCxVQUFZLElBQVksRUFBRSxJQUFRLEVBQUUsVUFBbUI7UUFBbkIsMkJBQUEsRUFBQSxlQUFtQjtRQUNuRCxPQUFPLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsVUFBVSxDQUFDLENBQUM7SUFDeEQsQ0FBQztJQUVEOztPQUVHO0lBQ0ksOEJBQUcsR0FBVixVQUFXLElBQVksRUFBRSxJQUFRLEVBQUUsVUFBbUI7UUFBbkIsMkJBQUEsRUFBQSxlQUFtQjtRQUNsRCxPQUFPLElBQUksQ0FBQyxPQUFPLENBQUMsS0FBSyxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsVUFBVSxDQUFDLENBQUM7SUFDdkQsQ0FBQztJQUVEOztPQUVHO0lBQ0ksZ0NBQUssR0FBWixVQUFhLElBQVksRUFBRSxJQUFRLEVBQUUsVUFBbUI7UUFBbkIsMkJBQUEsRUFBQSxlQUFtQjtRQUNwRCxPQUFPLElBQUksQ0FBQyxPQUFPLENBQUMsT0FBTyxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsVUFBVSxDQUFDLENBQUM7SUFDekQsQ0FBQztJQUVEOztPQUVHO0lBQ0ksaUNBQU0sR0FBYixVQUFjLElBQVksRUFBRSxJQUFRLEVBQUUsVUFBbUI7UUFBbkIsMkJBQUEsRUFBQSxlQUFtQjtRQUNyRCxPQUFPLElBQUksQ0FBQyxPQUFPLENBQUMsUUFBUSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsVUFBVSxDQUFDLENBQUM7SUFDMUQsQ0FBQztJQUVEOzs7Ozs7OztPQVFHO0lBQ0ssa0NBQU8sR0FBZixVQUFnQixNQUFjLEVBQUUsSUFBWSxFQUFFLElBQVEsRUFBRSxVQUFtQjtRQUEzRSxpQkFxQkM7UUFyQnVELDJCQUFBLEVBQUEsZUFBbUI7UUFDdkUsSUFBTSxHQUFHLEdBQUcsSUFBSSxDQUFDLGlCQUFpQixDQUFDLElBQUksRUFBRSxVQUFVLENBQUMsQ0FBQztRQUVyRCxPQUFPLEVBQUUsQ0FBQyxVQUFVLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUM7WUFDM0MsSUFBTSxTQUFTLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQztnQkFDMUIsSUFBSSxFQUFFLE1BQU07Z0JBQ1osR0FBRyxFQUFFLEdBQUc7Z0JBQ1IsSUFBSSxFQUFFLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDO2dCQUMxQixXQUFXLEVBQUUsa0JBQWtCO2dCQUMvQixTQUFTLEVBQUU7b0JBQ1AsZUFBZSxFQUFFLElBQUk7aUJBQ3hCO2dCQUNELFVBQVUsRUFBRSxVQUFDLEdBQUcsRUFBRSxRQUFRO29CQUN0QixHQUFHLENBQUMsZ0JBQWdCLENBQUMsYUFBYSxFQUFFLEtBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQyxDQUFDO2dCQUMzRCxDQUFDO2FBQ0osQ0FBQyxDQUFDO1lBRUgsS0FBSSxDQUFDLGdCQUFnQixDQUFDLEdBQUcsRUFBRSxTQUFTLENBQUMsQ0FBQztZQUV0QyxPQUFPLFNBQVMsQ0FBQztRQUNyQixDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ1IsQ0FBQztJQUVEOztPQUVHO0lBQ0ksbUNBQVEsR0FBZjtRQUNJLE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQyxHQUFHLENBQ3ZCLFVBQUMsS0FBSztZQUNGLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDbEMsQ0FBQyxDQUNKLENBQUMsTUFBTSxDQUNKLFVBQUMsSUFBSSxJQUFLLE9BQUEsSUFBSSxDQUFDLEdBQUcsRUFBUixDQUFRLENBQ3JCLENBQUMsR0FBRyxDQUNELFVBQUMsSUFBSTtZQUNELE9BQU87Z0JBQ0gsR0FBRyxFQUFFLElBQUksQ0FBQyxHQUFHO2dCQUNiLFFBQVEsRUFBRSxJQUFJLENBQUMsUUFBUTtnQkFDdkIsV0FBVyxFQUFFLElBQUksQ0FBQyxXQUFXO2dCQUM3QixLQUFLLEVBQUUsSUFBSSxDQUFDLEtBQUs7Z0JBQ2pCLElBQUksRUFBRSxJQUFJLENBQUMsSUFBSTthQUNsQixDQUFDO1FBQ04sQ0FBQyxDQUNKLENBQUM7SUFDTixDQUFDO0lBRUQ7O09BRUc7SUFDSSxpQ0FBTSxHQUFiO1FBQ0ksT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDO0lBQ3hCLENBQUM7SUFFRDs7T0FFRztJQUNJLCtDQUFvQixHQUEzQjtRQUNJLE9BQU8sSUFBSSxDQUFDLHFCQUFxQixDQUFDO0lBQ3RDLENBQUM7SUFFRDs7T0FFRztJQUNLLDJDQUFnQixHQUF4QixVQUF5QixHQUFXLEVBQUUsR0FBYztRQUFwRCxpQkFjQztRQWJHLEdBQUcsQ0FBQyxJQUFJLENBQUMsVUFBQyxRQUFZO1lBQ2xCLElBQUksQ0FBQyxDQUFDLEdBQUcsQ0FBQyxRQUFRLEVBQUUsT0FBTyxDQUFDLEVBQUU7Z0JBQzFCLElBQU0sS0FBSyxHQUFHLElBQUkscUJBQVksQ0FBQyxHQUFHLEVBQVcsUUFBUSxDQUFDLE9BQU8sQ0FBQyxFQUFFLFFBQVEsQ0FBQyxDQUFDO2dCQUMxRSxLQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQzthQUM5QjtRQUNMLENBQUMsQ0FBQyxDQUFDO1FBRUgsR0FBRyxDQUFDLElBQUksQ0FBQyxVQUFDLEtBQWdCLEVBQUUsVUFBa0IsRUFBRSxXQUFtQjtZQUMvRCxJQUFJLEdBQUcsSUFBSSxLQUFLLENBQUMsTUFBTSxJQUFJLEtBQUssQ0FBQyxNQUFNLEdBQUcsR0FBRyxFQUFFO2dCQUMzQyxJQUFNLEtBQUssR0FBRyxJQUFJLHFCQUFZLENBQUMsR0FBRyxFQUFFLFdBQVcsRUFBRSxLQUFLLENBQUMsQ0FBQztnQkFDeEQsS0FBSSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUM7YUFDOUI7UUFDTCxDQUFDLENBQUMsQ0FBQztJQUNQLENBQUM7SUFDTCx1QkFBQztBQUFELENBdFNBLEFBc1NDLElBQUE7QUF0U1ksNENBQWdCIiwiZmlsZSI6ImFwaS9jb25uZWN0aW9uLmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgXyBmcm9tICdsb2Rhc2gnO1xuaW1wb3J0ICogYXMgalF1ZXJ5IGZyb20gJ2pxdWVyeSc7XG5pbXBvcnQgKiBhcyBSeCBmcm9tICdyeCc7XG5pbXBvcnQgJ2pxdWVyeS5jb29raWUnO1xuXG5pbXBvcnQge1F1ZXJ5T2JzZXJ2ZXJNYW5hZ2VyfSBmcm9tICcuL3F1ZXJ5b2JzZXJ2ZXInO1xuaW1wb3J0IHtBUElFcnJvciwgUmVxdWVzdEVycm9yLCBXZWJzb2NrZXRFcnJvcn0gZnJvbSAnLi9lcnJvcnMnO1xuaW1wb3J0ICogYXMgcmFuZG9tIGZyb20gJy4uL2NvcmUvdXRpbHMvcmFuZG9tJztcblxuLyoqXG4gKiBNZXNzYWdlIGV4Y2hhbmdlZCB2aWEgV2ViU29ja2V0LlxuICovXG5leHBvcnQgaW50ZXJmYWNlIE1lc3NhZ2Uge1xuICAgIG1zZzogc3RyaW5nO1xuICAgIG9ic2VydmVyOiBzdHJpbmc7XG4gICAgcHJpbWFyeV9rZXk6IHN0cmluZztcbiAgICBvcmRlcjogbnVtYmVyO1xuICAgIGl0ZW06IHt9O1xufVxuXG4vKipcbiAqIFJlc3BvbnNlIHRvIFJFU1QgQVBJIG9ic2VydmUgcmVxdWVzdHMuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUXVlcnlPYnNlcnZlclJlc3BvbnNlIHtcbiAgICBvYnNlcnZlcjogc3RyaW5nO1xuICAgIGl0ZW1zOiBhbnlbXTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBDb25uZWN0aW9uIHtcbiAgICAvKipcbiAgICAgKiBFc3RhYmxpc2hlcyBhIGNvbm5lY3Rpb24gd2l0aCB0aGUgZ2VuZXNpcyBwbGF0Zm9ybSBzZXJ2ZXIuXG4gICAgICpcbiAgICAgKiBAcGFyYW0gdXJpIEdlbmVzaXMgcGxhdGZvcm0gc2VydmVyIFVSSVxuICAgICAqL1xuICAgIGNvbm5lY3QocmVzdFVyaTogc3RyaW5nLCB3ZWJzb2NrZXRVcmk6IHN0cmluZyk7XG5cbiAgICAvKipcbiAgICAgKiBDbG9zZXMgdGhlIGNvbm5lY3Rpb24uXG4gICAgICovXG4gICAgZGlzY29ubmVjdCgpO1xuXG4gICAgLyoqXG4gICAgICogUmV0dXJucyBhbiBvYnNlcnZhYmxlIHRoYXQgZW1pdHMgd2hldGhlciB3ZWJzb2NrZXQgY29ubmVjdGlvbiBpcyBlc3RhYmxpc2hlZCBvciBub3QuXG4gICAgICpcbiAgICAgKiBAcmV0dXJuIEFuIG9ic2VydmFibGUgdGhhdCBlbWl0cyB0cnVlL2ZhbHNlXG4gICAgICovXG4gICAgaXNDb25uZWN0ZWQoKTogUnguT2JzZXJ2YWJsZTxib29sZWFuPjtcblxuICAgIC8qKlxuICAgICAqIFBlcmZvcm1zIGEgUkVTVCBBUEkgR0VUIHJlcXVlc3QgYWdhaW5zdCB0aGUgZ2VuZXNpcyBwbGF0Zm9ybSBiYWNrZW5kLlxuICAgICAqXG4gICAgICogQHBhcmFtIHBhdGggUmVxdWVzdCBwYXRoXG4gICAgICogQHBhcmFtIHBhcmFtZXRlcnMgUmVxdWVzdCBwYXJhbWV0ZXJzXG4gICAgICogQHJldHVybiBBbiBvYnNlcnZhYmxlIHRoYXQgZW1pdHMgdGhlIHJlc3BvbnNlXG4gICAgICovXG4gICAgZ2V0PFQ+KHBhdGg6IHN0cmluZywgcGFyYW1ldGVycz86IHt9KTogUnguT2JzZXJ2YWJsZTxUPjtcblxuICAgIC8qKlxuICAgICAqIFBlcmZvcm1zIGEgUkVTVCBBUEkgUE9TVCByZXF1ZXN0IGFnYWluc3QgdGhlIGdlbmVzaXMgcGxhdGZvcm0gYmFja2VuZC5cbiAgICAgKlxuICAgICAqIEBwYXJhbSBwYXRoIFJlcXVlc3QgcGF0aFxuICAgICAqIEBwYXJhbSBkYXRhIFJlcXVlc3QgYm9keVxuICAgICAqIEBwYXJhbSBwYXJhbWV0ZXJzIFJlcXVlc3QgcGFyYW1ldGVyc1xuICAgICAqIEByZXR1cm4gQW4gb2JzZXJ2YWJsZSB0aGF0IGVtaXRzIHRoZSByZXNwb25zZVxuICAgICAqL1xuICAgIHBvc3Q8VD4ocGF0aDogc3RyaW5nLCBkYXRhOiB7fSwgcGFyYW1ldGVycz86IHt9KTogUnguT2JzZXJ2YWJsZTxUPjtcblxuICAgIC8qKlxuICAgICAqIFBlcmZvcm1zIGEgUkVTVCBBUEkgUFVUIHJlcXVlc3QgYWdhaW5zdCB0aGUgZ2VuZXNpcyBwbGF0Zm9ybSBiYWNrZW5kLlxuICAgICAqXG4gICAgICogQHBhcmFtIHBhdGggUmVxdWVzdCBwYXRoXG4gICAgICogQHBhcmFtIGRhdGEgUmVxdWVzdCBib2R5XG4gICAgICogQHBhcmFtIHBhcmFtZXRlcnMgUmVxdWVzdCBwYXJhbWV0ZXJzXG4gICAgICogQHJldHVybiBBbiBvYnNlcnZhYmxlIHRoYXQgZW1pdHMgdGhlIHJlc3BvbnNlXG4gICAgICovXG4gICAgcHV0PFQ+KHBhdGg6IHN0cmluZywgZGF0YToge30sIHBhcmFtZXRlcnM/OiB7fSk6IFJ4Lk9ic2VydmFibGU8VD47XG5cbiAgICAvKipcbiAgICAgKiBQZXJmb3JtcyBhIFJFU1QgQVBJIFBBVENIIHJlcXVlc3QgYWdhaW5zdCB0aGUgZ2VuZXNpcyBwbGF0Zm9ybSBiYWNrZW5kLlxuICAgICAqXG4gICAgICogQHBhcmFtIHBhdGggUmVxdWVzdCBwYXRoXG4gICAgICogQHBhcmFtIGRhdGEgUmVxdWVzdCBib2R5XG4gICAgICogQHBhcmFtIHBhcmFtZXRlcnMgUmVxdWVzdCBwYXJhbWV0ZXJzXG4gICAgICogQHJldHVybiBBbiBvYnNlcnZhYmxlIHRoYXQgZW1pdHMgdGhlIHJlc3BvbnNlXG4gICAgICovXG4gICAgcGF0Y2g8VD4ocGF0aDogc3RyaW5nLCBkYXRhOiB7fSwgcGFyYW1ldGVycz86IHt9KTogUnguT2JzZXJ2YWJsZTxUPjtcblxuICAgIC8qKlxuICAgICAqIFBlcmZvcm1zIGEgUkVTVCBBUEkgREVMRVRFIHJlcXVlc3QgYWdhaW5zdCB0aGUgZ2VuZXNpcyBwbGF0Zm9ybSBiYWNrZW5kLlxuICAgICAqXG4gICAgICogQHBhcmFtIHBhdGggUmVxdWVzdCBwYXRoXG4gICAgICogQHBhcmFtIGRhdGEgUmVxdWVzdCBib2R5XG4gICAgICogQHBhcmFtIHBhcmFtZXRlcnMgUmVxdWVzdCBwYXJhbWV0ZXJzXG4gICAgICogQHJldHVybiBBbiBvYnNlcnZhYmxlIHRoYXQgZW1pdHMgdGhlIHJlc3BvbnNlXG4gICAgICovXG4gICAgZGVsZXRlPFQ+KHBhdGg6IHN0cmluZywgZGF0YToge30sIHBhcmFtZXRlcnM/OiB7fSk6IFJ4Lk9ic2VydmFibGU8VD47XG5cbiAgICAvKipcbiAgICAgKiBSZXR1cm5zIGFuIGFic29sdXRlIEFQSSBVUkkgZm9yIGEgc3BlY2lmaWMgcmVzb3VyY2UgcGF0aC5cbiAgICAgKlxuICAgICAqIEBwYXJhbSBwYXRoIEFQSSByZXNvdXJjZSBwYXRoXG4gICAgICogQHBhcmFtIHF1ZXJ5UGFyYW1ldGVycyBRdWVyeSBwYXJhbWV0ZXJzXG4gICAgICogQHJldHVybiBBYnNvbHV0ZSBVUklcbiAgICAgKi9cbiAgICBjcmVhdGVVcmlGcm9tUGF0aChwYXRoOiBzdHJpbmcsIHF1ZXJ5UGFyYW1ldGVycz86IHt9KTogc3RyaW5nO1xuXG4gICAgLyoqXG4gICAgICogUmV0dXJucyB0aGUgQ1NSRiBjb29raWUgdmFsdWUgdGhhdCBtdXN0IGJlIHVzZWQgd2hlbiBkb2luZyBQT1NUIHJlcXVlc3RzLlxuICAgICAqL1xuICAgIGNzcmZDb29raWUoKTogc3RyaW5nO1xuXG4gICAgLyoqXG4gICAgICogQSBzdHJlYW0gb2YgaW5jb21pbmcgV2ViU29ja2V0IG1lc3NhZ2VzLlxuICAgICAqL1xuICAgIG1lc3NhZ2VzKCk6IFJ4Lk9ic2VydmFibGU8TWVzc2FnZT47XG5cbiAgICAvKipcbiAgICAgKiBBIHN0cmVhbSBvZiBlcnJvciBtZXNzYWdlcy5cbiAgICAgKi9cbiAgICBlcnJvcnMoKTogUnguT2JzZXJ2YWJsZTxBUElFcnJvcj47XG5cbiAgICAvKipcbiAgICAgKiBSZXR1cm5zIHRoZSBjdXJyZW50IHVuaXF1ZSBzZXNzaW9uIGlkZW50aWZpZXIuXG4gICAgICovXG4gICAgc2Vzc2lvbklkKCk6IHN0cmluZztcblxuICAgIC8qKlxuICAgICAqIFJldHVybnMgdGhlIFF1ZXJ5T2JzZXJ2ZXJNYW5hZ2VyIGluc3RhbmNlIGFzc29jaWF0ZWQgd2l0aCB0aGlzIGNvbm5lY3Rpb24uXG4gICAgICovXG4gICAgcXVlcnlPYnNlcnZlck1hbmFnZXIoKTogUXVlcnlPYnNlcnZlck1hbmFnZXI7XG59XG5cbi8qKlxuICogQSBwZW5kaW5nIHJlcXVlc3QgdGhhdCBzaG91bGQgYmUgZXhlY3V0ZWQgb25jZSB0aGUgY29ubmVjdGlvbiBpcyBpbiBhIHByb3BlciBzdGF0ZS5cbiAqL1xuaW50ZXJmYWNlIFBlbmRpbmdSZXF1ZXN0IHtcbiAgICByZXF1ZXN0OiAoKSA9PiBSeC5JUHJvbWlzZTxhbnk+O1xuICAgIHJlc29sdmU6ICh2YWx1ZTogYW55KSA9PiB2b2lkO1xuICAgIHJlamVjdDogKHJlYXNvbjogYW55KSA9PiB2b2lkO1xufVxuXG4vKipcbiAqIEFuIGNvbmNyZXRlIGltcGxlbWVudGF0aW9uIG9mIGEgY29ubmVjdGlvbi5cbiAqL1xuZXhwb3J0IGNsYXNzIFNpbXBsZUNvbm5lY3Rpb24gaW1wbGVtZW50cyBDb25uZWN0aW9uIHtcbiAgICBwcml2YXRlIF9yZXN0VXJpOiBzdHJpbmc7XG4gICAgcHJpdmF0ZSBfd2Vic29ja2V0VXJpOiBzdHJpbmc7XG4gICAgcHJpdmF0ZSBfc2Vzc2lvbklkOiBzdHJpbmc7XG4gICAgcHJpdmF0ZSBfd2Vic29ja2V0OiBXZWJTb2NrZXQ7XG4gICAgcHJpdmF0ZSBfb2JzZXJ2YWJsZTogUnguQ29ubmVjdGFibGVPYnNlcnZhYmxlPGFueT47XG4gICAgcHJpdmF0ZSBfZGlzcG9zYWJsZUNvbm5lY3Rpb246IFJ4LkRpc3Bvc2FibGU7XG4gICAgcHJpdmF0ZSBfcXVlcnlPYnNlcnZlck1hbmFnZXI6IFF1ZXJ5T2JzZXJ2ZXJNYW5hZ2VyO1xuICAgIHByaXZhdGUgX3JlcXVlc3RRdWV1ZTogUGVuZGluZ1JlcXVlc3RbXTtcbiAgICBwcml2YXRlIF9pc0Nvbm5lY3RlZDogYm9vbGVhbjtcbiAgICBwcml2YXRlIF9pc0Nvbm5lY3RlZFN1YmplY3Q6IFJ4LlN1YmplY3Q8Ym9vbGVhbj47XG4gICAgcHJpdmF0ZSBfZXJyb3JzOiBSeC5TdWJqZWN0PEFQSUVycm9yPjtcblxuICAgIC8qKlxuICAgICAqIENvbnN0cnVjdHMgYSBuZXcgY29ubmVjdGlvbi5cbiAgICAgKi9cbiAgICBjb25zdHJ1Y3RvcigpIHtcbiAgICAgICAgdGhpcy5fc2Vzc2lvbklkID0gcmFuZG9tLnJhbmRvbVV1aWQoKTtcbiAgICAgICAgdGhpcy5fb2JzZXJ2YWJsZSA9IG51bGw7XG4gICAgICAgIHRoaXMuX3JlcXVlc3RRdWV1ZSA9IFtdO1xuICAgICAgICB0aGlzLl9pc0Nvbm5lY3RlZFN1YmplY3QgPSBuZXcgUnguU3ViamVjdDxib29sZWFuPigpO1xuICAgICAgICB0aGlzLl9lcnJvcnMgPSBuZXcgUnguU3ViamVjdDxBUElFcnJvcj4oKTtcbiAgICAgICAgdGhpcy5fcXVlcnlPYnNlcnZlck1hbmFnZXIgPSBuZXcgUXVlcnlPYnNlcnZlck1hbmFnZXIodGhpcywgdGhpcy5fZXJyb3JzKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBAaW5oZXJpdGRvY1xuICAgICAqL1xuICAgIHB1YmxpYyBzZXNzaW9uSWQoKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3Nlc3Npb25JZDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBAaW5oZXJpdGRvY1xuICAgICAqL1xuICAgIHB1YmxpYyBjc3JmQ29va2llKCk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiBqUXVlcnkuY29va2llKCdjc3JmdG9rZW4nKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBAaW5oZXJpdGRvY1xuICAgICAqL1xuICAgIHB1YmxpYyBjb25uZWN0KHJlc3RVcmk6IHN0cmluZywgd2Vic29ja2V0VXJpOiBzdHJpbmcpIHtcbiAgICAgICAgaWYgKHRoaXMuX29ic2VydmFibGUpIHtcbiAgICAgICAgICAgIGNvbnNvbGUud2FybihcIkF0dGVtcHRlZCB0byBjb25uZWN0IGFuIGFscmVhZHkgaW5pdGlhbGl6ZWQgY29ubmVjdGlvbi5cIik7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLl9yZXN0VXJpID0gcmVzdFVyaTtcbiAgICAgICAgdGhpcy5fd2Vic29ja2V0VXJpID0gd2Vic29ja2V0VXJpO1xuXG4gICAgICAgIHRoaXMuX29ic2VydmFibGUgPSBSeC5PYnNlcnZhYmxlLmNyZWF0ZSgob2JzZXJ2ZXIpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IHJlY29ubmVjdCA9IF8udGhyb3R0bGUoKCkgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMuX3dlYnNvY2tldCA9IG5ldyBXZWJTb2NrZXQodGhpcy5fd2Vic29ja2V0VXJpICsgdGhpcy5fc2Vzc2lvbklkICsgJz9zdWJzY3JpYmUtYnJvYWRjYXN0Jyk7XG5cbiAgICAgICAgICAgICAgICAvLyBSZWdpc3RlciBtZXNzYWdlIGFuZCBlcnJvciBoYW5kbGVycy5cbiAgICAgICAgICAgICAgICB0aGlzLl93ZWJzb2NrZXQub25tZXNzYWdlID0gb2JzZXJ2ZXIub25OZXh0LmJpbmQob2JzZXJ2ZXIpO1xuICAgICAgICAgICAgICAgIC8vIERvbid0IGhhbmRsZSBgb25lcnJvcmAgYmVjYXVzZSBpdCBkb2Vzbid0IHByb3ZpZGUgYW55IHVzZWZ1bCBpbmZvcm1hdGlvblxuICAgICAgICAgICAgICAgIC8vIGh0dHBzOi8vd3d3LnczLm9yZy9UUi93ZWJzb2NrZXRzLyNjb25jZXB0LXdlYnNvY2tldC1jbG9zZS1mYWlsXG4gICAgICAgICAgICAgICAgdGhpcy5fd2Vic29ja2V0Lm9ub3BlbiA9ICgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5fcHJvY2Vzc1JlcXVlc3RzKCk7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX2hhbmRsZUlzQ29ubmVjdGVkKHRydWUpO1xuICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICAgICAgLy8gUmVnaXN0ZXIgcmVjb25uZWN0aW9uIGhhbmRsZXIuIFdlIHJlY29ubmVjdCBpbW1lZGlhdGVseSBhZnRlciB0aGUgc29ja2V0IGdldHMgY2xvc2VkLlxuICAgICAgICAgICAgICAgIHRoaXMuX3dlYnNvY2tldC5vbmNsb3NlID0gKGV2ZW50KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGVycm9yID0gbmV3IFdlYnNvY2tldEVycm9yKGBXZWJzb2NrZXQgZXJyb3IgJHtldmVudC5jb2RlfWAsIGV2ZW50KTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5fZXJyb3JzLm9uTmV4dChlcnJvcik7XG4gICAgICAgICAgICAgICAgICAgIHJlY29ubmVjdCgpO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLl9oYW5kbGVJc0Nvbm5lY3RlZChmYWxzZSk7XG4gICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIH0sIDUwMDApO1xuXG4gICAgICAgICAgICByZWNvbm5lY3QoKTtcblxuICAgICAgICAgICAgLy8gVGhlcmUgaXMgbm8gd2F5IHRvIHVuc3Vic2NyaWJlIGFzIHdlIGFsd2F5cyB3YW50IHRvIGhhdmUgdGhlIHNvY2tldCBjb25uZWN0ZWQuXG4gICAgICAgICAgICByZXR1cm4gXy5ub29wO1xuICAgICAgICB9KS5wdWJsaXNoKCk7XG4gICAgICAgIHRoaXMuX2Rpc3Bvc2FibGVDb25uZWN0aW9uID0gdGhpcy5fb2JzZXJ2YWJsZS5jb25uZWN0KCk7XG5cbiAgICAgICAgLy8gU3Vic2NyaWJlIHRvIGl0ZW0gY2FjaGUgdXBkYXRlcy5cbiAgICAgICAgdGhpcy5tZXNzYWdlcygpLnN1YnNjcmliZSh0aGlzLl9xdWVyeU9ic2VydmVyTWFuYWdlci51cGRhdGUuYmluZCh0aGlzLl9xdWVyeU9ic2VydmVyTWFuYWdlcikpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEBpbmhlcml0ZG9jXG4gICAgICovXG4gICAgcHVibGljIGRpc2Nvbm5lY3QoKSB7XG4gICAgICAgIHRoaXMuX2Rpc3Bvc2FibGVDb25uZWN0aW9uLmRpc3Bvc2UoKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBAaW5oZXJpdGRvY1xuICAgICAqL1xuICAgIHB1YmxpYyBpc0Nvbm5lY3RlZCgpOiBSeC5PYnNlcnZhYmxlPGJvb2xlYW4+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2lzQ29ubmVjdGVkU3ViamVjdDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBOb3RpZmllcyBpc0Nvbm5lY3RlZCBvYnNlcnZlcnMuXG4gICAgICpcbiAgICAgKiBAcGFyYW0gaXNDb25uZWN0ZWQgVHJ1ZSBpZiBjb25uZWN0aW9uIGVzdGFibGlzaGVkXG4gICAgICovXG4gICAgcHJpdmF0ZSBfaGFuZGxlSXNDb25uZWN0ZWQoaXNDb25uZWN0ZWQ6IGJvb2xlYW4pOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMuX2lzQ29ubmVjdGVkICE9PSBpc0Nvbm5lY3RlZCkge1xuICAgICAgICAgICAgdGhpcy5faXNDb25uZWN0ZWQgPSBpc0Nvbm5lY3RlZDtcbiAgICAgICAgICAgIGlmICghXy5pc1VuZGVmaW5lZCh0aGlzLl9pc0Nvbm5lY3RlZFN1YmplY3QpKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5faXNDb25uZWN0ZWRTdWJqZWN0Lm9uTmV4dCh0aGlzLl9pc0Nvbm5lY3RlZCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBQZXJmb3JtcyBhIHJlcXVlc3QgYWdhaW5zdCB0aGUgcmVtb3RlIHNlcnZlci4gSWYgdGhlIGNvbm5lY3Rpb24gaGFzIG5vdFxuICAgICAqIHlldCBiZWVuIGVzdGFibGlzaGVkLCB0aGUgcmVxdWVzdCBpcyBxdWV1ZWQuXG4gICAgICpcbiAgICAgKiBAcGFyYW0gcmVxdWVzdCBBbnkgZnVuY3Rpb24sIHdoaWNoIHJldHVybnMgYSBwcm9taXNlXG4gICAgICogQHJldHVybiBBIHByb21pc2UsIHdoaWNoIGlzIGZ1bGZpbGxlZCB3aGVuIHRoZSBpbml0aWFsIHByb21pc2UgaXNcbiAgICAgKi9cbiAgICBwcml2YXRlIF9yZXF1ZXN0KHJlcXVlc3Q6ICgpID0+IFJ4LklQcm9taXNlPGFueT4pOiBSeC5JUHJvbWlzZTxhbnk+IHtcbiAgICAgICAgbGV0IHByb21pc2UgPSBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XG4gICAgICAgICAgICB0aGlzLl9yZXF1ZXN0UXVldWUucHVzaCh7XG4gICAgICAgICAgICAgICAgcmVxdWVzdDogcmVxdWVzdCxcbiAgICAgICAgICAgICAgICByZXNvbHZlOiByZXNvbHZlLFxuICAgICAgICAgICAgICAgIHJlamVjdDogcmVqZWN0LFxuICAgICAgICAgICAgfSk7XG5cbiAgICAgICAgICAgIGlmICh0aGlzLl93ZWJzb2NrZXQgJiYgdGhpcy5fd2Vic29ja2V0LnJlYWR5U3RhdGUgPT09IFdlYlNvY2tldC5PUEVOKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5fcHJvY2Vzc1JlcXVlc3RzKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuXG4gICAgICAgIHJldHVybiBwcm9taXNlO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFByb2Nlc3NlcyBhbnkgcGVuZGluZyByZXF1ZXN0cy5cbiAgICAgKi9cbiAgICBwcml2YXRlIF9wcm9jZXNzUmVxdWVzdHMoKSB7XG4gICAgICAgIGlmICghdGhpcy5fcmVxdWVzdFF1ZXVlLmxlbmd0aCkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgZm9yIChsZXQgcmVxdWVzdCBvZiB0aGlzLl9yZXF1ZXN0UXVldWUpIHtcbiAgICAgICAgICAgIHJlcXVlc3QucmVxdWVzdCgpLnRoZW4ocmVxdWVzdC5yZXNvbHZlLCByZXF1ZXN0LnJlamVjdCk7XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLl9yZXF1ZXN0UXVldWUgPSBbXTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBAaW5oZXJpdGRvY1xuICAgICAqL1xuICAgIHB1YmxpYyBjcmVhdGVVcmlGcm9tUGF0aChwYXRoOiBzdHJpbmcsIHF1ZXJ5UGFyYW1ldGVycz86IHt9KTogc3RyaW5nIHtcbiAgICAgICAgY29uc3QgcGFyYW1ldGVycyA9ICFfLmlzRW1wdHkocXVlcnlQYXJhbWV0ZXJzKSA/ICc/JyArIGpRdWVyeS5wYXJhbShxdWVyeVBhcmFtZXRlcnMpIDogJyc7XG4gICAgICAgIHJldHVybiB0aGlzLl9yZXN0VXJpICsgcGF0aCArIHBhcmFtZXRlcnM7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQGluaGVyaXRkb2NcbiAgICAgKi9cbiAgICBwdWJsaWMgZ2V0KHBhdGg6IHN0cmluZywgcGFyYW1ldGVyczoge30gPSB7fSk6IFJ4Lk9ic2VydmFibGU8YW55PiB7XG4gICAgICAgIGNvbnN0IHVybCA9IHRoaXMuY3JlYXRlVXJpRnJvbVBhdGgocGF0aCwgcGFyYW1ldGVycyk7XG5cbiAgICAgICAgcmV0dXJuIFJ4Lk9ic2VydmFibGUuZnJvbVByb21pc2UodGhpcy5fcmVxdWVzdCgoKTogUnguSVByb21pc2U8YW55PiA9PiB7XG4gICAgICAgICAgICBjb25zdCBqUXVlcnlYSFIgPSBqUXVlcnkuYWpheCh7XG4gICAgICAgICAgICAgICAgdHlwZTogJ2dldCcsXG4gICAgICAgICAgICAgICAgdXJsOiB1cmwsXG4gICAgICAgICAgICAgICAgY29udGVudFR5cGU6ICdhcHBsaWNhdGlvbi9qc29uJyxcbiAgICAgICAgICAgICAgICB4aHJGaWVsZHM6IHtcbiAgICAgICAgICAgICAgICAgICAgd2l0aENyZWRlbnRpYWxzOiB0cnVlLFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB9KTtcblxuICAgICAgICAgICAgdGhpcy5faW50ZXJjZXB0RXJyb3JzKHVybCwgalF1ZXJ5WEhSKTtcblxuICAgICAgICAgICAgcmV0dXJuIGpRdWVyeVhIUjtcbiAgICAgICAgfSkpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEBpbmhlcml0ZG9jXG4gICAgICovXG4gICAgcHVibGljIHBvc3QocGF0aDogc3RyaW5nLCBkYXRhOiB7fSwgcGFyYW1ldGVyczoge30gPSB7fSk6IFJ4Lk9ic2VydmFibGU8YW55PiB7XG4gICAgICAgIHJldHVybiB0aGlzLl91cGRhdGUoJ1BPU1QnLCBwYXRoLCBkYXRhLCBwYXJhbWV0ZXJzKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBAaW5oZXJpdGRvY1xuICAgICAqL1xuICAgIHB1YmxpYyBwdXQocGF0aDogc3RyaW5nLCBkYXRhOiB7fSwgcGFyYW1ldGVyczoge30gPSB7fSk6IFJ4Lk9ic2VydmFibGU8YW55PiB7XG4gICAgICAgIHJldHVybiB0aGlzLl91cGRhdGUoJ1BVVCcsIHBhdGgsIGRhdGEsIHBhcmFtZXRlcnMpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEBpbmhlcml0ZG9jXG4gICAgICovXG4gICAgcHVibGljIHBhdGNoKHBhdGg6IHN0cmluZywgZGF0YToge30sIHBhcmFtZXRlcnM6IHt9ID0ge30pOiBSeC5PYnNlcnZhYmxlPGFueT4ge1xuICAgICAgICByZXR1cm4gdGhpcy5fdXBkYXRlKCdQQVRDSCcsIHBhdGgsIGRhdGEsIHBhcmFtZXRlcnMpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEBpbmhlcml0ZG9jXG4gICAgICovXG4gICAgcHVibGljIGRlbGV0ZShwYXRoOiBzdHJpbmcsIGRhdGE6IHt9LCBwYXJhbWV0ZXJzOiB7fSA9IHt9KTogUnguT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3VwZGF0ZSgnREVMRVRFJywgcGF0aCwgZGF0YSwgcGFyYW1ldGVycyk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogUGVyZm9ybXMgYSBSRVNUIEFQSSByZXF1ZXN0IGFnYWluc3QgdGhlIGdlbmVzaXMgcGxhdGZvcm0gYmFja2VuZC5cbiAgICAgKlxuICAgICAqIEBwYXJhbSBtZXRob2QgUmVxdWVzdCBtZXRob2RcbiAgICAgKiBAcGFyYW0gcGF0aCBSZXF1ZXN0IHBhdGhcbiAgICAgKiBAcGFyYW0gZGF0YSBSZXF1ZXN0IGJvZHlcbiAgICAgKiBAcGFyYW0gcGFyYW1ldGVycyBSZXF1ZXN0IHBhcmFtZXRlcnNcbiAgICAgKiBAcmV0dXJuIEFuIG9ic2VydmFibGUgdGhhdCBlbWl0cyB0aGUgcmVzcG9uc2VcbiAgICAgKi9cbiAgICBwcml2YXRlIF91cGRhdGUobWV0aG9kOiBzdHJpbmcsIHBhdGg6IHN0cmluZywgZGF0YToge30sIHBhcmFtZXRlcnM6IHt9ID0ge30pOiBSeC5PYnNlcnZhYmxlPGFueT4ge1xuICAgICAgICBjb25zdCB1cmwgPSB0aGlzLmNyZWF0ZVVyaUZyb21QYXRoKHBhdGgsIHBhcmFtZXRlcnMpO1xuXG4gICAgICAgIHJldHVybiBSeC5PYnNlcnZhYmxlLmZyb21Qcm9taXNlKHRoaXMuX3JlcXVlc3QoKCk6IFJ4LklQcm9taXNlPGFueT4gPT4ge1xuICAgICAgICAgICAgY29uc3QgalF1ZXJ5WEhSID0galF1ZXJ5LmFqYXgoe1xuICAgICAgICAgICAgICAgIHR5cGU6IG1ldGhvZCxcbiAgICAgICAgICAgICAgICB1cmw6IHVybCxcbiAgICAgICAgICAgICAgICBkYXRhOiBKU09OLnN0cmluZ2lmeShkYXRhKSxcbiAgICAgICAgICAgICAgICBjb250ZW50VHlwZTogJ2FwcGxpY2F0aW9uL2pzb24nLFxuICAgICAgICAgICAgICAgIHhockZpZWxkczoge1xuICAgICAgICAgICAgICAgICAgICB3aXRoQ3JlZGVudGlhbHM6IHRydWUsXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBiZWZvcmVTZW5kOiAoeGhyLCBzZXR0aW5ncykgPT4ge1xuICAgICAgICAgICAgICAgICAgICB4aHIuc2V0UmVxdWVzdEhlYWRlcignWC1DU1JGVG9rZW4nLCB0aGlzLmNzcmZDb29raWUoKSk7XG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIH0pO1xuXG4gICAgICAgICAgICB0aGlzLl9pbnRlcmNlcHRFcnJvcnModXJsLCBqUXVlcnlYSFIpO1xuXG4gICAgICAgICAgICByZXR1cm4galF1ZXJ5WEhSO1xuICAgICAgICB9KSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQGluaGVyaXRkb2NcbiAgICAgKi9cbiAgICBwdWJsaWMgbWVzc2FnZXMoKTogUnguT2JzZXJ2YWJsZTxNZXNzYWdlPiB7XG4gICAgICAgIHJldHVybiB0aGlzLl9vYnNlcnZhYmxlLm1hcChcbiAgICAgICAgICAgIChldmVudCkgPT4ge1xuICAgICAgICAgICAgICAgIHJldHVybiBKU09OLnBhcnNlKGV2ZW50LmRhdGEpO1xuICAgICAgICAgICAgfVxuICAgICAgICApLmZpbHRlcihcbiAgICAgICAgICAgIChkYXRhKSA9PiBkYXRhLm1zZ1xuICAgICAgICApLm1hcChcbiAgICAgICAgICAgIChkYXRhKTogTWVzc2FnZSA9PiB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICAgICAgbXNnOiBkYXRhLm1zZyxcbiAgICAgICAgICAgICAgICAgICAgb2JzZXJ2ZXI6IGRhdGEub2JzZXJ2ZXIsXG4gICAgICAgICAgICAgICAgICAgIHByaW1hcnlfa2V5OiBkYXRhLnByaW1hcnlfa2V5LFxuICAgICAgICAgICAgICAgICAgICBvcmRlcjogZGF0YS5vcmRlcixcbiAgICAgICAgICAgICAgICAgICAgaXRlbTogZGF0YS5pdGVtLFxuICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICB9XG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQGluaGVyaXRkb2NcbiAgICAgKi9cbiAgICBwdWJsaWMgZXJyb3JzKCk6IFJ4Lk9ic2VydmFibGU8QVBJRXJyb3I+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2Vycm9ycztcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBAaW5oZXJpdGRvY1xuICAgICAqL1xuICAgIHB1YmxpYyBxdWVyeU9ic2VydmVyTWFuYWdlcigpOiBRdWVyeU9ic2VydmVyTWFuYWdlciB7XG4gICAgICAgIHJldHVybiB0aGlzLl9xdWVyeU9ic2VydmVyTWFuYWdlcjtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBDaGVja3MgWEhSIGFuZCBub3RpZmllcyBlcnJvciBvYnNlcnZlcnMuXG4gICAgICovXG4gICAgcHJpdmF0ZSBfaW50ZXJjZXB0RXJyb3JzKHVybDogc3RyaW5nLCB4aHI6IEpRdWVyeVhIUik6IHZvaWQge1xuICAgICAgICB4aHIudGhlbigocmVzcG9uc2U6IHt9KSA9PiB7XG4gICAgICAgICAgICBpZiAoXy5oYXMocmVzcG9uc2UsICdlcnJvcicpKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgZXJyb3IgPSBuZXcgUmVxdWVzdEVycm9yKHVybCwgPHN0cmluZz4gcmVzcG9uc2VbJ2Vycm9yJ10sIHJlc3BvbnNlKTtcbiAgICAgICAgICAgICAgICB0aGlzLl9lcnJvcnMub25OZXh0KGVycm9yKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG5cbiAgICAgICAgeGhyLmZhaWwoKGpxWEhSOiBKUXVlcnlYSFIsIHRleHRTdGF0dXM6IHN0cmluZywgZXJyb3JUaHJvd246IHN0cmluZykgPT4ge1xuICAgICAgICAgICAgaWYgKDUwMCA8PSBqcVhIUi5zdGF0dXMgJiYganFYSFIuc3RhdHVzIDwgNjAwKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgZXJyb3IgPSBuZXcgUmVxdWVzdEVycm9yKHVybCwgZXJyb3JUaHJvd24sIGpxWEhSKTtcbiAgICAgICAgICAgICAgICB0aGlzLl9lcnJvcnMub25OZXh0KGVycm9yKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgfVxufVxuIl19
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9hcGkvY29ubmVjdGlvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUFBLDBCQUE0QjtBQUM1QiwrQkFBaUM7QUFDakMsdUJBQXlCO0FBQ3pCLHlCQUF1QjtBQUV2QixpREFBcUQ7QUFDckQsbUNBQWdFO0FBQ2hFLDZDQUErQztBQXNJL0M7O0dBRUc7QUFDSDtJQWFJOztPQUVHO0lBQ0g7UUFDSSxJQUFJLENBQUMsVUFBVSxHQUFHLE1BQU0sQ0FBQyxVQUFVLEVBQUUsQ0FBQztRQUN0QyxJQUFJLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQztRQUN4QixJQUFJLENBQUMsYUFBYSxHQUFHLEVBQUUsQ0FBQztRQUN4QixJQUFJLENBQUMsbUJBQW1CLEdBQUcsSUFBSSxFQUFFLENBQUMsT0FBTyxFQUFXLENBQUM7UUFDckQsSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLEVBQUUsQ0FBQyxPQUFPLEVBQVksQ0FBQztRQUMxQyxJQUFJLENBQUMscUJBQXFCLEdBQUcsSUFBSSxvQ0FBb0IsQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQzlFLENBQUM7SUFFRDs7T0FFRztJQUNJLG9DQUFTLEdBQWhCO1FBQ0ksT0FBTyxJQUFJLENBQUMsVUFBVSxDQUFDO0lBQzNCLENBQUM7SUFFRDs7T0FFRztJQUNJLHFDQUFVLEdBQWpCO1FBQ0ksT0FBTyxNQUFNLENBQUMsTUFBTSxDQUFDLFdBQVcsQ0FBQyxDQUFDO0lBQ3RDLENBQUM7SUFFRDs7T0FFRztJQUNJLGtDQUFPLEdBQWQsVUFBZSxPQUFlLEVBQUUsWUFBb0I7UUFBcEQsaUJBdUNDO1FBdENHLElBQUksSUFBSSxDQUFDLFdBQVcsRUFBRTtZQUNsQixPQUFPLENBQUMsSUFBSSxDQUFDLHlEQUF5RCxDQUFDLENBQUM7WUFDeEUsT0FBTztTQUNWO1FBRUQsSUFBSSxDQUFDLFFBQVEsR0FBRyxPQUFPLENBQUM7UUFDeEIsSUFBSSxDQUFDLGFBQWEsR0FBRyxZQUFZLENB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LENBQUM7Z0JBQ3hELEtBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDO2FBQzlCO1FBQ0wsQ0FBQyxDQUFDLENBQUM7SUFDUCxDQUFDO0lBQ0wsdUJBQUM7QUFBRCxDQXRTQSxBQXNTQyxJQUFBO0FBdFNZLDRDQUFnQiIsImZpbGUiOiJhcGkvY29ubmVjdGlvbi5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIF8gZnJvbSAnbG9kYXNoJztcbmltcG9ydCAqIGFzIGpRdWVyeSBmcm9tICdqcXVlcnknO1xuaW1wb3J0ICogYXMgUnggZnJvbSAncngnO1xuaW1wb3J0ICdqcXVlcnkuY29va2llJztcblxuaW1wb3J0IHtRdWVyeU9ic2VydmVyTWFuYWdlcn0gZnJvbSAnLi9xdWVyeW9ic2VydmVyJztcbmltcG9ydCB7QVBJRXJyb3IsIFJlcXVlc3RFcnJvciwgV2Vic29ja2V0RXJyb3J9IGZyb20gJy4vZXJyb3JzJztcbmltcG9ydCAqIGFzIHJhbmRvbSBmcm9tICcuLi9jb3JlL3V0aWxzL3JhbmRvbSc7XG5cbi8qKlxuICogTWVzc2FnZSBleGNoYW5nZWQgdmlhIFdlYlNvY2tldC5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBNZXNzYWdlIHtcbiAgICBtc2c6IHN0cmluZztcbiAgICBvYnNlcnZlcjogc3RyaW5nO1xuICAgIHByaW1hcnlfa2V5OiBzdHJpbmc7XG4gICAgb3JkZXI6IG51bWJlcjtcbiAgICBpdGVtOiB7fTtcbn1cblxuLyoqXG4gKiBSZXNwb25zZSB0byBSRVNUIEFQSSBvYnNlcnZlIHJlcXVlc3RzLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFF1ZXJ5T2JzZXJ2ZXJSZXNwb25zZSB7XG4gICAgb2JzZXJ2ZXI6IHN0cmluZztcbiAgICBpdGVtczogYW55W107XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ29ubmVjdGlvbiB7XG4gICAgLyoqXG4gICAgICogRXN0YWJsaXNoZXMgYSBjb25uZWN0aW9uIHdpdGggdGhlIGdlbmVzaXMgcGxhdGZvcm0gc2VydmVyLlxuICAgICAqXG4gICAgICogQHBhcmFtIHVyaSBHZW5lc2lzIHBsYXRmb3JtIHNlcnZlciBVUklcbiAgICAgKi9cbiAgICBjb25uZWN0KHJlc3RVcmk6IHN0cmluZywgd2Vic29ja2V0VXJpOiBzdHJpbmcpO1xuXG4gICAgLyoqXG4gICAgICogQ2xvc2VzIHRoZSBjb25uZWN0aW9uLlxuICAgICAqL1xuICAgIGRpc2Nvbm5lY3QoKTtcblxuICAgIC8qKlxuICAgICAqIFJldHVybnMgYW4gb2JzZXJ2YWJsZSB0aGF0IGVtaXRzIHdoZXRoZXIgd2Vic29ja2V0IGNvbm5lY3Rpb24gaXMgZXN0YWJsaXNoZWQgb3Igbm90LlxuICAgICAqXG4gICAgICogQHJldHVybiBBbiBvYnNlcnZhYmxlIHRoYXQgZW1pdHMgdHJ1ZS9mYWxzZVxuICAgICAqL1xuICAgIGlzQ29ubmVjdGVkKCk6IFJ4Lk9ic2VydmFibGU8Ym9vbGVhbj47XG5cbiAgICAvKipcbiAgICAgKiBQZXJmb3JtcyBhIFJFU1QgQVBJIEdFVCByZXF1ZXN0IGFnYWluc3QgdGhlIGdlbmVzaXMgcGxhdGZvcm0gYmFja2VuZC5cbiAgICAgKlxuICAgICAqIEBwYXJhbSBwYXRoIFJlcXVlc3QgcGF0aFxuICAgICAqIEBwYXJhbSBwYXJhbWV0ZXJzIFJlcXVlc3QgcGFyYW1ldGVyc1xuICAgICAqIEByZXR1cm4gQW4gb2JzZXJ2YWJsZSB0aGF0IGVtaXRzIHRoZSByZXNwb25zZVxuICAgICAqL1xuICAgIGdldDxUPihwYXRoOiBzdHJpbmcsIHBhcmFtZXRlcnM/OiB7fSk6IFJ4Lk9ic2VydmFibGU8VD47XG5cbiAgICAvKipcbiAgICAgKiBQZXJmb3JtcyBhIFJFU1QgQVBJIFBPU1QgcmVxdWVzdCBhZ2FpbnN0IHRoZSBnZW5lc2lzIHBsYXRmb3JtIGJhY2tlbmQuXG4gICAgICpcbiAgICAgKiBAcGFyYW0gcGF0aCBSZXF1ZXN0IHBhdGhcbiAgICAgKiBAcGFyYW0gZGF0YSBSZXF1ZXN0IGJvZHlcbiAgICAgKiBAcGFyYW0gcGFyYW1ldGVycyBSZXF1ZXN0IHBhcmFtZXRlcnNcbiAgICAgKiBAcmV0dXJuIEFuIG9ic2VydmFibGUgdGhhdCBlbWl0cyB0aGUgcmVzcG9uc2VcbiAgICAgKi9cbiAgICBwb3N0PFQ+KHBhdGg6IHN0cmluZywgZGF0YToge30sIHBhcmFtZXRlcnM/OiB7fSk6IFJ4Lk9ic2VydmFibGU8VD47XG5cbiAgICAvKipcbiAgICAgKiBQZXJmb3JtcyBhIFJFU1QgQVBJIFBVVCByZXF1ZXN0IGFnYWluc3QgdGhlIGdlbmVzaXMgcGxhdGZvcm0gYmFja2VuZC5cbiAgICAgKlxuICAgICAqIEBwYXJhbSBwYXRoIFJlcXVlc3QgcGF0aFxuICAgICAqIEBwYXJhbSBkYXRhIFJlcXVlc3QgYm9keVxuICAgICAqIEBwYXJhbSBwYXJhbWV0ZXJzIFJlcXVlc3QgcGFyYW1ldGVyc1xuICAgICAqIEByZXR1cm4gQW4gb2JzZXJ2YWJsZSB0aGF0IGVtaXRzIHRoZSByZXNwb25zZVxuICAgICAqL1xuICAgIHB1dDxUPihwYXRoOiBzdHJpbmcsIGRhdGE6IHt9LCBwYXJhbWV0ZXJzPzoge30pOiBSeC5PYnNlcnZhYmxlPFQ+O1xuXG4gICAgLyoqXG4gICAgICogUGVyZm9ybXMgYSBSRVNUIEFQSSBQQVRDSCByZXF1ZXN0IGFnYWluc3QgdGhlIGdlbmVzaXMgcGxhdGZvcm0gYmFja2VuZC5cbiAgICAgKlxuICAgICAqIEBwYXJhbSBwYXRoIFJlcXVlc3QgcGF0aFxuICAgICAqIEBwYXJhbSBkYXRhIFJlcXVlc3QgYm9keVxuICAgICAqIEBwYXJhbSBwYXJhbWV0ZXJzIFJlcXVlc3QgcGFyYW1ldGVyc1xuICAgICAqIEByZXR1cm4gQW4gb2JzZXJ2YWJsZSB0aGF0IGVtaXRzIHRoZSByZXNwb25zZVxuICAgICAqL1xuICAgIHBhdGNoPFQ+KHBhdGg6IHN0cmluZywgZGF0YToge30sIHBhcmFtZXRlcnM/OiB7fSk6IFJ4Lk9ic2VydmFibGU8VD47XG5cbiAgICAvKipcbiAgICAgKiBQZXJmb3JtcyBhIFJFU1QgQVBJIERFTEVURSByZXF1ZXN0IGFnYWluc3QgdGhlIGdlbmVzaXMgcGxhdGZvcm0gYmFja2VuZC5cbiAgICAgKlxuICAgICAqIEBwYXJhbSBwYXRoIFJlcXVlc3QgcGF0aFxuICAgICAqIEBwYXJhbSBkYXRhIFJlcXVlc3QgYm9keVxuICAgICAqIEBwYXJhbSBwYXJhbWV0ZXJzIFJlcXVlc3QgcGFyYW1ldGVyc1xuICAgICAqIEByZXR1cm4gQW4gb2JzZXJ2YWJsZSB0aGF0IGVtaXRzIHRoZSByZXNwb25zZVxuICAgICAqL1xuICAgIGRlbGV0ZTxUPihwYXRoOiBzdHJpbmcsIGRhdGE6IHt9LCBwYXJhbWV0ZXJzPzoge30pOiBSeC5PYnNlcnZhYmxlPFQ+O1xuXG4gICAgLyoqXG4gICAgICogUmV0dXJucyBhbiBhYnNvbHV0ZSBBUEkgVVJJIGZvciBhIHNwZWNpZmljIHJlc291cmNlIHBhdGguXG4gICAgICpcbiAgICAgKiBAcGFyYW0gcGF0aCBBUEkgcmVzb3VyY2UgcGF0aFxuICAgICAqIEBwYXJhbSBxdWVyeVBhcmFtZXRlcnMgUXVlcnkgcGFyYW1ldGVyc1xuICAgICAqIEByZXR1cm4gQWJzb2x1dGUgVVJJXG4gICAgICovXG4gICAgY3JlYXRlVXJpRnJvbVBhdGgocGF0aDogc3RyaW5nLCBxdWVyeVBhcmFtZXRlcnM/OiB7fSk6IHN0cmluZztcblxuICAgIC8qKlxuICAgICAqIFJldHVybnMgdGhlIENTUkYgY29va2llIHZhbHVlIHRoYXQgbXVzdCBiZSB1c2VkIHdoZW4gZG9pbmcgUE9TVCByZXF1ZXN0cy5cbiAgICAgKi9cbiAgICBjc3JmQ29va2llKCk6IHN0cmluZztcblxuICAgIC8qKlxuICAgICAqIEEgc3RyZWFtIG9mIGluY29taW5nIFdlYlNvY2tldCBtZXNzYWdlcy5cbiAgICAgKi9cbiAgICBtZXNzYWdlcygpOiBSeC5PYnNlcnZhYmxlPE1lc3NhZ2U+O1xuXG4gICAgLyoqXG4gICAgICogQSBzdHJlYW0gb2YgZXJyb3IgbWVzc2FnZXMuXG4gICAgICovXG4gICAgZXJyb3JzKCk6IFJ4Lk9ic2VydmFibGU8QVBJRXJyb3I+O1xuXG4gICAgLyoqXG4gICAgICogUmV0dXJucyB0aGUgY3VycmVudCB1bmlxdWUgc2Vzc2lvbiBpZGVudGlmaWVyLlxuICAgICAqL1xuICAgIHNlc3Npb25JZCgpOiBzdHJpbmc7XG5cbiAgICAvKipcbiAgICAgKiBSZXR1cm5zIHRoZSBRdWVyeU9ic2VydmVyTWFuYWdlciBpbnN0YW5jZSBhc3NvY2lhdGVkIHdpdGggdGhpcyBjb25uZWN0aW9uLlxuICAgICAqL1xuICAgIHF1ZXJ5T2JzZXJ2ZXJNYW5hZ2VyKCk6IFF1ZXJ5T2JzZXJ2ZXJNYW5hZ2VyO1xufVxuXG4vKipcbiAqIEEgcGVuZGluZyByZXF1ZXN0IHRoYXQgc2hvdWxkIGJlIGV4ZWN1dGVkIG9uY2UgdGhlIGNvbm5lY3Rpb24gaXMgaW4gYSBwcm9wZXIgc3RhdGUuXG4gKi9cbmludGVyZmFjZSBQZW5kaW5nUmVxdWVzdCB7XG4gICAgcmVxdWVzdDogKCkgPT4gUnguSVByb21pc2U8YW55PjtcbiAgICByZXNvbHZlOiAodmFsdWU6IGFueSkgPT4gdm9pZDtcbiAgICByZWplY3Q6IChyZWFzb246IGFueSkgPT4gdm9pZDtcbn1cblxuLyoqXG4gKiBBbiBjb25jcmV0ZSBpbXBsZW1lbnRhdGlvbiBvZiBhIGNvbm5lY3Rpb24uXG4gKi9cbmV4cG9ydCBjbGFzcyBTaW1wbGVDb25uZWN0aW9uIGltcGxlbWVudHMgQ29ubmVjdGlvbiB7XG4gICAgcHJpdmF0ZSBfcmVzdFVyaTogc3RyaW5nO1xuICAgIHByaXZhdGUgX3dlYnNvY2tldFVyaTogc3RyaW5nO1xuICAgIHByaXZhdGUgX3Nlc3Npb25JZDogc3RyaW5nO1xuICAgIHByaXZhdGUgX3dlYnNvY2tldDogV2ViU29ja2V0O1xuICAgIHByaXZhdGUgX29ic2VydmFibGU6IFJ4LkNvbm5lY3RhYmxlT2JzZXJ2YWJsZTxhbnk+O1xuICAgIHByaXZhdGUgX2Rpc3Bvc2FibGVDb25uZWN0aW9uOiBSeC5EaXNwb3NhYmxlO1xuICAgIHByaXZhdGUgX3F1ZXJ5T2JzZXJ2ZXJNYW5hZ2VyOiBRdWVyeU9ic2VydmVyTWFuYWdlcjtcbiAgICBwcml2YXRlIF9yZXF1ZXN0UXVldWU6IFBlbmRpbmdSZXF1ZXN0W107XG4gICAgcHJpdmF0ZSBfaXNDb25uZWN0ZWQ6IGJvb2xlYW47XG4gICAgcHJpdmF0ZSBfaXNDb25uZWN0ZWRTdWJqZWN0OiBSeC5TdWJqZWN0PGJvb2xlYW4+O1xuICAgIHByaXZhdGUgX2Vycm9yczogUnguU3ViamVjdDxBUElFcnJvcj47XG5cbiAgICAvKipcbiAgICAgKiBDb25zdHJ1Y3RzIGEgbmV3IGNvbm5lY3Rpb24uXG4gICAgICovXG4gICAgY29uc3RydWN0b3IoKSB7XG4gICAgICAgIHRoaXMuX3Nlc3Npb25JZCA9IHJhbmRvbS5yYW5kb21VdWlkKCk7XG4gICAgICAgIHRoaXMuX29ic2VydmFibGUgPSBudWxsO1xuICAgICAgICB0aGlzLl9yZXF1ZXN0UXVldWUgPSBbXTtcbiAgICAgICAgdGhpcy5faXNDb25uZWN0ZWRTdWJqZWN0ID0gbmV3IFJ4LlN1YmplY3Q8Ym9vbGVhbj4oKTtcbiAgICAgICAgdGhpcy5fZXJyb3JzID0gbmV3IFJ4LlN1YmplY3Q8QVBJRXJyb3I+KCk7XG4gICAgICAgIHRoaXMuX3F1ZXJ5T2JzZXJ2ZXJNYW5hZ2VyID0gbmV3IFF1ZXJ5T2JzZXJ2ZXJNYW5hZ2VyKHRoaXMsIHRoaXMuX2Vycm9ycyk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQGluaGVyaXRkb2NcbiAgICAgKi9cbiAgICBwdWJsaWMgc2Vzc2lvbklkKCk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiB0aGlzLl9zZXNzaW9uSWQ7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQGluaGVyaXRkb2NcbiAgICAgKi9cbiAgICBwdWJsaWMgY3NyZkNvb2tpZSgpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4galF1ZXJ5LmNvb2tpZSgnY3NyZnRva2VuJyk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQGluaGVyaXRkb2NcbiAgICAgKi9cbiAgICBwdWJsaWMgY29ubmVjdChyZXN0VXJpOiBzdHJpbmcsIHdlYnNvY2tldFVyaTogc3RyaW5nKSB7XG4gICAgICAgIGlmICh0aGlzLl9vYnNlcnZhYmxlKSB7XG4gICAgICAgICAgICBjb25zb2xlLndhcm4oXCJBdHRlbXB0ZWQgdG8gY29ubmVjdCBhbiBhbHJlYWR5IGluaXRpYWxpemVkIGNvbm5lY3Rpb24uXCIpO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5fcmVzdFVyaSA9IHJlc3RVcmk7XG4gICAgICAgIHRoaXMuX3dlYnNvY2tldFVyaSA9IHdlYnNvY2tldFVyaTtcblxuICAgICAgICB0aGlzLl9vYnNlcnZhYmxlID0gUnguT2JzZXJ2YWJsZS5jcmVhdGUoKG9ic2VydmVyKSA9PiB7XG4gICAgICAgICAgICBjb25zdCByZWNvbm5lY3QgPSBfLnRocm90dGxlKCgpID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLl93ZWJzb2NrZXQgPSBuZXcgV2ViU29ja2V0KHRoaXMuX3dlYnNvY2tldFVyaSArIHRoaXMuX3Nlc3Npb25JZCArICc/c3Vic2NyaWJlLWJyb2FkY2FzdCcpO1xuXG4gICAgICAgICAgICAgICAgLy8gUmVnaXN0ZXIgbWVzc2FnZSBhbmQgZXJyb3IgaGFuZGxlcnMuXG4gICAgICAgICAgICAgICAgdGhpcy5fd2Vic29ja2V0Lm9ubWVzc2FnZSA9IG9ic2VydmVyLm9uTmV4dC5iaW5kKG9ic2VydmVyKTtcbiAgICAgICAgICAgICAgICAvLyBEb24ndCBoYW5kbGUgYG9uZXJyb3JgIGJlY2F1c2UgaXQgZG9lc24ndCBwcm92aWRlIGFueSB1c2VmdWwgaW5mb3JtYXRpb25cbiAgICAgICAgICAgICAgICAvLyBodHRwczovL3d3dy53My5vcmcvVFIvd2Vic29ja2V0cy8jY29uY2VwdC13ZWJzb2NrZXQtY2xvc2UtZmFpbFxuICAgICAgICAgICAgICAgIHRoaXMuX3dlYnNvY2tldC5vbm9wZW4gPSAoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX3Byb2Nlc3NSZXF1ZXN0cygpO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLl9oYW5kbGVJc0Nvbm5lY3RlZCh0cnVlKTtcbiAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgICAgIC8vIFJlZ2lzdGVyIHJlY29ubmVjdGlvbiBoYW5kbGVyLiBXZSByZWNvbm5lY3QgaW1tZWRpYXRlbHkgYWZ0ZXIgdGhlIHNvY2tldCBnZXRzIGNsb3NlZC5cbiAgICAgICAgICAgICAgICB0aGlzLl93ZWJzb2NrZXQub25jbG9zZSA9IChldmVudCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBlcnJvciA9IG5ldyBXZWJzb2NrZXRFcnJvcihgV2Vic29ja2V0IGVycm9yICR7ZXZlbnQuY29kZX1gLCBldmVudCk7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX2Vycm9ycy5vbk5leHQoZXJyb3IpO1xuICAgICAgICAgICAgICAgICAgICByZWNvbm5lY3QoKTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5faGFuZGxlSXNDb25uZWN0ZWQoZmFsc2UpO1xuICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICB9LCA1MDAwKTtcblxuICAgICAgICAgICAgcmVjb25uZWN0KCk7XG5cbiAgICAgICAgICAgIC8vIFRoZXJlIGlzIG5vIHdheSB0byB1bnN1YnNjcmliZSBhcyB3ZSBhbHdheXMgd2FudCB0byBoYXZlIHRoZSBzb2NrZXQgY29ubmVjdGVkLlxuICAgICAgICAgICAgcmV0dXJuIF8ubm9vcDtcbiAgICAgICAgfSkucHVibGlzaCgpO1xuICAgICAgICB0aGlzLl9kaXNwb3NhYmxlQ29ubmVjdGlvbiA9IHRoaXMuX29ic2VydmFibGUuY29ubmVjdCgpO1xuXG4gICAgICAgIC8vIFN1YnNjcmliZSB0byBpdGVtIGNhY2hlIHVwZGF0ZXMuXG4gICAgICAgIHRoaXMubWVzc2FnZXMoKS5zdWJzY3JpYmUodGhpcy5fcXVlcnlPYnNlcnZlck1hbmFnZXIudXBkYXRlLmJpbmQodGhpcy5fcXVlcnlPYnNlcnZlck1hbmFnZXIpKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBAaW5oZXJpdGRvY1xuICAgICAqL1xuICAgIHB1YmxpYyBkaXNjb25uZWN0KCkge1xuICAgICAgICB0aGlzLl9kaXNwb3NhYmxlQ29ubmVjdGlvbi5kaXNwb3NlKCk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQGluaGVyaXRkb2NcbiAgICAgKi9cbiAgICBwdWJsaWMgaXNDb25uZWN0ZWQoKTogUnguT2JzZXJ2YWJsZTxib29sZWFuPiB7XG4gICAgICAgIHJldHVybiB0aGlzLl9pc0Nvbm5lY3RlZFN1YmplY3Q7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogTm90aWZpZXMgaXNDb25uZWN0ZWQgb2JzZXJ2ZXJzLlxuICAgICAqXG4gICAgICogQHBhcmFtIGlzQ29ubmVjdGVkIFRydWUgaWYgY29ubmVjdGlvbiBlc3RhYmxpc2hlZFxuICAgICAqL1xuICAgIHByaXZhdGUgX2hhbmRsZUlzQ29ubmVjdGVkKGlzQ29ubmVjdGVkOiBib29sZWFuKTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLl9pc0Nvbm5lY3RlZCAhPT0gaXNDb25uZWN0ZWQpIHtcbiAgICAgICAgICAgIHRoaXMuX2lzQ29ubmVjdGVkID0gaXNDb25uZWN0ZWQ7XG4gICAgICAgICAgICBpZiAoIV8uaXNVbmRlZmluZWQodGhpcy5faXNDb25uZWN0ZWRTdWJqZWN0KSkge1xuICAgICAgICAgICAgICAgIHRoaXMuX2lzQ29ubmVjdGVkU3ViamVjdC5vbk5leHQodGhpcy5faXNDb25uZWN0ZWQpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogUGVyZm9ybXMgYSByZXF1ZXN0IGFnYWluc3QgdGhlIHJlbW90ZSBzZXJ2ZXIuIElmIHRoZSBjb25uZWN0aW9uIGhhcyBub3RcbiAgICAgKiB5ZXQgYmVlbiBlc3RhYmxpc2hlZCwgdGhlIHJlcXVlc3QgaXMgcXVldWVkLlxuICAgICAqXG4gICAgICogQHBhcmFtIHJlcXVlc3QgQW55IGZ1bmN0aW9uLCB3aGljaCByZXR1cm5zIGEgcHJvbWlzZVxuICAgICAqIEByZXR1cm4gQSBwcm9taXNlLCB3aGljaCBpcyBmdWxmaWxsZWQgd2hlbiB0aGUgaW5pdGlhbCBwcm9taXNlIGlzXG4gICAgICovXG4gICAgcHJpdmF0ZSBfcmVxdWVzdChyZXF1ZXN0OiAoKSA9PiBSeC5JUHJvbWlzZTxhbnk+KTogUnguSVByb21pc2U8YW55PiB7XG4gICAgICAgIGxldCBwcm9taXNlID0gbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4ge1xuICAgICAgICAgICAgdGhpcy5fcmVxdWVzdFF1ZXVlLnB1c2goe1xuICAgICAgICAgICAgICAgIHJlcXVlc3Q6IHJlcXVlc3QsXG4gICAgICAgICAgICAgICAgcmVzb2x2ZTogcmVzb2x2ZSxcbiAgICAgICAgICAgICAgICByZWplY3Q6IHJlamVjdCxcbiAgICAgICAgICAgIH0pO1xuXG4gICAgICAgICAgICBpZiAodGhpcy5fd2Vic29ja2V0ICYmIHRoaXMuX3dlYnNvY2tldC5yZWFkeVN0YXRlID09PSBXZWJTb2NrZXQuT1BFTikge1xuICAgICAgICAgICAgICAgIHRoaXMuX3Byb2Nlc3NSZXF1ZXN0cygpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcblxuICAgICAgICByZXR1cm4gcHJvbWlzZTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBQcm9jZXNzZXMgYW55IHBlbmRpbmcgcmVxdWVzdHMuXG4gICAgICovXG4gICAgcHJpdmF0ZSBfcHJvY2Vzc1JlcXVlc3RzKCkge1xuICAgICAgICBpZiAoIXRoaXMuX3JlcXVlc3RRdWV1ZS5sZW5ndGgpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIGZvciAobGV0IHJlcXVlc3Qgb2YgdGhpcy5fcmVxdWVzdFF1ZXVlKSB7XG4gICAgICAgICAgICByZXF1ZXN0LnJlcXVlc3QoKS50aGVuKHJlcXVlc3QucmVzb2x2ZSwgcmVxdWVzdC5yZWplY3QpO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5fcmVxdWVzdFF1ZXVlID0gW107XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQGluaGVyaXRkb2NcbiAgICAgKi9cbiAgICBwdWJsaWMgY3JlYXRlVXJpRnJvbVBhdGgocGF0aDogc3RyaW5nLCBxdWVyeVBhcmFtZXRlcnM/OiB7fSk6IHN0cmluZyB7XG4gICAgICAgIGNvbnN0IHBhcmFtZXRlcnMgPSAhXy5pc0VtcHR5KHF1ZXJ5UGFyYW1ldGVycykgPyAnPycgKyBqUXVlcnkucGFyYW0ocXVlcnlQYXJhbWV0ZXJzKSA6ICcnO1xuICAgICAgICByZXR1cm4gdGhpcy5fcmVzdFVyaSArIHBhdGggKyBwYXJhbWV0ZXJzO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEBpbmhlcml0ZG9jXG4gICAgICovXG4gICAgcHVibGljIGdldChwYXRoOiBzdHJpbmcsIHBhcmFtZXRlcnM6IHt9ID0ge30pOiBSeC5PYnNlcnZhYmxlPGFueT4ge1xuICAgICAgICBjb25zdCB1cmwgPSB0aGlzLmNyZWF0ZVVyaUZyb21QYXRoKHBhdGgsIHBhcmFtZXRlcnMpO1xuXG4gICAgICAgIHJldHVybiBSeC5PYnNlcnZhYmxlLmZyb21Qcm9taXNlKHRoaXMuX3JlcXVlc3QoKCk6IFJ4LklQcm9taXNlPGFueT4gPT4ge1xuICAgICAgICAgICAgY29uc3QgalF1ZXJ5WEhSID0galF1ZXJ5LmFqYXgoe1xuICAgICAgICAgICAgICAgIHR5cGU6ICdnZXQnLFxuICAgICAgICAgICAgICAgIHVybDogdXJsLFxuICAgICAgICAgICAgICAgIGNvbnRlbnRUeXBlOiAnYXBwbGljYXRpb24vanNvbicsXG4gICAgICAgICAgICAgICAgeGhyRmllbGRzOiB7XG4gICAgICAgICAgICAgICAgICAgIHdpdGhDcmVkZW50aWFsczogdHJ1ZSxcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgfSk7XG5cbiAgICAgICAgICAgIHRoaXMuX2ludGVyY2VwdEVycm9ycyh1cmwsIGpRdWVyeVhIUik7XG5cbiAgICAgICAgICAgIHJldHVybiBqUXVlcnlYSFI7XG4gICAgICAgIH0pKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBAaW5oZXJpdGRvY1xuICAgICAqL1xuICAgIHB1YmxpYyBwb3N0KHBhdGg6IHN0cmluZywgZGF0YToge30sIHBhcmFtZXRlcnM6IHt9ID0ge30pOiBSeC5PYnNlcnZhYmxlPGFueT4ge1xuICAgICAgICByZXR1cm4gdGhpcy5fdXBkYXRlKCdQT1NUJywgcGF0aCwgZGF0YSwgcGFyYW1ldGVycyk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQGluaGVyaXRkb2NcbiAgICAgKi9cbiAgICBwdWJsaWMgcHV0KHBhdGg6IHN0cmluZywgZGF0YToge30sIHBhcmFtZXRlcnM6IHt9ID0ge30pOiBSeC5PYnNlcnZhYmxlPGFueT4ge1xuICAgICAgICByZXR1cm4gdGhpcy5fdXBkYXRlKCdQVVQnLCBwYXRoLCBkYXRhLCBwYXJhbWV0ZXJzKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBAaW5oZXJpdGRvY1xuICAgICAqL1xuICAgIHB1YmxpYyBwYXRjaChwYXRoOiBzdHJpbmcsIGRhdGE6IHt9LCBwYXJhbWV0ZXJzOiB7fSA9IHt9KTogUnguT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3VwZGF0ZSgnUEFUQ0gnLCBwYXRoLCBkYXRhLCBwYXJhbWV0ZXJzKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBAaW5oZXJpdGRvY1xuICAgICAqL1xuICAgIHB1YmxpYyBkZWxldGUocGF0aDogc3RyaW5nLCBkYXRhOiB7fSwgcGFyYW1ldGVyczoge30gPSB7fSk6IFJ4Lk9ic2VydmFibGU8YW55PiB7XG4gICAgICAgIHJldHVybiB0aGlzLl91cGRhdGUoJ0RFTEVURScsIHBhdGgsIGRhdGEsIHBhcmFtZXRlcnMpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFBlcmZvcm1zIGEgUkVTVCBBUEkgcmVxdWVzdCBhZ2FpbnN0IHRoZSBnZW5lc2lzIHBsYXRmb3JtIGJhY2tlbmQuXG4gICAgICpcbiAgICAgKiBAcGFyYW0gbWV0aG9kIFJlcXVlc3QgbWV0aG9kXG4gICAgICogQHBhcmFtIHBhdGggUmVxdWVzdCBwYXRoXG4gICAgICogQHBhcmFtIGRhdGEgUmVxdWVzdCBib2R5XG4gICAgICogQHBhcmFtIHBhcmFtZXRlcnMgUmVxdWVzdCBwYXJhbWV0ZXJzXG4gICAgICogQHJldHVybiBBbiBvYnNlcnZhYmxlIHRoYXQgZW1pdHMgdGhlIHJlc3BvbnNlXG4gICAgICovXG4gICAgcHJpdmF0ZSBfdXBkYXRlKG1ldGhvZDogc3RyaW5nLCBwYXRoOiBzdHJpbmcsIGRhdGE6IHt9LCBwYXJhbWV0ZXJzOiB7fSA9IHt9KTogUnguT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICAgICAgY29uc3QgdXJsID0gdGhpcy5jcmVhdGVVcmlGcm9tUGF0aChwYXRoLCBwYXJhbWV0ZXJzKTtcblxuICAgICAgICByZXR1cm4gUnguT2JzZXJ2YWJsZS5mcm9tUHJvbWlzZSh0aGlzLl9yZXF1ZXN0KCgpOiBSeC5JUHJvbWlzZTxhbnk+ID0+IHtcbiAgICAgICAgICAgIGNvbnN0IGpRdWVyeVhIUiA9IGpRdWVyeS5hamF4KHtcbiAgICAgICAgICAgICAgICB0eXBlOiBtZXRob2QsXG4gICAgICAgICAgICAgICAgdXJsOiB1cmwsXG4gICAgICAgICAgICAgICAgZGF0YTogSlNPTi5zdHJpbmdpZnkoZGF0YSksXG4gICAgICAgICAgICAgICAgY29udGVudFR5cGU6ICdhcHBsaWNhdGlvbi9qc29uJyxcbiAgICAgICAgICAgICAgICB4aHJGaWVsZHM6IHtcbiAgICAgICAgICAgICAgICAgICAgd2l0aENyZWRlbnRpYWxzOiB0cnVlLFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgYmVmb3JlU2VuZDogKHhociwgc2V0dGluZ3MpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgeGhyLnNldFJlcXVlc3RIZWFkZXIoJ1gtQ1NSRlRva2VuJywgdGhpcy5jc3JmQ29va2llKCkpO1xuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB9KTtcblxuICAgICAgICAgICAgdGhpcy5faW50ZXJjZXB0RXJyb3JzKHVybCwgalF1ZXJ5WEhSKTtcblxuICAgICAgICAgICAgcmV0dXJuIGpRdWVyeVhIUjtcbiAgICAgICAgfSkpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEBpbmhlcml0ZG9jXG4gICAgICovXG4gICAgcHVibGljIG1lc3NhZ2VzKCk6IFJ4Lk9ic2VydmFibGU8TWVzc2FnZT4ge1xuICAgICAgICByZXR1cm4gdGhpcy5fb2JzZXJ2YWJsZS5tYXAoXG4gICAgICAgICAgICAoZXZlbnQpID0+IHtcbiAgICAgICAgICAgICAgICByZXR1cm4gSlNPTi5wYXJzZShldmVudC5kYXRhKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgKS5maWx0ZXIoXG4gICAgICAgICAgICAoZGF0YSkgPT4gZGF0YS5tc2dcbiAgICAgICAgKS5tYXAoXG4gICAgICAgICAgICAoZGF0YSk6IE1lc3NhZ2UgPT4ge1xuICAgICAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgICAgICAgIG1zZzogZGF0YS5tc2csXG4gICAgICAgICAgICAgICAgICAgIG9ic2VydmVyOiBkYXRhLm9ic2VydmVyLFxuICAgICAgICAgICAgICAgICAgICBwcmltYXJ5X2tleTogZGF0YS5wcmltYXJ5X2tleSxcbiAgICAgICAgICAgICAgICAgICAgb3JkZXI6IGRhdGEub3JkZXIsXG4gICAgICAgICAgICAgICAgICAgIGl0ZW06IGRhdGEuaXRlbSxcbiAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgfVxuICAgICAgICApO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEBpbmhlcml0ZG9jXG4gICAgICovXG4gICAgcHVibGljIGVycm9ycygpOiBSeC5PYnNlcnZhYmxlPEFQSUVycm9yPiB7XG4gICAgICAgIHJldHVybiB0aGlzLl9lcnJvcnM7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQGluaGVyaXRkb2NcbiAgICAgKi9cbiAgICBwdWJsaWMgcXVlcnlPYnNlcnZlck1hbmFnZXIoKTogUXVlcnlPYnNlcnZlck1hbmFnZXIge1xuICAgICAgICByZXR1cm4gdGhpcy5fcXVlcnlPYnNlcnZlck1hbmFnZXI7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQ2hlY2tzIFhIUiBhbmQgbm90aWZpZXMgZXJyb3Igb2JzZXJ2ZXJzLlxuICAgICAqL1xuICAgIHByaXZhdGUgX2ludGVyY2VwdEVycm9ycyh1cmw6IHN0cmluZywgeGhyOiBKUXVlcnlYSFIpOiB2b2lkIHtcbiAgICAgICAgeGhyLnRoZW4oKHJlc3BvbnNlOiB7fSkgPT4ge1xuICAgICAgICAgICAgaWYgKF8uaGFzKHJlc3BvbnNlLCAnZXJyb3InKSkge1xuICAgICAgICAgICAgICAgIGNvbnN0IGVycm9yID0gbmV3IFJlcXVlc3RFcnJvcih1cmwsIDxzdHJpbmc+IHJlc3BvbnNlWydlcnJvciddLCByZXNwb25zZSk7XG4gICAgICAgICAgICAgICAgdGhpcy5fZXJyb3JzLm9uTmV4dChlcnJvcik7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuXG4gICAgICAgIHhoci5mYWlsKChqcVhIUjogSlF1ZXJ5WEhSLCB0ZXh0U3RhdHVzOiBzdHJpbmcsIGVycm9yVGhyb3duOiBzdHJpbmcpID0+IHtcbiAgICAgICAgICAgIGlmICg1MDAgPD0ganFYSFIuc3RhdHVzICYmIGpxWEhSLnN0YXR1cyA8IDYwMCkge1xuICAgICAgICAgICAgICAgIGNvbnN0IGVycm9yID0gbmV3IFJlcXVlc3RFcnJvcih1cmwsIGVycm9yVGhyb3duLCBqcVhIUik7XG4gICAgICAgICAgICAgICAgdGhpcy5fZXJyb3JzLm9uTmV4dChlcnJvcik7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgIH1cbn1cbiJdfQ==

@@ -40,2 +40,1 @@ import { GenError } from '../core/errors/error';

}
//# sourceMappingURL=errors.d.ts.map
"use strict";
var __extends = (this && this.__extends) || (function () {
var extendStatics = function (d, b) {
extendStatics = Object.setPrototypeOf ||
({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
return extendStatics(d, b);
}
var extendStatics = Object.setPrototypeOf ||
({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
return function (d, b) {

@@ -102,2 +99,2 @@ extendStatics(d, b);

//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9hcGkvZXJyb3JzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7OztBQUFBLDhDQUE4QztBQUU5Qzs7R0FFRztBQUNIO0lBQThCLDRCQUFRO0lBSWxDLGtCQUFZLE9BQWUsRUFBRSxnQkFBeUI7UUFBdEQsWUFDSSxrQkFBTSxPQUFPLENBQUMsU0FLakI7UUFUTSxVQUFJLEdBQUcsVUFBVSxDQUFDO1FBS3JCLGdJQUFnSTtRQUNoSSxNQUFNLENBQUMsZ0JBQWdCLENBQUMsQ0FBQyxLQUFJLEVBQUUsUUFBUSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBRW5ELEtBQUksQ0FBQyxpQkFBaUIsR0FBRyxnQkFBZ0IsQ0FBQzs7SUFDOUMsQ0FBQztJQUVELHNCQUFXLHNDQUFnQjthQUEzQjtZQUNJLE9BQU8sSUFBSSxDQUFDLGlCQUFpQixDQUFDO1FBQ2xDLENBQUM7OztPQUFBO0lBQ0wsZUFBQztBQUFELENBZkEsQUFlQyxDQWY2QixnQkFBUSxHQWVyQztBQWZZLDRCQUFRO0FBaUJyQjs7R0FFRztBQUNIO0lBQWtDLGdDQUFRO0lBR3RDLHNCQUFtQixHQUFXLEVBQUUsT0FBZSxFQUFFLGdCQUF5QjtRQUExRSxZQUNJLGtCQUFNLE9BQU8sRUFBRSxnQkFBZ0IsQ0FBQyxTQUduQztRQUprQixTQUFHLEdBQUgsR0FBRyxDQUFRO1FBRnZCLFVBQUksR0FBRyxjQUFjLENBQUM7UUFJekIsZ0lBQWdJO1FBQ2hJLE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDLEtBQUksRUFBRSxZQUFZLENBQUMsU0FBUyxDQUFDLENBQUM7O0lBQzNELENBQUM7SUFDTCxtQkFBQztBQUFELENBUkEsQUFRQyxDQVJpQyxRQUFRLEdBUXpDO0FBUlksb0NBQVk7QUFXekI7O0dBRUc7QUFDSDtJQUFtQyxpQ0FBUTtJQUd2Qyx1QkFBWSxPQUFlO1FBQTNCLFlBQ0ksa0JBQU0sT0FBTyxDQUFDLFNBR2pCO1FBTk0sVUFBSSxHQUFHLGVBQWUsQ0FBQztRQUkxQixnSUFBZ0k7UUFDaEksTUFBTSxDQUFDLGdCQUFnQixDQUFDLENBQUMsS0FBSSxFQUFFLGFBQWEsQ0FBQyxTQUFTLENBQUMsQ0FBQzs7SUFDNUQsQ0FBQztJQUNMLG9CQUFDO0FBQUQsQ0FSQSxBQVFDLENBUmtDLFFBQVEsR0FRMUM7QUFSWSxzQ0FBYTtBQVUxQjs7R0FFRztBQUNIO0lBQW9DLGtDQUFRO0lBR3hDLHdCQUFZLE9BQWUsRUFBRSxnQkFBeUI7UUFBdEQsWUFDSSxrQkFBTSxPQUFPLEVBQUUsZ0JBQWdCLENBQUMsU0FHbkM7UUFOTSxVQUFJLEdBQUcsZ0JBQWdCLENBQUM7UUFJM0IsZ0lBQWdJO1FBQ2hJLE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDLEtBQUksRUFBRSxjQUFjLENBQUMsU0FBUyxDQUFDLENBQUM7O0lBQzdELENBQUM7SUFDTCxxQkFBQztBQUFELENBUkEsQUFRQyxDQVJtQyxRQUFRLEdBUTNDO0FBUlksd0NBQWM7QUFVM0I7O0dBRUc7QUFDSDtJQUF5Qyx1Q0FBUTtJQUc3Qyw2QkFBWSxPQUFlLEVBQUUsZ0JBQXlCO1FBQXRELFlBQ0ksa0JBQU0sT0FBTyxFQUFFLGdCQUFnQixDQUFDLFNBR25DO1FBTk0sVUFBSSxHQUFHLHFCQUFxQixDQUFDO1FBSWhDLGdJQUFnSTtRQUNoSSxNQUFNLENBQUMsZ0JBQWdCLENBQUMsQ0FBQyxLQUFJLEVBQUUsbUJBQW1CLENBQUMsU0FBUyxDQUFDLENBQUM7O0lBQ2xFLENBQUM7SUFDTCwwQkFBQztBQUFELENBUkEsQUFRQyxDQVJ3QyxRQUFRLEdBUWhEO0FBUlksa0RBQW1CIiwiZmlsZSI6ImFwaS9lcnJvcnMuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0dlbkVycm9yfSBmcm9tICcuLi9jb3JlL2Vycm9ycy9lcnJvcic7XG5cbi8qKlxuICogQXBpIGVycm9yLlxuICovXG5leHBvcnQgY2xhc3MgQVBJRXJyb3IgZXh0ZW5kcyBHZW5FcnJvciB7XG4gICAgcHVibGljIG5hbWUgPSAnQVBJRXJyb3InO1xuICAgIHByaXZhdGUgX2Fzc29jaWF0ZWRPYmplY3Q6IE9iamVjdDtcblxuICAgIGNvbnN0cnVjdG9yKG1lc3NhZ2U6IHN0cmluZywgYXNzb2NpYXRlZE9iamVjdD86IE9iamVjdCkge1xuICAgICAgICBzdXBlcihtZXNzYWdlKTtcbiAgICAgICAgLy8gaHR0cHM6Ly9naXRodWIuY29tL01pY3Jvc29mdC9UeXBlU2NyaXB0L3dpa2kvQnJlYWtpbmctQ2hhbmdlcyNleHRlbmRpbmctYnVpbHQtaW5zLWxpa2UtZXJyb3ItYXJyYXktYW5kLW1hcC1tYXktbm8tbG9uZ2VyLXdvcmtcbiAgICAgICAgT2JqZWN0WydzZXRQcm90b3R5cGVPZiddKHRoaXMsIEFQSUVycm9yLnByb3RvdHlwZSk7XG5cbiAgICAgICAgdGhpcy5fYXNzb2NpYXRlZE9iamVjdCA9IGFzc29jaWF0ZWRPYmplY3Q7XG4gICAgfVxuXG4gICAgcHVibGljIGdldCBhc3NvY2lhdGVkT2JqZWN0KCk6IE9iamVjdCB7XG4gICAgICAgIHJldHVybiB0aGlzLl9hc3NvY2lhdGVkT2JqZWN0O1xuICAgIH1cbn1cblxuLyoqXG4gKiBSZXF1ZXN0IGVycm9yLlxuICovXG5leHBvcnQgY2xhc3MgUmVxdWVzdEVycm9yIGV4dGVuZHMgQVBJRXJyb3Ige1xuICAgIHB1YmxpYyBuYW1lID0gJ1JlcXVlc3RFcnJvcic7XG5cbiAgICBjb25zdHJ1Y3RvcihwdWJsaWMgdXJsOiBzdHJpbmcsIG1lc3NhZ2U6IHN0cmluZywgYXNzb2NpYXRlZE9iamVjdD86IE9iamVjdCkge1xuICAgICAgICBzdXBlcihtZXNzYWdlLCBhc3NvY2lhdGVkT2JqZWN0KTtcbiAgICAgICAgLy8gaHR0cHM6Ly9naXRodWIuY29tL01pY3Jvc29mdC9UeXBlU2NyaXB0L3dpa2kvQnJlYWtpbmctQ2hhbmdlcyNleHRlbmRpbmctYnVpbHQtaW5zLWxpa2UtZXJyb3ItYXJyYXktYW5kLW1hcC1tYXktbm8tbG9uZ2VyLXdvcmtcbiAgICAgICAgT2JqZWN0WydzZXRQcm90b3R5cGVPZiddKHRoaXMsIFJlcXVlc3RFcnJvci5wcm90b3R5cGUpO1xuICAgIH1cbn1cblxuXG4vKipcbiAqIFF1ZXJ5T25lIGVycm9yIHRocm93biB3aGVuIFtbUmVzb3VyY2VdXSdzIHF1ZXJ5T25lIG1ldGhvZCBmYWlscy5cbiAqL1xuZXhwb3J0IGNsYXNzIFF1ZXJ5T25lRXJyb3IgZXh0ZW5kcyBBUElFcnJvciB7XG4gICAgcHVibGljIG5hbWUgPSAnUXVlcnlPbmVFcnJvcic7XG5cbiAgICBjb25zdHJ1Y3RvcihtZXNzYWdlOiBzdHJpbmcpIHtcbiAgICAgICAgc3VwZXIobWVzc2FnZSk7XG4gICAgICAgIC8vIGh0dHBzOi8vZ2l0aHViLmNvbS9NaWNyb3NvZnQvVHlwZVNjcmlwdC93aWtpL0JyZWFraW5nLUNoYW5nZXMjZXh0ZW5kaW5nLWJ1aWx0LWlucy1saWtlLWVycm9yLWFycmF5LWFuZC1tYXAtbWF5LW5vLWxvbmdlci13b3JrXG4gICAgICAgIE9iamVjdFsnc2V0UHJvdG90eXBlT2YnXSh0aGlzLCBRdWVyeU9uZUVycm9yLnByb3RvdHlwZSk7XG4gICAgfVxufVxuXG4vKipcbiAqIFdlYnNvY2tldCBlcnJvci5cbiAqL1xuZXhwb3J0IGNsYXNzIFdlYnNvY2tldEVycm9yIGV4dGVuZHMgQVBJRXJyb3Ige1xuICAgIHB1YmxpYyBuYW1lID0gJ1dlYnNvY2tldEVycm9yJztcblxuICAgIGNvbnN0cnVjdG9yKG1lc3NhZ2U6IHN0cmluZywgYXNzb2NpYXRlZE9iamVjdD86IE9iamVjdCkge1xuICAgICAgICBzdXBlcihtZXNzYWdlLCBhc3NvY2lhdGVkT2JqZWN0KTtcbiAgICAgICAgLy8gaHR0cHM6Ly9naXRodWIuY29tL01pY3Jvc29mdC9UeXBlU2NyaXB0L3dpa2kvQnJlYWtpbmctQ2hhbmdlcyNleHRlbmRpbmctYnVpbHQtaW5zLWxpa2UtZXJyb3ItYXJyYXktYW5kLW1hcC1tYXktbm8tbG9uZ2VyLXdvcmtcbiAgICAgICAgT2JqZWN0WydzZXRQcm90b3R5cGVPZiddKHRoaXMsIFdlYnNvY2tldEVycm9yLnByb3RvdHlwZSk7XG4gICAgfVxufVxuXG4vKipcbiAqIFF1ZXJ5IG9ic2VydmVycyBlcnJvci5cbiAqL1xuZXhwb3J0IGNsYXNzIFF1ZXJ5T2JzZXJ2ZXJzRXJyb3IgZXh0ZW5kcyBBUElFcnJvciB7XG4gICAgcHVibGljIG5hbWUgPSAnUXVlcnlPYnNlcnZlcnNFcnJvcic7XG5cbiAgICBjb25zdHJ1Y3RvcihtZXNzYWdlOiBzdHJpbmcsIGFzc29jaWF0ZWRPYmplY3Q/OiBPYmplY3QpIHtcbiAgICAgICAgc3VwZXIobWVzc2FnZSwgYXNzb2NpYXRlZE9iamVjdCk7XG4gICAgICAgIC8vIGh0dHBzOi8vZ2l0aHViLmNvbS9NaWNyb3NvZnQvVHlwZVNjcmlwdC93aWtpL0JyZWFraW5nLUNoYW5nZXMjZXh0ZW5kaW5nLWJ1aWx0LWlucy1saWtlLWVycm9yLWFycmF5LWFuZC1tYXAtbWF5LW5vLWxvbmdlci13b3JrXG4gICAgICAgIE9iamVjdFsnc2V0UHJvdG90eXBlT2YnXSh0aGlzLCBRdWVyeU9ic2VydmVyc0Vycm9yLnByb3RvdHlwZSk7XG4gICAgfVxufVxuIl19
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9hcGkvZXJyb3JzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7OztBQUFBLDhDQUE4QztBQUU5Qzs7R0FFRztBQUNIO0lBQThCLDRCQUFRO0lBSWxDLGtCQUFZLE9BQWUsRUFBRSxnQkFBeUI7UUFBdEQsWUFDSSxrQkFBTSxPQUFPLENBQUMsU0FLakI7UUFUTSxVQUFJLEdBQUcsVUFBVSxDQUFDO1FBS3JCLGdJQUFnSTtRQUNoSSxNQUFNLENBQUMsZ0JBQWdCLENBQUMsQ0FBQyxLQUFJLEVBQUUsUUFBUSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBRW5ELEtBQUksQ0FBQyxpQkFBaUIsR0FBRyxnQkFBZ0IsQ0FBQzs7SUFDOUMsQ0FBQztJQUVELHNCQUFXLHNDQUFnQjthQUEzQjtZQUNJLE9BQU8sSUFBSSxDQUFDLGlCQUFpQixDQUFDO1FBQ2xDLENBQUM7OztPQUFBO0lBQ0wsZUFBQztBQUFELENBZkEsQUFlQyxDQWY2QixnQkFBUSxHQWVyQztBQWZZLDRCQUFRO0FBaUJyQjs7R0FFRztBQUNIO0lBQWtDLGdDQUFRO0lBR3RDLHNCQUFtQixHQUFXLEVBQUUsT0FBZSxFQUFFLGdCQUF5QjtRQUExRSxZQUNJLGtCQUFNLE9BQU8sRUFBRSxnQkFBZ0IsQ0FBQyxTQUduQztRQUprQixTQUFHLEdBQUgsR0FBRyxDQUFRO1FBRnZCLFVBQUksR0FBRyxjQUFjLENBQUM7UUFJekIsZ0lBQWdJO1FBQ2hJLE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDLEtBQUksRUFBRSxZQUFZLENBQUMsU0FBUyxDQUFDLENBQUM7O0lBQzNELENBQUM7SUFDTCxtQkFBQztBQUFELENBUkEsQUFRQyxDQVJpQyxRQUFRLEdBUXpDO0FBUlksb0NBQVk7QUFXekI7O0dBRUc7QUFDSDtJQUFtQyxpQ0FBUTtJQUd2Qyx1QkFBWSxPQUFlO1FBQTNCLFlBQ0ksa0JBQU0sT0FBTyxDQUFDLFNBR2pCO1FBTk0sVUFBSSxHQUFHLGVBQWUsQ0FBQztRQUkxQixnSUFBZ0k7UUFDaEksTUFBTSxDQUFDLGdCQUFnQixDQUFDLENBQUMsS0FBSSxFQUFFLGFBQWEsQ0FBQyxTQUFTLENBQUMsQ0FBQzs7SUFDNUQsQ0FBQztJQUNMLG9CQUFDO0FBQUQsQ0FSQSxBQVFDLENBUmtDLFFBQVEsR0FRMUM7QUFSWSxzQ0FBYTtBQVUxQjs7R0FFRztBQUNIO0lBQW9DLGtDQUFRO0lBR3hDLHdCQUFZLE9BQWUsRUFBRSxnQkFBeUI7UUFBdEQsWUFDSSxrQkFBTSxPQUFPLEVBQUUsZ0JBQWdCLENBQUMsU0FHbkM7UUFOTSxVQUFJLEdBQUcsZ0JBQWdCLENBQUM7UUFJM0IsZ0lBQWdJO1FBQ2hJLE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDLEtBQUksRUFBRSxjQUFjLENBQUMsU0FBUyxDQUFDLENBQUM7O0lBQzdELENBQUM7SUFDTCxxQkFBQztBQUFELENBUkEsQUFRQyxDQVJtQyxRQUFRLEdBUTNDO0FBUlksd0NBQWM7QUFVM0I7O0dBRUc7QUFDSDtJQUF5Qyx1Q0FBUTtJQUc3Qyw2QkFBWSxPQUFlLEVBQUUsZ0JBQXlCO1FBQXRELFlBQ0ksa0JBQU0sT0FBTyxFQUFFLGdCQUFnQixDQUFDLFNBR25DO1FBTk0sVUFBSSxHQUFHLHFCQUFxQixDQUFDO1FBSWhDLGdJQUFnSTtRQUNoSSxNQUFNLENBQUMsZ0JBQWdCLENBQUMsQ0FBQyxLQUFJLEVBQUUsbUJBQW1CLENBQUMsU0FBUyxDQUFDLENBQUM7O0lBQ2xFLENBQUM7SUFDTCwwQkFBQztBQUFELENBUkEsQUFRQyxDQVJ3QyxRQUFRLEdBUWhEO0FBUlksa0RBQW1CIiwiZmlsZSI6ImFwaS9lcnJvcnMuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0dlbkVycm9yfSBmcm9tICcuLi9jb3JlL2Vycm9ycy9lcnJvcic7XG5cbi8qKlxuICogQXBpIGVycm9yLlxuICovXG5leHBvcnQgY2xhc3MgQVBJRXJyb3IgZXh0ZW5kcyBHZW5FcnJvciB7XG4gICAgcHVibGljIG5hbWUgPSAnQVBJRXJyb3InO1xuICAgIHByaXZhdGUgX2Fzc29jaWF0ZWRPYmplY3Q6IE9iamVjdDtcblxuICAgIGNvbnN0cnVjdG9yKG1lc3NhZ2U6IHN0cmluZywgYXNzb2NpYXRlZE9iamVjdD86IE9iamVjdCkge1xuICAgICAgICBzdXBlcihtZXNzYWdlKTtcbiAgICAgICAgLy8gaHR0cHM6Ly9naXRodWIuY29tL01pY3Jvc29mdC9UeXBlU2NyaXB0L3dpa2kvQnJlYWtpbmctQ2hhbmdlcyNleHRlbmRpbmctYnVpbHQtaW5zLWxpa2UtZXJyb3ItYXJyYXktYW5kLW1hcC1tYXktbm8tbG9uZ2VyLXdvcmtcbiAgICAgICAgT2JqZWN0WydzZXRQcm90b3R5cGVPZiddKHRoaXMsIEFQSUVycm9yLnByb3RvdHlwZSk7XG5cbiAgICAgICAgdGhpcy5fYXNzb2NpYXRlZE9iamVjdCA9IGFzc29jaWF0ZWRPYmplY3Q7XG4gICAgfVxuXG4gICAgcHVibGljIGdldCBhc3NvY2lhdGVkT2JqZWN0KCk6IE9iamVjdCB7XG4gICAgICAgIHJldHVybiB0aGlzLl9hc3NvY2lhdGVkT2JqZWN0O1xuICAgIH1cbn1cblxuLyoqXG4gKiBSZXF1ZXN0IGVycm9yLlxuICovXG5leHBvcnQgY2xhc3MgUmVxdWVzdEVycm9yIGV4dGVuZHMgQVBJRXJyb3Ige1xuICAgIHB1YmxpYyBuYW1lID0gJ1JlcXVlc3RFcnJvcic7XG5cbiAgICBjb25zdHJ1Y3RvcihwdWJsaWMgdXJsOiBzdHJpbmcsIG1lc3NhZ2U6IHN0cmluZywgYXNzb2NpYXRlZE9iamVjdD86IE9iamVjdCkge1xuICAgICAgICBzdXBlcihtZXNzYWdlLCBhc3NvY2lhdGVkT2JqZWN0KTtcbiAgICAgICAgLy8gaHR0cHM6Ly9naXRodWIuY29tL01pY3Jvc29mdC9UeXBlU2NyaXB0L3dpa2kvQnJlYWtpbmctQ2hhbmdlcyNleHRlbmRpbmctYnVpbHQtaW5zLWxpa2UtZXJyb3ItYXJyYXktYW5kLW1hcC1tYXktbm8tbG9uZ2VyLXdvcmtcbiAgICAgICAgT2JqZWN0WydzZXRQcm90b3R5cGVPZiddKHRoaXMsIFJlcXVlc3RFcnJvci5wcm90b3R5cGUpO1xuICAgIH1cbn1cblxuXG4vKipcbiAqIFF1ZXJ5T25lIGVycm9yIHRocm93biB3aGVuIFtbUmVzb3VyY2VdXSdzIHF1ZXJ5T25lIG1ldGhvZCBmYWlscy5cbiAqL1xuZXhwb3J0IGNsYXNzIFF1ZXJ5T25lRXJyb3IgZXh0ZW5kcyBBUElFcnJvciB7XG4gICAgcHVibGljIG5hbWUgPSAnUXVlcnlPbmVFcnJvcic7XG5cbiAgICBjb25zdHJ1Y3RvcihtZXNzYWdlOiBzdHJpbmcpIHtcbiAgICAgICAgc3VwZXIobWVzc2FnZSk7XG4gICAgICAgIC8vIGh0dHBzOi8vZ2l0aHViLmNvbS9NaWNyb3NvZnQvVHlwZVNjcmlwdC93aWtpL0JyZWFraW5nLUNoYW5nZXMjZXh0ZW5kaW5nLWJ1aWx0LWlucy1saWtlLWVycm9yLWFycmF5LWFuZC1tYXAtbWF5LW5vLWxvbmdlci13b3JrXG4gICAgICAgIE9iamVjdFsnc2V0UHJvdG90eXBlT2YnXSh0aGlzLCBRdWVyeU9uZUVycm9yLnByb3RvdHlwZSk7XG4gICAgfVxufVxuXG4vKipcbiAqIFdlYnNvY2tldCBlcnJvci5cbiAqL1xuZXhwb3J0IGNsYXNzIFdlYnNvY2tldEVycm9yIGV4dGVuZHMgQVBJRXJyb3Ige1xuICAgIHB1YmxpYyBuYW1lID0gJ1dlYnNvY2tldEVycm9yJztcblxuICAgIGNvbnN0cnVjdG9yKG1lc3NhZ2U6IHN0cmluZywgYXNzb2NpYXRlZE9iamVjdD86IE9iamVjdCkge1xuICAgICAgICBzdXBlcihtZXNzYWdlLCBhc3NvY2lhdGVkT2JqZWN0KTtcbiAgICAgICAgLy8gaHR0cHM6Ly9naXRodWIuY29tL01pY3Jvc29mdC9UeXBlU2NyaXB0L3dpa2kvQnJlYWtpbmctQ2hhbmdlcyNleHRlbmRpbmctYnVpbHQtaW5zLWxpa2UtZXJyb3ItYXJyYXktYW5kLW1hcC1tYXktbm8tbG9uZ2VyLXdvcmtcbiAgICAgICAgT2JqZWN0WydzZXRQcm90b3R5cGVPZiddKHRoaXMsIFdlYnNvY2tldEVycm9yLnByb3RvdHlwZSk7XG4gICAgfVxufVxuXG4vKipcbiAqIFF1ZXJ5IG9ic2VydmVycyBlcnJvci5cbiAqL1xuZXhwb3J0IGNsYXNzIFF1ZXJ5T2JzZXJ2ZXJzRXJyb3IgZXh0ZW5kcyBBUElFcnJvciB7XG4gICAgcHVibGljIG5hbWUgPSAnUXVlcnlPYnNlcnZlcnNFcnJvcic7XG5cbiAgICBjb25zdHJ1Y3RvcihtZXNzYWdlOiBzdHJpbmcsIGFzc29jaWF0ZWRPYmplY3Q/OiBPYmplY3QpIHtcbiAgICAgICAgc3VwZXIobWVzc2FnZSwgYXNzb2NpYXRlZE9iamVjdCk7XG4gICAgICAgIC8vIGh0dHBzOi8vZ2l0aHViLmNvbS9NaWNyb3NvZnQvVHlwZVNjcmlwdC93aWtpL0JyZWFraW5nLUNoYW5nZXMjZXh0ZW5kaW5nLWJ1aWx0LWlucy1saWtlLWVycm9yLWFycmF5LWFuZC1tYXAtbWF5LW5vLWxvbmdlci13b3JrXG4gICAgICAgIE9iamVjdFsnc2V0UHJvdG90eXBlT2YnXSh0aGlzLCBRdWVyeU9ic2VydmVyc0Vycm9yLnByb3RvdHlwZSk7XG4gICAgfVxufVxuIl19

@@ -36,4 +36,3 @@ import { Connection } from './connection';

*/
private connect;
private connect(restUri, websocketUri);
}
//# sourceMappingURL=index.d.ts.map

@@ -157,4 +157,4 @@ import * as Rx from 'rx';

isConnected(): Rx.Observable<boolean>;
private _registerMockRequestHandler;
private _handleMockResponse;
private _registerMockRequestHandler<T>(method, path, handler);
private _handleMockResponse(method, responsePath, parameters, data);
/**

@@ -208,5 +208,5 @@ * @inheritdoc

queryObserverManager(): QueryObserverManager;
private _getMockItemsFor;
private _updateMockObserver;
private _notifyMockObservers;
private _getMockItemsFor<T>(resource);
private _updateMockObserver(observer, items, notify?);
private _notifyMockObservers<T>(items);
/**

@@ -344,2 +344,1 @@ * @inheritdoc

export declare function slugQuery<T extends CollectionBase | DataBase>(query: any, items: T[]): T[];
//# sourceMappingURL=mock.d.ts.map

@@ -15,3 +15,3 @@ import * as Rx from 'rx';

REINITIALIZING = 3,
STOPPED = 4
STOPPED = 4,
}

@@ -83,3 +83,3 @@ export interface ReinitializeHandler {

*/
private _notify;
private _notify();
/**

@@ -168,2 +168,1 @@ * Returns an observable that will emit a list of items when any changes

}
//# sourceMappingURL=queryobserver.d.ts.map

@@ -44,2 +44,1 @@ import * as Rx from 'rx';

}
//# sourceMappingURL=resource.d.ts.map

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

//# sourceMappingURL=data:application/json;charset=utf8;base64,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Z0JBQ0gsK0ZBQStGO2dCQUMvRixLQUEyQixVQUFhLEVBQWIsK0JBQWEsRUFBYiwyQkFBYSxFQUFiLElBQWEsRUFBRTtvQkFBckMsSUFBTSxZQUFZLHNCQUFBO29CQUNuQixZQUFZLENBQUMsT0FBTyxFQUFFLENBQUM7aUJBQzFCO2dCQUVELHFGQUFxRjtnQkFDckYsSUFBSSxLQUFJLENBQUMsZUFBZSxDQUFDLGVBQWUsQ0FBQyxFQUFFO29CQUN2QyxLQUFJLENBQUMsZUFBZSxDQUFDLGVBQWUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxNQUFNLENBQUMsS0FBSSxDQUFDLGVBQWUsQ0FBQyxlQUFlLENBQUMsRUFBRSxVQUFDLE9BQU87d0JBQzVGLHlDQUF5Qzt3QkFDekMsT0FBTyxPQUFPLENBQUMsYUFBYSxLQUFLLGFBQWEsQ0FBQztvQkFDbkQsQ0FBQyxDQUFDLENBQUM7aUJBQ047WUFDTCxDQUFDLENBQUM7UUFDTixDQUFDLENBQUMsQ0FBQyxPQUFPLEVBQUUsQ0FBQyxRQUFRLEVBQUUsQ0FBQztJQUM1QixDQUFDO0lBQ0wsZUFBQztBQUFELENBdEpBLEFBc0pDLElBQUE7QUF0SnFCLDRCQUFRIiwiZmlsZSI6ImFwaS9yZXNvdXJjZS5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIF8gZnJvbSAnbG9kYXNoJztcbmltcG9ydCAqIGFzIFJ4IGZyb20gJ3J4JztcblxuaW1wb3J0IHtDb25uZWN0aW9uLCBRdWVyeU9ic2VydmVyUmVzcG9uc2V9IGZyb20gJy4vY29ubmVjdGlvbic7XG5pbXBvcnQge1F1ZXJ5T2JzZXJ2ZXJTdGF0dXN9IGZyb20gJy4vcXVlcnlvYnNlcnZlcic7XG5pbXBvcnQgKiBhcyB0eXBlcyBmcm9tICcuL3R5cGVzL3Jlc3QnO1xuXG4vKipcbiAqIEEgbWFwcGluZyBvZiBxdWVyaWVzIHRvIHRoZWlyIHF1ZXJ5IG9ic2VydmVyIGlkZW50aWZpZXJzLCBzbyB0aGF0IHdlIGRvbid0XG4gKiBuZWVkIHRvIGhpdCB0aGUgc2VydmVyIGluIGNhc2UgdGhlIGlkZW50aWZpZXIgaXMgYWxyZWFkeSBrbm93bi5cbiAqL1xuaW50ZXJmYWNlIFF1ZXJ5T2JzZXJ2ZXJJZENhY2hlIHtcbiAgICBbaW5kZXg6IHN0cmluZ106IHN0cmluZztcbn1cblxuaW50ZXJmYWNlIFBlbmRpbmdRdWVyaWVzIHtcbiAgICBbaW5kZXg6IHN0cmluZ106IHtcbiAgICAgICAgc3Vic2NyaXB0aW9uczogUnguRGlzcG9zYWJsZVtdO1xuICAgICAgICBvYnNlcnZlcjogUnguT2JzZXJ2ZXI8YW55PjtcbiAgICB9W107XG59XG5cbi8qKlxuICogUGVyLXF1ZXJ5IGNvbmZpZ3VyYXRpb24gb3B0aW9ucy5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBRdWVyeU9wdGlvbnMge1xuICAgIHJlYWN0aXZlPzogYm9vbGVhbjtcbn1cblxuLyoqXG4gKiBBbiBhYnN0cmFjdCByZXNvdXJjZSBjbGFzcy5cbiAqL1xuZXhwb3J0IGFic3RyYWN0IGNsYXNzIFJlc291cmNlIHtcbiAgICAvLyBDYWNoZSBxdWVyeSBvYnNlcnZlciBpZGVudGlmaWVycy5cbiAgICBwcml2YXRlIF9xdWVyeU9ic2VydmVySWRDYWNoZTogUXVlcnlPYnNlcnZlcklkQ2FjaGUgPSB7fTtcbiAgICBwcml2YXRlIF9wZW5kaW5nUXVlcmllczogUGVuZGluZ1F1ZXJpZXMgPSB7fTtcblxuICAgIC8qKlxuICAgICAqIENvbnN0cnVjdHMgYSBuZXcgcmVzb3VyY2UuXG4gICAgICpcbiAgICAgKiBAcGFyYW0gY29ubmVjdGlvbiBDb25uZWN0aW9uIHdpdGggdGhlIGdlbmVzaXMgcGxhdGZvcm0gc2VydmVyXG4gICAgICovXG4gICAgY29uc3RydWN0b3IocHJpdmF0ZSBfY29ubmVjdGlvbjogQ29ubmVjdGlvbikge1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIENvbm5lY3Rpb24gdG8gdGhlIGdlbmVzaXMtcGxhdGZvcm0gc2VydmVyLlxuICAgICAqL1xuICAgIHB1YmxpYyBnZXQgY29ubmVjdGlvbigpOiBDb25uZWN0aW9uIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2Nvbm5lY3Rpb247XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogUmV0dXJucyBiYXNlIHBhdGggdGhhdCByZXNvdXJjZSBwYXRoIGlzIGJhc2VkIHVwb24uXG4gICAgICovXG4gICAgcHJvdGVjdGVkIGdldEJhc2VQYXRoKCk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiBgL2FwaWA7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogUGVyZm9ybXMgYW55IHF1ZXJ5IHRyYW5zZm9ybWF0aW9ucyBuZWVkZWQgZm9yIHRoaXMgcmVzb3VyY2UuIFRoZVxuICAgICAqIG9yaWdpbmFsIHF1ZXJ5IG9iamVjdCBpcyBub3QgbW9kaWZpZWQuXG4gICAgICpcbiAgICAgKiBAcGFyYW0gcXVlcnkgUXVlcnlcbiAgICAgKiBAcmV0dXJuIFRyYW5zZm9ybWVkIHF1ZXJ5XG4gICAgICovXG4gICAgcHJvdGVjdGVkIHRyYW5zZm9ybVF1ZXJ5KHF1ZXJ5OiB0eXBlcy5RdWVyeSk6IHR5cGVzLlF1ZXJ5IHtcbiAgICAgICAgcmV0dXJuIF8uY2xvbmVEZWVwKHF1ZXJ5KTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBQZXJmb3JtcyBhIHF1ZXJ5IGFnYWluc3QgdGhpcyByZXNvdXJjZSBhbmQgc3Vic2NyaWJlcyB0byBzdWJzZXF1ZW50IHVwZGF0ZXMuXG4gICAgICovXG4gICAgcHJvdGVjdGVkIHJlYWN0aXZlUmVxdWVzdDxUPihxdWVyeTogdHlwZXMuUXVlcnksIHBhdGg6IHN0cmluZywgb3B0aW9ucz86IFF1ZXJ5T3B0aW9ucyk6IFJ4Lk9ic2VydmFibGU8VFtdPiB7XG4gICAgICAgIC8vIFdlIGFzc3VtZSB0aGF0IHRoZSBzYW1lIHF1ZXJ5IG9iamVjdCBvbiB0aGUgc2FtZSByZXNvdXJjZSB3aWxsIGFsd2F5cyByZXN1bHQgaW4gdGhlIHNhbWVcbiAgICAgICAgLy8gdW5kZXJseWluZyBxdWVyeXNldCAoYW5kIHRoZXJlZm9yZSBxdWVyeSBvYnNlcnZlcikuXG4gICAgICAgIGxldCBzZXJpYWxpemVkUXVlcnkgPSBKU09OLnN0cmluZ2lmeShbcGF0aCwgcXVlcnldKTtcbiAgICAgICAgb3B0aW9ucyA9IF8uZGVmYXVsdHMoe30sIG9wdGlvbnMgfHwge30sIHtcbiAgICAgICAgICAgIHJlYWN0aXZlOiBmYWxzZSxcbiAgICAgICAgfSk7XG5cbiAgICAgICAgcmV0dXJuIFJ4Lk9ic2VydmFibGUuY3JlYXRlPFRbXT4oKG9ic2VydmVyKSA9PiB7XG4gICAgICAgICAgICBpZiAoIW9wdGlvbnMucmVhY3RpdmUpIHtcbiAgICAgICAgICAgICAgICAvLyBSZWFjdGl2aXR5IGlzIGRpc2FibGVkIGZvciB0aGlzIHF1ZXJ5LlxuICAgICAgICAgICAgICAgIHF1ZXJ5ID0gdGhpcy50cmFuc2Zvcm1RdWVyeShxdWVyeSk7XG4gICAgICAgICAgICAgICAgY29uc3Qgc3Vic2NyaXB0aW9uID0gdGhpcy5jb25uZWN0aW9uLmdldChwYXRoLCBxdWVyeSkubWFwKChyZXNwb25zZTogYW55KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIC8vIENvcnJlY3RseSBoYW5kbGUgcGFnaW5hdGVkIHJlc3VsdHMuXG4gICAgICAgICAgICAgICAgICAgIGlmIChfLmhhcyhyZXNwb25zZSwgJ3Jlc3VsdHMnKSkgcmV0dXJuIHJlc3BvbnNlLnJlc3VsdHM7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiByZXNwb25zZTtcbiAgICAgICAgICAgICAgICB9KS5zdWJzY3JpYmUob2JzZXJ2ZXIpO1xuXG4gICAgICAgICAgICAgICAgcmV0dXJuICgpID0+IHN1YnNjcmlwdGlvbi5kaXNwb3NlKCk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC8vIFJlYWN0aXZpdHkgaXMgZW5hYmxlZC5cbiAgICAgICAgICAgIGxldCBxdWVyeU9ic2VydmVySWQgPSB0aGlzLl9xdWVyeU9ic2VydmVySWRDYWNoZVtzZXJpYWxpemVkUXVlcnldO1xuICAgICAgICAgICAgbGV0IHBlbmRpbmdRdWVyaWVzID0gdGhpcy5fcGVuZGluZ1F1ZXJpZXNbc2VyaWFsaXplZFF1ZXJ5XTtcblxuICAgICAgICAgICAgLy8gUGVyZm9ybSBhIFJFU1QgcXVlcnkgdG8gZ2V0IHRoZSBvYnNlcnZlciBpZGVudGlmaWVyIGFuZCB0byBzdWJzY3JpYmUgdG8gbmV3IHVwZGF0ZXMuXG4gICAgICAgICAgICBsZXQgc3Vic2NyaXB0aW9uczogUnguRGlzcG9zYWJsZVtdID0gW107XG5cbiAgICAgICAgICAgIGlmIChxdWVyeU9ic2VydmVySWQpIHtcbiAgICAgICAgICAgICAgICAvLyBUaGlzIHF1ZXJ5IG9ic2VydmVyIGlkZW50aWZpZXIgaGFzIGFscmVhZHkgYmVlbiBjYWNoZWQuIENoZWNrIGlmIGl0IGV4aXN0cyBhbmQgaW4gdGhpc1xuICAgICAgICAgICAgICAgIC8vIGNhc2UganVzdCBzdWJzY3JpYmUgdG8gYWxsIGl0ZW1zLlxuICAgICAgICAgICAgICAgIGxldCBxdWVyeU9ic2VydmVyID0gdGhpcy5jb25uZWN0aW9uLnF1ZXJ5T2JzZXJ2ZXJNYW5hZ2VyKCkuZ2V0KHF1ZXJ5T2JzZXJ2ZXJJZCwgZmFsc2UpO1xuICAgICAgICAgICAgICAgIGlmIChxdWVyeU9ic2VydmVyKSB7XG4gICAgICAgICAgICAgICAgICAgIGlmIChxdWVyeU9ic2VydmVyLnN0YXR1cyA9PT0gUXVlcnlPYnNlcnZlclN0YXR1cy5JTklUSUFMSVpFRCB8fFxuICAgICAgICAgICAgICAgICAgICAgICAgcXVlcnlPYnNlcnZlci5zdGF0dXMgPT09IFF1ZXJ5T2JzZXJ2ZXJTdGF0dXMuUkVJTklUSUFMSVpJTkcpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHN1YnNjcmlwdGlvbnMucHVzaChxdWVyeU9ic2VydmVyLm9ic2VydmFibGUoKS5zdWJzY3JpYmUob2JzZXJ2ZXIpKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgIGlmIChxdWVyeU9ic2VydmVyLnN0YXR1cyA9PT0gUXVlcnlPYnNlcnZlclN0YXR1cy5JTklUSUFMSVpFRCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgb2JzZXJ2ZXIub25OZXh0KHF1ZXJ5T2JzZXJ2ZXIuaXRlbXMpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBpZiAoXy5pc0VtcHR5KHN1YnNjcmlwdGlvbnMpKSB7XG4gICAgICAgICAgICAgICAgaWYgKHBlbmRpbmdRdWVyaWVzKSB7XG4gICAgICAgICAgICAgICAgICAgIC8vIEEgcmVxdWVzdCBmb3IgdGhlIHNhbWUgcXVlcnkgaXMgYWxyZWFkeSBpbiBwcm9ncmVzcy5cbiAgICAgICAgICAgICAgICAgICAgcGVuZGluZ1F1ZXJpZXMucHVzaCh7b2JzZXJ2ZXIsIHN1YnNjcmlwdGlvbnN9KTtcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLl9wZW5kaW5nUXVlcmllc1tzZXJpYWxpemVkUXVlcnldID0gW3tvYnNlcnZlciwgc3Vic2NyaXB0aW9uc31dO1xuXG4gICAgICAgICAgICAgICAgICAgIHF1ZXJ5ID0gXy5hc3NpZ24odGhpcy50cmFuc2Zvcm1RdWVyeShxdWVyeSksIHtvYnNlcnZlOiB0aGlzLmNvbm5lY3Rpb24uc2Vzc2lvbklkKCl9KTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5jb25uZWN0aW9uLnF1ZXJ5T2JzZXJ2ZXJNYW5hZ2VyKCkuY2hhaW5BZnRlclVuc3Vic2NyaWJlKCgpID0+IHRoaXMuY29ubmVjdGlvbi5nZXQocGF0aCwgcXVlcnkpKS5zdWJzY3JpYmUoXG4gICAgICAgICAgICAgICAgICAgICAgICAocmVzcG9uc2U6IFF1ZXJ5T2JzZXJ2ZXJSZXNwb25zZSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIFBvcHVsYXRlIG1lc3NhZ2VzIGZyb20gdGhpcyByZXF1ZXN0LlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBxdWVyeU9ic2VydmVyID0gdGhpcy5jb25uZWN0aW9uLnF1ZXJ5T2JzZXJ2ZXJNYW5hZ2VyKCkuZ2V0KHJlc3BvbnNlLm9ic2VydmVyKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLl9xdWVyeU9ic2VydmVySWRDYWNoZVtzZXJpYWxpemVkUXVlcnldID0gcmVzcG9uc2Uub2JzZXJ2ZXI7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBTZXR1cCBhIHJlaW5pdGlhbGl6YXRpb24gaGFuZGxlciBmb3IgdGhpcyBvYnNlcnZlci4gSXQgbWF5IGJlIHVzZWQgaW4gY2FzZSB0aGUgcGFyYW1ldGVyc1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIG9mIGEgY29ubmVjdGlvbiBjaGFuZ2UgYW5kIHRoZSBvYnNlcnZlciBuZWVkcyB0byBiZSByZS1jcmVhdGVkIG9uIHRoZSBzZXJ2ZXIgd2l0aG91dCBsb3NpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBhbnkgb2YgdGhlIGNsaWVudC1zaWRlIHN1YnNjcmlwdGlvbnMuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcXVlcnlPYnNlcnZlci5zZXRSZWluaXRpYWxpemVIYW5kbGVyKCgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuY29ubmVjdGlvbi5nZXQocGF0aCwgcXVlcnkpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pO1xuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKF8uaXNFbXB0eSh0aGlzLl9wZW5kaW5nUXVlcmllc1tzZXJpYWxpemVkUXVlcnldKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBTZW5kIC9hcGkvcXVlcnlvYnNlcnZlci91bnN1YnNjcmliZSwgc2FtZSBhcyB3ZSB3b3VsZCBpZiBzdWJzY3JpYmVycyBnb3QgZGlzcG9zZWQgYWZ0ZXJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gcGVuZGluZ1F1ZXJpZXMgcmVzb2x2ZSwgaW5zdGVhZCBvZiBiZWZvcmUuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHF1ZXJ5T2JzZXJ2ZXIub2JzZXJ2YWJsZSgpLnN1YnNjcmliZSgpLmRpc3Bvc2UoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb3IgKGNvbnN0IHBlbmRpbmcgb2YgdGhpcy5fcGVuZGluZ1F1ZXJpZXNbc2VyaWFsaXplZFF1ZXJ5XSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGVuZGluZy5zdWJzY3JpcHRpb25zLnB1c2gocXVlcnlPYnNlcnZlci5vYnNlcnZhYmxlKCkuc3Vic2NyaWJlKHBlbmRpbmcub2JzZXJ2ZXIpKTtcblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHF1ZXJ5T2JzZXJ2ZXIuc3RhdHVzID09PSBRdWVyeU9ic2VydmVyU3RhdHVzLklOSVRJQUxJWkVEKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gSWYgdGhlIHF1ZXJ5IG9ic2VydmVyIGlzIGFscmVhZHkgaW5pdGlhbGl6ZWQsIGVtaXQgdGhlIGN1cnJlbnQgaXRlbXMgaW1tZWRpYXRlbHkuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGVuZGluZy5vYnNlcnZlci5vbk5leHQocXVlcnlPYnNlcnZlci5pdGVtcyk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZWxldGUgdGhpcy5fcGVuZGluZ1F1ZXJpZXNbc2VyaWFsaXplZFF1ZXJ5XTtcblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChxdWVyeU9ic2VydmVyLnN0YXR1cyAhPT0gUXVlcnlPYnNlcnZlclN0YXR1cy5JTklUSUFMSVpFRCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBxdWVyeU9ic2VydmVyLmluaXRpYWxpemUocmVzcG9uc2UuaXRlbXMpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICAoZXJyb3IpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBvYnNlcnZlci5vbkVycm9yKGVycm9yKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHJldHVybiAoKSA9PiB7XG4gICAgICAgICAgICAgICAgLy8gRGlzcG9zZSBvZiB0aGUgcXVlcnkgb2JzZXJ2ZXIgc3Vic2NyaXB0aW9uIHdoZW4gYWxsIHN1YnNjcmlwdGlvbnMgdG8gdGhpcyBxdWVyeSBhcmUgc3RvcHBlZC5cbiAgICAgICAgICAgICAgICBmb3IgKGNvbnN0IHN1YnNjcmlwdGlvbiBvZiBzdWJzY3JpcHRpb25zKSB7XG4gICAgICAgICAgICAgICAgICAgIHN1YnNjcmlwdGlvbi5kaXNwb3NlKCk7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgLy8gSWYgcXVlcnkgaXMgc3RpbGwganVzdCBwZW5kaW5nLCByZW1vdmUgb2JzZXJ2ZXIgYmVmb3JlIGl0IGV2ZW4gYmVjb21lcyBkaXNwb3NhYmxlLlxuICAgICAgICAgICAgICAgIGlmICh0aGlzLl9wZW5kaW5nUXVlcmllc1tzZXJpYWxpemVkUXVlcnldKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX3BlbmRpbmdRdWVyaWVzW3NlcmlhbGl6ZWRRdWVyeV0gPSBfLnJlamVjdCh0aGlzLl9wZW5kaW5nUXVlcmllc1tzZXJpYWxpemVkUXVlcnldLCAocGVuZGluZykgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgLy8gQ2hlY2sgZm9yIHNhbWUgcmVmZXJlbmNlLCBub3QgY29udGVudCFcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBwZW5kaW5nLnN1YnNjcmlwdGlvbnMgPT09IHN1YnNjcmlwdGlvbnM7XG4gICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH07XG4gICAgICAgIH0pLnB1Ymxpc2goKS5yZWZDb3VudCgpO1xuICAgIH1cbn1cbiJdfQ==
//# sourceMappingURL=data:application/json;charset=utf8;base64,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LCtGQUErRjtnQkFDL0YsS0FBMkIsVUFBYSxFQUFiLCtCQUFhLEVBQWIsMkJBQWEsRUFBYixJQUFhO29CQUFuQyxJQUFNLFlBQVksc0JBQUE7b0JBQ25CLFlBQVksQ0FBQyxPQUFPLEVBQUUsQ0FBQztpQkFDMUI7Z0JBRUQscUZBQXFGO2dCQUNyRixJQUFJLEtBQUksQ0FBQyxlQUFlLENBQUMsZUFBZSxDQUFDLEVBQUU7b0JBQ3ZDLEtBQUksQ0FBQyxlQUFlLENBQUMsZUFBZSxDQUFDLEdBQUcsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxLQUFJLENBQUMsZUFBZSxDQUFDLGVBQWUsQ0FBQyxFQUFFLFVBQUMsT0FBTzt3QkFDNUYseUNBQXlDO3dCQUN6QyxPQUFPLE9BQU8sQ0FBQyxhQUFhLEtBQUssYUFBYSxDQUFDO29CQUNuRCxDQUFDLENBQUMsQ0FBQztpQkFDTjtZQUNMLENBQUMsQ0FBQztRQUNOLENBQUMsQ0FBQyxDQUFDLE9BQU8sRUFBRSxDQUFDLFFBQVEsRUFBRSxDQUFDO0lBQzVCLENBQUM7SUFDTCxlQUFDO0FBQUQsQ0F0SkEsQUFzSkMsSUFBQTtBQXRKcUIsNEJBQVEiLCJmaWxlIjoiYXBpL3Jlc291cmNlLmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgXyBmcm9tICdsb2Rhc2gnO1xuaW1wb3J0ICogYXMgUnggZnJvbSAncngnO1xuXG5pbXBvcnQge0Nvbm5lY3Rpb24sIFF1ZXJ5T2JzZXJ2ZXJSZXNwb25zZX0gZnJvbSAnLi9jb25uZWN0aW9uJztcbmltcG9ydCB7UXVlcnlPYnNlcnZlclN0YXR1c30gZnJvbSAnLi9xdWVyeW9ic2VydmVyJztcbmltcG9ydCAqIGFzIHR5cGVzIGZyb20gJy4vdHlwZXMvcmVzdCc7XG5cbi8qKlxuICogQSBtYXBwaW5nIG9mIHF1ZXJpZXMgdG8gdGhlaXIgcXVlcnkgb2JzZXJ2ZXIgaWRlbnRpZmllcnMsIHNvIHRoYXQgd2UgZG9uJ3RcbiAqIG5lZWQgdG8gaGl0IHRoZSBzZXJ2ZXIgaW4gY2FzZSB0aGUgaWRlbnRpZmllciBpcyBhbHJlYWR5IGtub3duLlxuICovXG5pbnRlcmZhY2UgUXVlcnlPYnNlcnZlcklkQ2FjaGUge1xuICAgIFtpbmRleDogc3RyaW5nXTogc3RyaW5nO1xufVxuXG5pbnRlcmZhY2UgUGVuZGluZ1F1ZXJpZXMge1xuICAgIFtpbmRleDogc3RyaW5nXToge1xuICAgICAgICBzdWJzY3JpcHRpb25zOiBSeC5EaXNwb3NhYmxlW107XG4gICAgICAgIG9ic2VydmVyOiBSeC5PYnNlcnZlcjxhbnk+O1xuICAgIH1bXTtcbn1cblxuLyoqXG4gKiBQZXItcXVlcnkgY29uZmlndXJhdGlvbiBvcHRpb25zLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFF1ZXJ5T3B0aW9ucyB7XG4gICAgcmVhY3RpdmU/OiBib29sZWFuO1xufVxuXG4vKipcbiAqIEFuIGFic3RyYWN0IHJlc291cmNlIGNsYXNzLlxuICovXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgUmVzb3VyY2Uge1xuICAgIC8vIENhY2hlIHF1ZXJ5IG9ic2VydmVyIGlkZW50aWZpZXJzLlxuICAgIHByaXZhdGUgX3F1ZXJ5T2JzZXJ2ZXJJZENhY2hlOiBRdWVyeU9ic2VydmVySWRDYWNoZSA9IHt9O1xuICAgIHByaXZhdGUgX3BlbmRpbmdRdWVyaWVzOiBQZW5kaW5nUXVlcmllcyA9IHt9O1xuXG4gICAgLyoqXG4gICAgICogQ29uc3RydWN0cyBhIG5ldyByZXNvdXJjZS5cbiAgICAgKlxuICAgICAqIEBwYXJhbSBjb25uZWN0aW9uIENvbm5lY3Rpb24gd2l0aCB0aGUgZ2VuZXNpcyBwbGF0Zm9ybSBzZXJ2ZXJcbiAgICAgKi9cbiAgICBjb25zdHJ1Y3Rvcihwcml2YXRlIF9jb25uZWN0aW9uOiBDb25uZWN0aW9uKSB7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQ29ubmVjdGlvbiB0byB0aGUgZ2VuZXNpcy1wbGF0Zm9ybSBzZXJ2ZXIuXG4gICAgICovXG4gICAgcHVibGljIGdldCBjb25uZWN0aW9uKCk6IENvbm5lY3Rpb24ge1xuICAgICAgICByZXR1cm4gdGhpcy5fY29ubmVjdGlvbjtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBSZXR1cm5zIGJhc2UgcGF0aCB0aGF0IHJlc291cmNlIHBhdGggaXMgYmFzZWQgdXBvbi5cbiAgICAgKi9cbiAgICBwcm90ZWN0ZWQgZ2V0QmFzZVBhdGgoKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIGAvYXBpYDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBQZXJmb3JtcyBhbnkgcXVlcnkgdHJhbnNmb3JtYXRpb25zIG5lZWRlZCBmb3IgdGhpcyByZXNvdXJjZS4gVGhlXG4gICAgICogb3JpZ2luYWwgcXVlcnkgb2JqZWN0IGlzIG5vdCBtb2RpZmllZC5cbiAgICAgKlxuICAgICAqIEBwYXJhbSBxdWVyeSBRdWVyeVxuICAgICAqIEByZXR1cm4gVHJhbnNmb3JtZWQgcXVlcnlcbiAgICAgKi9cbiAgICBwcm90ZWN0ZWQgdHJhbnNmb3JtUXVlcnkocXVlcnk6IHR5cGVzLlF1ZXJ5KTogdHlwZXMuUXVlcnkge1xuICAgICAgICByZXR1cm4gXy5jbG9uZURlZXAocXVlcnkpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFBlcmZvcm1zIGEgcXVlcnkgYWdhaW5zdCB0aGlzIHJlc291cmNlIGFuZCBzdWJzY3JpYmVzIHRvIHN1YnNlcXVlbnQgdXBkYXRlcy5cbiAgICAgKi9cbiAgICBwcm90ZWN0ZWQgcmVhY3RpdmVSZXF1ZXN0PFQ+KHF1ZXJ5OiB0eXBlcy5RdWVyeSwgcGF0aDogc3RyaW5nLCBvcHRpb25zPzogUXVlcnlPcHRpb25zKTogUnguT2JzZXJ2YWJsZTxUW10+IHtcbiAgICAgICAgLy8gV2UgYXNzdW1lIHRoYXQgdGhlIHNhbWUgcXVlcnkgb2JqZWN0IG9uIHRoZSBzYW1lIHJlc291cmNlIHdpbGwgYWx3YXlzIHJlc3VsdCBpbiB0aGUgc2FtZVxuICAgICAgICAvLyB1bmRlcmx5aW5nIHF1ZXJ5c2V0IChhbmQgdGhlcmVmb3JlIHF1ZXJ5IG9ic2VydmVyKS5cbiAgICAgICAgbGV0IHNlcmlhbGl6ZWRRdWVyeSA9IEpTT04uc3RyaW5naWZ5KFtwYXRoLCBxdWVyeV0pO1xuICAgICAgICBvcHRpb25zID0gXy5kZWZhdWx0cyh7fSwgb3B0aW9ucyB8fCB7fSwge1xuICAgICAgICAgICAgcmVhY3RpdmU6IGZhbHNlLFxuICAgICAgICB9KTtcblxuICAgICAgICByZXR1cm4gUnguT2JzZXJ2YWJsZS5jcmVhdGU8VFtdPigob2JzZXJ2ZXIpID0+IHtcbiAgICAgICAgICAgIGlmICghb3B0aW9ucy5yZWFjdGl2ZSkge1xuICAgICAgICAgICAgICAgIC8vIFJlYWN0aXZpdHkgaXMgZGlzYWJsZWQgZm9yIHRoaXMgcXVlcnkuXG4gICAgICAgICAgICAgICAgcXVlcnkgPSB0aGlzLnRyYW5zZm9ybVF1ZXJ5KHF1ZXJ5KTtcbiAgICAgICAgICAgICAgICBjb25zdCBzdWJzY3JpcHRpb24gPSB0aGlzLmNvbm5lY3Rpb24uZ2V0KHBhdGgsIHF1ZXJ5KS5tYXAoKHJlc3BvbnNlOiBhbnkpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgLy8gQ29ycmVjdGx5IGhhbmRsZSBwYWdpbmF0ZWQgcmVzdWx0cy5cbiAgICAgICAgICAgICAgICAgICAgaWYgKF8uaGFzKHJlc3BvbnNlLCAncmVzdWx0cycpKSByZXR1cm4gcmVzcG9uc2UucmVzdWx0cztcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHJlc3BvbnNlO1xuICAgICAgICAgICAgICAgIH0pLnN1YnNjcmliZShvYnNlcnZlcik7XG5cbiAgICAgICAgICAgICAgICByZXR1cm4gKCkgPT4gc3Vic2NyaXB0aW9uLmRpc3Bvc2UoKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLy8gUmVhY3Rpdml0eSBpcyBlbmFibGVkLlxuICAgICAgICAgICAgbGV0IHF1ZXJ5T2JzZXJ2ZXJJZCA9IHRoaXMuX3F1ZXJ5T2JzZXJ2ZXJJZENhY2hlW3NlcmlhbGl6ZWRRdWVyeV07XG4gICAgICAgICAgICBsZXQgcGVuZGluZ1F1ZXJpZXMgPSB0aGlzLl9wZW5kaW5nUXVlcmllc1tzZXJpYWxpemVkUXVlcnldO1xuXG4gICAgICAgICAgICAvLyBQZXJmb3JtIGEgUkVTVCBxdWVyeSB0byBnZXQgdGhlIG9ic2VydmVyIGlkZW50aWZpZXIgYW5kIHRvIHN1YnNjcmliZSB0byBuZXcgdXBkYXRlcy5cbiAgICAgICAgICAgIGxldCBzdWJzY3JpcHRpb25zOiBSeC5EaXNwb3NhYmxlW10gPSBbXTtcblxuICAgICAgICAgICAgaWYgKHF1ZXJ5T2JzZXJ2ZXJJZCkge1xuICAgICAgICAgICAgICAgIC8vIFRoaXMgcXVlcnkgb2JzZXJ2ZXIgaWRlbnRpZmllciBoYXMgYWxyZWFkeSBiZWVuIGNhY2hlZC4gQ2hlY2sgaWYgaXQgZXhpc3RzIGFuZCBpbiB0aGlzXG4gICAgICAgICAgICAgICAgLy8gY2FzZSBqdXN0IHN1YnNjcmliZSB0byBhbGwgaXRlbXMuXG4gICAgICAgICAgICAgICAgbGV0IHF1ZXJ5T2JzZXJ2ZXIgPSB0aGlzLmNvbm5lY3Rpb24ucXVlcnlPYnNlcnZlck1hbmFnZXIoKS5nZXQocXVlcnlPYnNlcnZlcklkLCBmYWxzZSk7XG4gICAgICAgICAgICAgICAgaWYgKHF1ZXJ5T2JzZXJ2ZXIpIHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKHF1ZXJ5T2JzZXJ2ZXIuc3RhdHVzID09PSBRdWVyeU9ic2VydmVyU3RhdHVzLklOSVRJQUxJWkVEIHx8XG4gICAgICAgICAgICAgICAgICAgICAgICBxdWVyeU9ic2VydmVyLnN0YXR1cyA9PT0gUXVlcnlPYnNlcnZlclN0YXR1cy5SRUlOSVRJQUxJWklORykge1xuICAgICAgICAgICAgICAgICAgICAgICAgc3Vic2NyaXB0aW9ucy5wdXNoKHF1ZXJ5T2JzZXJ2ZXIub2JzZXJ2YWJsZSgpLnN1YnNjcmliZShvYnNlcnZlcikpO1xuICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgaWYgKHF1ZXJ5T2JzZXJ2ZXIuc3RhdHVzID09PSBRdWVyeU9ic2VydmVyU3RhdHVzLklOSVRJQUxJWkVEKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBvYnNlcnZlci5vbk5leHQocXVlcnlPYnNlcnZlci5pdGVtcyk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGlmIChfLmlzRW1wdHkoc3Vic2NyaXB0aW9ucykpIHtcbiAgICAgICAgICAgICAgICBpZiAocGVuZGluZ1F1ZXJpZXMpIHtcbiAgICAgICAgICAgICAgICAgICAgLy8gQSByZXF1ZXN0IGZvciB0aGUgc2FtZSBxdWVyeSBpcyBhbHJlYWR5IGluIHByb2dyZXNzLlxuICAgICAgICAgICAgICAgICAgICBwZW5kaW5nUXVlcmllcy5wdXNoKHtvYnNlcnZlciwgc3Vic2NyaXB0aW9uc30pO1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX3BlbmRpbmdRdWVyaWVzW3NlcmlhbGl6ZWRRdWVyeV0gPSBbe29ic2VydmVyLCBzdWJzY3JpcHRpb25zfV07XG5cbiAgICAgICAgICAgICAgICAgICAgcXVlcnkgPSBfLmFzc2lnbih0aGlzLnRyYW5zZm9ybVF1ZXJ5KHF1ZXJ5KSwge29ic2VydmU6IHRoaXMuY29ubmVjdGlvbi5zZXNzaW9uSWQoKX0pO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmNvbm5lY3Rpb24ucXVlcnlPYnNlcnZlck1hbmFnZXIoKS5jaGFpbkFmdGVyVW5zdWJzY3JpYmUoKCkgPT4gdGhpcy5jb25uZWN0aW9uLmdldChwYXRoLCBxdWVyeSkpLnN1YnNjcmliZShcbiAgICAgICAgICAgICAgICAgICAgICAgIChyZXNwb25zZTogUXVlcnlPYnNlcnZlclJlc3BvbnNlKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gUG9wdWxhdGUgbWVzc2FnZXMgZnJvbSB0aGlzIHJlcXVlc3QuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IHF1ZXJ5T2JzZXJ2ZXIgPSB0aGlzLmNvbm5lY3Rpb24ucXVlcnlPYnNlcnZlck1hbmFnZXIoKS5nZXQocmVzcG9uc2Uub2JzZXJ2ZXIpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuX3F1ZXJ5T2JzZXJ2ZXJJZENhY2hlW3NlcmlhbGl6ZWRRdWVyeV0gPSByZXNwb25zZS5vYnNlcnZlcjtcblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIFNldHVwIGEgcmVpbml0aWFsaXphdGlvbiBoYW5kbGVyIGZvciB0aGlzIG9ic2VydmVyLiBJdCBtYXkgYmUgdXNlZCBpbiBjYXNlIHRoZSBwYXJhbWV0ZXJzXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gb2YgYSBjb25uZWN0aW9uIGNoYW5nZSBhbmQgdGhlIG9ic2VydmVyIG5lZWRzIHRvIGJlIHJlLWNyZWF0ZWQgb24gdGhlIHNlcnZlciB3aXRob3V0IGxvc2luZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIGFueSBvZiB0aGUgY2xpZW50LXNpZGUgc3Vic2NyaXB0aW9ucy5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBxdWVyeU9ic2VydmVyLnNldFJlaW5pdGlhbGl6ZUhhbmRsZXIoKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5jb25uZWN0aW9uLmdldChwYXRoLCBxdWVyeSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSk7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoXy5pc0VtcHR5KHRoaXMuX3BlbmRpbmdRdWVyaWVzW3NlcmlhbGl6ZWRRdWVyeV0pKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIFNlbmQgL2FwaS9xdWVyeW9ic2VydmVyL3Vuc3Vic2NyaWJlLCBzYW1lIGFzIHdlIHdvdWxkIGlmIHN1YnNjcmliZXJzIGdvdCBkaXNwb3NlZCBhZnRlclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBwZW5kaW5nUXVlcmllcyByZXNvbHZlLCBpbnN0ZWFkIG9mIGJlZm9yZS5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcXVlcnlPYnNlcnZlci5vYnNlcnZhYmxlKCkuc3Vic2NyaWJlKCkuZGlzcG9zZSgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvciAoY29uc3QgcGVuZGluZyBvZiB0aGlzLl9wZW5kaW5nUXVlcmllc1tzZXJpYWxpemVkUXVlcnldKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwZW5kaW5nLnN1YnNjcmlwdGlvbnMucHVzaChxdWVyeU9ic2VydmVyLm9ic2VydmFibGUoKS5zdWJzY3JpYmUocGVuZGluZy5vYnNlcnZlcikpO1xuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAocXVlcnlPYnNlcnZlci5zdGF0dXMgPT09IFF1ZXJ5T2JzZXJ2ZXJTdGF0dXMuSU5JVElBTElaRUQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBJZiB0aGUgcXVlcnkgb2JzZXJ2ZXIgaXMgYWxyZWFkeSBpbml0aWFsaXplZCwgZW1pdCB0aGUgY3VycmVudCBpdGVtcyBpbW1lZGlhdGVseS5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwZW5kaW5nLm9ic2VydmVyLm9uTmV4dChxdWVyeU9ic2VydmVyLml0ZW1zKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlbGV0ZSB0aGlzLl9wZW5kaW5nUXVlcmllc1tzZXJpYWxpemVkUXVlcnldO1xuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHF1ZXJ5T2JzZXJ2ZXIuc3RhdHVzICE9PSBRdWVyeU9ic2VydmVyU3RhdHVzLklOSVRJQUxJWkVEKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHF1ZXJ5T2JzZXJ2ZXIuaW5pdGlhbGl6ZShyZXNwb25zZS5pdGVtcyk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgIChlcnJvcikgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9ic2VydmVyLm9uRXJyb3IoZXJyb3IpO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgcmV0dXJuICgpID0+IHtcbiAgICAgICAgICAgICAgICAvLyBEaXNwb3NlIG9mIHRoZSBxdWVyeSBvYnNlcnZlciBzdWJzY3JpcHRpb24gd2hlbiBhbGwgc3Vic2NyaXB0aW9ucyB0byB0aGlzIHF1ZXJ5IGFyZSBzdG9wcGVkLlxuICAgICAgICAgICAgICAgIGZvciAoY29uc3Qgc3Vic2NyaXB0aW9uIG9mIHN1YnNjcmlwdGlvbnMpIHtcbiAgICAgICAgICAgICAgICAgICAgc3Vic2NyaXB0aW9uLmRpc3Bvc2UoKTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAvLyBJZiBxdWVyeSBpcyBzdGlsbCBqdXN0IHBlbmRpbmcsIHJlbW92ZSBvYnNlcnZlciBiZWZvcmUgaXQgZXZlbiBiZWNvbWVzIGRpc3Bvc2FibGUuXG4gICAgICAgICAgICAgICAgaWYgKHRoaXMuX3BlbmRpbmdRdWVyaWVzW3NlcmlhbGl6ZWRRdWVyeV0pIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5fcGVuZGluZ1F1ZXJpZXNbc2VyaWFsaXplZFF1ZXJ5XSA9IF8ucmVqZWN0KHRoaXMuX3BlbmRpbmdRdWVyaWVzW3NlcmlhbGl6ZWRRdWVyeV0sIChwZW5kaW5nKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAvLyBDaGVjayBmb3Igc2FtZSByZWZlcmVuY2UsIG5vdCBjb250ZW50IVxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHBlbmRpbmcuc3Vic2NyaXB0aW9ucyA9PT0gc3Vic2NyaXB0aW9ucztcbiAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfTtcbiAgICAgICAgfSkucHVibGlzaCgpLnJlZkNvdW50KCk7XG4gICAgfVxufVxuIl19
export {};
//# sourceMappingURL=resource.spec.d.ts.map

@@ -28,2 +28,1 @@ import * as Rx from 'rx';

export declare function setPermissions(resource: RESTResource<any>, id: number, permissions: types.SetPermissionsRequest): Rx.Observable<types.ItemPermissions[]>;
//# sourceMappingURL=permissions.d.ts.map

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

//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9hcGkvcmVzb3VyY2VzL2FkZG9ucy9wZXJtaXNzaW9ucy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQVlBOzs7Ozs7R0FNRztBQUNILFNBQWdCLGNBQWMsQ0FBQyxRQUEyQixFQUMzQixFQUFVO0lBQ3JDLE9BQWdELFFBQVEsQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxtQkFBbUIsQ0FBQyxFQUFFLEVBQUUsYUFBYSxDQUFDLENBQUMsQ0FBQztBQUM3SCxDQUFDO0FBSEQsd0NBR0M7QUFFRDs7Ozs7OztHQU9HO0FBQ0gsU0FBZ0IsY0FBYyxDQUFDLFFBQTJCLEVBQzNCLEVBQVUsRUFDVixXQUF3QztJQUNuRSxPQUFnRCxRQUFRLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsbUJBQW1CLENBQUMsRUFBRSxFQUFFLGFBQWEsQ0FBQyxFQUFFLFdBQVcsQ0FBQyxDQUFDO0FBQzNJLENBQUM7QUFKRCx3Q0FJQyIsImZpbGUiOiJhcGkvcmVzb3VyY2VzL2FkZG9ucy9wZXJtaXNzaW9ucy5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIFJ4IGZyb20gJ3J4JztcbmltcG9ydCAqIGFzIHR5cGVzIGZyb20gJy4uLy4uL3R5cGVzL3Jlc3QnO1xuaW1wb3J0IHtSRVNUUmVzb3VyY2V9IGZyb20gJy4uL3Jlc3QvcmVzdF9yZXNvdXJjZSc7XG5cbi8qKlxuICogSW50ZXJmYWNlIGZvciBoYW5kbGluZyByZXNvdXJjZSBwZXJtaXNzaW9ucy5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBQZXJtaXNzaW9uYWJsZSB7XG4gICAgZ2V0UGVybWlzc2lvbnMoaWQ6IG51bWJlcik6IFJ4Lk9ic2VydmFibGU8dHlwZXMuSXRlbVBlcm1pc3Npb25zW10+O1xuICAgIHNldFBlcm1pc3Npb25zKGlkOiBudW1iZXIsIHBlcm1pc3Npb25zOiB0eXBlcy5TZXRQZXJtaXNzaW9uc1JlcXVlc3QpOiBSeC5PYnNlcnZhYmxlPHR5cGVzLkl0ZW1QZXJtaXNzaW9uc1tdPjtcbn1cblxuLyoqXG4gKiBHZXRzIHJlc291cmNlIHBlcm1pc3Npb25zLlxuICpcbiAqIEBwYXJhbSByZXNvdXJjZSBSZXNvdXJjZS5cbiAqIEBwYXJhbSBpZCBSZXNvdXJjZSBpZC5cbiAqIEByZXR1cm5zIFJlc291cmNlIHBlcm1pc3Npb25zLlxuICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0UGVybWlzc2lvbnMocmVzb3VyY2U6IFJFU1RSZXNvdXJjZTxhbnk+LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlkOiBudW1iZXIpOiBSeC5PYnNlcnZhYmxlPHR5cGVzLkl0ZW1QZXJtaXNzaW9uc1tdPiB7XG4gICAgcmV0dXJuIDxSeC5PYnNlcnZhYmxlPHR5cGVzLkl0ZW1QZXJtaXNzaW9uc1tdPj4gcmVzb3VyY2UuY29ubmVjdGlvbi5nZXQocmVzb3VyY2UuZ2V0RGV0YWlsTWV0aG9kUGF0aChpZCwgJ3Blcm1pc3Npb25zJykpO1xufVxuXG4vKipcbiAqIFNldHMgcmVzb3VyY2UgcGVybWlzc2lvbnMuXG4gKlxuICogQHBhcmFtIHJlc291cmNlIFJlc291cmNlLlxuICogQHBhcmFtIGlkIFJlc291cmNlIGlkLlxuICogQHBhcmFtIHBlcm1pc3Npb25zIE5ldyBwZXJtaXNzaW9ucy5cbiAqIEByZXR1cm5zIE5ldyByZXNvdXJjZSBwZXJtaXNzaW9ucy5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHNldFBlcm1pc3Npb25zKHJlc291cmNlOiBSRVNUUmVzb3VyY2U8YW55PixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZDogbnVtYmVyLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBlcm1pc3Npb25zOiB0eXBlcy5TZXRQZXJtaXNzaW9uc1JlcXVlc3QpOiBSeC5PYnNlcnZhYmxlPHR5cGVzLkl0ZW1QZXJtaXNzaW9uc1tdPiB7XG4gICAgcmV0dXJuIDxSeC5PYnNlcnZhYmxlPHR5cGVzLkl0ZW1QZXJtaXNzaW9uc1tdPj4gcmVzb3VyY2UuY29ubmVjdGlvbi5wb3N0KHJlc291cmNlLmdldERldGFpbE1ldGhvZFBhdGgoaWQsICdwZXJtaXNzaW9ucycpLCBwZXJtaXNzaW9ucyk7XG59XG4iXX0=
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9hcGkvcmVzb3VyY2VzL2FkZG9ucy9wZXJtaXNzaW9ucy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQVlBOzs7Ozs7R0FNRztBQUNILHdCQUErQixRQUEyQixFQUMzQixFQUFVO0lBQ3JDLE9BQWdELFFBQVEsQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxtQkFBbUIsQ0FBQyxFQUFFLEVBQUUsYUFBYSxDQUFDLENBQUMsQ0FBQztBQUM3SCxDQUFDO0FBSEQsd0NBR0M7QUFFRDs7Ozs7OztHQU9HO0FBQ0gsd0JBQStCLFFBQTJCLEVBQzNCLEVBQVUsRUFDVixXQUF3QztJQUNuRSxPQUFnRCxRQUFRLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsbUJBQW1CLENBQUMsRUFBRSxFQUFFLGFBQWEsQ0FBQyxFQUFFLFdBQVcsQ0FBQyxDQUFDO0FBQzNJLENBQUM7QUFKRCx3Q0FJQyIsImZpbGUiOiJhcGkvcmVzb3VyY2VzL2FkZG9ucy9wZXJtaXNzaW9ucy5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIFJ4IGZyb20gJ3J4JztcbmltcG9ydCAqIGFzIHR5cGVzIGZyb20gJy4uLy4uL3R5cGVzL3Jlc3QnO1xuaW1wb3J0IHtSRVNUUmVzb3VyY2V9IGZyb20gJy4uL3Jlc3QvcmVzdF9yZXNvdXJjZSc7XG5cbi8qKlxuICogSW50ZXJmYWNlIGZvciBoYW5kbGluZyByZXNvdXJjZSBwZXJtaXNzaW9ucy5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBQZXJtaXNzaW9uYWJsZSB7XG4gICAgZ2V0UGVybWlzc2lvbnMoaWQ6IG51bWJlcik6IFJ4Lk9ic2VydmFibGU8dHlwZXMuSXRlbVBlcm1pc3Npb25zW10+O1xuICAgIHNldFBlcm1pc3Npb25zKGlkOiBudW1iZXIsIHBlcm1pc3Npb25zOiB0eXBlcy5TZXRQZXJtaXNzaW9uc1JlcXVlc3QpOiBSeC5PYnNlcnZhYmxlPHR5cGVzLkl0ZW1QZXJtaXNzaW9uc1tdPjtcbn1cblxuLyoqXG4gKiBHZXRzIHJlc291cmNlIHBlcm1pc3Npb25zLlxuICpcbiAqIEBwYXJhbSByZXNvdXJjZSBSZXNvdXJjZS5cbiAqIEBwYXJhbSBpZCBSZXNvdXJjZSBpZC5cbiAqIEByZXR1cm5zIFJlc291cmNlIHBlcm1pc3Npb25zLlxuICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0UGVybWlzc2lvbnMocmVzb3VyY2U6IFJFU1RSZXNvdXJjZTxhbnk+LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlkOiBudW1iZXIpOiBSeC5PYnNlcnZhYmxlPHR5cGVzLkl0ZW1QZXJtaXNzaW9uc1tdPiB7XG4gICAgcmV0dXJuIDxSeC5PYnNlcnZhYmxlPHR5cGVzLkl0ZW1QZXJtaXNzaW9uc1tdPj4gcmVzb3VyY2UuY29ubmVjdGlvbi5nZXQocmVzb3VyY2UuZ2V0RGV0YWlsTWV0aG9kUGF0aChpZCwgJ3Blcm1pc3Npb25zJykpO1xufVxuXG4vKipcbiAqIFNldHMgcmVzb3VyY2UgcGVybWlzc2lvbnMuXG4gKlxuICogQHBhcmFtIHJlc291cmNlIFJlc291cmNlLlxuICogQHBhcmFtIGlkIFJlc291cmNlIGlkLlxuICogQHBhcmFtIHBlcm1pc3Npb25zIE5ldyBwZXJtaXNzaW9ucy5cbiAqIEByZXR1cm5zIE5ldyByZXNvdXJjZSBwZXJtaXNzaW9ucy5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHNldFBlcm1pc3Npb25zKHJlc291cmNlOiBSRVNUUmVzb3VyY2U8YW55PixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZDogbnVtYmVyLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBlcm1pc3Npb25zOiB0eXBlcy5TZXRQZXJtaXNzaW9uc1JlcXVlc3QpOiBSeC5PYnNlcnZhYmxlPHR5cGVzLkl0ZW1QZXJtaXNzaW9uc1tdPiB7XG4gICAgcmV0dXJuIDxSeC5PYnNlcnZhYmxlPHR5cGVzLkl0ZW1QZXJtaXNzaW9uc1tdPj4gcmVzb3VyY2UuY29ubmVjdGlvbi5wb3N0KHJlc291cmNlLmdldERldGFpbE1ldGhvZFBhdGgoaWQsICdwZXJtaXNzaW9ucycpLCBwZXJtaXNzaW9ucyk7XG59XG4iXX0=

@@ -53,2 +53,1 @@ import * as Rx from 'rx';

}
//# sourceMappingURL=knowledge_base.d.ts.map
"use strict";
var __extends = (this && this.__extends) || (function () {
var extendStatics = function (d, b) {
extendStatics = Object.setPrototypeOf ||
({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
return extendStatics(d, b);
}
var extendStatics = Object.setPrototypeOf ||
({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
return function (d, b) {

@@ -120,2 +117,2 @@ extendStatics(d, b);

//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9hcGkvcmVzb3VyY2VzL21vZHVsZXMva25vd2xlZGdlX2Jhc2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsMEJBQTRCO0FBRzVCLG9EQUFvRDtBQUVwRCwyQ0FBa0c7QUFHbEcscURBQWlEO0FBRWpEO0lBQWdELDhDQUFRO0lBQ3BELG9DQUFZLE9BQWU7UUFBM0IsWUFDSSxrQkFBTSxPQUFPLENBQUMsU0FHakI7UUFGRyxnSUFBZ0k7UUFDaEksTUFBTSxDQUFDLGdCQUFnQixDQUFDLENBQUMsS0FBSSxFQUFFLDBCQUEwQixDQUFDLFNBQVMsQ0FBQyxDQUFDOztJQUN6RSxDQUFDO0lBQ0wsaUNBQUM7QUFBRCxDQU5BLEFBTUMsQ0FOK0MsZ0JBQVEsR0FNdkQ7QUFOWSxnRUFBMEI7QUFPdkM7SUFBeUMsdUNBQVE7SUFDN0MsNkJBQVksT0FBZTtRQUEzQixZQUNJLGtCQUFNLE9BQU8sQ0FBQyxTQUdqQjtRQUZHLGdJQUFnSTtRQUNoSSxNQUFNLENBQUMsZ0JBQWdCLENBQUMsQ0FBQyxLQUFJLEVBQUUsbUJBQW1CLENBQUMsU0FBUyxDQUFDLENBQUM7O0lBQ2xFLENBQUM7SUFDTCwwQkFBQztBQUFELENBTkEsQUFNQyxDQU53QyxnQkFBUSxHQU1oRDtBQU5ZLGtEQUFtQjtBQVFoQzs7R0FFRztBQUNIO0lBQW9ELHlDQUFjO0lBQWxFOztJQU9BLENBQUM7SUFORzs7T0FFRztJQUNPLGtEQUFrQixHQUE1QjtRQUNJLE9BQVUsSUFBSSxDQUFDLFdBQVcsRUFBRSxRQUFLLENBQUM7SUFDdEMsQ0FBQztJQUNMLDRCQUFDO0FBQUQsQ0FQQSxBQU9DLENBUG1ELGdDQUFjLEdBT2pFO0FBUHFCLHNEQUFxQjtBQVMzQzs7R0FFRztBQUNIO0lBQXFDLG1DQUFxQjtJQUN0RCx5QkFBWSxVQUFzQjtlQUM5QixrQkFBTSxTQUFTLEVBQUUsVUFBVSxDQUFDO0lBQ2hDLENBQUM7SUFFRDs7Ozs7OztPQU9HO0lBQ0ksb0NBQVUsR0FBakIsVUFBa0IsS0FBeUI7UUFDdkMsSUFBTSxJQUFJLEdBQUcsSUFBSSxDQUFDLG1CQUFtQixDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBRWhELE9BQU8sSUFBSSxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQWtCLElBQUksRUFBRSxLQUFLLENBQUMsQ0FBQyxHQUFHLENBQUMsVUFBQyxRQUFRO1lBQ2xFLElBQUksUUFBUSxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUU7Z0JBQ3JCLE1BQU0sSUFBSSwwQkFBMEIsQ0FDaEMsZ0RBQThDLEtBQUssQ0FBQyxVQUFVLGlCQUFZLEtBQUssQ0FBQyxNQUFNLDBDQUN4RSxLQUFLLENBQUMsT0FBUyxDQUNoQyxDQUFDO2FBQ0w7WUFDRCxJQUFJLFFBQVEsQ0FBQyxNQUFNLEtBQUssQ0FBQyxFQUFFO2dCQUN2QixNQUFNLElBQUksbUJBQW1CLENBQ3pCLHNDQUFvQyxLQUFLLENBQUMsVUFBVSxnQkFBVyxLQUFLLENBQUMsTUFBTSwwQ0FDakUsS0FBSyxDQUFDLE9BQU8sZUFBWSxDQUN0QyxDQUFDO2FBQ0w7WUFFRCxPQUFPLHdCQUFnQixDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQztRQUMvQyxDQUFDLENBQUMsQ0FBQztJQUNQLENBQUM7SUFFTSxxQ0FBVyxHQUFsQixVQUFtQixLQUEwQjtRQUN6QyxJQUFNLElBQUksR0FBRyxJQUFJLENBQUMsbUJBQW1CLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDaEQsSUFBTSxRQUFRLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQWtCLElBQUksRUFBRSxLQUFLLENBQUMsQ0FBQztRQUNwRSxPQUFPLHlCQUFpQixDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQ3ZDLENBQUM7SUFFRDs7OztPQUlHO0lBQ0ksZ0NBQU0sR0FBYixVQUFjLEtBQStCO1FBQ3pDLElBQU0sSUFBSSxHQUFHLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUNoRCxJQUFJLE9BQXVDLENBQUM7UUFFNUMsSUFBSSxDQUFDLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsRUFBRTtZQUN4QixPQUFPLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQWtCLElBQUksRUFBRSxLQUFLLENBQUMsQ0FBQztTQUNoRTthQUFNO1lBQ0gsT0FBTyxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFrQixJQUFJLEVBQUUsS0FBSyxDQUFDLENBQUM7U0FDL0Q7UUFFRCxPQUFPLHlCQUFpQixDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQ3RDLENBQUM7SUFTTSxzQ0FBWSxHQUFuQixVQUFvQixLQUFxQztRQUNyRCxJQUFNLElBQUksR0FBRyxJQUFJLENBQUMsbUJBQW1CLENBQUMsY0FBYyxDQUFDLENBQUM7UUFDdEQsSUFBTSxVQUFVLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQXFELElBQUksRUFBRSxLQUFLLENBQUMsQ0FBQztRQUN6RyxJQUFNLFdBQVcsR0FBRyxDQUFDLENBQUMsR0FBRyxDQUFDLEtBQUssRUFBRSxPQUFPLENBQUMsQ0FBQztRQUMxQyxPQUFPLFdBQVc7WUFDZCxDQUFDLENBQUMsa0NBQTBCLENBQW1ELFVBQVUsQ0FBQztZQUMxRixDQUFDLENBQUMseUJBQWlCLENBQWtDLFVBQVUsQ0FBQyxDQUFDO0lBQ3pFLENBQUM7SUFDTCxzQkFBQztBQUFELENBekVBLEFBeUVDLENBekVvQyxxQkFBcUIsR0F5RXpEO0FBekVZLDBDQUFlIiwiZmlsZSI6ImFwaS9yZXNvdXJjZXMvbW9kdWxlcy9rbm93bGVkZ2VfYmFzZS5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIF8gZnJvbSAnbG9kYXNoJztcbmltcG9ydCAqIGFzIFJ4IGZyb20gJ3J4JztcblxuaW1wb3J0IHtHZW5FcnJvcn0gZnJvbSAnLi4vLi4vLi4vY29yZS9lcnJvcnMvZXJyb3InO1xuaW1wb3J0IHtDb25uZWN0aW9ufSBmcm9tICcuLi8uLi9jb25uZWN0aW9uJztcbmltcG9ydCB7dHJhbnNmb3JtRmVhdHVyZSwgdHJhbnNmb3JtRmVhdHVyZXMsIHRyYW5zZm9ybUZlYXR1cmVzUGFnaW5hdGVkfSBmcm9tICcuLi8uLi90eXBlcy91dGlscyc7XG5pbXBvcnQge1BhZ2luYXRlZFJlc3BvbnNlfSBmcm9tICcuLi8uLi90eXBlcy9yZXN0JztcbmltcG9ydCAqIGFzIHR5cGVzIGZyb20gJy4uLy4uL3R5cGVzL21vZHVsZXMnO1xuaW1wb3J0IHtNb2R1bGVSZXNvdXJjZX0gZnJvbSAnLi9tb2R1bGVfcmVzb3VyY2UnO1xuXG5leHBvcnQgY2xhc3MgTXVsdGlwbGVGZWF0dXJlc0ZvdW5kRXJyb3IgZXh0ZW5kcyBHZW5FcnJvciB7XG4gICAgY29uc3RydWN0b3IobWVzc2FnZTogc3RyaW5nKSB7XG4gICAgICAgIHN1cGVyKG1lc3NhZ2UpO1xuICAgICAgICAvLyBodHRwczovL2dpdGh1Yi5jb20vTWljcm9zb2Z0L1R5cGVTY3JpcHQvd2lraS9CcmVha2luZy1DaGFuZ2VzI2V4dGVuZGluZy1idWlsdC1pbnMtbGlrZS1lcnJvci1hcnJheS1hbmQtbWFwLW1heS1uby1sb25nZXItd29ya1xuICAgICAgICBPYmplY3RbJ3NldFByb3RvdHlwZU9mJ10odGhpcywgTXVsdGlwbGVGZWF0dXJlc0ZvdW5kRXJyb3IucHJvdG90eXBlKTtcbiAgICB9XG59XG5leHBvcnQgY2xhc3MgTm9GZWF0dXJlRm91bmRFcnJvciBleHRlbmRzIEdlbkVycm9yIHtcbiAgICBjb25zdHJ1Y3RvcihtZXNzYWdlOiBzdHJpbmcpIHtcbiAgICAgICAgc3VwZXIobWVzc2FnZSk7XG4gICAgICAgIC8vIGh0dHBzOi8vZ2l0aHViLmNvbS9NaWNyb3NvZnQvVHlwZVNjcmlwdC93aWtpL0JyZWFraW5nLUNoYW5nZXMjZXh0ZW5kaW5nLWJ1aWx0LWlucy1saWtlLWVycm9yLWFycmF5LWFuZC1tYXAtbWF5LW5vLWxvbmdlci13b3JrXG4gICAgICAgIE9iamVjdFsnc2V0UHJvdG90eXBlT2YnXSh0aGlzLCBOb0ZlYXR1cmVGb3VuZEVycm9yLnByb3RvdHlwZSk7XG4gICAgfVxufVxuXG4vKipcbiAqIEFic3RyYWN0IGJhc2UgY2xhc3MgZm9yIGtub3dsZWRnZSBiYXNlIHJlc291cmNlcy5cbiAqL1xuZXhwb3J0IGFic3RyYWN0IGNsYXNzIEtub3dsZWRnZUJhc2VSZXNvdXJjZSBleHRlbmRzIE1vZHVsZVJlc291cmNlIHtcbiAgICAvKipcbiAgICAgKiBAaW5oZXJpdGRvY1xuICAgICAqL1xuICAgIHByb3RlY3RlZCBnZXRNb2R1bGVzQmFzZVBhdGgoKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIGAke3RoaXMuZ2V0QmFzZVBhdGgoKX0va2JgO1xuICAgIH1cbn1cblxuLyoqXG4gKiBLbm93bGVkZ2UgYmFzZSBmZWF0dXJlIHJlc291cmNlLlxuICovXG5leHBvcnQgY2xhc3MgRmVhdHVyZVJlc291cmNlIGV4dGVuZHMgS25vd2xlZGdlQmFzZVJlc291cmNlIHtcbiAgICBjb25zdHJ1Y3Rvcihjb25uZWN0aW9uOiBDb25uZWN0aW9uKSB7XG4gICAgICAgIHN1cGVyKCdmZWF0dXJlJywgY29ubmVjdGlvbik7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogR2V0cyBhIHNpbmdsZSBmZWF0dXJlLiBSZXR1cm5zIHVuZGVmaW5lZCBpZiBmZWF0dXJlIG5vdCBmb3VuZC5cbiAgICAgKlxuICAgICAqIEBwYXJhbSBxdWVyeSBGZWF0dXJlIHF1ZXJ5XG4gICAgICogQHJldHVybnMgRmVhdHVyZVxuICAgICAqIEB0aHJvd3MgYE11bHRpcGxlRmVhdHVyZXNGb3VuZEVycm9yYCBpcyB0aHJvd24gaWYgbXVsdGlwbGUgZmVhdHVyZXMgZm91bmRcbiAgICAgKiBAdGhyb3dzIGBOb0ZlYXR1cmVGb3VuZEVycm9yYCBpcyB0aHJvd24gaWYgZmVhdHVyZSBub3QgZm91bmRcbiAgICAgKi9cbiAgICBwdWJsaWMgZ2V0RmVhdHVyZShxdWVyeTogdHlwZXMuRmVhdHVyZVF1ZXJ5KTogUnguT2JzZXJ2YWJsZTx0eXBlcy5GZWF0dXJlPiB7XG4gICAgICAgIGNvbnN0IHBhdGggPSB0aGlzLmdldE1vZHVsZU1ldGhvZFBhdGgoJ3NlYXJjaCcpO1xuXG4gICAgICAgIHJldHVybiB0aGlzLmNvbm5lY3Rpb24uZ2V0PHR5cGVzLkZlYXR1cmVbXT4ocGF0aCwgcXVlcnkpLm1hcCgoZmVhdHVyZXMpID0+IHtcbiAgICAgICAgICAgIGlmIChmZWF0dXJlcy5sZW5ndGggPiAxKSB7XG4gICAgICAgICAgICAgICAgdGhyb3cgbmV3IE11bHRpcGxlRmVhdHVyZXNGb3VuZEVycm9yKFxuICAgICAgICAgICAgICAgICAgICBgTXVsdGlwbGUgZmVhdHVyZXMgaWRlbnRpZmllZCBieSBmZWF0dXJlIGlkICR7cXVlcnkuZmVhdHVyZV9pZH0sIHNvdXJjZSAke3F1ZXJ5LnNvdXJjZX1cbiAgICAgICAgICAgICAgICAgICAgYW5kIHNwZWNpZXMgJHtxdWVyeS5zcGVjaWVzfWBcbiAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGZlYXR1cmVzLmxlbmd0aCA9PT0gMCkge1xuICAgICAgICAgICAgICAgIHRocm93IG5ldyBOb0ZlYXR1cmVGb3VuZEVycm9yKFxuICAgICAgICAgICAgICAgICAgICBgRmVhdHVyZSBpZGVudGlmaWVkIGJ5IGZlYXR1cmUgaWQgJHtxdWVyeS5mZWF0dXJlX2lkfSxzb3VyY2UgJHtxdWVyeS5zb3VyY2V9IGFuZFxuICAgICAgICAgICAgICAgICAgICBzcGVjaWVzICR7cXVlcnkuc3BlY2llc30gbm90IGZvdW5kYFxuICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHJldHVybiB0cmFuc2Zvcm1GZWF0dXJlKF8uZmlyc3QoZmVhdHVyZXMpKTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcHVibGljIGdldEZlYXR1cmVzKHF1ZXJ5OiB0eXBlcy5GZWF0dXJlc1F1ZXJ5KTogUnguT2JzZXJ2YWJsZTx0eXBlcy5GZWF0dXJlW10+IHtcbiAgICAgICAgY29uc3QgcGF0aCA9IHRoaXMuZ2V0TW9kdWxlTWV0aG9kUGF0aCgnc2VhcmNoJyk7XG4gICAgICAgIGNvbnN0IGZlYXR1cmVzID0gdGhpcy5jb25uZWN0aW9uLnBvc3Q8dHlwZXMuRmVhdHVyZVtdPihwYXRoLCBxdWVyeSk7XG4gICAgICAgIHJldHVybiB0cmFuc2Zvcm1GZWF0dXJlcyhmZWF0dXJlcyk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogU2VhcmNoZXMgZm9yIGZlYXR1cmVzLlxuICAgICAqXG4gICAgICogQHBhcmFtIHF1ZXJ5IEZlYXR1cmUgc2VhcmNoIHF1ZXJ5XG4gICAgICovXG4gICAgcHVibGljIHNlYXJjaChxdWVyeTogdHlwZXMuRmVhdHVyZVNlYXJjaFF1ZXJ5KTogUnguT2JzZXJ2YWJsZTx0eXBlcy5GZWF0dXJlW10+IHtcbiAgICAgICAgY29uc3QgcGF0aCA9IHRoaXMuZ2V0TW9kdWxlTWV0aG9kUGF0aCgnc2VhcmNoJyk7XG4gICAgICAgIGxldCByZXN1bHRzOiBSeC5PYnNlcnZhYmxlPHR5cGVzLkZlYXR1cmVbXT47XG5cbiAgICAgICAgaWYgKF8uaXNBcnJheShxdWVyeS5xdWVyeSkpIHtcbiAgICAgICAgICAgIHJlc3VsdHMgPSB0aGlzLmNvbm5lY3Rpb24ucG9zdDx0eXBlcy5GZWF0dXJlW10+KHBhdGgsIHF1ZXJ5KTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHJlc3VsdHMgPSB0aGlzLmNvbm5lY3Rpb24uZ2V0PHR5cGVzLkZlYXR1cmVbXT4ocGF0aCwgcXVlcnkpO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHRyYW5zZm9ybUZlYXR1cmVzKHJlc3VsdHMpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFBlcmZvcm1zIGFuIGF1dG9jb21wbGV0ZSBxdWVyeSBmb3IgZmVhdHVyZXMuXG4gICAgICpcbiAgICAgKiBAcGFyYW0gcXVlcnkgRmVhdHVyZSBhdXRvY29tcGxldGUgcXVlcnlcbiAgICAgKi9cbiAgICBwdWJsaWMgYXV0b2NvbXBsZXRlKHF1ZXJ5OiB0eXBlcy5GZWF0dXJlQXV0b2NvbXBsZXRlUXVlcnkgJiB7IGxpbWl0OiBudW1iZXIgfSk6IFJ4Lk9ic2VydmFibGU8UGFnaW5hdGVkUmVzcG9uc2U8dHlwZXMuRmVhdHVyZT4+O1xuICAgIHB1YmxpYyBhdXRvY29tcGxldGUocXVlcnk6IHR5cGVzLkZlYXR1cmVBdXRvY29tcGxldGVRdWVyeSk6IFJ4Lk9ic2VydmFibGU8dHlwZXMuRmVhdHVyZVtdPjtcbiAgICBwdWJsaWMgYXV0b2NvbXBsZXRlKHF1ZXJ5OiB0eXBlcy5GZWF0dXJlQXV0b2NvbXBsZXRlUXVlcnkpOiBSeC5PYnNlcnZhYmxlPHR5cGVzLkZlYXR1cmVbXSB8IFBhZ2luYXRlZFJlc3BvbnNlPHR5cGVzLkZlYXR1cmU+PiB7XG4gICAgICAgIGNvbnN0IHBhdGggPSB0aGlzLmdldE1vZHVsZU1ldGhvZFBhdGgoJ2F1dG9jb21wbGV0ZScpO1xuICAgICAgICBjb25zdCBvYnNlcnZhYmxlID0gdGhpcy5jb25uZWN0aW9uLnBvc3Q8dHlwZXMuRmVhdHVyZVtdIHwgUGFnaW5hdGVkUmVzcG9uc2U8dHlwZXMuRmVhdHVyZT4+KHBhdGgsIHF1ZXJ5KTtcbiAgICAgICAgY29uc3QgaXNQYWdpbmF0ZWQgPSBfLmhhcyhxdWVyeSwgJ2xpbWl0Jyk7XG4gICAgICAgIHJldHVybiBpc1BhZ2luYXRlZFxuICAgICAgICAgICAgPyB0cmFuc2Zvcm1GZWF0dXJlc1BhZ2luYXRlZCg8UnguT2JzZXJ2YWJsZTxQYWdpbmF0ZWRSZXNwb25zZTx0eXBlcy5GZWF0dXJlPj4+IG9ic2VydmFibGUpXG4gICAgICAgICAgICA6IHRyYW5zZm9ybUZlYXR1cmVzKDxSeC5PYnNlcnZhYmxlPHR5cGVzLkZlYXR1cmVbXT4+IG9ic2VydmFibGUpO1xuICAgIH1cbn1cbiJdfQ==
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9hcGkvcmVzb3VyY2VzL21vZHVsZXMva25vd2xlZGdlX2Jhc2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7O0FBQUEsMEJBQTRCO0FBRzVCLG9EQUFvRDtBQUVwRCwyQ0FBa0c7QUFHbEcscURBQWlEO0FBRWpEO0lBQWdELDhDQUFRO0lBQ3BELG9DQUFZLE9BQWU7UUFBM0IsWUFDSSxrQkFBTSxPQUFPLENBQUMsU0FHakI7UUFGRyxnSUFBZ0k7UUFDaEksTUFBTSxDQUFDLGdCQUFnQixDQUFDLENBQUMsS0FBSSxFQUFFLDBCQUEwQixDQUFDLFNBQVMsQ0FBQyxDQUFDOztJQUN6RSxDQUFDO0lBQ0wsaUNBQUM7QUFBRCxDQU5BLEFBTUMsQ0FOK0MsZ0JBQVEsR0FNdkQ7QUFOWSxnRUFBMEI7QUFPdkM7SUFBeUMsdUNBQVE7SUFDN0MsNkJBQVksT0FBZTtRQUEzQixZQUNJLGtCQUFNLE9BQU8sQ0FBQyxTQUdqQjtRQUZHLGdJQUFnSTtRQUNoSSxNQUFNLENBQUMsZ0JBQWdCLENBQUMsQ0FBQyxLQUFJLEVBQUUsbUJBQW1CLENBQUMsU0FBUyxDQUFDLENBQUM7O0lBQ2xFLENBQUM7SUFDTCwwQkFBQztBQUFELENBTkEsQUFNQyxDQU53QyxnQkFBUSxHQU1oRDtBQU5ZLGtEQUFtQjtBQVFoQzs7R0FFRztBQUNIO0lBQW9ELHlDQUFjO0lBQWxFOztJQU9BLENBQUM7SUFORzs7T0FFRztJQUNPLGtEQUFrQixHQUE1QjtRQUNJLE9BQVUsSUFBSSxDQUFDLFdBQVcsRUFBRSxRQUFLLENBQUM7SUFDdEMsQ0FBQztJQUNMLDRCQUFDO0FBQUQsQ0FQQSxBQU9DLENBUG1ELGdDQUFjLEdBT2pFO0FBUHFCLHNEQUFxQjtBQVMzQzs7R0FFRztBQUNIO0lBQXFDLG1DQUFxQjtJQUN0RCx5QkFBWSxVQUFzQjtlQUM5QixrQkFBTSxTQUFTLEVBQUUsVUFBVSxDQUFDO0lBQ2hDLENBQUM7SUFFRDs7Ozs7OztPQU9HO0lBQ0ksb0NBQVUsR0FBakIsVUFBa0IsS0FBeUI7UUFDdkMsSUFBTSxJQUFJLEdBQUcsSUFBSSxDQUFDLG1CQUFtQixDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBRWhELE9BQU8sSUFBSSxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQWtCLElBQUksRUFBRSxLQUFLLENBQUMsQ0FBQyxHQUFHLENBQUMsVUFBQyxRQUFRO1lBQ2xFLElBQUksUUFBUSxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUU7Z0JBQ3JCLE1BQU0sSUFBSSwwQkFBMEIsQ0FDaEMsZ0RBQThDLEtBQUssQ0FBQyxVQUFVLGlCQUFZLEtBQUssQ0FBQyxNQUFNLDBDQUN4RSxLQUFLLENBQUMsT0FBUyxDQUNoQyxDQUFDO2FBQ0w7WUFDRCxJQUFJLFFBQVEsQ0FBQyxNQUFNLEtBQUssQ0FBQyxFQUFFO2dCQUN2QixNQUFNLElBQUksbUJBQW1CLENBQ3pCLHNDQUFvQyxLQUFLLENBQUMsVUFBVSxnQkFBVyxLQUFLLENBQUMsTUFBTSwwQ0FDakUsS0FBSyxDQUFDLE9BQU8sZUFBWSxDQUN0QyxDQUFDO2FBQ0w7WUFFRCxPQUFPLHdCQUFnQixDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQztRQUMvQyxDQUFDLENBQUMsQ0FBQztJQUNQLENBQUM7SUFFTSxxQ0FBVyxHQUFsQixVQUFtQixLQUEwQjtRQUN6QyxJQUFNLElBQUksR0FBRyxJQUFJLENBQUMsbUJBQW1CLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDaEQsSUFBTSxRQUFRLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQWtCLElBQUksRUFBRSxLQUFLLENBQUMsQ0FBQztRQUNwRSxPQUFPLHlCQUFpQixDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQ3ZDLENBQUM7SUFFRDs7OztPQUlHO0lBQ0ksZ0NBQU0sR0FBYixVQUFjLEtBQStCO1FBQ3pDLElBQU0sSUFBSSxHQUFHLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUNoRCxJQUFJLE9BQXVDLENBQUM7UUFFNUMsSUFBSSxDQUFDLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsRUFBRTtZQUN4QixPQUFPLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQWtCLElBQUksRUFBRSxLQUFLLENBQUMsQ0FBQztTQUNoRTthQUFNO1lBQ0gsT0FBTyxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFrQixJQUFJLEVBQUUsS0FBSyxDQUFDLENBQUM7U0FDL0Q7UUFFRCxPQUFPLHlCQUFpQixDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQ3RDLENBQUM7SUFTTSxzQ0FBWSxHQUFuQixVQUFvQixLQUFxQztRQUNyRCxJQUFNLElBQUksR0FBRyxJQUFJLENBQUMsbUJBQW1CLENBQUMsY0FBYyxDQUFDLENBQUM7UUFDdEQsSUFBTSxVQUFVLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQXFELElBQUksRUFBRSxLQUFLLENBQUMsQ0FBQztRQUN6RyxJQUFNLFdBQVcsR0FBRyxDQUFDLENBQUMsR0FBRyxDQUFDLEtBQUssRUFBRSxPQUFPLENBQUMsQ0FBQztRQUMxQyxPQUFPLFdBQVc7WUFDZCxDQUFDLENBQUMsa0NBQTBCLENBQW1ELFVBQVUsQ0FBQztZQUMxRixDQUFDLENBQUMseUJBQWlCLENBQWtDLFVBQVUsQ0FBQyxDQUFDO0lBQ3pFLENBQUM7SUFDTCxzQkFBQztBQUFELENBekVBLEFBeUVDLENBekVvQyxxQkFBcUIsR0F5RXpEO0FBekVZLDBDQUFlIiwiZmlsZSI6ImFwaS9yZXNvdXJjZXMvbW9kdWxlcy9rbm93bGVkZ2VfYmFzZS5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIF8gZnJvbSAnbG9kYXNoJztcbmltcG9ydCAqIGFzIFJ4IGZyb20gJ3J4JztcblxuaW1wb3J0IHtHZW5FcnJvcn0gZnJvbSAnLi4vLi4vLi4vY29yZS9lcnJvcnMvZXJyb3InO1xuaW1wb3J0IHtDb25uZWN0aW9ufSBmcm9tICcuLi8uLi9jb25uZWN0aW9uJztcbmltcG9ydCB7dHJhbnNmb3JtRmVhdHVyZSwgdHJhbnNmb3JtRmVhdHVyZXMsIHRyYW5zZm9ybUZlYXR1cmVzUGFnaW5hdGVkfSBmcm9tICcuLi8uLi90eXBlcy91dGlscyc7XG5pbXBvcnQge1BhZ2luYXRlZFJlc3BvbnNlfSBmcm9tICcuLi8uLi90eXBlcy9yZXN0JztcbmltcG9ydCAqIGFzIHR5cGVzIGZyb20gJy4uLy4uL3R5cGVzL21vZHVsZXMnO1xuaW1wb3J0IHtNb2R1bGVSZXNvdXJjZX0gZnJvbSAnLi9tb2R1bGVfcmVzb3VyY2UnO1xuXG5leHBvcnQgY2xhc3MgTXVsdGlwbGVGZWF0dXJlc0ZvdW5kRXJyb3IgZXh0ZW5kcyBHZW5FcnJvciB7XG4gICAgY29uc3RydWN0b3IobWVzc2FnZTogc3RyaW5nKSB7XG4gICAgICAgIHN1cGVyKG1lc3NhZ2UpO1xuICAgICAgICAvLyBodHRwczovL2dpdGh1Yi5jb20vTWljcm9zb2Z0L1R5cGVTY3JpcHQvd2lraS9CcmVha2luZy1DaGFuZ2VzI2V4dGVuZGluZy1idWlsdC1pbnMtbGlrZS1lcnJvci1hcnJheS1hbmQtbWFwLW1heS1uby1sb25nZXItd29ya1xuICAgICAgICBPYmplY3RbJ3NldFByb3RvdHlwZU9mJ10odGhpcywgTXVsdGlwbGVGZWF0dXJlc0ZvdW5kRXJyb3IucHJvdG90eXBlKTtcbiAgICB9XG59XG5leHBvcnQgY2xhc3MgTm9GZWF0dXJlRm91bmRFcnJvciBleHRlbmRzIEdlbkVycm9yIHtcbiAgICBjb25zdHJ1Y3RvcihtZXNzYWdlOiBzdHJpbmcpIHtcbiAgICAgICAgc3VwZXIobWVzc2FnZSk7XG4gICAgICAgIC8vIGh0dHBzOi8vZ2l0aHViLmNvbS9NaWNyb3NvZnQvVHlwZVNjcmlwdC93aWtpL0JyZWFraW5nLUNoYW5nZXMjZXh0ZW5kaW5nLWJ1aWx0LWlucy1saWtlLWVycm9yLWFycmF5LWFuZC1tYXAtbWF5LW5vLWxvbmdlci13b3JrXG4gICAgICAgIE9iamVjdFsnc2V0UHJvdG90eXBlT2YnXSh0aGlzLCBOb0ZlYXR1cmVGb3VuZEVycm9yLnByb3RvdHlwZSk7XG4gICAgfVxufVxuXG4vKipcbiAqIEFic3RyYWN0IGJhc2UgY2xhc3MgZm9yIGtub3dsZWRnZSBiYXNlIHJlc291cmNlcy5cbiAqL1xuZXhwb3J0IGFic3RyYWN0IGNsYXNzIEtub3dsZWRnZUJhc2VSZXNvdXJjZSBleHRlbmRzIE1vZHVsZVJlc291cmNlIHtcbiAgICAvKipcbiAgICAgKiBAaW5oZXJpdGRvY1xuICAgICAqL1xuICAgIHByb3RlY3RlZCBnZXRNb2R1bGVzQmFzZVBhdGgoKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIGAke3RoaXMuZ2V0QmFzZVBhdGgoKX0va2JgO1xuICAgIH1cbn1cblxuLyoqXG4gKiBLbm93bGVkZ2UgYmFzZSBmZWF0dXJlIHJlc291cmNlLlxuICovXG5leHBvcnQgY2xhc3MgRmVhdHVyZVJlc291cmNlIGV4dGVuZHMgS25vd2xlZGdlQmFzZVJlc291cmNlIHtcbiAgICBjb25zdHJ1Y3Rvcihjb25uZWN0aW9uOiBDb25uZWN0aW9uKSB7XG4gICAgICAgIHN1cGVyKCdmZWF0dXJlJywgY29ubmVjdGlvbik7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogR2V0cyBhIHNpbmdsZSBmZWF0dXJlLiBSZXR1cm5zIHVuZGVmaW5lZCBpZiBmZWF0dXJlIG5vdCBmb3VuZC5cbiAgICAgKlxuICAgICAqIEBwYXJhbSBxdWVyeSBGZWF0dXJlIHF1ZXJ5XG4gICAgICogQHJldHVybnMgRmVhdHVyZVxuICAgICAqIEB0aHJvd3MgYE11bHRpcGxlRmVhdHVyZXNGb3VuZEVycm9yYCBpcyB0aHJvd24gaWYgbXVsdGlwbGUgZmVhdHVyZXMgZm91bmRcbiAgICAgKiBAdGhyb3dzIGBOb0ZlYXR1cmVGb3VuZEVycm9yYCBpcyB0aHJvd24gaWYgZmVhdHVyZSBub3QgZm91bmRcbiAgICAgKi9cbiAgICBwdWJsaWMgZ2V0RmVhdHVyZShxdWVyeTogdHlwZXMuRmVhdHVyZVF1ZXJ5KTogUnguT2JzZXJ2YWJsZTx0eXBlcy5GZWF0dXJlPiB7XG4gICAgICAgIGNvbnN0IHBhdGggPSB0aGlzLmdldE1vZHVsZU1ldGhvZFBhdGgoJ3NlYXJjaCcpO1xuXG4gICAgICAgIHJldHVybiB0aGlzLmNvbm5lY3Rpb24uZ2V0PHR5cGVzLkZlYXR1cmVbXT4ocGF0aCwgcXVlcnkpLm1hcCgoZmVhdHVyZXMpID0+IHtcbiAgICAgICAgICAgIGlmIChmZWF0dXJlcy5sZW5ndGggPiAxKSB7XG4gICAgICAgICAgICAgICAgdGhyb3cgbmV3IE11bHRpcGxlRmVhdHVyZXNGb3VuZEVycm9yKFxuICAgICAgICAgICAgICAgICAgICBgTXVsdGlwbGUgZmVhdHVyZXMgaWRlbnRpZmllZCBieSBmZWF0dXJlIGlkICR7cXVlcnkuZmVhdHVyZV9pZH0sIHNvdXJjZSAke3F1ZXJ5LnNvdXJjZX1cbiAgICAgICAgICAgICAgICAgICAgYW5kIHNwZWNpZXMgJHtxdWVyeS5zcGVjaWVzfWBcbiAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGZlYXR1cmVzLmxlbmd0aCA9PT0gMCkge1xuICAgICAgICAgICAgICAgIHRocm93IG5ldyBOb0ZlYXR1cmVGb3VuZEVycm9yKFxuICAgICAgICAgICAgICAgICAgICBgRmVhdHVyZSBpZGVudGlmaWVkIGJ5IGZlYXR1cmUgaWQgJHtxdWVyeS5mZWF0dXJlX2lkfSxzb3VyY2UgJHtxdWVyeS5zb3VyY2V9IGFuZFxuICAgICAgICAgICAgICAgICAgICBzcGVjaWVzICR7cXVlcnkuc3BlY2llc30gbm90IGZvdW5kYFxuICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHJldHVybiB0cmFuc2Zvcm1GZWF0dXJlKF8uZmlyc3QoZmVhdHVyZXMpKTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcHVibGljIGdldEZlYXR1cmVzKHF1ZXJ5OiB0eXBlcy5GZWF0dXJlc1F1ZXJ5KTogUnguT2JzZXJ2YWJsZTx0eXBlcy5GZWF0dXJlW10+IHtcbiAgICAgICAgY29uc3QgcGF0aCA9IHRoaXMuZ2V0TW9kdWxlTWV0aG9kUGF0aCgnc2VhcmNoJyk7XG4gICAgICAgIGNvbnN0IGZlYXR1cmVzID0gdGhpcy5jb25uZWN0aW9uLnBvc3Q8dHlwZXMuRmVhdHVyZVtdPihwYXRoLCBxdWVyeSk7XG4gICAgICAgIHJldHVybiB0cmFuc2Zvcm1GZWF0dXJlcyhmZWF0dXJlcyk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogU2VhcmNoZXMgZm9yIGZlYXR1cmVzLlxuICAgICAqXG4gICAgICogQHBhcmFtIHF1ZXJ5IEZlYXR1cmUgc2VhcmNoIHF1ZXJ5XG4gICAgICovXG4gICAgcHVibGljIHNlYXJjaChxdWVyeTogdHlwZXMuRmVhdHVyZVNlYXJjaFF1ZXJ5KTogUnguT2JzZXJ2YWJsZTx0eXBlcy5GZWF0dXJlW10+IHtcbiAgICAgICAgY29uc3QgcGF0aCA9IHRoaXMuZ2V0TW9kdWxlTWV0aG9kUGF0aCgnc2VhcmNoJyk7XG4gICAgICAgIGxldCByZXN1bHRzOiBSeC5PYnNlcnZhYmxlPHR5cGVzLkZlYXR1cmVbXT47XG5cbiAgICAgICAgaWYgKF8uaXNBcnJheShxdWVyeS5xdWVyeSkpIHtcbiAgICAgICAgICAgIHJlc3VsdHMgPSB0aGlzLmNvbm5lY3Rpb24ucG9zdDx0eXBlcy5GZWF0dXJlW10+KHBhdGgsIHF1ZXJ5KTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHJlc3VsdHMgPSB0aGlzLmNvbm5lY3Rpb24uZ2V0PHR5cGVzLkZlYXR1cmVbXT4ocGF0aCwgcXVlcnkpO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHRyYW5zZm9ybUZlYXR1cmVzKHJlc3VsdHMpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFBlcmZvcm1zIGFuIGF1dG9jb21wbGV0ZSBxdWVyeSBmb3IgZmVhdHVyZXMuXG4gICAgICpcbiAgICAgKiBAcGFyYW0gcXVlcnkgRmVhdHVyZSBhdXRvY29tcGxldGUgcXVlcnlcbiAgICAgKi9cbiAgICBwdWJsaWMgYXV0b2NvbXBsZXRlKHF1ZXJ5OiB0eXBlcy5GZWF0dXJlQXV0b2NvbXBsZXRlUXVlcnkgJiB7IGxpbWl0OiBudW1iZXIgfSk6IFJ4Lk9ic2VydmFibGU8UGFnaW5hdGVkUmVzcG9uc2U8dHlwZXMuRmVhdHVyZT4+O1xuICAgIHB1YmxpYyBhdXRvY29tcGxldGUocXVlcnk6IHR5cGVzLkZlYXR1cmVBdXRvY29tcGxldGVRdWVyeSk6IFJ4Lk9ic2VydmFibGU8dHlwZXMuRmVhdHVyZVtdPjtcbiAgICBwdWJsaWMgYXV0b2NvbXBsZXRlKHF1ZXJ5OiB0eXBlcy5GZWF0dXJlQXV0b2NvbXBsZXRlUXVlcnkpOiBSeC5PYnNlcnZhYmxlPHR5cGVzLkZlYXR1cmVbXSB8IFBhZ2luYXRlZFJlc3BvbnNlPHR5cGVzLkZlYXR1cmU+PiB7XG4gICAgICAgIGNvbnN0IHBhdGggPSB0aGlzLmdldE1vZHVsZU1ldGhvZFBhdGgoJ2F1dG9jb21wbGV0ZScpO1xuICAgICAgICBjb25zdCBvYnNlcnZhYmxlID0gdGhpcy5jb25uZWN0aW9uLnBvc3Q8dHlwZXMuRmVhdHVyZVtdIHwgUGFnaW5hdGVkUmVzcG9uc2U8dHlwZXMuRmVhdHVyZT4+KHBhdGgsIHF1ZXJ5KTtcbiAgICAgICAgY29uc3QgaXNQYWdpbmF0ZWQgPSBfLmhhcyhxdWVyeSwgJ2xpbWl0Jyk7XG4gICAgICAgIHJldHVybiBpc1BhZ2luYXRlZFxuICAgICAgICAgICAgPyB0cmFuc2Zvcm1GZWF0dXJlc1BhZ2luYXRlZCg8UnguT2JzZXJ2YWJsZTxQYWdpbmF0ZWRSZXNwb25zZTx0eXBlcy5GZWF0dXJlPj4+IG9ic2VydmFibGUpXG4gICAgICAgICAgICA6IHRyYW5zZm9ybUZlYXR1cmVzKDxSeC5PYnNlcnZhYmxlPHR5cGVzLkZlYXR1cmVbXT4+IG9ic2VydmFibGUpO1xuICAgIH1cbn1cbiJdfQ==

@@ -38,2 +38,1 @@ import { Connection } from '../../connection';

}
//# sourceMappingURL=module_resource.d.ts.map
"use strict";
var __extends = (this && this.__extends) || (function () {
var extendStatics = function (d, b) {
extendStatics = Object.setPrototypeOf ||
({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
return extendStatics(d, b);
}
var extendStatics = Object.setPrototypeOf ||
({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
return function (d, b) {

@@ -71,2 +68,2 @@ extendStatics(d, b);

//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9hcGkvcmVzb3VyY2VzL21vZHVsZXMvbW9kdWxlX3Jlc291cmNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7OztBQUNBLDJDQUF3QztBQUV4Qzs7Ozs7R0FLRztBQUNIO0lBQTZDLGtDQUFRO0lBQ2pEOzs7OztPQUtHO0lBQ0gsd0JBQW9CLFdBQW1CLEVBQUUsVUFBc0I7UUFBL0QsWUFDSSxrQkFBTSxVQUFVLENBQUMsU0FDcEI7UUFGbUIsaUJBQVcsR0FBWCxXQUFXLENBQVE7O0lBRXZDLENBQUM7SUFLRCxzQkFBVyxnQ0FBSTtRQUhmOztXQUVHO2FBQ0g7WUFDSSxPQUFPLElBQUksQ0FBQyxXQUFXLENBQUM7UUFDNUIsQ0FBQzs7O09BQUE7SUFFRDs7T0FFRztJQUNPLDJDQUFrQixHQUE1QjtRQUNJLE9BQVUsSUFBSSxDQUFDLFdBQVcsRUFBRSxjQUFXLENBQUM7SUFDNUMsQ0FBQztJQUVEOztPQUVHO0lBQ08sc0NBQWEsR0FBdkI7UUFDSSxPQUFVLElBQUksQ0FBQyxrQkFBa0IsRUFBRSxTQUFJLElBQUksQ0FBQyxJQUFNLENBQUM7SUFDdkQsQ0FBQztJQUVEOzs7OztPQUtHO0lBQ08sNENBQW1CLEdBQTdCLFVBQThCLE1BQWM7UUFDeEMsT0FBVSxJQUFJLENBQUMsYUFBYSxFQUFFLFNBQUksTUFBUSxDQUFDO0lBQy9DLENBQUM7SUFDTCxxQkFBQztBQUFELENBekNBLEFBeUNDLENBekM0QyxtQkFBUSxHQXlDcEQ7QUF6Q3FCLHdDQUFjIiwiZmlsZSI6ImFwaS9yZXNvdXJjZXMvbW9kdWxlcy9tb2R1bGVfcmVzb3VyY2UuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0Nvbm5lY3Rpb259IGZyb20gJy4uLy4uL2Nvbm5lY3Rpb24nO1xuaW1wb3J0IHtSZXNvdXJjZX0gZnJvbSAnLi4vLi4vcmVzb3VyY2UnO1xuXG4vKipcbiAqIEEgYmFzZSBjbGFzcyBmb3IgYWxsIG1vZHVsZSBlbmRwb2ludCByZXNvdXJjZXMuXG4gKlxuICogTW9kdWxlIGlzIG5vdCBhIHJlc291cmNlIGluIFJFU1Qgc2Vuc2UsIGJ1dCBhIGhlbHBlciBlbmRwb2ludFxuICogdGhhdCBpcyB1c2VkIGZvciBhIHNwZWNpZmljIHVzZSBjYXNlLlxuICovXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgTW9kdWxlUmVzb3VyY2UgZXh0ZW5kcyBSZXNvdXJjZSB7XG4gICAgLyoqXG4gICAgICogQ29uc3RydWN0cyBhIG5ldyBtb2R1bGUgcmVzb3VyY2UuXG4gICAgICpcbiAgICAgKiBAcGFyYW0gX21vZHVsZSBNb2R1bGUgbmFtZVxuICAgICAqIEBwYXJhbSBjb25uZWN0aW9uIENvbm5lY3Rpb24gd2l0aCB0aGUgZ2VuZXNpcyBwbGF0Zm9ybSBzZXJ2ZXJcbiAgICAgKi9cbiAgICBjb25zdHJ1Y3Rvcihwcml2YXRlIF9tb2R1bGVOYW1lOiBzdHJpbmcsIGNvbm5lY3Rpb246IENvbm5lY3Rpb24pIHtcbiAgICAgICAgc3VwZXIoY29ubmVjdGlvbik7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogR2V0cyBtb2R1bGUncyBuYW1lLlxuICAgICAqL1xuICAgIHB1YmxpYyBnZXQgbmFtZSgpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gdGhpcy5fbW9kdWxlTmFtZTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBSZXR1cm5zIG1vZHVsZXMnIGJhc2UgcGF0aC5cbiAgICAgKi9cbiAgICBwcm90ZWN0ZWQgZ2V0TW9kdWxlc0Jhc2VQYXRoKCk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiBgJHt0aGlzLmdldEJhc2VQYXRoKCl9L19tb2R1bGVzYDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBSZXR1cm5zIG1vZHVsZSdzIHBhdGguXG4gICAgICovXG4gICAgcHJvdGVjdGVkIGdldE1vZHVsZVBhdGgoKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIGAke3RoaXMuZ2V0TW9kdWxlc0Jhc2VQYXRoKCl9LyR7dGhpcy5uYW1lfWA7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogUmV0dXJucyB0aGUgcGF0aCB1c2VkIGZvciByZXF1ZXN0aW5nIGEgbW9kdWxlJ3MgbWV0aG9kLlxuICAgICAqXG4gICAgICogQHBhcmFtIG1ldGhvZCBNb2R1bGUncyBtZXRob2QuXG4gICAgICogQHJldHVybnMgTW9kdWxlJ3MgbWV0aG9kIHBhdGguXG4gICAgICovXG4gICAgcHJvdGVjdGVkIGdldE1vZHVsZU1ldGhvZFBhdGgobWV0aG9kOiBzdHJpbmcpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gYCR7dGhpcy5nZXRNb2R1bGVQYXRoKCl9LyR7bWV0aG9kfWA7XG4gICAgfVxufVxuIl19
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9hcGkvcmVzb3VyY2VzL21vZHVsZXMvbW9kdWxlX3Jlc291cmNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7OztBQUNBLDJDQUF3QztBQUV4Qzs7Ozs7R0FLRztBQUNIO0lBQTZDLGtDQUFRO0lBQ2pEOzs7OztPQUtHO0lBQ0gsd0JBQW9CLFdBQW1CLEVBQUUsVUFBc0I7UUFBL0QsWUFDSSxrQkFBTSxVQUFVLENBQUMsU0FDcEI7UUFGbUIsaUJBQVcsR0FBWCxXQUFXLENBQVE7O0lBRXZDLENBQUM7SUFLRCxzQkFBVyxnQ0FBSTtRQUhmOztXQUVHO2FBQ0g7WUFDSSxPQUFPLElBQUksQ0FBQyxXQUFXLENBQUM7UUFDNUIsQ0FBQzs7O09BQUE7SUFFRDs7T0FFRztJQUNPLDJDQUFrQixHQUE1QjtRQUNJLE9BQVUsSUFBSSxDQUFDLFdBQVcsRUFBRSxjQUFXLENBQUM7SUFDNUMsQ0FBQztJQUVEOztPQUVHO0lBQ08sc0NBQWEsR0FBdkI7UUFDSSxPQUFVLElBQUksQ0FBQyxrQkFBa0IsRUFBRSxTQUFJLElBQUksQ0FBQyxJQUFNLENBQUM7SUFDdkQsQ0FBQztJQUVEOzs7OztPQUtHO0lBQ08sNENBQW1CLEdBQTdCLFVBQThCLE1BQWM7UUFDeEMsT0FBVSxJQUFJLENBQUMsYUFBYSxFQUFFLFNBQUksTUFBUSxDQUFDO0lBQy9DLENBQUM7SUFDTCxxQkFBQztBQUFELENBekNBLEFBeUNDLENBekM0QyxtQkFBUSxHQXlDcEQ7QUF6Q3FCLHdDQUFjIiwiZmlsZSI6ImFwaS9yZXNvdXJjZXMvbW9kdWxlcy9tb2R1bGVfcmVzb3VyY2UuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0Nvbm5lY3Rpb259IGZyb20gJy4uLy4uL2Nvbm5lY3Rpb24nO1xuaW1wb3J0IHtSZXNvdXJjZX0gZnJvbSAnLi4vLi4vcmVzb3VyY2UnO1xuXG4vKipcbiAqIEEgYmFzZSBjbGFzcyBmb3IgYWxsIG1vZHVsZSBlbmRwb2ludCByZXNvdXJjZXMuXG4gKlxuICogTW9kdWxlIGlzIG5vdCBhIHJlc291cmNlIGluIFJFU1Qgc2Vuc2UsIGJ1dCBhIGhlbHBlciBlbmRwb2ludFxuICogdGhhdCBpcyB1c2VkIGZvciBhIHNwZWNpZmljIHVzZSBjYXNlLlxuICovXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgTW9kdWxlUmVzb3VyY2UgZXh0ZW5kcyBSZXNvdXJjZSB7XG4gICAgLyoqXG4gICAgICogQ29uc3RydWN0cyBhIG5ldyBtb2R1bGUgcmVzb3VyY2UuXG4gICAgICpcbiAgICAgKiBAcGFyYW0gX21vZHVsZSBNb2R1bGUgbmFtZVxuICAgICAqIEBwYXJhbSBjb25uZWN0aW9uIENvbm5lY3Rpb24gd2l0aCB0aGUgZ2VuZXNpcyBwbGF0Zm9ybSBzZXJ2ZXJcbiAgICAgKi9cbiAgICBjb25zdHJ1Y3Rvcihwcml2YXRlIF9tb2R1bGVOYW1lOiBzdHJpbmcsIGNvbm5lY3Rpb246IENvbm5lY3Rpb24pIHtcbiAgICAgICAgc3VwZXIoY29ubmVjdGlvbik7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogR2V0cyBtb2R1bGUncyBuYW1lLlxuICAgICAqL1xuICAgIHB1YmxpYyBnZXQgbmFtZSgpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gdGhpcy5fbW9kdWxlTmFtZTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBSZXR1cm5zIG1vZHVsZXMnIGJhc2UgcGF0aC5cbiAgICAgKi9cbiAgICBwcm90ZWN0ZWQgZ2V0TW9kdWxlc0Jhc2VQYXRoKCk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiBgJHt0aGlzLmdldEJhc2VQYXRoKCl9L19tb2R1bGVzYDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBSZXR1cm5zIG1vZHVsZSdzIHBhdGguXG4gICAgICovXG4gICAgcHJvdGVjdGVkIGdldE1vZHVsZVBhdGgoKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIGAke3RoaXMuZ2V0TW9kdWxlc0Jhc2VQYXRoKCl9LyR7dGhpcy5uYW1lfWA7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogUmV0dXJucyB0aGUgcGF0aCB1c2VkIGZvciByZXF1ZXN0aW5nIGEgbW9kdWxlJ3MgbWV0aG9kLlxuICAgICAqXG4gICAgICogQHBhcmFtIG1ldGhvZCBNb2R1bGUncyBtZXRob2QuXG4gICAgICogQHJldHVybnMgTW9kdWxlJ3MgbWV0aG9kIHBhdGguXG4gICAgICovXG4gICAgcHJvdGVjdGVkIGdldE1vZHVsZU1ldGhvZFBhdGgobWV0aG9kOiBzdHJpbmcpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gYCR7dGhpcy5nZXRNb2R1bGVQYXRoKCl9LyR7bWV0aG9kfWA7XG4gICAgfVxufVxuIl19

@@ -11,2 +11,8 @@ import * as Rx from 'rx';

export declare class CollectionResource extends RESTResource<types.Collection> implements Permissionable {
/**
* Ordering by relevance constant. Apply this value to `ordering` query parameter to
* order by relevance.
* This works by overriding any default ordering on backend, so it keeps order of ES results
*/
readonly ORDERING_BY_RELEVANCE: string;
constructor(connection: Connection);

@@ -41,2 +47,1 @@ /**

}
//# sourceMappingURL=collection.d.ts.map
"use strict";
var __extends = (this && this.__extends) || (function () {
var extendStatics = function (d, b) {
extendStatics = Object.setPrototypeOf ||
({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
return extendStatics(d, b);
}
var extendStatics = Object.setPrototypeOf ||
({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
return function (d, b) {

@@ -24,3 +21,10 @@ extendStatics(d, b);

function CollectionResource(connection) {
return _super.call(this, 'collection', connection) || this;
var _this = _super.call(this, 'collection', connection) || this;
/**
* Ordering by relevance constant. Apply this value to `ordering` query parameter to
* order by relevance.
* This works by overriding any default ordering on backend, so it keeps order of ES results
*/
_this.ORDERING_BY_RELEVANCE = '';
return _this;
}

@@ -75,2 +79,2 @@ /**

//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9hcGkvcmVzb3VyY2VzL3Jlc3QvY29sbGVjdGlvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7QUFHQSxpREFBNkM7QUFFN0MscURBQXFGO0FBR3JGOztHQUVHO0FBQ0g7SUFBd0Msc0NBQThCO0lBRWxFLDRCQUFZLFVBQXNCO2VBQzlCLGtCQUFNLFlBQVksRUFBRSxVQUFVLENBQUM7SUFDbkMsQ0FBQztJQUVEOzs7O09BSUc7SUFDSSx1Q0FBVSxHQUFqQixVQUFrQixJQUFZO1FBQzFCLE9BQWdDLElBQUksQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxhQUFhLENBQUMsRUFBRSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO0lBQy9HLENBQUM7SUFFRDs7Ozs7T0FLRztJQUNJLG9DQUFPLEdBQWQsVUFBZSxZQUFvQixFQUFFLE9BQWlCO1FBQ2xELE9BQU8sSUFBSSxDQUFDLFVBQVUsQ0FBTyxZQUFZLEVBQUUsVUFBVSxFQUFFLEVBQUUsR0FBRyxFQUFFLE9BQU8sRUFBRSxDQUFDLENBQUM7SUFDN0UsQ0FBQztJQUVEOzs7OztPQUtHO0lBQ0ksdUNBQVUsR0FBakIsVUFBa0IsWUFBb0IsRUFBRSxPQUFpQjtRQUNyRCxPQUFPLElBQUksQ0FBQyxVQUFVLENBQU8sWUFBWSxFQUFFLGFBQWEsRUFBRSxFQUFFLEdBQUcsRUFBRSxPQUFPLEVBQUUsQ0FBQyxDQUFDO0lBQ2hGLENBQUM7SUFJTSxrQ0FBSyxHQUFaLFVBQWEsS0FBdUIsRUFBRSxPQUFzQjtRQUEvQyxzQkFBQSxFQUFBLFVBQXVCO1FBQ2hDLE9BQU8saUJBQU0sS0FBSyxZQUFDLEtBQUssRUFBRSxPQUFPLENBQUMsQ0FBQztJQUN2QyxDQUFDO0lBSU0scUNBQVEsR0FBZixVQUFnQixLQUF1QixFQUFFLE9BQXNCO1FBQS9DLHNCQUFBLEVBQUEsVUFBdUI7UUFDbkMsT0FBTyxpQkFBTSxRQUFRLFlBQUMsS0FBSyxFQUFFLE9BQU8sQ0FBQyxDQUFDO0lBQzFDLENBQUM7SUFFTSxtQ0FBTSxHQUFiLFVBQWMsVUFBMkIsRUFBRSxhQUE4QjtRQUE5Qiw4QkFBQSxFQUFBLHFCQUE4QjtRQUNyRSxPQUFPLGlCQUFNLE1BQU0sWUFBQyxVQUFVLEVBQUUsRUFBRSxFQUFFLEVBQUUsY0FBYyxFQUFFLGFBQWEsRUFBRSxDQUFDLENBQUM7SUFDM0UsQ0FBQztJQUVNLDJDQUFjLEdBQXJCLFVBQXNCLEVBQVU7UUFDNUIsT0FBTyw0QkFBYyxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsQ0FBQztJQUNwQyxDQUFDO0lBRU0sMkNBQWMsR0FBckIsVUFBc0IsRUFBVSxFQUFFLFdBQXdDO1FBQ3RFLE9BQU8sNEJBQWMsQ0FBQyxJQUFJLEVBQUUsRUFBRSxFQUFFLFdBQVcsQ0FBQyxDQUFDO0lBQ2pELENBQUM7SUFDTCx5QkFBQztBQUFELENBMURBLEFBMERDLENBMUR1Qyw0QkFBWSxHQTBEbkQ7QUExRFksZ0RBQWtCIiwiZmlsZSI6ImFwaS9yZXNvdXJjZXMvcmVzdC9jb2xsZWN0aW9uLmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgUnggZnJvbSAncngnO1xuXG5pbXBvcnQge1F1ZXJ5T3B0aW9uc30gZnJvbSAnLi4vLi4vcmVzb3VyY2UnO1xuaW1wb3J0IHtSRVNUUmVzb3VyY2V9IGZyb20gJy4vcmVzdF9yZXNvdXJjZSc7XG5pbXBvcnQge0Nvbm5lY3Rpb259IGZyb20gJy4uLy4uL2Nvbm5lY3Rpb24nO1xuaW1wb3J0IHtQZXJtaXNzaW9uYWJsZSwgZ2V0UGVybWlzc2lvbnMsIHNldFBlcm1pc3Npb25zfSBmcm9tICcuLi9hZGRvbnMvcGVybWlzc2lvbnMnO1xuaW1wb3J0ICogYXMgdHlwZXMgZnJvbSAnLi4vLi4vdHlwZXMvcmVzdCc7XG5cbi8qKlxuICogQ29sbGVjdGlvbiByZXNvdXJjZSBjbGFzcyBmb3IgZGVhbGluZyB3aXRoIGNvbGxlY3Rpb24gZW5kcG9pbnQuXG4gKi9cbmV4cG9ydCBjbGFzcyBDb2xsZWN0aW9uUmVzb3VyY2UgZXh0ZW5kcyBSRVNUUmVzb3VyY2U8dHlwZXMuQ29sbGVjdGlvbj4gaW1wbGVtZW50cyBQZXJtaXNzaW9uYWJsZSB7XG5cbiAgICBjb25zdHJ1Y3Rvcihjb25uZWN0aW9uOiBDb25uZWN0aW9uKSB7XG4gICAgICAgIHN1cGVyKCdjb2xsZWN0aW9uJywgY29ubmVjdGlvbik7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQ2hlY2tzIGlmIGNvbGxlY3Rpb24gc2x1ZyBhbHJlYWR5IGV4aXN0cy5cbiAgICAgKlxuICAgICAqIEBwYXJhbSBTbHVnIHRvIGNoZWNrXG4gICAgICovXG4gICAgcHVibGljIHNsdWdFeGlzdHMoc2x1Zzogc3RyaW5nKTogUnguT2JzZXJ2YWJsZTxib29sZWFuPiB7XG4gICAgICAgIHJldHVybiA8UnguT2JzZXJ2YWJsZTxib29sZWFuPj4gdGhpcy5jb25uZWN0aW9uLmdldCh0aGlzLmdldExpc3RNZXRob2RQYXRoKCdzbHVnX2V4aXN0cycpLCB7IG5hbWU6IHNsdWcgfSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQWRkcyBkYXRhIG9iamVjdHMgdG8gY29sbGVjdGlvbi5cbiAgICAgKlxuICAgICAqIEBwYXJhbSBjb2xsZWN0aW9uSWQgQ29sbGVjdGlvbiBpZFxuICAgICAqIEBwYXJhbSBkYXRhSWRzIEFycmF5IG9mIGRhdGEgb2JqZWN0IGlkc1xuICAgICAqL1xuICAgIHB1YmxpYyBhZGREYXRhKGNvbGxlY3Rpb25JZDogbnVtYmVyLCBkYXRhSWRzOiBudW1iZXJbXSk6IFJ4Lk9ic2VydmFibGU8dm9pZD4ge1xuICAgICAgICByZXR1cm4gdGhpcy5jYWxsTWV0aG9kPHZvaWQ+KGNvbGxlY3Rpb25JZCwgJ2FkZF9kYXRhJywgeyBpZHM6IGRhdGFJZHMgfSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogUmVtb3ZlcyBkYXRhIG9iamVjdHMgZnJvbSBjb2xsZWN0aW9uLlxuICAgICAqXG4gICAgICogQHBhcmFtIGNvbGxlY3Rpb25JZCBTYW1wbGUgaWRcbiAgICAgKiBAcGFyYW0gZGF0YUlkcyBBcnJheSBvZiBkYXRhIG9iamVjdCBpZHNcbiAgICAgKi9cbiAgICBwdWJsaWMgcmVtb3ZlRGF0YShjb2xsZWN0aW9uSWQ6IG51bWJlciwgZGF0YUlkczogbnVtYmVyW10pOiBSeC5PYnNlcnZhYmxlPHZvaWQ+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuY2FsbE1ldGhvZDx2b2lkPihjb2xsZWN0aW9uSWQsICdyZW1vdmVfZGF0YScsIHsgaWRzOiBkYXRhSWRzIH0pO1xuICAgIH1cblxuICAgIHB1YmxpYyBxdWVyeShxdWVyeTogdHlwZXMuUXVlcnlPYmplY3RIeWRyYXRlRGF0YSwgb3B0aW9ucz86IFF1ZXJ5T3B0aW9ucyk6IFJ4Lk9ic2VydmFibGU8dHlwZXMuQ29sbGVjdGlvbkh5ZHJhdGVEYXRhW10+O1xuICAgIHB1YmxpYyBxdWVyeShxdWVyeT86IHR5cGVzLlF1ZXJ5T2JqZWN0LCBvcHRpb25zPzogUXVlcnlPcHRpb25zKTogUnguT2JzZXJ2YWJsZTx0eXBlcy5Db2xsZWN0aW9uW10+O1xuICAgIHB1YmxpYyBxdWVyeShxdWVyeTogdHlwZXMuUXVlcnkgPSB7fSwgb3B0aW9ucz86IFF1ZXJ5T3B0aW9ucyk6IFJ4Lk9ic2VydmFibGU8YW55PiB7XG4gICAgICAgIHJldHVybiBzdXBlci5xdWVyeShxdWVyeSwgb3B0aW9ucyk7XG4gICAgfVxuXG4gICAgcHVibGljIHF1ZXJ5T25lKHF1ZXJ5OiB0eXBlcy5RdWVyeU9iamVjdEh5ZHJhdGVEYXRhLCBvcHRpb25zPzogUXVlcnlPcHRpb25zKTogUnguT2JzZXJ2YWJsZTx0eXBlcy5Db2xsZWN0aW9uSHlkcmF0ZURhdGE+O1xuICAgIHB1YmxpYyBxdWVyeU9uZShxdWVyeT86IHR5cGVzLlF1ZXJ5T2JqZWN0LCBvcHRpb25zPzogUXVlcnlPcHRpb25zKTogUnguT2JzZXJ2YWJsZTx0eXBlcy5Db2xsZWN0aW9uPjtcbiAgICBwdWJsaWMgcXVlcnlPbmUocXVlcnk6IHR5cGVzLlF1ZXJ5ID0ge30sIG9wdGlvbnM/OiBRdWVyeU9wdGlvbnMpOiBSeC5PYnNlcnZhYmxlPGFueT4ge1xuICAgICAgICByZXR1cm4gc3VwZXIucXVlcnlPbmUocXVlcnksIG9wdGlvbnMpO1xuICAgIH1cblxuICAgIHB1YmxpYyBkZWxldGUocHJpbWFyeUtleTogbnVtYmVyIHwgc3RyaW5nLCBkZWxldGVDb250ZW50OiBib29sZWFuID0gZmFsc2UpOiBSeC5PYnNlcnZhYmxlPE9iamVjdD4ge1xuICAgICAgICByZXR1cm4gc3VwZXIuZGVsZXRlKHByaW1hcnlLZXksIHt9LCB7IGRlbGV0ZV9jb250ZW50OiBkZWxldGVDb250ZW50IH0pO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXRQZXJtaXNzaW9ucyhpZDogbnVtYmVyKTogUnguT2JzZXJ2YWJsZTx0eXBlcy5JdGVtUGVybWlzc2lvbnNbXT4ge1xuICAgICAgICByZXR1cm4gZ2V0UGVybWlzc2lvbnModGhpcywgaWQpO1xuICAgIH1cblxuICAgIHB1YmxpYyBzZXRQZXJtaXNzaW9ucyhpZDogbnVtYmVyLCBwZXJtaXNzaW9uczogdHlwZXMuU2V0UGVybWlzc2lvbnNSZXF1ZXN0KTogUnguT2JzZXJ2YWJsZTx0eXBlcy5JdGVtUGVybWlzc2lvbnNbXT4ge1xuICAgICAgICByZXR1cm4gc2V0UGVybWlzc2lvbnModGhpcywgaWQsIHBlcm1pc3Npb25zKTtcbiAgICB9XG59XG4iXX0=
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9hcGkvcmVzb3VyY2VzL3Jlc3QvY29sbGVjdGlvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7QUFHQSxpREFBNkM7QUFFN0MscURBQXFGO0FBR3JGOztHQUVHO0FBQ0g7SUFBd0Msc0NBQThCO0lBUWxFLDRCQUFZLFVBQXNCO1FBQWxDLFlBQ0ksa0JBQU0sWUFBWSxFQUFFLFVBQVUsQ0FBQyxTQUNsQztRQVREOzs7O1dBSUc7UUFDYSwyQkFBcUIsR0FBRyxFQUFFLENBQUM7O0lBSTNDLENBQUM7SUFFRDs7OztPQUlHO0lBQ0ksdUNBQVUsR0FBakIsVUFBa0IsSUFBWTtRQUMxQixPQUFnQyxJQUFJLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsaUJBQWlCLENBQUMsYUFBYSxDQUFDLEVBQUUsRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQztJQUMvRyxDQUFDO0lBRUQ7Ozs7O09BS0c7SUFDSSxvQ0FBTyxHQUFkLFVBQWUsWUFBb0IsRUFBRSxPQUFpQjtRQUNsRCxPQUFPLElBQUksQ0FBQyxVQUFVLENBQU8sWUFBWSxFQUFFLFVBQVUsRUFBRSxFQUFFLEdBQUcsRUFBRSxPQUFPLEVBQUUsQ0FBQyxDQUFDO0lBQzdFLENBQUM7SUFFRDs7Ozs7T0FLRztJQUNJLHVDQUFVLEdBQWpCLFVBQWtCLFlBQW9CLEVBQUUsT0FBaUI7UUFDckQsT0FBTyxJQUFJLENBQUMsVUFBVSxDQUFPLFlBQVksRUFBRSxhQUFhLEVBQUUsRUFBRSxHQUFHLEVBQUUsT0FBTyxFQUFFLENBQUMsQ0FBQztJQUNoRixDQUFDO0lBSU0sa0NBQUssR0FBWixVQUFhLEtBQXVCLEVBQUUsT0FBc0I7UUFBL0Msc0JBQUEsRUFBQSxVQUF1QjtRQUNoQyxPQUFPLGlCQUFNLEtBQUssWUFBQyxLQUFLLEVBQUUsT0FBTyxDQUFDLENBQUM7SUFDdkMsQ0FBQztJQUlNLHFDQUFRLEdBQWYsVUFBZ0IsS0FBdUIsRUFBRSxPQUFzQjtRQUEvQyxzQkFBQSxFQUFBLFVBQXVCO1FBQ25DLE9BQU8saUJBQU0sUUFBUSxZQUFDLEtBQUssRUFBRSxPQUFPLENBQUMsQ0FBQztJQUMxQyxDQUFDO0lBRU0sbUNBQU0sR0FBYixVQUFjLFVBQTJCLEVBQUUsYUFBOEI7UUFBOUIsOEJBQUEsRUFBQSxxQkFBOEI7UUFDckUsT0FBTyxpQkFBTSxNQUFNLFlBQUMsVUFBVSxFQUFFLEVBQUUsRUFBRSxFQUFFLGNBQWMsRUFBRSxhQUFhLEVBQUUsQ0FBQyxDQUFDO0lBQzNFLENBQUM7SUFFTSwyQ0FBYyxHQUFyQixVQUFzQixFQUFVO1FBQzVCLE9BQU8sNEJBQWMsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLENBQUM7SUFDcEMsQ0FBQztJQUVNLDJDQUFjLEdBQXJCLFVBQXNCLEVBQVUsRUFBRSxXQUF3QztRQUN0RSxPQUFPLDRCQUFjLENBQUMsSUFBSSxFQUFFLEVBQUUsRUFBRSxXQUFXLENBQUMsQ0FBQztJQUNqRCxDQUFDO0lBQ0wseUJBQUM7QUFBRCxDQWhFQSxBQWdFQyxDQWhFdUMsNEJBQVksR0FnRW5EO0FBaEVZLGdEQUFrQiIsImZpbGUiOiJhcGkvcmVzb3VyY2VzL3Jlc3QvY29sbGVjdGlvbi5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIFJ4IGZyb20gJ3J4JztcblxuaW1wb3J0IHtRdWVyeU9wdGlvbnN9IGZyb20gJy4uLy4uL3Jlc291cmNlJztcbmltcG9ydCB7UkVTVFJlc291cmNlfSBmcm9tICcuL3Jlc3RfcmVzb3VyY2UnO1xuaW1wb3J0IHtDb25uZWN0aW9ufSBmcm9tICcuLi8uLi9jb25uZWN0aW9uJztcbmltcG9ydCB7UGVybWlzc2lvbmFibGUsIGdldFBlcm1pc3Npb25zLCBzZXRQZXJtaXNzaW9uc30gZnJvbSAnLi4vYWRkb25zL3Blcm1pc3Npb25zJztcbmltcG9ydCAqIGFzIHR5cGVzIGZyb20gJy4uLy4uL3R5cGVzL3Jlc3QnO1xuXG4vKipcbiAqIENvbGxlY3Rpb24gcmVzb3VyY2UgY2xhc3MgZm9yIGRlYWxpbmcgd2l0aCBjb2xsZWN0aW9uIGVuZHBvaW50LlxuICovXG5leHBvcnQgY2xhc3MgQ29sbGVjdGlvblJlc291cmNlIGV4dGVuZHMgUkVTVFJlc291cmNlPHR5cGVzLkNvbGxlY3Rpb24+IGltcGxlbWVudHMgUGVybWlzc2lvbmFibGUge1xuICAgIC8qKlxuICAgICAqIE9yZGVyaW5nIGJ5IHJlbGV2YW5jZSBjb25zdGFudC4gQXBwbHkgdGhpcyB2YWx1ZSB0byBgb3JkZXJpbmdgIHF1ZXJ5IHBhcmFtZXRlciB0b1xuICAgICAqIG9yZGVyIGJ5IHJlbGV2YW5jZS5cbiAgICAgKiBUaGlzIHdvcmtzIGJ5IG92ZXJyaWRpbmcgYW55IGRlZmF1bHQgb3JkZXJpbmcgb24gYmFja2VuZCwgc28gaXQga2VlcHMgb3JkZXIgb2YgRVMgcmVzdWx0c1xuICAgICAqL1xuICAgIHB1YmxpYyByZWFkb25seSBPUkRFUklOR19CWV9SRUxFVkFOQ0UgPSAnJztcblxuICAgIGNvbnN0cnVjdG9yKGNvbm5lY3Rpb246IENvbm5lY3Rpb24pIHtcbiAgICAgICAgc3VwZXIoJ2NvbGxlY3Rpb24nLCBjb25uZWN0aW9uKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBDaGVja3MgaWYgY29sbGVjdGlvbiBzbHVnIGFscmVhZHkgZXhpc3RzLlxuICAgICAqXG4gICAgICogQHBhcmFtIFNsdWcgdG8gY2hlY2tcbiAgICAgKi9cbiAgICBwdWJsaWMgc2x1Z0V4aXN0cyhzbHVnOiBzdHJpbmcpOiBSeC5PYnNlcnZhYmxlPGJvb2xlYW4+IHtcbiAgICAgICAgcmV0dXJuIDxSeC5PYnNlcnZhYmxlPGJvb2xlYW4+PiB0aGlzLmNvbm5lY3Rpb24uZ2V0KHRoaXMuZ2V0TGlzdE1ldGhvZFBhdGgoJ3NsdWdfZXhpc3RzJyksIHsgbmFtZTogc2x1ZyB9KTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBBZGRzIGRhdGEgb2JqZWN0cyB0byBjb2xsZWN0aW9uLlxuICAgICAqXG4gICAgICogQHBhcmFtIGNvbGxlY3Rpb25JZCBDb2xsZWN0aW9uIGlkXG4gICAgICogQHBhcmFtIGRhdGFJZHMgQXJyYXkgb2YgZGF0YSBvYmplY3QgaWRzXG4gICAgICovXG4gICAgcHVibGljIGFkZERhdGEoY29sbGVjdGlvbklkOiBudW1iZXIsIGRhdGFJZHM6IG51bWJlcltdKTogUnguT2JzZXJ2YWJsZTx2b2lkPiB7XG4gICAgICAgIHJldHVybiB0aGlzLmNhbGxNZXRob2Q8dm9pZD4oY29sbGVjdGlvbklkLCAnYWRkX2RhdGEnLCB7IGlkczogZGF0YUlkcyB9KTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBSZW1vdmVzIGRhdGEgb2JqZWN0cyBmcm9tIGNvbGxlY3Rpb24uXG4gICAgICpcbiAgICAgKiBAcGFyYW0gY29sbGVjdGlvbklkIFNhbXBsZSBpZFxuICAgICAqIEBwYXJhbSBkYXRhSWRzIEFycmF5IG9mIGRhdGEgb2JqZWN0IGlkc1xuICAgICAqL1xuICAgIHB1YmxpYyByZW1vdmVEYXRhKGNvbGxlY3Rpb25JZDogbnVtYmVyLCBkYXRhSWRzOiBudW1iZXJbXSk6IFJ4Lk9ic2VydmFibGU8dm9pZD4ge1xuICAgICAgICByZXR1cm4gdGhpcy5jYWxsTWV0aG9kPHZvaWQ+KGNvbGxlY3Rpb25JZCwgJ3JlbW92ZV9kYXRhJywgeyBpZHM6IGRhdGFJZHMgfSk7XG4gICAgfVxuXG4gICAgcHVibGljIHF1ZXJ5KHF1ZXJ5OiB0eXBlcy5RdWVyeU9iamVjdEh5ZHJhdGVEYXRhLCBvcHRpb25zPzogUXVlcnlPcHRpb25zKTogUnguT2JzZXJ2YWJsZTx0eXBlcy5Db2xsZWN0aW9uSHlkcmF0ZURhdGFbXT47XG4gICAgcHVibGljIHF1ZXJ5KHF1ZXJ5PzogdHlwZXMuUXVlcnlPYmplY3QsIG9wdGlvbnM/OiBRdWVyeU9wdGlvbnMpOiBSeC5PYnNlcnZhYmxlPHR5cGVzLkNvbGxlY3Rpb25bXT47XG4gICAgcHVibGljIHF1ZXJ5KHF1ZXJ5OiB0eXBlcy5RdWVyeSA9IHt9LCBvcHRpb25zPzogUXVlcnlPcHRpb25zKTogUnguT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICAgICAgcmV0dXJuIHN1cGVyLnF1ZXJ5KHF1ZXJ5LCBvcHRpb25zKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgcXVlcnlPbmUocXVlcnk6IHR5cGVzLlF1ZXJ5T2JqZWN0SHlkcmF0ZURhdGEsIG9wdGlvbnM/OiBRdWVyeU9wdGlvbnMpOiBSeC5PYnNlcnZhYmxlPHR5cGVzLkNvbGxlY3Rpb25IeWRyYXRlRGF0YT47XG4gICAgcHVibGljIHF1ZXJ5T25lKHF1ZXJ5PzogdHlwZXMuUXVlcnlPYmplY3QsIG9wdGlvbnM/OiBRdWVyeU9wdGlvbnMpOiBSeC5PYnNlcnZhYmxlPHR5cGVzLkNvbGxlY3Rpb24+O1xuICAgIHB1YmxpYyBxdWVyeU9uZShxdWVyeTogdHlwZXMuUXVlcnkgPSB7fSwgb3B0aW9ucz86IFF1ZXJ5T3B0aW9ucyk6IFJ4Lk9ic2VydmFibGU8YW55PiB7XG4gICAgICAgIHJldHVybiBzdXBlci5xdWVyeU9uZShxdWVyeSwgb3B0aW9ucyk7XG4gICAgfVxuXG4gICAgcHVibGljIGRlbGV0ZShwcmltYXJ5S2V5OiBudW1iZXIgfCBzdHJpbmcsIGRlbGV0ZUNvbnRlbnQ6IGJvb2xlYW4gPSBmYWxzZSk6IFJ4Lk9ic2VydmFibGU8T2JqZWN0PiB7XG4gICAgICAgIHJldHVybiBzdXBlci5kZWxldGUocHJpbWFyeUtleSwge30sIHsgZGVsZXRlX2NvbnRlbnQ6IGRlbGV0ZUNvbnRlbnQgfSk7XG4gICAgfVxuXG4gICAgcHVibGljIGdldFBlcm1pc3Npb25zKGlkOiBudW1iZXIpOiBSeC5PYnNlcnZhYmxlPHR5cGVzLkl0ZW1QZXJtaXNzaW9uc1tdPiB7XG4gICAgICAgIHJldHVybiBnZXRQZXJtaXNzaW9ucyh0aGlzLCBpZCk7XG4gICAgfVxuXG4gICAgcHVibGljIHNldFBlcm1pc3Npb25zKGlkOiBudW1iZXIsIHBlcm1pc3Npb25zOiB0eXBlcy5TZXRQZXJtaXNzaW9uc1JlcXVlc3QpOiBSeC5PYnNlcnZhYmxlPHR5cGVzLkl0ZW1QZXJtaXNzaW9uc1tdPiB7XG4gICAgICAgIHJldHVybiBzZXRQZXJtaXNzaW9ucyh0aGlzLCBpZCwgcGVybWlzc2lvbnMpO1xuICAgIH1cbn1cbiJdfQ==

@@ -51,2 +51,1 @@ import * as Rx from 'rx';

}
//# sourceMappingURL=data.d.ts.map
"use strict";
var __extends = (this && this.__extends) || (function () {
var extendStatics = function (d, b) {
extendStatics = Object.setPrototypeOf ||
({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
return extendStatics(d, b);
}
var extendStatics = Object.setPrototypeOf ||
({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
return function (d, b) {

@@ -110,2 +107,2 @@ extendStatics(d, b);

//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9hcGkvcmVzb3VyY2VzL3Jlc3QvZGF0YS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7QUFDQSwwQkFBNEI7QUFHNUIsaURBQTZDO0FBRTdDLHFEQUFxRjtBQUdyRjs7R0FFRztBQUNIO0lBQWtDLGdDQUF3QjtJQUV0RCxzQkFBWSxVQUFzQjtlQUM5QixrQkFBTSxNQUFNLEVBQUUsVUFBVSxDQUFDO0lBQzdCLENBQUM7SUFFUyxxQ0FBYyxHQUF4QixVQUF5QixLQUFrQjtRQUN2QywyQ0FBMkM7UUFDM0MsSUFBTSxnQkFBZ0IsR0FBRyxDQUFDLENBQUMsT0FBTyxDQUFDLEtBQUssRUFBRSxVQUFDLEtBQUssRUFBRSxLQUFLO1lBQ25ELE9BQU8sS0FBSztpQkFDUCxPQUFPLENBQUMsV0FBVyxFQUFFLFFBQVEsQ0FBQztpQkFDOUIsT0FBTyxDQUFDLFlBQVksRUFBRSxVQUFVLENBQUMsQ0FBQztRQUMzQyxDQUFDLENBQUMsQ0FBQztRQUVILCtDQUErQztRQUMvQyxJQUFJLGdCQUFnQixDQUFDLE1BQU0sRUFBRTtZQUN6QixnQkFBZ0IsQ0FBQyxNQUFNLEdBQUcsZ0JBQWdCLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxHQUFHLENBQUMsVUFBQyxLQUFLO2dCQUNuRSxPQUFPLEtBQUs7cUJBQ1AsT0FBTyxDQUFDLFdBQVcsRUFBRSxRQUFRLENBQUM7cUJBQzlCLE9BQU8sQ0FBQyxZQUFZLEVBQUUsVUFBVSxDQUFDLENBQUM7WUFDM0MsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1NBQ2hCO1FBRUQsT0FBTyxpQkFBTSxjQUFjLFlBQUMsZ0JBQWdCLENBQUMsQ0FBQztJQUNsRCxDQUFDO0lBRUQ7Ozs7O09BS0c7SUFDSSxpQ0FBVSxHQUFqQixVQUFrQixJQUFZO1FBQzFCLE9BQWdDLElBQUksQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxhQUFhLENBQUMsRUFBRSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO0lBQy9HLENBQUM7SUFFRDs7T0FFRztJQUNJLDRCQUFLLEdBQVosVUFBYSxLQUF1QixFQUFFLE9BQXNCO1FBQS9DLHNCQUFBLEVBQUEsVUFBdUI7UUFDaEMsT0FBTyxpQkFBTSxLQUFLLFlBQUMsS0FBSyxFQUFFLE9BQU8sQ0FBQyxDQUFDO0lBQ3ZDLENBQUM7SUFFRDs7T0FFRztJQUNJLCtCQUFRLEdBQWYsVUFBZ0IsS0FBdUIsRUFBRSxPQUFzQjtRQUEvQyxzQkFBQSxFQUFBLFVBQXVCO1FBQ25DLE9BQU8saUJBQU0sUUFBUSxZQUFDLEtBQUssRUFBRSxPQUFPLENBQUMsQ0FBQztJQUMxQyxDQUFDO0lBRUQ7O09BRUc7SUFDSSw2QkFBTSxHQUFiLFVBQWMsSUFBWTtRQUN0QixPQUFtRCxpQkFBTSxNQUFNLFlBQUMsSUFBSSxDQUFDLENBQUM7SUFDMUUsQ0FBQztJQUVEOztPQUVHO0lBQ0ksMEJBQUcsR0FBVixVQUFtRCxVQUEyQixFQUFFLElBQVE7UUFDcEYsT0FBTyxJQUFJLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLFVBQVUsQ0FBQyxFQUFFLElBQUksQ0FBQyxDQUFDO0lBQ3JFLENBQUM7SUFFRDs7T0FFRztJQUNJLDBDQUFtQixHQUExQixVQUEyQixFQUFVO1FBQ2pDLE9BQU8sSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLEVBQUUsRUFBRSxnQkFBZ0IsRUFBRSxHQUFHLEVBQUUsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxVQUFDLElBQUk7WUFDcEQsSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDO2dCQUFFLE9BQU8sQ0FBQyxLQUFLLENBQUMsK0NBQStDLEVBQUUsSUFBSSxDQUFDLENBQUM7WUFFdEcsSUFBTSxNQUFNLEdBQUcsQ0FBQyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7WUFDdEMsT0FBTyxNQUFNLENBQUM7UUFDbEIsQ0FBQyxDQUFDLENBQUM7SUFDUCxDQUFDO0lBRUQ7Ozs7OztPQU1HO0lBQ0ksa0NBQVcsR0FBbEIsVUFBbUIsSUFBWTtRQUMzQixPQUFPLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUE2QixJQUFJLENBQUMsaUJBQWlCLENBQUMsZUFBZSxDQUFDLEVBQUUsSUFBSSxDQUFDLENBQUM7SUFDM0csQ0FBQztJQUVNLHFDQUFjLEdBQXJCLFVBQXNCLEVBQVU7UUFDNUIsT0FBTyw0QkFBYyxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsQ0FBQztJQUNwQyxDQUFDO0lBRU0scUNBQWMsR0FBckIsVUFBc0IsRUFBVSxFQUFFLFdBQXdDO1FBQ3RFLE9BQU8sNEJBQWMsQ0FBQyxJQUFJLEVBQUUsRUFBRSxFQUFFLFdBQVcsQ0FBQyxDQUFDO0lBQ2pELENBQUM7SUFDTCxtQkFBQztBQUFELENBOUZBLEFBOEZDLENBOUZpQyw0QkFBWSxHQThGN0M7QUE5Rlksb0NBQVkiLCJmaWxlIjoiYXBpL3Jlc291cmNlcy9yZXN0L2RhdGEuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyBSeCBmcm9tICdyeCc7XG5pbXBvcnQgKiBhcyBfIGZyb20gJ2xvZGFzaCc7XG5cbmltcG9ydCB7UXVlcnlPcHRpb25zfSBmcm9tICcuLi8uLi9yZXNvdXJjZSc7XG5pbXBvcnQge1JFU1RSZXNvdXJjZX0gZnJvbSAnLi9yZXN0X3Jlc291cmNlJztcbmltcG9ydCB7Q29ubmVjdGlvbn0gZnJvbSAnLi4vLi4vY29ubmVjdGlvbic7XG5pbXBvcnQge1Blcm1pc3Npb25hYmxlLCBnZXRQZXJtaXNzaW9ucywgc2V0UGVybWlzc2lvbnN9IGZyb20gJy4uL2FkZG9ucy9wZXJtaXNzaW9ucyc7XG5pbXBvcnQgKiBhcyB0eXBlcyBmcm9tICcuLi8uLi90eXBlcy9yZXN0JztcblxuLyoqXG4gKiBEYXRhIHJlc291cmNlIGNsYXNzIGZvciBkZWFsaW5nIHdpdGggZGF0YSBlbmRwb2ludC5cbiAqL1xuZXhwb3J0IGNsYXNzIERhdGFSZXNvdXJjZSBleHRlbmRzIFJFU1RSZXNvdXJjZTx0eXBlcy5EYXRhPiBpbXBsZW1lbnRzIFBlcm1pc3Npb25hYmxlIHtcblxuICAgIGNvbnN0cnVjdG9yKGNvbm5lY3Rpb246IENvbm5lY3Rpb24pIHtcbiAgICAgICAgc3VwZXIoJ2RhdGEnLCBjb25uZWN0aW9uKTtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgdHJhbnNmb3JtUXVlcnkocXVlcnk6IHR5cGVzLlF1ZXJ5KTogdHlwZXMuUXVlcnkge1xuICAgICAgICAvLyBSZW5hbWUgYHNhbXBsZWAgcXVlcnkgZmllbGQgdG8gYGVudGl0eWAuXG4gICAgICAgIGNvbnN0IHRyYW5zZm9ybWVkUXVlcnkgPSBfLm1hcEtleXMocXVlcnksICh2YWx1ZSwgZmllbGQpID0+IHtcbiAgICAgICAgICAgIHJldHVybiBmaWVsZFxuICAgICAgICAgICAgICAgIC5yZXBsYWNlKC9ec2FtcGxlJC9nLCAnZW50aXR5JylcbiAgICAgICAgICAgICAgICAucmVwbGFjZSgvXnNhbXBsZV9fL2csICdlbnRpdHlfXycpO1xuICAgICAgICB9KTtcblxuICAgICAgICAvLyBSZW5hbWUgYHNhbXBsZWAgaW4gbGltaXQgZmllbGRzIHRvIGBlbnRpdHlgLlxuICAgICAgICBpZiAodHJhbnNmb3JtZWRRdWVyeS5maWVsZHMpIHtcbiAgICAgICAgICAgIHRyYW5zZm9ybWVkUXVlcnkuZmllbGRzID0gdHJhbnNmb3JtZWRRdWVyeS5maWVsZHMuc3BsaXQoJywnKS5tYXAoKGZpZWxkKSA9PiB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGZpZWxkXG4gICAgICAgICAgICAgICAgICAgIC5yZXBsYWNlKC9ec2FtcGxlJC9nLCAnZW50aXR5JylcbiAgICAgICAgICAgICAgICAgICAgLnJlcGxhY2UoL15zYW1wbGVfXy9nLCAnZW50aXR5X18nKTtcbiAgICAgICAgICAgIH0pLmpvaW4oJywnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBzdXBlci50cmFuc2Zvcm1RdWVyeSh0cmFuc2Zvcm1lZFF1ZXJ5KTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBDaGVja3MgaWYgZGF0YSBzbHVnIGFscmVhZHkgZXhpc3RzLlxuICAgICAqXG4gICAgICogQHBhcmFtIHtzdHJpbmd9IFNsdWcgdG8gY2hlY2tcbiAgICAgKiBAcmV0dXJuIHtSeC5PYnNlcnZhYmxlPGJvb2xlYW4+fSBBbiBvYnNlcnZhYmxlIHRoYXQgZW1pdHMgdGhlIHJlc3BvbnNlXG4gICAgICovXG4gICAgcHVibGljIHNsdWdFeGlzdHMoc2x1Zzogc3RyaW5nKTogUnguT2JzZXJ2YWJsZTxib29sZWFuPiB7XG4gICAgICAgIHJldHVybiA8UnguT2JzZXJ2YWJsZTxib29sZWFuPj4gdGhpcy5jb25uZWN0aW9uLmdldCh0aGlzLmdldExpc3RNZXRob2RQYXRoKCdzbHVnX2V4aXN0cycpLCB7IG5hbWU6IHNsdWcgfSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogRXhwbGljaXRseSByZS1kZWZpbmVkIHdpdGggcmV0dXJuIHR5cGUgRGF0YSwgYmVjYXVzZSB0aGlzIGRpZmZlcnMgZnJvbSBgY3JlYXRlYCBhbmQgYGdldGAuXG4gICAgICovXG4gICAgcHVibGljIHF1ZXJ5KHF1ZXJ5OiB0eXBlcy5RdWVyeSA9IHt9LCBvcHRpb25zPzogUXVlcnlPcHRpb25zKTogUnguT2JzZXJ2YWJsZTx0eXBlcy5EYXRhW10+IHtcbiAgICAgICAgcmV0dXJuIHN1cGVyLnF1ZXJ5KHF1ZXJ5LCBvcHRpb25zKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBFeHBsaWNpdGx5IHJlLWRlZmluZWQgd2l0aCByZXR1cm4gdHlwZSBEYXRhLCBiZWNhdXNlIHRoaXMgZGlmZmVycyBmcm9tIGBjcmVhdGVgIGFuZCBgZ2V0YC5cbiAgICAgKi9cbiAgICBwdWJsaWMgcXVlcnlPbmUocXVlcnk6IHR5cGVzLlF1ZXJ5ID0ge30sIG9wdGlvbnM/OiBRdWVyeU9wdGlvbnMpOiBSeC5PYnNlcnZhYmxlPHR5cGVzLkRhdGE+IHtcbiAgICAgICAgcmV0dXJuIHN1cGVyLnF1ZXJ5T25lKHF1ZXJ5LCBvcHRpb25zKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBFeHBsaWNpdGx5IHJlLWRlZmluZWQgd2l0aCByZXR1cm4gdHlwZSBTaW5nbGVEYXRhT2JqZWN0LCBiZWNhdXNlIHRoaXMgZGlmZmVycyBmcm9tIGBxdWVyeWAuXG4gICAgICovXG4gICAgcHVibGljIGNyZWF0ZShkYXRhOiBPYmplY3QpOiBSeC5PYnNlcnZhYmxlPHR5cGVzLlNpbmdsZURhdGFPYmplY3Q8e30+PiB7XG4gICAgICAgIHJldHVybiA8UnguT2JzZXJ2YWJsZTx0eXBlcy5TaW5nbGVEYXRhT2JqZWN0PHt9Pj4+IHN1cGVyLmNyZWF0ZShkYXRhKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBFeHBsaWNpdGx5IHJlLWRlZmluZWQgd2l0aCByZXR1cm4gdHlwZSBTaW5nbGVEYXRhT2JqZWN0LCBhbmQgZXh0cmEgcGFyYW1ldGVycy5cbiAgICAgKi9cbiAgICBwdWJsaWMgZ2V0PFEgZXh0ZW5kcyB0eXBlcy5TaW5nbGVEYXRhT2JqZWN0UGFyYW1zPihwcmltYXJ5S2V5OiBudW1iZXIgfCBzdHJpbmcsIG9wdHM/OiBRKTogUnguT2JzZXJ2YWJsZTx0eXBlcy5TaW5nbGVEYXRhT2JqZWN0PFE+PiB7XG4gICAgICAgIHJldHVybiB0aGlzLmNvbm5lY3Rpb24uZ2V0KHRoaXMuZ2V0RGV0YWlsUGF0aChwcmltYXJ5S2V5KSwgb3B0cyk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogR2V0IGEgc2FtcGxlIGJ5IGRhdGEgaWQuXG4gICAgICovXG4gICAgcHVibGljIGdldFNhbXBsZUZyb21EYXRhSWQoaWQ6IG51bWJlcik6IFJ4Lk9ic2VydmFibGU8dHlwZXMuU2FtcGxlIHwgdHlwZXMuUHJlc2FtcGxlPiB7XG4gICAgICAgIHJldHVybiB0aGlzLmdldChpZCwgeyBoeWRyYXRlX2VudGl0aWVzOiAnMScgfSkubWFwKChkYXRhKSA9PiB7XG4gICAgICAgICAgICBpZiAoXy5zaXplKGRhdGEuZW50aXRpZXMpICE9PSAxKSBjb25zb2xlLmVycm9yKCdFeHBlY3RlZCBkYXRhIHRvIGJlbG9uZyB0byBleGFjdGx5IG9uZSBzYW1wbGUnLCBkYXRhKTtcblxuICAgICAgICAgICAgY29uc3Qgc2FtcGxlID0gXy5maXJzdChkYXRhLmVudGl0aWVzKTtcbiAgICAgICAgICAgIHJldHVybiBzYW1wbGU7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEdldCBEYXRhIG9iamVjdCB3aXRoIHRoZSBzYW1lIGlucHV0cyBpZiBpdCBhbHJlYWR5IGV4aXN0cywgb3RoZXJ3aXNlXG4gICAgICogY3JlYXRlIGl0LlxuICAgICAqXG4gICAgICogTm90ZTogQ29uc2lkZXIgc29ydGluZyBhcnJheXMgaW4gdGhlIGlucHV0cywgdG8gcHJldmVudCBuZWVkbGVzc2x5XG4gICAgICogY3JlYXRpbmcgdGhlIHNhbWUgRGF0YSBvYmplY3RzLlxuICAgICAqL1xuICAgIHB1YmxpYyBnZXRPckNyZWF0ZShkYXRhOiBPYmplY3QpOiBSeC5PYnNlcnZhYmxlPHR5cGVzLlNpbmdsZURhdGFPYmplY3Q8e30+PiB7XG4gICAgICAgIHJldHVybiB0aGlzLmNvbm5lY3Rpb24ucG9zdDx0eXBlcy5TaW5nbGVEYXRhT2JqZWN0PHt9Pj4odGhpcy5nZXRMaXN0TWV0aG9kUGF0aCgnZ2V0X29yX2NyZWF0ZScpLCBkYXRhKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0UGVybWlzc2lvbnMoaWQ6IG51bWJlcik6IFJ4Lk9ic2VydmFibGU8dHlwZXMuSXRlbVBlcm1pc3Npb25zW10+IHtcbiAgICAgICAgcmV0dXJuIGdldFBlcm1pc3Npb25zKHRoaXMsIGlkKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgc2V0UGVybWlzc2lvbnMoaWQ6IG51bWJlciwgcGVybWlzc2lvbnM6IHR5cGVzLlNldFBlcm1pc3Npb25zUmVxdWVzdCk6IFJ4Lk9ic2VydmFibGU8dHlwZXMuSXRlbVBlcm1pc3Npb25zW10+IHtcbiAgICAgICAgcmV0dXJuIHNldFBlcm1pc3Npb25zKHRoaXMsIGlkLCBwZXJtaXNzaW9ucyk7XG4gICAgfVxufVxuIl19
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9hcGkvcmVzb3VyY2VzL3Jlc3QvZGF0YS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7QUFDQSwwQkFBNEI7QUFHNUIsaURBQTZDO0FBRTdDLHFEQUFxRjtBQUdyRjs7R0FFRztBQUNIO0lBQWtDLGdDQUF3QjtJQUV0RCxzQkFBWSxVQUFzQjtlQUM5QixrQkFBTSxNQUFNLEVBQUUsVUFBVSxDQUFDO0lBQzdCLENBQUM7SUFFUyxxQ0FBYyxHQUF4QixVQUF5QixLQUFrQjtRQUN2QywyQ0FBMkM7UUFDM0MsSUFBTSxnQkFBZ0IsR0FBRyxDQUFDLENBQUMsT0FBTyxDQUFDLEtBQUssRUFBRSxVQUFDLEtBQUssRUFBRSxLQUFLO1lBQ25ELE9BQU8sS0FBSztpQkFDUCxPQUFPLENBQUMsV0FBVyxFQUFFLFFBQVEsQ0FBQztpQkFDOUIsT0FBTyxDQUFDLFlBQVksRUFBRSxVQUFVLENBQUMsQ0FBQztRQUMzQyxDQUFDLENBQUMsQ0FBQztRQUVILCtDQUErQztRQUMvQyxJQUFJLGdCQUFnQixDQUFDLE1BQU0sRUFBRTtZQUN6QixnQkFBZ0IsQ0FBQyxNQUFNLEdBQUcsZ0JBQWdCLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxHQUFHLENBQUMsVUFBQyxLQUFLO2dCQUNuRSxPQUFPLEtBQUs7cUJBQ1AsT0FBTyxDQUFDLFdBQVcsRUFBRSxRQUFRLENBQUM7cUJBQzlCLE9BQU8sQ0FBQyxZQUFZLEVBQUUsVUFBVSxDQUFDLENBQUM7WUFDM0MsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1NBQ2hCO1FBRUQsT0FBTyxpQkFBTSxjQUFjLFlBQUMsZ0JBQWdCLENBQUMsQ0FBQztJQUNsRCxDQUFDO0lBRUQ7Ozs7O09BS0c7SUFDSSxpQ0FBVSxHQUFqQixVQUFrQixJQUFZO1FBQzFCLE9BQWdDLElBQUksQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxhQUFhLENBQUMsRUFBRSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO0lBQy9HLENBQUM7SUFFRDs7T0FFRztJQUNJLDRCQUFLLEdBQVosVUFBYSxLQUF1QixFQUFFLE9BQXNCO1FBQS9DLHNCQUFBLEVBQUEsVUFBdUI7UUFDaEMsT0FBTyxpQkFBTSxLQUFLLFlBQUMsS0FBSyxFQUFFLE9BQU8sQ0FBQyxDQUFDO0lBQ3ZDLENBQUM7SUFFRDs7T0FFRztJQUNJLCtCQUFRLEdBQWYsVUFBZ0IsS0FBdUIsRUFBRSxPQUFzQjtRQUEvQyxzQkFBQSxFQUFBLFVBQXVCO1FBQ25DLE9BQU8saUJBQU0sUUFBUSxZQUFDLEtBQUssRUFBRSxPQUFPLENBQUMsQ0FBQztJQUMxQyxDQUFDO0lBRUQ7O09BRUc7SUFDSSw2QkFBTSxHQUFiLFVBQWMsSUFBWTtRQUN0QixPQUFtRCxpQkFBTSxNQUFNLFlBQUMsSUFBSSxDQUFDLENBQUM7SUFDMUUsQ0FBQztJQUVEOztPQUVHO0lBQ0ksMEJBQUcsR0FBVixVQUFtRCxVQUEyQixFQUFFLElBQVE7UUFDcEYsT0FBTyxJQUFJLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLFVBQVUsQ0FBQyxFQUFFLElBQUksQ0FBQyxDQUFDO0lBQ3JFLENBQUM7SUFFRDs7T0FFRztJQUNJLDBDQUFtQixHQUExQixVQUEyQixFQUFVO1FBQ2pDLE9BQU8sSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLEVBQUUsRUFBRSxnQkFBZ0IsRUFBRSxHQUFHLEVBQUUsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxVQUFDLElBQUk7WUFDcEQsSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDO2dCQUFFLE9BQU8sQ0FBQyxLQUFLLENBQUMsK0NBQStDLEVBQUUsSUFBSSxDQUFDLENBQUM7WUFFdEcsSUFBTSxNQUFNLEdBQUcsQ0FBQyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7WUFDdEMsT0FBTyxNQUFNLENBQUM7UUFDbEIsQ0FBQyxDQUFDLENBQUM7SUFDUCxDQUFDO0lBRUQ7Ozs7OztPQU1HO0lBQ0ksa0NBQVcsR0FBbEIsVUFBbUIsSUFBWTtRQUMzQixPQUFPLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUE2QixJQUFJLENBQUMsaUJBQWlCLENBQUMsZUFBZSxDQUFDLEVBQUUsSUFBSSxDQUFDLENBQUM7SUFDM0csQ0FBQztJQUVNLHFDQUFjLEdBQXJCLFVBQXNCLEVBQVU7UUFDNUIsT0FBTyw0QkFBYyxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsQ0FBQztJQUNwQyxDQUFDO0lBRU0scUNBQWMsR0FBckIsVUFBc0IsRUFBVSxFQUFFLFdBQXdDO1FBQ3RFLE9BQU8sNEJBQWMsQ0FBQyxJQUFJLEVBQUUsRUFBRSxFQUFFLFdBQVcsQ0FBQyxDQUFDO0lBQ2pELENBQUM7SUFDTCxtQkFBQztBQUFELENBOUZBLEFBOEZDLENBOUZpQyw0QkFBWSxHQThGN0M7QUE5Rlksb0NBQVkiLCJmaWxlIjoiYXBpL3Jlc291cmNlcy9yZXN0L2RhdGEuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyBSeCBmcm9tICdyeCc7XG5pbXBvcnQgKiBhcyBfIGZyb20gJ2xvZGFzaCc7XG5cbmltcG9ydCB7UXVlcnlPcHRpb25zfSBmcm9tICcuLi8uLi9yZXNvdXJjZSc7XG5pbXBvcnQge1JFU1RSZXNvdXJjZX0gZnJvbSAnLi9yZXN0X3Jlc291cmNlJztcbmltcG9ydCB7Q29ubmVjdGlvbn0gZnJvbSAnLi4vLi4vY29ubmVjdGlvbic7XG5pbXBvcnQge1Blcm1pc3Npb25hYmxlLCBnZXRQZXJtaXNzaW9ucywgc2V0UGVybWlzc2lvbnN9IGZyb20gJy4uL2FkZG9ucy9wZXJtaXNzaW9ucyc7XG5pbXBvcnQgKiBhcyB0eXBlcyBmcm9tICcuLi8uLi90eXBlcy9yZXN0JztcblxuLyoqXG4gKiBEYXRhIHJlc291cmNlIGNsYXNzIGZvciBkZWFsaW5nIHdpdGggZGF0YSBlbmRwb2ludC5cbiAqL1xuZXhwb3J0IGNsYXNzIERhdGFSZXNvdXJjZSBleHRlbmRzIFJFU1RSZXNvdXJjZTx0eXBlcy5EYXRhPiBpbXBsZW1lbnRzIFBlcm1pc3Npb25hYmxlIHtcblxuICAgIGNvbnN0cnVjdG9yKGNvbm5lY3Rpb246IENvbm5lY3Rpb24pIHtcbiAgICAgICAgc3VwZXIoJ2RhdGEnLCBjb25uZWN0aW9uKTtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgdHJhbnNmb3JtUXVlcnkocXVlcnk6IHR5cGVzLlF1ZXJ5KTogdHlwZXMuUXVlcnkge1xuICAgICAgICAvLyBSZW5hbWUgYHNhbXBsZWAgcXVlcnkgZmllbGQgdG8gYGVudGl0eWAuXG4gICAgICAgIGNvbnN0IHRyYW5zZm9ybWVkUXVlcnkgPSBfLm1hcEtleXMocXVlcnksICh2YWx1ZSwgZmllbGQpID0+IHtcbiAgICAgICAgICAgIHJldHVybiBmaWVsZFxuICAgICAgICAgICAgICAgIC5yZXBsYWNlKC9ec2FtcGxlJC9nLCAnZW50aXR5JylcbiAgICAgICAgICAgICAgICAucmVwbGFjZSgvXnNhbXBsZV9fL2csICdlbnRpdHlfXycpO1xuICAgICAgICB9KTtcblxuICAgICAgICAvLyBSZW5hbWUgYHNhbXBsZWAgaW4gbGltaXQgZmllbGRzIHRvIGBlbnRpdHlgLlxuICAgICAgICBpZiAodHJhbnNmb3JtZWRRdWVyeS5maWVsZHMpIHtcbiAgICAgICAgICAgIHRyYW5zZm9ybWVkUXVlcnkuZmllbGRzID0gdHJhbnNmb3JtZWRRdWVyeS5maWVsZHMuc3BsaXQoJywnKS5tYXAoKGZpZWxkKSA9PiB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGZpZWxkXG4gICAgICAgICAgICAgICAgICAgIC5yZXBsYWNlKC9ec2FtcGxlJC9nLCAnZW50aXR5JylcbiAgICAgICAgICAgICAgICAgICAgLnJlcGxhY2UoL15zYW1wbGVfXy9nLCAnZW50aXR5X18nKTtcbiAgICAgICAgICAgIH0pLmpvaW4oJywnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBzdXBlci50cmFuc2Zvcm1RdWVyeSh0cmFuc2Zvcm1lZFF1ZXJ5KTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBDaGVja3MgaWYgZGF0YSBzbHVnIGFscmVhZHkgZXhpc3RzLlxuICAgICAqXG4gICAgICogQHBhcmFtIHtzdHJpbmd9IFNsdWcgdG8gY2hlY2tcbiAgICAgKiBAcmV0dXJuIHtSeC5PYnNlcnZhYmxlPGJvb2xlYW4+fSBBbiBvYnNlcnZhYmxlIHRoYXQgZW1pdHMgdGhlIHJlc3BvbnNlXG4gICAgICovXG4gICAgcHVibGljIHNsdWdFeGlzdHMoc2x1Zzogc3RyaW5nKTogUnguT2JzZXJ2YWJsZTxib29sZWFuPiB7XG4gICAgICAgIHJldHVybiA8UnguT2JzZXJ2YWJsZTxib29sZWFuPj4gdGhpcy5jb25uZWN0aW9uLmdldCh0aGlzLmdldExpc3RNZXRob2RQYXRoKCdzbHVnX2V4aXN0cycpLCB7IG5hbWU6IHNsdWcgfSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogRXhwbGljaXRseSByZS1kZWZpbmVkIHdpdGggcmV0dXJuIHR5cGUgRGF0YSwgYmVjYXVzZSB0aGlzIGRpZmZlcnMgZnJvbSBgY3JlYXRlYCBhbmQgYGdldGAuXG4gICAgICovXG4gICAgcHVibGljIHF1ZXJ5KHF1ZXJ5OiB0eXBlcy5RdWVyeSA9IHt9LCBvcHRpb25zPzogUXVlcnlPcHRpb25zKTogUnguT2JzZXJ2YWJsZTx0eXBlcy5EYXRhW10+IHtcbiAgICAgICAgcmV0dXJuIHN1cGVyLnF1ZXJ5KHF1ZXJ5LCBvcHRpb25zKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBFeHBsaWNpdGx5IHJlLWRlZmluZWQgd2l0aCByZXR1cm4gdHlwZSBEYXRhLCBiZWNhdXNlIHRoaXMgZGlmZmVycyBmcm9tIGBjcmVhdGVgIGFuZCBgZ2V0YC5cbiAgICAgKi9cbiAgICBwdWJsaWMgcXVlcnlPbmUocXVlcnk6IHR5cGVzLlF1ZXJ5ID0ge30sIG9wdGlvbnM/OiBRdWVyeU9wdGlvbnMpOiBSeC5PYnNlcnZhYmxlPHR5cGVzLkRhdGE+IHtcbiAgICAgICAgcmV0dXJuIHN1cGVyLnF1ZXJ5T25lKHF1ZXJ5LCBvcHRpb25zKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBFeHBsaWNpdGx5IHJlLWRlZmluZWQgd2l0aCByZXR1cm4gdHlwZSBTaW5nbGVEYXRhT2JqZWN0LCBiZWNhdXNlIHRoaXMgZGlmZmVycyBmcm9tIGBxdWVyeWAuXG4gICAgICovXG4gICAgcHVibGljIGNyZWF0ZShkYXRhOiBPYmplY3QpOiBSeC5PYnNlcnZhYmxlPHR5cGVzLlNpbmdsZURhdGFPYmplY3Q8e30+PiB7XG4gICAgICAgIHJldHVybiA8UnguT2JzZXJ2YWJsZTx0eXBlcy5TaW5nbGVEYXRhT2JqZWN0PHt9Pj4+IHN1cGVyLmNyZWF0ZShkYXRhKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBFeHBsaWNpdGx5IHJlLWRlZmluZWQgd2l0aCByZXR1cm4gdHlwZSBTaW5nbGVEYXRhT2JqZWN0LCBhbmQgZXh0cmEgcGFyYW1ldGVycy5cbiAgICAgKi9cbiAgICBwdWJsaWMgZ2V0PFEgZXh0ZW5kcyB0eXBlcy5TaW5nbGVEYXRhT2JqZWN0UGFyYW1zPihwcmltYXJ5S2V5OiBudW1iZXIgfCBzdHJpbmcsIG9wdHM/OiBRKTogUnguT2JzZXJ2YWJsZTx0eXBlcy5TaW5nbGVEYXRhT2JqZWN0PFE+PiB7XG4gICAgICAgIHJldHVybiB0aGlzLmNvbm5lY3Rpb24uZ2V0KHRoaXMuZ2V0RGV0YWlsUGF0aChwcmltYXJ5S2V5KSwgb3B0cyk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogR2V0IGEgc2FtcGxlIGJ5IGRhdGEgaWQuXG4gICAgICovXG4gICAgcHVibGljIGdldFNhbXBsZUZyb21EYXRhSWQoaWQ6IG51bWJlcik6IFJ4Lk9ic2VydmFibGU8dHlwZXMuU2FtcGxlIHwgdHlwZXMuUHJlc2FtcGxlPiB7XG4gICAgICAgIHJldHVybiB0aGlzLmdldChpZCwgeyBoeWRyYXRlX2VudGl0aWVzOiAnMScgfSkubWFwKChkYXRhKSA9PiB7XG4gICAgICAgICAgICBpZiAoXy5zaXplKGRhdGEuZW50aXRpZXMpICE9PSAxKSBjb25zb2xlLmVycm9yKCdFeHBlY3RlZCBkYXRhIHRvIGJlbG9uZyB0byBleGFjdGx5IG9uZSBzYW1wbGUnLCBkYXRhKTtcblxuICAgICAgICAgICAgY29uc3Qgc2FtcGxlID0gXy5maXJzdChkYXRhLmVudGl0aWVzKTtcbiAgICAgICAgICAgIHJldHVybiBzYW1wbGU7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEdldCBEYXRhIG9iamVjdCB3aXRoIHRoZSBzYW1lIGlucHV0cyBpZiBpdCBhbHJlYWR5IGV4aXN0cywgb3RoZXJ3aXNlXG4gICAgICogY3JlYXRlIGl0LlxuICAgICAqXG4gICAgICogTm90ZTogQ29uc2lkZXIgc29ydGluZyBhcnJheXMgaW4gdGhlIGlucHV0cywgdG8gcHJldmVudCBuZWVkbGVzc2x5XG4gICAgICogY3JlYXRpbmcgdGhlIHNhbWUgRGF0YSBvYmplY3RzLlxuICAgICAqL1xuICAgIHB1YmxpYyBnZXRPckNyZWF0ZShkYXRhOiBPYmplY3QpOiBSeC5PYnNlcnZhYmxlPHR5cGVzLlNpbmdsZURhdGFPYmplY3Q8e30+PiB7XG4gICAgICAgIHJldHVybiB0aGlzLmNvbm5lY3Rpb24ucG9zdDx0eXBlcy5TaW5nbGVEYXRhT2JqZWN0PHt9Pj4odGhpcy5nZXRMaXN0TWV0aG9kUGF0aCgnZ2V0X29yX2NyZWF0ZScpLCBkYXRhKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0UGVybWlzc2lvbnMoaWQ6IG51bWJlcik6IFJ4Lk9ic2VydmFibGU8dHlwZXMuSXRlbVBlcm1pc3Npb25zW10+IHtcbiAgICAgICAgcmV0dXJuIGdldFBlcm1pc3Npb25zKHRoaXMsIGlkKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgc2V0UGVybWlzc2lvbnMoaWQ6IG51bWJlciwgcGVybWlzc2lvbnM6IHR5cGVzLlNldFBlcm1pc3Npb25zUmVxdWVzdCk6IFJ4Lk9ic2VydmFibGU8dHlwZXMuSXRlbVBlcm1pc3Npb25zW10+IHtcbiAgICAgICAgcmV0dXJuIHNldFBlcm1pc3Npb25zKHRoaXMsIGlkLCBwZXJtaXNzaW9ucyk7XG4gICAgfVxufVxuIl19

@@ -13,2 +13,1 @@ import { RESTResource } from './rest_resource';

}
//# sourceMappingURL=descriptor_schema.d.ts.map
"use strict";
var __extends = (this && this.__extends) || (function () {
var extendStatics = function (d, b) {
extendStatics = Object.setPrototypeOf ||
({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
return extendStatics(d, b);
}
var extendStatics = Object.setPrototypeOf ||
({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
return function (d, b) {

@@ -36,2 +33,2 @@ extendStatics(d, b);

//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9hcGkvcmVzb3VyY2VzL3Jlc3QvZGVzY3JpcHRvcl9zY2hlbWEudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsaURBQTZDO0FBRTdDLHFEQUFxRjtBQUdyRjs7R0FFRztBQUNIO0lBQThDLDRDQUFvQztJQUU5RSxrQ0FBWSxVQUFzQjtlQUM5QixrQkFBTSxrQkFBa0IsRUFBRSxVQUFVLENBQUM7SUFDekMsQ0FBQztJQUVNLGlEQUFjLEdBQXJCLFVBQXNCLEVBQVU7UUFDNUIsT0FBTyw0QkFBYyxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsQ0FBQztJQUNwQyxDQUFDO0lBRU0saURBQWMsR0FBckIsVUFBc0IsRUFBVSxFQUFFLFdBQXdDO1FBQ3RFLE9BQU8sNEJBQWMsQ0FBQyxJQUFJLEVBQUUsRUFBRSxFQUFFLFdBQVcsQ0FBQyxDQUFDO0lBQ2pELENBQUM7SUFDTCwrQkFBQztBQUFELENBYkEsQUFhQyxDQWI2Qyw0QkFBWSxHQWF6RDtBQWJZLDREQUF3QiIsImZpbGUiOiJhcGkvcmVzb3VyY2VzL3Jlc3QvZGVzY3JpcHRvcl9zY2hlbWEuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1JFU1RSZXNvdXJjZX0gZnJvbSAnLi9yZXN0X3Jlc291cmNlJztcbmltcG9ydCB7Q29ubmVjdGlvbn0gZnJvbSAnLi4vLi4vY29ubmVjdGlvbic7XG5pbXBvcnQge1Blcm1pc3Npb25hYmxlLCBnZXRQZXJtaXNzaW9ucywgc2V0UGVybWlzc2lvbnN9IGZyb20gJy4uL2FkZG9ucy9wZXJtaXNzaW9ucyc7XG5pbXBvcnQgKiBhcyB0eXBlcyBmcm9tICcuLi8uLi90eXBlcy9yZXN0JztcblxuLyoqXG4gKiBEYXRhIHJlc291cmNlIGNsYXNzIGZvciBkZWFsaW5nIHdpdGggZGVzY3JpcHRvciBzY2hlbWEgZW5kcG9pbnQuXG4gKi9cbmV4cG9ydCBjbGFzcyBEZXNjcmlwdG9yU2NoZW1hUmVzb3VyY2UgZXh0ZW5kcyBSRVNUUmVzb3VyY2U8dHlwZXMuRGVzY3JpcHRvclNjaGVtYT4gaW1wbGVtZW50cyBQZXJtaXNzaW9uYWJsZSB7XG5cbiAgICBjb25zdHJ1Y3Rvcihjb25uZWN0aW9uOiBDb25uZWN0aW9uKSB7XG4gICAgICAgIHN1cGVyKCdkZXNjcmlwdG9yc2NoZW1hJywgY29ubmVjdGlvbik7XG4gICAgfVxuXG4gICAgcHVibGljIGdldFBlcm1pc3Npb25zKGlkOiBudW1iZXIpOiBSeC5PYnNlcnZhYmxlPHR5cGVzLkl0ZW1QZXJtaXNzaW9uc1tdPiB7XG4gICAgICAgIHJldHVybiBnZXRQZXJtaXNzaW9ucyh0aGlzLCBpZCk7XG4gICAgfVxuXG4gICAgcHVibGljIHNldFBlcm1pc3Npb25zKGlkOiBudW1iZXIsIHBlcm1pc3Npb25zOiB0eXBlcy5TZXRQZXJtaXNzaW9uc1JlcXVlc3QpOiBSeC5PYnNlcnZhYmxlPHR5cGVzLkl0ZW1QZXJtaXNzaW9uc1tdPiB7XG4gICAgICAgIHJldHVybiBzZXRQZXJtaXNzaW9ucyh0aGlzLCBpZCwgcGVybWlzc2lvbnMpO1xuICAgIH1cbn1cbiJdfQ==
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9hcGkvcmVzb3VyY2VzL3Jlc3QvZGVzY3JpcHRvcl9zY2hlbWEudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7O0FBQUEsaURBQTZDO0FBRTdDLHFEQUFxRjtBQUdyRjs7R0FFRztBQUNIO0lBQThDLDRDQUFvQztJQUU5RSxrQ0FBWSxVQUFzQjtlQUM5QixrQkFBTSxrQkFBa0IsRUFBRSxVQUFVLENBQUM7SUFDekMsQ0FBQztJQUVNLGlEQUFjLEdBQXJCLFVBQXNCLEVBQVU7UUFDNUIsT0FBTyw0QkFBYyxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsQ0FBQztJQUNwQyxDQUFDO0lBRU0saURBQWMsR0FBckIsVUFBc0IsRUFBVSxFQUFFLFdBQXdDO1FBQ3RFLE9BQU8sNEJBQWMsQ0FBQyxJQUFJLEVBQUUsRUFBRSxFQUFFLFdBQVcsQ0FBQyxDQUFDO0lBQ2pELENBQUM7SUFDTCwrQkFBQztBQUFELENBYkEsQUFhQyxDQWI2Qyw0QkFBWSxHQWF6RDtBQWJZLDREQUF3QiIsImZpbGUiOiJhcGkvcmVzb3VyY2VzL3Jlc3QvZGVzY3JpcHRvcl9zY2hlbWEuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1JFU1RSZXNvdXJjZX0gZnJvbSAnLi9yZXN0X3Jlc291cmNlJztcbmltcG9ydCB7Q29ubmVjdGlvbn0gZnJvbSAnLi4vLi4vY29ubmVjdGlvbic7XG5pbXBvcnQge1Blcm1pc3Npb25hYmxlLCBnZXRQZXJtaXNzaW9ucywgc2V0UGVybWlzc2lvbnN9IGZyb20gJy4uL2FkZG9ucy9wZXJtaXNzaW9ucyc7XG5pbXBvcnQgKiBhcyB0eXBlcyBmcm9tICcuLi8uLi90eXBlcy9yZXN0JztcblxuLyoqXG4gKiBEYXRhIHJlc291cmNlIGNsYXNzIGZvciBkZWFsaW5nIHdpdGggZGVzY3JpcHRvciBzY2hlbWEgZW5kcG9pbnQuXG4gKi9cbmV4cG9ydCBjbGFzcyBEZXNjcmlwdG9yU2NoZW1hUmVzb3VyY2UgZXh0ZW5kcyBSRVNUUmVzb3VyY2U8dHlwZXMuRGVzY3JpcHRvclNjaGVtYT4gaW1wbGVtZW50cyBQZXJtaXNzaW9uYWJsZSB7XG5cbiAgICBjb25zdHJ1Y3Rvcihjb25uZWN0aW9uOiBDb25uZWN0aW9uKSB7XG4gICAgICAgIHN1cGVyKCdkZXNjcmlwdG9yc2NoZW1hJywgY29ubmVjdGlvbik7XG4gICAgfVxuXG4gICAgcHVibGljIGdldFBlcm1pc3Npb25zKGlkOiBudW1iZXIpOiBSeC5PYnNlcnZhYmxlPHR5cGVzLkl0ZW1QZXJtaXNzaW9uc1tdPiB7XG4gICAgICAgIHJldHVybiBnZXRQZXJtaXNzaW9ucyh0aGlzLCBpZCk7XG4gICAgfVxuXG4gICAgcHVibGljIHNldFBlcm1pc3Npb25zKGlkOiBudW1iZXIsIHBlcm1pc3Npb25zOiB0eXBlcy5TZXRQZXJtaXNzaW9uc1JlcXVlc3QpOiBSeC5PYnNlcnZhYmxlPHR5cGVzLkl0ZW1QZXJtaXNzaW9uc1tdPiB7XG4gICAgICAgIHJldHVybiBzZXRQZXJtaXNzaW9ucyh0aGlzLCBpZCwgcGVybWlzc2lvbnMpO1xuICAgIH1cbn1cbiJdfQ==

@@ -14,3 +14,3 @@ import * as Rx from 'rx';

download(id: number, filename: string): Rx.Observable<types.Download>;
private _getFileUrl;
private _getFileUrl(id, filename);
getForcedDownloadUrl(id: number, filename: string): string;

@@ -24,2 +24,1 @@ getViewUrl(id: number, filename: string): string;

}
//# sourceMappingURL=file.d.ts.map
"use strict";
var __extends = (this && this.__extends) || (function () {
var extendStatics = function (d, b) {
extendStatics = Object.setPrototypeOf ||
({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
return extendStatics(d, b);
}
var extendStatics = Object.setPrototypeOf ||
({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
return function (d, b) {

@@ -68,2 +65,2 @@ extendStatics(d, b);

//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9hcGkvcmVzb3VyY2VzL3Jlc3QvZmlsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7QUFFQSxpREFBNkM7QUFFN0Msb0RBQW9EO0FBR3BEO0lBQWtDLGdDQUFvQjtJQUVsRCxzQkFBWSxVQUFzQjtlQUM5QixrQkFBTSxNQUFNLEVBQUUsVUFBVSxDQUFDO0lBQzdCLENBQUM7SUFFRDs7Ozs7T0FLRztJQUNJLCtCQUFRLEdBQWYsVUFBZ0IsRUFBVSxFQUFFLFFBQWdCO1FBQ3hDLE9BQWdDLElBQUksQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsRUFBRSxFQUFFLFFBQVEsQ0FBQyxDQUFFO2FBQ25GLEdBQUcsQ0FBQyxVQUFDLElBQUk7WUFDTixPQUFPO2dCQUNILElBQUksRUFBRSxJQUFJO2FBQ2IsQ0FBQztRQUNOLENBQUMsQ0FBQyxDQUFDO0lBQ1gsQ0FBQztJQUVPLGtDQUFXLEdBQW5CLFVBQW9CLEVBQVUsRUFBRSxRQUFnQjtRQUM1QyxPQUFPLFdBQVMsRUFBRSxTQUFJLFFBQVUsQ0FBQztJQUNyQyxDQUFDO0lBRU0sMkNBQW9CLEdBQTNCLFVBQTRCLEVBQVUsRUFBRSxRQUFnQjtRQUNwRCxPQUFPLElBQUksQ0FBQyxXQUFXLENBQUMsRUFBRSxFQUFFLFFBQVEsQ0FBQyxHQUFHLEdBQUcsR0FBRyxNQUFNLENBQUMsS0FBSyxDQUFDLEVBQUUsY0FBYyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUM7SUFDdEYsQ0FBQztJQUVNLGlDQUFVLEdBQWpCLFVBQWtCLEVBQVUsRUFBRSxRQUFnQjtRQUMxQyxPQUFPLElBQUksQ0FBQyxXQUFXLENBQUMsRUFBRSxFQUFFLFFBQVEsQ0FBQyxDQUFDO0lBQzFDLENBQUM7SUFFTSxzQ0FBZSxHQUF0QixVQUF1QixFQUFVLEVBQUUsUUFBZ0I7UUFDL0MsSUFBTSxZQUFZLEdBQUcsT0FBTyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUM1QyxJQUFJLENBQUMsWUFBWTtZQUFFLE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQyxFQUFFLEVBQUUsUUFBUSxDQUFDLENBQUM7UUFDekQsT0FBTyxlQUFhLEVBQUUsU0FBSSxRQUFVLENBQUM7SUFDekMsQ0FBQztJQUVNLDZCQUFNLEdBQWIsVUFBYyxJQUFZO1FBQ3RCLE1BQU0sSUFBSSxnQkFBUSxDQUFDLDZCQUE2QixDQUFDLENBQUM7SUFDdEQsQ0FBQztJQUVNLDZCQUFNLEdBQWIsVUFBYyxVQUEyQixFQUFFLElBQVk7UUFDbkQsTUFBTSxJQUFJLGdCQUFRLENBQUMsNkJBQTZCLENBQUMsQ0FBQztJQUN0RCxDQUFDO0lBRU0sOEJBQU8sR0FBZCxVQUFlLFVBQTJCLEVBQUUsSUFBWTtRQUNwRCxNQUFNLElBQUksZ0JBQVEsQ0FBQyw4QkFBOEIsQ0FBQyxDQUFDO0lBQ3ZELENBQUM7SUFFTSw2QkFBTSxHQUFiLFVBQWMsVUFBMkI7UUFDckMsTUFBTSxJQUFJLGdCQUFRLENBQUMsNkJBQTZCLENBQUMsQ0FBQztJQUN0RCxDQUFDO0lBQ0wsbUJBQUM7QUFBRCxDQXREQSxBQXNEQyxDQXREaUMsNEJBQVksR0FzRDdDO0FBdERZLG9DQUFZIiwiZmlsZSI6ImFwaS9yZXNvdXJjZXMvcmVzdC9maWxlLmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgUnggZnJvbSAncngnO1xuXG5pbXBvcnQge1JFU1RSZXNvdXJjZX0gZnJvbSAnLi9yZXN0X3Jlc291cmNlJztcbmltcG9ydCB7Q29ubmVjdGlvbn0gZnJvbSAnLi4vLi4vY29ubmVjdGlvbic7XG5pbXBvcnQge0dlbkVycm9yfSBmcm9tICcuLi8uLi8uLi9jb3JlL2Vycm9ycy9lcnJvcic7XG5pbXBvcnQgKiBhcyB0eXBlcyBmcm9tICcuLi8uLi90eXBlcy9yZXN0JztcblxuZXhwb3J0IGNsYXNzIEZpbGVSZXNvdXJjZSBleHRlbmRzIFJFU1RSZXNvdXJjZTxzdHJpbmc+IHtcblxuICAgIGNvbnN0cnVjdG9yKGNvbm5lY3Rpb246IENvbm5lY3Rpb24pIHtcbiAgICAgICAgc3VwZXIoJ2ZpbGUnLCBjb25uZWN0aW9uKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBEb3dubG9hZHMgdGhlIGZpbGUgZnJvbSBzZXJ2ZXIgKGl0IGFsc28gZGVjb21wcmVzc2VzIGd6aXBwZWQgZmlsZXMpLlxuICAgICAqXG4gICAgICogQHBhcmFtIHtzdHJpbmd9IGZpbGVuYW1lXG4gICAgICogQHJldHVybiB7UnguT2JzZXJ2YWJsZTx7IGRhdGE6IHN0cmluZyB9Pn1cbiAgICAgKi9cbiAgICBwdWJsaWMgZG93bmxvYWQoaWQ6IG51bWJlciwgZmlsZW5hbWU6IHN0cmluZyk6IFJ4Lk9ic2VydmFibGU8dHlwZXMuRG93bmxvYWQ+IHtcbiAgICAgICAgcmV0dXJuICg8UnguT2JzZXJ2YWJsZTxzdHJpbmc+PiB0aGlzLmNvbm5lY3Rpb24uZ2V0KHRoaXMuZ2V0VW5nemlwcGVkVXJsKGlkLCBmaWxlbmFtZSkpKVxuICAgICAgICAgICAgLm1hcCgoZGF0YSkgPT4ge1xuICAgICAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgICAgICAgIGRhdGE6IGRhdGEsXG4gICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIH0pO1xuICAgIH1cblxuICAgIHByaXZhdGUgX2dldEZpbGVVcmwoaWQ6IG51bWJlciwgZmlsZW5hbWU6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiBgL2RhdGEvJHtpZH0vJHtmaWxlbmFtZX1gO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXRGb3JjZWREb3dubG9hZFVybChpZDogbnVtYmVyLCBmaWxlbmFtZTogc3RyaW5nKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2dldEZpbGVVcmwoaWQsIGZpbGVuYW1lKSArICc/JyArIGpRdWVyeS5wYXJhbSh7IGZvcmNlX2Rvd25sb2FkOiAxIH0pO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXRWaWV3VXJsKGlkOiBudW1iZXIsIGZpbGVuYW1lOiBzdHJpbmcpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gdGhpcy5fZ2V0RmlsZVVybChpZCwgZmlsZW5hbWUpO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXRVbmd6aXBwZWRVcmwoaWQ6IG51bWJlciwgZmlsZW5hbWU6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgICAgIGNvbnN0IGlzQ29tcHJlc3NlZCA9IC9cXC5neiQvLnRlc3QoZmlsZW5hbWUpO1xuICAgICAgICBpZiAoIWlzQ29tcHJlc3NlZCkgcmV0dXJuIHRoaXMuX2dldEZpbGVVcmwoaWQsIGZpbGVuYW1lKTtcbiAgICAgICAgcmV0dXJuIGAvZGF0YWd6aXAvJHtpZH0vJHtmaWxlbmFtZX1gO1xuICAgIH1cblxuICAgIHB1YmxpYyBjcmVhdGUoZGF0YTogT2JqZWN0KTogUnguT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICAgICAgdGhyb3cgbmV3IEdlbkVycm9yKFwiQ3JlYXRlIG1ldGhvZCBub3Qgc3VwcG9ydGVkXCIpO1xuICAgIH1cblxuICAgIHB1YmxpYyB1cGRhdGUocHJpbWFyeUtleTogbnVtYmVyIHwgc3RyaW5nLCBkYXRhOiBPYmplY3QpOiBSeC5PYnNlcnZhYmxlPGFueT4ge1xuICAgICAgICB0aHJvdyBuZXcgR2VuRXJyb3IoXCJVcGRhdGUgbWV0aG9kIG5vdCBzdXBwb3J0ZWRcIik7XG4gICAgfVxuXG4gICAgcHVibGljIHJlcGxhY2UocHJpbWFyeUtleTogbnVtYmVyIHwgc3RyaW5nLCBkYXRhOiBPYmplY3QpOiBSeC5PYnNlcnZhYmxlPGFueT4ge1xuICAgICAgICB0aHJvdyBuZXcgR2VuRXJyb3IoXCJSZXBsYWNlIG1ldGhvZCBub3Qgc3VwcG9ydGVkXCIpO1xuICAgIH1cblxuICAgIHB1YmxpYyBkZWxldGUocHJpbWFyeUtleTogbnVtYmVyIHwgc3RyaW5nKTogUnguT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICAgICAgdGhyb3cgbmV3IEdlbkVycm9yKFwiRGVsZXRlIG1ldGhvZCBub3Qgc3VwcG9ydGVkXCIpO1xuICAgIH1cbn1cbiJdfQ==
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9hcGkvcmVzb3VyY2VzL3Jlc3QvZmlsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7QUFFQSxpREFBNkM7QUFFN0Msb0RBQW9EO0FBR3BEO0lBQWtDLGdDQUFvQjtJQUVsRCxzQkFBWSxVQUFzQjtlQUM5QixrQkFBTSxNQUFNLEVBQUUsVUFBVSxDQUFDO0lBQzdCLENBQUM7SUFFRDs7Ozs7T0FLRztJQUNJLCtCQUFRLEdBQWYsVUFBZ0IsRUFBVSxFQUFFLFFBQWdCO1FBQ3hDLE9BQWdDLElBQUksQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsRUFBRSxFQUFFLFFBQVEsQ0FBQyxDQUFFO2FBQ25GLEdBQUcsQ0FBQyxVQUFDLElBQUk7WUFDTixPQUFPO2dCQUNILElBQUksRUFBRSxJQUFJO2FBQ2IsQ0FBQztRQUNOLENBQUMsQ0FBQyxDQUFDO0lBQ1gsQ0FBQztJQUVPLGtDQUFXLEdBQW5CLFVBQW9CLEVBQVUsRUFBRSxRQUFnQjtRQUM1QyxPQUFPLFdBQVMsRUFBRSxTQUFJLFFBQVUsQ0FBQztJQUNyQyxDQUFDO0lBRU0sMkNBQW9CLEdBQTNCLFVBQTRCLEVBQVUsRUFBRSxRQUFnQjtRQUNwRCxPQUFPLElBQUksQ0FBQyxXQUFXLENBQUMsRUFBRSxFQUFFLFFBQVEsQ0FBQyxHQUFHLEdBQUcsR0FBRyxNQUFNLENBQUMsS0FBSyxDQUFDLEVBQUUsY0FBYyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUM7SUFDdEYsQ0FBQztJQUVNLGlDQUFVLEdBQWpCLFVBQWtCLEVBQVUsRUFBRSxRQUFnQjtRQUMxQyxPQUFPLElBQUksQ0FBQyxXQUFXLENBQUMsRUFBRSxFQUFFLFFBQVEsQ0FBQyxDQUFDO0lBQzFDLENBQUM7SUFFTSxzQ0FBZSxHQUF0QixVQUF1QixFQUFVLEVBQUUsUUFBZ0I7UUFDL0MsSUFBTSxZQUFZLEdBQUcsT0FBTyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUM1QyxJQUFJLENBQUMsWUFBWTtZQUFFLE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQyxFQUFFLEVBQUUsUUFBUSxDQUFDLENBQUM7UUFDekQsT0FBTyxlQUFhLEVBQUUsU0FBSSxRQUFVLENBQUM7SUFDekMsQ0FBQztJQUVNLDZCQUFNLEdBQWIsVUFBYyxJQUFZO1FBQ3RCLE1BQU0sSUFBSSxnQkFBUSxDQUFDLDZCQUE2QixDQUFDLENBQUM7SUFDdEQsQ0FBQztJQUVNLDZCQUFNLEdBQWIsVUFBYyxVQUEyQixFQUFFLElBQVk7UUFDbkQsTUFBTSxJQUFJLGdCQUFRLENBQUMsNkJBQTZCLENBQUMsQ0FBQztJQUN0RCxDQUFDO0lBRU0sOEJBQU8sR0FBZCxVQUFlLFVBQTJCLEVBQUUsSUFBWTtRQUNwRCxNQUFNLElBQUksZ0JBQVEsQ0FBQyw4QkFBOEIsQ0FBQyxDQUFDO0lBQ3ZELENBQUM7SUFFTSw2QkFBTSxHQUFiLFVBQWMsVUFBMkI7UUFDckMsTUFBTSxJQUFJLGdCQUFRLENBQUMsNkJBQTZCLENBQUMsQ0FBQztJQUN0RCxDQUFDO0lBQ0wsbUJBQUM7QUFBRCxDQXREQSxBQXNEQyxDQXREaUMsNEJBQVksR0FzRDdDO0FBdERZLG9DQUFZIiwiZmlsZSI6ImFwaS9yZXNvdXJjZXMvcmVzdC9maWxlLmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgUnggZnJvbSAncngnO1xuXG5pbXBvcnQge1JFU1RSZXNvdXJjZX0gZnJvbSAnLi9yZXN0X3Jlc291cmNlJztcbmltcG9ydCB7Q29ubmVjdGlvbn0gZnJvbSAnLi4vLi4vY29ubmVjdGlvbic7XG5pbXBvcnQge0dlbkVycm9yfSBmcm9tICcuLi8uLi8uLi9jb3JlL2Vycm9ycy9lcnJvcic7XG5pbXBvcnQgKiBhcyB0eXBlcyBmcm9tICcuLi8uLi90eXBlcy9yZXN0JztcblxuZXhwb3J0IGNsYXNzIEZpbGVSZXNvdXJjZSBleHRlbmRzIFJFU1RSZXNvdXJjZTxzdHJpbmc+IHtcblxuICAgIGNvbnN0cnVjdG9yKGNvbm5lY3Rpb246IENvbm5lY3Rpb24pIHtcbiAgICAgICAgc3VwZXIoJ2ZpbGUnLCBjb25uZWN0aW9uKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBEb3dubG9hZHMgdGhlIGZpbGUgZnJvbSBzZXJ2ZXIgKGl0IGFsc28gZGVjb21wcmVzc2VzIGd6aXBwZWQgZmlsZXMpLlxuICAgICAqXG4gICAgICogQHBhcmFtIHtzdHJpbmd9IGZpbGVuYW1lXG4gICAgICogQHJldHVybiB7UnguT2JzZXJ2YWJsZTx7IGRhdGE6IHN0cmluZyB9Pn1cbiAgICAgKi9cbiAgICBwdWJsaWMgZG93bmxvYWQoaWQ6IG51bWJlciwgZmlsZW5hbWU6IHN0cmluZyk6IFJ4Lk9ic2VydmFibGU8dHlwZXMuRG93bmxvYWQ+IHtcbiAgICAgICAgcmV0dXJuICg8UnguT2JzZXJ2YWJsZTxzdHJpbmc+PiB0aGlzLmNvbm5lY3Rpb24uZ2V0KHRoaXMuZ2V0VW5nemlwcGVkVXJsKGlkLCBmaWxlbmFtZSkpKVxuICAgICAgICAgICAgLm1hcCgoZGF0YSkgPT4ge1xuICAgICAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgICAgICAgIGRhdGE6IGRhdGEsXG4gICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIH0pO1xuICAgIH1cblxuICAgIHByaXZhdGUgX2dldEZpbGVVcmwoaWQ6IG51bWJlciwgZmlsZW5hbWU6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiBgL2RhdGEvJHtpZH0vJHtmaWxlbmFtZX1gO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXRGb3JjZWREb3dubG9hZFVybChpZDogbnVtYmVyLCBmaWxlbmFtZTogc3RyaW5nKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2dldEZpbGVVcmwoaWQsIGZpbGVuYW1lKSArICc/JyArIGpRdWVyeS5wYXJhbSh7IGZvcmNlX2Rvd25sb2FkOiAxIH0pO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXRWaWV3VXJsKGlkOiBudW1iZXIsIGZpbGVuYW1lOiBzdHJpbmcpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gdGhpcy5fZ2V0RmlsZVVybChpZCwgZmlsZW5hbWUpO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXRVbmd6aXBwZWRVcmwoaWQ6IG51bWJlciwgZmlsZW5hbWU6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgICAgIGNvbnN0IGlzQ29tcHJlc3NlZCA9IC9cXC5neiQvLnRlc3QoZmlsZW5hbWUpO1xuICAgICAgICBpZiAoIWlzQ29tcHJlc3NlZCkgcmV0dXJuIHRoaXMuX2dldEZpbGVVcmwoaWQsIGZpbGVuYW1lKTtcbiAgICAgICAgcmV0dXJuIGAvZGF0YWd6aXAvJHtpZH0vJHtmaWxlbmFtZX1gO1xuICAgIH1cblxuICAgIHB1YmxpYyBjcmVhdGUoZGF0YTogT2JqZWN0KTogUnguT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICAgICAgdGhyb3cgbmV3IEdlbkVycm9yKFwiQ3JlYXRlIG1ldGhvZCBub3Qgc3VwcG9ydGVkXCIpO1xuICAgIH1cblxuICAgIHB1YmxpYyB1cGRhdGUocHJpbWFyeUtleTogbnVtYmVyIHwgc3RyaW5nLCBkYXRhOiBPYmplY3QpOiBSeC5PYnNlcnZhYmxlPGFueT4ge1xuICAgICAgICB0aHJvdyBuZXcgR2VuRXJyb3IoXCJVcGRhdGUgbWV0aG9kIG5vdCBzdXBwb3J0ZWRcIik7XG4gICAgfVxuXG4gICAgcHVibGljIHJlcGxhY2UocHJpbWFyeUtleTogbnVtYmVyIHwgc3RyaW5nLCBkYXRhOiBPYmplY3QpOiBSeC5PYnNlcnZhYmxlPGFueT4ge1xuICAgICAgICB0aHJvdyBuZXcgR2VuRXJyb3IoXCJSZXBsYWNlIG1ldGhvZCBub3Qgc3VwcG9ydGVkXCIpO1xuICAgIH1cblxuICAgIHB1YmxpYyBkZWxldGUocHJpbWFyeUtleTogbnVtYmVyIHwgc3RyaW5nKTogUnguT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICAgICAgdGhyb3cgbmV3IEdlbkVycm9yKFwiRGVsZXRlIG1ldGhvZCBub3Qgc3VwcG9ydGVkXCIpO1xuICAgIH1cbn1cbiJdfQ==

@@ -21,3 +21,3 @@ import * as Rx from 'rx';

readonly name: string;
private _getResourcePath;
private _getResourcePath();
/**

@@ -124,2 +124,1 @@ * Returns the path used for requesting a list of resource items.

}
//# sourceMappingURL=rest_resource.d.ts.map
"use strict";
var __extends = (this && this.__extends) || (function () {
var extendStatics = function (d, b) {
extendStatics = Object.setPrototypeOf ||
({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
return extendStatics(d, b);
}
var extendStatics = Object.setPrototypeOf ||
({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
return function (d, b) {

@@ -193,2 +190,2 @@ extendStatics(d, b);

//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9hcGkvcmVzb3VyY2VzL3Jlc3QvcmVzdF9yZXNvdXJjZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7QUFHQSwyQ0FBc0Q7QUFDdEQsdUNBQTJDO0FBRzNDOztHQUVHO0FBQ0g7SUFBcUMsZ0NBQVE7SUFDekM7Ozs7O09BS0c7SUFDSCxzQkFBb0IsS0FBYSxFQUFFLFVBQXNCO1FBQXpELFlBQ0ksa0JBQU0sVUFBVSxDQUFDLFNBQ3BCO1FBRm1CLFdBQUssR0FBTCxLQUFLLENBQVE7O0lBRWpDLENBQUM7SUFLRCxzQkFBVyw4QkFBSTtRQUhmOztXQUVHO2FBQ0g7WUFDSSxPQUFPLElBQUksQ0FBQyxLQUFLLENBQUM7UUFDdEIsQ0FBQzs7O09BQUE7SUFFTyx1Q0FBZ0IsR0FBeEI7UUFDSSxPQUFVLElBQUksQ0FBQyxXQUFXLEVBQUUsU0FBSSxJQUFJLENBQUMsS0FBTyxDQUFDO0lBQ2pELENBQUM7SUFFRDs7T0FFRztJQUNPLGtDQUFXLEdBQXJCO1FBQ0ksT0FBTyxJQUFJLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQztJQUNuQyxDQUFDO0lBRUQ7O09BRUc7SUFDSSx3Q0FBaUIsR0FBeEIsVUFBeUIsTUFBYztRQUNuQyxPQUFVLElBQUksQ0FBQyxXQUFXLEVBQUUsU0FBSSxNQUFRLENBQUM7SUFDN0MsQ0FBQztJQUVEOztPQUVHO0lBQ08sb0NBQWEsR0FBdkIsVUFBd0IsVUFBMkI7UUFDL0MsT0FBVSxJQUFJLENBQUMsZ0JBQWdCLEVBQUUsU0FBSSxVQUFZLENBQUM7SUFDdEQsQ0FBQztJQUVEOztPQUVHO0lBQ0ksMENBQW1CLEdBQTFCLFVBQTJCLFVBQTJCLEVBQUUsTUFBYztRQUNsRSxPQUFVLElBQUksQ0FBQyxhQUFhLENBQUMsVUFBVSxDQUFDLFNBQUksTUFBUSxDQUFDO0lBQ3pELENBQUM7SUFFRDs7T0FFRztJQUNPLG1DQUFZLEdBQXRCLFVBQXVCLEtBQWtCO1FBQ3JDLE9BQU8sSUFBSSxDQUFDLFdBQVcsRUFB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QUFDLENBQUM7SUFDUCxDQUFDO0lBQ0wsbUJBQUM7QUFBRCxDQTdLQSxBQTZLQyxDQTdLb0MsbUJBQVEsR0E2SzVDO0FBN0tZLG9DQUFZIiwiZmlsZSI6ImFwaS9yZXNvdXJjZXMvcmVzdC9yZXN0X3Jlc291cmNlLmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgUnggZnJvbSAncngnO1xuXG5pbXBvcnQge0Nvbm5lY3Rpb259IGZyb20gJy4uLy4uL2Nvbm5lY3Rpb24nO1xuaW1wb3J0IHtSZXNvdXJjZSwgUXVlcnlPcHRpb25zfSBmcm9tICcuLi8uLi9yZXNvdXJjZSc7XG5pbXBvcnQge1F1ZXJ5T25lRXJyb3J9IGZyb20gJy4uLy4uL2Vycm9ycyc7XG5pbXBvcnQgKiBhcyB0eXBlcyBmcm9tICcuLi8uLi90eXBlcy9yZXN0JztcblxuLyoqXG4gKiBBIHJlc291cmNlIGNsYXNzIGJhY2tlZCBieSBhIGdlbmVzaXMgcGxhdGZvcm0gbW9kZWwuXG4gKi9cbmV4cG9ydCBjbGFzcyBSRVNUUmVzb3VyY2U8VD4gZXh0ZW5kcyBSZXNvdXJjZSB7XG4gICAgLyoqXG4gICAgICogQ29uc3RydWN0cyBhIG5ldyBSRVNUIHJlc291cmNlLlxuICAgICAqXG4gICAgICogQHBhcmFtIG5hbWUgUmVzb3VyY2UgbmFtZVxuICAgICAqIEBwYXJhbSBjb25uZWN0aW9uIENvbm5lY3Rpb24gd2l0aCB0aGUgZ2VuZXNpcyBwbGF0Zm9ybSBzZXJ2ZXJcbiAgICAgKi9cbiAgICBjb25zdHJ1Y3Rvcihwcml2YXRlIF9uYW1lOiBzdHJpbmcsIGNvbm5lY3Rpb246IENvbm5lY3Rpb24pIHtcbiAgICAgICAgc3VwZXIoY29ubmVjdGlvbik7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogUmV0dXJucyByZXNvdXJjZSBuYW1lLlxuICAgICAqL1xuICAgIHB1YmxpYyBnZXQgbmFtZSgpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gdGhpcy5fbmFtZTtcbiAgICB9XG5cbiAgICBwcml2YXRlIF9nZXRSZXNvdXJjZVBhdGgoKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIGAke3RoaXMuZ2V0QmFzZVBhdGgoKX0vJHt0aGlzLl9uYW1lfWA7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogUmV0dXJucyB0aGUgcGF0aCB1c2VkIGZvciByZXF1ZXN0aW5nIGEgbGlzdCBvZiByZXNvdXJjZSBpdGVtcy5cbiAgICAgKi9cbiAgICBwcm90ZWN0ZWQgZ2V0TGlzdFBhdGgoKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2dldFJlc291cmNlUGF0aCgpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFJldHVybnMgdGhlIHBhdGggdXNlZCBmb3IgY2FsbGluZyBhIG1ldGhvZCBvbiB0aGUgcmVzb3VyY2UgdHlwZS5cbiAgICAgKi9cbiAgICBwdWJsaWMgZ2V0TGlzdE1ldGhvZFBhdGgobWV0aG9kOiBzdHJpbmcpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gYCR7dGhpcy5nZXRMaXN0UGF0aCgpfS8ke21ldGhvZH1gO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFJldHVybnMgdGhlIHBhdGggdXNlZCBmb3IgcmVxdWVzdGluZyBhIHNwZWNpZmljIHJlc291cmNlIGl0ZW0uXG4gICAgICovXG4gICAgcHJvdGVjdGVkIGdldERldGFpbFBhdGgocHJpbWFyeUtleTogbnVtYmVyIHwgc3RyaW5nKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIGAke3RoaXMuX2dldFJlc291cmNlUGF0aCgpfS8ke3ByaW1hcnlLZXl9YDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBSZXR1cm5zIHRoZSBwYXRoIHVzZWQgZm9yIGNhbGxpbmcgYSBtZXRob2Qgb24gYSBzcGVjaWZpYyByZXNvdXJjZSBpdGVtLlxuICAgICAqL1xuICAgIHB1YmxpYyBnZXREZXRhaWxNZXRob2RQYXRoKHByaW1hcnlLZXk6IG51bWJlciB8IHN0cmluZywgbWV0aG9kOiBzdHJpbmcpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gYCR7dGhpcy5nZXREZXRhaWxQYXRoKHByaW1hcnlLZXkpfS8ke21ldGhvZH1gO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFJldHVybnMgdGhlIHBhdGggdXNlZCBmb3IgcXVlcnlpbmcgdGhlIHJlc291cmNlLlxuICAgICAqL1xuICAgIHByb3RlY3RlZCBnZXRRdWVyeVBhdGgocXVlcnk6IHR5cGVzLlF1ZXJ5KTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZ2V0TGlzdFBhdGgoKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBDYWxscyBhIG1ldGhvZCBvbiBhbiBpbnN0YW5jZSBvZiB0aGUgZ2l2ZW4gcmVzb3VyY2UuXG4gICAgICpcbiAgICAgKiBAcGFyYW0gcHJpbWFyeUtleSBJbnN0YW5jZSBwcmltYXJ5IGtleVxuICAgICAqIEBwYXJhbSBtZXRob2QgTWV0aG9kIG5hbWVcbiAgICAgKiBAcGFyYW0gZGF0YSBNZXRob2QgZGF0YSBvYmplY3RcbiAgICAgKiBAcmV0dXJuIEFuIG9ic2VydmFibGUgdGhhdCBlbWl0cyB0aGUgcmVzcG9uc2VcbiAgICAgKi9cbiAgICBwdWJsaWMgY2FsbE1ldGhvZDxVPihwcmltYXJ5S2V5OiBudW1iZXIgfCBzdHJpbmcsIG1ldGhvZDogc3RyaW5nLCBkYXRhOiBhbnkgPSB7fSk6IFJ4Lk9ic2VydmFibGU8VT4ge1xuICAgICAgICByZXR1cm4gdGhpcy5jb25uZWN0aW9uLnBvc3Q8VT4odGhpcy5nZXREZXRhaWxNZXRob2RQYXRoKHByaW1hcnlLZXksIG1ldGhvZCksIGRhdGEsIHt9KTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBDYWxscyBhIG1ldGhvZCBvbiB0aGUgZ2l2ZW4gcmVzb3VyY2UuXG4gICAgICpcbiAgICAgKiBAcGFyYW0gbWV0aG9kIE1ldGhvZCBuYW1lXG4gICAgICogQHBhcmFtIGRhdGEgTWV0aG9kIGRhdGEgb2JqZWN0XG4gICAgICogQHJldHVybiBBbiBvYnNlcnZhYmxlIHRoYXQgZW1pdHMgdGhlIHJlc3BvbnNlXG4gICAgICovXG4gICAgcHVibGljIGNhbGxMaXN0TWV0aG9kPFU+KG1ldGhvZDogc3RyaW5nLCBkYXRhOiBhbnkgPSB7fSk6IFJ4Lk9ic2VydmFibGU8VT4ge1xuICAgICAgICByZXR1cm4gdGhpcy5jb25uZWN0aW9uLnBvc3Q8VT4odGhpcy5nZXRMaXN0TWV0aG9kUGF0aChtZXRob2QpLCBkYXRhLCB7fSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQ3JlYXRlcyBhbiBpbnN0YW5jZSBvZiB0aGUgZ2l2ZW4gcmVzb3VyY2UuXG4gICAgICpcbiAgICAgKiBAcGFyYW0gZGF0YSBPYmplY3QgYXR0cmlidXRlc1xuICAgICAqIEByZXR1cm4gQW4gb2JzZXJ2YWJsZSB0aGF0IGVtaXRzIHRoZSByZXNwb25zZVxuICAgICAqL1xuICAgIHB1YmxpYyBjcmVhdGUoZGF0YTogT2JqZWN0KTogUnguT2JzZXJ2YWJsZTxUPiB7XG4gICAgICAgIHJldHVybiB0aGlzLmNvbm5lY3Rpb24ucG9zdDxUPih0aGlzLmdldExpc3RQYXRoKCksIGRhdGEsIHt9KTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBVcGRhdGVzIGFuIGV4aXN0aW5nIGluc3RhbmNlIG9mIHRoZSBnaXZlbiByZXNvdXJjZS5cbiAgICAgKlxuICAgICAqIEBwYXJhbSBwcmltYXJ5S2V5IEluc3RhbmNlIHByaW1hcnkga2V5XG4gICAgICogQHBhcmFtIGRhdGEgT2JqZWN0IGF0dHJpYnV0ZXNcbiAgICAgKiBAcmV0dXJuIEFuIG9ic2VydmFibGUgdGhhdCBlbWl0cyB0aGUgcmVzcG9uc2VcbiAgICAgKi9cbiAgICBwdWJsaWMgdXBkYXRlKHByaW1hcnlLZXk6IG51bWJlciB8IHN0cmluZywgZGF0YTogT2JqZWN0KTogUnguT2JzZXJ2YWJsZTxUPiB7XG4gICAgICAgIHJldHVybiB0aGlzLmNvbm5lY3Rpb24ucGF0Y2g8VD4odGhpcy5nZXREZXRhaWxQYXRoKHByaW1hcnlLZXkpLCBkYXRhLCB7fSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogUmVwbGFjZXMgYW4gZXhpc3RpbmcgaW5zdGFuY2Ugb2YgdGhlIGdpdmVuIHJlc291cmNlLlxuICAgICAqXG4gICAgICogQHBhcmFtIHByaW1hcnlLZXkgSW5zdGFuY2UgcHJpbWFyeSBrZXlcbiAgICAgKiBAcGFyYW0gZGF0YSBPYmplY3QgYXR0cmlidXRlc1xuICAgICAqIEByZXR1cm4gQW4gb2JzZXJ2YWJsZSB0aGF0IGVtaXRzIHRoZSByZXNwb25zZVxuICAgICAqL1xuICAgIHB1YmxpYyByZXBsYWNlKHByaW1hcnlLZXk6IG51bWJlciB8IHN0cmluZywgZGF0YTogT2JqZWN0KTogUnguT2JzZXJ2YWJsZTxUPiB7XG4gICAgICAgIHJldHVybiB0aGlzLmNvbm5lY3Rpb24ucHV0PFQ+KHRoaXMuZ2V0RGV0YWlsUGF0aChwcmltYXJ5S2V5KSwgZGF0YSwge30pO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIERlbGV0ZXMgYW4gZXhpc3RpbmcgaW5zdGFuY2Ugb2YgdGhlIGdpdmVuIHJlc291cmNlLlxuICAgICAqXG4gICAgICogQHBhcmFtIHByaW1hcnlLZXkgSW5zdGFuY2UgcHJpbWFyeSBrZXlcbiAgICAgKiBAcGFyYW0gZGF0YSBSZXF1ZXN0IGF0dHJpYnV0ZXNcbiAgICAgKiBAcGFyYW0gcGFyYW1ldGVycyBSZXF1ZXN0IHBhcmFtZXRlcnNcbiAgICAgKiBAcmV0dXJuIEFuIG9ic2VydmFibGUgdGhhdCBlbWl0cyB0aGUgcmVzcG9uc2VcbiAgICAgKi9cbiAgICBwdWJsaWMgZGVsZXRlKHByaW1hcnlLZXk6IG51bWJlciB8IHN0cmluZywgZGF0YTogT2JqZWN0ID0ge30sIHBhcmFtZXRlcnM6IE9iamVjdCA9IHt9KTogUnguT2JzZXJ2YWJsZTxPYmplY3Q+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuY29ubmVjdGlvbi5kZWxldGUodGhpcy5nZXREZXRhaWxQYXRoKHByaW1hcnlLZXkpLCBkYXRhLCBwYXJhbWV0ZXJzKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBSZXRyaWV2ZXMgYW4gZXhpc3RpbmcgaW5zdGFuY2Ugb2YgdGhlIGdpdmVuIHJlc291cmNlLiBEb2VzIG5vdCBzdWJzY3JpYmVcbiAgICAgKiB0byBzdWJzZXF1ZW50IHVwZGF0ZXMuIEZvciByZWFjdGl2ZSB1cGRhdGVzIHVzZSBxdWVyeS9xdWVyeU9uZS5cbiAgICAgKlxuICAgICAqIEBwYXJhbSBwcmltYXJ5S2V5IEluc3RhbmNlIHByaW1hcnkga2V5XG4gICAgICogQHJldHVybiBBbiBvYnNlcnZhYmxlIHRoYXQgZW1pdHMgdGhlIHJlc3BvbnNlXG4gICAgICovXG4gICAgcHVibGljIGdldChwcmltYXJ5S2V5OiBudW1iZXIgfCBzdHJpbmcpOiBSeC5PYnNlcnZhYmxlPFQ+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuY29ubmVjdGlvbi5nZXQ8VD4odGhpcy5nZXREZXRhaWxQYXRoKHByaW1hcnlLZXkpKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBQZXJmb3JtcyBhIGxpdmUgcXVlcnkgYWdhaW5zdCB0aGlzIHJlc291cmNlLiBTdWJzY3JpYmluZyB0byB0aGUgcmV0dXJuZWRcbiAgICAgKiBvYnNlcnZhYmxlIHdpbGwgdHJhY2sgYW55IGNoYW5nZXMgbWFkZSB0byB0aGUgcmVzb3VyY2VzIHJldHVybmVkIGJ5IHRoZVxuICAgICAqIGdpdmVuIHF1ZXJ5LlxuICAgICAqXG4gICAgICogQHBhcmFtIHF1ZXJ5IFF1ZXJ5XG4gICAgICogQHBhcmFtIG9wdGlvbnMgUXVlcnkgb3B0aW9uc1xuICAgICAqL1xuICAgIHB1YmxpYyBxdWVyeShxdWVyeTogdHlwZXMuUXVlcnkgPSB7fSwgb3B0aW9ucz86IFF1ZXJ5T3B0aW9ucyk6IFJ4Lk9ic2VydmFibGU8VFtdPiB7XG4gICAgICAgIHJldHVybiBzdXBlci5yZWFjdGl2ZVJlcXVlc3Q8VD4ocXVlcnksIHRoaXMuZ2V0UXVlcnlQYXRoKHF1ZXJ5KSwgb3B0aW9ucyk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogUGVyZm9ybXMgYSBsaXZlIHF1ZXJ5IGFnYWluc3QgdGhpcyByZXNvdXJjZS4gU3Vic2NyaWJpbmcgdG8gdGhlIHJldHVybmVkXG4gICAgICogb2JzZXJ2YWJsZSB3aWxsIHRyYWNrIGFueSBjaGFuZ2VzIG1hZGUgdG8gdGhlIHJlc291cmNlcyByZXR1cm5lZCBieSB0aGVcbiAgICAgKiBnaXZlbiBxdWVyeS5cbiAgICAgKlxuICAgICAqIFRoZSBxdWVyeSBtdXN0IG1hdGNoIG9ubHkgYSBzaW5nbGUgaXRlbS4gT3RoZXJ3aXNlLCBhbiBlcnJvciB3aWxsIGJlXG4gICAgICogcHJvcGFnYXRlZCBhbG9uZyB0aGUgb2JzZXJ2YWJsZS5cbiAgICAgKlxuICAgICAqIERPTidUIEZPUkdFVCBUTyBIQU5ETEUgVEhFIEVSUk9SUyFcbiAgICAgKlxuICAgICAqIEBwYXJhbSBxdWVyeSBRdWVyeVxuICAgICAqIEBwYXJhbSBvcHRpb25zIFF1ZXJ5IG9wdGlvbnNcbiAgICAgKi9cbiAgICBwdWJsaWMgcXVlcnlPbmUocXVlcnk6IHR5cGVzLlF1ZXJ5ID0ge30sIG9wdGlvbnM/OiBRdWVyeU9wdGlvbnMpOiBSeC5PYnNlcnZhYmxlPFQ+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMucXVlcnkocXVlcnksIG9wdGlvbnMpLm1hcCgoaXRlbXMpID0+IHtcbiAgICAgICAgICAgIGlmICghaXRlbXMubGVuZ3RoKSB7XG4gICAgICAgICAgICAgICAgdGhyb3cgbmV3IFF1ZXJ5T25lRXJyb3IoJ1RoZSBxdWVyeSByZXR1cm5lZCBubyBpdGVtcy4nKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgaWYgKGl0ZW1zLmxlbmd0aCA+IDEpIHtcbiAgICAgICAgICAgICAgICB0aHJvdyBuZXcgUXVlcnlPbmVFcnJvcignVGhlIHF1ZXJ5IHJldHVybmVkIG11bHRpcGxlIGl0ZW1zLicpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICByZXR1cm4gaXRlbXNbMF07XG4gICAgICAgIH0pO1xuICAgIH1cbn1cbiJdfQ==
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9hcGkvcmVzb3VyY2VzL3Jlc3QvcmVzdF9yZXNvdXJjZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7QUFHQSwyQ0FBc0Q7QUFDdEQsdUNBQTJDO0FBRzNDOztHQUVHO0FBQ0g7SUFBcUMsZ0NBQVE7SUFDekM7Ozs7O09BS0c7SUFDSCxzQkFBb0IsS0FBYSxFQUFFLFVBQXNCO1FBQXpELFlBQ0ksa0JBQU0sVUFBVSxDQUFDLFNBQ3BCO1FBRm1CLFdBQUssR0FBTCxLQUFLLENBQVE7O0lBRWpDLENBQUM7SUFLRCxzQkFBVyw4QkFBSTtRQUhmOztXQUVHO2FBQ0g7WUFDSSxPQUFPLElBQUksQ0FBQyxLQUFLLENBQUM7UUFDdEIsQ0FBQzs7O09BQUE7SUFFTyx1Q0FBZ0IsR0FBeEI7UUFDSSxPQUFVLElBQUksQ0FBQyxXQUFXLEVBQUUsU0FBSSxJQUFJLENBQUMsS0FBTyxDQUFDO0lBQ2pELENBQUM7SUFFRDs7T0FFRztJQUNPLGtDQUFXLEdBQXJCO1FBQ0ksT0FBTyxJQUFJLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQztJQUNuQyxDQUFDO0lBRUQ7O09BRUc7SUFDSSx3Q0FBaUIsR0FBeEIsVUFBeUIsTUFBYztRQUNuQyxPQUFVLElBQUksQ0FBQyxXQUFXLEVBQUUsU0FBSSxNQUFRLENBQUM7SUFDN0MsQ0FBQztJQUVEOztPQUVHO0lBQ08sb0NBQWEsR0FBdkIsVUFBd0IsVUFBMkI7UUFDL0MsT0FBVSxJQUFJLENBQUMsZ0JBQWdCLEVBQUUsU0FBSSxVQUFZLENBQUM7SUFDdEQsQ0FBQztJQUVEOztPQUVHO0lBQ0ksMENBQW1CLEdBQTFCLFVBQTJCLFVBQTJCLEVBQUUsTUFBYztRQUNsRSxPQUFVLElBQUksQ0FBQyxhQUFhLENBQUMsVUFBVSxDQUFDLFNBQUksTUFBUSxDQUFDO0lBQ3pELENBQUM7SUFFRDs7T0FFRztJQUNPLG1DQUFZLEdBQXRCLFVBQXVCLEtBQWtCO1FBQ3JDLE9BQU8sSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO0lBQzlCLENBQUM7SUFFRDs7Ozs7OztPQU9HO0lBQ0ksaUNBQVUsR0FBakIsVUFBcUIsVUFBMkIsRUFBRSxNQUFjLEVBQUUsSUFBYztRQUFkLHFCQUFBLEVBQUEsU0FBYztRQUM1RSxPQUFPLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFJLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxVQUFVLEVBQUUsTUFBTSxDQUFDLEVBQUUsSUFBSSxFQUFFLEVBQUUsQ0FBQyxDQUFDO0lBQzNGLENBQUM7SUFFRDs7Ozs7O09BTUc7SUFDSSxxQ0FBYyxHQUFyQixVQUF5QixNQUFjLEVBQUUsSUFBYztRQUFkLHFCQUFBLEVBQUEsU0FBYztRQUNuRCxPQUFPLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFJLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxNQUFNLENBQUMsRUFBRSxJQUFJLEVBQUUsRUFBRSxDQUFDLENBQUM7SUFDN0UsQ0FBQztJQUVEOzs7OztPQUtHO0lBQ0ksNkJBQU0sR0FBYixVQUFjLElBQVk7UUFDdEIsT0FBTyxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBSSxJQUFJLENBQUMsV0FBVyxFQUFFLEVBQUUsSUFBSSxFQUFFLEVBQUUsQ0FBQyxDQUFDO0lBQ2pFLENBQUM7SUFFRDs7Ozs7O09BTUc7SUFDSSw2QkFBTSxHQUFiLFVBQWMsVUFBMkIsRUFBRSxJQUFZO1FBQ25ELE9BQU8sSUFBSSxDQUFDLFVBQVUsQ0FBQyxLQUFLLENBQUksSUFBSSxDQUFDLGFBQWEsQ0FBQyxVQUFVLENBQUMsRUFBRSxJQUFJLEVBQUUsRUFBRSxDQUFDLENBQUM7SUFDOUUsQ0FBQztJQUVEOzs7Ozs7T0FNRztJQUNJLDhCQUFPLEdBQWQsVUFBZSxVQUEyQixFQUFFLElBQVk7UUFDcEQsT0FBTyxJQUFJLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBSSxJQUFJLENBQUMsYUFBYSxDQUFDLFVBQVUsQ0FBQyxFQUFFLElBQUksRUFBRSxFQUFFLENBQUMsQ0FBQztJQUM1RSxDQUFDO0lBRUQ7Ozs7Ozs7T0FPRztJQUNJLDZCQUFNLEdBQWIsVUFBYyxVQUEyQixFQUFFLElBQWlCLEVBQUUsVUFBdUI7UUFBMUMscUJBQUEsRUFBQSxTQUFpQjtRQUFFLDJCQUFBLEVBQUEsZUFBdUI7UUFDakYsT0FBTyxJQUFJLENBQUMsVUFBVSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLFVBQVUsQ0FBQyxFQUFFLElBQUksRUFBRSxVQUFVLENBQUMsQ0FBQztJQUNwRixDQUFDO0lBRUQ7Ozs7OztPQU1HO0lBQ0ksMEJBQUcsR0FBVixVQUFXLFVBQTJCO1FBQ2xDLE9BQU8sSUFBSSxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUksSUFBSSxDQUFDLGFBQWEsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDO0lBQ2xFLENBQUM7SUFFRDs7Ozs7OztPQU9HO0lBQ0ksNEJBQUssR0FBWixVQUFhLEtBQXVCLEVBQUUsT0FBc0I7UUFBL0Msc0JBQUEsRUFBQSxVQUF1QjtRQUNoQyxPQUFPLGlCQUFNLGVBQWUsWUFBSSxLQUFLLEVBQUUsSUFBSSxDQUFDLFlBQVksQ0FBQyxLQUFLLENBQUMsRUFBRSxPQUFPLENBQUMsQ0FBQztJQUM5RSxDQUFDO0lBRUQ7Ozs7Ozs7Ozs7OztPQVlHO0lBQ0ksK0JBQVEsR0FBZixVQUFnQixLQUF1QixFQUFFLE9BQXNCO1FBQS9DLHNCQUFBLEVBQUEsVUFBdUI7UUFDbkMsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssRUFBRSxPQUFPLENBQUMsQ0FBQyxHQUFHLENBQUMsVUFBQyxLQUFLO1lBQ3hDLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxFQUFFO2dCQUNmLE1BQU0sSUFBSSxzQkFBYSxDQUFDLDhCQUE4QixDQUFDLENBQUM7YUFDM0Q7WUFFRCxJQUFJLEtBQUssQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFO2dCQUNsQixNQUFNLElBQUksc0JBQWEsQ0FBQyxvQ0FBb0MsQ0FBQyxDQUFDO2FBQ2pFO1lBRUQsT0FBTyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDcEIsQ0FBQyxDQUFDLENBQUM7SUFDUCxDQUFDO0lBQ0wsbUJBQUM7QUFBRCxDQTdLQSxBQTZLQyxDQTdLb0MsbUJBQVEsR0E2SzVDO0FBN0tZLG9DQUFZIiwiZmlsZSI6ImFwaS9yZXNvdXJjZXMvcmVzdC9yZXN0X3Jlc291cmNlLmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgUnggZnJvbSAncngnO1xuXG5pbXBvcnQge0Nvbm5lY3Rpb259IGZyb20gJy4uLy4uL2Nvbm5lY3Rpb24nO1xuaW1wb3J0IHtSZXNvdXJjZSwgUXVlcnlPcHRpb25zfSBmcm9tICcuLi8uLi9yZXNvdXJjZSc7XG5pbXBvcnQge1F1ZXJ5T25lRXJyb3J9IGZyb20gJy4uLy4uL2Vycm9ycyc7XG5pbXBvcnQgKiBhcyB0eXBlcyBmcm9tICcuLi8uLi90eXBlcy9yZXN0JztcblxuLyoqXG4gKiBBIHJlc291cmNlIGNsYXNzIGJhY2tlZCBieSBhIGdlbmVzaXMgcGxhdGZvcm0gbW9kZWwuXG4gKi9cbmV4cG9ydCBjbGFzcyBSRVNUUmVzb3VyY2U8VD4gZXh0ZW5kcyBSZXNvdXJjZSB7XG4gICAgLyoqXG4gICAgICogQ29uc3RydWN0cyBhIG5ldyBSRVNUIHJlc291cmNlLlxuICAgICAqXG4gICAgICogQHBhcmFtIG5hbWUgUmVzb3VyY2UgbmFtZVxuICAgICAqIEBwYXJhbSBjb25uZWN0aW9uIENvbm5lY3Rpb24gd2l0aCB0aGUgZ2VuZXNpcyBwbGF0Zm9ybSBzZXJ2ZXJcbiAgICAgKi9cbiAgICBjb25zdHJ1Y3Rvcihwcml2YXRlIF9uYW1lOiBzdHJpbmcsIGNvbm5lY3Rpb246IENvbm5lY3Rpb24pIHtcbiAgICAgICAgc3VwZXIoY29ubmVjdGlvbik7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogUmV0dXJucyByZXNvdXJjZSBuYW1lLlxuICAgICAqL1xuICAgIHB1YmxpYyBnZXQgbmFtZSgpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gdGhpcy5fbmFtZTtcbiAgICB9XG5cbiAgICBwcml2YXRlIF9nZXRSZXNvdXJjZVBhdGgoKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIGAke3RoaXMuZ2V0QmFzZVBhdGgoKX0vJHt0aGlzLl9uYW1lfWA7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogUmV0dXJucyB0aGUgcGF0aCB1c2VkIGZvciByZXF1ZXN0aW5nIGEgbGlzdCBvZiByZXNvdXJjZSBpdGVtcy5cbiAgICAgKi9cbiAgICBwcm90ZWN0ZWQgZ2V0TGlzdFBhdGgoKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2dldFJlc291cmNlUGF0aCgpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFJldHVybnMgdGhlIHBhdGggdXNlZCBmb3IgY2FsbGluZyBhIG1ldGhvZCBvbiB0aGUgcmVzb3VyY2UgdHlwZS5cbiAgICAgKi9cbiAgICBwdWJsaWMgZ2V0TGlzdE1ldGhvZFBhdGgobWV0aG9kOiBzdHJpbmcpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gYCR7dGhpcy5nZXRMaXN0UGF0aCgpfS8ke21ldGhvZH1gO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFJldHVybnMgdGhlIHBhdGggdXNlZCBmb3IgcmVxdWVzdGluZyBhIHNwZWNpZmljIHJlc291cmNlIGl0ZW0uXG4gICAgICovXG4gICAgcHJvdGVjdGVkIGdldERldGFpbFBhdGgocHJpbWFyeUtleTogbnVtYmVyIHwgc3RyaW5nKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIGAke3RoaXMuX2dldFJlc291cmNlUGF0aCgpfS8ke3ByaW1hcnlLZXl9YDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBSZXR1cm5zIHRoZSBwYXRoIHVzZWQgZm9yIGNhbGxpbmcgYSBtZXRob2Qgb24gYSBzcGVjaWZpYyByZXNvdXJjZSBpdGVtLlxuICAgICAqL1xuICAgIHB1YmxpYyBnZXREZXRhaWxNZXRob2RQYXRoKHByaW1hcnlLZXk6IG51bWJlciB8IHN0cmluZywgbWV0aG9kOiBzdHJpbmcpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gYCR7dGhpcy5nZXREZXRhaWxQYXRoKHByaW1hcnlLZXkpfS8ke21ldGhvZH1gO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFJldHVybnMgdGhlIHBhdGggdXNlZCBmb3IgcXVlcnlpbmcgdGhlIHJlc291cmNlLlxuICAgICAqL1xuICAgIHByb3RlY3RlZCBnZXRRdWVyeVBhdGgocXVlcnk6IHR5cGVzLlF1ZXJ5KTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZ2V0TGlzdFBhdGgoKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBDYWxscyBhIG1ldGhvZCBvbiBhbiBpbnN0YW5jZSBvZiB0aGUgZ2l2ZW4gcmVzb3VyY2UuXG4gICAgICpcbiAgICAgKiBAcGFyYW0gcHJpbWFyeUtleSBJbnN0YW5jZSBwcmltYXJ5IGtleVxuICAgICAqIEBwYXJhbSBtZXRob2QgTWV0aG9kIG5hbWVcbiAgICAgKiBAcGFyYW0gZGF0YSBNZXRob2QgZGF0YSBvYmplY3RcbiAgICAgKiBAcmV0dXJuIEFuIG9ic2VydmFibGUgdGhhdCBlbWl0cyB0aGUgcmVzcG9uc2VcbiAgICAgKi9cbiAgICBwdWJsaWMgY2FsbE1ldGhvZDxVPihwcmltYXJ5S2V5OiBudW1iZXIgfCBzdHJpbmcsIG1ldGhvZDogc3RyaW5nLCBkYXRhOiBhbnkgPSB7fSk6IFJ4Lk9ic2VydmFibGU8VT4ge1xuICAgICAgICByZXR1cm4gdGhpcy5jb25uZWN0aW9uLnBvc3Q8VT4odGhpcy5nZXREZXRhaWxNZXRob2RQYXRoKHByaW1hcnlLZXksIG1ldGhvZCksIGRhdGEsIHt9KTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBDYWxscyBhIG1ldGhvZCBvbiB0aGUgZ2l2ZW4gcmVzb3VyY2UuXG4gICAgICpcbiAgICAgKiBAcGFyYW0gbWV0aG9kIE1ldGhvZCBuYW1lXG4gICAgICogQHBhcmFtIGRhdGEgTWV0aG9kIGRhdGEgb2JqZWN0XG4gICAgICogQHJldHVybiBBbiBvYnNlcnZhYmxlIHRoYXQgZW1pdHMgdGhlIHJlc3BvbnNlXG4gICAgICovXG4gICAgcHVibGljIGNhbGxMaXN0TWV0aG9kPFU+KG1ldGhvZDogc3RyaW5nLCBkYXRhOiBhbnkgPSB7fSk6IFJ4Lk9ic2VydmFibGU8VT4ge1xuICAgICAgICByZXR1cm4gdGhpcy5jb25uZWN0aW9uLnBvc3Q8VT4odGhpcy5nZXRMaXN0TWV0aG9kUGF0aChtZXRob2QpLCBkYXRhLCB7fSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQ3JlYXRlcyBhbiBpbnN0YW5jZSBvZiB0aGUgZ2l2ZW4gcmVzb3VyY2UuXG4gICAgICpcbiAgICAgKiBAcGFyYW0gZGF0YSBPYmplY3QgYXR0cmlidXRlc1xuICAgICAqIEByZXR1cm4gQW4gb2JzZXJ2YWJsZSB0aGF0IGVtaXRzIHRoZSByZXNwb25zZVxuICAgICAqL1xuICAgIHB1YmxpYyBjcmVhdGUoZGF0YTogT2JqZWN0KTogUnguT2JzZXJ2YWJsZTxUPiB7XG4gICAgICAgIHJldHVybiB0aGlzLmNvbm5lY3Rpb24ucG9zdDxUPih0aGlzLmdldExpc3RQYXRoKCksIGRhdGEsIHt9KTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBVcGRhdGVzIGFuIGV4aXN0aW5nIGluc3RhbmNlIG9mIHRoZSBnaXZlbiByZXNvdXJjZS5cbiAgICAgKlxuICAgICAqIEBwYXJhbSBwcmltYXJ5S2V5IEluc3RhbmNlIHByaW1hcnkga2V5XG4gICAgICogQHBhcmFtIGRhdGEgT2JqZWN0IGF0dHJpYnV0ZXNcbiAgICAgKiBAcmV0dXJuIEFuIG9ic2VydmFibGUgdGhhdCBlbWl0cyB0aGUgcmVzcG9uc2VcbiAgICAgKi9cbiAgICBwdWJsaWMgdXBkYXRlKHByaW1hcnlLZXk6IG51bWJlciB8IHN0cmluZywgZGF0YTogT2JqZWN0KTogUnguT2JzZXJ2YWJsZTxUPiB7XG4gICAgICAgIHJldHVybiB0aGlzLmNvbm5lY3Rpb24ucGF0Y2g8VD4odGhpcy5nZXREZXRhaWxQYXRoKHByaW1hcnlLZXkpLCBkYXRhLCB7fSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogUmVwbGFjZXMgYW4gZXhpc3RpbmcgaW5zdGFuY2Ugb2YgdGhlIGdpdmVuIHJlc291cmNlLlxuICAgICAqXG4gICAgICogQHBhcmFtIHByaW1hcnlLZXkgSW5zdGFuY2UgcHJpbWFyeSBrZXlcbiAgICAgKiBAcGFyYW0gZGF0YSBPYmplY3QgYXR0cmlidXRlc1xuICAgICAqIEByZXR1cm4gQW4gb2JzZXJ2YWJsZSB0aGF0IGVtaXRzIHRoZSByZXNwb25zZVxuICAgICAqL1xuICAgIHB1YmxpYyByZXBsYWNlKHByaW1hcnlLZXk6IG51bWJlciB8IHN0cmluZywgZGF0YTogT2JqZWN0KTogUnguT2JzZXJ2YWJsZTxUPiB7XG4gICAgICAgIHJldHVybiB0aGlzLmNvbm5lY3Rpb24ucHV0PFQ+KHRoaXMuZ2V0RGV0YWlsUGF0aChwcmltYXJ5S2V5KSwgZGF0YSwge30pO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIERlbGV0ZXMgYW4gZXhpc3RpbmcgaW5zdGFuY2Ugb2YgdGhlIGdpdmVuIHJlc291cmNlLlxuICAgICAqXG4gICAgICogQHBhcmFtIHByaW1hcnlLZXkgSW5zdGFuY2UgcHJpbWFyeSBrZXlcbiAgICAgKiBAcGFyYW0gZGF0YSBSZXF1ZXN0IGF0dHJpYnV0ZXNcbiAgICAgKiBAcGFyYW0gcGFyYW1ldGVycyBSZXF1ZXN0IHBhcmFtZXRlcnNcbiAgICAgKiBAcmV0dXJuIEFuIG9ic2VydmFibGUgdGhhdCBlbWl0cyB0aGUgcmVzcG9uc2VcbiAgICAgKi9cbiAgICBwdWJsaWMgZGVsZXRlKHByaW1hcnlLZXk6IG51bWJlciB8IHN0cmluZywgZGF0YTogT2JqZWN0ID0ge30sIHBhcmFtZXRlcnM6IE9iamVjdCA9IHt9KTogUnguT2JzZXJ2YWJsZTxPYmplY3Q+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuY29ubmVjdGlvbi5kZWxldGUodGhpcy5nZXREZXRhaWxQYXRoKHByaW1hcnlLZXkpLCBkYXRhLCBwYXJhbWV0ZXJzKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBSZXRyaWV2ZXMgYW4gZXhpc3RpbmcgaW5zdGFuY2Ugb2YgdGhlIGdpdmVuIHJlc291cmNlLiBEb2VzIG5vdCBzdWJzY3JpYmVcbiAgICAgKiB0byBzdWJzZXF1ZW50IHVwZGF0ZXMuIEZvciByZWFjdGl2ZSB1cGRhdGVzIHVzZSBxdWVyeS9xdWVyeU9uZS5cbiAgICAgKlxuICAgICAqIEBwYXJhbSBwcmltYXJ5S2V5IEluc3RhbmNlIHByaW1hcnkga2V5XG4gICAgICogQHJldHVybiBBbiBvYnNlcnZhYmxlIHRoYXQgZW1pdHMgdGhlIHJlc3BvbnNlXG4gICAgICovXG4gICAgcHVibGljIGdldChwcmltYXJ5S2V5OiBudW1iZXIgfCBzdHJpbmcpOiBSeC5PYnNlcnZhYmxlPFQ+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuY29ubmVjdGlvbi5nZXQ8VD4odGhpcy5nZXREZXRhaWxQYXRoKHByaW1hcnlLZXkpKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBQZXJmb3JtcyBhIGxpdmUgcXVlcnkgYWdhaW5zdCB0aGlzIHJlc291cmNlLiBTdWJzY3JpYmluZyB0byB0aGUgcmV0dXJuZWRcbiAgICAgKiBvYnNlcnZhYmxlIHdpbGwgdHJhY2sgYW55IGNoYW5nZXMgbWFkZSB0byB0aGUgcmVzb3VyY2VzIHJldHVybmVkIGJ5IHRoZVxuICAgICAqIGdpdmVuIHF1ZXJ5LlxuICAgICAqXG4gICAgICogQHBhcmFtIHF1ZXJ5IFF1ZXJ5XG4gICAgICogQHBhcmFtIG9wdGlvbnMgUXVlcnkgb3B0aW9uc1xuICAgICAqL1xuICAgIHB1YmxpYyBxdWVyeShxdWVyeTogdHlwZXMuUXVlcnkgPSB7fSwgb3B0aW9ucz86IFF1ZXJ5T3B0aW9ucyk6IFJ4Lk9ic2VydmFibGU8VFtdPiB7XG4gICAgICAgIHJldHVybiBzdXBlci5yZWFjdGl2ZVJlcXVlc3Q8VD4ocXVlcnksIHRoaXMuZ2V0UXVlcnlQYXRoKHF1ZXJ5KSwgb3B0aW9ucyk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogUGVyZm9ybXMgYSBsaXZlIHF1ZXJ5IGFnYWluc3QgdGhpcyByZXNvdXJjZS4gU3Vic2NyaWJpbmcgdG8gdGhlIHJldHVybmVkXG4gICAgICogb2JzZXJ2YWJsZSB3aWxsIHRyYWNrIGFueSBjaGFuZ2VzIG1hZGUgdG8gdGhlIHJlc291cmNlcyByZXR1cm5lZCBieSB0aGVcbiAgICAgKiBnaXZlbiBxdWVyeS5cbiAgICAgKlxuICAgICAqIFRoZSBxdWVyeSBtdXN0IG1hdGNoIG9ubHkgYSBzaW5nbGUgaXRlbS4gT3RoZXJ3aXNlLCBhbiBlcnJvciB3aWxsIGJlXG4gICAgICogcHJvcGFnYXRlZCBhbG9uZyB0aGUgb2JzZXJ2YWJsZS5cbiAgICAgKlxuICAgICAqIERPTidUIEZPUkdFVCBUTyBIQU5ETEUgVEhFIEVSUk9SUyFcbiAgICAgKlxuICAgICAqIEBwYXJhbSBxdWVyeSBRdWVyeVxuICAgICAqIEBwYXJhbSBvcHRpb25zIFF1ZXJ5IG9wdGlvbnNcbiAgICAgKi9cbiAgICBwdWJsaWMgcXVlcnlPbmUocXVlcnk6IHR5cGVzLlF1ZXJ5ID0ge30sIG9wdGlvbnM/OiBRdWVyeU9wdGlvbnMpOiBSeC5PYnNlcnZhYmxlPFQ+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMucXVlcnkocXVlcnksIG9wdGlvbnMpLm1hcCgoaXRlbXMpID0+IHtcbiAgICAgICAgICAgIGlmICghaXRlbXMubGVuZ3RoKSB7XG4gICAgICAgICAgICAgICAgdGhyb3cgbmV3IFF1ZXJ5T25lRXJyb3IoJ1RoZSBxdWVyeSByZXR1cm5lZCBubyBpdGVtcy4nKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgaWYgKGl0ZW1zLmxlbmd0aCA+IDEpIHtcbiAgICAgICAgICAgICAgICB0aHJvdyBuZXcgUXVlcnlPbmVFcnJvcignVGhlIHF1ZXJ5IHJldHVybmVkIG11bHRpcGxlIGl0ZW1zLicpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICByZXR1cm4gaXRlbXNbMF07XG4gICAgICAgIH0pO1xuICAgIH1cbn1cbiJdfQ==

@@ -11,2 +11,8 @@ import * as Rx from 'rx';

export declare class SampleResource extends RESTResource<types.Sample | types.Presample> implements Permissionable {
/**
* Ordering by relevance constant. Apply this value to `ordering` query parameter to
* order by relevance.
* This works by overriding any default ordering on backend, so it keeps order of ES results
*/
readonly ORDERING_BY_RELEVANCE: string;
constructor(connection: Connection);

@@ -69,2 +75,1 @@ /**

}
//# sourceMappingURL=sample.d.ts.map
"use strict";
var __extends = (this && this.__extends) || (function () {
var extendStatics = function (d, b) {
extendStatics = Object.setPrototypeOf ||
({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
return extendStatics(d, b);
}
var extendStatics = Object.setPrototypeOf ||
({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
return function (d, b) {

@@ -15,12 +12,9 @@ extendStatics(d, b);

})();
var __assign = (this && this.__assign) || function () {
__assign = Object.assign || function(t) {
for (var s, i = 1, n = arguments.length; i < n; i++) {
s = arguments[i];
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
t[p] = s[p];
}
return t;
};
return __assign.apply(this, arguments);
var __assign = (this && this.__assign) || Object.assign || function(t) {
for (var s, i = 1, n = arguments.length; i < n; i++) {
s = arguments[i];
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
t[p] = s[p];
}
return t;
};

@@ -38,3 +32,10 @@ Object.defineProperty(exports, "__esModule", { value: true });

function SampleResource(connection) {
return _super.call(this, 'sample', connection) || this;
var _this = _super.call(this, 'sample', connection) || this;
/**
* Ordering by relevance constant. Apply this value to `ordering` query parameter to
* order by relevance.
* This works by overriding any default ordering on backend, so it keeps order of ES results
*/
_this.ORDERING_BY_RELEVANCE = '';
return _this;
}

@@ -124,2 +125,2 @@ /**

//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9hcGkvcmVzb3VyY2VzL3Jlc3Qvc2FtcGxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQ0EsMEJBQTRCO0FBQzVCLGlEQUE2QztBQUc3QyxvREFBb0Q7QUFDcEQscURBQXFGO0FBR3JGOztHQUVHO0FBQ0g7SUFBb0Msa0NBQTRDO0lBRTVFLHdCQUFZLFVBQXNCO2VBQzlCLGtCQUFNLFFBQVEsRUFBRSxVQUFVLENBQUM7SUFDL0IsQ0FBQztJQUVEOzs7OztPQUtHO0lBQ0ksbUNBQVUsR0FBakIsVUFBa0IsSUFBWTtRQUMxQixPQUFPLElBQUksQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFVLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxhQUFhLENBQUMsRUFBRSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO0lBQy9GLENBQUM7SUFTTSw4QkFBSyxHQUFaLFVBQWEsS0FBeUQsRUFBRSxPQUFzQjtRQUMxRixJQUFJLEtBQUssQ0FBQywwQkFBMEIsRUFBRTtZQUNsQyxPQUFPLGlCQUFNLEtBQUssWUFBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRSw0QkFBNEIsQ0FBQyxFQUFFLE9BQU8sQ0FBQyxDQUFDO1NBQzVFO1FBQ0QsTUFBTSxJQUFJLGdCQUFRLENBQUMsOERBQThELENBQUMsQ0FBQztJQUN2RixDQUFDO0lBTU0saUNBQVEsR0FBZixVQUFnQixLQUF1QixFQUFFLE9BQXNCO1FBQS9DLHNCQUFBLEVBQUEsVUFBdUI7UUFDbkMsT0FBTyxpQkFBTSxRQUFRLHlCQUFLLEtBQUssSUFBRSwwQkFBMEIsRUFBRSxJQUFJLEtBQUcsT0FBTyxDQUFDLENBQUM7SUFDakYsQ0FBQztJQU1NLHlDQUFnQixHQUF2QixVQUF3QixLQUF1QixFQUFFLE9BQXNCO1FBQS9DLHNCQUFBLEVBQUEsVUFBdUI7UUFDM0MsT0FBTyxpQkFBTSxLQUFLLHlCQUFLLEtBQUssSUFBRSxvQkFBb0IsRUFBRSxLQUFLLEtBQUcsT0FBTyxDQUFDLENBQUM7SUFDekUsQ0FBQztJQU1NLHVDQUFjLEdBQXJCLFVBQXNCLEtBQXVCLEVBQUUsT0FBc0I7UUFBL0Msc0JBQUEsRUFBQSxVQUF1QjtRQUN6QyxPQUFPLGlCQUFNLEtBQUsseUJBQUssS0FBSyxJQUFFLG9CQUFvQixFQUFFLElBQUksS0FBRyxPQUFPLENBQUMsQ0FBQztJQUN4RSxDQUFDO0lBRUQ7Ozs7O09BS0c7SUFDSSx5Q0FBZ0IsR0FBdkIsVUFBd0IsUUFBZ0IsRUFBRSxhQUF1QjtRQUM3RCxPQUFPLElBQUksQ0FBQyxVQUFVLENBQU8sUUFBUSxFQUFFLG1CQUFtQixFQUFFLEVBQUUsR0FBRyxFQUFFLGFBQWEsRUFBRSxDQUFDLENBQUM7SUFDeEYsQ0FBQztJQUVEOzs7OztPQUtHO0lBQ0ksOENBQXFCLEdBQTVCLFVBQTZCLFFBQWdCLEVBQUUsYUFBdUI7UUFDbEUsT0FBTyxJQUFJLENBQUMsVUFBVSxDQUFPLFFBQVEsRUFBRSx3QkFBd0IsRUFBRSxFQUFFLEdBQUcsRUFBRSxhQUFhLEVBQUUsQ0FBQyxDQUFDO0lBQzdGLENBQUM7SUFFRDs7Ozs7T0FLRztJQUNJLGdDQUFPLEdBQWQsVUFBZSxRQUFnQixFQUFFLE9BQWlCO1FBQzlDLE9BQU8sSUFBSSxDQUFDLFVBQVUsQ0FBTyxRQUFRLEVBQUUsVUFBVSxFQUFFLEVBQUUsR0FBRyxFQUFFLE9BQU8sRUFBRSxDQUFDLENBQUM7SUFDekUsQ0FBQztJQUVEOzs7OztPQUtHO0lBQ0ksbUNBQVUsR0FBakIsVUFBa0IsUUFBZ0IsRUFBRSxPQUFpQjtRQUNqRCxPQUFPLElBQUksQ0FBQyxVQUFVLENBQU8sUUFBUSxFQUFFLGFBQWEsRUFBRSxFQUFFLEdBQUcsRUFBRSxPQUFPLEVBQUUsQ0FBQyxDQUFDO0lBQzVFLENBQUM7SUFFTSwrQkFBTSxHQUFiLFVBQWMsSUFBWTtRQUN0QixNQUFNLElBQUksZ0JBQVEsQ0FBQyw2QkFBNkIsQ0FBQyxDQUFDO0lBQ3RELENBQUM7SUFFTSxnQ0FBTyxHQUFkLFVBQWUsVUFBMkIsRUFBRSxJQUFZO1FBQ3BELE1BQU0sSUFBSSxnQkFBUSxDQUFDLDhCQUE4QixDQUFDLENBQUM7SUFDdkQsQ0FBQztJQUVNLCtCQUFNLEdBQWIsVUFBYyxVQUEyQixFQUFFLGFBQThCO1FBQTlCLDhCQUFBLEVBQUEscUJBQThCO1FBQ3JFLE9BQU8saUJBQU0sTUFBTSxZQUFDLFVBQVUsRUFBRSxFQUFFLEVBQUUsRUFBRSxjQUFjLEVBQUUsYUFBYSxFQUFFLENBQUMsQ0FBQztJQUMzRSxDQUFDO0lBRU0sdUNBQWMsR0FBckIsVUFBc0IsRUFBVTtRQUM1QixPQUFPLDRCQUFjLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxDQUFDO0lBQ3BDLENBQUM7SUFFTSx1Q0FBYyxHQUFyQixVQUFzQixFQUFVLEVBQUUsV0FBd0M7UUFDdEUsT0FBTyw0QkFBYyxDQUFDLElBQUksRUFBRSxFQUFFLEVBQUUsV0FBVyxDQUFDLENBQUM7SUFDakQsQ0FBQztJQUNMLHFCQUFDO0FBQUQsQ0FqSEEsQUFpSEMsQ0FqSG1DLDRCQUFZLEdBaUgvQztBQWpIWSx3Q0FBYyIsImZpbGUiOiJhcGkvcmVzb3VyY2VzL3Jlc3Qvc2FtcGxlLmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgUnggZnJvbSAncngnO1xuaW1wb3J0ICogYXMgXyBmcm9tICdsb2Rhc2gnO1xuaW1wb3J0IHtSRVNUUmVzb3VyY2V9IGZyb20gJy4vcmVzdF9yZXNvdXJjZSc7XG5pbXBvcnQge1F1ZXJ5T3B0aW9uc30gZnJvbSAnLi4vLi4vcmVzb3VyY2UnO1xuaW1wb3J0IHtDb25uZWN0aW9ufSBmcm9tICcuLi8uLi9jb25uZWN0aW9uJztcbmltcG9ydCB7R2VuRXJyb3J9IGZyb20gJy4uLy4uLy4uL2NvcmUvZXJyb3JzL2Vycm9yJztcbmltcG9ydCB7UGVybWlzc2lvbmFibGUsIGdldFBlcm1pc3Npb25zLCBzZXRQZXJtaXNzaW9uc30gZnJvbSAnLi4vYWRkb25zL3Blcm1pc3Npb25zJztcbmltcG9ydCAqIGFzIHR5cGVzIGZyb20gJy4uLy4uL3R5cGVzL3Jlc3QnO1xuXG4vKipcbiAqIFNhbXBsZSByZXNvdXJjZSBjbGFzcyBmb3IgZGVhbGluZyB3aXRoIHNhbXBsZSBlbmRwb2ludC5cbiAqL1xuZXhwb3J0IGNsYXNzIFNhbXBsZVJlc291cmNlIGV4dGVuZHMgUkVTVFJlc291cmNlPHR5cGVzLlNhbXBsZSB8IHR5cGVzLlByZXNhbXBsZT4gaW1wbGVtZW50cyBQZXJtaXNzaW9uYWJsZSB7XG5cbiAgICBjb25zdHJ1Y3Rvcihjb25uZWN0aW9uOiBDb25uZWN0aW9uKSB7XG4gICAgICAgIHN1cGVyKCdzYW1wbGUnLCBjb25uZWN0aW9uKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBDaGVja3MgaWYgc2FtcGxlIHNsdWcgYWxyZWFkeSBleGlzdHMuXG4gICAgICpcbiAgICAgKiBAcGFyYW0gU2x1ZyB0byBjaGVja1xuICAgICAqIEByZXR1cm4gQW4gb2JzZXJ2YWJsZSB0aGF0IGVtaXRzIHRoZSByZXNwb25zZVxuICAgICAqL1xuICAgIHB1YmxpYyBzbHVnRXhpc3RzKHNsdWc6IHN0cmluZyk6IFJ4Lk9ic2VydmFibGU8Ym9vbGVhbj4ge1xuICAgICAgICByZXR1cm4gdGhpcy5jb25uZWN0aW9uLmdldDxib29sZWFuPih0aGlzLmdldExpc3RNZXRob2RQYXRoKCdzbHVnX2V4aXN0cycpLCB7IG5hbWU6IHNsdWcgfSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogVXNlIHRoaXMgbWV0aG9kIGNhcmVmdWxseS4gQ2hlY2sgdG8gbWFrZSBzdXJlIHlvdSBuZWVkIHVuYW5ub3RhdGVkIGFuZCBhbm5vdGF0ZWQgc2FtcGxlcy5cbiAgICAgKi9cbiAgICBwdWJsaWMgcXVlcnkocXVlcnk6IHR5cGVzLlF1ZXJ5T2JqZWN0SHlkcmF0ZURhdGEgJiB7IGdldFVuYW5ub3RhdGVkQW5kQW5ub3RhdGVkOiB0cnVlIH0sIG9wdGlvbnM/OiBRdWVyeU9wdGlvbnMpOlxuICAgICAgICBSeC5PYnNlcnZhYmxlPCh0eXBlcy5TYW1wbGVIeWRyYXRlRGF0YSB8IHR5cGVzLlByZXNhbXBsZUh5ZHJhdGVEYXRhKVtdPjtcbiAgICBwdWJsaWMgcXVlcnkocXVlcnk6IHR5cGVzLlF1ZXJ5T2JqZWN0ICYgeyBnZXRVbmFubm90YXRlZEFuZEFubm90YXRlZDogdHJ1ZSB9LCBvcHRpb25zPzogUXVlcnlPcHRpb25zKTpcbiAgICAgICAgUnguT2JzZXJ2YWJsZTwodHlwZXMuU2FtcGxlIHwgdHlwZXMuUHJlc2FtcGxlKVtdPjtcbiAgICBwdWJsaWMgcXVlcnkocXVlcnk6IHR5cGVzLlF1ZXJ5ICYgeyBnZXRVbmFubm90YXRlZEFuZEFubm90YXRlZDogdHJ1ZSB9LCBvcHRpb25zPzogUXVlcnlPcHRpb25zKTogUnguT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICAgICAgaWYgKHF1ZXJ5LmdldFVuYW5ub3RhdGVkQW5kQW5ub3RhdGVkKSB7XG4gICAgICAgICAgICByZXR1cm4gc3VwZXIucXVlcnkoXy5vbWl0KHF1ZXJ5LCAnZ2V0VW5hbm5vdGF0ZWRBbmRBbm5vdGF0ZWQnKSwgb3B0aW9ucyk7XG4gICAgICAgIH1cbiAgICAgICAgdGhyb3cgbmV3IEdlbkVycm9yKFwiUXVlcnkgbWV0aG9kIG11c3QgYmUgaW52b2tlZCB3aXRoIGdldFVuYW5ub3RhdGVkQW5kQW5ub3RhdGVkXCIpO1xuICAgIH1cblxuICAgIHB1YmxpYyBxdWVyeU9uZShxdWVyeTogdHlwZXMuUXVlcnlPYmplY3RIeWRyYXRlRGF0YSwgb3B0aW9ucz86IFF1ZXJ5T3B0aW9ucyk6XG4gICAgICAgIFJ4Lk9ic2VydmFibGU8dHlwZXMuU2FtcGxlSHlkcmF0ZURhdGEgfCB0eXBlcy5QcmVzYW1wbGVIeWRyYXRlRGF0YT47XG4gICAgcHVibGljIHF1ZXJ5T25lKHF1ZXJ5PzogdHlwZXMuUXVlcnlPYmplY3QsIG9wdGlvbnM/OiBRdWVyeU9wdGlvbnMpOlxuICAgICAgICBSeC5PYnNlcnZhYmxlPHR5cGVzLlNhbXBsZSB8IHR5cGVzLlByZXNhbXBsZT47XG4gICAgcHVibGljIHF1ZXJ5T25lKHF1ZXJ5OiB0eXBlcy5RdWVyeSA9IHt9LCBvcHRpb25zPzogUXVlcnlPcHRpb25zKTogUnguT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICAgICAgcmV0dXJuIHN1cGVyLnF1ZXJ5T25lKHsuLi5xdWVyeSwgZ2V0VW5hbm5vdGF0ZWRBbmRBbm5vdGF0ZWQ6IHRydWV9LCBvcHRpb25zKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgcXVlcnlVbmFubm90YXRlZChxdWVyeTogdHlwZXMuUXVlcnlPYmplY3RIeWRyYXRlRGF0YSwgb3B0aW9ucz86IFF1ZXJ5T3B0aW9ucyk6XG4gICAgICAgIFJ4Lk9ic2VydmFibGU8dHlwZXMuUHJlc2FtcGxlSHlkcmF0ZURhdGFbXT47XG4gICAgcHVibGljIHF1ZXJ5VW5hbm5vdGF0ZWQocXVlcnk/OiB0eXBlcy5RdWVyeU9iamVjdCwgb3B0aW9ucz86IFF1ZXJ5T3B0aW9ucyk6XG4gICAgICAgIFJ4Lk9ic2VydmFibGU8dHlwZXMuUHJlc2FtcGxlW10+O1xuICAgIHB1YmxpYyBxdWVyeVVuYW5ub3RhdGVkKHF1ZXJ5OiB0eXBlcy5RdWVyeSA9IHt9LCBvcHRpb25zPzogUXVlcnlPcHRpb25zKTogUnguT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICAgICAgcmV0dXJuIHN1cGVyLnF1ZXJ5KHsuLi5xdWVyeSwgZGVzY3JpcHRvcl9jb21wbGV0ZWQ6IGZhbHNlfSwgb3B0aW9ucyk7XG4gICAgfVxuXG4gICAgcHVibGljIHF1ZXJ5QW5ub3RhdGVkKHF1ZXJ5OiB0eXBlcy5RdWVyeU9iamVjdEh5ZHJhdGVEYXRhLCBvcHRpb25zPzogUXVlcnlPcHRpb25zKTpcbiAgICAgICAgUnguT2JzZXJ2YWJsZTx0eXBlcy5TYW1wbGVIeWRyYXRlRGF0YVtdPjtcbiAgICBwdWJsaWMgcXVlcnlBbm5vdGF0ZWQocXVlcnk/OiB0eXBlcy5RdWVyeU9iamVjdCwgb3B0aW9ucz86IFF1ZXJ5T3B0aW9ucyk6XG4gICAgICAgIFJ4Lk9ic2VydmFibGU8dHlwZXMuU2FtcGxlW10+O1xuICAgIHB1YmxpYyBxdWVyeUFubm90YXRlZChxdWVyeTogdHlwZXMuUXVlcnkgPSB7fSwgb3B0aW9ucz86IFF1ZXJ5T3B0aW9ucyk6IFJ4Lk9ic2VydmFibGU8YW55PiB7XG4gICAgICAgIHJldHVybiBzdXBlci5xdWVyeSh7Li4ucXVlcnksIGRlc2NyaXB0b3JfY29tcGxldGVkOiB0cnVlfSwgb3B0aW9ucyk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQWRkcyBzYW1wbGUgdG8gY29sbGVjdGlvbnMuXG4gICAgICpcbiAgICAgKiBAcGFyYW0gc2FtcGxlSWQgU2FtcGxlIGlkXG4gICAgICogQHBhcmFtIGNvbGxlY3Rpb25JZHMgQXJyYXkgb2YgY29sbGVjdGlvbiBpZHNcbiAgICAgKi9cbiAgICBwdWJsaWMgYWRkVG9Db2xsZWN0aW9ucyhzYW1wbGVJZDogbnVtYmVyLCBjb2xsZWN0aW9uSWRzOiBudW1iZXJbXSk6IFJ4Lk9ic2VydmFibGU8dm9pZD4ge1xuICAgICAgICByZXR1cm4gdGhpcy5jYWxsTWV0aG9kPHZvaWQ+KHNhbXBsZUlkLCAnYWRkX3RvX2NvbGxlY3Rpb24nLCB7IGlkczogY29sbGVjdGlvbklkcyB9KTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBSZW1vdmUgc2FtcGxlIGZyb20gY29sbGVjdGlvbnMuXG4gICAgICpcbiAgICAgKiBAcGFyYW0gc2FtcGxlSWQgU2FtcGxlIGlkXG4gICAgICogQHBhcmFtIGNvbGxlY3Rpb25JZHMgQXJyYXkgb2YgY29sbGVjdGlvbiBpZHNcbiAgICAgKi9cbiAgICBwdWJsaWMgcmVtb3ZlRnJvbUNvbGxlY3Rpb25zKHNhbXBsZUlkOiBudW1iZXIsIGNvbGxlY3Rpb25JZHM6IG51bWJlcltdKTogUnguT2JzZXJ2YWJsZTx2b2lkPiB7XG4gICAgICAgIHJldHVybiB0aGlzLmNhbGxNZXRob2Q8dm9pZD4oc2FtcGxlSWQsICdyZW1vdmVfZnJvbV9jb2xsZWN0aW9uJywgeyBpZHM6IGNvbGxlY3Rpb25JZHMgfSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQWRkcyBkYXRhIG9iamVjdHMgdG8gc2FtcGxlLlxuICAgICAqXG4gICAgICogQHBhcmFtIHNhbXBsZUlkIFNhbXBsZSBpZFxuICAgICAqIEBwYXJhbSBkYXRhSWRzIEFycmF5IG9mIGRhdGEgb2JqZWN0IGlkc1xuICAgICAqL1xuICAgIHB1YmxpYyBhZGREYXRhKHNhbXBsZUlkOiBudW1iZXIsIGRhdGFJZHM6IG51bWJlcltdKTogUnguT2JzZXJ2YWJsZTx2b2lkPiB7XG4gICAgICAgIHJldHVybiB0aGlzLmNhbGxNZXRob2Q8dm9pZD4oc2FtcGxlSWQsICdhZGRfZGF0YScsIHsgaWRzOiBkYXRhSWRzIH0pO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFJlbW92ZXMgZGF0YSBvYmplY3RzIGZyb20gc2FtcGxlLlxuICAgICAqXG4gICAgICogQHBhcmFtIHNhbXBsZUlkIFNhbXBsZSBpZFxuICAgICAqIEBwYXJhbSBkYXRhSWRzIEFycmF5IG9mIGRhdGEgb2JqZWN0IGlkc1xuICAgICAqL1xuICAgIHB1YmxpYyByZW1vdmVEYXRhKHNhbXBsZUlkOiBudW1iZXIsIGRhdGFJZHM6IG51bWJlcltdKTogUnguT2JzZXJ2YWJsZTx2b2lkPiB7XG4gICAgICAgIHJldHVybiB0aGlzLmNhbGxNZXRob2Q8dm9pZD4oc2FtcGxlSWQsICdyZW1vdmVfZGF0YScsIHsgaWRzOiBkYXRhSWRzIH0pO1xuICAgIH1cblxuICAgIHB1YmxpYyBjcmVhdGUoZGF0YTogT2JqZWN0KTogUnguT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICAgICAgdGhyb3cgbmV3IEdlbkVycm9yKFwiQ3JlYXRlIG1ldGhvZCBub3Qgc3VwcG9ydGVkXCIpO1xuICAgIH1cblxuICAgIHB1YmxpYyByZXBsYWNlKHByaW1hcnlLZXk6IG51bWJlciB8IHN0cmluZywgZGF0YTogT2JqZWN0KTogUnguT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICAgICAgdGhyb3cgbmV3IEdlbkVycm9yKFwiUmVwbGFjZSBtZXRob2Qgbm90IHN1cHBvcnRlZFwiKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZGVsZXRlKHByaW1hcnlLZXk6IG51bWJlciB8IHN0cmluZywgZGVsZXRlQ29udGVudDogYm9vbGVhbiA9IGZhbHNlKTogUnguT2JzZXJ2YWJsZTxPYmplY3Q+IHtcbiAgICAgICAgcmV0dXJuIHN1cGVyLmRlbGV0ZShwcmltYXJ5S2V5LCB7fSwgeyBkZWxldGVfY29udGVudDogZGVsZXRlQ29udGVudCB9KTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0UGVybWlzc2lvbnMoaWQ6IG51bWJlcik6IFJ4Lk9ic2VydmFibGU8dHlwZXMuSXRlbVBlcm1pc3Npb25zW10+IHtcbiAgICAgICAgcmV0dXJuIGdldFBlcm1pc3Npb25zKHRoaXMsIGlkKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgc2V0UGVybWlzc2lvbnMoaWQ6IG51bWJlciwgcGVybWlzc2lvbnM6IHR5cGVzLlNldFBlcm1pc3Npb25zUmVxdWVzdCk6IFJ4Lk9ic2VydmFibGU8dHlwZXMuSXRlbVBlcm1pc3Npb25zW10+IHtcbiAgICAgICAgcmV0dXJuIHNldFBlcm1pc3Npb25zKHRoaXMsIGlkLCBwZXJtaXNzaW9ucyk7XG4gICAgfVxufVxuIl19
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9hcGkvcmVzb3VyY2VzL3Jlc3Qvc2FtcGxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQ0EsMEJBQTRCO0FBQzVCLGlEQUE2QztBQUc3QyxvREFBb0Q7QUFDcEQscURBQXFGO0FBR3JGOztHQUVHO0FBQ0g7SUFBb0Msa0NBQTRDO0lBUTVFLHdCQUFZLFVBQXNCO1FBQWxDLFlBQ0ksa0JBQU0sUUFBUSxFQUFFLFVBQVUsQ0FBQyxTQUM5QjtRQVREOzs7O1dBSUc7UUFDYSwyQkFBcUIsR0FBRyxFQUFFLENBQUM7O0lBSTNDLENBQUM7SUFFRDs7Ozs7T0FLRztJQUNJLG1DQUFVLEdBQWpCLFVBQWtCLElBQVk7UUFDMUIsT0FBTyxJQUFJLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBVSxJQUFJLENBQUMsaUJBQWlCLENBQUMsYUFBYSxDQUFDLEVBQUUsRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQztJQUMvRixDQUFDO0lBU00sOEJBQUssR0FBWixVQUFhLEtBQXlELEVBQUUsT0FBc0I7UUFDMUYsSUFBSSxLQUFLLENBQUMsMEJBQTBCLEVBQUU7WUFDbEMsT0FBTyxpQkFBTSxLQUFLLFlBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUUsNEJBQTRCLENBQUMsRUFBRSxPQUFPLENBQUMsQ0FBQztTQUM1RTtRQUNELE1BQU0sSUFBSSxnQkFBUSxDQUFDLDhEQUE4RCxDQUFDLENBQUM7SUFDdkYsQ0FBQztJQU1NLGlDQUFRLEdBQWYsVUFBZ0IsS0FBdUIsRUFBRSxPQUFzQjtRQUEvQyxzQkFBQSxFQUFBLFVBQXVCO1FBQ25DLE9BQU8saUJBQU0sUUFBUSx5QkFBSyxLQUFLLElBQUUsMEJBQTBCLEVBQUUsSUFBSSxLQUFHLE9BQU8sQ0FBQyxDQUFDO0lBQ2pGLENBQUM7SUFNTSx5Q0FBZ0IsR0FBdkIsVUFBd0IsS0FBdUIsRUFBRSxPQUFzQjtRQUEvQyxzQkFBQSxFQUFBLFVBQXVCO1FBQzNDLE9BQU8saUJBQU0sS0FBSyx5QkFBSyxLQUFLLElBQUUsb0JBQW9CLEVBQUUsS0FBSyxLQUFHLE9BQU8sQ0FBQyxDQUFDO0lBQ3pFLENBQUM7SUFNTSx1Q0FBYyxHQUFyQixVQUFzQixLQUF1QixFQUFFLE9BQXNCO1FBQS9DLHNCQUFBLEVBQUEsVUFBdUI7UUFDekMsT0FBTyxpQkFBTSxLQUFLLHlCQUFLLEtBQUssSUFBRSxvQkFBb0IsRUFBRSxJQUFJLEtBQUcsT0FBTyxDQUFDLENBQUM7SUFDeEUsQ0FBQztJQUVEOzs7OztPQUtHO0lBQ0kseUNBQWdCLEdBQXZCLFVBQXdCLFFBQWdCLEVBQUUsYUFBdUI7UUFDN0QsT0FBTyxJQUFJLENBQUMsVUFBVSxDQUFPLFFBQVEsRUFBRSxtQkFBbUIsRUFBRSxFQUFFLEdBQUcsRUFBRSxhQUFhLEVBQUUsQ0FBQyxDQUFDO0lBQ3hGLENBQUM7SUFFRDs7Ozs7T0FLRztJQUNJLDhDQUFxQixHQUE1QixVQUE2QixRQUFnQixFQUFFLGFBQXVCO1FBQ2xFLE9BQU8sSUFBSSxDQUFDLFVBQVUsQ0FBTyxRQUFRLEVBQUUsd0JBQXdCLEVBQUUsRUFBRSxHQUFHLEVBQUUsYUFBYSxFQUFFLENBQUMsQ0FBQztJQUM3RixDQUFDO0lBRUQ7Ozs7O09BS0c7SUFDSSxnQ0FBTyxHQUFkLFVBQWUsUUFBZ0IsRUFBRSxPQUFpQjtRQUM5QyxPQUFPLElBQUksQ0FBQyxVQUFVLENBQU8sUUFBUSxFQUFFLFVBQVUsRUFBRSxFQUFFLEdBQUcsRUFBRSxPQUFPLEVBQUUsQ0FBQyxDQUFDO0lBQ3pFLENBQUM7SUFFRDs7Ozs7T0FLRztJQUNJLG1DQUFVLEdBQWpCLFVBQWtCLFFBQWdCLEVBQUUsT0FBaUI7UUFDakQsT0FBTyxJQUFJLENBQUMsVUFBVSxDQUFPLFFBQVEsRUFBRSxhQUFhLEVBQUUsRUFBRSxHQUFHLEVBQUUsT0FBTyxFQUFFLENBQUMsQ0FBQztJQUM1RSxDQUFDO0lBRU0sK0JBQU0sR0FBYixVQUFjLElBQVk7UUFDdEIsTUFBTSxJQUFJLGdCQUFRLENBQUMsNkJBQTZCLENBQUMsQ0FBQztJQUN0RCxDQUFDO0lBRU0sZ0NBQU8sR0FBZCxVQUFlLFVBQTJCLEVBQUUsSUFBWTtRQUNwRCxNQUFNLElBQUksZ0JBQVEsQ0FBQyw4QkFBOEIsQ0FBQyxDQUFDO0lBQ3ZELENBQUM7SUFFTSwrQkFBTSxHQUFiLFVBQWMsVUFBMkIsRUFBRSxhQUE4QjtRQUE5Qiw4QkFBQSxFQUFBLHFCQUE4QjtRQUNyRSxPQUFPLGlCQUFNLE1BQU0sWUFBQyxVQUFVLEVBQUUsRUFBRSxFQUFFLEVBQUUsY0FBYyxFQUFFLGFBQWEsRUFBRSxDQUFDLENBQUM7SUFDM0UsQ0FBQztJQUVNLHVDQUFjLEdBQXJCLFVBQXNCLEVBQVU7UUFDNUIsT0FBTyw0QkFBYyxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsQ0FBQztJQUNwQyxDQUFDO0lBRU0sdUNBQWMsR0FBckIsVUFBc0IsRUFBVSxFQUFFLFdBQXdDO1FBQ3RFLE9BQU8sNEJBQWMsQ0FBQyxJQUFJLEVBQUUsRUFBRSxFQUFFLFdBQVcsQ0FBQyxDQUFDO0lBQ2pELENBQUM7SUFDTCxxQkFBQztBQUFELENBdkhBLEFBdUhDLENBdkhtQyw0QkFBWSxHQXVIL0M7QUF2SFksd0NBQWMiLCJmaWxlIjoiYXBpL3Jlc291cmNlcy9yZXN0L3NhbXBsZS5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIFJ4IGZyb20gJ3J4JztcbmltcG9ydCAqIGFzIF8gZnJvbSAnbG9kYXNoJztcbmltcG9ydCB7UkVTVFJlc291cmNlfSBmcm9tICcuL3Jlc3RfcmVzb3VyY2UnO1xuaW1wb3J0IHtRdWVyeU9wdGlvbnN9IGZyb20gJy4uLy4uL3Jlc291cmNlJztcbmltcG9ydCB7Q29ubmVjdGlvbn0gZnJvbSAnLi4vLi4vY29ubmVjdGlvbic7XG5pbXBvcnQge0dlbkVycm9yfSBmcm9tICcuLi8uLi8uLi9jb3JlL2Vycm9ycy9lcnJvcic7XG5pbXBvcnQge1Blcm1pc3Npb25hYmxlLCBnZXRQZXJtaXNzaW9ucywgc2V0UGVybWlzc2lvbnN9IGZyb20gJy4uL2FkZG9ucy9wZXJtaXNzaW9ucyc7XG5pbXBvcnQgKiBhcyB0eXBlcyBmcm9tICcuLi8uLi90eXBlcy9yZXN0JztcblxuLyoqXG4gKiBTYW1wbGUgcmVzb3VyY2UgY2xhc3MgZm9yIGRlYWxpbmcgd2l0aCBzYW1wbGUgZW5kcG9pbnQuXG4gKi9cbmV4cG9ydCBjbGFzcyBTYW1wbGVSZXNvdXJjZSBleHRlbmRzIFJFU1RSZXNvdXJjZTx0eXBlcy5TYW1wbGUgfCB0eXBlcy5QcmVzYW1wbGU+IGltcGxlbWVudHMgUGVybWlzc2lvbmFibGUge1xuICAgIC8qKlxuICAgICAqIE9yZGVyaW5nIGJ5IHJlbGV2YW5jZSBjb25zdGFudC4gQXBwbHkgdGhpcyB2YWx1ZSB0byBgb3JkZXJpbmdgIHF1ZXJ5IHBhcmFtZXRlciB0b1xuICAgICAqIG9yZGVyIGJ5IHJlbGV2YW5jZS5cbiAgICAgKiBUaGlzIHdvcmtzIGJ5IG92ZXJyaWRpbmcgYW55IGRlZmF1bHQgb3JkZXJpbmcgb24gYmFja2VuZCwgc28gaXQga2VlcHMgb3JkZXIgb2YgRVMgcmVzdWx0c1xuICAgICAqL1xuICAgIHB1YmxpYyByZWFkb25seSBPUkRFUklOR19CWV9SRUxFVkFOQ0UgPSAnJztcblxuICAgIGNvbnN0cnVjdG9yKGNvbm5lY3Rpb246IENvbm5lY3Rpb24pIHtcbiAgICAgICAgc3VwZXIoJ3NhbXBsZScsIGNvbm5lY3Rpb24pO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIENoZWNrcyBpZiBzYW1wbGUgc2x1ZyBhbHJlYWR5IGV4aXN0cy5cbiAgICAgKlxuICAgICAqIEBwYXJhbSBTbHVnIHRvIGNoZWNrXG4gICAgICogQHJldHVybiBBbiBvYnNlcnZhYmxlIHRoYXQgZW1pdHMgdGhlIHJlc3BvbnNlXG4gICAgICovXG4gICAgcHVibGljIHNsdWdFeGlzdHMoc2x1Zzogc3RyaW5nKTogUnguT2JzZXJ2YWJsZTxib29sZWFuPiB7XG4gICAgICAgIHJldHVybiB0aGlzLmNvbm5lY3Rpb24uZ2V0PGJvb2xlYW4+KHRoaXMuZ2V0TGlzdE1ldGhvZFBhdGgoJ3NsdWdfZXhpc3RzJyksIHsgbmFtZTogc2x1ZyB9KTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBVc2UgdGhpcyBtZXRob2QgY2FyZWZ1bGx5LiBDaGVjayB0byBtYWtlIHN1cmUgeW91IG5lZWQgdW5hbm5vdGF0ZWQgYW5kIGFubm90YXRlZCBzYW1wbGVzLlxuICAgICAqL1xuICAgIHB1YmxpYyBxdWVyeShxdWVyeTogdHlwZXMuUXVlcnlPYmplY3RIeWRyYXRlRGF0YSAmIHsgZ2V0VW5hbm5vdGF0ZWRBbmRBbm5vdGF0ZWQ6IHRydWUgfSwgb3B0aW9ucz86IFF1ZXJ5T3B0aW9ucyk6XG4gICAgICAgIFJ4Lk9ic2VydmFibGU8KHR5cGVzLlNhbXBsZUh5ZHJhdGVEYXRhIHwgdHlwZXMuUHJlc2FtcGxlSHlkcmF0ZURhdGEpW10+O1xuICAgIHB1YmxpYyBxdWVyeShxdWVyeTogdHlwZXMuUXVlcnlPYmplY3QgJiB7IGdldFVuYW5ub3RhdGVkQW5kQW5ub3RhdGVkOiB0cnVlIH0sIG9wdGlvbnM/OiBRdWVyeU9wdGlvbnMpOlxuICAgICAgICBSeC5PYnNlcnZhYmxlPCh0eXBlcy5TYW1wbGUgfCB0eXBlcy5QcmVzYW1wbGUpW10+O1xuICAgIHB1YmxpYyBxdWVyeShxdWVyeTogdHlwZXMuUXVlcnkgJiB7IGdldFVuYW5ub3RhdGVkQW5kQW5ub3RhdGVkOiB0cnVlIH0sIG9wdGlvbnM/OiBRdWVyeU9wdGlvbnMpOiBSeC5PYnNlcnZhYmxlPGFueT4ge1xuICAgICAgICBpZiAocXVlcnkuZ2V0VW5hbm5vdGF0ZWRBbmRBbm5vdGF0ZWQpIHtcbiAgICAgICAgICAgIHJldHVybiBzdXBlci5xdWVyeShfLm9taXQocXVlcnksICdnZXRVbmFubm90YXRlZEFuZEFubm90YXRlZCcpLCBvcHRpb25zKTtcbiAgICAgICAgfVxuICAgICAgICB0aHJvdyBuZXcgR2VuRXJyb3IoXCJRdWVyeSBtZXRob2QgbXVzdCBiZSBpbnZva2VkIHdpdGggZ2V0VW5hbm5vdGF0ZWRBbmRBbm5vdGF0ZWRcIik7XG4gICAgfVxuXG4gICAgcHVibGljIHF1ZXJ5T25lKHF1ZXJ5OiB0eXBlcy5RdWVyeU9iamVjdEh5ZHJhdGVEYXRhLCBvcHRpb25zPzogUXVlcnlPcHRpb25zKTpcbiAgICAgICAgUnguT2JzZXJ2YWJsZTx0eXBlcy5TYW1wbGVIeWRyYXRlRGF0YSB8IHR5cGVzLlByZXNhbXBsZUh5ZHJhdGVEYXRhPjtcbiAgICBwdWJsaWMgcXVlcnlPbmUocXVlcnk/OiB0eXBlcy5RdWVyeU9iamVjdCwgb3B0aW9ucz86IFF1ZXJ5T3B0aW9ucyk6XG4gICAgICAgIFJ4Lk9ic2VydmFibGU8dHlwZXMuU2FtcGxlIHwgdHlwZXMuUHJlc2FtcGxlPjtcbiAgICBwdWJsaWMgcXVlcnlPbmUocXVlcnk6IHR5cGVzLlF1ZXJ5ID0ge30sIG9wdGlvbnM/OiBRdWVyeU9wdGlvbnMpOiBSeC5PYnNlcnZhYmxlPGFueT4ge1xuICAgICAgICByZXR1cm4gc3VwZXIucXVlcnlPbmUoey4uLnF1ZXJ5LCBnZXRVbmFubm90YXRlZEFuZEFubm90YXRlZDogdHJ1ZX0sIG9wdGlvbnMpO1xuICAgIH1cblxuICAgIHB1YmxpYyBxdWVyeVVuYW5ub3RhdGVkKHF1ZXJ5OiB0eXBlcy5RdWVyeU9iamVjdEh5ZHJhdGVEYXRhLCBvcHRpb25zPzogUXVlcnlPcHRpb25zKTpcbiAgICAgICAgUnguT2JzZXJ2YWJsZTx0eXBlcy5QcmVzYW1wbGVIeWRyYXRlRGF0YVtdPjtcbiAgICBwdWJsaWMgcXVlcnlVbmFubm90YXRlZChxdWVyeT86IHR5cGVzLlF1ZXJ5T2JqZWN0LCBvcHRpb25zPzogUXVlcnlPcHRpb25zKTpcbiAgICAgICAgUnguT2JzZXJ2YWJsZTx0eXBlcy5QcmVzYW1wbGVbXT47XG4gICAgcHVibGljIHF1ZXJ5VW5hbm5vdGF0ZWQocXVlcnk6IHR5cGVzLlF1ZXJ5ID0ge30sIG9wdGlvbnM/OiBRdWVyeU9wdGlvbnMpOiBSeC5PYnNlcnZhYmxlPGFueT4ge1xuICAgICAgICByZXR1cm4gc3VwZXIucXVlcnkoey4uLnF1ZXJ5LCBkZXNjcmlwdG9yX2NvbXBsZXRlZDogZmFsc2V9LCBvcHRpb25zKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgcXVlcnlBbm5vdGF0ZWQocXVlcnk6IHR5cGVzLlF1ZXJ5T2JqZWN0SHlkcmF0ZURhdGEsIG9wdGlvbnM/OiBRdWVyeU9wdGlvbnMpOlxuICAgICAgICBSeC5PYnNlcnZhYmxlPHR5cGVzLlNhbXBsZUh5ZHJhdGVEYXRhW10+O1xuICAgIHB1YmxpYyBxdWVyeUFubm90YXRlZChxdWVyeT86IHR5cGVzLlF1ZXJ5T2JqZWN0LCBvcHRpb25zPzogUXVlcnlPcHRpb25zKTpcbiAgICAgICAgUnguT2JzZXJ2YWJsZTx0eXBlcy5TYW1wbGVbXT47XG4gICAgcHVibGljIHF1ZXJ5QW5ub3RhdGVkKHF1ZXJ5OiB0eXBlcy5RdWVyeSA9IHt9LCBvcHRpb25zPzogUXVlcnlPcHRpb25zKTogUnguT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICAgICAgcmV0dXJuIHN1cGVyLnF1ZXJ5KHsuLi5xdWVyeSwgZGVzY3JpcHRvcl9jb21wbGV0ZWQ6IHRydWV9LCBvcHRpb25zKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBBZGRzIHNhbXBsZSB0byBjb2xsZWN0aW9ucy5cbiAgICAgKlxuICAgICAqIEBwYXJhbSBzYW1wbGVJZCBTYW1wbGUgaWRcbiAgICAgKiBAcGFyYW0gY29sbGVjdGlvbklkcyBBcnJheSBvZiBjb2xsZWN0aW9uIGlkc1xuICAgICAqL1xuICAgIHB1YmxpYyBhZGRUb0NvbGxlY3Rpb25zKHNhbXBsZUlkOiBudW1iZXIsIGNvbGxlY3Rpb25JZHM6IG51bWJlcltdKTogUnguT2JzZXJ2YWJsZTx2b2lkPiB7XG4gICAgICAgIHJldHVybiB0aGlzLmNhbGxNZXRob2Q8dm9pZD4oc2FtcGxlSWQsICdhZGRfdG9fY29sbGVjdGlvbicsIHsgaWRzOiBjb2xsZWN0aW9uSWRzIH0pO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFJlbW92ZSBzYW1wbGUgZnJvbSBjb2xsZWN0aW9ucy5cbiAgICAgKlxuICAgICAqIEBwYXJhbSBzYW1wbGVJZCBTYW1wbGUgaWRcbiAgICAgKiBAcGFyYW0gY29sbGVjdGlvbklkcyBBcnJheSBvZiBjb2xsZWN0aW9uIGlkc1xuICAgICAqL1xuICAgIHB1YmxpYyByZW1vdmVGcm9tQ29sbGVjdGlvbnMoc2FtcGxlSWQ6IG51bWJlciwgY29sbGVjdGlvbklkczogbnVtYmVyW10pOiBSeC5PYnNlcnZhYmxlPHZvaWQ+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuY2FsbE1ldGhvZDx2b2lkPihzYW1wbGVJZCwgJ3JlbW92ZV9mcm9tX2NvbGxlY3Rpb24nLCB7IGlkczogY29sbGVjdGlvbklkcyB9KTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBBZGRzIGRhdGEgb2JqZWN0cyB0byBzYW1wbGUuXG4gICAgICpcbiAgICAgKiBAcGFyYW0gc2FtcGxlSWQgU2FtcGxlIGlkXG4gICAgICogQHBhcmFtIGRhdGFJZHMgQXJyYXkgb2YgZGF0YSBvYmplY3QgaWRzXG4gICAgICovXG4gICAgcHVibGljIGFkZERhdGEoc2FtcGxlSWQ6IG51bWJlciwgZGF0YUlkczogbnVtYmVyW10pOiBSeC5PYnNlcnZhYmxlPHZvaWQ+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuY2FsbE1ldGhvZDx2b2lkPihzYW1wbGVJZCwgJ2FkZF9kYXRhJywgeyBpZHM6IGRhdGFJZHMgfSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogUmVtb3ZlcyBkYXRhIG9iamVjdHMgZnJvbSBzYW1wbGUuXG4gICAgICpcbiAgICAgKiBAcGFyYW0gc2FtcGxlSWQgU2FtcGxlIGlkXG4gICAgICogQHBhcmFtIGRhdGFJZHMgQXJyYXkgb2YgZGF0YSBvYmplY3QgaWRzXG4gICAgICovXG4gICAgcHVibGljIHJlbW92ZURhdGEoc2FtcGxlSWQ6IG51bWJlciwgZGF0YUlkczogbnVtYmVyW10pOiBSeC5PYnNlcnZhYmxlPHZvaWQ+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuY2FsbE1ldGhvZDx2b2lkPihzYW1wbGVJZCwgJ3JlbW92ZV9kYXRhJywgeyBpZHM6IGRhdGFJZHMgfSk7XG4gICAgfVxuXG4gICAgcHVibGljIGNyZWF0ZShkYXRhOiBPYmplY3QpOiBSeC5PYnNlcnZhYmxlPGFueT4ge1xuICAgICAgICB0aHJvdyBuZXcgR2VuRXJyb3IoXCJDcmVhdGUgbWV0aG9kIG5vdCBzdXBwb3J0ZWRcIik7XG4gICAgfVxuXG4gICAgcHVibGljIHJlcGxhY2UocHJpbWFyeUtleTogbnVtYmVyIHwgc3RyaW5nLCBkYXRhOiBPYmplY3QpOiBSeC5PYnNlcnZhYmxlPGFueT4ge1xuICAgICAgICB0aHJvdyBuZXcgR2VuRXJyb3IoXCJSZXBsYWNlIG1ldGhvZCBub3Qgc3VwcG9ydGVkXCIpO1xuICAgIH1cblxuICAgIHB1YmxpYyBkZWxldGUocHJpbWFyeUtleTogbnVtYmVyIHwgc3RyaW5nLCBkZWxldGVDb250ZW50OiBib29sZWFuID0gZmFsc2UpOiBSeC5PYnNlcnZhYmxlPE9iamVjdD4ge1xuICAgICAgICByZXR1cm4gc3VwZXIuZGVsZXRlKHByaW1hcnlLZXksIHt9LCB7IGRlbGV0ZV9jb250ZW50OiBkZWxldGVDb250ZW50IH0pO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXRQZXJtaXNzaW9ucyhpZDogbnVtYmVyKTogUnguT2JzZXJ2YWJsZTx0eXBlcy5JdGVtUGVybWlzc2lvbnNbXT4ge1xuICAgICAgICByZXR1cm4gZ2V0UGVybWlzc2lvbnModGhpcywgaWQpO1xuICAgIH1cblxuICAgIHB1YmxpYyBzZXRQZXJtaXNzaW9ucyhpZDogbnVtYmVyLCBwZXJtaXNzaW9uczogdHlwZXMuU2V0UGVybWlzc2lvbnNSZXF1ZXN0KTogUnguT2JzZXJ2YWJsZTx0eXBlcy5JdGVtUGVybWlzc2lvbnNbXT4ge1xuICAgICAgICByZXR1cm4gc2V0UGVybWlzc2lvbnModGhpcywgaWQsIHBlcm1pc3Npb25zKTtcbiAgICB9XG59XG4iXX0=

@@ -18,2 +18,1 @@ import * as Rx from 'rx';

}
//# sourceMappingURL=storage.d.ts.map
"use strict";
var __extends = (this && this.__extends) || (function () {
var extendStatics = function (d, b) {
extendStatics = Object.setPrototypeOf ||
({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
return extendStatics(d, b);
}
var extendStatics = Object.setPrototypeOf ||
({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
return function (d, b) {

@@ -52,2 +49,2 @@ extendStatics(d, b);

//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9hcGkvcmVzb3VyY2VzL3Jlc3Qvc3RvcmFnZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7QUFFQSxpREFBNkM7QUFJN0M7O0dBRUc7QUFDSDtJQUFxQyxtQ0FBMkI7SUFFNUQseUJBQVksVUFBc0I7ZUFDOUIsa0JBQU0sU0FBUyxFQUFFLFVBQVUsQ0FBQztJQUNoQyxDQUFDO0lBRU0sd0NBQWMsR0FBckIsVUFBc0IsVUFBMkI7UUFDN0MsT0FBTyxJQUFJLENBQUMsVUFBVSxDQUFDLGlCQUFpQixDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsVUFBVSxDQUFDLEVBQUUsRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLENBQUMsQ0FBQztJQUNqRyxDQUFDO0lBRU0sK0JBQUssR0FBWixVQUFhLEtBQXVCO1FBQXZCLHNCQUFBLEVBQUEsVUFBdUI7UUFDaEMsTUFBTSxJQUFJLEtBQUssQ0FBQyw0QkFBNEIsQ0FBQyxDQUFDO0lBQ2xELENBQUM7SUFFTSxrQ0FBUSxHQUFmLFVBQWdCLEtBQXVCO1FBQXZCLHNCQUFBLEVBQUEsVUFBdUI7UUFDbkMsTUFBTSxJQUFJLEtBQUssQ0FBQywrQkFBK0IsQ0FBQyxDQUFDO0lBQ3JELENBQUM7SUFFTSxnQ0FBTSxHQUFiLFVBQWMsSUFBWTtRQUN0QixNQUFNLElBQUksS0FBSyxDQUFDLDZCQUE2QixDQUFDLENBQUM7SUFDbkQsQ0FBQztJQUVNLGdDQUFNLEdBQWIsVUFBYyxVQUEyQixFQUFFLElBQVk7UUFDbkQsTUFBTSxJQUFJLEtBQUssQ0FBQyw2QkFBNkIsQ0FBQyxDQUFDO0lBQ25ELENBQUM7SUFFTSxpQ0FBTyxHQUFkLFVBQWUsVUFBMkIsRUFBRSxJQUFZO1FBQ3BELE1BQU0sSUFBSSxLQUFLLENBQUMsOEJBQThCLENBQUMsQ0FBQztJQUNwRCxDQUFDO0lBRU0sZ0NBQU0sR0FBYixVQUFjLFVBQTJCO1FBQ3JDLE1BQU0sSUFBSSxLQUFLLENBQUMsNkJBQTZCLENBQUMsQ0FBQztJQUNuRCxDQUFDO0lBQ0wsc0JBQUM7QUFBRCxDQWpDQSxBQWlDQyxDQWpDb0MsNEJBQVksR0FpQ2hEO0FBakNZLDBDQUFlIiwiZmlsZSI6ImFwaS9yZXNvdXJjZXMvcmVzdC9zdG9yYWdlLmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgUnggZnJvbSAncngnO1xuXG5pbXBvcnQge1JFU1RSZXNvdXJjZX0gZnJvbSAnLi9yZXN0X3Jlc291cmNlJztcbmltcG9ydCB7Q29ubmVjdGlvbn0gZnJvbSAnLi4vLi4vY29ubmVjdGlvbic7XG5pbXBvcnQgKiBhcyB0eXBlcyBmcm9tICcuLi8uLi90eXBlcy9yZXN0JztcblxuLyoqXG4gKiBTdG9yYWdlIHJlc291cmNlIGNsYXNzIGZvciBkZWFsaW5nIHdpdGggc3RvcmFnZSBlbmRwb2ludC5cbiAqL1xuZXhwb3J0IGNsYXNzIFN0b3JhZ2VSZXNvdXJjZSBleHRlbmRzIFJFU1RSZXNvdXJjZTx0eXBlcy5TdG9yYWdlPiB7XG5cbiAgICBjb25zdHJ1Y3Rvcihjb25uZWN0aW9uOiBDb25uZWN0aW9uKSB7XG4gICAgICAgIHN1cGVyKCdzdG9yYWdlJywgY29ubmVjdGlvbik7XG4gICAgfVxuXG4gICAgcHVibGljIGdldFN0b3JhZ2VMaW5rKHByaW1hcnlLZXk6IG51bWJlciB8IHN0cmluZyk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiB0aGlzLmNvbm5lY3Rpb24uY3JlYXRlVXJpRnJvbVBhdGgodGhpcy5nZXREZXRhaWxQYXRoKHByaW1hcnlLZXkpLCB7IGZvcm1hdDogJ2pzb24nIH0pO1xuICAgIH1cblxuICAgIHB1YmxpYyBxdWVyeShxdWVyeTogdHlwZXMuUXVlcnkgPSB7fSk6IFJ4Lk9ic2VydmFibGU8dHlwZXMuU3RvcmFnZVtdPiB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcigncXVlcnkgbWV0aG9kIG5vdCBzdXBwb3J0ZWQnKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgcXVlcnlPbmUocXVlcnk6IHR5cGVzLlF1ZXJ5ID0ge30pOiBSeC5PYnNlcnZhYmxlPHR5cGVzLlN0b3JhZ2U+IHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdxdWVyeU9uZSBtZXRob2Qgbm90IHN1cHBvcnRlZCcpO1xuICAgIH1cblxuICAgIHB1YmxpYyBjcmVhdGUoZGF0YTogT2JqZWN0KTogUnguT2JzZXJ2YWJsZTx0eXBlcy5TdG9yYWdlPiB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcignY3JlYXRlIG1ldGhvZCBub3Qgc3VwcG9ydGVkJyk7XG4gICAgfVxuXG4gICAgcHVibGljIHVwZGF0ZShwcmltYXJ5S2V5OiBudW1iZXIgfCBzdHJpbmcsIGRhdGE6IE9iamVjdCk6IFJ4Lk9ic2VydmFibGU8dHlwZXMuU3RvcmFnZT4ge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ3VwZGF0ZSBtZXRob2Qgbm90IHN1cHBvcnRlZCcpO1xuICAgIH1cblxuICAgIHB1YmxpYyByZXBsYWNlKHByaW1hcnlLZXk6IG51bWJlciB8IHN0cmluZywgZGF0YTogT2JqZWN0KTogUnguT2JzZXJ2YWJsZTx0eXBlcy5TdG9yYWdlPiB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcigncmVwbGFjZSBtZXRob2Qgbm90IHN1cHBvcnRlZCcpO1xuICAgIH1cblxuICAgIHB1YmxpYyBkZWxldGUocHJpbWFyeUtleTogbnVtYmVyIHwgc3RyaW5nKTogUnguT2JzZXJ2YWJsZTxPYmplY3Q+IHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdkZWxldGUgbWV0aG9kIG5vdCBzdXBwb3J0ZWQnKTtcbiAgICB9XG59XG4iXX0=
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9hcGkvcmVzb3VyY2VzL3Jlc3Qvc3RvcmFnZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7QUFFQSxpREFBNkM7QUFJN0M7O0dBRUc7QUFDSDtJQUFxQyxtQ0FBMkI7SUFFNUQseUJBQVksVUFBc0I7ZUFDOUIsa0JBQU0sU0FBUyxFQUFFLFVBQVUsQ0FBQztJQUNoQyxDQUFDO0lBRU0sd0NBQWMsR0FBckIsVUFBc0IsVUFBMkI7UUFDN0MsT0FBTyxJQUFJLENBQUMsVUFBVSxDQUFDLGlCQUFpQixDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsVUFBVSxDQUFDLEVBQUUsRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLENBQUMsQ0FBQztJQUNqRyxDQUFDO0lBRU0sK0JBQUssR0FBWixVQUFhLEtBQXVCO1FBQXZCLHNCQUFBLEVBQUEsVUFBdUI7UUFDaEMsTUFBTSxJQUFJLEtBQUssQ0FBQyw0QkFBNEIsQ0FBQyxDQUFDO0lBQ2xELENBQUM7SUFFTSxrQ0FBUSxHQUFmLFVBQWdCLEtBQXVCO1FBQXZCLHNCQUFBLEVBQUEsVUFBdUI7UUFDbkMsTUFBTSxJQUFJLEtBQUssQ0FBQywrQkFBK0IsQ0FBQyxDQUFDO0lBQ3JELENBQUM7SUFFTSxnQ0FBTSxHQUFiLFVBQWMsSUFBWTtRQUN0QixNQUFNLElBQUksS0FBSyxDQUFDLDZCQUE2QixDQUFDLENBQUM7SUFDbkQsQ0FBQztJQUVNLGdDQUFNLEdBQWIsVUFBYyxVQUEyQixFQUFFLElBQVk7UUFDbkQsTUFBTSxJQUFJLEtBQUssQ0FBQyw2QkFBNkIsQ0FBQyxDQUFDO0lBQ25ELENBQUM7SUFFTSxpQ0FBTyxHQUFkLFVBQWUsVUFBMkIsRUFBRSxJQUFZO1FBQ3BELE1BQU0sSUFBSSxLQUFLLENBQUMsOEJBQThCLENBQUMsQ0FBQztJQUNwRCxDQUFDO0lBRU0sZ0NBQU0sR0FBYixVQUFjLFVBQTJCO1FBQ3JDLE1BQU0sSUFBSSxLQUFLLENBQUMsNkJBQTZCLENBQUMsQ0FBQztJQUNuRCxDQUFDO0lBQ0wsc0JBQUM7QUFBRCxDQWpDQSxBQWlDQyxDQWpDb0MsNEJBQVksR0FpQ2hEO0FBakNZLDBDQUFlIiwiZmlsZSI6ImFwaS9yZXNvdXJjZXMvcmVzdC9zdG9yYWdlLmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgUnggZnJvbSAncngnO1xuXG5pbXBvcnQge1JFU1RSZXNvdXJjZX0gZnJvbSAnLi9yZXN0X3Jlc291cmNlJztcbmltcG9ydCB7Q29ubmVjdGlvbn0gZnJvbSAnLi4vLi4vY29ubmVjdGlvbic7XG5pbXBvcnQgKiBhcyB0eXBlcyBmcm9tICcuLi8uLi90eXBlcy9yZXN0JztcblxuLyoqXG4gKiBTdG9yYWdlIHJlc291cmNlIGNsYXNzIGZvciBkZWFsaW5nIHdpdGggc3RvcmFnZSBlbmRwb2ludC5cbiAqL1xuZXhwb3J0IGNsYXNzIFN0b3JhZ2VSZXNvdXJjZSBleHRlbmRzIFJFU1RSZXNvdXJjZTx0eXBlcy5TdG9yYWdlPiB7XG5cbiAgICBjb25zdHJ1Y3Rvcihjb25uZWN0aW9uOiBDb25uZWN0aW9uKSB7XG4gICAgICAgIHN1cGVyKCdzdG9yYWdlJywgY29ubmVjdGlvbik7XG4gICAgfVxuXG4gICAgcHVibGljIGdldFN0b3JhZ2VMaW5rKHByaW1hcnlLZXk6IG51bWJlciB8IHN0cmluZyk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiB0aGlzLmNvbm5lY3Rpb24uY3JlYXRlVXJpRnJvbVBhdGgodGhpcy5nZXREZXRhaWxQYXRoKHByaW1hcnlLZXkpLCB7IGZvcm1hdDogJ2pzb24nIH0pO1xuICAgIH1cblxuICAgIHB1YmxpYyBxdWVyeShxdWVyeTogdHlwZXMuUXVlcnkgPSB7fSk6IFJ4Lk9ic2VydmFibGU8dHlwZXMuU3RvcmFnZVtdPiB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcigncXVlcnkgbWV0aG9kIG5vdCBzdXBwb3J0ZWQnKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgcXVlcnlPbmUocXVlcnk6IHR5cGVzLlF1ZXJ5ID0ge30pOiBSeC5PYnNlcnZhYmxlPHR5cGVzLlN0b3JhZ2U+IHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdxdWVyeU9uZSBtZXRob2Qgbm90IHN1cHBvcnRlZCcpO1xuICAgIH1cblxuICAgIHB1YmxpYyBjcmVhdGUoZGF0YTogT2JqZWN0KTogUnguT2JzZXJ2YWJsZTx0eXBlcy5TdG9yYWdlPiB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcignY3JlYXRlIG1ldGhvZCBub3Qgc3VwcG9ydGVkJyk7XG4gICAgfVxuXG4gICAgcHVibGljIHVwZGF0ZShwcmltYXJ5S2V5OiBudW1iZXIgfCBzdHJpbmcsIGRhdGE6IE9iamVjdCk6IFJ4Lk9ic2VydmFibGU8dHlwZXMuU3RvcmFnZT4ge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ3VwZGF0ZSBtZXRob2Qgbm90IHN1cHBvcnRlZCcpO1xuICAgIH1cblxuICAgIHB1YmxpYyByZXBsYWNlKHByaW1hcnlLZXk6IG51bWJlciB8IHN0cmluZywgZGF0YTogT2JqZWN0KTogUnguT2JzZXJ2YWJsZTx0eXBlcy5TdG9yYWdlPiB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcigncmVwbGFjZSBtZXRob2Qgbm90IHN1cHBvcnRlZCcpO1xuICAgIH1cblxuICAgIHB1YmxpYyBkZWxldGUocHJpbWFyeUtleTogbnVtYmVyIHwgc3RyaW5nKTogUnguT2JzZXJ2YWJsZTxPYmplY3Q+IHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdkZWxldGUgbWV0aG9kIG5vdCBzdXBwb3J0ZWQnKTtcbiAgICB9XG59XG4iXX0=

@@ -50,2 +50,1 @@ import * as Rx from 'rx';

}
//# sourceMappingURL=user.d.ts.map
"use strict";
var __extends = (this && this.__extends) || (function () {
var extendStatics = function (d, b) {
extendStatics = Object.setPrototypeOf ||
({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
return extendStatics(d, b);
}
var extendStatics = Object.setPrototypeOf ||
({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
return function (d, b) {

@@ -96,2 +93,2 @@ extendStatics(d, b);

//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9hcGkvcmVzb3VyY2VzL3Jlc3QvdXNlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7QUFBQSwwQkFBNEI7QUFHNUIsaURBQTZDO0FBSTdDOztHQUVHO0FBQ0g7SUFBa0MsZ0NBQXdCO0lBQ3RELHNCQUFZLFVBQXNCO2VBQzlCLGtCQUFNLE1BQU0sRUFBRSxVQUFVLENBQUM7SUFDN0IsQ0FBQztJQUVEOztPQUVHO0lBQ0ksc0NBQWUsR0FBdEI7UUFDSSxPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsRUFBQyxZQUFZLEVBQUUsQ0FBQyxFQUFDLEVBQUUsRUFBQyxRQUFRLEVBQUUsSUFBSSxFQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsVUFBQyxLQUFZO1lBQ3BFLE9BQU8sQ0FBQyxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUM7UUFDMUIsQ0FBQyxDQUFDLENBQUM7SUFDUCxDQUFDO0lBRUQ7O09BRUc7SUFDSSw4QkFBTyxHQUFkO1FBQ0ksT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLEVBQUMsWUFBWSxFQUFFLENBQUMsRUFBQyxFQUFFLEVBQUMsUUFBUSxFQUFFLElBQUksRUFBQyxDQUFDLENBQUMsR0FBRyxDQUFDLFVBQUMsS0FBbUI7WUFDM0UsSUFBSSxLQUFLLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRTtnQkFDbEIsT0FBTyxDQUFDLEtBQUssQ0FBQyw0Q0FBNEMsQ0FBQyxDQUFDO2FBQy9EO1lBRUQsT0FBTyxDQUFDLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQzFCLENBQUMsQ0FBQyxDQUFDO0lBQ1AsQ0FBQztJQUVEOztPQUVHO0lBQ0ksNkJBQU0sR0FBYixVQUFjLElBQW9DO1FBQzlDLE9BQU8saUJBQU0sTUFBTSxZQUFDLElBQUksQ0FBQyxDQUFDO0lBQzlCLENBQUM7SUFFRDs7OztPQUlHO0lBQ0ksc0NBQWUsR0FBdEIsVUFBdUIsS0FBYTtRQUNoQyxPQUFPLElBQUksQ0FBQyxjQUFjLENBQWdDLGtCQUFrQixFQUFFLEVBQUMsS0FBSyxPQUFBLEVBQUMsQ0FBQyxDQUFDO0lBQzNGLENBQUM7SUFFRDs7Ozs7T0FLRztJQUNJLHFDQUFjLEdBQXJCLFVBQXNCLFdBQW1CLEVBQUUsV0FBbUI7UUFBOUQsaUJBT0M7UUFORyxPQUFPLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQyxhQUFhLENBQUMsVUFBQyxJQUFnQjtZQUNqRCxPQUFPLEtBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLEVBQUUsRUFBRSxpQkFBaUIsRUFBRTtnQkFDL0MsaUJBQWlCLEVBQUUsV0FBVztnQkFDOUIsWUFBWSxFQUFFLFdBQVc7YUFDNUIsQ0FBQyxDQUFDO1FBQ1AsQ0FBQyxDQUFDLENBQUM7SUFDUCxDQUFDO0lBRUQ7Ozs7O09BS0c7SUFDSSx5Q0FBa0IsR0FBekIsVUFBMEIsUUFBZ0IsRUFBRSxTQUFrQjtRQUMxRCxPQUFPLElBQUksQ0FBQyxjQUFjLENBQUssd0JBQXdCLEVBQUUsRUFBQyxRQUFRLFVBQUEsRUFBRSxTQUFTLFdBQUEsRUFBQyxDQUFDLENBQUM7SUFDcEYsQ0FBQztJQUVEOzs7OztPQUtHO0lBQ0ksb0NBQWEsR0FBcEIsVUFBcUIsS0FBYSxFQUFFLFFBQWdCO1FBQ2hELE9BQU8sSUFBSSxDQUFDLGNBQWMsQ0FBSyxnQkFBZ0IsRUFBRSxFQUFDLEtBQUssT0FBQSxFQUFFLFFBQVEsVUFBQSxFQUFDLENBQUMsQ0FBQztJQUN4RSxDQUFDO0lBQ0wsbUJBQUM7QUFBRCxDQTdFQSxBQTZFQyxDQTdFaUMsNEJBQVksR0E2RTdDO0FBN0VZLG9DQUFZIiwiZmlsZSI6ImFwaS9yZXNvdXJjZXMvcmVzdC91c2VyLmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgXyBmcm9tICdsb2Rhc2gnO1xuaW1wb3J0ICogYXMgUnggZnJvbSAncngnO1xuXG5pbXBvcnQge1JFU1RSZXNvdXJjZX0gZnJvbSAnLi9yZXN0X3Jlc291cmNlJztcbmltcG9ydCB7Q29ubmVjdGlvbn0gZnJvbSAnLi4vLi4vY29ubmVjdGlvbic7XG5pbXBvcnQgKiBhcyB0eXBlcyBmcm9tICcuLi8uLi90eXBlcy9yZXN0JztcblxuLyoqXG4gKiBVc2VyIHJlc291cmNlIGNsYXNzIGZvciBkZWFsaW5nIHdpdGggdXNlciBBUEkgZW5kcG9pbnQuXG4gKi9cbmV4cG9ydCBjbGFzcyBVc2VyUmVzb3VyY2UgZXh0ZW5kcyBSRVNUUmVzb3VyY2U8dHlwZXMuVXNlcj4ge1xuICAgIGNvbnN0cnVjdG9yKGNvbm5lY3Rpb246IENvbm5lY3Rpb24pIHtcbiAgICAgICAgc3VwZXIoJ3VzZXInLCBjb25uZWN0aW9uKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBSZXR1cm5zIHRoZSBjdXJyZW50IHVzZXIncyBhdXRoZW50aWNhdGlvbiBzdGF0dXMuXG4gICAgICovXG4gICAgcHVibGljIGlzQXV0aGVudGljYXRlZCgpOiBSeC5PYnNlcnZhYmxlPGJvb2xlYW4+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMucXVlcnkoe2N1cnJlbnRfb25seTogMX0sIHtyZWFjdGl2ZTogdHJ1ZX0pLm1hcCgodXNlcnM6IGFueVtdKTogYm9vbGVhbiA9PiB7XG4gICAgICAgICAgICByZXR1cm4gISF1c2Vycy5sZW5ndGg7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFJldHVybnMgdGhlIGN1cnJlbnQgdXNlcidzIHByb2ZpbGUuXG4gICAgICovXG4gICAgcHVibGljIHByb2ZpbGUoKTogUnguT2JzZXJ2YWJsZTx0eXBlcy5Vc2VyPiB7XG4gICAgICAgIHJldHVybiB0aGlzLnF1ZXJ5KHtjdXJyZW50X29ubHk6IDF9LCB7cmVhY3RpdmU6IHRydWV9KS5tYXAoKHVzZXJzOiB0eXBlcy5Vc2VyW10pOiB0eXBlcy5Vc2VyID0+IHtcbiAgICAgICAgICAgIGlmICh1c2Vycy5sZW5ndGggPiAxKSB7XG4gICAgICAgICAgICAgICAgY29uc29sZS5lcnJvcignUXVlcnkgc2hvdWxkIG5vdCByZXR1cm4gbW9yZSB0aGFuIG9uZSB1c2VyJyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHJldHVybiBfLmZpcnN0KHVzZXJzKTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQ3JlYXRlIGEgbmV3IChpbmFjdGl2ZSkgdXNlciBhY2NvdW50LlxuICAgICAqL1xuICAgIHB1YmxpYyBjcmVhdGUodXNlcjogdHlwZXMuQ3JlYXRlQWNjb3VudEluZm9ybWF0aW9uKTogUnguT2JzZXJ2YWJsZTx0eXBlcy5Vc2VyPiB7XG4gICAgICAgIHJldHVybiBzdXBlci5jcmVhdGUodXNlcik7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQWN0aXZhdGUgYW4gaW5hY3RpdmUgdXNlciBhY2NvdW50LlxuICAgICAqXG4gICAgICogQHBhcmFtIHRva2VuIEFjdGl2YXRpb24gdG9rZW5cbiAgICAgKi9cbiAgICBwdWJsaWMgYWN0aXZhdGVBY2NvdW50KHRva2VuOiBzdHJpbmcpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuY2FsbExpc3RNZXRob2Q8dHlwZXMuQWN0aXZhdGVBY2NvdW50UmVzcG9uc2U+KCdhY3RpdmF0ZV9hY2NvdW50Jywge3Rva2VufSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQ2hhbmdlIGN1cnJlbnQgdXNlciBwYXNzd29yZC5cbiAgICAgKlxuICAgICAqIEBwYXJhbSBvbGRQYXNzd29yZCBPbGQgcGFzc3dvcmRcbiAgICAgKiBAcGFyYW0gbmV3UGFzc3dvcmQgTmV3IHBhc3N3b3JkXG4gICAgICovXG4gICAgcHVibGljIGNoYW5nZVBhc3N3b3JkKG9sZFBhc3N3b3JkOiBzdHJpbmcsIG5ld1Bhc3N3b3JkOiBzdHJpbmcpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMucHJvZmlsZSgpLmZsYXRNYXBMYXRlc3QoKHVzZXI6IHR5cGVzLlVzZXIpID0+IHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLmNhbGxNZXRob2QodXNlci5pZCwgJ2NoYW5nZV9wYXNzd29yZCcsIHtcbiAgICAgICAgICAgICAgICBleGlzdGluZ19wYXNzd29yZDogb2xkUGFzc3dvcmQsXG4gICAgICAgICAgICAgICAgbmV3X3Bhc3N3b3JkOiBuZXdQYXNzd29yZCxcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBSZXF1ZXN0IGEgcGFzc3dvcmQgcmVzZXQgZW1haWwuXG4gICAgICpcbiAgICAgKiBAcGFyYW0gdXNlcm5hbWUgVXNlcm5hbWVcbiAgICAgKiBAcGFyYW0gY29tbXVuaXR5IE9wdGlvbmFsIGNvbW11bml0eSBuYW1lXG4gICAgICovXG4gICAgcHVibGljIHJlc2V0UGFzc3dvcmRFbWFpbCh1c2VybmFtZTogc3RyaW5nLCBjb21tdW5pdHk/OiBzdHJpbmcpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuY2FsbExpc3RNZXRob2Q8e30+KCdyZXF1ZXN0X3Bhc3N3b3JkX3Jlc2V0Jywge3VzZXJuYW1lLCBjb21tdW5pdHl9KTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBSZXNldCB1c2VyIHBhc3N3b3JkLlxuICAgICAqXG4gICAgICogQHBhcmFtIHRva2VuIFBhc3N3b3JkIHJlc2V0IHRva2VuXG4gICAgICogQHBhcmFtIHBhc3N3b3JkIE5ldyBwYXNzd29yZFxuICAgICAqL1xuICAgIHB1YmxpYyByZXNldFBhc3N3b3JkKHRva2VuOiBzdHJpbmcsIHBhc3N3b3JkOiBzdHJpbmcpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuY2FsbExpc3RNZXRob2Q8e30+KCdwYXNzd29yZF9yZXNldCcsIHt0b2tlbiwgcGFzc3dvcmR9KTtcbiAgICB9XG59XG4iXX0=
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9hcGkvcmVzb3VyY2VzL3Jlc3QvdXNlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7QUFBQSwwQkFBNEI7QUFHNUIsaURBQTZDO0FBSTdDOztHQUVHO0FBQ0g7SUFBa0MsZ0NBQXdCO0lBQ3RELHNCQUFZLFVBQXNCO2VBQzlCLGtCQUFNLE1BQU0sRUFBRSxVQUFVLENBQUM7SUFDN0IsQ0FBQztJQUVEOztPQUVHO0lBQ0ksc0NBQWUsR0FBdEI7UUFDSSxPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsRUFBQyxZQUFZLEVBQUUsQ0FBQyxFQUFDLEVBQUUsRUFBQyxRQUFRLEVBQUUsSUFBSSxFQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsVUFBQyxLQUFZO1lBQ3BFLE9BQU8sQ0FBQyxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUM7UUFDMUIsQ0FBQyxDQUFDLENBQUM7SUFDUCxDQUFDO0lBRUQ7O09BRUc7SUFDSSw4QkFBTyxHQUFkO1FBQ0ksT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLEVBQUMsWUFBWSxFQUFFLENBQUMsRUFBQyxFQUFFLEVBQUMsUUFBUSxFQUFFLElBQUksRUFBQyxDQUFDLENBQUMsR0FBRyxDQUFDLFVBQUMsS0FBbUI7WUFDM0UsSUFBSSxLQUFLLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRTtnQkFDbEIsT0FBTyxDQUFDLEtBQUssQ0FBQyw0Q0FBNEMsQ0FBQyxDQUFDO2FBQy9EO1lBRUQsT0FBTyxDQUFDLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQzFCLENBQUMsQ0FBQyxDQUFDO0lBQ1AsQ0FBQztJQUVEOztPQUVHO0lBQ0ksNkJBQU0sR0FBYixVQUFjLElBQW9DO1FBQzlDLE9BQU8saUJBQU0sTUFBTSxZQUFDLElBQUksQ0FBQyxDQUFDO0lBQzlCLENBQUM7SUFFRDs7OztPQUlHO0lBQ0ksc0NBQWUsR0FBdEIsVUFBdUIsS0FBYTtRQUNoQyxPQUFPLElBQUksQ0FBQyxjQUFjLENBQWdDLGtCQUFrQixFQUFFLEVBQUMsS0FBSyxPQUFBLEVBQUMsQ0FBQyxDQUFDO0lBQzNGLENBQUM7SUFFRDs7Ozs7T0FLRztJQUNJLHFDQUFjLEdBQXJCLFVBQXNCLFdBQW1CLEVBQUUsV0FBbUI7UUFBOUQsaUJBT0M7UUFORyxPQUFPLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQyxhQUFhLENBQUMsVUFBQyxJQUFnQjtZQUNqRCxPQUFPLEtBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLEVBQUUsRUFBRSxpQkFBaUIsRUFBRTtnQkFDL0MsaUJBQWlCLEVBQUUsV0FBVztnQkFDOUIsWUFBWSxFQUFFLFdBQVc7YUFDNUIsQ0FBQyxDQUFDO1FBQ1AsQ0FBQyxDQUFDLENBQUM7SUFDUCxDQUFDO0lBRUQ7Ozs7O09BS0c7SUFDSSx5Q0FBa0IsR0FBekIsVUFBMEIsUUFBZ0IsRUFBRSxTQUFrQjtRQUMxRCxPQUFPLElBQUksQ0FBQyxjQUFjLENBQUssd0JBQXdCLEVBQUUsRUFBQyxRQUFRLFVBQUEsRUFBRSxTQUFTLFdBQUEsRUFBQyxDQUFDLENBQUM7SUFDcEYsQ0FBQztJQUVEOzs7OztPQUtHO0lBQ0ksb0NBQWEsR0FBcEIsVUFBcUIsS0FBYSxFQUFFLFFBQWdCO1FBQ2hELE9BQU8sSUFBSSxDQUFDLGNBQWMsQ0FBSyxnQkFBZ0IsRUFBRSxFQUFDLEtBQUssT0FBQSxFQUFFLFFBQVEsVUFBQSxFQUFDLENBQUMsQ0FBQztJQUN4RSxDQUFDO0lBQ0wsbUJBQUM7QUFBRCxDQTdFQSxBQTZFQyxDQTdFaUMsNEJBQVksR0E2RTdDO0FBN0VZLG9DQUFZIiwiZmlsZSI6ImFwaS9yZXNvdXJjZXMvcmVzdC91c2VyLmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgXyBmcm9tICdsb2Rhc2gnO1xuaW1wb3J0ICogYXMgUnggZnJvbSAncngnO1xuXG5pbXBvcnQge1JFU1RSZXNvdXJjZX0gZnJvbSAnLi9yZXN0X3Jlc291cmNlJztcbmltcG9ydCB7Q29ubmVjdGlvbn0gZnJvbSAnLi4vLi4vY29ubmVjdGlvbic7XG5pbXBvcnQgKiBhcyB0eXBlcyBmcm9tICcuLi8uLi90eXBlcy9yZXN0JztcblxuLyoqXG4gKiBVc2VyIHJlc291cmNlIGNsYXNzIGZvciBkZWFsaW5nIHdpdGggdXNlciBBUEkgZW5kcG9pbnQuXG4gKi9cbmV4cG9ydCBjbGFzcyBVc2VyUmVzb3VyY2UgZXh0ZW5kcyBSRVNUUmVzb3VyY2U8dHlwZXMuVXNlcj4ge1xuICAgIGNvbnN0cnVjdG9yKGNvbm5lY3Rpb246IENvbm5lY3Rpb24pIHtcbiAgICAgICAgc3VwZXIoJ3VzZXInLCBjb25uZWN0aW9uKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBSZXR1cm5zIHRoZSBjdXJyZW50IHVzZXIncyBhdXRoZW50aWNhdGlvbiBzdGF0dXMuXG4gICAgICovXG4gICAgcHVibGljIGlzQXV0aGVudGljYXRlZCgpOiBSeC5PYnNlcnZhYmxlPGJvb2xlYW4+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMucXVlcnkoe2N1cnJlbnRfb25seTogMX0sIHtyZWFjdGl2ZTogdHJ1ZX0pLm1hcCgodXNlcnM6IGFueVtdKTogYm9vbGVhbiA9PiB7XG4gICAgICAgICAgICByZXR1cm4gISF1c2Vycy5sZW5ndGg7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFJldHVybnMgdGhlIGN1cnJlbnQgdXNlcidzIHByb2ZpbGUuXG4gICAgICovXG4gICAgcHVibGljIHByb2ZpbGUoKTogUnguT2JzZXJ2YWJsZTx0eXBlcy5Vc2VyPiB7XG4gICAgICAgIHJldHVybiB0aGlzLnF1ZXJ5KHtjdXJyZW50X29ubHk6IDF9LCB7cmVhY3RpdmU6IHRydWV9KS5tYXAoKHVzZXJzOiB0eXBlcy5Vc2VyW10pOiB0eXBlcy5Vc2VyID0+IHtcbiAgICAgICAgICAgIGlmICh1c2Vycy5sZW5ndGggPiAxKSB7XG4gICAgICAgICAgICAgICAgY29uc29sZS5lcnJvcignUXVlcnkgc2hvdWxkIG5vdCByZXR1cm4gbW9yZSB0aGFuIG9uZSB1c2VyJyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHJldHVybiBfLmZpcnN0KHVzZXJzKTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQ3JlYXRlIGEgbmV3IChpbmFjdGl2ZSkgdXNlciBhY2NvdW50LlxuICAgICAqL1xuICAgIHB1YmxpYyBjcmVhdGUodXNlcjogdHlwZXMuQ3JlYXRlQWNjb3VudEluZm9ybWF0aW9uKTogUnguT2JzZXJ2YWJsZTx0eXBlcy5Vc2VyPiB7XG4gICAgICAgIHJldHVybiBzdXBlci5jcmVhdGUodXNlcik7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQWN0aXZhdGUgYW4gaW5hY3RpdmUgdXNlciBhY2NvdW50LlxuICAgICAqXG4gICAgICogQHBhcmFtIHRva2VuIEFjdGl2YXRpb24gdG9rZW5cbiAgICAgKi9cbiAgICBwdWJsaWMgYWN0aXZhdGVBY2NvdW50KHRva2VuOiBzdHJpbmcpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuY2FsbExpc3RNZXRob2Q8dHlwZXMuQWN0aXZhdGVBY2NvdW50UmVzcG9uc2U+KCdhY3RpdmF0ZV9hY2NvdW50Jywge3Rva2VufSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQ2hhbmdlIGN1cnJlbnQgdXNlciBwYXNzd29yZC5cbiAgICAgKlxuICAgICAqIEBwYXJhbSBvbGRQYXNzd29yZCBPbGQgcGFzc3dvcmRcbiAgICAgKiBAcGFyYW0gbmV3UGFzc3dvcmQgTmV3IHBhc3N3b3JkXG4gICAgICovXG4gICAgcHVibGljIGNoYW5nZVBhc3N3b3JkKG9sZFBhc3N3b3JkOiBzdHJpbmcsIG5ld1Bhc3N3b3JkOiBzdHJpbmcpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMucHJvZmlsZSgpLmZsYXRNYXBMYXRlc3QoKHVzZXI6IHR5cGVzLlVzZXIpID0+IHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLmNhbGxNZXRob2QodXNlci5pZCwgJ2NoYW5nZV9wYXNzd29yZCcsIHtcbiAgICAgICAgICAgICAgICBleGlzdGluZ19wYXNzd29yZDogb2xkUGFzc3dvcmQsXG4gICAgICAgICAgICAgICAgbmV3X3Bhc3N3b3JkOiBuZXdQYXNzd29yZCxcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBSZXF1ZXN0IGEgcGFzc3dvcmQgcmVzZXQgZW1haWwuXG4gICAgICpcbiAgICAgKiBAcGFyYW0gdXNlcm5hbWUgVXNlcm5hbWVcbiAgICAgKiBAcGFyYW0gY29tbXVuaXR5IE9wdGlvbmFsIGNvbW11bml0eSBuYW1lXG4gICAgICovXG4gICAgcHVibGljIHJlc2V0UGFzc3dvcmRFbWFpbCh1c2VybmFtZTogc3RyaW5nLCBjb21tdW5pdHk/OiBzdHJpbmcpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuY2FsbExpc3RNZXRob2Q8e30+KCdyZXF1ZXN0X3Bhc3N3b3JkX3Jlc2V0Jywge3VzZXJuYW1lLCBjb21tdW5pdHl9KTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBSZXNldCB1c2VyIHBhc3N3b3JkLlxuICAgICAqXG4gICAgICogQHBhcmFtIHRva2VuIFBhc3N3b3JkIHJlc2V0IHRva2VuXG4gICAgICogQHBhcmFtIHBhc3N3b3JkIE5ldyBwYXNzd29yZFxuICAgICAqL1xuICAgIHB1YmxpYyByZXNldFBhc3N3b3JkKHRva2VuOiBzdHJpbmcsIHBhc3N3b3JkOiBzdHJpbmcpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuY2FsbExpc3RNZXRob2Q8e30+KCdwYXNzd29yZF9yZXNldCcsIHt0b2tlbiwgcGFzc3dvcmR9KTtcbiAgICB9XG59XG4iXX0=

@@ -49,2 +49,1 @@ import { Query } from './rest';

}
//# sourceMappingURL=modules.d.ts.map
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9hcGkvdHlwZXMvbW9kdWxlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwiZmlsZSI6ImFwaS90eXBlcy9tb2R1bGVzLmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtRdWVyeX0gZnJvbSAnLi9yZXN0JztcblxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vLyBLbm93bGVkZ2UgYmFzZVxuXG5leHBvcnQgaW50ZXJmYWNlIEZlYXR1cmUge1xuICAgIGlkOiBzdHJpbmc7XG4gICAgc291cmNlOiBzdHJpbmc7XG4gICAgZmVhdHVyZV9pZDogc3RyaW5nO1xuICAgIHNwZWNpZXM6IHN0cmluZztcbiAgICB0eXBlOiBzdHJpbmc7XG4gICAgc3ViX3R5cGU6IHN0cmluZztcbiAgICBuYW1lOiBzdHJpbmc7XG4gICAgZnVsbF9uYW1lOiBzdHJpbmc7XG4gICAgZGVzY3JpcHRpb246IHN0cmluZztcbiAgICBhbGlhc2VzOiBzdHJpbmdbXTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBGZWF0dXJlUXVlcnkge1xuICAgIGZlYXR1cmVfaWQ6IHN0cmluZztcbiAgICBzb3VyY2U6IHN0cmluZztcbiAgICBzcGVjaWVzOiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgRmVhdHVyZXNRdWVyeSB7XG4gICAgZmVhdHVyZV9pZDogc3RyaW5nW107XG4gICAgc291cmNlOiBzdHJpbmc7XG4gICAgc3BlY2llczogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEZlYXR1cmVTZWFyY2hRdWVyeSBleHRlbmRzIFF1ZXJ5IHtcbiAgICBxdWVyeTogc3RyaW5nIHwgc3RyaW5nW107XG4gICAgc291cmNlPzogc3RyaW5nO1xuICAgIHNwZWNpZXM/OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgRmVhdHVyZUF1dG9jb21wbGV0ZVF1ZXJ5IGV4dGVuZHMgRmVhdHVyZVNlYXJjaFF1ZXJ5IHtcbiAgICBxdWVyeTogc3RyaW5nO1xufVxuXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vIEZpbGUgdXBsb2FkXG5cbi8vIFN0b3JlZCBmaWxlIGRlc2NyaXB0b3IuXG5leHBvcnQgaW50ZXJmYWNlIEZpbGVEZXNjcmlwdG9yIHtcbiAgICBmaWxlOiBzdHJpbmc7XG4gICAgaXNfcmVtb3RlPzogYm9vbGVhbjtcbiAgICBmaWxlX3RlbXA/OiBzdHJpbmc7XG4gICAgbm90ZXM/OiBzdHJpbmc7XG4gICAgc2l6ZT86IG51bWJlcjtcbiAgICByZWZzPzogc3RyaW5nW107XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgRmlsZVVwbG9hZFJlc3BvbnNlSXRlbSB7XG4gICAgZG9uZTogYm9vbGVhbjtcbiAgICBuYW1lOiBzdHJpbmc7XG4gICAgc2l6ZTogbnVtYmVyO1xuICAgIHRlbXA6IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBGaWxlVXBsb2FkUmVzcG9uc2Uge1xuICAgIGZpbGVzOiBGaWxlVXBsb2FkUmVzcG9uc2VJdGVtW107XG59XG4iXX0=
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJhcGkvdHlwZXMvbW9kdWxlcy5qcyIsInNvdXJjZXNDb250ZW50IjpbXX0=

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

/// <reference types="lodash" />
import * as Rx from 'rx';

@@ -533,2 +534,1 @@ import * as _ from 'lodash';

}
//# sourceMappingURL=rest.d.ts.map

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

//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9hcGkvdHlwZXMvcmVzdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUE7Ozs7R0FJRzs7QUFHSCwwQkFBNEI7QUEwQjVCLFNBQWdCLG1CQUFtQixDQUFJLFFBQTJCO0lBQzlELE9BQU8sUUFBUSxDQUFDLGNBQWMsQ0FBQyxTQUFTLENBQUMsQ0FBQztBQUM5QyxDQUFDO0FBRkQsa0RBRUM7QUFzQlksUUFBQSxnQkFBZ0IsR0FBb0IsT0FBTyxDQUFDO0FBQzVDLFFBQUEsZ0JBQWdCLEdBQW9CLE9BQU8sQ0FBQztBQUM1QyxRQUFBLGVBQWUsR0FBbUIsTUFBTSxDQUFDO0FBQ3pDLFFBQUEsaUJBQWlCLEdBQXFCLE1BQU0sQ0FBQztBQUM3QyxRQUFBLGNBQWMsR0FBa0IsS0FBSyxDQUFDO0FBQ3RDLFFBQUEsbUJBQW1CLEdBQXVCLFVBQVUsQ0FBQztBQUNyRCxRQUFBLGVBQWUsR0FBbUIsTUFBTSxDQUFDO0FBVXpDLFFBQUEsc0JBQXNCLEdBQXlCLFFBQVEsQ0FBQztBQUN4RCxRQUFBLHFCQUFxQixHQUF3QixPQUFPLENBQUM7QUFDckQsUUFBQSxvQkFBb0IsR0FBdUIsTUFBTSxDQUFDO0FBa0RsRCxRQUFBLHVCQUF1QixHQUEwQixLQUFLLENBQUM7QUFDdkQsUUFBQSwwQkFBMEIsR0FBNkIsS0FBSyxDQUFDO0FBQzdELFFBQUEsd0JBQXdCLEdBQTJCLEtBQUssQ0FBQztBQXlKekQsUUFBQSxxQkFBcUIsR0FBd0IsSUFBSSxDQUFDO0FBQ2xELFFBQUEscUJBQXFCLEdBQXdCLElBQUksQ0FBQztBQUNsRCxRQUFBLG1CQUFtQixHQUFzQixJQUFJLENBQUM7QUFDOUMsUUFBQSxzQkFBc0IsR0FBeUIsSUFBSSxDQUFDO0FBQ3BELFFBQUEsZ0JBQWdCLEdBQW1CLElBQUksQ0FBQztBQUN4QyxRQUFBLGlCQUFpQixHQUFvQixJQUFJLENBQUM7QUFDMUMsUUFBQSxpQkFBaUIsR0FBb0IsSUFBSSxDQUFDO0FBbUR2RCxTQUFnQixNQUFNLENBQUMsTUFBMEM7SUFDN0QsT0FBTyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsVUFBVSxFQUFFLFFBQVEsRUFBRSxTQUFTLEVBQUUsY0FBYyxFQUFFLGNBQWMsRUFBRSxPQUFPLEVBQUUsUUFBUSxFQUFFLDBCQUEwQixDQUFDLEVBQ3pILFVBQUMsUUFBUSxJQUFLLE9BQUEsTUFBTSxDQUFDLGNBQWMsQ0FBQyxRQUFRLENBQUMsRUFBL0IsQ0FBK0IsQ0FDaEQsQ0FBQztBQUNOLENBQUM7QUFKRCx3QkFJQztBQXFNRCxTQUFnQixZQUFZLENBQUMsTUFBMEM7SUFDbkUsd0VBQXdFO0lBQ3hFLDJDQUEyQztJQUMzQyxPQUFPLE1BQU0sQ0FBQyxjQUFjLENBQUMsYUFBYSxDQUFDO1FBQ3ZDLE1BQU0sQ0FBQyxjQUFjLENBQUMsVUFBVSxDQUFDO1FBQ2pDLE1BQU0sQ0FBQyxjQUFjLENBQUMsTUFBTSxDQUFDO1FBQzdCLENBQUMsTUFBTSxDQUFDLGNBQWMsQ0FBQyxzQkFBc0IsQ0FBQyxDQUFDO0FBQ3ZELENBQUM7QUFQRCxvQ0FPQztBQVVELFNBQWdCLFlBQVksQ0FBQyxNQUEwQztJQUNuRSxPQUFPLE1BQU0sQ0FBQyxjQUFjLENBQUMsYUFBYSxDQUFDO1FBQ3ZDLE1BQU0sQ0FBQyxjQUFjLENBQUMsVUFBVSxDQUFDO1FBQ2pDLE1BQU0sQ0FBQyxjQUFjLENBQUMsTUFBTSxDQUFDO1FBQzdCLE1BQU0sQ0FBQyxjQUFjLENBQUMsc0JBQXNCLENBQUMsQ0FBQztBQUN0RCxDQUFDO0FBTEQsb0NBS0MiLCJmaWxlIjoiYXBpL3R5cGVzL3Jlc3QuanMiLCJzb3VyY2VzQ29udGVudCI6WyIvKlxuICogVHlwZSBkZWZpbml0aW9uc1xuICpcbiAqIEhlcmUgaXMgZGVmaW5lZCBldmVyeXRoaW5nIHRoZSBBUEkgcmV0dXJucy5cbiAqL1xuXG5pbXBvcnQgKiBhcyBSeCBmcm9tICdyeCc7XG5pbXBvcnQgKiBhcyBfIGZyb20gJ2xvZGFzaCc7XG5cbmltcG9ydCBEaWN0aW9uYXJ5ID0gXy5EaWN0aW9uYXJ5O1xuaW1wb3J0IE51bWVyaWNEaWN0aW9uYXJ5ID0gXy5OdW1lcmljRGljdGlvbmFyeTtcblxuXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vIFF1ZXJ5XG5cbmV4cG9ydCBpbnRlcmZhY2UgUXVlcnkge1xuICAgIGxpbWl0PzogbnVtYmVyO1xuICAgIG9mZnNldD86IG51bWJlcjtcbiAgICBvcmRlcmluZz86IHN0cmluZzsgLy8gJy1maWVsZDEsLWZpZWxkMixmaWVsZDMnXG4gICAgZmllbGRzPzogc3RyaW5nO1xuICAgIFtwcm9wZXJ0eU5hbWU6IHN0cmluZ106IGFueTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBRdWVyeU9iamVjdCBleHRlbmRzIFF1ZXJ5IHtcbiAgICBkYXRhPzogXCJEaXNhbGxvdyBkZXByZWNhdGVkIGFwaS5TYW1wbGUucXVlcnlPbmUoeyBkYXRhOiBkYXRhLmlkIH0pLiBVc2UgYXBpLkRhdGEuZ2V0U2FtcGxlRnJvbURhdGFJZChkYXRhLmlkKSBpbnN0ZWFkLlwiO1xuICAgIGh5ZHJhdGVfZGF0YT86IHZvaWQ7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgUXVlcnlPYmplY3RIeWRyYXRlRGF0YSBleHRlbmRzIFF1ZXJ5IHtcbiAgICBoeWRyYXRlX2RhdGE6ICcxJztcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGlzUmVzcG9uc2VQYWdpbmF0ZWQ8VD4ocmVzcG9uc2U6IFQgfCB7IHJlc3VsdHM6IFR9KTogcmVzcG9uc2UgaXMgeyByZXN1bHRzOiBUIH0ge1xuICAgIHJldHVybiByZXNwb25zZS5oYXNPd25Qcm9wZXJ0eSgncmVzdWx0cycpO1xufVxuXG4vLyBMaW1pdE9mZnNldFBhZ2luYXRpb25cbmV4cG9ydCBpbnRlcmZhY2UgUGFnaW5hdGVkUmVzcG9uc2U8VD4ge1xuICAgIGNvdW50OiBudW1iZXI7XG4gICAgbmV4dDogc3RyaW5nO1xuICAgIHByZXZpb3VzOiBzdHJpbmc7XG4gICAgcmVzdWx0czogVFtdO1xufVxuXG5cbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLy8gUGVybWlzc2lvbnNcblxuZXhwb3J0IHR5cGUgT3duZXJQZXJtaXNzaW9uID0gJ293bmVyJztcbmV4cG9ydCB0eXBlIFNoYXJlUGVybWlzc2lvbiA9ICdzaGFyZSc7XG5leHBvcnQgdHlwZSBFZGl0UGVybWlzc2lvbiA9ICdlZGl0JztcbmV4cG9ydCB0eXBlIERlbGV0ZVBlcm1pc3Npb24gPSAnZWRpdCc7IC8vIG5vdCBhIHR5cG8gKEFQSSBkb2Vzbid0IHN1cHBvcnQgZGVsZXRlIHBlcm1pc3Npb24pXG5leHBvcnQgdHlwZSBBZGRQZXJtaXNzaW9uID0gJ2FkZCc7XG5leHBvcnQgdHlwZSBEb3dubG9hZFBlcm1pc3Npb24gPSAnZG93bmxvYWQnO1xuZXhwb3J0IHR5cGUgVmlld1Blcm1pc3Npb24gPSAndmlldyc7XG5cbmV4cG9ydCBjb25zdCBPV05FUl9QRVJNSVNTSU9OOiBPd25lclBlcm1pc3Npb24gPSAnb3duZXInO1xuZXhwb3J0IGNvbnN0IFNIQVJFX1BFUk1JU1NJT046IFNoYXJlUGVybWlzc2lvbiA9ICdzaGFyZSc7XG5leHBvcnQgY29uc3QgRURJVF9QRVJNSVNTSU9OOiBFZGl0UGVybWlzc2lvbiA9ICdlZGl0JztcbmV4cG9ydCBjb25zdCBERUxFVEVfUEVSTUlTU0lPTjogRGVsZXRlUGVybWlzc2lvbiA9ICdlZGl0JztcbmV4cG9ydCBjb25zdCBBRERfUEVSTUlTU0lPTjogQWRkUGVybWlzc2lvbiA9ICdhZGQnO1xuZXhwb3J0IGNvbnN0IERPV05MT0FEX1BFUk1JU1NJT046IERvd25sb2FkUGVybWlzc2lvbiA9ICdkb3dubG9hZCc7XG5leHBvcnQgY29uc3QgVklFV19QRVJNSVNTSU9OOiBWaWV3UGVybWlzc2lvbiA9ICd2aWV3JztcblxuZXhwb3J0IHR5cGUgUGVybWlzc2lvbiA9IE93bmVyUGVybWlzc2lvbiB8IFNoYXJlUGVybWlzc2lvbiB8IEVkaXRQZXJtaXNzaW9uIHwgRGVsZXRlUGVybWlzc2lvbiB8IEFkZFBlcm1pc3Npb24gfFxuICAgIERvd25sb2FkUGVybWlzc2lvbiB8IFZpZXdQZXJtaXNzaW9uO1xuXG5cbmV4cG9ydCB0eXBlIFB1YmxpY1Blcm1pc3Npb25UeXBlID0gJ3B1YmxpYyc7XG5leHBvcnQgdHlwZSBHcm91cFBlcm1pc3Npb25UeXBlID0gJ2dyb3VwJztcbmV4cG9ydCB0eXBlIFVzZXJQZXJtaXNzaW9uVHlwZSA9ICd1c2VyJztcblxuZXhwb3J0IGNvbnN0IFBVQkxJQ19QRVJNSVNTSU9OX1RZUEU6IFB1YmxpY1Blcm1pc3Npb25UeXBlID0gJ3B1YmxpYyc7XG5leHBvcnQgY29uc3QgR1JPVVBfUEVSTUlTU0lPTl9UWVBFOiBHcm91cFBlcm1pc3Npb25UeXBlID0gJ2dyb3VwJztcbmV4cG9ydCBjb25zdCBVU0VSX1BFUk1JU1NJT05fVFlQRTogVXNlclBlcm1pc3Npb25UeXBlID0gJ3VzZXInO1xuXG5leHBvcnQgdHlwZSBQZXJtaXNzaW9uVHlwZSA9IFB1YmxpY1Blcm1pc3Npb25UeXBlIHwgR3JvdXBQZXJtaXNzaW9uVHlwZSB8IFVzZXJQZXJtaXNzaW9uVHlwZTtcblxuZXhwb3J0IGludGVyZmFjZSBJdGVtUGVybWlzc2lvbnNPZjxUPiB7XG4gICAgdHlwZTogUGVybWlzc2lvblR5cGU7XG4gICAgcGVybWlzc2lvbnM6IFRbXTtcbiAgICBpZD86IG51bWJlcjtcbiAgICBuYW1lPzogc3RyaW5nO1xufVxuXG5leHBvcnQgdHlwZSBJdGVtUGVybWlzc2lvbnMgPSBJdGVtUGVybWlzc2lvbnNPZjxQZXJtaXNzaW9uPjtcblxuZXhwb3J0IGludGVyZmFjZSBTZXRQZXJtaXNzaW9uc1JlcXVlc3Qge1xuICAgIHB1YmxpYz86IHtcbiAgICAgICAgYWRkPzogUGVybWlzc2lvbltdLFxuICAgICAgICByZW1vdmU/OiBQZXJtaXNzaW9uW11cbiAgICB9O1xuICAgIGdyb3Vwcz86IHtcbiAgICAgICAgYWRkPzogTnVtZXJpY0RpY3Rpb25hcnk8UGVybWlzc2lvbltdPiB8IERpY3Rpb25hcnk8UGVybWlzc2lvbltdPlxuICAgICAgICByZW1vdmU/OiBOdW1lcmljRGljdGlvbmFyeTxQZXJtaXNzaW9uW10+IHwgRGljdGlvbmFyeTxQZXJtaXNzaW9uW10+XG4gICAgfTtcbiAgICB1c2Vycz86IHtcbiAgICAgICAgYWRkPzogTnVtZXJpY0RpY3Rpb25hcnk8UGVybWlzc2lvbltdPiB8IERpY3Rpb25hcnk8UGVybWlzc2lvbltdPlxuICAgICAgICByZW1vdmU/OiBOdW1lcmljRGljdGlvbmFyeTxQZXJtaXNzaW9uW10+IHwgRGljdGlvbmFyeTxQZXJtaXNzaW9uW10+XG4gICAgfTtcbiAgICBzaGFyZV9jb250ZW50PzogJzAnIHwgJzEnO1xufVxuXG5cbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLy8gQ29udHJpYnV0b3JcblxuZXhwb3J0IGludGVyZmFjZSBDb250cmlidXRvciB7XG4gICAgaWQ6IG51bWJlcjtcbiAgICB1c2VybmFtZTogc3RyaW5nO1xuICAgIGZpcnN0X25hbWU6IHN0cmluZztcbiAgICBsYXN0X25hbWU6IHN0cmluZztcbn1cblxuXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vIFByb2Nlc3NcblxuZXhwb3J0IHR5cGUgUHJvY2Vzc1Blcm1pc3Npb25zID0gVmlld1Blcm1pc3Npb24gfCBTaGFyZVBlcm1pc3Npb247XG5cbmV4cG9ydCB0eXBlIFJhd1Byb2Nlc3NQZXJzaXN0ZW5jZSA9ICdSQVcnO1xuZXhwb3J0IHR5cGUgQ2FjaGVkUHJvY2Vzc1BlcnNpc3RlbmNlID0gJ0NBQyc7XG5leHBvcnQgdHlwZSBUZW1wUHJvY2Vzc1BlcnNpc3RlbmNlID0gJ1RNUCc7XG5cbmV4cG9ydCBjb25zdCBSQVdfUFJPQ0VTU19QRVJTSVNURU5DRTogUmF3UHJvY2Vzc1BlcnNpc3RlbmNlID0gJ1JBVyc7XG5leHBvcnQgY29uc3QgQ0FDSEVEX1BST0NFU1NfUEVSU0lTVEVOQ0U6IENhY2hlZFByb2Nlc3NQZXJzaXN0ZW5jZSA9ICdDQUMnO1xuZXhwb3J0IGNvbnN0IFRFTVBfUFJPQ0VTU19QRVJTSVNURU5DRTogVGVtcFByb2Nlc3NQZXJzaXN0ZW5jZSA9ICdUTVAnO1xuXG5leHBvcnQgdHlwZSBQcm9jZXNzUGVyc2lzdGVuY2UgPSBSYXdQcm9jZXNzUGVyc2lzdGVuY2UgfCBDYWNoZWRQcm9jZXNzUGVyc2lzdGVuY2UgfCBUZW1wUHJvY2Vzc1BlcnNpc3RlbmNlO1xuXG5leHBvcnQgaW50ZXJmYWNlIFByb2Nlc3Mge1xuICAgIGlkOiBudW1iZXI7XG4gICAgc2x1Zzogc3RyaW5nO1xuICAgIG5hbWU6IHN0cmluZztcbiAgICBjcmVhdGVkOiBzdHJpbmc7XG4gICAgbW9kaWZpZWQ6IHN0cmluZztcbiAgICB2ZXJzaW9uOiBzdHJpbmc7XG4gICAgdHlwZTogc3RyaW5nO1xuICAgIGNhdGVnb3J5OiBzdHJpbmc7XG4gICAgcGVyc2lzdGVuY2U6IFByb2Nlc3NQZXJzaXN0ZW5jZTtcbiAgICBkZXNjcmlwdGlvbjogc3RyaW5nO1xuICAgIGlucHV0X3NjaGVtYTogYW55O1xuICAgIG91dHB1dF9zY2hlbWE6IGFueTtcbiAgICBydW46IGFueTtcbiAgICBjb250cmlidXRvcjogQ29udHJpYnV0b3I7XG4gICAgY3VycmVudF91c2VyX3Blcm1pc3Npb25zOiBJdGVtUGVybWlzc2lvbnNPZjxQcm9jZXNzUGVybWlzc2lvbnM+W107XG59XG5cbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLy8gUmVsYXRpb25cblxuZXhwb3J0IGludGVyZmFjZSBSZWxhdGlvblBhcnRpdGlvbiB7XG4gICAgaWQ6IG51bWJlcjtcbiAgICBlbnRpdHk6IG51bWJlcjtcbiAgICBwb3NpdGlvbjogbnVtYmVyIHwgbnVsbDtcbiAgICBsYWJlbDogc3RyaW5nIHwgbnVsbDtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBSZWxhdGlvbiB7XG4gICAgaWQ6IG51bWJlcjtcbiAgICBzbHVnOiBzdHJpbmc7XG4gICAgY3JlYXRlZDogc3RyaW5nO1xuICAgIG1vZGlmaWVkOiBzdHJpbmc7XG4gICAgdHlwZTogc3RyaW5nO1xuICAgIGNvbGxlY3Rpb246IG51bWJlcjtcbiAgICBwYXJ0aXRpb25zOiBSZWxhdGlvblBhcnRpdGlvbltdO1xuICAgIGNhdGVnb3J5OiBzdHJpbmc7XG4gICAgdW5pdDogJ3MnIHwgJ21pbicgfCAnaHInIHwgJ2QnIHwgJ3drJyB8IG51bGw7XG4gICAgY29udHJpYnV0b3I6IENvbnRyaWJ1dG9yO1xufVxuXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vIERlc2NyaXB0b3JTY2hlbWFcblxuLy8gU2NoZW1hXG5leHBvcnQgaW50ZXJmYWNlIENob2ljZU1hcCB7XG4gICAgdmFsdWU6IHN0cmluZztcbiAgICBsYWJlbDogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEZpZWxkU2NoZW1hIHtcbiAgICBkaXNhYmxlZD86IGJvb2xlYW4gfCBzdHJpbmc7XG4gICAgcmVxdWlyZWQ/OiBib29sZWFuO1xuICAgIGNvbGxhcHNlZD86IGJvb2xlYW47XG4gICAgaGlkZGVuPzogYm9vbGVhbiB8IHN0cmluZztcbiAgICBkZWZhdWx0PzogYW55O1xuICAgIGNob2ljZXM/OiBDaG9pY2VNYXBbXTtcbiAgICBhbGxvd19jdXN0b21fY2hvaWNlPzogYm9vbGVhbjtcbiAgICB2YWxpZGF0ZV9yZWdleD86IHN0cmluZztcbiAgICBzbHVnPzoge1xuICAgICAgICBzb3VyY2U/OiBzdHJpbmc7XG4gICAgICAgIHVuaXF1ZVZhbGlkYXRvcj86IChzbHVnOiBzdHJpbmcpID0+IFJ4Lk9ic2VydmFibGU8Ym9vbGVhbj47XG4gICAgfTtcbiAgICB0eXBlOiBzdHJpbmc7XG4gICAgbmFtZTogc3RyaW5nO1xuICAgIGxhYmVsOiBzdHJpbmc7XG4gICAgZ3JvdXA/OiBTY2hlbWE7XG59XG5cbmV4cG9ydCB0eXBlIFNjaGVtYSA9IEZpZWxkU2NoZW1hW107XG5cblxuLy8gRGVzY3JpcHRvclNjaGVtYVxuZXhwb3J0IHR5cGUgRGVzY3JpcHRvclNjaGVtYVBlcm1pc3Npb25zID0gVmlld1Blcm1pc3Npb24gfCBFZGl0UGVybWlzc2lvbiB8IFNoYXJlUGVybWlzc2lvbjtcblxuZXhwb3J0IGludGVyZmFjZSBEZXNjcmlwdG9yU2NoZW1hQmFzZSB7XG4gICAgaWQ6IG51bWJlcjtcbiAgICBjcmVhdGVkOiBzdHJpbmc7XG4gICAgbW9kaWZpZWQ6IHN0cmluZztcbiAgICBzbHVnOiBzdHJpbmc7XG4gICAgbmFtZTogc3RyaW5nO1xuICAgIHZlcnNpb246IHN0cmluZztcbiAgICBzY2hlbWE6IFNjaGVtYTtcbiAgICBjb250cmlidXRvcjogQ29udHJpYnV0b3I7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgRGVzY3JpcHRvclNjaGVtYSBleHRlbmRzIERlc2NyaXB0b3JTY2hlbWFCYXNlIHtcbiAgICBjdXJyZW50X3VzZXJfcGVybWlzc2lvbnM6IEl0ZW1QZXJtaXNzaW9uc09mPERlc2NyaXB0b3JTY2hlbWFQZXJtaXNzaW9ucz5bXTtcbn1cblxuXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vIFNjYXR0ZXIgUGxvdCBKc29uXG5cbi8vIFNjYXR0ZXJQbG90SnNvbi5Sb290T2JqZWN0IGlzIGEgdHlwZSBvZiBwcm9jZXNzIG91dHB1dC4gUHJvY2Vzc2VzIChpLmUuIFJvc2UyKVxuLy8gc2F2ZSBpdCB0byBkYXRhLm91dHB1dC5zY2F0dGVyX3Bsb3QuXG5leHBvcnQgbmFtZXNwYWNlIFNjYXR0ZXJQbG90SnNvbiB7XG5cbiAgICBleHBvcnQgaW50ZXJmYWNlIFJvb3RPYmplY3QgeyAvLyBUaGlzIGlzIHRoZSBhY3R1YWwgdHlwZSBvZiB0aGUganNvbiBvdXRwdXRcbiAgICAgICAgcG9pbnRzOiBQb2ludHM7XG4gICAgICAgIG1ldGE/OiBNZXRhO1xuICAgICAgICBhbm5vdGF0aW9ucz86IEFubm90YXRpb25bXTtcbiAgICB9XG5cbiAgICBleHBvcnQgaW50ZXJmYWNlIFBvaW50cyB7XG4gICAgICAgIHhfYXhpczogbnVtYmVyW107XG4gICAgICAgIHlfYXhpczogbnVtYmVyW107XG4gICAgICAgIGl0ZW1zPzogYW55W107XG4gICAgfVxuXG4gICAgZXhwb3J0IGludGVyZmFjZSBNZXRhIHtcbiAgICAgICAgeF9sYWJlbD86IHN0cmluZztcbiAgICAgICAgeV9sYWJlbD86IHN0cmluZztcbiAgICAgICAgdGV4dD86IHN0cmluZztcbiAgICAgICAgY2hyX3Bvcz86IHN0cmluZ1tdO1xuICAgIH1cblxuICAgIGV4cG9ydCB0eXBlIEFubm90YXRpb24gPSBBbm5vdGF0aW9uTGluZUdlbmVyYWwgfCBBbm5vdGF0aW9uTGluZVZlcnRpY2FsIHwgQW5ub3RhdGlvbkxpbmVIb3Jpem9udGFsO1xuXG4gICAgZXhwb3J0IGludGVyZmFjZSBBbm5vdGF0aW9uTGluZUdlbmVyYWwge1xuICAgICAgICB0eXBlOiAnbGluZSc7XG4gICAgICAgIHgxOiBudW1iZXI7XG4gICAgICAgIHgyOiBudW1iZXI7XG4gICAgICAgIHkxOiBudW1iZXI7XG4gICAgICAgIHkyOiBudW1iZXI7XG4gICAgfVxuICAgIGV4cG9ydCBpbnRlcmZhY2UgQW5ub3RhdGlvbkxpbmVWZXJ0aWNhbCB7XG4gICAgICAgIHR5cGU6ICdsaW5lX3ZlcnRpY2FsJztcbiAgICAgICAgeDogbnVtYmVyO1xuICAgIH1cbiAgICBleHBvcnQgaW50ZXJmYWNlIEFubm90YXRpb25MaW5lSG9yaXpvbnRhbCB7XG4gICAgICAgIHR5cGU6ICdsaW5lX2hvcml6b250YWwnO1xuICAgICAgICB5OiBudW1iZXI7XG4gICAgfVxufVxuXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vIERhdGFcblxuZXhwb3J0IHR5cGUgRGF0YVBlcm1pc3Npb25zID0gVmlld1Blcm1pc3Npb24gfCBFZGl0UGVybWlzc2lvbiB8IFNoYXJlUGVybWlzc2lvbiB8IERvd25sb2FkUGVybWlzc2lvbjtcblxuZXhwb3J0IHR5cGUgVXBsb2FkaW5nRGF0YVN0YXR1cyA9ICdVUCc7XG5leHBvcnQgdHlwZSBSZXNvbHZpbmdEYXRhU3RhdHVzID0gJ1JFJztcbmV4cG9ydCB0eXBlIFdhaXRpbmdEYXRhU3RhdHVzID0gJ1dUJztcbmV4cG9ydCB0eXBlIFByb2Nlc3NpbmdEYXRhU3RhdHVzID0gJ1BSJztcbmV4cG9ydCB0eXBlIERvbmVEYXRhU3RhdHVzID0gJ09LJztcbmV4cG9ydCB0eXBlIEVycm9yRGF0YVN0YXR1cyA9ICdFUic7XG5leHBvcnQgdHlwZSBEaXJ0eURhdGFTdGF0dXMgPSAnRFInO1xuXG5leHBvcnQgY29uc3QgVVBMT0FESU5HX0RBVEFfU1RBVFVTOiBVcGxvYWRpbmdEYXRhU3RhdHVzID0gJ1VQJztcbmV4cG9ydCBjb25zdCBSRVNPTFZJTkdfREFUQV9TVEFUVVM6IFJlc29sdmluZ0RhdGFTdGF0dXMgPSAnUkUnO1xuZXhwb3J0IGNvbnN0IFdBSVRJTkdfREFUQV9TVEFUVVM6IFdhaXRpbmdEYXRhU3RhdHVzID0gJ1dUJztcbmV4cG9ydCBjb25zdCBQUk9DRVNTSU5HX0RBVEFfU1RBVFVTOiBQcm9jZXNzaW5nRGF0YVN0YXR1cyA9ICdQUic7XG5leHBvcnQgY29uc3QgRE9ORV9EQVRBX1NUQVRVUzogRG9uZURhdGFTdGF0dXMgPSAnT0snO1xuZXhwb3J0IGNvbnN0IEVSUk9SX0RBVEFfU1RBVFVTOiBFcnJvckRhdGFTdGF0dXMgPSAnRVInO1xuZXhwb3J0IGNvbnN0IERJUlRZX0RBVEFfU1RBVFVTOiBEaXJ0eURhdGFTdGF0dXMgPSAnRFInO1xuXG5leHBvcnQgdHlwZSBEYXRhU3RhdHVzID0gVXBsb2FkaW5nRGF0YVN0YXR1cyB8IFJlc29sdmluZ0RhdGFTdGF0dXMgfCBXYWl0aW5nRGF0YVN0YXR1cyB8IFByb2Nlc3NpbmdEYXRhU3RhdHVzIHxcbiAgICBEb25lRGF0YVN0YXR1cyB8IEVycm9yRGF0YVN0YXR1cyB8IERpcnR5RGF0YVN0YXR1cztcblxuZXhwb3J0IGludGVyZmFjZSBEYXRhQmFzZSB7XG4gICAgaWQ6IG51bWJlcjtcbiAgICBjcmVhdGVkOiBzdHJpbmc7XG4gICAgbW9kaWZpZWQ6IHN0cmluZztcbiAgICBzdGFydGVkOiBzdHJpbmc7XG4gICAgZmluaXNoZWQ6IHN0cmluZztcbiAgICBjaGVja3N1bTogc3RyaW5nO1xuICAgIHN0YXR1czogRGF0YVN0YXR1cztcbiAgICBwcm9jZXNzX3Byb2dyZXNzOiBudW1iZXI7XG4gICAgcHJvY2Vzc19yYzogbnVtYmVyO1xuICAgIHByb2Nlc3NfaW5mbzogc3RyaW5nW107XG4gICAgcHJvY2Vzc193YXJuaW5nOiBzdHJpbmdbXTtcbiAgICBwcm9jZXNzX2Vycm9yOiBzdHJpbmdbXTtcbiAgICBwcm9jZXNzX3R5cGU6IHN0cmluZztcbiAgICBwcm9jZXNzX2lucHV0X3NjaGVtYTogYW55O1xuICAgIHByb2Nlc3Nfb3V0cHV0X3NjaGVtYTogYW55O1xuICAgIHByb2Nlc3Nfc2x1Zzogc3RyaW5nO1xuICAgIHByb2Nlc3NfbmFtZTogc3RyaW5nO1xuICAgIHNsdWc6IHN0cmluZztcbiAgICBuYW1lOiBzdHJpbmc7XG4gICAgaW5wdXQ6IGFueTtcbiAgICBvdXRwdXQ6IGFueTtcbiAgICBkZXNjcmlwdG9yX3NjaGVtYTogRGVzY3JpcHRvclNjaGVtYUJhc2U7XG4gICAgZGVzY3JpcHRvcjogYW55O1xuICAgIGNvbnRyaWJ1dG9yOiBDb250cmlidXRvcjtcbiAgICBwcm9jZXNzOiBudW1iZXI7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgRGF0YSBleHRlbmRzIERhdGFCYXNlIHtcbiAgICBjdXJyZW50X3VzZXJfcGVybWlzc2lvbnM6IEl0ZW1QZXJtaXNzaW9uc09mPERhdGFQZXJtaXNzaW9ucz5bXTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBTaW5nbGVEYXRhT2JqZWN0UGFyYW1zIHtcbiAgICBoeWRyYXRlX2NvbGxlY3Rpb25zPzogJzEnIHwgdm9pZDtcbiAgICBoeWRyYXRlX2VudGl0aWVzPzogJzEnIHwgdm9pZDtcbn1cblxuLyoqXG4gKiBUaGlzIHNob3VsZCBuZXZlciBiZSB1c2VkIHRvIGxpc3RzIG9mIGRhdGEgb2JqZWN0cy5cbiAqL1xuZXhwb3J0IHR5cGUgU2luZ2xlRGF0YU9iamVjdDxRIGV4dGVuZHMgU2luZ2xlRGF0YU9iamVjdFBhcmFtcz4gPVxuICAgIFEgZXh0ZW5kcyB7IGh5ZHJhdGVfY29sbGVjdGlvbnM6ICcxJywgaHlkcmF0ZV9lbnRpdGllczogJzEnIH0gPyBEYXRhICYgeyBjb2xsZWN0aW9uczogQ29sbGVjdGlvbltdLCBlbnRpdGllczogKFNhbXBsZSB8IFByZXNhbXBsZSlbXSB9IDpcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIFEgZXh0ZW5kcyB7IGh5ZHJhdGVfY29sbGVjdGlvbnM6ICcxJyB9ID8gRGF0YSAmIHsgY29sbGVjdGlvbnM6IENvbGxlY3Rpb25bXSwgZW50aXRpZXM6IG51bWJlcltdIH0gOlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUSBleHRlbmRzIHsgaHlkcmF0ZV9lbnRpdGllczogJzEnIH0gPyBEYXRhICYgeyBjb2xsZWN0aW9uczogbnVtYmVyW10sIGVudGl0aWVzOiAoU2FtcGxlIHwgUHJlc2FtcGxlKVtdIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogRGF0YSAmIHsgY29sbGVjdGlvbnM6IG51bWJlcltdLCBlbnRpdGllczogbnVtYmVyW10gfTtcblxuZXhwb3J0IGZ1bmN0aW9uIGlzRGF0YShvYmplY3Q6IENvbGxlY3Rpb25CYXNlIHwgU2FtcGxlQmFzZSB8IERhdGEpOiBvYmplY3QgaXMgRGF0YSB7XG4gICAgcmV0dXJuIF8uYWxsKFsnY2hlY2tzdW0nLCAnc3RhdHVzJywgJ3Byb2Nlc3MnLCAncHJvY2Vzc19uYW1lJywgJ3Byb2Nlc3NfdHlwZScsICdpbnB1dCcsICdvdXRwdXQnLCAnY3VycmVudF91c2VyX3Blcm1pc3Npb25zJ10sXG4gICAgICAgIChwcm9wZXJ0eSkgPT4gb2JqZWN0Lmhhc093blByb3BlcnR5KHByb3BlcnR5KVxuICAgICk7XG59XG5cbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLy8gZGF0YTpkaWZmZXJlbnRpYWxleHByZXNzaW9uOlxuXG5leHBvcnQgaW50ZXJmYWNlIERhdGFEaWZmZXJlbnRpYWxFeHByZXNzaW9uIGV4dGVuZHMgRGF0YSB7XG4gICAgb3V0cHV0OiB7XG4gICAgICAgIGRlX2ZpbGU6IHsgZmlsZTogc3RyaW5nLCBzaXplOiBudW1iZXIgfTtcbiAgICAgICAgcmF3OiB7IGZpbGU6IHN0cmluZywgc2l6ZTogbnVtYmVyIH07XG4gICAgICAgIGRlX2pzb246IG51bWJlcjtcbiAgICAgICAgc291cmNlOiBzdHJpbmc7XG4gICAgICAgIHNwZWNpZXM6IHN0cmluZztcbiAgICB9O1xufVxuXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vIGRhdGE6Z2VuZXNldDpcblxuZXhwb3J0IGludGVyZmFjZSBEYXRhR2VuZXNldE91dHB1dCB7XG4gICAgZ2VuZXNldDogeyBmaWxlOiBzdHJpbmcsIHNpemU6IG51bWJlciB9O1xuICAgIGdlbmVzZXRfanNvbjogbnVtYmVyOyAvLyA9PiBEYXRhR2VuZXNldFN0b3JhZ2VcbiAgICBzb3VyY2U6IHN0cmluZztcbiAgICBzcGVjaWVzOiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgRGF0YUdlbmVzZXQgZXh0ZW5kcyBEYXRhIHtcbiAgICBvdXRwdXQ6IERhdGFHZW5lc2V0T3V0cHV0O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIERhdGFHZW5lc2V0U3RvcmFnZSBleHRlbmRzIFN0b3JhZ2Uge1xuICAgIGpzb246IHtcbiAgICAgICAgZ2VuZXM6IHN0cmluZ1tdO1xuICAgIH07XG59XG5cbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLy8gZGF0YTpnZW5lc2V0OnZlbm46XG5cbmV4cG9ydCBpbnRlcmZhY2UgRGF0YUdlbmVzZXRWZW5uT3V0cHV0IGV4dGVuZHMgRGF0YUdlbmVzZXRPdXRwdXQge1xuICAgIHZlbm46IG51bWJlcjsgLy8gPT4gRGF0YUdlbmVzZXRWZW5uU3RvcmFnZVxufVxuXG5leHBvcnQgaW50ZXJmYWNlIERhdGFHZW5lc2V0VmVubiBleHRlbmRzIERhdGFHZW5lc2V0IHtcbiAgICBvdXRwdXQ6IERhdGFHZW5lc2V0VmVubk91dHB1dDtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBEYXRhR2VuZXNldFZlbm5TdG9yYWdlIGV4dGVuZHMgU3RvcmFnZSB7XG4gICAganNvbjoge1xuICAgICAgICBwYXJlbnRzOiBBcnJheTx7XG4gICAgICAgICAgICBpZDogbnVtYmVyO1xuICAgICAgICAgICAgbmFtZTogc3RyaW5nO1xuICAgICAgICAgICAgZ2VuZXM6IHN0cmluZ1tdOyAvLyBnZW5lc2V0X2pzb24gLiBnZW5lc1xuICAgICAgICB9PjtcbiAgICB9O1xufVxuXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vIGRhdGE6Z29lYTogR2VuZSBPbnRvbG9neVxuXG5leHBvcnQgaW50ZXJmYWNlIERhdGFHT0VucmljaG1lbnRBbmFseXNpcyBleHRlbmRzIERhdGEge1xuICAgIG91dHB1dDoge1xuICAgICAgICB0ZXJtczogbnVtYmVyOyAvLyA9PiBEYXRhR09FbnJpY2htZW50QW5hbHlzaXNTdG9yYWdlXG4gICAgICAgIHNvdXJjZTogc3RyaW5nO1xuICAgICAgICBzcGVjaWVzOiBzdHJpbmc7XG4gICAgfTtcbn1cblxuZXhwb3J0IHR5cGUgR09FbnJpY2htZW50QXNwZWN0ID0gR09FbnJpY2htZW50Tm9kZVtdO1xuZXhwb3J0IGludGVyZmFjZSBHT0VucmljaG1lbnRKc29uIHtcbiAgICB0b3RhbF9nZW5lczogbnVtYmVyO1xuICAgIGdlbmVfYXNzb2NpYXRpb25zOiB7XG4gICAgICAgIFtnb1Rlcm1JZDogc3RyaW5nXTogc3RyaW5nW107IC8vIHRlcm1faWQgPT4gZ2VuZV9pZHNcbiAgICB9O1xuICAgIHRyZWU6IHtcbiAgICAgICAgW2FzcGVjdFNsdWc6IHN0cmluZ106IEdPRW5yaWNobWVudEFzcGVjdCwgLy8gXCJCUFwiIHwgXCJDQ1wiIHwgXCJNRlwiXG4gICAgfTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBHT0VucmljaG1lbnROb2RlIHtcbiAgICBnZW5lX2lkczogc3RyaW5nW107XG4gICAgdGVybV9uYW1lOiBzdHJpbmc7XG4gICAgdGVybV9pZDogc3RyaW5nO1xuICAgIHB2YWw6IG51bWJlcjtcbiAgICBzY29yZTogbnVtYmVyO1xuICAgIG1hdGNoZWQ6IG51bWJlcjsgLy8gTnVtYmVyIG9mIGZvdW5kIGVsZW1lbnRzIGluIGEgc2luZ2xlIG5vZGUuXG4gICAgdG90YWw6IG51bWJlcjsgLy8gVG90YWwgbnVtYmVyIG9mIGVsZW1lbnRzIChpbmNsdWRpbmcgY2hpbGRyZW4gbm9kZXMpIGluIGEgc2luZ2xlIG5vZGUuXG4gICAgY2hpbGRyZW4/OiBHT0VucmljaG1lbnROb2RlW107XG5cbiAgICAvLyBBZGRlZCBieSBmcm9udGVuZDpcbiAgICBkZXB0aD86IG51bWJlcjsgLy8gTnVtZXJpY2FsIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBsZXZlbCBvZiBkZXB0aC4gVXNlZCBmb3Igb2Zmc2V0dGluZyB0aGUgdGVybSBjb2x1bW4uXG4gICAgc291cmNlPzogc3RyaW5nO1xuICAgIHNwZWNpZXM/OiBzdHJpbmc7XG4gICAgc2NvcmVfcGVyY2VudGFnZT86IG51bWJlcjsgLy8gUGVyY2VudGFnZSBvZiBtYXggc2NvcmUgd2l0aGluIEdPRW5yaWNobWVudEFzcGVjdC5cbiAgICBnZW5lX2Fzc29jaWF0aW9ucz86IHN0cmluZ1tdOyAvLyBQbHVja2VkIGZyb20gR09FbnJpY2htZW50SnNvbi5nZW5lX2Fzc29jaWF0aW9ucy5cbiAgICBjb2xsYXBzZWQ/OiBib29sZWFuOyAvLyBCb29sZWFuIHJlcHJlc2VudGF0aW9uIGlmIHRoZSBzZWxlY3RlZCBpdGVtIGlzIGhpZGRlbi5cbn1cblxuZXhwb3J0IGludGVyZmFjZSBEYXRhR09FbnJpY2htZW50QW5hbHlzaXNTdG9yYWdlIGV4dGVuZHMgU3RvcmFnZSB7XG4gICAganNvbjogR09FbnJpY2htZW50SnNvbjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBEYXRhR09FbnJpY2htZW50QW5hbHlzaXNJbnB1dCB7XG4gICAgcHZhbF90aHJlc2hvbGQ6IG51bWJlcjtcbiAgICBnZW5lczogc3RyaW5nW107XG4gICAgc291cmNlOiBzdHJpbmc7XG4gICAgc3BlY2llczogc3RyaW5nO1xuICAgIG9udG9sb2d5OiBudW1iZXI7XG4gICAgZ2FmOiBudW1iZXI7XG59XG5cbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLy8gZGF0YTpnYWY6IEdBRiBhbm5vdGF0aW9uXG5cbmV4cG9ydCBpbnRlcmZhY2UgRGF0YUdhZkFubm90YXRpb24gZXh0ZW5kcyBEYXRhIHtcbiAgICBvdXRwdXQ6IHtcbiAgICAgICAgc291cmNlOiBzdHJpbmc7XG4gICAgICAgIHNwZWNpZXM6IHN0cmluZztcbiAgICAgICAgZ2FmOiB7IGZpbGU6IHN0cmluZywgc2l6ZTogbnVtYmVyIH07XG4gICAgICAgIGdhZl9vYmo6IHsgZmlsZTogc3RyaW5nLCBzaXplOiBudW1iZXIgfTtcbiAgICB9O1xufVxuXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vIGRhdGE6dmFyaWFudHRhYmxlOlxuXG5leHBvcnQgaW50ZXJmYWNlIERhdGFWYXJpYW50QW1wbGljb25UYWJsZSBleHRlbmRzIERhdGEge1xuICAgIGlucHV0OiB7XG4gICAgICAgIG1hc3Rlcl9maWxlOiBudW1iZXI7IC8vIGRhdGEgSURcbiAgICAgICAgY292ZXJhZ2U6IG51bWJlcjsgLy8gZGF0YSBJRFxuICAgICAgICBhbm5vdF92YXJzOiBudW1iZXJbXTsgLy8gZGF0YSBJRHNcbiAgICAgICAgYWxsX2FtcGxpY29uczogYm9vbGVhbjtcbiAgICAgICAgdGFibGVfbmFtZTogc3RyaW5nO1xuICAgIH07XG4gICAgb3V0cHV0OiB7XG4gICAgICAgIHZhcmlhbnRfdGFibGU6IG51bWJlcjsgLy8gPT4gRGF0YVZhcmlhbnRUYWJsZVN0b3JhZ2VcbiAgICB9O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIERhdGFWYXJpYW50VExBVGFibGUgZXh0ZW5kcyBEYXRhIHtcbiAgICBpbnB1dDoge1xuICAgICAgICB0bGFfcmVzdWx0czogbnVtYmVyOyAvLyBkYXRhIElEXG4gICAgfTtcbiAgICBvdXRwdXQ6IHtcbiAgICAgICAgdmFyaWFudF90YWJsZTogbnVtYmVyOyAvLyA9PiBEYXRhVmFyaWFudFRhYmxlU3RvcmFnZVxuICAgICAgICBzcGVjaWVzOiBzdHJpbmc7XG4gICAgICAgIGJ1aWxkOiBzdHJpbmc7XG4gICAgfTtcbn1cblxuZXhwb3J0IHR5cGUgRGF0YVZhcmlhbnRUYWJsZSA9IERhdGFWYXJpYW50QW1wbGljb25UYWJsZSB8IERhdGFWYXJpYW50VExBVGFibGU7XG5cbmV4cG9ydCB0eXBlIERhdGFWYXJpYW50VGFibGVKc29uVmFsdWVDb2x1bW4gPSBzdHJpbmc7IC8vIEV4YW1wbGU6IE1TSDZfZXhvbjVfRjEvMlxuZXhwb3J0IHR5cGUgRGF0YVZhcmlhbnRUYWJsZUpzb25EZWxpbWl0ZWRDb2x1bW4gPSBzdHJpbmc7IC8vIEV4YW1wbGU6IERQND00Niw0MSwxMSwxNjtTQj00XG5leHBvcnQgdHlwZSBEYXRhVmFyaWFudFRhYmxlSnNvblVybHNDb2x1bW4gPSBbc3RyaW5nLCBzdHJpbmddW107IC8vIEV4YW1wbGU6IFtbJ0dlbmUnLCAnaHR0cDovL3d3dy5uY2JpLm5sbS5uaWguZ292L2dlbmUvP3Rlcm09Z2VuZSddXVxuZXhwb3J0IHR5cGUgRGF0YVZhcmlhbnRUYWJsZUpzb25Db2x1bW4gPSBEYXRhVmFyaWFudFRhYmxlSnNvblZhbHVlQ29sdW1uIHxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRGF0YVZhcmlhbnRUYWJsZUpzb25EZWxpbWl0ZWRDb2x1bW4gfFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBEYXRhVmFyaWFudFRhYmxlSnNvblVybHNDb2x1bW47XG5leHBvcnQgaW50ZXJmYWNlIERhdGFWYXJpYW50VGFibGVSb3cge1xuICAgIGNvbHVtbnM6IERhdGFWYXJpYW50VGFibGVKc29uQ29sdW1uW107XG4gICAgcG9zOiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgRGF0YVZhcmlhbnRUYWJsZUpzb24geyAvLyBhcGktdHlwZWNoZWNrOmFtcGxpY29uX3RhYmxlX291dHB1dC5qc29uLmd6XG4gICAgY29sdW1uX3R5cGVzOiBBcnJheTwndmFsdWUnIHwgJ2RlbGltaXRlZCcgfCAndXJscyc+O1xuICAgIGhlYWRlcnM6IHN0cmluZ1tdO1xuICAgIGxhYmVsczogc3RyaW5nW107XG4gICAgZGF0YTogRGF0YVZhcmlhbnRUYWJsZVJvd1tdO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIERhdGFWYXJpYW50VGFibGVTdG9yYWdlIGV4dGVuZHMgU3RvcmFnZSB7XG4gICAganNvbjogRGF0YVZhcmlhbnRUYWJsZUpzb247XG59XG5cbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLy8gQ29sbGVjdGlvblxuXG5leHBvcnQgdHlwZSBDb2xsZWN0aW9uUGVybWlzc2lvbnMgPSBWaWV3UGVybWlzc2lvbiB8IEVkaXRQZXJtaXNzaW9uIHwgU2hhcmVQZXJtaXNzaW9uIHxcbiAgICBEb3dubG9hZFBlcm1pc3Npb24gfCBBZGRQZXJtaXNzaW9uO1xuXG5leHBvcnQgaW50ZXJmYWNlIENvbGxlY3Rpb25CYXNlIHtcbiAgICBpZDogbnVtYmVyO1xuICAgIGNyZWF0ZWQ6IHN0cmluZztcbiAgICBtb2RpZmllZDogc3RyaW5nO1xuICAgIHNsdWc6IHN0cmluZztcbiAgICBuYW1lOiBzdHJpbmc7XG4gICAgZGVzY3JpcHRpb246IHN0cmluZztcbiAgICBzZXR0aW5nczogYW55O1xuICAgIGRlc2NyaXB0b3Jfc2NoZW1hOiBEZXNjcmlwdG9yU2NoZW1hQmFzZTtcbiAgICBkZXNjcmlwdG9yOiBhbnk7XG4gICAgY29udHJpYnV0b3I6IENvbnRyaWJ1dG9yO1xuICAgIGN1cnJlbnRfdXNlcl9wZXJtaXNzaW9uczogSXRlbVBlcm1pc3Npb25zT2Y8Q29sbGVjdGlvblBlcm1pc3Npb25zPltdO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIENvbGxlY3Rpb24gZXh0ZW5kcyBDb2xsZWN0aW9uQmFzZSB7XG4gICAgZGF0YTogbnVtYmVyW107XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBpc0NvbGxlY3Rpb24ob2JqZWN0OiBDb2xsZWN0aW9uQmFzZSB8IFNhbXBsZUJhc2UgfCBEYXRhKTogb2JqZWN0IGlzIENvbGxlY3Rpb24gfCBDb2xsZWN0aW9uSHlkcmF0ZURhdGEge1xuICAgIC8vIENvbGxlY3Rpb25CYXNlIGRvZXNuJ3QgY29udGFpbiBgZGF0YWAgcHJvcGVydHkgaW4gaXQncyBpbnRlcmZhY2UsIGJ1dFxuICAgIC8vIENvbGxlY3Rpb24gYW5kIENvbGxlY3Rpb25IeWRyYXRlRGF0YSBkby5cbiAgICByZXR1cm4gb2JqZWN0Lmhhc093blByb3BlcnR5KCdkZXNjcmlwdGlvbicpICYmXG4gICAgICAgIG9iamVjdC5oYXNPd25Qcm9wZXJ0eSgnc2V0dGluZ3MnKSAmJlxuICAgICAgICBvYmplY3QuaGFzT3duUHJvcGVydHkoJ2RhdGEnKSAmJlxuICAgICAgICAhb2JqZWN0Lmhhc093blByb3BlcnR5KCdkZXNjcmlwdG9yX2NvbXBsZXRlZCcpO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIENvbGxlY3Rpb25IeWRyYXRlRGF0YSBleHRlbmRzIENvbGxlY3Rpb25CYXNlIHtcbiAgICBkYXRhOiBEYXRhQmFzZVtdO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFNhbXBsZUJhc2UgZXh0ZW5kcyBDb2xsZWN0aW9uQmFzZSB7XG4gICAgZGVzY3JpcHRvcl9jb21wbGV0ZWQ6IGJvb2xlYW47XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBpc1NhbXBsZUJhc2Uob2JqZWN0OiBDb2xsZWN0aW9uQmFzZSB8IFNhbXBsZUJhc2UgfCBEYXRhKTogb2JqZWN0IGlzIFNhbXBsZUJhc2Uge1xuICAgIHJldHVybiBvYmplY3QuaGFzT3duUHJvcGVydHkoJ2Rlc2NyaXB0aW9uJykgJiZcbiAgICAgICAgb2JqZWN0Lmhhc093blByb3BlcnR5KCdzZXR0aW5ncycpICYmXG4gICAgICAgIG9iamVjdC5oYXNPd25Qcm9wZXJ0eSgnZGF0YScpICYmXG4gICAgICAgIG9iamVjdC5oYXNPd25Qcm9wZXJ0eSgnZGVzY3JpcHRvcl9jb21wbGV0ZWQnKTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBTYW1wbGUgZXh0ZW5kcyBDb2xsZWN0aW9uLCBTYW1wbGVCYXNlIHtcbiAgICBkZXNjcmlwdG9yX2NvbXBsZXRlZDogdHJ1ZTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBTYW1wbGVIeWRyYXRlRGF0YSBleHRlbmRzIENvbGxlY3Rpb25IeWRyYXRlRGF0YSwgU2FtcGxlQmFzZSB7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgUHJlc2FtcGxlIGV4dGVuZHMgQ29sbGVjdGlvbiwgU2FtcGxlQmFzZSB7XG4gICAgZGVzY3JpcHRvcl9jb21wbGV0ZWQ6IGZhbHNlO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFByZXNhbXBsZUh5ZHJhdGVEYXRhIGV4dGVuZHMgQ29sbGVjdGlvbkh5ZHJhdGVEYXRhLCBTYW1wbGVCYXNlIHtcbiAgICBkZXNjcmlwdG9yX2NvbXBsZXRlZDogZmFsc2U7XG59XG5cblxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vLyBTdG9yYWdlXG5cbmV4cG9ydCBpbnRlcmZhY2UgU3RvcmFnZSB7XG4gICAgaWQ6IG51bWJlcjtcbiAgICBzbHVnOiBzdHJpbmc7XG4gICAgbmFtZTogc3RyaW5nO1xuICAgIGRhdGE6IG51bWJlcjtcbiAgICBqc29uOiBhbnk7XG4gICAgY29udHJpYnV0b3I6IENvbnRyaWJ1dG9yO1xuICAgIGNyZWF0ZWQ6IHN0cmluZztcbiAgICBtb2RpZmllZDogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFNhbXBsZUNsdXN0ZXJpbmcgeyAvLyBhcGktdHlwZWNoZWNrOnNhbXBsZV9jbHVzdGVyX2RhdGEuanNvbi5nelxuICAgIG9yZGVyOiBudW1iZXJbXTtcbiAgICBsaW5rYWdlOiBudW1iZXJbXVtdOyAvLyBbW25vZGUxLCBub2RlMiwgZGlzdGFuY2UsIG51bWJlciBvZiBzYW1wbGVzXV1cbiAgICBzYW1wbGVfaWRzOiBfLkRpY3Rpb25hcnk8eyBpZDogbnVtYmVyIH0+O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEdlbmVDbHVzdGVyaW5nIHsgLy8gYXBpLXR5cGVjaGVjazpnZW5lX2NsdXN0ZXJfZGF0YS5qc29uLmd6XG4gICAgb3JkZXI6IG51bWJlcltdO1xuICAgIGxpbmthZ2U6IG51bWJlcltdW107IC8vIFtbbm9kZTEsIG5vZGUyLCBkaXN0YW5jZSwgbnVtYmVyIG9mIGdlbmVzXV1cbiAgICBnZW5lX3N5bWJvbHM6IF8uRGljdGlvbmFyeTx7IGdlbmU6IHN0cmluZyB9Pjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBQQ0EgeyAvLyBhcGktdHlwZWNoZWNrOnBjYV9wbG90X25jYmkuanNvbi5nelxuICAgIGV4cGxhaW5lZF92YXJpYW5jZV9yYXRpb3M6IG51bWJlcltdO1xuICAgIGFsbF9leHBsYWluZWRfdmFyaWFuY2VfcmF0aW9zOiBudW1iZXJbXTtcbiAgICBhbGxfY29tcG9uZW50czogW3N0cmluZywgbnVtYmVyXVtdW107XG4gICAgY29tcG9uZW50czogW3N0cmluZywgbnVtYmVyXVtdW107XG4gICAgemVyb19nZW5lX3N5bWJvbHM6IHN0cmluZ1tdOyAvLyBnZW5lIGlkcyB3aXRoIG5vIGV4cHJlc3Npb25zXG4gICAgZmxvdDoge1xuICAgICAgICB4bGFiZWw6IHN0cmluZztcbiAgICAgICAgeWxhYmVsOiBzdHJpbmc7XG4gICAgICAgIGRhdGE6IG51bWJlcltdW107XG4gICAgICAgIHNhbXBsZV9pZHM6IHN0cmluZ1tdO1xuICAgIH07XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgUUNTdG9yYWdlIGV4dGVuZHMgU3RvcmFnZSB7XG4gICAganNvbjoge1xuICAgICAgICBzdGF0dXM6ICdQQVNTJyB8ICdGQUlMJyB8ICdXQVJOSU5HJyxcbiAgICAgICAgbWVzc2FnZTogc3RyaW5nLFxuICAgIH07XG59XG5cblxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vLyBVc2VyXG5cbmV4cG9ydCBpbnRlcmZhY2UgVXNlciB7XG4gICAgaWQ6IG51bWJlcjtcbiAgICB1c2VybmFtZTogc3RyaW5nO1xuICAgIGVtYWlsOiBzdHJpbmc7XG4gICAgZmlyc3RfbmFtZTogc3RyaW5nO1xuICAgIGxhc3RfbmFtZTogc3RyaW5nO1xuICAgIGpvYl90aXRsZTogc3RyaW5nO1xuICAgIGNvbXBhbnk6IHN0cmluZztcbiAgICBkZXBhcnRtZW50OiBzdHJpbmc7XG4gICAgbG9jYXRpb246IHN0cmluZztcbiAgICBsYWI6IHN0cmluZztcbiAgICBwaG9uZV9udW1iZXI6IHN0cmluZztcbiAgICBsYXN0X2xvZ2luOiBzdHJpbmc7XG4gICAgZGF0ZV9qb2luZWQ6IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBMb2dpblJlc3BvbnNlIHtcbiAgICBrZXk6IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBMb2dvdXRSZXNwb25zZSB7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ3JlYXRlQWNjb3VudEluZm9ybWF0aW9uIHtcbiAgICB1c2VybmFtZTogc3RyaW5nO1xuICAgIHBhc3N3b3JkOiBzdHJpbmc7XG4gICAgZW1haWw6IHN0cmluZztcbiAgICBmaXJzdF9uYW1lOiBzdHJpbmc7XG4gICAgbGFzdF9uYW1lOiBzdHJpbmc7XG4gICAgam9iX3RpdGxlPzogc3RyaW5nO1xuICAgIGNvbXBhbnk/OiBzdHJpbmc7XG4gICAgZGVwYXJ0bWVudD86IHN0cmluZztcbiAgICBsb2NhdGlvbj86IHN0cmluZztcbiAgICBsYWI/OiBzdHJpbmc7XG4gICAgcGhvbmVfbnVtYmVyPzogc3RyaW5nO1xuICAgIG5ld3NsZXR0ZXI/OiBib29sZWFuO1xuICAgIGNvbW11bml0eT86IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBBY3RpdmF0ZUFjY291bnRSZXNwb25zZSB7XG4gICAgdXNlcm5hbWU6IHN0cmluZztcbn1cblxuXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vIEZpbGVcblxuZXhwb3J0IGludGVyZmFjZSBEb3dubG9hZCB7XG4gICAgZGF0YTogc3RyaW5nO1xufVxuIl19
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9hcGkvdHlwZXMvcmVzdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUE7Ozs7R0FJRzs7QUFHSCwwQkFBNEI7QUEwQjVCLDZCQUF1QyxRQUEyQjtJQUM5RCxPQUFPLFFBQVEsQ0FBQyxjQUFjLENBQUMsU0FBUyxDQUFDLENBQUM7QUFDOUMsQ0FBQztBQUZELGtEQUVDO0FBc0JZLFFBQUEsZ0JBQWdCLEdBQW9CLE9BQU8sQ0FBQztBQUM1QyxRQUFBLGdCQUFnQixHQUFvQixPQUFPLENBQUM7QUFDNUMsUUFBQSxlQUFlLEdBQW1CLE1BQU0sQ0FBQztBQUN6QyxRQUFBLGlCQUFpQixHQUFxQixNQUFNLENBQUM7QUFDN0MsUUFBQSxjQUFjLEdBQWtCLEtBQUssQ0FBQztBQUN0QyxRQUFBLG1CQUFtQixHQUF1QixVQUFVLENBQUM7QUFDckQsUUFBQSxlQUFlLEdBQW1CLE1BQU0sQ0FBQztBQVV6QyxRQUFBLHNCQUFzQixHQUF5QixRQUFRLENBQUM7QUFDeEQsUUFBQSxxQkFBcUIsR0FBd0IsT0FBTyxDQUFDO0FBQ3JELFFBQUEsb0JBQW9CLEdBQXVCLE1BQU0sQ0FBQztBQWtEbEQsUUFBQSx1QkFBdUIsR0FBMEIsS0FBSyxDQUFDO0FBQ3ZELFFBQUEsMEJBQTBCLEdBQTZCLEtBQUssQ0FBQztBQUM3RCxRQUFBLHdCQUF3QixHQUEyQixLQUFLLENBQUM7QUF5SnpELFFBQUEscUJBQXFCLEdBQXdCLElBQUksQ0FBQztBQUNsRCxRQUFBLHFCQUFxQixHQUF3QixJQUFJLENBQUM7QUFDbEQsUUFBQSxtQkFBbUIsR0FBc0IsSUFBSSxDQUFDO0FBQzlDLFFBQUEsc0JBQXNCLEdBQXlCLElBQUksQ0FBQztBQUNwRCxRQUFBLGdCQUFnQixHQUFtQixJQUFJLENBQUM7QUFDeEMsUUFBQSxpQkFBaUIsR0FBb0IsSUFBSSxDQUFDO0FBQzFDLFFBQUEsaUJBQWlCLEdBQW9CLElBQUksQ0FBQztBQW1EdkQsZ0JBQXVCLE1BQTBDO0lBQzdELE9BQU8sQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLFVBQVUsRUFBRSxRQUFRLEVBQUUsU0FBUyxFQUFFLGNBQWMsRUFBRSxjQUFjLEVBQUUsT0FBTyxFQUFFLFFBQVEsRUFBRSwwQkFBMEIsQ0FBQyxFQUN6SCxVQUFDLFFBQVEsSUFBSyxPQUFBLE1BQU0sQ0FBQyxjQUFjLENBQUMsUUFBUSxDQUFDLEVBQS9CLENBQStCLENBQ2hELENBQUM7QUFDTixDQUFDO0FBSkQsd0JBSUM7QUFxTUQsc0JBQTZCLE1BQTBDO0lBQ25FLHdFQUF3RTtJQUN4RSwyQ0FBMkM7SUFDM0MsT0FBTyxNQUFNLENBQUMsY0FBYyxDQUFDLGFBQWEsQ0FBQztRQUN2QyxNQUFNLENBQUMsY0FBYyxDQUFDLFVBQVUsQ0FBQztRQUNqQyxNQUFNLENBQUMsY0FBYyxDQUFDLE1BQU0sQ0FBQztRQUM3QixDQUFDLE1BQU0sQ0FBQyxjQUFjLENBQUMsc0JBQXNCLENBQUMsQ0FBQztBQUN2RCxDQUFDO0FBUEQsb0NBT0M7QUFVRCxzQkFBNkIsTUFBMEM7SUFDbkUsT0FBTyxNQUFNLENBQUMsY0FBYyxDQUFDLGFBQWEsQ0FBQztRQUN2QyxNQUFNLENBQUMsY0FBYyxDQUFDLFVBQVUsQ0FBQztRQUNqQyxNQUFNLENBQUMsY0FBYyxDQUFDLE1BQU0sQ0FBQztRQUM3QixNQUFNLENBQUMsY0FBYyxDQUFDLHNCQUFzQixDQUFDLENBQUM7QUFDdEQsQ0FBQztBQUxELG9DQUtDIiwiZmlsZSI6ImFwaS90eXBlcy9yZXN0LmpzIiwic291cmNlc0NvbnRlbnQiOlsiLypcbiAqIFR5cGUgZGVmaW5pdGlvbnNcbiAqXG4gKiBIZXJlIGlzIGRlZmluZWQgZXZlcnl0aGluZyB0aGUgQVBJIHJldHVybnMuXG4gKi9cblxuaW1wb3J0ICogYXMgUnggZnJvbSAncngnO1xuaW1wb3J0ICogYXMgXyBmcm9tICdsb2Rhc2gnO1xuXG5pbXBvcnQgRGljdGlvbmFyeSA9IF8uRGljdGlvbmFyeTtcbmltcG9ydCBOdW1lcmljRGljdGlvbmFyeSA9IF8uTnVtZXJpY0RpY3Rpb25hcnk7XG5cblxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vLyBRdWVyeVxuXG5leHBvcnQgaW50ZXJmYWNlIFF1ZXJ5IHtcbiAgICBsaW1pdD86IG51bWJlcjtcbiAgICBvZmZzZXQ/OiBudW1iZXI7XG4gICAgb3JkZXJpbmc/OiBzdHJpbmc7IC8vICctZmllbGQxLC1maWVsZDIsZmllbGQzJ1xuICAgIGZpZWxkcz86IHN0cmluZztcbiAgICBbcHJvcGVydHlOYW1lOiBzdHJpbmddOiBhbnk7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgUXVlcnlPYmplY3QgZXh0ZW5kcyBRdWVyeSB7XG4gICAgZGF0YT86IFwiRGlzYWxsb3cgZGVwcmVjYXRlZCBhcGkuU2FtcGxlLnF1ZXJ5T25lKHsgZGF0YTogZGF0YS5pZCB9KS4gVXNlIGFwaS5EYXRhLmdldFNhbXBsZUZyb21EYXRhSWQoZGF0YS5pZCkgaW5zdGVhZC5cIjtcbiAgICBoeWRyYXRlX2RhdGE/OiB2b2lkO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFF1ZXJ5T2JqZWN0SHlkcmF0ZURhdGEgZXh0ZW5kcyBRdWVyeSB7XG4gICAgaHlkcmF0ZV9kYXRhOiAnMSc7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBpc1Jlc3BvbnNlUGFnaW5hdGVkPFQ+KHJlc3BvbnNlOiBUIHwgeyByZXN1bHRzOiBUfSk6IHJlc3BvbnNlIGlzIHsgcmVzdWx0czogVCB9IHtcbiAgICByZXR1cm4gcmVzcG9uc2UuaGFzT3duUHJvcGVydHkoJ3Jlc3VsdHMnKTtcbn1cblxuLy8gTGltaXRPZmZzZXRQYWdpbmF0aW9uXG5leHBvcnQgaW50ZXJmYWNlIFBhZ2luYXRlZFJlc3BvbnNlPFQ+IHtcbiAgICBjb3VudDogbnVtYmVyO1xuICAgIG5leHQ6IHN0cmluZztcbiAgICBwcmV2aW91czogc3RyaW5nO1xuICAgIHJlc3VsdHM6IFRbXTtcbn1cblxuXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vIFBlcm1pc3Npb25zXG5cbmV4cG9ydCB0eXBlIE93bmVyUGVybWlzc2lvbiA9ICdvd25lcic7XG5leHBvcnQgdHlwZSBTaGFyZVBlcm1pc3Npb24gPSAnc2hhcmUnO1xuZXhwb3J0IHR5cGUgRWRpdFBlcm1pc3Npb24gPSAnZWRpdCc7XG5leHBvcnQgdHlwZSBEZWxldGVQZXJtaXNzaW9uID0gJ2VkaXQnOyAvLyBub3QgYSB0eXBvIChBUEkgZG9lc24ndCBzdXBwb3J0IGRlbGV0ZSBwZXJtaXNzaW9uKVxuZXhwb3J0IHR5cGUgQWRkUGVybWlzc2lvbiA9ICdhZGQnO1xuZXhwb3J0IHR5cGUgRG93bmxvYWRQZXJtaXNzaW9uID0gJ2Rvd25sb2FkJztcbmV4cG9ydCB0eXBlIFZpZXdQZXJtaXNzaW9uID0gJ3ZpZXcnO1xuXG5leHBvcnQgY29uc3QgT1dORVJfUEVSTUlTU0lPTjogT3duZXJQZXJtaXNzaW9uID0gJ293bmVyJztcbmV4cG9ydCBjb25zdCBTSEFSRV9QRVJNSVNTSU9OOiBTaGFyZVBlcm1pc3Npb24gPSAnc2hhcmUnO1xuZXhwb3J0IGNvbnN0IEVESVRfUEVSTUlTU0lPTjogRWRpdFBlcm1pc3Npb24gPSAnZWRpdCc7XG5leHBvcnQgY29uc3QgREVMRVRFX1BFUk1JU1NJT046IERlbGV0ZVBlcm1pc3Npb24gPSAnZWRpdCc7XG5leHBvcnQgY29uc3QgQUREX1BFUk1JU1NJT046IEFkZFBlcm1pc3Npb24gPSAnYWRkJztcbmV4cG9ydCBjb25zdCBET1dOTE9BRF9QRVJNSVNTSU9OOiBEb3dubG9hZFBlcm1pc3Npb24gPSAnZG93bmxvYWQnO1xuZXhwb3J0IGNvbnN0IFZJRVdfUEVSTUlTU0lPTjogVmlld1Blcm1pc3Npb24gPSAndmlldyc7XG5cbmV4cG9ydCB0eXBlIFBlcm1pc3Npb24gPSBPd25lclBlcm1pc3Npb24gfCBTaGFyZVBlcm1pc3Npb24gfCBFZGl0UGVybWlzc2lvbiB8IERlbGV0ZVBlcm1pc3Npb24gfCBBZGRQZXJtaXNzaW9uIHxcbiAgICBEb3dubG9hZFBlcm1pc3Npb24gfCBWaWV3UGVybWlzc2lvbjtcblxuXG5leHBvcnQgdHlwZSBQdWJsaWNQZXJtaXNzaW9uVHlwZSA9ICdwdWJsaWMnO1xuZXhwb3J0IHR5cGUgR3JvdXBQZXJtaXNzaW9uVHlwZSA9ICdncm91cCc7XG5leHBvcnQgdHlwZSBVc2VyUGVybWlzc2lvblR5cGUgPSAndXNlcic7XG5cbmV4cG9ydCBjb25zdCBQVUJMSUNfUEVSTUlTU0lPTl9UWVBFOiBQdWJsaWNQZXJtaXNzaW9uVHlwZSA9ICdwdWJsaWMnO1xuZXhwb3J0IGNvbnN0IEdST1VQX1BFUk1JU1NJT05fVFlQRTogR3JvdXBQZXJtaXNzaW9uVHlwZSA9ICdncm91cCc7XG5leHBvcnQgY29uc3QgVVNFUl9QRVJNSVNTSU9OX1RZUEU6IFVzZXJQZXJtaXNzaW9uVHlwZSA9ICd1c2VyJztcblxuZXhwb3J0IHR5cGUgUGVybWlzc2lvblR5cGUgPSBQdWJsaWNQZXJtaXNzaW9uVHlwZSB8IEdyb3VwUGVybWlzc2lvblR5cGUgfCBVc2VyUGVybWlzc2lvblR5cGU7XG5cbmV4cG9ydCBpbnRlcmZhY2UgSXRlbVBlcm1pc3Npb25zT2Y8VD4ge1xuICAgIHR5cGU6IFBlcm1pc3Npb25UeXBlO1xuICAgIHBlcm1pc3Npb25zOiBUW107XG4gICAgaWQ/OiBudW1iZXI7XG4gICAgbmFtZT86IHN0cmluZztcbn1cblxuZXhwb3J0IHR5cGUgSXRlbVBlcm1pc3Npb25zID0gSXRlbVBlcm1pc3Npb25zT2Y8UGVybWlzc2lvbj47XG5cbmV4cG9ydCBpbnRlcmZhY2UgU2V0UGVybWlzc2lvbnNSZXF1ZXN0IHtcbiAgICBwdWJsaWM/OiB7XG4gICAgICAgIGFkZD86IFBlcm1pc3Npb25bXSxcbiAgICAgICAgcmVtb3ZlPzogUGVybWlzc2lvbltdXG4gICAgfTtcbiAgICBncm91cHM/OiB7XG4gICAgICAgIGFkZD86IE51bWVyaWNEaWN0aW9uYXJ5PFBlcm1pc3Npb25bXT4gfCBEaWN0aW9uYXJ5PFBlcm1pc3Npb25bXT5cbiAgICAgICAgcmVtb3ZlPzogTnVtZXJpY0RpY3Rpb25hcnk8UGVybWlzc2lvbltdPiB8IERpY3Rpb25hcnk8UGVybWlzc2lvbltdPlxuICAgIH07XG4gICAgdXNlcnM/OiB7XG4gICAgICAgIGFkZD86IE51bWVyaWNEaWN0aW9uYXJ5PFBlcm1pc3Npb25bXT4gfCBEaWN0aW9uYXJ5PFBlcm1pc3Npb25bXT5cbiAgICAgICAgcmVtb3ZlPzogTnVtZXJpY0RpY3Rpb25hcnk8UGVybWlzc2lvbltdPiB8IERpY3Rpb25hcnk8UGVybWlzc2lvbltdPlxuICAgIH07XG4gICAgc2hhcmVfY29udGVudD86ICcwJyB8ICcxJztcbn1cblxuXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vIENvbnRyaWJ1dG9yXG5cbmV4cG9ydCBpbnRlcmZhY2UgQ29udHJpYnV0b3Ige1xuICAgIGlkOiBudW1iZXI7XG4gICAgdXNlcm5hbWU6IHN0cmluZztcbiAgICBmaXJzdF9uYW1lOiBzdHJpbmc7XG4gICAgbGFzdF9uYW1lOiBzdHJpbmc7XG59XG5cblxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vLyBQcm9jZXNzXG5cbmV4cG9ydCB0eXBlIFByb2Nlc3NQZXJtaXNzaW9ucyA9IFZpZXdQZXJtaXNzaW9uIHwgU2hhcmVQZXJtaXNzaW9uO1xuXG5leHBvcnQgdHlwZSBSYXdQcm9jZXNzUGVyc2lzdGVuY2UgPSAnUkFXJztcbmV4cG9ydCB0eXBlIENhY2hlZFByb2Nlc3NQZXJzaXN0ZW5jZSA9ICdDQUMnO1xuZXhwb3J0IHR5cGUgVGVtcFByb2Nlc3NQZXJzaXN0ZW5jZSA9ICdUTVAnO1xuXG5leHBvcnQgY29uc3QgUkFXX1BST0NFU1NfUEVSU0lTVEVOQ0U6IFJhd1Byb2Nlc3NQZXJzaXN0ZW5jZSA9ICdSQVcnO1xuZXhwb3J0IGNvbnN0IENBQ0hFRF9QUk9DRVNTX1BFUlNJU1RFTkNFOiBDYWNoZWRQcm9jZXNzUGVyc2lzdGVuY2UgPSAnQ0FDJztcbmV4cG9ydCBjb25zdCBURU1QX1BST0NFU1NfUEVSU0lTVEVOQ0U6IFRlbXBQcm9jZXNzUGVyc2lzdGVuY2UgPSAnVE1QJztcblxuZXhwb3J0IHR5cGUgUHJvY2Vzc1BlcnNpc3RlbmNlID0gUmF3UHJvY2Vzc1BlcnNpc3RlbmNlIHwgQ2FjaGVkUHJvY2Vzc1BlcnNpc3RlbmNlIHwgVGVtcFByb2Nlc3NQZXJzaXN0ZW5jZTtcblxuZXhwb3J0IGludGVyZmFjZSBQcm9jZXNzIHtcbiAgICBpZDogbnVtYmVyO1xuICAgIHNsdWc6IHN0cmluZztcbiAgICBuYW1lOiBzdHJpbmc7XG4gICAgY3JlYXRlZDogc3RyaW5nO1xuICAgIG1vZGlmaWVkOiBzdHJpbmc7XG4gICAgdmVyc2lvbjogc3RyaW5nO1xuICAgIHR5cGU6IHN0cmluZztcbiAgICBjYXRlZ29yeTogc3RyaW5nO1xuICAgIHBlcnNpc3RlbmNlOiBQcm9jZXNzUGVyc2lzdGVuY2U7XG4gICAgZGVzY3JpcHRpb246IHN0cmluZztcbiAgICBpbnB1dF9zY2hlbWE6IGFueTtcbiAgICBvdXRwdXRfc2NoZW1hOiBhbnk7XG4gICAgcnVuOiBhbnk7XG4gICAgY29udHJpYnV0b3I6IENvbnRyaWJ1dG9yO1xuICAgIGN1cnJlbnRfdXNlcl9wZXJtaXNzaW9uczogSXRlbVBlcm1pc3Npb25zT2Y8UHJvY2Vzc1Blcm1pc3Npb25zPltdO1xufVxuXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vIFJlbGF0aW9uXG5cbmV4cG9ydCBpbnRlcmZhY2UgUmVsYXRpb25QYXJ0aXRpb24ge1xuICAgIGlkOiBudW1iZXI7XG4gICAgZW50aXR5OiBudW1iZXI7XG4gICAgcG9zaXRpb246IG51bWJlciB8IG51bGw7XG4gICAgbGFiZWw6IHN0cmluZyB8IG51bGw7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgUmVsYXRpb24ge1xuICAgIGlkOiBudW1iZXI7XG4gICAgc2x1Zzogc3RyaW5nO1xuICAgIGNyZWF0ZWQ6IHN0cmluZztcbiAgICBtb2RpZmllZDogc3RyaW5nO1xuICAgIHR5cGU6IHN0cmluZztcbiAgICBjb2xsZWN0aW9uOiBudW1iZXI7XG4gICAgcGFydGl0aW9uczogUmVsYXRpb25QYXJ0aXRpb25bXTtcbiAgICBjYXRlZ29yeTogc3RyaW5nO1xuICAgIHVuaXQ6ICdzJyB8ICdtaW4nIHwgJ2hyJyB8ICdkJyB8ICd3aycgfCBudWxsO1xuICAgIGNvbnRyaWJ1dG9yOiBDb250cmlidXRvcjtcbn1cblxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vLyBEZXNjcmlwdG9yU2NoZW1hXG5cbi8vIFNjaGVtYVxuZXhwb3J0IGludGVyZmFjZSBDaG9pY2VNYXAge1xuICAgIHZhbHVlOiBzdHJpbmc7XG4gICAgbGFiZWw6IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBGaWVsZFNjaGVtYSB7XG4gICAgZGlzYWJsZWQ/OiBib29sZWFuIHwgc3RyaW5nO1xuICAgIHJlcXVpcmVkPzogYm9vbGVhbjtcbiAgICBjb2xsYXBzZWQ/OiBib29sZWFuO1xuICAgIGhpZGRlbj86IGJvb2xlYW4gfCBzdHJpbmc7XG4gICAgZGVmYXVsdD86IGFueTtcbiAgICBjaG9pY2VzPzogQ2hvaWNlTWFwW107XG4gICAgYWxsb3dfY3VzdG9tX2Nob2ljZT86IGJvb2xlYW47XG4gICAgdmFsaWRhdGVfcmVnZXg/OiBzdHJpbmc7XG4gICAgc2x1Zz86IHtcbiAgICAgICAgc291cmNlPzogc3RyaW5nO1xuICAgICAgICB1bmlxdWVWYWxpZGF0b3I/OiAoc2x1Zzogc3RyaW5nKSA9PiBSeC5PYnNlcnZhYmxlPGJvb2xlYW4+O1xuICAgIH07XG4gICAgdHlwZTogc3RyaW5nO1xuICAgIG5hbWU6IHN0cmluZztcbiAgICBsYWJlbDogc3RyaW5nO1xuICAgIGdyb3VwPzogU2NoZW1hO1xufVxuXG5leHBvcnQgdHlwZSBTY2hlbWEgPSBGaWVsZFNjaGVtYVtdO1xuXG5cbi8vIERlc2NyaXB0b3JTY2hlbWFcbmV4cG9ydCB0eXBlIERlc2NyaXB0b3JTY2hlbWFQZXJtaXNzaW9ucyA9IFZpZXdQZXJtaXNzaW9uIHwgRWRpdFBlcm1pc3Npb24gfCBTaGFyZVBlcm1pc3Npb247XG5cbmV4cG9ydCBpbnRlcmZhY2UgRGVzY3JpcHRvclNjaGVtYUJhc2Uge1xuICAgIGlkOiBudW1iZXI7XG4gICAgY3JlYXRlZDogc3RyaW5nO1xuICAgIG1vZGlmaWVkOiBzdHJpbmc7XG4gICAgc2x1Zzogc3RyaW5nO1xuICAgIG5hbWU6IHN0cmluZztcbiAgICB2ZXJzaW9uOiBzdHJpbmc7XG4gICAgc2NoZW1hOiBTY2hlbWE7XG4gICAgY29udHJpYnV0b3I6IENvbnRyaWJ1dG9yO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIERlc2NyaXB0b3JTY2hlbWEgZXh0ZW5kcyBEZXNjcmlwdG9yU2NoZW1hQmFzZSB7XG4gICAgY3VycmVudF91c2VyX3Blcm1pc3Npb25zOiBJdGVtUGVybWlzc2lvbnNPZjxEZXNjcmlwdG9yU2NoZW1hUGVybWlzc2lvbnM+W107XG59XG5cblxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vLyBTY2F0dGVyIFBsb3QgSnNvblxuXG4vLyBTY2F0dGVyUGxvdEpzb24uUm9vdE9iamVjdCBpcyBhIHR5cGUgb2YgcHJvY2VzcyBvdXRwdXQuIFByb2Nlc3NlcyAoaS5lLiBSb3NlMilcbi8vIHNhdmUgaXQgdG8gZGF0YS5vdXRwdXQuc2NhdHRlcl9wbG90LlxuZXhwb3J0IG5hbWVzcGFjZSBTY2F0dGVyUGxvdEpzb24ge1xuXG4gICAgZXhwb3J0IGludGVyZmFjZSBSb290T2JqZWN0IHsgLy8gVGhpcyBpcyB0aGUgYWN0dWFsIHR5cGUgb2YgdGhlIGpzb24gb3V0cHV0XG4gICAgICAgIHBvaW50czogUG9pbnRzO1xuICAgICAgICBtZXRhPzogTWV0YTtcbiAgICAgICAgYW5ub3RhdGlvbnM/OiBBbm5vdGF0aW9uW107XG4gICAgfVxuXG4gICAgZXhwb3J0IGludGVyZmFjZSBQb2ludHMge1xuICAgICAgICB4X2F4aXM6IG51bWJlcltdO1xuICAgICAgICB5X2F4aXM6IG51bWJlcltdO1xuICAgICAgICBpdGVtcz86IGFueVtdO1xuICAgIH1cblxuICAgIGV4cG9ydCBpbnRlcmZhY2UgTWV0YSB7XG4gICAgICAgIHhfbGFiZWw/OiBzdHJpbmc7XG4gICAgICAgIHlfbGFiZWw/OiBzdHJpbmc7XG4gICAgICAgIHRleHQ/OiBzdHJpbmc7XG4gICAgICAgIGNocl9wb3M/OiBzdHJpbmdbXTtcbiAgICB9XG5cbiAgICBleHBvcnQgdHlwZSBBbm5vdGF0aW9uID0gQW5ub3RhdGlvbkxpbmVHZW5lcmFsIHwgQW5ub3RhdGlvbkxpbmVWZXJ0aWNhbCB8IEFubm90YXRpb25MaW5lSG9yaXpvbnRhbDtcblxuICAgIGV4cG9ydCBpbnRlcmZhY2UgQW5ub3RhdGlvbkxpbmVHZW5lcmFsIHtcbiAgICAgICAgdHlwZTogJ2xpbmUnO1xuICAgICAgICB4MTogbnVtYmVyO1xuICAgICAgICB4MjogbnVtYmVyO1xuICAgICAgICB5MTogbnVtYmVyO1xuICAgICAgICB5MjogbnVtYmVyO1xuICAgIH1cbiAgICBleHBvcnQgaW50ZXJmYWNlIEFubm90YXRpb25MaW5lVmVydGljYWwge1xuICAgICAgICB0eXBlOiAnbGluZV92ZXJ0aWNhbCc7XG4gICAgICAgIHg6IG51bWJlcjtcbiAgICB9XG4gICAgZXhwb3J0IGludGVyZmFjZSBBbm5vdGF0aW9uTGluZUhvcml6b250YWwge1xuICAgICAgICB0eXBlOiAnbGluZV9ob3Jpem9udGFsJztcbiAgICAgICAgeTogbnVtYmVyO1xuICAgIH1cbn1cblxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vLyBEYXRhXG5cbmV4cG9ydCB0eXBlIERhdGFQZXJtaXNzaW9ucyA9IFZpZXdQZXJtaXNzaW9uIHwgRWRpdFBlcm1pc3Npb24gfCBTaGFyZVBlcm1pc3Npb24gfCBEb3dubG9hZFBlcm1pc3Npb247XG5cbmV4cG9ydCB0eXBlIFVwbG9hZGluZ0RhdGFTdGF0dXMgPSAnVVAnO1xuZXhwb3J0IHR5cGUgUmVzb2x2aW5nRGF0YVN0YXR1cyA9ICdSRSc7XG5leHBvcnQgdHlwZSBXYWl0aW5nRGF0YVN0YXR1cyA9ICdXVCc7XG5leHBvcnQgdHlwZSBQcm9jZXNzaW5nRGF0YVN0YXR1cyA9ICdQUic7XG5leHBvcnQgdHlwZSBEb25lRGF0YVN0YXR1cyA9ICdPSyc7XG5leHBvcnQgdHlwZSBFcnJvckRhdGFTdGF0dXMgPSAnRVInO1xuZXhwb3J0IHR5cGUgRGlydHlEYXRhU3RhdHVzID0gJ0RSJztcblxuZXhwb3J0IGNvbnN0IFVQTE9BRElOR19EQVRBX1NUQVRVUzogVXBsb2FkaW5nRGF0YVN0YXR1cyA9ICdVUCc7XG5leHBvcnQgY29uc3QgUkVTT0xWSU5HX0RBVEFfU1RBVFVTOiBSZXNvbHZpbmdEYXRhU3RhdHVzID0gJ1JFJztcbmV4cG9ydCBjb25zdCBXQUlUSU5HX0RBVEFfU1RBVFVTOiBXYWl0aW5nRGF0YVN0YXR1cyA9ICdXVCc7XG5leHBvcnQgY29uc3QgUFJPQ0VTU0lOR19EQVRBX1NUQVRVUzogUHJvY2Vzc2luZ0RhdGFTdGF0dXMgPSAnUFInO1xuZXhwb3J0IGNvbnN0IERPTkVfREFUQV9TVEFUVVM6IERvbmVEYXRhU3RhdHVzID0gJ09LJztcbmV4cG9ydCBjb25zdCBFUlJPUl9EQVRBX1NUQVRVUzogRXJyb3JEYXRhU3RhdHVzID0gJ0VSJztcbmV4cG9ydCBjb25zdCBESVJUWV9EQVRBX1NUQVRVUzogRGlydHlEYXRhU3RhdHVzID0gJ0RSJztcblxuZXhwb3J0IHR5cGUgRGF0YVN0YXR1cyA9IFVwbG9hZGluZ0RhdGFTdGF0dXMgfCBSZXNvbHZpbmdEYXRhU3RhdHVzIHwgV2FpdGluZ0RhdGFTdGF0dXMgfCBQcm9jZXNzaW5nRGF0YVN0YXR1cyB8XG4gICAgRG9uZURhdGFTdGF0dXMgfCBFcnJvckRhdGFTdGF0dXMgfCBEaXJ0eURhdGFTdGF0dXM7XG5cbmV4cG9ydCBpbnRlcmZhY2UgRGF0YUJhc2Uge1xuICAgIGlkOiBudW1iZXI7XG4gICAgY3JlYXRlZDogc3RyaW5nO1xuICAgIG1vZGlmaWVkOiBzdHJpbmc7XG4gICAgc3RhcnRlZDogc3RyaW5nO1xuICAgIGZpbmlzaGVkOiBzdHJpbmc7XG4gICAgY2hlY2tzdW06IHN0cmluZztcbiAgICBzdGF0dXM6IERhdGFTdGF0dXM7XG4gICAgcHJvY2Vzc19wcm9ncmVzczogbnVtYmVyO1xuICAgIHByb2Nlc3NfcmM6IG51bWJlcjtcbiAgICBwcm9jZXNzX2luZm86IHN0cmluZ1tdO1xuICAgIHByb2Nlc3Nfd2FybmluZzogc3RyaW5nW107XG4gICAgcHJvY2Vzc19lcnJvcjogc3RyaW5nW107XG4gICAgcHJvY2Vzc190eXBlOiBzdHJpbmc7XG4gICAgcHJvY2Vzc19pbnB1dF9zY2hlbWE6IGFueTtcbiAgICBwcm9jZXNzX291dHB1dF9zY2hlbWE6IGFueTtcbiAgICBwcm9jZXNzX3NsdWc6IHN0cmluZztcbiAgICBwcm9jZXNzX25hbWU6IHN0cmluZztcbiAgICBzbHVnOiBzdHJpbmc7XG4gICAgbmFtZTogc3RyaW5nO1xuICAgIGlucHV0OiBhbnk7XG4gICAgb3V0cHV0OiBhbnk7XG4gICAgZGVzY3JpcHRvcl9zY2hlbWE6IERlc2NyaXB0b3JTY2hlbWFCYXNlO1xuICAgIGRlc2NyaXB0b3I6IGFueTtcbiAgICBjb250cmlidXRvcjogQ29udHJpYnV0b3I7XG4gICAgcHJvY2VzczogbnVtYmVyO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIERhdGEgZXh0ZW5kcyBEYXRhQmFzZSB7XG4gICAgY3VycmVudF91c2VyX3Blcm1pc3Npb25zOiBJdGVtUGVybWlzc2lvbnNPZjxEYXRhUGVybWlzc2lvbnM+W107XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgU2luZ2xlRGF0YU9iamVjdFBhcmFtcyB7XG4gICAgaHlkcmF0ZV9jb2xsZWN0aW9ucz86ICcxJyB8IHZvaWQ7XG4gICAgaHlkcmF0ZV9lbnRpdGllcz86ICcxJyB8IHZvaWQ7XG59XG5cbi8qKlxuICogVGhpcyBzaG91bGQgbmV2ZXIgYmUgdXNlZCB0byBsaXN0cyBvZiBkYXRhIG9iamVjdHMuXG4gKi9cbmV4cG9ydCB0eXBlIFNpbmdsZURhdGFPYmplY3Q8USBleHRlbmRzIFNpbmdsZURhdGFPYmplY3RQYXJhbXM+ID1cbiAgICBRIGV4dGVuZHMgeyBoeWRyYXRlX2NvbGxlY3Rpb25zOiAnMScsIGh5ZHJhdGVfZW50aXRpZXM6ICcxJyB9ID8gRGF0YSAmIHsgY29sbGVjdGlvbnM6IENvbGxlY3Rpb25bXSwgZW50aXRpZXM6IChTYW1wbGUgfCBQcmVzYW1wbGUpW10gfSA6XG4gICAgICAgICAgICAgICAgICAgICAgICAgICBRIGV4dGVuZHMgeyBoeWRyYXRlX2NvbGxlY3Rpb25zOiAnMScgfSA/IERhdGEgJiB7IGNvbGxlY3Rpb25zOiBDb2xsZWN0aW9uW10sIGVudGl0aWVzOiBudW1iZXJbXSB9IDpcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFEgZXh0ZW5kcyB7IGh5ZHJhdGVfZW50aXRpZXM6ICcxJyB9ID8gRGF0YSAmIHsgY29sbGVjdGlvbnM6IG51bWJlcltdLCBlbnRpdGllczogKFNhbXBsZSB8IFByZXNhbXBsZSlbXSB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6IERhdGEgJiB7IGNvbGxlY3Rpb25zOiBudW1iZXJbXSwgZW50aXRpZXM6IG51bWJlcltdIH07XG5cbmV4cG9ydCBmdW5jdGlvbiBpc0RhdGEob2JqZWN0OiBDb2xsZWN0aW9uQmFzZSB8IFNhbXBsZUJhc2UgfCBEYXRhKTogb2JqZWN0IGlzIERhdGEge1xuICAgIHJldHVybiBfLmFsbChbJ2NoZWNrc3VtJywgJ3N0YXR1cycsICdwcm9jZXNzJywgJ3Byb2Nlc3NfbmFtZScsICdwcm9jZXNzX3R5cGUnLCAnaW5wdXQnLCAnb3V0cHV0JywgJ2N1cnJlbnRfdXNlcl9wZXJtaXNzaW9ucyddLFxuICAgICAgICAocHJvcGVydHkpID0+IG9iamVjdC5oYXNPd25Qcm9wZXJ0eShwcm9wZXJ0eSlcbiAgICApO1xufVxuXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vIGRhdGE6ZGlmZmVyZW50aWFsZXhwcmVzc2lvbjpcblxuZXhwb3J0IGludGVyZmFjZSBEYXRhRGlmZmVyZW50aWFsRXhwcmVzc2lvbiBleHRlbmRzIERhdGEge1xuICAgIG91dHB1dDoge1xuICAgICAgICBkZV9maWxlOiB7IGZpbGU6IHN0cmluZywgc2l6ZTogbnVtYmVyIH07XG4gICAgICAgIHJhdzogeyBmaWxlOiBzdHJpbmcsIHNpemU6IG51bWJlciB9O1xuICAgICAgICBkZV9qc29uOiBudW1iZXI7XG4gICAgICAgIHNvdXJjZTogc3RyaW5nO1xuICAgICAgICBzcGVjaWVzOiBzdHJpbmc7XG4gICAgfTtcbn1cblxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vLyBkYXRhOmdlbmVzZXQ6XG5cbmV4cG9ydCBpbnRlcmZhY2UgRGF0YUdlbmVzZXRPdXRwdXQge1xuICAgIGdlbmVzZXQ6IHsgZmlsZTogc3RyaW5nLCBzaXplOiBudW1iZXIgfTtcbiAgICBnZW5lc2V0X2pzb246IG51bWJlcjsgLy8gPT4gRGF0YUdlbmVzZXRTdG9yYWdlXG4gICAgc291cmNlOiBzdHJpbmc7XG4gICAgc3BlY2llczogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIERhdGFHZW5lc2V0IGV4dGVuZHMgRGF0YSB7XG4gICAgb3V0cHV0OiBEYXRhR2VuZXNldE91dHB1dDtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBEYXRhR2VuZXNldFN0b3JhZ2UgZXh0ZW5kcyBTdG9yYWdlIHtcbiAgICBqc29uOiB7XG4gICAgICAgIGdlbmVzOiBzdHJpbmdbXTtcbiAgICB9O1xufVxuXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vIGRhdGE6Z2VuZXNldDp2ZW5uOlxuXG5leHBvcnQgaW50ZXJmYWNlIERhdGFHZW5lc2V0VmVubk91dHB1dCBleHRlbmRzIERhdGFHZW5lc2V0T3V0cHV0IHtcbiAgICB2ZW5uOiBudW1iZXI7IC8vID0+IERhdGFHZW5lc2V0VmVublN0b3JhZ2Vcbn1cblxuZXhwb3J0IGludGVyZmFjZSBEYXRhR2VuZXNldFZlbm4gZXh0ZW5kcyBEYXRhR2VuZXNldCB7XG4gICAgb3V0cHV0OiBEYXRhR2VuZXNldFZlbm5PdXRwdXQ7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgRGF0YUdlbmVzZXRWZW5uU3RvcmFnZSBleHRlbmRzIFN0b3JhZ2Uge1xuICAgIGpzb246IHtcbiAgICAgICAgcGFyZW50czogQXJyYXk8e1xuICAgICAgICAgICAgaWQ6IG51bWJlcjtcbiAgICAgICAgICAgIG5hbWU6IHN0cmluZztcbiAgICAgICAgICAgIGdlbmVzOiBzdHJpbmdbXTsgLy8gZ2VuZXNldF9qc29uIC4gZ2VuZXNcbiAgICAgICAgfT47XG4gICAgfTtcbn1cblxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vLyBkYXRhOmdvZWE6IEdlbmUgT250b2xvZ3lcblxuZXhwb3J0IGludGVyZmFjZSBEYXRhR09FbnJpY2htZW50QW5hbHlzaXMgZXh0ZW5kcyBEYXRhIHtcbiAgICBvdXRwdXQ6IHtcbiAgICAgICAgdGVybXM6IG51bWJlcjsgLy8gPT4gRGF0YUdPRW5yaWNobWVudEFuYWx5c2lzU3RvcmFnZVxuICAgICAgICBzb3VyY2U6IHN0cmluZztcbiAgICAgICAgc3BlY2llczogc3RyaW5nO1xuICAgIH07XG59XG5cbmV4cG9ydCB0eXBlIEdPRW5yaWNobWVudEFzcGVjdCA9IEdPRW5yaWNobWVudE5vZGVbXTtcbmV4cG9ydCBpbnRlcmZhY2UgR09FbnJpY2htZW50SnNvbiB7XG4gICAgdG90YWxfZ2VuZXM6IG51bWJlcjtcbiAgICBnZW5lX2Fzc29jaWF0aW9uczoge1xuICAgICAgICBbZ29UZXJtSWQ6IHN0cmluZ106IHN0cmluZ1tdOyAvLyB0ZXJtX2lkID0+IGdlbmVfaWRzXG4gICAgfTtcbiAgICB0cmVlOiB7XG4gICAgICAgIFthc3BlY3RTbHVnOiBzdHJpbmddOiBHT0VucmljaG1lbnRBc3BlY3QsIC8vIFwiQlBcIiB8IFwiQ0NcIiB8IFwiTUZcIlxuICAgIH07XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgR09FbnJpY2htZW50Tm9kZSB7XG4gICAgZ2VuZV9pZHM6IHN0cmluZ1tdO1xuICAgIHRlcm1fbmFtZTogc3RyaW5nO1xuICAgIHRlcm1faWQ6IHN0cmluZztcbiAgICBwdmFsOiBudW1iZXI7XG4gICAgc2NvcmU6IG51bWJlcjtcbiAgICBtYXRjaGVkOiBudW1iZXI7IC8vIE51bWJlciBvZiBmb3VuZCBlbGVtZW50cyBpbiBhIHNpbmdsZSBub2RlLlxuICAgIHRvdGFsOiBudW1iZXI7IC8vIFRvdGFsIG51bWJlciBvZiBlbGVtZW50cyAoaW5jbHVkaW5nIGNoaWxkcmVuIG5vZGVzKSBpbiBhIHNpbmdsZSBub2RlLlxuICAgIGNoaWxkcmVuPzogR09FbnJpY2htZW50Tm9kZVtdO1xuXG4gICAgLy8gQWRkZWQgYnkgZnJvbnRlbmQ6XG4gICAgZGVwdGg/OiBudW1iZXI7IC8vIE51bWVyaWNhbCByZXByZXNlbnRhdGlvbiBvZiB0aGUgbGV2ZWwgb2YgZGVwdGguIFVzZWQgZm9yIG9mZnNldHRpbmcgdGhlIHRlcm0gY29sdW1uLlxuICAgIHNvdXJjZT86IHN0cmluZztcbiAgICBzcGVjaWVzPzogc3RyaW5nO1xuICAgIHNjb3JlX3BlcmNlbnRhZ2U/OiBudW1iZXI7IC8vIFBlcmNlbnRhZ2Ugb2YgbWF4IHNjb3JlIHdpdGhpbiBHT0VucmljaG1lbnRBc3BlY3QuXG4gICAgZ2VuZV9hc3NvY2lhdGlvbnM/OiBzdHJpbmdbXTsgLy8gUGx1Y2tlZCBmcm9tIEdPRW5yaWNobWVudEpzb24uZ2VuZV9hc3NvY2lhdGlvbnMuXG4gICAgY29sbGFwc2VkPzogYm9vbGVhbjsgLy8gQm9vbGVhbiByZXByZXNlbnRhdGlvbiBpZiB0aGUgc2VsZWN0ZWQgaXRlbSBpcyBoaWRkZW4uXG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgRGF0YUdPRW5yaWNobWVudEFuYWx5c2lzU3RvcmFnZSBleHRlbmRzIFN0b3JhZ2Uge1xuICAgIGpzb246IEdPRW5yaWNobWVudEpzb247XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgRGF0YUdPRW5yaWNobWVudEFuYWx5c2lzSW5wdXQge1xuICAgIHB2YWxfdGhyZXNob2xkOiBudW1iZXI7XG4gICAgZ2VuZXM6IHN0cmluZ1tdO1xuICAgIHNvdXJjZTogc3RyaW5nO1xuICAgIHNwZWNpZXM6IHN0cmluZztcbiAgICBvbnRvbG9neTogbnVtYmVyO1xuICAgIGdhZjogbnVtYmVyO1xufVxuXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vIGRhdGE6Z2FmOiBHQUYgYW5ub3RhdGlvblxuXG5leHBvcnQgaW50ZXJmYWNlIERhdGFHYWZBbm5vdGF0aW9uIGV4dGVuZHMgRGF0YSB7XG4gICAgb3V0cHV0OiB7XG4gICAgICAgIHNvdXJjZTogc3RyaW5nO1xuICAgICAgICBzcGVjaWVzOiBzdHJpbmc7XG4gICAgICAgIGdhZjogeyBmaWxlOiBzdHJpbmcsIHNpemU6IG51bWJlciB9O1xuICAgICAgICBnYWZfb2JqOiB7IGZpbGU6IHN0cmluZywgc2l6ZTogbnVtYmVyIH07XG4gICAgfTtcbn1cblxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vLyBkYXRhOnZhcmlhbnR0YWJsZTpcblxuZXhwb3J0IGludGVyZmFjZSBEYXRhVmFyaWFudEFtcGxpY29uVGFibGUgZXh0ZW5kcyBEYXRhIHtcbiAgICBpbnB1dDoge1xuICAgICAgICBtYXN0ZXJfZmlsZTogbnVtYmVyOyAvLyBkYXRhIElEXG4gICAgICAgIGNvdmVyYWdlOiBudW1iZXI7IC8vIGRhdGEgSURcbiAgICAgICAgYW5ub3RfdmFyczogbnVtYmVyW107IC8vIGRhdGEgSURzXG4gICAgICAgIGFsbF9hbXBsaWNvbnM6IGJvb2xlYW47XG4gICAgICAgIHRhYmxlX25hbWU6IHN0cmluZztcbiAgICB9O1xuICAgIG91dHB1dDoge1xuICAgICAgICB2YXJpYW50X3RhYmxlOiBudW1iZXI7IC8vID0+IERhdGFWYXJpYW50VGFibGVTdG9yYWdlXG4gICAgfTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBEYXRhVmFyaWFudFRMQVRhYmxlIGV4dGVuZHMgRGF0YSB7XG4gICAgaW5wdXQ6IHtcbiAgICAgICAgdGxhX3Jlc3VsdHM6IG51bWJlcjsgLy8gZGF0YSBJRFxuICAgIH07XG4gICAgb3V0cHV0OiB7XG4gICAgICAgIHZhcmlhbnRfdGFibGU6IG51bWJlcjsgLy8gPT4gRGF0YVZhcmlhbnRUYWJsZVN0b3JhZ2VcbiAgICAgICAgc3BlY2llczogc3RyaW5nO1xuICAgICAgICBidWlsZDogc3RyaW5nO1xuICAgIH07XG59XG5cbmV4cG9ydCB0eXBlIERhdGFWYXJpYW50VGFibGUgPSBEYXRhVmFyaWFudEFtcGxpY29uVGFibGUgfCBEYXRhVmFyaWFudFRMQVRhYmxlO1xuXG5leHBvcnQgdHlwZSBEYXRhVmFyaWFudFRhYmxlSnNvblZhbHVlQ29sdW1uID0gc3RyaW5nOyAvLyBFeGFtcGxlOiBNU0g2X2V4b241X0YxLzJcbmV4cG9ydCB0eXBlIERhdGFWYXJpYW50VGFibGVKc29uRGVsaW1pdGVkQ29sdW1uID0gc3RyaW5nOyAvLyBFeGFtcGxlOiBEUDQ9NDYsNDEsMTEsMTY7U0I9NFxuZXhwb3J0IHR5cGUgRGF0YVZhcmlhbnRUYWJsZUpzb25VcmxzQ29sdW1uID0gW3N0cmluZywgc3RyaW5nXVtdOyAvLyBFeGFtcGxlOiBbWydHZW5lJywgJ2h0dHA6Ly93d3cubmNiaS5ubG0ubmloLmdvdi9nZW5lLz90ZXJtPWdlbmUnXV1cbmV4cG9ydCB0eXBlIERhdGFWYXJpYW50VGFibGVKc29uQ29sdW1uID0gRGF0YVZhcmlhbnRUYWJsZUpzb25WYWx1ZUNvbHVtbiB8XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIERhdGFWYXJpYW50VGFibGVKc29uRGVsaW1pdGVkQ29sdW1uIHxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRGF0YVZhcmlhbnRUYWJsZUpzb25VcmxzQ29sdW1uO1xuZXhwb3J0IGludGVyZmFjZSBEYXRhVmFyaWFudFRhYmxlUm93IHtcbiAgICBjb2x1bW5zOiBEYXRhVmFyaWFudFRhYmxlSnNvbkNvbHVtbltdO1xuICAgIHBvczogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIERhdGFWYXJpYW50VGFibGVKc29uIHsgLy8gYXBpLXR5cGVjaGVjazphbXBsaWNvbl90YWJsZV9vdXRwdXQuanNvbi5nelxuICAgIGNvbHVtbl90eXBlczogQXJyYXk8J3ZhbHVlJyB8ICdkZWxpbWl0ZWQnIHwgJ3VybHMnPjtcbiAgICBoZWFkZXJzOiBzdHJpbmdbXTtcbiAgICBsYWJlbHM6IHN0cmluZ1tdO1xuICAgIGRhdGE6IERhdGFWYXJpYW50VGFibGVSb3dbXTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBEYXRhVmFyaWFudFRhYmxlU3RvcmFnZSBleHRlbmRzIFN0b3JhZ2Uge1xuICAgIGpzb246IERhdGFWYXJpYW50VGFibGVKc29uO1xufVxuXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vIENvbGxlY3Rpb25cblxuZXhwb3J0IHR5cGUgQ29sbGVjdGlvblBlcm1pc3Npb25zID0gVmlld1Blcm1pc3Npb24gfCBFZGl0UGVybWlzc2lvbiB8IFNoYXJlUGVybWlzc2lvbiB8XG4gICAgRG93bmxvYWRQZXJtaXNzaW9uIHwgQWRkUGVybWlzc2lvbjtcblxuZXhwb3J0IGludGVyZmFjZSBDb2xsZWN0aW9uQmFzZSB7XG4gICAgaWQ6IG51bWJlcjtcbiAgICBjcmVhdGVkOiBzdHJpbmc7XG4gICAgbW9kaWZpZWQ6IHN0cmluZztcbiAgICBzbHVnOiBzdHJpbmc7XG4gICAgbmFtZTogc3RyaW5nO1xuICAgIGRlc2NyaXB0aW9uOiBzdHJpbmc7XG4gICAgc2V0dGluZ3M6IGFueTtcbiAgICBkZXNjcmlwdG9yX3NjaGVtYTogRGVzY3JpcHRvclNjaGVtYUJhc2U7XG4gICAgZGVzY3JpcHRvcjogYW55O1xuICAgIGNvbnRyaWJ1dG9yOiBDb250cmlidXRvcjtcbiAgICBjdXJyZW50X3VzZXJfcGVybWlzc2lvbnM6IEl0ZW1QZXJtaXNzaW9uc09mPENvbGxlY3Rpb25QZXJtaXNzaW9ucz5bXTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBDb2xsZWN0aW9uIGV4dGVuZHMgQ29sbGVjdGlvbkJhc2Uge1xuICAgIGRhdGE6IG51bWJlcltdO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gaXNDb2xsZWN0aW9uKG9iamVjdDogQ29sbGVjdGlvbkJhc2UgfCBTYW1wbGVCYXNlIHwgRGF0YSk6IG9iamVjdCBpcyBDb2xsZWN0aW9uIHwgQ29sbGVjdGlvbkh5ZHJhdGVEYXRhIHtcbiAgICAvLyBDb2xsZWN0aW9uQmFzZSBkb2Vzbid0IGNvbnRhaW4gYGRhdGFgIHByb3BlcnR5IGluIGl0J3MgaW50ZXJmYWNlLCBidXRcbiAgICAvLyBDb2xsZWN0aW9uIGFuZCBDb2xsZWN0aW9uSHlkcmF0ZURhdGEgZG8uXG4gICAgcmV0dXJuIG9iamVjdC5oYXNPd25Qcm9wZXJ0eSgnZGVzY3JpcHRpb24nKSAmJlxuICAgICAgICBvYmplY3QuaGFzT3duUHJvcGVydHkoJ3NldHRpbmdzJykgJiZcbiAgICAgICAgb2JqZWN0Lmhhc093blByb3BlcnR5KCdkYXRhJykgJiZcbiAgICAgICAgIW9iamVjdC5oYXNPd25Qcm9wZXJ0eSgnZGVzY3JpcHRvcl9jb21wbGV0ZWQnKTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBDb2xsZWN0aW9uSHlkcmF0ZURhdGEgZXh0ZW5kcyBDb2xsZWN0aW9uQmFzZSB7XG4gICAgZGF0YTogRGF0YUJhc2VbXTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBTYW1wbGVCYXNlIGV4dGVuZHMgQ29sbGVjdGlvbkJhc2Uge1xuICAgIGRlc2NyaXB0b3JfY29tcGxldGVkOiBib29sZWFuO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gaXNTYW1wbGVCYXNlKG9iamVjdDogQ29sbGVjdGlvbkJhc2UgfCBTYW1wbGVCYXNlIHwgRGF0YSk6IG9iamVjdCBpcyBTYW1wbGVCYXNlIHtcbiAgICByZXR1cm4gb2JqZWN0Lmhhc093blByb3BlcnR5KCdkZXNjcmlwdGlvbicpICYmXG4gICAgICAgIG9iamVjdC5oYXNPd25Qcm9wZXJ0eSgnc2V0dGluZ3MnKSAmJlxuICAgICAgICBvYmplY3QuaGFzT3duUHJvcGVydHkoJ2RhdGEnKSAmJlxuICAgICAgICBvYmplY3QuaGFzT3duUHJvcGVydHkoJ2Rlc2NyaXB0b3JfY29tcGxldGVkJyk7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgU2FtcGxlIGV4dGVuZHMgQ29sbGVjdGlvbiwgU2FtcGxlQmFzZSB7XG4gICAgZGVzY3JpcHRvcl9jb21wbGV0ZWQ6IHRydWU7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgU2FtcGxlSHlkcmF0ZURhdGEgZXh0ZW5kcyBDb2xsZWN0aW9uSHlkcmF0ZURhdGEsIFNhbXBsZUJhc2Uge1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFByZXNhbXBsZSBleHRlbmRzIENvbGxlY3Rpb24sIFNhbXBsZUJhc2Uge1xuICAgIGRlc2NyaXB0b3JfY29tcGxldGVkOiBmYWxzZTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBQcmVzYW1wbGVIeWRyYXRlRGF0YSBleHRlbmRzIENvbGxlY3Rpb25IeWRyYXRlRGF0YSwgU2FtcGxlQmFzZSB7XG4gICAgZGVzY3JpcHRvcl9jb21wbGV0ZWQ6IGZhbHNlO1xufVxuXG5cbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLy8gU3RvcmFnZVxuXG5leHBvcnQgaW50ZXJmYWNlIFN0b3JhZ2Uge1xuICAgIGlkOiBudW1iZXI7XG4gICAgc2x1Zzogc3RyaW5nO1xuICAgIG5hbWU6IHN0cmluZztcbiAgICBkYXRhOiBudW1iZXI7XG4gICAganNvbjogYW55O1xuICAgIGNvbnRyaWJ1dG9yOiBDb250cmlidXRvcjtcbiAgICBjcmVhdGVkOiBzdHJpbmc7XG4gICAgbW9kaWZpZWQ6IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBTYW1wbGVDbHVzdGVyaW5nIHsgLy8gYXBpLXR5cGVjaGVjazpzYW1wbGVfY2x1c3Rlcl9kYXRhLmpzb24uZ3pcbiAgICBvcmRlcjogbnVtYmVyW107XG4gICAgbGlua2FnZTogbnVtYmVyW11bXTsgLy8gW1tub2RlMSwgbm9kZTIsIGRpc3RhbmNlLCBudW1iZXIgb2Ygc2FtcGxlc11dXG4gICAgc2FtcGxlX2lkczogXy5EaWN0aW9uYXJ5PHsgaWQ6IG51bWJlciB9Pjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBHZW5lQ2x1c3RlcmluZyB7IC8vIGFwaS10eXBlY2hlY2s6Z2VuZV9jbHVzdGVyX2RhdGEuanNvbi5nelxuICAgIG9yZGVyOiBudW1iZXJbXTtcbiAgICBsaW5rYWdlOiBudW1iZXJbXVtdOyAvLyBbW25vZGUxLCBub2RlMiwgZGlzdGFuY2UsIG51bWJlciBvZiBnZW5lc11dXG4gICAgZ2VuZV9zeW1ib2xzOiBfLkRpY3Rpb25hcnk8eyBnZW5lOiBzdHJpbmcgfT47XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgUENBIHsgLy8gYXBpLXR5cGVjaGVjazpwY2FfcGxvdF9uY2JpLmpzb24uZ3pcbiAgICBleHBsYWluZWRfdmFyaWFuY2VfcmF0aW9zOiBudW1iZXJbXTtcbiAgICBhbGxfZXhwbGFpbmVkX3ZhcmlhbmNlX3JhdGlvczogbnVtYmVyW107XG4gICAgYWxsX2NvbXBvbmVudHM6IFtzdHJpbmcsIG51bWJlcl1bXVtdO1xuICAgIGNvbXBvbmVudHM6IFtzdHJpbmcsIG51bWJlcl1bXVtdO1xuICAgIHplcm9fZ2VuZV9zeW1ib2xzOiBzdHJpbmdbXTsgLy8gZ2VuZSBpZHMgd2l0aCBubyBleHByZXNzaW9uc1xuICAgIGZsb3Q6IHtcbiAgICAgICAgeGxhYmVsOiBzdHJpbmc7XG4gICAgICAgIHlsYWJlbDogc3RyaW5nO1xuICAgICAgICBkYXRhOiBudW1iZXJbXVtdO1xuICAgICAgICBzYW1wbGVfaWRzOiBzdHJpbmdbXTtcbiAgICB9O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFFDU3RvcmFnZSBleHRlbmRzIFN0b3JhZ2Uge1xuICAgIGpzb246IHtcbiAgICAgICAgc3RhdHVzOiAnUEFTUycgfCAnRkFJTCcgfCAnV0FSTklORycsXG4gICAgICAgIG1lc3NhZ2U6IHN0cmluZyxcbiAgICB9O1xufVxuXG5cbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLy8gVXNlclxuXG5leHBvcnQgaW50ZXJmYWNlIFVzZXIge1xuICAgIGlkOiBudW1iZXI7XG4gICAgdXNlcm5hbWU6IHN0cmluZztcbiAgICBlbWFpbDogc3RyaW5nO1xuICAgIGZpcnN0X25hbWU6IHN0cmluZztcbiAgICBsYXN0X25hbWU6IHN0cmluZztcbiAgICBqb2JfdGl0bGU6IHN0cmluZztcbiAgICBjb21wYW55OiBzdHJpbmc7XG4gICAgZGVwYXJ0bWVudDogc3RyaW5nO1xuICAgIGxvY2F0aW9uOiBzdHJpbmc7XG4gICAgbGFiOiBzdHJpbmc7XG4gICAgcGhvbmVfbnVtYmVyOiBzdHJpbmc7XG4gICAgbGFzdF9sb2dpbjogc3RyaW5nO1xuICAgIGRhdGVfam9pbmVkOiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgTG9naW5SZXNwb25zZSB7XG4gICAga2V5OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgTG9nb3V0UmVzcG9uc2Uge1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIENyZWF0ZUFjY291bnRJbmZvcm1hdGlvbiB7XG4gICAgdXNlcm5hbWU6IHN0cmluZztcbiAgICBwYXNzd29yZDogc3RyaW5nO1xuICAgIGVtYWlsOiBzdHJpbmc7XG4gICAgZmlyc3RfbmFtZTogc3RyaW5nO1xuICAgIGxhc3RfbmFtZTogc3RyaW5nO1xuICAgIGpvYl90aXRsZT86IHN0cmluZztcbiAgICBjb21wYW55Pzogc3RyaW5nO1xuICAgIGRlcGFydG1lbnQ/OiBzdHJpbmc7XG4gICAgbG9jYXRpb24/OiBzdHJpbmc7XG4gICAgbGFiPzogc3RyaW5nO1xuICAgIHBob25lX251bWJlcj86IHN0cmluZztcbiAgICBuZXdzbGV0dGVyPzogYm9vbGVhbjtcbiAgICBjb21tdW5pdHk/OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQWN0aXZhdGVBY2NvdW50UmVzcG9uc2Uge1xuICAgIHVzZXJuYW1lOiBzdHJpbmc7XG59XG5cblxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vLyBGaWxlXG5cbmV4cG9ydCBpbnRlcmZhY2UgRG93bmxvYWQge1xuICAgIGRhdGE6IHN0cmluZztcbn1cbiJdfQ==

@@ -40,2 +40,1 @@ import * as Rx from 'rx';

export declare function getSpeciesFromFeatures(features: Feature[]): string;
//# sourceMappingURL=utils.d.ts.map
"use strict";
var __assign = (this && this.__assign) || function () {
__assign = Object.assign || function(t) {
for (var s, i = 1, n = arguments.length; i < n; i++) {
s = arguments[i];
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
t[p] = s[p];
}
return t;
};
return __assign.apply(this, arguments);
var __assign = (this && this.__assign) || Object.assign || function(t) {
for (var s, i = 1, n = arguments.length; i < n; i++) {
s = arguments[i];
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
t[p] = s[p];
}
return t;
};

@@ -89,2 +86,2 @@ Object.defineProperty(exports, "__esModule", { value: true });

//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9hcGkvdHlwZXMvdXRpbHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7OztBQUFBLDBCQUE0QjtBQUc1QixpREFBaUQ7QUFJakQ7O0dBRUc7QUFDSCxTQUFnQixnQkFBZ0IsQ0FBQyxPQUFnQjtJQUM3QyxPQUFPLENBQUMsQ0FBQyxNQUFNLENBQTJCLEVBQUUsRUFBRSxPQUFPLEVBQUU7UUFDbkQsRUFBRSxFQUFLLE9BQU8sQ0FBQyxNQUFNLFNBQUksT0FBTyxDQUFDLFVBQVUsU0FBSSxPQUFPLENBQUMsT0FBUztLQUNuRSxDQUFDLENBQUM7QUFDUCxDQUFDO0FBSkQsNENBSUM7QUFFRDs7O0dBR0c7QUFDSCxTQUFnQixpQkFBaUIsQ0FBQyxRQUFrQztJQUNoRSxPQUFPLFFBQVEsQ0FBQyxHQUFHLENBQ2YsVUFBQyxZQUFZLElBQUssT0FBQSxDQUFDLENBQUMsR0FBRyxDQUFDLFlBQVksRUFBRSxVQUFDLE9BQU8sSUFBSyxPQUFBLGdCQUFnQixDQUFDLE9BQU8sQ0FBQyxFQUF6QixDQUF5QixDQUFDLEVBQTNELENBQTJELENBQ2hGLENBQUM7QUFDTixDQUFDO0FBSkQsOENBSUM7QUFFRDs7O0dBR0c7QUFDSCxTQUFnQiwwQkFBMEIsQ0FBQyxRQUFtRDtJQUMxRixPQUFPLFFBQVEsQ0FBQyxHQUFHLENBQUMsVUFBQyxRQUFRO1FBQ3pCLElBQU0sYUFBYSxHQUFHLENBQUMsQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxVQUFDLE9BQU8sSUFBSyxPQUFBLGdCQUFnQixDQUFDLE9BQU8sQ0FBQyxFQUF6QixDQUF5QixDQUFDLENBQUM7UUFFdEYsT0FBTyxDQUFDLENBQUMsTUFBTSxDQUNYLEVBQUUsRUFBRSxRQUFRLEVBQUUsRUFBRSxPQUFPLEVBQUUsYUFBYSxFQUFFLENBQzNDLENBQUM7SUFDTixDQUFDLENBQUMsQ0FBQztBQUNQLENBQUM7QUFSRCxnRUFRQztBQUVEOztHQUVHO0FBQ0gsU0FBZ0IsZ0JBQWdCLENBQWtCLEtBQVEsRUFBRSxNQUFnQjtJQUN4RSwrREFBK0Q7SUFDL0Qsb0JBQWtCLEtBQUssSUFBRSxNQUFNLEVBQUUsTUFBTSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsSUFBRztBQUN4RCxDQUFDO0FBSEQsNENBR0M7QUFFRDs7Ozs7O0dBTUc7QUFDSCxTQUFnQixxQkFBcUIsQ0FBQyxRQUFtQjtJQUNyRCxJQUFNLE9BQU8sR0FBRyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsUUFBUSxFQUFFLFVBQUMsT0FBTyxJQUFLLE9BQUEsT0FBTyxDQUFDLE1BQU0sRUFBZCxDQUFjLENBQUMsQ0FBQyxDQUFDO0lBRXZFLElBQUksQ0FBQyxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsRUFBRTtRQUNyQixNQUFNLElBQUksZ0JBQVEsQ0FBQyxhQUFhLENBQUMsQ0FBQztLQUNyQztJQUNELElBQUksQ0FBQyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLEVBQUU7UUFDckIsTUFBTSxJQUFJLGdCQUFRLENBQUMsMENBQXdDLE9BQU8sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQUcsQ0FBQyxDQUFDO0tBQ3JGO0lBRUQsT0FBTyxDQUFDLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDO0FBQzVCLENBQUM7QUFYRCxzREFXQztBQUVEOzs7Ozs7R0FNRztBQUNILFNBQWdCLHNCQUFzQixDQUFDLFFBQW1CO0lBQ3RELElBQU0sT0FBTyxHQUFHLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxRQUFRLEVBQUUsVUFBQyxPQUFPLElBQUssT0FBQSxPQUFPLENBQUMsT0FBTyxFQUFmLENBQWUsQ0FBQyxDQUFDLENBQUM7SUFFeEUsSUFBSSxDQUFDLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxFQUFFO1FBQ3JCLE1BQU0sSUFBSSxnQkFBUSxDQUFDLGFBQWEsQ0FBQyxDQUFDO0tBQ3JDO0lBQ0QsSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsRUFBRTtRQUNyQixNQUFNLElBQUksZ0JBQVEsQ0FBQywwQ0FBd0MsT0FBTyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBRyxDQUFDLENBQUM7S0FDckY7SUFFRCxPQUFPLENBQUMsQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUM7QUFDNUIsQ0FBQztBQVhELHdEQVdDIiwiZmlsZSI6ImFwaS90eXBlcy91dGlscy5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIF8gZnJvbSAnbG9kYXNoJztcbmltcG9ydCAqIGFzIFJ4IGZyb20gJ3J4JztcblxuaW1wb3J0IHtHZW5FcnJvcn0gZnJvbSAnLi4vLi4vY29yZS9lcnJvcnMvZXJyb3InO1xuaW1wb3J0IHtRdWVyeSwgUGFnaW5hdGVkUmVzcG9uc2V9IGZyb20gJy4vcmVzdCc7XG5pbXBvcnQge0ZlYXR1cmV9IGZyb20gJy4vbW9kdWxlcyc7XG5cbi8qKlxuICogVHJhbnNmb3JtcyBhIGZlYXR1cmUgaW50byBvbmUgd2l0aCBzb21lIGF1Z21lbnRlZCBhdHRyaWJ1dGVzLlxuICovXG5leHBvcnQgZnVuY3Rpb24gdHJhbnNmb3JtRmVhdHVyZShmZWF0dXJlOiBGZWF0dXJlKTogRmVhdHVyZSB7XG4gICAgcmV0dXJuIF8uYXNzaWduPHt9LCBGZWF0dXJlLCB7fSwgRmVhdHVyZT4oe30sIGZlYXR1cmUsIHtcbiAgICAgICAgaWQ6IGAke2ZlYXR1cmUuc291cmNlfToke2ZlYXR1cmUuZmVhdHVyZV9pZH06JHtmZWF0dXJlLnNwZWNpZXN9YCxcbiAgICB9KTtcbn1cblxuLyoqXG4gKiBUcmFuc2Zvcm1zIGZlYXR1cmVzIHJldHVybmVkIGZyb20gdGhlIEFQSSBpbnRvIG9uZSB3aXRoIHNvbWVcbiAqIGF1Z21lbnRlZCBhdHRyaWJ1dGVzLlxuICovXG5leHBvcnQgZnVuY3Rpb24gdHJhbnNmb3JtRmVhdHVyZXMoZmVhdHVyZXM6IFJ4Lk9ic2VydmFibGU8RmVhdHVyZVtdPik6IFJ4Lk9ic2VydmFibGU8RmVhdHVyZVtdPiB7XG4gICAgcmV0dXJuIGZlYXR1cmVzLm1hcChcbiAgICAgICAgKGZlYXR1cmVzTGlzdCkgPT4gXy5tYXAoZmVhdHVyZXNMaXN0LCAoZmVhdHVyZSkgPT4gdHJhbnNmb3JtRmVhdHVyZShmZWF0dXJlKSlcbiAgICApO1xufVxuXG4vKipcbiAqIFRyYW5zZm9ybXMgcGFnaW5hdGVkIGZlYXR1cmVzIHJldHVybmVkIGZyb20gdGhlIEFQSSBpbnRvIG9uZSB3aXRoIHNvbWVcbiAqIGF1Z21lbnRlZCBhdHRyaWJ1dGVzLlxuICovXG5leHBvcnQgZnVuY3Rpb24gdHJhbnNmb3JtRmVhdHVyZXNQYWdpbmF0ZWQoZmVhdHVyZXM6IFJ4Lk9ic2VydmFibGU8UGFnaW5hdGVkUmVzcG9uc2U8RmVhdHVyZT4+KTogUnguT2JzZXJ2YWJsZTxQYWdpbmF0ZWRSZXNwb25zZTxGZWF0dXJlPj4ge1xuICAgIHJldHVybiBmZWF0dXJlcy5tYXAoKHJlc3BvbnNlKSA9PiB7XG4gICAgICAgIGNvbnN0IG1hcHBlZFJlc3VsdHMgPSBfLm1hcChyZXNwb25zZS5yZXN1bHRzLCAoZmVhdHVyZSkgPT4gdHJhbnNmb3JtRmVhdHVyZShmZWF0dXJlKSk7XG5cbiAgICAgICAgcmV0dXJuIF8uYXNzaWduPHt9LCB7fSwgeyByZXN1bHRzOiBGZWF0dXJlW10gfSwgUGFnaW5hdGVkUmVzcG9uc2U8RmVhdHVyZT4+KFxuICAgICAgICAgICAge30sIHJlc3BvbnNlLCB7IHJlc3VsdHM6IG1hcHBlZFJlc3VsdHMgfVxuICAgICAgICApO1xuICAgIH0pO1xufVxuXG4vKipcbiAqIFRyYW5zZm9ybXMgcXVlcnkgdG8gcmV0dXJuIHJlc3BvbnNlIHdpdGggbGltaXRlZCBzZXQgb2YgZmllbGRzLlxuICovXG5leHBvcnQgZnVuY3Rpb24gbGltaXRGaWVsZHNRdWVyeTxUIGV4dGVuZHMgUXVlcnk+KHF1ZXJ5OiBULCBmaWVsZHM6IHN0cmluZ1tdKTogVCAmIHsgZmllbGRzOiBzdHJpbmcgfSB7XG4gICAgLy8gVE9ETyByZW1vdmUgYW55IHdoZW4gVHlwZVNjcmlwdCBzdXBwb3J0cyBzcHJlYWQgb24gZ2VuZXJpY3MuXG4gICAgcmV0dXJuIHsgLi4uPGFueT4gcXVlcnksIGZpZWxkczogZmllbGRzLmpvaW4oJywnKSB9O1xufVxuXG4vKipcbiAqIFJldHVybnMgZmVhdHVyZXMnIHNvdXJjZS5cbiAqXG4gKiBUaHJvd3MgYEdlbkVycm9yYCBpZiBzb3VyY2UgY2Fubm90IGJlIGRldGVybWluZWQuXG4gKlxuICogQHBhcmFtIGZlYXR1cmVzIEZlYXR1cmVzXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnZXRTb3VyY2VGcm9tRmVhdHVyZXMoZmVhdHVyZXM6IEZlYXR1cmVbXSk6IHN0cmluZyB7XG4gICAgY29uc3Qgc291cmNlcyA9IF8udW5pcXVlKF8ubWFwKGZlYXR1cmVzLCAoZmVhdHVyZSkgPT4gZmVhdHVyZS5zb3VyY2UpKTtcblxuICAgIGlmIChfLmlzRW1wdHkoZmVhdHVyZXMpKSB7XG4gICAgICAgIHRocm93IG5ldyBHZW5FcnJvcignTm8gZmVhdHVyZXMnKTtcbiAgICB9XG4gICAgaWYgKF8uc2l6ZShzb3VyY2VzKSA+IDEpIHtcbiAgICAgICAgdGhyb3cgbmV3IEdlbkVycm9yKGBGZWF0dXJlcyBjb21lIGZyb20gbXVsdGlwbGUgc291cmNlcyAoJHtzb3VyY2VzLmpvaW4oJywgJyl9KWApO1xuICAgIH1cblxuICAgIHJldHVybiBfLmZpcnN0KHNvdXJjZXMpO1xufVxuXG4vKipcbiAqIFJldHVybnMgZmVhdHVyZXMnIHNwZWNpZXMuXG4gKlxuICogVGhyb3dzIGBHZW5FcnJvcmAgaWYgc3BlY2llcyBjYW5ub3QgYmUgZGV0ZXJtaW5lZC5cbiAqXG4gKiBAcGFyYW0gZmVhdHVyZXMgRmVhdHVyZXNcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldFNwZWNpZXNGcm9tRmVhdHVyZXMoZmVhdHVyZXM6IEZlYXR1cmVbXSk6IHN0cmluZyB7XG4gICAgY29uc3Qgc3BlY2llcyA9IF8udW5pcXVlKF8ubWFwKGZlYXR1cmVzLCAoZmVhdHVyZSkgPT4gZmVhdHVyZS5zcGVjaWVzKSk7XG5cbiAgICBpZiAoXy5pc0VtcHR5KGZlYXR1cmVzKSkge1xuICAgICAgICB0aHJvdyBuZXcgR2VuRXJyb3IoJ05vIGZlYXR1cmVzJyk7XG4gICAgfVxuICAgIGlmIChfLnNpemUoc3BlY2llcykgPiAxKSB7XG4gICAgICAgIHRocm93IG5ldyBHZW5FcnJvcihgRmVhdHVyZXMgY29tZSBmcm9tIG11bHRpcGxlIHNwZWNpZXMgKCR7c3BlY2llcy5qb2luKCcsICcpfSlgKTtcbiAgICB9XG5cbiAgICByZXR1cm4gXy5maXJzdChzcGVjaWVzKTtcbn1cbiJdfQ==
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9hcGkvdHlwZXMvdXRpbHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7OztBQUFBLDBCQUE0QjtBQUc1QixpREFBaUQ7QUFJakQ7O0dBRUc7QUFDSCwwQkFBaUMsT0FBZ0I7SUFDN0MsT0FBTyxDQUFDLENBQUMsTUFBTSxDQUEyQixFQUFFLEVBQUUsT0FBTyxFQUFFO1FBQ25ELEVBQUUsRUFBSyxPQUFPLENBQUMsTUFBTSxTQUFJLE9BQU8sQ0FBQyxVQUFVLFNBQUksT0FBTyxDQUFDLE9BQVM7S0FDbkUsQ0FBQyxDQUFDO0FBQ1AsQ0FBQztBQUpELDRDQUlDO0FBRUQ7OztHQUdHO0FBQ0gsMkJBQWtDLFFBQWtDO0lBQ2hFLE9BQU8sUUFBUSxDQUFDLEdBQUcsQ0FDZixVQUFDLFlBQVksSUFBSyxPQUFBLENBQUMsQ0FBQyxHQUFHLENBQUMsWUFBWSxFQUFFLFVBQUMsT0FBTyxJQUFLLE9BQUEsZ0JBQWdCLENBQUMsT0FBTyxDQUFDLEVBQXpCLENBQXlCLENBQUMsRUFBM0QsQ0FBMkQsQ0FDaEYsQ0FBQztBQUNOLENBQUM7QUFKRCw4Q0FJQztBQUVEOzs7R0FHRztBQUNILG9DQUEyQyxRQUFtRDtJQUMxRixPQUFPLFFBQVEsQ0FBQyxHQUFHLENBQUMsVUFBQyxRQUFRO1FBQ3pCLElBQU0sYUFBYSxHQUFHLENBQUMsQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxVQUFDLE9BQU8sSUFBSyxPQUFBLGdCQUFnQixDQUFDLE9BQU8sQ0FBQyxFQUF6QixDQUF5QixDQUFDLENBQUM7UUFFdEYsT0FBTyxDQUFDLENBQUMsTUFBTSxDQUNYLEVBQUUsRUFBRSxRQUFRLEVBQUUsRUFBRSxPQUFPLEVBQUUsYUFBYSxFQUFFLENBQzNDLENBQUM7SUFDTixDQUFDLENBQUMsQ0FBQztBQUNQLENBQUM7QUFSRCxnRUFRQztBQUVEOztHQUVHO0FBQ0gsMEJBQWtELEtBQVEsRUFBRSxNQUFnQjtJQUN4RSwrREFBK0Q7SUFDL0Qsb0JBQWtCLEtBQUssSUFBRSxNQUFNLEVBQUUsTUFBTSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsSUFBRztBQUN4RCxDQUFDO0FBSEQsNENBR0M7QUFFRDs7Ozs7O0dBTUc7QUFDSCwrQkFBc0MsUUFBbUI7SUFDckQsSUFBTSxPQUFPLEdBQUcsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLFFBQVEsRUFBRSxVQUFDLE9BQU8sSUFBSyxPQUFBLE9BQU8sQ0FBQyxNQUFNLEVBQWQsQ0FBYyxDQUFDLENBQUMsQ0FBQztJQUV2RSxJQUFJLENBQUMsQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLEVBQUU7UUFDckIsTUFBTSxJQUFJLGdCQUFRLENBQUMsYUFBYSxDQUFDLENBQUM7S0FDckM7SUFDRCxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxFQUFFO1FBQ3JCLE1BQU0sSUFBSSxnQkFBUSxDQUFDLDBDQUF3QyxPQUFPLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFHLENBQUMsQ0FBQztLQUNyRjtJQUVELE9BQU8sQ0FBQyxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQztBQUM1QixDQUFDO0FBWEQsc0RBV0M7QUFFRDs7Ozs7O0dBTUc7QUFDSCxnQ0FBdUMsUUFBbUI7SUFDdEQsSUFBTSxPQUFPLEdBQUcsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLFFBQVEsRUFBRSxVQUFDLE9BQU8sSUFBSyxPQUFBLE9BQU8sQ0FBQyxPQUFPLEVBQWYsQ0FBZSxDQUFDLENBQUMsQ0FBQztJQUV4RSxJQUFJLENBQUMsQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLEVBQUU7UUFDckIsTUFBTSxJQUFJLGdCQUFRLENBQUMsYUFBYSxDQUFDLENBQUM7S0FDckM7SUFDRCxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxFQUFFO1FBQ3JCLE1BQU0sSUFBSSxnQkFBUSxDQUFDLDBDQUF3QyxPQUFPLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFHLENBQUMsQ0FBQztLQUNyRjtJQUVELE9BQU8sQ0FBQyxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQztBQUM1QixDQUFDO0FBWEQsd0RBV0MiLCJmaWxlIjoiYXBpL3R5cGVzL3V0aWxzLmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgXyBmcm9tICdsb2Rhc2gnO1xuaW1wb3J0ICogYXMgUnggZnJvbSAncngnO1xuXG5pbXBvcnQge0dlbkVycm9yfSBmcm9tICcuLi8uLi9jb3JlL2Vycm9ycy9lcnJvcic7XG5pbXBvcnQge1F1ZXJ5LCBQYWdpbmF0ZWRSZXNwb25zZX0gZnJvbSAnLi9yZXN0JztcbmltcG9ydCB7RmVhdHVyZX0gZnJvbSAnLi9tb2R1bGVzJztcblxuLyoqXG4gKiBUcmFuc2Zvcm1zIGEgZmVhdHVyZSBpbnRvIG9uZSB3aXRoIHNvbWUgYXVnbWVudGVkIGF0dHJpYnV0ZXMuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiB0cmFuc2Zvcm1GZWF0dXJlKGZlYXR1cmU6IEZlYXR1cmUpOiBGZWF0dXJlIHtcbiAgICByZXR1cm4gXy5hc3NpZ248e30sIEZlYXR1cmUsIHt9LCBGZWF0dXJlPih7fSwgZmVhdHVyZSwge1xuICAgICAgICBpZDogYCR7ZmVhdHVyZS5zb3VyY2V9OiR7ZmVhdHVyZS5mZWF0dXJlX2lkfToke2ZlYXR1cmUuc3BlY2llc31gLFxuICAgIH0pO1xufVxuXG4vKipcbiAqIFRyYW5zZm9ybXMgZmVhdHVyZXMgcmV0dXJuZWQgZnJvbSB0aGUgQVBJIGludG8gb25lIHdpdGggc29tZVxuICogYXVnbWVudGVkIGF0dHJpYnV0ZXMuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiB0cmFuc2Zvcm1GZWF0dXJlcyhmZWF0dXJlczogUnguT2JzZXJ2YWJsZTxGZWF0dXJlW10+KTogUnguT2JzZXJ2YWJsZTxGZWF0dXJlW10+IHtcbiAgICByZXR1cm4gZmVhdHVyZXMubWFwKFxuICAgICAgICAoZmVhdHVyZXNMaXN0KSA9PiBfLm1hcChmZWF0dXJlc0xpc3QsIChmZWF0dXJlKSA9PiB0cmFuc2Zvcm1GZWF0dXJlKGZlYXR1cmUpKVxuICAgICk7XG59XG5cbi8qKlxuICogVHJhbnNmb3JtcyBwYWdpbmF0ZWQgZmVhdHVyZXMgcmV0dXJuZWQgZnJvbSB0aGUgQVBJIGludG8gb25lIHdpdGggc29tZVxuICogYXVnbWVudGVkIGF0dHJpYnV0ZXMuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiB0cmFuc2Zvcm1GZWF0dXJlc1BhZ2luYXRlZChmZWF0dXJlczogUnguT2JzZXJ2YWJsZTxQYWdpbmF0ZWRSZXNwb25zZTxGZWF0dXJlPj4pOiBSeC5PYnNlcnZhYmxlPFBhZ2luYXRlZFJlc3BvbnNlPEZlYXR1cmU+PiB7XG4gICAgcmV0dXJuIGZlYXR1cmVzLm1hcCgocmVzcG9uc2UpID0+IHtcbiAgICAgICAgY29uc3QgbWFwcGVkUmVzdWx0cyA9IF8ubWFwKHJlc3BvbnNlLnJlc3VsdHMsIChmZWF0dXJlKSA9PiB0cmFuc2Zvcm1GZWF0dXJlKGZlYXR1cmUpKTtcblxuICAgICAgICByZXR1cm4gXy5hc3NpZ248e30sIHt9LCB7IHJlc3VsdHM6IEZlYXR1cmVbXSB9LCBQYWdpbmF0ZWRSZXNwb25zZTxGZWF0dXJlPj4oXG4gICAgICAgICAgICB7fSwgcmVzcG9uc2UsIHsgcmVzdWx0czogbWFwcGVkUmVzdWx0cyB9XG4gICAgICAgICk7XG4gICAgfSk7XG59XG5cbi8qKlxuICogVHJhbnNmb3JtcyBxdWVyeSB0byByZXR1cm4gcmVzcG9uc2Ugd2l0aCBsaW1pdGVkIHNldCBvZiBmaWVsZHMuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBsaW1pdEZpZWxkc1F1ZXJ5PFQgZXh0ZW5kcyBRdWVyeT4ocXVlcnk6IFQsIGZpZWxkczogc3RyaW5nW10pOiBUICYgeyBmaWVsZHM6IHN0cmluZyB9IHtcbiAgICAvLyBUT0RPIHJlbW92ZSBhbnkgd2hlbiBUeXBlU2NyaXB0IHN1cHBvcnRzIHNwcmVhZCBvbiBnZW5lcmljcy5cbiAgICByZXR1cm4geyAuLi48YW55PiBxdWVyeSwgZmllbGRzOiBmaWVsZHMuam9pbignLCcpIH07XG59XG5cbi8qKlxuICogUmV0dXJucyBmZWF0dXJlcycgc291cmNlLlxuICpcbiAqIFRocm93cyBgR2VuRXJyb3JgIGlmIHNvdXJjZSBjYW5ub3QgYmUgZGV0ZXJtaW5lZC5cbiAqXG4gKiBAcGFyYW0gZmVhdHVyZXMgRmVhdHVyZXNcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldFNvdXJjZUZyb21GZWF0dXJlcyhmZWF0dXJlczogRmVhdHVyZVtdKTogc3RyaW5nIHtcbiAgICBjb25zdCBzb3VyY2VzID0gXy51bmlxdWUoXy5tYXAoZmVhdHVyZXMsIChmZWF0dXJlKSA9PiBmZWF0dXJlLnNvdXJjZSkpO1xuXG4gICAgaWYgKF8uaXNFbXB0eShmZWF0dXJlcykpIHtcbiAgICAgICAgdGhyb3cgbmV3IEdlbkVycm9yKCdObyBmZWF0dXJlcycpO1xuICAgIH1cbiAgICBpZiAoXy5zaXplKHNvdXJjZXMpID4gMSkge1xuICAgICAgICB0aHJvdyBuZXcgR2VuRXJyb3IoYEZlYXR1cmVzIGNvbWUgZnJvbSBtdWx0aXBsZSBzb3VyY2VzICgke3NvdXJjZXMuam9pbignLCAnKX0pYCk7XG4gICAgfVxuXG4gICAgcmV0dXJuIF8uZmlyc3Qoc291cmNlcyk7XG59XG5cbi8qKlxuICogUmV0dXJucyBmZWF0dXJlcycgc3BlY2llcy5cbiAqXG4gKiBUaHJvd3MgYEdlbkVycm9yYCBpZiBzcGVjaWVzIGNhbm5vdCBiZSBkZXRlcm1pbmVkLlxuICpcbiAqIEBwYXJhbSBmZWF0dXJlcyBGZWF0dXJlc1xuICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0U3BlY2llc0Zyb21GZWF0dXJlcyhmZWF0dXJlczogRmVhdHVyZVtdKTogc3RyaW5nIHtcbiAgICBjb25zdCBzcGVjaWVzID0gXy51bmlxdWUoXy5tYXAoZmVhdHVyZXMsIChmZWF0dXJlKSA9PiBmZWF0dXJlLnNwZWNpZXMpKTtcblxuICAgIGlmIChfLmlzRW1wdHkoZmVhdHVyZXMpKSB7XG4gICAgICAgIHRocm93IG5ldyBHZW5FcnJvcignTm8gZmVhdHVyZXMnKTtcbiAgICB9XG4gICAgaWYgKF8uc2l6ZShzcGVjaWVzKSA+IDEpIHtcbiAgICAgICAgdGhyb3cgbmV3IEdlbkVycm9yKGBGZWF0dXJlcyBjb21lIGZyb20gbXVsdGlwbGUgc3BlY2llcyAoJHtzcGVjaWVzLmpvaW4oJywgJyl9KWApO1xuICAgIH1cblxuICAgIHJldHVybiBfLmZpcnN0KHNwZWNpZXMpO1xufVxuIl19

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

/// <reference types="angular" />
/// <reference types="lodash" />
import * as angular from 'angular';

@@ -174,3 +176,3 @@ import * as _ from 'lodash';

subscriptionsReady(): boolean;
private _createComputation;
private _createComputation(content?);
/**

@@ -277,2 +279,1 @@ * Watch component scope and run a computation on changes. The computation is

export declare function directive(config: ComponentConfiguration): ClassDecorator;
//# sourceMappingURL=base.d.ts.map
export {};
//# sourceMappingURL=base.spec.d.ts.map
"use strict";
var __extends = (this && this.__extends) || (function () {
var extendStatics = function (d, b) {
extendStatics = Object.setPrototypeOf ||
({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
return extendStatics(d, b);
}
var extendStatics = Object.setPrototypeOf ||
({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
return function (d, b) {

@@ -110,2 +107,2 @@ extendStatics(d, b);

//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9jb3JlL2NvbXBvbmVudHMvYmFzZS5zcGVjLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLDBCQUE0QjtBQUk1QiwrQkFBZ0Q7QUFDaEQsbURBQXdEO0FBRXhELDZCQUFpQixDQUFDLGdCQUFnQixFQUFFLEVBQUUsRUFBRSxVQUFDLE1BQU07SUFLM0M7UUFBNkIsa0NBQWE7UUFPdEMsWUFBWTtRQUNaLHdCQUFZLE1BQXNCO1lBQWxDLFlBQ0ksa0JBQU0sTUFBTSxDQUFDLFNBSWhCO1lBVE0sV0FBSyxHQUFhLEVBQUUsQ0FBQztZQU94QixLQUFJLENBQUMsYUFBYSxHQUFHLEtBQUksQ0FBQyxxQkFBcUIsQ0FBQyxjQUFNLE9BQUEsS0FBSSxDQUFDLEdBQUcsRUFBUixDQUFRLENBQUMsQ0FBQztZQUNoRSxLQUFJLENBQUMsZUFBZSxHQUFHLEtBQUksQ0FBQyxxQkFBcUIsQ0FBQyxjQUFNLE9BQUEsS0FBSSxDQUFDLEtBQUssRUFBVixDQUFVLEVBQUUsSUFBSSxDQUFDLENBQUM7O1FBQzlFLENBQUM7UUFiQyxjQUFjO1lBSm5CLGdCQUFTLENBQUM7Z0JBQ1AsTUFBTSxFQUFFLE1BQU0sQ0FBQyxNQUFNO2dCQUNyQixTQUFTLEVBQUUsc0JBQXNCO2FBQ3BDLENBQUM7V0FDSSxjQUFjLENBY25CO1FBQUQscUJBQUM7S0FkRCxBQWNDLENBZDRCLG9CQUFhLEdBY3pDO0lBRUQsRUFBRSxDQUFDLHVEQUF1RCxFQUFFO1FBQ3hELElBQU0sU0FBUyxHQUFHLE1BQU0sQ0FBQyxlQUFlLENBQ3BDLGNBQWMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxRQUFRLENBQ25DLENBQUM7UUFFRixnQkFBZ0I7UUFDaEIsSUFBTSxNQUFNLEdBQUcsT0FBTyxDQUFDLFNBQVMsQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUMzQyxTQUFTLENBQUMsSUFBSSxDQUFDLGFBQWE7YUFDdkIsb0JBQW9CLEVBQUU7YUFDdEIsU0FBUyxDQUFDLFVB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L2Jhc2Uuc3BlYy5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIF8gZnJvbSAnbG9kYXNoJztcbmltcG9ydCAqIGFzIFJ4IGZyb20gJ3J4JztcbmltcG9ydCAqIGFzIGFuZ3VsYXIgZnJvbSAnYW5ndWxhcic7XG5cbmltcG9ydCB7Q29tcG9uZW50QmFzZSwgY29tcG9uZW50fSBmcm9tICcuL2Jhc2UnO1xuaW1wb3J0IHtkZXNjcmliZUNvbXBvbmVudH0gZnJvbSAnLi4vLi4vdGVzdHMvY29tcG9uZW50JztcblxuZGVzY3JpYmVDb21wb25lbnQoJ2Jhc2UgY29tcG9uZW50JywgW10sICh0ZXN0ZXIpID0+IHtcbiAgICBAY29tcG9uZW50KHtcbiAgICAgICAgbW9kdWxlOiB0ZXN0ZXIubW9kdWxlLFxuICAgICAgICBkaXJlY3RpdmU6ICdnZW4td2F0Y2gtb2JzZXJ2YWJsZScsXG4gICAgfSlcbiAgICBjbGFzcyBEdW1teUNvbXBvbmVudCBleHRlbmRzIENvbXBvbmVudEJhc2Uge1xuICAgICAgICBwdWJsaWMgc3RyOiBzdHJpbmc7XG4gICAgICAgIHB1YmxpYyBzdHJPYnNlcnZhYmxlOiBSeC5PYnNlcnZhYmxlPHN0cmluZz47XG5cbiAgICAgICAgcHVibGljIGFycmF5OiBzdHJpbmdbXSA9IFtdO1xuICAgICAgICBwdWJsaWMgYXJyYXlPYnNlcnZhYmxlOiBSeC5PYnNlcnZhYmxlPHN0cmluZ1tdPjtcblxuICAgICAgICAvLyBAbmdJbmplY3RcbiAgICAgICAgY29uc3RydWN0b3IoJHNjb3BlOiBhbmd1bGFyLklTY29wZSkge1xuICAgICAgICAgICAgc3VwZXIoJHNjb3BlKTtcblxuICAgICAgICAgICAgdGhpcy5zdHJPYnNlcnZhYmxlID0gdGhpcy5jcmVhdGVXYXRjaE9ic2VydmFibGUoKCkgPT4gdGhpcy5zdHIpO1xuICAgICAgICAgICAgdGhpcy5hcnJheU9ic2VydmFibGUgPSB0aGlzLmNyZWF0ZVdhdGNoT2JzZXJ2YWJsZSgoKSA9PiB0aGlzLmFycmF5LCB0cnVlKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGl0KCdzaG91bGQgcmVhY3RpdmVseSB1cGRhdGUgb24gc2hhbGxvdyBjb21wb25lbnQgY2hhbmdlcycsICgpID0+IHtcbiAgICAgICAgY29uc3QgY29tcG9uZW50ID0gdGVzdGVyLmNyZWF0ZUNvbXBvbmVudDxEdW1teUNvbXBvbmVudD4oXG4gICAgICAgICAgICBEdW1teUNvbXBvbmVudC5hc1ZpZXcoKS50ZW1wbGF0ZVxuICAgICAgICApO1xuXG4gICAgICAgIC8vIFRlc3QgdGhpcy5zdHJcbiAgICAgICAgY29uc3Qgc3RyU3B5ID0gamFzbWluZS5jcmVhdGVTcHkoJ3N0clNweScpO1xuICAgICAgICBjb21wb25lbnQuY3RybC5zdHJPYnNlcnZhYmxlXG4gICAgICAgICAgICAuZGlzdGluY3RVbnRpbENoYW5nZWQoKVxuICAgICAgICAgICAgLnN1YnNjcmliZSgodmFsdWUpID0+IHN0clNweShfLmNsb25lRGVlcCh2YWx1ZSkpKTtcblxuICAgICAgICBjb21wb25lbnQuY3RybC5zdHIgPSAnc29tZSB2YWx1ZSc7XG4gICAgICAgIHRlc3Rlci5kaWdlc3QoKTtcblxuICAgICAgICBleHBlY3Qoc3RyU3B5LmNhbGxzLmNvdW50KCkpLnRvQmUoMik7XG4gICAgICAgIGV4cGVjdChzdHJTcHkuY2FsbHMuZmlyc3QoKS5hcmdzWzBdKS50b0JlVW5kZWZpbmVkKCk7XG4gICAgICAgIGV4cGVjdChzdHJTcHkuY2FsbHMubW9zdFJlY2VudCgpLmFyZ3NbMF0pLnRvQmUoJ3NvbWUgdmFsdWUnKTtcbiAgICB9KTtcblxuICAgIGl0KCdzaG91bGQgcmVhY3RpdmVseSB1cGRhdGUgb24gZGVlcCBjb21wb25lbnQgY2hhbmdlcycsICgpID0+IHtcbiAgICAgICAgY29uc3QgY29tcG9uZW50ID0gdGVzdGVyLmNyZWF0ZUNvbXBvbmVudDxEdW1teUNvbXBvbmVudD4oXG4gICAgICAgICAgICBEdW1teUNvbXBvbmVudC5hc1ZpZXcoKS50ZW1wbGF0ZVxuICAgICAgICApO1xuXG4gICAgICAgIC8vIFRlc3QgdGhpcy5hcnJheVxuICAgICAgICBjb25zdCBhcnJheVNweSA9IGphc21pbmUuY3JlYXRlU3B5KCdhcnJheVNweScpO1xuICAgICAgICBjb21wb25lbnQuY3RybC5hcnJheU9ic2VydmFibGVcbiAgICAgICAgICAgIC5maWx0ZXIoKHZhbHVlKSA9PiAhXy5pc0VtcHR5KHZhbHVlKSlcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoKHZhbHVlKSA9PiBhcnJheVNweShfLmNsb25lRGVlcCh2YWx1ZSkpKTtcblxuICAgICAgICBjb21wb25lbnQuY3RybC5hcnJheS5wdXNoKCdzb21lIHZhbHVlJyk7XG4gICAgICAgIHRlc3Rlci5kaWdlc3QoKTtcbiAgICAgICAgY29tcG9uZW50LmN0cmwuYXJyYXkucHVzaCgnc29tZSBvdGhlciB2YWx1ZScpO1xuICAgICAgICB0ZXN0ZXIuZGlnZXN0KCk7XG5cbiAgICAgICAgZXhwZWN0KGFycmF5U3B5LmNhbGxzLmFsbCgpWzBdLmFyZ3NbMF0pLnRvRXF1YWwoWydzb21lIHZhbHVlJ10pO1xuICAgICAgICBleHBlY3QoYXJyYXlTcHkuY2FsbHMuYWxsKClbMV0uYXJnc1swXSkudG9FcXVhbChbJ3NvbWUgdmFsdWUnLCAnc29tZSBvdGhlciB2YWx1ZSddKTtcbiAgICB9KTtcblxuICAgIGl0KCdzaG91bGQgc3VwcG9ydCB3YXRjaCcsICgpID0+IHtcbiAgICAgICAgY29uc3QgY29tcG9uZW50ID0gdGVzdGVyLmNyZWF0ZUNvbXBvbmVudDxEdW1teUNvbXBvbmVudD4oXG4gICAgICAgICAgICBEdW1teUNvbXBvbmVudC5hc1ZpZXcoKS50ZW1wbGF0ZVxuICAgICAgICApO1xuXG4gICAgICAgIC8vIE5vIHdhdGNoIHNob3VsZCBiZSBjcmVhdGVkIGlmIGNvbXB1dGF0aW9uIGlzIGltbWVkaWF0ZWx5IHVuc3Vic2NyaWJlZC5cbiAgICAgICAgbGV0IGV4cHJlc3Npb24gPSAwO1xuICAgICAgICBsZXQgZXhlY3V0ZWQgPSAwO1xuICAgICAgICBsZXQgd2F0Y2hDb21wdXRhdGlvbiA9IGNvbXBvbmVudC5jdHJsLndhdGNoKCgpID0+IGV4cHJlc3Npb24sIChjb21wdXRhdGlvbikgPT4ge1xuICAgICAgICAgICAgZXhlY3V0ZWQrKztcbiAgICAgICAgICAgIGV4cGVjdChjb21wdXRhdGlvbi5pc0RvbmUoKSkudG9CZUZhbHN5KCk7XG4gICAgICAgICAgICBjb21wdXRhdGlvbi51bnN1YnNjcmliZSgpO1xuICAgICAgICB9KTtcbiAgICAgICAgZXhwZWN0KHdhdGNoQ29tcHV0YXRpb24uaXNEb25lKCkpLnRvQmVUcnV0aHkoKTtcblxuICAgICAgICBleHByZXNzaW9uID0gMTtcbiAgICAgICAgdGVzdGVyLmRpZ2VzdCgpO1xuICAgICAgICBleHBlY3QoZXhlY3V0ZWQpLnRvQmUoMSk7XG5cbiAgICAgICAgLy8gQ2hlY2sgdGhhdCB3YXRjaGluZyB3b3JrcyBjb3JyZWN0bHkuXG4gICAgICAgIGV4cHJlc3Npb24gPSAwO1xuICAgICAgICBleGVjdXRlZCA9IDA7XG4gICAgICAgIHdhdGNoQ29tcHV0YXRpb24gPSBjb21wb25lbnQuY3RybC53YXRjaCgoKSA9PiBleHByZXNzaW9uLCAoY29tcHV0YXRpb24pID0+IHtcbiAgICAgICAgICAgIGV4ZWN1dGVkKys7XG4gICAgICAgICAgICBpZiAoZXhlY3V0ZWQgPiAyKSBjb21wdXRhdGlvbi51bnN1YnNjcmliZSgpO1xuICAgICAgICB9KTtcbiAgICAgICAgZXhwZWN0KHdhdGNoQ29tcHV0YXRpb24uaXNEb25lKCkpLnRvQmVGYWxzeSgpO1xuXG4gICAgICAgIGV4cHJlc3Npb24gPSAxO1xuICAgICAgICB0ZXN0ZXIuZGlnZXN0KCk7XG4gICAgICAgIC8vIEp1c3QgdG8gY2hlY2sgdGhhdCB3YXRjaCBpcyBvbmx5IGV2YWx1YXRlZCB3aGVuIHRoZSBleHByZXNzaW9uIGNoYW5nZXMuXG4gICAgICAgIHRlc3Rlci5kaWdlc3QoKTtcbiAgICAgICAgZXhwZWN0KGV4ZWN1dGVkKS50b0JlKDIpO1xuXG4gICAgICAgIGV4cHJlc3Npb24gPSAyO1xuICAgICAgICB0ZXN0ZXIuZGlnZXN0KCk7XG4gICAgICAgIGV4cGVjdChleGVjdXRlZCkudG9CZSgzKTtcblxuICAgICAgICAvLyBDaGVjayB0aGF0IHVuc3Vic2NyaWJlIGFjdHVhbGx5IHN0b3BzIHRoZSB3YXRjaC5cbiAgICAgICAgZXhwcmVzc2lvbiA9IDM7XG4gICAgICAgIHRlc3Rlci5kaWdlc3QoKTtcbiAgICAgICAgZXhwZWN0KGV4ZWN1dGVkKS50b0JlKDMpO1xuICAgIH0pO1xufSk7XG5cblxuIl19
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9jb3JlL2NvbXBvbmVudHMvYmFzZS5zcGVjLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLDBCQUE0QjtBQUk1QiwrQkFBZ0Q7QUFDaEQsbURBQXdEO0FBRXhELDZCQUFpQixDQUFDLGdCQUFnQixFQUFFLEVBQUUsRUFBRSxVQUFDLE1BQU07SUFLM0M7UUFBNkIsa0NBQWE7UUFPdEMsWUFBWTtRQUNaLHdCQUFZLE1BQXNCO1lBQWxDLFlBQ0ksa0JBQU0sTUFBTSxDQUFDLFNBSWhCO1lBVE0sV0FBSyxHQUFhLEVBQUUsQ0FBQztZQU94QixLQUFJLENBQUMsYUFBYSxHQUFHLEtBQUksQ0FBQyxxQkFBcUIsQ0FBQyxjQUFNLE9BQUEsS0FBSSxDQUFDLEdBQUcsRUFBUixDQUFRLENBQUMsQ0FBQztZQUNoRSxLQUFJLENBQUMsZUFBZSxHQUFHLEtBQUksQ0FBQyxxQkFBcUIsQ0FBQyxjQUFNLE9BQUEsS0FBSSxDQUFDLEtBQUssRUFBVixDQUFVLEVBQUUsSUFBSSxDQUFDLENBQUM7O1FBQzlFLENBQUM7UUFiQyxjQUFjO1lBSm5CLGdCQUFTLENBQUM7Z0JBQ1AsTUFBTSxFQUFFLE1BQU0sQ0FBQyxNQUFNO2dCQUNyQixTQUFTLEVBQUUsc0JBQXNCO2FBQ3BDLENBQUM7V0FDSSxjQUFjLENBY25CO1FBQUQscUJBQUM7S0FkRCxBQWNDLENBZDRCLG9CQUFhLEdBY3pDO0lBRUQsRUFBRSxDQUFDLHVEQUF1RCxFQUFFO1FBQ3hELElBQU0sU0FBUyxHQUFHLE1BQU0sQ0FBQyxlQUFlLENBQ3BDLGNBQWMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxRQUFRLENBQ25DLENBQUM7UUFFRixnQkFBZ0I7UUFDaEIsSUFBTSxNQUFNLEdBQUcsT0FBTyxDQUFDLFNBQVMsQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUMzQyxTQUFTLENBQUMsSUFBSSxDQUFDLGFBQWE7YUFDdkIsb0JBQW9CLEVBQUU7YUFDdEIsU0FBUyxDQUFDLFVBQUMs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c2Uuc3BlYy5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIF8gZnJvbSAnbG9kYXNoJztcbmltcG9ydCAqIGFzIFJ4IGZyb20gJ3J4JztcbmltcG9ydCAqIGFzIGFuZ3VsYXIgZnJvbSAnYW5ndWxhcic7XG5cbmltcG9ydCB7Q29tcG9uZW50QmFzZSwgY29tcG9uZW50fSBmcm9tICcuL2Jhc2UnO1xuaW1wb3J0IHtkZXNjcmliZUNvbXBvbmVudH0gZnJvbSAnLi4vLi4vdGVzdHMvY29tcG9uZW50JztcblxuZGVzY3JpYmVDb21wb25lbnQoJ2Jhc2UgY29tcG9uZW50JywgW10sICh0ZXN0ZXIpID0+IHtcbiAgICBAY29tcG9uZW50KHtcbiAgICAgICAgbW9kdWxlOiB0ZXN0ZXIubW9kdWxlLFxuICAgICAgICBkaXJlY3RpdmU6ICdnZW4td2F0Y2gtb2JzZXJ2YWJsZScsXG4gICAgfSlcbiAgICBjbGFzcyBEdW1teUNvbXBvbmVudCBleHRlbmRzIENvbXBvbmVudEJhc2Uge1xuICAgICAgICBwdWJsaWMgc3RyOiBzdHJpbmc7XG4gICAgICAgIHB1YmxpYyBzdHJPYnNlcnZhYmxlOiBSeC5PYnNlcnZhYmxlPHN0cmluZz47XG5cbiAgICAgICAgcHVibGljIGFycmF5OiBzdHJpbmdbXSA9IFtdO1xuICAgICAgICBwdWJsaWMgYXJyYXlPYnNlcnZhYmxlOiBSeC5PYnNlcnZhYmxlPHN0cmluZ1tdPjtcblxuICAgICAgICAvLyBAbmdJbmplY3RcbiAgICAgICAgY29uc3RydWN0b3IoJHNjb3BlOiBhbmd1bGFyLklTY29wZSkge1xuICAgICAgICAgICAgc3VwZXIoJHNjb3BlKTtcblxuICAgICAgICAgICAgdGhpcy5zdHJPYnNlcnZhYmxlID0gdGhpcy5jcmVhdGVXYXRjaE9ic2VydmFibGUoKCkgPT4gdGhpcy5zdHIpO1xuICAgICAgICAgICAgdGhpcy5hcnJheU9ic2VydmFibGUgPSB0aGlzLmNyZWF0ZVdhdGNoT2JzZXJ2YWJsZSgoKSA9PiB0aGlzLmFycmF5LCB0cnVlKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGl0KCdzaG91bGQgcmVhY3RpdmVseSB1cGRhdGUgb24gc2hhbGxvdyBjb21wb25lbnQgY2hhbmdlcycsICgpID0+IHtcbiAgICAgICAgY29uc3QgY29tcG9uZW50ID0gdGVzdGVyLmNyZWF0ZUNvbXBvbmVudDxEdW1teUNvbXBvbmVudD4oXG4gICAgICAgICAgICBEdW1teUNvbXBvbmVudC5hc1ZpZXcoKS50ZW1wbGF0ZVxuICAgICAgICApO1xuXG4gICAgICAgIC8vIFRlc3QgdGhpcy5zdHJcbiAgICAgICAgY29uc3Qgc3RyU3B5ID0gamFzbWluZS5jcmVhdGVTcHkoJ3N0clNweScpO1xuICAgICAgICBjb21wb25lbnQuY3RybC5zdHJPYnNlcnZhYmxlXG4gICAgICAgICAgICAuZGlzdGluY3RVbnRpbENoYW5nZWQoKVxuICAgICAgICAgICAgLnN1YnNjcmliZSgodmFsdWUpID0+IHN0clNweShfLmNsb25lRGVlcCh2YWx1ZSkpKTtcblxuICAgICAgICBjb21wb25lbnQuY3RybC5zdHIgPSAnc29tZSB2YWx1ZSc7XG4gICAgICAgIHRlc3Rlci5kaWdlc3QoKTtcblxuICAgICAgICBleHBlY3Qoc3RyU3B5LmNhbGxzLmNvdW50KCkpLnRvQmUoMik7XG4gICAgICAgIGV4cGVjdChzdHJTcHkuY2FsbHMuZmlyc3QoKS5hcmdzWzBdKS50b0JlVW5kZWZpbmVkKCk7XG4gICAgICAgIGV4cGVjdChzdHJTcHkuY2FsbHMubW9zdFJlY2VudCgpLmFyZ3NbMF0pLnRvQmUoJ3NvbWUgdmFsdWUnKTtcbiAgICB9KTtcblxuICAgIGl0KCdzaG91bGQgcmVhY3RpdmVseSB1cGRhdGUgb24gZGVlcCBjb21wb25lbnQgY2hhbmdlcycsICgpID0+IHtcbiAgICAgICAgY29uc3QgY29tcG9uZW50ID0gdGVzdGVyLmNyZWF0ZUNvbXBvbmVudDxEdW1teUNvbXBvbmVudD4oXG4gICAgICAgICAgICBEdW1teUNvbXBvbmVudC5hc1ZpZXcoKS50ZW1wbGF0ZVxuICAgICAgICApO1xuXG4gICAgICAgIC8vIFRlc3QgdGhpcy5hcnJheVxuICAgICAgICBjb25zdCBhcnJheVNweSA9IGphc21pbmUuY3JlYXRlU3B5KCdhcnJheVNweScpO1xuICAgICAgICBjb21wb25lbnQuY3RybC5hcnJheU9ic2VydmFibGVcbiAgICAgICAgICAgIC5maWx0ZXIoKHZhbHVlKSA9PiAhXy5pc0VtcHR5KHZhbHVlKSlcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoKHZhbHVlKSA9PiBhcnJheVNweShfLmNsb25lRGVlcCh2YWx1ZSkpKTtcblxuICAgICAgICBjb21wb25lbnQuY3RybC5hcnJheS5wdXNoKCdzb21lIHZhbHVlJyk7XG4gICAgICAgIHRlc3Rlci5kaWdlc3QoKTtcbiAgICAgICAgY29tcG9uZW50LmN0cmwuYXJyYXkucHVzaCgnc29tZSBvdGhlciB2YWx1ZScpO1xuICAgICAgICB0ZXN0ZXIuZGlnZXN0KCk7XG5cbiAgICAgICAgZXhwZWN0KGFycmF5U3B5LmNhbGxzLmFsbCgpWzBdLmFyZ3NbMF0pLnRvRXF1YWwoWydzb21lIHZhbHVlJ10pO1xuICAgICAgICBleHBlY3QoYXJyYXlTcHkuY2FsbHMuYWxsKClbMV0uYXJnc1swXSkudG9FcXVhbChbJ3NvbWUgdmFsdWUnLCAnc29tZSBvdGhlciB2YWx1ZSddKTtcbiAgICB9KTtcblxuICAgIGl0KCdzaG91bGQgc3VwcG9ydCB3YXRjaCcsICgpID0+IHtcbiAgICAgICAgY29uc3QgY29tcG9uZW50ID0gdGVzdGVyLmNyZWF0ZUNvbXBvbmVudDxEdW1teUNvbXBvbmVudD4oXG4gICAgICAgICAgICBEdW1teUNvbXBvbmVudC5hc1ZpZXcoKS50ZW1wbGF0ZVxuICAgICAgICApO1xuXG4gICAgICAgIC8vIE5vIHdhdGNoIHNob3VsZCBiZSBjcmVhdGVkIGlmIGNvbXB1dGF0aW9uIGlzIGltbWVkaWF0ZWx5IHVuc3Vic2NyaWJlZC5cbiAgICAgICAgbGV0IGV4cHJlc3Npb24gPSAwO1xuICAgICAgICBsZXQgZXhlY3V0ZWQgPSAwO1xuICAgICAgICBsZXQgd2F0Y2hDb21wdXRhdGlvbiA9IGNvbXBvbmVudC5jdHJsLndhdGNoKCgpID0+IGV4cHJlc3Npb24sIChjb21wdXRhdGlvbikgPT4ge1xuICAgICAgICAgICAgZXhlY3V0ZWQrKztcbiAgICAgICAgICAgIGV4cGVjdChjb21wdXRhdGlvbi5pc0RvbmUoKSkudG9CZUZhbHN5KCk7XG4gICAgICAgICAgICBjb21wdXRhdGlvbi51bnN1YnNjcmliZSgpO1xuICAgICAgICB9KTtcbiAgICAgICAgZXhwZWN0KHdhdGNoQ29tcHV0YXRpb24uaXNEb25lKCkpLnRvQmVUcnV0aHkoKTtcblxuICAgICAgICBleHByZXNzaW9uID0gMTtcbiAgICAgICAgdGVzdGVyLmRpZ2VzdCgpO1xuICAgICAgICBleHBlY3QoZXhlY3V0ZWQpLnRvQmUoMSk7XG5cbiAgICAgICAgLy8gQ2hlY2sgdGhhdCB3YXRjaGluZyB3b3JrcyBjb3JyZWN0bHkuXG4gICAgICAgIGV4cHJlc3Npb24gPSAwO1xuICAgICAgICBleGVjdXRlZCA9IDA7XG4gICAgICAgIHdhdGNoQ29tcHV0YXRpb24gPSBjb21wb25lbnQuY3RybC53YXRjaCgoKSA9PiBleHByZXNzaW9uLCAoY29tcHV0YXRpb24pID0+IHtcbiAgICAgICAgICAgIGV4ZWN1dGVkKys7XG4gICAgICAgICAgICBpZiAoZXhlY3V0ZWQgPiAyKSBjb21wdXRhdGlvbi51bnN1YnNjcmliZSgpO1xuICAgICAgICB9KTtcbiAgICAgICAgZXhwZWN0KHdhdGNoQ29tcHV0YXRpb24uaXNEb25lKCkpLnRvQmVGYWxzeSgpO1xuXG4gICAgICAgIGV4cHJlc3Npb24gPSAxO1xuICAgICAgICB0ZXN0ZXIuZGlnZXN0KCk7XG4gICAgICAgIC8vIEp1c3QgdG8gY2hlY2sgdGhhdCB3YXRjaCBpcyBvbmx5IGV2YWx1YXRlZCB3aGVuIHRoZSBleHByZXNzaW9uIGNoYW5nZXMuXG4gICAgICAgIHRlc3Rlci5kaWdlc3QoKTtcbiAgICAgICAgZXhwZWN0KGV4ZWN1dGVkKS50b0JlKDIpO1xuXG4gICAgICAgIGV4cHJlc3Npb24gPSAyO1xuICAgICAgICB0ZXN0ZXIuZGlnZXN0KCk7XG4gICAgICAgIGV4cGVjdChleGVjdXRlZCkudG9CZSgzKTtcblxuICAgICAgICAvLyBDaGVjayB0aGF0IHVuc3Vic2NyaWJlIGFjdHVhbGx5IHN0b3BzIHRoZSB3YXRjaC5cbiAgICAgICAgZXhwcmVzc2lvbiA9IDM7XG4gICAgICAgIHRlc3Rlci5kaWdlc3QoKTtcbiAgICAgICAgZXhwZWN0KGV4ZWN1dGVkKS50b0JlKDMpO1xuICAgIH0pO1xufSk7XG5cblxuIl19

@@ -78,2 +78,1 @@ import { StatefulComponentBase } from './stateful';

}
//# sourceMappingURL=manager.d.ts.map

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

/// <reference types="angular" />
import * as angular from 'angular';

@@ -109,3 +110,3 @@ import { SharedStoreManager } from '../shared_store/index';

*/
private _findParentComponent;
private _findParentComponent();
/**

@@ -116,3 +117,3 @@ * Registers a new child of this stateful component.

*/
private _registerChild;
private _registerChild(child);
/**

@@ -123,3 +124,3 @@ * Unregisters an existing child of this stateful component.

*/
private _unregisterChild;
private _unregisterChild(child);
/**

@@ -167,3 +168,3 @@ * Returns the parent stateful component.

*/
private _getStateMetadata;
private _getStateMetadata(name);
/**

@@ -200,2 +201,1 @@ * Saves this component's current state and returns it.

export declare function sharedState(name?: string): (target: StatefulComponentBase, propertyKey: string) => void;
//# sourceMappingURL=stateful.d.ts.map
"use strict";
var __extends = (this && this.__extends) || (function () {
var extendStatics = function (d, b) {
extendStatics = Object.setPrototypeOf ||
({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
return extendStatics(d, b);
}
var extendStatics = Object.setPrototypeOf ||
({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
return function (d, b) {

@@ -396,3 +393,2 @@ extendStatics(d, b);

};
var StatefulComponentBase_1;
StatefulComponentBase = StatefulComponentBase_1 = __decorate([

@@ -407,2 +403,3 @@ base_1.component({

return StatefulComponentBase;
var StatefulComponentBase_1;
}(base_1.ComponentBase));

@@ -445,2 +442,2 @@ exports.StatefulComponentBase = StatefulComponentBase;

//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9jb3JlL2NvbXBvbmVudHMvc3RhdGVmdWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsMEJBQTRCO0FBQzVCLGlDQUFtQztBQUVuQyx5Q0FBeUM7QUFHekMsK0JBQXNGO0FBR3RGO0lBQ0ksMkJBQW1CLFlBQW9CLEVBQVMsTUFBZTtRQUE1QyxpQkFBWSxHQUFaLFlBQVksQ0FBUTtRQUFTLFdBQU0sR0FBTixNQUFNLENBQVM7SUFDL0QsQ0FBQztJQUVNLHNEQUEwQixHQUFqQztRQUNJLE9BQU8sbUJBQW1CLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQztJQUNuRCxDQUFDO0lBQ0wsd0JBQUM7QUFBRCxDQVBBLEFBT0MsSUFBQTtBQVBZLDhDQUFpQjtBQWlCOUI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0F1REc7QUFPSDtJQUFvRCx5Q0FBYTtJQW9CN0QsWUFBWTtJQUNaLCtCQUFZLE1BQXNCLEVBQUUsWUFBMEI7UUFBOUQsWUFDSSxrQkFBTSxNQUFNLENBQUMsU0FJaEI7UUFuQkQsOEJBQThCO1FBQ3RCLGFBQU8sR0FBMEIsSUFBSSxDQUFDO1FBQzlDLHdDQUF3QztRQUNoQyxlQUFTLEdBQTRCLEVBQUUsQ0FBQztRQUtoRCw0Q0FBNEM7UUFDcEMsbUNBQTZCLEdBQWtDLEVBQUUsQ0FBQztRQUMxRSxtQ0FBbUM7UUFDM0IsK0JBQXlCLEdBQW1CLEVBQUUsQ0FBQztRQU1uRCxLQUFJLENBQUMsYUFBYSxHQUFHLFlBQVksQ0FBQztRQUNsQyxLQUFJLENBQUMsbUJBQW1CLEdBQUcsWUFBWSxDQUFDLGtCQUFrQixDQUFDOztJQUMvRCxDQUFDOzhCQTFCaUIscUJBQXFCO0lBNEJoQywrQ0FBZSxHQUF0QjtRQUFBLGlCQWtDQztRQWpDRyxpQkFBTSxlQUFlLFdBQUUsQ0FBQztRQUV4QixtRUFBbUU7UUFDbkUsSUFBSSxDQUFDLENBQUMsT0FBTyxD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QWEsR0EwVWhFO0FBMVVxQixzREFBcUI7QUE0VTNDOzs7OztHQUtHO0FBQ0gsU0FBZ0IsS0FBSyxDQUFDLElBQWEsRUFBRSxNQUF1QjtJQUF2Qix1QkFBQSxFQUFBLGNBQXVCO0lBQ3hELE9BQU8sVUFBQyxNQUE2QixFQUFFLFdBQW1CO1FBQ3RELElBQUksQ0FBQyxJQUFJO1lBQUUsSUFBSSxHQUFHLFdBQVcsQ0FBQztRQUU5QixJQUFJLElBQUksQ0FBQyxDQUFDLENBQUMsS0FBSyxHQUFHLEVBQUU7WUFDakIsTUFBTSxJQUFJLGdCQUFRLENBQUMsNkRBQTZELENBQUMsQ0FBQztTQUNyRjtRQUVELElBQUksQ0FBQyxNQUFNLENBQUMsZUFBZSxFQUFFO1lBQ3pCLE1BQU0sQ0FBQyxlQUFlLEdBQUcsRUFBRSxDQUFDO1NBQy9CO1FBRUQsSUFBSSxNQUFNLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxFQUFFO1lBQzlCLE1BQU0sSUFBSSxnQkFBUSxDQUFDLDhCQUE4QixHQUFHLElBQUksR0FBRywyQkFBMkIsR0FBRyxNQUFNLEdBQUcsSUFBSSxDQUFDLENBQUM7U0FDM0c7UUFDRCxNQUFNLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxHQUFHLElBQUksaUJBQWlCLENBQUMsV0FBVyxFQUFFLE1BQU0sQ0FBQyxDQUFDO0lBQzlFLENBQUMsQ0FBQztBQUNOLENBQUM7QUFqQkQsc0JBaUJDO0FBRUQ7Ozs7O0dBS0c7QUFDSCxTQUFnQixXQUFXLENBQUMsSUFBYTtJQUNyQyxPQUFPLEtBQUssQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLENBQUM7QUFDN0IsQ0FBQztBQUZELGtDQUVDIiwiZmlsZSI6ImNvcmUvY29tcG9uZW50cy9zdGF0ZWZ1bC5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIF8gZnJvbSAnbG9kYXNoJztcbmltcG9ydCAqIGFzIGFuZ3VsYXIgZnJvbSAnYW5ndWxhcic7XG5cbmltcG9ydCB7R2VuRXJyb3J9IGZyb20gJy4uL2Vycm9ycy9lcnJvcic7XG5pbXBvcnQge1NoYXJlZFN0b3JlLCBTaGFyZWRTdG9yZU1hbmFnZXJ9IGZyb20gJy4uL3NoYXJlZF9zdG9yZS9pbmRleCc7XG5cbmltcG9ydCB7Q29tcG9uZW50QmFzZSwgY29tcG9uZW50LCBDb21wb25lbnRDb25maWd1cmF0aW9uLCBTdWJzY3JpcHRpb259IGZyb20gJy4vYmFzZSc7XG5pbXBvcnQge1N0YXRlTWFuYWdlcn0gZnJvbSAnLi9tYW5hZ2VyJztcblxuZXhwb3J0IGNsYXNzIFN0YXRlSXRlbU1ldGFkYXRhIHtcbiAgICBjb25zdHJ1Y3RvcihwdWJsaWMgcHJvcGVydHlOYW1lOiBzdHJpbmcsIHB1YmxpYyBzaGFyZWQ6IGJvb2xlYW4pIHtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0U2hhcmVkU3RvcmVOYW1lUHJvcGVydHkoKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuICdfc2hhcmVkU3RvcmVOYW1lXycgKyB0aGlzLnByb3BlcnR5TmFtZTtcbiAgICB9XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgU3RhdGVNZXRhZGF0YSB7XG4gICAgW2luZGV4OiBzdHJpbmddOiBTdGF0ZUl0ZW1NZXRhZGF0YTtcbn1cblxuaW50ZXJmYWNlIFNoYXJlZFN0b3JlU3Vic2NyaWJlUmVxdWVzdCB7XG4gICAgKCk6IHZvaWQ7XG59XG5cbi8qKlxuICogQSBjb21wb25lbnQgd2hpY2ggY29udGFpbnMgc3RhdGUgdGhhdCBtYXkgYmUgc2F2ZWQgYW5kIHJlbG9hZGVkIGxhdGVyLiBTdWNoXG4gKiBzdGF0ZWZ1bCBjb21wb25lbnRzIGFyZSBhdXRvbWF0aWNhbGx5IG9yZ2FuaXplZCBpbnRvIGEgaGllcmFyY2h5LCBzbyB0aGF0XG4gKiBwYXJlbnRzIGFsc28gc3RvcmUgc3RhdGUgZm9yIGFsbCB0aGVpciBjaGlsZHJlbi4gQ2FsbGluZyBgc2F2ZVN0YXRlYCBvbiB0aGVcbiAqIHRvcC1sZXZlbCBjb21wb25lbnQgd2lsbCB0aGVyZWZvcmUgc2F2ZSB0aGUgc3RhdGUgb2YgdGhlIGNvbXBsZXRlIGFwcGxpY2F0aW9uLlxuICpcbiAqIENvbXBvbmVudCBzdGF0ZSBpcyBkZWZpbmVkIGJ5IHVzaW5nIHByb3BlcnR5IGRlY29yYXRvcnMgYXMgZm9sbG93czpcbiAqIGBgYFxuICogZXhwb3J0IGNsYXNzIFByb2Nlc3NHcm91cHMgZXh0ZW5kcyBWaWV3Q29tcG9uZW50IHtcbiAqICAgICBAc3RhdGUoKSBwdWJsaWMgc2VsZWN0ZWRHcm91cDogbnVtYmVyO1xuICpcbiAqICAgICAvLyAuLi5cbiAqIH1cbiAqIGBgYFxuICpcbiAqIEl0IG1heSBiZSB0aGVuIHJlZmVyZW5jZWQgYW5kIHdhdGNoZWQgZnJvbSB0aGUgY29udHJvbGxlciBvciB0ZW1wbGF0ZXMgYW5kXG4gKiB3aWxsIGF1dG9tYXRpY2FsbHkgYmUgc2F2ZWQgd2hlbiBjYWxsaW5nIFtbU3RhdGVmdWxDb21wb25lbnRCYXNlLnNhdmVTdGF0ZV1dXG4gKiBhbmQgcmVsb2FkZWQgd2hlbiBjYWxsaW5nIFtbU3RhdGVmdWxDb21wb25lbnRCYXNlLmxvYWRTdGF0ZV1dLlxuICpcbiAqIEEgcmVsYXRlZCBkZWNvcmF0b3IgbWF5IGJlIHVzZWQgdG8gZGVjbGFyZSBzdGF0ZSwgd2hpY2ggaXMgc2hhcmVkIGJldHdlZW5cbiAqIG11bHRpcGxlIGNvbXBvbmVudHM6XG4gKiBgYGBcbiAqIGV4cG9ydCBjbGFzcyBXaWRnZXRSb3NlMiBleHRlbmRzIFdpZGdldEJhc2Uge1xuICogICAgIEBzaGFyZWRTdGF0ZSgpIHB1YmxpYyBzZWxlY3RlZFZhbHVlOiBTaGFyZWRTdG9yZTx0eXBlcy5EYXRhPjtcbiAqXG4gKiAgICAgLy8gLi4uXG4gKiB9XG4gKiBgYGBcbiAqXG4gKiBTZWUgW1tTaGFyZWRTdG9yZU1hbmFnZXJdXSBhbmQgW1tTaGFyZWRTdG9yZV1dIGZvciBtb3JlIGRvY3VtZW50YXRpb24gb25cbiAqIGRlZmluaW5nIHNoYXJlZCBzdGF0ZSB1c2luZyBzaGFyZWQgc3RvcmVzLlxuICpcbiAqIEZvciBleGFtcGxlLCBpZiBhIHN0YXRlZnVsIGNvbXBvbmVudCBkZWZpbmVzIGEgc2hhcmVkIHN0YXRlIHByb3BlcnR5IGNhbGxlZFxuICogYHNlbGVjdGVkVmFsdWVgIChhcyBzaG93biBhYm92ZSkgYW5kIHlvdSB3YW50IHRvIGxpbmsgaXQgd2l0aCB0aGUgc2hhcmVkIHN0b3JlXG4gKiBuYW1lZCBgcm9zZTItc2VsZWN0ZWQtZGF0YS1pdGVtYCwgeW91IGNhbiBkbyB0aGUgZm9sbG93aW5nIGluIHlvdXIgdGVtcGxhdGU6XG4gKiBgYGBodG1sXG4gKiA8Z2VuLXdpZGdldC1yb3NlMiBzdG9yZS1zZWxlY3RlZC12YWx1ZT1cInJvc2UyLXNlbGVjdGVkLWRhdGEtaXRlbVwiPjwvZ2VuLXdpZGdldC1yb3NlMj5cbiAqIGBgYFxuICpcbiAqIE5vdGUgdGhhdCB0aGUgdGVtcGxhdGUgYXR0cmlidXRlIG5hbWUgaXMgcHJlZml4ZWQgd2l0aCBgc3RvcmVgIGV2ZW4gd2hlbiB0aGVcbiAqIHByb3BlcnR5IGlzIGNhbGxlZCBqdXN0IGBzZWxlY3RlZFZhbHVlYC4gVGhpcyBpcyBkb25lIGJlY2F1c2Ugd2hhdCB5b3UgcGFzc1xuICogaW4gdGhlIHRlbXBsYXRlIGlzIGp1c3QgYSBuYW1lIG9mIHRoZSBzdG9yZSwgd2hpY2ggbXVzdCBiZSByZXNvbHZlZCB1c2luZyB0aGVcbiAqIHNoYXJlZCBzdG9yZSBtYW5hZ2VyLlxuICpcbiAqIEluc2lkZSB0aGUgY29tcG9uZW50cyB5b3UgY2FuIHRoZW4gZGlzcGF0Y2ggYW5kIHN1YnNjcmliZSB0byB0aGUgdW5kZXJseWluZ1xuICogc3RvcmU6XG4gKiBgYGBcbiAqIC8vIFB1Ymxpc2ggc29tZXRoaW5nIGJ5IGRpc3BhdGNoaW5nIGFuIGFjdGlvbiB0byB0aGUgc2hhcmVkIHN0b3JlLlxuICogdGhpcy5zZWxlY3RlZFZhbHVlLmRpc3BhdGNoKHt0eXBlOiBBY3Rpb25zLlNFVCwgdmFsdWU6IDQyfSk7XG4gKlxuICogLy8gU3Vic2NyaWJlIHRvIHVwZGF0ZXMgb2YgdGhlIHNoYXJlZCBzdG9yZS5cbiAqIHRoaXMuc3Vic2NyaWJlU2hhcmVkU3RhdGUoJ3NlbGVjdGVkVmFsdWUnLCAoZGF0YSkgPT4ge1xuICogICAgIGNvbnNvbGUubG9nKFwiU2hhcmVkIHN0YXRlICdzZWxlY3RlZFZhbHVlJyBpcyBub3dcIiwgZGF0YSk7XG4gKiB9KTtcbiAqIGBgYFxuICovXG5AY29tcG9uZW50KHtcbiAgICBhYnN0cmFjdDogdHJ1ZSxcbiAgICBiaW5kaW5nczoge1xuICAgICAgICBzdGF0ZUlkOiAnQHN0YXRlSWQnLFxuICAgIH0sXG59KVxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIFN0YXRlZnVsQ29tcG9uZW50QmFzZSBleHRlbmRzIENvbXBvbmVudEJhc2Uge1xuICAgIC8vLyBNZXRhZGF0YSBhYm91dCB0aGUgc3RhdGUgZGVmaW5lZCBvbiB0aGUgY29tcG9uZW50LlxuICAgIHB1YmxpYyBfX3N0YXRlTWV0YWRhdGE6IFN0YXRlTWV0YWRhdGE7XG4gICAgLy8vIFRoaXMgY29tcG9uZW50J3MgbG9jYWwgc3RhdGUgaWRlbnRpZmllci5cbiAgICBwdWJsaWMgc3RhdGVJZDogc3RyaW5nO1xuICAgIC8vLyBUaGlzIGNvbXBvbmVudCdzIGdsb2JhbCBzdGF0ZSBpZGVudGlmaWVyLlxuICAgIHB1YmxpYyBnbG9iYWxTdGF0ZUlkOiBzdHJpbmc7XG4gICAgLy8vIFBhcmVudCBzdGF0ZWZ1bCBjb21wb25lbnQuXG4gICAgcHJpdmF0ZSBfcGFyZW50OiBTdGF0ZWZ1bENvbXBvbmVudEJhc2UgPSBudWxsO1xuICAgIC8vLyBBIGxpc3Qgb2YgY2hpbGQgc3RhdGVmdWwgY29tcG9uZW50cy5cbiAgICBwcml2YXRlIF9jaGlsZHJlbjogU3RhdGVmdWxDb21wb25lbnRCYXNlW10gPSBbXTtcbiAgICAvLy8gU3RhdGUgbWFuYWdlci5cbiAgICBwcml2YXRlIF9zdGF0ZU1hbmFnZXI6IFN0YXRlTWFuYWdlcjtcbiAgICAvLy8gU2hhcmVkIHN0b3JlIG1hbmFnZXIuXG4gICAgcHJpdmF0ZSBfc2hhcmVkU3RvcmVNYW5hZ2VyOiBTaGFyZWRTdG9yZU1hbmFnZXI7XG4gICAgLy8vIFN1YnNjcmlwdGlvbiByZXF1ZXN0cyBmb3Igc2hhcmVkIHN0b3Jlcy5cbiAgICBwcml2YXRlIF9zaGFyZWRTdG9yZVN1YnNjcmliZVJlcXVlc3RzOiBTaGFyZWRTdG9yZVN1YnNjcmliZVJlcXVlc3RbXSA9IFtdO1xuICAgIC8vLyBTdWJzY3JpcHRpb25zIHRvIHNoYXJlZCBzdG9yZXMuXG4gICAgcHJpdmF0ZSBfc2hhcmVkU3RvcmVTdWJzY3JpcHRpb25zOiBTdWJzY3JpcHRpb25bXSA9IFtdO1xuXG4gICAgLy8gQG5nSW5qZWN0XG4gICAgY29uc3RydWN0b3IoJHNjb3BlOiBhbmd1bGFyLklTY29wZSwgc3RhdGVNYW5hZ2VyOiBTdGF0ZU1hbmFnZXIpIHtcbiAgICAgICAgc3VwZXIoJHNjb3BlKTtcblxuICAgICAgICB0aGlzLl9zdGF0ZU1hbmFnZXIgPSBzdGF0ZU1hbmFnZXI7XG4gICAgICAgIHRoaXMuX3NoYXJlZFN0b3JlTWFuYWdlciA9IHN0YXRlTWFuYWdlci5zaGFyZWRTdG9yZU1hbmFnZXI7XG4gICAgfVxuXG4gICAgcHVibGljIG9uQ29tcG9uZW50SW5pdCgpIHtcbiAgICAgICAgc3VwZXIub25Db21wb25lbnRJbml0KCk7XG5cbiAgICAgICAgLy8gV2hlbiBzdGF0ZSBpZGVudGlmaWVyIGlzIG5vdCBkZWZpbmVkLCBkZWZhdWx0IHRvIGRpcmVjdGl2ZSBuYW1lLlxuICAgICAgICBpZiAoXy5pc0VtcHR5KHRoaXMuc3RhdGVJZCkpIHtcbiAgICAgICAgICAgIHRoaXMuc3RhdGVJZCA9IHRoaXMuZ2V0Q29uZmlnKCkuZGlyZWN0aXZlO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gRGV0ZXJtaW5lIG91ciBwYXJlbnQgYW5kIHJlZ2lzdGVyIG91cnNlbHZlcyB3aXRoIGl0LlxuICAgICAgICB0aGlzLl9wYXJlbnQgPSB0aGlzLl9maW5kUGFyZW50Q29tcG9uZW50KCk7XG4gICAgICAgIGlmICh0aGlzLl9wYXJlbnQpIHtcbiAgICAgICAgICAgIHRoaXMuX3BhcmVudC5fcmVnaXN0ZXJDaGlsZCh0aGlzKTtcbiAgICAgICAgICAgIHRoaXMuZ2xvYmFsU3RhdGVJZCA9IHRoaXMuX3BhcmVudC5nbG9iYWxTdGF0ZUlkICsgJy0nICsgdGhpcy5zdGF0ZUlkO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5fc3RhdGVNYW5hZ2VyLmFkZFRvcExldmVsQ29tcG9uZW50KHRoaXMpO1xuICAgICAgICAgICAgdGhpcy5nbG9iYWxTdGF0ZUlkID0gdGhpcy5zdGF0ZUlkO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gQ2hlY2sgaWYgdGhlcmUgaXMgYW55IHBlbmRpbmcgc3RhdGUgZm9yIHVzLlxuICAgICAgICB0aGlzLl9zdGF0ZU1hbmFnZXIubG9hZFBlbmRpbmdDb21wb25lbnRTdGF0ZSh0aGlzKTtcblxuICAgICAgICAvLyBBdXRvbWF0aWNhbGx5IGxvYWQgYW55IGNvbmZpZ3VyZWQgc2hhcmVkIHN0YXRlLlxuICAgICAgICBjb25zdCBzdGF0ZU1ldGFkYXRhID0gdGhpcy5fX3N0YXRlTWV0YWRhdGE7XG4gICAgICAgIF8uZm9yT3duKHN0YXRlTWV0YWRhdGEsIChtZXRhZGF0YSkgPT4ge1xuICAgICAgICAgICAgaWYgKG1ldGFkYXRhLnNoYXJlZCkge1xuICAgICAgICAgICAgICAgIGNvbnN0IHNoYXJlZFN0b3JlTmFtZSA9IHRoaXNbbWV0YWRhdGEuZ2V0U2hhcmVkU3RvcmVOYW1lUHJvcGVydHkoKV07XG4gICAgICAgICAgICAgICAgaWYgKCFfLmlzRW1wdHkoc2hhcmVkU3RvcmVOYW1lKSkge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBzdG9yZSA9IHRoaXMuX3NoYXJlZFN0b3JlTWFuYWdlci5nZXRTdG9yZShzaGFyZWRTdG9yZU5hbWUpO1xuICAgICAgICAgICAgICAgICAgICB0aGlzW21ldGFkYXRhLnByb3BlcnR5TmFtZV0gPSBzdG9yZTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICB0aGlzLl9zZXR1cFNoYXJlZFN0b3JlKG1ldGFkYXRhLnByb3BlcnR5TmFtZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFNldHMgdXAgdGhlIHNoYXJlZCBzdG9yZS4gVGhpcyBtZXRob2QgbWF5IGJlIG92ZXJyaWRlbiBieSBzdWJjbGFzc2VzIHdoZW4gc29tZXRoaW5nXG4gICAgICogZGlmZmVyZW50IHNob3VsZCBiZSBkb25lIGhlcmUuXG4gICAgICpcbiAgICAgKiBAcGFyYW0ge3N0b3JlfSBTaGFyZWQgc3RhdGVcbiAgICAgKi9cbiAgICBwcm90ZWN0ZWQgX3NldHVwU2hhcmVkU3RvcmUoc3RvcmU6IHN0cmluZyk6IHZvaWQge1xuICAgICAgICAvLyBTdWJzY3JpYmUgdG8gc2hhcmVkIHN0b3JlLCBzbyB0aGF0IHRoaXMgY29tcG9uZW50J3Mgc2NvcGUgZ2V0cyB1cGRhdGVkIHdoZW4gdGhlXG4gICAgICAgIC8vIHZhbHVlIGluIHRoZSBzdG9yZSBpcyB1cGRhdGVkLlxuICAgICAgICB0aGlzLnN1YnNjcmliZVNoYXJlZFN0YXRlKHN0b3JlLCBfLm5vb3ApO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFJldHVybnMgdGhlIHN0YXRlIG1hbmFnZXIuXG4gICAgICovXG4gICAgcHVibGljIGdldCBzdGF0ZU1hbmFnZXIoKTogU3RhdGVNYW5hZ2VyIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3N0YXRlTWFuYWdlcjtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBSZXR1cm5zIHRoZSBzaGFyZWQgc3RvcmUgbWFuYWdlci5cbiAgICAgKi9cbiAgICBwcm90ZWN0ZWQgZ2V0IHNoYXJlZFN0b3JlTWFuYWdlcigpOiBTaGFyZWRTdG9yZU1hbmFnZXIge1xuICAgICAgICByZXR1cm4gdGhpcy5fc2hhcmVkU3RvcmVNYW5hZ2VyO1xuICAgIH1cblxuICAgIHB1YmxpYyBvbkNvbXBvbmVudERlc3Ryb3llZCgpOiB2b2lkIHtcbiAgICAgICAgLy8gU2F2ZSBjdXJyZW50IGNvbXBvbmVudCBzdGF0ZSwgc28gaXQgd2lsbCBiZSBhdmFpbGFibGUgd2hlbiB0aGlzIGNvbXBvbmVudFxuICAgICAgICAvLyBpcyBpbnN0YW50aWF0ZWQgYWdhaW4uXG4gICAgICAgIHRoaXMuX3N0YXRlTWFuYWdlci5zYXZlUGVuZGluZ0NvbXBvbmVudFN0YXRlKHRoaXMpO1xuXG4gICAgICAgIGlmICh0aGlzLl9wYXJlbnQpIHtcbiAgICAgICAgICAgIHRoaXMuX3BhcmVudC5fdW5yZWdpc3RlckNoaWxkKHRoaXMpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5fc3RhdGVNYW5hZ2VyLnJlbW92ZVRvcExldmVsQ29tcG9uZW50KHRoaXMpO1xuICAgICAgICB9XG5cbiAgICAgICAgc3VwZXIub25Db21wb25lbnREZXN0cm95ZWQoKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBUaGlzIG1ldGhvZCB3aWxsIGJlIGNhbGxlZCBhZnRlciB0aGUgY29tcG9uZW50J3Mgc3RhdGUgaGFzIGJlZW4gbG9hZGVkLlxuICAgICAqL1xuICAgIHB1YmxpYyBvbkNvbXBvbmVudFN0YXRlQWZ0ZXJMb2FkKCk6IHZvaWQge1xuICAgICAgICAvLyBEbyBub3RoaW5nIGJ5IGRlZmF1bHQuXG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogVGhpcyBtZXRob2Qgd2lsbCBiZSBjYWxsZWQgYmVmb3JlIHRoZSBjb21wb25lbnQncyBzdGF0ZSBoYXMgYmVlbiBzYXZlZC5cbiAgICAgKi9cbiAgICBwdWJsaWMgb25Db21wb25lbnRTdGF0ZVByZVNhdmUoKTogdm9pZCB7XG4gICAgICAgIC8vIERvIG5vdGhpbmcgYnkgZGVmYXVsdC5cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBEaXNjb3ZlcnMgdGhlIHBhcmVudCBzdGF0ZWZ1bCBjb21wb25lbnQuXG4gICAgICovXG4gICAgcHJpdmF0ZSBfZmluZFBhcmVudENvbXBvbmVudCgpOiBTdGF0ZWZ1bENvbXBvbmVudEJhc2Uge1xuICAgICAgICBsZXQgc2NvcGUgPSB0aGlzLiRzY29wZS4kcGFyZW50O1xuICAgICAgICB3aGlsZSAoc2NvcGUpIHtcbiAgICAgICAgICAgIGlmIChzY29wZVsnY3RybCddIGluc3RhbmNlb2YgU3RhdGVmdWxDb21wb25lbnRCYXNlKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHNjb3BlWydjdHJsJ107XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHNjb3BlID0gc2NvcGUuJHBhcmVudDtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBudWxsO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFJlZ2lzdGVycyBhIG5ldyBjaGlsZCBvZiB0aGlzIHN0YXRlZnVsIGNvbXBvbmVudC5cbiAgICAgKlxuICAgICAqIEBwYXJhbSB7U3RhdGVmdWxDb21wb25lbnRCYXNlfSBjaGlsZCBDaGlsZCBjb21wb25lbnQgaW5zdGFuY2VcbiAgICAgKi9cbiAgICBwcml2YXRlIF9yZWdpc3RlckNoaWxkKGNoaWxkOiBTdGF0ZWZ1bENvbXBvbmVudEJhc2UpIHtcbiAgICAgICAgLy8gRW5zdXJlIHRoZSBjaGlsZCdzIGxvY2FsIHN0YXRlIGlkIGlzIHVuaXF1ZS5cbiAgICAgICAgaWYgKF8uYW55KHRoaXMuX2NoaWxkcmVuLCAoYykgPT4gYy5zdGF0ZUlkID09PSBjaGlsZC5zdGF0ZUlkKSkge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEdlbkVycm9yKFwiRHVwbGljYXRlIHN0YXRlZnVsIGNvbXBvbmVudCBzdGF0ZSBpZGVudGlmaWVyICdcIiArIGNoaWxkLnN0YXRlSWQgKyBcIicuXCIpO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5fY2hpbGRyZW4ucHVzaChjaGlsZCk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogVW5yZWdpc3RlcnMgYW4gZXhpc3RpbmcgY2hpbGQgb2YgdGhpcyBzdGF0ZWZ1bCBjb21wb25lbnQuXG4gICAgICpcbiAgICAgKiBAcGFyYW0ge1N0YXRlZnVsQ29tcG9uZW50QmFzZX0gY2hpbGQgQ2hpbGQgY29tcG9uZW50IGluc3RhbmNlXG4gICAgICovXG4gICAgcHJpdmF0ZSBfdW5yZWdpc3RlckNoaWxkKGNoaWxkOiBTdGF0ZWZ1bENvbXBvbmVudEJhc2UpIHtcbiAgICAgICAgdGhpcy5fY2hpbGRyZW4gPSBfLndpdGhvdXQodGhpcy5fY2hpbGRyZW4sIGNoaWxkKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBSZXR1cm5zIHRoZSBwYXJlbnQgc3RhdGVmdWwgY29tcG9uZW50LlxuICAgICAqL1xuICAgIHB1YmxpYyBwYXJlbnRDb21wb25lbnQoKTogU3RhdGVmdWxDb21wb25lbnRCYXNlIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3BhcmVudDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBSZXR1cm5zIGEgbGlzdCBvZiBjaGlsZCBzdGF0ZWZ1bCBjb21wb25lbnRzLlxuICAgICAqL1xuICAgIHB1YmxpYyBjaGlsZENvbXBvbmVudHMoKTogU3RhdGVmdWxDb21wb25lbnRCYXNlW10ge1xuICAgICAgICByZXR1cm4gXy5jbG9uZSh0aGlzLl9jaGlsZHJlbik7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogRmluZHMgYSBjaGlsZCBjb21wb25lbnQgYnkgaXRzIHN0YXRlIGlkZW50aWZpZXIuXG4gICAgICpcbiAgICAgKiBAcGFyYW0ge3N0cmluZ30gc3RhdGVJZCBDaGlsZCdzIHN0YXRlIGlkZW50aWZpZXJcbiAgICAgKiBAcmV0dXJuIHtTdGF0ZWZ1bENvbXBvbmVudEJhc2V9IENoaWxkIGNvbXBvbmVudCBpbnN0YW5jZVxuICAgICAqL1xuICAgIHB1YmxpYyBnZXRDaGlsZENvbXBvbmVudDxUIGV4dGVuZHMgU3RhdGVmdWxDb21wb25lbnRCYXNlPihzdGF0ZUlkOiBzdHJpbmcpOiBUIHtcbiAgICAgICAgcmV0dXJuIDxUPiBfLmZpbmQodGhpcy5fY2hpbGRyZW4sIChjaGlsZCkgPT4gY2hpbGQuc3RhdGVJZCA9PT0gc3RhdGVJZCk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogU3Vic2NyaWJlcyB0byBzaGFyZWQgc3RhdGUuIFRoaXMgaXMgdGhlIHNhbWUgYXMgYSBub3JtYWwgc3Vic2NyaWJlLCBidXQgaW5cbiAgICAgKiBhZGRpdGlvbiBpdCBhbHNvIHByb3Blcmx5IGhhbmRsZXMgdW5kZXJseWluZyBkYXRhIHN0b3JlIGNoYW5nZXMgd2hlblxuICAgICAqIGNvbXBvbmVudCBzdGF0ZSBpcyByZWxvYWRlZC5cbiAgICAgKlxuICAgICAqIFRoZSB2YWx1ZSBvYnNlcnZlZCBmcm9tIHRoZSBzaGFyZWQgc3RvcmUgTVVTVCBOT1QgYmUgbXV0YXRlZCBpbiBhbnkgd2F5IGFzXG4gICAgICogZG9pbmcgc28gbWF5IGNhdXNlIHVuZGVmaW5lZCBiZWhhdmlvci4gSWYgeW91IG5lZWQgdG8gbXV0YXRlIHRoZSBvYnNlcnZlZFxuICAgICAqIHZhbHVlLCB1c2UgW1tzdWJzY3JpYmVTaGFyZWRTdGF0ZU11dGFibGVdXSBpbnN0ZWFkLlxuICAgICAqXG4gICAgICogQHBhcmFtIHtzdHJpbmd9IG5hbWUgTmFtZSBvZiBzaGFyZWQgc3RhdGVcbiAgICAgKiBAcGFyYW0gY2FsbGJhY2sgQ2FsbGJhY2sgdG8gYmUgaW52b2tlZCBvbiBzdWJzY3JpcHRpb25cbiAgICAgKi9cbiAgICBwdWJsaWMgc3Vic2NyaWJlU2hhcmVkU3RhdGUobmFtZTogc3RyaW5nLCBjYWxsYmFjazogKHZhbHVlOiBhbnkpID0+IHZvaWQpOiB2b2lkIHtcbiAgICAgICAgY29uc3Qgc3RvcmVNZXRhZGF0YSA9IHRoaXMuX2dldFN0YXRlTWV0YWRhdGEobmFtZSk7XG4gICAgICAgIGlmICghc3RvcmVNZXRhZGF0YSB8fCAhc3RvcmVNZXRhZGF0YS5zaGFyZWQpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBHZW5FcnJvcihcIlNoYXJlZCBzdGF0ZSAnXCIgKyBuYW1lICsgXCInIG5vdCBmb3VuZC5cIik7XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBzdWJzY3JpYmVyID0gKCkgPT4ge1xuICAgICAgICAgICAgY29uc3Qgc3RvcmU6IFNoYXJlZFN0b3JlPGFueSwgYW55PiA9IHRoaXNbc3RvcmVNZXRhZGF0YS5wcm9wZXJ0eU5hbWVdO1xuICAgICAgICAgICAgaWYgKCFzdG9yZSkge1xuICAgICAgICAgICAgICAgIC8vIEBpZm5kZWYgR0VOSlNfUFJPRFVDVElPTlxuICAgICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgR2VuRXJyb3IoYElnbm9yZWQgbWlzc2luZyBzdG9yZTogJHtzdG9yZU1ldGFkYXRhLnByb3BlcnR5TmFtZX0gJHt0aGlzLmdsb2JhbFN0YXRlSWR9YCk7XG4gICAgICAgICAgICAgICAgLy8gQGVuZGlmXG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoIXN0b3JlKSByZXR1cm47XG4gICAgICAgICAgICB0aGlzLl9zaGFyZWRTdG9yZVN1YnNjcmlwdGlvbnMucHVzaCh0aGlzLnN1YnNjcmliZShjYWxsYmFjaywgc3RvcmUub2JzZXJ2YWJsZSgpKSk7XG4gICAgICAgIH07XG5cbiAgICAgICAgdGhpcy5fc2hhcmVkU3RvcmVTdWJzY3JpYmVSZXF1ZXN0cy5wdXNoKHN1YnNjcmliZXIpO1xuICAgICAgICBzdWJzY3JpYmVyKCk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQSB2ZXJzaW9uIG9mIFtbc3Vic2NyaWJlU2hhcmVkU3RhdGVdXSwgd2hpY2ggZW5zdXJlcyB0aGF0IHRoZSBvYnNlcnZlZCBzaGFyZWRcbiAgICAgKiBzdG9yZSB2YWx1ZSBpcyBjb3BpZWQgYW5kIGNhbiB0aHVzIGJlIHNhZmVseSBtdXRhdGVkIGFmdGVyd2FyZHMuXG4gICAgICpcbiAgICAgKiBAcGFyYW0ge3N0cmluZ30gbmFtZSBOYW1lIG9mIHNoYXJlZCBzdGF0ZVxuICAgICAqIEBwYXJhbSBjYWxsYmFjayBDYWxsYmFjayB0byBiZSBpbnZva2VkIG9uIHN1YnNjcmlwdGlvblxuICAgICAqL1xuICAgIHB1YmxpYyBzdWJzY3JpYmVTaGFyZWRTdGF0ZU11dGFibGU8VD4obmFtZTogc3RyaW5nLCBjYWxsYmFjazogKHZhbHVlOiBUKSA9PiB2b2lkKTogdm9pZCB7XG4gICAgICAgIHRoaXMuc3Vic2NyaWJlU2hhcmVkU3RhdGUobmFtZSwgKHZhbHVlKSA9PiBjYWxsYmFjayhhbmd1bGFyLmNvcHkodmFsdWUpKSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogUmV0dXJucyBtZXRhZGF0YSBmb3Igc3BlY2lmaWMgY29tcG9uZW50IHN0YXRlLlxuICAgICAqXG4gICAgICogQHBhcmFtIHtzdHJpbmd9IG5hbWUgTmFtZSBvZiBzaGFyZWQgc3RhdGUgKG5vdCBwcm9wZXJ0eSBuYW1lKVxuICAgICAqIEByZXR1cm4ge1N0YXRlSXRlbU1ldGFkYXRhfSBTdGF0ZSBtZXRhZGF0YVxuICAgICAqL1xuICAgIHByaXZhdGUgX2dldFN0YXRlTWV0YWRhdGEobmFtZTogc3RyaW5nKTogU3RhdGVJdGVtTWV0YWRhdGEge1xuICAgICAgICByZXR1cm4gdGhpcy5fX3N0YXRlTWV0YWRhdGFbbmFtZV07XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogU2F2ZXMgdGhpcyBjb21wb25lbnQncyBjdXJyZW50IHN0YXRlIGFuZCByZXR1cm5zIGl0LlxuICAgICAqL1xuICAgIHB1YmxpYyBzYXZlU3RhdGUoc2F2ZUNoaWxkcmVuOiBib29sZWFuID0gdHJ1ZSk6IGFueSB7XG4gICAgICAgIHRoaXMub25Db21wb25lbnRTdGF0ZVByZVNhdmUoKTtcblxuICAgICAgICBsZXQgcmVzdWx0ID0ge307XG4gICAgICAgIGxldCBzdGF0ZSA9IHJlc3VsdFt0aGlzLmdsb2JhbFN0YXRlSWRdID0ge307XG4gICAgICAgIF8uZm9yT3duKHRoaXMuX19zdGF0ZU1ldGFkYXRhLCAobWV0YWRhdGEsIGtleSkgPT4ge1xuICAgICAgICAgICAgbGV0IHZhbHVlID0gdGhpc1ttZXRhZGF0YS5wcm9wZXJ0eU5hbWVdO1xuXG4gICAgICAgICAgICBpZiAobWV0YWRhdGEuc2hhcmVkKSB7XG4gICAgICAgICAgICAgICAgLy8gSW4gY2FzZSBvZiBzaGFyZWQgc3RhdGUsIHNhdmUgdGhlIGlkZW50aWZpZXIgb2YgdGhlIHNoYXJlZCBzdG9yZS5cbiAgICAgICAgICAgICAgICB2YWx1ZSA9ICg8U2hhcmVkU3RvcmU8YW55LCBhbnk+PiB2YWx1ZSkuc3RvcmVJZDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgc3RhdGVba2V5XSA9IHZhbHVlO1xuICAgICAgICB9KTtcblxuICAgICAgICAvLyBTYXZlIGNoaWxkIHN0YXRlLlxuICAgICAgICBpZiAoc2F2ZUNoaWxkcmVuKSB7XG4gICAgICAgICAgICBmb3IgKGNvbnN0IGNoaWxkIG9mIHRoaXMuX2NoaWxkcmVuKSB7XG4gICAgICAgICAgICAgICAgXy5leHRlbmQocmVzdWx0LCBjaGlsZC5zYXZlU3RhdGUoKSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gcmVzdWx0O1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIExvYWRzIHRoaXMgY29tcG9uZW50J3MgY3VycmVudCBzdGF0ZS5cbiAgICAgKlxuICAgICAqIEBwYXJhbSB7YW55fSBnbG9iYWxTdGF0ZSBHbG9iYWwgc3RhdGVcbiAgICAgKi9cbiAgICBwdWJsaWMgbG9hZFN0YXRlKGdsb2JhbFN0YXRlOiBhbnksIGxvYWRDaGlsZHJlbjogYm9vbGVhbiA9IHRydWUpOiB2b2lkIHtcbiAgICAgICAgY29uc3Qgc3RhdGUgPSBnbG9iYWxTdGF0ZVt0aGlzLmdsb2JhbFN0YXRlSWRdO1xuICAgICAgICBsZXQgc2hhcmVkU3RhdGVDaGFuZ2VkID0gZmFsc2U7XG4gICAgICAgIF8uZm9yT3duKHRoaXMuX19zdGF0ZU1ldGFkYXRhLCAobWV0YWRhdGEsIGtleSkgPT4ge1xuICAgICAgICAgICAgaWYgKCFzdGF0ZSkgcmV0dXJuO1xuICAgICAgICAgICAgaWYgKCEoa2V5IGluIHN0YXRlKSkgcmV0dXJuO1xuXG4gICAgICAgICAgICBjb25zdCB2YWx1ZSA9IHN0YXRlW2tleV07XG4gICAgICAgICAgICBpZiAobWV0YWRhdGEuc2hhcmVkKSB7XG4gICAgICAgICAgICAgICAgLy8gR2V0IHRoZSBzaGFyZWQgc3RvcmUgZnJvbSB0aGUgc2hhcmVkIHN0b3JlIG1hbmFnZXIuXG4gICAgICAgICAgICAgICAgY29uc3QgZXhpc3RpbmdWYWx1ZTogU2hhcmVkU3RvcmU8YW55LCBhbnk+ID0gdGhpc1ttZXRhZGF0YS5wcm9wZXJ0eU5hbWVdO1xuICAgICAgICAgICAgICAgIGlmIChleGlzdGluZ1ZhbHVlLnN0b3JlSWQgIT09IHZhbHVlKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXNbbWV0YWRhdGEucHJvcGVydHlOYW1lXSA9IHRoaXMuX3NoYXJlZFN0b3JlTWFuYWdlci5nZXRTdG9yZTxhbnk+KHZhbHVlKTtcbiAgICAgICAgICAgICAgICAgICAgc2hhcmVkU3RhdGVDaGFuZ2VkID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHRoaXNbbWV0YWRhdGEucHJvcGVydHlOYW1lXSA9IHZhbHVlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcblxuICAgICAgICAvLyBMb2FkIGNoaWxkIHN0YXRlLlxuICAgICAgICBpZiAobG9hZENoaWxkcmVuKSB7XG4gICAgICAgICAgICBmb3IgKGNvbnN0IGNoaWxkIG9mIHRoaXMuX2NoaWxkcmVuKSB7XG4gICAgICAgICAgICAgICAgY2hpbGQubG9hZFN0YXRlKGdsb2JhbFN0YXRlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChzaGFyZWRTdGF0ZUNoYW5nZWQpIHtcbiAgICAgICAgICAgIC8vIENhbmNlbCBhbnkgcHJldmlvdXMgc3Vic2NyaXB0aW9ucyB0byBzaGFyZWQgc3RvcmVzLlxuICAgICAgICAgICAgZm9yIChjb25zdCBzdWJzY3JpcHRpb24gb2YgdGhpcy5fc2hhcmVkU3RvcmVTdWJzY3JpcHRpb25zKSB7XG4gICAgICAgICAgICAgICAgc3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC8vIFJlc3Vic2NyaWJlLCB1c2luZyB0aGUgbmV3IHN0b3Jlcy5cbiAgICAgICAgICAgIGZvciAoY29uc3QgcmVxdWVzdCBvZiB0aGlzLl9zaGFyZWRTdG9yZVN1YnNjcmliZVJlcXVlc3RzKSB7XG4gICAgICAgICAgICAgICAgcmVxdWVzdCgpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5vbkNvbXBvbmVudFN0YXRlQWZ0ZXJMb2FkKCk7XG5cbiAgICAgICAgLy8gUHJvcGFnYXRlIHN0YXRlIHVwZGF0ZXMgdG8gdGhlIHZpZXcuXG4gICAgICAgIHRoaXMuJHNjb3BlLiRhcHBseUFzeW5jKCk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQ2hlY2sgaWYgcHJvcGVydHkgaGFzIG5vdCBiZWVuIGxvYWRlZCBmcm9tIHN0YXRlLCBvciBpc24ndCBkZWZpbmVkLiBVc3VhbGx5IHVzZWRcbiAgICAgKiBiZWZvcmUgc2V0dGluZyBhIGRlZmVycmVkIGRlZmF1bHQgdmFsdWUuXG4gICAgICovXG4gICAgcHVibGljIGlzUHJvcGVydHlOb3RMb2FkZWRGcm9tU3RhdGVPcklzVW5kZWZpbmVkPFAgZXh0ZW5kcyBrZXlvZiB0aGlzPihwcm9wZXJ0eTogUCkge1xuICAgICAgICByZXR1cm4gXy5pc1VuZGVmaW5lZCh0aGlzW3Byb3BlcnR5XSk7XG4gICAgfVxuXG4gICAgcHVibGljIHN0YXRpYyBjb25maWd1cmVDb21wb25lbnQoY29uZmlnOiBDb21wb25lbnRDb25maWd1cmF0aW9uKTogQ29tcG9uZW50Q29uZmlndXJhdGlvbiB7XG4gICAgICAgIGNvbnN0IHN0YXRlTWV0YWRhdGEgPSB0aGlzLnByb3RvdHlwZS5fX3N0YXRlTWV0YWRhdGE7XG4gICAgICAgIGlmICghY29uZmlnLmJpbmRpbmdzKSBjb25maWcuYmluZGluZ3MgPSB7fTtcblxuICAgICAgICBfLmZvck93bihzdGF0ZU1ldGFkYXRhLCAobWV0YWRhdGEsIGtleSkgPT4ge1xuICAgICAgICAgICAgaWYgKG1ldGFkYXRhLnNoYXJlZCkge1xuICAgICAgICAgICAgICAgIGNvbmZpZy5iaW5kaW5nc1ttZXRhZGF0YS5nZXRTaGFyZWRTdG9yZU5hbWVQcm9wZXJ0eSgpXSA9ICdAc3RvcmUnICsgXy5jYXBpdGFsaXplKGtleSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgICByZXR1cm4gY29uZmlnO1xuICAgIH1cbn1cblxuLyoqXG4gKiBNYXJrcyBhIHByb3BlcnR5IGFzIGJlaW5nIHBhcnQgb2YgdGhlIGNvbXBvbmVudCdzIHN0YXRlLlxuICpcbiAqIEBwYXJhbSB7c3RyaW5nfSBuYW1lIE9wdGlvbmFsIHN0YXRlIG5hbWVcbiAqIEBwYXJhbSB7Ym9vbGVhbn0gc2hhcmVkIERvZXMgdGhpcyBzdGF0ZSByZWZlcmVuY2UgYSBzaGFyZWQgc3RvcmVcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHN0YXRlKG5hbWU/OiBzdHJpbmcsIHNoYXJlZDogYm9vbGVhbiA9IGZhbHNlKSB7XG4gICAgcmV0dXJuICh0YXJnZXQ6IFN0YXRlZnVsQ29tcG9uZW50QmFzZSwgcHJvcGVydHlLZXk6IHN0cmluZykgPT4ge1xuICAgICAgICBpZiAoIW5hbWUpIG5hbWUgPSBwcm9wZXJ0eUtleTtcblxuICAgICAgICBpZiAobmFtZVswXSA9PT0gJ18nKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgR2VuRXJyb3IoXCJTdGF0ZSBpZGVudGlmaWVycyBzdGFydGluZyB3aXRoIGFuIHVuZGVyc2NvcmUgYXJlIHJlc2VydmVkLlwiKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICghdGFyZ2V0Ll9fc3RhdGVNZXRhZGF0YSkge1xuICAgICAgICAgICAgdGFyZ2V0Ll9fc3RhdGVNZXRhZGF0YSA9IHt9O1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHRhcmdldC5fX3N0YXRlTWV0YWRhdGFbbmFtZV0pIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBHZW5FcnJvcihcIkR1cGxpY2F0ZSBzdGF0ZSBpZGVudGlmaWVyICdcIiArIG5hbWUgKyBcIicgb24gc3RhdGVmdWwgY29tcG9uZW50ICdcIiArIHRhcmdldCArIFwiJy5cIik7XG4gICAgICAgIH1cbiAgICAgICAgdGFyZ2V0Ll9fc3RhdGVNZXRhZGF0YVtuYW1lXSA9IG5ldyBTdGF0ZUl0ZW1NZXRhZGF0YShwcm9wZXJ0eUtleSwgc2hhcmVkKTtcbiAgICB9O1xufVxuXG4vKipcbiAqIE1hcmtzIGEgcHJvcGVydHkgYXMgYmVpbmcgcGFydCBvZiB0aGUgY29tcG9uZW50J3Mgc3RhdGUsIHdoaWNoIHJlZmVyZW5jZXNcbiAqIGEgc2hhcmVkIHN0b3JlLlxuICpcbiAqIEBwYXJhbSB7c3RyaW5nfSBuYW1lIE9wdGlvbmFsIHN0YXRlIG5hbWVcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHNoYXJlZFN0YXRlKG5hbWU/OiBzdHJpbmcpIHtcbiAgICByZXR1cm4gc3RhdGUobmFtZSwgdHJ1ZSk7XG59XG4iXX0=
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9jb3JlL2NvbXBvbmVudHMvc3RhdGVmdWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsMEJBQTRCO0FBQzVCLGlDQUFtQztBQUVuQyx5Q0FBeUM7QUFHekMsK0JBQXNGO0FBR3RGO0lBQ0ksMkJBQW1CLFlBQW9CLEVBQVMsTUFBZTtRQUE1QyxpQkFBWSxHQUFaLFlBQVksQ0FBUTtRQUFTLFdBQU0sR0FBTixNQUFNLENBQVM7SUFDL0QsQ0FBQztJQUVNLHNEQUEwQixHQUFqQztRQUNJLE9BQU8sbUJBQW1CLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQztJQUNuRCxDQUFDO0lBQ0wsd0JBQUM7QUFBRCxDQVBBLEFBT0MsSUFBQTtBQVBZLDhDQUFpQjtBQWlCOUI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0F1REc7QUFPSDtJQUFvRCx5Q0FBYTtJQW9CN0QsWUFBWTtJQUNaLCtCQUFZLE1BQXNCLEVBQUUsWUFBMEI7UUFBOUQsWUFDSSxrQkFBTSxNQUFNLENBQUMsU0FJaEI7UUFuQkQsOEJBQThCO1FBQ3RCLGFBQU8sR0FBMEIsSUFBSSxDQUFDO1FBQzlDLHdDQUF3QztRQUNoQyxlQUFTLEdBQTRCLEVBQUUsQ0FBQztRQUtoRCw0Q0FBNEM7UUFDcEMsbUNBQTZCLEdBQWtDLEVBQUUsQ0FBQztRQUMxRSxtQ0FBbUM7UUFDM0IsK0JBQXlCLEdBQW1CLEVBQUUsQ0FBQztRQU1uRCxLQUFJLENBQUMsYUFBYSxHQUFHLFlBQVksQ0FBQztRQUNsQyxLQUFJLENBQUMsbUJBQW1CLEdBQUcsWUFBWSxDQUFDLGtCQUFrQixDQUFDOztJQUMvRCxDQUFDOzhCQTFCaUIscUJBQXFCO0lBNEJoQywrQ0FBZSxHQUF0QjtRQUFBLGlCQWtDQztRQWpDRyxpQkFBTSxlQUFlLFdBQUUsQ0FBQztRQUV4QixtRUFBbUU7UUFDbkUsSUFBSSxDQUFDLENBQUMsT0FBTyxDQUFD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O0FBNFUzQzs7Ozs7R0FLRztBQUNILGVBQXNCLElBQWEsRUFBRSxNQUF1QjtJQUF2Qix1QkFBQSxFQUFBLGNBQXVCO0lBQ3hELE9BQU8sVUFBQyxNQUE2QixFQUFFLFdBQW1CO1FBQ3RELElBQUksQ0FBQyxJQUFJO1lBQUUsSUFBSSxHQUFHLFdBQVcsQ0FBQztRQUU5QixJQUFJLElBQUksQ0FBQyxDQUFDLENBQUMsS0FBSyxHQUFHLEVBQUU7WUFDakIsTUFBTSxJQUFJLGdCQUFRLENBQUMsNkRBQTZELENBQUMsQ0FBQztTQUNyRjtRQUVELElBQUksQ0FBQyxNQUFNLENBQUMsZUFBZSxFQUFFO1lBQ3pCLE1BQU0sQ0FBQyxlQUFlLEdBQUcsRUFBRSxDQUFDO1NBQy9CO1FBRUQsSUFBSSxNQUFNLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxFQUFFO1lBQzlCLE1BQU0sSUFBSSxnQkFBUSxDQUFDLDhCQUE4QixHQUFHLElBQUksR0FBRywyQkFBMkIsR0FBRyxNQUFNLEdBQUcsSUFBSSxDQUFDLENBQUM7U0FDM0c7UUFDRCxNQUFNLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxHQUFHLElBQUksaUJBQWlCLENBQUMsV0FBVyxFQUFFLE1BQU0sQ0FBQyxDQUFDO0lBQzlFLENBQUMsQ0FBQztBQUNOLENBQUM7QUFqQkQsc0JBaUJDO0FBRUQ7Ozs7O0dBS0c7QUFDSCxxQkFBNEIsSUFBYTtJQUNyQyxPQUFPLEtBQUssQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLENBQUM7QUFDN0IsQ0FBQztBQUZELGtDQUVDIiwiZmlsZSI6ImNvcmUvY29tcG9uZW50cy9zdGF0ZWZ1bC5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIF8gZnJvbSAnbG9kYXNoJztcbmltcG9ydCAqIGFzIGFuZ3VsYXIgZnJvbSAnYW5ndWxhcic7XG5cbmltcG9ydCB7R2VuRXJyb3J9IGZyb20gJy4uL2Vycm9ycy9lcnJvcic7XG5pbXBvcnQge1NoYXJlZFN0b3JlLCBTaGFyZWRTdG9yZU1hbmFnZXJ9IGZyb20gJy4uL3NoYXJlZF9zdG9yZS9pbmRleCc7XG5cbmltcG9ydCB7Q29tcG9uZW50QmFzZSwgY29tcG9uZW50LCBDb21wb25lbnRDb25maWd1cmF0aW9uLCBTdWJzY3JpcHRpb259IGZyb20gJy4vYmFzZSc7XG5pbXBvcnQge1N0YXRlTWFuYWdlcn0gZnJvbSAnLi9tYW5hZ2VyJztcblxuZXhwb3J0IGNsYXNzIFN0YXRlSXRlbU1ldGFkYXRhIHtcbiAgICBjb25zdHJ1Y3RvcihwdWJsaWMgcHJvcGVydHlOYW1lOiBzdHJpbmcsIHB1YmxpYyBzaGFyZWQ6IGJvb2xlYW4pIHtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0U2hhcmVkU3RvcmVOYW1lUHJvcGVydHkoKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuICdfc2hhcmVkU3RvcmVOYW1lXycgKyB0aGlzLnByb3BlcnR5TmFtZTtcbiAgICB9XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgU3RhdGVNZXRhZGF0YSB7XG4gICAgW2luZGV4OiBzdHJpbmddOiBTdGF0ZUl0ZW1NZXRhZGF0YTtcbn1cblxuaW50ZXJmYWNlIFNoYXJlZFN0b3JlU3Vic2NyaWJlUmVxdWVzdCB7XG4gICAgKCk6IHZvaWQ7XG59XG5cbi8qKlxuICogQSBjb21wb25lbnQgd2hpY2ggY29udGFpbnMgc3RhdGUgdGhhdCBtYXkgYmUgc2F2ZWQgYW5kIHJlbG9hZGVkIGxhdGVyLiBTdWNoXG4gKiBzdGF0ZWZ1bCBjb21wb25lbnRzIGFyZSBhdXRvbWF0aWNhbGx5IG9yZ2FuaXplZCBpbnRvIGEgaGllcmFyY2h5LCBzbyB0aGF0XG4gKiBwYXJlbnRzIGFsc28gc3RvcmUgc3RhdGUgZm9yIGFsbCB0aGVpciBjaGlsZHJlbi4gQ2FsbGluZyBgc2F2ZVN0YXRlYCBvbiB0aGVcbiAqIHRvcC1sZXZlbCBjb21wb25lbnQgd2lsbCB0aGVyZWZvcmUgc2F2ZSB0aGUgc3RhdGUgb2YgdGhlIGNvbXBsZXRlIGFwcGxpY2F0aW9uLlxuICpcbiAqIENvbXBvbmVudCBzdGF0ZSBpcyBkZWZpbmVkIGJ5IHVzaW5nIHByb3BlcnR5IGRlY29yYXRvcnMgYXMgZm9sbG93czpcbiAqIGBgYFxuICogZXhwb3J0IGNsYXNzIFByb2Nlc3NHcm91cHMgZXh0ZW5kcyBWaWV3Q29tcG9uZW50IHtcbiAqICAgICBAc3RhdGUoKSBwdWJsaWMgc2VsZWN0ZWRHcm91cDogbnVtYmVyO1xuICpcbiAqICAgICAvLyAuLi5cbiAqIH1cbiAqIGBgYFxuICpcbiAqIEl0IG1heSBiZSB0aGVuIHJlZmVyZW5jZWQgYW5kIHdhdGNoZWQgZnJvbSB0aGUgY29udHJvbGxlciBvciB0ZW1wbGF0ZXMgYW5kXG4gKiB3aWxsIGF1dG9tYXRpY2FsbHkgYmUgc2F2ZWQgd2hlbiBjYWxsaW5nIFtbU3RhdGVmdWxDb21wb25lbnRCYXNlLnNhdmVTdGF0ZV1dXG4gKiBhbmQgcmVsb2FkZWQgd2hlbiBjYWxsaW5nIFtbU3RhdGVmdWxDb21wb25lbnRCYXNlLmxvYWRTdGF0ZV1dLlxuICpcbiAqIEEgcmVsYXRlZCBkZWNvcmF0b3IgbWF5IGJlIHVzZWQgdG8gZGVjbGFyZSBzdGF0ZSwgd2hpY2ggaXMgc2hhcmVkIGJldHdlZW5cbiAqIG11bHRpcGxlIGNvbXBvbmVudHM6XG4gKiBgYGBcbiAqIGV4cG9ydCBjbGFzcyBXaWRnZXRSb3NlMiBleHRlbmRzIFdpZGdldEJhc2Uge1xuICogICAgIEBzaGFyZWRTdGF0ZSgpIHB1YmxpYyBzZWxlY3RlZFZhbHVlOiBTaGFyZWRTdG9yZTx0eXBlcy5EYXRhPjtcbiAqXG4gKiAgICAgLy8gLi4uXG4gKiB9XG4gKiBgYGBcbiAqXG4gKiBTZWUgW1tTaGFyZWRTdG9yZU1hbmFnZXJdXSBhbmQgW1tTaGFyZWRTdG9yZV1dIGZvciBtb3JlIGRvY3VtZW50YXRpb24gb25cbiAqIGRlZmluaW5nIHNoYXJlZCBzdGF0ZSB1c2luZyBzaGFyZWQgc3RvcmVzLlxuICpcbiAqIEZvciBleGFtcGxlLCBpZiBhIHN0YXRlZnVsIGNvbXBvbmVudCBkZWZpbmVzIGEgc2hhcmVkIHN0YXRlIHByb3BlcnR5IGNhbGxlZFxuICogYHNlbGVjdGVkVmFsdWVgIChhcyBzaG93biBhYm92ZSkgYW5kIHlvdSB3YW50IHRvIGxpbmsgaXQgd2l0aCB0aGUgc2hhcmVkIHN0b3JlXG4gKiBuYW1lZCBgcm9zZTItc2VsZWN0ZWQtZGF0YS1pdGVtYCwgeW91IGNhbiBkbyB0aGUgZm9sbG93aW5nIGluIHlvdXIgdGVtcGxhdGU6XG4gKiBgYGBodG1sXG4gKiA8Z2VuLXdpZGdldC1yb3NlMiBzdG9yZS1zZWxlY3RlZC12YWx1ZT1cInJvc2UyLXNlbGVjdGVkLWRhdGEtaXRlbVwiPjwvZ2VuLXdpZGdldC1yb3NlMj5cbiAqIGBgYFxuICpcbiAqIE5vdGUgdGhhdCB0aGUgdGVtcGxhdGUgYXR0cmlidXRlIG5hbWUgaXMgcHJlZml4ZWQgd2l0aCBgc3RvcmVgIGV2ZW4gd2hlbiB0aGVcbiAqIHByb3BlcnR5IGlzIGNhbGxlZCBqdXN0IGBzZWxlY3RlZFZhbHVlYC4gVGhpcyBpcyBkb25lIGJlY2F1c2Ugd2hhdCB5b3UgcGFzc1xuICogaW4gdGhlIHRlbXBsYXRlIGlzIGp1c3QgYSBuYW1lIG9mIHRoZSBzdG9yZSwgd2hpY2ggbXVzdCBiZSByZXNvbHZlZCB1c2luZyB0aGVcbiAqIHNoYXJlZCBzdG9yZSBtYW5hZ2VyLlxuICpcbiAqIEluc2lkZSB0aGUgY29tcG9uZW50cyB5b3UgY2FuIHRoZW4gZGlzcGF0Y2ggYW5kIHN1YnNjcmliZSB0byB0aGUgdW5kZXJseWluZ1xuICogc3RvcmU6XG4gKiBgYGBcbiAqIC8vIFB1Ymxpc2ggc29tZXRoaW5nIGJ5IGRpc3BhdGNoaW5nIGFuIGFjdGlvbiB0byB0aGUgc2hhcmVkIHN0b3JlLlxuICogdGhpcy5zZWxlY3RlZFZhbHVlLmRpc3BhdGNoKHt0eXBlOiBBY3Rpb25zLlNFVCwgdmFsdWU6IDQyfSk7XG4gKlxuICogLy8gU3Vic2NyaWJlIHRvIHVwZGF0ZXMgb2YgdGhlIHNoYXJlZCBzdG9yZS5cbiAqIHRoaXMuc3Vic2NyaWJlU2hhcmVkU3RhdGUoJ3NlbGVjdGVkVmFsdWUnLCAoZGF0YSkgPT4ge1xuICogICAgIGNvbnNvbGUubG9nKFwiU2hhcmVkIHN0YXRlICdzZWxlY3RlZFZhbHVlJyBpcyBub3dcIiwgZGF0YSk7XG4gKiB9KTtcbiAqIGBgYFxuICovXG5AY29tcG9uZW50KHtcbiAgICBhYnN0cmFjdDogdHJ1ZSxcbiAgICBiaW5kaW5nczoge1xuICAgICAgICBzdGF0ZUlkOiAnQHN0YXRlSWQnLFxuICAgIH0sXG59KVxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIFN0YXRlZnVsQ29tcG9uZW50QmFzZSBleHRlbmRzIENvbXBvbmVudEJhc2Uge1xuICAgIC8vLyBNZXRhZGF0YSBhYm91dCB0aGUgc3RhdGUgZGVmaW5lZCBvbiB0aGUgY29tcG9uZW50LlxuICAgIHB1YmxpYyBfX3N0YXRlTWV0YWRhdGE6IFN0YXRlTWV0YWRhdGE7XG4gICAgLy8vIFRoaXMgY29tcG9uZW50J3MgbG9jYWwgc3RhdGUgaWRlbnRpZmllci5cbiAgICBwdWJsaWMgc3RhdGVJZDogc3RyaW5nO1xuICAgIC8vLyBUaGlzIGNvbXBvbmVudCdzIGdsb2JhbCBzdGF0ZSBpZGVudGlmaWVyLlxuICAgIHB1YmxpYyBnbG9iYWxTdGF0ZUlkOiBzdHJpbmc7XG4gICAgLy8vIFBhcmVudCBzdGF0ZWZ1bCBjb21wb25lbnQuXG4gICAgcHJpdmF0ZSBfcGFyZW50OiBTdGF0ZWZ1bENvbXBvbmVudEJhc2UgPSBudWxsO1xuICAgIC8vLyBBIGxpc3Qgb2YgY2hpbGQgc3RhdGVmdWwgY29tcG9uZW50cy5cbiAgICBwcml2YXRlIF9jaGlsZHJlbjogU3RhdGVmdWxDb21wb25lbnRCYXNlW10gPSBbXTtcbiAgICAvLy8gU3RhdGUgbWFuYWdlci5cbiAgICBwcml2YXRlIF9zdGF0ZU1hbmFnZXI6IFN0YXRlTWFuYWdlcjtcbiAgICAvLy8gU2hhcmVkIHN0b3JlIG1hbmFnZXIuXG4gICAgcHJpdmF0ZSBfc2hhcmVkU3RvcmVNYW5hZ2VyOiBTaGFyZWRTdG9yZU1hbmFnZXI7XG4gICAgLy8vIFN1YnNjcmlwdGlvbiByZXF1ZXN0cyBmb3Igc2hhcmVkIHN0b3Jlcy5cbiAgICBwcml2YXRlIF9zaGFyZWRTdG9yZVN1YnNjcmliZVJlcXVlc3RzOiBTaGFyZWRTdG9yZVN1YnNjcmliZVJlcXVlc3RbXSA9IFtdO1xuICAgIC8vLyBTdWJzY3JpcHRpb25zIHRvIHNoYXJlZCBzdG9yZXMuXG4gICAgcHJpdmF0ZSBfc2hhcmVkU3RvcmVTdWJzY3JpcHRpb25zOiBTdWJzY3JpcHRpb25bXSA9IFtdO1xuXG4gICAgLy8gQG5nSW5qZWN0XG4gICAgY29uc3RydWN0b3IoJHNjb3BlOiBhbmd1bGFyLklTY29wZSwgc3RhdGVNYW5hZ2VyOiBTdGF0ZU1hbmFnZXIpIHtcbiAgICAgICAgc3VwZXIoJHNjb3BlKTtcblxuICAgICAgICB0aGlzLl9zdGF0ZU1hbmFnZXIgPSBzdGF0ZU1hbmFnZXI7XG4gICAgICAgIHRoaXMuX3NoYXJlZFN0b3JlTWFuYWdlciA9IHN0YXRlTWFuYWdlci5zaGFyZWRTdG9yZU1hbmFnZXI7XG4gICAgfVxuXG4gICAgcHVibGljIG9uQ29tcG9uZW50SW5pdCgpIHtcbiAgICAgICAgc3VwZXIub25Db21wb25lbnRJbml0KCk7XG5cbiAgICAgICAgLy8gV2hlbiBzdGF0ZSBpZGVudGlmaWVyIGlzIG5vdCBkZWZpbmVkLCBkZWZhdWx0IHRvIGRpcmVjdGl2ZSBuYW1lLlxuICAgICAgICBpZiAoXy5pc0VtcHR5KHRoaXMuc3RhdGVJZCkpIHtcbiAgICAgICAgICAgIHRoaXMuc3RhdGVJZCA9IHRoaXMuZ2V0Q29uZmlnKCkuZGlyZWN0aXZlO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gRGV0ZXJtaW5lIG91ciBwYXJlbnQgYW5kIHJlZ2lzdGVyIG91cnNlbHZlcyB3aXRoIGl0LlxuICAgICAgICB0aGlzLl9wYXJlbnQgPSB0aGlzLl9maW5kUGFyZW50Q29tcG9uZW50KCk7XG4gICAgICAgIGlmICh0aGlzLl9wYXJlbnQpIHtcbiAgICAgICAgICAgIHRoaXMuX3BhcmVudC5fcmVnaXN0ZXJDaGlsZCh0aGlzKTtcbiAgICAgICAgICAgIHRoaXMuZ2xvYmFsU3RhdGVJZCA9IHRoaXMuX3BhcmVudC5nbG9iYWxTdGF0ZUlkICsgJy0nICsgdGhpcy5zdGF0ZUlkO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5fc3RhdGVNYW5hZ2VyLmFkZFRvcExldmVsQ29tcG9uZW50KHRoaXMpO1xuICAgICAgICAgICAgdGhpcy5nbG9iYWxTdGF0ZUlkID0gdGhpcy5zdGF0ZUlkO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gQ2hlY2sgaWYgdGhlcmUgaXMgYW55IHBlbmRpbmcgc3RhdGUgZm9yIHVzLlxuICAgICAgICB0aGlzLl9zdGF0ZU1hbmFnZXIubG9hZFBlbmRpbmdDb21wb25lbnRTdGF0ZSh0aGlzKTtcblxuICAgICAgICAvLyBBdXRvbWF0aWNhbGx5IGxvYWQgYW55IGNvbmZpZ3VyZWQgc2hhcmVkIHN0YXRlLlxuICAgICAgICBjb25zdCBzdGF0ZU1ldGFkYXRhID0gdGhpcy5fX3N0YXRlTWV0YWRhdGE7XG4gICAgICAgIF8uZm9yT3duKHN0YXRlTWV0YWRhdGEsIChtZXRhZGF0YSkgPT4ge1xuICAgICAgICAgICAgaWYgKG1ldGFkYXRhLnNoYXJlZCkge1xuICAgICAgICAgICAgICAgIGNvbnN0IHNoYXJlZFN0b3JlTmFtZSA9IHRoaXNbbWV0YWRhdGEuZ2V0U2hhcmVkU3RvcmVOYW1lUHJvcGVydHkoKV07XG4gICAgICAgICAgICAgICAgaWYgKCFfLmlzRW1wdHkoc2hhcmVkU3RvcmVOYW1lKSkge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBzdG9yZSA9IHRoaXMuX3NoYXJlZFN0b3JlTWFuYWdlci5nZXRTdG9yZShzaGFyZWRTdG9yZU5hbWUpO1xuICAgICAgICAgICAgICAgICAgICB0aGlzW21ldGFkYXRhLnByb3BlcnR5TmFtZV0gPSBzdG9yZTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICB0aGlzLl9zZXR1cFNoYXJlZFN0b3JlKG1ldGFkYXRhLnByb3BlcnR5TmFtZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFNldHMgdXAgdGhlIHNoYXJlZCBzdG9yZS4gVGhpcyBtZXRob2QgbWF5IGJlIG92ZXJyaWRlbiBieSBzdWJjbGFzc2VzIHdoZW4gc29tZXRoaW5nXG4gICAgICogZGlmZmVyZW50IHNob3VsZCBiZSBkb25lIGhlcmUuXG4gICAgICpcbiAgICAgKiBAcGFyYW0ge3N0b3JlfSBTaGFyZWQgc3RhdGVcbiAgICAgKi9cbiAgICBwcm90ZWN0ZWQgX3NldHVwU2hhcmVkU3RvcmUoc3RvcmU6IHN0cmluZyk6IHZvaWQge1xuICAgICAgICAvLyBTdWJzY3JpYmUgdG8gc2hhcmVkIHN0b3JlLCBzbyB0aGF0IHRoaXMgY29tcG9uZW50J3Mgc2NvcGUgZ2V0cyB1cGRhdGVkIHdoZW4gdGhlXG4gICAgICAgIC8vIHZhbHVlIGluIHRoZSBzdG9yZSBpcyB1cGRhdGVkLlxuICAgICAgICB0aGlzLnN1YnNjcmliZVNoYXJlZFN0YXRlKHN0b3JlLCBfLm5vb3ApO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFJldHVybnMgdGhlIHN0YXRlIG1hbmFnZXIuXG4gICAgICovXG4gICAgcHVibGljIGdldCBzdGF0ZU1hbmFnZXIoKTogU3RhdGVNYW5hZ2VyIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3N0YXRlTWFuYWdlcjtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBSZXR1cm5zIHRoZSBzaGFyZWQgc3RvcmUgbWFuYWdlci5cbiAgICAgKi9cbiAgICBwcm90ZWN0ZWQgZ2V0IHNoYXJlZFN0b3JlTWFuYWdlcigpOiBTaGFyZWRTdG9yZU1hbmFnZXIge1xuICAgICAgICByZXR1cm4gdGhpcy5fc2hhcmVkU3RvcmVNYW5hZ2VyO1xuICAgIH1cblxuICAgIHB1YmxpYyBvbkNvbXBvbmVudERlc3Ryb3llZCgpOiB2b2lkIHtcbiAgICAgICAgLy8gU2F2ZSBjdXJyZW50IGNvbXBvbmVudCBzdGF0ZSwgc28gaXQgd2lsbCBiZSBhdmFpbGFibGUgd2hlbiB0aGlzIGNvbXBvbmVudFxuICAgICAgICAvLyBpcyBpbnN0YW50aWF0ZWQgYWdhaW4uXG4gICAgICAgIHRoaXMuX3N0YXRlTWFuYWdlci5zYXZlUGVuZGluZ0NvbXBvbmVudFN0YXRlKHRoaXMpO1xuXG4gICAgICAgIGlmICh0aGlzLl9wYXJlbnQpIHtcbiAgICAgICAgICAgIHRoaXMuX3BhcmVudC5fdW5yZWdpc3RlckNoaWxkKHRoaXMpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5fc3RhdGVNYW5hZ2VyLnJlbW92ZVRvcExldmVsQ29tcG9uZW50KHRoaXMpO1xuICAgICAgICB9XG5cbiAgICAgICAgc3VwZXIub25Db21wb25lbnREZXN0cm95ZWQoKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBUaGlzIG1ldGhvZCB3aWxsIGJlIGNhbGxlZCBhZnRlciB0aGUgY29tcG9uZW50J3Mgc3RhdGUgaGFzIGJlZW4gbG9hZGVkLlxuICAgICAqL1xuICAgIHB1YmxpYyBvbkNvbXBvbmVudFN0YXRlQWZ0ZXJMb2FkKCk6IHZvaWQge1xuICAgICAgICAvLyBEbyBub3RoaW5nIGJ5IGRlZmF1bHQuXG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogVGhpcyBtZXRob2Qgd2lsbCBiZSBjYWxsZWQgYmVmb3JlIHRoZSBjb21wb25lbnQncyBzdGF0ZSBoYXMgYmVlbiBzYXZlZC5cbiAgICAgKi9cbiAgICBwdWJsaWMgb25Db21wb25lbnRTdGF0ZVByZVNhdmUoKTogdm9pZCB7XG4gICAgICAgIC8vIERvIG5vdGhpbmcgYnkgZGVmYXVsdC5cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBEaXNjb3ZlcnMgdGhlIHBhcmVudCBzdGF0ZWZ1bCBjb21wb25lbnQuXG4gICAgICovXG4gICAgcHJpdmF0ZSBfZmluZFBhcmVudENvbXBvbmVudCgpOiBTdGF0ZWZ1bENvbXBvbmVudEJhc2Uge1xuICAgICAgICBsZXQgc2NvcGUgPSB0aGlzLiRzY29wZS4kcGFyZW50O1xuICAgICAgICB3aGlsZSAoc2NvcGUpIHtcbiAgICAgICAgICAgIGlmIChzY29wZVsnY3RybCddIGluc3RhbmNlb2YgU3RhdGVmdWxDb21wb25lbnRCYXNlKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHNjb3BlWydjdHJsJ107XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHNjb3BlID0gc2NvcGUuJHBhcmVudDtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBudWxsO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFJlZ2lzdGVycyBhIG5ldyBjaGlsZCBvZiB0aGlzIHN0YXRlZnVsIGNvbXBvbmVudC5cbiAgICAgKlxuICAgICAqIEBwYXJhbSB7U3RhdGVmdWxDb21wb25lbnRCYXNlfSBjaGlsZCBDaGlsZCBjb21wb25lbnQgaW5zdGFuY2VcbiAgICAgKi9cbiAgICBwcml2YXRlIF9yZWdpc3RlckNoaWxkKGNoaWxkOiBTdGF0ZWZ1bENvbXBvbmVudEJhc2UpIHtcbiAgICAgICAgLy8gRW5zdXJlIHRoZSBjaGlsZCdzIGxvY2FsIHN0YXRlIGlkIGlzIHVuaXF1ZS5cbiAgICAgICAgaWYgKF8uYW55KHRoaXMuX2NoaWxkcmVuLCAoYykgPT4gYy5zdGF0ZUlkID09PSBjaGlsZC5zdGF0ZUlkKSkge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEdlbkVycm9yKFwiRHVwbGljYXRlIHN0YXRlZnVsIGNvbXBvbmVudCBzdGF0ZSBpZGVudGlmaWVyICdcIiArIGNoaWxkLnN0YXRlSWQgKyBcIicuXCIpO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5fY2hpbGRyZW4ucHVzaChjaGlsZCk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogVW5yZWdpc3RlcnMgYW4gZXhpc3RpbmcgY2hpbGQgb2YgdGhpcyBzdGF0ZWZ1bCBjb21wb25lbnQuXG4gICAgICpcbiAgICAgKiBAcGFyYW0ge1N0YXRlZnVsQ29tcG9uZW50QmFzZX0gY2hpbGQgQ2hpbGQgY29tcG9uZW50IGluc3RhbmNlXG4gICAgICovXG4gICAgcHJpdmF0ZSBfdW5yZWdpc3RlckNoaWxkKGNoaWxkOiBTdGF0ZWZ1bENvbXBvbmVudEJhc2UpIHtcbiAgICAgICAgdGhpcy5fY2hpbGRyZW4gPSBfLndpdGhvdXQodGhpcy5fY2hpbGRyZW4sIGNoaWxkKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBSZXR1cm5zIHRoZSBwYXJlbnQgc3RhdGVmdWwgY29tcG9uZW50LlxuICAgICAqL1xuICAgIHB1YmxpYyBwYXJlbnRDb21wb25lbnQoKTogU3RhdGVmdWxDb21wb25lbnRCYXNlIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3BhcmVudDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBSZXR1cm5zIGEgbGlzdCBvZiBjaGlsZCBzdGF0ZWZ1bCBjb21wb25lbnRzLlxuICAgICAqL1xuICAgIHB1YmxpYyBjaGlsZENvbXBvbmVudHMoKTogU3RhdGVmdWxDb21wb25lbnRCYXNlW10ge1xuICAgICAgICByZXR1cm4gXy5jbG9uZSh0aGlzLl9jaGlsZHJlbik7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogRmluZHMgYSBjaGlsZCBjb21wb25lbnQgYnkgaXRzIHN0YXRlIGlkZW50aWZpZXIuXG4gICAgICpcbiAgICAgKiBAcGFyYW0ge3N0cmluZ30gc3RhdGVJZCBDaGlsZCdzIHN0YXRlIGlkZW50aWZpZXJcbiAgICAgKiBAcmV0dXJuIHtTdGF0ZWZ1bENvbXBvbmVudEJhc2V9IENoaWxkIGNvbXBvbmVudCBpbnN0YW5jZVxuICAgICAqL1xuICAgIHB1YmxpYyBnZXRDaGlsZENvbXBvbmVudDxUIGV4dGVuZHMgU3RhdGVmdWxDb21wb25lbnRCYXNlPihzdGF0ZUlkOiBzdHJpbmcpOiBUIHtcbiAgICAgICAgcmV0dXJuIDxUPiBfLmZpbmQodGhpcy5fY2hpbGRyZW4sIChjaGlsZCkgPT4gY2hpbGQuc3RhdGVJZCA9PT0gc3RhdGVJZCk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogU3Vic2NyaWJlcyB0byBzaGFyZWQgc3RhdGUuIFRoaXMgaXMgdGhlIHNhbWUgYXMgYSBub3JtYWwgc3Vic2NyaWJlLCBidXQgaW5cbiAgICAgKiBhZGRpdGlvbiBpdCBhbHNvIHByb3Blcmx5IGhhbmRsZXMgdW5kZXJseWluZyBkYXRhIHN0b3JlIGNoYW5nZXMgd2hlblxuICAgICAqIGNvbXBvbmVudCBzdGF0ZSBpcyByZWxvYWRlZC5cbiAgICAgKlxuICAgICAqIFRoZSB2YWx1ZSBvYnNlcnZlZCBmcm9tIHRoZSBzaGFyZWQgc3RvcmUgTVVTVCBOT1QgYmUgbXV0YXRlZCBpbiBhbnkgd2F5IGFzXG4gICAgICogZG9pbmcgc28gbWF5IGNhdXNlIHVuZGVmaW5lZCBiZWhhdmlvci4gSWYgeW91IG5lZWQgdG8gbXV0YXRlIHRoZSBvYnNlcnZlZFxuICAgICAqIHZhbHVlLCB1c2UgW1tzdWJzY3JpYmVTaGFyZWRTdGF0ZU11dGFibGVdXSBpbnN0ZWFkLlxuICAgICAqXG4gICAgICogQHBhcmFtIHtzdHJpbmd9IG5hbWUgTmFtZSBvZiBzaGFyZWQgc3RhdGVcbiAgICAgKiBAcGFyYW0gY2FsbGJhY2sgQ2FsbGJhY2sgdG8gYmUgaW52b2tlZCBvbiBzdWJzY3JpcHRpb25cbiAgICAgKi9cbiAgICBwdWJsaWMgc3Vic2NyaWJlU2hhcmVkU3RhdGUobmFtZTogc3RyaW5nLCBjYWxsYmFjazogKHZhbHVlOiBhbnkpID0+IHZvaWQpOiB2b2lkIHtcbiAgICAgICAgY29uc3Qgc3RvcmVNZXRhZGF0YSA9IHRoaXMuX2dldFN0YXRlTWV0YWRhdGEobmFtZSk7XG4gICAgICAgIGlmICghc3RvcmVNZXRhZGF0YSB8fCAhc3RvcmVNZXRhZGF0YS5zaGFyZWQpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBHZW5FcnJvcihcIlNoYXJlZCBzdGF0ZSAnXCIgKyBuYW1lICsgXCInIG5vdCBmb3VuZC5cIik7XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBzdWJzY3JpYmVyID0gKCkgPT4ge1xuICAgICAgICAgICAgY29uc3Qgc3RvcmU6IFNoYXJlZFN0b3JlPGFueSwgYW55PiA9IHRoaXNbc3RvcmVNZXRhZGF0YS5wcm9wZXJ0eU5hbWVdO1xuICAgICAgICAgICAgaWYgKCFzdG9yZSkge1xuICAgICAgICAgICAgICAgIC8vIEBpZm5kZWYgR0VOSlNfUFJPRFVDVElPTlxuICAgICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgR2VuRXJyb3IoYElnbm9yZWQgbWlzc2luZyBzdG9yZTogJHtzdG9yZU1ldGFkYXRhLnByb3BlcnR5TmFtZX0gJHt0aGlzLmdsb2JhbFN0YXRlSWR9YCk7XG4gICAgICAgICAgICAgICAgLy8gQGVuZGlmXG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoIXN0b3JlKSByZXR1cm47XG4gICAgICAgICAgICB0aGlzLl9zaGFyZWRTdG9yZVN1YnNjcmlwdGlvbnMucHVzaCh0aGlzLnN1YnNjcmliZShjYWxsYmFjaywgc3RvcmUub2JzZXJ2YWJsZSgpKSk7XG4gICAgICAgIH07XG5cbiAgICAgICAgdGhpcy5fc2hhcmVkU3RvcmVTdWJzY3JpYmVSZXF1ZXN0cy5wdXNoKHN1YnNjcmliZXIpO1xuICAgICAgICBzdWJzY3JpYmVyKCk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQSB2ZXJzaW9uIG9mIFtbc3Vic2NyaWJlU2hhcmVkU3RhdGVdXSwgd2hpY2ggZW5zdXJlcyB0aGF0IHRoZSBvYnNlcnZlZCBzaGFyZWRcbiAgICAgKiBzdG9yZSB2YWx1ZSBpcyBjb3BpZWQgYW5kIGNhbiB0aHVzIGJlIHNhZmVseSBtdXRhdGVkIGFmdGVyd2FyZHMuXG4gICAgICpcbiAgICAgKiBAcGFyYW0ge3N0cmluZ30gbmFtZSBOYW1lIG9mIHNoYXJlZCBzdGF0ZVxuICAgICAqIEBwYXJhbSBjYWxsYmFjayBDYWxsYmFjayB0byBiZSBpbnZva2VkIG9uIHN1YnNjcmlwdGlvblxuICAgICAqL1xuICAgIHB1YmxpYyBzdWJzY3JpYmVTaGFyZWRTdGF0ZU11dGFibGU8VD4obmFtZTogc3RyaW5nLCBjYWxsYmFjazogKHZhbHVlOiBUKSA9PiB2b2lkKTogdm9pZCB7XG4gICAgICAgIHRoaXMuc3Vic2NyaWJlU2hhcmVkU3RhdGUobmFtZSwgKHZhbHVlKSA9PiBjYWxsYmFjayhhbmd1bGFyLmNvcHkodmFsdWUpKSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogUmV0dXJucyBtZXRhZGF0YSBmb3Igc3BlY2lmaWMgY29tcG9uZW50IHN0YXRlLlxuICAgICAqXG4gICAgICogQHBhcmFtIHtzdHJpbmd9IG5hbWUgTmFtZSBvZiBzaGFyZWQgc3RhdGUgKG5vdCBwcm9wZXJ0eSBuYW1lKVxuICAgICAqIEByZXR1cm4ge1N0YXRlSXRlbU1ldGFkYXRhfSBTdGF0ZSBtZXRhZGF0YVxuICAgICAqL1xuICAgIHByaXZhdGUgX2dldFN0YXRlTWV0YWRhdGEobmFtZTogc3RyaW5nKTogU3RhdGVJdGVtTWV0YWRhdGEge1xuICAgICAgICByZXR1cm4gdGhpcy5fX3N0YXRlTWV0YWRhdGFbbmFtZV07XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogU2F2ZXMgdGhpcyBjb21wb25lbnQncyBjdXJyZW50IHN0YXRlIGFuZCByZXR1cm5zIGl0LlxuICAgICAqL1xuICAgIHB1YmxpYyBzYXZlU3RhdGUoc2F2ZUNoaWxkcmVuOiBib29sZWFuID0gdHJ1ZSk6IGFueSB7XG4gICAgICAgIHRoaXMub25Db21wb25lbnRTdGF0ZVByZVNhdmUoKTtcblxuICAgICAgICBsZXQgcmVzdWx0ID0ge307XG4gICAgICAgIGxldCBzdGF0ZSA9IHJlc3VsdFt0aGlzLmdsb2JhbFN0YXRlSWRdID0ge307XG4gICAgICAgIF8uZm9yT3duKHRoaXMuX19zdGF0ZU1ldGFkYXRhLCAobWV0YWRhdGEsIGtleSkgPT4ge1xuICAgICAgICAgICAgbGV0IHZhbHVlID0gdGhpc1ttZXRhZGF0YS5wcm9wZXJ0eU5hbWVdO1xuXG4gICAgICAgICAgICBpZiAobWV0YWRhdGEuc2hhcmVkKSB7XG4gICAgICAgICAgICAgICAgLy8gSW4gY2FzZSBvZiBzaGFyZWQgc3RhdGUsIHNhdmUgdGhlIGlkZW50aWZpZXIgb2YgdGhlIHNoYXJlZCBzdG9yZS5cbiAgICAgICAgICAgICAgICB2YWx1ZSA9ICg8U2hhcmVkU3RvcmU8YW55LCBhbnk+PiB2YWx1ZSkuc3RvcmVJZDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgc3RhdGVba2V5XSA9IHZhbHVlO1xuICAgICAgICB9KTtcblxuICAgICAgICAvLyBTYXZlIGNoaWxkIHN0YXRlLlxuICAgICAgICBpZiAoc2F2ZUNoaWxkcmVuKSB7XG4gICAgICAgICAgICBmb3IgKGNvbnN0IGNoaWxkIG9mIHRoaXMuX2NoaWxkcmVuKSB7XG4gICAgICAgICAgICAgICAgXy5leHRlbmQocmVzdWx0LCBjaGlsZC5zYXZlU3RhdGUoKSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gcmVzdWx0O1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIExvYWRzIHRoaXMgY29tcG9uZW50J3MgY3VycmVudCBzdGF0ZS5cbiAgICAgKlxuICAgICAqIEBwYXJhbSB7YW55fSBnbG9iYWxTdGF0ZSBHbG9iYWwgc3RhdGVcbiAgICAgKi9cbiAgICBwdWJsaWMgbG9hZFN0YXRlKGdsb2JhbFN0YXRlOiBhbnksIGxvYWRDaGlsZHJlbjogYm9vbGVhbiA9IHRydWUpOiB2b2lkIHtcbiAgICAgICAgY29uc3Qgc3RhdGUgPSBnbG9iYWxTdGF0ZVt0aGlzLmdsb2JhbFN0YXRlSWRdO1xuICAgICAgICBsZXQgc2hhcmVkU3RhdGVDaGFuZ2VkID0gZmFsc2U7XG4gICAgICAgIF8uZm9yT3duKHRoaXMuX19zdGF0ZU1ldGFkYXRhLCAobWV0YWRhdGEsIGtleSkgPT4ge1xuICAgICAgICAgICAgaWYgKCFzdGF0ZSkgcmV0dXJuO1xuICAgICAgICAgICAgaWYgKCEoa2V5IGluIHN0YXRlKSkgcmV0dXJuO1xuXG4gICAgICAgICAgICBjb25zdCB2YWx1ZSA9IHN0YXRlW2tleV07XG4gICAgICAgICAgICBpZiAobWV0YWRhdGEuc2hhcmVkKSB7XG4gICAgICAgICAgICAgICAgLy8gR2V0IHRoZSBzaGFyZWQgc3RvcmUgZnJvbSB0aGUgc2hhcmVkIHN0b3JlIG1hbmFnZXIuXG4gICAgICAgICAgICAgICAgY29uc3QgZXhpc3RpbmdWYWx1ZTogU2hhcmVkU3RvcmU8YW55LCBhbnk+ID0gdGhpc1ttZXRhZGF0YS5wcm9wZXJ0eU5hbWVdO1xuICAgICAgICAgICAgICAgIGlmIChleGlzdGluZ1ZhbHVlLnN0b3JlSWQgIT09IHZhbHVlKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXNbbWV0YWRhdGEucHJvcGVydHlOYW1lXSA9IHRoaXMuX3NoYXJlZFN0b3JlTWFuYWdlci5nZXRTdG9yZTxhbnk+KHZhbHVlKTtcbiAgICAgICAgICAgICAgICAgICAgc2hhcmVkU3RhdGVDaGFuZ2VkID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHRoaXNbbWV0YWRhdGEucHJvcGVydHlOYW1lXSA9IHZhbHVlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcblxuICAgICAgICAvLyBMb2FkIGNoaWxkIHN0YXRlLlxuICAgICAgICBpZiAobG9hZENoaWxkcmVuKSB7XG4gICAgICAgICAgICBmb3IgKGNvbnN0IGNoaWxkIG9mIHRoaXMuX2NoaWxkcmVuKSB7XG4gICAgICAgICAgICAgICAgY2hpbGQubG9hZFN0YXRlKGdsb2JhbFN0YXRlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChzaGFyZWRTdGF0ZUNoYW5nZWQpIHtcbiAgICAgICAgICAgIC8vIENhbmNlbCBhbnkgcHJldmlvdXMgc3Vic2NyaXB0aW9ucyB0byBzaGFyZWQgc3RvcmVzLlxuICAgICAgICAgICAgZm9yIChjb25zdCBzdWJzY3JpcHRpb24gb2YgdGhpcy5fc2hhcmVkU3RvcmVTdWJzY3JpcHRpb25zKSB7XG4gICAgICAgICAgICAgICAgc3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC8vIFJlc3Vic2NyaWJlLCB1c2luZyB0aGUgbmV3IHN0b3Jlcy5cbiAgICAgICAgICAgIGZvciAoY29uc3QgcmVxdWVzdCBvZiB0aGlzLl9zaGFyZWRTdG9yZVN1YnNjcmliZVJlcXVlc3RzKSB7XG4gICAgICAgICAgICAgICAgcmVxdWVzdCgpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5vbkNvbXBvbmVudFN0YXRlQWZ0ZXJMb2FkKCk7XG5cbiAgICAgICAgLy8gUHJvcGFnYXRlIHN0YXRlIHVwZGF0ZXMgdG8gdGhlIHZpZXcuXG4gICAgICAgIHRoaXMuJHNjb3BlLiRhcHBseUFzeW5jKCk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQ2hlY2sgaWYgcHJvcGVydHkgaGFzIG5vdCBiZWVuIGxvYWRlZCBmcm9tIHN0YXRlLCBvciBpc24ndCBkZWZpbmVkLiBVc3VhbGx5IHVzZWRcbiAgICAgKiBiZWZvcmUgc2V0dGluZyBhIGRlZmVycmVkIGRlZmF1bHQgdmFsdWUuXG4gICAgICovXG4gICAgcHVibGljIGlzUHJvcGVydHlOb3RMb2FkZWRGcm9tU3RhdGVPcklzVW5kZWZpbmVkPFAgZXh0ZW5kcyBrZXlvZiB0aGlzPihwcm9wZXJ0eTogUCkge1xuICAgICAgICByZXR1cm4gXy5pc1VuZGVmaW5lZCh0aGlzW3Byb3BlcnR5XSk7XG4gICAgfVxuXG4gICAgcHVibGljIHN0YXRpYyBjb25maWd1cmVDb21wb25lbnQoY29uZmlnOiBDb21wb25lbnRDb25maWd1cmF0aW9uKTogQ29tcG9uZW50Q29uZmlndXJhdGlvbiB7XG4gICAgICAgIGNvbnN0IHN0YXRlTWV0YWRhdGEgPSB0aGlzLnByb3RvdHlwZS5fX3N0YXRlTWV0YWRhdGE7XG4gICAgICAgIGlmICghY29uZmlnLmJpbmRpbmdzKSBjb25maWcuYmluZGluZ3MgPSB7fTtcblxuICAgICAgICBfLmZvck93bihzdGF0ZU1ldGFkYXRhLCAobWV0YWRhdGEsIGtleSkgPT4ge1xuICAgICAgICAgICAgaWYgKG1ldGFkYXRhLnNoYXJlZCkge1xuICAgICAgICAgICAgICAgIGNvbmZpZy5iaW5kaW5nc1ttZXRhZGF0YS5nZXRTaGFyZWRTdG9yZU5hbWVQcm9wZXJ0eSgpXSA9ICdAc3RvcmUnICsgXy5jYXBpdGFsaXplKGtleSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgICByZXR1cm4gY29uZmlnO1xuICAgIH1cbn1cblxuLyoqXG4gKiBNYXJrcyBhIHByb3BlcnR5IGFzIGJlaW5nIHBhcnQgb2YgdGhlIGNvbXBvbmVudCdzIHN0YXRlLlxuICpcbiAqIEBwYXJhbSB7c3RyaW5nfSBuYW1lIE9wdGlvbmFsIHN0YXRlIG5hbWVcbiAqIEBwYXJhbSB7Ym9vbGVhbn0gc2hhcmVkIERvZXMgdGhpcyBzdGF0ZSByZWZlcmVuY2UgYSBzaGFyZWQgc3RvcmVcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHN0YXRlKG5hbWU/OiBzdHJpbmcsIHNoYXJlZDogYm9vbGVhbiA9IGZhbHNlKSB7XG4gICAgcmV0dXJuICh0YXJnZXQ6IFN0YXRlZnVsQ29tcG9uZW50QmFzZSwgcHJvcGVydHlLZXk6IHN0cmluZykgPT4ge1xuICAgICAgICBpZiAoIW5hbWUpIG5hbWUgPSBwcm9wZXJ0eUtleTtcblxuICAgICAgICBpZiAobmFtZVswXSA9PT0gJ18nKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgR2VuRXJyb3IoXCJTdGF0ZSBpZGVudGlmaWVycyBzdGFydGluZyB3aXRoIGFuIHVuZGVyc2NvcmUgYXJlIHJlc2VydmVkLlwiKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICghdGFyZ2V0Ll9fc3RhdGVNZXRhZGF0YSkge1xuICAgICAgICAgICAgdGFyZ2V0Ll9fc3RhdGVNZXRhZGF0YSA9IHt9O1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHRhcmdldC5fX3N0YXRlTWV0YWRhdGFbbmFtZV0pIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBHZW5FcnJvcihcIkR1cGxpY2F0ZSBzdGF0ZSBpZGVudGlmaWVyICdcIiArIG5hbWUgKyBcIicgb24gc3RhdGVmdWwgY29tcG9uZW50ICdcIiArIHRhcmdldCArIFwiJy5cIik7XG4gICAgICAgIH1cbiAgICAgICAgdGFyZ2V0Ll9fc3RhdGVNZXRhZGF0YVtuYW1lXSA9IG5ldyBTdGF0ZUl0ZW1NZXRhZGF0YShwcm9wZXJ0eUtleSwgc2hhcmVkKTtcbiAgICB9O1xufVxuXG4vKipcbiAqIE1hcmtzIGEgcHJvcGVydHkgYXMgYmVpbmcgcGFydCBvZiB0aGUgY29tcG9uZW50J3Mgc3RhdGUsIHdoaWNoIHJlZmVyZW5jZXNcbiAqIGEgc2hhcmVkIHN0b3JlLlxuICpcbiAqIEBwYXJhbSB7c3RyaW5nfSBuYW1lIE9wdGlvbmFsIHN0YXRlIG5hbWVcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHNoYXJlZFN0YXRlKG5hbWU/OiBzdHJpbmcpIHtcbiAgICByZXR1cm4gc3RhdGUobmFtZSwgdHJ1ZSk7XG59XG4iXX0=
import 'angular-mocks';
//# sourceMappingURL=stateful.spec.d.ts.map

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

/// <reference types="angular" />
import * as angular from 'angular';

@@ -25,2 +26,1 @@ import { StatefulComponentBase } from './stateful';

}
//# sourceMappingURL=view.d.ts.map
"use strict";
var __extends = (this && this.__extends) || (function () {
var extendStatics = function (d, b) {
extendStatics = Object.setPrototypeOf ||
({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
return extendStatics(d, b);
}
var extendStatics = Object.setPrototypeOf ||
({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
return function (d, b) {

@@ -69,2 +66,2 @@ extendStatics(d, b);

//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9jb3JlL2NvbXBvbmVudHMvdmlldy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFFQSwrQkFBaUM7QUFDakMsdUNBQWlEO0FBRWpEOzs7Ozs7Ozs7O0dBVUc7QUFJSDtJQUE0QyxpQ0FBcUI7SUFBakU7O0lBOEJBLENBQUM7SUFsQmlCLGdDQUFrQixHQUFoQyxVQUFpQyxPQUFpQyxFQUFFLFVBQStCO1FBQy9GLDZFQUE2RTtRQUM3RSxPQUFPLENBQUMsU0FBUyxDQUFDLHNDQUFzQyxDQUFDLENBQUM7UUFFMUQsMENBQTBDO1FBQzFDLElBQUksSUFBSSxDQUFDLGVBQWUsRUFBRTtZQUN0QixPQUFPLENBQUMsTUFBTSxDQUFDLGlDQUFpQyxHQUFHLElBQUksQ0FBQyxtQkFBbUIsR0FBRyxRQUFRLENBQUMsQ0FBQztTQUMzRjtJQUNMLENBQUM7SUFFRDs7OztPQUlHO0lBQ0ksaUNBQVMsR0FBaEI7UUFDSSxPQUFPLElBQUksQ0FBQyxrQkFBa0IsRUFBRSxDQUFDO0lBQ3JDLENBQUM7SUE1QkQsb0VBQW9FO0lBQ25ELDZCQUFlLEdBQVksSUFBSSxDQUFDO0lBQ2pELHFCQUFxQjtJQUNKLGlDQUFtQixHQUFXLGdPQU05QyxDQUFDO0lBVmdCLGFBQWE7UUFIbEMsZ0JBQVMsQ0FBQztZQUNQLFFBQVEsRUFBRSxJQUFJO1NBQ2pCLENBQUM7T0FDb0IsYUFBYSxDQThCbEM7SUFBRCxvQkFBQztDQTlCRCxBQThCQyxDQTlCMkMsZ0NBQXFCLEdBOEJoRTtBQTlCcUIsc0NBQWEiLCJmaWxlIjoiY29yZS9jb21wb25lbnRzL3ZpZXcuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyBhbmd1bGFyIGZyb20gJ2FuZ3VsYXInO1xuXG5pbXBvcnQge2NvbXBvbmVudH0gZnJvbSAnLi9iYXNlJztcbmltcG9ydCB7U3RhdGVmdWxDb21wb25lbnRCYXNlfSBmcm9tICcuL3N0YXRlZnVsJztcblxuLyoqXG4gKiBBbiBhYnN0cmFjdCBiYXNlIGNsYXNzIGZvciBjb21wb25lbnRzLCB3aGljaCByZXByZXNlbnQgY29tcGxldGUgdmlld3MuIEV4dGVuZGluZ1xuICogdGhpcyBjb21wb25lbnQgd2lsbCBlbnN1cmUgdGhhdCBjb21wb25lbnQgY29udGVudHMgd2lsbCBvbmx5IGJlIHJlbmRlcmVkIHdoZW5cbiAqIGFsbCB0aGUgc3Vic2NyaXB0aW9ucyBhcmUgcmVhZHkuXG4gKlxuICogQWRkaXRpb25hbGx5LCB0aGUgY29tcG9uZW50IHdpbGwgcmVuZGVyIGEgXCJsb2FkaW5nXCIgdmlldyB3aGlsZSBzdWJzY3JpcHRpb25zXG4gKiBhcmUgbm90IHJlYWR5LiBUaGUgdXNlIG9mIHRoaXMgbG9hZGluZyB2aWV3IG1heSBiZSBkaXNhYmxlZCBieSBzZXR0aW5nIHRoZVxuICogYHZpZXdTaG93TG9hZGluZ2Agc3RhdGljIHZhcmlhYmxlIHRvIGBmYWxzZWAuIFRoZSBsb2FkaW5nIHRlbXBsYXRlIG1heSBiZVxuICogY2hhbmdlZCBieSBzZXR0aW5nIHRoZSBgdmlld0xvYWRpbmdUZW1wbGF0ZWAgc3RhdGljIHZhcmlhYmxlIHRvIGEgdGVtcGxhdGVcbiAqIHN0cmluZy5cbiAqL1xuQGNvbXBvbmVudCh7XG4gICAgYWJzdHJhY3Q6IHRydWUsXG59KVxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIFZpZXdDb21wb25lbnQgZXh0ZW5kcyBTdGF0ZWZ1bENvbXBvbmVudEJhc2Uge1xuICAgIC8vLyBTaG91bGQgYSBsb2FkaW5nIHZpZXcgYmUgdXNlZCB3aGlsZSBzdWJzY3JpcHRpb25zIGFyZSBub3QgcmVhZHkuXG4gICAgcHJvdGVjdGVkIHN0YXRpYyB2aWV3U2hvd0xvYWRpbmc6IGJvb2xlYW4gPSB0cnVlO1xuICAgIC8vLyBMb2FkaW5nIHRlbXBsYXRlLlxuICAgIHByb3RlY3RlZCBzdGF0aWMgdmlld0xvYWRpbmdUZW1wbGF0ZTogc3RyaW5nID0gYFxuICAgICAgICA8ZGl2IGxheW91dD1cInJvd1wiPlxuICAgICAgICAgICAgPHNwYW4gZmxleD48L3NwYW4+XG4gICAgICAgICAgICA8bWQtcHJvZ3Jlc3MtY2lyY3VsYXIgbWQtZGlhbWV0ZXI9XCIyNXB4XCIgbWQtbW9kZT1cImluZGV0ZXJtaW5hdGVcIj48L21kLXByb2dyZXNzLWNpcmN1bGFyPlxuICAgICAgICAgICAgPHNwYW4gZmxleD48L3NwYW4+XG4gICAgICAgIDwvZGl2PlxuICAgIGA7XG5cbiAgICBwdWJsaWMgc3RhdGljIG9uQ29tcG9uZW50Q29tcGlsZShlbGVtZW50OiBhbmd1bGFyLklBdWdtZW50ZWRKUXVlcnksIGF0dHJpYnV0ZXM6IGFuZ3VsYXIuSUF0dHJpYnV0ZXMpOiB2b2lkIHtcbiAgICAgICAgLy8gV3JhcCBjb21wb25lbnQgY29udGVudCwgc28gdGhhdCBpdCBpcyBzaG93biBvbmx5IHdoZW4gdmlld3MgYmVjb21lcyByZWFkeS5cbiAgICAgICAgZWxlbWVudC53cmFwSW5uZXIoJzxkaXYgbmctaWY9XCJjdHJsLnZpZXdSZWFkeSgpXCI+PC9kaXY+Jyk7XG5cbiAgICAgICAgLy8gSW5jbHVkZSBhIGxvYWRpbmcgdmlldyB3aGVuIGNvbmZpZ3VyZWQuXG4gICAgICAgIGlmICh0aGlzLnZpZXdTaG93TG9hZGluZykge1xuICAgICAgICAgICAgZWxlbWVudC5hcHBlbmQoJzxkaXYgbmctaWY9XCIhY3RybC52aWV3UmVhZHkoKVwiPicgKyB0aGlzLnZpZXdMb2FkaW5nVGVtcGxhdGUgKyAnPC9kaXY+Jyk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBUaGlzIG1ldGhvZCByZXR1cm5zIHdoZXRoZXIgdGhlIHZpZXcgc2hvdWxkIGJlIGNvbnNpZGVyZWQgcmVhZHkuIEl0cyBkZWZhdWx0XG4gICAgICogaW1wbGVtZW50YXRpb24gc2ltcGx5IGNoZWNrcyBpZiBgc3Vic2NyaXB0aW9uc1JlYWR5KClgIHJldHVybnMgdHJ1ZS4gU3ViY2xhc3Nlc1xuICAgICAqIG1heSBvdmVycmlkZSB0aGlzIG1ldGhvZCB0byBpbXBsZW1lbnQgc29tZSBzcGVjaWZpYyBmdW5jdGlvbmFsaXR5LlxuICAgICAqL1xuICAgIHB1YmxpYyB2aWV3UmVhZHkoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLnN1YnNjcmlwdGlvbnNSZWFkeSgpO1xuICAgIH1cbn1cbiJdfQ==
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9jb3JlL2NvbXBvbmVudHMvdmlldy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFFQSwrQkFBaUM7QUFDakMsdUNBQWlEO0FBRWpEOzs7Ozs7Ozs7O0dBVUc7QUFJSDtJQUE0QyxpQ0FBcUI7SUFBakU7O0lBOEJBLENBQUM7SUFsQmlCLGdDQUFrQixHQUFoQyxVQUFpQyxPQUFpQyxFQUFFLFVBQStCO1FBQy9GLDZFQUE2RTtRQUM3RSxPQUFPLENBQUMsU0FBUyxDQUFDLHNDQUFzQyxDQUFDLENBQUM7UUFFMUQsMENBQTBDO1FBQzFDLElBQUksSUFBSSxDQUFDLGVBQWUsRUFBRTtZQUN0QixPQUFPLENBQUMsTUFBTSxDQUFDLGlDQUFpQyxHQUFHLElBQUksQ0FBQyxtQkFBbUIsR0FBRyxRQUFRLENBQUMsQ0FBQztTQUMzRjtJQUNMLENBQUM7SUFFRDs7OztPQUlHO0lBQ0ksaUNBQVMsR0FBaEI7UUFDSSxPQUFPLElBQUksQ0FBQyxrQkFBa0IsRUFBRSxDQUFDO0lBQ3JDLENBQUM7SUE1QkQsb0VBQW9FO0lBQ25ELDZCQUFlLEdBQVksSUFBSSxDQUFDO0lBQ2pELHFCQUFxQjtJQUNKLGlDQUFtQixHQUFXLGdPQU05QyxDQUFDO0lBVmdCLGFBQWE7UUFIbEMsZ0JBQVMsQ0FBQztZQUNQLFFBQVEsRUFBRSxJQUFJO1NBQ2pCLENBQUM7T0FDb0IsYUFBYSxDQThCbEM7SUFBRCxvQkFBQztDQTlCRCxBQThCQyxDQTlCMkMsZ0NBQXFCLEdBOEJoRTtBQTlCcUIsc0NBQWEiLCJmaWxlIjoiY29yZS9jb21wb25lbnRzL3ZpZXcuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyBhbmd1bGFyIGZyb20gJ2FuZ3VsYXInO1xuXG5pbXBvcnQge2NvbXBvbmVudH0gZnJvbSAnLi9iYXNlJztcbmltcG9ydCB7U3RhdGVmdWxDb21wb25lbnRCYXNlfSBmcm9tICcuL3N0YXRlZnVsJztcblxuLyoqXG4gKiBBbiBhYnN0cmFjdCBiYXNlIGNsYXNzIGZvciBjb21wb25lbnRzLCB3aGljaCByZXByZXNlbnQgY29tcGxldGUgdmlld3MuIEV4dGVuZGluZ1xuICogdGhpcyBjb21wb25lbnQgd2lsbCBlbnN1cmUgdGhhdCBjb21wb25lbnQgY29udGVudHMgd2lsbCBvbmx5IGJlIHJlbmRlcmVkIHdoZW5cbiAqIGFsbCB0aGUgc3Vic2NyaXB0aW9ucyBhcmUgcmVhZHkuXG4gKlxuICogQWRkaXRpb25hbGx5LCB0aGUgY29tcG9uZW50IHdpbGwgcmVuZGVyIGEgXCJsb2FkaW5nXCIgdmlldyB3aGlsZSBzdWJzY3JpcHRpb25zXG4gKiBhcmUgbm90IHJlYWR5LiBUaGUgdXNlIG9mIHRoaXMgbG9hZGluZyB2aWV3IG1heSBiZSBkaXNhYmxlZCBieSBzZXR0aW5nIHRoZVxuICogYHZpZXdTaG93TG9hZGluZ2Agc3RhdGljIHZhcmlhYmxlIHRvIGBmYWxzZWAuIFRoZSBsb2FkaW5nIHRlbXBsYXRlIG1heSBiZVxuICogY2hhbmdlZCBieSBzZXR0aW5nIHRoZSBgdmlld0xvYWRpbmdUZW1wbGF0ZWAgc3RhdGljIHZhcmlhYmxlIHRvIGEgdGVtcGxhdGVcbiAqIHN0cmluZy5cbiAqL1xuQGNvbXBvbmVudCh7XG4gICAgYWJzdHJhY3Q6IHRydWUsXG59KVxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIFZpZXdDb21wb25lbnQgZXh0ZW5kcyBTdGF0ZWZ1bENvbXBvbmVudEJhc2Uge1xuICAgIC8vLyBTaG91bGQgYSBsb2FkaW5nIHZpZXcgYmUgdXNlZCB3aGlsZSBzdWJzY3JpcHRpb25zIGFyZSBub3QgcmVhZHkuXG4gICAgcHJvdGVjdGVkIHN0YXRpYyB2aWV3U2hvd0xvYWRpbmc6IGJvb2xlYW4gPSB0cnVlO1xuICAgIC8vLyBMb2FkaW5nIHRlbXBsYXRlLlxuICAgIHByb3RlY3RlZCBzdGF0aWMgdmlld0xvYWRpbmdUZW1wbGF0ZTogc3RyaW5nID0gYFxuICAgICAgICA8ZGl2IGxheW91dD1cInJvd1wiPlxuICAgICAgICAgICAgPHNwYW4gZmxleD48L3NwYW4+XG4gICAgICAgICAgICA8bWQtcHJvZ3Jlc3MtY2lyY3VsYXIgbWQtZGlhbWV0ZXI9XCIyNXB4XCIgbWQtbW9kZT1cImluZGV0ZXJtaW5hdGVcIj48L21kLXByb2dyZXNzLWNpcmN1bGFyPlxuICAgICAgICAgICAgPHNwYW4gZmxleD48L3NwYW4+XG4gICAgICAgIDwvZGl2PlxuICAgIGA7XG5cbiAgICBwdWJsaWMgc3RhdGljIG9uQ29tcG9uZW50Q29tcGlsZShlbGVtZW50OiBhbmd1bGFyLklBdWdtZW50ZWRKUXVlcnksIGF0dHJpYnV0ZXM6IGFuZ3VsYXIuSUF0dHJpYnV0ZXMpOiB2b2lkIHtcbiAgICAgICAgLy8gV3JhcCBjb21wb25lbnQgY29udGVudCwgc28gdGhhdCBpdCBpcyBzaG93biBvbmx5IHdoZW4gdmlld3MgYmVjb21lcyByZWFkeS5cbiAgICAgICAgZWxlbWVudC53cmFwSW5uZXIoJzxkaXYgbmctaWY9XCJjdHJsLnZpZXdSZWFkeSgpXCI+PC9kaXY+Jyk7XG5cbiAgICAgICAgLy8gSW5jbHVkZSBhIGxvYWRpbmcgdmlldyB3aGVuIGNvbmZpZ3VyZWQuXG4gICAgICAgIGlmICh0aGlzLnZpZXdTaG93TG9hZGluZykge1xuICAgICAgICAgICAgZWxlbWVudC5hcHBlbmQoJzxkaXYgbmctaWY9XCIhY3RybC52aWV3UmVhZHkoKVwiPicgKyB0aGlzLnZpZXdMb2FkaW5nVGVtcGxhdGUgKyAnPC9kaXY+Jyk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBUaGlzIG1ldGhvZCByZXR1cm5zIHdoZXRoZXIgdGhlIHZpZXcgc2hvdWxkIGJlIGNvbnNpZGVyZWQgcmVhZHkuIEl0cyBkZWZhdWx0XG4gICAgICogaW1wbGVtZW50YXRpb24gc2ltcGx5IGNoZWNrcyBpZiBgc3Vic2NyaXB0aW9uc1JlYWR5KClgIHJldHVybnMgdHJ1ZS4gU3ViY2xhc3Nlc1xuICAgICAqIG1heSBvdmVycmlkZSB0aGlzIG1ldGhvZCB0byBpbXBsZW1lbnQgc29tZSBzcGVjaWZpYyBmdW5jdGlvbmFsaXR5LlxuICAgICAqL1xuICAgIHB1YmxpYyB2aWV3UmVhZHkoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLnN1YnNjcmlwdGlvbnNSZWFkeSgpO1xuICAgIH1cbn1cbiJdfQ==

@@ -9,2 +9,1 @@ /**

}
//# sourceMappingURL=error.d.ts.map

@@ -5,8 +5,5 @@ "use strict";

var __extends = (this && this.__extends) || (function () {
var extendStatics = function (d, b) {
extendStatics = Object.setPrototypeOf ||
({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
return extendStatics(d, b);
}
var extendStatics = Object.setPrototypeOf ||
({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
return function (d, b) {

@@ -36,2 +33,2 @@ extendStatics(d, b);

//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9jb3JlL2Vycm9ycy9lcnJvci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEseUNBQXlDO0FBQ3pDLGdGQUFnRjs7Ozs7Ozs7Ozs7Ozs7O0FBRWhGOzs7O0dBSUc7QUFDSDtJQUE4Qiw0QkFBSztJQUMvQixrQkFBWSxPQUFlO1FBQTNCLFlBQ0ksa0JBQU0sT0FBTyxDQUFDLFNBR2pCO1FBRkcsZ0lBQWdJO1FBQ2hJLE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDLEtBQUksRUFBRSxRQUFRLENBQUMsU0FBUyxDQUFDLENBQUM7O0lBQ3ZELENBQUM7SUFDTCxlQUFDO0FBQUQsQ0FOQSxBQU1DLENBTjZCLEtBQUssR0FNbEM7QUFOWSw0QkFBUSIsImZpbGUiOiJjb3JlL2Vycm9ycy9lcnJvci5qcyIsInNvdXJjZXNDb250ZW50IjpbIi8vIFRPRE86IFJlbmFtZSBHZW5FcnJvciB0byBSZXNvbHdlRXJyb3IuXG4vLyBUT0RPOiBNb3ZlIHRoaXMgZmlsZSB0byBpbmRleC50cyBzbyB3ZSBjYW4gaW1wb3J0IGp1c3QgJ3Jlc29sd2UvY29yZS9lcnJvcnMnLlxuXG4vKipcbiAqIEJhc2UgZXJyb3IgY2xhc3MuXG4gKlxuICogSXQgc2hvdWxkIGJlIHVzZWQgZm9yIHJlc29sd2Ugc3BlY2lmaWMgZXJyb3JzLlxuICovXG5leHBvcnQgY2xhc3MgR2VuRXJyb3IgZXh0ZW5kcyBFcnJvciB7XG4gICAgY29uc3RydWN0b3IobWVzc2FnZTogc3RyaW5nKSB7XG4gICAgICAgIHN1cGVyKG1lc3NhZ2UpO1xuICAgICAgICAvLyBodHRwczovL2dpdGh1Yi5jb20vTWljcm9zb2Z0L1R5cGVTY3JpcHQvd2lraS9CcmVha2luZy1DaGFuZ2VzI2V4dGVuZGluZy1idWlsdC1pbnMtbGlrZS1lcnJvci1hcnJheS1hbmQtbWFwLW1heS1uby1sb25nZXItd29ya1xuICAgICAgICBPYmplY3RbJ3NldFByb3RvdHlwZU9mJ10odGhpcywgR2VuRXJyb3IucHJvdG90eXBlKTtcbiAgICB9XG59XG4iXX0=
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9jb3JlL2Vycm9ycy9lcnJvci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEseUNBQXlDO0FBQ3pDLGdGQUFnRjs7Ozs7Ozs7Ozs7O0FBRWhGOzs7O0dBSUc7QUFDSDtJQUE4Qiw0QkFBSztJQUMvQixrQkFBWSxPQUFlO1FBQTNCLFlBQ0ksa0JBQU0sT0FBTyxDQUFDLFNBR2pCO1FBRkcsZ0lBQWdJO1FBQ2hJLE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDLEtBQUksRUFBRSxRQUFRLENBQUMsU0FBUyxDQUFDLENBQUM7O0lBQ3ZELENBQUM7SUFDTCxlQUFDO0FBQUQsQ0FOQSxBQU1DLENBTjZCLEtBQUssR0FNbEM7QUFOWSw0QkFBUSIsImZpbGUiOiJjb3JlL2Vycm9ycy9lcnJvci5qcyIsInNvdXJjZXNDb250ZW50IjpbIi8vIFRPRE86IFJlbmFtZSBHZW5FcnJvciB0byBSZXNvbHdlRXJyb3IuXG4vLyBUT0RPOiBNb3ZlIHRoaXMgZmlsZSB0byBpbmRleC50cyBzbyB3ZSBjYW4gaW1wb3J0IGp1c3QgJ3Jlc29sd2UvY29yZS9lcnJvcnMnLlxuXG4vKipcbiAqIEJhc2UgZXJyb3IgY2xhc3MuXG4gKlxuICogSXQgc2hvdWxkIGJlIHVzZWQgZm9yIHJlc29sd2Ugc3BlY2lmaWMgZXJyb3JzLlxuICovXG5leHBvcnQgY2xhc3MgR2VuRXJyb3IgZXh0ZW5kcyBFcnJvciB7XG4gICAgY29uc3RydWN0b3IobWVzc2FnZTogc3RyaW5nKSB7XG4gICAgICAgIHN1cGVyKG1lc3NhZ2UpO1xuICAgICAgICAvLyBodHRwczovL2dpdGh1Yi5jb20vTWljcm9zb2Z0L1R5cGVTY3JpcHQvd2lraS9CcmVha2luZy1DaGFuZ2VzI2V4dGVuZGluZy1idWlsdC1pbnMtbGlrZS1lcnJvci1hcnJheS1hbmQtbWFwLW1heS1uby1sb25nZXItd29ya1xuICAgICAgICBPYmplY3RbJ3NldFByb3RvdHlwZU9mJ10odGhpcywgR2VuRXJyb3IucHJvdG90eXBlKTtcbiAgICB9XG59XG4iXX0=

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

/// <reference types="ng-file-upload" />
/// <reference types="angular" />
import * as Rx from 'rx';

@@ -10,3 +12,3 @@ import * as angular from 'angular';

RETRYING = "retrying",
RESULT = "result"
RESULT = "result",
}

@@ -99,2 +101,1 @@ export declare type UploadEvent<T> = {

}
//# sourceMappingURL=api.d.ts.map

@@ -5,2 +5,1 @@ import { APIServiceBase } from './api';

}
//# sourceMappingURL=api.spec.d.ts.map

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

/// <reference types="angular" />
import * as Rx from 'rx';

@@ -74,3 +75,3 @@ import * as angular from 'angular';

*/
private _reduceInternal;
private _reduceInternal(state, action);
/**

@@ -315,3 +316,3 @@ * Performs the given action on the underlying state.

*/
private _dispatch;
private _dispatch(action);
/**

@@ -326,2 +327,1 @@ * Serializes the values of all shared stores.

}
//# sourceMappingURL=index.d.ts.map
"use strict";
var __extends = (this && this.__extends) || (function () {
var extendStatics = function (d, b) {
extendStatics = Object.setPrototypeOf ||
({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
return extendStatics(d, b);
}
var extendStatics = Object.setPrototypeOf ||
({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
return function (d, b) {

@@ -492,2 +489,2 @@ extendStatics(d, b);

//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9jb3JlL3NoYXJlZF9zdG9yZS9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7QUFBQSwwQkFBNEI7QUFDNUIsdUJBQXlCO0FBQ3pCLGlDQUFtQztBQUVuQyxzQ0FBeUM7QUFDekMsOENBQWdEO0FBd0JoRDtJQUFBO0lBR0EsQ0FBQztJQUZHLCtEQUErRDtJQUNqRCxXQUFHLEdBQUcsZ0JBQWdCLENBQUM7SUFDekMsY0FBQztDQUhELEFBR0MsSUFBQTtBQUhZLDBCQUFPO0FBS3BCOzs7Ozs7Ozs7Ozs7O0dBYUc7QUFDSDtJQU9JLHFCQUFZLE9BQVc7UUFKZixhQUFRLEdBQXlDLEVBQUUsQ0FBQztRQUt4RCxJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksRUFBRSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsWUFBWSxFQUFFLENBQUMsQ0FBQztRQUM1RCxJQUFJLENBQUMsUUFBUSxHQUFHLE9BQU8sQ0FBQztRQUV4Qiw2QkFBNkI7UUFDN0IsSUFBSSxDQUFDLFdBQVcsR0FBRyxJQUFJLFVBQVUsRUFBRSxDQUFDO1FBQ3BDLElBQUksQ0FBQyxXQUFXLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxFQUFFLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7SUFDckYsQ0FBQztJQUtELHNCQUFXLGdDQUFPO1FBSGxCOztXQUVHO2FBQ0g7WUFDSSxPQUFPLElBQUksQ0FBQyxRQUFRLENBQUM7UUFDekIsQ0FBQzs7O09BQUE7SUFLRCxzQkFBVyxnQ0FBTztRQUhsQjs7V0FFRzthQUNIO1lBQ0ksT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDO1FBQ3pCLENBQUM7OztPQUFBO0lBRUQ7Ozs7O09BS0c7SUFDSSwrQkFBUyxHQUFoQixVQUFpQixNQUFjO1FBQzNCLElBQU0sYUFBYSxHQUFHLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FB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SSxTQUFTLGFBQVUsQ0FBQyxDQUFDO0FBQy9DLENBQUM7QUFFRCxJQUFNLGFBQWEsR0FBb0IsT0FBTyxDQUFDLE1BQU0sQ0FBQywrQkFBK0IsRUFBRSxFQUFFLENBQUMsQ0FBQztBQUUzRixnQ0FBZ0M7QUFDaEMsYUFBYSxDQUFDLFFBQVEsQ0FBQyxvQkFBb0IsRUFBRSxtQkFBbUIsQ0FBQyxDQUFDO0FBQ2xFLGFBQWEsQ0FBQyxPQUFPLENBQUMsWUFBWSxFQUFFLFVBQVUsQ0FBQyxDQUFDIiwiZmlsZSI6ImNvcmUvc2hhcmVkX3N0b3JlL2luZGV4LmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgXyBmcm9tICdsb2Rhc2gnO1xuaW1wb3J0ICogYXMgUnggZnJvbSAncngnO1xuaW1wb3J0ICogYXMgYW5ndWxhciBmcm9tICdhbmd1bGFyJztcblxuaW1wb3J0IHtpc0pzb25hYmxlfSBmcm9tICcuLi91dGlscy9sYW5nJztcbmltcG9ydCAqIGFzIGltbXV0YWJsZSBmcm9tICcuLi91dGlscy9pbW11dGFibGUnO1xuXG4vKipcbiAqIEEgc2hhcmVkIHN0b3JlIGFjdGlvbiBjb250YWlucyBhIGB0eXBlYCBwcm9wZXJ0eSBhbmQgYW55IG51bWJlciBvZiBvdGhlclxuICogY3VzdG9tIHByb3BlcnRpZXMuIEFjdGlvbiB0eXBlcyBzdGFydGluZyB3aXRoIGBAQGludGVybmFsL2AgYXJlIHJlc2VydmVkXG4gKiBmb3IgaW50ZXJuYWwgdXNlLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEFjdGlvbiB7XG4gICAgdHlwZTogc3RyaW5nO1xuICAgIFtwcm9wZXJ0eU5hbWU6IHN0cmluZ106IGFueTtcbn1cblxuLyoqXG4gKiBBIHRodW5rIGlzIGEgZnVuY3Rpb24sIHdoaWNoIG1lZGlhdGVzIHRoZSBkaXNwYXRjaCBvZiBhbiBhY3Rpb24uIEl0IG1heVxuICogYmUgZGlzcGF0Y2hlZCBpbiB0aGUgc2FtZSB3YXkgYXMgYW4gYWN0aW9uLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFRodW5rIHtcbiAgICAoZGlzcGF0Y2hlcjogRGlzcGF0Y2hlciwgZ2V0U3RhdGU6ICgpID0+IGFueSk6IGFueTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBTaGFyZWRTdG9yZVF1ZXJ5PFQsIFU+IHtcbiAgICAoc3RhdGU6IFJ4Lk9ic2VydmFibGU8VD4pOiBSeC5PYnNlcnZhYmxlPFU+O1xufVxuXG5leHBvcnQgY2xhc3MgQWN0aW9ucyB7XG4gICAgLy8vIEludGVybmFsIGFjdGlvbiBmb3Igc2V0dGluZyB0aGlzIHN0b3JlIHRvIGEgc3BlY2lmaWMgdmFsdWUuXG4gICAgcHVibGljIHN0YXRpYyBTRVQgPSAnQEBpbnRlcm5hbC9TRVQnO1xufVxuXG4vKipcbiAqIEEgc2hhcmVkIHN0b3JlIHJlcHJlc2VudHMgc3RhdGUgdGhhdCBpcyBzaGFyZWQgYmV0d2VlbiBtdWx0aXBsZSBjb21wb25lbnRzIGluXG4gKiBhIHByZWRpY3RhYmxlIHdheS4gQ29tcG9uZW50cyB1cGRhdGUgdGhlIHN0b3JlIGJ5IGRpc3BhdGNoaW5nIGFjdGlvbnMgdG9cbiAqIGl0IHVzaW5nIHRoZSBgZGlzcGF0Y2hgIG1ldGhvZC5cbiAqXG4gKiBFYWNoIHNoYXJlZCBzdG9yZSBhbHNvIHByb3ZpZGVzIGEgd2F5IGZvciB0aGUgY29tcG9uZW50cyB0byBzdWJzY3JpYmUgdG8gYW55XG4gKiBjaGFuZ2VzIGluIHRoZSBzdG9yZSdzIHN0YXRlLlxuICpcbiAqIENvbnNpZGVyIGRlZmluaW5nIGFjdGlvbnMgZm9yIHVzZSBpbiBhIHNoYXJlZCBzdG9yZSBzZXBhcmF0ZWx5IGZyb20gdGhlIHN0b3JlLFxuICogaW4gdGhlIGBhY3Rpb25zYCBzdWJkaXJlY3RvcnkuIFNlZSBbW1NoYXJlZFN0b3JlTWFuYWdlcl1dIGZvciBkZXRhaWxzLlxuICpcbiAqIERvbid0IGZvcmdldCB0byBjYWxsIGNvbnN0cnVjdG9yIHdpdGggYWN0aW9ucyBhcyBhbiBhcmd1bWVudCB3aGVuIGV4dGVuZGluZ1xuICogdGhpcyBjbGFzcy5cbiAqL1xuZXhwb3J0IGFic3RyYWN0IGNsYXNzIFNoYXJlZFN0b3JlPFQsIFU+IHtcbiAgICBwcml2YXRlIF9zdWJqZWN0OiBSeC5CZWhhdmlvclN1YmplY3Q8VD47XG4gICAgcHJpdmF0ZSBfZGlzcGF0Y2hlcjogRGlzcGF0Y2hlcjtcbiAgICBwcml2YXRlIF9xdWVyaWVzOiB7W25hbWU6IHN0cmluZ106IFJ4Lk9ic2VydmFibGU8YW55Pn0gPSB7fTtcbiAgICBwcml2YXRlIF9hY3Rpb25zOiBVO1xuICAgIHByaXZhdGUgX3N0b3JlSWQ6IHN0cmluZztcblxuICAgIGNvbnN0cnVjdG9yKGFjdGlvbnM/OiBVKSB7XG4gICAgICAgIHRoaXMuX3N1YmplY3QgPSBuZXcgUnguQmVoYXZpb3JTdWJqZWN0KHRoaXMuaW5pdGlhbFN0YXRlKCkpO1xuICAgICAgICB0aGlzLl9hY3Rpb25zID0gYWN0aW9ucztcblxuICAgICAgICAvLyBDcmVhdGUgYSBsb2NhbCBkaXNwYXRjaGVyLlxuICAgICAgICB0aGlzLl9kaXNwYXRjaGVyID0gbmV3IERpc3BhdGNoZXIoKTtcbiAgICAgICAgdGhpcy5fZGlzcGF0Y2hlci5zZXREaXNwYXRjaGVyKHRoaXMuX2Rpc3BhdGNoLmJpbmQodGhpcyksIHRoaXMudmFsdWUuYmluZCh0aGlzKSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogUmV0dXJucyBhIHVuaXF1ZSBpZGVudGlmaWVyIGZvciB0aGlzIHNoYXJlZCBzdG9yZS5cbiAgICAgKi9cbiAgICBwdWJsaWMgZ2V0IHN0b3JlSWQoKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3N0b3JlSWQ7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogUmV0dXJucyBzdG9yZSBhY3Rpb25zLlxuICAgICAqL1xuICAgIHB1YmxpYyBnZXQgYWN0aW9ucygpOiBVIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2FjdGlvbnM7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogSW50ZXJuYWwgZGlzcGF0Y2hlciBpbXBsZW1lbnRhdGlvbi5cbiAgICAgKlxuICAgICAqIE5PVEU6IFRoaXMgbWV0aG9kIGlzIHB1YmxpYyBiZWNhdXNlIHRoZXJlIGlzIG5vIHdheSB0byBkZWZpbmUgcHJpdmF0ZVxuICAgICAqIGJ1dCBhY2Nlc3NpYmxlIHRvIG90aGVyIGNsYXNzZXMgd2l0aGluIHRoaXMgbW9kdWxlIGluIFR5cGVTY3JpcHQuXG4gICAgICovXG4gICAgcHVibGljIF9kaXNwYXRjaChhY3Rpb246IEFjdGlvbik6IHZvaWQge1xuICAgICAgICBjb25zdCBleGlzdGluZ1ZhbHVlID0gdGhpcy52YWx1ZSgpO1xuICAgICAgICBsZXQgcmVkdWNlcjogKHZhbHVlOiBULCBhY3Rpb246IEFjdGlvbikgPT4gVDtcbiAgICAgICAgaWYgKF8uc3RhcnRzV2l0aChhY3Rpb24udHlwZSwgJ0BAaW50ZXJuYWwvJykpIHtcbiAgICAgICAgICAgIHJlZHVjZXIgPSB0aGlzLl9yZWR1Y2VJbnRlcm5hbC5iaW5kKHRoaXMpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcmVkdWNlciA9IHRoaXMucmVkdWNlLmJpbmQodGhpcyk7XG4gICAgICAgIH1cblxuICAgICAgICBsZXQgbmV3VmFsdWUgPSByZWR1Y2VyKGV4aXN0aW5nVmFsdWUsIGFjdGlvbik7XG4gICAgICAgIGlmIChfLmlzVW5kZWZpbmVkKG5ld1ZhbHVlKSkgcmV0dXJuO1xuXG4gICAgICAgIGlmIChhbmd1bGFyLmVxdWFscyhleGlzdGluZ1ZhbHVlLCBuZXdWYWx1ZSkpIHJldHVybjtcbiAgICAgICAgdGhpcy5fc3ViamVjdC5vbk5leHQoaW1tdXRhYmxlLm1ha2VJbW11dGFibGUobmV3VmFsdWUpKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBEaXNwYXRjaGVzIGFuIGFjdGlvbiB0byB0aGlzIHNoYXJlZCBzdG9yZS5cbiAgICAgKlxuICAgICAqIEBwYXJhbSBhY3Rpb24gQWN0aW9uIHRvIGRpc3BhdGNoXG4gICAgICovXG4gICAgcHVibGljIGRpc3BhdGNoKGFjdGlvbjogQWN0aW9uIHwgVGh1bmspOiBhbnkge1xuICAgICAgICByZXR1cm4gdGhpcy5fZGlzcGF0Y2hlci5kaXNwYXRjaChhY3Rpb24pO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFBlcmZvcm1zIGludGVybmFsIHJlZHVjZSBhY3Rpb25zIGltcGxlbWVudGVkIGZvciBlYWNoIHNoYXJlZCBzdG9yZS5cbiAgICAgKlxuICAgICAqIEBwYXJhbSBzdGF0ZSBFeGlzdGluZyBzaGFyZWQgc3RvcmUgc3RhdGVcbiAgICAgKiBAcGFyYW0gYWN0aW9uIEFjdGlvbiB0byBwZXJmb3JtXG4gICAgICogQHJldHVybiBOZXcgc2hhcmVkIHN0b3JlIHN0YXRlXG4gICAgICovXG4gICAgcHJpdmF0ZSBfcmVkdWNlSW50ZXJuYWwoc3RhdGU6IFQsIGFjdGlvbjogQWN0aW9uKTogVCB7XG4gICAgICAgIHN3aXRjaCAoYWN0aW9uLnR5cGUpIHtcbiAgICAgICAgICAgIGNhc2UgQWN0aW9ucy5TRVQ6IHtcbiAgICAgICAgICAgICAgICBjb25zdCBuZXh0U3RhdGUgPSBhY3Rpb25bJ3ZhbHVlJ107XG4gICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMub25TdGF0ZUxvYWQoc3RhdGUsIG5leHRTdGF0ZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBkZWZhdWx0OiB7XG4gICAgICAgICAgICAgICAgLy8gRG8gbm90aGluZy5cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFBlcmZvcm1zIHRoZSBnaXZlbiBhY3Rpb24gb24gdGhlIHVuZGVybHlpbmcgc3RhdGUuXG4gICAgICpcbiAgICAgKiBTdWJjbGFzc2VzIG1heSBvdmVycmlkZSB0aGlzIG1ldGhvZCB0byBpbXBsZW1lbnQgYXJiaXRyYXJ5IGNvbXBsZXhcbiAgICAgKiBhY3Rpb25zIG9uIHRoZSBkYXRhIHN0b3JlLiBUaGlzIG1ldGhvZCBNVVNUIE5PVCBtdXRhdGUgdGhlIGV4aXN0aW5nXG4gICAgICogc3RhdGUuIEluc3RlYWQsIGl0IE1VU1QgcmV0dXJuIGFuIGltbXV0YWJsZSBjb3B5LlxuICAgICAqXG4gICAgICogQHBhcmFtIHZhbHVlIEV4aXN0aW5nIHNoYXJlZCBzdG9yZSBzdGF0ZVxuICAgICAqIEBwYXJhbSBhY3Rpb24gT3BlcmF0aW9uIHRvIHBlcmZvcm1cbiAgICAgKiBAcmV0dXJuIE5ldyBzaGFyZWQgc3RvcmUgc3RhdGVcbiAgICAgKi9cbiAgICBwcm90ZWN0ZWQgYWJzdHJhY3QgcmVkdWNlKHN0YXRlOiBULCBhY3Rpb246IEFjdGlvbik6IFQ7XG5cbiAgICAvKipcbiAgICAgKiBQcm92aWRlcyB0aGUgaW5pdGlhbCBzdGF0ZSBmb3IgdGhpcyBzaGFyZWQgc3RvcmUuIFRoaXMgc3RhdGUgaXNcbiAgICAgKiB1c2VkIHdoZW4gdGhlIHN0b3JlIGlzIGluaXRpYWxpemVkLlxuICAgICAqL1xuICAgIHByb3RlY3RlZCBhYnN0cmFjdCBpbml0aWFsU3RhdGUoKTogVDtcblxuICAgIC8qKlxuICAgICAqIFRoaXMgbWV0aG9kIGdldHMgY2FsbGVkIHdoZW4gdGhlIGRhdGEgc3RvcmUncyBzdGF0ZSBpcyBsb2FkZWQgZnJvbVxuICAgICAqIGFuIGV4dGVybmFsIHNvdXJjZSAod2hlbiB0aGUgU0VUIGFjdGlvbiBpcyBkaXNwYXRjaGVkIHRvIHRoZSBzdG9yZSkuXG4gICAgICpcbiAgICAgKiBJdCBpcyBjYWxsZWQgYmVmb3JlIHRoZSBuZXcgc3RhdGUgaGFzIGJlZW4gc2V0LiBUaGUgZGVmYXVsdCBpbXBsZW1lbnRhdGlvblxuICAgICAqIGRvZXMgbm90aGluZy5cbiAgICAgKlxuICAgICAqIEBwYXJhbSBzdGF0ZSBPbGQgc3RhdGVcbiAgICAgKiBAcGFyYW0gbmV4dFN0YXRlIE5ldyBzdGF0ZVxuICAgICAqIEByZXR1cm4gUG9zc2libHkgbW9kaWZpZWQgc3RhdGUgdGhhdCBzaG91bGQgYmUgdXNlZCBpbnN0ZWFkXG4gICAgICovXG4gICAgcHJvdGVjdGVkIG9uU3RhdGVMb2FkKHN0YXRlOiBULCBuZXh0U3RhdGU6IFQpOiBUIHtcbiAgICAgICAgcmV0dXJuIG5leHRTdGF0ZTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBBIGhlbHBlciBtZXRob2QgZm9yIGRlZmluaW5nIHNoYXJlZCBzdG9yZSBxdWVyaWVzLiBJZiB0aGUgcXVlcnkgaXMgYWxyZWFkeVxuICAgICAqIGRlZmluZWQsIHRoZSBleGlzdGluZyBvYnNlcnZhYmxlIGlzIHJldHVybmVkLlxuICAgICAqXG4gICAgICogQHBhcmFtIG5hbWUgUXVlcnkgbmFtZVxuICAgICAqIEBwYXJhbSBxdWVyeSBRdWVyeSBmdW5jdGlvblxuICAgICAqIEByZXR1cm4gUmVzdWx0aW5nIHF1ZXJ5IG9ic2VydmFibGVcbiAgICAgKi9cbiAgICBwcm90ZWN0ZWQgZGVmaW5lUXVlcnk8Vj4obmFtZTogc3RyaW5nLCBxdWVyeTogU2hhcmVkU3RvcmVRdWVyeTxULCBWPik6IFJ4Lk9ic2VydmFibGU8Vj4ge1xuICAgICAgICBsZXQgb2JzZXJ2YWJsZTogUnguT2JzZXJ2YWJsZTxWPiA9IHRoaXMuX3F1ZXJpZXNbbmFtZV07XG4gICAgICAgIGlmIChvYnNlcnZhYmxlKSByZXR1cm4gb2JzZXJ2YWJsZTtcblxuICAgICAgICBvYnNlcnZhYmxlID0gdGhpcy5fcXVlcmllc1tuYW1lXSA9IHRoaXMub2JzZXJ2YWJsZSgpLmxldChxdWVyeSkuZGlzdGluY3RVbnRpbENoYW5nZWQoKTtcbiAgICAgICAgcmV0dXJuIG9ic2VydmFibGU7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogUmV0dXJucyB0aGUgY3VycmVudCB2YWx1ZSBzdG9yZWQgaW4gdGhlIHN0b3JlLlxuICAgICAqXG4gICAgICogWW91IE1VU1QgZW5zdXJlIHRoYXQgdGhlIHJlc3VsdGluZyBvYmplY3QgaXMgTk9UIG11dGF0ZWQgaW4gYW55IHdheS4gQW55XG4gICAgICogbXV0YXRpb24gbWF5IGNhdXNlIHVuZGVmaW5lZCBiZWhhdmlvci5cbiAgICAgKi9cbiAgICBwdWJsaWMgdmFsdWUoKTogVCB7XG4gICAgICAgIHJldHVybiB0aGlzLl9zdWJqZWN0LmdldFZhbHVlKCk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogUmV0dXJucyBhbiBvYnNlcnZhYmxlIG9mIHRoZSBzdG9yZSdzIHZhbHVlLlxuICAgICAqXG4gICAgICogWW91IE1VU1QgZW5zdXJlIHRoYXQgdGhlIG9ic2VydmVkIHZhbHVlIGlzIE5PVCBtdXRhdGVkIGluIGFueSB3YXkuIEFueVxuICAgICAqIG11dGF0aW9uIG1heSBjYXVzZSB1bmRlZmluZWQgYmVoYXZpb3IuXG4gICAgICovXG4gICAgcHVibGljIG9ic2VydmFibGUoKTogUnguT2JzZXJ2YWJsZTxUPiB7XG4gICAgICAgIHJldHVybiB0aGlzLl9zdWJqZWN0O1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFJldHVybnMgYSB2YWx1ZSB0aGF0IHNob3VsZCBiZSB1c2VkIHdoZW4gc2F2aW5nIHN0b3JlIHN0YXRlLlxuICAgICAqXG4gICAgICogQnkgZGVmYXVsdCwgdGhpcyB3aWxsIHJldHVybiB0aGUgc2FtZSBhcyBbW3ZhbHVlXV0uXG4gICAgICovXG4gICAgcHVibGljIHNhdmVWYWx1ZSgpOiBUIHtcbiAgICAgICAgcmV0dXJuIHRoaXMudmFsdWUoKTtcbiAgICB9XG59XG5cbi8qKlxuICogW1tTaW1wbGVTaGFyZWRTdG9yZV1dIGlzIGEgaGVscGVyIGNsYXNzIGludGVuZGVkIHRvIGJlIHVzZWQgYXMgYSB0eXBlIGluIGNvbmp1bmN0aW9uIHdpdGhcbiAqIFtbU2hhcmVkU3RvcmVQcm92aWRlcl1dJ3MgYGNyZWF0ZWAgbWV0aG9kIHdoZXJlIG9ubHkgU0VUIGFjdGlvbiBpcyB1c2VkLlxuICpcbiAqIEluIHRoaXMgY2FzZSBubyBzdWJjbGFzc2luZyBvZiBzdG9yZSBhbmQgYWN0aW9ucyBpcyBuZWVkZWQgYmVjYXVzZSBvbmx5IFNFVCBhY3Rpb24gaXMgdXNlZC5cbiAqIFRoaXMgaXMgY29udmVuaWVudCBmb3IgdXNlIGNhc2VzIHdoZXJlIHlvdSBvbmx5IG5lZWQgdG8gc2V0IGEgdmFsdWUgdGhhdCB5b3UgY2FuIHN1YnNjcmliZVxuICogdG8gZnJvbSBvdGhlciBjb21wb25lbnRzLlxuICovXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgU2ltcGxlU2hhcmVkU3RvcmU8VD4gZXh0ZW5kcyBTaGFyZWRTdG9yZTxULCB0eXBlb2YgdW5kZWZpbmVkPiB7IH1cblxuLyoqXG4gKiBVc2VkIHRvIGRpc3BhdGNoIGFjdGlvbnMgdG8gc2hhcmVkIHN0b3Jlcy5cbiAqL1xuZXhwb3J0IGNsYXNzIERpc3BhdGNoZXIgZXh0ZW5kcyBSeC5TdWJqZWN0PEFjdGlvbj4ge1xuICAgIHByaXZhdGUgX2dldFN0YXRlOiAoKSA9PiBhbnkgPSAoKSA9PiB1bmRlZmluZWQ7XG5cbiAgICAvKipcbiAgICAgKiBDb25maWd1cmVzIGEgZGlzcGF0Y2hlciBmdW5jdGlvbiBmb3IgdGhpcyBkaXNwYXRjaGVyLlxuICAgICAqXG4gICAgICogQHBhcmFtIGRpc3BhdGNoZXIgVGhlIGRpc3BhdGNoZXIgZnVuY3Rpb25cbiAgICAgKi9cbiAgICBwdWJsaWMgc2V0RGlzcGF0Y2hlcihkaXNwYXRjaGVyOiAoYWN0aW9uOiBBY3Rpb24pID0+IHZvaWQsIGdldFN0YXRlPzogKCkgPT4gYW55KTogdm9pZCB7XG4gICAgICAgIC8vIFRoZSBkaXNwYXRjaGVyIGlzIHVzZWQgdG8gZGlzcGF0Y2ggYWxsIGFjdGlvbnMgdXNpbmcgYSBxdWV1ZSwgc28gYWN0aW9uc1xuICAgICAgICAvLyBtYXkgaW52b2tlIHRoZSBkaXNwYXRjaCBtZXRob2Qgd2l0aG91dCBjYXVzaW5nIHJlY3Vyc2lvbi4gVGhlIGN1cnJlbnRUaHJlYWRcbiAgICAgICAgLy8gc2NoZWR1bGVyIHB1dHMgYWxsIHBlbmRpbmcgaXRlbXMgaW5zaWRlIGEgcXVldWUsIHdoaWNoIGlzIGRpc3BhdGNoZWQgYWZ0ZXJcbiAgICAgICAgLy8gcmV0dXJuaW5nIGZyb20gYWN0aXZlIGRpc3BhdGNoLlxuICAgICAgICB0aGlzLm9ic2VydmVPbihSeC5TY2hlZHVsZXIuY3VycmVudFRocmVhZCkuc3Vic2NyaWJlKGRpc3BhdGNoZXIpO1xuICAgICAgICBpZiAoZ2V0U3RhdGUpIHRoaXMuX2dldFN0YXRlID0gZ2V0U3RhdGU7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogRGlzcGF0Y2hlcyBhbiBhY3Rpb24gdmlhIHRoaXMgZGlzcGF0Y2hlci5cbiAgICAgKi9cbiAgICBwdWJsaWMgZGlzcGF0Y2goYWN0aW9uOiBBY3Rpb24gfCBUaHVuayk6IGFueSB7XG4gICAgICAgIGlmIChfLmlzRnVuY3Rpb24oYWN0aW9uKSkge1xuICAgICAgICAgICAgLy8gQSB0aHVuayBoYXMgYmVlbiBwYXNzZWQuIEV4ZWN1dGUgaXQgd2l0aCB0aGUgZGlzcGF0Y2hlciBhcmd1bWVudCBhbmRcbiAgICAgICAgICAgIC8vIHJldHVybiB0aGUgcmVzdWx0LlxuICAgICAgICAgICAgcmV0dXJuIGFjdGlvbih0aGlzLCB0aGlzLl9nZXRTdGF0ZSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLm9uTmV4dChhY3Rpb24pO1xuICAgICAgICB9XG4gICAgfVxufVxuXG5pbnRlcmZhY2UgU2hhcmVkU3RvcmVNYXAge1xuICAgIFtpbmRleDogc3RyaW5nXTogU2hhcmVkU3RvcmU8YW55LCBhbnk+O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFNoYXJlZFN0b3JlRmFjdG9yeTxULCBVPiB7XG4gICAgbmV3ICguLi5hcmdzKTogU2hhcmVkU3RvcmU8VCwgVT47XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQWN0aW9uRmFjdG9yeSB7XG4gICAgbmV3ICguLi5hcmdzKTogYW55O1xufVxuXG4vKipcbiAqIFNoYXJlZCBzdG9yZSBwcm92aWRlciwgZW5hYmxpbmcgcmVnaXN0cmF0aW9uIG9mIHNoYXJlZCBzdG9yZXMuIEFsbCBzdG9yZXNcbiAqIG11c3QgYmUgcmVnaXN0ZXJlZCBpbiB0aGUgYXBwbGljYXRpb24gY29uZmlndXJhdGlvbiBwaGFzZS5cbiAqL1xuZXhwb3J0IGNsYXNzIFNoYXJlZFN0b3JlUHJvdmlkZXIge1xuICAgIC8vLyBBIGxpc3Qgb2YgcmVnaXN0ZXJlZCBzdG9yZXMuXG4gICAgcHJpdmF0ZSBfc3RvcmVzOiBzdHJpbmdbXSA9IFtdO1xuICAgIC8vLyBQcm92aWRlIHNlcnZpY2UuXG4gICAgcHJpdmF0ZSBfcHJvdmlkZTogYW5ndWxhci5hdXRvLklQcm92aWRlU2VydmljZTtcblxuICAgIC8vIEBuZ0luamVjdFxuICAgIGNvbnN0cnVjdG9yKCRwcm92aWRlOiBhbmd1bGFyLmF1dG8uSVByb3ZpZGVTZXJ2aWNlKSB7XG4gICAgICAgIHRoaXMuX3Byb3ZpZGUgPSAkcHJvdmlkZTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBBIGxpc3Qgb2YgcmVnaXN0ZXJlZCBzdG9yZXMuXG4gICAgICovXG4gICAgcHVibGljIGdldCBzdG9yZXMoKTogc3RyaW5nW10ge1xuICAgICAgICByZXR1cm4gdGhpcy5fc3RvcmVzO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIENyZWF0ZXMgYSBuZXcgc2hhcmVkIHN0b3JlLlxuICAgICAqXG4gICAgICogV2hlbiBjaG9vc2luZyBhbiBpZGVudGlmaWVyIGZvciB0aGUgc3RvcmUsIHlvdSBzaG91bGQgd3JpdGUgaXQgdXNpbmdcbiAgICAgKiBrZWJhYi1jYXNlIGFuZCBub3QgaW5jbHVkZSB0aGUgc3RyaW5nICdzdG9yZScgZWl0aGVyIGFzIGEgcHJlZml4IG9yXG4gICAgICogYSBzdWZmaXguXG4gICAgICpcbiAgICAgKiBUaGlzIG1ldGhvZCBtYXkgb25seSBiZSBjYWxsZWQgaW4gdGhlIGFwcGxpY2F0aW9uJ3MgY29uZmlndXJhdGlvblxuICAgICAqIHBoYXNlLlxuICAgICAqXG4gICAgICogQHBhcmFtIHN0b3JlSWQgSWRlbnRpZmllciBvZiB0aGUgc2hhcmVkIHN0b3JlIChtdXN0IGJlIGdsb2JhbGx5IHVuaXF1ZSlcbiAgICAgKiBAcGFyYW0gaW5pdGlhbFN0YXRlIE9wdGlvbmFsIGluaXRpYWwgc3RhdGUgb2YgdGhlIHNoYXJlZCBzdG9yZVxuICAgICAqL1xuICAgIHB1YmxpYyBjcmVhdGU8VD4oc3RvcmVJZDogc3RyaW5nLCBpbml0aWFsU3RhdGU6IFQgPSBudWxsKTogdm9pZCB7XG4gICAgICAgIGNsYXNzIEV4dGVuZGVkIGV4dGVuZHMgU2ltcGxlU2hhcmVkU3RvcmU8VD4ge1xuICAgICAgICAgICAgcHJvdGVjdGVkIGluaXRpYWxTdGF0ZSgpIHsgcmV0dXJuIGluaXRpYWxTdGF0ZTsgfVxuICAgICAgICAgICAgcHJvdGVjdGVkIHJlZHVjZShzdGF0ZTogVCwgYWN0aW9uOiBBY3Rpb24pOiBUIHsgcmV0dXJuIHVuZGVmaW5lZDsgfVxuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5yZWdpc3RlcjxUPihzdG9yZUlkLCBFeHRlbmRlZCk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogUmVnaXN0ZXJzIGEgbmV3IHNoYXJlZCBzdG9yZS4gQSBzdG9yZSB3aXRoIHRoZSBzYW1lIG5hbWUgbXVzdCBub3QgYWxyZWFkeVxuICAgICAqIGJlIHJlZ2lzdGVyZWQuXG4gICAgICpcbiAgICAgKiBUaGlzIG1ldGhvZCBtYXkgb25seSBiZSBjYWxsZWQgaW4gdGhlIGFwcGxpY2F0aW9uJ3MgY29uZmlndXJhdGlvblxuICAgICAqIHBoYXNlLlxuICAgICAqXG4gICAgICogQHBhcmFtIHN0b3JlSWQgSWRlbnRpZmllciBvZiB0aGUgc2hhcmVkIHN0b3JlIChtdXN0IGJlIGdsb2JhbGx5IHVuaXF1ZSlcbiAgICAgKiBAcGFyYW0gU2hhcmVkIHN0b3JlIGNsYXNzXG4gICAgICovXG4gICAgcHVibGljIHJlZ2lzdGVyPFQ+KHN0b3JlSWQ6IHN0cmluZywgc3RvcmVUeXBlOiBTaGFyZWRTdG9yZUZhY3Rvcnk8VCwgYW55Pik6IHZvaWQge1xuICAgICAgICAvLyBSZWdpc3RlciB0aGUgc3RvcmUgYXMgYW4gYW5ndWxhciBzZXJ2aWNlLiBXZSB1c2UgZmFjdG9yeSBpbnN0ZWFkIG9mIHNlcnZpY2VcbiAgICAgICAgLy8gc28gd2UgY2FuIHNldCB0aGUgYF9zdG9yZUlkYCBvbiB0aGUgaW5zdGFuY2UuXG4gICAgICAgIHRoaXMuX3Byb3ZpZGUuZmFjdG9yeShcbiAgICAgICAgICAgIHN0b3JlSWRUb1NlcnZpY2VJZChzdG9yZUlkKSxcbiAgICAgICAgICAgIC8vIEBuZ0luamVjdFxuICAgICAgICAgICAgKCRpbmplY3RvcjogYW5ndWxhci5hdXRvLklJbmplY3RvclNlcnZpY2UpID0+IHtcbiAgICAgICAgICAgICAgICBjb25zdCBzdG9yZTogYW55ID0gJGluamVjdG9yLmluc3RhbnRpYXRlKHN0b3JlVHlwZSk7XG4gICAgICAgICAgICAgICAgc3RvcmUuX3N0b3JlSWQgPSBzdG9yZUlkO1xuICAgICAgICAgICAgICAgIHJldHVybiBzdG9yZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgKTtcbiAgICAgICAgdGhpcy5fc3RvcmVzLnB1c2goc3RvcmVJZCk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogUmVnaXN0ZXJzIGEgbmV3IGFjdGlvbnMgY2xhc3MuXG4gICAgICpcbiAgICAgKiBUaGlzIG1ldGhvZCBtYXkgb25seSBiZSBjYWxsZWQgaW4gdGhlIGFwcGxpY2F0aW9uJ3MgY29uZmlndXJhdGlvblxuICAgICAqIHBoYXNlLlxuICAgICAqXG4gICAgICogQHBhcmFtIGFjdGlvbnNJZCBJZGVudGlmaWVyIG9mIHRoZSBhY3Rpb25zIGNsYXNzIChtdXN0IGJlIGdsb2JhbGx5IHVuaXF1ZSlcbiAgICAgKiBAcGFyYW0gQWN0aW9ucyBjbGFzc1xuICAgICAqL1xuICAgIHB1YmxpYyByZWdpc3RlckFjdGlvbnMoYWN0aW9uc0lkOiBzdHJpbmcsIGFjdGlvbnNUeXBlOiBBY3Rpb25GYWN0b3J5KTogdm9pZCB7XG4gICAgICAgIHRoaXMuX3Byb3ZpZGUuc2VydmljZShhY3Rpb25zSWRUb1NlcnZpY2VJZChhY3Rpb25zSWQpLCBhY3Rpb25zVHlwZSk7XG4gICAgfVxuXG4gICAgLy8gQG5nSW5qZWN0XG4gICAgcHVibGljICRnZXQoJGluamVjdG9yOiBhbmd1bGFyLmF1dG8uSUluamVjdG9yU2VydmljZSxcbiAgICAgICAgICAgICAgICBkaXNwYXRjaGVyOiBEaXNwYXRjaGVyKTogU2hhcmVkU3RvcmVNYW5hZ2VyIHtcbiAgICAgICAgcmV0dXJuIG5ldyBTaGFyZWRTdG9yZU1hbmFnZXIoJGluamVjdG9yLCBkaXNwYXRjaGVyLCB0aGlzKTtcbiAgICB9XG59XG5cbi8qKlxuICogTWFuYWdlciBvZiBhbGwgc2hhcmVkIHN0b3JlcyAoc2VlIFtbU2hhcmVkU3RvcmVdXSkgaW4gYW4gYXBwbGljYXRpb24uIEVhY2ggc3RvcmVcbiAqIHJlcXVpcmVzIGEgZ2xvYmFsbHkgdW5pcXVlIGlkZW50aWZpZXIsIHdoaWNoIGlzIGFsc28gdXNlZCBkdXJpbmcgc3RhdGUgc2VyaWFsaXphdGlvbi5cbiAqXG4gKiBJbiBvcmRlciB0byB1c2Ugc2hhcmVkIHN0b3JlcywgeW91IG11c3QgZmlyc3QgY3JlYXRlIHRoZW0uIFRoZSBiZXN0IHdheSB0byBkb1xuICogdGhpcyBpcyBpbnNpZGUgeW91ciBtb2R1bGUncyBgY29uZmlnYCBmdW5jdGlvbiBhcyBmb2xsb3dzOlxuICogYGBgXG4gKiBtb2R1bGUuY29uZmlnKChzaGFyZWRTdG9yZU1hbmFnZXJQcm92aWRlcjogU2hhcmVkU3RvcmVQcm92aWRlcikgPT4ge1xuICogICAgIC8vIENyZWF0ZSB0aGUgc2VsZWN0ZWQgUk9TRTIgZGF0YSBpdGVtcyBzaGFyZWQgc3RvcmUuXG4gKiAgICAgc2hhcmVkU3RvcmVNYW5hZ2VyUHJvdmlkZXIuY3JlYXRlKCdyb3NlMi1zZWxlY3RlZC1kYXRhLWl0ZW0nKTtcbiAqIH0pO1xuICogYGBgXG4gKlxuICogVGhlIHN0b3JlIG1heSB0aGVuIGJlIHVzZWQgYXMgaW5wdXQgdG8gc2hhcmVkIHN0YXRlIGRlZmluZWQgb24gc3RhdGVmdWxcbiAqIGNvbXBvbmVudHMgKHNlZSBbW1N0YXRlZnVsQ29tcG9uZW50QmFzZV1dKSBhbmQgY2FuIGFsc28gYmUgaW5qZWN0ZWQgdXNpbmdcbiAqIGEgc3BlY2lmaWMgdG9rZW4uIElmIGEgc3RvcmUgaXMgbmFtZWQgYG15LW5pY2UtaXRlbXNgLCBpdCB3aWxsIGJlIGluamVjdGFibGVcbiAqIGJ5IHVzaW5nIHRoZSB0b2tlbiBgbXlOaWNlSXRlbXNTdG9yZWAuXG4gKlxuICogSWYgeW91IHdpc2ggdG8gZGVmaW5lIHNoYXJlZCBzdG9yZXMgd2hpY2ggc3VwcG9ydCBhZGRpdGlvbmFsIGFjdGlvbnMsIHlvdVxuICogc2hvdWxkIHN1YmNsYXNzIFtbU2hhcmVkU3RvcmVdXSBhbmQgcmVnaXN0ZXIgeW91ciBzdG9yZSBieSB1c2luZyBbW3JlZ2lzdGVyXV1cbiAqIGFzIGZvbGxvd3M6XG4gKiBgYGBcbiAqIGNsYXNzIENvbXBsZXhBY3Rpb25zIHtcbiAqICAgICBzdGF0aWMgQUREX0lURU0gPSAnY29tcGxleC9hZGRfaXRlbSc7XG4gKiAgICAgcHVibGljIGFkZEl0ZW0odmFsdWU6IHR5cGVzLlNhbXBsZURhdGEpIHtcbiAqICAgICAgICAgcmV0dXJuIHsgdHlwZTogQ29tcGxleEFjdGlvbnMuQUREX0lURU0sIGl0ZW06IHZhbHVlIH07XG4gKiAgICAgfVxuICogfVxuICpcbiAqIGNsYXNzIENvbXBsZXhTdG9yZSBleHRlbmRzIFNoYXJlZFN0b3JlPHR5cGVzLlNhbXBsZURhdGFbXSwgQ29tcGxleEFjdGlvbnM+IHtcbiAqICAgICAvLyBAbmdJbmplY3RcbiAqICAgICBjb25zdHJ1Y3Rvcihjb21wbGV4QWN0aW9uczogQ29tcGxleEFjdGlvbnMpIHtcbiAqICAgICAgICAgc3VwZXIoY29tcGxleEFjdGlvbnMpO1xuICogICAgIH1cbiAqXG4gKiAgICAgcHJvdGVjdGVkIGluaXRpYWxTdGF0ZSgpOiB0eXBlcy5TYW1wbGVEYXRhW10ge1xuICogICAgICAgICByZXR1cm4gW107XG4gKiAgICAgfVxuICpcbiAqICAgICBwcm90ZWN0ZWQgcmVkdWNlKHN0YXRlOiB0eXBlcy5TYW1wbGVEYXRhW10sIGFjdGlvbjogYW55KTogdm9pZCB7XG4gKiAgICAgICAgIHN3aXRjaCAoYWN0aW9uLnR5cGUpIHtcbiAqICAgICAgICAgICAgIGNhc2UgQUREX0lURU06IHtcbiAqICAgICAgICAgICAgICAgICByZXR1cm4gXy51bmlvbihzdGF0ZSwgYWN0aW9uLml0ZW0pO1xuICogICAgICAgICAgICAgfVxuICogICAgICAgICAgICAgLy8gLi4uXG4gKiAgICAgICAgIH1cbiAqICAgICB9XG4gKiB9XG4gKlxuICogbW9kdWxlLmNvbmZpZygoc2hhcmVkU3RvcmVNYW5hZ2VyUHJvdmlkZXI6IFNoYXJlZFN0b3JlUHJvdmlkZXIpID0+IHtcbiAqICAgICBzaGFyZWRTdG9yZU1hbmFnZXJQcm92aWRlci5yZWdpc3RlckFjdGlvbnMoJ2NvbXBsZXgnLCBDb21wbGV4QWN0aW9ucyk7XG4gKiAgICAgc2hhcmVkU3RvcmVNYW5hZ2VyUHJvdmlkZXIucmVnaXN0ZXIoJ2NvbXBsZXgnLCBDb21wbGV4U3RvcmUpO1xuICogfSk7XG4gKiBgYGBcbiAqXG4gKiBXaGVuIGNyZWF0aW5nIGEgbmV3IHNoYXJlZCBzdG9yZSwgYSBnb29kIGRlc2lnbiBwcmFjdGljZSBpcyB0byBzZXBhcmF0ZVxuICogYWN0aW9ucyBpbnRvIHRoZSBgYWN0aW9uc2AgZGlyZWN0b3J5IGFuZCBpbXBsZW1lbnQgYWN0aW9ucyBhcyBtZXRob2RzIG9uXG4gKiB0aGUgYWN0aW9ucyBjbGFzcyBuYW1lZCBhZnRlciB5b3VyIHN0b3JlIChlZy4gZm9yIHN0b3JlIGBGb29TdG9yZWAgcHV0XG4gKiBhY3Rpb25zIGludG8gYEZvb0FjdGlvbnNgKS5cbiAqXG4gKiBTdG9yZXMgdGhlbXNlbHZlcyBzaG91bGQgb25seSBpbXBsZW1lbnQgdGhlIHN0YXRlIG1hbmFnZW1lbnQgZnVuY3Rpb25hbGl0eVxuICogYW5kIG1vc3QgYnVzaW5lc3MgbG9naWMgc2hvdWxkIGJlIGNvbnRhaW5lZCBpbiB0aGUgYWN0aW9ucyBjbGFzcy4gRm9yXG4gKiBleGFtcGxlLCBpZiBhY3Rpb25zIHJlcXVpcmUgc29tZSBhc3luY2hyb25vdXMgb3BlcmF0aW9ucyB0byBiZSBwZXJmb3JtZWRcbiAqIG9uIGEgcmVtb3RlIGJhY2tlbmQgYWxsIHRoaXMgZnVuY3Rpb25hbGl0eSBzaG91bGQgYmUgcHV0IGludG8gdGhlIGFjdGlvbnNcbiAqIGNsYXNzIGFuZCBub3QgaW50byB0aGUgc3RvcmUuXG4gKlxuICogQWxsIGFjdGlvbnMgY2xhc3NlcyBzaG91bGQgYmUgcmVnaXN0ZXJlZCB2aWEgdGhlIFtbU2hhcmVkU3RvcmVQcm92aWRlcl1dXG4gKiBhbmQgc3VwcG9ydCBBbmd1bGFyIGRlcGVuZGVuY3kgaW5qZWN0aW9uLiBBY3Rpb25zIGNsYXNzZXMgYXJlIGluamVjdGFibGVcbiAqIHVuZGVyIHRoZSB0b2tlbiBgaWRBY3Rpb25zYCB3aGVyZSB0aGUgYGlkYCBwYXJ0IGlzIHRoZSB2YWx1ZSBkZWZpbmVkIGJ5XG4gKiBgYWN0aW9uc0lkYCwgZm9ybWF0dGVkIGluIGNhbWVsQ2FzZS4gVGhlIGNvbnN0cnVjdG9yIG9mIGFuIGFjdGlvbnNcbiAqIGNsYXNzIG1heSBhbHNvIGluamVjdCBvdGhlciBkZXBlbmRlbmNpZXMuXG4gKlxuICogRm9yIGNvbnZlbmllbmNlLCB5b3UgbWF5IGluamVjdCB5b3VyIGFjdGlvbnMgY2xhc3MgaW4geW91ciBzaGFyZWQgc3RvcmVcbiAqIGNsYXNzIHVuZGVyIHRoZSBwdWJsaWMgYXR0cmlidXRlIGBhY3Rpb25zYC4gVGhpcyB3YXkgb25lIG1heSBnZXQgdGhlXG4gKiBhY3Rpb25zIGNsYXNzIHNpbXBseSBieSBhY2Nlc3NpbmcgYHN0b3JlLmFjdGlvbnNgIHdoZW4gZ2l2ZW4gYSBzaGFyZWRcbiAqIHN0b3JlIGluc3RhbmNlLlxuICovXG5leHBvcnQgY2xhc3MgU2hhcmVkU3RvcmVNYW5hZ2VyIHtcbiAgICAvLy8gU2hhcmVkIHN0b3JlIHByb3ZpZGVyLlxuICAgIHByaXZhdGUgX3Byb3ZpZGVyOiBTaGFyZWRTdG9yZVByb3ZpZGVyO1xuICAgIC8vLyBEaXNwYXRjaGVyLlxuICAgIHByaXZhdGUgX2Rpc3BhdGNoZXI6IERpc3BhdGNoZXI7XG4gICAgLy8vIEFuZ3VsYXIgaW5qZWN0b3IuXG4gICAgcHJpdmF0ZSBfaW5qZWN0b3I6IGFuZ3VsYXIuYXV0by5JSW5qZWN0b3JTZXJ2aWNlO1xuXG4gICAgLy8gQG5nSW5qZWN0XG4gICAgY29uc3RydWN0b3IoJGluamVjdG9yOiBhbmd1bGFyLmF1dG8uSUluamVjdG9yU2VydmljZSxcbiAgICAgICAgICAgICAgICBkaXNwYXRjaGVyOiBEaXNwYXRjaGVyLFxuICAgICAgICAgICAgICAgIHNoYXJlZFN0b3JlTWFuYWdlclByb3ZpZGVyOiBTaGFyZWRTdG9yZVByb3ZpZGVyKSB7XG4gICAgICAgIHRoaXMuX3Byb3ZpZGVyID0gc2hhcmVkU3RvcmVNYW5hZ2VyUHJvdmlkZXI7XG4gICAgICAgIHRoaXMuX2luamVjdG9yID0gJGluamVjdG9yO1xuICAgICAgICB0aGlzLl9kaXNwYXRjaGVyID0gZGlzcGF0Y2hlcjtcbiAgICAgICAgdGhpcy5fZGlzcGF0Y2hlci5zZXREaXNwYXRjaGVyKHRoaXMuX2Rpc3BhdGNoLmJpbmQodGhpcykpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFJldHVybnMgYSBwcmV2aW91c2x5IHJlZ2lzdGVyZWQgc3RvcmUuIEl0IGlzIGFuIGVycm9yIHRvIHJlcXVlc3QgYSBzdG9yZVxuICAgICAqIHdoaWNoIGRvZXNuJ3QgZXhpc3QuXG4gICAgICpcbiAgICAgKiBAcGFyYW0gc3RvcmVJZCBJZGVudGlmaWVyIG9mIHRoZSBzaGFyZWQgc3RvcmVcbiAgICAgKiBAcmV0dXJuIFNoYXJlZCBzdG9yZSBpbnN0YW5jZVxuICAgICAqL1xuICAgIHB1YmxpYyBnZXRTdG9yZTxUPihzdG9yZUlkOiBzdHJpbmcpOiBTaGFyZWRTdG9yZTxULCBhbnk+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2luamVjdG9yLmdldDxTaGFyZWRTdG9yZTxULCBhbnk+PihzdG9yZUlkVG9TZXJ2aWNlSWQoc3RvcmVJZCkpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIERpc3BhdGNoZXMgYW4gYWN0aW9uIHRvIGFsbCBzaGFyZWQgc3RvcmVzLlxuICAgICAqXG4gICAgICogQHBhcmFtIGFjdGlvbiBBY3Rpb24gdG8gZGlzcGF0Y2hcbiAgICAgKi9cbiAgICBwdWJsaWMgZGlzcGF0Y2goYWN0aW9uOiBBY3Rpb24gfCBUaHVuayk6IGFueSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9kaXNwYXRjaGVyLmRpc3BhdGNoKGFjdGlvbik7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogSW50ZXJuYWwgZ2xvYmFsIGRpc3BhdGNoIGltcGxlbWVudGF0aW9uLlxuICAgICAqL1xuICAgIHByaXZhdGUgX2Rpc3BhdGNoKGFjdGlvbjogQWN0aW9uKTogdm9pZCB7XG4gICAgICAgIGZvciAoY29uc3Qgc3RvcmVJZCBvZiB0aGlzLl9wcm92aWRlci5zdG9yZXMpIHtcbiAgICAgICAgICAgIHRoaXMuZ2V0U3RvcmUoc3RvcmVJZCkuX2Rpc3BhdGNoKGFjdGlvbik7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBTZXJpYWxpemVzIHRoZSB2YWx1ZXMgb2YgYWxsIHNoYXJlZCBzdG9yZXMuXG4gICAgICovXG4gICAgcHVibGljIHNhdmVTdGF0ZSgpOiBhbnkge1xuICAgICAgICBsZXQgcmVzdWx0ID0ge307XG4gICAgICAgIGZvciAoY29uc3Qgc3RvcmVJZCBvZiB0aGlzLl9wcm92aWRlci5zdG9yZXMpIHtcbiAgICAgICAgICAgIGxldCB2YWx1ZSA9IHRoaXMuZ2V0U3RvcmUoc3RvcmVJZCkuc2F2ZVZhbHVlKCk7XG4gICAgICAgICAgICBpZiAoaXNKc29uYWJsZSh2YWx1ZSkpIHtcbiAgICAgICAgICAgICAgICByZXN1bHRbc3RvcmVJZF0gPSB2YWx1ZS50b0pTT04oKTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgcmVzdWx0W3N0b3JlSWRdID0gYW5ndWxhci5jb3B5KHZhbHVlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogTG9hZHMgc2VyaWFsaXplZCB2YWx1ZXMgb2YgYWxsIHNoYXJlZCBzdG9yZXMuIEV4aXN0aW5nIHZhbHVlcyBhcmUgb3ZlcndyaXR0ZW4uXG4gICAgICovXG4gICAgcHVibGljIGxvYWRTdGF0ZShzdGF0ZTogYW55KTogdm9pZCB7XG4gICAgICAgIGZvciAoY29uc3Qgc3RvcmVJZCBvZiB0aGlzLl9wcm92aWRlci5zdG9yZXMpIHtcbiAgICAgICAgICAgIGlmICghKHN0b3JlSWQgaW4gc3RhdGUpKSBjb250aW51ZTtcblxuICAgICAgICAgICAgY29uc3QgdmFsdWUgPSBzdGF0ZVtzdG9yZUlkXTtcbiAgICAgICAgICAgIHRoaXMuZ2V0U3RvcmUoc3RvcmVJZCkuZGlzcGF0Y2goe3R5cGU6IEFjdGlvbnMuU0VULCB2YWx1ZTogdmFsdWV9KTtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuLyoqXG4gKiBSZXR1cm5zIHRoZSBBbmd1bGFyIHNlcnZpY2UgaWRlbnRpZmllciB0aGF0IGNhbiBiZSB1c2VkIHRvIGluamVjdCBhXG4gKiBzdG9yZSB2aWEgZGVwZW5kZW5jeSBpbmplY3Rpb24uXG4gKlxuICogQHBhcmFtIHN0b3JlSWQgU3RvcmUgaWRlbnRpZmllclxuICovXG5mdW5jdGlvbiBzdG9yZUlkVG9TZXJ2aWNlSWQoc3RvcmVJZDogc3RyaW5nKTogc3RyaW5nIHtcbiAgICByZXR1cm4gXy5jYW1lbENhc2UoYCR7c3RvcmVJZH0tc3RvcmVgKTtcbn1cblxuLyoqXG4gKiBSZXR1cm5zIHRoZSBBbmd1bGFyIHNlcnZpY2UgaWRlbnRpZmllciB0aGF0IGNhbiBiZSB1c2VkIHRvIGluamVjdCBhblxuICogYWN0aW9ucyBvYmplY3QgdmlhIGRlcGVuZGVuY3kgaW5qZWN0aW9uLlxuICpcbiAqIEBwYXJhbSBhY3Rpb25zSWQgQWN0aW9ucyBvYmplY3QgaWRlbnRpZmllclxuICovXG5mdW5jdGlvbiBhY3Rpb25zSWRUb1NlcnZpY2VJZChhY3Rpb25zSWQ6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgcmV0dXJuIF8uY2FtZWxDYXNlKGAke2FjdGlvbnNJZH0tYWN0aW9uc2ApO1xufVxuXG5jb25zdCBhbmd1bGFyTW9kdWxlOiBhbmd1bGFyLklNb2R1bGUgPSBhbmd1bGFyLm1vZHVsZSgncmVzb2x3ZS5zZXJ2aWNlcy5zaGFyZWRfc3RvcmUnLCBbXSk7XG5cbi8vIFJlZ2lzdGVyIGluamVjdGFibGUgc2VydmljZXMuXG5hbmd1bGFyTW9kdWxlLnByb3ZpZGVyKCdzaGFyZWRTdG9yZU1hbmFnZXInLCBTaGFyZWRTdG9yZVByb3ZpZGVyKTtcbmFuZ3VsYXJNb2R1bGUuc2VydmljZSgnZGlzcGF0Y2hlcicsIERpc3BhdGNoZXIpO1xuIl19
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9jb3JlL3NoYXJlZF9zdG9yZS9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7QUFBQSwwQkFBNEI7QUFDNUIsdUJBQXlCO0FBQ3pCLGlDQUFtQztBQUVuQyxzQ0FBeUM7QUFDekMsOENBQWdEO0FBd0JoRDtJQUFBO0lBR0EsQ0FBQztJQUZHLCtEQUErRDtJQUNqRCxXQUFHLEdBQUcsZ0JBQWdCLENBQUM7SUFDekMsY0FBQztDQUhELEFBR0MsSUFBQTtBQUhZLDBCQUFPO0FBS3BCOzs7Ozs7Ozs7Ozs7O0dBYUc7QUFDSDtJQU9JLHFCQUFZLE9BQVc7UUFKZixhQUFRLEdBQXlDLEVBQUUsQ0FBQztRQUt4RCxJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksRUFBRSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsWUFBWSxFQUFFLENBQUMsQ0FBQztRQUM1RCxJQUFJLENBQUMsUUFBUSxHQUFHLE9BQU8sQ0FBQztRQUV4Qiw2QkFBNkI7UUFDN0IsSUFBSSxDQUFDLFdBQVcsR0FBRyxJQUFJLFVBQVUsRUFBRSxDQUFDO1FBQ3BDLElBQUksQ0FBQyxXQUFXLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxFQUFFLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7SUFDckYsQ0FBQztJQUtELHNCQUFXLGdDQUFPO1FBSGxCOztXQUVHO2FBQ0g7WUFDSSxPQUFPLElBQUksQ0FBQyxRQUFRLENBQUM7UUFDekIsQ0FBQzs7O09BQUE7SUFLRCxzQkFBVyxnQ0FBTztRQUhsQjs7V0FFRzthQUNIO1lBQ0ksT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDO1FBQ3pCLENBQUM7OztPQUFBO0lBRUQ7Ozs7O09BS0c7SUFDSSwrQkFBUyxHQUFoQixVQUFpQixNQUFjO1FBQzNCLElBQU0sYUFBYSxHQUFHLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQztR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SUFBTSxhQUFhLEdBQW9CLE9BQU8sQ0FBQyxNQUFNLENBQUMsK0JBQStCLEVBQUUsRUFBRSxDQUFDLENBQUM7QUFFM0YsZ0NBQWdDO0FBQ2hDLGFBQWEsQ0FBQyxRQUFRLENBQUMsb0JBQW9CLEVBQUUsbUJBQW1CLENBQUMsQ0FBQztBQUNsRSxhQUFhLENBQUMsT0FBTyxDQUFDLFlBQVksRUFBRSxVQUFVLENBQUMsQ0FBQyIsImZpbGUiOiJjb3JlL3NoYXJlZF9zdG9yZS9pbmRleC5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIF8gZnJvbSAnbG9kYXNoJztcbmltcG9ydCAqIGFzIFJ4IGZyb20gJ3J4JztcbmltcG9ydCAqIGFzIGFuZ3VsYXIgZnJvbSAnYW5ndWxhcic7XG5cbmltcG9ydCB7aXNKc29uYWJsZX0gZnJvbSAnLi4vdXRpbHMvbGFuZyc7XG5pbXBvcnQgKiBhcyBpbW11dGFibGUgZnJvbSAnLi4vdXRpbHMvaW1tdXRhYmxlJztcblxuLyoqXG4gKiBBIHNoYXJlZCBzdG9yZSBhY3Rpb24gY29udGFpbnMgYSBgdHlwZWAgcHJvcGVydHkgYW5kIGFueSBudW1iZXIgb2Ygb3RoZXJcbiAqIGN1c3RvbSBwcm9wZXJ0aWVzLiBBY3Rpb24gdHlwZXMgc3RhcnRpbmcgd2l0aCBgQEBpbnRlcm5hbC9gIGFyZSByZXNlcnZlZFxuICogZm9yIGludGVybmFsIHVzZS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBBY3Rpb24ge1xuICAgIHR5cGU6IHN0cmluZztcbiAgICBbcHJvcGVydHlOYW1lOiBzdHJpbmddOiBhbnk7XG59XG5cbi8qKlxuICogQSB0aHVuayBpcyBhIGZ1bmN0aW9uLCB3aGljaCBtZWRpYXRlcyB0aGUgZGlzcGF0Y2ggb2YgYW4gYWN0aW9uLiBJdCBtYXlcbiAqIGJlIGRpc3BhdGNoZWQgaW4gdGhlIHNhbWUgd2F5IGFzIGFuIGFjdGlvbi5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBUaHVuayB7XG4gICAgKGRpc3BhdGNoZXI6IERpc3BhdGNoZXIsIGdldFN0YXRlOiAoKSA9PiBhbnkpOiBhbnk7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgU2hhcmVkU3RvcmVRdWVyeTxULCBVPiB7XG4gICAgKHN0YXRlOiBSeC5PYnNlcnZhYmxlPFQ+KTogUnguT2JzZXJ2YWJsZTxVPjtcbn1cblxuZXhwb3J0IGNsYXNzIEFjdGlvbnMge1xuICAgIC8vLyBJbnRlcm5hbCBhY3Rpb24gZm9yIHNldHRpbmcgdGhpcyBzdG9yZSB0byBhIHNwZWNpZmljIHZhbHVlLlxuICAgIHB1YmxpYyBzdGF0aWMgU0VUID0gJ0BAaW50ZXJuYWwvU0VUJztcbn1cblxuLyoqXG4gKiBBIHNoYXJlZCBzdG9yZSByZXByZXNlbnRzIHN0YXRlIHRoYXQgaXMgc2hhcmVkIGJldHdlZW4gbXVsdGlwbGUgY29tcG9uZW50cyBpblxuICogYSBwcmVkaWN0YWJsZSB3YXkuIENvbXBvbmVudHMgdXBkYXRlIHRoZSBzdG9yZSBieSBkaXNwYXRjaGluZyBhY3Rpb25zIHRvXG4gKiBpdCB1c2luZyB0aGUgYGRpc3BhdGNoYCBtZXRob2QuXG4gKlxuICogRWFjaCBzaGFyZWQgc3RvcmUgYWxzbyBwcm92aWRlcyBhIHdheSBmb3IgdGhlIGNvbXBvbmVudHMgdG8gc3Vic2NyaWJlIHRvIGFueVxuICogY2hhbmdlcyBpbiB0aGUgc3RvcmUncyBzdGF0ZS5cbiAqXG4gKiBDb25zaWRlciBkZWZpbmluZyBhY3Rpb25zIGZvciB1c2UgaW4gYSBzaGFyZWQgc3RvcmUgc2VwYXJhdGVseSBmcm9tIHRoZSBzdG9yZSxcbiAqIGluIHRoZSBgYWN0aW9uc2Agc3ViZGlyZWN0b3J5LiBTZWUgW1tTaGFyZWRTdG9yZU1hbmFnZXJdXSBmb3IgZGV0YWlscy5cbiAqXG4gKiBEb24ndCBmb3JnZXQgdG8gY2FsbCBjb25zdHJ1Y3RvciB3aXRoIGFjdGlvbnMgYXMgYW4gYXJndW1lbnQgd2hlbiBleHRlbmRpbmdcbiAqIHRoaXMgY2xhc3MuXG4gKi9cbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBTaGFyZWRTdG9yZTxULCBVPiB7XG4gICAgcHJpdmF0ZSBfc3ViamVjdDogUnguQmVoYXZpb3JTdWJqZWN0PFQ+O1xuICAgIHByaXZhdGUgX2Rpc3BhdGNoZXI6IERpc3BhdGNoZXI7XG4gICAgcHJpdmF0ZSBfcXVlcmllczoge1tuYW1lOiBzdHJpbmddOiBSeC5PYnNlcnZhYmxlPGFueT59ID0ge307XG4gICAgcHJpdmF0ZSBfYWN0aW9uczogVTtcbiAgICBwcml2YXRlIF9zdG9yZUlkOiBzdHJpbmc7XG5cbiAgICBjb25zdHJ1Y3RvcihhY3Rpb25zPzogVSkge1xuICAgICAgICB0aGlzLl9zdWJqZWN0ID0gbmV3IFJ4LkJlaGF2aW9yU3ViamVjdCh0aGlzLmluaXRpYWxTdGF0ZSgpKTtcbiAgICAgICAgdGhpcy5fYWN0aW9ucyA9IGFjdGlvbnM7XG5cbiAgICAgICAgLy8gQ3JlYXRlIGEgbG9jYWwgZGlzcGF0Y2hlci5cbiAgICAgICAgdGhpcy5fZGlzcGF0Y2hlciA9IG5ldyBEaXNwYXRjaGVyKCk7XG4gICAgICAgIHRoaXMuX2Rpc3BhdGNoZXIuc2V0RGlzcGF0Y2hlcih0aGlzLl9kaXNwYXRjaC5iaW5kKHRoaXMpLCB0aGlzLnZhbHVlLmJpbmQodGhpcykpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFJldHVybnMgYSB1bmlxdWUgaWRlbnRpZmllciBmb3IgdGhpcyBzaGFyZWQgc3RvcmUuXG4gICAgICovXG4gICAgcHVibGljIGdldCBzdG9yZUlkKCk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiB0aGlzLl9zdG9yZUlkO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFJldHVybnMgc3RvcmUgYWN0aW9ucy5cbiAgICAgKi9cbiAgICBwdWJsaWMgZ2V0IGFjdGlvbnMoKTogVSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9hY3Rpb25zO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEludGVybmFsIGRpc3BhdGNoZXIgaW1wbGVtZW50YXRpb24uXG4gICAgICpcbiAgICAgKiBOT1RFOiBUaGlzIG1ldGhvZCBpcyBwdWJsaWMgYmVjYXVzZSB0aGVyZSBpcyBubyB3YXkgdG8gZGVmaW5lIHByaXZhdGVcbiAgICAgKiBidXQgYWNjZXNzaWJsZSB0byBvdGhlciBjbGFzc2VzIHdpdGhpbiB0aGlzIG1vZHVsZSBpbiBUeXBlU2NyaXB0LlxuICAgICAqL1xuICAgIHB1YmxpYyBfZGlzcGF0Y2goYWN0aW9uOiBBY3Rpb24pOiB2b2lkIHtcbiAgICAgICAgY29uc3QgZXhpc3RpbmdWYWx1ZSA9IHRoaXMudmFsdWUoKTtcbiAgICAgICAgbGV0IHJlZHVjZXI6ICh2YWx1ZTogVCwgYWN0aW9uOiBBY3Rpb24pID0+IFQ7XG4gICAgICAgIGlmIChfLnN0YXJ0c1dpdGgoYWN0aW9uLnR5cGUsICdAQGludGVybmFsLycpKSB7XG4gICAgICAgICAgICByZWR1Y2VyID0gdGhpcy5fcmVkdWNlSW50ZXJuYWwuYmluZCh0aGlzKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHJlZHVjZXIgPSB0aGlzLnJlZHVjZS5iaW5kKHRoaXMpO1xuICAgICAgICB9XG5cbiAgICAgICAgbGV0IG5ld1ZhbHVlID0gcmVkdWNlcihleGlzdGluZ1ZhbHVlLCBhY3Rpb24pO1xuICAgICAgICBpZiAoXy5pc1VuZGVmaW5lZChuZXdWYWx1ZSkpIHJldHVybjtcblxuICAgICAgICBpZiAoYW5ndWxhci5lcXVhbHMoZXhpc3RpbmdWYWx1ZSwgbmV3VmFsdWUpKSByZXR1cm47XG4gICAgICAgIHRoaXMuX3N1YmplY3Qub25OZXh0KGltbXV0YWJsZS5tYWtlSW1tdXRhYmxlKG5ld1ZhbHVlKSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogRGlzcGF0Y2hlcyBhbiBhY3Rpb24gdG8gdGhpcyBzaGFyZWQgc3RvcmUuXG4gICAgICpcbiAgICAgKiBAcGFyYW0gYWN0aW9uIEFjdGlvbiB0byBkaXNwYXRjaFxuICAgICAqL1xuICAgIHB1YmxpYyBkaXNwYXRjaChhY3Rpb246IEFjdGlvbiB8IFRodW5rKTogYW55IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2Rpc3BhdGNoZXIuZGlzcGF0Y2goYWN0aW9uKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBQZXJmb3JtcyBpbnRlcm5hbCByZWR1Y2UgYWN0aW9ucyBpbXBsZW1lbnRlZCBmb3IgZWFjaCBzaGFyZWQgc3RvcmUuXG4gICAgICpcbiAgICAgKiBAcGFyYW0gc3RhdGUgRXhpc3Rpbmcgc2hhcmVkIHN0b3JlIHN0YXRlXG4gICAgICogQHBhcmFtIGFjdGlvbiBBY3Rpb24gdG8gcGVyZm9ybVxuICAgICAqIEByZXR1cm4gTmV3IHNoYXJlZCBzdG9yZSBzdGF0ZVxuICAgICAqL1xuICAgIHByaXZhdGUgX3JlZHVjZUludGVybmFsKHN0YXRlOiBULCBhY3Rpb246IEFjdGlvbik6IFQge1xuICAgICAgICBzd2l0Y2ggKGFjdGlvbi50eXBlKSB7XG4gICAgICAgICAgICBjYXNlIEFjdGlvbnMuU0VUOiB7XG4gICAgICAgICAgICAgICAgY29uc3QgbmV4dFN0YXRlID0gYWN0aW9uWyd2YWx1ZSddO1xuICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLm9uU3RhdGVMb2FkKHN0YXRlLCBuZXh0U3RhdGUpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZGVmYXVsdDoge1xuICAgICAgICAgICAgICAgIC8vIERvIG5vdGhpbmcuXG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBQZXJmb3JtcyB0aGUgZ2l2ZW4gYWN0aW9uIG9uIHRoZSB1bmRlcmx5aW5nIHN0YXRlLlxuICAgICAqXG4gICAgICogU3ViY2xhc3NlcyBtYXkgb3ZlcnJpZGUgdGhpcyBtZXRob2QgdG8gaW1wbGVtZW50IGFyYml0cmFyeSBjb21wbGV4XG4gICAgICogYWN0aW9ucyBvbiB0aGUgZGF0YSBzdG9yZS4gVGhpcyBtZXRob2QgTVVTVCBOT1QgbXV0YXRlIHRoZSBleGlzdGluZ1xuICAgICAqIHN0YXRlLiBJbnN0ZWFkLCBpdCBNVVNUIHJldHVybiBhbiBpbW11dGFibGUgY29weS5cbiAgICAgKlxuICAgICAqIEBwYXJhbSB2YWx1ZSBFeGlzdGluZyBzaGFyZWQgc3RvcmUgc3RhdGVcbiAgICAgKiBAcGFyYW0gYWN0aW9uIE9wZXJhdGlvbiB0byBwZXJmb3JtXG4gICAgICogQHJldHVybiBOZXcgc2hhcmVkIHN0b3JlIHN0YXRlXG4gICAgICovXG4gICAgcHJvdGVjdGVkIGFic3RyYWN0IHJlZHVjZShzdGF0ZTogVCwgYWN0aW9uOiBBY3Rpb24pOiBUO1xuXG4gICAgLyoqXG4gICAgICogUHJvdmlkZXMgdGhlIGluaXRpYWwgc3RhdGUgZm9yIHRoaXMgc2hhcmVkIHN0b3JlLiBUaGlzIHN0YXRlIGlzXG4gICAgICogdXNlZCB3aGVuIHRoZSBzdG9yZSBpcyBpbml0aWFsaXplZC5cbiAgICAgKi9cbiAgICBwcm90ZWN0ZWQgYWJzdHJhY3QgaW5pdGlhbFN0YXRlKCk6IFQ7XG5cbiAgICAvKipcbiAgICAgKiBUaGlzIG1ldGhvZCBnZXRzIGNhbGxlZCB3aGVuIHRoZSBkYXRhIHN0b3JlJ3Mgc3RhdGUgaXMgbG9hZGVkIGZyb21cbiAgICAgKiBhbiBleHRlcm5hbCBzb3VyY2UgKHdoZW4gdGhlIFNFVCBhY3Rpb24gaXMgZGlzcGF0Y2hlZCB0byB0aGUgc3RvcmUpLlxuICAgICAqXG4gICAgICogSXQgaXMgY2FsbGVkIGJlZm9yZSB0aGUgbmV3IHN0YXRlIGhhcyBiZWVuIHNldC4gVGhlIGRlZmF1bHQgaW1wbGVtZW50YXRpb25cbiAgICAgKiBkb2VzIG5vdGhpbmcuXG4gICAgICpcbiAgICAgKiBAcGFyYW0gc3RhdGUgT2xkIHN0YXRlXG4gICAgICogQHBhcmFtIG5leHRTdGF0ZSBOZXcgc3RhdGVcbiAgICAgKiBAcmV0dXJuIFBvc3NpYmx5IG1vZGlmaWVkIHN0YXRlIHRoYXQgc2hvdWxkIGJlIHVzZWQgaW5zdGVhZFxuICAgICAqL1xuICAgIHByb3RlY3RlZCBvblN0YXRlTG9hZChzdGF0ZTogVCwgbmV4dFN0YXRlOiBUKTogVCB7XG4gICAgICAgIHJldHVybiBuZXh0U3RhdGU7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQSBoZWxwZXIgbWV0aG9kIGZvciBkZWZpbmluZyBzaGFyZWQgc3RvcmUgcXVlcmllcy4gSWYgdGhlIHF1ZXJ5IGlzIGFscmVhZHlcbiAgICAgKiBkZWZpbmVkLCB0aGUgZXhpc3Rpbmcgb2JzZXJ2YWJsZSBpcyByZXR1cm5lZC5cbiAgICAgKlxuICAgICAqIEBwYXJhbSBuYW1lIFF1ZXJ5IG5hbWVcbiAgICAgKiBAcGFyYW0gcXVlcnkgUXVlcnkgZnVuY3Rpb25cbiAgICAgKiBAcmV0dXJuIFJlc3VsdGluZyBxdWVyeSBvYnNlcnZhYmxlXG4gICAgICovXG4gICAgcHJvdGVjdGVkIGRlZmluZVF1ZXJ5PFY+KG5hbWU6IHN0cmluZywgcXVlcnk6IFNoYXJlZFN0b3JlUXVlcnk8VCwgVj4pOiBSeC5PYnNlcnZhYmxlPFY+IHtcbiAgICAgICAgbGV0IG9ic2VydmFibGU6IFJ4Lk9ic2VydmFibGU8Vj4gPSB0aGlzLl9xdWVyaWVzW25hbWVdO1xuICAgICAgICBpZiAob2JzZXJ2YWJsZSkgcmV0dXJuIG9ic2VydmFibGU7XG5cbiAgICAgICAgb2JzZXJ2YWJsZSA9IHRoaXMuX3F1ZXJpZXNbbmFtZV0gPSB0aGlzLm9ic2VydmFibGUoKS5sZXQocXVlcnkpLmRpc3RpbmN0VW50aWxDaGFuZ2VkKCk7XG4gICAgICAgIHJldHVybiBvYnNlcnZhYmxlO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFJldHVybnMgdGhlIGN1cnJlbnQgdmFsdWUgc3RvcmVkIGluIHRoZSBzdG9yZS5cbiAgICAgKlxuICAgICAqIFlvdSBNVVNUIGVuc3VyZSB0aGF0IHRoZSByZXN1bHRpbmcgb2JqZWN0IGlzIE5PVCBtdXRhdGVkIGluIGFueSB3YXkuIEFueVxuICAgICAqIG11dGF0aW9uIG1heSBjYXVzZSB1bmRlZmluZWQgYmVoYXZpb3IuXG4gICAgICovXG4gICAgcHVibGljIHZhbHVlKCk6IFQge1xuICAgICAgICByZXR1cm4gdGhpcy5fc3ViamVjdC5nZXRWYWx1ZSgpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFJldHVybnMgYW4gb2JzZXJ2YWJsZSBvZiB0aGUgc3RvcmUncyB2YWx1ZS5cbiAgICAgKlxuICAgICAqIFlvdSBNVVNUIGVuc3VyZSB0aGF0IHRoZSBvYnNlcnZlZCB2YWx1ZSBpcyBOT1QgbXV0YXRlZCBpbiBhbnkgd2F5LiBBbnlcbiAgICAgKiBtdXRhdGlvbiBtYXkgY2F1c2UgdW5kZWZpbmVkIGJlaGF2aW9yLlxuICAgICAqL1xuICAgIHB1YmxpYyBvYnNlcnZhYmxlKCk6IFJ4Lk9ic2VydmFibGU8VD4ge1xuICAgICAgICByZXR1cm4gdGhpcy5fc3ViamVjdDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBSZXR1cm5zIGEgdmFsdWUgdGhhdCBzaG91bGQgYmUgdXNlZCB3aGVuIHNhdmluZyBzdG9yZSBzdGF0ZS5cbiAgICAgKlxuICAgICAqIEJ5IGRlZmF1bHQsIHRoaXMgd2lsbCByZXR1cm4gdGhlIHNhbWUgYXMgW1t2YWx1ZV1dLlxuICAgICAqL1xuICAgIHB1YmxpYyBzYXZlVmFsdWUoKTogVCB7XG4gICAgICAgIHJldHVybiB0aGlzLnZhbHVlKCk7XG4gICAgfVxufVxuXG4vKipcbiAqIFtbU2ltcGxlU2hhcmVkU3RvcmVdXSBpcyBhIGhlbHBlciBjbGFzcyBpbnRlbmRlZCB0byBiZSB1c2VkIGFzIGEgdHlwZSBpbiBjb25qdW5jdGlvbiB3aXRoXG4gKiBbW1NoYXJlZFN0b3JlUHJvdmlkZXJdXSdzIGBjcmVhdGVgIG1ldGhvZCB3aGVyZSBvbmx5IFNFVCBhY3Rpb24gaXMgdXNlZC5cbiAqXG4gKiBJbiB0aGlzIGNhc2Ugbm8gc3ViY2xhc3Npbmcgb2Ygc3RvcmUgYW5kIGFjdGlvbnMgaXMgbmVlZGVkIGJlY2F1c2Ugb25seSBTRVQgYWN0aW9uIGlzIHVzZWQuXG4gKiBUaGlzIGlzIGNvbnZlbmllbnQgZm9yIHVzZSBjYXNlcyB3aGVyZSB5b3Ugb25seSBuZWVkIHRvIHNldCBhIHZhbHVlIHRoYXQgeW91IGNhbiBzdWJzY3JpYmVcbiAqIHRvIGZyb20gb3RoZXIgY29tcG9uZW50cy5cbiAqL1xuZXhwb3J0IGFic3RyYWN0IGNsYXNzIFNpbXBsZVNoYXJlZFN0b3JlPFQ+IGV4dGVuZHMgU2hhcmVkU3RvcmU8VCwgdHlwZW9mIHVuZGVmaW5lZD4geyB9XG5cbi8qKlxuICogVXNlZCB0byBkaXNwYXRjaCBhY3Rpb25zIHRvIHNoYXJlZCBzdG9yZXMuXG4gKi9cbmV4cG9ydCBjbGFzcyBEaXNwYXRjaGVyIGV4dGVuZHMgUnguU3ViamVjdDxBY3Rpb24+IHtcbiAgICBwcml2YXRlIF9nZXRTdGF0ZTogKCkgPT4gYW55ID0gKCkgPT4gdW5kZWZpbmVkO1xuXG4gICAgLyoqXG4gICAgICogQ29uZmlndXJlcyBhIGRpc3BhdGNoZXIgZnVuY3Rpb24gZm9yIHRoaXMgZGlzcGF0Y2hlci5cbiAgICAgKlxuICAgICAqIEBwYXJhbSBkaXNwYXRjaGVyIFRoZSBkaXNwYXRjaGVyIGZ1bmN0aW9uXG4gICAgICovXG4gICAgcHVibGljIHNldERpc3BhdGNoZXIoZGlzcGF0Y2hlcjogKGFjdGlvbjogQWN0aW9uKSA9PiB2b2lkLCBnZXRTdGF0ZT86ICgpID0+IGFueSk6IHZvaWQge1xuICAgICAgICAvLyBUaGUgZGlzcGF0Y2hlciBpcyB1c2VkIHRvIGRpc3BhdGNoIGFsbCBhY3Rpb25zIHVzaW5nIGEgcXVldWUsIHNvIGFjdGlvbnNcbiAgICAgICAgLy8gbWF5IGludm9rZSB0aGUgZGlzcGF0Y2ggbWV0aG9kIHdpdGhvdXQgY2F1c2luZyByZWN1cnNpb24uIFRoZSBjdXJyZW50VGhyZWFkXG4gICAgICAgIC8vIHNjaGVkdWxlciBwdXRzIGFsbCBwZW5kaW5nIGl0ZW1zIGluc2lkZSBhIHF1ZXVlLCB3aGljaCBpcyBkaXNwYXRjaGVkIGFmdGVyXG4gICAgICAgIC8vIHJldHVybmluZyBmcm9tIGFjdGl2ZSBkaXNwYXRjaC5cbiAgICAgICAgdGhpcy5vYnNlcnZlT24oUnguU2NoZWR1bGVyLmN1cnJlbnRUaHJlYWQpLnN1YnNjcmliZShkaXNwYXRjaGVyKTtcbiAgICAgICAgaWYgKGdldFN0YXRlKSB0aGlzLl9nZXRTdGF0ZSA9IGdldFN0YXRlO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIERpc3BhdGNoZXMgYW4gYWN0aW9uIHZpYSB0aGlzIGRpc3BhdGNoZXIuXG4gICAgICovXG4gICAgcHVibGljIGRpc3BhdGNoKGFjdGlvbjogQWN0aW9uIHwgVGh1bmspOiBhbnkge1xuICAgICAgICBpZiAoXy5pc0Z1bmN0aW9uKGFjdGlvbikpIHtcbiAgICAgICAgICAgIC8vIEEgdGh1bmsgaGFzIGJlZW4gcGFzc2VkLiBFeGVjdXRlIGl0IHdpdGggdGhlIGRpc3BhdGNoZXIgYXJndW1lbnQgYW5kXG4gICAgICAgICAgICAvLyByZXR1cm4gdGhlIHJlc3VsdC5cbiAgICAgICAgICAgIHJldHVybiBhY3Rpb24odGhpcywgdGhpcy5fZ2V0U3RhdGUpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5vbk5leHQoYWN0aW9uKTtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuaW50ZXJmYWNlIFNoYXJlZFN0b3JlTWFwIHtcbiAgICBbaW5kZXg6IHN0cmluZ106IFNoYXJlZFN0b3JlPGFueSwgYW55Pjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBTaGFyZWRTdG9yZUZhY3Rvcnk8VCwgVT4ge1xuICAgIG5ldyAoLi4uYXJncyk6IFNoYXJlZFN0b3JlPFQsIFU+O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEFjdGlvbkZhY3Rvcnkge1xuICAgIG5ldyAoLi4uYXJncyk6IGFueTtcbn1cblxuLyoqXG4gKiBTaGFyZWQgc3RvcmUgcHJvdmlkZXIsIGVuYWJsaW5nIHJlZ2lzdHJhdGlvbiBvZiBzaGFyZWQgc3RvcmVzLiBBbGwgc3RvcmVzXG4gKiBtdXN0IGJlIHJlZ2lzdGVyZWQgaW4gdGhlIGFwcGxpY2F0aW9uIGNvbmZpZ3VyYXRpb24gcGhhc2UuXG4gKi9cbmV4cG9ydCBjbGFzcyBTaGFyZWRTdG9yZVByb3ZpZGVyIHtcbiAgICAvLy8gQSBsaXN0IG9mIHJlZ2lzdGVyZWQgc3RvcmVzLlxuICAgIHByaXZhdGUgX3N0b3Jlczogc3RyaW5nW10gPSBbXTtcbiAgICAvLy8gUHJvdmlkZSBzZXJ2aWNlLlxuICAgIHByaXZhdGUgX3Byb3ZpZGU6IGFuZ3VsYXIuYXV0by5JUHJvdmlkZVNlcnZpY2U7XG5cbiAgICAvLyBAbmdJbmplY3RcbiAgICBjb25zdHJ1Y3RvcigkcHJvdmlkZTogYW5ndWxhci5hdXRvLklQcm92aWRlU2VydmljZSkge1xuICAgICAgICB0aGlzLl9wcm92aWRlID0gJHByb3ZpZGU7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQSBsaXN0IG9mIHJlZ2lzdGVyZWQgc3RvcmVzLlxuICAgICAqL1xuICAgIHB1YmxpYyBnZXQgc3RvcmVzKCk6IHN0cmluZ1tdIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3N0b3JlcztcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBDcmVhdGVzIGEgbmV3IHNoYXJlZCBzdG9yZS5cbiAgICAgKlxuICAgICAqIFdoZW4gY2hvb3NpbmcgYW4gaWRlbnRpZmllciBmb3IgdGhlIHN0b3JlLCB5b3Ugc2hvdWxkIHdyaXRlIGl0IHVzaW5nXG4gICAgICoga2ViYWItY2FzZSBhbmQgbm90IGluY2x1ZGUgdGhlIHN0cmluZyAnc3RvcmUnIGVpdGhlciBhcyBhIHByZWZpeCBvclxuICAgICAqIGEgc3VmZml4LlxuICAgICAqXG4gICAgICogVGhpcyBtZXRob2QgbWF5IG9ubHkgYmUgY2FsbGVkIGluIHRoZSBhcHBsaWNhdGlvbidzIGNvbmZpZ3VyYXRpb25cbiAgICAgKiBwaGFzZS5cbiAgICAgKlxuICAgICAqIEBwYXJhbSBzdG9yZUlkIElkZW50aWZpZXIgb2YgdGhlIHNoYXJlZCBzdG9yZSAobXVzdCBiZSBnbG9iYWxseSB1bmlxdWUpXG4gICAgICogQHBhcmFtIGluaXRpYWxTdGF0ZSBPcHRpb25hbCBpbml0aWFsIHN0YXRlIG9mIHRoZSBzaGFyZWQgc3RvcmVcbiAgICAgKi9cbiAgICBwdWJsaWMgY3JlYXRlPFQ+KHN0b3JlSWQ6IHN0cmluZywgaW5pdGlhbFN0YXRlOiBUID0gbnVsbCk6IHZvaWQge1xuICAgICAgICBjbGFzcyBFeHRlbmRlZCBleHRlbmRzIFNpbXBsZVNoYXJlZFN0b3JlPFQ+IHtcbiAgICAgICAgICAgIHByb3RlY3RlZCBpbml0aWFsU3RhdGUoKSB7IHJldHVybiBpbml0aWFsU3RhdGU7IH1cbiAgICAgICAgICAgIHByb3RlY3RlZCByZWR1Y2Uoc3RhdGU6IFQsIGFjdGlvbjogQWN0aW9uKTogVCB7IHJldHVybiB1bmRlZmluZWQ7IH1cbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMucmVnaXN0ZXI8VD4oc3RvcmVJZCwgRXh0ZW5kZWQpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFJlZ2lzdGVycyBhIG5ldyBzaGFyZWQgc3RvcmUuIEEgc3RvcmUgd2l0aCB0aGUgc2FtZSBuYW1lIG11c3Qgbm90IGFscmVhZHlcbiAgICAgKiBiZSByZWdpc3RlcmVkLlxuICAgICAqXG4gICAgICogVGhpcyBtZXRob2QgbWF5IG9ubHkgYmUgY2FsbGVkIGluIHRoZSBhcHBsaWNhdGlvbidzIGNvbmZpZ3VyYXRpb25cbiAgICAgKiBwaGFzZS5cbiAgICAgKlxuICAgICAqIEBwYXJhbSBzdG9yZUlkIElkZW50aWZpZXIgb2YgdGhlIHNoYXJlZCBzdG9yZSAobXVzdCBiZSBnbG9iYWxseSB1bmlxdWUpXG4gICAgICogQHBhcmFtIFNoYXJlZCBzdG9yZSBjbGFzc1xuICAgICAqL1xuICAgIHB1YmxpYyByZWdpc3RlcjxUPihzdG9yZUlkOiBzdHJpbmcsIHN0b3JlVHlwZTogU2hhcmVkU3RvcmVGYWN0b3J5PFQsIGFueT4pOiB2b2lkIHtcbiAgICAgICAgLy8gUmVnaXN0ZXIgdGhlIHN0b3JlIGFzIGFuIGFuZ3VsYXIgc2VydmljZS4gV2UgdXNlIGZhY3RvcnkgaW5zdGVhZCBvZiBzZXJ2aWNlXG4gICAgICAgIC8vIHNvIHdlIGNhbiBzZXQgdGhlIGBfc3RvcmVJZGAgb24gdGhlIGluc3RhbmNlLlxuICAgICAgICB0aGlzLl9wcm92aWRlLmZhY3RvcnkoXG4gICAgICAgICAgICBzdG9yZUlkVG9TZXJ2aWNlSWQoc3RvcmVJZCksXG4gICAgICAgICAgICAvLyBAbmdJbmplY3RcbiAgICAgICAgICAgICgkaW5qZWN0b3I6IGFuZ3VsYXIuYXV0by5JSW5qZWN0b3JTZXJ2aWNlKSA9PiB7XG4gICAgICAgICAgICAgICAgY29uc3Qgc3RvcmU6IGFueSA9ICRpbmplY3Rvci5pbnN0YW50aWF0ZShzdG9yZVR5cGUpO1xuICAgICAgICAgICAgICAgIHN0b3JlLl9zdG9yZUlkID0gc3RvcmVJZDtcbiAgICAgICAgICAgICAgICByZXR1cm4gc3RvcmU7XG4gICAgICAgICAgICB9XG4gICAgICAgICk7XG4gICAgICAgIHRoaXMuX3N0b3Jlcy5wdXNoKHN0b3JlSWQpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFJlZ2lzdGVycyBhIG5ldyBhY3Rpb25zIGNsYXNzLlxuICAgICAqXG4gICAgICogVGhpcyBtZXRob2QgbWF5IG9ubHkgYmUgY2FsbGVkIGluIHRoZSBhcHBsaWNhdGlvbidzIGNvbmZpZ3VyYXRpb25cbiAgICAgKiBwaGFzZS5cbiAgICAgKlxuICAgICAqIEBwYXJhbSBhY3Rpb25zSWQgSWRlbnRpZmllciBvZiB0aGUgYWN0aW9ucyBjbGFzcyAobXVzdCBiZSBnbG9iYWxseSB1bmlxdWUpXG4gICAgICogQHBhcmFtIEFjdGlvbnMgY2xhc3NcbiAgICAgKi9cbiAgICBwdWJsaWMgcmVnaXN0ZXJBY3Rpb25zKGFjdGlvbnNJZDogc3RyaW5nLCBhY3Rpb25zVHlwZTogQWN0aW9uRmFjdG9yeSk6IHZvaWQge1xuICAgICAgICB0aGlzLl9wcm92aWRlLnNlcnZpY2UoYWN0aW9uc0lkVG9TZXJ2aWNlSWQoYWN0aW9uc0lkKSwgYWN0aW9uc1R5cGUpO1xuICAgIH1cblxuICAgIC8vIEBuZ0luamVjdFxuICAgIHB1YmxpYyAkZ2V0KCRpbmplY3RvcjogYW5ndWxhci5hdXRvLklJbmplY3RvclNlcnZpY2UsXG4gICAgICAgICAgICAgICAgZGlzcGF0Y2hlcjogRGlzcGF0Y2hlcik6IFNoYXJlZFN0b3JlTWFuYWdlciB7XG4gICAgICAgIHJldHVybiBuZXcgU2hhcmVkU3RvcmVNYW5hZ2VyKCRpbmplY3RvciwgZGlzcGF0Y2hlciwgdGhpcyk7XG4gICAgfVxufVxuXG4vKipcbiAqIE1hbmFnZXIgb2YgYWxsIHNoYXJlZCBzdG9yZXMgKHNlZSBbW1NoYXJlZFN0b3JlXV0pIGluIGFuIGFwcGxpY2F0aW9uLiBFYWNoIHN0b3JlXG4gKiByZXF1aXJlcyBhIGdsb2JhbGx5IHVuaXF1ZSBpZGVudGlmaWVyLCB3aGljaCBpcyBhbHNvIHVzZWQgZHVyaW5nIHN0YXRlIHNlcmlhbGl6YXRpb24uXG4gKlxuICogSW4gb3JkZXIgdG8gdXNlIHNoYXJlZCBzdG9yZXMsIHlvdSBtdXN0IGZpcnN0IGNyZWF0ZSB0aGVtLiBUaGUgYmVzdCB3YXkgdG8gZG9cbiAqIHRoaXMgaXMgaW5zaWRlIHlvdXIgbW9kdWxlJ3MgYGNvbmZpZ2AgZnVuY3Rpb24gYXMgZm9sbG93czpcbiAqIGBgYFxuICogbW9kdWxlLmNvbmZpZygoc2hhcmVkU3RvcmVNYW5hZ2VyUHJvdmlkZXI6IFNoYXJlZFN0b3JlUHJvdmlkZXIpID0+IHtcbiAqICAgICAvLyBDcmVhdGUgdGhlIHNlbGVjdGVkIFJPU0UyIGRhdGEgaXRlbXMgc2hhcmVkIHN0b3JlLlxuICogICAgIHNoYXJlZFN0b3JlTWFuYWdlclByb3ZpZGVyLmNyZWF0ZSgncm9zZTItc2VsZWN0ZWQtZGF0YS1pdGVtJyk7XG4gKiB9KTtcbiAqIGBgYFxuICpcbiAqIFRoZSBzdG9yZSBtYXkgdGhlbiBiZSB1c2VkIGFzIGlucHV0IHRvIHNoYXJlZCBzdGF0ZSBkZWZpbmVkIG9uIHN0YXRlZnVsXG4gKiBjb21wb25lbnRzIChzZWUgW1tTdGF0ZWZ1bENvbXBvbmVudEJhc2VdXSkgYW5kIGNhbiBhbHNvIGJlIGluamVjdGVkIHVzaW5nXG4gKiBhIHNwZWNpZmljIHRva2VuLiBJZiBhIHN0b3JlIGlzIG5hbWVkIGBteS1uaWNlLWl0ZW1zYCwgaXQgd2lsbCBiZSBpbmplY3RhYmxlXG4gKiBieSB1c2luZyB0aGUgdG9rZW4gYG15TmljZUl0ZW1zU3RvcmVgLlxuICpcbiAqIElmIHlvdSB3aXNoIHRvIGRlZmluZSBzaGFyZWQgc3RvcmVzIHdoaWNoIHN1cHBvcnQgYWRkaXRpb25hbCBhY3Rpb25zLCB5b3VcbiAqIHNob3VsZCBzdWJjbGFzcyBbW1NoYXJlZFN0b3JlXV0gYW5kIHJlZ2lzdGVyIHlvdXIgc3RvcmUgYnkgdXNpbmcgW1tyZWdpc3Rlcl1dXG4gKiBhcyBmb2xsb3dzOlxuICogYGBgXG4gKiBjbGFzcyBDb21wbGV4QWN0aW9ucyB7XG4gKiAgICAgc3RhdGljIEFERF9JVEVNID0gJ2NvbXBsZXgvYWRkX2l0ZW0nO1xuICogICAgIHB1YmxpYyBhZGRJdGVtKHZhbHVlOiB0eXBlcy5TYW1wbGVEYXRhKSB7XG4gKiAgICAgICAgIHJldHVybiB7IHR5cGU6IENvbXBsZXhBY3Rpb25zLkFERF9JVEVNLCBpdGVtOiB2YWx1ZSB9O1xuICogICAgIH1cbiAqIH1cbiAqXG4gKiBjbGFzcyBDb21wbGV4U3RvcmUgZXh0ZW5kcyBTaGFyZWRTdG9yZTx0eXBlcy5TYW1wbGVEYXRhW10sIENvbXBsZXhBY3Rpb25zPiB7XG4gKiAgICAgLy8gQG5nSW5qZWN0XG4gKiAgICAgY29uc3RydWN0b3IoY29tcGxleEFjdGlvbnM6IENvbXBsZXhBY3Rpb25zKSB7XG4gKiAgICAgICAgIHN1cGVyKGNvbXBsZXhBY3Rpb25zKTtcbiAqICAgICB9XG4gKlxuICogICAgIHByb3RlY3RlZCBpbml0aWFsU3RhdGUoKTogdHlwZXMuU2FtcGxlRGF0YVtdIHtcbiAqICAgICAgICAgcmV0dXJuIFtdO1xuICogICAgIH1cbiAqXG4gKiAgICAgcHJvdGVjdGVkIHJlZHVjZShzdGF0ZTogdHlwZXMuU2FtcGxlRGF0YVtdLCBhY3Rpb246IGFueSk6IHZvaWQge1xuICogICAgICAgICBzd2l0Y2ggKGFjdGlvbi50eXBlKSB7XG4gKiAgICAgICAgICAgICBjYXNlIEFERF9JVEVNOiB7XG4gKiAgICAgICAgICAgICAgICAgcmV0dXJuIF8udW5pb24oc3RhdGUsIGFjdGlvbi5pdGVtKTtcbiAqICAgICAgICAgICAgIH1cbiAqICAgICAgICAgICAgIC8vIC4uLlxuICogICAgICAgICB9XG4gKiAgICAgfVxuICogfVxuICpcbiAqIG1vZHVsZS5jb25maWcoKHNoYXJlZFN0b3JlTWFuYWdlclByb3ZpZGVyOiBTaGFyZWRTdG9yZVByb3ZpZGVyKSA9PiB7XG4gKiAgICAgc2hhcmVkU3RvcmVNYW5hZ2VyUHJvdmlkZXIucmVnaXN0ZXJBY3Rpb25zKCdjb21wbGV4JywgQ29tcGxleEFjdGlvbnMpO1xuICogICAgIHNoYXJlZFN0b3JlTWFuYWdlclByb3ZpZGVyLnJlZ2lzdGVyKCdjb21wbGV4JywgQ29tcGxleFN0b3JlKTtcbiAqIH0pO1xuICogYGBgXG4gKlxuICogV2hlbiBjcmVhdGluZyBhIG5ldyBzaGFyZWQgc3RvcmUsIGEgZ29vZCBkZXNpZ24gcHJhY3RpY2UgaXMgdG8gc2VwYXJhdGVcbiAqIGFjdGlvbnMgaW50byB0aGUgYGFjdGlvbnNgIGRpcmVjdG9yeSBhbmQgaW1wbGVtZW50IGFjdGlvbnMgYXMgbWV0aG9kcyBvblxuICogdGhlIGFjdGlvbnMgY2xhc3MgbmFtZWQgYWZ0ZXIgeW91ciBzdG9yZSAoZWcuIGZvciBzdG9yZSBgRm9vU3RvcmVgIHB1dFxuICogYWN0aW9ucyBpbnRvIGBGb29BY3Rpb25zYCkuXG4gKlxuICogU3RvcmVzIHRoZW1zZWx2ZXMgc2hvdWxkIG9ubHkgaW1wbGVtZW50IHRoZSBzdGF0ZSBtYW5hZ2VtZW50IGZ1bmN0aW9uYWxpdHlcbiAqIGFuZCBtb3N0IGJ1c2luZXNzIGxvZ2ljIHNob3VsZCBiZSBjb250YWluZWQgaW4gdGhlIGFjdGlvbnMgY2xhc3MuIEZvclxuICogZXhhbXBsZSwgaWYgYWN0aW9ucyByZXF1aXJlIHNvbWUgYXN5bmNocm9ub3VzIG9wZXJhdGlvbnMgdG8gYmUgcGVyZm9ybWVkXG4gKiBvbiBhIHJlbW90ZSBiYWNrZW5kIGFsbCB0aGlzIGZ1bmN0aW9uYWxpdHkgc2hvdWxkIGJlIHB1dCBpbnRvIHRoZSBhY3Rpb25zXG4gKiBjbGFzcyBhbmQgbm90IGludG8gdGhlIHN0b3JlLlxuICpcbiAqIEFsbCBhY3Rpb25zIGNsYXNzZXMgc2hvdWxkIGJlIHJlZ2lzdGVyZWQgdmlhIHRoZSBbW1NoYXJlZFN0b3JlUHJvdmlkZXJdXVxuICogYW5kIHN1cHBvcnQgQW5ndWxhciBkZXBlbmRlbmN5IGluamVjdGlvbi4gQWN0aW9ucyBjbGFzc2VzIGFyZSBpbmplY3RhYmxlXG4gKiB1bmRlciB0aGUgdG9rZW4gYGlkQWN0aW9uc2Agd2hlcmUgdGhlIGBpZGAgcGFydCBpcyB0aGUgdmFsdWUgZGVmaW5lZCBieVxuICogYGFjdGlvbnNJZGAsIGZvcm1hdHRlZCBpbiBjYW1lbENhc2UuIFRoZSBjb25zdHJ1Y3RvciBvZiBhbiBhY3Rpb25zXG4gKiBjbGFzcyBtYXkgYWxzbyBpbmplY3Qgb3RoZXIgZGVwZW5kZW5jaWVzLlxuICpcbiAqIEZvciBjb252ZW5pZW5jZSwgeW91IG1heSBpbmplY3QgeW91ciBhY3Rpb25zIGNsYXNzIGluIHlvdXIgc2hhcmVkIHN0b3JlXG4gKiBjbGFzcyB1bmRlciB0aGUgcHVibGljIGF0dHJpYnV0ZSBgYWN0aW9uc2AuIFRoaXMgd2F5IG9uZSBtYXkgZ2V0IHRoZVxuICogYWN0aW9ucyBjbGFzcyBzaW1wbHkgYnkgYWNjZXNzaW5nIGBzdG9yZS5hY3Rpb25zYCB3aGVuIGdpdmVuIGEgc2hhcmVkXG4gKiBzdG9yZSBpbnN0YW5jZS5cbiAqL1xuZXhwb3J0IGNsYXNzIFNoYXJlZFN0b3JlTWFuYWdlciB7XG4gICAgLy8vIFNoYXJlZCBzdG9yZSBwcm92aWRlci5cbiAgICBwcml2YXRlIF9wcm92aWRlcjogU2hhcmVkU3RvcmVQcm92aWRlcjtcbiAgICAvLy8gRGlzcGF0Y2hlci5cbiAgICBwcml2YXRlIF9kaXNwYXRjaGVyOiBEaXNwYXRjaGVyO1xuICAgIC8vLyBBbmd1bGFyIGluamVjdG9yLlxuICAgIHByaXZhdGUgX2luamVjdG9yOiBhbmd1bGFyLmF1dG8uSUluamVjdG9yU2VydmljZTtcblxuICAgIC8vIEBuZ0luamVjdFxuICAgIGNvbnN0cnVjdG9yKCRpbmplY3RvcjogYW5ndWxhci5hdXRvLklJbmplY3RvclNlcnZpY2UsXG4gICAgICAgICAgICAgICAgZGlzcGF0Y2hlcjogRGlzcGF0Y2hlcixcbiAgICAgICAgICAgICAgICBzaGFyZWRTdG9yZU1hbmFnZXJQcm92aWRlcjogU2hhcmVkU3RvcmVQcm92aWRlcikge1xuICAgICAgICB0aGlzLl9wcm92aWRlciA9IHNoYXJlZFN0b3JlTWFuYWdlclByb3ZpZGVyO1xuICAgICAgICB0aGlzLl9pbmplY3RvciA9ICRpbmplY3RvcjtcbiAgICAgICAgdGhpcy5fZGlzcGF0Y2hlciA9IGRpc3BhdGNoZXI7XG4gICAgICAgIHRoaXMuX2Rpc3BhdGNoZXIuc2V0RGlzcGF0Y2hlcih0aGlzLl9kaXNwYXRjaC5iaW5kKHRoaXMpKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBSZXR1cm5zIGEgcHJldmlvdXNseSByZWdpc3RlcmVkIHN0b3JlLiBJdCBpcyBhbiBlcnJvciB0byByZXF1ZXN0IGEgc3RvcmVcbiAgICAgKiB3aGljaCBkb2Vzbid0IGV4aXN0LlxuICAgICAqXG4gICAgICogQHBhcmFtIHN0b3JlSWQgSWRlbnRpZmllciBvZiB0aGUgc2hhcmVkIHN0b3JlXG4gICAgICogQHJldHVybiBTaGFyZWQgc3RvcmUgaW5zdGFuY2VcbiAgICAgKi9cbiAgICBwdWJsaWMgZ2V0U3RvcmU8VD4oc3RvcmVJZDogc3RyaW5nKTogU2hhcmVkU3RvcmU8VCwgYW55PiB7XG4gICAgICAgIHJldHVybiB0aGlzLl9pbmplY3Rvci5nZXQ8U2hhcmVkU3RvcmU8VCwgYW55Pj4oc3RvcmVJZFRvU2VydmljZUlkKHN0b3JlSWQpKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBEaXNwYXRjaGVzIGFuIGFjdGlvbiB0byBhbGwgc2hhcmVkIHN0b3Jlcy5cbiAgICAgKlxuICAgICAqIEBwYXJhbSBhY3Rpb24gQWN0aW9uIHRvIGRpc3BhdGNoXG4gICAgICovXG4gICAgcHVibGljIGRpc3BhdGNoKGFjdGlvbjogQWN0aW9uIHwgVGh1bmspOiBhbnkge1xuICAgICAgICByZXR1cm4gdGhpcy5fZGlzcGF0Y2hlci5kaXNwYXRjaChhY3Rpb24pO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEludGVybmFsIGdsb2JhbCBkaXNwYXRjaCBpbXBsZW1lbnRhdGlvbi5cbiAgICAgKi9cbiAgICBwcml2YXRlIF9kaXNwYXRjaChhY3Rpb246IEFjdGlvbik6IHZvaWQge1xuICAgICAgICBmb3IgKGNvbnN0IHN0b3JlSWQgb2YgdGhpcy5fcHJvdmlkZXIuc3RvcmVzKSB7XG4gICAgICAgICAgICB0aGlzLmdldFN0b3JlKHN0b3JlSWQpLl9kaXNwYXRjaChhY3Rpb24pO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogU2VyaWFsaXplcyB0aGUgdmFsdWVzIG9mIGFsbCBzaGFyZWQgc3RvcmVzLlxuICAgICAqL1xuICAgIHB1YmxpYyBzYXZlU3RhdGUoKTogYW55IHtcbiAgICAgICAgbGV0IHJlc3VsdCA9IHt9O1xuICAgICAgICBmb3IgKGNvbnN0IHN0b3JlSWQgb2YgdGhpcy5fcHJvdmlkZXIuc3RvcmVzKSB7XG4gICAgICAgICAgICBsZXQgdmFsdWUgPSB0aGlzLmdldFN0b3JlKHN0b3JlSWQpLnNhdmVWYWx1ZSgpO1xuICAgICAgICAgICAgaWYgKGlzSnNvbmFibGUodmFsdWUpKSB7XG4gICAgICAgICAgICAgICAgcmVzdWx0W3N0b3JlSWRdID0gdmFsdWUudG9KU09OKCk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHJlc3VsdFtzdG9yZUlkXSA9IGFuZ3VsYXIuY29weSh2YWx1ZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gcmVzdWx0O1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIExvYWRzIHNlcmlhbGl6ZWQgdmFsdWVzIG9mIGFsbCBzaGFyZWQgc3RvcmVzLiBFeGlzdGluZyB2YWx1ZXMgYXJlIG92ZXJ3cml0dGVuLlxuICAgICAqL1xuICAgIHB1YmxpYyBsb2FkU3RhdGUoc3RhdGU6IGFueSk6IHZvaWQge1xuICAgICAgICBmb3IgKGNvbnN0IHN0b3JlSWQgb2YgdGhpcy5fcHJvdmlkZXIuc3RvcmVzKSB7XG4gICAgICAgICAgICBpZiAoIShzdG9yZUlkIGluIHN0YXRlKSkgY29udGludWU7XG5cbiAgICAgICAgICAgIGNvbnN0IHZhbHVlID0gc3RhdGVbc3RvcmVJZF07XG4gICAgICAgICAgICB0aGlzLmdldFN0b3JlKHN0b3JlSWQpLmRpc3BhdGNoKHt0eXBlOiBBY3Rpb25zLlNFVCwgdmFsdWU6IHZhbHVlfSk7XG4gICAgICAgIH1cbiAgICB9XG59XG5cbi8qKlxuICogUmV0dXJucyB0aGUgQW5ndWxhciBzZXJ2aWNlIGlkZW50aWZpZXIgdGhhdCBjYW4gYmUgdXNlZCB0byBpbmplY3QgYVxuICogc3RvcmUgdmlhIGRlcGVuZGVuY3kgaW5qZWN0aW9uLlxuICpcbiAqIEBwYXJhbSBzdG9yZUlkIFN0b3JlIGlkZW50aWZpZXJcbiAqL1xuZnVuY3Rpb24gc3RvcmVJZFRvU2VydmljZUlkKHN0b3JlSWQ6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgcmV0dXJuIF8uY2FtZWxDYXNlKGAke3N0b3JlSWR9LXN0b3JlYCk7XG59XG5cbi8qKlxuICogUmV0dXJucyB0aGUgQW5ndWxhciBzZXJ2aWNlIGlkZW50aWZpZXIgdGhhdCBjYW4gYmUgdXNlZCB0byBpbmplY3QgYW5cbiAqIGFjdGlvbnMgb2JqZWN0IHZpYSBkZXBlbmRlbmN5IGluamVjdGlvbi5cbiAqXG4gKiBAcGFyYW0gYWN0aW9uc0lkIEFjdGlvbnMgb2JqZWN0IGlkZW50aWZpZXJcbiAqL1xuZnVuY3Rpb24gYWN0aW9uc0lkVG9TZXJ2aWNlSWQoYWN0aW9uc0lkOiBzdHJpbmcpOiBzdHJpbmcge1xuICAgIHJldHVybiBfLmNhbWVsQ2FzZShgJHthY3Rpb25zSWR9LWFjdGlvbnNgKTtcbn1cblxuY29uc3QgYW5ndWxhck1vZHVsZTogYW5ndWxhci5JTW9kdWxlID0gYW5ndWxhci5tb2R1bGUoJ3Jlc29sd2Uuc2VydmljZXMuc2hhcmVkX3N0b3JlJywgW10pO1xuXG4vLyBSZWdpc3RlciBpbmplY3RhYmxlIHNlcnZpY2VzLlxuYW5ndWxhck1vZHVsZS5wcm92aWRlcignc2hhcmVkU3RvcmVNYW5hZ2VyJywgU2hhcmVkU3RvcmVQcm92aWRlcik7XG5hbmd1bGFyTW9kdWxlLnNlcnZpY2UoJ2Rpc3BhdGNoZXInLCBEaXNwYXRjaGVyKTtcbiJdfQ==
export {};
//# sourceMappingURL=index.spec.d.ts.map
"use strict";
var __extends = (this && this.__extends) || (function () {
var extendStatics = function (d, b) {
extendStatics = Object.setPrototypeOf ||
({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
return extendStatics(d, b);
}
var extendStatics = Object.setPrototypeOf ||
({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
return function (d, b) {

@@ -70,2 +67,2 @@ extendStatics(d, b);

//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9jb3JlL3NoYXJlZF9zdG9yZS9pbmRleC5zcGVjLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7OztBQUFBLDBCQUE0QjtBQUU1QixpQ0FBd0Q7QUFDeEQsbURBQXdFO0FBRXZFLHlCQUF5QjtBQUMxQixJQUFNLFFBQVEsR0FBRyxVQUFVLENBQUM7QUFDNUIsSUFBTSxXQUFXLEdBQUcsYUFBYSxDQUFDO0FBRWxDO0lBQTJCLGdDQUEwQjtJQUFyRDs7SUFZQSxDQUFDO0lBWGEsbUNBQVksR0FBdEI7UUFDSSxPQUFPLEVBQUUsQ0FBQztJQUNkLENBQUM7SUFFUyw2QkFBTSxHQUFoQixVQUFpQixLQUFlLEVBQUUsTUFBVztRQUN6QyxRQUFRLE1BQU0sQ0FBQyxJQUFJLEVBQUU7WUFDakIsS0FBSyxRQUFRLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxLQUFLLENBQUMsS0FBSyxFQUFFLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7WUFDcEQsS0FBSyxXQUFXLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxPQUFPLENBQUMsS0FBSyxFQUFFLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUN2RCxPQUFPLENBQUMsQ0FBQyxJQUFJLENBQUksTUFBTSxDQUFDLElBQUksOEJBQTJCLENBQUMsQ0FBQztTQUM1RDtJQUNMLENBQUM7SUFDTCxtQkFBQztBQUFELENBWkEsQUFZQyxDQVowQixtQkFBVyxHQVlyQztBQUVELDZCQUFpQixDQUFDLGNBQWMsRUFBRTtJQUM5QiwwQkFBYyxDQUFDLFNBQVMsRUFBRSxZQUFZLENBQUM7Q0FDMUMsRUFBRSxVQUFDLE1BQU07SUFDTix1REFBdUQ7SUFDdkQsSUFBSSxrQkFBc0MsQ0FBQztJQUMzQyxVQUFVLENBQUMsTUFBTSxDQUFDLFVBQUMsb0JBQW9CO1FBQ25DLGtCQUFrQixHQUFHLG9CQUFvQixDQUFDO0lBQzlDLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFFSixFQUFFLENBQUMsOEJBQThCLEVBQUU7UUFDL0IsSUFBTSxVQUFVLEdBQUcsT0FBTyxDQUFDLFNBQVMsQ0FBQyxZQUFZLENBQUMsQ0FBQztRQUVuRCxJQUFNLEtBQUssR0FBRyxrQkFBa0IsQ0FBQyxRQUFRLENBQUMsU0FBUyxDQUFDLENBQUM7UUFDckQsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDLFdBQVcsRUFBRSxDQUFDO1FBQzVCLEtBQUssQ0FBQyxVQUFVLEVBQUUsQ0FBQyxTQUFTLENBQUMsVUFBVSxDQUFDLENBQUM7UUFDekMsTUFBTSxDQUFDLFVBQVUsQ0FBQyxDQUFDLHFCQUFxQixDQUFDLENBQUMsQ0FBQyxDQUFDO1FBRTVDLEtBQUssQ0FBQyxRQUFRLENBQUMsRUFBQyxJQUFJLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRSxPQUFPLEVBQUMsQ0FBQyxDQUFDO1FBQ2hELEtBQUssQ0FBQyxRQUFRLENBQUMsRUFBQyxJQUFJLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRSxPQUFPLEVBQUMsQ0FBQyxDQUFDO1FBQ2hELEtBQUssQ0FBQyxRQUFRLENBQUMsRUFBQyxJQUFJLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRSxPQUFPLEVBQUMsQ0FBQyxDQUFDO1FBRWhELE1BQU0sQ0FBQyxLQUFLLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsQ0FBQztRQUNsRCxNQUFNLENBQUMsVUFBVSxDQUFDLENBQUMscUJBQXFCLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFFNUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxFQUFDLElBQUksRUFBRSxXQUFXLEVBQUUsSUFBSSxFQUFFLE9BQU8sRUFBQyxDQUFDLENBQUM7UUFDbkQsS0FBSyxDQUFDLFFBQVEsQ0FBQyxFQUFDLElBQUksRUFBRSxXQUFXLEVBQUUsSUFBSSxFQUFFLE9BQU8sRUFBQyxDQUFDLENBQUM7UUFDbkQsS0FBSyxDQUFDLFFBQVEsQ0FBQyxFQUFDLElBQUksRUFBRSxXQUFXLEVBQUUsSUFBSSxFQUFFLE9BQU8sRUFBQyxDQUFDLENBQUM7UUFFbkQsTUFBTSxDQUFDLEtBQUssQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUM7UUFDekMsTUFBTSxDQUFDLFVBQVUsQ0FBQyxDQUFDLHFCQUFxQixDQUFDLENBQUMsQ0FBQyxDQUFDO1FBRTVDLGtCQUFrQixDQUFDLFFBQVEsQ0FBQyxFQUFDLElBQUksRUFBRSxXQUFXLEVBQUUsSUFBSSxFQUFFLE9BQU8sRUFBQyxDQUFDLENBQUM7UUFDaEUsa0JBQWtCLENBQUMsUUFBUSxDQUFDLEVBQUMsSUFBSSxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUUsUUFBUSxFQUFDLENBQUMsQ0FBQztRQUM5RCxrQkFBa0IsQ0FBQyxRQUFRLENBQUMsRUFBQyxJQUFJLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRSxVQUFVLEVBQUMsQ0FBQyxDQUFDO1FBRWhFLE1BQU0sQ0FBQyxLQUFLLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxRQUFRLEVBQUUsVUFBVSxDQUFDLENBQUMsQ0FBQztJQUMxRCxDQUFDLENBQUMsQ0FBQztBQUNQLENBQUMsQ0FBQyxDQUFDIiwiZmlsZSI6ImNvcmUvc2hhcmVkX3N0b3JlL2luZGV4LnNwZWMuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyBfIGZyb20gJ2xvZGFzaCc7XG5cbmltcG9ydCB7U2hhcmVkU3RvcmVNYW5hZ2VyLCBTaGFyZWRTdG9yZX0gZnJvbSAnLi9pbmRleCc7XG5pbXBvcnQge2Rlc2NyaWJlQ29tcG9uZW50LCB1c2VTaGFyZWRTdG9yZX0gZnJvbSAnLi4vLi4vdGVzdHMvY29tcG9uZW50JztcblxuIC8vIENvbXBsZXggc3RvcmUgYWN0aW9ucy5cbmNvbnN0IEFERF9JVEVNID0gJ2FkZF9pdGVtJztcbmNvbnN0IFJFTU9WRV9JVEVNID0gJ3JlbW92ZV9pdGVtJztcblxuY2xhc3MgQ29tcGxleFN0b3JlIGV4dGVuZHMgU2hhcmVkU3RvcmU8c3RyaW5nW10sIGFueT4ge1xuICAgIHByb3RlY3RlZCBpbml0aWFsU3RhdGUoKTogc3RyaW5nW10ge1xuICAgICAgICByZXR1cm4gW107XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIHJlZHVjZShzdGF0ZTogc3RyaW5nW10sIGFjdGlvbjogYW55KTogc3RyaW5nW10ge1xuICAgICAgICBzd2l0Y2ggKGFjdGlvbi50eXBlKSB7XG4gICAgICAgICAgICBjYXNlIEFERF9JVEVNOiByZXR1cm4gXy51bmlvbihzdGF0ZSwgW2FjdGlvbi5pdGVtXSk7XG4gICAgICAgICAgICBjYXNlIFJFTU9WRV9JVEVNOiByZXR1cm4gXy53aXRob3V0KHN0YXRlLCBhY3Rpb24uaXRlbSk7XG4gICAgICAgICAgICBkZWZhdWx0OiBmYWlsKGAke2FjdGlvbi50eXBlfSBoYW5kbGluZyBub3QgaW1wbGVtZW50ZWRgKTtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuZGVzY3JpYmVDb21wb25lbnQoJ3NoYXJlZCBzdG9yZScsIFtcbiAgICB1c2VTaGFyZWRTdG9yZSgnY29tcGxleCcsIENvbXBsZXhTdG9yZSksXG5dLCAodGVzdGVyKSA9PiB7XG4gICAgLy8gRW5zdXJlIHdlIGhhdmUgYSBzaGFyZWQgc3RvcmUgbWFuYWdlciBmb3IgZWFjaCB0ZXN0LlxuICAgIGxldCBzaGFyZWRTdG9yZU1hbmFnZXI6IFNoYXJlZFN0b3JlTWFuYWdlcjtcbiAgICBiZWZvcmVFYWNoKGluamVjdCgoX3NoYXJlZFN0b3JlTWFuYWdlcl8pID0+IHtcbiAgICAgICAgc2hhcmVkU3RvcmVNYW5hZ2VyID0gX3NoYXJlZFN0b3JlTWFuYWdlcl87XG4gICAgfSkpO1xuXG4gICAgaXQoJ2Rpc3BhdGNoZXMgdG8gY29tcGxleCBzdG9yZXMnLCAoKSA9PiB7XG4gICAgICAgIGNvbnN0IHN1YnNjcmliZXIgPSBqYXNtaW5lLmNyZWF0ZVNweSgnc3Vic2NyaWJlcicpO1xuXG4gICAgICAgIGNvbnN0IHN0b3JlID0gc2hhcmVkU3RvcmVNYW5hZ2VyLmdldFN0b3JlKCdjb21wbGV4Jyk7XG4gICAgICAgIGV4cGVjdChzdG9yZSkudG9CZURlZmluZWQoKTtcbiAgICAgICAgc3RvcmUub2JzZXJ2YWJsZSgpLnN1YnNjcmliZShzdWJzY3JpYmVyKTtcbiAgICAgICAgZXhwZWN0KHN1YnNjcmliZXIpLnRvSGF2ZUJlZW5DYWxsZWRUaW1lcygxKTtcblxuICAgICAgICBzdG9yZS5kaXNwYXRjaCh7dHlwZTogQUREX0lURU0sIGl0ZW06ICdoZWxsbyd9KTtcbiAgICAgICAgc3RvcmUuZGlzcGF0Y2goe3R5cGU6IEFERF9JVEVNLCBpdGVtOiAnd29ybGQnfSk7XG4gICAgICAgIHN0b3JlLmRpc3BhdGNoKHt0eXBlOiBBRERfSVRFTSwgaXRlbTogJ2hlbGxvJ30pO1xuXG4gICAgICAgIGV4cGVjdChzdG9yZS52YWx1ZSgpKS50b0VxdWFsKFsnaGVsbG8nLCAnd29ybGQnXSk7XG4gICAgICAgIGV4cGVjdChzdWJzY3JpYmVyKS50b0hhdmVCZWVuQ2FsbGVkVGltZXMoMyk7XG5cbiAgICAgICAgc3RvcmUuZGlzcGF0Y2goe3R5cGU6IFJFTU9WRV9JVEVNLCBpdGVtOiAnaGVsbG8nfSk7XG4gICAgICAgIHN0b3JlLmRpc3BhdGNoKHt0eXBlOiBSRU1PVkVfSVRFTSwgaXRlbTogJ2hlbGxvJ30pO1xuICAgICAgICBzdG9yZS5kaXNwYXRjaCh7dHlwZTogUkVNT1ZFX0lURU0sIGl0ZW06ICdoZWxsbyd9KTtcblxuICAgICAgICBleHBlY3Qoc3RvcmUudmFsdWUoKSkudG9FcXVhbChbJ3dvcmxkJ10pO1xuICAgICAgICBleHBlY3Qoc3Vic2NyaWJlcikudG9IYXZlQmVlbkNhbGxlZFRpbWVzKDQpO1xuXG4gICAgICAgIHNoYXJlZFN0b3JlTWFuYWdlci5kaXNwYXRjaCh7dHlwZTogUkVNT1ZFX0lURU0sIGl0ZW06ICd3b3JsZCd9KTtcbiAgICAgICAgc2hhcmVkU3RvcmVNYW5hZ2VyLmRpc3BhdGNoKHt0eXBlOiBBRERfSVRFTSwgaXRlbTogJ2dsb2JhbCd9KTtcbiAgICAgICAgc2hhcmVkU3RvcmVNYW5hZ2VyLmRpc3BhdGNoKHt0eXBlOiBBRERfSVRFTSwgaXRlbTogJ2Rpc3BhdGNoJ30pO1xuXG4gICAgICAgIGV4cGVjdChzdG9yZS52YWx1ZSgpKS50b0VxdWFsKFsnZ2xvYmFsJywgJ2Rpc3BhdGNoJ10pO1xuICAgIH0pO1xufSk7XG4iXX0=
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9jb3JlL3NoYXJlZF9zdG9yZS9pbmRleC5zcGVjLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7OztBQUFBLDBCQUE0QjtBQUU1QixpQ0FBd0Q7QUFDeEQsbURBQXdFO0FBRXZFLHlCQUF5QjtBQUMxQixJQUFNLFFBQVEsR0FBRyxVQUFVLENBQUM7QUFDNUIsSUFBTSxXQUFXLEdBQUcsYUFBYSxDQUFDO0FBRWxDO0lBQTJCLGdDQUEwQjtJQUFyRDs7SUFZQSxDQUFDO0lBWGEsbUNBQVksR0FBdEI7UUFDSSxPQUFPLEVBQUUsQ0FBQztJQUNkLENBQUM7SUFFUyw2QkFBTSxHQUFoQixVQUFpQixLQUFlLEVBQUUsTUFBVztRQUN6QyxRQUFRLE1BQU0sQ0FBQyxJQUFJLEVBQUU7WUFDakIsS0FBSyxRQUFRLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxLQUFLLENBQUMsS0FBSyxFQUFFLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7WUFDcEQsS0FBSyxXQUFXLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxPQUFPLENBQUMsS0FBSyxFQUFFLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUN2RCxPQUFPLENBQUMsQ0FBQyxJQUFJLENBQUksTUFBTSxDQUFDLElBQUksOEJBQTJCLENBQUMsQ0FBQztTQUM1RDtJQUNMLENBQUM7SUFDTCxtQkFBQztBQUFELENBWkEsQUFZQyxDQVowQixtQkFBVyxHQVlyQztBQUVELDZCQUFpQixDQUFDLGNBQWMsRUFBRTtJQUM5QiwwQkFBYyxDQUFDLFNBQVMsRUFBRSxZQUFZLENBQUM7Q0FDMUMsRUFBRSxVQUFDLE1BQU07SUFDTix1REFBdUQ7SUFDdkQsSUFBSSxrQkFBc0MsQ0FBQztJQUMzQyxVQUFVLENBQUMsTUFBTSxDQUFDLFVBQUMsb0JBQW9CO1FBQ25DLGtCQUFrQixHQUFHLG9CQUFvQixDQUFDO0lBQzlDLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFFSixFQUFFLENBQUMsOEJBQThCLEVBQUU7UUFDL0IsSUFBTSxVQUFVLEdBQUcsT0FBTyxDQUFDLFNBQVMsQ0FBQyxZQUFZLENBQUMsQ0FBQztRQUVuRCxJQUFNLEtBQUssR0FBRyxrQkFBa0IsQ0FBQyxRQUFRLENBQUMsU0FBUyxDQUFDLENBQUM7UUFDckQsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDLFdBQVcsRUFBRSxDQUFDO1FBQzVCLEtBQUssQ0FBQyxVQUFVLEVBQUUsQ0FBQyxTQUFTLENBQUMsVUFBVSxDQUFDLENBQUM7UUFDekMsTUFBTSxDQUFDLFVBQVUsQ0FBQyxDQUFDLHFCQUFxQixDQUFDLENBQUMsQ0FBQyxDQUFDO1FBRTVDLEtBQUssQ0FBQyxRQUFRLENBQUMsRUFBQyxJQUFJLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRSxPQUFPLEVBQUMsQ0FBQyxDQUFDO1FBQ2hELEtBQUssQ0FBQyxRQUFRLENBQUMsRUFBQyxJQUFJLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRSxPQUFPLEVBQUMsQ0FBQyxDQUFDO1FBQ2hELEtBQUssQ0FBQyxRQUFRLENBQUMsRUFBQyxJQUFJLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRSxPQUFPLEVBQUMsQ0FBQyxDQUFDO1FBRWhELE1BQU0sQ0FBQyxLQUFLLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsQ0FBQztRQUNsRCxNQUFNLENBQUMsVUFBVSxDQUFDLENBQUMscUJBQXFCLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFFNUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxFQUFDLElBQUksRUFBRSxXQUFXLEVBQUUsSUFBSSxFQUFFLE9BQU8sRUFBQyxDQUFDLENBQUM7UUFDbkQsS0FBSyxDQUFDLFFBQVEsQ0FBQyxFQUFDLElBQUksRUFBRSxXQUFXLEVBQUUsSUFBSSxFQUFFLE9BQU8sRUFBQyxDQUFDLENBQUM7UUFDbkQsS0FBSyxDQUFDLFFBQVEsQ0FBQyxFQUFDLElBQUksRUFBRSxXQUFXLEVBQUUsSUFBSSxFQUFFLE9BQU8sRUFBQyxDQUFDLENBQUM7UUFFbkQsTUFBTSxDQUFDLEtBQUssQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUM7UUFDekMsTUFBTSxDQUFDLFVBQVUsQ0FBQyxDQUFDLHFCQUFxQixDQUFDLENBQUMsQ0FBQyxDQUFDO1FBRTVDLGtCQUFrQixDQUFDLFFBQVEsQ0FBQyxFQUFDLElBQUksRUFBRSxXQUFXLEVBQUUsSUFBSSxFQUFFLE9BQU8sRUFBQyxDQUFDLENBQUM7UUFDaEUsa0JBQWtCLENBQUMsUUFBUSxDQUFDLEVBQUMsSUFBSSxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUUsUUFBUSxFQUFDLENBQUMsQ0FBQztRQUM5RCxrQkFBa0IsQ0FBQyxRQUFRLENBQUMsRUFBQyxJQUFJLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRSxVQUFVLEVBQUMsQ0FBQyxDQUFDO1FBRWhFLE1BQU0sQ0FBQyxLQUFLLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxRQUFRLEVBQUUsVUFBVSxDQUFDLENBQUMsQ0FBQztJQUMxRCxDQUFDLENBQUMsQ0FBQztBQUNQLENBQUMsQ0FBQyxDQUFDIiwiZmlsZSI6ImNvcmUvc2hhcmVkX3N0b3JlL2luZGV4LnNwZWMuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyBfIGZyb20gJ2xvZGFzaCc7XG5cbmltcG9ydCB7U2hhcmVkU3RvcmVNYW5hZ2VyLCBTaGFyZWRTdG9yZX0gZnJvbSAnLi9pbmRleCc7XG5pbXBvcnQge2Rlc2NyaWJlQ29tcG9uZW50LCB1c2VTaGFyZWRTdG9yZX0gZnJvbSAnLi4vLi4vdGVzdHMvY29tcG9uZW50JztcblxuIC8vIENvbXBsZXggc3RvcmUgYWN0aW9ucy5cbmNvbnN0IEFERF9JVEVNID0gJ2FkZF9pdGVtJztcbmNvbnN0IFJFTU9WRV9JVEVNID0gJ3JlbW92ZV9pdGVtJztcblxuY2xhc3MgQ29tcGxleFN0b3JlIGV4dGVuZHMgU2hhcmVkU3RvcmU8c3RyaW5nW10sIGFueT4ge1xuICAgIHByb3RlY3RlZCBpbml0aWFsU3RhdGUoKTogc3RyaW5nW10ge1xuICAgICAgICByZXR1cm4gW107XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIHJlZHVjZShzdGF0ZTogc3RyaW5nW10sIGFjdGlvbjogYW55KTogc3RyaW5nW10ge1xuICAgICAgICBzd2l0Y2ggKGFjdGlvbi50eXBlKSB7XG4gICAgICAgICAgICBjYXNlIEFERF9JVEVNOiByZXR1cm4gXy51bmlvbihzdGF0ZSwgW2FjdGlvbi5pdGVtXSk7XG4gICAgICAgICAgICBjYXNlIFJFTU9WRV9JVEVNOiByZXR1cm4gXy53aXRob3V0KHN0YXRlLCBhY3Rpb24uaXRlbSk7XG4gICAgICAgICAgICBkZWZhdWx0OiBmYWlsKGAke2FjdGlvbi50eXBlfSBoYW5kbGluZyBub3QgaW1wbGVtZW50ZWRgKTtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuZGVzY3JpYmVDb21wb25lbnQoJ3NoYXJlZCBzdG9yZScsIFtcbiAgICB1c2VTaGFyZWRTdG9yZSgnY29tcGxleCcsIENvbXBsZXhTdG9yZSksXG5dLCAodGVzdGVyKSA9PiB7XG4gICAgLy8gRW5zdXJlIHdlIGhhdmUgYSBzaGFyZWQgc3RvcmUgbWFuYWdlciBmb3IgZWFjaCB0ZXN0LlxuICAgIGxldCBzaGFyZWRTdG9yZU1hbmFnZXI6IFNoYXJlZFN0b3JlTWFuYWdlcjtcbiAgICBiZWZvcmVFYWNoKGluamVjdCgoX3NoYXJlZFN0b3JlTWFuYWdlcl8pID0+IHtcbiAgICAgICAgc2hhcmVkU3RvcmVNYW5hZ2VyID0gX3NoYXJlZFN0b3JlTWFuYWdlcl87XG4gICAgfSkpO1xuXG4gICAgaXQoJ2Rpc3BhdGNoZXMgdG8gY29tcGxleCBzdG9yZXMnLCAoKSA9PiB7XG4gICAgICAgIGNvbnN0IHN1YnNjcmliZXIgPSBqYXNtaW5lLmNyZWF0ZVNweSgnc3Vic2NyaWJlcicpO1xuXG4gICAgICAgIGNvbnN0IHN0b3JlID0gc2hhcmVkU3RvcmVNYW5hZ2VyLmdldFN0b3JlKCdjb21wbGV4Jyk7XG4gICAgICAgIGV4cGVjdChzdG9yZSkudG9CZURlZmluZWQoKTtcbiAgICAgICAgc3RvcmUub2JzZXJ2YWJsZSgpLnN1YnNjcmliZShzdWJzY3JpYmVyKTtcbiAgICAgICAgZXhwZWN0KHN1YnNjcmliZXIpLnRvSGF2ZUJlZW5DYWxsZWRUaW1lcygxKTtcblxuICAgICAgICBzdG9yZS5kaXNwYXRjaCh7dHlwZTogQUREX0lURU0sIGl0ZW06ICdoZWxsbyd9KTtcbiAgICAgICAgc3RvcmUuZGlzcGF0Y2goe3R5cGU6IEFERF9JVEVNLCBpdGVtOiAnd29ybGQnfSk7XG4gICAgICAgIHN0b3JlLmRpc3BhdGNoKHt0eXBlOiBBRERfSVRFTSwgaXRlbTogJ2hlbGxvJ30pO1xuXG4gICAgICAgIGV4cGVjdChzdG9yZS52YWx1ZSgpKS50b0VxdWFsKFsnaGVsbG8nLCAnd29ybGQnXSk7XG4gICAgICAgIGV4cGVjdChzdWJzY3JpYmVyKS50b0hhdmVCZWVuQ2FsbGVkVGltZXMoMyk7XG5cbiAgICAgICAgc3RvcmUuZGlzcGF0Y2goe3R5cGU6IFJFTU9WRV9JVEVNLCBpdGVtOiAnaGVsbG8nfSk7XG4gICAgICAgIHN0b3JlLmRpc3BhdGNoKHt0eXBlOiBSRU1PVkVfSVRFTSwgaXRlbTogJ2hlbGxvJ30pO1xuICAgICAgICBzdG9yZS5kaXNwYXRjaCh7dHlwZTogUkVNT1ZFX0lURU0sIGl0ZW06ICdoZWxsbyd9KTtcblxuICAgICAgICBleHBlY3Qoc3RvcmUudmFsdWUoKSkudG9FcXVhbChbJ3dvcmxkJ10pO1xuICAgICAgICBleHBlY3Qoc3Vic2NyaWJlcikudG9IYXZlQmVlbkNhbGxlZFRpbWVzKDQpO1xuXG4gICAgICAgIHNoYXJlZFN0b3JlTWFuYWdlci5kaXNwYXRjaCh7dHlwZTogUkVNT1ZFX0lURU0sIGl0ZW06ICd3b3JsZCd9KTtcbiAgICAgICAgc2hhcmVkU3RvcmVNYW5hZ2VyLmRpc3BhdGNoKHt0eXBlOiBBRERfSVRFTSwgaXRlbTogJ2dsb2JhbCd9KTtcbiAgICAgICAgc2hhcmVkU3RvcmVNYW5hZ2VyLmRpc3BhdGNoKHt0eXBlOiBBRERfSVRFTSwgaXRlbTogJ2Rpc3BhdGNoJ30pO1xuXG4gICAgICAgIGV4cGVjdChzdG9yZS52YWx1ZSgpKS50b0VxdWFsKFsnZ2xvYmFsJywgJ2Rpc3BhdGNoJ10pO1xuICAgIH0pO1xufSk7XG4iXX0=

@@ -10,2 +10,1 @@ /**

export declare function makeImmutable<T>(object: T): T;
//# sourceMappingURL=immutable.d.ts.map

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

//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9jb3JlL3V0aWxzL2ltbXV0YWJsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUVBOzs7Ozs7O0dBT0c7QUFDSCxTQUFnQixhQUFhLENBQUksTUFBUztJQUV0QyxPQUFPLE1BQU0sQ0FBQztBQUNsQixDQUFDO0FBSEQsc0NBR0MiLCJmaWxlIjoiY29yZS91dGlscy9pbW11dGFibGUuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyBfIGZyb20gJ2xvZGFzaCc7XG5cbi8qKlxuICogTWFrZXMgYW4gb2JqZWN0IGRlZXBseSBpbW11dGFibGUgYnkgdXNpbmcgT2JqZWN0LmZyZWV6ZS4gVGhlIHBhc3NlZCBvYmplY3RcbiAqIHdpbGwgYmUgY2hhbmdlZCBzbyB0aGF0IGl0IHdpbGwgbm93IGJlIGltbXV0YWJsZSBhbmQgdGhlIHNhbWUgb2JqZWN0IHdpbGxcbiAqIGJlIHJldHVybmVkLlxuICpcbiAqIEBwYXJhbSB7VH0gb2JqZWN0IFRoZSBvYmplY3QgdG8gbWFrZSBpbW11dGFibGVcbiAqIEByZXR1cm4ge1R9IFRoZSBzYW1lIG9iamVjdCB0aGF0IHdhcyBwYXNzZWQgYXMgYW4gYXJndW1lbnRcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIG1ha2VJbW11dGFibGU8VD4ob2JqZWN0OiBUKTogVCB7XG4gICAgLy8gQGlmbmRlZiBHRU5KU19QUk9EVUNUSU9OXG4gICAgaWYgKF8uaXNPYmplY3Qob2JqZWN0KSkge1xuICAgICAgICBfLmVhY2gob2JqZWN0LCAocHJvcGVydHkpID0+IG1ha2VJbW11dGFibGUocHJvcGVydHkpKTtcbiAgICAgICAgcmV0dXJuIE9iamVjdC5mcmVlemUob2JqZWN0KTtcbiAgICB9XG4gICAgLy8gQGVuZGlmXG5cbiAgICByZXR1cm4gb2JqZWN0O1xufVxuIl19
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9jb3JlL3V0aWxzL2ltbXV0YWJsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUVBOzs7Ozs7O0dBT0c7QUFDSCx1QkFBaUMsTUFBUztJQUV0QyxPQUFPLE1BQU0sQ0FBQztBQUNsQixDQUFDO0FBSEQsc0NBR0MiLCJmaWxlIjoiY29yZS91dGlscy9pbW11dGFibGUuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyBfIGZyb20gJ2xvZGFzaCc7XG5cbi8qKlxuICogTWFrZXMgYW4gb2JqZWN0IGRlZXBseSBpbW11dGFibGUgYnkgdXNpbmcgT2JqZWN0LmZyZWV6ZS4gVGhlIHBhc3NlZCBvYmplY3RcbiAqIHdpbGwgYmUgY2hhbmdlZCBzbyB0aGF0IGl0IHdpbGwgbm93IGJlIGltbXV0YWJsZSBhbmQgdGhlIHNhbWUgb2JqZWN0IHdpbGxcbiAqIGJlIHJldHVybmVkLlxuICpcbiAqIEBwYXJhbSB7VH0gb2JqZWN0IFRoZSBvYmplY3QgdG8gbWFrZSBpbW11dGFibGVcbiAqIEByZXR1cm4ge1R9IFRoZSBzYW1lIG9iamVjdCB0aGF0IHdhcyBwYXNzZWQgYXMgYW4gYXJndW1lbnRcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIG1ha2VJbW11dGFibGU8VD4ob2JqZWN0OiBUKTogVCB7XG4gICAgLy8gQGlmbmRlZiBHRU5KU19QUk9EVUNUSU9OXG4gICAgaWYgKF8uaXNPYmplY3Qob2JqZWN0KSkge1xuICAgICAgICBfLmVhY2gob2JqZWN0LCAocHJvcGVydHkpID0+IG1ha2VJbW11dGFibGUocHJvcGVydHkpKTtcbiAgICAgICAgcmV0dXJuIE9iamVjdC5mcmVlemUob2JqZWN0KTtcbiAgICB9XG4gICAgLy8gQGVuZGlmXG5cbiAgICByZXR1cm4gb2JqZWN0O1xufVxuIl19

@@ -44,2 +44,1 @@ /// <reference types="angular" />

export declare function deepTraverse(tree: any, replacer: (value: any) => any): any;
//# sourceMappingURL=lang.d.ts.map

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

//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9jb3JlL3V0aWxzL2xhbmcudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFBQSwwQkFBNEI7QUFPNUI7Ozs7R0FJRztBQUNILFNBQWdCLGFBQWEsQ0FBQyxLQUFVO0lBQ3BDLElBQU0sT0FBTyxHQUFrQixLQUFLLENBQUM7SUFDckMsT0FBTyxDQUFDLENBQUMsT0FBTyxDQUFDLElBQUksSUFBSSxPQUFPLE9BQU8sQ0FBQyxJQUFJLEtBQUssVUFBVSxDQUFDO0FBQ2hFLENBQUM7QUFIRCxzQ0FHQztBQUVEOzs7O0dBSUc7QUFDSCxTQUFnQixZQUFZLENBQUMsS0FBVTtJQUNuQyxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLElBQUksS0FBSyxDQUFDLFNBQVMsQ0FBQztBQUNoRCxDQUFDO0FBRkQsb0NBRUM7QUFFRDs7OztHQUlHO0FBQ0gsU0FBZ0IsVUFBVSxDQUFDLEtBQVU7SUFDakMsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxJQUFJLEtBQUssQ0FBQyxNQUFNLENBQUM7QUFDN0MsQ0FBQztBQUZELGdDQUVDO0FBRUQ7Ozs7R0FJRztBQUNILFNBQWdCLHFCQUFxQixDQUFDLEtBQVU7SUFDNUMsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxJQUFJLEtBQUssQ0FBQyxJQUFJLENBQUM7QUFDM0MsQ0FBQztBQUZELHNEQUVDO0FBRUQ7Ozs7OztHQU1HO0FBQ0gsU0FBUyxNQUFNLENBQUMsTUFBVyxFQUFFLE1BQVc7SUFDcEMsR0FBRztRQUNDLE1BQU0sQ0FBQyxtQkFBbUIsQ0FBQyxNQUFNLENBQUMsQ0FBQyxPQUFPLENBQUMsVUFBQyxJQUFJO1lBQzVDLElBQUksSUFBSSxLQUFLLGFBQWEsSUFBSSxDQUFDLE1BQU0sQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLEVBQUU7Z0JBQ3hELE1BQU0sQ0FBQyxjQUFjLENBQUMsTUFBTSxFQUFFLElBQUksRUFBRSxNQUFNLENBQUMsd0JBQXdCLENBQUMsTUFBTSxFQUFFLElBQUksQ0FBQyxDQUFDLENBQUM7YUFDdEY7UUFDTCxDQUFDLENBQUMsQ0FBQztRQUVILG1CQUFtQjtRQUNuQixNQUFNLEdBQUcsTUFBTSxDQUFDLGNBQWMsQ0FBQyxNQUFNLENBQUMsQ0FBQztLQUMxQyxRQUFRLE1BQU0sQ0FBQyxjQUFjLENBQUMsTUFBTSxDQUFDLEtBQUssSUFBSSxFQUFFO0FBQ3JELENBQUM7QUFHRDs7Ozs7O0dBTUc7QUFDSCxTQUFnQixPQUFPLENBQUMsTUFBYSxFQUFFLGlCQUFrQztJQUFsQyxrQ0FBQSxFQUFBLHlCQUFrQztJQUNyRSx3RkFBd0Y7SUFDeEYsSUFBSSxJQUFJLEdBQUc7UUFBQSxpQkFZVjtRQVptQixjQUFjO2FBQWQsVUFBYyxFQUFkLHFCQUFjLEVBQWQsSUFBYztZQUFkLHlCQUFjOztRQUM5QixJQUFJLGlCQUFpQixFQUFFO1lBQ25CLDZEQUE2RDtZQUM3RCxDQUFDLENBQUMsR0FBRyxDQUFDLE1BQU0sRUFBRSxJQUFJLENBQUMsQ0FBQyxPQUFPLENBQUMsVUFBQyxFQUFrQjtvQkFBakIsYUFBSyxFQUFFLGlCQUFTO2dCQUMxQyxLQUFLLENBQUMsS0FBSyxDQUFDLEtBQUksRUFBRSxTQUFTLENBQUMsQ0FBQztZQUNqQyxDQUFDLENBQUMsQ0FBQztTQUNOO2FBQU07WUFDSCw2REFBNkQ7WUFDN0QsTUFBTSxDQUFDLE9BQU8sQ0FBQyxVQUFDLEtBQUs7Z0JBQ2pCLEtBQUssQ0FBQyxLQUFLLENBQUMsS0FBSSxFQUFFLElBQUksQ0FBQyxDQUFDO1lBQzVCLENBQUMsQ0FBQyxDQUFDO1NBQ047SUFDTCxDQUFDLENBQUM7SUFFRiw2RUFBNkU7SUFDN0UsZ0NBQWdDO0lBQ2hDLE1BQU0sQ0FBQyxPQUFPLENBQUMsVUFBQyxLQUFLO1FBQ2pCLE1BQU0sQ0FBQyxJQUFJLENBQUMsU0FBUyxFQUFFLEtBQUssQ0FBQyxTQUFTLENBQUMsQ0FBQztJQUM1QyxDQUFDLENBQUMsQ0FBQztJQUVILE9BQU8sSUFBSSxDQUFDO0FBQ2hCLENBQUM7QUF2QkQsMEJBdUJDO0FBRUQ7Ozs7R0FJRztBQUNILFNBQWdCLFlBQVksQ0FBQyxJQUFTLEVBQUUsUUFBNkI7SUFDakUsSUFBTSxlQUFlLEdBQUcsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBRXZDLElBQUksQ0FBQyxDQUFDLE9BQU8sQ0FBQyxlQUFlLENBQUMsRUFBRTtRQUM1QixPQUFPLENBQUMsQ0FBQyxHQUFHLENBQUMsZUFBZSxFQUFFLFVBQUMsT0FBTyxJQUFLLE9BQUEsWUFBWSxDQUFDLE9BQU8sRUFBRSxRQUFRLENBQUMsRUFBL0IsQ0FBK0IsQ0FBQyxDQUFDO0tBQy9FO0lBQ0QsSUFBSSxDQUFDLENBQUMsUUFBUSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsZUFBZSxDQUFDLEVBQUU7UUFDOUYsT0FBTyxDQUFDLENBQUMsU0FBUyxDQUFDLGVBQWUsRUFBRSxVQUFDLE9BQU8sSUFBSyxPQUFBLFlBQVksQ0FBQyxPQUFPLEVBQUUsUUFBUSxDQUFDLEVBQS9CLENBQStCLENBQUMsQ0FBQztLQUNyRjtJQUNELFlBQVk7SUFDWixPQUFPLGVBQWUsQ0FBQztBQUMzQixDQUFDO0FBWEQsb0NBV0MiLCJmaWxlIjoiY29yZS91dGlscy9sYW5nLmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgXyBmcm9tICdsb2Rhc2gnO1xuaW1wb3J0ICogYXMgaW1tdXRhYmxlIGZyb20gJ2ltbXV0YWJsZSc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgSnNvbmFibGUge1xuICAgIHRvSlNPTigpOiBhbnk7XG59XG5cbi8qKlxuICogUmV0dXJucyB0cnVlIGlmIHRoZSBnaXZlbiB2YWx1ZSBpcyBhIHByb21pc2UuXG4gKlxuICogQHBhcmFtIHZhbHVlIFZhbHVlIHRvIGNoZWNrXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBpc1Byb21pc2VMaWtlKHZhbHVlOiBhbnkpOiB2YWx1ZSBpcyBQcm9taXNlPGFueT4gfCBhbmd1bGFyLklQcm9taXNlPGFueT4ge1xuICAgIGNvbnN0IHByb21pc2UgPSA8UHJvbWlzZTxhbnk+PiB2YWx1ZTtcbiAgICByZXR1cm4gISFwcm9taXNlLnRoZW4gJiYgdHlwZW9mIHByb21pc2UudGhlbiA9PT0gJ2Z1bmN0aW9uJztcbn1cblxuLyoqXG4gKiBSZXR1cm5zIHRydWUgaWYgdGhlIGdpdmVuIHZhbHVlIGlzIGFuIG9ic2VydmFibGUuXG4gKlxuICogQHBhcmFtIHZhbHVlIFZhbHVlIHRvIGNoZWNrXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBpc09ic2VydmFibGUodmFsdWU6IGFueSk6IHZhbHVlIGlzIFJ4Lk9ic2VydmFibGU8YW55PiB7XG4gICAgcmV0dXJuIF8uaXNPYmplY3QodmFsdWUpICYmIHZhbHVlLnN1YnNjcmliZTtcbn1cblxuLyoqXG4gKiBSZXR1cm5zIHRydWUgaWYgdGhlIGdpdmVuIHZhbHVlIGhhcyBhIGB0b0pTT05gIG1ldGhvZC5cbiAqXG4gKiBAcGFyYW0gdmFsdWUgVmFsdWUgdG8gY2hlY2tcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGlzSnNvbmFibGUodmFsdWU6IGFueSk6IHZhbHVlIGlzIEpzb25hYmxlIHtcbiAgICByZXR1cm4gXy5pc09iamVjdCh2YWx1ZSkgJiYgdmFsdWUudG9KU09OO1xufVxuXG4vKipcbiAqIFJldHVybnMgdHJ1ZSBpZiB0aGUgZ2l2ZW4gdmFsdWUgaXMgYW4gSW1tdXRhYmxlLmpzIGNvbGxlY3Rpb24uXG4gKlxuICogQHBhcmFtIHZhbHVlIFZhbHVlIHRvIGNoZWNrXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBpc0ltbXV0YWJsZUNvbGxlY3Rpb24odmFsdWU6IGFueSk6IHZhbHVlIGlzIGltbXV0YWJsZS5Db2xsZWN0aW9uPGFueSwgYW55PiB7XG4gICAgcmV0dXJuIF8uaXNPYmplY3QodmFsdWUpICYmIHZhbHVlLnRvSlM7XG59XG5cbi8qKlxuICogQ29weSBwcm9wZXJ0aWVzIG9mIHNvdXJjZSBvYmplY3QgdG8gdGFyZ2V0IG9iamVjdCBleGNsdWRpbmcgY29uc3RydWN0b3IuXG4gKiBJZiBhIHByb3BlcnR5IHdpdGggdGhlIHNhbWUgZXhpc3RzIG9uIHRoZSB0YXJnZXQgaXQgaXMgTk9UIG92ZXJ3cml0dGVuLlxuICpcbiAqIEBwYXJhbSB0YXJnZXRcbiAqIEBwYXJhbSBzb3VyY2VcbiAqL1xuZnVuY3Rpb24gZXh0ZW5kKHRhcmdldDogYW55LCBzb3VyY2U6IGFueSkge1xuICAgIGRvIHtcbiAgICAgICAgT2JqZWN0LmdldE93blByb3BlcnR5TmFtZXMoc291cmNlKS5mb3JFYWNoKChuYW1lKSA9PiB7XG4gICAgICAgICAgICBpZiAobmFtZSAhPT0gJ2NvbnN0cnVjdG9yJyAmJiAhdGFyZ2V0Lmhhc093blByb3BlcnR5KG5hbWUpKSB7XG4gICAgICAgICAgICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KHRhcmdldCwgbmFtZSwgT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihzb3VyY2UsIG5hbWUpKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG5cbiAgICAgICAgLy8gUmVjdXJzZSB1cHdhcmRzLlxuICAgICAgICBzb3VyY2UgPSBPYmplY3QuZ2V0UHJvdG90eXBlT2Yoc291cmNlKTtcbiAgICB9IHdoaWxlIChPYmplY3QuZ2V0UHJvdG90eXBlT2Yoc291cmNlKSAhPT0gbnVsbCk7XG59XG5cblxuLyoqXG4gKiBDcmVhdGUgYSBjb25zdHJ1Y3RvciBmdW5jdGlvbiBmb3IgYSBjbGFzcyBpbXBsZW1lbnRpbmcgdGhlIGdpdmVuIG1peGlucy5cbiAqXG4gKiBAcGFyYW0gbWl4aW5zIEFycmF5IG9mIGNsYXNzZXMgdG8gYmUgbWl4ZWQgdG9nZXRoZXJcbiAqIEBwYXJhbSBzZXBhcmF0ZUFyZ3VtZW50cyBTaG91bGQgdGhlIG5ldyBjb25zdHJ1Y3QgYWNjZXB0IHNlcGFyYXRlIGFyZ3VtZW50c1xuICogQHJldHVybiBBIGNvbnN0cnVjdG9yIGZ1bmN0aW9uXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBjb21wb3NlKG1peGluczogYW55W10sIHNlcGFyYXRlQXJndW1lbnRzOiBib29sZWFuID0gZmFsc2UpIHtcbiAgICAvLyBDb25zdHJ1Y3RvciBmdW5jdGlvbiB0aGF0IHdpbGwgYmUgY2FsbGVkIGV2ZXJ5IHRpbWUgYSBuZXcgY29tcG9zZWQgb2JqZWN0IGlzIGNyZWF0ZWQuXG4gICAgbGV0IGN0b3IgPSBmdW5jdGlvbiguLi5hcmdzOiBhbnlbXSkge1xuICAgICAgICBpZiAoc2VwYXJhdGVBcmd1bWVudHMpIHtcbiAgICAgICAgICAgIC8vIENhbGwgZWFjaCBjb25zdHJ1Y3Rpb24gZnVuY3Rpb24gd2l0aCByZXNwZWN0aXZlIGFyZ3VtZW50cy5cbiAgICAgICAgICAgIF8uemlwKG1peGlucywgYXJncykuZm9yRWFjaCgoW21peGluLCBtaXhpbkFyZ3NdKSA9PiB7XG4gICAgICAgICAgICAgICAgbWl4aW4uYXBwbHkodGhpcywgbWl4aW5BcmdzKTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgLy8gQ2FsbCB0aGUgY29uc3RydWN0b3IgZnVuY3Rpb24gb2YgYWxsIHRoZSBtaXhpbnMsIGluIG9yZGVyLlxuICAgICAgICAgICAgbWl4aW5zLmZvckVhY2goKG1peGluKSA9PiB7XG4gICAgICAgICAgICAgICAgbWl4aW4uYXBwbHkodGhpcywgYXJncyk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgIH07XG5cbiAgICAvLyBBZGQgYWxsIG1peGlucyBwcm9wZXJ0aWVzIGFuZCBtZXRob2RzIHRvIHRoZSBjb25zdHJ1Y3RvciBwcm90b3R5cGUgZm9yIGFsbFxuICAgIC8vIGNyZWF0ZWQgb2JqZWN0cyB0byBoYXZlIHRoZW0uXG4gICAgbWl4aW5zLmZvckVhY2goKG1peGluKSA9PiB7XG4gICAgICAgIGV4dGVuZChjdG9yLnByb3RvdHlwZSwgbWl4aW4ucHJvdG90eXBlKTtcbiAgICB9KTtcblxuICAgIHJldHVybiBjdG9yO1xufVxuXG4vKipcbiAqIFRyYXZlcnNlIGFuZCB0cmFuc2Zvcm0gb2JqZWN0cyBieSB2aXNpdGluZyBldmVyeSBub2RlIG9uIGEgcmVjdXJzaXZlIHdhbGsuXG4gKiBUaGlzIGlzIG5lZWRlZCBiZWNhdXNlIGBfLmNsb25lRGVlcCh2YWx1ZSwgcmVwbGFjZXIpYCBkcm9wcyBvYmplY3Qga2V5cyB3aGVuXG4gKiByZXBsYWNlciByZXR1cm5zIGB1bmRlZmluZWRgLlxuICovXG5leHBvcnQgZnVuY3Rpb24gZGVlcFRyYXZlcnNlKHRyZWU6IGFueSwgcmVwbGFjZXI6ICh2YWx1ZTogYW55KSA9PiBhbnkpOiBhbnkge1xuICAgIGNvbnN0IHRyYW5zZm9ybWVkVHJlZSA9IHJlcGxhY2VyKHRyZWUpO1xuXG4gICAgaWYgKF8uaXNBcnJheSh0cmFuc2Zvcm1lZFRyZWUpKSB7XG4gICAgICAgIHJldHVybiBfLm1hcCh0cmFuc2Zvcm1lZFRyZWUsIChlbGVtZW50KSA9PiBkZWVwVHJhdmVyc2UoZWxlbWVudCwgcmVwbGFjZXIpKTtcbiAgICB9XG4gICAgaWYgKF8uaXNPYmplY3QodHJhbnNmb3JtZWRUcmVlKSAmJiAhXy5pc0Z1bmN0aW9uKHRyYW5zZm9ybWVkVHJlZSkgJiYgIV8uaXNBcnJheSh0cmFuc2Zvcm1lZFRyZWUpKSB7XG4gICAgICAgIHJldHVybiBfLm1hcFZhbHVlcyh0cmFuc2Zvcm1lZFRyZWUsIChlbGVtZW50KSA9PiBkZWVwVHJhdmVyc2UoZWxlbWVudCwgcmVwbGFjZXIpKTtcbiAgICB9XG4gICAgLy8gTGVhZiBub2RlXG4gICAgcmV0dXJuIHRyYW5zZm9ybWVkVHJlZTtcbn1cbiJdfQ==
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9jb3JlL3V0aWxzL2xhbmcudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFBQSwwQkFBNEI7QUFPNUI7Ozs7R0FJRztBQUNILHVCQUE4QixLQUFVO0lBQ3BDLElBQU0sT0FBTyxHQUFrQixLQUFLLENBQUM7SUFDckMsT0FBTyxDQUFDLENBQUMsT0FBTyxDQUFDLElBQUksSUFBSSxPQUFPLE9BQU8sQ0FBQyxJQUFJLEtBQUssVUFBVSxDQUFDO0FBQ2hFLENBQUM7QUFIRCxzQ0FHQztBQUVEOzs7O0dBSUc7QUFDSCxzQkFBNkIsS0FBVTtJQUNuQyxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLElBQUksS0FBSyxDQUFDLFNBQVMsQ0FBQztBQUNoRCxDQUFDO0FBRkQsb0NBRUM7QUFFRDs7OztHQUlHO0FBQ0gsb0JBQTJCLEtBQVU7SUFDakMsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxJQUFJLEtBQUssQ0FBQyxNQUFNLENBQUM7QUFDN0MsQ0FBQztBQUZELGdDQUVDO0FBRUQ7Ozs7R0FJRztBQUNILCtCQUFzQyxLQUFVO0lBQzVDLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsSUFBSSxLQUFLLENBQUMsSUFBSSxDQUFDO0FBQzNDLENBQUM7QUFGRCxzREFFQztBQUVEOzs7Ozs7R0FNRztBQUNILGdCQUFnQixNQUFXLEVBQUUsTUFBVztJQUNwQyxHQUFHO1FBQ0MsTUFBTSxDQUFDLG1CQUFtQixDQUFDLE1BQU0sQ0FBQyxDQUFDLE9BQU8sQ0FBQyxVQUFDLElBQUk7WUFDNUMsSUFBSSxJQUFJLEtBQUssYUFBYSxJQUFJLENBQUMsTUFBTSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsRUFBRTtnQkFDeEQsTUFBTSxDQUFDLGNBQWMsQ0FBQyxNQUFNLEVBQUUsSUFBSSxFQUFFLE1BQU0sQ0FBQyx3QkFBd0IsQ0FBQyxNQUFNLEVBQUUsSUFBSSxDQUFDLENBQUMsQ0FBQzthQUN0RjtRQUNMLENBQUMsQ0FBQyxDQUFDO1FBRUgsbUJBQW1CO1FBQ25CLE1BQU0sR0FBRyxNQUFNLENBQUMsY0FBYyxDQUFDLE1BQU0sQ0FBQyxDQUFDO0tBQzFDLFFBQVEsTUFBTSxDQUFDLGNBQWMsQ0FBQyxNQUFNLENBQUMsS0FBSyxJQUFJLEVBQUU7QUFDckQsQ0FBQztBQUdEOzs7Ozs7R0FNRztBQUNILGlCQUF3QixNQUFhLEVBQUUsaUJBQWtDO0lBQWxDLGtDQUFBLEVBQUEseUJBQWtDO0lBQ3JFLHdGQUF3RjtJQUN4RixJQUFJLElBQUksR0FBRztRQUFBLGlCQVlWO1FBWm1CLGNBQWM7YUFBZCxVQUFjLEVBQWQscUJBQWMsRUFBZCxJQUFjO1lBQWQseUJBQWM7O1FBQzlCLElBQUksaUJBQWlCLEVBQUU7WUFDbkIsNkRBQTZEO1lBQzdELENBQUMsQ0FBQyxHQUFHLENBQUMsTUFBTSxFQUFFLElBQUksQ0FBQyxDQUFDLE9BQU8sQ0FBQyxVQUFDLEVBQWtCO29CQUFqQixhQUFLLEVBQUUsaUJBQVM7Z0JBQzFDLEtBQUssQ0FBQyxLQUFLLENBQUMsS0FBSSxFQUFFLFNBQVMsQ0FBQyxDQUFDO1lBQ2pDLENBQUMsQ0FBQyxDQUFDO1NBQ047YUFBTTtZQUNILDZEQUE2RDtZQUM3RCxNQUFNLENBQUMsT0FBTyxDQUFDLFVBQUMsS0FBSztnQkFDakIsS0FBSyxDQUFDLEtBQUssQ0FBQyxLQUFJLEVBQUUsSUFBSSxDQUFDLENBQUM7WUFDNUIsQ0FBQyxDQUFDLENBQUM7U0FDTjtJQUNMLENBQUMsQ0FBQztJQUVGLDZFQUE2RTtJQUM3RSxnQ0FBZ0M7SUFDaEMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxVQUFDLEtBQUs7UUFDakIsTUFBTSxDQUFDLElBQUksQ0FBQyxTQUFTLEVBQUUsS0FBSyxDQUFDLFNBQVMsQ0FBQyxDQUFDO0lBQzVDLENBQUMsQ0FBQyxDQUFDO0lBRUgsT0FBTyxJQUFJLENBQUM7QUFDaEIsQ0FBQztBQXZCRCwwQkF1QkM7QUFFRDs7OztHQUlHO0FBQ0gsc0JBQTZCLElBQVMsRUFBRSxRQUE2QjtJQUNqRSxJQUFNLGVBQWUsR0FBRyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUM7SUFFdkMsSUFBSSxDQUFDLENBQUMsT0FBTyxDQUFDLGVBQWUsQ0FBQyxFQUFFO1FBQzVCLE9BQU8sQ0FBQyxDQUFDLEdBQUcsQ0FBQyxlQUFlLEVBQUUsVUFBQyxPQUFPLElBQUssT0FBQSxZQUFZLENBQUMsT0FBTyxFQUFFLFFBQVEsQ0FBQyxFQUEvQixDQUErQixDQUFDLENBQUM7S0FDL0U7SUFDRCxJQUFJLENBQUMsQ0FBQyxRQUFRLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxlQUFlLENBQUMsRUFBRTtRQUM5RixPQUFPLENBQUMsQ0FBQyxTQUFTLENBQUMsZUFBZSxFQUFFLFVBQUMsT0FBTyxJQUFLLE9BQUEsWUFBWSxDQUFDLE9BQU8sRUFBRSxRQUFRLENBQUMsRUFBL0IsQ0FBK0IsQ0FBQyxDQUFDO0tBQ3JGO0lBQ0QsWUFBWTtJQUNaLE9BQU8sZUFBZSxDQUFDO0FBQzNCLENBQUM7QUFYRCxvQ0FXQyIsImZpbGUiOiJjb3JlL3V0aWxzL2xhbmcuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyBfIGZyb20gJ2xvZGFzaCc7XG5pbXBvcnQgKiBhcyBpbW11dGFibGUgZnJvbSAnaW1tdXRhYmxlJztcblxuZXhwb3J0IGludGVyZmFjZSBKc29uYWJsZSB7XG4gICAgdG9KU09OKCk6IGFueTtcbn1cblxuLyoqXG4gKiBSZXR1cm5zIHRydWUgaWYgdGhlIGdpdmVuIHZhbHVlIGlzIGEgcHJvbWlzZS5cbiAqXG4gKiBAcGFyYW0gdmFsdWUgVmFsdWUgdG8gY2hlY2tcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGlzUHJvbWlzZUxpa2UodmFsdWU6IGFueSk6IHZhbHVlIGlzIFByb21pc2U8YW55PiB8IGFuZ3VsYXIuSVByb21pc2U8YW55PiB7XG4gICAgY29uc3QgcHJvbWlzZSA9IDxQcm9taXNlPGFueT4+IHZhbHVlO1xuICAgIHJldHVybiAhIXByb21pc2UudGhlbiAmJiB0eXBlb2YgcHJvbWlzZS50aGVuID09PSAnZnVuY3Rpb24nO1xufVxuXG4vKipcbiAqIFJldHVybnMgdHJ1ZSBpZiB0aGUgZ2l2ZW4gdmFsdWUgaXMgYW4gb2JzZXJ2YWJsZS5cbiAqXG4gKiBAcGFyYW0gdmFsdWUgVmFsdWUgdG8gY2hlY2tcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGlzT2JzZXJ2YWJsZSh2YWx1ZTogYW55KTogdmFsdWUgaXMgUnguT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICByZXR1cm4gXy5pc09iamVjdCh2YWx1ZSkgJiYgdmFsdWUuc3Vic2NyaWJlO1xufVxuXG4vKipcbiAqIFJldHVybnMgdHJ1ZSBpZiB0aGUgZ2l2ZW4gdmFsdWUgaGFzIGEgYHRvSlNPTmAgbWV0aG9kLlxuICpcbiAqIEBwYXJhbSB2YWx1ZSBWYWx1ZSB0byBjaGVja1xuICovXG5leHBvcnQgZnVuY3Rpb24gaXNKc29uYWJsZSh2YWx1ZTogYW55KTogdmFsdWUgaXMgSnNvbmFibGUge1xuICAgIHJldHVybiBfLmlzT2JqZWN0KHZhbHVlKSAmJiB2YWx1ZS50b0pTT047XG59XG5cbi8qKlxuICogUmV0dXJucyB0cnVlIGlmIHRoZSBnaXZlbiB2YWx1ZSBpcyBhbiBJbW11dGFibGUuanMgY29sbGVjdGlvbi5cbiAqXG4gKiBAcGFyYW0gdmFsdWUgVmFsdWUgdG8gY2hlY2tcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGlzSW1tdXRhYmxlQ29sbGVjdGlvbih2YWx1ZTogYW55KTogdmFsdWUgaXMgaW1tdXRhYmxlLkNvbGxlY3Rpb248YW55LCBhbnk+IHtcbiAgICByZXR1cm4gXy5pc09iamVjdCh2YWx1ZSkgJiYgdmFsdWUudG9KUztcbn1cblxuLyoqXG4gKiBDb3B5IHByb3BlcnRpZXMgb2Ygc291cmNlIG9iamVjdCB0byB0YXJnZXQgb2JqZWN0IGV4Y2x1ZGluZyBjb25zdHJ1Y3Rvci5cbiAqIElmIGEgcHJvcGVydHkgd2l0aCB0aGUgc2FtZSBleGlzdHMgb24gdGhlIHRhcmdldCBpdCBpcyBOT1Qgb3ZlcndyaXR0ZW4uXG4gKlxuICogQHBhcmFtIHRhcmdldFxuICogQHBhcmFtIHNvdXJjZVxuICovXG5mdW5jdGlvbiBleHRlbmQodGFyZ2V0OiBhbnksIHNvdXJjZTogYW55KSB7XG4gICAgZG8ge1xuICAgICAgICBPYmplY3QuZ2V0T3duUHJvcGVydHlOYW1lcyhzb3VyY2UpLmZvckVhY2goKG5hbWUpID0+IHtcbiAgICAgICAgICAgIGlmIChuYW1lICE9PSAnY29uc3RydWN0b3InICYmICF0YXJnZXQuaGFzT3duUHJvcGVydHkobmFtZSkpIHtcbiAgICAgICAgICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkodGFyZ2V0LCBuYW1lLCBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKHNvdXJjZSwgbmFtZSkpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcblxuICAgICAgICAvLyBSZWN1cnNlIHVwd2FyZHMuXG4gICAgICAgIHNvdXJjZSA9IE9iamVjdC5nZXRQcm90b3R5cGVPZihzb3VyY2UpO1xuICAgIH0gd2hpbGUgKE9iamVjdC5nZXRQcm90b3R5cGVPZihzb3VyY2UpICE9PSBudWxsKTtcbn1cblxuXG4vKipcbiAqIENyZWF0ZSBhIGNvbnN0cnVjdG9yIGZ1bmN0aW9uIGZvciBhIGNsYXNzIGltcGxlbWVudGluZyB0aGUgZ2l2ZW4gbWl4aW5zLlxuICpcbiAqIEBwYXJhbSBtaXhpbnMgQXJyYXkgb2YgY2xhc3NlcyB0byBiZSBtaXhlZCB0b2dldGhlclxuICogQHBhcmFtIHNlcGFyYXRlQXJndW1lbnRzIFNob3VsZCB0aGUgbmV3IGNvbnN0cnVjdCBhY2NlcHQgc2VwYXJhdGUgYXJndW1lbnRzXG4gKiBAcmV0dXJuIEEgY29uc3RydWN0b3IgZnVuY3Rpb25cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGNvbXBvc2UobWl4aW5zOiBhbnlbXSwgc2VwYXJhdGVBcmd1bWVudHM6IGJvb2xlYW4gPSBmYWxzZSkge1xuICAgIC8vIENvbnN0cnVjdG9yIGZ1bmN0aW9uIHRoYXQgd2lsbCBiZSBjYWxsZWQgZXZlcnkgdGltZSBhIG5ldyBjb21wb3NlZCBvYmplY3QgaXMgY3JlYXRlZC5cbiAgICBsZXQgY3RvciA9IGZ1bmN0aW9uKC4uLmFyZ3M6IGFueVtdKSB7XG4gICAgICAgIGlmIChzZXBhcmF0ZUFyZ3VtZW50cykge1xuICAgICAgICAgICAgLy8gQ2FsbCBlYWNoIGNvbnN0cnVjdGlvbiBmdW5jdGlvbiB3aXRoIHJlc3BlY3RpdmUgYXJndW1lbnRzLlxuICAgICAgICAgICAgXy56aXAobWl4aW5zLCBhcmdzKS5mb3JFYWNoKChbbWl4aW4sIG1peGluQXJnc10pID0+IHtcbiAgICAgICAgICAgICAgICBtaXhpbi5hcHBseSh0aGlzLCBtaXhpbkFyZ3MpO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAvLyBDYWxsIHRoZSBjb25zdHJ1Y3RvciBmdW5jdGlvbiBvZiBhbGwgdGhlIG1peGlucywgaW4gb3JkZXIuXG4gICAgICAgICAgICBtaXhpbnMuZm9yRWFjaCgobWl4aW4pID0+IHtcbiAgICAgICAgICAgICAgICBtaXhpbi5hcHBseSh0aGlzLCBhcmdzKTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgfTtcblxuICAgIC8vIEFkZCBhbGwgbWl4aW5zIHByb3BlcnRpZXMgYW5kIG1ldGhvZHMgdG8gdGhlIGNvbnN0cnVjdG9yIHByb3RvdHlwZSBmb3IgYWxsXG4gICAgLy8gY3JlYXRlZCBvYmplY3RzIHRvIGhhdmUgdGhlbS5cbiAgICBtaXhpbnMuZm9yRWFjaCgobWl4aW4pID0+IHtcbiAgICAgICAgZXh0ZW5kKGN0b3IucHJvdG90eXBlLCBtaXhpbi5wcm90b3R5cGUpO1xuICAgIH0pO1xuXG4gICAgcmV0dXJuIGN0b3I7XG59XG5cbi8qKlxuICogVHJhdmVyc2UgYW5kIHRyYW5zZm9ybSBvYmplY3RzIGJ5IHZpc2l0aW5nIGV2ZXJ5IG5vZGUgb24gYSByZWN1cnNpdmUgd2Fsay5cbiAqIFRoaXMgaXMgbmVlZGVkIGJlY2F1c2UgYF8uY2xvbmVEZWVwKHZhbHVlLCByZXBsYWNlcilgIGRyb3BzIG9iamVjdCBrZXlzIHdoZW5cbiAqIHJlcGxhY2VyIHJldHVybnMgYHVuZGVmaW5lZGAuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBkZWVwVHJhdmVyc2UodHJlZTogYW55LCByZXBsYWNlcjogKHZhbHVlOiBhbnkpID0+IGFueSk6IGFueSB7XG4gICAgY29uc3QgdHJhbnNmb3JtZWRUcmVlID0gcmVwbGFjZXIodHJlZSk7XG5cbiAgICBpZiAoXy5pc0FycmF5KHRyYW5zZm9ybWVkVHJlZSkpIHtcbiAgICAgICAgcmV0dXJuIF8ubWFwKHRyYW5zZm9ybWVkVHJlZSwgKGVsZW1lbnQpID0+IGRlZXBUcmF2ZXJzZShlbGVtZW50LCByZXBsYWNlcikpO1xuICAgIH1cbiAgICBpZiAoXy5pc09iamVjdCh0cmFuc2Zvcm1lZFRyZWUpICYmICFfLmlzRnVuY3Rpb24odHJhbnNmb3JtZWRUcmVlKSAmJiAhXy5pc0FycmF5KHRyYW5zZm9ybWVkVHJlZSkpIHtcbiAgICAgICAgcmV0dXJuIF8ubWFwVmFsdWVzKHRyYW5zZm9ybWVkVHJlZSwgKGVsZW1lbnQpID0+IGRlZXBUcmF2ZXJzZShlbGVtZW50LCByZXBsYWNlcikpO1xuICAgIH1cbiAgICAvLyBMZWFmIG5vZGVcbiAgICByZXR1cm4gdHJhbnNmb3JtZWRUcmVlO1xufVxuIl19

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

export declare function randomUuid(): string;
//# sourceMappingURL=random.d.ts.map

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

//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9jb3JlL3V0aWxzL3JhbmRvbS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUFBOztHQUVHO0FBQ0gsU0FBZ0IsVUFBVTtJQUN0QixxRUFBcUU7SUFDckUsT0FBTyxzQ0FBc0MsQ0FBQyxPQUFPLENBQUMsT0FBTyxFQUFFLFVBQUMsQ0FBQztRQUM3RCxJQUFJLENBQUMsR0FBRyxNQUFNLENBQUMsZUFBZSxDQUFDLElBQUksVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsRUFBRSxHQUFHLENBQUMsQ0FBQztRQUM5RCxJQUFJLENBQUMsR0FBRyxDQUFDLEtBQUssR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLEdBQUcsR0FBRyxHQUFHLENBQUMsQ0FBQztRQUN4QyxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDLENBQUM7SUFDMUIsQ0FBQyxDQUFDLENBQUM7QUFDUCxDQUFDO0FBUEQsZ0NBT0MiLCJmaWxlIjoiY29yZS91dGlscy9yYW5kb20uanMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEdlbmVyYXRlcyBhIHJhbmRvbSBVVUlEIHN0cmluZy5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHJhbmRvbVV1aWQoKTogc3RyaW5nIHtcbiAgICAvLyBUT0RPOiBTdXBwb3J0IGNhc2VzIHdoZXJlIGNyeXB0by5nZXRSYW5kb21WYWx1ZXMgaXMgbm90IHN1cHBvcnRlZC5cbiAgICByZXR1cm4gJ3h4eHh4eHh4LXh4eHgtNHh4eC15eHh4LXh4eHh4eHh4eHh4eCcucmVwbGFjZSgvW3h5XS9nLCAoYykgPT4ge1xuICAgICAgICBsZXQgciA9IGNyeXB0by5nZXRSYW5kb21WYWx1ZXMobmV3IFVpbnQ4QXJyYXkoMSkpWzBdICUgMTYgfCAwO1xuICAgICAgICBsZXQgdiA9IGMgPT09ICd4JyA/IHIgOiAociAmIDB4MyB8IDB4OCk7XG4gICAgICAgIHJldHVybiB2LnRvU3RyaW5nKDE2KTtcbiAgICB9KTtcbn1cbiJdfQ==
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9jb3JlL3V0aWxzL3JhbmRvbS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUFBOztHQUVHO0FBQ0g7SUFDSSxxRUFBcUU7SUFDckUsT0FBTyxzQ0FBc0MsQ0FBQyxPQUFPLENBQUMsT0FBTyxFQUFFLFVBQUMsQ0FBQztRQUM3RCxJQUFJLENBQUMsR0FBRyxNQUFNLENBQUMsZUFBZSxDQUFDLElBQUksVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsRUFBRSxHQUFHLENBQUMsQ0FBQztRQUM5RCxJQUFJLENBQUMsR0FBRyxDQUFDLEtBQUssR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLEdBQUcsR0FBRyxHQUFHLENBQUMsQ0FBQztRQUN4QyxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDLENBQUM7SUFDMUIsQ0FBQyxDQUFDLENBQUM7QUFDUCxDQUFDO0FBUEQsZ0NBT0MiLCJmaWxlIjoiY29yZS91dGlscy9yYW5kb20uanMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEdlbmVyYXRlcyBhIHJhbmRvbSBVVUlEIHN0cmluZy5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHJhbmRvbVV1aWQoKTogc3RyaW5nIHtcbiAgICAvLyBUT0RPOiBTdXBwb3J0IGNhc2VzIHdoZXJlIGNyeXB0by5nZXRSYW5kb21WYWx1ZXMgaXMgbm90IHN1cHBvcnRlZC5cbiAgICByZXR1cm4gJ3h4eHh4eHh4LXh4eHgtNHh4eC15eHh4LXh4eHh4eHh4eHh4eCcucmVwbGFjZSgvW3h5XS9nLCAoYykgPT4ge1xuICAgICAgICBsZXQgciA9IGNyeXB0by5nZXRSYW5kb21WYWx1ZXMobmV3IFVpbnQ4QXJyYXkoMSkpWzBdICUgMTYgfCAwO1xuICAgICAgICBsZXQgdiA9IGMgPT09ICd4JyA/IHIgOiAociAmIDB4MyB8IDB4OCk7XG4gICAgICAgIHJldHVybiB2LnRvU3RyaW5nKDE2KTtcbiAgICB9KTtcbn1cbiJdfQ==

@@ -19,2 +19,1 @@ export declare class SerializationError extends Error {

export declare function verboseSerialize(tree: any): any;
//# sourceMappingURL=serialization.d.ts.map
"use strict";
var __extends = (this && this.__extends) || (function () {
var extendStatics = function (d, b) {
extendStatics = Object.setPrototypeOf ||
({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
return extendStatics(d, b);
}
var extendStatics = Object.setPrototypeOf ||
({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
return function (d, b) {

@@ -114,2 +111,2 @@ extendStatics(d, b);

//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9jb3JlL3V0aWxzL3NlcmlhbGl6YXRpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsMEJBQTRCO0FBQzVCLCtCQUFvQztBQUVwQztJQUF3QyxzQ0FBSztJQUN6Qyw0QkFBWSxPQUFlLEVBQVMsZUFBdUI7UUFBM0QsWUFDSSxrQkFBTSxPQUFPLENBQUMsU0FHakI7UUFKbUMscUJBQWUsR0FBZixlQUFlLENBQVE7UUFFdkQsZ0lBQWdJO1FBQ2hJLE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDLEtBQUksRUFBRSxrQkFBa0IsQ0FBQyxTQUFTLENBQUMsQ0FBQzs7SUFDakUsQ0FBQztJQUNMLHlCQUFDO0FBQUQsQ0FOQSxBQU1DLENBTnVDLEtBQUssR0FNNUM7QUFOWSxnREFBa0I7QUFRL0IsSUFBTSxpQkFBaUIsR0FBRztJQUN0QixlQUFlLEVBQUUsSUFBSTtJQUNyQixjQUFjLEVBQUUsSUFBSTtJQUNwQixlQUFlLEVBQUUsSUFBSTtJQUNyQixTQUFTLEVBQUUsSUFBSTtDQUNsQixDQUFDO0FBQ0YsbUVBQW1FO0FBQ25FO0lBQUUsSUFBSSxDQUFDLFNBQXNDLENBQUM7SUFBQyxJQUFNLEdBQUcsR0FBRyw2QkFBNkIsQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUFDLElBQUksQ0FBQyxTQUFZLENBQUM7SUFBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQztDQUFFO0FBRWpJLFNBQVMsNkJBQTZCLENBQUksS0FBUTtJQUM5QyxJQUFJLE9BQU8sS0FBSyxLQUFLLFdBQVc7UUFBRSxPQUFPLGVBQWUsQ0FBQztJQUN6RCxJQUFJLE9BQU8sS0FBSyxLQUFLLFFBQVEsSUFBSSxLQUFLLEtBQUssUUFBUTtRQUFFLE9BQU8sY0FBYyxDQUFDO0lBQzNFLElBQUksT0FBTyxLQUFLLEtBQUssUUFBUSxJQUFJLEtBQUssS0FBSyxDQUFDLFFBQVE7UUFBRSxPQUFPLGVBQWUsQ0FBQztJQUM3RSxJQUFJLE9BQU8sS0FBSyxLQUFLLFFBQVEsSUFBSSxLQUFLLENBQUMsS0FBSyxDQUFDO1FBQUUsT0FBTyxTQUFTLENBQUM7SUFDaEUsT0FBTyxLQUFLLENBQUM7QUFDakIsQ0FBQztBQUVELFNBQVMseUJBQXlCLENBQUksS0FBeUM7SUFDM0UsSUFBSSxLQUFLLEtBQUssZUFBZTtRQUFFLE9BQU8sU0FBUyxDQUFDO0lBQ2hELElBQUksS0FBSyxLQUFLLGNBQWM7UUFBRSxPQUFPLFFBQVEsQ0FBQztJQUM5QyxJQUFJLEtBQUssS0FBSyxlQUFlO1FBQUUsT0FBTyxDQUFDLFFBQVEsQ0FBQztJQUNoRCxJQUFJLEtBQUssS0FBSyxTQUFTO1FBQUUsT0FBTyxHQUFHLENBQUM7SUFDcEMsT0FBTyxLQUFLLENBQUM7QUFDakIsQ0FBQztBQUVEOzs7O0dBSUc7QUFDSCxTQUFnQixzQkFBc0IsQ0FBQyxJQUFTO0lBQzVDLElBQU0sTUFBTSxHQUFHLG1CQUFZLENBQUMsSUFBSSxFQUFFLFVBQUMsS0FBSztRQUNwQyx1REFBdUQ7UUFDdkQsSUFBSSxPQUFPLEtBQUssS0FBSyxVQUFVLEVBQUU7WUFDN0IsTUFBTSxJQUFJLGtCQUFrQixDQUFDLGlDQUFpQyxFQUFFLEtBQUssQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDO1NBQ3JGO1FBQ0QsSUFBSSxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsYUFBYSxDQUFDLEtBQUssQ0FBQyxFQUFFO1lBQzNGLE1BQU0sSUFBSSxrQkFBa0IsQ0FBQyxtRUFBbUUsRUFBRSxnQkFBZ0IsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO1NBQzlIO1FBQ0QsSUFBSSxPQUFPLEtBQUssS0FBSyxRQUFRLElBQUksaUJBQWlCLENBQUMsY0FBYyxDQUFDLEtBQUssQ0FBQyxFQUFFO1lBQ3RFLE1BQU0sSUFBSSxrQkFBa0IsQ0FBQyxxREFBcUQsRUFBRSxLQUFLLENBQUMsQ0FBQztTQUM5RjtRQUNELE9BQU8sNkJBQTZCLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDaEQsQ0FBQyxDQUFDLENBQUM7SUFFSCxJQUFJLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyx1QkFBdUIsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLElBQUksQ0FBQyxFQUFFO1FBQy9FLGlEQUFpRDtRQUNqRCxNQUFNLElBQUksa0JBQWtCLENBQUMscUNBQXFDLEVBQUUsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztLQUMvRjtJQUVELE9BQU8sTUFBTSxDQUFDO0FBQ2xCLENBQUM7QUFyQkQsd0RBcUJDO0FBRUQ7O0dBRUc7QUFDSCxTQUFnQix1QkFBdUIsQ0FBQyxJQUFTO0lBQzdDLE9BQU8sbUJBQVksQ0FBQyxJQUFJLEVBQUUsVUFBQyxLQUFLO1FBQzVCLE9BQU8seUJBQXlCLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDNUMsQ0FBQyxDQUFDLENBQUM7QUFDUCxDQUFDO0FBSkQsMERBSUM7QUFFRDs7R0FFRztBQUNILFNBQWdCLGdCQUFnQixDQUFDLElBQVM7SUFDdEMsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksRUFBRSxVQUFDLEdBQUcsRUFBRSxLQUFLO1FBQ25DLDhDQUE4QztRQUM5QyxJQUFJLE9BQU8sS0FBSyxLQUFLLFVBQVU7WUFBRSxPQUFPLEtBQUssQ0FBQyxRQUFRLEVBQUUsQ0FBQztRQUN6RCxPQUFPLDZCQUE2QixDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ2hELENBQUMsQ0FBQyxDQUFDO0FBQ1AsQ0FBQztBQU5ELDRDQU1DIiwiZmlsZSI6ImNvcmUvdXRpbHMvc2VyaWFsaXphdGlvbi5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIF8gZnJvbSAnbG9kYXNoJztcbmltcG9ydCB7ZGVlcFRyYXZlcnNlfSBmcm9tICcuL2xhbmcnO1xuXG5leHBvcnQgY2xhc3MgU2VyaWFsaXphdGlvbkVycm9yIGV4dGVuZHMgRXJyb3Ige1xuICAgIGNvbnN0cnVjdG9yKG1lc3NhZ2U6IHN0cmluZywgcHVibGljIHNlcmlhbGl6ZWRWYWx1ZTogc3RyaW5nKSB7XG4gICAgICAgIHN1cGVyKG1lc3NhZ2UpO1xuICAgICAgICAvLyBodHRwczovL2dpdGh1Yi5jb20vTWljcm9zb2Z0L1R5cGVTY3JpcHQvd2lraS9CcmVha2luZy1DaGFuZ2VzI2V4dGVuZGluZy1idWlsdC1pbnMtbGlrZS1lcnJvci1hcnJheS1hbmQtbWFwLW1heS1uby1sb25nZXItd29ya1xuICAgICAgICBPYmplY3RbJ3NldFByb3RvdHlwZU9mJ10odGhpcywgU2VyaWFsaXphdGlvbkVycm9yLnByb3RvdHlwZSk7XG4gICAgfVxufVxuXG5jb25zdCBSRVNFUlZFRF9LRVlXT1JEUyA9IHtcbiAgICAnX191bmRlZmluZWRfXyc6IHRydWUsXG4gICAgJ19fSW5maW5pdHlfXyc6IHRydWUsXG4gICAgJ19fLUluZmluaXR5X18nOiB0cnVlLFxuICAgICdfX05hTl9fJzogdHJ1ZSxcbn07XG4vLyBBIG1pbmkgdGVzdCBvZiB0eXBpbmdzLiBDaGVja3MgdGhhdCBgcmVzZXJ2ZWRgIGRpY3QgY29udGFpbnMgYWxsXG57IGxldCB4OiBrZXlvZiB0eXBlb2YgUkVTRVJWRURfS0VZV09SRFMgfCAnYSc7IGNvbnN0IHJldCA9IHNlcmlhbGl6ZVVuc3VwcG9ydGVkSnNvblZhbHVlKCdhJyk7IGxldCB5OiB0eXBlb2YgcmV0OyB4ID0geTsgeSA9IHg7IH1cblxuZnVuY3Rpb24gc2VyaWFsaXplVW5zdXBwb3J0ZWRKc29uVmFsdWU8VD4odmFsdWU6IFQpOiBUIHwga2V5b2YgdHlwZW9mIFJFU0VSVkVEX0tFWVdPUkRTIHtcbiAgICBpZiAodHlwZW9mIHZhbHVlID09PSAndW5kZWZpbmVkJykgcmV0dXJuICdfX3VuZGVmaW5lZF9fJztcbiAgICBpZiAodHlwZW9mIHZhbHVlID09PSAnbnVtYmVyJyAmJiB2YWx1ZSA9PT0gSW5maW5pdHkpIHJldHVybiAnX19JbmZpbml0eV9fJztcbiAgICBpZiAodHlwZW9mIHZhbHVlID09PSAnbnVtYmVyJyAmJiB2YWx1ZSA9PT0gLUluZmluaXR5KSByZXR1cm4gJ19fLUluZmluaXR5X18nO1xuICAgIGlmICh0eXBlb2YgdmFsdWUgPT09ICdudW1iZXInICYmIGlzTmFOKHZhbHVlKSkgcmV0dXJuICdfX05hTl9fJztcbiAgICByZXR1cm4gdmFsdWU7XG59XG5cbmZ1bmN0aW9uIHBhcnNlVW5zdXBwb3J0ZWRKc29uVmFsdWU8VD4odmFsdWU6IFQgfCBrZXlvZiB0eXBlb2YgUkVTRVJWRURfS0VZV09SRFMpOiBUIHwgdW5kZWZpbmVkIHwgbnVtYmVyIHtcbiAgICBpZiAodmFsdWUgPT09ICdfX3VuZGVmaW5lZF9fJykgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICBpZiAodmFsdWUgPT09ICdfX0luZmluaXR5X18nKSByZXR1cm4gSW5maW5pdHk7XG4gICAgaWYgKHZhbHVlID09PSAnX18tSW5maW5pdHlfXycpIHJldHVybiAtSW5maW5pdHk7XG4gICAgaWYgKHZhbHVlID09PSAnX19OYU5fXycpIHJldHVybiBOYU47XG4gICAgcmV0dXJuIHZhbHVlO1xufVxuXG4vKipcbiAqIEN1c3RvbSBwYXJ0aWFsIHNlcmlhbGl6YXRpb24gZm9yIGZpZWxkcyB0aGF0IEpTT04uc3RyaW5naWZ5IC8gSlNPTi5wYXJzZSBkb2Vzbid0IHN1cHBvcnQuXG4gKiBUaGUgcmV0dXJuZWQgb2JqZWN0IGNhbiB0aGVuIGJlIHVzZWQgaW4gSlNPTi5zdHJpbmdpZnkuIEZpZWxkcyB0aGF0IGNhbiBub3QgYmUgbG9zc2xlc3NseVxuICogc2VyaWFsaXplZCAvIHBhcnNlZCB0aHJvdyBhbiBlcnJvciAoZnVuY3Rpb25zIGFuZCBub24tcGxhaW4gb2JqZWN0cykuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBtYWtlU2FmZWx5U2VyaWFsaXphYmxlKHRyZWU6IGFueSk6IGFueSB7XG4gICAgY29uc3QgcmVzdWx0ID0gZGVlcFRyYXZlcnNlKHRyZWUsICh2YWx1ZSkgPT4ge1xuICAgICAgICAvLyBUaHJvdyBlcnJvciB3aGVuIHZhbHVlIGNhbid0IGJlIHNlcmlhbGl6ZWQgLyBwYXJzZWQuXG4gICAgICAgIGlmICh0eXBlb2YgdmFsdWUgPT09ICdmdW5jdGlvbicpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBTZXJpYWxpemF0aW9uRXJyb3IoJ0Z1bmN0aW9ucyBjYW4gbm90IGJlIHNlcmlhbGl6ZWQnLCB2YWx1ZS50b1N0cmluZygpKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoXy5pc09iamVjdCh2YWx1ZSkgJiYgIV8uaXNBcnJheSh2YWx1ZSkgJiYgIV8uaXNGdW5jdGlvbih2YWx1ZSkgJiYgIV8uaXNQbGFpbk9iamVjdCh2YWx1ZSkpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBTZXJpYWxpemF0aW9uRXJyb3IoJ05vbi1wbGFpbiBvYmplY3RzIGNhbiBub3QgcHJlc2VydmUgcHJvdG90eXBlIGR1cmluZyBzZXJpYWxpemF0aW9uJywgdmVyYm9zZVNlcmlhbGl6ZSh2YWx1ZSkpO1xuICAgICAgICB9XG4gICAgICAgIGlmICh0eXBlb2YgdmFsdWUgPT09ICdzdHJpbmcnICYmIFJFU0VSVkVEX0tFWVdPUkRTLmhhc093blByb3BlcnR5KHZhbHVlKSkge1xuICAgICAgICAgICAgdGhyb3cgbmV3IFNlcmlhbGl6YXRpb25FcnJvcignRW5jb3VudGVyZWQgYSByZXNlcnZlZCBrZXl3b3JkIGR1cmluZyBzZXJpYWxpemF0aW9uJywgdmFsdWUpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBzZXJpYWxpemVVbnN1cHBvcnRlZEpzb25WYWx1ZSh2YWx1ZSk7XG4gICAgfSk7XG5cbiAgICBpZiAoIV8uaXNFcXVhbChwYXJzZVNhZmVseVNlcmlhbGl6YWJsZShKU09OLnBhcnNlKEpTT04uc3RyaW5naWZ5KHJlc3VsdCkpKSwgdHJlZSkpIHtcbiAgICAgICAgLy8gQSBnZW5lcmljIGNoZWNrIGlmIGVycm9ycyBhYm92ZSBtaXNzIGFueXRoaW5nLlxuICAgICAgICB0aHJvdyBuZXcgU2VyaWFsaXphdGlvbkVycm9yKCdFbmNvdW50ZXJlZCBhbiB1bnNlcmlhbGl6YWJsZSBmaWVsZCcsIHZlcmJvc2VTZXJpYWxpemUodHJlZSkpO1xuICAgIH1cblxuICAgIHJldHVybiByZXN1bHQ7XG59XG5cbi8qKlxuICogQ3VzdG9tIHBhcnRpYWwgZGVzZXJpYWxpemF0aW9uIG9mIGZpZWxkcyBzZXJpYWxpemVkIGJ5IGBtYWtlU2FmZWx5U2VyaWFsaXphYmxlYC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHBhcnNlU2FmZWx5U2VyaWFsaXphYmxlKHRyZWU6IGFueSk6IGFueSB7XG4gICAgcmV0dXJuIGRlZXBUcmF2ZXJzZSh0cmVlLCAodmFsdWUpID0+IHtcbiAgICAgICAgcmV0dXJuIHBhcnNlVW5zdXBwb3J0ZWRKc29uVmFsdWUodmFsdWUpO1xuICAgIH0pO1xufVxuXG4vKipcbiAqIFNlcmlhbGl6ZSBhcyBtYW55IGZpZWxkcyBhcyBwb3NzaWJsZSwgd2l0aG91dCBlbnN1cmluZyBpdCBpcyBkZXNlcmlhbGl6YWJsZS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHZlcmJvc2VTZXJpYWxpemUodHJlZTogYW55KTogYW55IHtcbiAgICByZXR1cm4gSlNPTi5zdHJpbmdpZnkodHJlZSwgKGtleSwgdmFsdWUpID0+IHtcbiAgICAgICAgLy8gUHJpbnQsIGV2ZW4gaWYgdmFsdWUgaXMgbm90IGRlc2VyaWFsaXphYmxlLlxuICAgICAgICBpZiAodHlwZW9mIHZhbHVlID09PSAnZnVuY3Rpb24nKSByZXR1cm4gdmFsdWUudG9TdHJpbmcoKTtcbiAgICAgICAgcmV0dXJuIHNlcmlhbGl6ZVVuc3VwcG9ydGVkSnNvblZhbHVlKHZhbHVlKTtcbiAgICB9KTtcbn1cbiJdfQ==
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9jb3JlL3V0aWxzL3NlcmlhbGl6YXRpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7O0FBQUEsMEJBQTRCO0FBQzVCLCtCQUFvQztBQUVwQztJQUF3QyxzQ0FBSztJQUN6Qyw0QkFBWSxPQUFlLEVBQVMsZUFBdUI7UUFBM0QsWUFDSSxrQkFBTSxPQUFPLENBQUMsU0FHakI7UUFKbUMscUJBQWUsR0FBZixlQUFlLENBQVE7UUFFdkQsZ0lBQWdJO1FBQ2hJLE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDLEtBQUksRUFBRSxrQkFBa0IsQ0FBQyxTQUFTLENBQUMsQ0FBQzs7SUFDakUsQ0FBQztJQUNMLHlCQUFDO0FBQUQsQ0FOQSxBQU1DLENBTnVDLEtBQUssR0FNNUM7QUFOWSxnREFBa0I7QUFRL0IsSUFBTSxpQkFBaUIsR0FBRztJQUN0QixlQUFlLEVBQUUsSUFBSTtJQUNyQixjQUFjLEVBQUUsSUFBSTtJQUNwQixlQUFlLEVBQUUsSUFBSTtJQUNyQixTQUFTLEVBQUUsSUFBSTtDQUNsQixDQUFDO0FBQ0YsbUVBQW1FO0FBQ25FO0lBQUUsSUFBSSxDQUFDLFNBQXNDLENBQUM7SUFBQyxJQUFNLEdBQUcsR0FBRyw2QkFBNkIsQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUFDLElBQUksQ0FBQyxTQUFZLENBQUM7SUFBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQztDQUFFO0FBRWpJLHVDQUEwQyxLQUFRO0lBQzlDLElBQUksT0FBTyxLQUFLLEtBQUssV0FBVztRQUFFLE9BQU8sZUFBZSxDQUFDO0lBQ3pELElBQUksT0FBTyxLQUFLLEtBQUssUUFBUSxJQUFJLEtBQUssS0FBSyxRQUFRO1FBQUUsT0FBTyxjQUFjLENBQUM7SUFDM0UsSUFBSSxPQUFPLEtBQUssS0FBSyxRQUFRLElBQUksS0FBSyxLQUFLLENBQUMsUUFBUTtRQUFFLE9BQU8sZUFBZSxDQUFDO0lBQzdFLElBQUksT0FBTyxLQUFLLEtBQUssUUFBUSxJQUFJLEtBQUssQ0FBQyxLQUFLLENBQUM7UUFBRSxPQUFPLFNBQVMsQ0FBQztJQUNoRSxPQUFPLEtBQUssQ0FBQztBQUNqQixDQUFDO0FBRUQsbUNBQXNDLEtBQXlDO0lBQzNFLElBQUksS0FBSyxLQUFLLGVBQWU7UUFBRSxPQUFPLFNBQVMsQ0FBQztJQUNoRCxJQUFJLEtBQUssS0FBSyxjQUFjO1FBQUUsT0FBTyxRQUFRLENBQUM7SUFDOUMsSUFBSSxLQUFLLEtBQUssZUFBZTtRQUFFLE9BQU8sQ0FBQyxRQUFRLENBQUM7SUFDaEQsSUFBSSxLQUFLLEtBQUssU0FBUztRQUFFLE9BQU8sR0FBRyxDQUFDO0lBQ3BDLE9BQU8sS0FBSyxDQUFDO0FBQ2pCLENBQUM7QUFFRDs7OztHQUlHO0FBQ0gsZ0NBQXVDLElBQVM7SUFDNUMsSUFBTSxNQUFNLEdBQUcsbUJBQVksQ0FBQyxJQUFJLEVBQUUsVUFBQyxLQUFLO1FBQ3BDLHVEQUF1RDtRQUN2RCxJQUFJLE9BQU8sS0FBSyxLQUFLLFVBQVUsRUFBRTtZQUM3QixNQUFNLElBQUksa0JBQWtCLENBQUMsaUNBQWlDLEVBQUUsS0FBSyxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUM7U0FDckY7UUFDRCxJQUFJLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxhQUFhLENBQUMsS0FBSyxDQUFDLEVBQUU7WUFDM0YsTUFBTSxJQUFJLGtCQUFrQixDQUFDLG1FQUFtRSxFQUFFLGdCQUFnQixDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7U0FDOUg7UUFDRCxJQUFJLE9BQU8sS0FBSyxLQUFLLFFBQVEsSUFBSSxpQkFBaUIsQ0FBQyxjQUFjLENBQUMsS0FBSyxDQUFDLEVBQUU7WUFDdEUsTUFBTSxJQUFJLGtCQUFrQixDQUFDLHFEQUFxRCxFQUFFLEtBQUssQ0FBQyxDQUFDO1NBQzlGO1FBQ0QsT0FBTyw2QkFBNkIsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUNoRCxDQUFDLENBQUMsQ0FBQztJQUVILElBQUksQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLHVCQUF1QixDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsSUFBSSxDQUFDLEVBQUU7UUFDL0UsaURBQWlEO1FBQ2pELE1BQU0sSUFBSSxrQkFBa0IsQ0FBQyxxQ0FBcUMsRUFBRSxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO0tBQy9GO0lBRUQsT0FBTyxNQUFNLENBQUM7QUFDbEIsQ0FBQztBQXJCRCx3REFxQkM7QUFFRDs7R0FFRztBQUNILGlDQUF3QyxJQUFTO0lBQzdDLE9BQU8sbUJBQVksQ0FBQyxJQUFJLEVBQUUsVUFBQyxLQUFLO1FBQzVCLE9BQU8seUJBQXlCLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDNUMsQ0FBQyxDQUFDLENBQUM7QUFDUCxDQUFDO0FBSkQsMERBSUM7QUFFRDs7R0FFRztBQUNILDBCQUFpQyxJQUFTO0lBQ3RDLE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLEVBQUUsVUFBQyxHQUFHLEVBQUUsS0FBSztRQUNuQyw4Q0FBOEM7UUFDOUMsSUFBSSxPQUFPLEtBQUssS0FBSyxVQUFVO1lBQUUsT0FBTyxLQUFLLENBQUMsUUFBUSxFQUFFLENBQUM7UUFDekQsT0FBTyw2QkFBNkIsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUNoRCxDQUFDLENBQUMsQ0FBQztBQUNQLENBQUM7QUFORCw0Q0FNQyIsImZpbGUiOiJjb3JlL3V0aWxzL3NlcmlhbGl6YXRpb24uanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyBfIGZyb20gJ2xvZGFzaCc7XG5pbXBvcnQge2RlZXBUcmF2ZXJzZX0gZnJvbSAnLi9sYW5nJztcblxuZXhwb3J0IGNsYXNzIFNlcmlhbGl6YXRpb25FcnJvciBleHRlbmRzIEVycm9yIHtcbiAgICBjb25zdHJ1Y3RvcihtZXNzYWdlOiBzdHJpbmcsIHB1YmxpYyBzZXJpYWxpemVkVmFsdWU6IHN0cmluZykge1xuICAgICAgICBzdXBlcihtZXNzYWdlKTtcbiAgICAgICAgLy8gaHR0cHM6Ly9naXRodWIuY29tL01pY3Jvc29mdC9UeXBlU2NyaXB0L3dpa2kvQnJlYWtpbmctQ2hhbmdlcyNleHRlbmRpbmctYnVpbHQtaW5zLWxpa2UtZXJyb3ItYXJyYXktYW5kLW1hcC1tYXktbm8tbG9uZ2VyLXdvcmtcbiAgICAgICAgT2JqZWN0WydzZXRQcm90b3R5cGVPZiddKHRoaXMsIFNlcmlhbGl6YXRpb25FcnJvci5wcm90b3R5cGUpO1xuICAgIH1cbn1cblxuY29uc3QgUkVTRVJWRURfS0VZV09SRFMgPSB7XG4gICAgJ19fdW5kZWZpbmVkX18nOiB0cnVlLFxuICAgICdfX0luZmluaXR5X18nOiB0cnVlLFxuICAgICdfXy1JbmZpbml0eV9fJzogdHJ1ZSxcbiAgICAnX19OYU5fXyc6IHRydWUsXG59O1xuLy8gQSBtaW5pIHRlc3Qgb2YgdHlwaW5ncy4gQ2hlY2tzIHRoYXQgYHJlc2VydmVkYCBkaWN0IGNvbnRhaW5zIGFsbFxueyBsZXQgeDoga2V5b2YgdHlwZW9mIFJFU0VSVkVEX0tFWVdPUkRTIHwgJ2EnOyBjb25zdCByZXQgPSBzZXJpYWxpemVVbnN1cHBvcnRlZEpzb25WYWx1ZSgnYScpOyBsZXQgeTogdHlwZW9mIHJldDsgeCA9IHk7IHkgPSB4OyB9XG5cbmZ1bmN0aW9uIHNlcmlhbGl6ZVVuc3VwcG9ydGVkSnNvblZhbHVlPFQ+KHZhbHVlOiBUKTogVCB8IGtleW9mIHR5cGVvZiBSRVNFUlZFRF9LRVlXT1JEUyB7XG4gICAgaWYgKHR5cGVvZiB2YWx1ZSA9PT0gJ3VuZGVmaW5lZCcpIHJldHVybiAnX191bmRlZmluZWRfXyc7XG4gICAgaWYgKHR5cGVvZiB2YWx1ZSA9PT0gJ251bWJlcicgJiYgdmFsdWUgPT09IEluZmluaXR5KSByZXR1cm4gJ19fSW5maW5pdHlfXyc7XG4gICAgaWYgKHR5cGVvZiB2YWx1ZSA9PT0gJ251bWJlcicgJiYgdmFsdWUgPT09IC1JbmZpbml0eSkgcmV0dXJuICdfXy1JbmZpbml0eV9fJztcbiAgICBpZiAodHlwZW9mIHZhbHVlID09PSAnbnVtYmVyJyAmJiBpc05hTih2YWx1ZSkpIHJldHVybiAnX19OYU5fXyc7XG4gICAgcmV0dXJuIHZhbHVlO1xufVxuXG5mdW5jdGlvbiBwYXJzZVVuc3VwcG9ydGVkSnNvblZhbHVlPFQ+KHZhbHVlOiBUIHwga2V5b2YgdHlwZW9mIFJFU0VSVkVEX0tFWVdPUkRTKTogVCB8IHVuZGVmaW5lZCB8IG51bWJlciB7XG4gICAgaWYgKHZhbHVlID09PSAnX191bmRlZmluZWRfXycpIHJldHVybiB1bmRlZmluZWQ7XG4gICAgaWYgKHZhbHVlID09PSAnX19JbmZpbml0eV9fJykgcmV0dXJuIEluZmluaXR5O1xuICAgIGlmICh2YWx1ZSA9PT0gJ19fLUluZmluaXR5X18nKSByZXR1cm4gLUluZmluaXR5O1xuICAgIGlmICh2YWx1ZSA9PT0gJ19fTmFOX18nKSByZXR1cm4gTmFOO1xuICAgIHJldHVybiB2YWx1ZTtcbn1cblxuLyoqXG4gKiBDdXN0b20gcGFydGlhbCBzZXJpYWxpemF0aW9uIGZvciBmaWVsZHMgdGhhdCBKU09OLnN0cmluZ2lmeSAvIEpTT04ucGFyc2UgZG9lc24ndCBzdXBwb3J0LlxuICogVGhlIHJldHVybmVkIG9iamVjdCBjYW4gdGhlbiBiZSB1c2VkIGluIEpTT04uc3RyaW5naWZ5LiBGaWVsZHMgdGhhdCBjYW4gbm90IGJlIGxvc3NsZXNzbHlcbiAqIHNlcmlhbGl6ZWQgLyBwYXJzZWQgdGhyb3cgYW4gZXJyb3IgKGZ1bmN0aW9ucyBhbmQgbm9uLXBsYWluIG9iamVjdHMpLlxuICovXG5leHBvcnQgZnVuY3Rpb24gbWFrZVNhZmVseVNlcmlhbGl6YWJsZSh0cmVlOiBhbnkpOiBhbnkge1xuICAgIGNvbnN0IHJlc3VsdCA9IGRlZXBUcmF2ZXJzZSh0cmVlLCAodmFsdWUpID0+IHtcbiAgICAgICAgLy8gVGhyb3cgZXJyb3Igd2hlbiB2YWx1ZSBjYW4ndCBiZSBzZXJpYWxpemVkIC8gcGFyc2VkLlxuICAgICAgICBpZiAodHlwZW9mIHZhbHVlID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgU2VyaWFsaXphdGlvbkVycm9yKCdGdW5jdGlvbnMgY2FuIG5vdCBiZSBzZXJpYWxpemVkJywgdmFsdWUudG9TdHJpbmcoKSk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKF8uaXNPYmplY3QodmFsdWUpICYmICFfLmlzQXJyYXkodmFsdWUpICYmICFfLmlzRnVuY3Rpb24odmFsdWUpICYmICFfLmlzUGxhaW5PYmplY3QodmFsdWUpKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgU2VyaWFsaXphdGlvbkVycm9yKCdOb24tcGxhaW4gb2JqZWN0cyBjYW4gbm90IHByZXNlcnZlIHByb3RvdHlwZSBkdXJpbmcgc2VyaWFsaXphdGlvbicsIHZlcmJvc2VTZXJpYWxpemUodmFsdWUpKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAodHlwZW9mIHZhbHVlID09PSAnc3RyaW5nJyAmJiBSRVNFUlZFRF9LRVlXT1JEUy5oYXNPd25Qcm9wZXJ0eSh2YWx1ZSkpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBTZXJpYWxpemF0aW9uRXJyb3IoJ0VuY291bnRlcmVkIGEgcmVzZXJ2ZWQga2V5d29yZCBkdXJpbmcgc2VyaWFsaXphdGlvbicsIHZhbHVlKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gc2VyaWFsaXplVW5zdXBwb3J0ZWRKc29uVmFsdWUodmFsdWUpO1xuICAgIH0pO1xuXG4gICAgaWYgKCFfLmlzRXF1YWwocGFyc2VTYWZlbHlTZXJpYWxpemFibGUoSlNPTi5wYXJzZShKU09OLnN0cmluZ2lmeShyZXN1bHQpKSksIHRyZWUpKSB7XG4gICAgICAgIC8vIEEgZ2VuZXJpYyBjaGVjayBpZiBlcnJvcnMgYWJvdmUgbWlzcyBhbnl0aGluZy5cbiAgICAgICAgdGhyb3cgbmV3IFNlcmlhbGl6YXRpb25FcnJvcignRW5jb3VudGVyZWQgYW4gdW5zZXJpYWxpemFibGUgZmllbGQnLCB2ZXJib3NlU2VyaWFsaXplKHRyZWUpKTtcbiAgICB9XG5cbiAgICByZXR1cm4gcmVzdWx0O1xufVxuXG4vKipcbiAqIEN1c3RvbSBwYXJ0aWFsIGRlc2VyaWFsaXphdGlvbiBvZiBmaWVsZHMgc2VyaWFsaXplZCBieSBgbWFrZVNhZmVseVNlcmlhbGl6YWJsZWAuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBwYXJzZVNhZmVseVNlcmlhbGl6YWJsZSh0cmVlOiBhbnkpOiBhbnkge1xuICAgIHJldHVybiBkZWVwVHJhdmVyc2UodHJlZSwgKHZhbHVlKSA9PiB7XG4gICAgICAgIHJldHVybiBwYXJzZVVuc3VwcG9ydGVkSnNvblZhbHVlKHZhbHVlKTtcbiAgICB9KTtcbn1cblxuLyoqXG4gKiBTZXJpYWxpemUgYXMgbWFueSBmaWVsZHMgYXMgcG9zc2libGUsIHdpdGhvdXQgZW5zdXJpbmcgaXQgaXMgZGVzZXJpYWxpemFibGUuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiB2ZXJib3NlU2VyaWFsaXplKHRyZWU6IGFueSk6IGFueSB7XG4gICAgcmV0dXJuIEpTT04uc3RyaW5naWZ5KHRyZWUsIChrZXksIHZhbHVlKSA9PiB7XG4gICAgICAgIC8vIFByaW50LCBldmVuIGlmIHZhbHVlIGlzIG5vdCBkZXNlcmlhbGl6YWJsZS5cbiAgICAgICAgaWYgKHR5cGVvZiB2YWx1ZSA9PT0gJ2Z1bmN0aW9uJykgcmV0dXJuIHZhbHVlLnRvU3RyaW5nKCk7XG4gICAgICAgIHJldHVybiBzZXJpYWxpemVVbnN1cHBvcnRlZEpzb25WYWx1ZSh2YWx1ZSk7XG4gICAgfSk7XG59XG4iXX0=
export {};
//# sourceMappingURL=serialization.spec.d.ts.map

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

//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9jb3JlL3V0aWxzL3NlcmlhbGl6YXRpb24uc3BlYy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUFBLGlEQUFzSDtBQUN0SCxtREFBd0Q7QUFFeEQsNkJBQWlCLENBQUMsZUFBZSxFQUFFLEVBQUUsRUFBRTtJQUNuQyxJQUFNLGFBQWEsR0FBRztRQUNsQixDQUFDLEVBQUUsQ0FBQztRQUNKLENBQUMsRUFBRSxDQUFDLElBQUksRUFBRSxHQUFHLENBQUM7S0FDakIsQ0FBQztJQUNGLElBQU0sZUFBZSxHQUFHO1FBQ3BCLENBQUMsRUFBRSxDQUFDO1FBQ0osQ0FBQyxFQUFFLFNBQVM7UUFDWixDQUFDLEVBQUU7WUFDQyxDQUFDLEVBQUUsR0FBRztZQUNOLENBQUMsRUFBRSxDQUFDLEdBQUcsRUFBRSxDQUFDLEVBQUUsSUFBSSxDQUFDO1NBQ3BCO0tBQ0osQ0FBQztJQUNGLElBQU0saUJBQWlCLEdBQUc7UUFDdEIsQ0FBQyxFQUFFLGNBQU0sT0FBQSxDQUFDLEVBQUQsQ0FBQztRQUNWLENBQUMsRUFBRTtZQUFJO2dCQUFpQixNQUFDLEdBQUcsQ0FBQyxDQUFDO1lBQUMsQ0FBQztZQUFELFFBQUM7UUFBRCxDQUF4QixBQUF5QixHQUFBO1FBQ2hDLENBQUMsRUFBRSxPQUFPLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQztLQUN4QixDQUFDO0lBQ0YsSUFBTSxXQUFXLEdBQUc7UUFDaEIsQ0FBQyxFQUFFLGVBQWU7S0FDckIsQ0FBQztJQUVGLFNBQVMsU0FBUyxDQUFDLEtBQVU7UUFDekIsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztJQUM3QyxDQUFDO0lBQ0QsU0FBUyx5QkFBeUIsQ0FBQyxLQUFVO1FBQ3pDLE9BQU8sdUNBQXVCLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLHNDQUFzQixDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQzlGLENBQUM7SUFFRCxRQUFRLENBQUMsb0RBQW9ELEVBQUU7UUFDM0QsRUFBRSxDQUFDLHVEQUF1RCxFQUFFO1lBQ3hELE1BQU0sQ0FBQyxzQ0FBc0IsQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxhQUFhLENBQUMsQ0FBQztRQUN6RSxDQUFDLENBQUMsQ0FBQztRQUVILEVBQUUsQ0FBQyx5REFBeUQsRUFBRTtZQUMxRCxNQUFNLENBQUMsU0FBUyxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLGFBQWEsQ0FBQyxDQUFDO1lBQ3hELE1BQU0sQ0FBQyx5QkFBeUIsQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxhQUFhLENBQUMsQ0FBQztZQUV4RSxNQUFNLENBQUMsU0FBUyxDQUFDLGVBQWUsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxlQUFlLENBQUMsQ0FBQztZQUNoRSxNQUFNLENBQUMseUJBQXlCLENBQUMsZUFBZSxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsZUFBZSxDQUFDLENBQUM7UUFDaEYsQ0FBQyxDQUFDLENBQUM7UUFFSCxFQUFFLENBQUMsMENBQTBDLEVBQUU7WUFDM0MsTUFBTSxDQUFDLFNBQVMsQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO1lBQ3BFLE1BQU0sQ0FBQyxjQUFNLE9BQUEseUJBQXlCLENBQUMsaUJBQWlCLENBQUMsRUFBNUMsQ0FBNEMsQ0FBQyxDQUFDLFlBQVksQ0FBQyxrQ0FBa0IsQ0FBQyxDQUFDO1lBQzVGLE1BQU0sQ0FBQyxjQUFNLE9BQUEseUJBQXlCLENBQUMsaUJBQWlCLENBQUMsQ0FBQyxDQUFDLEVBQTlDLENBQThDLENBQUMsQ0FBQyxZQUFZLENBQUMsa0NBQWtCLENBQUMsQ0FBQztZQUM5RixNQUFNLENBQUMsY0FBTSxPQUFBLHlCQUF5QixDQUFDLGlCQUFpQixDQUFDLENBQUMsQ0FBQyxFQUE5QyxDQUE4QyxDQUFDLENBQUMsWUFBWSxDQUFDLGtDQUFrQixDQUFDLENBQUM7WUFDOUYsTUFBTSxDQUFDLGNBQU0sT0FBQSx5QkFBeUIsQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDLENBQUMsRUFBOUMsQ0FBOEMsQ0FBQyxDQUFDLFlBQVksQ0FBQyxrQ0FBa0IsQ0FBQyxDQUFDO1lBQzlGLE1BQU0sQ0FBQyxjQUFNLE9BQUEseUJBQXlCLENBQUMsV0FBVyxDQUFDLEVBQXRDLENBQXNDLENBQUMsQ0FBQyxZQUFZLENBQUMsa0NBQWtCLENBQUMsQ0FBQztRQUMxRixDQUFDLENBQUMsQ0FBQztJQUNQLENBQUMsQ0FBQyxDQUFDO0lBRUgsUUFBUSxDQUFDLGtCQUFrQixFQUFFO1FBQ3pCLEVBQUUsQ0FBQywyREFBMkQsRUFBRTtZQUM1RCxNQUFNLENBQUMsZ0NBQWdCLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsd0JBQXdCLENBQUMsQ0FBQztZQUMxRSxNQUFNLENBQUMsZ0NBQWdCLENBQUMsZUFBZSxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsd0VBQXdFLENBQUMsQ0FBQztZQUM1SCxNQUFNLENBQUMsZ0NBQWdCLENBQUMsaUJBQWlCLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FDL0Msd0ZBQXdGLENBQzNGLENBQUM7WUFDRixNQUFNLENBQUMsZ0NBQWdCLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsdUJBQXVCLENBQUMsQ0FBQztRQUMzRSxDQUFDLENBQUMsQ0FBQztJQUNQLENBQUMsQ0FBQyxDQUFDO0FBQ1AsQ0FBQyxDQUFDLENBQUMiLCJmaWxlIjoiY29yZS91dGlscy9zZXJpYWxpemF0aW9uLnNwZWMuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge21ha2VTYWZlbHlTZXJpYWxpemFibGUsIHBhcnNlU2FmZWx5U2VyaWFsaXphYmxlLCB2ZXJib3NlU2VyaWFsaXplLCBTZXJpYWxpemF0aW9uRXJyb3J9IGZyb20gJy4vc2VyaWFsaXphdGlvbic7XG5pbXBvcnQge2Rlc2NyaWJlQ29tcG9uZW50fSBmcm9tICcuLi8uLi90ZXN0cy9jb21wb25lbnQnO1xuXG5kZXNjcmliZUNvbXBvbmVudCgnc2VyaWFsaXphdGlvbicsIFtdLCAoKSA9PiB7XG4gICAgY29uc3QganNvblN1cHBvcnRlZCA9IHtcbiAgICAgICAgYTogMSxcbiAgICAgICAgYjogW251bGwsICdiJ10sXG4gICAgfTtcbiAgICBjb25zdCBqc29uVW5zdXBwb3J0ZWQgPSB7XG4gICAgICAgIGE6IDEsXG4gICAgICAgIGI6IHVuZGVmaW5lZCxcbiAgICAgICAgYzoge1xuICAgICAgICAgICAgZDogTmFOLFxuICAgICAgICAgICAgZTogW05hTiwgNSwgbnVsbF0sXG4gICAgICAgIH0sXG4gICAgfTtcbiAgICBjb25zdCBqc29uVW5zdXBwb3J0YWJsZSA9IHtcbiAgICAgICAgYTogKCkgPT4gMSxcbiAgICAgICAgYjogbmV3IGNsYXNzIEIgeyBwdWJsaWMgYSA9IDI7IH0sXG4gICAgICAgIGM6IFByb21pc2UucmVzb2x2ZSgzKSxcbiAgICB9O1xuICAgIGNvbnN0IGpzb25LZXl3b3JkID0ge1xuICAgICAgICBhOiAnX191bmRlZmluZWRfXycsXG4gICAgfTtcblxuICAgIGZ1bmN0aW9uIGpzb25DbG9uZSh2YWx1ZTogYW55KTogYW55IHtcbiAgICAgICAgcmV0dXJuIEpTT04ucGFyc2UoSlNPTi5zdHJpbmdpZnkodmFsdWUpKTtcbiAgICB9XG4gICAgZnVuY3Rpb24gcGFydGlhbFNlcmlhbGl6YXRpb25DbG9uZSh2YWx1ZTogYW55KTogYW55IHtcbiAgICAgICAgcmV0dXJuIHBhcnNlU2FmZWx5U2VyaWFsaXphYmxlKEpTT04ucGFyc2UoSlNPTi5zdHJpbmdpZnkobWFrZVNhZmVseVNlcmlhbGl6YWJsZSh2YWx1ZSkpKSk7XG4gICAgfVxuXG4gICAgZGVzY3JpYmUoJ21ha2VTYWZlbHlTZXJpYWxpemFibGUgYW5kIHBhcnNlU2FmZWx5U2VyaWFsaXphYmxlJywgKCkgPT4ge1xuICAgICAgICBpdCgnc2hvdWxkIG5vdCBjaGFuZ2Ugb2JqZWN0cyBzdXBwb3J0ZWQgYnkgSlNPTi5zdHJpbmdpZnknLCAoKSA9PiB7XG4gICAgICAgICAgICBleHBlY3QobWFrZVNhZmVseVNlcmlhbGl6YWJsZShqc29uU3VwcG9ydGVkKSkudG9FcXVhbChqc29uU3VwcG9ydGVkKTtcbiAgICAgICAgfSk7XG5cbiAgICAgICAgaXQoJ3Nob3VsZCByZXRhaW4gbW9yZSBpbmZvcm1hdGlvbiB0aGFuIGp1c3QgSlNPTi5zdHJpbmdpZnknLCAoKSA9PiB7XG4gICAgICAgICAgICBleHBlY3QoanNvbkNsb25lKGpzb25TdXBwb3J0ZWQpKS50b0VxdWFsKGpzb25TdXBwb3J0ZWQpO1xuICAgICAgICAgICAgZXhwZWN0KHBhcnRpYWxTZXJpYWxpemF0aW9uQ2xvbmUoanNvblN1cHBvcnRlZCkpLnRvRXF1YWwoanNvblN1cHBvcnRlZCk7XG5cbiAgICAgICAgICAgIGV4cGVjdChqc29uQ2xvbmUoanNvblVuc3VwcG9ydGVkKSkubm90LnRvRXF1YWwoanNvblVuc3VwcG9ydGVkKTtcbiAgICAgICAgICAgIGV4cGVjdChwYXJ0aWFsU2VyaWFsaXphdGlvbkNsb25lKGpzb25VbnN1cHBvcnRlZCkpLnRvRXF1YWwoanNvblVuc3VwcG9ydGVkKTtcbiAgICAgICAgfSk7XG5cbiAgICAgICAgaXQoJ3Nob3VsZCB3YXJuIGFib3V0IG5vbi1zZXJpYWxpemFibGUgaW5wdXQnLCAoKSA9PiB7XG4gICAgICAgICAgICBleHBlY3QoanNvbkNsb25lKGpzb25VbnN1cHBvcnRhYmxlKSkubm90LnRvRXF1YWwoanNvblVuc3VwcG9ydGFibGUpO1xuICAgICAgICAgICAgZXhwZWN0KCgpID0+IHBhcnRpYWxTZXJpYWxpemF0aW9uQ2xvbmUoanNvblVuc3VwcG9ydGFibGUpKS50b1Rocm93RXJyb3IoU2VyaWFsaXphdGlvbkVycm9yKTtcbiAgICAgICAgICAgIGV4cGVjdCgoKSA9PiBwYXJ0aWFsU2VyaWFsaXphdGlvbkNsb25lKGpzb25VbnN1cHBvcnRhYmxlLmEpKS50b1Rocm93RXJyb3IoU2VyaWFsaXphdGlvbkVycm9yKTtcbiAgICAgICAgICAgIGV4cGVjdCgoKSA9PiBwYXJ0aWFsU2VyaWFsaXphdGlvbkNsb25lKGpzb25VbnN1cHBvcnRhYmxlLmIpKS50b1Rocm93RXJyb3IoU2VyaWFsaXphdGlvbkVycm9yKTtcbiAgICAgICAgICAgIGV4cGVjdCgoKSA9PiBwYXJ0aWFsU2VyaWFsaXphdGlvbkNsb25lKGpzb25VbnN1cHBvcnRhYmxlLmMpKS50b1Rocm93RXJyb3IoU2VyaWFsaXphdGlvbkVycm9yKTtcbiAgICAgICAgICAgIGV4cGVjdCgoKSA9PiBwYXJ0aWFsU2VyaWFsaXphdGlvbkNsb25lKGpzb25LZXl3b3JkKSkudG9UaHJvd0Vycm9yKFNlcmlhbGl6YXRpb25FcnJvcik7XG4gICAgICAgIH0pO1xuICAgIH0pO1xuXG4gICAgZGVzY3JpYmUoJ3ZlcmJvc2VTZXJpYWxpemUnLCAoKSA9PiB7XG4gICAgICAgIGl0KCdzaG91bGQgcmV0YWluIG1vcmUgaW5mb3JtYXRpb24gdGhhbiBwYXJ0aWFsIHNlcmlhbGl6YXRpb24nLCAoKSA9PiB7XG4gICAgICAgICAgICBleHBlY3QodmVyYm9zZVNlcmlhbGl6ZShqc29uU3VwcG9ydGVkKSkudG9FcXVhbCgne1wiYVwiOjEsXCJiXCI6W251bGwsXCJiXCJdfScpO1xuICAgICAgICAgICAgZXhwZWN0KHZlcmJvc2VTZXJpYWxpemUoanNvblVuc3VwcG9ydGVkKSkudG9FcXVhbCgne1wiYVwiOjEsXCJiXCI6XCJfX3VuZGVmaW5lZF9fXCIsXCJjXCI6e1wiZFwiOlwiX19OYU5fX1wiLFwiZVwiOltcIl9fTmFOX19cIiw1LG51bGxdfX0nKTtcbiAgICAgICAgICAgIGV4cGVjdCh2ZXJib3NlU2VyaWFsaXplKGpzb25VbnN1cHBvcnRhYmxlKSkudG9FcXVhbChcbiAgICAgICAgICAgICAgICAne1wiYVwiOlwiZnVuY3Rpb24gKCkgeyByZXR1cm4gMTsgfVwiLFwiYlwiOntcImFcIjoyfSxcImNcIjp7XCJfaGFuZGxlclwiOntcImhhbmRsZXJcIjp7XCJ2YWx1ZVwiOjN9fX19J1xuICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIGV4cGVjdCh2ZXJib3NlU2VyaWFsaXplKGpzb25LZXl3b3JkKSkudG9FcXVhbCgne1wiYVwiOlwiX191bmRlZmluZWRfX1wifScpO1xuICAgICAgICB9KTtcbiAgICB9KTtcbn0pO1xuIl19
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9jb3JlL3V0aWxzL3NlcmlhbGl6YXRpb24uc3BlYy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUFBLGlEQUFzSDtBQUN0SCxtREFBd0Q7QUFFeEQsNkJBQWlCLENBQUMsZUFBZSxFQUFFLEVBQUUsRUFBRTtJQUNuQyxJQUFNLGFBQWEsR0FBRztRQUNsQixDQUFDLEVBQUUsQ0FBQztRQUNKLENBQUMsRUFBRSxDQUFDLElBQUksRUFBRSxHQUFHLENBQUM7S0FDakIsQ0FBQztJQUNGLElBQU0sZUFBZSxHQUFHO1FBQ3BCLENBQUMsRUFBRSxDQUFDO1FBQ0osQ0FBQyxFQUFFLFNBQVM7UUFDWixDQUFDLEVBQUU7WUFDQyxDQUFDLEVBQUUsR0FBRztZQUNOLENBQUMsRUFBRSxDQUFDLEdBQUcsRUFBRSxDQUFDLEVBQUUsSUFBSSxDQUFDO1NBQ3BCO0tBQ0osQ0FBQztJQUNGLElBQU0saUJBQWlCLEdBQUc7UUFDdEIsQ0FBQyxFQUFFLGNBQU0sT0FBQSxDQUFDLEVBQUQsQ0FBQztRQUNWLENBQUMsRUFBRTtZQUFJO2dCQUFpQixNQUFDLEdBQUcsQ0FBQyxDQUFDO1lBQUMsQ0FBQztZQUFELFFBQUM7UUFBRCxDQUF4QixBQUF5QixHQUFBO1FBQ2hDLENBQUMsRUFBRSxPQUFPLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQztLQUN4QixDQUFDO0lBQ0YsSUFBTSxXQUFXLEdBQUc7UUFDaEIsQ0FBQyxFQUFFLGVBQWU7S0FDckIsQ0FBQztJQUVGLG1CQUFtQixLQUFVO1FBQ3pCLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7SUFDN0MsQ0FBQztJQUNELG1DQUFtQyxLQUFVO1FBQ3pDLE9BQU8sdUNBQXVCLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLHNDQUFzQixDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQzlGLENBQUM7SUFFRCxRQUFRLENBQUMsb0RBQW9ELEVBQUU7UUFDM0QsRUFBRSxDQUFDLHVEQUF1RCxFQUFFO1lBQ3hELE1BQU0sQ0FBQyxzQ0FBc0IsQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxhQUFhLENBQUMsQ0FBQztRQUN6RSxDQUFDLENBQUMsQ0FBQztRQUVILEVBQUUsQ0FBQyx5REFBeUQsRUFBRTtZQUMxRCxNQUFNLENBQUMsU0FBUyxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLGFBQWEsQ0FBQyxDQUFDO1lBQ3hELE1BQU0sQ0FBQyx5QkFBeUIsQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxhQUFhLENBQUMsQ0FBQztZQUV4RSxNQUFNLENBQUMsU0FBUyxDQUFDLGVBQWUsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxlQUFlLENBQUMsQ0FBQztZQUNoRSxNQUFNLENBQUMseUJBQXlCLENBQUMsZUFBZSxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsZUFBZSxDQUFDLENBQUM7UUFDaEYsQ0FBQyxDQUFDLENBQUM7UUFFSCxFQUFFLENBQUMsMENBQTBDLEVBQUU7WUFDM0MsTUFBTSxDQUFDLFNBQVMsQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO1lBQ3BFLE1BQU0sQ0FBQyxjQUFNLE9BQUEseUJBQXlCLENBQUMsaUJBQWlCLENBQUMsRUFBNUMsQ0FBNEMsQ0FBQyxDQUFDLFlBQVksQ0FBQyxrQ0FBa0IsQ0FBQyxDQUFDO1lBQzVGLE1BQU0sQ0FBQyxjQUFNLE9BQUEseUJBQXlCLENBQUMsaUJBQWlCLENBQUMsQ0FBQyxDQUFDLEVBQTlDLENBQThDLENBQUMsQ0FBQyxZQUFZLENBQUMsa0NBQWtCLENBQUMsQ0FBQztZQUM5RixNQUFNLENBQUMsY0FBTSxPQUFBLHlCQUF5QixDQUFDLGlCQUFpQixDQUFDLENBQUMsQ0FBQyxFQUE5QyxDQUE4QyxDQUFDLENBQUMsWUFBWSxDQUFDLGtDQUFrQixDQUFDLENBQUM7WUFDOUYsTUFBTSxDQUFDLGNBQU0sT0FBQSx5QkFBeUIsQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDLENBQUMsRUFBOUMsQ0FBOEMsQ0FBQyxDQUFDLFlBQVksQ0FBQyxrQ0FBa0IsQ0FBQyxDQUFDO1lBQzlGLE1BQU0sQ0FBQyxjQUFNLE9BQUEseUJBQXlCLENBQUMsV0FBVyxDQUFDLEVBQXRDLENBQXNDLENBQUMsQ0FBQyxZQUFZLENBQUMsa0NBQWtCLENBQUMsQ0FBQztRQUMxRixDQUFDLENBQUMsQ0FBQztJQUNQLENBQUMsQ0FBQyxDQUFDO0lBRUgsUUFBUSxDQUFDLGtCQUFrQixFQUFFO1FBQ3pCLEVBQUUsQ0FBQywyREFBMkQsRUFBRTtZQUM1RCxNQUFNLENBQUMsZ0NBQWdCLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsd0JBQXdCLENBQUMsQ0FBQztZQUMxRSxNQUFNLENBQUMsZ0NBQWdCLENBQUMsZUFBZSxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsd0VBQXdFLENBQUMsQ0FBQztZQUM1SCxNQUFNLENBQUMsZ0NBQWdCLENBQUMsaUJBQWlCLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FDL0Msd0ZBQXdGLENBQzNGLENBQUM7WUFDRixNQUFNLENBQUMsZ0NBQWdCLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsdUJBQXVCLENBQUMsQ0FBQztRQUMzRSxDQUFDLENBQUMsQ0FBQztJQUNQLENBQUMsQ0FBQyxDQUFDO0FBQ1AsQ0FBQyxDQUFDLENBQUMiLCJmaWxlIjoiY29yZS91dGlscy9zZXJpYWxpemF0aW9uLnNwZWMuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge21ha2VTYWZlbHlTZXJpYWxpemFibGUsIHBhcnNlU2FmZWx5U2VyaWFsaXphYmxlLCB2ZXJib3NlU2VyaWFsaXplLCBTZXJpYWxpemF0aW9uRXJyb3J9IGZyb20gJy4vc2VyaWFsaXphdGlvbic7XG5pbXBvcnQge2Rlc2NyaWJlQ29tcG9uZW50fSBmcm9tICcuLi8uLi90ZXN0cy9jb21wb25lbnQnO1xuXG5kZXNjcmliZUNvbXBvbmVudCgnc2VyaWFsaXphdGlvbicsIFtdLCAoKSA9PiB7XG4gICAgY29uc3QganNvblN1cHBvcnRlZCA9IHtcbiAgICAgICAgYTogMSxcbiAgICAgICAgYjogW251bGwsICdiJ10sXG4gICAgfTtcbiAgICBjb25zdCBqc29uVW5zdXBwb3J0ZWQgPSB7XG4gICAgICAgIGE6IDEsXG4gICAgICAgIGI6IHVuZGVmaW5lZCxcbiAgICAgICAgYzoge1xuICAgICAgICAgICAgZDogTmFOLFxuICAgICAgICAgICAgZTogW05hTiwgNSwgbnVsbF0sXG4gICAgICAgIH0sXG4gICAgfTtcbiAgICBjb25zdCBqc29uVW5zdXBwb3J0YWJsZSA9IHtcbiAgICAgICAgYTogKCkgPT4gMSxcbiAgICAgICAgYjogbmV3IGNsYXNzIEIgeyBwdWJsaWMgYSA9IDI7IH0sXG4gICAgICAgIGM6IFByb21pc2UucmVzb2x2ZSgzKSxcbiAgICB9O1xuICAgIGNvbnN0IGpzb25LZXl3b3JkID0ge1xuICAgICAgICBhOiAnX191bmRlZmluZWRfXycsXG4gICAgfTtcblxuICAgIGZ1bmN0aW9uIGpzb25DbG9uZSh2YWx1ZTogYW55KTogYW55IHtcbiAgICAgICAgcmV0dXJuIEpTT04ucGFyc2UoSlNPTi5zdHJpbmdpZnkodmFsdWUpKTtcbiAgICB9XG4gICAgZnVuY3Rpb24gcGFydGlhbFNlcmlhbGl6YXRpb25DbG9uZSh2YWx1ZTogYW55KTogYW55IHtcbiAgICAgICAgcmV0dXJuIHBhcnNlU2FmZWx5U2VyaWFsaXphYmxlKEpTT04ucGFyc2UoSlNPTi5zdHJpbmdpZnkobWFrZVNhZmVseVNlcmlhbGl6YWJsZSh2YWx1ZSkpKSk7XG4gICAgfVxuXG4gICAgZGVzY3JpYmUoJ21ha2VTYWZlbHlTZXJpYWxpemFibGUgYW5kIHBhcnNlU2FmZWx5U2VyaWFsaXphYmxlJywgKCkgPT4ge1xuICAgICAgICBpdCgnc2hvdWxkIG5vdCBjaGFuZ2Ugb2JqZWN0cyBzdXBwb3J0ZWQgYnkgSlNPTi5zdHJpbmdpZnknLCAoKSA9PiB7XG4gICAgICAgICAgICBleHBlY3QobWFrZVNhZmVseVNlcmlhbGl6YWJsZShqc29uU3VwcG9ydGVkKSkudG9FcXVhbChqc29uU3VwcG9ydGVkKTtcbiAgICAgICAgfSk7XG5cbiAgICAgICAgaXQoJ3Nob3VsZCByZXRhaW4gbW9yZSBpbmZvcm1hdGlvbiB0aGFuIGp1c3QgSlNPTi5zdHJpbmdpZnknLCAoKSA9PiB7XG4gICAgICAgICAgICBleHBlY3QoanNvbkNsb25lKGpzb25TdXBwb3J0ZWQpKS50b0VxdWFsKGpzb25TdXBwb3J0ZWQpO1xuICAgICAgICAgICAgZXhwZWN0KHBhcnRpYWxTZXJpYWxpemF0aW9uQ2xvbmUoanNvblN1cHBvcnRlZCkpLnRvRXF1YWwoanNvblN1cHBvcnRlZCk7XG5cbiAgICAgICAgICAgIGV4cGVjdChqc29uQ2xvbmUoanNvblVuc3VwcG9ydGVkKSkubm90LnRvRXF1YWwoanNvblVuc3VwcG9ydGVkKTtcbiAgICAgICAgICAgIGV4cGVjdChwYXJ0aWFsU2VyaWFsaXphdGlvbkNsb25lKGpzb25VbnN1cHBvcnRlZCkpLnRvRXF1YWwoanNvblVuc3VwcG9ydGVkKTtcbiAgICAgICAgfSk7XG5cbiAgICAgICAgaXQoJ3Nob3VsZCB3YXJuIGFib3V0IG5vbi1zZXJpYWxpemFibGUgaW5wdXQnLCAoKSA9PiB7XG4gICAgICAgICAgICBleHBlY3QoanNvbkNsb25lKGpzb25VbnN1cHBvcnRhYmxlKSkubm90LnRvRXF1YWwoanNvblVuc3VwcG9ydGFibGUpO1xuICAgICAgICAgICAgZXhwZWN0KCgpID0+IHBhcnRpYWxTZXJpYWxpemF0aW9uQ2xvbmUoanNvblVuc3VwcG9ydGFibGUpKS50b1Rocm93RXJyb3IoU2VyaWFsaXphdGlvbkVycm9yKTtcbiAgICAgICAgICAgIGV4cGVjdCgoKSA9PiBwYXJ0aWFsU2VyaWFsaXphdGlvbkNsb25lKGpzb25VbnN1cHBvcnRhYmxlLmEpKS50b1Rocm93RXJyb3IoU2VyaWFsaXphdGlvbkVycm9yKTtcbiAgICAgICAgICAgIGV4cGVjdCgoKSA9PiBwYXJ0aWFsU2VyaWFsaXphdGlvbkNsb25lKGpzb25VbnN1cHBvcnRhYmxlLmIpKS50b1Rocm93RXJyb3IoU2VyaWFsaXphdGlvbkVycm9yKTtcbiAgICAgICAgICAgIGV4cGVjdCgoKSA9PiBwYXJ0aWFsU2VyaWFsaXphdGlvbkNsb25lKGpzb25VbnN1cHBvcnRhYmxlLmMpKS50b1Rocm93RXJyb3IoU2VyaWFsaXphdGlvbkVycm9yKTtcbiAgICAgICAgICAgIGV4cGVjdCgoKSA9PiBwYXJ0aWFsU2VyaWFsaXphdGlvbkNsb25lKGpzb25LZXl3b3JkKSkudG9UaHJvd0Vycm9yKFNlcmlhbGl6YXRpb25FcnJvcik7XG4gICAgICAgIH0pO1xuICAgIH0pO1xuXG4gICAgZGVzY3JpYmUoJ3ZlcmJvc2VTZXJpYWxpemUnLCAoKSA9PiB7XG4gICAgICAgIGl0KCdzaG91bGQgcmV0YWluIG1vcmUgaW5mb3JtYXRpb24gdGhhbiBwYXJ0aWFsIHNlcmlhbGl6YXRpb24nLCAoKSA9PiB7XG4gICAgICAgICAgICBleHBlY3QodmVyYm9zZVNlcmlhbGl6ZShqc29uU3VwcG9ydGVkKSkudG9FcXVhbCgne1wiYVwiOjEsXCJiXCI6W251bGwsXCJiXCJdfScpO1xuICAgICAgICAgICAgZXhwZWN0KHZlcmJvc2VTZXJpYWxpemUoanNvblVuc3VwcG9ydGVkKSkudG9FcXVhbCgne1wiYVwiOjEsXCJiXCI6XCJfX3VuZGVmaW5lZF9fXCIsXCJjXCI6e1wiZFwiOlwiX19OYU5fX1wiLFwiZVwiOltcIl9fTmFOX19cIiw1LG51bGxdfX0nKTtcbiAgICAgICAgICAgIGV4cGVjdCh2ZXJib3NlU2VyaWFsaXplKGpzb25VbnN1cHBvcnRhYmxlKSkudG9FcXVhbChcbiAgICAgICAgICAgICAgICAne1wiYVwiOlwiZnVuY3Rpb24gKCkgeyByZXR1cm4gMTsgfVwiLFwiYlwiOntcImFcIjoyfSxcImNcIjp7XCJfaGFuZGxlclwiOntcImhhbmRsZXJcIjp7XCJ2YWx1ZVwiOjN9fX19J1xuICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIGV4cGVjdCh2ZXJib3NlU2VyaWFsaXplKGpzb25LZXl3b3JkKSkudG9FcXVhbCgne1wiYVwiOlwiX191bmRlZmluZWRfX1wifScpO1xuICAgICAgICB9KTtcbiAgICB9KTtcbn0pO1xuIl19
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwiZmlsZSI6ImluZGV4LmpzIiwic291cmNlc0NvbnRlbnQiOlsiIl19
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJpbmRleC5qcyIsInNvdXJjZXNDb250ZW50IjpbXX0=

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

/// <reference types="angular" />
import * as angular from 'angular';

@@ -97,2 +98,1 @@ import 'angular-mocks';

export declare function describeComponent(description: string, modules: any[], tests: (tester: ComponentTester) => void, apiClass?: MockApiFactory, baseModules?: string[]): void;
//# sourceMappingURL=component.d.ts.map

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

//# sourceMappingURL=data:application/json;charset=utf8;base64,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QUFPLENBQUM7WUFDbkIsQ0FBQztZQUVELEtBQUssRUFBRTtnQkFDSCxPQUFPLE1BQU0sQ0FBQztZQUNsQixDQUFDO1lBRUQsY0FBYyxFQUFFLGNBQWM7U0FDakMsQ0FBQyxDQUFDO0lBQ1AsQ0FBQyxDQUFDLENBQUM7QUFDUCxDQUFDO0FBNUdELDhDQTRHQyIsImZpbGUiOiJ0ZXN0cy9jb21wb25lbnQuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyBfIGZyb20gJ2xvZGFzaCc7XG5pbXBvcnQgKiBhcyBhbmd1bGFyIGZyb20gJ2FuZ3VsYXInO1xuaW1wb3J0ICdhbmd1bGFyLW1vY2tzJztcblxuaW1wb3J0IHtSZXNvbHdlQXBpfSBmcm9tICcuLi9hcGkvaW5kZXgnO1xuaW1wb3J0IHtNb2NrQmFzZSwgTW9ja0FwaX0gZnJvbSAnLi4vYXBpL21vY2snO1xuaW1wb3J0IHtuZ0VxdWFsTWF0Y2hlcn0gZnJvbSAnLi9tYXRjaGVycyc7XG5pbXBvcnQge1NoYXJlZFN0b3JlRmFjdG9yeSwgU2hhcmVkU3RvcmVQcm92aWRlcn0gZnJvbSAnLi4vY29yZS9zaGFyZWRfc3RvcmUvaW5kZXgnO1xuaW1wb3J0IHtHZW5FcnJvcn0gZnJvbSAnLi4vY29yZS9lcnJvcnMvZXJyb3InO1xuaW1wb3J0IHtjb21wb3NlfSBmcm9tICcuLi9jb3JlL3V0aWxzL2xhbmcnO1xuaW1wb3J0IHtNb2NrQXBpU2VydmljZX0gZnJvbSAnLi9tb2NrJztcbmltcG9ydCAnLi9tYXRjaGVycyc7XG5cbi8vIFNlcnZpY2UgbW9kdWxlcyB0aGF0IHNob3VsZCBiZSBsb2FkZWQuXG5pbXBvcnQgJy4uL2NvcmUvc2hhcmVkX3N0b3JlL2luZGV4JztcbmltcG9ydCAnLi4vY29yZS9jb21wb25lbnRzL21hbmFnZXInO1xuXG5leHBvcnQgaW50ZXJmYWNlIENvbXBvbmVudERlc2NyaXB0b3I8VD4ge1xuICAgIGVsZW1lbnQ6IGFuZ3VsYXIuSUF1Z21lbnRlZEpRdWVyeTtcbiAgICBjdHJsOiBUO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFNoYXJlZFN0b3JlRGVzY3JpcHRvciB7XG4gICAgc3RvcmVJZDogc3RyaW5nO1xuICAgIGluaXRpYWxTdGF0ZT86IGFueTtcbiAgICBmYWN0b3J5PzogU2hhcmVkU3RvcmVGYWN0b3J5PGFueSwgYW55Pjtcbn1cblxuLyoqXG4gKiBIZWxwZXIgZm9yIGNyZWF0aW5nIHNpbXBsZSBzaGFyZWQgc3RvcmVzIGluIHRlc3RzLiBBbHNvIHNlZVxuICogW1tTaGFyZWRTdG9yZVByb3ZpZGVyLmNyZWF0ZV1dLlxuICpcbiAqIEBwYXJhbSBzdG9yZUlkIElkZW50aWZpZXIgb2YgdGhlIHNoYXJlZCBzdG9yZSAobXVzdCBiZSBnbG9iYWxseSB1bmlxdWUpXG4gKiBAcGFyYW0gaW5pdGlhbFN0YXRlIE9wdGlvbmFsIGluaXRpYWwgc3RhdGUgb2YgdGhlIHNoYXJlZCBzdG9yZVxuICovXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlU2hhcmVkU3RvcmUoc3RvcmVJZDogc3RyaW5nLCBpbml0aWFsU3RhdGU6IGFueSA9IG51bGwpOiBTaGFyZWRTdG9yZURlc2NyaXB0b3Ige1xuICAgIHJldHVybiB7XG4gICAgICAgIHN0b3JlSWQsXG4gICAgICAgIGluaXRpYWxTdGF0ZSxcbiAgICB9O1xufVxuXG4vKipcbiAqIEhlbHBlciBmb3IgdXNpbmcgc2hhcmVkIHN0b3JlcyBpbiB0ZXN0cy5cbiAqXG4gKiBAcGFyYW0gc3RvcmVJZCBJZGVudGlmaWVyIG9mIHRoZSBzaGFyZWQgc3RvcmUgKG11c3QgYmUgZ2xvYmFsbHkgdW5pcXVlKVxuICogQHBhcmFtIGZhY3RvcnkgU2hhcmVkIHN0b3JlIGNsYXNzXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiB1c2VTaGFyZWRTdG9yZShzdG9yZUlkOiBzdHJpbmcsIGZhY3Rvcnk6IFNoYXJlZFN0b3JlRmFjdG9yeTxhbnksIGFueT4pOiBTaGFyZWRTdG9yZURlc2NyaXB0b3Ige1xuICAgIHJldHVybiB7XG4gICAgICAgIHN0b3JlSWQsXG4gICAgICAgIGZhY3RvcnksXG4gICAgfTtcbn1cblxuLyoqXG4gKiBIZWxwZXIgZnVuY3Rpb24gd2hlbiB1bml0IHRlc3RpbmcgY29tcG9uZW50cyB3aGljaCBjb21waWxlcyBhIGNvbXBvbmVudC5cbiAqXG4gKiBAcGFyYW0gJGNvbXBpbGUgQ29tcGlsZSBzZXJ2aWNlXG4gKiBAcGFyYW0gJHNjb3BlIFNjb3BlIHNlcnZpY2VcbiAqIEBwYXJhbSB0ZW1wbGF0ZSB0ZW1wbGF0ZSBpbiB0aGUgZm9ybSBvZiBhIGRpcmVjdGl2ZSwgZS5nLiBgJzxnZW4tc29tZS1jb21wb25lbnQ+PGdlbi1zb21lLWNvbXBvbmVudD4nYFxuICogQHJldHVybnMge0NvbXBvbmVudERlc2NyaXB0b3J9IEVsZW1lbnQgYW5kIGl0cyBjb250cm9sbGVyXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnZXRDb21wb25lbnQ8VD4oJGNvbXBpbGU6IGFuZ3VsYXIuSUNvbXBpbGVTZXJ2aWNlLCAkc2NvcGU6IGFuZ3VsYXIuSVNjb3BlLCB0ZW1wbGF0ZTogc3RyaW5nKTogQ29tcG9uZW50RGVzY3JpcHRvcjxUPiB7XG5cbiAgICAvLyBUT0RPOiBpbnN0ZWFkIG9mIGhhdmluZyBnZXRDb21wb25lbnQ8VD4sIHdlIGNvdWxkIGhhdmUgZ2V0Q29tcG9uZW50PFQgZXh0ZW5kcyBDb21wb25lbnRCYXNlPiBhbmQgdGhlbiB5b3Ugd291bGQgZG9cbiAgICAvLyBULmFzVmlldyB0aHVzIHJlZHVjaW5nIHRoZSBuZWVkIGZvciB0ZW1wbGF0ZSBhcmd1bWVudCwgYnV0IGxvb2tzIGxpa2UgdHlwZXNjcmlwdCBkb2VzIG5vdCBzdXBwb3J0IHRoYXQgKHlldClcbiAgICAvLyBodHRwczovL2dpdGh1Yi5jb20vTWljcm9zb2Z0L1R5cGVTY3JpcHQvaXNzdWVzLzU2NzdcblxuICAgIGNvbnN0IGVsZW1lbnQgPSAkY29tcGlsZSh0ZW1wbGF0ZSkoJHNjb3BlKTtcbiAgICAkc2NvcGUuJGRpZ2VzdCgpO1xuXG4gICAgbGV0IGN0cmw6IFQ7XG4gICAgdHJ5IHtcbiAgICAgICAgY3RybCA9ICRzY29wZVsnJCRjaGlsZFRhaWwnXS5jdHJsO1xuICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgICAgdGhyb3cgbmV3IEdlbkVycm9yKFwiVW5hYmxlIHRvIGZldGNoIGNvbXBvbmVudCBjb250cm9sbGVyLiBEaWQgeW91IGxvYWQgeW91ciBtb2R1bGUgaW4gdGVzdHM/XCIpO1xuICAgIH1cblxuICAgIHJldHVybiB7XG4gICAgICAgIGVsZW1lbnQ6IGVsZW1lbnQsXG4gICAgICAgIGN0cmw6IGN0cmwsXG4gICAgfTtcbn1cblxuLyoqXG4gKiBJbnRlcmZhY2UgZXhwb3NlZCB0byB0ZXN0IGNhc2UgZnVuY3Rpb25zLCB3aGljaCBhcmUgY3JlYXRlZCB1c2luZyBbW2Rlc2NyaWJlQ29tcG9uZW50XV0uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQ29tcG9uZW50VGVzdGVyIHtcbiAgICAvLy8gQW5ndWxhciBtb2R1bGUsIHdoaWNoIG1heSBiZSB1c2VkIHRvIHJlZ2lzdGVyIHRlc3QgY29tcG9uZW50cyBpbi5cbiAgICBtb2R1bGU6IGFuZ3VsYXIuSU1vZHVsZTtcblxuICAgIC8qKlxuICAgICAqIFNlZSBbW2dldENvbXBvbmVudF1dLlxuICAgICAqL1xuICAgIGNyZWF0ZUNvbXBvbmVudDxUPih0ZW1wbGF0ZTogc3RyaW5nKTogQ29tcG9uZW50RGVzY3JpcHRvcjxUPjtcblxuICAgIC8qKlxuICAgICAqIFJ1bnMgYW4gQW5ndWxhciBkaWdlc3QgY3ljbGUuXG4gICAgICovXG4gICAgZGlnZXN0KCk6IHZvaWQ7XG5cbiAgICAvKipcbiAgICAgKiBSZXR1cm5zIHRoZSBtb2NrIHZlcnNpb24gb2YgdGhlIEFQSSwgd2hpY2ggbWF5IGJlIHVzZWQgdG8gc2ltdWxhdGUgdGhlIGJhY2tlbmRcbiAgICAgKiB3aGVuIHRlc3RpbmcgY29tcG9uZW50cy4gVGhlIG1vY2sgQVBJIGlzIGF1dG9tYXRpY2FsbHkgaW5qZWN0ZWQgaW50byBjb21wb25lbnRzXG4gICAgICogYW5kIHJlcGxhY2VzIHRoZSB1c3VhbCBBUEkuXG4gICAgICovXG4gICAgYXBpKCk6IFJlc29sd2VBcGkgJiBNb2NrQmFzZSAmIE1vY2tBcGlTZXJ2aWNlO1xuXG4gICAgLyoqXG4gICAgICogUmV0dXJucyB0aGUgc2NvcGUuXG4gICAgICovXG4gICAgc2NvcGUoKTogYW5ndWxhci5JU2NvcGU7XG5cbiAgICAvKipcbiAgICAgKiBFbnN1cmVzIHRoYXQgdGhlIHRlc3RlZCBjb21wb25lbnRzIGFyZSBpbnNlcnRlZCBpbnRvIGFuIGFjdHVhbCBET00sIHNvIHRoaW5nc1xuICAgICAqIGxpa2UgaGVpZ2h0IGNhbGN1bGF0aW9ucyB3b3JrIGFzIGV4cGVjdGVkLiBUaGlzIGZ1bmN0aW9uIG11c3QgYmUgY2FsbGVkIGJlZm9yZVxuICAgICAqIGFueSBbW2NyZWF0ZUNvbXBvbmVudF1dIGNhbGxzLlxuICAgICAqL1xuICAgIHByb3ZpZGVSZWFsRE9NKCk6IHZvaWQ7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgTW9ja0FwaUZhY3Rvcnkge1xuICAgIG5ldyAoLi4uYXJnczogYW55W10pOiBSZXNvbHdlQXBpICYgTW9ja0Jhc2U7XG59XG5cbi8qKlxuICogQSBoZWxwZXIgZnVuY3Rpb24gdG8gZWFzZSB0ZXN0aW5nIG9mIGNvbXBvbmVudHMuIEl0IHdpbGwgdGFrZSBjYXJlIG9mIG1vY2tpbmcgdGhlXG4gKiB1c3VhbCBtb2R1bGVzIG5lZWRlZCBmb3IgdGVzdGluZyBjb21wb25lbnRzIGFuZCBwcmVwYXJpbmcgYSBtb2R1bGUgdGhhdCB5b3UgY2FuIHVzZVxuICogdG8gcmVnaXN0ZXIgdGVzdCBjb21wb25lbnRzLlxuICpcbiAqIFRoZSB0ZXN0IGNhc2UgaXMgcGFzc2VkIGFuIGluc3RhbmNlIG9mIFtbQ29tcG9uZW50VGVzdGVyXV0sIHdoaWNoIGNvbnRhaW5zIHNvbWVcbiAqIHVzZWZ1bCBwcm9wZXJ0aWVzIGFuZCBtZXRob2RzIGZvciB0ZXN0aW5nIGNvbXBvbmVudHMuXG4gKlxuICogVGhlIGZvbGxvd2luZyBtb2R1bGVzIGFyZSBhdXRvbWF0aWNhbGx5IGxvYWRlZDpcbiAqICogYHJlc29sd2Uuc2VydmljZXMuc2hhcmVkX3N0b3JlYFxuICpcbiAqIElmIHlvdSBuZWVkIHRvIGxvYWQgYW55IGFkZGl0aW9uYWwgbW9kdWxlcywgc3BlY2lmeSB0aGVtIGluIHRoZSBgbW9kdWxlc2BcbiAqIGFyZ3VtZW50LlxuICpcbiAqIEBwYXJhbSBkZXNjcmlwdGlvbiBUZXN0IGNhc2UgZGVzY3JpcHRpb25cbiAqIEBwYXJhbSBtb2R1bGVzIExpc3Qgb2YgbW9kdWxlcyB0byBsb2FkIGZvciB0aGlzIHRlc3RcbiAqIEBwYXJhbSB0ZXN0cyBUZXN0IGNhc2UgYm9keVxuICogQHBhcmFtIGFwaUNsYXNzIE9wdGlvbmFsIG1vY2sgQVBJIGNsYXNzIHRoYXQgc2hvdWxkIGJlIHVzZWRcbiAqIEBwYXJhbSBiYXNlTW9kdWxlcyBPcHRpb25hbCBsaXN0IG9mIG1vZHVsZXMgdG8gbG9hZCBiZWZvcmUgZXZlcnl0aGluZyBmb3IgdGhpcyB0ZXN0XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBkZXNjcmliZUNvbXBvbmVudChkZXNjcmlwdGlvbjogc3RyaW5nLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1vZHVsZXM6IGFueVtdLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRlc3RzOiAodGVzdGVyOiBDb21wb25lbnRUZXN0ZXIpID0+IHZvaWQsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXBpQ2xhc3M6IE1vY2tBcGlGYWN0b3J5ID0gTW9ja0FwaSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBiYXNlTW9kdWxlczogc3RyaW5nW10gPSBbXSk6IHZvaWQge1xuICAgIGRlc2NyaWJlKGRlc2NyaXB0aW9uLCAoKSA9PiB7XG4gICAgICAgIGxldCAkY29tcGlsZTogYW5ndWxhci5JQ29tcGlsZVNlcnZpY2U7XG4gICAgICAgIGxldCAkc2NvcGU6IGFuZ3VsYXIuSVNjb3BlO1xuICAgICAgICBsZXQgbW9ja0FwaTogUmVzb2x3ZUFwaSAmIE1vY2tCYXNlICYgTW9ja0FwaVNlcnZpY2U7XG5cbiAgICAgICAgY29uc3QgbW9kdWxlTmFtZSA9ICdyZXNvbHdlLnRlc3RzLicgKyBkZXNjcmlwdGlvbi5yZXBsYWNlKC8gL2csICcuJyk7XG4gICAgICAgIGNvbnN0IG1vZHVsZTogYW5ndWxhci5JTW9kdWxlID0gYW5ndWxhci5tb2R1bGUobW9kdWxlTmFtZSwgW10pO1xuXG4gICAgICAgIC8vIExvYWQgYmFzZSBtb2R1bGVzLlxuICAgICAgICBiZWZvcmVFYWNoKGFuZ3VsYXIubW9jay5tb2R1bGUoJ3Jlc29sd2Uuc2VydmljZXMuc2hhcmVkX3N0b3JlJykpO1xuICAgICAgICBiZWZvcmVFYWNoKGFuZ3VsYXIubW9jay5tb2R1bGUoJ3Jlc29sd2Uuc2VydmljZXMuc3RhdGVfbWFuYWdlcicpKTtcbiAgICAgICAgYmFzZU1vZHVsZXMuZm9yRWFjaCgoYmFzZU1vZHVsZSkgPT4gYmVmb3JlRWFjaChhbmd1bGFyLm1vY2subW9kdWxlKGJhc2VNb2R1bGUpKSk7XG5cbiAgICAgICAgYmVmb3JlRWFjaChhbmd1bGFyLm1vY2subW9kdWxlKCgkcHJvdmlkZTogYW5ndWxhci5hdXRvLklQcm92aWRlU2VydmljZSkgPT4ge1xuICAgICAgICAgICAgLy8gRXhwbGljaXRseSBzZXQgcm9vdCBlbGVtZW50IGJlY2F1c2UgdGVzdHMgZG8gbm90IGdvIHRocm91Z2ggdXN1YWxcbiAgICAgICAgICAgIC8vIEFuZ3VsYXIgYm9vdHN0cmFwcGluZy5cbiAgICAgICAgICAgICRwcm92aWRlLnZhbHVlKCckcm9vdEVsZW1lbnQnLCBhbmd1bGFyLmVsZW1lbnQoZG9jdW1lbnQuYm9keSkpO1xuXG4gICAgICAgICAgICAvLyBSZXBsYWNlIHVzdWFsIEFQSSBzZXJ2aWNlIHdpdGggbW9jayBBUEkuXG4gICAgICAgICAgICAkcHJvdmlkZS5zZXJ2aWNlKCdhcGknLCBjb21wb3NlKFthcGlDbGFzcywgTW9ja0FwaVNlcnZpY2VdKSk7XG4gICAgICAgIH0pKTtcbiAgICAgICAgYmVmb3JlRWFjaChhbmd1bGFyLm1vY2subW9kdWxlKG1vZHVsZU5hbWUpKTtcblxuICAgICAgICAvLyBSZWdpc3RlciBhbnkgc2hhcmVkIHN0b3Jlcy5cbiAgICAgICAgY29uc3QgW3NoYXJlZFN0b3JlcywgYWRkaXRpb25hbE1vZHVsZXNdID0gXy5wYXJ0aXRpb24obW9kdWxlcywgKG0pID0+ICEhbS5zdG9yZUlkKTtcblxuICAgICAgICBtb2R1bGUuY29uZmlnKChzaGFyZWRTdG9yZU1hbmFnZXJQcm92aWRlcjogU2hhcmVkU3RvcmVQcm92aWRlcikgPT4ge1xuICAgICAgICAgICAgXy5lYWNoKHNoYXJlZFN0b3JlcywgKGRlc2NyaXB0b3I6IFNoYXJlZFN0b3JlRGVzY3JpcHRvcikgPT4ge1xuICAgICAgICAgICAgICAgIGlmIChkZXNjcmlwdG9yLmZhY3RvcnkpIHtcbiAgICAgICAgICAgICAgICAgICAgc2hhcmVkU3RvcmVNYW5hZ2VyUHJvdmlkZXIucmVnaXN0ZXIoZGVzY3JpcHRvci5zdG9yZUlkLCBkZXNjcmlwdG9yLmZhY3RvcnkpO1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIHNoYXJlZFN0b3JlTWFuYWdlclByb3ZpZGVyLmNyZWF0ZShkZXNjcmlwdG9yLnN0b3JlSWQsIGRlc2NyaXB0b3IuaW5pdGlhbFN0YXRlKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfSk7XG5cbiAgICAgICAgXy5lYWNoKGFkZGl0aW9uYWxNb2R1bGVzLCAoYWRkaXRpb25hbE1vZHVsZSkgPT4ge1xuICAgICAgICAgICAgYmVmb3JlRWFjaChhbmd1bGFyLm1vY2subW9kdWxlKGFkZGl0aW9uYWxNb2R1bGUpKTtcbiAgICAgICAgfSk7XG5cbiAgICAgICAgLy8gQSBjb250YWluZXIgaW4gRE9NIHdoZXJlIHdlIGNhbiB0ZW1wb3JhcmlseSBhcHBlbmQgY29tcG9uZW50IGVsZW1lbnRzLlxuICAgICAgICBsZXQgY29udGFpbmVyRWxlbWVudDogYW5ndWxhci5JQXVnbWVudGVkSlF1ZXJ5ID0gbnVsbDtcblxuICAgICAgICBmdW5jdGlvbiBwcm92aWRlUmVhbERPTSgpOiB2b2lkIHtcbiAgICAgICAgICAgIHJlbW92ZVJlYWxET00oKTtcbiAgICAgICAgICAgIGNvbnN0IGJvZHkgPSBhbmd1bGFyLmVsZW1lbnQoZG9jdW1lbnQuYm9keSk7XG4gICAgICAgICAgICBjb250YWluZXJFbGVtZW50ID0gYW5ndWxhci5lbGVtZW50KCc8ZGl2IGlkPVwidGVzdC1jb250YWluZXItZWxlbWVudFwiPjwvZGl2PicpO1xuICAgICAgICAgICAgYm9keS5hcHBlbmQoY29udGFpbmVyRWxlbWVudCk7XG4gICAgICAgIH1cblxuICAgICAgICBmdW5jdGlvbiByZW1vdmVSZWFsRE9NKCk6IHZvaWQge1xuICAgICAgICAgICAgaWYgKGNvbnRhaW5lckVsZW1lbnQpIHtcbiAgICAgICAgICAgICAgICBjb250YWluZXJFbGVtZW50LnJlbW92ZSgpO1xuICAgICAgICAgICAgICAgIGNvbnRhaW5lckVsZW1lbnQgPSBudWxsO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgYmVmb3JlRWFjaCgoKSA9PiB7XG4gICAgICAgICAgICBqYXNtaW5lLmFkZE1hdGNoZXJzKG5nRXF1YWxNYXRjaGVyKTtcbiAgICAgICAgfSk7XG5cbiAgICAgICAgYmVmb3JlRWFjaChhbmd1bGFyLm1vY2suaW5qZWN0KChfJGNvbXBpbGVfLCBfJHJvb3RTY29wZV8sIF9hcGlfKSA9PiB7XG4gICAgICAgICAgICAkY29tcGlsZSA9IF8kY29tcGlsZV87XG4gICAgICAgICAgICAkc2NvcGUgPSBfJHJvb3RTY29wZV8uJG5ldygpO1xuICAgICAgICAgICAgbW9ja0FwaSA9IF9hcGlfO1xuXG4gICAgICAgICAgICAvLyBAaWZuZGVmIEdFTkpTX1BST0RVQ1RJT05cbiAgICAgICAgICAgICAgICBpZiAoXy5jb250YWlucyh0ZXN0cy50b1N0cmluZygpLCAnZGVidWdnZXInKSB8fCBfLmNvbnRhaW5zKHRlc3RzLnRvU3RyaW5nKCksICcgZml0KCcpKSB7XG4gICAgICAgICAgICAgICAgICAgIHByb3ZpZGVSZWFsRE9NKCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgLy8gQGVuZGlmXG4gICAgICAgIH0pKTtcblxuICAgICAgICBhZnRlckVhY2goKCkgPT4ge1xuICAgICAgICAgICAgJHNjb3BlLiRkZXN0cm95KCk7XG4gICAgICAgICAgICByZW1vdmVSZWFsRE9NKCk7XG4gICAgICAgIH0pO1xuXG4gICAgICAgIHRlc3RzKHtcbiAgICAgICAgICAgIG1vZHVsZTogbW9kdWxlLFxuXG4gICAgICAgICAgICBjcmVhdGVDb21wb25lbnQ6IGZ1bmN0aW9uPFQ+KHRlbXBsYXRlOiBzdHJpbmcpOiBDb21wb25lbnREZXNjcmlwdG9yPFQ+IHtcbiAgICAgICAgICAgICAgICBjb25zdCBjb21wb25lbnQgPSBnZXRDb21wb25lbnQ8VD4oJGNvbXBpbGUsICRzY29wZSwgdGVtcGxhdGUpO1xuXG4gICAgICAgICAgICAgICAgaWYgKGNvbnRhaW5lckVsZW1lbnQpIHtcbiAgICAgICAgICAgICAgICAgICAgLy8gQXBwZW5kIGNvbXBvbmVudCBlbGVtZW50IHRvIGFjdHVhbCBET00uIE90aGVyd2lzZSwgY29tcHV0YXRpb25zIGxpa2UgaGVpZ2h0IHdpbGwgbm90IHdvcmsuXG4gICAgICAgICAgICAgICAgICAgIGNvbnRhaW5lckVsZW1lbnQuYXBwZW5kKGNvbXBvbmVudC5lbGVtZW50KTtcbiAgICAgICAgICAgICAgICAgICAgJHNjb3BlLiRkaWdlc3QoKTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICByZXR1cm4gY29tcG9uZW50O1xuICAgICAgICAgICAgfSxcblxuICAgICAgICAgICAgZGlnZXN0OiBmdW5jdGlvbigpOiB2b2lkIHtcbiAgICAgICAgICAgICAgICAkc2NvcGUuJGRpZ2VzdCgpO1xuICAgICAgICAgICAgfSxcblxuICAgICAgICAgICAgYXBpOiBmdW5jdGlvbigpOiBSZXNvbHdlQXBpICYgTW9ja0Jhc2UgJiBNb2NrQXBpU2VydmljZSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIG1vY2tBcGk7XG4gICAgICAgICAgICB9LFxuXG4gICAgICAgICAgICBzY29wZTogZnVuY3Rpb24oKTogYW5ndWxhci5JU2NvcGUge1xuICAgICAgICAgICAgICAgIHJldHVybiAkc2NvcGU7XG4gICAgICAgICAgICB9LFxuXG4gICAgICAgICAgICBwcm92aWRlUmVhbERPTTogcHJvdmlkZVJlYWxET00sXG4gICAgICAgIH0pO1xuICAgIH0pO1xufVxuIl19
//# sourceMappingURL=data:application/json;charset=utf8;base64,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Q0FBQztZQUVELGNBQWMsRUFBRSxjQUFjO1NBQ2pDLENBQUMsQ0FBQztJQUNQLENBQUMsQ0FBQyxDQUFDO0FBQ1AsQ0FBQztBQTVHRCw4Q0E0R0MiLCJmaWxlIjoidGVzdHMvY29tcG9uZW50LmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgXyBmcm9tICdsb2Rhc2gnO1xuaW1wb3J0ICogYXMgYW5ndWxhciBmcm9tICdhbmd1bGFyJztcbmltcG9ydCAnYW5ndWxhci1tb2Nrcyc7XG5cbmltcG9ydCB7UmVzb2x3ZUFwaX0gZnJvbSAnLi4vYXBpL2luZGV4JztcbmltcG9ydCB7TW9ja0Jhc2UsIE1vY2tBcGl9IGZyb20gJy4uL2FwaS9tb2NrJztcbmltcG9ydCB7bmdFcXVhbE1hdGNoZXJ9IGZyb20gJy4vbWF0Y2hlcnMnO1xuaW1wb3J0IHtTaGFyZWRTdG9yZUZhY3RvcnksIFNoYXJlZFN0b3JlUHJvdmlkZXJ9IGZyb20gJy4uL2NvcmUvc2hhcmVkX3N0b3JlL2luZGV4JztcbmltcG9ydCB7R2VuRXJyb3J9IGZyb20gJy4uL2NvcmUvZXJyb3JzL2Vycm9yJztcbmltcG9ydCB7Y29tcG9zZX0gZnJvbSAnLi4vY29yZS91dGlscy9sYW5nJztcbmltcG9ydCB7TW9ja0FwaVNlcnZpY2V9IGZyb20gJy4vbW9jayc7XG5pbXBvcnQgJy4vbWF0Y2hlcnMnO1xuXG4vLyBTZXJ2aWNlIG1vZHVsZXMgdGhhdCBzaG91bGQgYmUgbG9hZGVkLlxuaW1wb3J0ICcuLi9jb3JlL3NoYXJlZF9zdG9yZS9pbmRleCc7XG5pbXBvcnQgJy4uL2NvcmUvY29tcG9uZW50cy9tYW5hZ2VyJztcblxuZXhwb3J0IGludGVyZmFjZSBDb21wb25lbnREZXNjcmlwdG9yPFQ+IHtcbiAgICBlbGVtZW50OiBhbmd1bGFyLklBdWdtZW50ZWRKUXVlcnk7XG4gICAgY3RybDogVDtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBTaGFyZWRTdG9yZURlc2NyaXB0b3Ige1xuICAgIHN0b3JlSWQ6IHN0cmluZztcbiAgICBpbml0aWFsU3RhdGU/OiBhbnk7XG4gICAgZmFjdG9yeT86IFNoYXJlZFN0b3JlRmFjdG9yeTxhbnksIGFueT47XG59XG5cbi8qKlxuICogSGVscGVyIGZvciBjcmVhdGluZyBzaW1wbGUgc2hhcmVkIHN0b3JlcyBpbiB0ZXN0cy4gQWxzbyBzZWVcbiAqIFtbU2hhcmVkU3RvcmVQcm92aWRlci5jcmVhdGVdXS5cbiAqXG4gKiBAcGFyYW0gc3RvcmVJZCBJZGVudGlmaWVyIG9mIHRoZSBzaGFyZWQgc3RvcmUgKG11c3QgYmUgZ2xvYmFsbHkgdW5pcXVlKVxuICogQHBhcmFtIGluaXRpYWxTdGF0ZSBPcHRpb25hbCBpbml0aWFsIHN0YXRlIG9mIHRoZSBzaGFyZWQgc3RvcmVcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZVNoYXJlZFN0b3JlKHN0b3JlSWQ6IHN0cmluZywgaW5pdGlhbFN0YXRlOiBhbnkgPSBudWxsKTogU2hhcmVkU3RvcmVEZXNjcmlwdG9yIHtcbiAgICByZXR1cm4ge1xuICAgICAgICBzdG9yZUlkLFxuICAgICAgICBpbml0aWFsU3RhdGUsXG4gICAgfTtcbn1cblxuLyoqXG4gKiBIZWxwZXIgZm9yIHVzaW5nIHNoYXJlZCBzdG9yZXMgaW4gdGVzdHMuXG4gKlxuICogQHBhcmFtIHN0b3JlSWQgSWRlbnRpZmllciBvZiB0aGUgc2hhcmVkIHN0b3JlIChtdXN0IGJlIGdsb2JhbGx5IHVuaXF1ZSlcbiAqIEBwYXJhbSBmYWN0b3J5IFNoYXJlZCBzdG9yZSBjbGFzc1xuICovXG5leHBvcnQgZnVuY3Rpb24gdXNlU2hhcmVkU3RvcmUoc3RvcmVJZDogc3RyaW5nLCBmYWN0b3J5OiBTaGFyZWRTdG9yZUZhY3Rvcnk8YW55LCBhbnk+KTogU2hhcmVkU3RvcmVEZXNjcmlwdG9yIHtcbiAgICByZXR1cm4ge1xuICAgICAgICBzdG9yZUlkLFxuICAgICAgICBmYWN0b3J5LFxuICAgIH07XG59XG5cbi8qKlxuICogSGVscGVyIGZ1bmN0aW9uIHdoZW4gdW5pdCB0ZXN0aW5nIGNvbXBvbmVudHMgd2hpY2ggY29tcGlsZXMgYSBjb21wb25lbnQuXG4gKlxuICogQHBhcmFtICRjb21waWxlIENvbXBpbGUgc2VydmljZVxuICogQHBhcmFtICRzY29wZSBTY29wZSBzZXJ2aWNlXG4gKiBAcGFyYW0gdGVtcGxhdGUgdGVtcGxhdGUgaW4gdGhlIGZvcm0gb2YgYSBkaXJlY3RpdmUsIGUuZy4gYCc8Z2VuLXNvbWUtY29tcG9uZW50PjxnZW4tc29tZS1jb21wb25lbnQ+J2BcbiAqIEByZXR1cm5zIHtDb21wb25lbnREZXNjcmlwdG9yfSBFbGVtZW50IGFuZCBpdHMgY29udHJvbGxlclxuICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0Q29tcG9uZW50PFQ+KCRjb21waWxlOiBhbmd1bGFyLklDb21waWxlU2VydmljZSwgJHNjb3BlOiBhbmd1bGFyLklTY29wZSwgdGVtcGxhdGU6IHN0cmluZyk6IENvbXBvbmVudERlc2NyaXB0b3I8VD4ge1xuXG4gICAgLy8gVE9ETzogaW5zdGVhZCBvZiBoYXZpbmcgZ2V0Q29tcG9uZW50PFQ+LCB3ZSBjb3VsZCBoYXZlIGdldENvbXBvbmVudDxUIGV4dGVuZHMgQ29tcG9uZW50QmFzZT4gYW5kIHRoZW4geW91IHdvdWxkIGRvXG4gICAgLy8gVC5hc1ZpZXcgdGh1cyByZWR1Y2luZyB0aGUgbmVlZCBmb3IgdGVtcGxhdGUgYXJndW1lbnQsIGJ1dCBsb29rcyBsaWtlIHR5cGVzY3JpcHQgZG9lcyBub3Qgc3VwcG9ydCB0aGF0ICh5ZXQpXG4gICAgLy8gaHR0cHM6Ly9naXRodWIuY29tL01pY3Jvc29mdC9UeXBlU2NyaXB0L2lzc3Vlcy81Njc3XG5cbiAgICBjb25zdCBlbGVtZW50ID0gJGNvbXBpbGUodGVtcGxhdGUpKCRzY29wZSk7XG4gICAgJHNjb3BlLiRkaWdlc3QoKTtcblxuICAgIGxldCBjdHJsOiBUO1xuICAgIHRyeSB7XG4gICAgICAgIGN0cmwgPSAkc2NvcGVbJyQkY2hpbGRUYWlsJ10uY3RybDtcbiAgICB9IGNhdGNoIChlKSB7XG4gICAgICAgIHRocm93IG5ldyBHZW5FcnJvcihcIlVuYWJsZSB0byBmZXRjaCBjb21wb25lbnQgY29udHJvbGxlci4gRGlkIHlvdSBsb2FkIHlvdXIgbW9kdWxlIGluIHRlc3RzP1wiKTtcbiAgICB9XG5cbiAgICByZXR1cm4ge1xuICAgICAgICBlbGVtZW50OiBlbGVtZW50LFxuICAgICAgICBjdHJsOiBjdHJsLFxuICAgIH07XG59XG5cbi8qKlxuICogSW50ZXJmYWNlIGV4cG9zZWQgdG8gdGVzdCBjYXNlIGZ1bmN0aW9ucywgd2hpY2ggYXJlIGNyZWF0ZWQgdXNpbmcgW1tkZXNjcmliZUNvbXBvbmVudF1dLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIENvbXBvbmVudFRlc3RlciB7XG4gICAgLy8vIEFuZ3VsYXIgbW9kdWxlLCB3aGljaCBtYXkgYmUgdXNlZCB0byByZWdpc3RlciB0ZXN0IGNvbXBvbmVudHMgaW4uXG4gICAgbW9kdWxlOiBhbmd1bGFyLklNb2R1bGU7XG5cbiAgICAvKipcbiAgICAgKiBTZWUgW1tnZXRDb21wb25lbnRdXS5cbiAgICAgKi9cbiAgICBjcmVhdGVDb21wb25lbnQ8VD4odGVtcGxhdGU6IHN0cmluZyk6IENvbXBvbmVudERlc2NyaXB0b3I8VD47XG5cbiAgICAvKipcbiAgICAgKiBSdW5zIGFuIEFuZ3VsYXIgZGlnZXN0IGN5Y2xlLlxuICAgICAqL1xuICAgIGRpZ2VzdCgpOiB2b2lkO1xuXG4gICAgLyoqXG4gICAgICogUmV0dXJucyB0aGUgbW9jayB2ZXJzaW9uIG9mIHRoZSBBUEksIHdoaWNoIG1heSBiZSB1c2VkIHRvIHNpbXVsYXRlIHRoZSBiYWNrZW5kXG4gICAgICogd2hlbiB0ZXN0aW5nIGNvbXBvbmVudHMuIFRoZSBtb2NrIEFQSSBpcyBhdXRvbWF0aWNhbGx5IGluamVjdGVkIGludG8gY29tcG9uZW50c1xuICAgICAqIGFuZCByZXBsYWNlcyB0aGUgdXN1YWwgQVBJLlxuICAgICAqL1xuICAgIGFwaSgpOiBSZXNvbHdlQXBpICYgTW9ja0Jhc2UgJiBNb2NrQXBpU2VydmljZTtcblxuICAgIC8qKlxuICAgICAqIFJldHVybnMgdGhlIHNjb3BlLlxuICAgICAqL1xuICAgIHNjb3BlKCk6IGFuZ3VsYXIuSVNjb3BlO1xuXG4gICAgLyoqXG4gICAgICogRW5zdXJlcyB0aGF0IHRoZSB0ZXN0ZWQgY29tcG9uZW50cyBhcmUgaW5zZXJ0ZWQgaW50byBhbiBhY3R1YWwgRE9NLCBzbyB0aGluZ3NcbiAgICAgKiBsaWtlIGhlaWdodCBjYWxjdWxhdGlvbnMgd29yayBhcyBleHBlY3RlZC4gVGhpcyBmdW5jdGlvbiBtdXN0IGJlIGNhbGxlZCBiZWZvcmVcbiAgICAgKiBhbnkgW1tjcmVhdGVDb21wb25lbnRdXSBjYWxscy5cbiAgICAgKi9cbiAgICBwcm92aWRlUmVhbERPTSgpOiB2b2lkO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIE1vY2tBcGlGYWN0b3J5IHtcbiAgICBuZXcgKC4uLmFyZ3M6IGFueVtdKTogUmVzb2x3ZUFwaSAmIE1vY2tCYXNlO1xufVxuXG4vKipcbiAqIEEgaGVscGVyIGZ1bmN0aW9uIHRvIGVhc2UgdGVzdGluZyBvZiBjb21wb25lbnRzLiBJdCB3aWxsIHRha2UgY2FyZSBvZiBtb2NraW5nIHRoZVxuICogdXN1YWwgbW9kdWxlcyBuZWVkZWQgZm9yIHRlc3RpbmcgY29tcG9uZW50cyBhbmQgcHJlcGFyaW5nIGEgbW9kdWxlIHRoYXQgeW91IGNhbiB1c2VcbiAqIHRvIHJlZ2lzdGVyIHRlc3QgY29tcG9uZW50cy5cbiAqXG4gKiBUaGUgdGVzdCBjYXNlIGlzIHBhc3NlZCBhbiBpbnN0YW5jZSBvZiBbW0NvbXBvbmVudFRlc3Rlcl1dLCB3aGljaCBjb250YWlucyBzb21lXG4gKiB1c2VmdWwgcHJvcGVydGllcyBhbmQgbWV0aG9kcyBmb3IgdGVzdGluZyBjb21wb25lbnRzLlxuICpcbiAqIFRoZSBmb2xsb3dpbmcgbW9kdWxlcyBhcmUgYXV0b21hdGljYWxseSBsb2FkZWQ6XG4gKiAqIGByZXNvbHdlLnNlcnZpY2VzLnNoYXJlZF9zdG9yZWBcbiAqXG4gKiBJZiB5b3UgbmVlZCB0byBsb2FkIGFueSBhZGRpdGlvbmFsIG1vZHVsZXMsIHNwZWNpZnkgdGhlbSBpbiB0aGUgYG1vZHVsZXNgXG4gKiBhcmd1bWVudC5cbiAqXG4gKiBAcGFyYW0gZGVzY3JpcHRpb24gVGVzdCBjYXNlIGRlc2NyaXB0aW9uXG4gKiBAcGFyYW0gbW9kdWxlcyBMaXN0IG9mIG1vZHVsZXMgdG8gbG9hZCBmb3IgdGhpcyB0ZXN0XG4gKiBAcGFyYW0gdGVzdHMgVGVzdCBjYXNlIGJvZHlcbiAqIEBwYXJhbSBhcGlDbGFzcyBPcHRpb25hbCBtb2NrIEFQSSBjbGFzcyB0aGF0IHNob3VsZCBiZSB1c2VkXG4gKiBAcGFyYW0gYmFzZU1vZHVsZXMgT3B0aW9uYWwgbGlzdCBvZiBtb2R1bGVzIHRvIGxvYWQgYmVmb3JlIGV2ZXJ5dGhpbmcgZm9yIHRoaXMgdGVzdFxuICovXG5leHBvcnQgZnVuY3Rpb24gZGVzY3JpYmVDb21wb25lbnQoZGVzY3JpcHRpb246IHN0cmluZyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtb2R1bGVzOiBhbnlbXSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0ZXN0czogKHRlc3RlcjogQ29tcG9uZW50VGVzdGVyKSA9PiB2b2lkLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFwaUNsYXNzOiBNb2NrQXBpRmFjdG9yeSA9IE1vY2tBcGksXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYmFzZU1vZHVsZXM6IHN0cmluZ1tdID0gW10pOiB2b2lkIHtcbiAgICBkZXNjcmliZShkZXNjcmlwdGlvbiwgKCkgPT4ge1xuICAgICAgICBsZXQgJGNvbXBpbGU6IGFuZ3VsYXIuSUNvbXBpbGVTZXJ2aWNlO1xuICAgICAgICBsZXQgJHNjb3BlOiBhbmd1bGFyLklTY29wZTtcbiAgICAgICAgbGV0IG1vY2tBcGk6IFJlc29sd2VBcGkgJiBNb2NrQmFzZSAmIE1vY2tBcGlTZXJ2aWNlO1xuXG4gICAgICAgIGNvbnN0IG1vZHVsZU5hbWUgPSAncmVzb2x3ZS50ZXN0cy4nICsgZGVzY3JpcHRpb24ucmVwbGFjZSgvIC9nLCAnLicpO1xuICAgICAgICBjb25zdCBtb2R1bGU6IGFuZ3VsYXIuSU1vZHVsZSA9IGFuZ3VsYXIubW9kdWxlKG1vZHVsZU5hbWUsIFtdKTtcblxuICAgICAgICAvLyBMb2FkIGJhc2UgbW9kdWxlcy5cbiAgICAgICAgYmVmb3JlRWFjaChhbmd1bGFyLm1vY2subW9kdWxlKCdyZXNvbHdlLnNlcnZpY2VzLnNoYXJlZF9zdG9yZScpKTtcbiAgICAgICAgYmVmb3JlRWFjaChhbmd1bGFyLm1vY2subW9kdWxlKCdyZXNvbHdlLnNlcnZpY2VzLnN0YXRlX21hbmFnZXInKSk7XG4gICAgICAgIGJhc2VNb2R1bGVzLmZvckVhY2goKGJhc2VNb2R1bGUpID0+IGJlZm9yZUVhY2goYW5ndWxhci5tb2NrLm1vZHVsZShiYXNlTW9kdWxlKSkpO1xuXG4gICAgICAgIGJlZm9yZUVhY2goYW5ndWxhci5tb2NrLm1vZHVsZSgoJHByb3ZpZGU6IGFuZ3VsYXIuYXV0by5JUHJvdmlkZVNlcnZpY2UpID0+IHtcbiAgICAgICAgICAgIC8vIEV4cGxpY2l0bHkgc2V0IHJvb3QgZWxlbWVudCBiZWNhdXNlIHRlc3RzIGRvIG5vdCBnbyB0aHJvdWdoIHVzdWFsXG4gICAgICAgICAgICAvLyBBbmd1bGFyIGJvb3RzdHJhcHBpbmcuXG4gICAgICAgICAgICAkcHJvdmlkZS52YWx1ZSgnJHJvb3RFbGVtZW50JywgYW5ndWxhci5lbGVtZW50KGRvY3VtZW50LmJvZHkpKTtcblxuICAgICAgICAgICAgLy8gUmVwbGFjZSB1c3VhbCBBUEkgc2VydmljZSB3aXRoIG1vY2sgQVBJLlxuICAgICAgICAgICAgJHByb3ZpZGUuc2VydmljZSgnYXBpJywgY29tcG9zZShbYXBpQ2xhc3MsIE1vY2tBcGlTZXJ2aWNlXSkpO1xuICAgICAgICB9KSk7XG4gICAgICAgIGJlZm9yZUVhY2goYW5ndWxhci5tb2NrLm1vZHVsZShtb2R1bGVOYW1lKSk7XG5cbiAgICAgICAgLy8gUmVnaXN0ZXIgYW55IHNoYXJlZCBzdG9yZXMuXG4gICAgICAgIGNvbnN0IFtzaGFyZWRTdG9yZXMsIGFkZGl0aW9uYWxNb2R1bGVzXSA9IF8ucGFydGl0aW9uKG1vZHVsZXMsIChtKSA9PiAhIW0uc3RvcmVJZCk7XG5cbiAgICAgICAgbW9kdWxlLmNvbmZpZygoc2hhcmVkU3RvcmVNYW5hZ2VyUHJvdmlkZXI6IFNoYXJlZFN0b3JlUHJvdmlkZXIpID0+IHtcbiAgICAgICAgICAgIF8uZWFjaChzaGFyZWRTdG9yZXMsIChkZXNjcmlwdG9yOiBTaGFyZWRTdG9yZURlc2NyaXB0b3IpID0+IHtcbiAgICAgICAgICAgICAgICBpZiAoZGVzY3JpcHRvci5mYWN0b3J5KSB7XG4gICAgICAgICAgICAgICAgICAgIHNoYXJlZFN0b3JlTWFuYWdlclByb3ZpZGVyLnJlZ2lzdGVyKGRlc2NyaXB0b3Iuc3RvcmVJZCwgZGVzY3JpcHRvci5mYWN0b3J5KTtcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICBzaGFyZWRTdG9yZU1hbmFnZXJQcm92aWRlci5jcmVhdGUoZGVzY3JpcHRvci5zdG9yZUlkLCBkZXNjcmlwdG9yLmluaXRpYWxTdGF0ZSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH0pO1xuXG4gICAgICAgIF8uZWFjaChhZGRpdGlvbmFsTW9kdWxlcywgKGFkZGl0aW9uYWxNb2R1bGUpID0+IHtcbiAgICAgICAgICAgIGJlZm9yZUVhY2goYW5ndWxhci5tb2NrLm1vZHVsZShhZGRpdGlvbmFsTW9kdWxlKSk7XG4gICAgICAgIH0pO1xuXG4gICAgICAgIC8vIEEgY29udGFpbmVyIGluIERPTSB3aGVyZSB3ZSBjYW4gdGVtcG9yYXJpbHkgYXBwZW5kIGNvbXBvbmVudCBlbGVtZW50cy5cbiAgICAgICAgbGV0IGNvbnRhaW5lckVsZW1lbnQ6IGFuZ3VsYXIuSUF1Z21lbnRlZEpRdWVyeSA9IG51bGw7XG5cbiAgICAgICAgZnVuY3Rpb24gcHJvdmlkZVJlYWxET00oKTogdm9pZCB7XG4gICAgICAgICAgICByZW1vdmVSZWFsRE9NKCk7XG4gICAgICAgICAgICBjb25zdCBib2R5ID0gYW5ndWxhci5lbGVtZW50KGRvY3VtZW50LmJvZHkpO1xuICAgICAgICAgICAgY29udGFpbmVyRWxlbWVudCA9IGFuZ3VsYXIuZWxlbWVudCgnPGRpdiBpZD1cInRlc3QtY29udGFpbmVyLWVsZW1lbnRcIj48L2Rpdj4nKTtcbiAgICAgICAgICAgIGJvZHkuYXBwZW5kKGNvbnRhaW5lckVsZW1lbnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgZnVuY3Rpb24gcmVtb3ZlUmVhbERPTSgpOiB2b2lkIHtcbiAgICAgICAgICAgIGlmIChjb250YWluZXJFbGVtZW50KSB7XG4gICAgICAgICAgICAgICAgY29udGFpbmVyRWxlbWVudC5yZW1vdmUoKTtcbiAgICAgICAgICAgICAgICBjb250YWluZXJFbGVtZW50ID0gbnVsbDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIGJlZm9yZUVhY2goKCkgPT4ge1xuICAgICAgICAgICAgamFzbWluZS5hZGRNYXRjaGVycyhuZ0VxdWFsTWF0Y2hlcik7XG4gICAgICAgIH0pO1xuXG4gICAgICAgIGJlZm9yZUVhY2goYW5ndWxhci5tb2NrLmluamVjdCgoXyRjb21waWxlXywgXyRyb290U2NvcGVfLCBfYXBpXykgPT4ge1xuICAgICAgICAgICAgJGNvbXBpbGUgPSBfJGNvbXBpbGVfO1xuICAgICAgICAgICAgJHNjb3BlID0gXyRyb290U2NvcGVfLiRuZXcoKTtcbiAgICAgICAgICAgIG1vY2tBcGkgPSBfYXBpXztcblxuICAgICAgICAgICAgLy8gQGlmbmRlZiBHRU5KU19QUk9EVUNUSU9OXG4gICAgICAgICAgICAgICAgaWYgKF8uY29udGFpbnModGVzdHMudG9TdHJpbmcoKSwgJ2RlYnVnZ2VyJykgfHwgXy5jb250YWlucyh0ZXN0cy50b1N0cmluZygpLCAnIGZpdCgnKSkge1xuICAgICAgICAgICAgICAgICAgICBwcm92aWRlUmVhbERPTSgpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIC8vIEBlbmRpZlxuICAgICAgICB9KSk7XG5cbiAgICAgICAgYWZ0ZXJFYWNoKCgpID0+IHtcbiAgICAgICAgICAgICRzY29wZS4kZGVzdHJveSgpO1xuICAgICAgICAgICAgcmVtb3ZlUmVhbERPTSgpO1xuICAgICAgICB9KTtcblxuICAgICAgICB0ZXN0cyh7XG4gICAgICAgICAgICBtb2R1bGU6IG1vZHVsZSxcblxuICAgICAgICAgICAgY3JlYXRlQ29tcG9uZW50OiBmdW5jdGlvbjxUPih0ZW1wbGF0ZTogc3RyaW5nKTogQ29tcG9uZW50RGVzY3JpcHRvcjxUPiB7XG4gICAgICAgICAgICAgICAgY29uc3QgY29tcG9uZW50ID0gZ2V0Q29tcG9uZW50PFQ+KCRjb21waWxlLCAkc2NvcGUsIHRlbXBsYXRlKTtcblxuICAgICAgICAgICAgICAgIGlmIChjb250YWluZXJFbGVtZW50KSB7XG4gICAgICAgICAgICAgICAgICAgIC8vIEFwcGVuZCBjb21wb25lbnQgZWxlbWVudCB0byBhY3R1YWwgRE9NLiBPdGhlcndpc2UsIGNvbXB1dGF0aW9ucyBsaWtlIGhlaWdodCB3aWxsIG5vdCB3b3JrLlxuICAgICAgICAgICAgICAgICAgICBjb250YWluZXJFbGVtZW50LmFwcGVuZChjb21wb25lbnQuZWxlbWVudCk7XG4gICAgICAgICAgICAgICAgICAgICRzY29wZS4kZGlnZXN0KCk7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgcmV0dXJuIGNvbXBvbmVudDtcbiAgICAgICAgICAgIH0sXG5cbiAgICAgICAgICAgIGRpZ2VzdDogZnVuY3Rpb24oKTogdm9pZCB7XG4gICAgICAgICAgICAgICAgJHNjb3BlLiRkaWdlc3QoKTtcbiAgICAgICAgICAgIH0sXG5cbiAgICAgICAgICAgIGFwaTogZnVuY3Rpb24oKTogUmVzb2x3ZUFwaSAmIE1vY2tCYXNlICYgTW9ja0FwaVNlcnZpY2Uge1xuICAgICAgICAgICAgICAgIHJldHVybiBtb2NrQXBpO1xuICAgICAgICAgICAgfSxcblxuICAgICAgICAgICAgc2NvcGU6IGZ1bmN0aW9uKCk6IGFuZ3VsYXIuSVNjb3BlIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gJHNjb3BlO1xuICAgICAgICAgICAgfSxcblxuICAgICAgICAgICAgcHJvdmlkZVJlYWxET006IHByb3ZpZGVSZWFsRE9NLFxuICAgICAgICB9KTtcbiAgICB9KTtcbn1cbiJdfQ==
import 'jquery';
//# sourceMappingURL=initialization.d.ts.map

@@ -8,3 +8,3 @@ export declare const ngEqualMatcher: {

};
declare global {
declare global {
namespace jasmine {

@@ -16,2 +16,1 @@ interface Matchers {

}
//# sourceMappingURL=matchers.d.ts.map

@@ -30,2 +30,1 @@ import * as Rx from 'rx';

}
//# sourceMappingURL=mock.d.ts.map
{
"name": "@genialis/resolwe",
"author": "Genialis Inc.",
"version": "7.1.2",
"version": "7.1.3",
"description": "Resolwe frontend libraries",

@@ -6,0 +6,0 @@ "license": "Apache-2.0",

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is too big to display

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