@crystalui/angular-lightbox
Advanced tools
Comparing version 1.0.4 to 1.0.5
@@ -385,2 +385,2 @@ /** | ||
} | ||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGlnaHRib3gtY29tbW9uLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BjcnlzdGFsdWkvYW5ndWxhci1saWdodGJveC8iLCJzb3VyY2VzIjpbImxpYi9saWdodGJveC1jb21tb24uY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7QUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxXQUFXLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUdyRixPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLFNBQVMsQ0FBQztBQU9oQyxNQUFNLE9BQU8sdUJBQXVCOzs7O0lBbU1oQyxZQUFtQixZQUEwQjtRQUExQixpQkFBWSxHQUFaLFlBQVksQ0FBYztRQWpNN0Msc0JBQWlCLEdBQVcsQ0FBQyxDQUFDO1FBQzlCLHNCQUFpQixHQUFHLENBQUMsQ0FBQztRQUd0QixvQkFBZSxHQUFRO1lBQ25CLFVBQVUsRUFBRSxFQUFFO1lBQ2QsU0FBUyxFQUFFLEVBQUU7WUFDYixLQUFLLEVBQUUsRUFBRTtZQUNULE1BQU0sRUFBRSxFQUFFO1lBQ1YsT0FBTyxFQUFFLEVBQUU7U0FDZCxDQUFDO1FBQ0YsMEJBQXFCLEdBQW9ELFlBQVksQ0FBQztRQXVMbEYsSUFBSSxDQUFDLFFBQVEsR0FBRyxLQUFLLENBQUMsV0FBVyxFQUFFLENBQUM7SUFDeEMsQ0FBQzs7OztJQTNLRCxJQUFJLGFBQWE7UUFDYixJQUFJLElBQUksQ0FBQyxRQUFRLElBQUksSUFBSSxDQUFDLFVBQVUsQ0FBQyxhQUFhLEVBQUM7O2tCQUN6QyxjQUFjLEdBQUcsQ0FBQyxhQUFhLEVBQUUsY0FBYyxFQUFFLFlBQVksQ0FBQztZQUNwRSxPQUFPLElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLGlCQUFpQixDQUFDLENBQUMsQ0FBQztTQUN2RDthQUFNO1lBQ0gsT0FB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bkQsNkNBQStDOztJQUMvQyxpREFBdUQ7O0lBMkszQywrQ0FBaUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIElucHV0LCBIb3N0QmluZGluZywgVmlld0NoaWxkLCBFbGVtZW50UmVmIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBMaWdodGJveERhdGEgfSBmcm9tICcuL2ludGVyZmFjZXMnO1xuaW1wb3J0IHsgU2hvd1N0YXRlLCBDbG9zaW5nU3RhdGUgfSBmcm9tICcuL3R5cGVzJztcbmltcG9ydCB7IEV2ZW50U2VydmljZSB9IGZyb20gJy4vZXZlbnQuc2VydmljZSc7XG5pbXBvcnQgeyBVdGlscyB9IGZyb20gJy4vdXRpbHMnO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ2xpZ2h0Ym94LWNvbW1vbicsXG4gICAgdGVtcGxhdGU6ICcnXG59KVxuXG5leHBvcnQgY2xhc3MgTGlnaHRib3hDb21tb25Db21wb25lbnQge1xuXG4gICAgY3VycmVudEltYWdlSW5kZXg6IG51bWJlciA9IDA7XG4gICAgaW5kZXhDdXJyZW50U2xpZGUgPSAxO1xuICAgIHNob3dTdGF0ZTogU2hvd1N0YXRlO1xuICAgIGNsb3NpbmdTdGF0ZTogQ2xvc2luZ1N0YXRlO1xuICAgIGNvbnRhaW5lclN0eWxlczogYW55ID0ge1xuICAgICAgICB0cmFuc2l0aW9uOiAnJyxcbiAgICAgICAgdHJhbnNmb3JtOiAnJyxcbiAgICAgICAgd2lkdGg6ICcnLFxuICAgICAgICBoZWlnaHQ6ICcnLFxuICAgICAgICBvcGFjaXR5OiAnJ1xuICAgIH07XG4gICAgY3VyckltYWdlTG9hZGluZ1N0YXRlOiAnbm90LWxvYWRlZCcgfCAnbG9hZGluZycgfCAndXBsb2FkZWQnIHwgJ2Vycm9yJyA9ICdub3QtbG9hZGVkJztcbiAgICBpc01vYmlsZTogYm9vbGVhbjtcblxuICAgIEBJbnB1dCgpIGxpZ2h0Ym94RGF0YTogTGlnaHRib3hEYXRhO1xuXG4gICAgQEhvc3RCaW5kaW5nKCdzdHlsZS5iYWNrZ3JvdW5kQ29sb3InKSBob3N0U3R5bGVCYWNrZ3JvdW5kQ29sb3I6IHN0cmluZztcbiAgICBASG9zdEJpbmRpbmcoJ3N0eWxlLnRyYW5zaXRpb24nKSBob3N0U3R5bGVUcmFuc2l0aW9uOiBzdHJpbmc7XG5cbiAgICBAVmlld0NoaWxkKCdpbWFnZUZpcnN0JykgX2ltYWdlRmlyc3Q6IEVsZW1lbnRSZWY7XG4gICAgQFZpZXdDaGlsZCgnaW1hZ2VTZWNvbmQnKSBfaW1hZ2VTZWNvbmQ6IEVsZW1lbnRSZWY7XG4gICAgQFZpZXdDaGlsZCgnaW1hZ2VMYXN0JykgX2ltYWdlTGFzdDogRWxlbWVudFJlZjtcbiAgICBAVmlld0NoaWxkKCdsaWdodGJveEltYWdlJykgX2xpZ2h0Ym94SW1hZ2U6IEVsZW1lbnRSZWY7XG5cbiAgICBnZXQgbGlnaHRib3hJbWFnZSgpe1xuICAgICAgICBpZiAodGhpcy5pc01vYmlsZSAmJiB0aGlzLnByb3BlcnRpZXMuZ2VzdHVyZUVuYWJsZSl7XG4gICAgICAgICAgICBjb25zdCBpbWFnZVBvc2l0aW9ucyA9IFsnX2ltYWdlRmlyc3QnLCAnX2ltYWdlU2Vjb25kJywgJ19pbWFnZUxhc3QnXTtcbiAgICAgICAgICAgIHJldHVybiB0aGlzW2ltYWdlUG9zaXRpb25zW3RoaXMuaW5kZXhDdXJyZW50U2xpZGVdXTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLl9saWdodGJveEltYWdlO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgZ2V0IGxpZ2h0Ym94SW1hZ2VFbGVtZW50KCl7XG4gICAgICAgIGlmICh0aGlzLmxpZ2h0Ym94SW1hZ2Upe1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMubGlnaHRib3hJbWFnZS5uYXRpdmVFbGVtZW50O1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgZ2V0IGxpZ2h0Ym94SW1hZ2VOYXR1cmFsSGVpZ2h0KCl7XG4gICAgICAgIGlmICh0aGlzLmxpZ2h0Ym94SW1hZ2VFbGVtZW50KXtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLmxpZ2h0Ym94SW1hZ2VFbGVtZW50Lm5hdHVyYWxIZWlnaHQ7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBnZXQgbGlnaHRib3hJbWFnZU5hdHVyYWxXaWR0aCgpe1xuICAgICAgICBpZiAodGhpcy5saWdodGJveEltYWdlRWxlbWVudCl7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5saWdodGJveEltYWdlRWxlbWVudC5uYXR1cmFsV2lkdGg7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBnZXQgaW5kZXgoKXtcbiAgICAgICAgcmV0dXJuIHRoaXMuY3VycmVudEltYWdlSW5kZXg7XG4gICAgfVxuXG4gICAgZ2V0IHByb3BlcnRpZXMoKXtcbiAgICAgICAgcmV0dXJuIHRoaXMubGlnaHRib3hEYXRhLnByb3BlcnRpZXM7XG4gICAgfVxuXG4gICAgZ2V0IGltYWdlcygpe1xuICAgICAgICByZXR1cm4gdGhpcy5saWdodGJveERhdGEuaW1hZ2VzIHx8IFt0aGlzLmxpZ2h0Ym94RGF0YS5pbWFnZV07XG4gICAgfVxuXG4gICAgZ2V0IHRodW1ibmFpbEltYWdlKCl7XG4gICAgICAgIHJldHVybiB0aGlzLmltYWdlc1t0aGlzLmN1cnJlbnRJbWFnZUluZGV4XS5uYXRpdmVFbGVtZW50O1xuICAgIH1cblxuICAgIGdldCB0aHVtYm5haWxJbWFnZVBvc2l0aW9uKCl7XG4gICAgICAgIHJldHVybiB0aGlzLnRodW1ibmFpbEltYWdlLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xuICAgIH1cblxuICAgIC8vIEltYWdlIHNpemUgaWYgaXQgaXMgbGFyZ2VyIHRoYW4gdGhlIHdpbmRvdyBzaXplXG4gICAgZ2V0IHZpcnR1YWxJbWFnZURpbWVuc2lvbigpe1xuICAgICAgICBsZXQgaGVpZ2h0ID0gdGhpcy5saWdodGJveEltYWdlTmF0dXJhbEhlaWdodDtcbiAgICAgICAgbGV0IHdpZHRoID0gaGVpZ2h0ICogdGhpcy5pbWFnZUFzcGVjdFJhdGlvO1xuICAgICAgICBjb25zdCB3aW5kb3dXaWR0aCA9IGRvY3VtZW50LmJvZHkuY2xpZW50V2lkdGg7XG4gICAgICAgIGNvbnN0IHdpbmRvd0hlaWdodCA9IHdpbmRvdy5pbm5lckhlaWdodDtcblxuICAgICAgICBpZiAodGhpcy5pc0ltYWdlTGFyZ2VyV2luZG93KXtcbiAgICAgICAgICAgIGlmIChoZWlnaHQgPiB3aW5kb3dIZWlnaHQpe1xuICAgICAgICAgICAgICAgIGhlaWdodCA9IHdpbmRvd0hlaWdodDtcbiAgICAgICAgICAgICAgICB3aWR0aCA9IGhlaWdodCAqIHRoaXMuaW1hZ2VBc3BlY3RSYXRpbztcbiAgICAgICAgICAgIH0gXG5cbiAgICAgICAgICAgIGlmICh3aWR0aCA+IHdpbmRvd1dpZHRoKXtcbiAgICAgICAgICAgICAgICB3aWR0aCA9IHdpbmRvd1dpZHRoO1xuICAgICAgICAgICAgICAgIGhlaWdodCA9IHdpZHRoIC8gdGhpcy5pbWFnZUFzcGVjdFJhdGlvO1xuICAgICAgICAgICAgfVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgd2lkdGggPSB0aGlzLmxpZ2h0Ym94SW1hZ2VOYXR1cmFsV2lkdGg7XG4gICAgICAgICAgICBoZWlnaHQgPSB0aGlzLmxpZ2h0Ym94SW1hZ2VOYXR1cmFsSGVpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHdpZHRoID09PSAwIHx8IE51bWJlci5wYXJzZUludChoZWlnaHQpID09PSAwKXtcbiAgICAgICAgICAgIHJldHVybiB7d2lkdGg6IDIwMCwgaGVpZ2h0OiAyMDB9O1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHt3aWR0aCwgaGVpZ2h0fTtcbiAgICB9XG5cbiAgICBnZXQgY29udGFpbmVySW5pdGlhbFBvc2l0aW9uKCl7XG4gICAgICAgIGNvbnN0IHNjYWxlID0gICh0aGlzLnNob3dTdGF0ZSA9PT0gJ2luaXRpYWwtdGh1bWJuYWlsLWltYWdlJykgPyAxIDogdGhpcy5jb250YWluZXJTY2FsZTsgXG4gICAgICAgIGNvbnN0IHRvcCA9IHRoaXMudGh1bWJuYWlsSW1hZ2VQb3NpdGlvbi50b3A7XG4gICAgICAgIGNvbnN0IGxlZnQgPSB0aGlzLnRodW1ibmFpbEltYWdlUG9zaXRpb24ubGVmdDtcbiAgICAgICAgcmV0dXJuICdtYXRyaXgoJysgc2NhbGUgKycsIDAsIDAsICcrIHNjYWxlICsnLCcrIGxlZnQgKycsJysgdG9wICsnKSc7XG4gICAgfVxuXG4gICAgZ2V0IGNvbnRhaW5lckZ1bGxzY3JlZW5Qb3NpdGlvbigpe1xuICAgICAgICBjb25zdCBsZWZ0ID0gKGRvY3VtZW50LmJvZHkuY2xpZW50V2lkdGggLSB0aGlzLnZpcnR1YWxJbWFnZURpbWVuc2lvbi53aWR0aCkgLyAyO1xuICAgICAgICBjb25zdCB0b3AgPSAod2luZG93LmlubmVySGVpZ2h0IC0gdGhpcy52aXJ0dWFsSW1hZ2VEaW1lbnNpb24uaGVpZ2h0KSAvIDI7XG5cbiAgICAgICAgcmV0dXJuICd0cmFuc2xhdGUzZCgnKyBsZWZ0ICsncHgsICcrIHRvcCArJ3B4LCAwKSc7XG4gICAgfVxuXG4gICAgZ2V0IGNvbnRhaW5lclNjYWxlKCl7XG4gICAgICAgIHJldHVybiB0aGlzLnRodW1ibmFpbEltYWdlUG9zaXRpb24ud2lkdGggLyB0aGlzLnZpcnR1YWxJbWFnZURpbWVuc2lvbi53aWR0aDtcbiAgICB9XG5cbiAgICBnZXQgaW1hZ2VBc3BlY3RSYXRpbygpe1xuICAgICAgICByZXR1cm4gdGhpcy50aHVtYm5haWxJbWFnZS5uYXR1cmFsV2lkdGggLyB0aGlzLnRodW1ibmFpbEltYWdlLm5hdHVyYWxIZWlnaHQ7XG4gICAgfVxuXG4gICAgZ2V0IGlzSW1hZ2VMYXJnZXJXaW5kb3coKTpib29sZWFuIHtcbiAgICAgICAgY29uc3QgaW1hZ2VOYXR1cmFsV2lkdGggPSB0aGlzLmxpZ2h0Ym94SW1hZ2VOYXR1cmFsV2lkdGg7XG4gICAgICAgIGNvbnN0IGltYWdlTmF0dXJhbEhlaWdodCA9IHRoaXMubGlnaHRib3hJbWFnZU5hdHVyYWxIZWlnaHQ7XG4gICAgICAgIGNvbnN0IHdpbmRvd1dpZHRoID0gZG9jdW1lbnQuYm9keS5jbGllbnRXaWR0aDtcbiAgICAgICAgY29uc3Qgd2luZG93SGVpZ2h0ID0gd2luZG93LmlubmVySGVpZ2h0O1xuICAgICAgICByZXR1cm4gaW1hZ2VOYXR1cmFsV2lkdGggPiB3aW5kb3dXaWR0aCB8fCBpbWFnZU5hdHVyYWxIZWlnaHQgPiB3aW5kb3dIZWlnaHQ7XG4gICAgfVxuXG4gICAgZ2V0IGlzRmlyc3RJbWFnZSgpe1xuICAgICAgICBpZiAodGhpcy5wcm9wZXJ0aWVzLmxvb3Ape1xuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMuaW5kZXggPT09IDA7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBnZXQgaXNMYXN0SW1hZ2UoKXtcbiAgICAgICAgaWYgKHRoaXMucHJvcGVydGllcy5sb29wKXtcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLmluZGV4ID09PSB0aGlzLmxhdGVzdEltYWdlSW5kZXg7XG4gICAgICAgIH0gICAgICAgIFxuICAgIH1cblxuICAgIGdldCBsYXRlc3RJbWFnZUluZGV4KCl7XG4gICAgICAgIHJldHVybiB0aGlzLmltYWdlcy5sZW5ndGggLSAxO1xuICAgIH1cblxuICAgIGdldCBiYWNrZ3JvdW5kQ29sb3IoKXtcbiAgICAgICAgY29uc3Qgb3BhY2l0eSA9IHRoaXMucHJvcGVydGllcy5iYWNrZ3JvdW5kT3BhY2l0eTtcbiAgICAgICAgY29uc3QgY29sb3IgPSB0aGlzLnByb3BlcnRpZXMuYmFja2dyb3VuZENvbG9yO1xuICAgICAgICBpZiAoY29sb3IgPT09ICdibGFjaycpIHtcbiAgICAgICAgICAgIHJldHVybiAncmdiYSgwLCAwLCAwLCAnICsgb3BhY2l0eSArJyknO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcmV0dXJuICdyZ2JhKDI1NSwgMjU1LCAyNTUsICcgKyBvcGFjaXR5ICsnKSc7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBnZXQgYW5pbWF0aW9uRHVyYXRpb24oKXtcbiAgICAgICAgY29uc3QgYW5pbWF0aW9uRHVyYXRpb24gPSB0aGlzLnByb3BlcnRpZXMuYW5pbWF0aW9uRHVyYXRpb247XG5cbiAgICAgICAgaWYgKHR5cGVvZiBhbmltYXRpb25EdXJhdGlvbiA9PT0gXCJzdHJpbmdcIil7XG4gICAgICAgICAgICByZXR1cm4gTnVtYmVyLnBhcnNlSW50KGFuaW1hdGlvbkR1cmF0aW9uKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHJldHVybiBhbmltYXRpb25EdXJhdGlvbjtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGdldCBhbmltYXRpb25Nb2RlKCl7XG4gICAgICAgIGlmICh0aGlzLmN1cnJJbWFnZUxvYWRpbmdTdGF0ZSA9PT0gJ2Vycm9yJyl7XG4gICAgICAgICAgICByZXR1cm4gJ2RlZmF1bHQnO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB0aGlzLnByb3BlcnRpZXMuYW5pbWF0aW9uTW9kZTtcbiAgICB9XG5cbiAgICBnZXQgYW5pbWF0aW9uVGltaW5nRnVuY3Rpb24oKXtcbiAgICAgICAgcmV0dXJuIHRoaXMucHJvcGVydGllcy5hbmltYXRpb25UaW1pbmdGdW5jdGlvbjtcbiAgICB9XG5cbiAgICBnZXQgY2xvc2VCdXR0b25UZXh0KCl7XG4gICAgICAgIHJldHVybiB0aGlzLnByb3BlcnRpZXMuY2xvc2VCdXR0b25UZXh0O1xuICAgIH1cblxuICAgIGdldCBjb3VudGVyU2VwYXJhdG9yKCl7XG4gICAgICAgIHJldHVybiB0aGlzLnByb3BlcnRpZXMuY291bnRlclNlcGFyYXRvcjtcbiAgICB9XG5cbiAgICBnZXQgY291bnRlcigpe1xuICAgICAgICByZXR1cm4gdGhpcy5jdXJyZW50SW1hZ2VJbmRleCArIDEgKyB0aGlzLmNvdW50ZXJTZXBhcmF0b3IgKyB0aGlzLmltYWdlcy5sZW5ndGg7XG4gICAgfVxuXG4gICAgY29uc3RydWN0b3IocHVibGljIGV2ZW50U2VydmljZTogRXZlbnRTZXJ2aWNlKXtcbiAgICAgICAgdGhpcy5pc01vYmlsZSA9IFV0aWxzLm1vYmlsZUNoZWNrKCk7XG4gICAgfVxuXG4gICAgZW1pdFN0YXRlKHR5cGUsIHN0YXRlKXtcbiAgICAgICAgaWYgKHN0YXRlID09PSAnaW5pdGlhbC12aXJ0dWFsLWltYWdlJyB8fCBcbiAgICAgICAgICAgIHN0YXRlID09PSAnaW5pdGlhbC1zdHlsZXMnKXtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChzdGF0ZSA9PT0gJ2luaXRpYWwtZGVmYXVsdCcgfHwgXG4gICAgICAgICAgICBzdGF0ZSA9PT0gJ2luaXRpYWwtdGh1bWJuYWlsLWltYWdlJyl7XG4gICAgICAgICAgICBzdGF0ZSA9ICdpbml0aWFsJztcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuZXZlbnRTZXJ2aWNlLmVtaXRDaGFuZ2VFdmVudCh7XG4gICAgICAgICAgICB0eXBlOiB0eXBlKyc6JytzdGF0ZVxuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBzZXRTaG93U3RhdGUoc3RhdGU6IFNob3dTdGF0ZSl7XG4gICAgICAgIHRoaXMuc2hvd1N0YXRlID0gc3RhdGU7XG4gICAgICAgIHRoaXMuZW1pdFN0YXRlKCdzaG93LXN0YXRlJywgc3RhdGUpXG4gICAgfVxuXG4gICAgc2V0Q2xvc2luZ1N0YXRlKHN0YXRlOiBDbG9zaW5nU3RhdGUpe1xuICAgICAgICB0aGlzLmNsb3NpbmdTdGF0ZSA9IHN0YXRlOyBcbiAgICAgICAgdGhpcy5lbWl0U3RhdGUoJ2Nsb3Npbmctc3RhdGUnLCBzdGF0ZSk7XG4gICAgfVxuXG4gICAgc2V0QW5pbWF0aW9uRHVyYXRpb24oKXtcbiAgICAgICAgdGhpcy5ob3N0U3R5bGVUcmFuc2l0aW9uID0gJ2JhY2tncm91bmQtY29sb3IgJyt0aGlzLmFuaW1hdGlvbkR1cmF0aW9uKydtcyc7XG4gICAgICAgIHRoaXMuY29udGFpbmVyU3R5bGVzLnRyYW5zaXRpb24gPSAnYWxsICcrdGhpcy5hbmltYXRpb25EdXJhdGlvbisnbXMgJyt0aGlzLmFuaW1hdGlvblRpbWluZ0Z1bmN0aW9uO1xuICAgIH1cblxuICAgIHNldEJhY2tncm91bmRDb2xvcigpe1xuICAgICAgICB0aGlzLmhvc3RTdHlsZUJhY2tncm91bmRDb2xvciA9IHRoaXMuYmFja2dyb3VuZENvbG9yO1xuICAgIH1cblxuICAgIGdldENvbnRhaW5lckhlaWdodCgpOnN0cmluZyB7XG4gICAgICAgIHJldHVybiB0aGlzLnRodW1ibmFpbEltYWdlUG9zaXRpb24uaGVpZ2h0IC8gdGhpcy5jb250YWluZXJTY2FsZSArICdweCc7XG4gICAgfVxuXG4gICAgc2hvd1RodW1ibmFpbEltYWdlKCkge1xuICAgICAgICB0aGlzLnRodW1ibmFpbEltYWdlLnN0eWxlLm9wYWNpdHkgPSAnJztcbiAgICB9XG5cbiAgICBoaWRlVGh1bWJuYWlsSW1hZ2UoKXtcbiAgICAgICAgdGhpcy50aHVtYm5haWxJbWFnZS5zdHlsZS5vcGFjaXR5ID0gMDtcbiAgICB9XG5cbiAgICB1cGRhdGVUaHVtYm5haWxQb3NpdGlvbigpe1xuICAgICAgICB0aGlzLmNvbnRhaW5lclN0eWxlcy50cmFuc2Zvcm0gPSB0aGlzLmNvbnRhaW5lckluaXRpYWxQb3NpdGlvbjtcbiAgICB9XG59ICJdfQ== | ||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGlnaHRib3gtY29tbW9uLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BjcnlzdGFsdWkvYW5ndWxhci1saWdodGJveC8iLCJzb3VyY2VzIjpbImxpYi9saWdodGJveC1jb21tb24uY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7QUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxXQUFXLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUdyRixPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLFNBQVMsQ0FBQztBQU9oQyxNQUFNLE9BQU8sdUJBQXVCOzs7O0lBbU1oQyxZQUFtQixZQUEwQjtRQUExQixpQkFBWSxHQUFaLFlBQVksQ0FBYztRQWpNN0Msc0JBQWlCLEdBQVcsQ0FBQyxDQUFDO1FBQzlCLHNCQUFpQixHQUFHLENBQUMsQ0FBQztRQUd0QixvQkFBZSxHQUFRO1lBQ25CLFVBQVUsRUFBRSxFQUFFO1lBQ2QsU0FBUyxFQUFFLEVBQUU7WUFDYixLQUFLLEVBQUUsRUFBRTtZQUNULE1BQU0sRUFBRSxFQUFFO1lBQ1YsT0FBTyxFQUFFLEVBQUU7U0FDZCxDQUFDO1FBQ0YsMEJBQXFCLEdBQW9ELFlBQVksQ0FBQztRQXVMbEYsSUFBSSxDQUFDLFFBQVEsR0FBRyxLQUFLLENBQUMsV0FBVyxFQUFFLENBQUM7SUFDeEMsQ0FBQzs7OztJQTNLRCxJQUFJLGFBQWE7UUFDYixJQUFJLElBQUksQ0FBQyxRQUFRLElBQUksSUFBSSxDQUFDLFVBQVUsQ0FBQyxhQUFhLEVBQUM7O2tCQUN6QyxjQUFjLEdBQUcsQ0FBQyxhQUFhLEVBQUUsY0FBYyxFQUFFLFlBQVksQ0FBQztZQUNwRSxPQUFPLElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLGlCQUFpQixDQUFDLENBQUMsQ0FBQztTQUN2RDthQUFNO1lBQ0gsT0FB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bkQsNkNBQStDOztJQUMvQyxpREFBdUQ7O0lBMkszQywrQ0FBaUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIElucHV0LCBIb3N0QmluZGluZywgVmlld0NoaWxkLCBFbGVtZW50UmVmIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IExpZ2h0Ym94RGF0YSwgUHJvcGVydGllcyB9IGZyb20gJy4vaW50ZXJmYWNlcyc7XHJcbmltcG9ydCB7IFNob3dTdGF0ZSwgQ2xvc2luZ1N0YXRlIH0gZnJvbSAnLi90eXBlcyc7XHJcbmltcG9ydCB7IEV2ZW50U2VydmljZSB9IGZyb20gJy4vZXZlbnQuc2VydmljZSc7XHJcbmltcG9ydCB7IFV0aWxzIH0gZnJvbSAnLi91dGlscyc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICAgIHNlbGVjdG9yOiAnbGlnaHRib3gtY29tbW9uJyxcclxuICAgIHRlbXBsYXRlOiAnJ1xyXG59KVxyXG5cclxuZXhwb3J0IGNsYXNzIExpZ2h0Ym94Q29tbW9uQ29tcG9uZW50IHtcclxuXHJcbiAgICBjdXJyZW50SW1hZ2VJbmRleDogbnVtYmVyID0gMDtcclxuICAgIGluZGV4Q3VycmVudFNsaWRlID0gMTtcclxuICAgIHNob3dTdGF0ZTogU2hvd1N0YXRlO1xyXG4gICAgY2xvc2luZ1N0YXRlOiBDbG9zaW5nU3RhdGU7XHJcbiAgICBjb250YWluZXJTdHlsZXM6IGFueSA9IHtcclxuICAgICAgICB0cmFuc2l0aW9uOiAnJyxcclxuICAgICAgICB0cmFuc2Zvcm06ICcnLFxyXG4gICAgICAgIHdpZHRoOiAnJyxcclxuICAgICAgICBoZWlnaHQ6ICcnLFxyXG4gICAgICAgIG9wYWNpdHk6ICcnXHJcbiAgICB9O1xyXG4gICAgY3VyckltYWdlTG9hZGluZ1N0YXRlOiAnbm90LWxvYWRlZCcgfCAnbG9hZGluZycgfCAndXBsb2FkZWQnIHwgJ2Vycm9yJyA9ICdub3QtbG9hZGVkJztcclxuICAgIGlzTW9iaWxlOiBib29sZWFuO1xyXG5cclxuICAgIEBJbnB1dCgpIGxpZ2h0Ym94RGF0YTogTGlnaHRib3hEYXRhO1xyXG5cclxuICAgIEBIb3N0QmluZGluZygnc3R5bGUuYmFja2dyb3VuZENvbG9yJykgaG9zdFN0eWxlQmFja2dyb3VuZENvbG9yOiBzdHJpbmc7XHJcbiAgICBASG9zdEJpbmRpbmcoJ3N0eWxlLnRyYW5zaXRpb24nKSBob3N0U3R5bGVUcmFuc2l0aW9uOiBzdHJpbmc7XHJcblxyXG4gICAgQFZpZXdDaGlsZCgnaW1hZ2VGaXJzdCcpIF9pbWFnZUZpcnN0OiBFbGVtZW50UmVmO1xyXG4gICAgQFZpZXdDaGlsZCgnaW1hZ2VTZWNvbmQnKSBfaW1hZ2VTZWNvbmQ6IEVsZW1lbnRSZWY7XHJcbiAgICBAVmlld0NoaWxkKCdpbWFnZUxhc3QnKSBfaW1hZ2VMYXN0OiBFbGVtZW50UmVmO1xyXG4gICAgQFZpZXdDaGlsZCgnbGlnaHRib3hJbWFnZScpIF9saWdodGJveEltYWdlOiBFbGVtZW50UmVmO1xyXG5cclxuICAgIGdldCBsaWdodGJveEltYWdlKCl7XHJcbiAgICAgICAgaWYgKHRoaXMuaXNNb2JpbGUgJiYgdGhpcy5wcm9wZXJ0aWVzLmdlc3R1cmVFbmFibGUpe1xyXG4gICAgICAgICAgICBjb25zdCBpbWFnZVBvc2l0aW9ucyA9IFsnX2ltYWdlRmlyc3QnLCAnX2ltYWdlU2Vjb25kJywgJ19pbWFnZUxhc3QnXTtcclxuICAgICAgICAgICAgcmV0dXJuIHRoaXNbaW1hZ2VQb3NpdGlvbnNbdGhpcy5pbmRleEN1cnJlbnRTbGlkZV1dO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIHJldHVybiB0aGlzLl9saWdodGJveEltYWdlO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBnZXQgbGlnaHRib3hJbWFnZUVsZW1lbnQoKXtcclxuICAgICAgICBpZiAodGhpcy5saWdodGJveEltYWdlKXtcclxuICAgICAgICAgICAgcmV0dXJuIHRoaXMubGlnaHRib3hJbWFnZS5uYXRpdmVFbGVtZW50O1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBnZXQgbGlnaHRib3hJbWFnZU5hdHVyYWxIZWlnaHQoKXtcclxuICAgICAgICBpZiAodGhpcy5saWdodGJveEltYWdlRWxlbWVudCl7XHJcbiAgICAgICAgICAgIHJldHVybiB0aGlzLmxpZ2h0Ym94SW1hZ2VFbGVtZW50Lm5hdHVyYWxIZWlnaHQ7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIGdldCBsaWdodGJveEltYWdlTmF0dXJhbFdpZHRoKCl7XHJcbiAgICAgICAgaWYgKHRoaXMubGlnaHRib3hJbWFnZUVsZW1lbnQpe1xyXG4gICAgICAgICAgICByZXR1cm4gdGhpcy5saWdodGJveEltYWdlRWxlbWVudC5uYXR1cmFsV2lkdGg7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIGdldCBpbmRleCgpe1xyXG4gICAgICAgIHJldHVybiB0aGlzLmN1cnJlbnRJbWFnZUluZGV4O1xyXG4gICAgfVxyXG5cclxuICAgIGdldCBwcm9wZXJ0aWVzKCl7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMubGlnaHRib3hEYXRhLnByb3BlcnRpZXM7XHJcbiAgICB9XHJcblxyXG4gICAgZ2V0IGltYWdlcygpe1xyXG4gICAgICAgIHJldHVybiB0aGlzLmxpZ2h0Ym94RGF0YS5pbWFnZXMgfHwgW3RoaXMubGlnaHRib3hEYXRhLmltYWdlXTtcclxuICAgIH1cclxuXHJcbiAgICBnZXQgdGh1bWJuYWlsSW1hZ2UoKXtcclxuICAgICAgICByZXR1cm4gdGhpcy5pbWFnZXNbdGhpcy5jdXJyZW50SW1hZ2VJbmRleF0ubmF0aXZlRWxlbWVudDtcclxuICAgIH1cclxuXHJcbiAgICBnZXQgdGh1bWJuYWlsSW1hZ2VQb3NpdGlvbigpe1xyXG4gICAgICAgIHJldHVybiB0aGlzLnRodW1ibmFpbEltYWdlLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xyXG4gICAgfVxyXG5cclxuICAgIC8vIEltYWdlIHNpemUgaWYgaXQgaXMgbGFyZ2VyIHRoYW4gdGhlIHdpbmRvdyBzaXplXHJcbiAgICBnZXQgdmlydHVhbEltYWdlRGltZW5zaW9uKCl7XHJcbiAgICAgICAgbGV0IGhlaWdodCA9IHRoaXMubGlnaHRib3hJbWFnZU5hdHVyYWxIZWlnaHQ7XHJcbiAgICAgICAgbGV0IHdpZHRoID0gaGVpZ2h0ICogdGhpcy5pbWFnZUFzcGVjdFJhdGlvO1xyXG4gICAgICAgIGNvbnN0IHdpbmRvd1dpZHRoID0gZG9jdW1lbnQuYm9keS5jbGllbnRXaWR0aDtcclxuICAgICAgICBjb25zdCB3aW5kb3dIZWlnaHQgPSB3aW5kb3cuaW5uZXJIZWlnaHQ7XHJcblxyXG4gICAgICAgIGlmICh0aGlzLmlzSW1hZ2VMYXJnZXJXaW5kb3cpe1xyXG4gICAgICAgICAgICBpZiAoaGVpZ2h0ID4gd2luZG93SGVpZ2h0KXtcclxuICAgICAgICAgICAgICAgIGhlaWdodCA9IHdpbmRvd0hlaWdodDtcclxuICAgICAgICAgICAgICAgIHdpZHRoID0gaGVpZ2h0ICogdGhpcy5pbWFnZUFzcGVjdFJhdGlvO1xyXG4gICAgICAgICAgICB9IFxyXG5cclxuICAgICAgICAgICAgaWYgKHdpZHRoID4gd2luZG93V2lkdGgpe1xyXG4gICAgICAgICAgICAgICAgd2lkdGggPSB3aW5kb3dXaWR0aDtcclxuICAgICAgICAgICAgICAgIGhlaWdodCA9IHdpZHRoIC8gdGhpcy5pbWFnZUFzcGVjdFJhdGlvO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgd2lkdGggPSB0aGlzLmxpZ2h0Ym94SW1hZ2VOYXR1cmFsV2lkdGg7XHJcbiAgICAgICAgICAgIGhlaWdodCA9IHRoaXMubGlnaHRib3hJbWFnZU5hdHVyYWxIZWlnaHQ7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBpZiAod2lkdGggPT09IDAgfHwgTnVtYmVyLnBhcnNlSW50KGhlaWdodCkgPT09IDApe1xyXG4gICAgICAgICAgICByZXR1cm4ge3dpZHRoOiAyMDAsIGhlaWdodDogMjAwfTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHJldHVybiB7d2lkdGgsIGhlaWdodH07XHJcbiAgICB9XHJcblxyXG4gICAgZ2V0IGNvbnRhaW5lckluaXRpYWxQb3NpdGlvbigpe1xyXG4gICAgICAgIGNvbnN0IHNjYWxlID0gICh0aGlzLnNob3dTdGF0ZSA9PT0gJ2luaXRpYWwtdGh1bWJuYWlsLWltYWdlJykgPyAxIDogdGhpcy5jb250YWluZXJTY2FsZTsgXHJcbiAgICAgICAgY29uc3QgdG9wID0gdGhpcy50aHVtYm5haWxJbWFnZVBvc2l0aW9uLnRvcDtcclxuICAgICAgICBjb25zdCBsZWZ0ID0gdGhpcy50aHVtYm5haWxJbWFnZVBvc2l0aW9uLmxlZnQ7XHJcbiAgICAgICAgcmV0dXJuICdtYXRyaXgoJysgc2NhbGUgKycsIDAsIDAsICcrIHNjYWxlICsnLCcrIGxlZnQgKycsJysgdG9wICsnKSc7XHJcbiAgICB9XHJcblxyXG4gICAgZ2V0IGNvbnRhaW5lckZ1bGxzY3JlZW5Qb3NpdGlvbigpe1xyXG4gICAgICAgIGNvbnN0IGxlZnQgPSAoZG9jdW1lbnQuYm9keS5jbGllbnRXaWR0aCAtIHRoaXMudmlydHVhbEltYWdlRGltZW5zaW9uLndpZHRoKSAvIDI7XHJcbiAgICAgICAgY29uc3QgdG9wID0gKHdpbmRvdy5pbm5lckhlaWdodCAtIHRoaXMudmlydHVhbEltYWdlRGltZW5zaW9uLmhlaWdodCkgLyAyO1xyXG5cclxuICAgICAgICByZXR1cm4gJ3RyYW5zbGF0ZTNkKCcrIGxlZnQgKydweCwgJysgdG9wICsncHgsIDApJztcclxuICAgIH1cclxuXHJcbiAgICBnZXQgY29udGFpbmVyU2NhbGUoKXtcclxuICAgICAgICByZXR1cm4gdGhpcy50aHVtYm5haWxJbWFnZVBvc2l0aW9uLndpZHRoIC8gdGhpcy52aXJ0dWFsSW1hZ2VEaW1lbnNpb24ud2lkdGg7XHJcbiAgICB9XHJcblxyXG4gICAgZ2V0IGltYWdlQXNwZWN0UmF0aW8oKXtcclxuICAgICAgICByZXR1cm4gdGhpcy50aHVtYm5haWxJbWFnZS5uYXR1cmFsV2lkdGggLyB0aGlzLnRodW1ibmFpbEltYWdlLm5hdHVyYWxIZWlnaHQ7XHJcbiAgICB9XHJcblxyXG4gICAgZ2V0IGlzSW1hZ2VMYXJnZXJXaW5kb3coKTpib29sZWFuIHtcclxuICAgICAgICBjb25zdCBpbWFnZU5hdHVyYWxXaWR0aCA9IHRoaXMubGlnaHRib3hJbWFnZU5hdHVyYWxXaWR0aDtcclxuICAgICAgICBjb25zdCBpbWFnZU5hdHVyYWxIZWlnaHQgPSB0aGlzLmxpZ2h0Ym94SW1hZ2VOYXR1cmFsSGVpZ2h0O1xyXG4gICAgICAgIGNvbnN0IHdpbmRvd1dpZHRoID0gZG9jdW1lbnQuYm9keS5jbGllbnRXaWR0aDtcclxuICAgICAgICBjb25zdCB3aW5kb3dIZWlnaHQgPSB3aW5kb3cuaW5uZXJIZWlnaHQ7XHJcbiAgICAgICAgcmV0dXJuIGltYWdlTmF0dXJhbFdpZHRoID4gd2luZG93V2lkdGggfHwgaW1hZ2VOYXR1cmFsSGVpZ2h0ID4gd2luZG93SGVpZ2h0O1xyXG4gICAgfVxyXG5cclxuICAgIGdldCBpc0ZpcnN0SW1hZ2UoKXtcclxuICAgICAgICBpZiAodGhpcy5wcm9wZXJ0aWVzLmxvb3Ape1xyXG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgcmV0dXJuIHRoaXMuaW5kZXggPT09IDA7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIGdldCBpc0xhc3RJbWFnZSgpe1xyXG4gICAgICAgIGlmICh0aGlzLnByb3BlcnRpZXMubG9vcCl7XHJcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICByZXR1cm4gdGhpcy5pbmRleCA9PT0gdGhpcy5sYXRlc3RJbWFnZUluZGV4O1xyXG4gICAgICAgIH0gICAgICAgIFxyXG4gICAgfVxyXG5cclxuICAgIGdldCBsYXRlc3RJbWFnZUluZGV4KCl7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuaW1hZ2VzLmxlbmd0aCAtIDE7XHJcbiAgICB9XHJcblxyXG4gICAgZ2V0IGJhY2tncm91bmRDb2xvcigpe1xyXG4gICAgICAgIGNvbnN0IG9wYWNpdHkgPSB0aGlzLnByb3BlcnRpZXMuYmFja2dyb3VuZE9wYWNpdHk7XHJcbiAgICAgICAgY29uc3QgY29sb3IgPSB0aGlzLnByb3BlcnRpZXMuYmFja2dyb3VuZENvbG9yO1xyXG4gICAgICAgIGlmIChjb2xvciA9PT0gJ2JsYWNrJykge1xyXG4gICAgICAgICAgICByZXR1cm4gJ3JnYmEoMCwgMCwgMCwgJyArIG9wYWNpdHkgKycpJztcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICByZXR1cm4gJ3JnYmEoMjU1LCAyNTUsIDI1NSwgJyArIG9wYWNpdHkgKycpJztcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgZ2V0IGFuaW1hdGlvbkR1cmF0aW9uKCl7XHJcbiAgICAgICAgY29uc3QgYW5pbWF0aW9uRHVyYXRpb24gPSB0aGlzLnByb3BlcnRpZXMuYW5pbWF0aW9uRHVyYXRpb247XHJcblxyXG4gICAgICAgIGlmICh0eXBlb2YgYW5pbWF0aW9uRHVyYXRpb24gPT09IFwic3RyaW5nXCIpe1xyXG4gICAgICAgICAgICByZXR1cm4gTnVtYmVyLnBhcnNlSW50KGFuaW1hdGlvbkR1cmF0aW9uKTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICByZXR1cm4gYW5pbWF0aW9uRHVyYXRpb247XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIGdldCBhbmltYXRpb25Nb2RlKCl7XHJcbiAgICAgICAgaWYgKHRoaXMuY3VyckltYWdlTG9hZGluZ1N0YXRlID09PSAnZXJyb3InKXtcclxuICAgICAgICAgICAgcmV0dXJuICdkZWZhdWx0JztcclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIHRoaXMucHJvcGVydGllcy5hbmltYXRpb25Nb2RlO1xyXG4gICAgfVxyXG5cclxuICAgIGdldCBhbmltYXRpb25UaW1pbmdGdW5jdGlvbigpe1xyXG4gICAgICAgIHJldHVybiB0aGlzLnByb3BlcnRpZXMuYW5pbWF0aW9uVGltaW5nRnVuY3Rpb247XHJcbiAgICB9XHJcblxyXG4gICAgZ2V0IGNsb3NlQnV0dG9uVGV4dCgpe1xyXG4gICAgICAgIHJldHVybiB0aGlzLnByb3BlcnRpZXMuY2xvc2VCdXR0b25UZXh0O1xyXG4gICAgfVxyXG5cclxuICAgIGdldCBjb3VudGVyU2VwYXJhdG9yKCl7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMucHJvcGVydGllcy5jb3VudGVyU2VwYXJhdG9yO1xyXG4gICAgfVxyXG5cclxuICAgIGdldCBjb3VudGVyKCl7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuY3VycmVudEltYWdlSW5kZXggKyAxICsgdGhpcy5jb3VudGVyU2VwYXJhdG9yICsgdGhpcy5pbWFnZXMubGVuZ3RoO1xyXG4gICAgfVxyXG5cclxuICAgIGNvbnN0cnVjdG9yKHB1YmxpYyBldmVudFNlcnZpY2U6IEV2ZW50U2VydmljZSl7XHJcbiAgICAgICAgdGhpcy5pc01vYmlsZSA9IFV0aWxzLm1vYmlsZUNoZWNrKCk7XHJcbiAgICB9XHJcblxyXG4gICAgZW1pdFN0YXRlKHR5cGUsIHN0YXRlKXtcclxuICAgICAgICBpZiAoc3RhdGUgPT09ICdpbml0aWFsLXZpcnR1YWwtaW1hZ2UnIHx8IFxyXG4gICAgICAgICAgICBzdGF0ZSA9PT0gJ2luaXRpYWwtc3R5bGVzJyl7XHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGlmIChzdGF0ZSA9PT0gJ2luaXRpYWwtZGVmYXVsdCcgfHwgXHJcbiAgICAgICAgICAgIHN0YXRlID09PSAnaW5pdGlhbC10aHVtYm5haWwtaW1hZ2UnKXtcclxuICAgICAgICAgICAgc3RhdGUgPSAnaW5pdGlhbCc7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICB0aGlzLmV2ZW50U2VydmljZS5lbWl0Q2hhbmdlRXZlbnQoe1xyXG4gICAgICAgICAgICB0eXBlOiB0eXBlKyc6JytzdGF0ZVxyXG4gICAgICAgIH0pO1xyXG4gICAgfVxyXG5cclxuICAgIHNldFNob3dTdGF0ZShzdGF0ZTogU2hvd1N0YXRlKXtcclxuICAgICAgICB0aGlzLnNob3dTdGF0ZSA9IHN0YXRlO1xyXG4gICAgICAgIHRoaXMuZW1pdFN0YXRlKCdzaG93LXN0YXRlJywgc3RhdGUpXHJcbiAgICB9XHJcblxyXG4gICAgc2V0Q2xvc2luZ1N0YXRlKHN0YXRlOiBDbG9zaW5nU3RhdGUpe1xyXG4gICAgICAgIHRoaXMuY2xvc2luZ1N0YXRlID0gc3RhdGU7IFxyXG4gICAgICAgIHRoaXMuZW1pdFN0YXRlKCdjbG9zaW5nLXN0YXRlJywgc3RhdGUpO1xyXG4gICAgfVxyXG5cclxuICAgIHNldEFuaW1hdGlvbkR1cmF0aW9uKCl7XHJcbiAgICAgICAgdGhpcy5ob3N0U3R5bGVUcmFuc2l0aW9uID0gJ2JhY2tncm91bmQtY29sb3IgJyt0aGlzLmFuaW1hdGlvbkR1cmF0aW9uKydtcyc7XHJcbiAgICAgICAgdGhpcy5jb250YWluZXJTdHlsZXMudHJhbnNpdGlvbiA9ICdhbGwgJyt0aGlzLmFuaW1hdGlvbkR1cmF0aW9uKydtcyAnK3RoaXMuYW5pbWF0aW9uVGltaW5nRnVuY3Rpb247XHJcbiAgICB9XHJcblxyXG4gICAgc2V0QmFja2dyb3VuZENvbG9yKCl7XHJcbiAgICAgICAgdGhpcy5ob3N0U3R5bGVCYWNrZ3JvdW5kQ29sb3IgPSB0aGlzLmJhY2tncm91bmRDb2xvcjtcclxuICAgIH1cclxuXHJcbiAgICBnZXRDb250YWluZXJIZWlnaHQoKTpzdHJpbmcge1xyXG4gICAgICAgIHJldHVybiB0aGlzLnRodW1ibmFpbEltYWdlUG9zaXRpb24uaGVpZ2h0IC8gdGhpcy5jb250YWluZXJTY2FsZSArICdweCc7XHJcbiAgICB9XHJcblxyXG4gICAgc2hvd1RodW1ibmFpbEltYWdlKCkge1xyXG4gICAgICAgIHRoaXMudGh1bWJuYWlsSW1hZ2Uuc3R5bGUub3BhY2l0eSA9ICcnO1xyXG4gICAgfVxyXG5cclxuICAgIGhpZGVUaHVtYm5haWxJbWFnZSgpe1xyXG4gICAgICAgIHRoaXMudGh1bWJuYWlsSW1hZ2Uuc3R5bGUub3BhY2l0eSA9IDA7XHJcbiAgICB9XHJcblxyXG4gICAgdXBkYXRlVGh1bWJuYWlsUG9zaXRpb24oKXtcclxuICAgICAgICB0aGlzLmNvbnRhaW5lclN0eWxlcy50cmFuc2Zvcm0gPSB0aGlzLmNvbnRhaW5lckluaXRpYWxQb3NpdGlvbjtcclxuICAgIH1cclxufSBcclxuIl19 |
@@ -517,2 +517,2 @@ /** | ||
} | ||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGlnaHRib3gtY29tbW9uLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BjcnlzdGFsdWkvYW5ndWxhci1saWdodGJveC8iLCJzb3VyY2VzIjpbImxpYi9saWdodGJveC1jb21tb24uY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7QUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxXQUFXLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUdyRixPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLFNBQVMsQ0FBQztBQUVoQztJQXdNSSxpQ0FBbUIsWUFBMEI7UUFBMUIsaUJBQVksR0FBWixZQUFZLENBQWM7UUFqTTdDLHNCQUFpQixHQUFXLENBQUMsQ0FBQztRQUM5QixzQkFBaUIsR0FBRyxDQUFDLENBQUM7UUFHdEIsb0JBQWUsR0FBUTtZQUNuQixVQUFVLEVBQUUsRUFBRTtZQUNkLFNBQVMsRUFBRSxFQUFFO1lBQ2IsS0FBSyxFQUFFLEVBQUU7WUFDVCxNQUFNLEVBQUUsRUFBRTtZQUNWLE9BQU8sRUFBRSxFQUFFO1NBQ2QsQ0FBQztRQUNGLDBCQUFxQixHQUFvRCxZQUFZLENBQUM7UUF1TGxGLElBQUksQ0FBQyxRQUFRLEdBQUcsS0FBSyxDQUFDLFdBQVcsRUFBRSxDQUFDO0lBQ3hDLENBQUM7SUEzS0Qsc0JBQUksa0RBQWE7Ozs7UUFBakI7WUFDSSxJQUFJLElBQUksQ0FBQyxRQUFRLElBQUksSUFBSSxDQUFDLFVBQVUsQ0FBQyxhQUFhLEVBQUM7O29CQUN6QyxjQUFjLEdBQUcsQ0FBQyxhQUFhLEVBQUUsY0FBYyxFQUFFLFlBQVksQ0FBQztnQkFDcEUsT0FBTyxJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDLENBQUM7YUFDdkQ7aUJBQU07Z0JBQ0gsT0FBTyxJQUFJLENB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LElBQUksQ0FBQyxlQUFlLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQyx3QkFBd0IsQ0FBQztJQUNuRSxDQUFDOztnQkE3UEosU0FBUyxTQUFDO29CQUNQLFFBQVEsRUFBRSxpQkFBaUI7b0JBQzNCLFFBQVEsRUFBRSxFQUFFO2lCQUNmOzs7O2dCQU5RLFlBQVk7OzsrQkF3QmhCLEtBQUs7MkNBRUwsV0FBVyxTQUFDLHVCQUF1QjtzQ0FDbkMsV0FBVyxTQUFDLGtCQUFrQjs4QkFFOUIsU0FBUyxTQUFDLFlBQVk7K0JBQ3RCLFNBQVMsU0FBQyxhQUFhOzZCQUN2QixTQUFTLFNBQUMsV0FBVztpQ0FDckIsU0FBUyxTQUFDLGVBQWU7O0lBaU85Qiw4QkFBQztDQUFBLEFBOVBELElBOFBDO1NBelBZLHVCQUF1Qjs7O0lBRWhDLG9EQUE4Qjs7SUFDOUIsb0RBQXNCOztJQUN0Qiw0Q0FBcUI7O0lBQ3JCLCtDQUEyQjs7SUFDM0Isa0RBTUU7O0lBQ0Ysd0RBQXNGOztJQUN0RiwyQ0FBa0I7O0lBRWxCLCtDQUFvQzs7SUFFcEMsMkRBQXVFOztJQUN2RSxzREFBNkQ7O0lBRTdELDhDQUFpRDs7SUFDakQsK0NBQW1EOztJQUNuRCw2Q0FBK0M7O0lBQy9DLGlEQUF1RDs7SUEySzNDLCtDQUFpQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQsIEhvc3RCaW5kaW5nLCBWaWV3Q2hpbGQsIEVsZW1lbnRSZWYgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IExpZ2h0Ym94RGF0YSB9IGZyb20gJy4vaW50ZXJmYWNlcyc7XG5pbXBvcnQgeyBTaG93U3RhdGUsIENsb3NpbmdTdGF0ZSB9IGZyb20gJy4vdHlwZXMnO1xuaW1wb3J0IHsgRXZlbnRTZXJ2aWNlIH0gZnJvbSAnLi9ldmVudC5zZXJ2aWNlJztcbmltcG9ydCB7IFV0aWxzIH0gZnJvbSAnLi91dGlscyc7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnbGlnaHRib3gtY29tbW9uJyxcbiAgICB0ZW1wbGF0ZTogJydcbn0pXG5cbmV4cG9ydCBjbGFzcyBMaWdodGJveENvbW1vbkNvbXBvbmVudCB7XG5cbiAgICBjdXJyZW50SW1hZ2VJbmRleDogbnVtYmVyID0gMDtcbiAgICBpbmRleEN1cnJlbnRTbGlkZSA9IDE7XG4gICAgc2hvd1N0YXRlOiBTaG93U3RhdGU7XG4gICAgY2xvc2luZ1N0YXRlOiBDbG9zaW5nU3RhdGU7XG4gICAgY29udGFpbmVyU3R5bGVzOiBhbnkgPSB7XG4gICAgICAgIHRyYW5zaXRpb246ICcnLFxuICAgICAgICB0cmFuc2Zvcm06ICcnLFxuICAgICAgICB3aWR0aDogJycsXG4gICAgICAgIGhlaWdodDogJycsXG4gICAgICAgIG9wYWNpdHk6ICcnXG4gICAgfTtcbiAgICBjdXJySW1hZ2VMb2FkaW5nU3RhdGU6ICdub3QtbG9hZGVkJyB8ICdsb2FkaW5nJyB8ICd1cGxvYWRlZCcgfCAnZXJyb3InID0gJ25vdC1sb2FkZWQnO1xuICAgIGlzTW9iaWxlOiBib29sZWFuO1xuXG4gICAgQElucHV0KCkgbGlnaHRib3hEYXRhOiBMaWdodGJveERhdGE7XG5cbiAgICBASG9zdEJpbmRpbmcoJ3N0eWxlLmJhY2tncm91bmRDb2xvcicpIGhvc3RTdHlsZUJhY2tncm91bmRDb2xvcjogc3RyaW5nO1xuICAgIEBIb3N0QmluZGluZygnc3R5bGUudHJhbnNpdGlvbicpIGhvc3RTdHlsZVRyYW5zaXRpb246IHN0cmluZztcblxuICAgIEBWaWV3Q2hpbGQoJ2ltYWdlRmlyc3QnKSBfaW1hZ2VGaXJzdDogRWxlbWVudFJlZjtcbiAgICBAVmlld0NoaWxkKCdpbWFnZVNlY29uZCcpIF9pbWFnZVNlY29uZDogRWxlbWVudFJlZjtcbiAgICBAVmlld0NoaWxkKCdpbWFnZUxhc3QnKSBfaW1hZ2VMYXN0OiBFbGVtZW50UmVmO1xuICAgIEBWaWV3Q2hpbGQoJ2xpZ2h0Ym94SW1hZ2UnKSBfbGlnaHRib3hJbWFnZTogRWxlbWVudFJlZjtcblxuICAgIGdldCBsaWdodGJveEltYWdlKCl7XG4gICAgICAgIGlmICh0aGlzLmlzTW9iaWxlICYmIHRoaXMucHJvcGVydGllcy5nZXN0dXJlRW5hYmxlKXtcbiAgICAgICAgICAgIGNvbnN0IGltYWdlUG9zaXRpb25zID0gWydfaW1hZ2VGaXJzdCcsICdfaW1hZ2VTZWNvbmQnLCAnX2ltYWdlTGFzdCddO1xuICAgICAgICAgICAgcmV0dXJuIHRoaXNbaW1hZ2VQb3NpdGlvbnNbdGhpcy5pbmRleEN1cnJlbnRTbGlkZV1dO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMuX2xpZ2h0Ym94SW1hZ2U7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBnZXQgbGlnaHRib3hJbWFnZUVsZW1lbnQoKXtcbiAgICAgICAgaWYgKHRoaXMubGlnaHRib3hJbWFnZSl7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5saWdodGJveEltYWdlLm5hdGl2ZUVsZW1lbnQ7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBnZXQgbGlnaHRib3hJbWFnZU5hdHVyYWxIZWlnaHQoKXtcbiAgICAgICAgaWYgKHRoaXMubGlnaHRib3hJbWFnZUVsZW1lbnQpe1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMubGlnaHRib3hJbWFnZUVsZW1lbnQubmF0dXJhbEhlaWdodDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGdldCBsaWdodGJveEltYWdlTmF0dXJhbFdpZHRoKCl7XG4gICAgICAgIGlmICh0aGlzLmxpZ2h0Ym94SW1hZ2VFbGVtZW50KXtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLmxpZ2h0Ym94SW1hZ2VFbGVtZW50Lm5hdHVyYWxXaWR0aDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGdldCBpbmRleCgpe1xuICAgICAgICByZXR1cm4gdGhpcy5jdXJyZW50SW1hZ2VJbmRleDtcbiAgICB9XG5cbiAgICBnZXQgcHJvcGVydGllcygpe1xuICAgICAgICByZXR1cm4gdGhpcy5saWdodGJveERhdGEucHJvcGVydGllcztcbiAgICB9XG5cbiAgICBnZXQgaW1hZ2VzKCl7XG4gICAgICAgIHJldHVybiB0aGlzLmxpZ2h0Ym94RGF0YS5pbWFnZXMgfHwgW3RoaXMubGlnaHRib3hEYXRhLmltYWdlXTtcbiAgICB9XG5cbiAgICBnZXQgdGh1bWJuYWlsSW1hZ2UoKXtcbiAgICAgICAgcmV0dXJuIHRoaXMuaW1hZ2VzW3RoaXMuY3VycmVudEltYWdlSW5kZXhdLm5hdGl2ZUVsZW1lbnQ7XG4gICAgfVxuXG4gICAgZ2V0IHRodW1ibmFpbEltYWdlUG9zaXRpb24oKXtcbiAgICAgICAgcmV0dXJuIHRoaXMudGh1bWJuYWlsSW1hZ2UuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XG4gICAgfVxuXG4gICAgLy8gSW1hZ2Ugc2l6ZSBpZiBpdCBpcyBsYXJnZXIgdGhhbiB0aGUgd2luZG93IHNpemVcbiAgICBnZXQgdmlydHVhbEltYWdlRGltZW5zaW9uKCl7XG4gICAgICAgIGxldCBoZWlnaHQgPSB0aGlzLmxpZ2h0Ym94SW1hZ2VOYXR1cmFsSGVpZ2h0O1xuICAgICAgICBsZXQgd2lkdGggPSBoZWlnaHQgKiB0aGlzLmltYWdlQXNwZWN0UmF0aW87XG4gICAgICAgIGNvbnN0IHdpbmRvd1dpZHRoID0gZG9jdW1lbnQuYm9keS5jbGllbnRXaWR0aDtcbiAgICAgICAgY29uc3Qgd2luZG93SGVpZ2h0ID0gd2luZG93LmlubmVySGVpZ2h0O1xuXG4gICAgICAgIGlmICh0aGlzLmlzSW1hZ2VMYXJnZXJXaW5kb3cpe1xuICAgICAgICAgICAgaWYgKGhlaWdodCA+IHdpbmRvd0hlaWdodCl7XG4gICAgICAgICAgICAgICAgaGVpZ2h0ID0gd2luZG93SGVpZ2h0O1xuICAgICAgICAgICAgICAgIHdpZHRoID0gaGVpZ2h0ICogdGhpcy5pbWFnZUFzcGVjdFJhdGlvO1xuICAgICAgICAgICAgfSBcblxuICAgICAgICAgICAgaWYgKHdpZHRoID4gd2luZG93V2lkdGgpe1xuICAgICAgICAgICAgICAgIHdpZHRoID0gd2luZG93V2lkdGg7XG4gICAgICAgICAgICAgICAgaGVpZ2h0ID0gd2lkdGggLyB0aGlzLmltYWdlQXNwZWN0UmF0aW87XG4gICAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB3aWR0aCA9IHRoaXMubGlnaHRib3hJbWFnZU5hdHVyYWxXaWR0aDtcbiAgICAgICAgICAgIGhlaWdodCA9IHRoaXMubGlnaHRib3hJbWFnZU5hdHVyYWxIZWlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAod2lkdGggPT09IDAgfHwgTnVtYmVyLnBhcnNlSW50KGhlaWdodCkgPT09IDApe1xuICAgICAgICAgICAgcmV0dXJuIHt3aWR0aDogMjAwLCBoZWlnaHQ6IDIwMH07XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4ge3dpZHRoLCBoZWlnaHR9O1xuICAgIH1cblxuICAgIGdldCBjb250YWluZXJJbml0aWFsUG9zaXRpb24oKXtcbiAgICAgICAgY29uc3Qgc2NhbGUgPSAgKHRoaXMuc2hvd1N0YXRlID09PSAnaW5pdGlhbC10aHVtYm5haWwtaW1hZ2UnKSA/IDEgOiB0aGlzLmNvbnRhaW5lclNjYWxlOyBcbiAgICAgICAgY29uc3QgdG9wID0gdGhpcy50aHVtYm5haWxJbWFnZVBvc2l0aW9uLnRvcDtcbiAgICAgICAgY29uc3QgbGVmdCA9IHRoaXMudGh1bWJuYWlsSW1hZ2VQb3NpdGlvbi5sZWZ0O1xuICAgICAgICByZXR1cm4gJ21hdHJpeCgnKyBzY2FsZSArJywgMCwgMCwgJysgc2NhbGUgKycsJysgbGVmdCArJywnKyB0b3AgKycpJztcbiAgICB9XG5cbiAgICBnZXQgY29udGFpbmVyRnVsbHNjcmVlblBvc2l0aW9uKCl7XG4gICAgICAgIGNvbnN0IGxlZnQgPSAoZG9jdW1lbnQuYm9keS5jbGllbnRXaWR0aCAtIHRoaXMudmlydHVhbEltYWdlRGltZW5zaW9uLndpZHRoKSAvIDI7XG4gICAgICAgIGNvbnN0IHRvcCA9ICh3aW5kb3cuaW5uZXJIZWlnaHQgLSB0aGlzLnZpcnR1YWxJbWFnZURpbWVuc2lvbi5oZWlnaHQpIC8gMjtcblxuICAgICAgICByZXR1cm4gJ3RyYW5zbGF0ZTNkKCcrIGxlZnQgKydweCwgJysgdG9wICsncHgsIDApJztcbiAgICB9XG5cbiAgICBnZXQgY29udGFpbmVyU2NhbGUoKXtcbiAgICAgICAgcmV0dXJuIHRoaXMudGh1bWJuYWlsSW1hZ2VQb3NpdGlvbi53aWR0aCAvIHRoaXMudmlydHVhbEltYWdlRGltZW5zaW9uLndpZHRoO1xuICAgIH1cblxuICAgIGdldCBpbWFnZUFzcGVjdFJhdGlvKCl7XG4gICAgICAgIHJldHVybiB0aGlzLnRodW1ibmFpbEltYWdlLm5hdHVyYWxXaWR0aCAvIHRoaXMudGh1bWJuYWlsSW1hZ2UubmF0dXJhbEhlaWdodDtcbiAgICB9XG5cbiAgICBnZXQgaXNJbWFnZUxhcmdlcldpbmRvdygpOmJvb2xlYW4ge1xuICAgICAgICBjb25zdCBpbWFnZU5hdHVyYWxXaWR0aCA9IHRoaXMubGlnaHRib3hJbWFnZU5hdHVyYWxXaWR0aDtcbiAgICAgICAgY29uc3QgaW1hZ2VOYXR1cmFsSGVpZ2h0ID0gdGhpcy5saWdodGJveEltYWdlTmF0dXJhbEhlaWdodDtcbiAgICAgICAgY29uc3Qgd2luZG93V2lkdGggPSBkb2N1bWVudC5ib2R5LmNsaWVudFdpZHRoO1xuICAgICAgICBjb25zdCB3aW5kb3dIZWlnaHQgPSB3aW5kb3cuaW5uZXJIZWlnaHQ7XG4gICAgICAgIHJldHVybiBpbWFnZU5hdHVyYWxXaWR0aCA+IHdpbmRvd1dpZHRoIHx8IGltYWdlTmF0dXJhbEhlaWdodCA+IHdpbmRvd0hlaWdodDtcbiAgICB9XG5cbiAgICBnZXQgaXNGaXJzdEltYWdlKCl7XG4gICAgICAgIGlmICh0aGlzLnByb3BlcnRpZXMubG9vcCl7XG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5pbmRleCA9PT0gMDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGdldCBpc0xhc3RJbWFnZSgpe1xuICAgICAgICBpZiAodGhpcy5wcm9wZXJ0aWVzLmxvb3Ape1xuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMuaW5kZXggPT09IHRoaXMubGF0ZXN0SW1hZ2VJbmRleDtcbiAgICAgICAgfSAgICAgICAgXG4gICAgfVxuXG4gICAgZ2V0IGxhdGVzdEltYWdlSW5kZXgoKXtcbiAgICAgICAgcmV0dXJuIHRoaXMuaW1hZ2VzLmxlbmd0aCAtIDE7XG4gICAgfVxuXG4gICAgZ2V0IGJhY2tncm91bmRDb2xvcigpe1xuICAgICAgICBjb25zdCBvcGFjaXR5ID0gdGhpcy5wcm9wZXJ0aWVzLmJhY2tncm91bmRPcGFjaXR5O1xuICAgICAgICBjb25zdCBjb2xvciA9IHRoaXMucHJvcGVydGllcy5iYWNrZ3JvdW5kQ29sb3I7XG4gICAgICAgIGlmIChjb2xvciA9PT0gJ2JsYWNrJykge1xuICAgICAgICAgICAgcmV0dXJuICdyZ2JhKDAsIDAsIDAsICcgKyBvcGFjaXR5ICsnKSc7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICByZXR1cm4gJ3JnYmEoMjU1LCAyNTUsIDI1NSwgJyArIG9wYWNpdHkgKycpJztcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGdldCBhbmltYXRpb25EdXJhdGlvbigpe1xuICAgICAgICBjb25zdCBhbmltYXRpb25EdXJhdGlvbiA9IHRoaXMucHJvcGVydGllcy5hbmltYXRpb25EdXJhdGlvbjtcblxuICAgICAgICBpZiAodHlwZW9mIGFuaW1hdGlvbkR1cmF0aW9uID09PSBcInN0cmluZ1wiKXtcbiAgICAgICAgICAgIHJldHVybiBOdW1iZXIucGFyc2VJbnQoYW5pbWF0aW9uRHVyYXRpb24pO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcmV0dXJuIGFuaW1hdGlvbkR1cmF0aW9uO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgZ2V0IGFuaW1hdGlvbk1vZGUoKXtcbiAgICAgICAgaWYgKHRoaXMuY3VyckltYWdlTG9hZGluZ1N0YXRlID09PSAnZXJyb3InKXtcbiAgICAgICAgICAgIHJldHVybiAnZGVmYXVsdCc7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHRoaXMucHJvcGVydGllcy5hbmltYXRpb25Nb2RlO1xuICAgIH1cblxuICAgIGdldCBhbmltYXRpb25UaW1pbmdGdW5jdGlvbigpe1xuICAgICAgICByZXR1cm4gdGhpcy5wcm9wZXJ0aWVzLmFuaW1hdGlvblRpbWluZ0Z1bmN0aW9uO1xuICAgIH1cblxuICAgIGdldCBjbG9zZUJ1dHRvblRleHQoKXtcbiAgICAgICAgcmV0dXJuIHRoaXMucHJvcGVydGllcy5jbG9zZUJ1dHRvblRleHQ7XG4gICAgfVxuXG4gICAgZ2V0IGNvdW50ZXJTZXBhcmF0b3IoKXtcbiAgICAgICAgcmV0dXJuIHRoaXMucHJvcGVydGllcy5jb3VudGVyU2VwYXJhdG9yO1xuICAgIH1cblxuICAgIGdldCBjb3VudGVyKCl7XG4gICAgICAgIHJldHVybiB0aGlzLmN1cnJlbnRJbWFnZUluZGV4ICsgMSArIHRoaXMuY291bnRlclNlcGFyYXRvciArIHRoaXMuaW1hZ2VzLmxlbmd0aDtcbiAgICB9XG5cbiAgICBjb25zdHJ1Y3RvcihwdWJsaWMgZXZlbnRTZXJ2aWNlOiBFdmVudFNlcnZpY2Upe1xuICAgICAgICB0aGlzLmlzTW9iaWxlID0gVXRpbHMubW9iaWxlQ2hlY2soKTtcbiAgICB9XG5cbiAgICBlbWl0U3RhdGUodHlwZSwgc3RhdGUpe1xuICAgICAgICBpZiAoc3RhdGUgPT09ICdpbml0aWFsLXZpcnR1YWwtaW1hZ2UnIHx8IFxuICAgICAgICAgICAgc3RhdGUgPT09ICdpbml0aWFsLXN0eWxlcycpe1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHN0YXRlID09PSAnaW5pdGlhbC1kZWZhdWx0JyB8fCBcbiAgICAgICAgICAgIHN0YXRlID09PSAnaW5pdGlhbC10aHVtYm5haWwtaW1hZ2UnKXtcbiAgICAgICAgICAgIHN0YXRlID0gJ2luaXRpYWwnO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5ldmVudFNlcnZpY2UuZW1pdENoYW5nZUV2ZW50KHtcbiAgICAgICAgICAgIHR5cGU6IHR5cGUrJzonK3N0YXRlXG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHNldFNob3dTdGF0ZShzdGF0ZTogU2hvd1N0YXRlKXtcbiAgICAgICAgdGhpcy5zaG93U3RhdGUgPSBzdGF0ZTtcbiAgICAgICAgdGhpcy5lbWl0U3RhdGUoJ3Nob3ctc3RhdGUnLCBzdGF0ZSlcbiAgICB9XG5cbiAgICBzZXRDbG9zaW5nU3RhdGUoc3RhdGU6IENsb3NpbmdTdGF0ZSl7XG4gICAgICAgIHRoaXMuY2xvc2luZ1N0YXRlID0gc3RhdGU7IFxuICAgICAgICB0aGlzLmVtaXRTdGF0ZSgnY2xvc2luZy1zdGF0ZScsIHN0YXRlKTtcbiAgICB9XG5cbiAgICBzZXRBbmltYXRpb25EdXJhdGlvbigpe1xuICAgICAgICB0aGlzLmhvc3RTdHlsZVRyYW5zaXRpb24gPSAnYmFja2dyb3VuZC1jb2xvciAnK3RoaXMuYW5pbWF0aW9uRHVyYXRpb24rJ21zJztcbiAgICAgICAgdGhpcy5jb250YWluZXJTdHlsZXMudHJhbnNpdGlvbiA9ICdhbGwgJyt0aGlzLmFuaW1hdGlvbkR1cmF0aW9uKydtcyAnK3RoaXMuYW5pbWF0aW9uVGltaW5nRnVuY3Rpb247XG4gICAgfVxuXG4gICAgc2V0QmFja2dyb3VuZENvbG9yKCl7XG4gICAgICAgIHRoaXMuaG9zdFN0eWxlQmFja2dyb3VuZENvbG9yID0gdGhpcy5iYWNrZ3JvdW5kQ29sb3I7XG4gICAgfVxuXG4gICAgZ2V0Q29udGFpbmVySGVpZ2h0KCk6c3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIHRoaXMudGh1bWJuYWlsSW1hZ2VQb3NpdGlvbi5oZWlnaHQgLyB0aGlzLmNvbnRhaW5lclNjYWxlICsgJ3B4JztcbiAgICB9XG5cbiAgICBzaG93VGh1bWJuYWlsSW1hZ2UoKSB7XG4gICAgICAgIHRoaXMudGh1bWJuYWlsSW1hZ2Uuc3R5bGUub3BhY2l0eSA9ICcnO1xuICAgIH1cblxuICAgIGhpZGVUaHVtYm5haWxJbWFnZSgpe1xuICAgICAgICB0aGlzLnRodW1ibmFpbEltYWdlLnN0eWxlLm9wYWNpdHkgPSAwO1xuICAgIH1cblxuICAgIHVwZGF0ZVRodW1ibmFpbFBvc2l0aW9uKCl7XG4gICAgICAgIHRoaXMuY29udGFpbmVyU3R5bGVzLnRyYW5zZm9ybSA9IHRoaXMuY29udGFpbmVySW5pdGlhbFBvc2l0aW9uO1xuICAgIH1cbn0gIl19 | ||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGlnaHRib3gtY29tbW9uLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BjcnlzdGFsdWkvYW5ndWxhci1saWdodGJveC8iLCJzb3VyY2VzIjpbImxpYi9saWdodGJveC1jb21tb24uY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7QUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxXQUFXLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUdyRixPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLFNBQVMsQ0FBQztBQUVoQztJQXdNSSxpQ0FBbUIsWUFBMEI7UUFBMUIsaUJBQVksR0FBWixZQUFZLENBQWM7UUFqTTdDLHNCQUFpQixHQUFXLENBQUMsQ0FBQztRQUM5QixzQkFBaUIsR0FBRyxDQUFDLENBQUM7UUFHdEIsb0JBQWUsR0FBUTtZQUNuQixVQUFVLEVBQUUsRUFBRTtZQUNkLFNBQVMsRUFBRSxFQUFFO1lBQ2IsS0FBSyxFQUFFLEVBQUU7WUFDVCxNQUFNLEVBQUUsRUFBRTtZQUNWLE9BQU8sRUFBRSxFQUFFO1NBQ2QsQ0FBQztRQUNGLDBCQUFxQixHQUFvRCxZQUFZLENBQUM7UUF1TGxGLElBQUksQ0FBQyxRQUFRLEdBQUcsS0FBSyxDQUFDLFdBQVcsRUFBRSxDQUFDO0lBQ3hDLENBQUM7SUEzS0Qsc0JBQUksa0RBQWE7Ozs7UUFBakI7WUFDSSxJQUFJLElBQUksQ0FBQyxRQUFRLElBQUksSUFBSSxDQUFDLFVBQVUsQ0FBQyxhQUFhLEVBQUM7O29CQUN6QyxjQUFjLEdBQUcsQ0FBQyxhQUFhLEVBQUUsY0FBYyxFQUFFLFlBQVksQ0FBQztnQkFDcEUsT0FBTyxJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDLENBQUM7YUFDdkQ7aUJBQU07Z0JBQ0gsT0FBTyxJQUFJLENB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LElBQUksQ0FBQyxlQUFlLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQyx3QkFBd0IsQ0FBQztJQUNuRSxDQUFDOztnQkE3UEosU0FBUyxTQUFDO29CQUNQLFFBQVEsRUFBRSxpQkFBaUI7b0JBQzNCLFFBQVEsRUFBRSxFQUFFO2lCQUNmOzs7O2dCQU5RLFlBQVk7OzsrQkF3QmhCLEtBQUs7MkNBRUwsV0FBVyxTQUFDLHVCQUF1QjtzQ0FDbkMsV0FBVyxTQUFDLGtCQUFrQjs4QkFFOUIsU0FBUyxTQUFDLFlBQVk7K0JBQ3RCLFNBQVMsU0FBQyxhQUFhOzZCQUN2QixTQUFTLFNBQUMsV0FBVztpQ0FDckIsU0FBUyxTQUFDLGVBQWU7O0lBaU85Qiw4QkFBQztDQUFBLEFBOVBELElBOFBDO1NBelBZLHVCQUF1Qjs7O0lBRWhDLG9EQUE4Qjs7SUFDOUIsb0RBQXNCOztJQUN0Qiw0Q0FBcUI7O0lBQ3JCLCtDQUEyQjs7SUFDM0Isa0RBTUU7O0lBQ0Ysd0RBQXNGOztJQUN0RiwyQ0FBa0I7O0lBRWxCLCtDQUFvQzs7SUFFcEMsMkRBQXVFOztJQUN2RSxzREFBNkQ7O0lBRTdELDhDQUFpRDs7SUFDakQsK0NBQW1EOztJQUNuRCw2Q0FBK0M7O0lBQy9DLGlEQUF1RDs7SUEySzNDLCtDQUFpQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQsIEhvc3RCaW5kaW5nLCBWaWV3Q2hpbGQsIEVsZW1lbnRSZWYgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgTGlnaHRib3hEYXRhLCBQcm9wZXJ0aWVzIH0gZnJvbSAnLi9pbnRlcmZhY2VzJztcclxuaW1wb3J0IHsgU2hvd1N0YXRlLCBDbG9zaW5nU3RhdGUgfSBmcm9tICcuL3R5cGVzJztcclxuaW1wb3J0IHsgRXZlbnRTZXJ2aWNlIH0gZnJvbSAnLi9ldmVudC5zZXJ2aWNlJztcclxuaW1wb3J0IHsgVXRpbHMgfSBmcm9tICcuL3V0aWxzJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gICAgc2VsZWN0b3I6ICdsaWdodGJveC1jb21tb24nLFxyXG4gICAgdGVtcGxhdGU6ICcnXHJcbn0pXHJcblxyXG5leHBvcnQgY2xhc3MgTGlnaHRib3hDb21tb25Db21wb25lbnQge1xyXG5cclxuICAgIGN1cnJlbnRJbWFnZUluZGV4OiBudW1iZXIgPSAwO1xyXG4gICAgaW5kZXhDdXJyZW50U2xpZGUgPSAxO1xyXG4gICAgc2hvd1N0YXRlOiBTaG93U3RhdGU7XHJcbiAgICBjbG9zaW5nU3RhdGU6IENsb3NpbmdTdGF0ZTtcclxuICAgIGNvbnRhaW5lclN0eWxlczogYW55ID0ge1xyXG4gICAgICAgIHRyYW5zaXRpb246ICcnLFxyXG4gICAgICAgIHRyYW5zZm9ybTogJycsXHJcbiAgICAgICAgd2lkdGg6ICcnLFxyXG4gICAgICAgIGhlaWdodDogJycsXHJcbiAgICAgICAgb3BhY2l0eTogJydcclxuICAgIH07XHJcbiAgICBjdXJySW1hZ2VMb2FkaW5nU3RhdGU6ICdub3QtbG9hZGVkJyB8ICdsb2FkaW5nJyB8ICd1cGxvYWRlZCcgfCAnZXJyb3InID0gJ25vdC1sb2FkZWQnO1xyXG4gICAgaXNNb2JpbGU6IGJvb2xlYW47XHJcblxyXG4gICAgQElucHV0KCkgbGlnaHRib3hEYXRhOiBMaWdodGJveERhdGE7XHJcblxyXG4gICAgQEhvc3RCaW5kaW5nKCdzdHlsZS5iYWNrZ3JvdW5kQ29sb3InKSBob3N0U3R5bGVCYWNrZ3JvdW5kQ29sb3I6IHN0cmluZztcclxuICAgIEBIb3N0QmluZGluZygnc3R5bGUudHJhbnNpdGlvbicpIGhvc3RTdHlsZVRyYW5zaXRpb246IHN0cmluZztcclxuXHJcbiAgICBAVmlld0NoaWxkKCdpbWFnZUZpcnN0JykgX2ltYWdlRmlyc3Q6IEVsZW1lbnRSZWY7XHJcbiAgICBAVmlld0NoaWxkKCdpbWFnZVNlY29uZCcpIF9pbWFnZVNlY29uZDogRWxlbWVudFJlZjtcclxuICAgIEBWaWV3Q2hpbGQoJ2ltYWdlTGFzdCcpIF9pbWFnZUxhc3Q6IEVsZW1lbnRSZWY7XHJcbiAgICBAVmlld0NoaWxkKCdsaWdodGJveEltYWdlJykgX2xpZ2h0Ym94SW1hZ2U6IEVsZW1lbnRSZWY7XHJcblxyXG4gICAgZ2V0IGxpZ2h0Ym94SW1hZ2UoKXtcclxuICAgICAgICBpZiAodGhpcy5pc01vYmlsZSAmJiB0aGlzLnByb3BlcnRpZXMuZ2VzdHVyZUVuYWJsZSl7XHJcbiAgICAgICAgICAgIGNvbnN0IGltYWdlUG9zaXRpb25zID0gWydfaW1hZ2VGaXJzdCcsICdfaW1hZ2VTZWNvbmQnLCAnX2ltYWdlTGFzdCddO1xyXG4gICAgICAgICAgICByZXR1cm4gdGhpc1tpbWFnZVBvc2l0aW9uc1t0aGlzLmluZGV4Q3VycmVudFNsaWRlXV07XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgcmV0dXJuIHRoaXMuX2xpZ2h0Ym94SW1hZ2U7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIGdldCBsaWdodGJveEltYWdlRWxlbWVudCgpe1xyXG4gICAgICAgIGlmICh0aGlzLmxpZ2h0Ym94SW1hZ2Upe1xyXG4gICAgICAgICAgICByZXR1cm4gdGhpcy5saWdodGJveEltYWdlLm5hdGl2ZUVsZW1lbnQ7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIGdldCBsaWdodGJveEltYWdlTmF0dXJhbEhlaWdodCgpe1xyXG4gICAgICAgIGlmICh0aGlzLmxpZ2h0Ym94SW1hZ2VFbGVtZW50KXtcclxuICAgICAgICAgICAgcmV0dXJuIHRoaXMubGlnaHRib3hJbWFnZUVsZW1lbnQubmF0dXJhbEhlaWdodDtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgZ2V0IGxpZ2h0Ym94SW1hZ2VOYXR1cmFsV2lkdGgoKXtcclxuICAgICAgICBpZiAodGhpcy5saWdodGJveEltYWdlRWxlbWVudCl7XHJcbiAgICAgICAgICAgIHJldHVybiB0aGlzLmxpZ2h0Ym94SW1hZ2VFbGVtZW50Lm5hdHVyYWxXaWR0aDtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgZ2V0IGluZGV4KCl7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuY3VycmVudEltYWdlSW5kZXg7XHJcbiAgICB9XHJcblxyXG4gICAgZ2V0IHByb3BlcnRpZXMoKXtcclxuICAgICAgICByZXR1cm4gdGhpcy5saWdodGJveERhdGEucHJvcGVydGllcztcclxuICAgIH1cclxuXHJcbiAgICBnZXQgaW1hZ2VzKCl7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMubGlnaHRib3hEYXRhLmltYWdlcyB8fCBbdGhpcy5saWdodGJveERhdGEuaW1hZ2VdO1xyXG4gICAgfVxyXG5cclxuICAgIGdldCB0aHVtYm5haWxJbWFnZSgpe1xyXG4gICAgICAgIHJldHVybiB0aGlzLmltYWdlc1t0aGlzLmN1cnJlbnRJbWFnZUluZGV4XS5uYXRpdmVFbGVtZW50O1xyXG4gICAgfVxyXG5cclxuICAgIGdldCB0aHVtYm5haWxJbWFnZVBvc2l0aW9uKCl7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMudGh1bWJuYWlsSW1hZ2UuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XHJcbiAgICB9XHJcblxyXG4gICAgLy8gSW1hZ2Ugc2l6ZSBpZiBpdCBpcyBsYXJnZXIgdGhhbiB0aGUgd2luZG93IHNpemVcclxuICAgIGdldCB2aXJ0dWFsSW1hZ2VEaW1lbnNpb24oKXtcclxuICAgICAgICBsZXQgaGVpZ2h0ID0gdGhpcy5saWdodGJveEltYWdlTmF0dXJhbEhlaWdodDtcclxuICAgICAgICBsZXQgd2lkdGggPSBoZWlnaHQgKiB0aGlzLmltYWdlQXNwZWN0UmF0aW87XHJcbiAgICAgICAgY29uc3Qgd2luZG93V2lkdGggPSBkb2N1bWVudC5ib2R5LmNsaWVudFdpZHRoO1xyXG4gICAgICAgIGNvbnN0IHdpbmRvd0hlaWdodCA9IHdpbmRvdy5pbm5lckhlaWdodDtcclxuXHJcbiAgICAgICAgaWYgKHRoaXMuaXNJbWFnZUxhcmdlcldpbmRvdyl7XHJcbiAgICAgICAgICAgIGlmIChoZWlnaHQgPiB3aW5kb3dIZWlnaHQpe1xyXG4gICAgICAgICAgICAgICAgaGVpZ2h0ID0gd2luZG93SGVpZ2h0O1xyXG4gICAgICAgICAgICAgICAgd2lkdGggPSBoZWlnaHQgKiB0aGlzLmltYWdlQXNwZWN0UmF0aW87XHJcbiAgICAgICAgICAgIH0gXHJcblxyXG4gICAgICAgICAgICBpZiAod2lkdGggPiB3aW5kb3dXaWR0aCl7XHJcbiAgICAgICAgICAgICAgICB3aWR0aCA9IHdpbmRvd1dpZHRoO1xyXG4gICAgICAgICAgICAgICAgaGVpZ2h0ID0gd2lkdGggLyB0aGlzLmltYWdlQXNwZWN0UmF0aW87XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICB3aWR0aCA9IHRoaXMubGlnaHRib3hJbWFnZU5hdHVyYWxXaWR0aDtcclxuICAgICAgICAgICAgaGVpZ2h0ID0gdGhpcy5saWdodGJveEltYWdlTmF0dXJhbEhlaWdodDtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGlmICh3aWR0aCA9PT0gMCB8fCBOdW1iZXIucGFyc2VJbnQoaGVpZ2h0KSA9PT0gMCl7XHJcbiAgICAgICAgICAgIHJldHVybiB7d2lkdGg6IDIwMCwgaGVpZ2h0OiAyMDB9O1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgcmV0dXJuIHt3aWR0aCwgaGVpZ2h0fTtcclxuICAgIH1cclxuXHJcbiAgICBnZXQgY29udGFpbmVySW5pdGlhbFBvc2l0aW9uKCl7XHJcbiAgICAgICAgY29uc3Qgc2NhbGUgPSAgKHRoaXMuc2hvd1N0YXRlID09PSAnaW5pdGlhbC10aHVtYm5haWwtaW1hZ2UnKSA/IDEgOiB0aGlzLmNvbnRhaW5lclNjYWxlOyBcclxuICAgICAgICBjb25zdCB0b3AgPSB0aGlzLnRodW1ibmFpbEltYWdlUG9zaXRpb24udG9wO1xyXG4gICAgICAgIGNvbnN0IGxlZnQgPSB0aGlzLnRodW1ibmFpbEltYWdlUG9zaXRpb24ubGVmdDtcclxuICAgICAgICByZXR1cm4gJ21hdHJpeCgnKyBzY2FsZSArJywgMCwgMCwgJysgc2NhbGUgKycsJysgbGVmdCArJywnKyB0b3AgKycpJztcclxuICAgIH1cclxuXHJcbiAgICBnZXQgY29udGFpbmVyRnVsbHNjcmVlblBvc2l0aW9uKCl7XHJcbiAgICAgICAgY29uc3QgbGVmdCA9IChkb2N1bWVudC5ib2R5LmNsaWVudFdpZHRoIC0gdGhpcy52aXJ0dWFsSW1hZ2VEaW1lbnNpb24ud2lkdGgpIC8gMjtcclxuICAgICAgICBjb25zdCB0b3AgPSAod2luZG93LmlubmVySGVpZ2h0IC0gdGhpcy52aXJ0dWFsSW1hZ2VEaW1lbnNpb24uaGVpZ2h0KSAvIDI7XHJcblxyXG4gICAgICAgIHJldHVybiAndHJhbnNsYXRlM2QoJysgbGVmdCArJ3B4LCAnKyB0b3AgKydweCwgMCknO1xyXG4gICAgfVxyXG5cclxuICAgIGdldCBjb250YWluZXJTY2FsZSgpe1xyXG4gICAgICAgIHJldHVybiB0aGlzLnRodW1ibmFpbEltYWdlUG9zaXRpb24ud2lkdGggLyB0aGlzLnZpcnR1YWxJbWFnZURpbWVuc2lvbi53aWR0aDtcclxuICAgIH1cclxuXHJcbiAgICBnZXQgaW1hZ2VBc3BlY3RSYXRpbygpe1xyXG4gICAgICAgIHJldHVybiB0aGlzLnRodW1ibmFpbEltYWdlLm5hdHVyYWxXaWR0aCAvIHRoaXMudGh1bWJuYWlsSW1hZ2UubmF0dXJhbEhlaWdodDtcclxuICAgIH1cclxuXHJcbiAgICBnZXQgaXNJbWFnZUxhcmdlcldpbmRvdygpOmJvb2xlYW4ge1xyXG4gICAgICAgIGNvbnN0IGltYWdlTmF0dXJhbFdpZHRoID0gdGhpcy5saWdodGJveEltYWdlTmF0dXJhbFdpZHRoO1xyXG4gICAgICAgIGNvbnN0IGltYWdlTmF0dXJhbEhlaWdodCA9IHRoaXMubGlnaHRib3hJbWFnZU5hdHVyYWxIZWlnaHQ7XHJcbiAgICAgICAgY29uc3Qgd2luZG93V2lkdGggPSBkb2N1bWVudC5ib2R5LmNsaWVudFdpZHRoO1xyXG4gICAgICAgIGNvbnN0IHdpbmRvd0hlaWdodCA9IHdpbmRvdy5pbm5lckhlaWdodDtcclxuICAgICAgICByZXR1cm4gaW1hZ2VOYXR1cmFsV2lkdGggPiB3aW5kb3dXaWR0aCB8fCBpbWFnZU5hdHVyYWxIZWlnaHQgPiB3aW5kb3dIZWlnaHQ7XHJcbiAgICB9XHJcblxyXG4gICAgZ2V0IGlzRmlyc3RJbWFnZSgpe1xyXG4gICAgICAgIGlmICh0aGlzLnByb3BlcnRpZXMubG9vcCl7XHJcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICByZXR1cm4gdGhpcy5pbmRleCA9PT0gMDtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgZ2V0IGlzTGFzdEltYWdlKCl7XHJcbiAgICAgICAgaWYgKHRoaXMucHJvcGVydGllcy5sb29wKXtcclxuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIHJldHVybiB0aGlzLmluZGV4ID09PSB0aGlzLmxhdGVzdEltYWdlSW5kZXg7XHJcbiAgICAgICAgfSAgICAgICAgXHJcbiAgICB9XHJcblxyXG4gICAgZ2V0IGxhdGVzdEltYWdlSW5kZXgoKXtcclxuICAgICAgICByZXR1cm4gdGhpcy5pbWFnZXMubGVuZ3RoIC0gMTtcclxuICAgIH1cclxuXHJcbiAgICBnZXQgYmFja2dyb3VuZENvbG9yKCl7XHJcbiAgICAgICAgY29uc3Qgb3BhY2l0eSA9IHRoaXMucHJvcGVydGllcy5iYWNrZ3JvdW5kT3BhY2l0eTtcclxuICAgICAgICBjb25zdCBjb2xvciA9IHRoaXMucHJvcGVydGllcy5iYWNrZ3JvdW5kQ29sb3I7XHJcbiAgICAgICAgaWYgKGNvbG9yID09PSAnYmxhY2snKSB7XHJcbiAgICAgICAgICAgIHJldHVybiAncmdiYSgwLCAwLCAwLCAnICsgb3BhY2l0eSArJyknO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIHJldHVybiAncmdiYSgyNTUsIDI1NSwgMjU1LCAnICsgb3BhY2l0eSArJyknO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBnZXQgYW5pbWF0aW9uRHVyYXRpb24oKXtcclxuICAgICAgICBjb25zdCBhbmltYXRpb25EdXJhdGlvbiA9IHRoaXMucHJvcGVydGllcy5hbmltYXRpb25EdXJhdGlvbjtcclxuXHJcbiAgICAgICAgaWYgKHR5cGVvZiBhbmltYXRpb25EdXJhdGlvbiA9PT0gXCJzdHJpbmdcIil7XHJcbiAgICAgICAgICAgIHJldHVybiBOdW1iZXIucGFyc2VJbnQoYW5pbWF0aW9uRHVyYXRpb24pO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIHJldHVybiBhbmltYXRpb25EdXJhdGlvbjtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgZ2V0IGFuaW1hdGlvbk1vZGUoKXtcclxuICAgICAgICBpZiAodGhpcy5jdXJySW1hZ2VMb2FkaW5nU3RhdGUgPT09ICdlcnJvcicpe1xyXG4gICAgICAgICAgICByZXR1cm4gJ2RlZmF1bHQnO1xyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gdGhpcy5wcm9wZXJ0aWVzLmFuaW1hdGlvbk1vZGU7XHJcbiAgICB9XHJcblxyXG4gICAgZ2V0IGFuaW1hdGlvblRpbWluZ0Z1bmN0aW9uKCl7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMucHJvcGVydGllcy5hbmltYXRpb25UaW1pbmdGdW5jdGlvbjtcclxuICAgIH1cclxuXHJcbiAgICBnZXQgY2xvc2VCdXR0b25UZXh0KCl7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMucHJvcGVydGllcy5jbG9zZUJ1dHRvblRleHQ7XHJcbiAgICB9XHJcblxyXG4gICAgZ2V0IGNvdW50ZXJTZXBhcmF0b3IoKXtcclxuICAgICAgICByZXR1cm4gdGhpcy5wcm9wZXJ0aWVzLmNvdW50ZXJTZXBhcmF0b3I7XHJcbiAgICB9XHJcblxyXG4gICAgZ2V0IGNvdW50ZXIoKXtcclxuICAgICAgICByZXR1cm4gdGhpcy5jdXJyZW50SW1hZ2VJbmRleCArIDEgKyB0aGlzLmNvdW50ZXJTZXBhcmF0b3IgKyB0aGlzLmltYWdlcy5sZW5ndGg7XHJcbiAgICB9XHJcblxyXG4gICAgY29uc3RydWN0b3IocHVibGljIGV2ZW50U2VydmljZTogRXZlbnRTZXJ2aWNlKXtcclxuICAgICAgICB0aGlzLmlzTW9iaWxlID0gVXRpbHMubW9iaWxlQ2hlY2soKTtcclxuICAgIH1cclxuXHJcbiAgICBlbWl0U3RhdGUodHlwZSwgc3RhdGUpe1xyXG4gICAgICAgIGlmIChzdGF0ZSA9PT0gJ2luaXRpYWwtdmlydHVhbC1pbWFnZScgfHwgXHJcbiAgICAgICAgICAgIHN0YXRlID09PSAnaW5pdGlhbC1zdHlsZXMnKXtcclxuICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgaWYgKHN0YXRlID09PSAnaW5pdGlhbC1kZWZhdWx0JyB8fCBcclxuICAgICAgICAgICAgc3RhdGUgPT09ICdpbml0aWFsLXRodW1ibmFpbC1pbWFnZScpe1xyXG4gICAgICAgICAgICBzdGF0ZSA9ICdpbml0aWFsJztcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHRoaXMuZXZlbnRTZXJ2aWNlLmVtaXRDaGFuZ2VFdmVudCh7XHJcbiAgICAgICAgICAgIHR5cGU6IHR5cGUrJzonK3N0YXRlXHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcblxyXG4gICAgc2V0U2hvd1N0YXRlKHN0YXRlOiBTaG93U3RhdGUpe1xyXG4gICAgICAgIHRoaXMuc2hvd1N0YXRlID0gc3RhdGU7XHJcbiAgICAgICAgdGhpcy5lbWl0U3RhdGUoJ3Nob3ctc3RhdGUnLCBzdGF0ZSlcclxuICAgIH1cclxuXHJcbiAgICBzZXRDbG9zaW5nU3RhdGUoc3RhdGU6IENsb3NpbmdTdGF0ZSl7XHJcbiAgICAgICAgdGhpcy5jbG9zaW5nU3RhdGUgPSBzdGF0ZTsgXHJcbiAgICAgICAgdGhpcy5lbWl0U3RhdGUoJ2Nsb3Npbmctc3RhdGUnLCBzdGF0ZSk7XHJcbiAgICB9XHJcblxyXG4gICAgc2V0QW5pbWF0aW9uRHVyYXRpb24oKXtcclxuICAgICAgICB0aGlzLmhvc3RTdHlsZVRyYW5zaXRpb24gPSAnYmFja2dyb3VuZC1jb2xvciAnK3RoaXMuYW5pbWF0aW9uRHVyYXRpb24rJ21zJztcclxuICAgICAgICB0aGlzLmNvbnRhaW5lclN0eWxlcy50cmFuc2l0aW9uID0gJ2FsbCAnK3RoaXMuYW5pbWF0aW9uRHVyYXRpb24rJ21zICcrdGhpcy5hbmltYXRpb25UaW1pbmdGdW5jdGlvbjtcclxuICAgIH1cclxuXHJcbiAgICBzZXRCYWNrZ3JvdW5kQ29sb3IoKXtcclxuICAgICAgICB0aGlzLmhvc3RTdHlsZUJhY2tncm91bmRDb2xvciA9IHRoaXMuYmFja2dyb3VuZENvbG9yO1xyXG4gICAgfVxyXG5cclxuICAgIGdldENvbnRhaW5lckhlaWdodCgpOnN0cmluZyB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMudGh1bWJuYWlsSW1hZ2VQb3NpdGlvbi5oZWlnaHQgLyB0aGlzLmNvbnRhaW5lclNjYWxlICsgJ3B4JztcclxuICAgIH1cclxuXHJcbiAgICBzaG93VGh1bWJuYWlsSW1hZ2UoKSB7XHJcbiAgICAgICAgdGhpcy50aHVtYm5haWxJbWFnZS5zdHlsZS5vcGFjaXR5ID0gJyc7XHJcbiAgICB9XHJcblxyXG4gICAgaGlkZVRodW1ibmFpbEltYWdlKCl7XHJcbiAgICAgICAgdGhpcy50aHVtYm5haWxJbWFnZS5zdHlsZS5vcGFjaXR5ID0gMDtcclxuICAgIH1cclxuXHJcbiAgICB1cGRhdGVUaHVtYm5haWxQb3NpdGlvbigpe1xyXG4gICAgICAgIHRoaXMuY29udGFpbmVyU3R5bGVzLnRyYW5zZm9ybSA9IHRoaXMuY29udGFpbmVySW5pdGlhbFBvc2l0aW9uO1xyXG4gICAgfVxyXG59IFxyXG4iXX0= |
import { ElementRef } from '@angular/core'; | ||
import { LightboxData } from './interfaces'; | ||
import { LightboxData, Properties } from './interfaces'; | ||
import { ShowState, ClosingState } from './types'; | ||
@@ -26,3 +26,3 @@ import { EventService } from './event.service'; | ||
readonly index: number; | ||
readonly properties: import("./interfaces").Properties; | ||
readonly properties: Properties; | ||
readonly images: any; | ||
@@ -29,0 +29,0 @@ readonly thumbnailImage: any; |
{ | ||
"name": "@crystalui/angular-lightbox", | ||
"version": "1.0.4", | ||
"version": "1.0.5", | ||
"description": "A simple, responsive lightbox component for Angular.", | ||
@@ -5,0 +5,0 @@ "repository": { |
@@ -13,3 +13,3 @@ # Lightbox for Angular | ||
npm i @crystalui/angular-lightbox | ||
npm i @crystalui/angular-lightbox --save | ||
@@ -16,0 +16,0 @@ Import module: |
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
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
819290