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

@iplab/ngx-file-upload

Package Overview
Dependencies
Maintainers
1
Versions
71
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@iplab/ngx-file-upload - npm Package Compare versions

Comparing version 2.0.0 to 2.0.1

2

esm2015/lib/components/file-upload-attr.component.js

@@ -168,3 +168,3 @@ import { __decorate, __metadata, __param } from "tslib";

],
styles: [":host{position:relative;display:block}:host .overlay{display:none;background:rgba(255,255,255,.8);outline:#92b0b3 dashed 2px;outline-offset:-10px;position:absolute;top:0;left:0;right:0;bottom:0}:host(.dragover:not(.disabled)) .overlay{display:block}.icon{height:35px;width:35px;border:1px solid #eaeaea;border-radius:4px;margin:0 auto 10px}:host ::ng-deep .icon svg{fill:#80a9d2}.upload-input{pointer-events:none;cursor:pointer;display:inline-block;color:#80a9d2;position:absolute;top:50%;left:50%;-webkit-transform:translate(-50%,-50%);-ms-transform:translate(-50%,-50%);transform:translate(-50%,-50%);-webkit-transition:.15s ease-in-out;transition:.15s ease-in-out}"]
styles: [":host{position:relative;display:block}:host .overlay{display:none;background:rgba(255,255,255,.8);outline:#92b0b3 dashed 2px;outline-offset:-10px;position:absolute;top:0;left:0;right:0;bottom:0}:host(.dragover:not(.disabled)) .overlay{display:block}.icon{height:35px;width:35px;border:1px solid #eaeaea;border-radius:4px;margin:0 auto 10px}:host ::ng-deep .icon svg{fill:#80a9d2}.upload-input{pointer-events:none;cursor:pointer;display:inline-block;color:#80a9d2;position:absolute;top:50%;left:50%;-webkit-transform:translate(-50%,-50%);-ms-transform:translate(-50%,-50%);transform:translate(-50%,-50%);transition:.15s ease-in-out}"]
}),

@@ -171,0 +171,0 @@ __param(3, Inject(DOCUMENT)),

@@ -112,3 +112,3 @@ var SimpleFileUploadComponent_1;

changeDetection: ChangeDetectionStrategy.OnPush,
styles: [":host,:host>*{box-sizing:border-box}:host{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;line-height:1.5;color:#555;background-color:#fff;border:1px solid #ddd;border-radius:4px;box-shadow:inset 0 4px 7px rgba(0,0,0,.05)}:host(.disabled){opacity:.5}.files-input{width:.1px;height:.1px;opacity:0;position:absolute;left:-100%;top:-100%;overflow:hidden}.icon{height:24px;width:24px;display:inline-block}.icon svg{fill:#555}.upload-button{cursor:pointer;display:block;padding:2px 4px;background-color:#eee;border-left:1px solid #ddd;border-radius:0 4px 4px 0;min-width:100px;color:#555;margin:0;position:relative;outline:0}.upload-text{display:block;text-overflow:ellipsis;white-space:nowrap;overflow:hidden;width:100%;padding:5px 10px;font-size:14px;height:30px}.button-text{vertical-align:middle;padding-left:10px}:host(.disabled) .upload-button{cursor:not-allowed}:host(:not(.disabled)) .upload-button:focus,:host(:not(.disabled)) .upload-button:hover{color:#80a9d2}:host(:not(.disabled)) .upload-button:focus svg,:host(:not(.disabled)) .upload-button:hover svg{fill:#80a9d2}"]
styles: [":host,:host>*{box-sizing:border-box}:host{display:-webkit-flex;display:-ms-flexbox;display:flex;line-height:1.5;color:#555;background-color:#fff;border:1px solid #ddd;border-radius:4px;box-shadow:inset 0 4px 7px rgba(0,0,0,.05)}:host(.disabled){opacity:.5}.files-input{width:.1px;height:.1px;opacity:0;position:absolute;left:-100%;top:-100%;overflow:hidden}.icon{height:24px;width:24px;display:inline-block}.icon svg{fill:#555}.upload-button{cursor:pointer;display:block;padding:2px 4px;background-color:#eee;border-left:1px solid #ddd;border-radius:0 4px 4px 0;min-width:100px;color:#555;margin:0;position:relative;outline:0}.upload-text{display:block;text-overflow:ellipsis;white-space:nowrap;overflow:hidden;width:100%;padding:5px 10px;font-size:14px;height:30px}.button-text{vertical-align:middle;padding-left:10px}:host(.disabled) .upload-button{cursor:not-allowed}:host(:not(.disabled)) .upload-button:focus,:host(:not(.disabled)) .upload-button:hover{color:#80a9d2}:host(:not(.disabled)) .upload-button:focus svg,:host(:not(.disabled)) .upload-button:hover svg{fill:#80a9d2}"]
}),

