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

@spreadmonitor/network

Package Overview
Dependencies
Maintainers
2
Versions
13
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@spreadmonitor/network - npm Package Compare versions

Comparing version 0.9.3 to 0.9.4

10

bundles/spreadmonitor-network.umd.js

@@ -277,5 +277,2 @@ (function (global, factory) {

}
if (!this.config.baseUrl) {
throw new Error('[NetworkService] The baseUrl property must be set in "NetworkConfig".');
}
/** @type {?} */

@@ -326,2 +323,9 @@ var options = __assign({}, requestOptions, this.defaultOptions);

var url;
/**
* If we try to start a path based network request before the baseUrl was set
* we throw an error.
*/
if (slugOrUrl.indexOf('http') !== 0 && !this.config.baseUrl) {
throw new Error('[NetworkService] The baseUrl property must be set in "NetworkConfig".');
}
if (slugOrUrl[0] === '/') {

@@ -328,0 +332,0 @@ url = "" + this.config.baseUrl + slugOrUrl;

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

!function(t,e){"object"==typeof exports&&"undefined"!=typeof module?e(exports,require("@angular/common/http"),require("rxjs"),require("rxjs/operators"),require("@angular/core")):"function"==typeof define&&define.amd?define("@spreadmonitor/network",["exports","@angular/common/http","rxjs","rxjs/operators","@angular/core"],e):e((t.spreadmonitor=t.spreadmonitor||{},t.spreadmonitor.network={}),t.ng.common.http,t.rxjs,t.rxjs.operators,t.ng.core)}(this,function(t,e,r,o,n){"use strict";var i=function(){return(i=Object.assign||function(t){for(var e,r=1,o=arguments.length;r<o;r++)for(var n in e=arguments[r])Object.prototype.hasOwnProperty.call(e,n)&&(t[n]=e[n]);return t}).apply(this,arguments)},u=function(){return function(){this.baseUrl=null,this.authType="bearer"}}(),s=function(){function t(t,e){this.http=t,this.config=e,this.networkError=new r.Subject,this.networkRequestCounter=new r.BehaviorSubject(0),this.requestInProgress=this.networkRequestCounter.pipe(o.scan(function(t,e){return t+e>=0?t+e:0},0),o.map(function(t){return t>0}),o.distinctUntilChanged(),o.debounceTime(50)),this.config=i({},new u,e)}return Object.defineProperty(t.prototype,"defaultOptions",{get:function(){return{reportProgress:!1,responseType:"json",observe:"body",withCredentials:!0}},enumerable:!0,configurable:!0}),t.prototype.get=function(t,e,r,o){return void 0===e&&(e={}),void 0===r&&(r={}),void 0===o&&(o=!1),this.makeRequest(this.http.get.bind(this.http,this.buildUrl(t)),i({params:this.buildParamsQuery(e)},r),o)},t.prototype.post=function(t,e,r,o,n){return void 0===e&&(e=null),void 0===r&&(r={}),void 0===o&&(o={}),void 0===n&&(n=!1),this.makeRequest(this.http.post.bind(this.http,this.buildUrl(t),e),i({params:this.buildParamsQuery(r)},o),n)},t.prototype.patch=function(t,e,r,o,n){return void 0===e&&(e=null),void 0===r&&(r={}),void 0===o&&(o={}),void 0===n&&(n=!1),this.makeRequest(this.http.patch.bind(this.http,this.buildUrl(t),e),i({params:this.buildParamsQuery(r)},o),n)},t.prototype.put=function(t,e,r,o,n){return void 0===e&&(e=null),void 0===r&&(r={}),void 0===o&&(o={}),void 0===n&&(n=!1),this.makeRequest(this.http.put.bind(this.http,this.buildUrl(t),e),i({params:this.buildParamsQuery(r)},o),n)},t.prototype["delete"]=function(t,e,r,o){return void 0===e&&(e={}),void 0===r&&(r={}),void 0===o&&(o=!1),this.makeRequest(this.http["delete"].bind(this.http,this.buildUrl(t)),i({params:this.buildParamsQuery(e)},r),o)},t.prototype.makeRequest=function(t,e,n){var u=this;if(void 0===e&&(e={}),void 0===n&&(n=!1),!this.config.baseUrl)throw new Error('[NetworkService] The baseUrl property must be set in "NetworkConfig".');var s=i({},e,this.defaultOptions);return!n&&this.networkRequestCounter.next(1),t(s).pipe(o.tap(function(){return!n&&u.networkRequestCounter.next(-1)}),o.catchError(function(t,e){return!n&&u.networkRequestCounter.next(-1),console.warn("[NetworkService] The "+t.url+" request has failed and returned with "+t.status+" status code."),u.networkError.next(t),r.throwError(t)}))},t.prototype.buildParamsQuery=function(t){return t instanceof e.HttpParams?t:new e.HttpParams({fromObject:t})},t.prototype.buildUrl=function(t){var e;if("/"===t[0]?e=""+this.config.baseUrl+t:0===t.indexOf("http")&&(e=t),e===undefined)throw new Error("[NetworService] Path must start with a backslash or you need to pass a fully qualified url.");return e},t.prototype.setBaseUrl=function(t){this.config.baseUrl=t},t.decorators=[{type:n.Injectable}],t.ctorParameters=function(){return[{type:e.HttpClient},{type:u}]},t}(),a=function(){function t(){}return Object.defineProperty(t.prototype,"authenticated",{get:function(){return console.warn('[NetworkService] Dummy "AuthService.authenticated" is called, provide a valid implementation!'),!1},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"token",{get:function(){return console.warn('[NetworkService] Dummy "AuthService.token" is called, provide a valid implementation!'),null},enumerable:!0,configurable:!0}),t.decorators=[{type:n.Injectable}],t}(),p=function(){function t(t,e){this.authService=t,this.config=e,this.prefixes={bearer:"Bearer",basic:"Basic"}}return t.prototype.intercept=function(t,e){if(!this.authService)return console.error('[HttpTokenInterceptor] No value is provided for "NetworkAuthService". You must provide your own.'),e.handle(t);if(this.authService.authenticated){var r={Authorization:""+(this.prefixes[this.config.authType]?this.prefixes[this.config.authType]+" ":"")+this.authService.token};return e.handle(t.clone({setHeaders:r}))}return e.handle(t)},t.decorators=[{type:n.Injectable}],t.ctorParameters=function(){return[{type:a,decorators:[{type:n.Optional}]},{type:u}]},t}(),c=function(){function t(){}return t.forRoot=function(r){return{ngModule:t,providers:[{provide:u,useValue:r},{provide:e.HTTP_INTERCEPTORS,useClass:p,multi:!0},s]}},t.decorators=[{type:n.NgModule,args:[{imports:[e.HttpClientModule]}]}],t}();t.NetworkModule=c,t.NetworkService=s,t.NetworkConfig=u,t.NetworkAuthService=a,t.ɵa=p,Object.defineProperty(t,"__esModule",{value:!0})});
!function(t,e){"object"==typeof exports&&"undefined"!=typeof module?e(exports,require("@angular/common/http"),require("rxjs"),require("rxjs/operators"),require("@angular/core")):"function"==typeof define&&define.amd?define("@spreadmonitor/network",["exports","@angular/common/http","rxjs","rxjs/operators","@angular/core"],e):e((t.spreadmonitor=t.spreadmonitor||{},t.spreadmonitor.network={}),t.ng.common.http,t.rxjs,t.rxjs.operators,t.ng.core)}(this,function(t,e,r,o,n){"use strict";var i=function(){return(i=Object.assign||function(t){for(var e,r=1,o=arguments.length;r<o;r++)for(var n in e=arguments[r])Object.prototype.hasOwnProperty.call(e,n)&&(t[n]=e[n]);return t}).apply(this,arguments)},u=function(){return function(){this.baseUrl=null,this.authType="bearer"}}(),s=function(){function t(t,e){this.http=t,this.config=e,this.networkError=new r.Subject,this.networkRequestCounter=new r.BehaviorSubject(0),this.requestInProgress=this.networkRequestCounter.pipe(o.scan(function(t,e){return t+e>=0?t+e:0},0),o.map(function(t){return t>0}),o.distinctUntilChanged(),o.debounceTime(50)),this.config=i({},new u,e)}return Object.defineProperty(t.prototype,"defaultOptions",{get:function(){return{reportProgress:!1,responseType:"json",observe:"body",withCredentials:!0}},enumerable:!0,configurable:!0}),t.prototype.get=function(t,e,r,o){return void 0===e&&(e={}),void 0===r&&(r={}),void 0===o&&(o=!1),this.makeRequest(this.http.get.bind(this.http,this.buildUrl(t)),i({params:this.buildParamsQuery(e)},r),o)},t.prototype.post=function(t,e,r,o,n){return void 0===e&&(e=null),void 0===r&&(r={}),void 0===o&&(o={}),void 0===n&&(n=!1),this.makeRequest(this.http.post.bind(this.http,this.buildUrl(t),e),i({params:this.buildParamsQuery(r)},o),n)},t.prototype.patch=function(t,e,r,o,n){return void 0===e&&(e=null),void 0===r&&(r={}),void 0===o&&(o={}),void 0===n&&(n=!1),this.makeRequest(this.http.patch.bind(this.http,this.buildUrl(t),e),i({params:this.buildParamsQuery(r)},o),n)},t.prototype.put=function(t,e,r,o,n){return void 0===e&&(e=null),void 0===r&&(r={}),void 0===o&&(o={}),void 0===n&&(n=!1),this.makeRequest(this.http.put.bind(this.http,this.buildUrl(t),e),i({params:this.buildParamsQuery(r)},o),n)},t.prototype["delete"]=function(t,e,r,o){return void 0===e&&(e={}),void 0===r&&(r={}),void 0===o&&(o=!1),this.makeRequest(this.http["delete"].bind(this.http,this.buildUrl(t)),i({params:this.buildParamsQuery(e)},r),o)},t.prototype.makeRequest=function(t,e,n){var u=this;void 0===e&&(e={}),void 0===n&&(n=!1);var s=i({},e,this.defaultOptions);return!n&&this.networkRequestCounter.next(1),t(s).pipe(o.tap(function(){return!n&&u.networkRequestCounter.next(-1)}),o.catchError(function(t,e){return!n&&u.networkRequestCounter.next(-1),console.warn("[NetworkService] The "+t.url+" request has failed and returned with "+t.status+" status code."),u.networkError.next(t),r.throwError(t)}))},t.prototype.buildParamsQuery=function(t){return t instanceof e.HttpParams?t:new e.HttpParams({fromObject:t})},t.prototype.buildUrl=function(t){var e;if(0!==t.indexOf("http")&&!this.config.baseUrl)throw new Error('[NetworkService] The baseUrl property must be set in "NetworkConfig".');if("/"===t[0]?e=""+this.config.baseUrl+t:0===t.indexOf("http")&&(e=t),e===undefined)throw new Error("[NetworService] Path must start with a backslash or you need to pass a fully qualified url.");return e},t.prototype.setBaseUrl=function(t){this.config.baseUrl=t},t.decorators=[{type:n.Injectable}],t.ctorParameters=function(){return[{type:e.HttpClient},{type:u}]},t}(),a=function(){function t(){}return Object.defineProperty(t.prototype,"authenticated",{get:function(){return console.warn('[NetworkService] Dummy "AuthService.authenticated" is called, provide a valid implementation!'),!1},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"token",{get:function(){return console.warn('[NetworkService] Dummy "AuthService.token" is called, provide a valid implementation!'),null},enumerable:!0,configurable:!0}),t.decorators=[{type:n.Injectable}],t}(),p=function(){function t(t,e){this.authService=t,this.config=e,this.prefixes={bearer:"Bearer",basic:"Basic"}}return t.prototype.intercept=function(t,e){if(!this.authService)return console.error('[HttpTokenInterceptor] No value is provided for "NetworkAuthService". You must provide your own.'),e.handle(t);if(this.authService.authenticated){var r={Authorization:""+(this.prefixes[this.config.authType]?this.prefixes[this.config.authType]+" ":"")+this.authService.token};return e.handle(t.clone({setHeaders:r}))}return e.handle(t)},t.decorators=[{type:n.Injectable}],t.ctorParameters=function(){return[{type:a,decorators:[{type:n.Optional}]},{type:u}]},t}(),c=function(){function t(){}return t.forRoot=function(r){return{ngModule:t,providers:[{provide:u,useValue:r},{provide:e.HTTP_INTERCEPTORS,useClass:p,multi:!0},s]}},t.decorators=[{type:n.NgModule,args:[{imports:[e.HttpClientModule]}]}],t}();t.NetworkModule=c,t.NetworkService=s,t.NetworkConfig=u,t.NetworkAuthService=a,t.ɵa=p,Object.defineProperty(t,"__esModule",{value:!0})});
//# sourceMappingURL=spreadmonitor-network.umd.min.js.map

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

makeRequest(httpFn, requestOptions = {}, silent = false) {
if (!this.config.baseUrl) {
throw new Error('[NetworkService] The baseUrl property must be set in "NetworkConfig".');
}
/** @type {?} */

@@ -150,2 +147,9 @@ const options = Object.assign({}, requestOptions, this.defaultOptions);

let url;
/**
* If we try to start a path based network request before the baseUrl was set
* we throw an error.
*/
if (slugOrUrl.indexOf('http') !== 0 && !this.config.baseUrl) {
throw new Error('[NetworkService] The baseUrl property must be set in "NetworkConfig".');
}
if (slugOrUrl[0] === '/') {

@@ -192,2 +196,2 @@ url = `${this.config.baseUrl}${slugOrUrl}`;

//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmV0d29yay5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6Im5nOi8vQHNwcmVhZG1vbml0b3IvbmV0d29yay8iLCJzb3VyY2VzIjpbIm5ldHdvcmsuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7O0FBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBQUUsVUFBVSxFQUFnQixVQUFVLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUM1RSxPQUFPLEVBQWMsT0FBTyxFQUFFLGVBQWUsRUFBRSxVQUFVLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDeEUsT0FBTyxFQUFFLElBQUksRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLG9CQUFvQixFQUFFLFlBQVksRUFBRSxVQUFVLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUdoRyxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7Ozs7QUFHL0MsTUFBTTs7Ozs7SUFZSixZQUFvQixJQUFnQixFQUFVLE1BQXFCO1FBQS9DLFNBQUksR0FBSixJQUFJLENBQVk7UUFBVSxXQUFNLEdBQU4sTUFBTSxDQUFlOzRCQVZILElBQUksT0FBTyxFQUFFO3FDQUVwQixJQUFJLGVBQWUsQ0FBUyxDQUFDLENBQUM7aUNBQ3ZDLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxJQUFJLENBQzdFLElBQUksQ0FBQyxDQUFDLEtBQUssRUFBRSxNQUFNLEVBQUUsRUFBRSxDQUFDLENBQUMsS0FBSyxHQUFHLE1BQU0sSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssR0FBRyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUN0RSxHQUFHLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxLQUFLLEdBQUcsQ0FBQyxDQUFDLEVBQ3ZCLG9CQUFvQixFQUFFLEVBQ3RCLFlBQVksQ0FBQyxFQUFFLENBQUMsQ0FDakI7UUFHQyxJQUFJLENBQUMsTUFBTSxx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O1NBQ3pEOzs7Ozs7O0lBTUksUUFBUSxDQUFDLFNBQWlCOztRQUMvQixJQUFJLEdBQUcsQ0FBUztRQUVoQixFQUFFLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLEtBQUssR0FBRyxDQUFDLENBQUMsQ0FBQztZQUN6QixHQUFHLEdBQUcsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLE9BQU8sR0FBRyxTQUFTLEVBQUUsQ0FBQztTQUM1QztRQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDM0MsR0FBRyxHQUFHLFNBQVMsQ0FBQztTQUNqQjtRQUVELEVBQUUsQ0FBQyxDQUFDLEdBQUcsS0FBSyxTQUFTLENBQUMsQ0FBQyxDQUFDO1lBQ3RCLE1BQU0sSUFBSSxLQUFLLENBQUMsNkZBQTZGLENBQUMsQ0FBQztTQUNoSDtRQUVELE1BQU0sQ0FBQyxHQUFHLENBQUM7Ozs7Ozs7SUFNTixVQUFVLENBQUMsR0FBVztRQUMzQixJQUFJLENBQUMsTUFBTSxDQUFDLE9BQU8sR0FBRyxHQUFHLENBQUM7Ozs7WUE5TTdCLFVBQVU7Ozs7WUFQRixVQUFVO1lBS1YsYUFBYSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEh0dHBDbGllbnQsIEh0dHBSZXNwb25zZSwgSHR0cFBhcmFtcyB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcbmltcG9ydCB7IE9ic2VydmFibGUsIFN1YmplY3QsIEJlaGF2aW9yU3ViamVjdCwgdGhyb3dFcnJvciB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgc2NhbiwgbWFwLCB0YXAsIGRpc3RpbmN0VW50aWxDaGFuZ2VkLCBkZWJvdW5jZVRpbWUsIGNhdGNoRXJyb3IgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cbmltcG9ydCB7IFF1ZXJ5UGFyYW1PYmplY3QsIEh0dHBPcHRpb25zIH0gZnJvbSAnLi9pbnRlcmZhY2VzJztcbmltcG9ydCB7IE5ldHdvcmtDb25maWcgfSBmcm9tICcuL2NvbmZpZy5jbGFzcyc7XG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBOZXR3b3JrU2VydmljZTxSZXNwb25zZVR5cGUgPSBhbnksIEVycm9yUmVzcG9uc2VUeXBlID0gYW55PiB7XG4gIC8vIGFueSBzaG91bGQgYmUgeW91cnMgZ2VuZXJpYyBFcnJvciB3cmFwcGVyXG4gIHB1YmxpYyBuZXR3b3JrRXJyb3I6IFN1YmplY3Q8SHR0cFJlc3BvbnNlPEVycm9yUmVzcG9uc2VUeXBlPj4gPSBuZXcgU3ViamVjdCgpO1xuXG4gIHByaXZhdGUgbmV0d29ya1JlcXVlc3RDb3VudGVyOiBCZWhhdmlvclN1YmplY3Q8bnVtYmVyPiA9IG5ldyBCZWhhdmlvclN1YmplY3Q8bnVtYmVyPigwKTtcbiAgcHVibGljIHJlcXVlc3RJblByb2dyZXNzOiBPYnNlcnZhYmxlPGJvb2xlYW4+ID0gdGhpcy5uZXR3b3JrUmVxdWVzdENvdW50ZXIucGlwZShcbiAgICBzY2FuKChjb3VudCwgY2hhbmdlKSA9PiAoY291bnQgKyBjaGFuZ2UgPj0gMCA/IGNvdW50ICsgY2hhbmdlIDogMCksIDApLFxuICAgIG1hcChjb3VudCA9PiBjb3VudCA+IDApLFxuICAgIGRpc3RpbmN0VW50aWxDaGFuZ2VkKCksXG4gICAgZGVib3VuY2VUaW1lKDUwKVxuICApO1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgaHR0cDogSHR0cENsaWVudCwgcHJpdmF0ZSBjb25maWc6IE5ldHdvcmtDb25maWcpIHtcbiAgICB0aGlzLmNvbmZpZyA9IHsgLi4ubmV3IE5ldHdvcmtDb25maWcoKSwgLi4uY29uZmlnIH07XG4gIH1cblxuICAvKipcbiAgICogR2VuZXJhdGVzIG1pbmltdW0gYW1vdW50IG9mIG9wdGlvbnMgdG8gbWFrZSBhIHJlcXVlc3QgdG8gdGhlIEFQSS5cbiAgICovXG4gIGdldCBkZWZhdWx0T3B0aW9ucygpOiBIdHRwT3B0aW9ucyB7XG4gICAgcmV0dXJuIDxIdHRwT3B0aW9ucz57XG4gICAgICByZXBvcnRQcm9ncmVzczogZmFsc2UsXG4gICAgICByZXNwb25zZVR5cGU6ICdqc29uJyxcbiAgICAgIG9ic2VydmU6ICdib2R5JyxcbiAgICAgIHdpdGhDcmVkZW50aWFsczogdHJ1ZSxcbiAgICB9O1xuICB9XG5cbiAgLyoqXG4gICAqIFNlbmRzIGEgR0VUIHJlcXVlc3QgdG8gdGhlIHNwZWNpZmllZCBlbmRwb2ludC5cbiAgICogQHBhcmFtIHBhdGggcmVsYXRpdmUgcGF0aCBmcm9tIHRoZSBwcm92aWRlZCBiYXNlIHVybFxuICAgKiBAcGFyYW0gcXVlcnlQYXJhbXMgYW4gb2JqZWN0IGRlc2NyaWJpbmcgdGhlIHF1ZXJ5IHBhcmFtZXRlcnMgZm9yIHRoZSByZXF1ZXN0LlxuICAgKiBAcGFyYW0gcmVxdWVzdE9wdGlvbnMgSHR0cE9wdGlvbnMgcGFzc2VkIHRvIHRoZSBmdW5jdGlvbiBjYWxsXG4gICAqIEBwYXJhbSBzaWxlbnQgZGV0ZXJtaW5lcyB3aGV0aGVyIHRoZSBmdW5jdGlvbiBzaG91bGQgYmUgdHJhY2tlZCBpbiBvbmdvaW5nIG5ldHdvcmsgcmVxdWVzdCB0cmFja2luZ1xuICAgKi9cbiAgcHVibGljIGdldDxUPihcbiAgICBwYXRoOiBzdHJpbmcsXG4gICAgcXVlcnlQYXJhbXM6IFF1ZXJ5UGFyYW1PYmplY3QgPSB7fSxcbiAgICByZXF1ZXN0T3B0aW9uczogSHR0cE9wdGlvbnMgPSB7fSxcbiAgICBzaWxlbnQ6IGJvb2xlYW4gPSBmYWxzZVxuICApOiBPYnNlcnZhYmxlPFQ+IHtcbiAgICByZXR1cm4gdGhpcy5tYWtlUmVxdWVzdDxUPihcbiAgICAgIHRoaXMuaHR0cC5nZXQuYmluZCh0aGlzLmh0dHAsIHRoaXMuYnVpbGRVcmwocGF0aCkpLFxuICAgICAgeyBwYXJhbXM6IHRoaXMuYnVpbGRQYXJhbXNRdWVyeShxdWVyeVBhcmFtcyksIC4uLnJlcXVlc3RPcHRpb25zIH0sXG4gICAgICBzaWxlbnRcbiAgICApO1xuICB9XG5cbiAgLyoqXG4gICAqIFNlbmRzIGEgUE9TVCByZXF1ZXN0IHRvIHRoZSBzcGVjaWZpZWQgZW5kcG9pbnQuXG4gICAqIEBwYXJhbSBwYXRoIHJlbGF0aXZlIHBhdGggZnJvbSB0aGUgcHJvdmlkZWQgYmFzZSB1cmxcbiAgICogQHBhcmFtIHBheWxvYWQgYW55IHBheWxvYWQgdG8gYmUgc2VuZCB3aXRoIHRoZSByZXF1ZXN0XG4gICAqIEBwYXJhbSBxdWVyeVBhcmFtcyBhbiBvYmplY3QgZGVzY3JpYmluZyB0aGUgcXVlcnkgcGFyYW1ldGVycyBmb3IgdGhlIHJlcXVlc3QuXG4gICAqIEBwYXJhbSByZXF1ZXN0T3B0aW9ucyBIdHRwT3B0aW9ucyBwYXNzZWQgdG8gdGhlIGZ1bmN0aW9uIGNhbGxcbiAgICogQHBhcmFtIHNpbGVudCBkZXRlcm1pbmVzIHdoZXRoZXIgdGhlIGZ1bmN0aW9uIHNob3VsZCBiZSB0cmFja2VkIGluIG9uZ29pbmcgbmV0d29yayByZXF1ZXN0IHRyYWNraW5nXG4gICAqL1xuICBwdWJsaWMgcG9zdDxUPihcbiAgICBwYXRoOiBzdHJpbmcsXG4gICAgcGF5bG9hZDogYW55ID0gbnVsbCxcbiAgICBxdWVyeVBhcmFtczogUXVlcnlQYXJhbU9iamVjdCA9IHt9LFxuICAgIHJlcXVlc3RPcHRpb25zOiBIdHRwT3B0aW9ucyA9IHt9LFxuICAgIHNpbGVudDogYm9vbGVhbiA9IGZhbHNlXG4gICk6IE9ic2VydmFibGU8VD4ge1xuICAgIHJldHVybiB0aGlzLm1ha2VSZXF1ZXN0PFQ+KFxuICAgICAgdGhpcy5odHRwLnBvc3QuYmluZCh0aGlzLmh0dHAsIHRoaXMuYnVpbGRVcmwocGF0aCksIHBheWxvYWQpLFxuICAgICAgeyBwYXJhbXM6IHRoaXMuYnVpbGRQYXJhbXNRdWVyeShxdWVyeVBhcmFtcyksIC4uLnJlcXVlc3RPcHRpb25zIH0sXG4gICAgICBzaWxlbnRcbiAgICApO1xuICB9XG5cbiAgLyoqXG4gICAqIFNlbmRzIGEgUEFUQ0ggcmVxdWVzdCB0byB0aGUgc3BlY2lmaWVkIGVuZHBvaW50LlxuICAgKiBAcGFyYW0gcGF0aCByZWxhdGl2ZSBwYXRoIGZyb20gdGhlIHByb3ZpZGVkIGJhc2UgdXJsXG4gICAqIEBwYXJhbSBwYXlsb2FkIGFueSBwYXlsb2FkIHRvIGJlIHNlbmQgd2l0aCB0aGUgcmVxdWVzdFxuICAgKiBAcGFyYW0gcXVlcnlQYXJhbXMgYW4gb2JqZWN0IGRlc2NyaWJpbmcgdGhlIHF1ZXJ5IHBhcmFtZXRlcnMgZm9yIHRoZSByZXF1ZXN0LlxuICAgKiBAcGFyYW0gcmVxdWVzdE9wdGlvbnMgSHR0cE9wdGlvbnMgcGFzc2VkIHRvIHRoZSBmdW5jdGlvbiBjYWxsXG4gICAqIEBwYXJhbSBzaWxlbnQgZGV0ZXJtaW5lcyB3aGV0aGVyIHRoZSBmdW5jdGlvbiBzaG91bGQgYmUgdHJhY2tlZCBpbiBvbmdvaW5nIG5ldHdvcmsgcmVxdWVzdCB0cmFja2luZ1xuICAgKi9cbiAgcHVibGljIHBhdGNoPFQ+KFxuICAgIHBhdGg6IHN0cmluZyxcbiAgICBwYXlsb2FkOiBhbnkgPSBudWxsLFxuICAgIHF1ZXJ5UGFyYW1zOiBRdWVyeVBhcmFtT2JqZWN0ID0ge30sXG4gICAgcmVxdWVzdE9wdGlvbnM6IEh0dHBPcHRpb25zID0ge30sXG4gICAgc2lsZW50OiBib29sZWFuID0gZmFsc2VcbiAgKTogT2JzZXJ2YWJsZTxUPiB7XG4gICAgcmV0dXJuIHRoaXMubWFrZVJlcXVlc3Q8VD4oXG4gICAgICB0aGlzLmh0dHAucGF0Y2guYmluZCh0aGlzLmh0dHAsIHRoaXMuYnVpbGRVcmwocGF0aCksIHBheWxvYWQpLFxuICAgICAgeyBwYXJhbXM6IHRoaXMuYnVpbGRQYXJhbXNRdWVyeShxdWVyeVBhcmFtcyksIC4uLnJlcXVlc3RPcHRpb25zIH0sXG4gICAgICBzaWxlbnRcbiAgICApO1xuICB9XG5cbiAgLyoqXG4gICAqIFNlbmRzIGEgUE9TVCByZXF1ZXN0IHRvIHRoZSBzcGVjaWZpZWQgZW5kcG9pbnQuXG4gICAqIEBwYXJhbSBwYXRoIHJlbGF0aXZlIHBhdGggZnJvbSB0aGUgcHJvdmlkZWQgYmFzZSB1cmxcbiAgICogQHBhcmFtIHBheWxvYWQgYW55IHBheWxvYWQgdG8gYmUgc2VuZCB3aXRoIHRoZSByZXF1ZXN0XG4gICAqIEBwYXJhbSBxdWVyeVBhcmFtcyBhbiBvYmplY3QgZGVzY3JpYmluZyB0aGUgcXVlcnkgcGFyYW1ldGVycyBmb3IgdGhlIHJlcXVlc3QuXG4gICAqIEBwYXJhbSByZXF1ZXN0T3B0aW9ucyBIdHRwT3B0aW9ucyBwYXNzZWQgdG8gdGhlIGZ1bmN0aW9uIGNhbGxcbiAgICogQHBhcmFtIHNpbGVudCBkZXRlcm1pbmVzIHdoZXRoZXIgdGhlIGZ1bmN0aW9uIHNob3VsZCBiZSB0cmFja2VkIGluIG9uZ29pbmcgbmV0d29yayByZXF1ZXN0IHRyYWNraW5nXG4gICAqL1xuICBwdWJsaWMgcHV0PFQ+KFxuICAgIHBhdGg6IHN0cmluZyxcbiAgICBwYXlsb2FkOiBhbnkgPSBudWxsLFxuICAgIHF1ZXJ5UGFyYW1zOiBRdWVyeVBhcmFtT2JqZWN0ID0ge30sXG4gICAgcmVxdWVzdE9wdGlvbnM6IEh0dHBPcHRpb25zID0ge30sXG4gICAgc2lsZW50OiBib29sZWFuID0gZmFsc2VcbiAgKTogT2JzZXJ2YWJsZTxUPiB7XG4gICAgcmV0dXJuIHRoaXMubWFrZVJlcXVlc3Q8VD4oXG4gICAgICB0aGlzLmh0dHAucHV0LmJpbmQodGhpcy5odHRwLCB0aGlzLmJ1aWxkVXJsKHBhdGgpLCBwYXlsb2FkKSxcbiAgICAgIHsgcGFyYW1zOiB0aGlzLmJ1aWxkUGFyYW1zUXVlcnkocXVlcnlQYXJhbXMpLCAuLi5yZXF1ZXN0T3B0aW9ucyB9LFxuICAgICAgc2lsZW50XG4gICAgKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBTZW5kcyBhIERFTEVURSByZXF1ZXN0IHRvIHRoZSBzcGVjaWZpZWQgZW5kcG9pbnQuXG4gICAqIEBwYXJhbSBwYXRoIHJlbGF0aXZlIHBhdGggZnJvbSB0aGUgcHJvdmlkZWQgYmFzZSB1cmxcbiAgICogQHBhcmFtIHF1ZXJ5UGFyYW1zIGFuIG9iamVjdCBkZXNjcmliaW5nIHRoZSBxdWVyeSBwYXJhbWV0ZXJzIGZvciB0aGUgcmVxdWVzdC5cbiAgICogQHBhcmFtIHJlcXVlc3RPcHRpb25zIEh0dHBPcHRpb25zIHBhc3NlZCB0byB0aGUgZnVuY3Rpb24gY2FsbFxuICAgKiBAcGFyYW0gc2lsZW50IGRldGVybWluZXMgd2hldGhlciB0aGUgZnVuY3Rpb24gc2hvdWxkIGJlIHRyYWNrZWQgaW4gb25nb2luZyBuZXR3b3JrIHJlcXVlc3QgdHJhY2tpbmdcbiAgICovXG4gIHB1YmxpYyBkZWxldGU8VD4oXG4gICAgcGF0aDogc3RyaW5nLFxuICAgIHF1ZXJ5UGFyYW1zOiBRdWVyeVBhcmFtT2JqZWN0ID0ge30sXG4gICAgcmVxdWVzdE9wdGlvbnM6IEh0dHBPcHRpb25zID0ge30sXG4gICAgc2lsZW50OiBib29sZWFuID0gZmFsc2VcbiAgKTogT2JzZXJ2YWJsZTxUPiB7XG4gICAgcmV0dXJuIHRoaXMubWFrZVJlcXVlc3Q8VD4oXG4gICAgICB0aGlzLmh0dHAuZGVsZXRlLmJpbmQodGhpcy5odHRwLCB0aGlzLmJ1aWxkVXJsKHBhdGgpKSxcbiAgICAgIHsgcGFyYW1zOiB0aGlzLmJ1aWxkUGFyYW1zUXVlcnkocXVlcnlQYXJhbXMpLCAuLi5yZXF1ZXN0T3B0aW9ucyB9LFxuICAgICAgc2lsZW50XG4gICAgKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBNYWtlcyBhIHJlcXVlc3Qgd2l0aCB0aGUgc3BlY2lmaWVkIGJvdW5kIEh0dHAgZnVuY3Rpb25cbiAgICogYW5kIGJyb2FkY2FzdHMgdGhlIG5ldHdvcmsgZXJyb3IgaWYgYW55IGhhcHBlbnMgZHVyaW5nIHRoZSByZXF1ZXN0LlxuICAgKi9cbiAgcHJpdmF0ZSBtYWtlUmVxdWVzdDxUPihcbiAgICBodHRwRm46IChvcHRpb25zOiBIdHRwT3B0aW9ucykgPT4gT2JzZXJ2YWJsZTxUPixcbiAgICByZXF1ZXN0T3B0aW9uczogSHR0cE9wdGlvbnMgPSB7fSxcbiAgICBzaWxlbnQ6IGJvb2xlYW4gPSBmYWxzZVxuICApOiBPYnNlcnZhYmxlPFQ+IHtcblxuICAgIGlmICghdGhpcy5jb25maWcuYmFzZVVybCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdbTmV0d29ya1NlcnZpY2VdIFRoZSBiYXNlVXJsIHByb3BlcnR5IG11c3QgYmUgc2V0IGluIFwiTmV0d29ya0NvbmZpZ1wiLicpO1xuICAgIH1cblxuICAgIGNvbnN0IG9wdGlvbnMgPSB7IC4uLnJlcXVlc3RPcHRpb25zLCAuLi50aGlzLmRlZmF1bHRPcHRpb25zIH07XG4gICAgIXNpbGVudCAmJiB0aGlzLm5ldHdvcmtSZXF1ZXN0Q291bnRlci5uZXh0KCsxKTtcblxuICAgIHJldHVybiBodHRwRm4ob3B0aW9ucykucGlwZShcbiAgICAgIHRhcCgoKSA9PiAhc2lsZW50ICYmIHRoaXMubmV0d29ya1JlcXVlc3RDb3VudGVyLm5leHQoLTEpKSxcbiAgICAgIGNhdGNoRXJyb3I8VCwgYW55PigocmVzcG9uc2UsIGNhdWdodCkgPT4ge1xuICAgICAgICAhc2lsZW50ICYmIHRoaXMubmV0d29ya1JlcXVlc3RDb3VudGVyLm5leHQoLTEpO1xuXG4gICAgICAgIGNvbnNvbGUud2FybihcbiAgICAgICAgICBgW05ldHdvcmtTZXJ2aWNlXSBUaGUgJHtyZXNwb25zZS51cmx9IHJlcXVlc3QgaGFzIGZhaWxlZCBhbmQgcmV0dXJuZWQgd2l0aCAke3Jlc3BvbnNlLnN0YXR1c30gc3RhdHVzIGNvZGUuYFxuICAgICAgICApO1xuXG4gICAgICAgIHRoaXMubmV0d29ya0Vycm9yLm5leHQocmVzcG9uc2UpO1xuXG4gICAgICAgIHJldHVybiB0aHJvd0Vycm9yKHJlc3BvbnNlKTtcbiAgICAgIH0pXG4gICAgKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBCdWlsZHMgYSBxdWVyeSBzdHJpbmcgZnJvbSBhIHF1ZXJ5IHBhcmFtIG9iamVjdC5cbiAgICovXG4gIHB1YmxpYyBidWlsZFBhcmFtc1F1ZXJ5KHF1ZXJ5UGFyYW1zOiBRdWVyeVBhcmFtT2JqZWN0IHwgSHR0cFBhcmFtcyk6IEh0dHBQYXJhbXMge1xuICAgIGlmIChxdWVyeVBhcmFtcyBpbnN0YW5jZW9mIEh0dHBQYXJhbXMpIHtcbiAgICAgIHJldHVybiBxdWVyeVBhcmFtcztcbiAgICB9IGVsc2Uge1xuICAgICAgLyoqXG4gICAgICAgKiBXZSBuZWVkIHRvIGNhc3QgaGVyZSwgYmVjYXVzZSBIdHRwUGFyYW1zT3B0aW9ucyBvbmx5IGV4cGVjdHMgc3RyaW5nIHwgc3RyaW5nW10gYnV0XG4gICAgICAgKiB3ZSBrbm93IHdlIGNhbiBhZGQgbnVtYmVycyBhbmQgYm9vbGVhbnMgYXMgdGhleSBhcmUgYXV0byBjb252ZXJ0ZWQgdG8gc3RyaW5nLlxuICAgICAgICovXG4gICAgICByZXR1cm4gbmV3IEh0dHBQYXJhbXMoeyBmcm9tT2JqZWN0OiA8YW55PnF1ZXJ5UGFyYW1zIH0pO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBCdWlsZHMgYSBmdWxseSBxdWFsaWZpZWQgdXJsIGZyb20gdGhlIHByb3ZpZGVkIHNsdWcgYW5kIFF1ZXJ5UGFyYW1PYmplY3QuXG4gICAqL1xuICBwdWJsaWMgYnVpbGRVcmwoc2x1Z09yVXJsOiBzdHJpbmcpOiBzdHJpbmcge1xuICAgIGxldCB1cmw6IHN0cmluZztcblxuICAgIGlmIChzbHVnT3JVcmxbMF0gPT09ICcvJykge1xuICAgICAgdXJsID0gYCR7dGhpcy5jb25maWcuYmFzZVVybH0ke3NsdWdPclVybH1gO1xuICAgIH0gZWxzZSBpZiAoc2x1Z09yVXJsLmluZGV4T2YoJ2h0dHAnKSA9PT0gMCkge1xuICAgICAgdXJsID0gc2x1Z09yVXJsO1xuICAgIH1cblxuICAgIGlmICh1cmwgPT09IHVuZGVmaW5lZCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdbTmV0d29yU2VydmljZV0gUGF0aCBtdXN0IHN0YXJ0IHdpdGggYSBiYWNrc2xhc2ggb3IgeW91IG5lZWQgdG8gcGFzcyBhIGZ1bGx5IHF1YWxpZmllZCB1cmwuJyk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHVybDtcbiAgfVxuXG4gIC8qKlxuICAgKiBTZXQgdGhlIGJhc2UgdXJsIHRvIGJlIHVzZWQgZm9yIHJlcXVlc3RzXG4gICAqL1xuICBwdWJsaWMgc2V0QmFzZVVybCh1cmw6IHN0cmluZyk6IHZvaWQge1xuICAgIHRoaXMuY29uZmlnLmJhc2VVcmwgPSB1cmw7XG4gIH1cbn1cbiJdfQ==
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmV0d29yay5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6Im5nOi8vQHNwcmVhZG1vbml0b3IvbmV0d29yay8iLCJzb3VyY2VzIjpbIm5ldHdvcmsuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7O0FBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBQUUsVUFBVSxFQUFnQixVQUFVLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUM1RSxPQUFPLEVBQWMsT0FBTyxFQUFFLGVBQWUsRUFBRSxVQUFVLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDeEUsT0FBTyxFQUFFLElBQUksRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLG9CQUFvQixFQUFFLFlBQVksRUFBRSxVQUFVLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUdoRyxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7Ozs7QUFHL0MsTUFBTTs7Ozs7SUFZSixZQUFvQixJQUFnQixFQUFVLE1BQXFCO1FBQS9DLFNBQUksR0FBSixJQUFJLENBQVk7UUFBVSxXQUFNLEdBQU4sTUFBTSxDQUFlOzRCQVZILElBQUksT0FBTyxFQUFFO3FDQUVwQixJQUFJLGVBQWUsQ0FBUyxDQUFDLENBQUM7aUNBQ3ZDLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxJQUFJLENBQzdFLElBQUksQ0FBQyxDQUFDLEtBQUssRUFBRSxNQUFNLEVBQUUsRUFBRSxDQUFDLENBQUMsS0FBSyxHQUFHLE1BQU0sSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssR0FBRyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUN0RSxHQUFHLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxLQUFLLEdBQUcsQ0FBQyxDQUFDLEVBQ3ZCLG9CQUFvQixFQUFFLEVBQ3RCLFlBQVksQ0FBQyxFQUFFLENBQUMsQ0FDakI7UUFHQyxJQUFJLENBQUMsTUFBTSxx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SyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUM7WUFDNUQsTUFBTSxJQUFJLEtBQUssQ0FBQyx1RUFBdUUsQ0FBQyxDQUFDO1NBQzFGO1FBRUQsRUFBRSxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxLQUFLLEdBQUcsQ0FBQyxDQUFDLENBQUM7WUFDekIsR0FBRyxHQUFHLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxPQUFPLEdBQUcsU0FBUyxFQUFFLENBQUM7U0FDNUM7UUFBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQzNDLEdBQUcsR0FBRyxTQUFTLENBQUM7U0FDakI7UUFFRCxFQUFFLENBQUMsQ0FBQyxHQUFHLEtBQUssU0FBUyxDQUFDLENBQUMsQ0FBQztZQUN0QixNQUFNLElBQUksS0FBSyxDQUFDLDZGQUE2RixDQUFDLENBQUM7U0FDaEg7UUFFRCxNQUFNLENBQUMsR0FBRyxDQUFDOzs7Ozs7O0lBTU4sVUFBVSxDQUFDLEdBQVc7UUFDM0IsSUFBSSxDQUFDLE1BQU0sQ0FBQyxPQUFPLEdBQUcsR0FBRyxDQUFDOzs7O1lBak43QixVQUFVOzs7O1lBUEYsVUFBVTtZQUtWLGFBQWEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBIdHRwQ2xpZW50LCBIdHRwUmVzcG9uc2UsIEh0dHBQYXJhbXMgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlLCBTdWJqZWN0LCBCZWhhdmlvclN1YmplY3QsIHRocm93RXJyb3IgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IHNjYW4sIG1hcCwgdGFwLCBkaXN0aW5jdFVudGlsQ2hhbmdlZCwgZGVib3VuY2VUaW1lLCBjYXRjaEVycm9yIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuXG5pbXBvcnQgeyBRdWVyeVBhcmFtT2JqZWN0LCBIdHRwT3B0aW9ucyB9IGZyb20gJy4vaW50ZXJmYWNlcyc7XG5pbXBvcnQgeyBOZXR3b3JrQ29uZmlnIH0gZnJvbSAnLi9jb25maWcuY2xhc3MnO1xuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgTmV0d29ya1NlcnZpY2U8UmVzcG9uc2VUeXBlID0gYW55LCBFcnJvclJlc3BvbnNlVHlwZSA9IGFueT4ge1xuICAvLyBhbnkgc2hvdWxkIGJlIHlvdXJzIGdlbmVyaWMgRXJyb3Igd3JhcHBlclxuICBwdWJsaWMgbmV0d29ya0Vycm9yOiBTdWJqZWN0PEh0dHBSZXNwb25zZTxFcnJvclJlc3BvbnNlVHlwZT4+ID0gbmV3IFN1YmplY3QoKTtcblxuICBwcml2YXRlIG5ldHdvcmtSZXF1ZXN0Q291bnRlcjogQmVoYXZpb3JTdWJqZWN0PG51bWJlcj4gPSBuZXcgQmVoYXZpb3JTdWJqZWN0PG51bWJlcj4oMCk7XG4gIHB1YmxpYyByZXF1ZXN0SW5Qcm9ncmVzczogT2JzZXJ2YWJsZTxib29sZWFuPiA9IHRoaXMubmV0d29ya1JlcXVlc3RDb3VudGVyLnBpcGUoXG4gICAgc2NhbigoY291bnQsIGNoYW5nZSkgPT4gKGNvdW50ICsgY2hhbmdlID49IDAgPyBjb3VudCArIGNoYW5nZSA6IDApLCAwKSxcbiAgICBtYXAoY291bnQgPT4gY291bnQgPiAwKSxcbiAgICBkaXN0aW5jdFVudGlsQ2hhbmdlZCgpLFxuICAgIGRlYm91bmNlVGltZSg1MClcbiAgKTtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGh0dHA6IEh0dHBDbGllbnQsIHByaXZhdGUgY29uZmlnOiBOZXR3b3JrQ29uZmlnKSB7XG4gICAgdGhpcy5jb25maWcgPSB7IC4uLm5ldyBOZXR3b3JrQ29uZmlnKCksIC4uLmNvbmZpZyB9O1xuICB9XG5cbiAgLyoqXG4gICAqIEdlbmVyYXRlcyBtaW5pbXVtIGFtb3VudCBvZiBvcHRpb25zIHRvIG1ha2UgYSByZXF1ZXN0IHRvIHRoZSBBUEkuXG4gICAqL1xuICBnZXQgZGVmYXVsdE9wdGlvbnMoKTogSHR0cE9wdGlvbnMge1xuICAgIHJldHVybiA8SHR0cE9wdGlvbnM+e1xuICAgICAgcmVwb3J0UHJvZ3Jlc3M6IGZhbHNlLFxuICAgICAgcmVzcG9uc2VUeXBlOiAnanNvbicsXG4gICAgICBvYnNlcnZlOiAnYm9keScsXG4gICAgICB3aXRoQ3JlZGVudGlhbHM6IHRydWUsXG4gICAgfTtcbiAgfVxuXG4gIC8qKlxuICAgKiBTZW5kcyBhIEdFVCByZXF1ZXN0IHRvIHRoZSBzcGVjaWZpZWQgZW5kcG9pbnQuXG4gICAqIEBwYXJhbSBwYXRoIHJlbGF0aXZlIHBhdGggZnJvbSB0aGUgcHJvdmlkZWQgYmFzZSB1cmxcbiAgICogQHBhcmFtIHF1ZXJ5UGFyYW1zIGFuIG9iamVjdCBkZXNjcmliaW5nIHRoZSBxdWVyeSBwYXJhbWV0ZXJzIGZvciB0aGUgcmVxdWVzdC5cbiAgICogQHBhcmFtIHJlcXVlc3RPcHRpb25zIEh0dHBPcHRpb25zIHBhc3NlZCB0byB0aGUgZnVuY3Rpb24gY2FsbFxuICAgKiBAcGFyYW0gc2lsZW50IGRldGVybWluZXMgd2hldGhlciB0aGUgZnVuY3Rpb24gc2hvdWxkIGJlIHRyYWNrZWQgaW4gb25nb2luZyBuZXR3b3JrIHJlcXVlc3QgdHJhY2tpbmdcbiAgICovXG4gIHB1YmxpYyBnZXQ8VD4oXG4gICAgcGF0aDogc3RyaW5nLFxuICAgIHF1ZXJ5UGFyYW1zOiBRdWVyeVBhcmFtT2JqZWN0ID0ge30sXG4gICAgcmVxdWVzdE9wdGlvbnM6IEh0dHBPcHRpb25zID0ge30sXG4gICAgc2lsZW50OiBib29sZWFuID0gZmFsc2VcbiAgKTogT2JzZXJ2YWJsZTxUPiB7XG4gICAgcmV0dXJuIHRoaXMubWFrZVJlcXVlc3Q8VD4oXG4gICAgICB0aGlzLmh0dHAuZ2V0LmJpbmQodGhpcy5odHRwLCB0aGlzLmJ1aWxkVXJsKHBhdGgpKSxcbiAgICAgIHsgcGFyYW1zOiB0aGlzLmJ1aWxkUGFyYW1zUXVlcnkocXVlcnlQYXJhbXMpLCAuLi5yZXF1ZXN0T3B0aW9ucyB9LFxuICAgICAgc2lsZW50XG4gICAgKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBTZW5kcyBhIFBPU1QgcmVxdWVzdCB0byB0aGUgc3BlY2lmaWVkIGVuZHBvaW50LlxuICAgKiBAcGFyYW0gcGF0aCByZWxhdGl2ZSBwYXRoIGZyb20gdGhlIHByb3ZpZGVkIGJhc2UgdXJsXG4gICAqIEBwYXJhbSBwYXlsb2FkIGFueSBwYXlsb2FkIHRvIGJlIHNlbmQgd2l0aCB0aGUgcmVxdWVzdFxuICAgKiBAcGFyYW0gcXVlcnlQYXJhbXMgYW4gb2JqZWN0IGRlc2NyaWJpbmcgdGhlIHF1ZXJ5IHBhcmFtZXRlcnMgZm9yIHRoZSByZXF1ZXN0LlxuICAgKiBAcGFyYW0gcmVxdWVzdE9wdGlvbnMgSHR0cE9wdGlvbnMgcGFzc2VkIHRvIHRoZSBmdW5jdGlvbiBjYWxsXG4gICAqIEBwYXJhbSBzaWxlbnQgZGV0ZXJtaW5lcyB3aGV0aGVyIHRoZSBmdW5jdGlvbiBzaG91bGQgYmUgdHJhY2tlZCBpbiBvbmdvaW5nIG5ldHdvcmsgcmVxdWVzdCB0cmFja2luZ1xuICAgKi9cbiAgcHVibGljIHBvc3Q8VD4oXG4gICAgcGF0aDogc3RyaW5nLFxuICAgIHBheWxvYWQ6IGFueSA9IG51bGwsXG4gICAgcXVlcnlQYXJhbXM6IFF1ZXJ5UGFyYW1PYmplY3QgPSB7fSxcbiAgICByZXF1ZXN0T3B0aW9uczogSHR0cE9wdGlvbnMgPSB7fSxcbiAgICBzaWxlbnQ6IGJvb2xlYW4gPSBmYWxzZVxuICApOiBPYnNlcnZhYmxlPFQ+IHtcbiAgICByZXR1cm4gdGhpcy5tYWtlUmVxdWVzdDxUPihcbiAgICAgIHRoaXMuaHR0cC5wb3N0LmJpbmQodGhpcy5odHRwLCB0aGlzLmJ1aWxkVXJsKHBhdGgpLCBwYXlsb2FkKSxcbiAgICAgIHsgcGFyYW1zOiB0aGlzLmJ1aWxkUGFyYW1zUXVlcnkocXVlcnlQYXJhbXMpLCAuLi5yZXF1ZXN0T3B0aW9ucyB9LFxuICAgICAgc2lsZW50XG4gICAgKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBTZW5kcyBhIFBBVENIIHJlcXVlc3QgdG8gdGhlIHNwZWNpZmllZCBlbmRwb2ludC5cbiAgICogQHBhcmFtIHBhdGggcmVsYXRpdmUgcGF0aCBmcm9tIHRoZSBwcm92aWRlZCBiYXNlIHVybFxuICAgKiBAcGFyYW0gcGF5bG9hZCBhbnkgcGF5bG9hZCB0byBiZSBzZW5kIHdpdGggdGhlIHJlcXVlc3RcbiAgICogQHBhcmFtIHF1ZXJ5UGFyYW1zIGFuIG9iamVjdCBkZXNjcmliaW5nIHRoZSBxdWVyeSBwYXJhbWV0ZXJzIGZvciB0aGUgcmVxdWVzdC5cbiAgICogQHBhcmFtIHJlcXVlc3RPcHRpb25zIEh0dHBPcHRpb25zIHBhc3NlZCB0byB0aGUgZnVuY3Rpb24gY2FsbFxuICAgKiBAcGFyYW0gc2lsZW50IGRldGVybWluZXMgd2hldGhlciB0aGUgZnVuY3Rpb24gc2hvdWxkIGJlIHRyYWNrZWQgaW4gb25nb2luZyBuZXR3b3JrIHJlcXVlc3QgdHJhY2tpbmdcbiAgICovXG4gIHB1YmxpYyBwYXRjaDxUPihcbiAgICBwYXRoOiBzdHJpbmcsXG4gICAgcGF5bG9hZDogYW55ID0gbnVsbCxcbiAgICBxdWVyeVBhcmFtczogUXVlcnlQYXJhbU9iamVjdCA9IHt9LFxuICAgIHJlcXVlc3RPcHRpb25zOiBIdHRwT3B0aW9ucyA9IHt9LFxuICAgIHNpbGVudDogYm9vbGVhbiA9IGZhbHNlXG4gICk6IE9ic2VydmFibGU8VD4ge1xuICAgIHJldHVybiB0aGlzLm1ha2VSZXF1ZXN0PFQ+KFxuICAgICAgdGhpcy5odHRwLnBhdGNoLmJpbmQodGhpcy5odHRwLCB0aGlzLmJ1aWxkVXJsKHBhdGgpLCBwYXlsb2FkKSxcbiAgICAgIHsgcGFyYW1zOiB0aGlzLmJ1aWxkUGFyYW1zUXVlcnkocXVlcnlQYXJhbXMpLCAuLi5yZXF1ZXN0T3B0aW9ucyB9LFxuICAgICAgc2lsZW50XG4gICAgKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBTZW5kcyBhIFBPU1QgcmVxdWVzdCB0byB0aGUgc3BlY2lmaWVkIGVuZHBvaW50LlxuICAgKiBAcGFyYW0gcGF0aCByZWxhdGl2ZSBwYXRoIGZyb20gdGhlIHByb3ZpZGVkIGJhc2UgdXJsXG4gICAqIEBwYXJhbSBwYXlsb2FkIGFueSBwYXlsb2FkIHRvIGJlIHNlbmQgd2l0aCB0aGUgcmVxdWVzdFxuICAgKiBAcGFyYW0gcXVlcnlQYXJhbXMgYW4gb2JqZWN0IGRlc2NyaWJpbmcgdGhlIHF1ZXJ5IHBhcmFtZXRlcnMgZm9yIHRoZSByZXF1ZXN0LlxuICAgKiBAcGFyYW0gcmVxdWVzdE9wdGlvbnMgSHR0cE9wdGlvbnMgcGFzc2VkIHRvIHRoZSBmdW5jdGlvbiBjYWxsXG4gICAqIEBwYXJhbSBzaWxlbnQgZGV0ZXJtaW5lcyB3aGV0aGVyIHRoZSBmdW5jdGlvbiBzaG91bGQgYmUgdHJhY2tlZCBpbiBvbmdvaW5nIG5ldHdvcmsgcmVxdWVzdCB0cmFja2luZ1xuICAgKi9cbiAgcHVibGljIHB1dDxUPihcbiAgICBwYXRoOiBzdHJpbmcsXG4gICAgcGF5bG9hZDogYW55ID0gbnVsbCxcbiAgICBxdWVyeVBhcmFtczogUXVlcnlQYXJhbU9iamVjdCA9IHt9LFxuICAgIHJlcXVlc3RPcHRpb25zOiBIdHRwT3B0aW9ucyA9IHt9LFxuICAgIHNpbGVudDogYm9vbGVhbiA9IGZhbHNlXG4gICk6IE9ic2VydmFibGU8VD4ge1xuICAgIHJldHVybiB0aGlzLm1ha2VSZXF1ZXN0PFQ+KFxuICAgICAgdGhpcy5odHRwLnB1dC5iaW5kKHRoaXMuaHR0cCwgdGhpcy5idWlsZFVybChwYXRoKSwgcGF5bG9hZCksXG4gICAgICB7IHBhcmFtczogdGhpcy5idWlsZFBhcmFtc1F1ZXJ5KHF1ZXJ5UGFyYW1zKSwgLi4ucmVxdWVzdE9wdGlvbnMgfSxcbiAgICAgIHNpbGVudFxuICAgICk7XG4gIH1cblxuICAvKipcbiAgICogU2VuZHMgYSBERUxFVEUgcmVxdWVzdCB0byB0aGUgc3BlY2lmaWVkIGVuZHBvaW50LlxuICAgKiBAcGFyYW0gcGF0aCByZWxhdGl2ZSBwYXRoIGZyb20gdGhlIHByb3ZpZGVkIGJhc2UgdXJsXG4gICAqIEBwYXJhbSBxdWVyeVBhcmFtcyBhbiBvYmplY3QgZGVzY3JpYmluZyB0aGUgcXVlcnkgcGFyYW1ldGVycyBmb3IgdGhlIHJlcXVlc3QuXG4gICAqIEBwYXJhbSByZXF1ZXN0T3B0aW9ucyBIdHRwT3B0aW9ucyBwYXNzZWQgdG8gdGhlIGZ1bmN0aW9uIGNhbGxcbiAgICogQHBhcmFtIHNpbGVudCBkZXRlcm1pbmVzIHdoZXRoZXIgdGhlIGZ1bmN0aW9uIHNob3VsZCBiZSB0cmFja2VkIGluIG9uZ29pbmcgbmV0d29yayByZXF1ZXN0IHRyYWNraW5nXG4gICAqL1xuICBwdWJsaWMgZGVsZXRlPFQ+KFxuICAgIHBhdGg6IHN0cmluZyxcbiAgICBxdWVyeVBhcmFtczogUXVlcnlQYXJhbU9iamVjdCA9IHt9LFxuICAgIHJlcXVlc3RPcHRpb25zOiBIdHRwT3B0aW9ucyA9IHt9LFxuICAgIHNpbGVudDogYm9vbGVhbiA9IGZhbHNlXG4gICk6IE9ic2VydmFibGU8VD4ge1xuICAgIHJldHVybiB0aGlzLm1ha2VSZXF1ZXN0PFQ+KFxuICAgICAgdGhpcy5odHRwLmRlbGV0ZS5iaW5kKHRoaXMuaHR0cCwgdGhpcy5idWlsZFVybChwYXRoKSksXG4gICAgICB7IHBhcmFtczogdGhpcy5idWlsZFBhcmFtc1F1ZXJ5KHF1ZXJ5UGFyYW1zKSwgLi4ucmVxdWVzdE9wdGlvbnMgfSxcbiAgICAgIHNpbGVudFxuICAgICk7XG4gIH1cblxuICAvKipcbiAgICogTWFrZXMgYSByZXF1ZXN0IHdpdGggdGhlIHNwZWNpZmllZCBib3VuZCBIdHRwIGZ1bmN0aW9uXG4gICAqIGFuZCBicm9hZGNhc3RzIHRoZSBuZXR3b3JrIGVycm9yIGlmIGFueSBoYXBwZW5zIGR1cmluZyB0aGUgcmVxdWVzdC5cbiAgICovXG4gIHByaXZhdGUgbWFrZVJlcXVlc3Q8VD4oXG4gICAgaHR0cEZuOiAob3B0aW9uczogSHR0cE9wdGlvbnMpID0+IE9ic2VydmFibGU8VD4sXG4gICAgcmVxdWVzdE9wdGlvbnM6IEh0dHBPcHRpb25zID0ge30sXG4gICAgc2lsZW50OiBib29sZWFuID0gZmFsc2VcbiAgKTogT2JzZXJ2YWJsZTxUPiB7XG4gICAgY29uc3Qgb3B0aW9ucyA9IHsgLi4ucmVxdWVzdE9wdGlvbnMsIC4uLnRoaXMuZGVmYXVsdE9wdGlvbnMgfTtcbiAgICAhc2lsZW50ICYmIHRoaXMubmV0d29ya1JlcXVlc3RDb3VudGVyLm5leHQoKzEpO1xuXG4gICAgcmV0dXJuIGh0dHBGbihvcHRpb25zKS5waXBlKFxuICAgICAgdGFwKCgpID0+ICFzaWxlbnQgJiYgdGhpcy5uZXR3b3JrUmVxdWVzdENvdW50ZXIubmV4dCgtMSkpLFxuICAgICAgY2F0Y2hFcnJvcjxULCBhbnk+KChyZXNwb25zZSwgY2F1Z2h0KSA9PiB7XG4gICAgICAgICFzaWxlbnQgJiYgdGhpcy5uZXR3b3JrUmVxdWVzdENvdW50ZXIubmV4dCgtMSk7XG5cbiAgICAgICAgY29uc29sZS53YXJuKFxuICAgICAgICAgIGBbTmV0d29ya1NlcnZpY2VdIFRoZSAke3Jlc3BvbnNlLnVybH0gcmVxdWVzdCBoYXMgZmFpbGVkIGFuZCByZXR1cm5lZCB3aXRoICR7cmVzcG9uc2Uuc3RhdHVzfSBzdGF0dXMgY29kZS5gXG4gICAgICAgICk7XG5cbiAgICAgICAgdGhpcy5uZXR3b3JrRXJyb3IubmV4dChyZXNwb25zZSk7XG5cbiAgICAgICAgcmV0dXJuIHRocm93RXJyb3IocmVzcG9uc2UpO1xuICAgICAgfSlcbiAgICApO1xuICB9XG5cbiAgLyoqXG4gICAqIEJ1aWxkcyBhIHF1ZXJ5IHN0cmluZyBmcm9tIGEgcXVlcnkgcGFyYW0gb2JqZWN0LlxuICAgKi9cbiAgcHVibGljIGJ1aWxkUGFyYW1zUXVlcnkocXVlcnlQYXJhbXM6IFF1ZXJ5UGFyYW1PYmplY3QgfCBIdHRwUGFyYW1zKTogSHR0cFBhcmFtcyB7XG4gICAgaWYgKHF1ZXJ5UGFyYW1zIGluc3RhbmNlb2YgSHR0cFBhcmFtcykge1xuICAgICAgcmV0dXJuIHF1ZXJ5UGFyYW1zO1xuICAgIH0gZWxzZSB7XG4gICAgICAvKipcbiAgICAgICAqIFdlIG5lZWQgdG8gY2FzdCBoZXJlLCBiZWNhdXNlIEh0dHBQYXJhbXNPcHRpb25zIG9ubHkgZXhwZWN0cyBzdHJpbmcgfCBzdHJpbmdbXSBidXRcbiAgICAgICAqIHdlIGtub3cgd2UgY2FuIGFkZCBudW1iZXJzIGFuZCBib29sZWFucyBhcyB0aGV5IGFyZSBhdXRvIGNvbnZlcnRlZCB0byBzdHJpbmcuXG4gICAgICAgKi9cbiAgICAgIHJldHVybiBuZXcgSHR0cFBhcmFtcyh7IGZyb21PYmplY3Q6IDxhbnk+cXVlcnlQYXJhbXMgfSk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIEJ1aWxkcyBhIGZ1bGx5IHF1YWxpZmllZCB1cmwgZnJvbSB0aGUgcHJvdmlkZWQgc2x1ZyBhbmQgUXVlcnlQYXJhbU9iamVjdC5cbiAgICovXG4gIHB1YmxpYyBidWlsZFVybChzbHVnT3JVcmw6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgbGV0IHVybDogc3RyaW5nO1xuXG4gICAgLyoqXG4gICAgICogSWYgd2UgdHJ5IHRvIHN0YXJ0IGEgcGF0aCBiYXNlZCBuZXR3b3JrIHJlcXVlc3QgYmVmb3JlIHRoZSBiYXNlVXJsIHdhcyBzZXRcbiAgICAgKiB3ZSB0aHJvdyBhbiBlcnJvci5cbiAgICAgKi9cbiAgICBpZiAoc2x1Z09yVXJsLmluZGV4T2YoJ2h0dHAnKSAhPT0gMCAmJiAhdGhpcy5jb25maWcuYmFzZVVybCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdbTmV0d29ya1NlcnZpY2VdIFRoZSBiYXNlVXJsIHByb3BlcnR5IG11c3QgYmUgc2V0IGluIFwiTmV0d29ya0NvbmZpZ1wiLicpO1xuICAgIH1cblxuICAgIGlmIChzbHVnT3JVcmxbMF0gPT09ICcvJykge1xuICAgICAgdXJsID0gYCR7dGhpcy5jb25maWcuYmFzZVVybH0ke3NsdWdPclVybH1gO1xuICAgIH0gZWxzZSBpZiAoc2x1Z09yVXJsLmluZGV4T2YoJ2h0dHAnKSA9PT0gMCkge1xuICAgICAgdXJsID0gc2x1Z09yVXJsO1xuICAgIH1cblxuICAgIGlmICh1cmwgPT09IHVuZGVmaW5lZCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdbTmV0d29yU2VydmljZV0gUGF0aCBtdXN0IHN0YXJ0IHdpdGggYSBiYWNrc2xhc2ggb3IgeW91IG5lZWQgdG8gcGFzcyBhIGZ1bGx5IHF1YWxpZmllZCB1cmwuJyk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHVybDtcbiAgfVxuXG4gIC8qKlxuICAgKiBTZXQgdGhlIGJhc2UgdXJsIHRvIGJlIHVzZWQgZm9yIHJlcXVlc3RzXG4gICAqL1xuICBwdWJsaWMgc2V0QmFzZVVybCh1cmw6IHN0cmluZyk6IHZvaWQge1xuICAgIHRoaXMuY29uZmlnLmJhc2VVcmwgPSB1cmw7XG4gIH1cbn1cbiJdfQ==

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

if (silent === void 0) { silent = false; }
if (!this.config.baseUrl) {
throw new Error('[NetworkService] The baseUrl property must be set in "NetworkConfig".');
}
/** @type {?} */

@@ -242,2 +239,9 @@ var options = tslib_1.__assign({}, requestOptions, this.defaultOptions);

var url;
/**
* If we try to start a path based network request before the baseUrl was set
* we throw an error.
*/
if (slugOrUrl.indexOf('http') !== 0 && !this.config.baseUrl) {
throw new Error('[NetworkService] The baseUrl property must be set in "NetworkConfig".');
}
if (slugOrUrl[0] === '/') {

@@ -291,2 +295,2 @@ url = "" + this.config.baseUrl + slugOrUrl;

//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmV0d29yay5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6Im5nOi8vQHNwcmVhZG1vbml0b3IvbmV0d29yay8iLCJzb3VyY2VzIjpbIm5ldHdvcmsuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0MsT0FBTyxFQUFFLFVBQVUsRUFBZ0IsVUFBVSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDNUUsT0FBTyxFQUFjLE9BQU8sRUFBRSxlQUFlLEVBQUUsVUFBVSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ3hFLE9BQU8sRUFBRSxJQUFJLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxvQkFBb0IsRUFBRSxZQUFZLEVBQUUsVUFBVSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFHaEcsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGdCQUFnQixDQUFDOzs7OztJQWU3Qyx3QkFBb0IsSUFBZ0IsRUFBVSxNQUFxQjtRQUEvQyxTQUFJLEdBQUosSUFBSSxDQUFZO1FBQVUsV0FBTSxHQUFOLE1BQU0sQ0FBZTs0QkFWSCxJQUFJLE9BQU8sRUFBRTtxQ0FFcEIsSUFBSSxlQUFlLENBQVMsQ0FBQyxDQUFDO2lDQUN2QyxJQUFJLENBQUMscUJBQXFCLENBQUMsSUFBSSxDQUM3RSxJQUFJLENBQUMsVUFBQyxLQUFLLEVBQUUsTUFBTSxJQUFLLE9BQUEsQ0FBQyxLQUFLLEdBQUcsTUFBTSxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxHQUFHLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQTFDLENBQTBDLEVBQUUsQ0FBQyxDQUFDLEVBQ3RFLEdBQUcsQ0FBQyxVQUFBLEtBQUssSUFBSSxPQUFBLEtBQUssR0FBRyxDQUFDLEVBQVQsQ0FBUyxDQUFDLEVBQ3ZCLG9CQUFvQixFQUFFLEVBQ3RCLFlBQVksQ0FBQyxFQUFFLENBQUMsQ0FDakI7UUFHQyxJQUFJLENBQUMs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Ozs7O0lBTU4sbUNBQVU7Ozs7O2NBQUMsR0FBVztRQUMzQixJQUFJLENBQUMsTUFBTSxDQUFDLE9BQU8sR0FBRyxHQUFHLENBQUM7OztnQkE5TTdCLFVBQVU7Ozs7Z0JBUEYsVUFBVTtnQkFLVixhQUFhOzt5QkFOdEI7O1NBU2EsY0FBYyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEh0dHBDbGllbnQsIEh0dHBSZXNwb25zZSwgSHR0cFBhcmFtcyB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcbmltcG9ydCB7IE9ic2VydmFibGUsIFN1YmplY3QsIEJlaGF2aW9yU3ViamVjdCwgdGhyb3dFcnJvciB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgc2NhbiwgbWFwLCB0YXAsIGRpc3RpbmN0VW50aWxDaGFuZ2VkLCBkZWJvdW5jZVRpbWUsIGNhdGNoRXJyb3IgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cbmltcG9ydCB7IFF1ZXJ5UGFyYW1PYmplY3QsIEh0dHBPcHRpb25zIH0gZnJvbSAnLi9pbnRlcmZhY2VzJztcbmltcG9ydCB7IE5ldHdvcmtDb25maWcgfSBmcm9tICcuL2NvbmZpZy5jbGFzcyc7XG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBOZXR3b3JrU2VydmljZTxSZXNwb25zZVR5cGUgPSBhbnksIEVycm9yUmVzcG9uc2VUeXBlID0gYW55PiB7XG4gIC8vIGFueSBzaG91bGQgYmUgeW91cnMgZ2VuZXJpYyBFcnJvciB3cmFwcGVyXG4gIHB1YmxpYyBuZXR3b3JrRXJyb3I6IFN1YmplY3Q8SHR0cFJlc3BvbnNlPEVycm9yUmVzcG9uc2VUeXBlPj4gPSBuZXcgU3ViamVjdCgpO1xuXG4gIHByaXZhdGUgbmV0d29ya1JlcXVlc3RDb3VudGVyOiBCZWhhdmlvclN1YmplY3Q8bnVtYmVyPiA9IG5ldyBCZWhhdmlvclN1YmplY3Q8bnVtYmVyPigwKTtcbiAgcHVibGljIHJlcXVlc3RJblByb2dyZXNzOiBPYnNlcnZhYmxlPGJvb2xlYW4+ID0gdGhpcy5uZXR3b3JrUmVxdWVzdENvdW50ZXIucGlwZShcbiAgICBzY2FuKChjb3VudCwgY2hhbmdlKSA9PiAoY291bnQgKyBjaGFuZ2UgPj0gMCA/IGNvdW50ICsgY2hhbmdlIDogMCksIDApLFxuICAgIG1hcChjb3VudCA9PiBjb3VudCA+IDApLFxuICAgIGRpc3RpbmN0VW50aWxDaGFuZ2VkKCksXG4gICAgZGVib3VuY2VUaW1lKDUwKVxuICApO1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgaHR0cDogSHR0cENsaWVudCwgcHJpdmF0ZSBjb25maWc6IE5ldHdvcmtDb25maWcpIHtcbiAgICB0aGlzLmNvbmZpZyA9IHsgLi4ubmV3IE5ldHdvcmtDb25maWcoKSwgLi4uY29uZmlnIH07XG4gIH1cblxuICAvKipcbiAgICogR2VuZXJhdGVzIG1pbmltdW0gYW1vdW50IG9mIG9wdGlvbnMgdG8gbWFrZSBhIHJlcXVlc3QgdG8gdGhlIEFQSS5cbiAgICovXG4gIGdldCBkZWZhdWx0T3B0aW9ucygpOiBIdHRwT3B0aW9ucyB7XG4gICAgcmV0dXJuIDxIdHRwT3B0aW9ucz57XG4gICAgICByZXBvcnRQcm9ncmVzczogZmFsc2UsXG4gICAgICByZXNwb25zZVR5cGU6ICdqc29uJyxcbiAgICAgIG9ic2VydmU6ICdib2R5JyxcbiAgICAgIHdpdGhDcmVkZW50aWFsczogdHJ1ZSxcbiAgICB9O1xuICB9XG5cbiAgLyoqXG4gICAqIFNlbmRzIGEgR0VUIHJlcXVlc3QgdG8gdGhlIHNwZWNpZmllZCBlbmRwb2ludC5cbiAgICogQHBhcmFtIHBhdGggcmVsYXRpdmUgcGF0aCBmcm9tIHRoZSBwcm92aWRlZCBiYXNlIHVybFxuICAgKiBAcGFyYW0gcXVlcnlQYXJhbXMgYW4gb2JqZWN0IGRlc2NyaWJpbmcgdGhlIHF1ZXJ5IHBhcmFtZXRlcnMgZm9yIHRoZSByZXF1ZXN0LlxuICAgKiBAcGFyYW0gcmVxdWVzdE9wdGlvbnMgSHR0cE9wdGlvbnMgcGFzc2VkIHRvIHRoZSBmdW5jdGlvbiBjYWxsXG4gICAqIEBwYXJhbSBzaWxlbnQgZGV0ZXJtaW5lcyB3aGV0aGVyIHRoZSBmdW5jdGlvbiBzaG91bGQgYmUgdHJhY2tlZCBpbiBvbmdvaW5nIG5ldHdvcmsgcmVxdWVzdCB0cmFja2luZ1xuICAgKi9cbiAgcHVibGljIGdldDxUPihcbiAgICBwYXRoOiBzdHJpbmcsXG4gICAgcXVlcnlQYXJhbXM6IFF1ZXJ5UGFyYW1PYmplY3QgPSB7fSxcbiAgICByZXF1ZXN0T3B0aW9uczogSHR0cE9wdGlvbnMgPSB7fSxcbiAgICBzaWxlbnQ6IGJvb2xlYW4gPSBmYWxzZVxuICApOiBPYnNlcnZhYmxlPFQ+IHtcbiAgICByZXR1cm4gdGhpcy5tYWtlUmVxdWVzdDxUPihcbiAgICAgIHRoaXMuaHR0cC5nZXQuYmluZCh0aGlzLmh0dHAsIHRoaXMuYnVpbGRVcmwocGF0aCkpLFxuICAgICAgeyBwYXJhbXM6IHRoaXMuYnVpbGRQYXJhbXNRdWVyeShxdWVyeVBhcmFtcyksIC4uLnJlcXVlc3RPcHRpb25zIH0sXG4gICAgICBzaWxlbnRcbiAgICApO1xuICB9XG5cbiAgLyoqXG4gICAqIFNlbmRzIGEgUE9TVCByZXF1ZXN0IHRvIHRoZSBzcGVjaWZpZWQgZW5kcG9pbnQuXG4gICAqIEBwYXJhbSBwYXRoIHJlbGF0aXZlIHBhdGggZnJvbSB0aGUgcHJvdmlkZWQgYmFzZSB1cmxcbiAgICogQHBhcmFtIHBheWxvYWQgYW55IHBheWxvYWQgdG8gYmUgc2VuZCB3aXRoIHRoZSByZXF1ZXN0XG4gICAqIEBwYXJhbSBxdWVyeVBhcmFtcyBhbiBvYmplY3QgZGVzY3JpYmluZyB0aGUgcXVlcnkgcGFyYW1ldGVycyBmb3IgdGhlIHJlcXVlc3QuXG4gICAqIEBwYXJhbSByZXF1ZXN0T3B0aW9ucyBIdHRwT3B0aW9ucyBwYXNzZWQgdG8gdGhlIGZ1bmN0aW9uIGNhbGxcbiAgICogQHBhcmFtIHNpbGVudCBkZXRlcm1pbmVzIHdoZXRoZXIgdGhlIGZ1bmN0aW9uIHNob3VsZCBiZSB0cmFja2VkIGluIG9uZ29pbmcgbmV0d29yayByZXF1ZXN0IHRyYWNraW5nXG4gICAqL1xuICBwdWJsaWMgcG9zdDxUPihcbiAgICBwYXRoOiBzdHJpbmcsXG4gICAgcGF5bG9hZDogYW55ID0gbnVsbCxcbiAgICBxdWVyeVBhcmFtczogUXVlcnlQYXJhbU9iamVjdCA9IHt9LFxuICAgIHJlcXVlc3RPcHRpb25zOiBIdHRwT3B0aW9ucyA9IHt9LFxuICAgIHNpbGVudDogYm9vbGVhbiA9IGZhbHNlXG4gICk6IE9ic2VydmFibGU8VD4ge1xuICAgIHJldHVybiB0aGlzLm1ha2VSZXF1ZXN0PFQ+KFxuICAgICAgdGhpcy5odHRwLnBvc3QuYmluZCh0aGlzLmh0dHAsIHRoaXMuYnVpbGRVcmwocGF0aCksIHBheWxvYWQpLFxuICAgICAgeyBwYXJhbXM6IHRoaXMuYnVpbGRQYXJhbXNRdWVyeShxdWVyeVBhcmFtcyksIC4uLnJlcXVlc3RPcHRpb25zIH0sXG4gICAgICBzaWxlbnRcbiAgICApO1xuICB9XG5cbiAgLyoqXG4gICAqIFNlbmRzIGEgUEFUQ0ggcmVxdWVzdCB0byB0aGUgc3BlY2lmaWVkIGVuZHBvaW50LlxuICAgKiBAcGFyYW0gcGF0aCByZWxhdGl2ZSBwYXRoIGZyb20gdGhlIHByb3ZpZGVkIGJhc2UgdXJsXG4gICAqIEBwYXJhbSBwYXlsb2FkIGFueSBwYXlsb2FkIHRvIGJlIHNlbmQgd2l0aCB0aGUgcmVxdWVzdFxuICAgKiBAcGFyYW0gcXVlcnlQYXJhbXMgYW4gb2JqZWN0IGRlc2NyaWJpbmcgdGhlIHF1ZXJ5IHBhcmFtZXRlcnMgZm9yIHRoZSByZXF1ZXN0LlxuICAgKiBAcGFyYW0gcmVxdWVzdE9wdGlvbnMgSHR0cE9wdGlvbnMgcGFzc2VkIHRvIHRoZSBmdW5jdGlvbiBjYWxsXG4gICAqIEBwYXJhbSBzaWxlbnQgZGV0ZXJtaW5lcyB3aGV0aGVyIHRoZSBmdW5jdGlvbiBzaG91bGQgYmUgdHJhY2tlZCBpbiBvbmdvaW5nIG5ldHdvcmsgcmVxdWVzdCB0cmFja2luZ1xuICAgKi9cbiAgcHVibGljIHBhdGNoPFQ+KFxuICAgIHBhdGg6IHN0cmluZyxcbiAgICBwYXlsb2FkOiBhbnkgPSBudWxsLFxuICAgIHF1ZXJ5UGFyYW1zOiBRdWVyeVBhcmFtT2JqZWN0ID0ge30sXG4gICAgcmVxdWVzdE9wdGlvbnM6IEh0dHBPcHRpb25zID0ge30sXG4gICAgc2lsZW50OiBib29sZWFuID0gZmFsc2VcbiAgKTogT2JzZXJ2YWJsZTxUPiB7XG4gICAgcmV0dXJuIHRoaXMubWFrZVJlcXVlc3Q8VD4oXG4gICAgICB0aGlzLmh0dHAucGF0Y2guYmluZCh0aGlzLmh0dHAsIHRoaXMuYnVpbGRVcmwocGF0aCksIHBheWxvYWQpLFxuICAgICAgeyBwYXJhbXM6IHRoaXMuYnVpbGRQYXJhbXNRdWVyeShxdWVyeVBhcmFtcyksIC4uLnJlcXVlc3RPcHRpb25zIH0sXG4gICAgICBzaWxlbnRcbiAgICApO1xuICB9XG5cbiAgLyoqXG4gICAqIFNlbmRzIGEgUE9TVCByZXF1ZXN0IHRvIHRoZSBzcGVjaWZpZWQgZW5kcG9pbnQuXG4gICAqIEBwYXJhbSBwYXRoIHJlbGF0aXZlIHBhdGggZnJvbSB0aGUgcHJvdmlkZWQgYmFzZSB1cmxcbiAgICogQHBhcmFtIHBheWxvYWQgYW55IHBheWxvYWQgdG8gYmUgc2VuZCB3aXRoIHRoZSByZXF1ZXN0XG4gICAqIEBwYXJhbSBxdWVyeVBhcmFtcyBhbiBvYmplY3QgZGVzY3JpYmluZyB0aGUgcXVlcnkgcGFyYW1ldGVycyBmb3IgdGhlIHJlcXVlc3QuXG4gICAqIEBwYXJhbSByZXF1ZXN0T3B0aW9ucyBIdHRwT3B0aW9ucyBwYXNzZWQgdG8gdGhlIGZ1bmN0aW9uIGNhbGxcbiAgICogQHBhcmFtIHNpbGVudCBkZXRlcm1pbmVzIHdoZXRoZXIgdGhlIGZ1bmN0aW9uIHNob3VsZCBiZSB0cmFja2VkIGluIG9uZ29pbmcgbmV0d29yayByZXF1ZXN0IHRyYWNraW5nXG4gICAqL1xuICBwdWJsaWMgcHV0PFQ+KFxuICAgIHBhdGg6IHN0cmluZyxcbiAgICBwYXlsb2FkOiBhbnkgPSBudWxsLFxuICAgIHF1ZXJ5UGFyYW1zOiBRdWVyeVBhcmFtT2JqZWN0ID0ge30sXG4gICAgcmVxdWVzdE9wdGlvbnM6IEh0dHBPcHRpb25zID0ge30sXG4gICAgc2lsZW50OiBib29sZWFuID0gZmFsc2VcbiAgKTogT2JzZXJ2YWJsZTxUPiB7XG4gICAgcmV0dXJuIHRoaXMubWFrZVJlcXVlc3Q8VD4oXG4gICAgICB0aGlzLmh0dHAucHV0LmJpbmQodGhpcy5odHRwLCB0aGlzLmJ1aWxkVXJsKHBhdGgpLCBwYXlsb2FkKSxcbiAgICAgIHsgcGFyYW1zOiB0aGlzLmJ1aWxkUGFyYW1zUXVlcnkocXVlcnlQYXJhbXMpLCAuLi5yZXF1ZXN0T3B0aW9ucyB9LFxuICAgICAgc2lsZW50XG4gICAgKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBTZW5kcyBhIERFTEVURSByZXF1ZXN0IHRvIHRoZSBzcGVjaWZpZWQgZW5kcG9pbnQuXG4gICAqIEBwYXJhbSBwYXRoIHJlbGF0aXZlIHBhdGggZnJvbSB0aGUgcHJvdmlkZWQgYmFzZSB1cmxcbiAgICogQHBhcmFtIHF1ZXJ5UGFyYW1zIGFuIG9iamVjdCBkZXNjcmliaW5nIHRoZSBxdWVyeSBwYXJhbWV0ZXJzIGZvciB0aGUgcmVxdWVzdC5cbiAgICogQHBhcmFtIHJlcXVlc3RPcHRpb25zIEh0dHBPcHRpb25zIHBhc3NlZCB0byB0aGUgZnVuY3Rpb24gY2FsbFxuICAgKiBAcGFyYW0gc2lsZW50IGRldGVybWluZXMgd2hldGhlciB0aGUgZnVuY3Rpb24gc2hvdWxkIGJlIHRyYWNrZWQgaW4gb25nb2luZyBuZXR3b3JrIHJlcXVlc3QgdHJhY2tpbmdcbiAgICovXG4gIHB1YmxpYyBkZWxldGU8VD4oXG4gICAgcGF0aDogc3RyaW5nLFxuICAgIHF1ZXJ5UGFyYW1zOiBRdWVyeVBhcmFtT2JqZWN0ID0ge30sXG4gICAgcmVxdWVzdE9wdGlvbnM6IEh0dHBPcHRpb25zID0ge30sXG4gICAgc2lsZW50OiBib29sZWFuID0gZmFsc2VcbiAgKTogT2JzZXJ2YWJsZTxUPiB7XG4gICAgcmV0dXJuIHRoaXMubWFrZVJlcXVlc3Q8VD4oXG4gICAgICB0aGlzLmh0dHAuZGVsZXRlLmJpbmQodGhpcy5odHRwLCB0aGlzLmJ1aWxkVXJsKHBhdGgpKSxcbiAgICAgIHsgcGFyYW1zOiB0aGlzLmJ1aWxkUGFyYW1zUXVlcnkocXVlcnlQYXJhbXMpLCAuLi5yZXF1ZXN0T3B0aW9ucyB9LFxuICAgICAgc2lsZW50XG4gICAgKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBNYWtlcyBhIHJlcXVlc3Qgd2l0aCB0aGUgc3BlY2lmaWVkIGJvdW5kIEh0dHAgZnVuY3Rpb25cbiAgICogYW5kIGJyb2FkY2FzdHMgdGhlIG5ldHdvcmsgZXJyb3IgaWYgYW55IGhhcHBlbnMgZHVyaW5nIHRoZSByZXF1ZXN0LlxuICAgKi9cbiAgcHJpdmF0ZSBtYWtlUmVxdWVzdDxUPihcbiAgICBodHRwRm46IChvcHRpb25zOiBIdHRwT3B0aW9ucykgPT4gT2JzZXJ2YWJsZTxUPixcbiAgICByZXF1ZXN0T3B0aW9uczogSHR0cE9wdGlvbnMgPSB7fSxcbiAgICBzaWxlbnQ6IGJvb2xlYW4gPSBmYWxzZVxuICApOiBPYnNlcnZhYmxlPFQ+IHtcblxuICAgIGlmICghdGhpcy5jb25maWcuYmFzZVVybCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdbTmV0d29ya1NlcnZpY2VdIFRoZSBiYXNlVXJsIHByb3BlcnR5IG11c3QgYmUgc2V0IGluIFwiTmV0d29ya0NvbmZpZ1wiLicpO1xuICAgIH1cblxuICAgIGNvbnN0IG9wdGlvbnMgPSB7IC4uLnJlcXVlc3RPcHRpb25zLCAuLi50aGlzLmRlZmF1bHRPcHRpb25zIH07XG4gICAgIXNpbGVudCAmJiB0aGlzLm5ldHdvcmtSZXF1ZXN0Q291bnRlci5uZXh0KCsxKTtcblxuICAgIHJldHVybiBodHRwRm4ob3B0aW9ucykucGlwZShcbiAgICAgIHRhcCgoKSA9PiAhc2lsZW50ICYmIHRoaXMubmV0d29ya1JlcXVlc3RDb3VudGVyLm5leHQoLTEpKSxcbiAgICAgIGNhdGNoRXJyb3I8VCwgYW55PigocmVzcG9uc2UsIGNhdWdodCkgPT4ge1xuICAgICAgICAhc2lsZW50ICYmIHRoaXMubmV0d29ya1JlcXVlc3RDb3VudGVyLm5leHQoLTEpO1xuXG4gICAgICAgIGNvbnNvbGUud2FybihcbiAgICAgICAgICBgW05ldHdvcmtTZXJ2aWNlXSBUaGUgJHtyZXNwb25zZS51cmx9IHJlcXVlc3QgaGFzIGZhaWxlZCBhbmQgcmV0dXJuZWQgd2l0aCAke3Jlc3BvbnNlLnN0YXR1c30gc3RhdHVzIGNvZGUuYFxuICAgICAgICApO1xuXG4gICAgICAgIHRoaXMubmV0d29ya0Vycm9yLm5leHQocmVzcG9uc2UpO1xuXG4gICAgICAgIHJldHVybiB0aHJvd0Vycm9yKHJlc3BvbnNlKTtcbiAgICAgIH0pXG4gICAgKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBCdWlsZHMgYSBxdWVyeSBzdHJpbmcgZnJvbSBhIHF1ZXJ5IHBhcmFtIG9iamVjdC5cbiAgICovXG4gIHB1YmxpYyBidWlsZFBhcmFtc1F1ZXJ5KHF1ZXJ5UGFyYW1zOiBRdWVyeVBhcmFtT2JqZWN0IHwgSHR0cFBhcmFtcyk6IEh0dHBQYXJhbXMge1xuICAgIGlmIChxdWVyeVBhcmFtcyBpbnN0YW5jZW9mIEh0dHBQYXJhbXMpIHtcbiAgICAgIHJldHVybiBxdWVyeVBhcmFtcztcbiAgICB9IGVsc2Uge1xuICAgICAgLyoqXG4gICAgICAgKiBXZSBuZWVkIHRvIGNhc3QgaGVyZSwgYmVjYXVzZSBIdHRwUGFyYW1zT3B0aW9ucyBvbmx5IGV4cGVjdHMgc3RyaW5nIHwgc3RyaW5nW10gYnV0XG4gICAgICAgKiB3ZSBrbm93IHdlIGNhbiBhZGQgbnVtYmVycyBhbmQgYm9vbGVhbnMgYXMgdGhleSBhcmUgYXV0byBjb252ZXJ0ZWQgdG8gc3RyaW5nLlxuICAgICAgICovXG4gICAgICByZXR1cm4gbmV3IEh0dHBQYXJhbXMoeyBmcm9tT2JqZWN0OiA8YW55PnF1ZXJ5UGFyYW1zIH0pO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBCdWlsZHMgYSBmdWxseSBxdWFsaWZpZWQgdXJsIGZyb20gdGhlIHByb3ZpZGVkIHNsdWcgYW5kIFF1ZXJ5UGFyYW1PYmplY3QuXG4gICAqL1xuICBwdWJsaWMgYnVpbGRVcmwoc2x1Z09yVXJsOiBzdHJpbmcpOiBzdHJpbmcge1xuICAgIGxldCB1cmw6IHN0cmluZztcblxuICAgIGlmIChzbHVnT3JVcmxbMF0gPT09ICcvJykge1xuICAgICAgdXJsID0gYCR7dGhpcy5jb25maWcuYmFzZVVybH0ke3NsdWdPclVybH1gO1xuICAgIH0gZWxzZSBpZiAoc2x1Z09yVXJsLmluZGV4T2YoJ2h0dHAnKSA9PT0gMCkge1xuICAgICAgdXJsID0gc2x1Z09yVXJsO1xuICAgIH1cblxuICAgIGlmICh1cmwgPT09IHVuZGVmaW5lZCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdbTmV0d29yU2VydmljZV0gUGF0aCBtdXN0IHN0YXJ0IHdpdGggYSBiYWNrc2xhc2ggb3IgeW91IG5lZWQgdG8gcGFzcyBhIGZ1bGx5IHF1YWxpZmllZCB1cmwuJyk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHVybDtcbiAgfVxuXG4gIC8qKlxuICAgKiBTZXQgdGhlIGJhc2UgdXJsIHRvIGJlIHVzZWQgZm9yIHJlcXVlc3RzXG4gICAqL1xuICBwdWJsaWMgc2V0QmFzZVVybCh1cmw6IHN0cmluZyk6IHZvaWQge1xuICAgIHRoaXMuY29uZmlnLmJhc2VVcmwgPSB1cmw7XG4gIH1cbn1cbiJdfQ==
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmV0d29yay5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6Im5nOi8vQHNwcmVhZG1vbml0b3IvbmV0d29yay8iLCJzb3VyY2VzIjpbIm5ldHdvcmsuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0MsT0FBTyxFQUFFLFVBQVUsRUFBZ0IsVUFBVSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDNUUsT0FBTyxFQUFjLE9BQU8sRUFBRSxlQUFlLEVBQUUsVUFBVSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ3hFLE9BQU8sRUFBRSxJQUFJLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxvQkFBb0IsRUFBRSxZQUFZLEVBQUUsVUFBVSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFHaEcsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGdCQUFnQixDQUFDOzs7OztJQWU3Qyx3QkFBb0IsSUFBZ0IsRUFBVSxNQUFxQjtRQUEvQyxTQUFJLEdBQUosSUFBSSxDQUFZO1FBQVUsV0FBTSxHQUFOLE1BQU0sQ0FBZTs0QkFWSCxJQUFJLE9BQU8sRUFBRTtxQ0FFcEIsSUFBSSxlQUFlLENBQVMsQ0FBQyxDQUFDO2lDQUN2QyxJQUFJLENBQUMscUJBQXFCLENBQUMsSUFBSSxDQUM3RSxJQUFJLENBQUMsVUFBQyxLQUFLLEVBQUUsTUFBTSxJQUFLLE9BQUEsQ0FBQyxLQUFLLEdBQUcsTUFBTSxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxHQUFHLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQTFDLENBQTBDLEVBQUUsQ0FBQyxDQUFDLEVBQ3RFLEdBQUcsQ0FBQyxVQUFBLEtBQUssSUFBSSxPQUFBLEtBQUssR0FBRyxDQUFDLEVBQVQsQ0FBUyxDQUFDLEVBQ3ZCLG9CQUFvQixFQUFFLEVBQ3RCLFlBQVksQ0FBQyxFQUFFLENBQUMsQ0FDakI7UUFHQyxJQUFJLENBQUMs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RkFBNkYsQ0FBQyxDQUFDO1NBQ2hIO1FBRUQsTUFBTSxDQUFDLEdBQUcsQ0FBQzs7Ozs7OztJQU1OLG1DQUFVOzs7OztjQUFDLEdBQVc7UUFDM0IsSUFBSSxDQUFDLE1BQU0sQ0FBQyxPQUFPLEdBQUcsR0FBRyxDQUFDOzs7Z0JBak43QixVQUFVOzs7O2dCQVBGLFVBQVU7Z0JBS1YsYUFBYTs7eUJBTnRCOztTQVNhLGNBQWMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBIdHRwQ2xpZW50LCBIdHRwUmVzcG9uc2UsIEh0dHBQYXJhbXMgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlLCBTdWJqZWN0LCBCZWhhdmlvclN1YmplY3QsIHRocm93RXJyb3IgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IHNjYW4sIG1hcCwgdGFwLCBkaXN0aW5jdFVudGlsQ2hhbmdlZCwgZGVib3VuY2VUaW1lLCBjYXRjaEVycm9yIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuXG5pbXBvcnQgeyBRdWVyeVBhcmFtT2JqZWN0LCBIdHRwT3B0aW9ucyB9IGZyb20gJy4vaW50ZXJmYWNlcyc7XG5pbXBvcnQgeyBOZXR3b3JrQ29uZmlnIH0gZnJvbSAnLi9jb25maWcuY2xhc3MnO1xuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgTmV0d29ya1NlcnZpY2U8UmVzcG9uc2VUeXBlID0gYW55LCBFcnJvclJlc3BvbnNlVHlwZSA9IGFueT4ge1xuICAvLyBhbnkgc2hvdWxkIGJlIHlvdXJzIGdlbmVyaWMgRXJyb3Igd3JhcHBlclxuICBwdWJsaWMgbmV0d29ya0Vycm9yOiBTdWJqZWN0PEh0dHBSZXNwb25zZTxFcnJvclJlc3BvbnNlVHlwZT4+ID0gbmV3IFN1YmplY3QoKTtcblxuICBwcml2YXRlIG5ldHdvcmtSZXF1ZXN0Q291bnRlcjogQmVoYXZpb3JTdWJqZWN0PG51bWJlcj4gPSBuZXcgQmVoYXZpb3JTdWJqZWN0PG51bWJlcj4oMCk7XG4gIHB1YmxpYyByZXF1ZXN0SW5Qcm9ncmVzczogT2JzZXJ2YWJsZTxib29sZWFuPiA9IHRoaXMubmV0d29ya1JlcXVlc3RDb3VudGVyLnBpcGUoXG4gICAgc2NhbigoY291bnQsIGNoYW5nZSkgPT4gKGNvdW50ICsgY2hhbmdlID49IDAgPyBjb3VudCArIGNoYW5nZSA6IDApLCAwKSxcbiAgICBtYXAoY291bnQgPT4gY291bnQgPiAwKSxcbiAgICBkaXN0aW5jdFVudGlsQ2hhbmdlZCgpLFxuICAgIGRlYm91bmNlVGltZSg1MClcbiAgKTtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGh0dHA6IEh0dHBDbGllbnQsIHByaXZhdGUgY29uZmlnOiBOZXR3b3JrQ29uZmlnKSB7XG4gICAgdGhpcy5jb25maWcgPSB7IC4uLm5ldyBOZXR3b3JrQ29uZmlnKCksIC4uLmNvbmZpZyB9O1xuICB9XG5cbiAgLyoqXG4gICAqIEdlbmVyYXRlcyBtaW5pbXVtIGFtb3VudCBvZiBvcHRpb25zIHRvIG1ha2UgYSByZXF1ZXN0IHRvIHRoZSBBUEkuXG4gICAqL1xuICBnZXQgZGVmYXVsdE9wdGlvbnMoKTogSHR0cE9wdGlvbnMge1xuICAgIHJldHVybiA8SHR0cE9wdGlvbnM+e1xuICAgICAgcmVwb3J0UHJvZ3Jlc3M6IGZhbHNlLFxuICAgICAgcmVzcG9uc2VUeXBlOiAnanNvbicsXG4gICAgICBvYnNlcnZlOiAnYm9keScsXG4gICAgICB3aXRoQ3JlZGVudGlhbHM6IHRydWUsXG4gICAgfTtcbiAgfVxuXG4gIC8qKlxuICAgKiBTZW5kcyBhIEdFVCByZXF1ZXN0IHRvIHRoZSBzcGVjaWZpZWQgZW5kcG9pbnQuXG4gICAqIEBwYXJhbSBwYXRoIHJlbGF0aXZlIHBhdGggZnJvbSB0aGUgcHJvdmlkZWQgYmFzZSB1cmxcbiAgICogQHBhcmFtIHF1ZXJ5UGFyYW1zIGFuIG9iamVjdCBkZXNjcmliaW5nIHRoZSBxdWVyeSBwYXJhbWV0ZXJzIGZvciB0aGUgcmVxdWVzdC5cbiAgICogQHBhcmFtIHJlcXVlc3RPcHRpb25zIEh0dHBPcHRpb25zIHBhc3NlZCB0byB0aGUgZnVuY3Rpb24gY2FsbFxuICAgKiBAcGFyYW0gc2lsZW50IGRldGVybWluZXMgd2hldGhlciB0aGUgZnVuY3Rpb24gc2hvdWxkIGJlIHRyYWNrZWQgaW4gb25nb2luZyBuZXR3b3JrIHJlcXVlc3QgdHJhY2tpbmdcbiAgICovXG4gIHB1YmxpYyBnZXQ8VD4oXG4gICAgcGF0aDogc3RyaW5nLFxuICAgIHF1ZXJ5UGFyYW1zOiBRdWVyeVBhcmFtT2JqZWN0ID0ge30sXG4gICAgcmVxdWVzdE9wdGlvbnM6IEh0dHBPcHRpb25zID0ge30sXG4gICAgc2lsZW50OiBib29sZWFuID0gZmFsc2VcbiAgKTogT2JzZXJ2YWJsZTxUPiB7XG4gICAgcmV0dXJuIHRoaXMubWFrZVJlcXVlc3Q8VD4oXG4gICAgICB0aGlzLmh0dHAuZ2V0LmJpbmQodGhpcy5odHRwLCB0aGlzLmJ1aWxkVXJsKHBhdGgpKSxcbiAgICAgIHsgcGFyYW1zOiB0aGlzLmJ1aWxkUGFyYW1zUXVlcnkocXVlcnlQYXJhbXMpLCAuLi5yZXF1ZXN0T3B0aW9ucyB9LFxuICAgICAgc2lsZW50XG4gICAgKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBTZW5kcyBhIFBPU1QgcmVxdWVzdCB0byB0aGUgc3BlY2lmaWVkIGVuZHBvaW50LlxuICAgKiBAcGFyYW0gcGF0aCByZWxhdGl2ZSBwYXRoIGZyb20gdGhlIHByb3ZpZGVkIGJhc2UgdXJsXG4gICAqIEBwYXJhbSBwYXlsb2FkIGFueSBwYXlsb2FkIHRvIGJlIHNlbmQgd2l0aCB0aGUgcmVxdWVzdFxuICAgKiBAcGFyYW0gcXVlcnlQYXJhbXMgYW4gb2JqZWN0IGRlc2NyaWJpbmcgdGhlIHF1ZXJ5IHBhcmFtZXRlcnMgZm9yIHRoZSByZXF1ZXN0LlxuICAgKiBAcGFyYW0gcmVxdWVzdE9wdGlvbnMgSHR0cE9wdGlvbnMgcGFzc2VkIHRvIHRoZSBmdW5jdGlvbiBjYWxsXG4gICAqIEBwYXJhbSBzaWxlbnQgZGV0ZXJtaW5lcyB3aGV0aGVyIHRoZSBmdW5jdGlvbiBzaG91bGQgYmUgdHJhY2tlZCBpbiBvbmdvaW5nIG5ldHdvcmsgcmVxdWVzdCB0cmFja2luZ1xuICAgKi9cbiAgcHVibGljIHBvc3Q8VD4oXG4gICAgcGF0aDogc3RyaW5nLFxuICAgIHBheWxvYWQ6IGFueSA9IG51bGwsXG4gICAgcXVlcnlQYXJhbXM6IFF1ZXJ5UGFyYW1PYmplY3QgPSB7fSxcbiAgICByZXF1ZXN0T3B0aW9uczogSHR0cE9wdGlvbnMgPSB7fSxcbiAgICBzaWxlbnQ6IGJvb2xlYW4gPSBmYWxzZVxuICApOiBPYnNlcnZhYmxlPFQ+IHtcbiAgICByZXR1cm4gdGhpcy5tYWtlUmVxdWVzdDxUPihcbiAgICAgIHRoaXMuaHR0cC5wb3N0LmJpbmQodGhpcy5odHRwLCB0aGlzLmJ1aWxkVXJsKHBhdGgpLCBwYXlsb2FkKSxcbiAgICAgIHsgcGFyYW1zOiB0aGlzLmJ1aWxkUGFyYW1zUXVlcnkocXVlcnlQYXJhbXMpLCAuLi5yZXF1ZXN0T3B0aW9ucyB9LFxuICAgICAgc2lsZW50XG4gICAgKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBTZW5kcyBhIFBBVENIIHJlcXVlc3QgdG8gdGhlIHNwZWNpZmllZCBlbmRwb2ludC5cbiAgICogQHBhcmFtIHBhdGggcmVsYXRpdmUgcGF0aCBmcm9tIHRoZSBwcm92aWRlZCBiYXNlIHVybFxuICAgKiBAcGFyYW0gcGF5bG9hZCBhbnkgcGF5bG9hZCB0byBiZSBzZW5kIHdpdGggdGhlIHJlcXVlc3RcbiAgICogQHBhcmFtIHF1ZXJ5UGFyYW1zIGFuIG9iamVjdCBkZXNjcmliaW5nIHRoZSBxdWVyeSBwYXJhbWV0ZXJzIGZvciB0aGUgcmVxdWVzdC5cbiAgICogQHBhcmFtIHJlcXVlc3RPcHRpb25zIEh0dHBPcHRpb25zIHBhc3NlZCB0byB0aGUgZnVuY3Rpb24gY2FsbFxuICAgKiBAcGFyYW0gc2lsZW50IGRldGVybWluZXMgd2hldGhlciB0aGUgZnVuY3Rpb24gc2hvdWxkIGJlIHRyYWNrZWQgaW4gb25nb2luZyBuZXR3b3JrIHJlcXVlc3QgdHJhY2tpbmdcbiAgICovXG4gIHB1YmxpYyBwYXRjaDxUPihcbiAgICBwYXRoOiBzdHJpbmcsXG4gICAgcGF5bG9hZDogYW55ID0gbnVsbCxcbiAgICBxdWVyeVBhcmFtczogUXVlcnlQYXJhbU9iamVjdCA9IHt9LFxuICAgIHJlcXVlc3RPcHRpb25zOiBIdHRwT3B0aW9ucyA9IHt9LFxuICAgIHNpbGVudDogYm9vbGVhbiA9IGZhbHNlXG4gICk6IE9ic2VydmFibGU8VD4ge1xuICAgIHJldHVybiB0aGlzLm1ha2VSZXF1ZXN0PFQ+KFxuICAgICAgdGhpcy5odHRwLnBhdGNoLmJpbmQodGhpcy5odHRwLCB0aGlzLmJ1aWxkVXJsKHBhdGgpLCBwYXlsb2FkKSxcbiAgICAgIHsgcGFyYW1zOiB0aGlzLmJ1aWxkUGFyYW1zUXVlcnkocXVlcnlQYXJhbXMpLCAuLi5yZXF1ZXN0T3B0aW9ucyB9LFxuICAgICAgc2lsZW50XG4gICAgKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBTZW5kcyBhIFBPU1QgcmVxdWVzdCB0byB0aGUgc3BlY2lmaWVkIGVuZHBvaW50LlxuICAgKiBAcGFyYW0gcGF0aCByZWxhdGl2ZSBwYXRoIGZyb20gdGhlIHByb3ZpZGVkIGJhc2UgdXJsXG4gICAqIEBwYXJhbSBwYXlsb2FkIGFueSBwYXlsb2FkIHRvIGJlIHNlbmQgd2l0aCB0aGUgcmVxdWVzdFxuICAgKiBAcGFyYW0gcXVlcnlQYXJhbXMgYW4gb2JqZWN0IGRlc2NyaWJpbmcgdGhlIHF1ZXJ5IHBhcmFtZXRlcnMgZm9yIHRoZSByZXF1ZXN0LlxuICAgKiBAcGFyYW0gcmVxdWVzdE9wdGlvbnMgSHR0cE9wdGlvbnMgcGFzc2VkIHRvIHRoZSBmdW5jdGlvbiBjYWxsXG4gICAqIEBwYXJhbSBzaWxlbnQgZGV0ZXJtaW5lcyB3aGV0aGVyIHRoZSBmdW5jdGlvbiBzaG91bGQgYmUgdHJhY2tlZCBpbiBvbmdvaW5nIG5ldHdvcmsgcmVxdWVzdCB0cmFja2luZ1xuICAgKi9cbiAgcHVibGljIHB1dDxUPihcbiAgICBwYXRoOiBzdHJpbmcsXG4gICAgcGF5bG9hZDogYW55ID0gbnVsbCxcbiAgICBxdWVyeVBhcmFtczogUXVlcnlQYXJhbU9iamVjdCA9IHt9LFxuICAgIHJlcXVlc3RPcHRpb25zOiBIdHRwT3B0aW9ucyA9IHt9LFxuICAgIHNpbGVudDogYm9vbGVhbiA9IGZhbHNlXG4gICk6IE9ic2VydmFibGU8VD4ge1xuICAgIHJldHVybiB0aGlzLm1ha2VSZXF1ZXN0PFQ+KFxuICAgICAgdGhpcy5odHRwLnB1dC5iaW5kKHRoaXMuaHR0cCwgdGhpcy5idWlsZFVybChwYXRoKSwgcGF5bG9hZCksXG4gICAgICB7IHBhcmFtczogdGhpcy5idWlsZFBhcmFtc1F1ZXJ5KHF1ZXJ5UGFyYW1zKSwgLi4ucmVxdWVzdE9wdGlvbnMgfSxcbiAgICAgIHNpbGVudFxuICAgICk7XG4gIH1cblxuICAvKipcbiAgICogU2VuZHMgYSBERUxFVEUgcmVxdWVzdCB0byB0aGUgc3BlY2lmaWVkIGVuZHBvaW50LlxuICAgKiBAcGFyYW0gcGF0aCByZWxhdGl2ZSBwYXRoIGZyb20gdGhlIHByb3ZpZGVkIGJhc2UgdXJsXG4gICAqIEBwYXJhbSBxdWVyeVBhcmFtcyBhbiBvYmplY3QgZGVzY3JpYmluZyB0aGUgcXVlcnkgcGFyYW1ldGVycyBmb3IgdGhlIHJlcXVlc3QuXG4gICAqIEBwYXJhbSByZXF1ZXN0T3B0aW9ucyBIdHRwT3B0aW9ucyBwYXNzZWQgdG8gdGhlIGZ1bmN0aW9uIGNhbGxcbiAgICogQHBhcmFtIHNpbGVudCBkZXRlcm1pbmVzIHdoZXRoZXIgdGhlIGZ1bmN0aW9uIHNob3VsZCBiZSB0cmFja2VkIGluIG9uZ29pbmcgbmV0d29yayByZXF1ZXN0IHRyYWNraW5nXG4gICAqL1xuICBwdWJsaWMgZGVsZXRlPFQ+KFxuICAgIHBhdGg6IHN0cmluZyxcbiAgICBxdWVyeVBhcmFtczogUXVlcnlQYXJhbU9iamVjdCA9IHt9LFxuICAgIHJlcXVlc3RPcHRpb25zOiBIdHRwT3B0aW9ucyA9IHt9LFxuICAgIHNpbGVudDogYm9vbGVhbiA9IGZhbHNlXG4gICk6IE9ic2VydmFibGU8VD4ge1xuICAgIHJldHVybiB0aGlzLm1ha2VSZXF1ZXN0PFQ+KFxuICAgICAgdGhpcy5odHRwLmRlbGV0ZS5iaW5kKHRoaXMuaHR0cCwgdGhpcy5idWlsZFVybChwYXRoKSksXG4gICAgICB7IHBhcmFtczogdGhpcy5idWlsZFBhcmFtc1F1ZXJ5KHF1ZXJ5UGFyYW1zKSwgLi4ucmVxdWVzdE9wdGlvbnMgfSxcbiAgICAgIHNpbGVudFxuICAgICk7XG4gIH1cblxuICAvKipcbiAgICogTWFrZXMgYSByZXF1ZXN0IHdpdGggdGhlIHNwZWNpZmllZCBib3VuZCBIdHRwIGZ1bmN0aW9uXG4gICAqIGFuZCBicm9hZGNhc3RzIHRoZSBuZXR3b3JrIGVycm9yIGlmIGFueSBoYXBwZW5zIGR1cmluZyB0aGUgcmVxdWVzdC5cbiAgICovXG4gIHByaXZhdGUgbWFrZVJlcXVlc3Q8VD4oXG4gICAgaHR0cEZuOiAob3B0aW9uczogSHR0cE9wdGlvbnMpID0+IE9ic2VydmFibGU8VD4sXG4gICAgcmVxdWVzdE9wdGlvbnM6IEh0dHBPcHRpb25zID0ge30sXG4gICAgc2lsZW50OiBib29sZWFuID0gZmFsc2VcbiAgKTogT2JzZXJ2YWJsZTxUPiB7XG4gICAgY29uc3Qgb3B0aW9ucyA9IHsgLi4ucmVxdWVzdE9wdGlvbnMsIC4uLnRoaXMuZGVmYXVsdE9wdGlvbnMgfTtcbiAgICAhc2lsZW50ICYmIHRoaXMubmV0d29ya1JlcXVlc3RDb3VudGVyLm5leHQoKzEpO1xuXG4gICAgcmV0dXJuIGh0dHBGbihvcHRpb25zKS5waXBlKFxuICAgICAgdGFwKCgpID0+ICFzaWxlbnQgJiYgdGhpcy5uZXR3b3JrUmVxdWVzdENvdW50ZXIubmV4dCgtMSkpLFxuICAgICAgY2F0Y2hFcnJvcjxULCBhbnk+KChyZXNwb25zZSwgY2F1Z2h0KSA9PiB7XG4gICAgICAgICFzaWxlbnQgJiYgdGhpcy5uZXR3b3JrUmVxdWVzdENvdW50ZXIubmV4dCgtMSk7XG5cbiAgICAgICAgY29uc29sZS53YXJuKFxuICAgICAgICAgIGBbTmV0d29ya1NlcnZpY2VdIFRoZSAke3Jlc3BvbnNlLnVybH0gcmVxdWVzdCBoYXMgZmFpbGVkIGFuZCByZXR1cm5lZCB3aXRoICR7cmVzcG9uc2Uuc3RhdHVzfSBzdGF0dXMgY29kZS5gXG4gICAgICAgICk7XG5cbiAgICAgICAgdGhpcy5uZXR3b3JrRXJyb3IubmV4dChyZXNwb25zZSk7XG5cbiAgICAgICAgcmV0dXJuIHRocm93RXJyb3IocmVzcG9uc2UpO1xuICAgICAgfSlcbiAgICApO1xuICB9XG5cbiAgLyoqXG4gICAqIEJ1aWxkcyBhIHF1ZXJ5IHN0cmluZyBmcm9tIGEgcXVlcnkgcGFyYW0gb2JqZWN0LlxuICAgKi9cbiAgcHVibGljIGJ1aWxkUGFyYW1zUXVlcnkocXVlcnlQYXJhbXM6IFF1ZXJ5UGFyYW1PYmplY3QgfCBIdHRwUGFyYW1zKTogSHR0cFBhcmFtcyB7XG4gICAgaWYgKHF1ZXJ5UGFyYW1zIGluc3RhbmNlb2YgSHR0cFBhcmFtcykge1xuICAgICAgcmV0dXJuIHF1ZXJ5UGFyYW1zO1xuICAgIH0gZWxzZSB7XG4gICAgICAvKipcbiAgICAgICAqIFdlIG5lZWQgdG8gY2FzdCBoZXJlLCBiZWNhdXNlIEh0dHBQYXJhbXNPcHRpb25zIG9ubHkgZXhwZWN0cyBzdHJpbmcgfCBzdHJpbmdbXSBidXRcbiAgICAgICAqIHdlIGtub3cgd2UgY2FuIGFkZCBudW1iZXJzIGFuZCBib29sZWFucyBhcyB0aGV5IGFyZSBhdXRvIGNvbnZlcnRlZCB0byBzdHJpbmcuXG4gICAgICAgKi9cbiAgICAgIHJldHVybiBuZXcgSHR0cFBhcmFtcyh7IGZyb21PYmplY3Q6IDxhbnk+cXVlcnlQYXJhbXMgfSk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIEJ1aWxkcyBhIGZ1bGx5IHF1YWxpZmllZCB1cmwgZnJvbSB0aGUgcHJvdmlkZWQgc2x1ZyBhbmQgUXVlcnlQYXJhbU9iamVjdC5cbiAgICovXG4gIHB1YmxpYyBidWlsZFVybChzbHVnT3JVcmw6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgbGV0IHVybDogc3RyaW5nO1xuXG4gICAgLyoqXG4gICAgICogSWYgd2UgdHJ5IHRvIHN0YXJ0IGEgcGF0aCBiYXNlZCBuZXR3b3JrIHJlcXVlc3QgYmVmb3JlIHRoZSBiYXNlVXJsIHdhcyBzZXRcbiAgICAgKiB3ZSB0aHJvdyBhbiBlcnJvci5cbiAgICAgKi9cbiAgICBpZiAoc2x1Z09yVXJsLmluZGV4T2YoJ2h0dHAnKSAhPT0gMCAmJiAhdGhpcy5jb25maWcuYmFzZVVybCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdbTmV0d29ya1NlcnZpY2VdIFRoZSBiYXNlVXJsIHByb3BlcnR5IG11c3QgYmUgc2V0IGluIFwiTmV0d29ya0NvbmZpZ1wiLicpO1xuICAgIH1cblxuICAgIGlmIChzbHVnT3JVcmxbMF0gPT09ICcvJykge1xuICAgICAgdXJsID0gYCR7dGhpcy5jb25maWcuYmFzZVVybH0ke3NsdWdPclVybH1gO1xuICAgIH0gZWxzZSBpZiAoc2x1Z09yVXJsLmluZGV4T2YoJ2h0dHAnKSA9PT0gMCkge1xuICAgICAgdXJsID0gc2x1Z09yVXJsO1xuICAgIH1cblxuICAgIGlmICh1cmwgPT09IHVuZGVmaW5lZCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdbTmV0d29yU2VydmljZV0gUGF0aCBtdXN0IHN0YXJ0IHdpdGggYSBiYWNrc2xhc2ggb3IgeW91IG5lZWQgdG8gcGFzcyBhIGZ1bGx5IHF1YWxpZmllZCB1cmwuJyk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHVybDtcbiAgfVxuXG4gIC8qKlxuICAgKiBTZXQgdGhlIGJhc2UgdXJsIHRvIGJlIHVzZWQgZm9yIHJlcXVlc3RzXG4gICAqL1xuICBwdWJsaWMgc2V0QmFzZVVybCh1cmw6IHN0cmluZyk6IHZvaWQge1xuICAgIHRoaXMuY29uZmlnLmJhc2VVcmwgPSB1cmw7XG4gIH1cbn1cbiJdfQ==

@@ -128,5 +128,2 @@ import { HttpClient, HttpParams, HTTP_INTERCEPTORS, HttpClientModule } from '@angular/common/http';

makeRequest(httpFn, requestOptions = {}, silent = false) {
if (!this.config.baseUrl) {
throw new Error('[NetworkService] The baseUrl property must be set in "NetworkConfig".');
}
/** @type {?} */

@@ -167,2 +164,9 @@ const options = Object.assign({}, requestOptions, this.defaultOptions);

let url;
/**
* If we try to start a path based network request before the baseUrl was set
* we throw an error.
*/
if (slugOrUrl.indexOf('http') !== 0 && !this.config.baseUrl) {
throw new Error('[NetworkService] The baseUrl property must be set in "NetworkConfig".');
}
if (slugOrUrl[0] === '/') {

@@ -169,0 +173,0 @@ url = `${this.config.baseUrl}${slugOrUrl}`;

@@ -211,5 +211,2 @@ import { __assign } from 'tslib';

if (silent === void 0) { silent = false; }
if (!this.config.baseUrl) {
throw new Error('[NetworkService] The baseUrl property must be set in "NetworkConfig".');
}
/** @type {?} */

@@ -260,2 +257,9 @@ var options = __assign({}, requestOptions, this.defaultOptions);

var url;
/**
* If we try to start a path based network request before the baseUrl was set
* we throw an error.
*/
if (slugOrUrl.indexOf('http') !== 0 && !this.config.baseUrl) {
throw new Error('[NetworkService] The baseUrl property must be set in "NetworkConfig".');
}
if (slugOrUrl[0] === '/') {

@@ -262,0 +266,0 @@ url = "" + this.config.baseUrl + slugOrUrl;

{
"name": "@spreadmonitor/network",
"version": "0.9.3",
"version": "0.9.4",
"description": "Universal network layer for our Angular applications.",

@@ -5,0 +5,0 @@ "main": "bundles/spreadmonitor-network.umd.js",

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

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