@@ -115,0 +115,0 @@ __metadata("design:paramtypes", [FileUploadService,

@@ -71,2 +71,9 @@ import { BehaviorSubject, Subject } from 'rxjs';

addFile(file) {
/**
* if multiple is disabled and one file exists
* clear it and reupload a new one
*/
if (!this.multipleEnabled && this.files.size === 1) {
this.files.clear();
}
this.files.add(file);

@@ -93,2 +100,7 @@ this.validate();

addMultipleFiles(files) {
if (!this.multipleEnabled && !IsNullOrEmpty(files)) {
// add only one file
this.addFile(files[0]);
return;
}
files.forEach(file => this.files.add(file));

@@ -216,2 +228,2 @@ this.validate();

}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udHJvbC5jbGFzcy5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BpcGxhYi9uZ3gtZmlsZS11cGxvYWQvIiwic291cmNlcyI6WyJsaWIvaGVscGVycy9jb250cm9sLmNsYXNzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxlQUFlLEVBQUUsT0FBTyxFQUFjLE1BQU0sTUFBTSxDQUFDO0FBRTVELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUVoRCxNQUFNLENBQU4sSUFBWSxNQUlYO0FBSkQsV0FBWSxNQUFNO0lBQ2QseUNBQU8sQ0FBQTtJQUNQLHFDQUFLLENBQUE7SUFDTCwyQ0FBUSxDQUFBO0FBQ1osQ0FBQyxFQUpXLE1BQU0sS0FBTixNQUFNLFFBSWpCO0FBRUQsTUFBTSxDQUFOLElBQVksU0FJWDtBQUpELFdBQVksU0FBUztJQUNqQiw0QkFBZSxDQUFBO0lBQ2YsNEJBQWUsQ0FBQTtJQUNmLDBCQUFhLENBQUE7QUFDakIsQ0FBQyxFQUpXLFNBQVMsS0FBVCxTQUFTLFFBSXBCO0FBRUQsTUFBTSxPQUFPLGlCQUFpQjtJQXlEMUIsWUFBWSxVQUEyQztRQXZEdEMsVUFBSyxHQUFjLElBQUksR0FBRyxFQUFFLENBQUM7UUFFdEMsZ0JBQVcsR0FBRyxJQUFJLENBQUM7UUFFbkIsV0FBTSxHQUFXLE1BQU0sQ0FBQyxLQUFLLENBQUM7UUFFOUIsV0FBTSxHQUFnQyxFQUFFLENBQUM7UUFFekMsZUFBVSxHQUF1QixFQUFFLENBQUM7UUFFcEMsb0JBQWUsR0FBWSxJQUFJLENBQUM7UUFFdkIsb0JBQWUsR0FBNkIsSUFBSSxlQUFlLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxDQUFDO1FBRXRGLGtCQUFhLEdBQW9CLElBQUksT0FBTyxFQUFFLENBQUM7UUFFL0Msa0JBQWEsR0FBdUIsSUFBSSxPQUFPLEVBQUUsQ0FBQztRQUUzRCxXQUFNLEdBQVcsSUFBSSxDQUFDO1FBRWIsa0JBQWEsR0FBNEIsSUFBSSxlQUFl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LENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQzthQUN2RTtTQUNKO2FBQU07WUFDSCxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUM7U0FDMUI7SUFDTCxDQUFDO0NBQ0oiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBCZWhhdmlvclN1YmplY3QsIFN1YmplY3QsIE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgVmFsaWRhdG9yRm4sIFZhbGlkYXRpb25FcnJvcnMgfSBmcm9tICcuL3ZhbGlkYXRvcnMuY2xhc3MnO1xyXG5pbXBvcnQgeyBJc051bGxPckVtcHR5IH0gZnJvbSAnLi9oZWxwZXJzLmNsYXNzJztcclxuXHJcbmV4cG9ydCBlbnVtIFNUQVRVUyB7XHJcbiAgICBJTlZBTElELFxyXG4gICAgVkFMSUQsXHJcbiAgICBESVNBQkxFRFxyXG59XHJcblxyXG5leHBvcnQgZW51bSBGaWxlRXZlbnQge1xyXG4gICAgY2xpY2sgPSAnY2xpY2snLFxyXG4gICAgZm9jdXMgPSAnZm9jdXMnLFxyXG4gICAgYmx1ciA9ICdibHVyJ1xyXG59XHJcblxyXG5leHBvcnQgY2xhc3MgRmlsZVVwbG9hZENvbnRyb2wge1xyXG5cclxuICAgIHByaXZhdGUgcmVhZG9ubHkgZmlsZXM6IFNldDxGaWxlPiA9IG5ldyBTZXQoKTtcclxuXHJcbiAgICBwcml2YXRlIGxpc3RWaXNpYmxlID0gdHJ1ZTtcclxuXHJcbiAgICBwcml2YXRlIHN0YXR1czogU1RBVFVTID0gU1RBVFVTLlZBTElEO1xyXG5cclxuICAgIHByaXZhdGUgZXJyb3JzOiBBcnJheTx7W2tleTogc3RyaW5nXTogYW55fT4gPSBbXTtcclxuXHJcbiAgICBwcml2YXRlIHZhbGlkYXRvcnM6IEFycmF5PFZhbGlkYXRvckZuPiA9IFtdO1xyXG5cclxuICAgIHByaXZhdGUgbXVsdGlwbGVFbmFibGVkOiBib29sZWFuID0gdHJ1ZTtcclxuXHJcbiAgICBwcml2YXRlIHJlYWRvbmx5IG11bHRpcGxlQ2hhbmdlZDogQmVoYXZpb3JTdWJqZWN0PGJvb2xlYW4+ID0gbmV3IEJlaGF2aW9yU3ViamVjdCh0aGlzLm11bHRpcGxlRW5hYmxlZCk7XHJcblxyXG4gICAgcHJpdmF0ZSByZWFkb25seSBzdGF0dXNDaGFuZ2VkOiBTdWJqZWN0PFNUQVRVUz4gPSBuZXcgU3ViamVjdCgpO1xyXG5cclxuICAgIHByaXZhdGUgcmVhZG9ubHkgZXZlbnRzQ2hhbmdlZDogU3ViamVjdDxGaWxlRXZlbnQ+ID0gbmV3IFN1YmplY3QoKTtcclxuXHJcbiAgICBwcml2YXRlIGFjY2VwdDogc3RyaW5nID0gbnVsbDtcclxuXHJcbiAgICBwcml2YXRlIHJlYWRvbmx5IGFjY2VwdENoYW5nZWQ6IEJlaGF2aW9yU3ViamVjdDxzdHJpbmc+ID0gbmV3IEJlaGF2aW9yU3ViamVjdCh0aGlzLmFjY2VwdCk7XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiB0cmFjayBzdGF0dXMgYFZBTElEYCwgYElOVkFMSURgIG9yIGBESVNBQkxFRGBcclxuICAgICAqL1xyXG4gICAgcHVibGljIHN0YXR1c0NoYW5nZXM6IE9ic2VydmFibGU8U1RBVFVTPiA9IHRoaXMuc3RhdHVzQ2hhbmdlZC5hc09ic2VydmFibGUoKTtcclxuXHJcbiAgICAvKipcclxuICAgICAqIGVtaXQgYW4gZXZlbnQgZXZlcnkgdGltZSB0aGUgdmFsdWUgb2YgdGhlIGNvbnRyb2xcclxuICAgICAqIGNoYW5nZXMuXHJcbiAgICAgKiBJbml0aWFsbHkgcmV0dXJucyBsYXN0IHZhbHVlXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyByZWFkb25seSB2YWx1ZUNoYW5nZXM6IEJlaGF2aW9yU3ViamVjdDxBcnJheTxGaWxlPj4gPSBuZXcgQmVoYXZpb3JTdWJqZWN0KFtdKTtcclxuXHJcbiAgICAvKipcclxuICAgICAqIEBpbnRlcm5hbFxyXG4gICAgICogdXNlZCB0byB0cmlnZ2VyIGxheW91dCBjaGFuZ2UgZm9yIGxpc3QgdmlzaWJpbGl0eVxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgcmVhZG9ubHkgbGlzdFZpc2liaWxpdHlDaGFuZ2VzOiBCZWhhdmlvclN1YmplY3Q8Ym9vbGVhbj4gPSBuZXcgQmVoYXZpb3JTdWJqZWN0KHRoaXMubGlzdFZpc2libGUpO1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogdHJhY2sgY2hhbmdlZCBvbiBhY2NlcHQgYXR0cmlidXRlXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyByZWFkb25seSBhY2NlcHRDaGFuZ2VzOiBPYnNlcnZhYmxlPHN0cmluZz4gPSB0aGlzLmFjY2VwdENoYW5nZWQuYXNPYnNlcnZhYmxlKCk7XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBlbWl0IGFuIGV2ZW50IGV2ZXJ5IHRpbWUgdXNlciBwcm9ncmFtbWF0aWNhbGx5IGFzayBmb3IgY2VydGFpbiBldmVudFxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgcmVhZG9ubHkgZXZlbnRzQ2hhbmdlczogT2JzZXJ2YWJsZTxGaWxlRXZlbnQ+ID0gdGhpcy5ldmVudHNDaGFuZ2VkLmFzT2JzZXJ2YWJsZSgpO1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogdHJhY2sgY2hhbmdlZCBvbiBtdWx0aXBsZSBhdHRyaWJ1dGVcclxuICAgICAqL1xyXG4gICAgcHVibGljIHJlYWRvbmx5IG11bHRpcGxlQ2hhbmdlczogT2JzZXJ2YWJsZTxib29sZWFuPiA9IHRoaXMubXVsdGlwbGVDaGFuZ2VkLmFzT2JzZXJ2YWJsZSgpO1xyXG5cclxuICAgIGNvbnN0cnVjdG9yKHZhbGlkYXRvcnM/OiBWYWxpZGF0b3JGbnxBcnJheTxWYWxpZGF0b3JGbj4pIHtcclxuICAgICAgICB0aGlzLmRlZmluZVZhbGlkYXRvcnModmFsaWRhdG9ycyk7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBzZXQgZnVuY3Rpb25zIHRoYXQgZGV0ZXJtaW5lcyB0aGUgc3luY2hyb25vdXMgdmFsaWRpdHkgb2YgdGhpcyBjb250cm9sLlxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgc2V0VmFsaWRhdG9ycyhuZXdWYWxpZGF0b3JzOiBWYWxpZGF0b3JGbnxBcnJheTxWYWxpZGF0b3JGbj4pOiB0aGlzIHtcclxuICAgICAgICB0aGlzLmRlZmluZVZhbGlkYXRvcnMobmV3VmFsaWRhdG9ycyk7XHJcbiAgICAgICAgdGhpcy52YWxpZGF0ZSgpO1xyXG4gICAgICAgIHJldHVybiB0aGlzO1xyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgZGVmaW5lVmFsaWRhdG9ycyh2YWxpZGF0b3JzOiBWYWxpZGF0b3JGbnxBcnJheTxWYWxpZGF0b3JGbj4pOiB2b2lkIHtcclxuICAgICAgICBpZiAoIUlzTnVsbE9yRW1wdHkodmFsaWRhdG9ycykpIHtcclxuICAgICAgICAgICAgdGhpcy52YWxpZGF0b3JzID0gQXJyYXkuaXNBcnJheSh2YWxpZGF0b3JzKSA/IFsuLi52YWxpZGF0b3JzXSA6IFt2YWxpZGF0b3JzXTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIGFkZEZpbGUoZmlsZTogRmlsZSk6IHRoaXMge1xyXG4gICAgICAgIHRoaXMuZmlsZXMuYWRkKGZpbGUpO1xyXG4gICAgICAgIHRoaXMudmFsaWRhdGUoKTtcclxuICAgICAgICB0aGlzLnZhbHVlQ2hhbmdlcy5uZXh0KEFycmF5LmZyb20odGhpcy5maWxlcy52YWx1ZXMoKSkpO1xyXG4gICAgICAgIHJldHVybiB0aGlzO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyByZW1vdmVGaWxlKGZpbGU6IEZpbGUpOiB0aGlzIHtcclxuICAgICAgICB0aGlzLmZpbGVzLmRlbGV0ZShmaWxlKTtcclxuICAgICAgICB0aGlzLnZhbGlkYXRlKCk7XHJcbiAgICAgICAgdGhpcy52YWx1ZUNoYW5nZXMubmV4dChBcnJheS5mcm9tKHRoaXMuZmlsZXMudmFsdWVzKCkpKTtcclxuICAgICAgICByZXR1cm4gdGhpcztcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgYWRkRmlsZXMoZmlsZXM6IEZpbGVMaXN0KTogdGhpcyB7XHJcbiAgICAgICAgdGhpcy5hZGRNdWx0aXBsZUZpbGVzKEFycmF5LmZyb20oZmlsZXMpKTtcclxuICAgICAgICByZXR1cm4gdGhpcztcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIEBpbnRlcm5hbFxyXG4gICAgICogdXNlZCB0byBwcmV2ZW50IHZhbHVlQ2hhbmdlcyBlbWl0IG1vcmUgdGltZXNcclxuICAgICAqIHdoZW4gbXVsdGlwbGUgZmlsZXMgYXJlIHVwbG9hZGVkXHJcbiAgICAgKi9cclxuICAgIHByaXZhdGUgYWRkTXVsdGlwbGVGaWxlcyhmaWxlczogQXJyYXk8RmlsZT4pOiB2b2lkIHtcclxuICAgICAgICBmaWxlcy5mb3JFYWNoKGZpbGUgPT4gdGhpcy5maWxlcy5hZGQoZmlsZSkpO1xyXG4gICAgICAgIHRoaXMudmFsaWRhdGUoKTtcclxuICAgICAgICB0aGlzLnZhbHVlQ2hhbmdlcy5uZXh0KEFycmF5LmZyb20odGhpcy5maWxlcy52YWx1ZXMoKSkpO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBnZXQgdmFsaWQoKTogYm9vbGVhbiB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuZXJyb3JzLmxlbmd0aCA9PT0gMCAmJiB0aGlzLnN0YXR1cyAhPT0gU1RBVFVTLkRJU0FCTEVEO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBnZXQgaW52YWxpZCgpOiBib29sZWFuIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5lcnJvcnMubGVuZ3RoID4gMDtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgZ2V0RXJyb3IoKTogQXJyYXk8VmFsaWRhdGlvbkVycm9ycz4ge1xyXG4gICAgICAgIHJldHVybiB0aGlzLmVycm9ycztcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIG51bWJlciBvZiB1cGxvYWRlZCBmaWxlc1xyXG4gICAgICovXHJcbiAgICBwdWJsaWMgZ2V0IHNpemUoKTogbnVtYmVyIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5maWxlcy5zaXplO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogcmV0dXJuIGxpc3Qgb2YgRmlsZXNcclxuICAgICAqL1xyXG4gICAgcHVibGljIGdldCB2YWx1ZSgpOiBBcnJheTxGaWxlPiB7XHJcbiAgICAgICAgcmV0dXJuIEFycmF5LmZyb20odGhpcy5maWxlcy52YWx1ZXMoKSk7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIHNldFZhbHVlKGZpbGVzOiBBcnJheTxGaWxlPik6IHRoaXMge1xyXG4gICAgICAgIHRoaXMuZmlsZXMuY2xlYXIoKTtcclxuXHJcbiAgICAgICAgaWYgKGZpbGVzIGluc3RhbmNlb2YgQXJyYXkpIHtcclxuICAgICAgICAgICAgdGhpcy5hZGRNdWx0aXBsZUZpbGVzKGZpbGVzKTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICB0aHJvdyBFcnJvcihgRm9ybUNvbnRyb2wuc2V0VmFsdWUgd2FzIHByb3ZpZGVkIHdpdGggd3JvbmcgYXJndW1lbnQgdHlwZSwgJHtmaWxlc30gd2FzIHByb3ZpZGVkIGluc3RlYWQgQXJyYXk8RmlsZT5gKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHJldHVybiB0aGlzO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogcmVzZXQgdGhlIGNvbnRyb2xcclxuICAgICAqL1xyXG4gICAgcHVibGljIGNsZWFyKCk6IHRoaXMge1xyXG4gICAgICAgIHRoaXMuZmlsZXMuY2xlYXIoKTtcclxuICAgICAgICB0aGlzLnZhbGlkYXRlKCk7XHJcbiAgICAgICAgdGhpcy52YWx1ZUNoYW5nZXMubmV4dChBcnJheS5mcm9tKHRoaXMuZmlsZXMudmFsdWVzKCkpKTtcclxuICAgICAgICByZXR1cm4gdGhpcztcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgZ2V0IGlzTGlzdFZpc2libGUoKTogYm9vbGVhbiB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMubGlzdFZpc2libGU7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIHNldExpc3RWaXNpYmlsaXR5KGlzVmlzaWJsZTogYm9vbGVhbiA9IHRydWUpOiB0aGlzIHtcclxuICAgICAgICB0aGlzLmxpc3RWaXNpYmxlID0gaXNWaXNpYmxlO1xyXG4gICAgICAgIHRoaXMubGlzdFZpc2liaWxpdHlDaGFuZ2VzLm5leHQodGhpcy5saXN0VmlzaWJsZSk7XHJcbiAgICAgICAgcmV0dXJuIHRoaXM7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIGdldCBkaXNhYmxlZCgpIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5zdGF0dXMgPT09IFNUQVRVUy5ESVNBQkxFRDtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgZW5hYmxlKGlzRW5hYmxlZDogYm9vbGVhbiA9IHRydWUpOiB0aGlzIHtcclxuICAgICAgICB0aGlzLnN0YXR1cyA9IGlzRW5hYmxlZCA/IFNUQVRVUy5WQUxJRCA6IFNUQVRVUy5ESVNBQkxFRDtcclxuICAgICAgICB0aGlzLnZhbGlkYXRlKCk7XHJcbiAgICAgICAgdGhpcy5zdGF0dXNDaGFuZ2VkLm5leHQodGhpcy5zdGF0dXMpO1xyXG4gICAgICAgIHJldHVybiB0aGlzO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBkaXNhYmxlKGlzRGlzYWJsZWQ6IGJvb2xlYW4gPSB0cnVlKTogdGhpcyB7XHJcbiAgICAgICAgdGhpcy5zdGF0dXMgPSBpc0Rpc2FibGVkID8gU1RBVFVTLkRJU0FCTEVEIDogU1RBVFVTLlZBTElEO1xyXG4gICAgICAgIHRoaXMudmFsaWRhdGUoKTtcclxuICAgICAgICB0aGlzLnN0YXR1c0NoYW5nZWQubmV4dCh0aGlzLnN0YXR1cyk7XHJcbiAgICAgICAgcmV0dXJuIHRoaXM7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIGNsaWNrKCk6IHRoaXMge1xyXG4gICAgICAgIHRoaXMuZXZlbnRzQ2hhbmdlZC5uZXh0KEZpbGVFdmVudC5jbGljayk7XHJcbiAgICAgICAgcmV0dXJuIHRoaXM7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIGZvY3VzKCk6IHRoaXMge1xyXG4gICAgICAgIHRoaXMuZXZlbnRzQ2hhbmdlZC5uZXh0KEZpbGVFdmVudC5mb2N1cyk7XHJcbiAgICAgICAgcmV0dXJuIHRoaXM7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIGJsdXIoKTogdGhpcyB7XHJcbiAgICAgICAgdGhpcy5ldmVudHNDaGFuZ2VkLm5leHQoRmlsZUV2ZW50LmJsdXIpO1xyXG4gICAgICAgIHJldHVybiB0aGlzO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogc3BlY2lmaWVzIHRoZSB0eXBlcyBvZiBmaWxlcyB0aGF0IHRoZSBzZXJ2ZXIgYWNjZXB0c1xyXG4gICAgICpcclxuICAgICAqICMjIyBFeGFtcGxlXHJcbiAgICAgKlxyXG4gICAgICogYGBgXHJcbiAgICAgKiBhY2NlcHRGaWxlcyhcImZpbGVfZXh0ZW5zaW9ufGF1ZGlvLyp8dmlkZW8vKnxpbWFnZS8qfG1lZGlhX3R5cGVcIilcclxuICAgICAqIGBgYFxyXG4gICAgICpcclxuICAgICAqIFRvIHNwZWNpZnkgbW9yZSB0aGFuIG9uZSB2YWx1ZSwgc2VwYXJhdGUgdGhlIHZhbHVlcyB3aXRoIGEgY29tbWEgKGUuZy4gYWNjZXB0RmlsZXMoXCJhdWRpby8qLHZpZGVvLyosaW1hZ2UvKlwiKS5cclxuICAgICAqXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBhY2NlcHRGaWxlcyhhY2NlcHQ6IHN0cmluZyk6IHRoaXMge1xyXG4gICAgICAgIHRoaXMuYWNjZXB0ID0gYWNjZXB0O1xyXG4gICAgICAgIHRoaXMuYWNjZXB0Q2hhbmdlZC5uZXh0KHRoaXMuYWNjZXB0KTtcclxuICAgICAgICByZXR1cm4gdGhpcztcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgYWNjZXB0QWxsKCk6IHRoaXMge1xyXG4gICAgICAgIHRoaXMuYWNjZXB0ID0gbnVsbDtcclxuICAgICAgICB0aGlzLmFjY2VwdENoYW5nZWQubmV4dCh0aGlzLmFjY2VwdCk7XHJcbiAgICAgICAgcmV0dXJuIHRoaXM7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIGdldCBpc011bHRpcGxlKCk6IGJvb2xlYW4ge1xyXG4gICAgICAgIHJldHVybiB0aGlzLm11bHRpcGxlRW5hYmxlZDtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgbXVsdGlwbGUoaXNFbmFibGVkOiBib29sZWFuID0gdHJ1ZSk6IHRoaXMge1xyXG4gICAgICAgIHRoaXMubXVsdGlwbGVFbmFibGVkID0gaXNFbmFibGVkO1xyXG4gICAgICAgIHRoaXMubXVsdGlwbGVDaGFuZ2VkLm5leHQodGhpcy5tdWx0aXBsZUVuYWJsZWQpO1xyXG4gICAgICAgIHJldHVybiB0aGlzO1xyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgdmFsaWRhdGUoKTogdm9pZCB7XHJcbiAgICAgICAgaWYgKHRoaXMuc3RhdHVzICE9PSBTVEFUVVMuRElTQUJMRUQpIHtcclxuICAgICAgICAgICAgY29uc3QgY3VycmVudFN0YXRlID0gdGhpcy52YWxpZDtcclxuICAgICAgICAgICAgdGhpcy5lcnJvcnMgPSB0aGlzLnZhbGlkYXRvcnMubWFwKCh2YWxpZGF0b3IpID0+IHZhbGlkYXRvcih0aGlzKSkuZmlsdGVyKChpc0ludmFsaWQpID0+IGlzSW52YWxpZCk7XHJcblxyXG4gICAgICAgICAgICBpZiAoY3VycmVudFN0YXRlICE9PSB0aGlzLnZhbGlkKSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLnN0YXR1c0NoYW5nZWQubmV4dCh0aGlzLnZhbGlkID8gU1RBVFVTLlZBTElEIDogU1RBVFVTLklOVkFMSUQpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgdGhpcy5lcnJvcnMubGVuZ3RoID0gMDtcclxuICAgICAgICB9XHJcbiAgICB9XHJcbn1cclxuIl19
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udHJvbC5jbGFzcy5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BpcGxhYi9uZ3gtZmlsZS11cGxvYWQvIiwic291cmNlcyI6WyJsaWIvaGVscGVycy9jb250cm9sLmNsYXNzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxlQUFlLEVBQUUsT0FBTyxFQUFjLE1BQU0sTUFBTSxDQUFDO0FBRTVELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUVoRCxNQUFNLENBQU4sSUFBWSxNQUlYO0FBSkQsV0FBWSxNQUFNO0lBQ2QseUNBQU8sQ0FBQTtJQUNQLHFDQUFLLENBQUE7SUFDTCwyQ0FBUSxDQUFBO0FBQ1osQ0FBQyxFQUpXLE1BQU0sS0FBTixNQUFNLFFBSWpCO0FBRUQsTUFBTSxDQUFOLElBQVksU0FJWDtBQUpELFdBQVksU0FBUztJQUNqQiw0QkFBZSxDQUFBO0lBQ2YsNEJBQWUsQ0FBQTtJQUNmLDBCQUFhLENBQUE7QUFDakIsQ0FBQyxFQUpXLFNBQVMsS0FBVCxTQUFTLFFBSXBCO0FBRUQsTUFBTSxPQUFPLGlCQUFpQjtJQXlEMUIsWUFBWSxVQUEyQztRQXZEdEMsVUFBSyxHQUFjLElBQUksR0FBRyxFQUFFLENBQUM7UUFFdEMsZ0JBQVcsR0FBRyxJQUFJLENBQUM7UUFFbkIsV0FBTSxHQUFXLE1BQU0sQ0FBQyxLQUFLLENBQUM7UUFFOUIsV0FBTSxHQUFnQyxFQUFFLENBQUM7UUFFekMsZUFBVSxHQUF1QixFQUFFLENBQUM7UUFFcEMsb0JBQWUsR0FBWSxJQUFJLENBQUM7UUFFdkIsb0JBQWUsR0FBNkIsSUFBSSxlQUFlLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxDQUFDO1FBRXRGLGtCQUFhLEdBQW9CLElBQUksT0FBTyxFQUFFLENBQUM7UUFFL0Msa0JBQWEsR0FBdUIsSUFBSSxPQUFPLEVBQUUsQ0FBQztRQUUzRCxXQUFNLEdBQVcsSUFBSSxDQUFDO1FBRWIsa0JBQWEsR0FBNEIsSUFBSSxlQUFl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TUFBTSxDQUFDLFFBQVEsRUFBRTtZQUNqQyxNQUFNLFlBQVksR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDO1lBQ2hDLElBQUksQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxTQUFTLEVBQUUsRUFBRSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLFNBQVMsRUFBRSxFQUFFLENBQUMsU0FBUyxDQUFDLENBQUM7WUFFbkcsSUFBSSxZQUFZLEtBQUssSUFBSSxDQUFDLEtBQUssRUFBRTtnQkFDN0IsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDO2FBQ3ZFO1NBQ0o7YUFBTTtZQUNILElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQztTQUMxQjtJQUNMLENBQUM7Q0FDSiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCwgU3ViamVjdCwgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBWYWxpZGF0b3JGbiwgVmFsaWRhdGlvbkVycm9ycyB9IGZyb20gJy4vdmFsaWRhdG9ycy5jbGFzcyc7XHJcbmltcG9ydCB7IElzTnVsbE9yRW1wdHkgfSBmcm9tICcuL2hlbHBlcnMuY2xhc3MnO1xyXG5cclxuZXhwb3J0IGVudW0gU1RBVFVTIHtcclxuICAgIElOVkFMSUQsXHJcbiAgICBWQUxJRCxcclxuICAgIERJU0FCTEVEXHJcbn1cclxuXHJcbmV4cG9ydCBlbnVtIEZpbGVFdmVudCB7XHJcbiAgICBjbGljayA9ICdjbGljaycsXHJcbiAgICBmb2N1cyA9ICdmb2N1cycsXHJcbiAgICBibHVyID0gJ2JsdXInXHJcbn1cclxuXHJcbmV4cG9ydCBjbGFzcyBGaWxlVXBsb2FkQ29udHJvbCB7XHJcblxyXG4gICAgcHJpdmF0ZSByZWFkb25seSBmaWxlczogU2V0PEZpbGU+ID0gbmV3IFNldCgpO1xyXG5cclxuICAgIHByaXZhdGUgbGlzdFZpc2libGUgPSB0cnVlO1xyXG5cclxuICAgIHByaXZhdGUgc3RhdHVzOiBTVEFUVVMgPSBTVEFUVVMuVkFMSUQ7XHJcblxyXG4gICAgcHJpdmF0ZSBlcnJvcnM6IEFycmF5PHtba2V5OiBzdHJpbmddOiBhbnl9PiA9IFtdO1xyXG5cclxuICAgIHByaXZhdGUgdmFsaWRhdG9yczogQXJyYXk8VmFsaWRhdG9yRm4+ID0gW107XHJcblxyXG4gICAgcHJpdmF0ZSBtdWx0aXBsZUVuYWJsZWQ6IGJvb2xlYW4gPSB0cnVlO1xyXG5cclxuICAgIHByaXZhdGUgcmVhZG9ubHkgbXVsdGlwbGVDaGFuZ2VkOiBCZWhhdmlvclN1YmplY3Q8Ym9vbGVhbj4gPSBuZXcgQmVoYXZpb3JTdWJqZWN0KHRoaXMubXVsdGlwbGVFbmFibGVkKTtcclxuXHJcbiAgICBwcml2YXRlIHJlYWRvbmx5IHN0YXR1c0NoYW5nZWQ6IFN1YmplY3Q8U1RBVFVTPiA9IG5ldyBTdWJqZWN0KCk7XHJcblxyXG4gICAgcHJpdmF0ZSByZWFkb25seSBldmVudHNDaGFuZ2VkOiBTdWJqZWN0PEZpbGVFdmVudD4gPSBuZXcgU3ViamVjdCgpO1xyXG5cclxuICAgIHByaXZhdGUgYWNjZXB0OiBzdHJpbmcgPSBudWxsO1xyXG5cclxuICAgIHByaXZhdGUgcmVhZG9ubHkgYWNjZXB0Q2hhbmdlZDogQmVoYXZpb3JTdWJqZWN0PHN0cmluZz4gPSBuZXcgQmVoYXZpb3JTdWJqZWN0KHRoaXMuYWNjZXB0KTtcclxuXHJcbiAgICAvKipcclxuICAgICAqIHRyYWNrIHN0YXR1cyBgVkFMSURgLCBgSU5WQUxJRGAgb3IgYERJU0FCTEVEYFxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgc3RhdHVzQ2hhbmdlczogT2JzZXJ2YWJsZTxTVEFUVVM+ID0gdGhpcy5zdGF0dXNDaGFuZ2VkLmFzT2JzZXJ2YWJsZSgpO1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogZW1pdCBhbiBldmVudCBldmVyeSB0aW1lIHRoZSB2YWx1ZSBvZiB0aGUgY29udHJvbFxyXG4gICAgICogY2hhbmdlcy5cclxuICAgICAqIEluaXRpYWxseSByZXR1cm5zIGxhc3QgdmFsdWVcclxuICAgICAqL1xyXG4gICAgcHVibGljIHJlYWRvbmx5IHZhbHVlQ2hhbmdlczogQmVoYXZpb3JTdWJqZWN0PEFycmF5PEZpbGU+PiA9IG5ldyBCZWhhdmlvclN1YmplY3QoW10pO1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogQGludGVybmFsXHJcbiAgICAgKiB1c2VkIHRvIHRyaWdnZXIgbGF5b3V0IGNoYW5nZSBmb3IgbGlzdCB2aXNpYmlsaXR5XHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyByZWFkb25seSBsaXN0VmlzaWJpbGl0eUNoYW5nZXM6IEJlaGF2aW9yU3ViamVjdDxib29sZWFuPiA9IG5ldyBCZWhhdmlvclN1YmplY3QodGhpcy5saXN0VmlzaWJsZSk7XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiB0cmFjayBjaGFuZ2VkIG9uIGFjY2VwdCBhdHRyaWJ1dGVcclxuICAgICAqL1xyXG4gICAgcHVibGljIHJlYWRvbmx5IGFjY2VwdENoYW5nZXM6IE9ic2VydmFibGU8c3RyaW5nPiA9IHRoaXMuYWNjZXB0Q2hhbmdlZC5hc09ic2VydmFibGUoKTtcclxuXHJcbiAgICAvKipcclxuICAgICAqIGVtaXQgYW4gZXZlbnQgZXZlcnkgdGltZSB1c2VyIHByb2dyYW1tYXRpY2FsbHkgYXNrIGZvciBjZXJ0YWluIGV2ZW50XHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyByZWFkb25seSBldmVudHNDaGFuZ2VzOiBPYnNlcnZhYmxlPEZpbGVFdmVudD4gPSB0aGlzLmV2ZW50c0NoYW5nZWQuYXNPYnNlcnZhYmxlKCk7XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiB0cmFjayBjaGFuZ2VkIG9uIG11bHRpcGxlIGF0dHJpYnV0ZVxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgcmVhZG9ubHkgbXVsdGlwbGVDaGFuZ2VzOiBPYnNlcnZhYmxlPGJvb2xlYW4+ID0gdGhpcy5tdWx0aXBsZUNoYW5nZWQuYXNPYnNlcnZhYmxlKCk7XHJcblxyXG4gICAgY29uc3RydWN0b3IodmFsaWRhdG9ycz86IFZhbGlkYXRvckZufEFycmF5PFZhbGlkYXRvckZuPikge1xyXG4gICAgICAgIHRoaXMuZGVmaW5lVmFsaWRhdG9ycyh2YWxpZGF0b3JzKTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIHNldCBmdW5jdGlvbnMgdGhhdCBkZXRlcm1pbmVzIHRoZSBzeW5jaHJvbm91cyB2YWxpZGl0eSBvZiB0aGlzIGNvbnRyb2wuXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBzZXRWYWxpZGF0b3JzKG5ld1ZhbGlkYXRvcnM6IFZhbGlkYXRvckZufEFycmF5PFZhbGlkYXRvckZuPik6IHRoaXMge1xyXG4gICAgICAgIHRoaXMuZGVmaW5lVmFsaWRhdG9ycyhuZXdWYWxpZGF0b3JzKTtcclxuICAgICAgICB0aGlzLnZhbGlkYXRlKCk7XHJcbiAgICAgICAgcmV0dXJuIHRoaXM7XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBkZWZpbmVWYWxpZGF0b3JzKHZhbGlkYXRvcnM6IFZhbGlkYXRvckZufEFycmF5PFZhbGlkYXRvckZuPik6IHZvaWQge1xyXG4gICAgICAgIGlmICghSXNOdWxsT3JFbXB0eSh2YWxpZGF0b3JzKSkge1xyXG4gICAgICAgICAgICB0aGlzLnZhbGlkYXRvcnMgPSBBcnJheS5pc0FycmF5KHZhbGlkYXRvcnMpID8gWy4uLnZhbGlkYXRvcnNdIDogW3ZhbGlkYXRvcnNdO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgYWRkRmlsZShmaWxlOiBGaWxlKTogdGhpcyB7XHJcbiAgICAgICAgLyoqXHJcbiAgICAgICAgICogaWYgbXVsdGlwbGUgaXMgZGlzYWJsZWQgYW5kIG9uZSBmaWxlIGV4aXN0c1xyXG4gICAgICAgICAqIGNsZWFyIGl0IGFuZCByZXVwbG9hZCBhIG5ldyBvbmVcclxuICAgICAgICAgKi9cclxuICAgICAgICBpZiAoIXRoaXMubXVsdGlwbGVFbmFibGVkICYmIHRoaXMuZmlsZXMuc2l6ZSA9PT0gMSkge1xyXG4gICAgICAgICAgICB0aGlzLmZpbGVzLmNsZWFyKCk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHRoaXMuZmlsZXMuYWRkKGZpbGUpO1xyXG4gICAgICAgIHRoaXMudmFsaWRhdGUoKTtcclxuICAgICAgICB0aGlzLnZhbHVlQ2hhbmdlcy5uZXh0KEFycmF5LmZyb20odGhpcy5maWxlcy52YWx1ZXMoKSkpO1xyXG4gICAgICAgIHJldHVybiB0aGlzO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyByZW1vdmVGaWxlKGZpbGU6IEZpbGUpOiB0aGlzIHtcclxuICAgICAgICB0aGlzLmZpbGVzLmRlbGV0ZShmaWxlKTtcclxuICAgICAgICB0aGlzLnZhbGlkYXRlKCk7XHJcbiAgICAgICAgdGhpcy52YWx1ZUNoYW5nZXMubmV4dChBcnJheS5mcm9tKHRoaXMuZmlsZXMudmFsdWVzKCkpKTtcclxuICAgICAgICByZXR1cm4gdGhpcztcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgYWRkRmlsZXMoZmlsZXM6IEZpbGVMaXN0KTogdGhpcyB7XHJcbiAgICAgICAgdGhpcy5hZGRNdWx0aXBsZUZpbGVzKEFycmF5LmZyb20oZmlsZXMpKTtcclxuICAgICAgICByZXR1cm4gdGhpcztcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIEBpbnRlcm5hbFxyXG4gICAgICogdXNlZCB0byBwcmV2ZW50IHZhbHVlQ2hhbmdlcyBlbWl0IG1vcmUgdGltZXNcclxuICAgICAqIHdoZW4gbXVsdGlwbGUgZmlsZXMgYXJlIHVwbG9hZGVkXHJcbiAgICAgKi9cclxuICAgIHByaXZhdGUgYWRkTXVsdGlwbGVGaWxlcyhmaWxlczogQXJyYXk8RmlsZT4pOiB2b2lkIHtcclxuICAgICAgICBpZiAoIXRoaXMubXVsdGlwbGVFbmFibGVkICYmICFJc051bGxPckVtcHR5KGZpbGVzKSkge1xyXG4gICAgICAgICAgICAvLyBhZGQgb25seSBvbmUgZmlsZVxyXG4gICAgICAgICAgICB0aGlzLmFkZEZpbGUoZmlsZXNbMF0pO1xyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGZpbGVzLmZvckVhY2goZmlsZSA9PiB0aGlzLmZpbGVzLmFkZChmaWxlKSk7XHJcbiAgICAgICAgdGhpcy52YWxpZGF0ZSgpO1xyXG4gICAgICAgIHRoaXMudmFsdWVDaGFuZ2VzLm5leHQoQXJyYXkuZnJvbSh0aGlzLmZpbGVzLnZhbHVlcygpKSk7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIGdldCB2YWxpZCgpOiBib29sZWFuIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5lcnJvcnMubGVuZ3RoID09PSAwICYmIHRoaXMuc3RhdHVzICE9PSBTVEFUVVMuRElTQUJMRUQ7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIGdldCBpbnZhbGlkKCk6IGJvb2xlYW4ge1xyXG4gICAgICAgIHJldHVybiB0aGlzLmVycm9ycy5sZW5ndGggPiAwO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBnZXRFcnJvcigpOiBBcnJheTxWYWxpZGF0aW9uRXJyb3JzPiB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuZXJyb3JzO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogbnVtYmVyIG9mIHVwbG9hZGVkIGZpbGVzXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBnZXQgc2l6ZSgpOiBudW1iZXIge1xyXG4gICAgICAgIHJldHVybiB0aGlzLmZpbGVzLnNpemU7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiByZXR1cm4gbGlzdCBvZiBGaWxlc1xyXG4gICAgICovXHJcbiAgICBwdWJsaWMgZ2V0IHZhbHVlKCk6IEFycmF5PEZpbGU+IHtcclxuICAgICAgICByZXR1cm4gQXJyYXkuZnJvbSh0aGlzLmZpbGVzLnZhbHVlcygpKTtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgc2V0VmFsdWUoZmlsZXM6IEFycmF5PEZpbGU+KTogdGhpcyB7XHJcbiAgICAgICAgdGhpcy5maWxlcy5jbGVhcigpO1xyXG5cclxuICAgICAgICBpZiAoZmlsZXMgaW5zdGFuY2VvZiBBcnJheSkge1xyXG4gICAgICAgICAgICB0aGlzLmFkZE11bHRpcGxlRmlsZXMoZmlsZXMpO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIHRocm93IEVycm9yKGBGb3JtQ29udHJvbC5zZXRWYWx1ZSB3YXMgcHJvdmlkZWQgd2l0aCB3cm9uZyBhcmd1bWVudCB0eXBlLCAke2ZpbGVzfSB3YXMgcHJvdmlkZWQgaW5zdGVhZCBBcnJheTxGaWxlPmApO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgcmV0dXJuIHRoaXM7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiByZXNldCB0aGUgY29udHJvbFxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgY2xlYXIoKTogdGhpcyB7XHJcbiAgICAgICAgdGhpcy5maWxlcy5jbGVhcigpO1xyXG4gICAgICAgIHRoaXMudmFsaWRhdGUoKTtcclxuICAgICAgICB0aGlzLnZhbHVlQ2hhbmdlcy5uZXh0KEFycmF5LmZyb20odGhpcy5maWxlcy52YWx1ZXMoKSkpO1xyXG4gICAgICAgIHJldHVybiB0aGlzO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBnZXQgaXNMaXN0VmlzaWJsZSgpOiBib29sZWFuIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5saXN0VmlzaWJsZTtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgc2V0TGlzdFZpc2liaWxpdHkoaXNWaXNpYmxlOiBib29sZWFuID0gdHJ1ZSk6IHRoaXMge1xyXG4gICAgICAgIHRoaXMubGlzdFZpc2libGUgPSBpc1Zpc2libGU7XHJcbiAgICAgICAgdGhpcy5saXN0VmlzaWJpbGl0eUNoYW5nZXMubmV4dCh0aGlzLmxpc3RWaXNpYmxlKTtcclxuICAgICAgICByZXR1cm4gdGhpcztcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgZ2V0IGRpc2FibGVkKCkge1xyXG4gICAgICAgIHJldHVybiB0aGlzLnN0YXR1cyA9PT0gU1RBVFVTLkRJU0FCTEVEO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBlbmFibGUoaXNFbmFibGVkOiBib29sZWFuID0gdHJ1ZSk6IHRoaXMge1xyXG4gICAgICAgIHRoaXMuc3RhdHVzID0gaXNFbmFibGVkID8gU1RBVFVTLlZBTElEIDogU1RBVFVTLkRJU0FCTEVEO1xyXG4gICAgICAgIHRoaXMudmFsaWRhdGUoKTtcclxuICAgICAgICB0aGlzLnN0YXR1c0NoYW5nZWQubmV4dCh0aGlzLnN0YXR1cyk7XHJcbiAgICAgICAgcmV0dXJuIHRoaXM7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIGRpc2FibGUoaXNEaXNhYmxlZDogYm9vbGVhbiA9IHRydWUpOiB0aGlzIHtcclxuICAgICAgICB0aGlzLnN0YXR1cyA9IGlzRGlzYWJsZWQgPyBTVEFUVVMuRElTQUJMRUQgOiBTVEFUVVMuVkFMSUQ7XHJcbiAgICAgICAgdGhpcy52YWxpZGF0ZSgpO1xyXG4gICAgICAgIHRoaXMuc3RhdHVzQ2hhbmdlZC5uZXh0KHRoaXMuc3RhdHVzKTtcclxuICAgICAgICByZXR1cm4gdGhpcztcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgY2xpY2soKTogdGhpcyB7XHJcbiAgICAgICAgdGhpcy5ldmVudHNDaGFuZ2VkLm5leHQoRmlsZUV2ZW50LmNsaWNrKTtcclxuICAgICAgICByZXR1cm4gdGhpcztcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgZm9jdXMoKTogdGhpcyB7XHJcbiAgICAgICAgdGhpcy5ldmVudHNDaGFuZ2VkLm5leHQoRmlsZUV2ZW50LmZvY3VzKTtcclxuICAgICAgICByZXR1cm4gdGhpcztcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgYmx1cigpOiB0aGlzIHtcclxuICAgICAgICB0aGlzLmV2ZW50c0NoYW5nZWQubmV4dChGaWxlRXZlbnQuYmx1cik7XHJcbiAgICAgICAgcmV0dXJuIHRoaXM7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBzcGVjaWZpZXMgdGhlIHR5cGVzIG9mIGZpbGVzIHRoYXQgdGhlIHNlcnZlciBhY2NlcHRzXHJcbiAgICAgKlxyXG4gICAgICogIyMjIEV4YW1wbGVcclxuICAgICAqXHJcbiAgICAgKiBgYGBcclxuICAgICAqIGFjY2VwdEZpbGVzKFwiZmlsZV9leHRlbnNpb258YXVkaW8vKnx2aWRlby8qfGltYWdlLyp8bWVkaWFfdHlwZVwiKVxyXG4gICAgICogYGBgXHJcbiAgICAgKlxyXG4gICAgICogVG8gc3BlY2lmeSBtb3JlIHRoYW4gb25lIHZhbHVlLCBzZXBhcmF0ZSB0aGUgdmFsdWVzIHdpdGggYSBjb21tYSAoZS5nLiBhY2NlcHRGaWxlcyhcImF1ZGlvLyosdmlkZW8vKixpbWFnZS8qXCIpLlxyXG4gICAgICpcclxuICAgICAqL1xyXG4gICAgcHVibGljIGFjY2VwdEZpbGVzKGFjY2VwdDogc3RyaW5nKTogdGhpcyB7XHJcbiAgICAgICAgdGhpcy5hY2NlcHQgPSBhY2NlcHQ7XHJcbiAgICAgICAgdGhpcy5hY2NlcHRDaGFuZ2VkLm5leHQodGhpcy5hY2NlcHQpO1xyXG4gICAgICAgIHJldHVybiB0aGlzO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBhY2NlcHRBbGwoKTogdGhpcyB7XHJcbiAgICAgICAgdGhpcy5hY2NlcHQgPSBudWxsO1xyXG4gICAgICAgIHRoaXMuYWNjZXB0Q2hhbmdlZC5uZXh0KHRoaXMuYWNjZXB0KTtcclxuICAgICAgICByZXR1cm4gdGhpcztcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgZ2V0IGlzTXVsdGlwbGUoKTogYm9vbGVhbiB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMubXVsdGlwbGVFbmFibGVkO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBtdWx0aXBsZShpc0VuYWJsZWQ6IGJvb2xlYW4gPSB0cnVlKTogdGhpcyB7XHJcbiAgICAgICAgdGhpcy5tdWx0aXBsZUVuYWJsZWQgPSBpc0VuYWJsZWQ7XHJcbiAgICAgICAgdGhpcy5tdWx0aXBsZUNoYW5nZWQubmV4dCh0aGlzLm11bHRpcGxlRW5hYmxlZCk7XHJcbiAgICAgICAgcmV0dXJuIHRoaXM7XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSB2YWxpZGF0ZSgpOiB2b2lkIHtcclxuICAgICAgICBpZiAodGhpcy5zdGF0dXMgIT09IFNUQVRVUy5ESVNBQkxFRCkge1xyXG4gICAgICAgICAgICBjb25zdCBjdXJyZW50U3RhdGUgPSB0aGlzLnZhbGlkO1xyXG4gICAgICAgICAgICB0aGlzLmVycm9ycyA9IHRoaXMudmFsaWRhdG9ycy5tYXAoKHZhbGlkYXRvcikgPT4gdmFsaWRhdG9yKHRoaXMpKS5maWx0ZXIoKGlzSW52YWxpZCkgPT4gaXNJbnZhbGlkKTtcclxuXHJcbiAgICAgICAgICAgIGlmIChjdXJyZW50U3RhdGUgIT09IHRoaXMudmFsaWQpIHtcclxuICAgICAgICAgICAgICAgIHRoaXMuc3RhdHVzQ2hhbmdlZC5uZXh0KHRoaXMudmFsaWQgPyBTVEFUVVMuVkFMSUQgOiBTVEFUVVMuSU5WQUxJRCk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICB0aGlzLmVycm9ycy5sZW5ndGggPSAwO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxufVxyXG4iXX0=

@@ -147,3 +147,3 @@ import { __decorate, __metadata, __param } from "tslib";

],
styles: [":host{position:relative;display:block}:host .overlay{display:none;background:rgba(255,255,255,.8);outline:#92b0b3 dashed 2px;outline-offset:-10px;position:absolute;top:0;left:0;right:0;bottom:0}:host(.dragover:not(.disabled)) .overlay{display:block}.icon{height:35px;width:35px;border:1px solid #eaeaea;border-radius:4px;margin:0 auto 10px}:host ::ng-deep .icon svg{fill:#80a9d2}.upload-input{pointer-events:none;cursor:pointer;display:inline-block;color:#80a9d2;position:absolute;top:50%;left:50%;-webkit-transform:translate(-50%,-50%);-ms-transform:translate(-50%,-50%);transform:translate(-50%,-50%);-webkit-transition:.15s ease-in-out;transition:.15s ease-in-out}"]
styles: [":host{position:relative;display:block}:host .overlay{display:none;background:rgba(255,255,255,.8);outline:#92b0b3 dashed 2px;outline-offset:-10px;position:absolute;top:0;left:0;right:0;bottom:0}:host(.dragover:not(.disabled)) .overlay{display:block}.icon{height:35px;width:35px;border:1px solid #eaeaea;border-radius:4px;margin:0 auto 10px}:host ::ng-deep .icon svg{fill:#80a9d2}.upload-input{pointer-events:none;cursor:pointer;display:inline-block;color:#80a9d2;position:absolute;top:50%;left:50%;-webkit-transform:translate(-50%,-50%);-ms-transform:translate(-50%,-50%);transform:translate(-50%,-50%);transition:.15s ease-in-out}"]
}),

@@ -150,0 +150,0 @@ __param(3, Inject(DOCUMENT)),

@@ -122,3 +122,3 @@ import { __decorate, __extends, __metadata } from "tslib";

changeDetection: ChangeDetectionStrategy.OnPush,
styles: [":host,:host>*{box-sizing:border-box}:host{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;line-height:1.5;color:#555;background-color:#fff;border:1px solid #ddd;border-radius:4px;box-shadow:inset 0 4px 7px rgba(0,0,0,.05)}:host(.disabled){opacity:.5}.files-input{width:.1px;height:.1px;opacity:0;position:absolute;left:-100%;top:-100%;overflow:hidden}.icon{height:24px;width:24px;display:inline-block}.icon svg{fill:#555}.upload-button{cursor:pointer;display:block;padding:2px 4px;background-color:#eee;border-left:1px solid #ddd;border-radius:0 4px 4px 0;min-width:100px;color:#555;margin:0;position:relative;outline:0}.upload-text{display:block;text-overflow:ellipsis;white-space:nowrap;overflow:hidden;width:100%;padding:5px 10px;font-size:14px;height:30px}.button-text{vertical-align:middle;padding-left:10px}:host(.disabled) .upload-button{cursor:not-allowed}:host(:not(.disabled)) .upload-button:focus,:host(:not(.disabled)) .upload-button:hover{color:#80a9d2}:host(:not(.disabled)) .upload-button:focus svg,:host(:not(.disabled)) .upload-button:hover svg{fill:#80a9d2}"]
styles: [":host,:host>*{box-sizing:border-box}:host{display:-webkit-flex;display:-ms-flexbox;display:flex;line-height:1.5;color:#555;background-color:#fff;border:1px solid #ddd;border-radius:4px;box-shadow:inset 0 4px 7px rgba(0,0,0,.05)}:host(.disabled){opacity:.5}.files-input{width:.1px;height:.1px;opacity:0;position:absolute;left:-100%;top:-100%;overflow:hidden}.icon{height:24px;width:24px;display:inline-block}.icon svg{fill:#555}.upload-button{cursor:pointer;display:block;padding:2px 4px;background-color:#eee;border-left:1px solid #ddd;border-radius:0 4px 4px 0;min-width:100px;color:#555;margin:0;position:relative;outline:0}.upload-text{display:block;text-overflow:ellipsis;white-space:nowrap;overflow:hidden;width:100%;padding:5px 10px;font-size:14px;height:30px}.button-text{vertical-align:middle;padding-left:10px}:host(.disabled) .upload-button{cursor:not-allowed}:host(:not(.disabled)) .upload-button:focus,:host(:not(.disabled)) .upload-button:hover{color:#80a9d2}:host(:not(.disabled)) .upload-button:focus svg,:host(:not(.disabled)) .upload-button:hover svg{fill:#80a9d2}"]
}),

@@ -125,0 +125,0 @@ __metadata("design:paramtypes", [FileUploadService,

@@ -72,2 +72,9 @@ import { __read, __spread } from "tslib";

FileUploadControl.prototype.addFile = function (file) {
/**
* if multiple is disabled and one file exists
* clear it and reupload a new one
*/
if (!this.multipleEnabled && this.files.size === 1) {
this.files.clear();
}
this.files.add(file);

@@ -95,2 +102,7 @@ this.validate();

var _this = this;
if (!this.multipleEnabled && !IsNullOrEmpty(files)) {
// add only one file
this.addFile(files[0]);
return;
}
files.forEach(function (file) { return _this.files.add(file); });

@@ -253,2 +265,2 @@ this.validate();

export { FileUploadControl };
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udHJvbC5jbGFzcy5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BpcGxhYi9uZ3gtZmlsZS11cGxvYWQvIiwic291cmNlcyI6WyJsaWIvaGVscGVycy9jb250cm9sLmNsYXNzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUUsZUFBZSxFQUFFLE9BQU8sRUFBYyxNQUFNLE1BQU0sQ0FBQztBQUU1RCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFFaEQsTUFBTSxDQUFOLElBQVksTUFJWDtBQUpELFdBQVksTUFBTTtJQUNkLHlDQUFPLENBQUE7SUFDUCxxQ0FBSyxDQUFBO0lBQ0wsMkNBQVEsQ0FBQTtBQUNaLENBQUMsRUFKVyxNQUFNLEtBQU4sTUFBTSxRQUlqQjtBQUVELE1BQU0sQ0FBTixJQUFZLFNBSVg7QUFKRCxXQUFZLFNBQVM7SUFDakIsNEJBQWUsQ0FBQTtJQUNmLDRCQUFlLENBQUE7SUFDZiwwQkFBYSxDQUFBO0FBQ2pCLENBQUMsRUFKVyxTQUFTLEtBQVQsU0FBUyxRQUlwQjtBQUVEO0lBeURJLDJCQUFZLFVBQTJDO1FBdkR0QyxVQUFLLEdBQWMsSUFBSSxHQUFHLEVBQUUsQ0FBQztRQUV0QyxnQkFBVyxHQUFHLElBQUksQ0FBQztRQUVuQixXQUFNLEdBQVcsTUFBTSxDQUFDLEtBQUssQ0FBQztRQUU5QixXQUFNLEdBQWdDLEVBQUUsQ0FBQztRQUV6QyxlQUFVLEdBQXVCLEVBQUUsQ0FBQztRQUVwQyxvQkFBZSxHQUFZLElBQUksQ0FBQztRQUV2QixvQkFBZSxHQUE2QixJQUFJLGVBQWUsQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDLENBQUM7UUFFdEYsa0JBQWEsR0FBb0IsSUFBSSxPQUFPLEVBQUUsQ0FBQztRQUUvQyxrQkFBYSxHQUF1QixJQUFJLE9BQU8sRUFBRSxDQUFDO1FBRTNELFdBQU0sR0FBVyxJQUFJLENBQUM7UUFFYixrQkFBYSxHQUE0QixJQUFJLGVBQWUsQ0FBQyxJQUFJLENBQUMs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SUFBSSxJQUFJLENBQUMsTUFBTSxLQUFLLE1BQU0sQ0FBQyxRQUFRLEVBQUU7WUFDakMsSUFBTSxZQUFZLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQztZQUNoQyxJQUFJLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLFVBQUMsU0FBUyxJQUFLLE9BQUEsU0FBUyxDQUFDLEtBQUksQ0FBQyxFQUFmLENBQWUsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxVQUFDLFNBQVMsSUFBSyxPQUFBLFNBQVMsRUFBVCxDQUFTLENBQUMsQ0FBQztZQUVuRyxJQUFJLFlBQVksS0FBSyxJQUFJLENBQUMsS0FBSyxFQUFFO2dCQUM3QixJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUM7YUFDdkU7U0FDSjthQUFNO1lBQ0gsSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDO1NBQzFCO0lBQ0wsQ0FBQztJQUNMLHdCQUFDO0FBQUQsQ0FBQyxBQW5QRCxJQW1QQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCwgU3ViamVjdCwgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBWYWxpZGF0b3JGbiwgVmFsaWRhdGlvbkVycm9ycyB9IGZyb20gJy4vdmFsaWRhdG9ycy5jbGFzcyc7XHJcbmltcG9ydCB7IElzTnVsbE9yRW1wdHkgfSBmcm9tICcuL2hlbHBlcnMuY2xhc3MnO1xyXG5cclxuZXhwb3J0IGVudW0gU1RBVFVTIHtcclxuICAgIElOVkFMSUQsXHJcbiAgICBWQUxJRCxcclxuICAgIERJU0FCTEVEXHJcbn1cclxuXHJcbmV4cG9ydCBlbnVtIEZpbGVFdmVudCB7XHJcbiAgICBjbGljayA9ICdjbGljaycsXHJcbiAgICBmb2N1cyA9ICdmb2N1cycsXHJcbiAgICBibHVyID0gJ2JsdXInXHJcbn1cclxuXHJcbmV4cG9ydCBjbGFzcyBGaWxlVXBsb2FkQ29udHJvbCB7XHJcblxyXG4gICAgcHJpdmF0ZSByZWFkb25seSBmaWxlczogU2V0PEZpbGU+ID0gbmV3IFNldCgpO1xyXG5cclxuICAgIHByaXZhdGUgbGlzdFZpc2libGUgPSB0cnVlO1xyXG5cclxuICAgIHByaXZhdGUgc3RhdHVzOiBTVEFUVVMgPSBTVEFUVVMuVkFMSUQ7XHJcblxyXG4gICAgcHJpdmF0ZSBlcnJvcnM6IEFycmF5PHtba2V5OiBzdHJpbmddOiBhbnl9PiA9IFtdO1xyXG5cclxuICAgIHByaXZhdGUgdmFsaWRhdG9yczogQXJyYXk8VmFsaWRhdG9yRm4+ID0gW107XHJcblxyXG4gICAgcHJpdmF0ZSBtdWx0aXBsZUVuYWJsZWQ6IGJvb2xlYW4gPSB0cnVlO1xyXG5cclxuICAgIHByaXZhdGUgcmVhZG9ubHkgbXVsdGlwbGVDaGFuZ2VkOiBCZWhhdmlvclN1YmplY3Q8Ym9vbGVhbj4gPSBuZXcgQmVoYXZpb3JTdWJqZWN0KHRoaXMubXVsdGlwbGVFbmFibGVkKTtcclxuXHJcbiAgICBwcml2YXRlIHJlYWRvbmx5IHN0YXR1c0NoYW5nZWQ6IFN1YmplY3Q8U1RBVFVTPiA9IG5ldyBTdWJqZWN0KCk7XHJcblxyXG4gICAgcHJpdmF0ZSByZWFkb25seSBldmVudHNDaGFuZ2VkOiBTdWJqZWN0PEZpbGVFdmVudD4gPSBuZXcgU3ViamVjdCgpO1xyXG5cclxuICAgIHByaXZhdGUgYWNjZXB0OiBzdHJpbmcgPSBudWxsO1xyXG5cclxuICAgIHByaXZhdGUgcmVhZG9ubHkgYWNjZXB0Q2hhbmdlZDogQmVoYXZpb3JTdWJqZWN0PHN0cmluZz4gPSBuZXcgQmVoYXZpb3JTdWJqZWN0KHRoaXMuYWNjZXB0KTtcclxuXHJcbiAgICAvKipcclxuICAgICAqIHRyYWNrIHN0YXR1cyBgVkFMSURgLCBgSU5WQUxJRGAgb3IgYERJU0FCTEVEYFxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgc3RhdHVzQ2hhbmdlczogT2JzZXJ2YWJsZTxTVEFUVVM+ID0gdGhpcy5zdGF0dXNDaGFuZ2VkLmFzT2JzZXJ2YWJsZSgpO1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogZW1pdCBhbiBldmVudCBldmVyeSB0aW1lIHRoZSB2YWx1ZSBvZiB0aGUgY29udHJvbFxyXG4gICAgICogY2hhbmdlcy5cclxuICAgICAqIEluaXRpYWxseSByZXR1cm5zIGxhc3QgdmFsdWVcclxuICAgICAqL1xyXG4gICAgcHVibGljIHJlYWRvbmx5IHZhbHVlQ2hhbmdlczogQmVoYXZpb3JTdWJqZWN0PEFycmF5PEZpbGU+PiA9IG5ldyBCZWhhdmlvclN1YmplY3QoW10pO1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogQGludGVybmFsXHJcbiAgICAgKiB1c2VkIHRvIHRyaWdnZXIgbGF5b3V0IGNoYW5nZSBmb3IgbGlzdCB2aXNpYmlsaXR5XHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyByZWFkb25seSBsaXN0VmlzaWJpbGl0eUNoYW5nZXM6IEJlaGF2aW9yU3ViamVjdDxib29sZWFuPiA9IG5ldyBCZWhhdmlvclN1YmplY3QodGhpcy5saXN0VmlzaWJsZSk7XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiB0cmFjayBjaGFuZ2VkIG9uIGFjY2VwdCBhdHRyaWJ1dGVcclxuICAgICAqL1xyXG4gICAgcHVibGljIHJlYWRvbmx5IGFjY2VwdENoYW5nZXM6IE9ic2VydmFibGU8c3RyaW5nPiA9IHRoaXMuYWNjZXB0Q2hhbmdlZC5hc09ic2VydmFibGUoKTtcclxuXHJcbiAgICAvKipcclxuICAgICAqIGVtaXQgYW4gZXZlbnQgZXZlcnkgdGltZSB1c2VyIHByb2dyYW1tYXRpY2FsbHkgYXNrIGZvciBjZXJ0YWluIGV2ZW50XHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyByZWFkb25seSBldmVudHNDaGFuZ2VzOiBPYnNlcnZhYmxlPEZpbGVFdmVudD4gPSB0aGlzLmV2ZW50c0NoYW5nZWQuYXNPYnNlcnZhYmxlKCk7XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiB0cmFjayBjaGFuZ2VkIG9uIG11bHRpcGxlIGF0dHJpYnV0ZVxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgcmVhZG9ubHkgbXVsdGlwbGVDaGFuZ2VzOiBPYnNlcnZhYmxlPGJvb2xlYW4+ID0gdGhpcy5tdWx0aXBsZUNoYW5nZWQuYXNPYnNlcnZhYmxlKCk7XHJcblxyXG4gICAgY29uc3RydWN0b3IodmFsaWRhdG9ycz86IFZhbGlkYXRvckZufEFycmF5PFZhbGlkYXRvckZuPikge1xyXG4gICAgICAgIHRoaXMuZGVmaW5lVmFsaWRhdG9ycyh2YWxpZGF0b3JzKTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIHNldCBmdW5jdGlvbnMgdGhhdCBkZXRlcm1pbmVzIHRoZSBzeW5jaHJvbm91cyB2YWxpZGl0eSBvZiB0aGlzIGNvbnRyb2wuXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBzZXRWYWxpZGF0b3JzKG5ld1ZhbGlkYXRvcnM6IFZhbGlkYXRvckZufEFycmF5PFZhbGlkYXRvckZuPik6IHRoaXMge1xyXG4gICAgICAgIHRoaXMuZGVmaW5lVmFsaWRhdG9ycyhuZXdWYWxpZGF0b3JzKTtcclxuICAgICAgICB0aGlzLnZhbGlkYXRlKCk7XHJcbiAgICAgICAgcmV0dXJuIHRoaXM7XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBkZWZpbmVWYWxpZGF0b3JzKHZhbGlkYXRvcnM6IFZhbGlkYXRvckZufEFycmF5PFZhbGlkYXRvckZuPik6IHZvaWQge1xyXG4gICAgICAgIGlmICghSXNOdWxsT3JFbXB0eSh2YWxpZGF0b3JzKSkge1xyXG4gICAgICAgICAgICB0aGlzLnZhbGlkYXRvcnMgPSBBcnJheS5pc0FycmF5KHZhbGlkYXRvcnMpID8gWy4uLnZhbGlkYXRvcnNdIDogW3ZhbGlkYXRvcnNdO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgYWRkRmlsZShmaWxlOiBGaWxlKTogdGhpcyB7XHJcbiAgICAgICAgdGhpcy5maWxlcy5hZGQoZmlsZSk7XHJcbiAgICAgICAgdGhpcy52YWxpZGF0ZSgpO1xyXG4gICAgICAgIHRoaXMudmFsdWVDaGFuZ2VzLm5leHQoQXJyYXkuZnJvbSh0aGlzLmZpbGVzLnZhbHVlcygpKSk7XHJcbiAgICAgICAgcmV0dXJuIHRoaXM7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIHJlbW92ZUZpbGUoZmlsZTogRmlsZSk6IHRoaXMge1xyXG4gICAgICAgIHRoaXMuZmlsZXMuZGVsZXRlKGZpbGUpO1xyXG4gICAgICAgIHRoaXMudmFsaWRhdGUoKTtcclxuICAgICAgICB0aGlzLnZhbHVlQ2hhbmdlcy5uZXh0KEFycmF5LmZyb20odGhpcy5maWxlcy52YWx1ZXMoKSkpO1xyXG4gICAgICAgIHJldHVybiB0aGlzO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBhZGRGaWxlcyhmaWxlczogRmlsZUxpc3QpOiB0aGlzIHtcclxuICAgICAgICB0aGlzLmFkZE11bHRpcGxlRmlsZXMoQXJyYXkuZnJvbShmaWxlcykpO1xyXG4gICAgICAgIHJldHVybiB0aGlzO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogQGludGVybmFsXHJcbiAgICAgKiB1c2VkIHRvIHByZXZlbnQgdmFsdWVDaGFuZ2VzIGVtaXQgbW9yZSB0aW1lc1xyXG4gICAgICogd2hlbiBtdWx0aXBsZSBmaWxlcyBhcmUgdXBsb2FkZWRcclxuICAgICAqL1xyXG4gICAgcHJpdmF0ZSBhZGRNdWx0aXBsZUZpbGVzKGZpbGVzOiBBcnJheTxGaWxlPik6IHZvaWQge1xyXG4gICAgICAgIGZpbGVzLmZvckVhY2goZmlsZSA9PiB0aGlzLmZpbGVzLmFkZChmaWxlKSk7XHJcbiAgICAgICAgdGhpcy52YWxpZGF0ZSgpO1xyXG4gICAgICAgIHRoaXMudmFsdWVDaGFuZ2VzLm5leHQoQXJyYXkuZnJvbSh0aGlzLmZpbGVzLnZhbHVlcygpKSk7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIGdldCB2YWxpZCgpOiBib29sZWFuIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5lcnJvcnMubGVuZ3RoID09PSAwICYmIHRoaXMuc3RhdHVzICE9PSBTVEFUVVMuRElTQUJMRUQ7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIGdldCBpbnZhbGlkKCk6IGJvb2xlYW4ge1xyXG4gICAgICAgIHJldHVybiB0aGlzLmVycm9ycy5sZW5ndGggPiAwO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBnZXRFcnJvcigpOiBBcnJheTxWYWxpZGF0aW9uRXJyb3JzPiB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuZXJyb3JzO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogbnVtYmVyIG9mIHVwbG9hZGVkIGZpbGVzXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBnZXQgc2l6ZSgpOiBudW1iZXIge1xyXG4gICAgICAgIHJldHVybiB0aGlzLmZpbGVzLnNpemU7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiByZXR1cm4gbGlzdCBvZiBGaWxlc1xyXG4gICAgICovXHJcbiAgICBwdWJsaWMgZ2V0IHZhbHVlKCk6IEFycmF5PEZpbGU+IHtcclxuICAgICAgICByZXR1cm4gQXJyYXkuZnJvbSh0aGlzLmZpbGVzLnZhbHVlcygpKTtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgc2V0VmFsdWUoZmlsZXM6IEFycmF5PEZpbGU+KTogdGhpcyB7XHJcbiAgICAgICAgdGhpcy5maWxlcy5jbGVhcigpO1xyXG5cclxuICAgICAgICBpZiAoZmlsZXMgaW5zdGFuY2VvZiBBcnJheSkge1xyXG4gICAgICAgICAgICB0aGlzLmFkZE11bHRpcGxlRmlsZXMoZmlsZXMpO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIHRocm93IEVycm9yKGBGb3JtQ29udHJvbC5zZXRWYWx1ZSB3YXMgcHJvdmlkZWQgd2l0aCB3cm9uZyBhcmd1bWVudCB0eXBlLCAke2ZpbGVzfSB3YXMgcHJvdmlkZWQgaW5zdGVhZCBBcnJheTxGaWxlPmApO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgcmV0dXJuIHRoaXM7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiByZXNldCB0aGUgY29udHJvbFxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgY2xlYXIoKTogdGhpcyB7XHJcbiAgICAgICAgdGhpcy5maWxlcy5jbGVhcigpO1xyXG4gICAgICAgIHRoaXMudmFsaWRhdGUoKTtcclxuICAgICAgICB0aGlzLnZhbHVlQ2hhbmdlcy5uZXh0KEFycmF5LmZyb20odGhpcy5maWxlcy52YWx1ZXMoKSkpO1xyXG4gICAgICAgIHJldHVybiB0aGlzO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBnZXQgaXNMaXN0VmlzaWJsZSgpOiBib29sZWFuIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5saXN0VmlzaWJsZTtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgc2V0TGlzdFZpc2liaWxpdHkoaXNWaXNpYmxlOiBib29sZWFuID0gdHJ1ZSk6IHRoaXMge1xyXG4gICAgICAgIHRoaXMubGlzdFZpc2libGUgPSBpc1Zpc2libGU7XHJcbiAgICAgICAgdGhpcy5saXN0VmlzaWJpbGl0eUNoYW5nZXMubmV4dCh0aGlzLmxpc3RWaXNpYmxlKTtcclxuICAgICAgICByZXR1cm4gdGhpcztcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgZ2V0IGRpc2FibGVkKCkge1xyXG4gICAgICAgIHJldHVybiB0aGlzLnN0YXR1cyA9PT0gU1RBVFVTLkRJU0FCTEVEO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBlbmFibGUoaXNFbmFibGVkOiBib29sZWFuID0gdHJ1ZSk6IHRoaXMge1xyXG4gICAgICAgIHRoaXMuc3RhdHVzID0gaXNFbmFibGVkID8gU1RBVFVTLlZBTElEIDogU1RBVFVTLkRJU0FCTEVEO1xyXG4gICAgICAgIHRoaXMudmFsaWRhdGUoKTtcclxuICAgICAgICB0aGlzLnN0YXR1c0NoYW5nZWQubmV4dCh0aGlzLnN0YXR1cyk7XHJcbiAgICAgICAgcmV0dXJuIHRoaXM7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIGRpc2FibGUoaXNEaXNhYmxlZDogYm9vbGVhbiA9IHRydWUpOiB0aGlzIHtcclxuICAgICAgICB0aGlzLnN0YXR1cyA9IGlzRGlzYWJsZWQgPyBTVEFUVVMuRElTQUJMRUQgOiBTVEFUVVMuVkFMSUQ7XHJcbiAgICAgICAgdGhpcy52YWxpZGF0ZSgpO1xyXG4gICAgICAgIHRoaXMuc3RhdHVzQ2hhbmdlZC5uZXh0KHRoaXMuc3RhdHVzKTtcclxuICAgICAgICByZXR1cm4gdGhpcztcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgY2xpY2soKTogdGhpcyB7XHJcbiAgICAgICAgdGhpcy5ldmVudHNDaGFuZ2VkLm5leHQoRmlsZUV2ZW50LmNsaWNrKTtcclxuICAgICAgICByZXR1cm4gdGhpcztcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgZm9jdXMoKTogdGhpcyB7XHJcbiAgICAgICAgdGhpcy5ldmVudHNDaGFuZ2VkLm5leHQoRmlsZUV2ZW50LmZvY3VzKTtcclxuICAgICAgICByZXR1cm4gdGhpcztcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgYmx1cigpOiB0aGlzIHtcclxuICAgICAgICB0aGlzLmV2ZW50c0NoYW5nZWQubmV4dChGaWxlRXZlbnQuYmx1cik7XHJcbiAgICAgICAgcmV0dXJuIHRoaXM7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBzcGVjaWZpZXMgdGhlIHR5cGVzIG9mIGZpbGVzIHRoYXQgdGhlIHNlcnZlciBhY2NlcHRzXHJcbiAgICAgKlxyXG4gICAgICogIyMjIEV4YW1wbGVcclxuICAgICAqXHJcbiAgICAgKiBgYGBcclxuICAgICAqIGFjY2VwdEZpbGVzKFwiZmlsZV9leHRlbnNpb258YXVkaW8vKnx2aWRlby8qfGltYWdlLyp8bWVkaWFfdHlwZVwiKVxyXG4gICAgICogYGBgXHJcbiAgICAgKlxyXG4gICAgICogVG8gc3BlY2lmeSBtb3JlIHRoYW4gb25lIHZhbHVlLCBzZXBhcmF0ZSB0aGUgdmFsdWVzIHdpdGggYSBjb21tYSAoZS5nLiBhY2NlcHRGaWxlcyhcImF1ZGlvLyosdmlkZW8vKixpbWFnZS8qXCIpLlxyXG4gICAgICpcclxuICAgICAqL1xyXG4gICAgcHVibGljIGFjY2VwdEZpbGVzKGFjY2VwdDogc3RyaW5nKTogdGhpcyB7XHJcbiAgICAgICAgdGhpcy5hY2NlcHQgPSBhY2NlcHQ7XHJcbiAgICAgICAgdGhpcy5hY2NlcHRDaGFuZ2VkLm5leHQodGhpcy5hY2NlcHQpO1xyXG4gICAgICAgIHJldHVybiB0aGlzO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBhY2NlcHRBbGwoKTogdGhpcyB7XHJcbiAgICAgICAgdGhpcy5hY2NlcHQgPSBudWxsO1xyXG4gICAgICAgIHRoaXMuYWNjZXB0Q2hhbmdlZC5uZXh0KHRoaXMuYWNjZXB0KTtcclxuICAgICAgICByZXR1cm4gdGhpcztcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgZ2V0IGlzTXVsdGlwbGUoKTogYm9vbGVhbiB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMubXVsdGlwbGVFbmFibGVkO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBtdWx0aXBsZShpc0VuYWJsZWQ6IGJvb2xlYW4gPSB0cnVlKTogdGhpcyB7XHJcbiAgICAgICAgdGhpcy5tdWx0aXBsZUVuYWJsZWQgPSBpc0VuYWJsZWQ7XHJcbiAgICAgICAgdGhpcy5tdWx0aXBsZUNoYW5nZWQubmV4dCh0aGlzLm11bHRpcGxlRW5hYmxlZCk7XHJcbiAgICAgICAgcmV0dXJuIHRoaXM7XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSB2YWxpZGF0ZSgpOiB2b2lkIHtcclxuICAgICAgICBpZiAodGhpcy5zdGF0dXMgIT09IFNUQVRVUy5ESVNBQkxFRCkge1xyXG4gICAgICAgICAgICBjb25zdCBjdXJyZW50U3RhdGUgPSB0aGlzLnZhbGlkO1xyXG4gICAgICAgICAgICB0aGlzLmVycm9ycyA9IHRoaXMudmFsaWRhdG9ycy5tYXAoKHZhbGlkYXRvcikgPT4gdmFsaWRhdG9yKHRoaXMpKS5maWx0ZXIoKGlzSW52YWxpZCkgPT4gaXNJbnZhbGlkKTtcclxuXHJcbiAgICAgICAgICAgIGlmIChjdXJyZW50U3RhdGUgIT09IHRoaXMudmFsaWQpIHtcclxuICAgICAgICAgICAgICAgIHRoaXMuc3RhdHVzQ2hhbmdlZC5uZXh0KHRoaXMudmFsaWQgPyBTVEFUVVMuVkFMSUQgOiBTVEFUVVMuSU5WQUxJRCk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICB0aGlzLmVycm9ycy5sZW5ndGggPSAwO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxufVxyXG4iXX0=
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udHJvbC5jbGFzcy5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BpcGxhYi9uZ3gtZmlsZS11cGxvYWQvIiwic291cmNlcyI6WyJsaWIvaGVscGVycy9jb250cm9sLmNsYXNzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUUsZUFBZSxFQUFFLE9BQU8sRUFBYyxNQUFNLE1BQU0sQ0FBQztBQUU1RCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFFaEQsTUFBTSxDQUFOLElBQVksTUFJWDtBQUpELFdBQVksTUFBTTtJQUNkLHlDQUFPLENBQUE7SUFDUCxxQ0FBSyxDQUFBO0lBQ0wsMkNBQVEsQ0FBQTtBQUNaLENBQUMsRUFKVyxNQUFNLEtBQU4sTUFBTSxRQUlqQjtBQUVELE1BQU0sQ0FBTixJQUFZLFNBSVg7QUFKRCxXQUFZLFNBQVM7SUFDakIsNEJBQWUsQ0FBQTtJQUNmLDRCQUFlLENBQUE7SUFDZiwwQkFBYSxDQUFBO0FBQ2pCLENBQUMsRUFKVyxTQUFTLEtBQVQsU0FBUyxRQUlwQjtBQUVEO0lBeURJLDJCQUFZLFVBQTJDO1FBdkR0QyxVQUFLLEdBQWMsSUFBSSxHQUFHLEVBQUUsQ0FBQztRQUV0QyxnQkFBVyxHQUFHLElBQUksQ0FBQztRQUVuQixXQUFNLEdBQVcsTUFBTSxDQUFDLEtBQUssQ0FBQztRQUU5QixXQUFNLEdBQWdDLEVBQUUsQ0FBQztRQUV6QyxlQUFVLEdBQXVCLEVBQUUsQ0FBQztRQUVwQyxvQkFBZSxHQUFZLElBQUksQ0FBQztRQUV2QixvQkFBZSxHQUE2QixJQUFJLGVBQWUsQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDLENBQUM7UUFFdEYsa0JBQWEsR0FBb0IsSUFBSSxPQUFPLEVBQUUsQ0FBQztRQUUvQyxrQkFBYSxHQUF1QixJQUFJLE9BQU8sRUFBRSxDQUFDO1FBRTNELFdBQU0sR0FBVyxJQUFJLENBQUM7UUFFYixrQkFBYSxHQUE0QixJQUFJLGVBQWUsQ0FBQyxJQUFJLENBQUMs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QUVELHNCQUFXLHlDQUFVO2FBQXJCO1lBQ0ksT0FBTyxJQUFJLENBQUMsZUFBZSxDQUFDO1FBQ2hDLENBQUM7OztPQUFBO0lBRU0sb0NBQVEsR0FBZixVQUFnQixTQUF5QjtRQUF6QiwwQkFBQSxFQUFBLGdCQUF5QjtRQUNyQyxJQUFJLENBQUMsZUFBZSxHQUFHLFNBQVMsQ0FBQztRQUNqQyxJQUFJLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDLENBQUM7UUFDaEQsT0FBTyxJQUFJLENBQUM7SUFDaEIsQ0FBQztJQUVPLG9DQUFRLEdBQWhCO1FBQUEsaUJBV0M7UUFWRyxJQUFJLElBQUksQ0FBQyxNQUFNLEtBQUssTUFBTSxDQUFDLFFBQVEsRUFBRTtZQUNqQyxJQUFNLFlBQVksR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDO1lBQ2hDLElBQUksQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsVUFBQyxTQUFTLElBQUssT0FBQSxTQUFTLENBQUMsS0FBSSxDQUFDLEVBQWYsQ0FBZSxDQUFDLENBQUMsTUFBTSxDQUFDLFVBQUMsU0FBUyxJQUFLLE9BQUEsU0FBUyxFQUFULENBQVMsQ0FBQyxDQUFDO1lBRW5HLElBQUksWUFBWSxLQUFLLElBQUksQ0FBQyxLQUFLLEVBQUU7Z0JBQzdCLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQzthQUN2RTtTQUNKO2FBQU07WUFDSCxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUM7U0FDMUI7SUFDTCxDQUFDO0lBQ0wsd0JBQUM7QUFBRCxDQUFDLEFBL1BELElBK1BDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0LCBTdWJqZWN0LCBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IFZhbGlkYXRvckZuLCBWYWxpZGF0aW9uRXJyb3JzIH0gZnJvbSAnLi92YWxpZGF0b3JzLmNsYXNzJztcclxuaW1wb3J0IHsgSXNOdWxsT3JFbXB0eSB9IGZyb20gJy4vaGVscGVycy5jbGFzcyc7XHJcblxyXG5leHBvcnQgZW51bSBTVEFUVVMge1xyXG4gICAgSU5WQUxJRCxcclxuICAgIFZBTElELFxyXG4gICAgRElTQUJMRURcclxufVxyXG5cclxuZXhwb3J0IGVudW0gRmlsZUV2ZW50IHtcclxuICAgIGNsaWNrID0gJ2NsaWNrJyxcclxuICAgIGZvY3VzID0gJ2ZvY3VzJyxcclxuICAgIGJsdXIgPSAnYmx1cidcclxufVxyXG5cclxuZXhwb3J0IGNsYXNzIEZpbGVVcGxvYWRDb250cm9sIHtcclxuXHJcbiAgICBwcml2YXRlIHJlYWRvbmx5IGZpbGVzOiBTZXQ8RmlsZT4gPSBuZXcgU2V0KCk7XHJcblxyXG4gICAgcHJpdmF0ZSBsaXN0VmlzaWJsZSA9IHRydWU7XHJcblxyXG4gICAgcHJpdmF0ZSBzdGF0dXM6IFNUQVRVUyA9IFNUQVRVUy5WQUxJRDtcclxuXHJcbiAgICBwcml2YXRlIGVycm9yczogQXJyYXk8e1trZXk6IHN0cmluZ106IGFueX0+ID0gW107XHJcblxyXG4gICAgcHJpdmF0ZSB2YWxpZGF0b3JzOiBBcnJheTxWYWxpZGF0b3JGbj4gPSBbXTtcclxuXHJcbiAgICBwcml2YXRlIG11bHRpcGxlRW5hYmxlZDogYm9vbGVhbiA9IHRydWU7XHJcblxyXG4gICAgcHJpdmF0ZSByZWFkb25seSBtdWx0aXBsZUNoYW5nZWQ6IEJlaGF2aW9yU3ViamVjdDxib29sZWFuPiA9IG5ldyBCZWhhdmlvclN1YmplY3QodGhpcy5tdWx0aXBsZUVuYWJsZWQpO1xyXG5cclxuICAgIHByaXZhdGUgcmVhZG9ubHkgc3RhdHVzQ2hhbmdlZDogU3ViamVjdDxTVEFUVVM+ID0gbmV3IFN1YmplY3QoKTtcclxuXHJcbiAgICBwcml2YXRlIHJlYWRvbmx5IGV2ZW50c0NoYW5nZWQ6IFN1YmplY3Q8RmlsZUV2ZW50PiA9IG5ldyBTdWJqZWN0KCk7XHJcblxyXG4gICAgcHJpdmF0ZSBhY2NlcHQ6IHN0cmluZyA9IG51bGw7XHJcblxyXG4gICAgcHJpdmF0ZSByZWFkb25seSBhY2NlcHRDaGFuZ2VkOiBCZWhhdmlvclN1YmplY3Q8c3RyaW5nPiA9IG5ldyBCZWhhdmlvclN1YmplY3QodGhpcy5hY2NlcHQpO1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogdHJhY2sgc3RhdHVzIGBWQUxJRGAsIGBJTlZBTElEYCBvciBgRElTQUJMRURgXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBzdGF0dXNDaGFuZ2VzOiBPYnNlcnZhYmxlPFNUQVRVUz4gPSB0aGlzLnN0YXR1c0NoYW5nZWQuYXNPYnNlcnZhYmxlKCk7XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBlbWl0IGFuIGV2ZW50IGV2ZXJ5IHRpbWUgdGhlIHZhbHVlIG9mIHRoZSBjb250cm9sXHJcbiAgICAgKiBjaGFuZ2VzLlxyXG4gICAgICogSW5pdGlhbGx5IHJldHVybnMgbGFzdCB2YWx1ZVxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgcmVhZG9ubHkgdmFsdWVDaGFuZ2VzOiBCZWhhdmlvclN1YmplY3Q8QXJyYXk8RmlsZT4+ID0gbmV3IEJlaGF2aW9yU3ViamVjdChbXSk7XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBAaW50ZXJuYWxcclxuICAgICAqIHVzZWQgdG8gdHJpZ2dlciBsYXlvdXQgY2hhbmdlIGZvciBsaXN0IHZpc2liaWxpdHlcclxuICAgICAqL1xyXG4gICAgcHVibGljIHJlYWRvbmx5IGxpc3RWaXNpYmlsaXR5Q2hhbmdlczogQmVoYXZpb3JTdWJqZWN0PGJvb2xlYW4+ID0gbmV3IEJlaGF2aW9yU3ViamVjdCh0aGlzLmxpc3RWaXNpYmxlKTtcclxuXHJcbiAgICAvKipcclxuICAgICAqIHRyYWNrIGNoYW5nZWQgb24gYWNjZXB0IGF0dHJpYnV0ZVxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgcmVhZG9ubHkgYWNjZXB0Q2hhbmdlczogT2JzZXJ2YWJsZTxzdHJpbmc+ID0gdGhpcy5hY2NlcHRDaGFuZ2VkLmFzT2JzZXJ2YWJsZSgpO1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogZW1pdCBhbiBldmVudCBldmVyeSB0aW1lIHVzZXIgcHJvZ3JhbW1hdGljYWxseSBhc2sgZm9yIGNlcnRhaW4gZXZlbnRcclxuICAgICAqL1xyXG4gICAgcHVibGljIHJlYWRvbmx5IGV2ZW50c0NoYW5nZXM6IE9ic2VydmFibGU8RmlsZUV2ZW50PiA9IHRoaXMuZXZlbnRzQ2hhbmdlZC5hc09ic2VydmFibGUoKTtcclxuXHJcbiAgICAvKipcclxuICAgICAqIHRyYWNrIGNoYW5nZWQgb24gbXVsdGlwbGUgYXR0cmlidXRlXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyByZWFkb25seSBtdWx0aXBsZUNoYW5nZXM6IE9ic2VydmFibGU8Ym9vbGVhbj4gPSB0aGlzLm11bHRpcGxlQ2hhbmdlZC5hc09ic2VydmFibGUoKTtcclxuXHJcbiAgICBjb25zdHJ1Y3Rvcih2YWxpZGF0b3JzPzogVmFsaWRhdG9yRm58QXJyYXk8VmFsaWRhdG9yRm4+KSB7XHJcbiAgICAgICAgdGhpcy5kZWZpbmVWYWxpZGF0b3JzKHZhbGlkYXRvcnMpO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogc2V0IGZ1bmN0aW9ucyB0aGF0IGRldGVybWluZXMgdGhlIHN5bmNocm9ub3VzIHZhbGlkaXR5IG9mIHRoaXMgY29udHJvbC5cclxuICAgICAqL1xyXG4gICAgcHVibGljIHNldFZhbGlkYXRvcnMobmV3VmFsaWRhdG9yczogVmFsaWRhdG9yRm58QXJyYXk8VmFsaWRhdG9yRm4+KTogdGhpcyB7XHJcbiAgICAgICAgdGhpcy5kZWZpbmVWYWxpZGF0b3JzKG5ld1ZhbGlkYXRvcnMpO1xyXG4gICAgICAgIHRoaXMudmFsaWRhdGUoKTtcclxuICAgICAgICByZXR1cm4gdGhpcztcclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIGRlZmluZVZhbGlkYXRvcnModmFsaWRhdG9yczogVmFsaWRhdG9yRm58QXJyYXk8VmFsaWRhdG9yRm4+KTogdm9pZCB7XHJcbiAgICAgICAgaWYgKCFJc051bGxPckVtcHR5KHZhbGlkYXRvcnMpKSB7XHJcbiAgICAgICAgICAgIHRoaXMudmFsaWRhdG9ycyA9IEFycmF5LmlzQXJyYXkodmFsaWRhdG9ycykgPyBbLi4udmFsaWRhdG9yc10gOiBbdmFsaWRhdG9yc107XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBhZGRGaWxlKGZpbGU6IEZpbGUpOiB0aGlzIHtcclxuICAgICAgICAvKipcclxuICAgICAgICAgKiBpZiBtdWx0aXBsZSBpcyBkaXNhYmxlZCBhbmQgb25lIGZpbGUgZXhpc3RzXHJcbiAgICAgICAgICogY2xlYXIgaXQgYW5kIHJldXBsb2FkIGEgbmV3IG9uZVxyXG4gICAgICAgICAqL1xyXG4gICAgICAgIGlmICghdGhpcy5tdWx0aXBsZUVuYWJsZWQgJiYgdGhpcy5maWxlcy5zaXplID09PSAxKSB7XHJcbiAgICAgICAgICAgIHRoaXMuZmlsZXMuY2xlYXIoKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgdGhpcy5maWxlcy5hZGQoZmlsZSk7XHJcbiAgICAgICAgdGhpcy52YWxpZGF0ZSgpO1xyXG4gICAgICAgIHRoaXMudmFsdWVDaGFuZ2VzLm5leHQoQXJyYXkuZnJvbSh0aGlzLmZpbGVzLnZhbHVlcygpKSk7XHJcbiAgICAgICAgcmV0dXJuIHRoaXM7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIHJlbW92ZUZpbGUoZmlsZTogRmlsZSk6IHRoaXMge1xyXG4gICAgICAgIHRoaXMuZmlsZXMuZGVsZXRlKGZpbGUpO1xyXG4gICAgICAgIHRoaXMudmFsaWRhdGUoKTtcclxuICAgICAgICB0aGlzLnZhbHVlQ2hhbmdlcy5uZXh0KEFycmF5LmZyb20odGhpcy5maWxlcy52YWx1ZXMoKSkpO1xyXG4gICAgICAgIHJldHVybiB0aGlzO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBhZGRGaWxlcyhmaWxlczogRmlsZUxpc3QpOiB0aGlzIHtcclxuICAgICAgICB0aGlzLmFkZE11bHRpcGxlRmlsZXMoQXJyYXkuZnJvbShmaWxlcykpO1xyXG4gICAgICAgIHJldHVybiB0aGlzO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogQGludGVybmFsXHJcbiAgICAgKiB1c2VkIHRvIHByZXZlbnQgdmFsdWVDaGFuZ2VzIGVtaXQgbW9yZSB0aW1lc1xyXG4gICAgICogd2hlbiBtdWx0aXBsZSBmaWxlcyBhcmUgdXBsb2FkZWRcclxuICAgICAqL1xyXG4gICAgcHJpdmF0ZSBhZGRNdWx0aXBsZUZpbGVzKGZpbGVzOiBBcnJheTxGaWxlPik6IHZvaWQge1xyXG4gICAgICAgIGlmICghdGhpcy5tdWx0aXBsZUVuYWJsZWQgJiYgIUlzTnVsbE9yRW1wdHkoZmlsZXMpKSB7XHJcbiAgICAgICAgICAgIC8vIGFkZCBvbmx5IG9uZSBmaWxlXHJcbiAgICAgICAgICAgIHRoaXMuYWRkRmlsZShmaWxlc1swXSk7XHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcbiAgICAgICAgZmlsZXMuZm9yRWFjaChmaWxlID0+IHRoaXMuZmlsZXMuYWRkKGZpbGUpKTtcclxuICAgICAgICB0aGlzLnZhbGlkYXRlKCk7XHJcbiAgICAgICAgdGhpcy52YWx1ZUNoYW5nZXMubmV4dChBcnJheS5mcm9tKHRoaXMuZmlsZXMudmFsdWVzKCkpKTtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgZ2V0IHZhbGlkKCk6IGJvb2xlYW4ge1xyXG4gICAgICAgIHJldHVybiB0aGlzLmVycm9ycy5sZW5ndGggPT09IDAgJiYgdGhpcy5zdGF0dXMgIT09IFNUQVRVUy5ESVNBQkxFRDtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgZ2V0IGludmFsaWQoKTogYm9vbGVhbiB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuZXJyb3JzLmxlbmd0aCA+IDA7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIGdldEVycm9yKCk6IEFycmF5PFZhbGlkYXRpb25FcnJvcnM+IHtcclxuICAgICAgICByZXR1cm4gdGhpcy5lcnJvcnM7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBudW1iZXIgb2YgdXBsb2FkZWQgZmlsZXNcclxuICAgICAqL1xyXG4gICAgcHVibGljIGdldCBzaXplKCk6IG51bWJlciB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuZmlsZXMuc2l6ZTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIHJldHVybiBsaXN0IG9mIEZpbGVzXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBnZXQgdmFsdWUoKTogQXJyYXk8RmlsZT4ge1xyXG4gICAgICAgIHJldHVybiBBcnJheS5mcm9tKHRoaXMuZmlsZXMudmFsdWVzKCkpO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBzZXRWYWx1ZShmaWxlczogQXJyYXk8RmlsZT4pOiB0aGlzIHtcclxuICAgICAgICB0aGlzLmZpbGVzLmNsZWFyKCk7XHJcblxyXG4gICAgICAgIGlmIChmaWxlcyBpbnN0YW5jZW9mIEFycmF5KSB7XHJcbiAgICAgICAgICAgIHRoaXMuYWRkTXVsdGlwbGVGaWxlcyhmaWxlcyk7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgdGhyb3cgRXJyb3IoYEZvcm1Db250cm9sLnNldFZhbHVlIHdhcyBwcm92aWRlZCB3aXRoIHdyb25nIGFyZ3VtZW50IHR5cGUsICR7ZmlsZXN9IHdhcyBwcm92aWRlZCBpbnN0ZWFkIEFycmF5PEZpbGU+YCk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICByZXR1cm4gdGhpcztcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIHJlc2V0IHRoZSBjb250cm9sXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBjbGVhcigpOiB0aGlzIHtcclxuICAgICAgICB0aGlzLmZpbGVzLmNsZWFyKCk7XHJcbiAgICAgICAgdGhpcy52YWxpZGF0ZSgpO1xyXG4gICAgICAgIHRoaXMudmFsdWVDaGFuZ2VzLm5leHQoQXJyYXkuZnJvbSh0aGlzLmZpbGVzLnZhbHVlcygpKSk7XHJcbiAgICAgICAgcmV0dXJuIHRoaXM7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIGdldCBpc0xpc3RWaXNpYmxlKCk6IGJvb2xlYW4ge1xyXG4gICAgICAgIHJldHVybiB0aGlzLmxpc3RWaXNpYmxlO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBzZXRMaXN0VmlzaWJpbGl0eShpc1Zpc2libGU6IGJvb2xlYW4gPSB0cnVlKTogdGhpcyB7XHJcbiAgICAgICAgdGhpcy5saXN0VmlzaWJsZSA9IGlzVmlzaWJsZTtcclxuICAgICAgICB0aGlzLmxpc3RWaXNpYmlsaXR5Q2hhbmdlcy5uZXh0KHRoaXMubGlzdFZpc2libGUpO1xyXG4gICAgICAgIHJldHVybiB0aGlzO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBnZXQgZGlzYWJsZWQoKSB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuc3RhdHVzID09PSBTVEFUVVMuRElTQUJMRUQ7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIGVuYWJsZShpc0VuYWJsZWQ6IGJvb2xlYW4gPSB0cnVlKTogdGhpcyB7XHJcbiAgICAgICAgdGhpcy5zdGF0dXMgPSBpc0VuYWJsZWQgPyBTVEFUVVMuVkFMSUQgOiBTVEFUVVMuRElTQUJMRUQ7XHJcbiAgICAgICAgdGhpcy52YWxpZGF0ZSgpO1xyXG4gICAgICAgIHRoaXMuc3RhdHVzQ2hhbmdlZC5uZXh0KHRoaXMuc3RhdHVzKTtcclxuICAgICAgICByZXR1cm4gdGhpcztcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgZGlzYWJsZShpc0Rpc2FibGVkOiBib29sZWFuID0gdHJ1ZSk6IHRoaXMge1xyXG4gICAgICAgIHRoaXMuc3RhdHVzID0gaXNEaXNhYmxlZCA/IFNUQVRVUy5ESVNBQkxFRCA6IFNUQVRVUy5WQUxJRDtcclxuICAgICAgICB0aGlzLnZhbGlkYXRlKCk7XHJcbiAgICAgICAgdGhpcy5zdGF0dXNDaGFuZ2VkLm5leHQodGhpcy5zdGF0dXMpO1xyXG4gICAgICAgIHJldHVybiB0aGlzO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBjbGljaygpOiB0aGlzIHtcclxuICAgICAgICB0aGlzLmV2ZW50c0NoYW5nZWQubmV4dChGaWxlRXZlbnQuY2xpY2spO1xyXG4gICAgICAgIHJldHVybiB0aGlzO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBmb2N1cygpOiB0aGlzIHtcclxuICAgICAgICB0aGlzLmV2ZW50c0NoYW5nZWQubmV4dChGaWxlRXZlbnQuZm9jdXMpO1xyXG4gICAgICAgIHJldHVybiB0aGlzO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBibHVyKCk6IHRoaXMge1xyXG4gICAgICAgIHRoaXMuZXZlbnRzQ2hhbmdlZC5uZXh0KEZpbGVFdmVudC5ibHVyKTtcclxuICAgICAgICByZXR1cm4gdGhpcztcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIHNwZWNpZmllcyB0aGUgdHlwZXMgb2YgZmlsZXMgdGhhdCB0aGUgc2VydmVyIGFjY2VwdHNcclxuICAgICAqXHJcbiAgICAgKiAjIyMgRXhhbXBsZVxyXG4gICAgICpcclxuICAgICAqIGBgYFxyXG4gICAgICogYWNjZXB0RmlsZXMoXCJmaWxlX2V4dGVuc2lvbnxhdWRpby8qfHZpZGVvLyp8aW1hZ2UvKnxtZWRpYV90eXBlXCIpXHJcbiAgICAgKiBgYGBcclxuICAgICAqXHJcbiAgICAgKiBUbyBzcGVjaWZ5IG1vcmUgdGhhbiBvbmUgdmFsdWUsIHNlcGFyYXRlIHRoZSB2YWx1ZXMgd2l0aCBhIGNvbW1hIChlLmcuIGFjY2VwdEZpbGVzKFwiYXVkaW8vKix2aWRlby8qLGltYWdlLypcIikuXHJcbiAgICAgKlxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgYWNjZXB0RmlsZXMoYWNjZXB0OiBzdHJpbmcpOiB0aGlzIHtcclxuICAgICAgICB0aGlzLmFjY2VwdCA9IGFjY2VwdDtcclxuICAgICAgICB0aGlzLmFjY2VwdENoYW5nZWQubmV4dCh0aGlzLmFjY2VwdCk7XHJcbiAgICAgICAgcmV0dXJuIHRoaXM7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIGFjY2VwdEFsbCgpOiB0aGlzIHtcclxuICAgICAgICB0aGlzLmFjY2VwdCA9IG51bGw7XHJcbiAgICAgICAgdGhpcy5hY2NlcHRDaGFuZ2VkLm5leHQodGhpcy5hY2NlcHQpO1xyXG4gICAgICAgIHJldHVybiB0aGlzO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBnZXQgaXNNdWx0aXBsZSgpOiBib29sZWFuIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5tdWx0aXBsZUVuYWJsZWQ7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIG11bHRpcGxlKGlzRW5hYmxlZDogYm9vbGVhbiA9IHRydWUpOiB0aGlzIHtcclxuICAgICAgICB0aGlzLm11bHRpcGxlRW5hYmxlZCA9IGlzRW5hYmxlZDtcclxuICAgICAgICB0aGlzLm11bHRpcGxlQ2hhbmdlZC5uZXh0KHRoaXMubXVsdGlwbGVFbmFibGVkKTtcclxuICAgICAgICByZXR1cm4gdGhpcztcclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIHZhbGlkYXRlKCk6IHZvaWQge1xyXG4gICAgICAgIGlmICh0aGlzLnN0YXR1cyAhPT0gU1RBVFVTLkRJU0FCTEVEKSB7XHJcbiAgICAgICAgICAgIGNvbnN0IGN1cnJlbnRTdGF0ZSA9IHRoaXMudmFsaWQ7XHJcbiAgICAgICAgICAgIHRoaXMuZXJyb3JzID0gdGhpcy52YWxpZGF0b3JzLm1hcCgodmFsaWRhdG9yKSA9PiB2YWxpZGF0b3IodGhpcykpLmZpbHRlcigoaXNJbnZhbGlkKSA9PiBpc0ludmFsaWQpO1xyXG5cclxuICAgICAgICAgICAgaWYgKGN1cnJlbnRTdGF0ZSAhPT0gdGhpcy52YWxpZCkge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5zdGF0dXNDaGFuZ2VkLm5leHQodGhpcy52YWxpZCA/IFNUQVRVUy5WQUxJRCA6IFNUQVRVUy5JTlZBTElEKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIHRoaXMuZXJyb3JzLmxlbmd0aCA9IDA7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG59XHJcbiJdfQ==

@@ -6,3 +6,3 @@ {

"bugs": "https://github.com/pIvan/file-upload/issues",
"version": "2.0.0",
"version": "2.0.1",
"author": "Ivan Pintar",

@@ -9,0 +9,0 @@ "license": "MIT",

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

Sorry, the diff of this file is not supported yet

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

Sorry, the diff of this file is not supported yet

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

Sorry, the diff of this file is not supported yet

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

Sorry, the diff of this file is not supported yet

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

SocketSocket SOC 2 Logo

Product

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

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc