@norwegian/core-components 7.13.5 → 7.14.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -495,4 +495,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
495
495
  type: HostListener,
496
496
  args: ["window:resize", ["$event"]]
497
497
  }] } });
498
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWlycG9ydC1zZWxlY3QuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29yZS1jb21wb25lbnRzL3NyYy9saWIvY29tcG9uZW50cy9haXJwb3J0LXNlbGVjdC9haXJwb3J0LXNlbGVjdC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb3JlLWNvbXBvbmVudHMvc3JjL2xpYi9jb21wb25lbnRzL2FpcnBvcnQtc2VsZWN0L2FpcnBvcnQtc2VsZWN0LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQU9BLE9BQU8sRUFDTCxTQUFTLEVBQ1QsWUFBWSxFQUNaLEtBQUssRUFDTCxNQUFNLEVBQ04saUJBQWlCLEVBQ2pCLFNBQVMsRUFJVCxZQUFZLEVBRWIsTUFBTSxlQUFlLENBQUM7QUFFdkIsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sWUFBWSxDQUFDOzs7Ozs7O0FBSzlDOzs7R0FHRztBQU9ILE1BQU0sT0FBTyxzQkFBdUIsU0FBUSxnQkFBZ0I7SUFrUTFEOzs7O09BSUc7SUFDSCxJQUNJLGlCQUFpQjtRQUNuQixPQUFPLElBQUksQ0FBQyxzQkFBc0IsQ0FBQztJQUNyQyxDQUFDO0lBQ0QsSUFBSSxpQkFBaUIsQ0FBQyxJQUFZO1FBQ2hDLElBQUksSUFBSSxFQUFFO1lBQ1IsSUFBSSxJQUFJLEtBQUssSUFBSSxDQUFDLHNCQUFzQixFQUFFO2dCQUN4QyxJQUFJLENBQUMsc0JBQXNCLEdBQUcsSUFBSSxDQUFDO2dCQUNuQyxJQUFJLENBQUMsU0FBUyxFQUFFLENBQUM7YUFDbEI7U0FDRjthQUFNO1lBQ0wsSUFBSSxDQUFDLHNCQUFzQixHQUFHLEVBQUUsQ0FBQztZQUNqQyxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7U0FDcEI7SUFDSCxDQUFDO0lBRUQ7Ozs7T0FJRztJQUNILElBQ0ksc0JBQXNCO1FBQ3hCLE9BQU8sSUFBSSxD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O2dCQU9HLHNCQUFzQjtzQkFBOUIsS0FBSztnQkFRRyxXQUFXO3NCQUFuQixLQUFLO2dCQU9HLGlCQUFpQjtzQkFBekIsS0FBSztnQkFPRyxnQkFBZ0I7c0JBQXhCLEtBQUs7Z0JBT0csc0JBQXNCO3NCQUE5QixLQUFLO2dCQU9HLFlBQVk7c0JBQXBCLEtBQUs7Z0JBUUcsYUFBYTtzQkFBckIsS0FBSztnQkFTRyx3QkFBd0I7c0JBQWhDLEtBQUs7Z0JBU0csNkJBQTZCO3NCQUFyQyxLQUFLO2dCQVNHLFlBQVk7c0JBQXBCLEtBQUs7Z0JBUUYsaUJBQWlCO3NCQURwQixLQUFLO2dCQXNCRixzQkFBc0I7c0JBRHpCLEtBQUs7Z0JBcUJHLGNBQWM7c0JBQXRCLEtBQUs7Z0JBT0csaUJBQWlCO3NCQUF6QixLQUFLO2dCQU9JLFlBQVk7c0JBQXJCLE1BQU07Z0JBT0csZ0JBQWdCO3NCQUF6QixNQUFNO2dCQU9HLGlCQUFpQjtzQkFBMUIsTUFBTTtnQkFPRyxxQkFBcUI7c0JBQTlCLE1BQU07Z0JBT0csV0FBVztzQkFBcEIsTUFBTTtnQkFPRyxjQUFjO3NCQUF2QixNQUFNO2dCQVlQLFFBQVE7c0JBRFAsWUFBWTt1QkFBQyxlQUFlLEVBQUUsQ0FBQyxRQUFRLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBsaWNlbnNlXG4gKiBDb3B5cmlnaHQgTm9yd2VnaWFuIEFpciBTaHV0dGxlLiBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICovXG5cbmltcG9ydCB7IEFpcnBvcnRNb2RlbCB9IGZyb20gJy4vbW9kZWxzL2FpcnBvcnQubW9kZWwnO1xuaW1wb3J0IHsgQ2xhc3NNb2RlbCB9IGZyb20gJy4uLy4uL2NvcmUvbW9kZWxzL2NsYXNzLm1vZGVsJztcbmltcG9ydCB7XG4gIENvbXBvbmVudCxcbiAgRXZlbnRFbWl0dGVyLFxuICBJbnB1dCxcbiAgT3V0cHV0LFxuICBWaWV3RW5jYXBzdWxhdGlvbixcbiAgVmlld0NoaWxkLFxuICBFbGVtZW50UmVmLFxuICBPbkluaXQsXG4gIEFmdGVyVmlld0luaXQsXG4gIEhvc3RMaXN0ZW5lcixcbiAgQ2hhbmdlRGV0ZWN0b3JSZWZcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGb3JtR3JvdXAgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBOYXNDb21wb25lbnRCYXNlIH0gZnJvbSAnLi4vLi4vY29yZSc7XG5pbXBvcnQgeyBSZXN1bHRzTGFiZWxzTW9kZWwgfSBmcm9tICcuL21vZGVscy9yZXN1bHRzLWxhYmVscy5tb2RlbCc7XG5pbXBvcnQgeyBBaXJwb3J0U2VsZWN0RHJvcGRvd25Db21wb25lbnQgfSBmcm9tICcuL2FpcnBvcnQtc2VsZWN0LWRyb3Bkb3duL2FpcnBvcnQtc2VsZWN0LWRyb3Bkb3duLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBEZXZpY2VIZWxwZXIgfSBmcm9tICcuLi8uLi9jb3JlL3NlcnZpY2VzL2RldmljZS9kZXZpY2UtaGVscGVyLnNlcnZpY2UnO1xuXG4vKipcbiAqIEBkZXNjcmlwdGlvblxuICogTm9yd2VnaWFuIEFpcnBvcnQgU2VsZWN0IENvbXBvbmVudCB8IEZ1bmN0aW9uYWwgfCBOZXcgZGVzaWduXG4gKi9cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ25hcy1haXJwb3J0LXNlbGVjdCcsXG4gIHRlbXBsYXRlVXJsOiAnLi9haXJwb3J0LXNlbGVjdC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2FpcnBvcnQtc2VsZWN0LmNvbXBvbmVudC5zY3NzJ10sXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmVcbn0pXG5leHBvcnQgY2xhc3MgQWlycG9ydFNlbGVjdENvbXBvbmVudCBleHRlbmRzIE5hc0NvbXBvbmVudEJhc2UgaW1wbGVtZW50cyBPbkluaXQsIEFmdGVyVmlld0luaXQge1xuICBhaXJwb3J0c09yaWdpbjogQXJyYXk8QWlycG9ydE1vZGVsPjtcbiAgYWlycG9ydHNEZXN0aW5hdGlvbiA9IG5ldyBBcnJheTxBaXJwb3J0TW9kZWw+KCk7XG4gIGN1cnJlbnRMYXRlc3RTZWFyY2hlc0Rlc3RpbmF0aW9uOiBBcnJheTxBaXJwb3J0TW9kZWw+O1xuICBjbG9zZXN0QWlycG9ydHNEZXN0aW5hdGlvbjogQXJyYXk8QWlycG9ydE1vZGVsPjtcbiAgZm9jdXNEZXN0aW5hdGlvbiA9IGZhbHNlO1xuICB0ZXh0U2VsZWN0T3JpZ2luRmlyc3Q6IHN0cmluZztcbiAgZm9jdXNlZExhdGVzdFNlYXJjaGVzQWlycG9ydENvZGVEZXN0aW5hdGlvbjogc3RyaW5nO1xuICBmb2N1c2VkQWlycG9ydENvZGVEZXN0aW5hdGlvbjogc3RyaW5nO1xuICBmb2N1c2VkTGF0ZXN0U2VhcmNoZXNJbmRleERlc3RpbmF0aW9uID0gLTE7XG4gIGZvY3VzZWRBaXJwb3J0SW5kZXhEZXN0aW5hdGlvbiA9IC0xO1xuICBzd2l0Y2hUeXBlID0gJ3N3aXRjaCc7XG4gIGlzRGVzdGluYXRpb25WYWxpZDogYm9vbGVhbjtcbiAgaW5saW5lRmxleCA9IGZhbHNlO1xuICBub0Rlc3RpbmF0aW9uQWlycG9ydHNBdmFpbGFibGU6IGJvb2xlYW47XG5cbiAgcmVzdWx0c0xhYmVsczogUmVzdWx0c0xhYmVsc01vZGVsID0ge1xuICAgIGFsbEFpcnBvcnRzOiAnJyxcbiAgICBjbG9zZXN0QWlycG9ydHM6ICcnLFxuICAgIGxhdGVzdFNlYXJjaGVzOiAnJyxcbiAgICBnZW9sb2NhdGlvbjogJycsXG4gICAgZ2VvbG9jYXRpb25EZW5pZWQ6ICcnLFxuICAgIG5vQWlycG9ydHM6ICcnXG4gIH07XG5cbiAgb3JpZ2luT3BlbiA9IGZhbHNlO1xuICBkZXN0aW5hdGlvbk9wZW4gPSBmYWxzZTtcbiAgY2xlYXJlZCA9IGZhbHNlO1xuXG4gIEBWaWV3Q2hpbGQoJ2NvbnRhaW5lcicpIGNvbnRhaW5lcjogRWxlbWVudFJlZjtcbiAgQFZpZXdDaGlsZCgnc3dpdGNoQnV0dG9uJykgc3dpdGNoQnV0dG9uOiBFbGVtZW50UmVmO1xuICBAVmlld0NoaWxkKCdhaXJwb3J0U2VsZWN0RHJvcGRvd25PcmlnaW4nKSBhaXJwb3J0U2VsZWN0RHJvcGRvd25PcmlnaW46IEVsZW1lbnRSZWY7XG4gIEBWaWV3Q2hpbGQoJ2FpcnBvcnRTZWxlY3REcm9wZG93bkRlc3RpbmF0aW9uJykgYWlycG9ydFNlbGVjdERyb3Bkb3duRGVzdGluYXRpb246IEFpcnBvcnRTZWxlY3REcm9wZG93bkNvbXBvbmVudDtcblxuICBvcmlnaW46IEFpcnBvcnRNb2RlbDtcbiAgZGVzdGluYXRpb246IEFpcnBvcnRNb2RlbDtcblxuICAvKipcbiAgICogQHByb3BlcnR5IElucHV0XG4gICAqIEBkZXNjcmlwdGlvblxuICAgKiBUaGUgb3V0Ym91bmQgYWlwb3J0IHNlbGVjdCBJRCBvZiB0aGUgbmF0aXZlIGlucHV0IGVsZW1lbnRcbiAgICovXG4gIEBJbnB1dCgpIG91dGJvdW5kSWQ6IHN0cmluZztcblxuICAvKipcbiAgKiBAcHJvcGVydHkgSW5wdXRcbiAgKiBAZGVzY3JpcHRpb25cbiAgKiBUaGUgaW5ib3VuZCBhaXBvcnQgc2VsZWN0IElEIG9mIHRoZSBuYXRpdmUgaW5wdXQgZWxlbWVudFxuICAqL1xuICBASW5wdXQoKSBpbmJvdW5kSWQ6IHN0cmluZztcblxuICAvKipcbiAgICogQHByb3BlcnR5IElucHV0XG4gICAqIEByZXF1aXJlZFxuICAgKiBAZGVzY3JpcHRpb25cbiAgICogQWxsIGFpcnBvcnRzIHRoYXQgd2lsbCBiZSBwb3B1bGF0ZWQgaW50byB0aGUgZHJvcGRvd24gbGlzdHMuXG4gICAqL1xuICBASW5wdXQoKSBhaXJwb3J0czogQXJyYXk8QWlycG9ydE1vZGVsPjtcblxuICAvKipcbiAgICogQHByb3BlcnR5IElucHV0XG4gICAqIEBkZXNjcmlwdGlvblxuICAgKiBBIHJlY29yZCBjb250YWluaW5nIGtleXMgd2l0aCBhbGwgYWlycG9ydCBjb2RlcyB3aXRoIGNvcnJlc3BvbmRpbmcgYXJyYXkgb2YgYWlycG9ydCBjb2RlcyBjb25uZWN0ZWQgdG8gdGhlIGtleS5cbiAgICovXG4gIEBJbnB1dCgpIGFpcnBvcnRSZWxhdGlvbnM6IFJlY29yZDxzdHJpbmcsIEFycmF5PHN0cmluZz4+O1xuXG4gIC8qKlxuICAgKiBAcHJvcGVydHkgSW5wdXRcbiAgICogQGRlc2NyaXB0aW9uXG4gICAqIEFuIGFycmF5IG9mIG9yaWdpbiBhaXJwb3J0cyB0aGF0IHRoZSB1c2VyIGhhcyBhbGxyZWFkeSBzZWFyY2ggZm9yLlxuICAgKi9cbiAgQElucHV0KCkgbGF0ZXN0U2VhcmNoZXNPcmlnaW46IEFycmF5PEFpcnBvcnRNb2RlbD47XG5cbiAgLyoqXG4gICAqIEBwcm9wZXJ0eSBJbnB1dFxuICAgKiBAZGVzY3JpcHRpb25cbiAgICogQW4gYXJyYXkgb2YgZGVzdGluYXRpb24gYWlycG9ydHMgdGhhdCB0aGUgdXNlciBoYXMgYWxscmVhZHkgc2VhcmNoIGZvci5cbiAgICovXG4gIEBJbnB1dCgpIGxhdGVzdFNlYXJjaGVzRGVzdGluYXRpb246IEFycmF5PEFpcnBvcnRNb2RlbD47XG5cbiAgLyoqXG4gICAqIEBwcm9wZXJ0eSBJbnB1dFxuICAgKiBAZGVzY3JpcHRpb25cbiAgICogQW4gYXJyYXkgb2YgYWlycG9ydHMgdGhhdCBhcmUgY2xvc2UgdG8gdGhlIHVzZXIuXG4gICAqL1xuICBASW5wdXQoKSBjbG9zZXN0QWlycG9ydHM6IEFycmF5PEFpcnBvcnRNb2RlbD47XG5cbiAgLyoqXG4gICAqIEBwcm9wZXJ0eSBJbnB1dFxuICAgKiBAZGVzY3JpcHRpb25cbiAgICogQSBsaXN0IG9mIGFpcnBvcnRzIHRoYXQgc2hvdWxkIGJlIGRpc3BsYXllZCBpbiB0aGUgb3JpZ2luIGRyb3Bkb3duLlxuICAgKiBJZiBub3QgaW5jbHVkZWQsIGFsbCBhaXJwb3J0cyB3aWxsIGJlIGRpc3BsYXllZC5cbiAgICovXG4gIEBJbnB1dCgpIGFsbG93ZWRPcmlnaW5BaXBvcnRzOiBBcnJheTxBaXJwb3J0TW9kZWw+O1xuXG4gIC8qKlxuICAgKiBAcHJvcGVydHkgSW5wdXRcbiAgICogQGRlc2NyaXB0aW9uXG4gICAqIEFuIGFycmF5IG9mIGFpcnBvcnRzIHRoYXQgYXJlIHJlc3RyaWN0ZWQgZm9yIGRlc3RpbmF0aW9uIGFpcnBvcnRzLiBJdCB3aWxsIGRlZmF1bHQgdG8gYWlycG9ydHMgaWYgbm90IHNldC5cbiAgICovXG4gIEBJbnB1dCgpIGFsbG93ZWREZXN0aW5hdGlvbkFpcnBvcnRzOiBBcnJheTxBaXJwb3J0TW9kZWw+O1xuXG4gIC8qKlxuICAgKiBAcHJvcGVydHkgSW5wdXRcbiAgICogQGRlc2NyaXB0aW9uXG4gICAqIEEgYm9vbGVhbiBpbmRpY2F0aW5nIGlmIGFpcnBvcnRzIHRoYXQgdGhlIHVzZXIgYWxscmVhZHkgaGFzIHNlYXJoIGZvciBzaG91bGQgYmUgZGlzcGxheWVkLlxuICAgKi9cbiAgQElucHV0KCkgZGlzcGxheUxhdGVzdFNlYXJjaGVzPzogYm9vbGVhbjtcblxuICAvKipcbiAgICogQHByb3BlcnR5IElucHV0XG4gICAqIEBkZXNjcmlwdGlvblxuICAgKiBBIGJvb2xlYW4gaW5kaWNhdGluZyBpZiBhaXJwb3J0cyB0aGF0IGFyZSBjbG9zZSB0byB0aGUgdXNlciBzaG91bGQgYmUgZGlzcGxheWVkLlxuICAgKi9cbiAgQElucHV0KCkgZGlzcGxheUNsb3Nlc3RBaXJwb3J0cz86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIEBwcm9wZXJ0eSBJbnB1dFxuICAgKiBAZGVzY3JpcHRpb25cbiAgICogRGlzcGxheSBib3RoIG9yZ2luIGFuZCBkZXN0aW5hdGlvbiBhaXJwb3J0IHNlbGVjdG9yLlxuICAgKi9cbiAgQElucHV0KCkgY29tYm8/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBAcHJvcGVydHkgSW5wdXRcbiAgICogQGRlc2NyaXB0aW9uXG4gICAqIERpc3BsYXkgc3dpdGNoIFVJIHRvIGludGVyY2hhbmdlIG9yaWdpbiBhbmQgZGVzdGluYXRpb24gYWlycG9ydC5cbiAgICovXG4gIEBJbnB1dCgpIHVzZVN3aXRjaD86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIEBwcm9wZXJ0eSBJbnB1dFxuICAgKiBAZGVzY3JpcHRpb25cbiAgICogQSBsYWJlbCB0aGF0IHdpbGwgYXBwZWFyIG9uIHRvcCBvZiBhbGwgYWlycG9ydHMgaW4gdGhlIGRyb3AgZG93biBsaXN0LlxuICAgKi9cbiAgQElucHV0KCkgYWxsQWlycG9ydHNMYWJlbDogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBAcHJvcGVydHkgSW5wdXRcbiAgICogQGRlc2NyaXB0aW9uXG4gICAqIEEgbGFiZWwgdGhhdCB3aWxsIGFwcGVhciBvbiB0b3Agb2YgdGhlIGxhdGVzdCBzZWFyY2hlcyBpbiB0aGUgZHJvcCBkb3duIGxpc3QuXG4gICAqL1xuICBASW5wdXQoKSBsYXRlc3RTZWFyY2hlc0xhYmVsOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIEBwcm9wZXJ0eSBJbnB1dFxuICAgKiBAZGVzY3JpcHRpb25cbiAgICogQSBsYWJlbCB0aGF0IHdpbGwgYXBwZWFyIG9uIHRvcCBvZiB0aGUgY2xvc2VzdCBhaXJwb3J0cyBpbiB0aGUgZHJvcCBkb3duIGxpc3QuXG4gICAqL1xuICBASW5wdXQoKSBjbG9zZXN0QWlycG9ydHNMYWJlbDogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBAcHJvcGVydHkgSW5wdXRcbiAgICogQGRlc2NyaXB0aW9uXG4gICAqIEEgbGFiZWwgdGhhdCB3aWxsIGFwcGVhciBpbiBteSBsb2NhdGlvbiBpbiB0aGUgZHJvcCBkb3duIGxpc3QuXG4gICAqL1xuICBASW5wdXQoKSBnZW9sb2NhdGlvbkxhYmVsOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIEBwcm9wZXJ0eSBJbnB1dFxuICAgKiBAZGVzY3JpcHRpb25cbiAgICogQSBsYWJlbCB0aGF0IHdpbGwgYXBwZWFyIGluIG15IGxvY2F0aW9uLCBpbiB0aGUgZHJvcCBkb3duIGxpc3QgaWYgdXNlciBoYXMgZGVuaWVkIGdlb2xvY2F0aW9uLlxuICAgKi9cbiAgQElucHV0KCkgZ2VvbG9jYXRpb25CbG9ja2VkTGFiZWw6IHN0cmluZztcblxuICAvKipcbiAgICogQHByb3BlcnR5IElucHV0XG4gICAqIEBkZXNjcmlwdGlvblxuICAgKiBBIGxhYmVsIHRoYXQgd2lsbCBhcHBlYXIgaW4gdGhlIGRlc3RpbmF0aW9uIGlucHV0IGZpZWxkIGlmIHRoZVxuICAgKiB1c2VyIHRyaWVzIHRvIHNlbGVjdCBhIGRlc3RpbmF0aW9uIGFpcnBvcnQgd2l0aG91dCBzZWxlY3RpbmcgYW4gb3JpZ2luIGFpcnBvcnQuXG4gICAqL1xuICBASW5wdXQoKSBzZWxlY3RPcmlnaW5GaXJzdExhYmVsOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIEBwcm9wZXJ0eSBJbnB1dFxuICAgKiBAZGVzY3JpcHRpb25cbiAgICogQSBsYWJlbCB0aGF0IGFwcGVhciBpbiB0aGUgbGlzdCB0aGF0IHRoZXJlIGlzIGN1cnJlbnRseSBubyBhaXJwb3J0c1xuICAgKi9cbiAgQElucHV0KCkgbm9BaXJwb3J0c0xhYmVsOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIEBwcm9wZXJ0eSBJbnB1dFxuICAgKiBAZGVzY3JpcHRpb25cbiAgICogQSB0ZXh0IHRoYXQgYXBwZWFycyBpbiB0aGUgZGVzdGluYXRpb25zIGRyb3Bkb3duIGxpc3Qgd2hlbiBvcmlnaW4gYWlycG9ydCBpcyBub3Qgc2V0LlxuICAgKi9cbiAgQElucHV0KCkgaW52YWxpZERlc3RpbmF0aW9uVGV4dDogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBAcHJvcGVydHkgSW5wdXRcbiAgICogQHJlcXVpcmVkXG4gICAqIEBkZXNjcmlwdGlvblxuICAgKiBBIGxhYmVsIHRoYXQgd2lsbCBhcHBlYXIgb24gdG9wIG9mIHRoZSBvcmlnaW4gYWlycG9ydCBpbnB1dCBmaWVsZC5cbiAgICovXG4gIEBJbnB1dCgpIGxhYmVsT3JpZ2luID0gJyc7XG5cbiAgLyoqXG4gICAqIEBwcm9wZXJ0eSBJbnB1dFxuICAgKiBAZGVzY3JpcHRpb25cbiAgICogQSBwbGFjZWhvbGRlciB0aGF0IHdpbGwgYXBwZWFyIG9uIHRoZSBvcmlnaW4gYWlycG9ydCBpbnB1dCBmaWVsZC5cbiAgICovXG4gIEBJbnB1dCgpIHBsYWNlaG9sZGVyT3JpZ2luID0gJyc7XG5cbiAgLyoqXG4gICAqIEBwcm9wZXJ0eSBJbnB1dFxuICAgKiBAZGVzY3JpcHRpb25cbiAgICogQSBsYWJlbCB0aGF0IHdpbGwgYXBwZWFyIG9uIHRvcCBvZiB0aGUgZGVzdGluYXRpb24gYWlycG9ydCBpbnB1dCBmaWVsZC5cbiAgICovXG4gIEBJbnB1dCgpIGxhYmVsRGVzdGluYXRpb24gPSAnJztcblxuICAvKipcbiAgICogQHByb3BlcnR5IElucHV0XG4gICAqIEBkZXNjcmlwdGlvblxuICAgKiBBIHBsYWNlaG9sZGVyIHRoYXQgd2lsbCBhcHBlYXIgb24gdGhlIGRlc3RpbmF0aW9uIGFpcnBvcnQgaW5wdXQgZmllbGQuXG4gICAqL1xuICBASW5wdXQoKSBwbGFjZWhvbGRlckRlc3RpbmF0aW9uID0gJyc7XG5cbiAgLyoqXG4gICAqIEBwcm9wZXJ0eSBJbnB1dFxuICAgKiBAZGVzY3JpcHRpb25cbiAgICogRGVjaWRlcyBpZiBhIGxhYmVsIHNob3VsZCBiZSBvdXRzaWRlIG9mIHRoZSBjb250YWluZXIgb3Igbm90LlxuICAgKi9cbiAgQElucHV0KCkgbGFiZWxPdXRzaWRlOiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBAcHJvcGVydHkgSW5wdXRcbiAgICogQGRlc2NyaXB0aW9uXG4gICAqIEEgbW9kaWZpZXIgdGhhdCB3aWxsIGFsbG93IGFsd2F5cyBrZWVwaW5nIHRoZSBzZWxlY3RlZCBhaXJwb3J0LlxuICAgKiBUaGUgbGFzdCBzZWxlY3RlZCBhaXJwb3J0IHdpbGwgYmUgc2hvd24gb25jZSB1c2VyIGNsZWFycyB0aGUgc2VsZWN0aW9uIGFuZCBibHVyLlxuICAgKi9cbiAgQElucHV0KCkga2VlcFNlbGVjdGlvbjogYm9vbGVhbjtcblxuICAvKipcbiAgICogQHByb3BlcnR5IElucHV0XG4gICAqIEBkZXNjcmlwdGlvblxuICAgKiBTZXRzIGEgZm9ybUNvbnRyb2xOYW1lIGRpcmVjdGl2ZSB0byB0aGUgaW5wdXQuXG4gICAqIEl0IHJlcXVpcmVzIHRoYXQgdGhlIGNvbnN1bWVyIGluY2x1ZGVkIFJlYWN0aXZlRm9ybXNNb2R1bGUgaW4gaXQncyBtb2R1bGUuXG4gICAqIEl0IHJlcXVpZXJzIHRoYXQgdGhlIG5hc0Zvcm1Hcm91cCBpbnB1dCBpcyBmaWxsZWQuXG4gICAqL1xuICBASW5wdXQoKSBuYXNGb3JtQ29udHJvbE5hbWVPcmlnaW46IHN0cmluZztcblxuICAvKipcbiAgICogQHByb3BlcnR5IElucHV0XG4gICAqIEBkZXNjcmlwdGlvblxuICAgKiBTZXRzIGEgZm9ybUNvbnRyb2xOYW1lIGRpcmVjdGl2ZSB0byB0aGUgaW5wdXQuXG4gICAqIEl0IHJlcXVpcmVzIHRoYXQgdGhlIGNvbnN1bWVyIGluY2x1ZGVkIFJlYWN0aXZlRm9ybXNNb2R1bGUgaW4gaXQncyBtb2R1bGUuXG4gICAqIEl0IHJlcXVpZXJzIHRoYXQgdGhlIG5hc0Zvcm1Hcm91cCBpbnB1dCBpcyBmaWxsZWQuXG4gICAqL1xuICBASW5wdXQoKSBuYXNGb3JtQ29udHJvbE5hbWVEZXN0aW5hdGlvbjogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBAcHJvcGVydHkgSW5wdXRcbiAgICogQGRlc2NyaXB0aW9uXG4gICAqIEFkZHMgdGhlIHBhcmVudCdzIGZvcm0gZ3JvdXAuXG4gICAqIEl0IHJlcXVpcmVzIHRoYXQgdGhlIGNvbnN1bWVyIGluY2x1ZGVkIFJlYWN0aXZlRm9ybXNNb2R1bGUgaW4gaXQncyBtb2R1bGUuXG4gICAqIEl0IGlzIHJlcXVpZXJlZCB0byBiZSBmaWxsZWQgaWYgbmFzRm9ybUNvbnRyb2xOYW1lIGFkZGVkLlxuICAgKi9cbiAgQElucHV0KCkgbmFzRm9ybUdyb3VwOiBGb3JtR3JvdXA7XG5cbiAgLyoqXG4gICAqIEBwcm9wZXJ0eSBJbnB1dFxuICAgKiBAZGVzY3JpcHRpb25cbiAgICogVGhlIGFpcnBvcnQgY29kZSBvZiB0aGUgb3JpZ2luIGFpcnBvcnQuIEl0IHdpbGwgc2V0IHRoZSBzZWxlY3RlZCBvcmlnaW4gYWlycG9ydCBiYXNlZCBvbiB0aGlzIHZhbHVlLlxuICAgKi9cbiAgQElucHV0KClcbiAgZ2V0IG9yaWdpbkFpcnBvcnRDb2RlKCkge1xuICAgIHJldHVybiB0aGlzLm9yaWdpbkFpcnBvcnRDb2RlVmFsdWU7XG4gIH1cbiAgc2V0IG9yaWdpbkFpcnBvcnRDb2RlKGNvZGU6IHN0cmluZykge1xuICAgIGlmIChjb2RlKSB7XG4gICAgICBpZiAoY29kZSAhPT0gdGhpcy5vcmlnaW5BaXJwb3J0Q29kZVZhbHVlKSB7XG4gICAgICAgIHRoaXMub3JpZ2luQWlycG9ydENvZGVWYWx1ZSA9IGNvZGU7XG4gICAgICAgIHRoaXMuc2V0T3JpZ2luKCk7XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMub3JpZ2luQWlycG9ydENvZGVWYWx1ZSA9ICcnO1xuICAgICAgdGhpcy5jbGVhck9yaWdpbigpO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBAcHJvcGVydHkgSW5wdXRcbiAgICogQGRlc2NyaXB0aW9uXG4gICAqIFRoZSBhaXJwb3J0IGNvZGUgb2YgdGhlIGRlc3RpbmF0aW9uIGFpcnBvcnQuIEl0IHdpbGwgc2V0IHRoZSBzZWxlY3RlZCBkZXN0aW5hdGlvbiBhaXJwb3J0IGJhc2VkIG9uIHRoaXMgdmFsdWUuXG4gICAqL1xuICBASW5wdXQoKVxuICBnZXQgZGVzdGluYXRpb25BaXJwb3J0Q29kZSgpIHtcbiAgICByZXR1cm4gdGhpcy5kZXN0aW5hdGlvbkFpcnBvcnRDb2RlVmFsdWU7XG4gIH1cbiAgc2V0IGRlc3RpbmF0aW9uQWlycG9ydENvZGUoY29kZTogc3RyaW5nKSB7XG4gICAgaWYgKGNvZGUpIHtcbiAgICAgIGlmIChjb2RlICE9PSB0aGlzLmRlc3RpbmF0aW9uQWlycG9ydENvZGVWYWx1ZSkge1xuICAgICAgICB0aGlzLmRlc3RpbmF0aW9uQWlycG9ydENvZGVWYWx1ZSA9IGNvZGU7XG4gICAgICAgIHRoaXMuc2V0RGVzdGluYXRpb24oKTtcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5kZXN0aW5hdGlvbkFpcnBvcnRDb2RlVmFsdWUgPSAnJztcbiAgICAgIHRoaXMuY2xlYXJEZXN0aW5hdGlvbigpO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBAcHJvcGVydHkgSW5wdXRcbiAgICogQGRlc2NyaXB0aW9uXG4gICAqIEFkZHMgJ2FyaWEtbGFiZWwnIG9uIHRoZSBjbGVhciBidXR0b24gaW5zaWRlIHRoZSBhaXJwb3J0IHNlbGVjdCBpbnB1dHMuXG4gICAqL1xuICBASW5wdXQoKSBhcmlhTGFiZWxDbGVhcjogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBAcHJvcGVydHkgSW5wdXRcbiAgICogQGRlc2NyaXB0aW9uXG4gICAqIEFkZHMgJ2FyaWEtbGFiZWwnIHRvIHRoZSBiYWNrZHJvcHMuXG4gICAqL1xuICBASW5wdXQoKSBhcmlhTGFiZWxCYWNrZHJvcDogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBAcHJvcGVydHkgT3V0cHV0XG4gICAqIEBkZXNjcmlwdGlvblxuICAgKiBBbiBldmVudCB0aGF0IGlzIGZpcmVkIGV2ZXJ5IHRpbWUgdGhlIHNlbGVjdGVkIG9yaWdpbiBhaXJwb3J0IGNoYW5nZXMuXG4gICAqL1xuICBAT3V0cHV0KCkgb3JpZ2luQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxBaXJwb3J0TW9kZWw+KCk7XG5cbiAgLyoqXG4gICAqIEBwcm9wZXJ0eSBPdXRwdXRcbiAgICogQGRlc2NyaXB0aW9uXG4gICAqIEFuIGV2ZW50IHRoYXQgaXMgZmlyZWQgZXZlcnkgdGltZSB0aGUgb3JpZ2luIGRyb3Bkb3duIHNlbGVjdG9yIG9wZW5zIG9yIGNsb3Nlcy5cbiAgICovXG4gIEBPdXRwdXQoKSBvcmlnaW5PcGVuQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxib29sZWFuPigpO1xuXG4gIC8qKlxuICAqIEBwcm9wZXJ0eSBPdXRwdXRcbiAgKiBAZGVzY3JpcHRpb25cbiAgKiBBbiBldmVudCB0aGF0IGlzIGZpcmVkIGV2ZXJ5IHRpbWUgdGhlIG9yaWdpbiBkcm9wZG93biBzZWxlY3RvciBvcGVucyBvciBjbG9zZXMuXG4gICovXG4gIEBPdXRwdXQoKSBkZXN0aW5hdGlvbkNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8QWlycG9ydE1vZGVsPigpO1xuXG4gIC8qKlxuICAgKiBAcHJvcGVydHkgT3V0cHV0XG4gICAqIEBkZXNjcmlwdGlvblxuICAgKiBBbiBldmVudCB0aGF0IGlzIGZpcmVkIGV2ZXJ5IHRpbWUgdGhlIGRlc3RpbmF0aW9uIGRyb3Bkb3duIHNlbGVjdG9yIG9wZW5zIG9yIGNsb3Nlcy5cbiAgICovXG4gIEBPdXRwdXQoKSBkZXN0aW5hdGlvbk9wZW5DaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPGJvb2xlYW4+KCk7XG5cbiAgLyoqXG4gICAqIEBwcm9wZXJ0eSBPdXRwdXRcbiAgICogQGRlc2NyaXB0aW9uXG4gICAqIEFuIGV2ZW50IHRoYXQgaXMgZmlyZWQgd2hlbiB0aGUgZGVzdGluYXRpb24gZHJvcGRvd24gY2xvc2VzLlxuICAgKi9cbiAgQE91dHB1dCgpIGZvY3VzT25OZXh0ID0gbmV3IEV2ZW50RW1pdHRlcjxLZXlib2FyZEV2ZW50PigpO1xuXG4gIC8qKlxuICAgKiBAcHJvcGVydHkgT3V0cHV0XG4gICAqIEBkZXNjcmlwdGlvblxuICAgKiBBbiBldmVudCB0aGF0IGlzIGZpcmVkIHdoZW4gZ2VvbG9jYXRpb24gcG9zaXRpb24gaGFzIGNoYW5nZWQuXG4gICAqL1xuICBAT3V0cHV0KCkgcG9zaXRpb25DaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPEdlb2xvY2F0aW9uUG9zaXRpb24+KCk7XG5cbiAgcHJpdmF0ZSBvcmlnaW5BaXJwb3J0Q29kZVZhbHVlOiBzdHJpbmc7XG4gIHByaXZhdGUgZGVzdGluYXRpb25BaXJwb3J0Q29kZVZhbHVlOiBzdHJpbmc7XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBkZXZpY2VIZWxwZXI6IERldmljZUhlbHBlcixcbiAgICBwcml2YXRlIGNkcjogQ2hhbmdlRGV0ZWN0b3JSZWZcbiAgKSB7XG4gICAgc3VwZXIoJ25hcy1haXJwb3J0LXNlbGVjdCcpO1xuICB9XG5cbiAgQEhvc3RMaXN0ZW5lcihcIndpbmRvdzpyZXNpemVcIiwgW1wiJGV2ZW50XCJdKVxuICBvblJlc2l6ZSgpIHtcbiAgICB0aGlzLnNldElubGluZUZsZXgoKTtcbiAgfVxuXG4gIG5nT25Jbml0KCkge1xuICAgIGlmICghdGhpcy5haXJwb3J0cykge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdNaXNzaW5nIGlucHV0OiBbYWlycG9ydHNdJyk7XG4gICAgfVxuXG4gICAgdGhpcy5yZXN1bHRzTGFiZWxzID0ge1xuICAgICAgYWxsQWlycG9ydHM6IHRoaXMuYWxsQWlycG9ydHNMYWJlbCB8fCAnJyxcbiAgICAgIGNsb3Nlc3RBaXJwb3J0czogdGhpcy5jbG9zZXN0QWlycG9ydHNMYWJlbCB8fCAnJyxcbiAgICAgIGxhdGVzdFNlYXJjaGVzOiB0aGlzLmxhdGVzdFNlYXJjaGVzTGFiZWwgfHwgJycsXG4gICAgICBnZW9sb2NhdGlvbjogdGhpcy5nZW9sb2NhdGlvbkxhYmVsIHx8ICcnLFxuICAgICAgZ2VvbG9jYXRpb25EZW5pZWQ6IHRoaXMuZ2VvbG9jYXRpb25CbG9ja2VkTGFiZWwgfHwgJycsXG4gICAgICBub0FpcnBvcnRzOiB0aGlzLm5vQWlycG9ydHNMYWJlbCB8fCAnJ1xuICAgIH07XG5cbiAgICB0aGlzLnRleHRTZWxlY3RPcmlnaW5GaXJzdCA9IHRoaXMuc2VsZWN0T3JpZ2luRmlyc3RMYWJlbDtcbiAgICB0aGlzLmFpcnBvcnRzT3JpZ2luID0gdGhpcy5hbGxvd2VkT3JpZ2luQWlwb3J0cyAmJiB0aGlzLmFsbG93ZWRPcmlnaW5BaXBvcnRzLmxlbmd0aCA+IDAgPyB0aGlzLmFsbG93ZWRPcmlnaW5BaXBvcnRzIDogdGhpcy5haXJwb3J0cztcblxuICAgIHRoaXMuYWlycG9ydHNEZXN0aW5hdGlvbiA9IHRoaXMuZ2V0QWlycG9ydHNEZXN0aW5hdGlvbnMoKTtcblxuICAgIGlmICh0aGlzLm5hc0Zvcm1Hcm91cCkge1xuICAgICAgaWYgKHRoaXMubmFzRm9ybUNvbnRyb2xOYW1lT3JpZ2luKSB7XG4gICAgICAgIGNvbnN0IG9yaWdpbkNvbnRyb2wgPSB0aGlzLm5hc0Zvcm1Hcm91cC5nZXQodGhpcy5uYXNGb3JtQ29udHJvbE5hbWVPcmlnaW4pO1xuXG4gICAgICAgIGlmIChvcmlnaW5Db250cm9sKSB7XG4gICAgICAgICAgY29uc3Qgb3JpZ2luID0gdGhpcy5haXJwb3J0c09yaWdpbi5maW5kKHggPT4geC5uYW1lID09PSBvcmlnaW5Db250cm9sLnZhbHVlKTtcblxuICAgICAgICAgIGlmIChvcmlnaW4pIHtcbiAgICAgICAgICAgIHRoaXMub3JpZ2luQWlycG9ydENvZGUgPSBvcmlnaW4uY29kZTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgaWYgKHRoaXMubmFzRm9ybUNvbnRyb2xOYW1lRGVzdGluYXRpb24pIHtcbiAgICAgICAgY29uc3QgZGVzdGluYXRpb25Db250cm9sID0gdGhpcy5uYXNGb3JtR3JvdXAuZ2V0KHRoaXMubmFzRm9ybUNvbnRyb2xOYW1lRGVzdGluYXRpb24pO1xuXG4gICAgICAgIGlmIChkZXN0aW5hdGlvbkNvbnRyb2wpIHtcbiAgICAgICAgICBjb25zdCBkZXN0aW5hdGlvbiA9IHRoaXMuYWlycG9ydHNEZXN0aW5hdGlvbi5maW5kKHggPT4geC5uYW1lID09PSBkZXN0aW5hdGlvbkNvbnRyb2wudmFsdWUpO1xuXG4gICAgICAgICAgaWYgKGRlc3RpbmF0aW9uKSB7XG4gICAgICAgICAgICB0aGlzLmRlc3RpbmF0aW9uQWlycG9ydENvZGUgPSBkZXN0aW5hdGlvbi5jb2RlO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIGlmICghdGhpcy5kZXN0aW5hdGlvbikge1xuICAgICAgdGhpcy5jbGVhckRlc3RpbmF0aW9uKCk7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdGhpcy5kZXN0aW5hdGlvbkNoYW5nZS5lbWl0KHRoaXMuZGVzdGluYXRpb24pO1xuICAgIHRoaXMub3JpZ2luQ2hhbmdlLmVtaXQodGhpcy5vcmlnaW4pO1xuXG5cbiAgICBpZiAodGhpcy5vcmlnaW5BaXJwb3J0Q29kZSkge1xuICAgICAgdGhpcy5zZXRPcmlnaW4oKTtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5kZXN0aW5hdGlvbkFpcnBvcnRDb2RlKSB7XG4gICAgICB0aGlzLnNldERlc3RpbmF0aW9uKCk7XG4gICAgfVxuICB9XG5cbiAgbmdBZnRlclZpZXdJbml0KCkge1xuICAgIHRoaXMuc2V0SW5saW5lRmxleCgpO1xuICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcbiAgfVxuXG4gIGdldEFpcnBvcnRTZWxlY3RDb21ib0NsYXNzKGVsZW1lbnQ/OiBzdHJpbmcsIG1vZGlmaWVyc0lucHV0PzogYW55KTogQ2xhc3NNb2RlbCB7XG4gICAgbGV0IG1vZGlmaWVycyA9IG1vZGlmaWVyc0lucHV0O1xuXG4gICAgaWYgKHR5cGVvZiBtb2RpZmllcnNJbnB1dCA9PT0gJ3N0cmluZycgfHwgbW9kaWZpZXJzSW5wdXQgaW5zdGFuY2VvZiBTdHJpbmcpIHtcbiAgICAgIG1vZGlmaWVycyA9IFttb2RpZmllcnNJbnB1dF07XG4gICAgfVxuXG4gICAgcmV0dXJuIHtcbiAgICAgIGJsb2NrOiAnbmFzLWFpcnBvcnQtc2VsZWN0LWNvbWJvJyxcbiAgICAgIGVsZW1lbnQ6IGVsZW1lbnQsXG4gICAgICBtb2RpZmllcnM6IG1vZGlmaWVyc1xuICAgIH07XG4gIH1cblxuICBvbk9yaWdpbk9wZW4ob3BlbjogYm9vbGVhbik6IHZvaWQge1xuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgdGhpcy5vcmlnaW5PcGVuID0gb3BlbjtcbiAgICB9KTtcbiAgICB0aGlzLmRlc3RpbmF0aW9uT3BlbiA9IGZhbHNlO1xuICAgIHRoaXMub3JpZ2luT3BlbkNoYW5nZS5lbWl0KG9wZW4pO1xuICB9XG5cbiAgb25EZXN0aW5hdGlvbk9wZW4ob3BlbjogYm9vbGVhbik6IHZvaWQge1xuICAgIHRoaXMuZGVzdGluYXRpb25PcGVuID0gb3BlbjtcbiAgICB0aGlzLm9yaWdpbk9wZW4gPSBmYWxzZTsgICAgXG5cbiAgICBpZih0aGlzLm9yaWdpbkFpcnBvcnRDb2RlICYmICh0aGlzLmFpcnBvcnRzRGVzdGluYXRpb24gJiYgdGhpcy5haXJwb3J0c0Rlc3RpbmF0aW9uLmxlbmd0aCA8PSAwKSkge1xuICAgICAgdGhpcy5ub0Rlc3RpbmF0aW9uQWlycG9ydHNBdmFpbGFibGUgPSB0cnVlO1xuICAgICAgdGhpcy5jbGVhckRlc3RpbmF0aW9uKCk7XG4gICAgfVxuXG4gICAgdGhpcy5kZXN0aW5hdGlvbk9wZW5DaGFuZ2UuZW1pdChvcGVuKTtcbiAgfVxuXG4gIG9uU2VsZWN0aW9uQ2xlYXJlZCgpOiB2b2lkIHtcbiAgICB0aGlzLmNsZWFyZWQgPSB0cnVlO1xuICB9XG5cbiAgc2V0U2VsZWN0ZWRPcmlnaW4oYWlycG9ydDogQWlycG9ydE1vZGVsKTogdm9pZCB7XG4gICAgdGhpcy5ub0Rlc3RpbmF0aW9uQWlycG9ydHNBdmFpbGFibGUgPSBmYWxzZTtcbiAgICBpZiAoIWFpcnBvcnQpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB0aGlzLm9yaWdpbiA9IGFpcnBvcnQ7XG4gICAgdGhpcy5vcmlnaW5BaXJwb3J0Q29kZVZhbHVlID0gYWlycG9ydC5jb2RlO1xuICAgIHRoaXMuaXNEZXN0aW5hdGlvblZhbGlkID0gYWlycG9ydC5jb2RlID8gdHJ1ZSA6IGZhbHNlO1xuXG4gICAgaWYgKHRoaXMuYWlycG9ydFJlbGF0aW9ucyAmJiB0aGlzLmhhc1ZhbGlkRGVzdGluYXRpb25zKGFpcnBvcnQpKSB7XG4gICAgICB0aGlzLnVwZGF0ZVZhbGlkQWlycG9ydERlc3RpbmF0aW9ucyhhaXJwb3J0KTtcbiAgICAgIHRoaXMuc2V0Q3VycmVudExhdGVzdFNlYXJjaGVzRGVzdGluYXRpb24oKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5haXJwb3J0c0Rlc3RpbmF0aW9uID0gW107XG4gICAgfVxuICAgIHRoaXMuY2xlYXJlZCA9IGZhbHNlO1xuICAgIHRoaXMub3JpZ2luQ2hhbmdlLmVtaXQoYWlycG9ydCk7XG4gIH1cblxuICBzZXRTZWxlY3RlZERlc3RpbmF0aW9uKGFpcnBvcnQ6IEFpcnBvcnRNb2RlbCk6IHZvaWQge1xuICAgIGlmICghYWlycG9ydCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHRoaXMuZGVzdGluYXRpb24gPSBhaXJwb3J0OyBcbiAgICB0aGlzLmRlc3RpbmF0aW9uQWlycG9ydENvZGVWYWx1ZSA9IGFpcnBvcnQuY29kZTtcbiAgICB0aGlzLmNsZWFyZWQgPSBmYWxzZTtcblxuICAgIHRoaXMuZGVzdGluYXRpb25DaGFuZ2UuZW1pdChhaXJwb3J0KTtcbiAgfVxuXG4gIHNldEZvY3VzT25OZXh0KGV2ZW50OiBLZXlib2FyZEV2ZW50KTogdm9pZCB7XG4gICAgdGhpcy5mb2N1c09uTmV4dC5lbWl0KGV2ZW50KTtcbiAgfVxuXG4gIG9uT3JpZ2luRm9jdXMoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuYWlycG9ydFNlbGVjdERyb3Bkb3duT3JpZ2luKSB7XG4gICAgICB0aGlzLm9uT3JpZ2luT3Blbih0cnVlKTtcbiAgICB9XG4gIH1cblxuICBjaGFuZ2VTd2l0Y2hJY29uKCk6IHZvaWQge1xuICAgIHRoaXMuc3dpdGNoVHlwZSA9IHRoaXMuc3dpdGNoVHlwZSA9PT0gJ3N3aXRjaCcgPyAnc3dpdGNoLS1zZWNvbmRhcnknIDogJ3N3aXRjaCc7XG4gIH1cblxuICBzd2FwQWlycG9ydHMoKTogdm9pZCB7XG4gICAgY29uc3QgZGVzdGluYXRpb24gPSB7IC4uLnRoaXMuZGVzdGluYXRpb24gfTtcbiAgICBjb25zdCBvcmlnaW4gPSB7IC4uLnRoaXMub3JpZ2luIH07XG4gICAgdGhpcy5kZXN0aW5hdGlvbiA9IG9yaWdpbjtcbiAgICB0aGlzLm9yaWdpbiA9IGRlc3RpbmF0aW9uO1xuXG4gICAgdGhpcy5zZXRTZWxlY3RlZERlc3RpbmF0aW9uKHRoaXMuZGVzdGluYXRpb24pO1xuICAgIHRoaXMuc2V0U2VsZWN0ZWRPcmlnaW4odGhpcy5vcmlnaW4pO1xuICB9XG5cbiAgc3dhcEtleURvd24oZXZlbnQ6IEtleWJvYXJkRXZlbnQpOiB2b2lkIHtcbiAgICBzd2l0Y2ggKGV2ZW50LmtleSkge1xuICAgICAgY2FzZSAnRW50ZXInOlxuICAgICAgICB0aGlzLnN3YXBBaXJwb3J0cygpO1xuICAgICAgICBicmVhaztcbiAgICB9XG4gIH1cblxuICBzZXREZXN0aW5hdGlvbk9wZW4oZXZlbnQ6IEtleWJvYXJkRXZlbnQpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5leGlzdHModGhpcy5jb21ibykpIHtcbiAgICAgIHRoaXMub25EZXN0aW5hdGlvbk9wZW4odHJ1ZSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuc2V0Rm9jdXNPbk5leHQoZXZlbnQpO1xuICAgIH1cbiAgfVxuXG4gIGdldENsb3Nlc3RBaXJwb3J0cyhwb3NpdGlvbjogR2VvbG9jYXRpb25Qb3NpdGlvbik6IHZvaWQge1xuICAgIHRoaXMucG9zaXRpb25DaGFuZ2UuZW1pdChwb3NpdGlvbik7XG4gIH1cblxuICBzZXRJbmxpbmVGbGV4KCk6IHZvaWQge1xuICAgIGlmICghdGhpcy5jb250YWluZXIgJiYgIXRoaXMuY29udGFpbmVyPy5uYXRpdmVFbGVtZW50KSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIHRoaXMuaW5saW5lRmxleCA9ICF0aGlzLmRldmljZUhlbHBlci5pc1dpZHRoTW9iaWxlKHRoaXMuY29udGFpbmVyLm5hdGl2ZUVsZW1lbnQub2Zmc2V0V2lkdGgpO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXRBaXJwb3J0c0Rlc3RpbmF0aW9ucygpOiBBcnJheTxBaXJwb3J0TW9kZWw+IHtcbiAgICBjb25zdCBhbGxvd2VkRGVzdGluYXRpb25BaXJwb3J0cyA9IHRoaXMuYWxsb3dlZERlc3RpbmF0aW9uQWlycG9ydHM7XG5cbiAgICByZXR1cm4gYWxsb3dlZERlc3RpbmF0aW9uQWlycG9ydHMgJiYgYWxsb3dlZERlc3RpbmF0aW9uQWlycG9ydHMubGVuZ3RoID4gMFxuICAgICAgPyBhbGxvd2VkRGVzdGluYXRpb25BaXJwb3J0c1xuICAgICAgOiB0aGlzLmFpcnBvcnRzO1xuICB9XG5cbiAgcHJpdmF0ZSBzZXRPcmlnaW4oKTogdm9pZCB7XG4gICAgY29uc3QgYWlycG9ydCA9IHRoaXMuYWlycG9ydHMuZmluZCh4ID0+IHguY29kZSA9PT0gdGhpcy5vcmlnaW5BaXJwb3J0Q29kZSk7XG5cbiAgICBpZiAoYWlycG9ydCkge1xuICAgICAgdGhpcy5zZXRTZWxlY3RlZE9yaWdpbihhaXJwb3J0KTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIHNldERlc3RpbmF0aW9uKCk6IHZvaWQge1xuICAgIGNvbnN0IGFpcnBvcnQgPSB0aGlzLmFpcnBvcnRzLmZpbmQoeCA9PiB4LmNvZGUgPT09IHRoaXMuZGVzdGluYXRpb25BaXJwb3J0Q29kZSk7XG5cbiAgICBpZiAoYWlycG9ydCkge1xuICAgICAgdGhpcy5zZXRTZWxlY3RlZERlc3RpbmF0aW9uKGFpcnBvcnQpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgdXBkYXRlVmFsaWRBaXJwb3J0RGVzdGluYXRpb25zKGFpcnBvcnQ6IEFpcnBvcnRNb2RlbCk6IHZvaWQge1xuICAgIGlmICghdGhpcy5haXJwb3J0UmVsYXRpb25zKSB7XG4gICAgICB0aGlzLmFpcnBvcnRzRGVzdGluYXRpb24gPSB0aGlzLmFpcnBvcnRzT3JpZ2luO1xuICAgIH0gZWxzZSB7XG4gICAgICBjb25zdCB2YWxpZERlc3RpbmF0aW9ucyA9IHRoaXMuZ2V0QWlycG9ydFJlbGF0aW9ucyhhaXJwb3J0KTtcblxuICAgICAgaWYgKCF2YWxpZERlc3RpbmF0aW9ucykge1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG5cbiAgICAgIGlmICh2YWxpZERlc3RpbmF0aW9ucy5sZW5ndGggPT09IDApIHtcbiAgICAgICAgdGhpcy5jbGVhckRlc3RpbmF0aW9ucygpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgbGV0IGlzRGVzdGluYXRpb25WYWxpZDogYm9vbGVhbjtcbiAgICAgICAgaWYgKHRoaXMuZGVzdGluYXRpb24gJiYgdGhpcy5kZXN0aW5hdGlvbi5jb2RlKSB7XG4gICAgICAgICAgaXNEZXN0aW5hdGlvblZhbGlkID0gdmFsaWREZXN0aW5hdGlvbnMuc29tZSh4ID0+IHggJiYgeC50b0xvd2VyQ2FzZSgpID09PSB0aGlzLmRlc3RpbmF0aW9uLmNvZGUudG9Mb3dlckNhc2UoKSk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKCFpc0Rlc3RpbmF0aW9uVmFsaWQpIHtcbiAgICAgICAgICB0aGlzLmNsZWFyRGVzdGluYXRpb24oKTtcbiAgICAgICAgICB0aGlzLmRlc3RpbmF0aW9uQ2hhbmdlLmVtaXQobnVsbCk7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAodGhpcy5haXJwb3J0cykge1xuICAgICAgICAgIHRoaXMuYWlycG9ydHNEZXN0aW5hdGlvbiA9IHRoaXMuYWlycG9ydHNcbiAgICAgICAgICAgIC5maWx0ZXIoYWlycG9ydEl0ZW0gPT4gYWlycG9ydEl0ZW1cbiAgICAgICAgICAgICAgJiYgYWlycG9ydEl0ZW0uY29kZVxuICAgICAgICAgICAgICAmJiB2YWxpZERlc3RpbmF0aW9ucy5zb21lKHggPT4geCAmJiBhaXJwb3J0SXRlbS5jb2RlLnRvTG93ZXJDYXNlKCkgPT09IHgudG9Mb3dlckNhc2UoKSkpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBoYXNWYWxpZERlc3RpbmF0aW9ucyhvcmlnaW46IEFpcnBvcnRNb2RlbCk6IGJvb2xlYW4ge1xuICAgIGlmICghb3JpZ2luKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGNvbnN0IHJlbGF0aW9ucyA9IHRoaXMuZ2V0QWlycG9ydFJlbGF0aW9ucyhvcmlnaW4pO1xuXG4gICAgcmV0dXJuIHJlbGF0aW9ucyAmJiByZWxhdGlvbnMubGVuZ3RoID4gMDtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0QWlycG9ydFJlbGF0aW9ucyhhaXJwb3J0OiBBaXJwb3J0TW9kZWwpOiBBcnJheTxzdHJpbmc+IHtcbiAgICBpZiAoIXRoaXMuYWlycG9ydHMpIHtcbiAgICAgIHJldHVybiBuZXcgQXJyYXk8c3RyaW5nPigpO1xuICAgIH1cblxuICAgIHJldHVybiB0aGlzLmFpcnBvcnRSZWxhdGlvbnNbYWlycG9ydC5jb2RlLnRvTG93ZXJDYXNlKCldIHx8IHRoaXMuYWlycG9ydFJlbGF0aW9uc1thaXJwb3J0LmNvZGUudG9VcHBlckNhc2UoKV07XG4gIH1cblxuICBwcml2YXRlIGNsZWFyT3JpZ2luKCkge1xuICAgIHRoaXMuc2V0U2VsZWN0ZWRPcmlnaW4oe1xuICAgICAgY29kZTogJycsXG4gICAgICBjb3VudHJ5TmFtZTogJycsXG4gICAgICBuYW1lOiAnJyxcbiAgICAgIGFpcnBvcnROYW1lOiAnJyxcbiAgICAgIGRpc3BsYXlOYW1lOiAnJyxcbiAgICAgIG5vcm1hbGl6ZWRBaXJwb3J0TmFtZTogJydcbiAgICB9KTtcbiAgfVxuXG4gIGNsZWFyRGVzdGluYXRpb24oKTogdm9pZCB7XG4gICAgdGhpcy5zZXRTZWxlY3RlZERlc3RpbmF0aW9uKHtcbiAgICAgIGNvZGU6ICcnLFxuICAgICAgY291bnRyeU5hbWU6ICcnLFxuICAgICAgbmFtZTogJycsXG4gICAgICBhaXJwb3J0TmFtZTogJycsXG4gICAgICBkaXNwbGF5TmFtZTogJycsXG4gICAgICBub3JtYWxpemVkQWlycG9ydE5hbWU6ICcnXG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIGNsZWFyRGVzdGluYXRpb25zKCk6IHZvaWQge1xuICAgIHRoaXMuYWlycG9ydHNEZXN0aW5hdGlvbiA9IG5ldyBBcnJheTxBaXJwb3J0TW9kZWw+KCk7XG5cbiAgICBjb25zdCBtb2RlbCA9IHtcbiAgICAgIG5hbWU6IHRoaXMudGV4dFNlbGVjdE9yaWdpbkZpcnN0LFxuICAgICAgY291bnRyeU5hbWU6ICcnLFxuICAgICAgY29kZTogJycsXG4gICAgICBhaXJwb3J0TmFtZTogJycsXG4gICAgICBkaXNwbGF5TmFtZTogJycsXG4gICAgICBub3JtYWxpemVkQWlycG9ydE5hbWU6ICcnXG4gICAgfTtcblxuICAgIHRoaXMuYWlycG9ydHNEZXN0aW5hdGlvbi5wdXNoKG1vZGVsKTtcbiAgICB0aGlzLmNsZWFyRGVzdGluYXRpb24oKTtcbiAgICB0aGlzLmRlc3RpbmF0aW9uQ2hhbmdlLmVtaXQobW9kZWwpO1xuICB9XG5cbiAgcHJpdmF0ZSBzZXRDdXJyZW50TGF0ZXN0U2VhcmNoZXNEZXN0aW5hdGlvbigpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5haXJwb3J0c0Rlc3RpbmF0aW9uKSB7XG4gICAgICB0aGlzLmN1cnJlbnRMYXRlc3RTZWFyY2hlc0Rlc3RpbmF0aW9uID0gdGhpcy5haXJwb3J0c0Rlc3RpbmF0aW9uLmZpbHRlcihhaXJwb3J0ID0+IHtcbiAgICAgICAgaWYgKHRoaXMubGF0ZXN0U2VhcmNoZXNEZXN0aW5hdGlvbikge1xuICAgICAgICAgIHJldHVybiB0aGlzLmxhdGVzdFNlYXJjaGVzRGVzdGluYXRpb24uc29tZSh4ID0+IHguY29kZSAmJiB4LmNvZGUudG9Mb3dlckNhc2UoKSA9PT0gYWlycG9ydC5jb2RlLnRvTG93ZXJDYXNlKCkpO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICB9XG4gIH1cbn1cbiIsIjxkaXYgKm5nSWY9XCJleGlzdHMoY29tYm8pOyBlbHNlIGFpcnBvcnRTZWxlY3RUZW1wbGF0ZVwiXG4gIFtuYXNDbGFzc109XCJnZXRBaXJwb3J0U2VsZWN0Q29tYm9DbGFzcygnJywgW2lubGluZUZsZXggJiYgJ2lubGluZSddKVwiICNjb250YWluZXI+XG4gIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJhaXJwb3J0U2VsZWN0VGVtcGxhdGVcIj48L25nLWNvbnRhaW5lcj5cbjwvZGl2PlxuPG5nLXRlbXBsYXRlICNhaXJwb3J0U2VsZWN0VGVtcGxhdGU+XG4gIDxkaXYgW25hc0NsYXNzXT1cImdldENsYXNzKCcnLCBleGlzdHModXNlU3dpdGNoKSAmJiAncGFkZGluZy1vcmlnaW4nKVwiICpuZ0lmPVwiYWlycG9ydHNPcmlnaW5cIj5cbiAgICA8bmFzLWFpcnBvcnQtc2VsZWN0LWRyb3Bkb3duICNhaXJwb3J0U2VsZWN0RHJvcGRvd25PcmlnaW4gZGlzcGxheUxhdGVzdFNlYXJjaGVzIFtpZF09XCJvdXRib3VuZElkXCJcbiAgICAgIFtlbmFibGVHZW9sb2NhdGlvbl09XCJkaXNwbGF5Q2xvc2VzdEFpcnBvcnRzXCIgW2Rpc3BsYXlDbG9zZXN0QWlycG9ydHNdPVwiZGlzcGxheUNsb3Nlc3RBaXJwb3J0c1wiXG4gICAgICBbYWlycG9ydFNlbGVjdExhYmVsXT1cImxhYmVsT3JpZ2luXCIgW2xhdGVzdFNlYXJjaGVzXT1cImxhdGVzdFNlYXJjaGVzT3JpZ2luXCIgW2Nsb3Nlc3RBaXJwb3J0c109XCJjbG9zZXN0QWlycG9ydHNcIlxuICAgICAgW2FpcnBvcnRdPVwib3JpZ2luXCIgW2FpcnBvcnRzXT1cImFpcnBvcnRzT3JpZ2luXCIgW3Jlc3VsdHNMYWJlbHNdPVwicmVzdWx0c0xhYmVsc1wiXG4gICAgICBbYWlycG9ydFNlbGVjdFBsYWNlaG9sZGVyXT1cInBsYWNlaG9sZGVyT3JpZ2luXCIgW29wZW5dPVwib3JpZ2luT3BlblwiIFtrZWVwU2VsZWN0aW9uXT1cImtlZXBTZWxlY3Rpb25cIlxuICAgICAgW2FpcnBvcnRTZWxlY3RJY29uTW9kaWZpZXJdPVwiJ2ZsaWdodC1kZXBhcnR1cmUnXCIgW25hc0Zvcm1Db250cm9sTmFtZV09XCJuYXNGb3JtQ29udHJvbE5hbWVPcmlnaW5cIlxuICAgICAgW25hc0Zvcm1Hcm91cF09XCJuYXNGb3JtR3JvdXBcIiBbYXJpYUxhYmVsQ2xlYXJdPVwiYXJpYUxhYmVsQ2xlYXJcIiBbYXJpYUxhYmVsQmFja2Ryb3BdPVwiYXJpYUxhYmVsQmFja2Ryb3BcIlxuICAgICAgW2xhYmVsT3V0c2lkZV09XCJsYWJlbE91dHNpZGVcIiAoY2xlYXJlZFNlbGVjdGlvbik9XCJvblNlbGVjdGlvbkNsZWFyZWQoKVwiIChzZWxlY3RlZCk9XCJzZXRTZWxlY3RlZE9yaWdpbigkZXZlbnQpXCJcbiAgICAgIChvcGVuQ2hhbmdlKT1cIm9uT3JpZ2luT3BlbigkZXZlbnQpXCIgKGZvY3VzT25OZXh0KT1cInNldERlc3RpbmF0aW9uT3BlbigkZXZlbnQpXCJcbiAgICAgIChwb3NpdGlvbkNoYW5nZSk9XCJnZXRDbG9zZXN0QWlycG9ydHMoJGV2ZW50KVwiPjwvbmFzLWFpcnBvcnQtc2VsZWN0LWRyb3Bkb3duPlxuICA8L2Rpdj5cbiAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImV4aXN0cyhjb21ibylcIj5cbiAgICA8ZGl2IFtuYXNDbGFzc109XCJnZXRDbGFzcygnJywgZXhpc3RzKHVzZVN3aXRjaCkgJiYgJ3BhZGRpbmctZGVzdGluYXRpb24nKVwiPlxuICAgICAgPG5hcy1haXJwb3J0LXNlbGVjdC1kcm9wZG93biAjYWlycG9ydFNlbGVjdERyb3Bkb3duRGVzdGluYXRpb24gZGlzcGxheUxhdGVzdFNlYXJjaGVzIFtpZF09XCJpbmJvdW5kSWRcIlxuICAgICAgICBbYWlycG9ydFNlbGVjdExhYmVsXT1cImxhYmVsRGVzdGluYXRpb25cIiBbZGlzcGxheUNsb3Nlc3RBaXJwb3J0c109XCJmYWxzZVwiXG4gICAgICAgIFtsYXRlc3RTZWFyY2hlc109XCJjdXJyZW50TGF0ZXN0U2VhcmNoZXNEZXN0aW5hdGlvblwiIFthaXJwb3J0c109XCJhaXJwb3J0c0Rlc3RpbmF0aW9uXCJcbiAgICAgICAgW3Jlc3VsdHNMYWJlbHNdPVwicmVzdWx0c0xhYmVsc1wiIFthaXJwb3J0XT1cImRlc3RpbmF0aW9uXCIgW2FpcnBvcnRTZWxlY3RQbGFjZWhvbGRlcl09XCJwbGFjZWhvbGRlckRlc3RpbmF0aW9uXCJcbiAgICAgICAgW29wZW5dPVwiZGVzdGluYXRpb25PcGVuXCIgW2tlZXBTZWxlY3Rpb25dPVwia2VlcFNlbGVjdGlvblwiIFthaXJwb3J0U2VsZWN0SWNvbk1vZGlmaWVyXT1cIidmbGlnaHQtYXJyaXZhbCdcIlxuICAgICAgICBbbmFzRm9ybUNvbnRyb2xOYW1lXT1cIm5hc0Zvcm1Db250cm9sTmFtZURlc3RpbmF0aW9uXCIgW25hc0Zvcm1Hcm91cF09XCJuYXNGb3JtR3JvdXBcIlxuICAgICAgICBbYXJpYUxhYmVsQ2xlYXJdPVwiYXJpYUxhYmVsQ2xlYXJcIiBbYXJpYUxhYmVsQmFja2Ryb3BdPVwiYXJpYUxhYmVsQmFja2Ryb3BcIiBbaXNWYWxpZF09XCJpc0Rlc3RpbmF0aW9uVmFsaWRcIlxuICAgICAgICBbaW52YWxpZFRleHRdPVwiaW52YWxpZERlc3RpbmF0aW9uVGV4dFwiIFtsYWJlbE91dHNpZGVdPVwibGFiZWxPdXRzaWRlXCIgKGNsZWFyZWRTZWxlY3Rpb24pPVwib25TZWxlY3Rpb25DbGVhcmVkKClcIlxuICAgICAgICAoc2VsZWN0ZWQpPVwic2V0U2VsZWN0ZWREZXN0aW5hdGlvbigkZXZlbnQpXCIgKG9wZW5DaGFuZ2UpPVwib25EZXN0aW5hdGlvbk9wZW4oJGV2ZW50KVwiXG4gICAgICAgIChmb2N1c09uTmV4dCk9XCJzZXRGb2N1c09uTmV4dCgkZXZlbnQpXCIgKGZvY3VzT25QcmV2aW91cyk9XCJvbk9yaWdpbkZvY3VzKClcIiBbbm9BaXJwb3J0c0F2YWlsYWJsZV09XCJub0Rlc3RpbmF0aW9uQWlycG9ydHNBdmFpbGFibGVcIj48L25hcy1haXJwb3J0LXNlbGVjdC1kcm9wZG93bj5cbiAgICA8L2Rpdj5cbiAgICA8ZGl2ICpuZ0lmPVwiZXhpc3RzKHVzZVN3aXRjaCkgJiYgIShvcmlnaW5PcGVuIHx8IGRlc3RpbmF0aW9uT3BlbiB8fCBjbGVhcmVkKVwiICNzd2l0Y2hCdXR0b25cbiAgICAgIFtuYXNDbGFzc109XCJnZXRBaXJwb3J0U2VsZWN0Q29tYm9DbGFzcygnc3dpdGNoZXInLCAob3JpZ2luQWlycG9ydENvZGVWYWx1ZSAmJiBkZXN0aW5hdGlvbkFpcnBvcnRDb2RlVmFsdWUpICYmICdmaWxsZWQnKVwiXG4gICAgICAobW91c2VvdmVyKT1cImNoYW5nZVN3aXRjaEljb24oKVwiIChtb3VzZWxlYXZlKT1cImNoYW5nZVN3aXRjaEljb24oKVwiIChrZXlkb3duKT1cInN3YXBLZXlEb3duKCRldmVudClcIlxuICAgICAgKGNsaWNrKT1cInN3YXBBaXJwb3J0cygpXCI+XG4gICAgICA8bmFzLWljb25cbiAgICAgICAgW3R5cGVdPVwiKHRoaXMuZGVzdGluYXRpb25BaXJwb3J0Q29kZVZhbHVlICYmIHRoaXMub3JpZ2luQWlycG9ydENvZGVWYWx1ZSkgPyAndmVjdG9yLS1zZWNvbmRhcnknIDogJ3ZlY3RvcidcIj48L25hcy1pY29uPlxuICAgIDwvZGl2PlxuICA8L25nLWNvbnRhaW5lcj5cbjwvbmctdGVtcGxhdGU+Il19
498
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWlycG9ydC1zZWxlY3QuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29yZS1jb21wb25lbnRzL3NyYy9saWIvY29tcG9uZW50cy9haXJwb3J0LXNlbGVjdC9haXJwb3J0LXNlbGVjdC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb3JlLWNvbXBvbmVudHMvc3JjL2xpYi9jb21wb25lbnRzL2FpcnBvcnQtc2VsZWN0L2FpcnBvcnQtc2VsZWN0LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQU9BLE9BQU8sRUFDTCxTQUFTLEVBQ1QsWUFBWSxFQUNaLEtBQUssRUFDTCxNQUFNLEVBQ04saUJBQWlCLEVBQ2pCLFNBQVMsRUFJVCxZQUFZLEVBRWIsTUFBTSxlQUFlLENBQUM7QUFFdkIsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sWUFBWSxDQUFDOzs7Ozs7O0FBSzlDOzs7R0FHRztBQU9ILE1BQU0sT0FBTyxzQkFBdUIsU0FBUSxnQkFBZ0I7SUFrUTFEOzs7O09BSUc7SUFDSCxJQUNJLGlCQUFpQjtRQUNuQixPQUFPLElBQUksQ0FBQyxzQkFBc0IsQ0FBQztJQUNyQyxDQUFDO0lBQ0QsSUFBSSxpQkFBaUIsQ0FBQyxJQUFZO1FBQ2hDLElBQUksSUFBSSxFQUFFO1lBQ1IsSUFBSSxJQUFJLEtBQUssSUFBSSxDQUFDLHNCQUFzQixFQUFFO2dCQUN4QyxJQUFJLENBQUMsc0JBQXNCLEdBQUcsSUFBSSxDQUFDO2dCQUNuQyxJQUFJLENBQUMsU0FBUyxFQUFFLENBQUM7YUFDbEI7U0FDRjthQUFNO1lBQ0wsSUFBSSxDQUFDLHNCQUFzQixHQUFHLEVBQUUsQ0FBQztZQUNqQyxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7U0FDcEI7SUFDSCxDQUFDO0lBRUQ7Ozs7T0FJRztJQUNILElBQ0ksc0JBQXNCO1FBQ3hCLE9BQU8sSUFBSSxD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O2dCQU9HLHNCQUFzQjtzQkFBOUIsS0FBSztnQkFRRyxXQUFXO3NCQUFuQixLQUFLO2dCQU9HLGlCQUFpQjtzQkFBekIsS0FBSztnQkFPRyxnQkFBZ0I7c0JBQXhCLEtBQUs7Z0JBT0csc0JBQXNCO3NCQUE5QixLQUFLO2dCQU9HLFlBQVk7c0JBQXBCLEtBQUs7Z0JBUUcsYUFBYTtzQkFBckIsS0FBSztnQkFTRyx3QkFBd0I7c0JBQWhDLEtBQUs7Z0JBU0csNkJBQTZCO3NCQUFyQyxLQUFLO2dCQVNHLFlBQVk7c0JBQXBCLEtBQUs7Z0JBUUYsaUJBQWlCO3NCQURwQixLQUFLO2dCQXNCRixzQkFBc0I7c0JBRHpCLEtBQUs7Z0JBcUJHLGNBQWM7c0JBQXRCLEtBQUs7Z0JBT0csaUJBQWlCO3NCQUF6QixLQUFLO2dCQU9JLFlBQVk7c0JBQXJCLE1BQU07Z0JBT0csZ0JBQWdCO3NCQUF6QixNQUFNO2dCQU9HLGlCQUFpQjtzQkFBMUIsTUFBTTtnQkFPRyxxQkFBcUI7c0JBQTlCLE1BQU07Z0JBT0csV0FBVztzQkFBcEIsTUFBTTtnQkFPRyxjQUFjO3NCQUF2QixNQUFNO2dCQVlQLFFBQVE7c0JBRFAsWUFBWTt1QkFBQyxlQUFlLEVBQUUsQ0FBQyxRQUFRLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBsaWNlbnNlXG4gKiBDb3B5cmlnaHQgTm9yd2VnaWFuIEFpciBTaHV0dGxlLiBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICovXG5cbmltcG9ydCB7IEFpcnBvcnRNb2RlbCB9IGZyb20gJy4vbW9kZWxzL2FpcnBvcnQubW9kZWwnO1xuaW1wb3J0IHsgQ2xhc3NNb2RlbCB9IGZyb20gJy4uLy4uL2NvcmUvbW9kZWxzL2NsYXNzLm1vZGVsJztcbmltcG9ydCB7XG4gIENvbXBvbmVudCxcbiAgRXZlbnRFbWl0dGVyLFxuICBJbnB1dCxcbiAgT3V0cHV0LFxuICBWaWV3RW5jYXBzdWxhdGlvbixcbiAgVmlld0NoaWxkLFxuICBFbGVtZW50UmVmLFxuICBPbkluaXQsXG4gIEFmdGVyVmlld0luaXQsXG4gIEhvc3RMaXN0ZW5lcixcbiAgQ2hhbmdlRGV0ZWN0b3JSZWZcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGb3JtR3JvdXAgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBOYXNDb21wb25lbnRCYXNlIH0gZnJvbSAnLi4vLi4vY29yZSc7XG5pbXBvcnQgeyBSZXN1bHRzTGFiZWxzTW9kZWwgfSBmcm9tICcuL21vZGVscy9yZXN1bHRzLWxhYmVscy5tb2RlbCc7XG5pbXBvcnQgeyBBaXJwb3J0U2VsZWN0RHJvcGRvd25Db21wb25lbnQgfSBmcm9tICcuL2FpcnBvcnQtc2VsZWN0LWRyb3Bkb3duL2FpcnBvcnQtc2VsZWN0LWRyb3Bkb3duLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBEZXZpY2VIZWxwZXIgfSBmcm9tICcuLi8uLi9jb3JlL3NlcnZpY2VzL2RldmljZS9kZXZpY2UtaGVscGVyLnNlcnZpY2UnO1xuXG4vKipcbiAqIEBkZXNjcmlwdGlvblxuICogTm9yd2VnaWFuIEFpcnBvcnQgU2VsZWN0IENvbXBvbmVudCB8IEZ1bmN0aW9uYWwgfCBOZXcgZGVzaWduXG4gKi9cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ25hcy1haXJwb3J0LXNlbGVjdCcsXG4gIHRlbXBsYXRlVXJsOiAnLi9haXJwb3J0LXNlbGVjdC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2FpcnBvcnQtc2VsZWN0LmNvbXBvbmVudC5zY3NzJ10sXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmVcbn0pXG5leHBvcnQgY2xhc3MgQWlycG9ydFNlbGVjdENvbXBvbmVudCBleHRlbmRzIE5hc0NvbXBvbmVudEJhc2UgaW1wbGVtZW50cyBPbkluaXQsIEFmdGVyVmlld0luaXQge1xuICBhaXJwb3J0c09yaWdpbjogQXJyYXk8QWlycG9ydE1vZGVsPjtcbiAgYWlycG9ydHNEZXN0aW5hdGlvbiA9IG5ldyBBcnJheTxBaXJwb3J0TW9kZWw+KCk7XG4gIGN1cnJlbnRMYXRlc3RTZWFyY2hlc0Rlc3RpbmF0aW9uOiBBcnJheTxBaXJwb3J0TW9kZWw+O1xuICBjbG9zZXN0QWlycG9ydHNEZXN0aW5hdGlvbjogQXJyYXk8QWlycG9ydE1vZGVsPjtcbiAgZm9jdXNEZXN0aW5hdGlvbiA9IGZhbHNlO1xuICB0ZXh0U2VsZWN0T3JpZ2luRmlyc3Q6IHN0cmluZztcbiAgZm9jdXNlZExhdGVzdFNlYXJjaGVzQWlycG9ydENvZGVEZXN0aW5hdGlvbjogc3RyaW5nO1xuICBmb2N1c2VkQWlycG9ydENvZGVEZXN0aW5hdGlvbjogc3RyaW5nO1xuICBmb2N1c2VkTGF0ZXN0U2VhcmNoZXNJbmRleERlc3RpbmF0aW9uID0gLTE7XG4gIGZvY3VzZWRBaXJwb3J0SW5kZXhEZXN0aW5hdGlvbiA9IC0xO1xuICBzd2l0Y2hUeXBlID0gJ3N3aXRjaCc7XG4gIGlzRGVzdGluYXRpb25WYWxpZDogYm9vbGVhbjtcbiAgaW5saW5lRmxleCA9IGZhbHNlO1xuICBub0Rlc3RpbmF0aW9uQWlycG9ydHNBdmFpbGFibGU6IGJvb2xlYW47XG5cbiAgcmVzdWx0c0xhYmVsczogUmVzdWx0c0xhYmVsc01vZGVsID0ge1xuICAgIGFsbEFpcnBvcnRzOiAnJyxcbiAgICBjbG9zZXN0QWlycG9ydHM6ICcnLFxuICAgIGxhdGVzdFNlYXJjaGVzOiAnJyxcbiAgICBnZW9sb2NhdGlvbjogJycsXG4gICAgZ2VvbG9jYXRpb25EZW5pZWQ6ICcnLFxuICAgIG5vQWlycG9ydHM6ICcnXG4gIH07XG5cbiAgb3JpZ2luT3BlbiA9IGZhbHNlO1xuICBkZXN0aW5hdGlvbk9wZW4gPSBmYWxzZTtcbiAgY2xlYXJlZCA9IGZhbHNlO1xuXG4gIEBWaWV3Q2hpbGQoJ2NvbnRhaW5lcicpIGNvbnRhaW5lcjogRWxlbWVudFJlZjtcbiAgQFZpZXdDaGlsZCgnc3dpdGNoQnV0dG9uJykgc3dpdGNoQnV0dG9uOiBFbGVtZW50UmVmO1xuICBAVmlld0NoaWxkKCdhaXJwb3J0U2VsZWN0RHJvcGRvd25PcmlnaW4nKSBhaXJwb3J0U2VsZWN0RHJvcGRvd25PcmlnaW46IEFpcnBvcnRTZWxlY3REcm9wZG93bkNvbXBvbmVudDtcbiAgQFZpZXdDaGlsZCgnYWlycG9ydFNlbGVjdERyb3Bkb3duRGVzdGluYXRpb24nKSBhaXJwb3J0U2VsZWN0RHJvcGRvd25EZXN0aW5hdGlvbjogQWlycG9ydFNlbGVjdERyb3Bkb3duQ29tcG9uZW50O1xuXG4gIG9yaWdpbjogQWlycG9ydE1vZGVsO1xuICBkZXN0aW5hdGlvbjogQWlycG9ydE1vZGVsO1xuXG4gIC8qKlxuICAgKiBAcHJvcGVydHkgSW5wdXRcbiAgICogQGRlc2NyaXB0aW9uXG4gICAqIFRoZSBvdXRib3VuZCBhaXBvcnQgc2VsZWN0IElEIG9mIHRoZSBuYXRpdmUgaW5wdXQgZWxlbWVudFxuICAgKi9cbiAgQElucHV0KCkgb3V0Ym91bmRJZDogc3RyaW5nO1xuXG4gIC8qKlxuICAqIEBwcm9wZXJ0eSBJbnB1dFxuICAqIEBkZXNjcmlwdGlvblxuICAqIFRoZSBpbmJvdW5kIGFpcG9ydCBzZWxlY3QgSUQgb2YgdGhlIG5hdGl2ZSBpbnB1dCBlbGVtZW50XG4gICovXG4gIEBJbnB1dCgpIGluYm91bmRJZDogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBAcHJvcGVydHkgSW5wdXRcbiAgICogQHJlcXVpcmVkXG4gICAqIEBkZXNjcmlwdGlvblxuICAgKiBBbGwgYWlycG9ydHMgdGhhdCB3aWxsIGJlIHBvcHVsYXRlZCBpbnRvIHRoZSBkcm9wZG93biBsaXN0cy5cbiAgICovXG4gIEBJbnB1dCgpIGFpcnBvcnRzOiBBcnJheTxBaXJwb3J0TW9kZWw+O1xuXG4gIC8qKlxuICAgKiBAcHJvcGVydHkgSW5wdXRcbiAgICogQGRlc2NyaXB0aW9uXG4gICAqIEEgcmVjb3JkIGNvbnRhaW5pbmcga2V5cyB3aXRoIGFsbCBhaXJwb3J0IGNvZGVzIHdpdGggY29ycmVzcG9uZGluZyBhcnJheSBvZiBhaXJwb3J0IGNvZGVzIGNvbm5lY3RlZCB0byB0aGUga2V5LlxuICAgKi9cbiAgQElucHV0KCkgYWlycG9ydFJlbGF0aW9uczogUmVjb3JkPHN0cmluZywgQXJyYXk8c3RyaW5nPj47XG5cbiAgLyoqXG4gICAqIEBwcm9wZXJ0eSBJbnB1dFxuICAgKiBAZGVzY3JpcHRpb25cbiAgICogQW4gYXJyYXkgb2Ygb3JpZ2luIGFpcnBvcnRzIHRoYXQgdGhlIHVzZXIgaGFzIGFsbHJlYWR5IHNlYXJjaCBmb3IuXG4gICAqL1xuICBASW5wdXQoKSBsYXRlc3RTZWFyY2hlc09yaWdpbjogQXJyYXk8QWlycG9ydE1vZGVsPjtcblxuICAvKipcbiAgICogQHByb3BlcnR5IElucHV0XG4gICAqIEBkZXNjcmlwdGlvblxuICAgKiBBbiBhcnJheSBvZiBkZXN0aW5hdGlvbiBhaXJwb3J0cyB0aGF0IHRoZSB1c2VyIGhhcyBhbGxyZWFkeSBzZWFyY2ggZm9yLlxuICAgKi9cbiAgQElucHV0KCkgbGF0ZXN0U2VhcmNoZXNEZXN0aW5hdGlvbjogQXJyYXk8QWlycG9ydE1vZGVsPjtcblxuICAvKipcbiAgICogQHByb3BlcnR5IElucHV0XG4gICAqIEBkZXNjcmlwdGlvblxuICAgKiBBbiBhcnJheSBvZiBhaXJwb3J0cyB0aGF0IGFyZSBjbG9zZSB0byB0aGUgdXNlci5cbiAgICovXG4gIEBJbnB1dCgpIGNsb3Nlc3RBaXJwb3J0czogQXJyYXk8QWlycG9ydE1vZGVsPjtcblxuICAvKipcbiAgICogQHByb3BlcnR5IElucHV0XG4gICAqIEBkZXNjcmlwdGlvblxuICAgKiBBIGxpc3Qgb2YgYWlycG9ydHMgdGhhdCBzaG91bGQgYmUgZGlzcGxheWVkIGluIHRoZSBvcmlnaW4gZHJvcGRvd24uXG4gICAqIElmIG5vdCBpbmNsdWRlZCwgYWxsIGFpcnBvcnRzIHdpbGwgYmUgZGlzcGxheWVkLlxuICAgKi9cbiAgQElucHV0KCkgYWxsb3dlZE9yaWdpbkFpcG9ydHM6IEFycmF5PEFpcnBvcnRNb2RlbD47XG5cbiAgLyoqXG4gICAqIEBwcm9wZXJ0eSBJbnB1dFxuICAgKiBAZGVzY3JpcHRpb25cbiAgICogQW4gYXJyYXkgb2YgYWlycG9ydHMgdGhhdCBhcmUgcmVzdHJpY3RlZCBmb3IgZGVzdGluYXRpb24gYWlycG9ydHMuIEl0IHdpbGwgZGVmYXVsdCB0byBhaXJwb3J0cyBpZiBub3Qgc2V0LlxuICAgKi9cbiAgQElucHV0KCkgYWxsb3dlZERlc3RpbmF0aW9uQWlycG9ydHM6IEFycmF5PEFpcnBvcnRNb2RlbD47XG5cbiAgLyoqXG4gICAqIEBwcm9wZXJ0eSBJbnB1dFxuICAgKiBAZGVzY3JpcHRpb25cbiAgICogQSBib29sZWFuIGluZGljYXRpbmcgaWYgYWlycG9ydHMgdGhhdCB0aGUgdXNlciBhbGxyZWFkeSBoYXMgc2VhcmggZm9yIHNob3VsZCBiZSBkaXNwbGF5ZWQuXG4gICAqL1xuICBASW5wdXQoKSBkaXNwbGF5TGF0ZXN0U2VhcmNoZXM/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBAcHJvcGVydHkgSW5wdXRcbiAgICogQGRlc2NyaXB0aW9uXG4gICAqIEEgYm9vbGVhbiBpbmRpY2F0aW5nIGlmIGFpcnBvcnRzIHRoYXQgYXJlIGNsb3NlIHRvIHRoZSB1c2VyIHNob3VsZCBiZSBkaXNwbGF5ZWQuXG4gICAqL1xuICBASW5wdXQoKSBkaXNwbGF5Q2xvc2VzdEFpcnBvcnRzPzogYm9vbGVhbjtcblxuICAvKipcbiAgICogQHByb3BlcnR5IElucHV0XG4gICAqIEBkZXNjcmlwdGlvblxuICAgKiBEaXNwbGF5IGJvdGggb3JnaW4gYW5kIGRlc3RpbmF0aW9uIGFpcnBvcnQgc2VsZWN0b3IuXG4gICAqL1xuICBASW5wdXQoKSBjb21ibz86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIEBwcm9wZXJ0eSBJbnB1dFxuICAgKiBAZGVzY3JpcHRpb25cbiAgICogRGlzcGxheSBzd2l0Y2ggVUkgdG8gaW50ZXJjaGFuZ2Ugb3JpZ2luIGFuZCBkZXN0aW5hdGlvbiBhaXJwb3J0LlxuICAgKi9cbiAgQElucHV0KCkgdXNlU3dpdGNoPzogYm9vbGVhbjtcblxuICAvKipcbiAgICogQHByb3BlcnR5IElucHV0XG4gICAqIEBkZXNjcmlwdGlvblxuICAgKiBBIGxhYmVsIHRoYXQgd2lsbCBhcHBlYXIgb24gdG9wIG9mIGFsbCBhaXJwb3J0cyBpbiB0aGUgZHJvcCBkb3duIGxpc3QuXG4gICAqL1xuICBASW5wdXQoKSBhbGxBaXJwb3J0c0xhYmVsOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIEBwcm9wZXJ0eSBJbnB1dFxuICAgKiBAZGVzY3JpcHRpb25cbiAgICogQSBsYWJlbCB0aGF0IHdpbGwgYXBwZWFyIG9uIHRvcCBvZiB0aGUgbGF0ZXN0IHNlYXJjaGVzIGluIHRoZSBkcm9wIGRvd24gbGlzdC5cbiAgICovXG4gIEBJbnB1dCgpIGxhdGVzdFNlYXJjaGVzTGFiZWw6IHN0cmluZztcblxuICAvKipcbiAgICogQHByb3BlcnR5IElucHV0XG4gICAqIEBkZXNjcmlwdGlvblxuICAgKiBBIGxhYmVsIHRoYXQgd2lsbCBhcHBlYXIgb24gdG9wIG9mIHRoZSBjbG9zZXN0IGFpcnBvcnRzIGluIHRoZSBkcm9wIGRvd24gbGlzdC5cbiAgICovXG4gIEBJbnB1dCgpIGNsb3Nlc3RBaXJwb3J0c0xhYmVsOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIEBwcm9wZXJ0eSBJbnB1dFxuICAgKiBAZGVzY3JpcHRpb25cbiAgICogQSBsYWJlbCB0aGF0IHdpbGwgYXBwZWFyIGluIG15IGxvY2F0aW9uIGluIHRoZSBkcm9wIGRvd24gbGlzdC5cbiAgICovXG4gIEBJbnB1dCgpIGdlb2xvY2F0aW9uTGFiZWw6IHN0cmluZztcblxuICAvKipcbiAgICogQHByb3BlcnR5IElucHV0XG4gICAqIEBkZXNjcmlwdGlvblxuICAgKiBBIGxhYmVsIHRoYXQgd2lsbCBhcHBlYXIgaW4gbXkgbG9jYXRpb24sIGluIHRoZSBkcm9wIGRvd24gbGlzdCBpZiB1c2VyIGhhcyBkZW5pZWQgZ2VvbG9jYXRpb24uXG4gICAqL1xuICBASW5wdXQoKSBnZW9sb2NhdGlvbkJsb2NrZWRMYWJlbDogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBAcHJvcGVydHkgSW5wdXRcbiAgICogQGRlc2NyaXB0aW9uXG4gICAqIEEgbGFiZWwgdGhhdCB3aWxsIGFwcGVhciBpbiB0aGUgZGVzdGluYXRpb24gaW5wdXQgZmllbGQgaWYgdGhlXG4gICAqIHVzZXIgdHJpZXMgdG8gc2VsZWN0IGEgZGVzdGluYXRpb24gYWlycG9ydCB3aXRob3V0IHNlbGVjdGluZyBhbiBvcmlnaW4gYWlycG9ydC5cbiAgICovXG4gIEBJbnB1dCgpIHNlbGVjdE9yaWdpbkZpcnN0TGFiZWw6IHN0cmluZztcblxuICAvKipcbiAgICogQHByb3BlcnR5IElucHV0XG4gICAqIEBkZXNjcmlwdGlvblxuICAgKiBBIGxhYmVsIHRoYXQgYXBwZWFyIGluIHRoZSBsaXN0IHRoYXQgdGhlcmUgaXMgY3VycmVudGx5IG5vIGFpcnBvcnRzXG4gICAqL1xuICBASW5wdXQoKSBub0FpcnBvcnRzTGFiZWw6IHN0cmluZztcblxuICAvKipcbiAgICogQHByb3BlcnR5IElucHV0XG4gICAqIEBkZXNjcmlwdGlvblxuICAgKiBBIHRleHQgdGhhdCBhcHBlYXJzIGluIHRoZSBkZXN0aW5hdGlvbnMgZHJvcGRvd24gbGlzdCB3aGVuIG9yaWdpbiBhaXJwb3J0IGlzIG5vdCBzZXQuXG4gICAqL1xuICBASW5wdXQoKSBpbnZhbGlkRGVzdGluYXRpb25UZXh0OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIEBwcm9wZXJ0eSBJbnB1dFxuICAgKiBAcmVxdWlyZWRcbiAgICogQGRlc2NyaXB0aW9uXG4gICAqIEEgbGFiZWwgdGhhdCB3aWxsIGFwcGVhciBvbiB0b3Agb2YgdGhlIG9yaWdpbiBhaXJwb3J0IGlucHV0IGZpZWxkLlxuICAgKi9cbiAgQElucHV0KCkgbGFiZWxPcmlnaW4gPSAnJztcblxuICAvKipcbiAgICogQHByb3BlcnR5IElucHV0XG4gICAqIEBkZXNjcmlwdGlvblxuICAgKiBBIHBsYWNlaG9sZGVyIHRoYXQgd2lsbCBhcHBlYXIgb24gdGhlIG9yaWdpbiBhaXJwb3J0IGlucHV0IGZpZWxkLlxuICAgKi9cbiAgQElucHV0KCkgcGxhY2Vob2xkZXJPcmlnaW4gPSAnJztcblxuICAvKipcbiAgICogQHByb3BlcnR5IElucHV0XG4gICAqIEBkZXNjcmlwdGlvblxuICAgKiBBIGxhYmVsIHRoYXQgd2lsbCBhcHBlYXIgb24gdG9wIG9mIHRoZSBkZXN0aW5hdGlvbiBhaXJwb3J0IGlucHV0IGZpZWxkLlxuICAgKi9cbiAgQElucHV0KCkgbGFiZWxEZXN0aW5hdGlvbiA9ICcnO1xuXG4gIC8qKlxuICAgKiBAcHJvcGVydHkgSW5wdXRcbiAgICogQGRlc2NyaXB0aW9uXG4gICAqIEEgcGxhY2Vob2xkZXIgdGhhdCB3aWxsIGFwcGVhciBvbiB0aGUgZGVzdGluYXRpb24gYWlycG9ydCBpbnB1dCBmaWVsZC5cbiAgICovXG4gIEBJbnB1dCgpIHBsYWNlaG9sZGVyRGVzdGluYXRpb24gPSAnJztcblxuICAvKipcbiAgICogQHByb3BlcnR5IElucHV0XG4gICAqIEBkZXNjcmlwdGlvblxuICAgKiBEZWNpZGVzIGlmIGEgbGFiZWwgc2hvdWxkIGJlIG91dHNpZGUgb2YgdGhlIGNvbnRhaW5lciBvciBub3QuXG4gICAqL1xuICBASW5wdXQoKSBsYWJlbE91dHNpZGU6IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIEBwcm9wZXJ0eSBJbnB1dFxuICAgKiBAZGVzY3JpcHRpb25cbiAgICogQSBtb2RpZmllciB0aGF0IHdpbGwgYWxsb3cgYWx3YXlzIGtlZXBpbmcgdGhlIHNlbGVjdGVkIGFpcnBvcnQuXG4gICAqIFRoZSBsYXN0IHNlbGVjdGVkIGFpcnBvcnQgd2lsbCBiZSBzaG93biBvbmNlIHVzZXIgY2xlYXJzIHRoZSBzZWxlY3Rpb24gYW5kIGJsdXIuXG4gICAqL1xuICBASW5wdXQoKSBrZWVwU2VsZWN0aW9uOiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBAcHJvcGVydHkgSW5wdXRcbiAgICogQGRlc2NyaXB0aW9uXG4gICAqIFNldHMgYSBmb3JtQ29udHJvbE5hbWUgZGlyZWN0aXZlIHRvIHRoZSBpbnB1dC5cbiAgICogSXQgcmVxdWlyZXMgdGhhdCB0aGUgY29uc3VtZXIgaW5jbHVkZWQgUmVhY3RpdmVGb3Jtc01vZHVsZSBpbiBpdCdzIG1vZHVsZS5cbiAgICogSXQgcmVxdWllcnMgdGhhdCB0aGUgbmFzRm9ybUdyb3VwIGlucHV0IGlzIGZpbGxlZC5cbiAgICovXG4gIEBJbnB1dCgpIG5hc0Zvcm1Db250cm9sTmFtZU9yaWdpbjogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBAcHJvcGVydHkgSW5wdXRcbiAgICogQGRlc2NyaXB0aW9uXG4gICAqIFNldHMgYSBmb3JtQ29udHJvbE5hbWUgZGlyZWN0aXZlIHRvIHRoZSBpbnB1dC5cbiAgICogSXQgcmVxdWlyZXMgdGhhdCB0aGUgY29uc3VtZXIgaW5jbHVkZWQgUmVhY3RpdmVGb3Jtc01vZHVsZSBpbiBpdCdzIG1vZHVsZS5cbiAgICogSXQgcmVxdWllcnMgdGhhdCB0aGUgbmFzRm9ybUdyb3VwIGlucHV0IGlzIGZpbGxlZC5cbiAgICovXG4gIEBJbnB1dCgpIG5hc0Zvcm1Db250cm9sTmFtZURlc3RpbmF0aW9uOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIEBwcm9wZXJ0eSBJbnB1dFxuICAgKiBAZGVzY3JpcHRpb25cbiAgICogQWRkcyB0aGUgcGFyZW50J3MgZm9ybSBncm91cC5cbiAgICogSXQgcmVxdWlyZXMgdGhhdCB0aGUgY29uc3VtZXIgaW5jbHVkZWQgUmVhY3RpdmVGb3Jtc01vZHVsZSBpbiBpdCdzIG1vZHVsZS5cbiAgICogSXQgaXMgcmVxdWllcmVkIHRvIGJlIGZpbGxlZCBpZiBuYXNGb3JtQ29udHJvbE5hbWUgYWRkZWQuXG4gICAqL1xuICBASW5wdXQoKSBuYXNGb3JtR3JvdXA6IEZvcm1Hcm91cDtcblxuICAvKipcbiAgICogQHByb3BlcnR5IElucHV0XG4gICAqIEBkZXNjcmlwdGlvblxuICAgKiBUaGUgYWlycG9ydCBjb2RlIG9mIHRoZSBvcmlnaW4gYWlycG9ydC4gSXQgd2lsbCBzZXQgdGhlIHNlbGVjdGVkIG9yaWdpbiBhaXJwb3J0IGJhc2VkIG9uIHRoaXMgdmFsdWUuXG4gICAqL1xuICBASW5wdXQoKVxuICBnZXQgb3JpZ2luQWlycG9ydENvZGUoKSB7XG4gICAgcmV0dXJuIHRoaXMub3JpZ2luQWlycG9ydENvZGVWYWx1ZTtcbiAgfVxuICBzZXQgb3JpZ2luQWlycG9ydENvZGUoY29kZTogc3RyaW5nKSB7XG4gICAgaWYgKGNvZGUpIHtcbiAgICAgIGlmIChjb2RlICE9PSB0aGlzLm9yaWdpbkFpcnBvcnRDb2RlVmFsdWUpIHtcbiAgICAgICAgdGhpcy5vcmlnaW5BaXJwb3J0Q29kZVZhbHVlID0gY29kZTtcbiAgICAgICAgdGhpcy5zZXRPcmlnaW4oKTtcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5vcmlnaW5BaXJwb3J0Q29kZVZhbHVlID0gJyc7XG4gICAgICB0aGlzLmNsZWFyT3JpZ2luKCk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIEBwcm9wZXJ0eSBJbnB1dFxuICAgKiBAZGVzY3JpcHRpb25cbiAgICogVGhlIGFpcnBvcnQgY29kZSBvZiB0aGUgZGVzdGluYXRpb24gYWlycG9ydC4gSXQgd2lsbCBzZXQgdGhlIHNlbGVjdGVkIGRlc3RpbmF0aW9uIGFpcnBvcnQgYmFzZWQgb24gdGhpcyB2YWx1ZS5cbiAgICovXG4gIEBJbnB1dCgpXG4gIGdldCBkZXN0aW5hdGlvbkFpcnBvcnRDb2RlKCkge1xuICAgIHJldHVybiB0aGlzLmRlc3RpbmF0aW9uQWlycG9ydENvZGVWYWx1ZTtcbiAgfVxuICBzZXQgZGVzdGluYXRpb25BaXJwb3J0Q29kZShjb2RlOiBzdHJpbmcpIHtcbiAgICBpZiAoY29kZSkge1xuICAgICAgaWYgKGNvZGUgIT09IHRoaXMuZGVzdGluYXRpb25BaXJwb3J0Q29kZVZhbHVlKSB7XG4gICAgICAgIHRoaXMuZGVzdGluYXRpb25BaXJwb3J0Q29kZVZhbHVlID0gY29kZTtcbiAgICAgICAgdGhpcy5zZXREZXN0aW5hdGlvbigpO1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmRlc3RpbmF0aW9uQWlycG9ydENvZGVWYWx1ZSA9ICcnO1xuICAgICAgdGhpcy5jbGVhckRlc3RpbmF0aW9uKCk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIEBwcm9wZXJ0eSBJbnB1dFxuICAgKiBAZGVzY3JpcHRpb25cbiAgICogQWRkcyAnYXJpYS1sYWJlbCcgb24gdGhlIGNsZWFyIGJ1dHRvbiBpbnNpZGUgdGhlIGFpcnBvcnQgc2VsZWN0IGlucHV0cy5cbiAgICovXG4gIEBJbnB1dCgpIGFyaWFMYWJlbENsZWFyOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIEBwcm9wZXJ0eSBJbnB1dFxuICAgKiBAZGVzY3JpcHRpb25cbiAgICogQWRkcyAnYXJpYS1sYWJlbCcgdG8gdGhlIGJhY2tkcm9wcy5cbiAgICovXG4gIEBJbnB1dCgpIGFyaWFMYWJlbEJhY2tkcm9wOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIEBwcm9wZXJ0eSBPdXRwdXRcbiAgICogQGRlc2NyaXB0aW9uXG4gICAqIEFuIGV2ZW50IHRoYXQgaXMgZmlyZWQgZXZlcnkgdGltZSB0aGUgc2VsZWN0ZWQgb3JpZ2luIGFpcnBvcnQgY2hhbmdlcy5cbiAgICovXG4gIEBPdXRwdXQoKSBvcmlnaW5DaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPEFpcnBvcnRNb2RlbD4oKTtcblxuICAvKipcbiAgICogQHByb3BlcnR5IE91dHB1dFxuICAgKiBAZGVzY3JpcHRpb25cbiAgICogQW4gZXZlbnQgdGhhdCBpcyBmaXJlZCBldmVyeSB0aW1lIHRoZSBvcmlnaW4gZHJvcGRvd24gc2VsZWN0b3Igb3BlbnMgb3IgY2xvc2VzLlxuICAgKi9cbiAgQE91dHB1dCgpIG9yaWdpbk9wZW5DaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPGJvb2xlYW4+KCk7XG5cbiAgLyoqXG4gICogQHByb3BlcnR5IE91dHB1dFxuICAqIEBkZXNjcmlwdGlvblxuICAqIEFuIGV2ZW50IHRoYXQgaXMgZmlyZWQgZXZlcnkgdGltZSB0aGUgb3JpZ2luIGRyb3Bkb3duIHNlbGVjdG9yIG9wZW5zIG9yIGNsb3Nlcy5cbiAgKi9cbiAgQE91dHB1dCgpIGRlc3RpbmF0aW9uQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxBaXJwb3J0TW9kZWw+KCk7XG5cbiAgLyoqXG4gICAqIEBwcm9wZXJ0eSBPdXRwdXRcbiAgICogQGRlc2NyaXB0aW9uXG4gICAqIEFuIGV2ZW50IHRoYXQgaXMgZmlyZWQgZXZlcnkgdGltZSB0aGUgZGVzdGluYXRpb24gZHJvcGRvd24gc2VsZWN0b3Igb3BlbnMgb3IgY2xvc2VzLlxuICAgKi9cbiAgQE91dHB1dCgpIGRlc3RpbmF0aW9uT3BlbkNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8Ym9vbGVhbj4oKTtcblxuICAvKipcbiAgICogQHByb3BlcnR5IE91dHB1dFxuICAgKiBAZGVzY3JpcHRpb25cbiAgICogQW4gZXZlbnQgdGhhdCBpcyBmaXJlZCB3aGVuIHRoZSBkZXN0aW5hdGlvbiBkcm9wZG93biBjbG9zZXMuXG4gICAqL1xuICBAT3V0cHV0KCkgZm9jdXNPbk5leHQgPSBuZXcgRXZlbnRFbWl0dGVyPEtleWJvYXJkRXZlbnQ+KCk7XG5cbiAgLyoqXG4gICAqIEBwcm9wZXJ0eSBPdXRwdXRcbiAgICogQGRlc2NyaXB0aW9uXG4gICAqIEFuIGV2ZW50IHRoYXQgaXMgZmlyZWQgd2hlbiBnZW9sb2NhdGlvbiBwb3NpdGlvbiBoYXMgY2hhbmdlZC5cbiAgICovXG4gIEBPdXRwdXQoKSBwb3NpdGlvbkNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8R2VvbG9jYXRpb25Qb3NpdGlvbj4oKTtcblxuICBwcml2YXRlIG9yaWdpbkFpcnBvcnRDb2RlVmFsdWU6IHN0cmluZztcbiAgcHJpdmF0ZSBkZXN0aW5hdGlvbkFpcnBvcnRDb2RlVmFsdWU6IHN0cmluZztcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGRldmljZUhlbHBlcjogRGV2aWNlSGVscGVyLFxuICAgIHByaXZhdGUgY2RyOiBDaGFuZ2VEZXRlY3RvclJlZlxuICApIHtcbiAgICBzdXBlcignbmFzLWFpcnBvcnQtc2VsZWN0Jyk7XG4gIH1cblxuICBASG9zdExpc3RlbmVyKFwid2luZG93OnJlc2l6ZVwiLCBbXCIkZXZlbnRcIl0pXG4gIG9uUmVzaXplKCkge1xuICAgIHRoaXMuc2V0SW5saW5lRmxleCgpO1xuICB9XG5cbiAgbmdPbkluaXQoKSB7XG4gICAgaWYgKCF0aGlzLmFpcnBvcnRzKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ01pc3NpbmcgaW5wdXQ6IFthaXJwb3J0c10nKTtcbiAgICB9XG5cbiAgICB0aGlzLnJlc3VsdHNMYWJlbHMgPSB7XG4gICAgICBhbGxBaXJwb3J0czogdGhpcy5hbGxBaXJwb3J0c0xhYmVsIHx8ICcnLFxuICAgICAgY2xvc2VzdEFpcnBvcnRzOiB0aGlzLmNsb3Nlc3RBaXJwb3J0c0xhYmVsIHx8ICcnLFxuICAgICAgbGF0ZXN0U2VhcmNoZXM6IHRoaXMubGF0ZXN0U2VhcmNoZXNMYWJlbCB8fCAnJyxcbiAgICAgIGdlb2xvY2F0aW9uOiB0aGlzLmdlb2xvY2F0aW9uTGFiZWwgfHwgJycsXG4gICAgICBnZW9sb2NhdGlvbkRlbmllZDogdGhpcy5nZW9sb2NhdGlvbkJsb2NrZWRMYWJlbCB8fCAnJyxcbiAgICAgIG5vQWlycG9ydHM6IHRoaXMubm9BaXJwb3J0c0xhYmVsIHx8ICcnXG4gICAgfTtcblxuICAgIHRoaXMudGV4dFNlbGVjdE9yaWdpbkZpcnN0ID0gdGhpcy5zZWxlY3RPcmlnaW5GaXJzdExhYmVsO1xuICAgIHRoaXMuYWlycG9ydHNPcmlnaW4gPSB0aGlzLmFsbG93ZWRPcmlnaW5BaXBvcnRzICYmIHRoaXMuYWxsb3dlZE9yaWdpbkFpcG9ydHMubGVuZ3RoID4gMCA/IHRoaXMuYWxsb3dlZE9yaWdpbkFpcG9ydHMgOiB0aGlzLmFpcnBvcnRzO1xuXG4gICAgdGhpcy5haXJwb3J0c0Rlc3RpbmF0aW9uID0gdGhpcy5nZXRBaXJwb3J0c0Rlc3RpbmF0aW9ucygpO1xuXG4gICAgaWYgKHRoaXMubmFzRm9ybUdyb3VwKSB7XG4gICAgICBpZiAodGhpcy5uYXNGb3JtQ29udHJvbE5hbWVPcmlnaW4pIHtcbiAgICAgICAgY29uc3Qgb3JpZ2luQ29udHJvbCA9IHRoaXMubmFzRm9ybUdyb3VwLmdldCh0aGlzLm5hc0Zvcm1Db250cm9sTmFtZU9yaWdpbik7XG5cbiAgICAgICAgaWYgKG9yaWdpbkNvbnRyb2wpIHtcbiAgICAgICAgICBjb25zdCBvcmlnaW4gPSB0aGlzLmFpcnBvcnRzT3JpZ2luLmZpbmQoeCA9PiB4Lm5hbWUgPT09IG9yaWdpbkNvbnRyb2wudmFsdWUpO1xuXG4gICAgICAgICAgaWYgKG9yaWdpbikge1xuICAgICAgICAgICAgdGhpcy5vcmlnaW5BaXJwb3J0Q29kZSA9IG9yaWdpbi5jb2RlO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICBpZiAodGhpcy5uYXNGb3JtQ29udHJvbE5hbWVEZXN0aW5hdGlvbikge1xuICAgICAgICBjb25zdCBkZXN0aW5hdGlvbkNvbnRyb2wgPSB0aGlzLm5hc0Zvcm1Hcm91cC5nZXQodGhpcy5uYXNGb3JtQ29udHJvbE5hbWVEZXN0aW5hdGlvbik7XG5cbiAgICAgICAgaWYgKGRlc3RpbmF0aW9uQ29udHJvbCkge1xuICAgICAgICAgIGNvbnN0IGRlc3RpbmF0aW9uID0gdGhpcy5haXJwb3J0c0Rlc3RpbmF0aW9uLmZpbmQoeCA9PiB4Lm5hbWUgPT09IGRlc3RpbmF0aW9uQ29udHJvbC52YWx1ZSk7XG5cbiAgICAgICAgICBpZiAoZGVzdGluYXRpb24pIHtcbiAgICAgICAgICAgIHRoaXMuZGVzdGluYXRpb25BaXJwb3J0Q29kZSA9IGRlc3RpbmF0aW9uLmNvZGU7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYgKCF0aGlzLmRlc3RpbmF0aW9uKSB7XG4gICAgICB0aGlzLmNsZWFyRGVzdGluYXRpb24oKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB0aGlzLmRlc3RpbmF0aW9uQ2hhbmdlLmVtaXQodGhpcy5kZXN0aW5hdGlvbik7XG4gICAgdGhpcy5vcmlnaW5DaGFuZ2UuZW1pdCh0aGlzLm9yaWdpbik7XG5cblxuICAgIGlmICh0aGlzLm9yaWdpbkFpcnBvcnRDb2RlKSB7XG4gICAgICB0aGlzLnNldE9yaWdpbigpO1xuICAgIH1cblxuICAgIGlmICh0aGlzLmRlc3RpbmF0aW9uQWlycG9ydENvZGUpIHtcbiAgICAgIHRoaXMuc2V0RGVzdGluYXRpb24oKTtcbiAgICB9XG4gIH1cblxuICBuZ0FmdGVyVmlld0luaXQoKSB7XG4gICAgdGhpcy5zZXRJbmxpbmVGbGV4KCk7XG4gICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xuICB9XG5cbiAgZ2V0QWlycG9ydFNlbGVjdENvbWJvQ2xhc3MoZWxlbWVudD86IHN0cmluZywgbW9kaWZpZXJzSW5wdXQ/OiBhbnkpOiBDbGFzc01vZGVsIHtcbiAgICBsZXQgbW9kaWZpZXJzID0gbW9kaWZpZXJzSW5wdXQ7XG5cbiAgICBpZiAodHlwZW9mIG1vZGlmaWVyc0lucHV0ID09PSAnc3RyaW5nJyB8fCBtb2RpZmllcnNJbnB1dCBpbnN0YW5jZW9mIFN0cmluZykge1xuICAgICAgbW9kaWZpZXJzID0gW21vZGlmaWVyc0lucHV0XTtcbiAgICB9XG5cbiAgICByZXR1cm4ge1xuICAgICAgYmxvY2s6ICduYXMtYWlycG9ydC1zZWxlY3QtY29tYm8nLFxuICAgICAgZWxlbWVudDogZWxlbWVudCxcbiAgICAgIG1vZGlmaWVyczogbW9kaWZpZXJzXG4gICAgfTtcbiAgfVxuXG4gIG9uT3JpZ2luT3BlbihvcGVuOiBib29sZWFuKTogdm9pZCB7XG4gICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICB0aGlzLm9yaWdpbk9wZW4gPSBvcGVuO1xuICAgIH0pO1xuICAgIHRoaXMuZGVzdGluYXRpb25PcGVuID0gZmFsc2U7XG4gICAgdGhpcy5vcmlnaW5PcGVuQ2hhbmdlLmVtaXQob3Blbik7XG4gIH1cblxuICBvbkRlc3RpbmF0aW9uT3BlbihvcGVuOiBib29sZWFuKTogdm9pZCB7XG4gICAgdGhpcy5kZXN0aW5hdGlvbk9wZW4gPSBvcGVuO1xuICAgIHRoaXMub3JpZ2luT3BlbiA9IGZhbHNlOyAgICBcblxuICAgIGlmKHRoaXMub3JpZ2luQWlycG9ydENvZGUgJiYgKHRoaXMuYWlycG9ydHNEZXN0aW5hdGlvbiAmJiB0aGlzLmFpcnBvcnRzRGVzdGluYXRpb24ubGVuZ3RoIDw9IDApKSB7XG4gICAgICB0aGlzLm5vRGVzdGluYXRpb25BaXJwb3J0c0F2YWlsYWJsZSA9IHRydWU7XG4gICAgICB0aGlzLmNsZWFyRGVzdGluYXRpb24oKTtcbiAgICB9XG5cbiAgICB0aGlzLmRlc3RpbmF0aW9uT3BlbkNoYW5nZS5lbWl0KG9wZW4pO1xuICB9XG5cbiAgb25TZWxlY3Rpb25DbGVhcmVkKCk6IHZvaWQge1xuICAgIHRoaXMuY2xlYXJlZCA9IHRydWU7XG4gIH1cblxuICBzZXRTZWxlY3RlZE9yaWdpbihhaXJwb3J0OiBBaXJwb3J0TW9kZWwpOiB2b2lkIHtcbiAgICB0aGlzLm5vRGVzdGluYXRpb25BaXJwb3J0c0F2YWlsYWJsZSA9IGZhbHNlO1xuICAgIGlmICghYWlycG9ydCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHRoaXMub3JpZ2luID0gYWlycG9ydDtcbiAgICB0aGlzLm9yaWdpbkFpcnBvcnRDb2RlVmFsdWUgPSBhaXJwb3J0LmNvZGU7XG4gICAgdGhpcy5pc0Rlc3RpbmF0aW9uVmFsaWQgPSBhaXJwb3J0LmNvZGUgPyB0cnVlIDogZmFsc2U7XG5cbiAgICBpZiAodGhpcy5haXJwb3J0UmVsYXRpb25zICYmIHRoaXMuaGFzVmFsaWREZXN0aW5hdGlvbnMoYWlycG9ydCkpIHtcbiAgICAgIHRoaXMudXBkYXRlVmFsaWRBaXJwb3J0RGVzdGluYXRpb25zKGFpcnBvcnQpO1xuICAgICAgdGhpcy5zZXRDdXJyZW50TGF0ZXN0U2VhcmNoZXNEZXN0aW5hdGlvbigpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmFpcnBvcnRzRGVzdGluYXRpb24gPSBbXTtcbiAgICB9XG4gICAgdGhpcy5jbGVhcmVkID0gZmFsc2U7XG4gICAgdGhpcy5vcmlnaW5DaGFuZ2UuZW1pdChhaXJwb3J0KTtcbiAgfVxuXG4gIHNldFNlbGVjdGVkRGVzdGluYXRpb24oYWlycG9ydDogQWlycG9ydE1vZGVsKTogdm9pZCB7XG4gICAgaWYgKCFhaXJwb3J0KSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdGhpcy5kZXN0aW5hdGlvbiA9IGFpcnBvcnQ7IFxuICAgIHRoaXMuZGVzdGluYXRpb25BaXJwb3J0Q29kZVZhbHVlID0gYWlycG9ydC5jb2RlO1xuICAgIHRoaXMuY2xlYXJlZCA9IGZhbHNlO1xuXG4gICAgdGhpcy5kZXN0aW5hdGlvbkNoYW5nZS5lbWl0KGFpcnBvcnQpO1xuICB9XG5cbiAgc2V0Rm9jdXNPbk5leHQoZXZlbnQ6IEtleWJvYXJkRXZlbnQpOiB2b2lkIHtcbiAgICB0aGlzLmZvY3VzT25OZXh0LmVtaXQoZXZlbnQpO1xuICB9XG5cbiAgb25PcmlnaW5Gb2N1cygpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5haXJwb3J0U2VsZWN0RHJvcGRvd25PcmlnaW4pIHtcbiAgICAgIHRoaXMub25PcmlnaW5PcGVuKHRydWUpO1xuICAgIH1cbiAgfVxuXG4gIGNoYW5nZVN3aXRjaEljb24oKTogdm9pZCB7XG4gICAgdGhpcy5zd2l0Y2hUeXBlID0gdGhpcy5zd2l0Y2hUeXBlID09PSAnc3dpdGNoJyA/ICdzd2l0Y2gtLXNlY29uZGFyeScgOiAnc3dpdGNoJztcbiAgfVxuXG4gIHN3YXBBaXJwb3J0cygpOiB2b2lkIHtcbiAgICBjb25zdCBkZXN0aW5hdGlvbiA9IHsgLi4udGhpcy5kZXN0aW5hdGlvbiB9O1xuICAgIGNvbnN0IG9yaWdpbiA9IHsgLi4udGhpcy5vcmlnaW4gfTtcbiAgICB0aGlzLmRlc3RpbmF0aW9uID0gb3JpZ2luO1xuICAgIHRoaXMub3JpZ2luID0gZGVzdGluYXRpb247XG5cbiAgICB0aGlzLnNldFNlbGVjdGVkRGVzdGluYXRpb24odGhpcy5kZXN0aW5hdGlvbik7XG4gICAgdGhpcy5zZXRTZWxlY3RlZE9yaWdpbih0aGlzLm9yaWdpbik7XG4gIH1cblxuICBzd2FwS2V5RG93bihldmVudDogS2V5Ym9hcmRFdmVudCk6IHZvaWQge1xuICAgIHN3aXRjaCAoZXZlbnQua2V5KSB7XG4gICAgICBjYXNlICdFbnRlcic6XG4gICAgICAgIHRoaXMuc3dhcEFpcnBvcnRzKCk7XG4gICAgICAgIGJyZWFrO1xuICAgIH1cbiAgfVxuXG4gIHNldERlc3RpbmF0aW9uT3BlbihldmVudDogS2V5Ym9hcmRFdmVudCk6IHZvaWQge1xuICAgIGlmICh0aGlzLmV4aXN0cyh0aGlzLmNvbWJvKSkge1xuICAgICAgdGhpcy5vbkRlc3RpbmF0aW9uT3Blbih0cnVlKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5zZXRGb2N1c09uTmV4dChldmVudCk7XG4gICAgfVxuICB9XG5cbiAgZ2V0Q2xvc2VzdEFpcnBvcnRzKHBvc2l0aW9uOiBHZW9sb2NhdGlvblBvc2l0aW9uKTogdm9pZCB7XG4gICAgdGhpcy5wb3NpdGlvbkNoYW5nZS5lbWl0KHBvc2l0aW9uKTtcbiAgfVxuXG4gIHNldElubGluZUZsZXgoKTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLmNvbnRhaW5lciAmJiAhdGhpcy5jb250YWluZXI/Lm5hdGl2ZUVsZW1lbnQpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgdGhpcy5pbmxpbmVGbGV4ID0gIXRoaXMuZGV2aWNlSGVscGVyLmlzV2lkdGhNb2JpbGUodGhpcy5jb250YWluZXIubmF0aXZlRWxlbWVudC5vZmZzZXRXaWR0aCk7XG4gIH1cblxuICBwcml2YXRlIGdldEFpcnBvcnRzRGVzdGluYXRpb25zKCk6IEFycmF5PEFpcnBvcnRNb2RlbD4ge1xuICAgIGNvbnN0IGFsbG93ZWREZXN0aW5hdGlvbkFpcnBvcnRzID0gdGhpcy5hbGxvd2VkRGVzdGluYXRpb25BaXJwb3J0cztcblxuICAgIHJldHVybiBhbGxvd2VkRGVzdGluYXRpb25BaXJwb3J0cyAmJiBhbGxvd2VkRGVzdGluYXRpb25BaXJwb3J0cy5sZW5ndGggPiAwXG4gICAgICA/IGFsbG93ZWREZXN0aW5hdGlvbkFpcnBvcnRzXG4gICAgICA6IHRoaXMuYWlycG9ydHM7XG4gIH1cblxuICBwcml2YXRlIHNldE9yaWdpbigpOiB2b2lkIHtcbiAgICBjb25zdCBhaXJwb3J0ID0gdGhpcy5haXJwb3J0cy5maW5kKHggPT4geC5jb2RlID09PSB0aGlzLm9yaWdpbkFpcnBvcnRDb2RlKTtcblxuICAgIGlmIChhaXJwb3J0KSB7XG4gICAgICB0aGlzLnNldFNlbGVjdGVkT3JpZ2luKGFpcnBvcnQpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgc2V0RGVzdGluYXRpb24oKTogdm9pZCB7XG4gICAgY29uc3QgYWlycG9ydCA9IHRoaXMuYWlycG9ydHMuZmluZCh4ID0+IHguY29kZSA9PT0gdGhpcy5kZXN0aW5hdGlvbkFpcnBvcnRDb2RlKTtcblxuICAgIGlmIChhaXJwb3J0KSB7XG4gICAgICB0aGlzLnNldFNlbGVjdGVkRGVzdGluYXRpb24oYWlycG9ydCk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSB1cGRhdGVWYWxpZEFpcnBvcnREZXN0aW5hdGlvbnMoYWlycG9ydDogQWlycG9ydE1vZGVsKTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLmFpcnBvcnRSZWxhdGlvbnMpIHtcbiAgICAgIHRoaXMuYWlycG9ydHNEZXN0aW5hdGlvbiA9IHRoaXMuYWlycG9ydHNPcmlnaW47XG4gICAgfSBlbHNlIHtcbiAgICAgIGNvbnN0IHZhbGlkRGVzdGluYXRpb25zID0gdGhpcy5nZXRBaXJwb3J0UmVsYXRpb25zKGFpcnBvcnQpO1xuXG4gICAgICBpZiAoIXZhbGlkRGVzdGluYXRpb25zKSB7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cblxuICAgICAgaWYgKHZhbGlkRGVzdGluYXRpb25zLmxlbmd0aCA9PT0gMCkge1xuICAgICAgICB0aGlzLmNsZWFyRGVzdGluYXRpb25zKCk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBsZXQgaXNEZXN0aW5hdGlvblZhbGlkOiBib29sZWFuO1xuICAgICAgICBpZiAodGhpcy5kZXN0aW5hdGlvbiAmJiB0aGlzLmRlc3RpbmF0aW9uLmNvZGUpIHtcbiAgICAgICAgICBpc0Rlc3RpbmF0aW9uVmFsaWQgPSB2YWxpZERlc3RpbmF0aW9ucy5zb21lKHggPT4geCAmJiB4LnRvTG93ZXJDYXNlKCkgPT09IHRoaXMuZGVzdGluYXRpb24uY29kZS50b0xvd2VyQ2FzZSgpKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoIWlzRGVzdGluYXRpb25WYWxpZCkge1xuICAgICAgICAgIHRoaXMuY2xlYXJEZXN0aW5hdGlvbigpO1xuICAgICAgICAgIHRoaXMuZGVzdGluYXRpb25DaGFuZ2UuZW1pdChudWxsKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICh0aGlzLmFpcnBvcnRzKSB7XG4gICAgICAgICAgdGhpcy5haXJwb3J0c0Rlc3RpbmF0aW9uID0gdGhpcy5haXJwb3J0c1xuICAgICAgICAgICAgLmZpbHRlcihhaXJwb3J0SXRlbSA9PiBhaXJwb3J0SXRlbVxuICAgICAgICAgICAgICAmJiBhaXJwb3J0SXRlbS5jb2RlXG4gICAgICAgICAgICAgICYmIHZhbGlkRGVzdGluYXRpb25zLnNvbWUoeCA9PiB4ICYmIGFpcnBvcnRJdGVtLmNvZGUudG9Mb3dlckNhc2UoKSA9PT0geC50b0xvd2VyQ2FzZSgpKSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGhhc1ZhbGlkRGVzdGluYXRpb25zKG9yaWdpbjogQWlycG9ydE1vZGVsKTogYm9vbGVhbiB7XG4gICAgaWYgKCFvcmlnaW4pIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgY29uc3QgcmVsYXRpb25zID0gdGhpcy5nZXRBaXJwb3J0UmVsYXRpb25zKG9yaWdpbik7XG5cbiAgICByZXR1cm4gcmVsYXRpb25zICYmIHJlbGF0aW9ucy5sZW5ndGggPiAwO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXRBaXJwb3J0UmVsYXRpb25zKGFpcnBvcnQ6IEFpcnBvcnRNb2RlbCk6IEFycmF5PHN0cmluZz4ge1xuICAgIGlmICghdGhpcy5haXJwb3J0cykge1xuICAgICAgcmV0dXJuIG5ldyBBcnJheTxzdHJpbmc+KCk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHRoaXMuYWlycG9ydFJlbGF0aW9uc1thaXJwb3J0LmNvZGUudG9Mb3dlckNhc2UoKV0gfHwgdGhpcy5haXJwb3J0UmVsYXRpb25zW2FpcnBvcnQuY29kZS50b1VwcGVyQ2FzZSgpXTtcbiAgfVxuXG4gIHByaXZhdGUgY2xlYXJPcmlnaW4oKSB7XG4gICAgdGhpcy5zZXRTZWxlY3RlZE9yaWdpbih7XG4gICAgICBjb2RlOiAnJyxcbiAgICAgIGNvdW50cnlOYW1lOiAnJyxcbiAgICAgIG5hbWU6ICcnLFxuICAgICAgYWlycG9ydE5hbWU6ICcnLFxuICAgICAgZGlzcGxheU5hbWU6ICcnLFxuICAgICAgbm9ybWFsaXplZEFpcnBvcnROYW1lOiAnJ1xuICAgIH0pO1xuICB9XG5cbiAgY2xlYXJEZXN0aW5hdGlvbigpOiB2b2lkIHtcbiAgICB0aGlzLnNldFNlbGVjdGVkRGVzdGluYXRpb24oe1xuICAgICAgY29kZTogJycsXG4gICAgICBjb3VudHJ5TmFtZTogJycsXG4gICAgICBuYW1lOiAnJyxcbiAgICAgIGFpcnBvcnROYW1lOiAnJyxcbiAgICAgIGRpc3BsYXlOYW1lOiAnJyxcbiAgICAgIG5vcm1hbGl6ZWRBaXJwb3J0TmFtZTogJydcbiAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgY2xlYXJEZXN0aW5hdGlvbnMoKTogdm9pZCB7XG4gICAgdGhpcy5haXJwb3J0c0Rlc3RpbmF0aW9uID0gbmV3IEFycmF5PEFpcnBvcnRNb2RlbD4oKTtcblxuICAgIGNvbnN0IG1vZGVsID0ge1xuICAgICAgbmFtZTogdGhpcy50ZXh0U2VsZWN0T3JpZ2luRmlyc3QsXG4gICAgICBjb3VudHJ5TmFtZTogJycsXG4gICAgICBjb2RlOiAnJyxcbiAgICAgIGFpcnBvcnROYW1lOiAnJyxcbiAgICAgIGRpc3BsYXlOYW1lOiAnJyxcbiAgICAgIG5vcm1hbGl6ZWRBaXJwb3J0TmFtZTogJydcbiAgICB9O1xuXG4gICAgdGhpcy5haXJwb3J0c0Rlc3RpbmF0aW9uLnB1c2gobW9kZWwpO1xuICAgIHRoaXMuY2xlYXJEZXN0aW5hdGlvbigpO1xuICAgIHRoaXMuZGVzdGluYXRpb25DaGFuZ2UuZW1pdChtb2RlbCk7XG4gIH1cblxuICBwcml2YXRlIHNldEN1cnJlbnRMYXRlc3RTZWFyY2hlc0Rlc3RpbmF0aW9uKCk6IHZvaWQge1xuICAgIGlmICh0aGlzLmFpcnBvcnRzRGVzdGluYXRpb24pIHtcbiAgICAgIHRoaXMuY3VycmVudExhdGVzdFNlYXJjaGVzRGVzdGluYXRpb24gPSB0aGlzLmFpcnBvcnRzRGVzdGluYXRpb24uZmlsdGVyKGFpcnBvcnQgPT4ge1xuICAgICAgICBpZiAodGhpcy5sYXRlc3RTZWFyY2hlc0Rlc3RpbmF0aW9uKSB7XG4gICAgICAgICAgcmV0dXJuIHRoaXMubGF0ZXN0U2VhcmNoZXNEZXN0aW5hdGlvbi5zb21lKHggPT4geC5jb2RlICYmIHguY29kZS50b0xvd2VyQ2FzZSgpID09PSBhaXJwb3J0LmNvZGUudG9Mb3dlckNhc2UoKSk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIH1cbiAgfVxufVxuIiwiPGRpdiAqbmdJZj1cImV4aXN0cyhjb21ibyk7IGVsc2UgYWlycG9ydFNlbGVjdFRlbXBsYXRlXCJcbiAgW25hc0NsYXNzXT1cImdldEFpcnBvcnRTZWxlY3RDb21ib0NsYXNzKCcnLCBbaW5saW5lRmxleCAmJiAnaW5saW5lJ10pXCIgI2NvbnRhaW5lcj5cbiAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImFpcnBvcnRTZWxlY3RUZW1wbGF0ZVwiPjwvbmctY29udGFpbmVyPlxuPC9kaXY+XG48bmctdGVtcGxhdGUgI2FpcnBvcnRTZWxlY3RUZW1wbGF0ZT5cbiAgPGRpdiBbbmFzQ2xhc3NdPVwiZ2V0Q2xhc3MoJycsIGV4aXN0cyh1c2VTd2l0Y2gpICYmICdwYWRkaW5nLW9yaWdpbicpXCIgKm5nSWY9XCJhaXJwb3J0c09yaWdpblwiPlxuICAgIDxuYXMtYWlycG9ydC1zZWxlY3QtZHJvcGRvd24gI2FpcnBvcnRTZWxlY3REcm9wZG93bk9yaWdpbiBkaXNwbGF5TGF0ZXN0U2VhcmNoZXMgW2lkXT1cIm91dGJvdW5kSWRcIlxuICAgICAgW2VuYWJsZUdlb2xvY2F0aW9uXT1cImRpc3BsYXlDbG9zZXN0QWlycG9ydHNcIiBbZGlzcGxheUNsb3Nlc3RBaXJwb3J0c109XCJkaXNwbGF5Q2xvc2VzdEFpcnBvcnRzXCJcbiAgICAgIFthaXJwb3J0U2VsZWN0TGFiZWxdPVwibGFiZWxPcmlnaW5cIiBbbGF0ZXN0U2VhcmNoZXNdPVwibGF0ZXN0U2VhcmNoZXNPcmlnaW5cIiBbY2xvc2VzdEFpcnBvcnRzXT1cImNsb3Nlc3RBaXJwb3J0c1wiXG4gICAgICBbYWlycG9ydF09XCJvcmlnaW5cIiBbYWlycG9ydHNdPVwiYWlycG9ydHNPcmlnaW5cIiBbcmVzdWx0c0xhYmVsc109XCJyZXN1bHRzTGFiZWxzXCJcbiAgICAgIFthaXJwb3J0U2VsZWN0UGxhY2Vob2xkZXJdPVwicGxhY2Vob2xkZXJPcmlnaW5cIiBbb3Blbl09XCJvcmlnaW5PcGVuXCIgW2tlZXBTZWxlY3Rpb25dPVwia2VlcFNlbGVjdGlvblwiXG4gICAgICBbYWlycG9ydFNlbGVjdEljb25Nb2RpZmllcl09XCInZmxpZ2h0LWRlcGFydHVyZSdcIiBbbmFzRm9ybUNvbnRyb2xOYW1lXT1cIm5hc0Zvcm1Db250cm9sTmFtZU9yaWdpblwiXG4gICAgICBbbmFzRm9ybUdyb3VwXT1cIm5hc0Zvcm1Hcm91cFwiIFthcmlhTGFiZWxDbGVhcl09XCJhcmlhTGFiZWxDbGVhclwiIFthcmlhTGFiZWxCYWNrZHJvcF09XCJhcmlhTGFiZWxCYWNrZHJvcFwiXG4gICAgICBbbGFiZWxPdXRzaWRlXT1cImxhYmVsT3V0c2lkZVwiIChjbGVhcmVkU2VsZWN0aW9uKT1cIm9uU2VsZWN0aW9uQ2xlYXJlZCgpXCIgKHNlbGVjdGVkKT1cInNldFNlbGVjdGVkT3JpZ2luKCRldmVudClcIlxuICAgICAgKG9wZW5DaGFuZ2UpPVwib25PcmlnaW5PcGVuKCRldmVudClcIiAoZm9jdXNPbk5leHQpPVwic2V0RGVzdGluYXRpb25PcGVuKCRldmVudClcIlxuICAgICAgKHBvc2l0aW9uQ2hhbmdlKT1cImdldENsb3Nlc3RBaXJwb3J0cygkZXZlbnQpXCI+PC9uYXMtYWlycG9ydC1zZWxlY3QtZHJvcGRvd24+XG4gIDwvZGl2PlxuICA8bmctY29udGFpbmVyICpuZ0lmPVwiZXhpc3RzKGNvbWJvKVwiPlxuICAgIDxkaXYgW25hc0NsYXNzXT1cImdldENsYXNzKCcnLCBleGlzdHModXNlU3dpdGNoKSAmJiAncGFkZGluZy1kZXN0aW5hdGlvbicpXCI+XG4gICAgICA8bmFzLWFpcnBvcnQtc2VsZWN0LWRyb3Bkb3duICNhaXJwb3J0U2VsZWN0RHJvcGRvd25EZXN0aW5hdGlvbiBkaXNwbGF5TGF0ZXN0U2VhcmNoZXMgW2lkXT1cImluYm91bmRJZFwiXG4gICAgICAgIFthaXJwb3J0U2VsZWN0TGFiZWxdPVwibGFiZWxEZXN0aW5hdGlvblwiIFtkaXNwbGF5Q2xvc2VzdEFpcnBvcnRzXT1cImZhbHNlXCJcbiAgICAgICAgW2xhdGVzdFNlYXJjaGVzXT1cImN1cnJlbnRMYXRlc3RTZWFyY2hlc0Rlc3RpbmF0aW9uXCIgW2FpcnBvcnRzXT1cImFpcnBvcnRzRGVzdGluYXRpb25cIlxuICAgICAgICBbcmVzdWx0c0xhYmVsc109XCJyZXN1bHRzTGFiZWxzXCIgW2FpcnBvcnRdPVwiZGVzdGluYXRpb25cIiBbYWlycG9ydFNlbGVjdFBsYWNlaG9sZGVyXT1cInBsYWNlaG9sZGVyRGVzdGluYXRpb25cIlxuICAgICAgICBbb3Blbl09XCJkZXN0aW5hdGlvbk9wZW5cIiBba2VlcFNlbGVjdGlvbl09XCJrZWVwU2VsZWN0aW9uXCIgW2FpcnBvcnRTZWxlY3RJY29uTW9kaWZpZXJdPVwiJ2ZsaWdodC1hcnJpdmFsJ1wiXG4gICAgICAgIFtuYXNGb3JtQ29udHJvbE5hbWVdPVwibmFzRm9ybUNvbnRyb2xOYW1lRGVzdGluYXRpb25cIiBbbmFzRm9ybUdyb3VwXT1cIm5hc0Zvcm1Hcm91cFwiXG4gICAgICAgIFthcmlhTGFiZWxDbGVhcl09XCJhcmlhTGFiZWxDbGVhclwiIFthcmlhTGFiZWxCYWNrZHJvcF09XCJhcmlhTGFiZWxCYWNrZHJvcFwiIFtpc1ZhbGlkXT1cImlzRGVzdGluYXRpb25WYWxpZFwiXG4gICAgICAgIFtpbnZhbGlkVGV4dF09XCJpbnZhbGlkRGVzdGluYXRpb25UZXh0XCIgW2xhYmVsT3V0c2lkZV09XCJsYWJlbE91dHNpZGVcIiAoY2xlYXJlZFNlbGVjdGlvbik9XCJvblNlbGVjdGlvbkNsZWFyZWQoKVwiXG4gICAgICAgIChzZWxlY3RlZCk9XCJzZXRTZWxlY3RlZERlc3RpbmF0aW9uKCRldmVudClcIiAob3BlbkNoYW5nZSk9XCJvbkRlc3RpbmF0aW9uT3BlbigkZXZlbnQpXCJcbiAgICAgICAgKGZvY3VzT25OZXh0KT1cInNldEZvY3VzT25OZXh0KCRldmVudClcIiAoZm9jdXNPblByZXZpb3VzKT1cIm9uT3JpZ2luRm9jdXMoKVwiIFtub0FpcnBvcnRzQXZhaWxhYmxlXT1cIm5vRGVzdGluYXRpb25BaXJwb3J0c0F2YWlsYWJsZVwiPjwvbmFzLWFpcnBvcnQtc2VsZWN0LWRyb3Bkb3duPlxuICAgIDwvZGl2PlxuICAgIDxkaXYgKm5nSWY9XCJleGlzdHModXNlU3dpdGNoKSAmJiAhKG9yaWdpbk9wZW4gfHwgZGVzdGluYXRpb25PcGVuIHx8IGNsZWFyZWQpXCIgI3N3aXRjaEJ1dHRvblxuICAgICAgW25hc0NsYXNzXT1cImdldEFpcnBvcnRTZWxlY3RDb21ib0NsYXNzKCdzd2l0Y2hlcicsIChvcmlnaW5BaXJwb3J0Q29kZVZhbHVlICYmIGRlc3RpbmF0aW9uQWlycG9ydENvZGVWYWx1ZSkgJiYgJ2ZpbGxlZCcpXCJcbiAgICAgIChtb3VzZW92ZXIpPVwiY2hhbmdlU3dpdGNoSWNvbigpXCIgKG1vdXNlbGVhdmUpPVwiY2hhbmdlU3dpdGNoSWNvbigpXCIgKGtleWRvd24pPVwic3dhcEtleURvd24oJGV2ZW50KVwiXG4gICAgICAoY2xpY2spPVwic3dhcEFpcnBvcnRzKClcIj5cbiAgICAgIDxuYXMtaWNvblxuICAgICAgICBbdHlwZV09XCIodGhpcy5kZXN0aW5hdGlvbkFpcnBvcnRDb2RlVmFsdWUgJiYgdGhpcy5vcmlnaW5BaXJwb3J0Q29kZVZhbHVlKSA/ICd2ZWN0b3ItLXNlY29uZGFyeScgOiAndmVjdG9yJ1wiPjwvbmFzLWljb24+XG4gICAgPC9kaXY+XG4gIDwvbmctY29udGFpbmVyPlxuPC9uZy10ZW1wbGF0ZT4iXX0=
@@ -264,11 +264,11 @@ export class AutocompleteComponent extends NasComponentBase {
264
264
  return this.model ? 'remove--secondary' : 'remove';
265
265
  }
266
266
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: AutocompleteComponent, deps: [{ token: DOCUMENT }], target: i0.ɵɵFactoryTarget.Component }); }
267
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: AutocompleteComponent, selector: "nas-autocomplete", inputs: { label: "label", placeholder: "placeholder", icon: "icon", items: "items", open: "open", model: "model", disableBackdrop: "disableBackdrop", nasFormControlName: "nasFormControlName", nasFormGroup: "nasFormGroup", ariaLabelBackdrop: "ariaLabelBackdrop", ariaLabelClear: "ariaLabelClear" }, outputs: { focusOnNext: "focusOnNext", selectedChange: "selectedChange", openChange: "openChange", modelChange: "modelChange" }, viewQueries: [{ propertyName: "input", first: true, predicate: ["input"], descendants: true }, { propertyName: "span", first: true, predicate: ["span"], descendants: true }, { propertyName: "results", first: true, predicate: ["results"], descendants: true }, { propertyName: "labelElement", first: true, predicate: ["labelDOM"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<ng-container *ngIf=\"!nasFormControlName; else reactiveForm\">\n <label [id]=\"getLabelId()\" (input)=\"onInput($event)\" [attr.aria-label]=\"label\" [nasClass]=\"getClass('wrapper')\"\n #labelElement>\n <span [nasClass]=\"getClass('label')\" #span>{{label}}</span>\n <input #input type=\"text\" role=\"combobox\" aria-haspopup=\"true\" aria-autocomplete=\"none\" autocomplete=\"off\"\n [id]=\"getInputId()\" [attr.aria-controls]=\"getResultsId()\" [attr.aria-expanded]=\"open ? 'true' : 'false'\"\n [attr.aria-owns]=\"getResultsId()\" [nasClass]=\"getClass('input')\" [(ngModel)]=\"model\" [placeholder]=\"placeholder\"\n (focus)=\"setOpen()\" (input)=\"filter()\" (click)=\"setOpen()\" (keydown)=\"onKeyDown($event)\" />\n <span [nasClass]=\"getClass('icon')\">\n <button type=\"button\" role=\"button\" tabindex=\"-1\" *ngIf=\"model; else isEmpty\" [attr.aria-label]=\"ariaLabelClear\"\n (click)=\"clearSelected($event)\">\n <nas-icon [type]=\"setRemoveIcon()\"></nas-icon>\n </button>\n <ng-template #isEmpty>\n <nas-icon [type]=\"'small'\" [icon]=\"icon\"></nas-icon>\n </ng-template>\n </span>\n </label>\n</ng-container>\n<ng-template #reactiveForm>\n <label [id]=\"getLabelId()\" (input)=\"onInput($event)\" [attr.aria-label]=\"label\" [nasClass]=\"getClass('wrapper')\" [formGroup]=\"nasFormGroup\">\n <span [nasClass]=\"getClass('label')\" #span>{{label}}</span>\n <input #input type=\"text\" role=\"combobox\" aria-autocomplete=\"none\" autocomplete=\"off\" [id]=\"getInputId()\"\n [attr.aria-controls]=\"getResultsId()\" [attr.aria-expanded]=\"open ? 'true' : 'false'\"\n [attr.aria-owns]=\"getResultsId()\" [formControlName]=\"nasFormControlName\" [nasClass]=\"getClass('input')\"\n [placeholder]=\"placeholder\" (focus)=\"setOpen()\" (input)=\"filter()\" (click)=\"setOpen()\"\n (keydown)=\"onKeyDown($event)\" />\n <span [nasClass]=\"getClass('icon')\">\n <button type=\"button\" role=\"button\" tabindex=\"-1\" *ngIf=\"model; else isEmpty\" [attr.aria-label]=\"ariaLabelClear\"\n (click)=\"clearSelected($event)\">\n <nas-icon [type]=\"setRemoveIcon()\"></nas-icon>\n </button>\n <ng-template #isEmpty>\n <nas-icon [type]=\"'small'\" [icon]=\"icon\"></nas-icon>\n </ng-template>\n </span>\n </label>\n</ng-template>\n<div [id]=\"getResultsId()\" [nasClass]=\"getClass('results-wrapper')\" [attr.aria-expanded]=\"open ? 'true' : 'false'\">\n <ul #results role=\"listbox\" *ngIf=\"open\" [attr.aria-labelledby]=\"getLabelId()\" [nasClass]=\"getClass('results')\">\n <li role=\"option\" *ngFor=\"let item of filteredItems\" [id]=\"item.id\"\n [nasClass]=\"getClass('list-item', item.id === focused?.id && 'focus')\">\n <button type=\"button\" [nasClass]=\"getClass('item', item.id === focused?.id && 'focus')\" (click)=\"select(item)\"\n tabindex=\"-1\">\n <span [nasClass]=\"getClass('title')\">{{item.title}}</span>\n <span [nasClass]=\"getClass('preamble')\">{{item.preamble}}</span>\n </button>\n </li>\n </ul>\n</div>\n\n<nas-backdrop *ngIf=\"!exists(disableBackdrop)\" [ariaLabelBackdrop]=\"ariaLabelBackdrop\"\n [(showBackdrop)]=\"showBackdrop\"></nas-backdrop>", styles: ["@keyframes fade-in{0%{opacity:0}}@keyframes fade-in-down{0%{opacity:0;transform:translateY(-30px)}}@keyframes fade-in-left{0%{opacity:0;transform:translate(-30px)}}@keyframes fade-in-right{0%{opacity:0;transform:translate(30px)}}@keyframes fade-out{to{opacity:0}}@keyframes flip-in{0%{opacity:0;transform:rotateX(-90deg)}40%{opacity:1;transform:rotateX(10deg)}}@keyframes flip-out{to{opacity:0;transform:rotateX(-90deg)}}@keyframes pop-in-from-top{0%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,-100,1,1);opacity:0}6.67%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,-30.227,1,1)}13.33%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,1.76,1,1)}20%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,7.08,1,1)}26.67%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,3.838,1,1)}33.33%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,.902,1,1);opacity:1}40%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,-.237,1,1)}46.67%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,-.312,1,1)}53.33%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,-.141,1,1)}60%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,-.021,1,1)}66.67%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,.015,1,1)}73.33%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,.013,1,1)}80%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,.005,1,1)}86.67%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,0,1,1)}93.33%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,-.001,1,1);-webkit-transform:translate3d(0,0,0)}to{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,-.001,1,1);-webkit-transform:translate3d(0,0,0)}}.nas-autocomplete__wrapper{position:relative;display:block;z-index:3}.nas-autocomplete__label{font-family:NorwegianTextPro,Arial,Helvetica Neue,Helvetica,sans-serif;font-weight:700;font-size:14px;line-height:20px;display:block;position:relative;z-index:3;padding:9px 16px 0;background-color:#fff;margin-bottom:0;border:2px solid #6F6F6F;border-bottom:0}.nas-autocomplete__input{height:35px;position:relative;z-index:3;line-height:1;margin:0;border:2px solid #6F6F6F;border-top:none;padding:12px 16px}.nas-autocomplete__icon{position:absolute;z-index:4;right:24px;bottom:21px}.nas-autocomplete__results-wrapper{position:relative;z-index:4;perspective:1000px}.nas-autocomplete__results{margin-top:-8px;position:absolute;z-index:3;width:100%;top:2px;left:0;max-height:50vh;overflow-x:hidden;overflow-y:auto;-webkit-overflow-scrolling:touch;border:2px solid #15273F;background-color:#fff;transform-origin:center top;transform-style:preserve-3d;-webkit-backface-visibility:hidden;backface-visibility:hidden;animation:results .65s ease both;scrollbar-width:none;-ms-overflow-style:none;border-top:0;border-bottom:0}.nas-autocomplete__results::-webkit-scrollbar{display:none}.nas-autocomplete__backdrop{display:block;position:fixed;z-index:2;top:0;left:0;width:100%;height:100%;color:transparent;background-color:#0b14202b;animation:backdrop .7s ease-out both}.nas-autocomplete__item{display:block;position:relative;z-index:2;width:100%;text-align:left;padding:12px 16px;margin-top:-1px;outline:0;border-bottom:2px solid #E9E7E4}.nas-autocomplete__item--focus,.nas-autocomplete__item:focus{background-color:#ebf4ff;border-bottom-color:#15273f;border-top:2px solid #15273F}.nas-autocomplete__item--focus,.nas-autocomplete__item--focus .nas-autocomplete__title,.nas-autocomplete__item--focus .nas-autocomplete__preamble,.nas-autocomplete__item:focus,.nas-autocomplete__item:focus .nas-autocomplete__title,.nas-autocomplete__item:focus .nas-autocomplete__preamble{color:#15273f}.nas-autocomplete__item:hover{background-color:#f8f8f8}.nas-autocomplete__title{display:inline-block;font-family:NorwegianTextPro,Arial,Helvetica Neue,Helvetica,sans-serif;font-weight:700;line-height:1;color:#15273f;margin-bottom:3px}.nas-autocomplete__preamble{display:block;font-size:14px}@keyframes results{0%{transform:rotateX(-90deg)}40%{transform:rotateX(20deg)}to{transform:rotateX(0)}}@keyframes backdrop{0%{opacity:0}}\n"], dependencies: [{ kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.NasClassDirective, selector: "[nasClass]", inputs: ["nasClass", "attr.class"] }, { kind: "directive", type: i3.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i3.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i4.IconComponent, selector: "nas-icon", inputs: ["icon", "type", "isIndicator", "lightCircularBackground", "cssClass"] }, { kind: "component", type: i5.BackdropComponent, selector: "nas-backdrop", inputs: ["showBackdrop", "ariaLabelBackdrop"], outputs: ["showBackdropChange"] }, { kind: "directive", type: i3.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i3.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }] }); }
267
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: AutocompleteComponent, selector: "nas-autocomplete", inputs: { label: "label", placeholder: "placeholder", icon: "icon", items: "items", open: "open", model: "model", disableBackdrop: "disableBackdrop", nasFormControlName: "nasFormControlName", nasFormGroup: "nasFormGroup", ariaLabelBackdrop: "ariaLabelBackdrop", ariaLabelClear: "ariaLabelClear" }, outputs: { focusOnNext: "focusOnNext", selectedChange: "selectedChange", openChange: "openChange", modelChange: "modelChange" }, viewQueries: [{ propertyName: "input", first: true, predicate: ["input"], descendants: true }, { propertyName: "span", first: true, predicate: ["span"], descendants: true }, { propertyName: "results", first: true, predicate: ["results"], descendants: true }, { propertyName: "labelElement", first: true, predicate: ["labelDOM"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<ng-container *ngIf=\"!nasFormControlName; else reactiveForm\">\n <label [id]=\"getLabelId()\" (input)=\"onInput($event)\" [attr.aria-label]=\"label\" [nasClass]=\"getClass('wrapper', [open && 'active'])\"\n #labelElement>\n <span [nasClass]=\"getClass('label')\" #span>{{label}}</span>\n <input #input type=\"text\" role=\"combobox\" aria-haspopup=\"true\" aria-autocomplete=\"none\" autocomplete=\"off\"\n [id]=\"getInputId()\" [attr.aria-controls]=\"getResultsId()\" [attr.aria-expanded]=\"open ? 'true' : 'false'\"\n [attr.aria-owns]=\"getResultsId()\" [nasClass]=\"getClass('input')\" [(ngModel)]=\"model\" [placeholder]=\"placeholder\"\n (focus)=\"setOpen()\" (input)=\"filter()\" (click)=\"setOpen()\" (keydown)=\"onKeyDown($event)\" />\n <span [nasClass]=\"getClass('icon')\">\n <button type=\"button\" role=\"button\" tabindex=\"-1\" *ngIf=\"model; else isEmpty\" [attr.aria-label]=\"ariaLabelClear\"\n (click)=\"clearSelected($event)\">\n <nas-icon [type]=\"setRemoveIcon()\"></nas-icon>\n </button>\n <ng-template #isEmpty>\n <nas-icon [type]=\"'small'\" [icon]=\"icon\"></nas-icon>\n </ng-template>\n </span>\n </label>\n</ng-container>\n<ng-template #reactiveForm>\n <label [id]=\"getLabelId()\" (input)=\"onInput($event)\" [attr.aria-label]=\"label\" [nasClass]=\"getClass('wrapper', [open && 'active'])\" [formGroup]=\"nasFormGroup\">\n <span [nasClass]=\"getClass('label')\" #span>{{label}}</span>\n <input #input type=\"text\" role=\"combobox\" aria-autocomplete=\"none\" autocomplete=\"off\" [id]=\"getInputId()\"\n [attr.aria-controls]=\"getResultsId()\" [attr.aria-expanded]=\"open ? 'true' : 'false'\"\n [attr.aria-owns]=\"getResultsId()\" [formControlName]=\"nasFormControlName\" [nasClass]=\"getClass('input')\"\n [placeholder]=\"placeholder\" (focus)=\"setOpen()\" (input)=\"filter()\" (click)=\"setOpen()\"\n (keydown)=\"onKeyDown($event)\" />\n <span [nasClass]=\"getClass('icon')\">\n <button type=\"button\" role=\"button\" tabindex=\"-1\" *ngIf=\"model; else isEmpty\" [attr.aria-label]=\"ariaLabelClear\"\n (click)=\"clearSelected($event)\">\n <nas-icon [type]=\"setRemoveIcon()\"></nas-icon>\n </button>\n <ng-template #isEmpty>\n <nas-icon [type]=\"'small'\" [icon]=\"icon\"></nas-icon>\n </ng-template>\n </span>\n </label>\n</ng-template>\n<div [id]=\"getResultsId()\" [nasClass]=\"getClass('results-wrapper')\" [attr.aria-expanded]=\"open ? 'true' : 'false'\">\n <ul #results role=\"listbox\" *ngIf=\"open\" [attr.aria-labelledby]=\"getLabelId()\" [nasClass]=\"getClass('results')\">\n <li role=\"option\" *ngFor=\"let item of filteredItems\" [id]=\"item.id\"\n [nasClass]=\"getClass('list-item', item.id === focused?.id && 'focus')\">\n <button type=\"button\" [nasClass]=\"getClass('item', item.id === focused?.id && 'focus')\" (click)=\"select(item)\"\n tabindex=\"-1\">\n <span [nasClass]=\"getClass('title')\">{{item.title}}</span>\n <span [nasClass]=\"getClass('preamble')\">{{item.preamble}}</span>\n </button>\n </li>\n </ul>\n</div>\n\n<nas-backdrop *ngIf=\"!exists(disableBackdrop)\" [ariaLabelBackdrop]=\"ariaLabelBackdrop\"\n [(showBackdrop)]=\"showBackdrop\"></nas-backdrop>", styles: ["@keyframes fade-in{0%{opacity:0}}@keyframes fade-in-down{0%{opacity:0;transform:translateY(-30px)}}@keyframes fade-in-left{0%{opacity:0;transform:translate(-30px)}}@keyframes fade-in-right{0%{opacity:0;transform:translate(30px)}}@keyframes fade-out{to{opacity:0}}@keyframes flip-in{0%{opacity:0;transform:rotateX(-90deg)}40%{opacity:1;transform:rotateX(10deg)}}@keyframes flip-out{to{opacity:0;transform:rotateX(-90deg)}}@keyframes pop-in-from-top{0%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,-100,1,1);opacity:0}6.67%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,-30.227,1,1)}13.33%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,1.76,1,1)}20%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,7.08,1,1)}26.67%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,3.838,1,1)}33.33%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,.902,1,1);opacity:1}40%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,-.237,1,1)}46.67%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,-.312,1,1)}53.33%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,-.141,1,1)}60%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,-.021,1,1)}66.67%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,.015,1,1)}73.33%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,.013,1,1)}80%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,.005,1,1)}86.67%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,0,1,1)}93.33%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,-.001,1,1);-webkit-transform:translate3d(0,0,0)}to{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,-.001,1,1);-webkit-transform:translate3d(0,0,0)}}.nas-autocomplete__wrapper{position:relative;display:block;z-index:0}.nas-autocomplete__wrapper--active{z-index:3}.nas-autocomplete__label{font-family:NorwegianTextPro,Arial,Helvetica Neue,Helvetica,sans-serif;font-weight:700;font-size:14px;line-height:20px;display:block;position:relative;z-index:3;padding:9px 16px 0;background-color:#fff;margin-bottom:0;border:2px solid #6F6F6F;border-bottom:0}.nas-autocomplete__input{height:35px;position:relative;z-index:3;line-height:1;margin:0;border:2px solid #6F6F6F;border-top:none;padding:12px 16px}.nas-autocomplete__icon{position:absolute;z-index:4;right:24px;bottom:21px}.nas-autocomplete__results-wrapper{position:relative;z-index:4;perspective:1000px}.nas-autocomplete__results{margin-top:-8px;position:absolute;z-index:3;width:100%;top:2px;left:0;max-height:50vh;overflow-x:hidden;overflow-y:auto;-webkit-overflow-scrolling:touch;border:2px solid #15273F;background-color:#fff;transform-origin:center top;transform-style:preserve-3d;-webkit-backface-visibility:hidden;backface-visibility:hidden;animation:results .65s ease both;scrollbar-width:none;-ms-overflow-style:none;border-top:0;border-bottom:0}.nas-autocomplete__results::-webkit-scrollbar{display:none}.nas-autocomplete__backdrop{display:block;position:fixed;z-index:2;top:0;left:0;width:100%;height:100%;color:transparent;background-color:#0b14202b;animation:backdrop .7s ease-out both}.nas-autocomplete__item{display:block;position:relative;z-index:2;width:100%;text-align:left;padding:12px 16px;margin-top:-1px;outline:0;border-bottom:2px solid #E9E7E4}.nas-autocomplete__item--focus,.nas-autocomplete__item:focus{background-color:#ebf4ff;border-bottom-color:#15273f;border-top:2px solid #15273F}.nas-autocomplete__item--focus,.nas-autocomplete__item--focus .nas-autocomplete__title,.nas-autocomplete__item--focus .nas-autocomplete__preamble,.nas-autocomplete__item:focus,.nas-autocomplete__item:focus .nas-autocomplete__title,.nas-autocomplete__item:focus .nas-autocomplete__preamble{color:#15273f}.nas-autocomplete__item:hover{background-color:#f8f8f8}.nas-autocomplete__title{display:inline-block;font-family:NorwegianTextPro,Arial,Helvetica Neue,Helvetica,sans-serif;font-weight:700;line-height:1;color:#15273f;margin-bottom:3px}.nas-autocomplete__preamble{display:block;font-size:14px}@keyframes results{0%{transform:rotateX(-90deg)}40%{transform:rotateX(20deg)}to{transform:rotateX(0)}}@keyframes backdrop{0%{opacity:0}}\n"], dependencies: [{ kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.NasClassDirective, selector: "[nasClass]", inputs: ["nasClass", "attr.class"] }, { kind: "directive", type: i3.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i3.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i4.IconComponent, selector: "nas-icon", inputs: ["icon", "type", "isIndicator", "lightCircularBackground", "cssClass"] }, { kind: "component", type: i5.BackdropComponent, selector: "nas-backdrop", inputs: ["showBackdrop", "ariaLabelBackdrop"], outputs: ["showBackdropChange"] }, { kind: "directive", type: i3.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i3.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }] }); }
268
268
  }
269
269
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: AutocompleteComponent, decorators: [{
270
270
  type: Component,
271
- args: [{ selector: 'nas-autocomplete', template: "<ng-container *ngIf=\"!nasFormControlName; else reactiveForm\">\n <label [id]=\"getLabelId()\" (input)=\"onInput($event)\" [attr.aria-label]=\"label\" [nasClass]=\"getClass('wrapper')\"\n #labelElement>\n <span [nasClass]=\"getClass('label')\" #span>{{label}}</span>\n <input #input type=\"text\" role=\"combobox\" aria-haspopup=\"true\" aria-autocomplete=\"none\" autocomplete=\"off\"\n [id]=\"getInputId()\" [attr.aria-controls]=\"getResultsId()\" [attr.aria-expanded]=\"open ? 'true' : 'false'\"\n [attr.aria-owns]=\"getResultsId()\" [nasClass]=\"getClass('input')\" [(ngModel)]=\"model\" [placeholder]=\"placeholder\"\n (focus)=\"setOpen()\" (input)=\"filter()\" (click)=\"setOpen()\" (keydown)=\"onKeyDown($event)\" />\n <span [nasClass]=\"getClass('icon')\">\n <button type=\"button\" role=\"button\" tabindex=\"-1\" *ngIf=\"model; else isEmpty\" [attr.aria-label]=\"ariaLabelClear\"\n (click)=\"clearSelected($event)\">\n <nas-icon [type]=\"setRemoveIcon()\"></nas-icon>\n </button>\n <ng-template #isEmpty>\n <nas-icon [type]=\"'small'\" [icon]=\"icon\"></nas-icon>\n </ng-template>\n </span>\n </label>\n</ng-container>\n<ng-template #reactiveForm>\n <label [id]=\"getLabelId()\" (input)=\"onInput($event)\" [attr.aria-label]=\"label\" [nasClass]=\"getClass('wrapper')\" [formGroup]=\"nasFormGroup\">\n <span [nasClass]=\"getClass('label')\" #span>{{label}}</span>\n <input #input type=\"text\" role=\"combobox\" aria-autocomplete=\"none\" autocomplete=\"off\" [id]=\"getInputId()\"\n [attr.aria-controls]=\"getResultsId()\" [attr.aria-expanded]=\"open ? 'true' : 'false'\"\n [attr.aria-owns]=\"getResultsId()\" [formControlName]=\"nasFormControlName\" [nasClass]=\"getClass('input')\"\n [placeholder]=\"placeholder\" (focus)=\"setOpen()\" (input)=\"filter()\" (click)=\"setOpen()\"\n (keydown)=\"onKeyDown($event)\" />\n <span [nasClass]=\"getClass('icon')\">\n <button type=\"button\" role=\"button\" tabindex=\"-1\" *ngIf=\"model; else isEmpty\" [attr.aria-label]=\"ariaLabelClear\"\n (click)=\"clearSelected($event)\">\n <nas-icon [type]=\"setRemoveIcon()\"></nas-icon>\n </button>\n <ng-template #isEmpty>\n <nas-icon [type]=\"'small'\" [icon]=\"icon\"></nas-icon>\n </ng-template>\n </span>\n </label>\n</ng-template>\n<div [id]=\"getResultsId()\" [nasClass]=\"getClass('results-wrapper')\" [attr.aria-expanded]=\"open ? 'true' : 'false'\">\n <ul #results role=\"listbox\" *ngIf=\"open\" [attr.aria-labelledby]=\"getLabelId()\" [nasClass]=\"getClass('results')\">\n <li role=\"option\" *ngFor=\"let item of filteredItems\" [id]=\"item.id\"\n [nasClass]=\"getClass('list-item', item.id === focused?.id && 'focus')\">\n <button type=\"button\" [nasClass]=\"getClass('item', item.id === focused?.id && 'focus')\" (click)=\"select(item)\"\n tabindex=\"-1\">\n <span [nasClass]=\"getClass('title')\">{{item.title}}</span>\n <span [nasClass]=\"getClass('preamble')\">{{item.preamble}}</span>\n </button>\n </li>\n </ul>\n</div>\n\n<nas-backdrop *ngIf=\"!exists(disableBackdrop)\" [ariaLabelBackdrop]=\"ariaLabelBackdrop\"\n [(showBackdrop)]=\"showBackdrop\"></nas-backdrop>", styles: ["@keyframes fade-in{0%{opacity:0}}@keyframes fade-in-down{0%{opacity:0;transform:translateY(-30px)}}@keyframes fade-in-left{0%{opacity:0;transform:translate(-30px)}}@keyframes fade-in-right{0%{opacity:0;transform:translate(30px)}}@keyframes fade-out{to{opacity:0}}@keyframes flip-in{0%{opacity:0;transform:rotateX(-90deg)}40%{opacity:1;transform:rotateX(10deg)}}@keyframes flip-out{to{opacity:0;transform:rotateX(-90deg)}}@keyframes pop-in-from-top{0%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,-100,1,1);opacity:0}6.67%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,-30.227,1,1)}13.33%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,1.76,1,1)}20%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,7.08,1,1)}26.67%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,3.838,1,1)}33.33%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,.902,1,1);opacity:1}40%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,-.237,1,1)}46.67%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,-.312,1,1)}53.33%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,-.141,1,1)}60%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,-.021,1,1)}66.67%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,.015,1,1)}73.33%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,.013,1,1)}80%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,.005,1,1)}86.67%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,0,1,1)}93.33%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,-.001,1,1);-webkit-transform:translate3d(0,0,0)}to{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,-.001,1,1);-webkit-transform:translate3d(0,0,0)}}.nas-autocomplete__wrapper{position:relative;display:block;z-index:3}.nas-autocomplete__label{font-family:NorwegianTextPro,Arial,Helvetica Neue,Helvetica,sans-serif;font-weight:700;font-size:14px;line-height:20px;display:block;position:relative;z-index:3;padding:9px 16px 0;background-color:#fff;margin-bottom:0;border:2px solid #6F6F6F;border-bottom:0}.nas-autocomplete__input{height:35px;position:relative;z-index:3;line-height:1;margin:0;border:2px solid #6F6F6F;border-top:none;padding:12px 16px}.nas-autocomplete__icon{position:absolute;z-index:4;right:24px;bottom:21px}.nas-autocomplete__results-wrapper{position:relative;z-index:4;perspective:1000px}.nas-autocomplete__results{margin-top:-8px;position:absolute;z-index:3;width:100%;top:2px;left:0;max-height:50vh;overflow-x:hidden;overflow-y:auto;-webkit-overflow-scrolling:touch;border:2px solid #15273F;background-color:#fff;transform-origin:center top;transform-style:preserve-3d;-webkit-backface-visibility:hidden;backface-visibility:hidden;animation:results .65s ease both;scrollbar-width:none;-ms-overflow-style:none;border-top:0;border-bottom:0}.nas-autocomplete__results::-webkit-scrollbar{display:none}.nas-autocomplete__backdrop{display:block;position:fixed;z-index:2;top:0;left:0;width:100%;height:100%;color:transparent;background-color:#0b14202b;animation:backdrop .7s ease-out both}.nas-autocomplete__item{display:block;position:relative;z-index:2;width:100%;text-align:left;padding:12px 16px;margin-top:-1px;outline:0;border-bottom:2px solid #E9E7E4}.nas-autocomplete__item--focus,.nas-autocomplete__item:focus{background-color:#ebf4ff;border-bottom-color:#15273f;border-top:2px solid #15273F}.nas-autocomplete__item--focus,.nas-autocomplete__item--focus .nas-autocomplete__title,.nas-autocomplete__item--focus .nas-autocomplete__preamble,.nas-autocomplete__item:focus,.nas-autocomplete__item:focus .nas-autocomplete__title,.nas-autocomplete__item:focus .nas-autocomplete__preamble{color:#15273f}.nas-autocomplete__item:hover{background-color:#f8f8f8}.nas-autocomplete__title{display:inline-block;font-family:NorwegianTextPro,Arial,Helvetica Neue,Helvetica,sans-serif;font-weight:700;line-height:1;color:#15273f;margin-bottom:3px}.nas-autocomplete__preamble{display:block;font-size:14px}@keyframes results{0%{transform:rotateX(-90deg)}40%{transform:rotateX(20deg)}to{transform:rotateX(0)}}@keyframes backdrop{0%{opacity:0}}\n"] }]
271
+ args: [{ selector: 'nas-autocomplete', template: "<ng-container *ngIf=\"!nasFormControlName; else reactiveForm\">\n <label [id]=\"getLabelId()\" (input)=\"onInput($event)\" [attr.aria-label]=\"label\" [nasClass]=\"getClass('wrapper', [open && 'active'])\"\n #labelElement>\n <span [nasClass]=\"getClass('label')\" #span>{{label}}</span>\n <input #input type=\"text\" role=\"combobox\" aria-haspopup=\"true\" aria-autocomplete=\"none\" autocomplete=\"off\"\n [id]=\"getInputId()\" [attr.aria-controls]=\"getResultsId()\" [attr.aria-expanded]=\"open ? 'true' : 'false'\"\n [attr.aria-owns]=\"getResultsId()\" [nasClass]=\"getClass('input')\" [(ngModel)]=\"model\" [placeholder]=\"placeholder\"\n (focus)=\"setOpen()\" (input)=\"filter()\" (click)=\"setOpen()\" (keydown)=\"onKeyDown($event)\" />\n <span [nasClass]=\"getClass('icon')\">\n <button type=\"button\" role=\"button\" tabindex=\"-1\" *ngIf=\"model; else isEmpty\" [attr.aria-label]=\"ariaLabelClear\"\n (click)=\"clearSelected($event)\">\n <nas-icon [type]=\"setRemoveIcon()\"></nas-icon>\n </button>\n <ng-template #isEmpty>\n <nas-icon [type]=\"'small'\" [icon]=\"icon\"></nas-icon>\n </ng-template>\n </span>\n </label>\n</ng-container>\n<ng-template #reactiveForm>\n <label [id]=\"getLabelId()\" (input)=\"onInput($event)\" [attr.aria-label]=\"label\" [nasClass]=\"getClass('wrapper', [open && 'active'])\" [formGroup]=\"nasFormGroup\">\n <span [nasClass]=\"getClass('label')\" #span>{{label}}</span>\n <input #input type=\"text\" role=\"combobox\" aria-autocomplete=\"none\" autocomplete=\"off\" [id]=\"getInputId()\"\n [attr.aria-controls]=\"getResultsId()\" [attr.aria-expanded]=\"open ? 'true' : 'false'\"\n [attr.aria-owns]=\"getResultsId()\" [formControlName]=\"nasFormControlName\" [nasClass]=\"getClass('input')\"\n [placeholder]=\"placeholder\" (focus)=\"setOpen()\" (input)=\"filter()\" (click)=\"setOpen()\"\n (keydown)=\"onKeyDown($event)\" />\n <span [nasClass]=\"getClass('icon')\">\n <button type=\"button\" role=\"button\" tabindex=\"-1\" *ngIf=\"model; else isEmpty\" [attr.aria-label]=\"ariaLabelClear\"\n (click)=\"clearSelected($event)\">\n <nas-icon [type]=\"setRemoveIcon()\"></nas-icon>\n </button>\n <ng-template #isEmpty>\n <nas-icon [type]=\"'small'\" [icon]=\"icon\"></nas-icon>\n </ng-template>\n </span>\n </label>\n</ng-template>\n<div [id]=\"getResultsId()\" [nasClass]=\"getClass('results-wrapper')\" [attr.aria-expanded]=\"open ? 'true' : 'false'\">\n <ul #results role=\"listbox\" *ngIf=\"open\" [attr.aria-labelledby]=\"getLabelId()\" [nasClass]=\"getClass('results')\">\n <li role=\"option\" *ngFor=\"let item of filteredItems\" [id]=\"item.id\"\n [nasClass]=\"getClass('list-item', item.id === focused?.id && 'focus')\">\n <button type=\"button\" [nasClass]=\"getClass('item', item.id === focused?.id && 'focus')\" (click)=\"select(item)\"\n tabindex=\"-1\">\n <span [nasClass]=\"getClass('title')\">{{item.title}}</span>\n <span [nasClass]=\"getClass('preamble')\">{{item.preamble}}</span>\n </button>\n </li>\n </ul>\n</div>\n\n<nas-backdrop *ngIf=\"!exists(disableBackdrop)\" [ariaLabelBackdrop]=\"ariaLabelBackdrop\"\n [(showBackdrop)]=\"showBackdrop\"></nas-backdrop>", styles: ["@keyframes fade-in{0%{opacity:0}}@keyframes fade-in-down{0%{opacity:0;transform:translateY(-30px)}}@keyframes fade-in-left{0%{opacity:0;transform:translate(-30px)}}@keyframes fade-in-right{0%{opacity:0;transform:translate(30px)}}@keyframes fade-out{to{opacity:0}}@keyframes flip-in{0%{opacity:0;transform:rotateX(-90deg)}40%{opacity:1;transform:rotateX(10deg)}}@keyframes flip-out{to{opacity:0;transform:rotateX(-90deg)}}@keyframes pop-in-from-top{0%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,-100,1,1);opacity:0}6.67%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,-30.227,1,1)}13.33%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,1.76,1,1)}20%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,7.08,1,1)}26.67%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,3.838,1,1)}33.33%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,.902,1,1);opacity:1}40%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,-.237,1,1)}46.67%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,-.312,1,1)}53.33%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,-.141,1,1)}60%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,-.021,1,1)}66.67%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,.015,1,1)}73.33%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,.013,1,1)}80%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,.005,1,1)}86.67%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,0,1,1)}93.33%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,-.001,1,1);-webkit-transform:translate3d(0,0,0)}to{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,-.001,1,1);-webkit-transform:translate3d(0,0,0)}}.nas-autocomplete__wrapper{position:relative;display:block;z-index:0}.nas-autocomplete__wrapper--active{z-index:3}.nas-autocomplete__label{font-family:NorwegianTextPro,Arial,Helvetica Neue,Helvetica,sans-serif;font-weight:700;font-size:14px;line-height:20px;display:block;position:relative;z-index:3;padding:9px 16px 0;background-color:#fff;margin-bottom:0;border:2px solid #6F6F6F;border-bottom:0}.nas-autocomplete__input{height:35px;position:relative;z-index:3;line-height:1;margin:0;border:2px solid #6F6F6F;border-top:none;padding:12px 16px}.nas-autocomplete__icon{position:absolute;z-index:4;right:24px;bottom:21px}.nas-autocomplete__results-wrapper{position:relative;z-index:4;perspective:1000px}.nas-autocomplete__results{margin-top:-8px;position:absolute;z-index:3;width:100%;top:2px;left:0;max-height:50vh;overflow-x:hidden;overflow-y:auto;-webkit-overflow-scrolling:touch;border:2px solid #15273F;background-color:#fff;transform-origin:center top;transform-style:preserve-3d;-webkit-backface-visibility:hidden;backface-visibility:hidden;animation:results .65s ease both;scrollbar-width:none;-ms-overflow-style:none;border-top:0;border-bottom:0}.nas-autocomplete__results::-webkit-scrollbar{display:none}.nas-autocomplete__backdrop{display:block;position:fixed;z-index:2;top:0;left:0;width:100%;height:100%;color:transparent;background-color:#0b14202b;animation:backdrop .7s ease-out both}.nas-autocomplete__item{display:block;position:relative;z-index:2;width:100%;text-align:left;padding:12px 16px;margin-top:-1px;outline:0;border-bottom:2px solid #E9E7E4}.nas-autocomplete__item--focus,.nas-autocomplete__item:focus{background-color:#ebf4ff;border-bottom-color:#15273f;border-top:2px solid #15273F}.nas-autocomplete__item--focus,.nas-autocomplete__item--focus .nas-autocomplete__title,.nas-autocomplete__item--focus .nas-autocomplete__preamble,.nas-autocomplete__item:focus,.nas-autocomplete__item:focus .nas-autocomplete__title,.nas-autocomplete__item:focus .nas-autocomplete__preamble{color:#15273f}.nas-autocomplete__item:hover{background-color:#f8f8f8}.nas-autocomplete__title{display:inline-block;font-family:NorwegianTextPro,Arial,Helvetica Neue,Helvetica,sans-serif;font-weight:700;line-height:1;color:#15273f;margin-bottom:3px}.nas-autocomplete__preamble{display:block;font-size:14px}@keyframes results{0%{transform:rotateX(-90deg)}40%{transform:rotateX(20deg)}to{transform:rotateX(0)}}@keyframes backdrop{0%{opacity:0}}\n"] }]
272
272
  }], ctorParameters: function () { return [{ type: undefined, decorators: [{
273
273
  type: Inject,
274
274
  args: [DOCUMENT]
@@ -315,4 +315,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
315
315
  }], modelChange: [{
316
316
  type: Output
317
317
  }] } });
318
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0b2NvbXBsZXRlLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvcmUtY29tcG9uZW50cy9zcmMvbGliL2NvbXBvbmVudHMvYXV0b2NvbXBsZXRlL2F1dG9jb21wbGV0ZS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb3JlLWNvbXBvbmVudHMvc3JjL2xpYi9jb21wb25lbnRzL2F1dG9jb21wbGV0ZS9hdXRvY29tcGxldGUuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7OztHQUdHO0FBQ0gsT0FBTyxFQUNMLFNBQVMsRUFFVCxZQUFZLEVBQ1osTUFBTSxFQUNOLEtBQUssRUFDTCxNQUFNLEVBQ04sU0FBUyxFQUVWLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMzQyxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxZQUFZLENBQUM7Ozs7Ozs7QUFJOUMsSUFBSSxNQUFNLEdBQUcsQ0FBQyxDQUFDO0FBRWY7OztHQUdHO0FBTUgsTUFBTSxPQUFPLHFCQUFzQixTQUFRLGdCQUFnQjtJQUt6RCxJQUFJLFlBQVk7UUFDZCxPQUFPLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDLElBQUksSUFBSSxDQUFDLElBQUksQ0FBQztJQUN6RCxDQUFDO0lBQ0QsSUFBSSxZQUFZLENBQUMsS0FBYztRQUM3QixJQUFJLENBQUMsS0FBSyxFQUFFO1lBQ1YsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDO1NBQ2I7SUFDSCxDQUFDO0lBNEJEOzs7O09BSUc7SUFDSCxJQUNJLEtBQUs7UUFDUCxPQUFPLElBQUksQ0FBQyxVQUFVLENBQUM7SUFDekIsQ0FBQztJQUNELElBQUksS0FBSyxDQUFDLEtBQStCO1FBQ3ZDLElBQUksQ0FBQyxLQUFLLElB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QUFDLENBQUMsQ0FBQyxTQUFTLENBQUM7U0FDeEY7SUFDSCxDQUFDO0lBRUQsYUFBYTtRQUNYLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsbUJBQW1CLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQztJQUNyRCxDQUFDOytHQTVXVSxxQkFBcUIsa0JBbUtaLFFBQVE7bUdBbktqQixxQkFBcUIseTFCQzlCbEMsNnNHQW9EaUQ7OzRGRHRCcEMscUJBQXFCO2tCQUxqQyxTQUFTOytCQUNFLGtCQUFrQjs7MEJBdUtmLE1BQU07MkJBQUMsUUFBUTs0Q0FySlIsS0FBSztzQkFBeEIsU0FBUzt1QkFBQyxPQUFPO2dCQUNDLElBQUk7c0JBQXRCLFNBQVM7dUJBQUMsTUFBTTtnQkFDSyxPQUFPO3NCQUE1QixTQUFTO3VCQUFDLFNBQVM7Z0JBQ0csWUFBWTtzQkFBbEMsU0FBUzt1QkFBQyxVQUFVO2dCQU9aLEtBQUs7c0JBQWIsS0FBSztnQkFPRyxXQUFXO3NCQUFuQixLQUFLO2dCQU9HLElBQUk7c0JBQVosS0FBSztnQkFRRixLQUFLO3NCQURSLEtBQUs7Z0JBb0JGLElBQUk7c0JBRFAsS0FBSztnQkFtQkYsS0FBSztzQkFEUixLQUFLO2dCQXlCRyxlQUFlO3NCQUF2QixLQUFLO2dCQVNHLGtCQUFrQjtzQkFBMUIsS0FBSztnQkFTRyxZQUFZO3NCQUFwQixLQUFLO2dCQU9HLGlCQUFpQjtzQkFBekIsS0FBSztnQkFPRyxjQUFjO3NCQUF0QixLQUFLO2dCQU9JLFdBQVc7c0JBQXBCLE1BQU07Z0JBT0csY0FBYztzQkFBdkIsTUFBTTtnQkFFRyxVQUFVO3NCQUFuQixNQUFNO2dCQUNHLFdBQVc7c0JBQXBCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBsaWNlbnNlXG4gKiBDb3B5cmlnaHQgTm9yd2VnaWFuIEFpciBTaHV0dGxlLiBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICovXG5pbXBvcnQge1xuICBDb21wb25lbnQsXG4gIEVsZW1lbnRSZWYsXG4gIEV2ZW50RW1pdHRlcixcbiAgSW5qZWN0LFxuICBJbnB1dCxcbiAgT3V0cHV0LFxuICBWaWV3Q2hpbGQsXG4gIE9uSW5pdFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IERPQ1VNRU5UIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IE5hc0NvbXBvbmVudEJhc2UgfSBmcm9tICcuLi8uLi9jb3JlJztcbmltcG9ydCB7IEZvcm1Hcm91cCB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IEF1dG9jb21wbGV0ZU1vZGVsIH0gZnJvbSAnLi9tb2RlbHMvYXV0b2NvbXBsZXRlLm1vZGVsJztcblxubGV0IG5leHRJZCA9IDA7XG5cbi8qKlxuICogQGRlc2NyaXB0aW9uXG4gKiBOb3J3ZWdpYW4gQWlycG9ydCBTZWxlY3QgQ29tcG9uZW50IHwgRm9ybSBDb250cm9scyB8IE5ldyBkZXNpZ25cbiAqL1xuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnbmFzLWF1dG9jb21wbGV0ZScsXG4gIHRlbXBsYXRlVXJsOiAnLi9hdXRvY29tcGxldGUuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9hdXRvY29tcGxldGUuY29tcG9uZW50LnNjc3MnXVxufSlcbmV4cG9ydCBjbGFzcyBBdXRvY29tcGxldGVDb21wb25lbnQgZXh0ZW5kcyBOYXNDb21wb25lbnRCYXNlIGltcGxlbWVudHMgT25Jbml0IHtcbiAgZmlsdGVyZWRJdGVtczogQXJyYXk8QXV0b2NvbXBsZXRlTW9kZWw+ID0gdGhpcy5pdGVtcztcbiAgZm9jdXNlZDogQXV0b2NvbXBsZXRlTW9kZWw7XG4gIGluZGV4ID0gLTE7XG5cbiAgZ2V0IHNob3dCYWNrZHJvcCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gIXRoaXMuZXhpc3RzKHRoaXMuZGlzYWJsZUJhY2tkcm9wKSAmJiB0aGlzLm9wZW47XG4gIH1cbiAgc2V0IHNob3dCYWNrZHJvcCh2YWx1ZTogYm9vbGVhbikge1xuICAgIGlmICghdmFsdWUpIHtcbiAgICAgIHRoaXMuYmx1cigpO1xuICAgIH1cbiAgfVxuXG4gIEBWaWV3Q2hpbGQoJ2lucHV0JykgaW5wdXQ6IEVsZW1lbnRSZWY7XG4gIEBWaWV3Q2hpbGQoJ3NwYW4nKSBzcGFuOiBFbGVtZW50UmVmO1xuICBAVmlld0NoaWxkKCdyZXN1bHRzJykgcmVzdWx0czogRWxlbWVudFJlZjtcbiAgQFZpZXdDaGlsZCgnbGFiZWxET00nKSBsYWJlbEVsZW1lbnQ6IEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+O1xuXG4gIC8qKlxuICAgKiBAcHJvcGVydHkgSW5wdXRcbiAgICogQGRlc2NyaXB0aW9uXG4gICAqIEEgbGFiZWwgdGhhdCB3aWxsIGFwcGVhciBpbnNpZGUgdGhlIHRleHQgZmllbGQuXG4gICAqL1xuICBASW5wdXQoKSBsYWJlbDogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBAcHJvcGVydHkgSW5wdXRcbiAgICogQGRlc2NyaXB0aW9uXG4gICAqIEEgcGxhY2Vob2xkZXIgdGhhdCB3aWxsIGFwcGVhciBpbnNpZGUgdGhlIHRleHQgZmllbGQuXG4gICAqL1xuICBASW5wdXQoKSBwbGFjZWhvbGRlciA9ICcnO1xuXG4gIC8qKlxuICAgKiBAcHJvcGVydHkgSW5wdXRcbiAgICogQGRlc2NyaXB0aW9uXG4gICAqIEFuIGljb24gdGhhdCB3aWxsIGFwcGVhciBpbnNpZGUgdGhlIHRleHQgZmllbGQuXG4gICAqL1xuICBASW5wdXQoKSBpY29uOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIEBwcm9wZXJ0eSBJbnB1dFxuICAgKiBAZGVzY3JpcHRpb25cbiAgICogQW4gYXJyYXkgb2YgaXRlbXMgdGhhdCB3aWxsIGFwcGVhciBpbnNpZGUgdGhlIGRyb3Bkb3duIGxpc3QuXG4gICAqL1xuICBASW5wdXQoKVxuICBnZXQgaXRlbXMoKTogQXJyYXk8QXV0b2NvbXBsZXRlTW9kZWw+IHtcbiAgICByZXR1cm4gdGhpcy5pdGVtc1ZhbHVlO1xuICB9XG4gIHNldCBpdGVtcyhpdGVtczogQXJyYXk8QXV0b2NvbXBsZXRlTW9kZWw+KSB7XG4gICAgaWYgKCFpdGVtcyB8fCBpdGVtcy5sZW5ndGggPD0gMCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHRoaXMuaXRlbXNWYWx1ZSA9IGl0ZW1zO1xuXG4gICAgdGhpcy5maWx0ZXIoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBAcHJvcGVydHkgSW5wdXRcbiAgICogQGRlc2NyaXB0aW9uXG4gICAqIENhbiBzZXQgYW5kIGxpc3RlbiB0byB3aGVhdGhlciB0aGUgZHJvcGRvd24gbGlzdCBpcyBvciBzaG91bGQgYmUgb3BlbiBvciBub3QuXG4gICAqL1xuICBASW5wdXQoKVxuICBnZXQgb3BlbigpIHtcbiAgICByZXR1cm4gdGhpcy5vcGVuVmFsdWU7XG4gIH1cbiAgc2V0IG9wZW4ob3BlbjogYm9vbGVhbikge1xuICAgIGlmICh0aGlzLm9wZW4gPT09IG9wZW4gfHwgIXRoaXMuaXRlbXMpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB0aGlzLm9wZW5WYWx1ZSA9IG9wZW47XG4gICAgdGhpcy5vcGVuQ2hhbmdlLmVtaXQob3Blbik7XG4gIH1cblxuICAvKipcbiAgICogQHByb3BlcnR5IElucHV0XG4gICAqIEBkZXNjcmlwdGlvblxuICAgKiBDYW4gc2V0IGFuZCBsaXN0ZW4gdG8gY2hhbmdlcyBpbiB0aGUgbW9kZWwgb2YgdGhlIHRleHQgZmllbGQuXG4gICAqL1xuICBASW5wdXQoKVxuICBnZXQgbW9kZWwoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5tb2RlbFZhbHVlO1xuICB9XG4gIHNldCBtb2RlbChtb2RlbDogc3RyaW5nKSB7XG4gICAgaWYgKHRoaXMubW9kZWxWYWx1ZSA9PT0gbW9kZWwpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB0aGlzLm1vZGVsVmFsdWUgPSBtb2RlbDtcblxuICAgIGlmIChtb2RlbCAmJiB0aGlzLmZpbHRlcmVkSXRlbXMpIHtcbiAgICAgIHRoaXMuaW5kZXggPSB0aGlzLmZpbHRlcmVkSXRlbXMuZmluZEluZGV4KHggPT4geC50aXRsZSA9PT0gbW9kZWwpO1xuICAgIH1cblxuICAgIHRoaXMucGF0aFJlYWN0aXZlRm9ybUNvbnRyb2wobW9kZWwpO1xuXG4gICAgdGhpcy5tb2RlbENoYW5nZS5lbWl0KG1vZGVsKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBAcHJvcGVydHkgSW5wdXRcbiAgICogQGRlc2NyaXB0aW9uXG4gICAqIERpc2FibGVzIHRoZSBiYWNrZHJvcCBvbiBmb2N1cy5cbiAgICovXG4gIEBJbnB1dCgpIGRpc2FibGVCYWNrZHJvcDogYm9vbGVhbjtcblxuICAvKipcbiAgICogQHByb3BlcnR5IElucHV0XG4gICAqIEBkZXNjcmlwdGlvblxuICAgKiBTZXRzIGEgZm9ybUNvbnRyb2xOYW1lIGRpcmVjdGl2ZSB0byB0aGUgaW5wdXQuXG4gICAqIEl0IHJlcXVpcmVzIHRoYXQgdGhlIGNvbnN1bWVyIGluY2x1ZGVkIFJlYWN0aXZlRm9ybXNNb2R1bGUgaW4gaXQncyBtb2R1bGUuXG4gICAqIEl0IHJlcXVpZXJzIHRoYXQgdGhlIG5hc0Zvcm1Hcm91cCBpbnB1dCBpcyBmaWxsZWQuXG4gICAqL1xuICBASW5wdXQoKSBuYXNGb3JtQ29udHJvbE5hbWU6IHN0cmluZztcblxuICAvKipcbiAgICogQHByb3BlcnR5IElucHV0XG4gICAqIEBkZXNjcmlwdGlvblxuICAgKiBBZGRzIHRoZSBwYXJlbnQncyBmb3JtIGdyb3VwLlxuICAgKiBJdCByZXF1aXJlcyB0aGF0IHRoZSBjb25zdW1lciBpbmNsdWRlZCBSZWFjdGl2ZUZvcm1zTW9kdWxlIGluIGl0J3MgbW9kdWxlLlxuICAgKiBJdCBpcyByZXF1aWVyZWQgdG8gYmUgZmlsbGVkIGlmIG5hc0Zvcm1Db250cm9sTmFtZSBhZGRlZC5cbiAgICovXG4gIEBJbnB1dCgpIG5hc0Zvcm1Hcm91cDogRm9ybUdyb3VwO1xuXG4gIC8qKlxuICAgKiBAcHJvcGVydHkgSW5wdXRcbiAgICogQGRlc2NyaXB0aW9uXG4gICAqIEFkZHMgYW4gYXJpYS1sYWJlbCBhdHRyaWJ1dGUgdG8gdGhlIGJhY2tkcm9wIGJ1dHRvbi5cbiAgICovXG4gIEBJbnB1dCgpIGFyaWFMYWJlbEJhY2tkcm9wOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIEBwcm9wZXJ0eSBJbnB1dFxuICAgKiBAZGVzY3JpcHRpb25cbiAgICogQWRkcyAnYXJpYS1sYWJlbCcgb24gdGhlIGNsZWFyIGJ1dHRvbiBpbnNpZGUgaW5wdXQuXG4gICAqL1xuICBASW5wdXQoKSBhcmlhTGFiZWxDbGVhcjogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBAcHJvcGVydHkgT3V0cHV0XG4gICAqIEBkZXNjcmlwdGlvblxuICAgKiBJcyBmaXJlZCB3aGVuIHRoZSBuZXh0IGVsZW1lbnQgc2hvdWxkIGJlIGZvY3VzZWQuXG4gICAqL1xuICBAT3V0cHV0KCkgZm9jdXNPbk5leHQgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG5cbiAgLyoqXG4gICAqIEBwcm9wZXJ0eSBPdXRwdXRcbiAgICogQGRlc2NyaXB0aW9uXG4gICAqIElzIGZpcmVkIHdoZW4gdGhlIHVzZXIgc2VsZWN0cyBhbiBpdGVtIGluIHRoZSBkcm9wZG93biBsaXN0LlxuICAgKi9cbiAgQE91dHB1dCgpIHNlbGVjdGVkQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxBdXRvY29tcGxldGVNb2RlbD4oKTtcblxuICBAT3V0cHV0KCkgb3BlbkNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8Ym9vbGVhbj4oKTtcbiAgQE91dHB1dCgpIG1vZGVsQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxzdHJpbmc+KCk7XG5cbiAgcHJpdmF0ZSBvcGVuVmFsdWUgPSBmYWxzZTtcbiAgcHJpdmF0ZSBpdGVtc1ZhbHVlOiBBcnJheTxBdXRvY29tcGxldGVNb2RlbD47XG4gIHByaXZhdGUgbW9kZWxWYWx1ZTogc3RyaW5nO1xuICBwcml2YXRlIGNvbXBvbmVudElkOiBudW1iZXI7XG5cbiAgY29uc3RydWN0b3IoQEluamVjdChET0NVTUVOVCkgcHJpdmF0ZSBkb2N1bWVudDogYW55KSB7XG4gICAgc3VwZXIoJ25hcy1hdXRvY29tcGxldGUnKTtcbiAgICB0aGlzLmNvbXBvbmVudElkID0gbmV4dElkKys7XG4gIH1cblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMuYXJpYUxhYmVsQ2xlYXIpIHtcbiAgICAgIHRoaXMud2Fybk1pc3NpbmdBY2Nlc3NpYmlsdHlJbnB1dCgnYXJpYUxhYmVsQ2xlYXInKTtcbiAgICB9XG5cbiAgICBpZiAoIXRoaXMuYXJpYUxhYmVsQmFja2Ryb3ApIHtcbiAgICAgIHRoaXMud2Fybk1pc3NpbmdBY2Nlc3NpYmlsdHlJbnB1dCgnYXJpYUxhYmVsQmFja2Ryb3AnKTtcbiAgICB9XG4gIH1cblxuICBnZXRSZXN1bHRzSWQoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gYG5hcy1hdXRvY29tcGxldGUtcmVzdWx0cy0ke3RoaXMuY29tcG9uZW50SWR9YDtcbiAgfVxuXG4gIGdldExhYmVsSWQoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gYG5hcy1hdXRvY29tcGxldGUtbGFiZWwtJHt0aGlzLmNvbXBvbmVudElkfWA7XG4gIH1cblxuICBnZXRJbnB1dElkKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIGBuYXMtYXV0b2NvbXBsZXRlLWlucHV0LSR7dGhpcy5jb21wb25lbnRJZH1gO1xuICB9XG5cbiAgc2V0T3BlbigpOiB2b2lkIHtcbiAgICB0aGlzLmlucHV0Lm5hdGl2ZUVsZW1lbnQuc2VsZWN0KCk7XG4gICAgdGhpcy5vcGVuID0gdHJ1ZTtcbiAgfVxuXG4gIGZpbHRlcigpOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMuaXRlbXMpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBpZiAoIXRoaXMubW9kZWwgJiYgKCF0aGlzLm5hc0Zvcm1Hcm91cCB8fCAhdGhpcy5uYXNGb3JtQ29udHJvbE5hbWUpKSB7XG4gICAgICB0aGlzLmZpbHRlcmVkSXRlbXMgPSB0aGlzLml0ZW1zO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGxldCBjdXJyZW50TW9kZWwgPSB0aGlzLm1vZGVsO1xuXG4gICAgaWYgKHRoaXMubmFzRm9ybUdyb3VwICYmIHRoaXMubmFzRm9ybUNvbnRyb2xOYW1lKSB7XG4gICAgICBjb25zdCBjb250cm9sID0gdGhpcy5uYXNGb3JtR3JvdXAuZ2V0KHRoaXMubmFzRm9ybUNvbnRyb2xOYW1lKTtcblxuICAgICAgY3VycmVudE1vZGVsID0gY29udHJvbC52YWx1ZTtcbiAgICAgIHRoaXMubW9kZWwgPSBjb250cm9sLnZhbHVlO1xuICAgIH1cblxuICAgIHRoaXMuZmlsdGVyZWRJdGVtcyA9IHRoaXMuaXRlbXMuZmlsdGVyKHggPT5cbiAgICAgICh4LnRpdGxlICYmIHgudGl0bGUudG9Mb3dlckNhc2UoKS5pbmNsdWRlcyhjdXJyZW50TW9kZWwudG9Mb3dlckNhc2UoKSkpIHx8XG4gICAgICAoeC5wcmVhbWJsZSAmJiB4LnByZWFtYmxlLnRvTG93ZXJDYXNlKCkuaW5jbHVkZXMoY3VycmVudE1vZGVsLnRvTG93ZXJDYXNlKCkpKSk7XG5cbiAgICBpZiAoY3VycmVudE1vZGVsID09PSAnJyB8fCB0aGlzLmlucHV0Lm5hdGl2ZUVsZW1lbnQudmFsdWUgPT09ICcnKSB7XG4gICAgICB0aGlzLmZpbHRlcmVkSXRlbXMgPSB0aGlzLml0ZW1zO1xuICAgIH1cblxuICAgIHRoaXMuaW5kZXggPSAwO1xuICAgIGlmICh0aGlzLmZpbHRlcmVkSXRlbXMpIHtcbiAgICAgIHRoaXMuZm9jdXNlZCA9IHRoaXMuZmlsdGVyZWRJdGVtc1t0aGlzLmluZGV4XTtcbiAgICAgIHRoaXMub3BlbiA9IHRydWU7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMub3BlbiA9IGZhbHNlO1xuICAgIH1cbiAgfVxuXG4gIG9uS2V5RG93bihldmVudDogS2V5Ym9hcmRFdmVudCk6IHZvaWQge1xuICAgIHN3aXRjaCAoZXZlbnQua2V5KSB7XG4gICAgICBjYXNlICdFc2NhcGUnOlxuICAgICAgICB0aGlzLm9wZW4gPSBmYWxzZTtcbiAgICAgICAgdGhpcy5ibHVyKCk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAnVGFiJzpcbiAgICAgIGNhc2UgJ0VudGVyJzpcbiAgICAgICAgaWYgKCFldmVudC5zaGlmdEtleSkge1xuICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgdGhpcy5mb2N1c09uTmV4dC5lbWl0KGV2ZW50KTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICh0aGlzLmZvY3VzZWQpIHtcbiAgICAgICAgICB0aGlzLm1vZGVsVmFsdWUgPSB0aGlzLmZvY3VzZWQudGl0bGU7XG4gICAgICAgICAgdGhpcy5zZWxlY3RlZENoYW5nZS5lbWl0KHRoaXMuZm9jdXNlZCk7XG4gICAgICAgICAgdGhpcy5wYXRoUmVhY3RpdmVGb3JtQ29udHJvbCh0aGlzLm1vZGVsVmFsdWUpO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5ibHVyKCk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAnQXJyb3dEb3duJzpcbiAgICAgIGNhc2UgJ0Rvd24nOlxuICAgICAgICB0aGlzLmZvY3VzRG93bigpO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgJ0Fycm93VXAnOlxuICAgICAgY2FzZSAnVXAnOlxuICAgICAgICB0aGlzLmZvY3VzVXAoKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBkZWZhdWx0OlxuICAgICAgICBicmVhaztcbiAgICB9XG4gIH1cblxuICBjbGVhclNlbGVjdGVkKGV2ZW50OiBhbnkpOiB2b2lkIHtcbiAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuXG4gICAgdGhpcy5mb2N1c2VkID0gbnVsbDtcbiAgICB0aGlzLmZpbHRlcmVkSXRlbXMgPSB0aGlzLml0ZW1zO1xuICAgIHRoaXMubW9kZWwgPSAnJztcbiAgICB0aGlzLm9wZW4gPSB0cnVlO1xuICAgIHRoaXMuaW5kZXggPSAtMTtcblxuICAgIGlmKCEhdGhpcy5pbnB1dCAmJiAhIXRoaXMuc3Bhbikge1xuICAgICAgdGhpcy5pbnB1dC5uYXRpdmVFbGVtZW50LnN0eWxlLmJvcmRlckNvbG9yID0gJyM2ZjZmNmYnO1xuICAgICAgdGhpcy5zcGFuLm5hdGl2ZUVsZW1lbnQuc3R5bGUuYm9yZGVyQ29sb3IgPSAnIzZmNmY2Zic7XG4gICAgfVxuXG4gICAgdGhpcy5pbnB1dC5uYXRpdmVFbGVtZW50LmZvY3VzKCk7XG4gIH1cblxuICBzZWxlY3QoaXRlbTogQXV0b2NvbXBsZXRlTW9kZWwpOiB2b2lkIHtcbiAgICB0aGlzLmZvY3VzZWQgPSBpdGVtO1xuICAgIHRoaXMubW9kZWwgPSBpdGVtLnRpdGxlO1xuICAgIHRoaXMuc2VsZWN0ZWRDaGFuZ2UuZW1pdChpdGVtKTtcblxuICAgIGlmICh0aGlzLmZpbHRlcmVkSXRlbXMpIHtcbiAgICAgIHRoaXMuaW5kZXggPSB0aGlzLmZpbHRlcmVkSXRlbXMuZmluZEluZGV4KHggPT4geC5pZCA9PT0gaXRlbS5pZCk7XG4gICAgfVxuXG4gICAgdGhpcy5vcGVuID0gZmFsc2U7XG4gICAgdGhpcy5mb2N1c09uTmV4dC5lbWl0KCk7XG4gIH1cblxuICBibHVyKCk6IHZvaWQge1xuICAgIHRoaXMub3BlbiA9IGZhbHNlO1xuICAgIHRoaXMub3BlbkNoYW5nZS5lbWl0KGZhbHNlKTtcbiAgfVxuXG4gIHByaXZhdGUgZm9jdXNEb3duKCk6IHZvaWQge1xuICAgICsrdGhpcy5pbmRleDtcblxuICAgIGlmICh0aGlzLmZpbHRlcmVkSXRlbXMpIHtcbiAgICAgIGlmICghdGhpcy5maWx0ZXJlZEl0ZW1zW3RoaXMuaW5kZXhdKSB7XG4gICAgICAgIHRoaXMuaW5kZXggPSAwO1xuICAgICAgfVxuXG4gICAgICB0aGlzLmZvY3VzZWQgPSB0aGlzLmZpbHRlcmVkSXRlbXNbdGhpcy5pbmRleF07XG4gICAgfVxuXG4gICAgaWYgKHRoaXMuaW5kZXggPT09IDApIHtcbiAgICAgIHRoaXMuYXV0b1Njcm9sbCgwKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5hdXRvU2Nyb2xsKDEzMSk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBmb2N1c1VwKCk6IHZvaWQge1xuICAgIC0tdGhpcy5pbmRleDtcblxuICAgIGlmICh0aGlzLmluZGV4IDwgMCkge1xuICAgICAgdGhpcy5pbmRleCA9IDA7XG4gICAgICB0aGlzLmJsdXIoKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5maWx0ZXJlZEl0ZW1zKSB7XG4gICAgICB0aGlzLmZvY3VzZWQgPSB0aGlzLmZpbHRlcmVkSXRlbXNbdGhpcy5pbmRleF07XG4gICAgfVxuXG4gICAgdGhpcy5hdXRvU2Nyb2xsKDApO1xuICB9XG5cbiAgcGF0aFJlYWN0aXZlRm9ybUNvbnRyb2wobW9kZWw6IHN0cmluZyk6IHZvaWQge1xuICAgIGlmICh0aGlzLm5hc0Zvcm1Hcm91cCAmJiB0aGlzLm5hc0Zvcm1Db250cm9sTmFtZSkge1xuICAgICAgY29uc3QgZm9ybUNvbnRyb2wgPSB0aGlzLm5hc0Zvcm1Hcm91cC5nZXQodGhpcy5uYXNGb3JtQ29udHJvbE5hbWUpO1xuICAgICAgZm9ybUNvbnRyb2wucGF0Y2hWYWx1ZShtb2RlbCk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBhdXRvU2Nyb2xsKGV4dHJhT2Zmc2V0OiBudW1iZXIpOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMucmVzdWx0cykge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBjb25zdCByZXN1bHRzID0gdGhpcy5yZXN1bHRzLm5hdGl2ZUVsZW1lbnQ7XG4gICAgY29uc3QgZm9jdXNlZEl0ZW0gPSB0aGlzLmRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJy5uYXMtYXV0b2NvbXBsZXRlX19saXN0LWl0ZW0tLWZvY3VzJyk7XG5cbiAgICBpZiAoZm9jdXNlZEl0ZW0pIHtcbiAgICAgIHJlc3VsdHMuc2Nyb2xsVG8oMCwgMCk7XG4gICAgICByZXN1bHRzLnNjcm9sbFRvKDAsIGZvY3VzZWRJdGVtLm9mZnNldFRvcCArIGV4dHJhT2Zmc2V0IC0gcmVzdWx0cy5jbGllbnRIZWlnaHQpO1xuICAgIH1cbiAgfVxuXG4gIG9uSW5wdXQoZXZlbnQ6IEV2ZW50KTogdm9pZCB7XG4gICAgY29uc3QgaW5wdXRFbGVtZW50ID0gZXZlbnQudGFyZ2V0IGFzIEhUTUxJbnB1dEVsZW1lbnQ7XG4gICAgaWYgKHRoaXMubGFiZWwubGVuZ3RoID4gMCkge1xuICAgICAgdGhpcy5pbnB1dC5uYXRpdmVFbGVtZW50LnN0eWxlLmJvcmRlckNvbG9yID0gaW5wdXRFbGVtZW50LnZhbHVlID8gJyMxNTI3M2YnIDogJyM2ZjZmNmYnO1xuICAgICAgdGhpcy5zcGFuLm5hdGl2ZUVsZW1lbnQuc3R5bGUuYm9yZGVyQ29sb3IgPSBpbnB1dEVsZW1lbnQudmFsdWUgPyAnIzE1MjczZicgOiAnIzZmNmY2Zic7XG4gICAgfVxuICB9XG5cbiAgc2V0UmVtb3ZlSWNvbigpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLm1vZGVsID8gJ3JlbW92ZS0tc2Vjb25kYXJ5JyA6ICdyZW1vdmUnO1xuICB9XG59XG4iLCI8bmctY29udGFpbmVyICpuZ0lmPVwiIW5hc0Zvcm1Db250cm9sTmFtZTsgZWxzZSByZWFjdGl2ZUZvcm1cIj5cbiAgPGxhYmVsIFtpZF09XCJnZXRMYWJlbElkKClcIiAoaW5wdXQpPVwib25JbnB1dCgkZXZlbnQpXCIgW2F0dHIuYXJpYS1sYWJlbF09XCJsYWJlbFwiIFtuYXNDbGFzc109XCJnZXRDbGFzcygnd3JhcHBlcicpXCJcbiAgICAjbGFiZWxFbGVtZW50PlxuICAgIDxzcGFuIFtuYXNDbGFzc109XCJnZXRDbGFzcygnbGFiZWwnKVwiICNzcGFuPnt7bGFiZWx9fTwvc3Bhbj5cbiAgICA8aW5wdXQgI2lucHV0IHR5cGU9XCJ0ZXh0XCIgcm9sZT1cImNvbWJvYm94XCIgYXJpYS1oYXNwb3B1cD1cInRydWVcIiBhcmlhLWF1dG9jb21wbGV0ZT1cIm5vbmVcIiBhdXRvY29tcGxldGU9XCJvZmZcIlxuICAgICAgW2lkXT1cImdldElucHV0SWQoKVwiIFthdHRyLmFyaWEtY29udHJvbHNdPVwiZ2V0UmVzdWx0c0lkKClcIiBbYXR0ci5hcmlhLWV4cGFuZGVkXT1cIm9wZW4gPyAndHJ1ZScgOiAnZmFsc2UnXCJcbiAgICAgIFthdHRyLmFyaWEtb3duc109XCJnZXRSZXN1bHRzSWQoKVwiIFtuYXNDbGFzc109XCJnZXRDbGFzcygnaW5wdXQnKVwiIFsobmdNb2RlbCldPVwibW9kZWxcIiBbcGxhY2Vob2xkZXJdPVwicGxhY2Vob2xkZXJcIlxuICAgICAgKGZvY3VzKT1cInNldE9wZW4oKVwiIChpbnB1dCk9XCJmaWx0ZXIoKVwiIChjbGljayk9XCJzZXRPcGVuKClcIiAoa2V5ZG93bik9XCJvbktleURvd24oJGV2ZW50KVwiIC8+XG4gICAgPHNwYW4gW25hc0NsYXNzXT1cImdldENsYXNzKCdpY29uJylcIj5cbiAgICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiIHJvbGU9XCJidXR0b25cIiB0YWJpbmRleD1cIi0xXCIgKm5nSWY9XCJtb2RlbDsgZWxzZSBpc0VtcHR5XCIgW2F0dHIuYXJpYS1sYWJlbF09XCJhcmlhTGFiZWxDbGVhclwiXG4gICAgICAgIChjbGljayk9XCJjbGVhclNlbGVjdGVkKCRldmVudClcIj5cbiAgICAgICAgPG5hcy1pY29uIFt0eXBlXT1cInNldFJlbW92ZUljb24oKVwiPjwvbmFzLWljb24+XG4gICAgICA8L2J1dHRvbj5cbiAgICAgIDxuZy10ZW1wbGF0ZSAjaXNFbXB0eT5cbiAgICAgICAgPG5hcy1pY29uIFt0eXBlXT1cIidzbWFsbCdcIiBbaWNvbl09XCJpY29uXCI+PC9uYXMtaWNvbj5cbiAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgPC9zcGFuPlxuICA8L2xhYmVsPlxuPC9uZy1jb250YWluZXI+XG48bmctdGVtcGxhdGUgI3JlYWN0aXZlRm9ybT5cbiAgPGxhYmVsIFtpZF09XCJnZXRMYWJlbElkKClcIiAoaW5wdXQpPVwib25JbnB1dCgkZXZlbnQpXCIgW2F0dHIuYXJpYS1sYWJlbF09XCJsYWJlbFwiIFtuYXNDbGFzc109XCJnZXRDbGFzcygnd3JhcHBlcicpXCIgW2Zvcm1Hcm91cF09XCJuYXNGb3JtR3JvdXBcIj5cbiAgICA8c3BhbiBbbmFzQ2xhc3NdPVwiZ2V0Q2xhc3MoJ2xhYmVsJylcIiAjc3Bhbj57e2xhYmVsfX08L3NwYW4+XG4gICAgPGlucHV0ICNpbnB1dCB0eXBlPVwidGV4dFwiIHJvbGU9XCJjb21ib2JveFwiIGFyaWEtYXV0b2NvbXBsZXRlPVwibm9uZVwiIGF1dG9jb21wbGV0ZT1cIm9mZlwiIFtpZF09XCJnZXRJbnB1dElkKClcIlxuICAgICAgW2F0dHIuYXJpYS1jb250cm9sc109XCJnZXRSZXN1bHRzSWQoKVwiIFthdHRyLmFyaWEtZXhwYW5kZWRdPVwib3BlbiA/ICd0cnVlJyA6ICdmYWxzZSdcIlxuICAgICAgW2F0dHIuYXJpYS1vd25zXT1cImdldFJlc3VsdHNJZCgpXCIgW2Zvcm1Db250cm9sTmFtZV09XCJuYXNGb3JtQ29udHJvbE5hbWVcIiBbbmFzQ2xhc3NdPVwiZ2V0Q2xhc3MoJ2lucHV0JylcIlxuICAgICAgW3BsYWNlaG9sZGVyXT1cInBsYWNlaG9sZGVyXCIgKGZvY3VzKT1cInNldE9wZW4oKVwiIChpbnB1dCk9XCJmaWx0ZXIoKVwiIChjbGljayk9XCJzZXRPcGVuKClcIlxuICAgICAgKGtleWRvd24pPVwib25LZXlEb3duKCRldmVudClcIiAvPlxuICAgIDxzcGFuIFtuYXNDbGFzc109XCJnZXRDbGFzcygnaWNvbicpXCI+XG4gICAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiByb2xlPVwiYnV0dG9uXCIgdGFiaW5kZXg9XCItMVwiICpuZ0lmPVwibW9kZWw7IGVsc2UgaXNFbXB0eVwiIFthdHRyLmFyaWEtbGFiZWxdPVwiYXJpYUxhYmVsQ2xlYXJcIlxuICAgICAgICAoY2xpY2spPVwiY2xlYXJTZWxlY3RlZCgkZXZlbnQpXCI+XG4gICAgICAgIDxuYXMtaWNvbiBbdHlwZV09XCJzZXRSZW1vdmVJY29uKClcIj48L25hcy1pY29uPlxuICAgICAgPC9idXR0b24+XG4gICAgICA8bmctdGVtcGxhdGUgI2lzRW1wdHk+XG4gICAgICAgIDxuYXMtaWNvbiBbdHlwZV09XCInc21hbGwnXCIgW2ljb25dPVwiaWNvblwiPjwvbmFzLWljb24+XG4gICAgICA8L25nLXRlbXBsYXRlPlxuICAgIDwvc3Bhbj5cbiAgPC9sYWJlbD5cbjwvbmctdGVtcGxhdGU+XG48ZGl2IFtpZF09XCJnZXRSZXN1bHRzSWQoKVwiIFtuYXNDbGFzc109XCJnZXRDbGFzcygncmVzdWx0cy13cmFwcGVyJylcIiBbYXR0ci5hcmlhLWV4cGFuZGVkXT1cIm9wZW4gPyAndHJ1ZScgOiAnZmFsc2UnXCI+XG4gIDx1bCAjcmVzdWx0cyByb2xlPVwibGlzdGJveFwiICpuZ0lmPVwib3BlblwiIFthdHRyLmFyaWEtbGFiZWxsZWRieV09XCJnZXRMYWJlbElkKClcIiBbbmFzQ2xhc3NdPVwiZ2V0Q2xhc3MoJ3Jlc3VsdHMnKVwiPlxuICAgIDxsaSByb2xlPVwib3B0aW9uXCIgKm5nRm9yPVwibGV0IGl0ZW0gb2YgZmlsdGVyZWRJdGVtc1wiIFtpZF09XCJpdGVtLmlkXCJcbiAgICAgIFtuYXNDbGFzc109XCJnZXRDbGFzcygnbGlzdC1pdGVtJywgaXRlbS5pZCA9PT0gZm9jdXNlZD8uaWQgJiYgJ2ZvY3VzJylcIj5cbiAgICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiIFtuYXNDbGFzc109XCJnZXRDbGFzcygnaXRlbScsIGl0ZW0uaWQgPT09IGZvY3VzZWQ/LmlkICYmICdmb2N1cycpXCIgKGNsaWNrKT1cInNlbGVjdChpdGVtKVwiXG4gICAgICAgIHRhYmluZGV4PVwiLTFcIj5cbiAgICAgICAgPHNwYW4gW25hc0NsYXNzXT1cImdldENsYXNzKCd0aXRsZScpXCI+e3tpdGVtLnRpdGxlfX08L3NwYW4+XG4gICAgICAgIDxzcGFuIFtuYXNDbGFzc109XCJnZXRDbGFzcygncHJlYW1ibGUnKVwiPnt7aXRlbS5wcmVhbWJsZX19PC9zcGFuPlxuICAgICAgPC9idXR0b24+XG4gICAgPC9saT5cbiAgPC91bD5cbjwvZGl2PlxuXG48bmFzLWJhY2tkcm9wICpuZ0lmPVwiIWV4aXN0cyhkaXNhYmxlQmFja2Ryb3ApXCIgW2FyaWFMYWJlbEJhY2tkcm9wXT1cImFyaWFMYWJlbEJhY2tkcm9wXCJcbiAgWyhzaG93QmFja2Ryb3ApXT1cInNob3dCYWNrZHJvcFwiPjwvbmFzLWJhY2tkcm9wPiJdfQ==
318
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0b2NvbXBsZXRlLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvcmUtY29tcG9uZW50cy9zcmMvbGliL2NvbXBvbmVudHMvYXV0b2NvbXBsZXRlL2F1dG9jb21wbGV0ZS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb3JlLWNvbXBvbmVudHMvc3JjL2xpYi9jb21wb25lbnRzL2F1dG9jb21wbGV0ZS9hdXRvY29tcGxldGUuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7OztHQUdHO0FBQ0gsT0FBTyxFQUNMLFNBQVMsRUFFVCxZQUFZLEVBQ1osTUFBTSxFQUNOLEtBQUssRUFDTCxNQUFNLEVBQ04sU0FBUyxFQUVWLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMzQyxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxZQUFZLENBQUM7Ozs7Ozs7QUFJOUMsSUFBSSxNQUFNLEdBQUcsQ0FBQyxDQUFDO0FBRWY7OztHQUdHO0FBTUgsTUFBTSxPQUFPLHFCQUFzQixTQUFRLGdCQUFnQjtJQUt6RCxJQUFJLFlBQVk7UUFDZCxPQUFPLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDLElBQUksSUFBSSxDQUFDLElBQUksQ0FBQztJQUN6RCxDQUFDO0lBQ0QsSUFBSSxZQUFZLENBQUMsS0FBYztRQUM3QixJQUFJLENBQUMsS0FBSyxFQUFFO1lBQ1YsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDO1NBQ2I7SUFDSCxDQUFDO0lBNEJEOzs7O09BSUc7SUFDSCxJQUNJLEtBQUs7UUFDUCxPQUFPLElBQUksQ0FBQyxVQUFVLENBQUM7SUFDekIsQ0FBQztJQUNELElBQUksS0FBSyxDQUFDLEtBQStCO1FBQ3ZDLElBQUksQ0FBQyxLQUFLLElB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QUFDLENBQUMsQ0FBQyxTQUFTLENBQUM7U0FDeEY7SUFDSCxDQUFDO0lBRUQsYUFBYTtRQUNYLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsbUJBQW1CLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQztJQUNyRCxDQUFDOytHQTVXVSxxQkFBcUIsa0JBbUtaLFFBQVE7bUdBbktqQixxQkFBcUIseTFCQzlCbEMscXZHQW9EaUQ7OzRGRHRCcEMscUJBQXFCO2tCQUxqQyxTQUFTOytCQUNFLGtCQUFrQjs7MEJBdUtmLE1BQU07MkJBQUMsUUFBUTs0Q0FySlIsS0FBSztzQkFBeEIsU0FBUzt1QkFBQyxPQUFPO2dCQUNDLElBQUk7c0JBQXRCLFNBQVM7dUJBQUMsTUFBTTtnQkFDSyxPQUFPO3NCQUE1QixTQUFTO3VCQUFDLFNBQVM7Z0JBQ0csWUFBWTtzQkFBbEMsU0FBUzt1QkFBQyxVQUFVO2dCQU9aLEtBQUs7c0JBQWIsS0FBSztnQkFPRyxXQUFXO3NCQUFuQixLQUFLO2dCQU9HLElBQUk7c0JBQVosS0FBSztnQkFRRixLQUFLO3NCQURSLEtBQUs7Z0JBb0JGLElBQUk7c0JBRFAsS0FBSztnQkFtQkYsS0FBSztzQkFEUixLQUFLO2dCQXlCRyxlQUFlO3NCQUF2QixLQUFLO2dCQVNHLGtCQUFrQjtzQkFBMUIsS0FBSztnQkFTRyxZQUFZO3NCQUFwQixLQUFLO2dCQU9HLGlCQUFpQjtzQkFBekIsS0FBSztnQkFPRyxjQUFjO3NCQUF0QixLQUFLO2dCQU9JLFdBQVc7c0JBQXBCLE1BQU07Z0JBT0csY0FBYztzQkFBdkIsTUFBTTtnQkFFRyxVQUFVO3NCQUFuQixNQUFNO2dCQUNHLFdBQVc7c0JBQXBCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBsaWNlbnNlXG4gKiBDb3B5cmlnaHQgTm9yd2VnaWFuIEFpciBTaHV0dGxlLiBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICovXG5pbXBvcnQge1xuICBDb21wb25lbnQsXG4gIEVsZW1lbnRSZWYsXG4gIEV2ZW50RW1pdHRlcixcbiAgSW5qZWN0LFxuICBJbnB1dCxcbiAgT3V0cHV0LFxuICBWaWV3Q2hpbGQsXG4gIE9uSW5pdFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IERPQ1VNRU5UIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IE5hc0NvbXBvbmVudEJhc2UgfSBmcm9tICcuLi8uLi9jb3JlJztcbmltcG9ydCB7IEZvcm1Hcm91cCB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IEF1dG9jb21wbGV0ZU1vZGVsIH0gZnJvbSAnLi9tb2RlbHMvYXV0b2NvbXBsZXRlLm1vZGVsJztcblxubGV0IG5leHRJZCA9IDA7XG5cbi8qKlxuICogQGRlc2NyaXB0aW9uXG4gKiBOb3J3ZWdpYW4gQWlycG9ydCBTZWxlY3QgQ29tcG9uZW50IHwgRm9ybSBDb250cm9scyB8IE5ldyBkZXNpZ25cbiAqL1xuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnbmFzLWF1dG9jb21wbGV0ZScsXG4gIHRlbXBsYXRlVXJsOiAnLi9hdXRvY29tcGxldGUuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9hdXRvY29tcGxldGUuY29tcG9uZW50LnNjc3MnXVxufSlcbmV4cG9ydCBjbGFzcyBBdXRvY29tcGxldGVDb21wb25lbnQgZXh0ZW5kcyBOYXNDb21wb25lbnRCYXNlIGltcGxlbWVudHMgT25Jbml0IHtcbiAgZmlsdGVyZWRJdGVtczogQXJyYXk8QXV0b2NvbXBsZXRlTW9kZWw+ID0gdGhpcy5pdGVtcztcbiAgZm9jdXNlZDogQXV0b2NvbXBsZXRlTW9kZWw7XG4gIGluZGV4ID0gLTE7XG5cbiAgZ2V0IHNob3dCYWNrZHJvcCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gIXRoaXMuZXhpc3RzKHRoaXMuZGlzYWJsZUJhY2tkcm9wKSAmJiB0aGlzLm9wZW47XG4gIH1cbiAgc2V0IHNob3dCYWNrZHJvcCh2YWx1ZTogYm9vbGVhbikge1xuICAgIGlmICghdmFsdWUpIHtcbiAgICAgIHRoaXMuYmx1cigpO1xuICAgIH1cbiAgfVxuXG4gIEBWaWV3Q2hpbGQoJ2lucHV0JykgaW5wdXQ6IEVsZW1lbnRSZWY7XG4gIEBWaWV3Q2hpbGQoJ3NwYW4nKSBzcGFuOiBFbGVtZW50UmVmO1xuICBAVmlld0NoaWxkKCdyZXN1bHRzJykgcmVzdWx0czogRWxlbWVudFJlZjtcbiAgQFZpZXdDaGlsZCgnbGFiZWxET00nKSBsYWJlbEVsZW1lbnQ6IEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+O1xuXG4gIC8qKlxuICAgKiBAcHJvcGVydHkgSW5wdXRcbiAgICogQGRlc2NyaXB0aW9uXG4gICAqIEEgbGFiZWwgdGhhdCB3aWxsIGFwcGVhciBpbnNpZGUgdGhlIHRleHQgZmllbGQuXG4gICAqL1xuICBASW5wdXQoKSBsYWJlbDogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBAcHJvcGVydHkgSW5wdXRcbiAgICogQGRlc2NyaXB0aW9uXG4gICAqIEEgcGxhY2Vob2xkZXIgdGhhdCB3aWxsIGFwcGVhciBpbnNpZGUgdGhlIHRleHQgZmllbGQuXG4gICAqL1xuICBASW5wdXQoKSBwbGFjZWhvbGRlciA9ICcnO1xuXG4gIC8qKlxuICAgKiBAcHJvcGVydHkgSW5wdXRcbiAgICogQGRlc2NyaXB0aW9uXG4gICAqIEFuIGljb24gdGhhdCB3aWxsIGFwcGVhciBpbnNpZGUgdGhlIHRleHQgZmllbGQuXG4gICAqL1xuICBASW5wdXQoKSBpY29uOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIEBwcm9wZXJ0eSBJbnB1dFxuICAgKiBAZGVzY3JpcHRpb25cbiAgICogQW4gYXJyYXkgb2YgaXRlbXMgdGhhdCB3aWxsIGFwcGVhciBpbnNpZGUgdGhlIGRyb3Bkb3duIGxpc3QuXG4gICAqL1xuICBASW5wdXQoKVxuICBnZXQgaXRlbXMoKTogQXJyYXk8QXV0b2NvbXBsZXRlTW9kZWw+IHtcbiAgICByZXR1cm4gdGhpcy5pdGVtc1ZhbHVlO1xuICB9XG4gIHNldCBpdGVtcyhpdGVtczogQXJyYXk8QXV0b2NvbXBsZXRlTW9kZWw+KSB7XG4gICAgaWYgKCFpdGVtcyB8fCBpdGVtcy5sZW5ndGggPD0gMCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHRoaXMuaXRlbXNWYWx1ZSA9IGl0ZW1zO1xuXG4gICAgdGhpcy5maWx0ZXIoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBAcHJvcGVydHkgSW5wdXRcbiAgICogQGRlc2NyaXB0aW9uXG4gICAqIENhbiBzZXQgYW5kIGxpc3RlbiB0byB3aGVhdGhlciB0aGUgZHJvcGRvd24gbGlzdCBpcyBvciBzaG91bGQgYmUgb3BlbiBvciBub3QuXG4gICAqL1xuICBASW5wdXQoKVxuICBnZXQgb3BlbigpIHtcbiAgICByZXR1cm4gdGhpcy5vcGVuVmFsdWU7XG4gIH1cbiAgc2V0IG9wZW4ob3BlbjogYm9vbGVhbikge1xuICAgIGlmICh0aGlzLm9wZW4gPT09IG9wZW4gfHwgIXRoaXMuaXRlbXMpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB0aGlzLm9wZW5WYWx1ZSA9IG9wZW47XG4gICAgdGhpcy5vcGVuQ2hhbmdlLmVtaXQob3Blbik7XG4gIH1cblxuICAvKipcbiAgICogQHByb3BlcnR5IElucHV0XG4gICAqIEBkZXNjcmlwdGlvblxuICAgKiBDYW4gc2V0IGFuZCBsaXN0ZW4gdG8gY2hhbmdlcyBpbiB0aGUgbW9kZWwgb2YgdGhlIHRleHQgZmllbGQuXG4gICAqL1xuICBASW5wdXQoKVxuICBnZXQgbW9kZWwoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5tb2RlbFZhbHVlO1xuICB9XG4gIHNldCBtb2RlbChtb2RlbDogc3RyaW5nKSB7XG4gICAgaWYgKHRoaXMubW9kZWxWYWx1ZSA9PT0gbW9kZWwpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB0aGlzLm1vZGVsVmFsdWUgPSBtb2RlbDtcblxuICAgIGlmIChtb2RlbCAmJiB0aGlzLmZpbHRlcmVkSXRlbXMpIHtcbiAgICAgIHRoaXMuaW5kZXggPSB0aGlzLmZpbHRlcmVkSXRlbXMuZmluZEluZGV4KHggPT4geC50aXRsZSA9PT0gbW9kZWwpO1xuICAgIH1cblxuICAgIHRoaXMucGF0aFJlYWN0aXZlRm9ybUNvbnRyb2wobW9kZWwpO1xuXG4gICAgdGhpcy5tb2RlbENoYW5nZS5lbWl0KG1vZGVsKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBAcHJvcGVydHkgSW5wdXRcbiAgICogQGRlc2NyaXB0aW9uXG4gICAqIERpc2FibGVzIHRoZSBiYWNrZHJvcCBvbiBmb2N1cy5cbiAgICovXG4gIEBJbnB1dCgpIGRpc2FibGVCYWNrZHJvcDogYm9vbGVhbjtcblxuICAvKipcbiAgICogQHByb3BlcnR5IElucHV0XG4gICAqIEBkZXNjcmlwdGlvblxuICAgKiBTZXRzIGEgZm9ybUNvbnRyb2xOYW1lIGRpcmVjdGl2ZSB0byB0aGUgaW5wdXQuXG4gICAqIEl0IHJlcXVpcmVzIHRoYXQgdGhlIGNvbnN1bWVyIGluY2x1ZGVkIFJlYWN0aXZlRm9ybXNNb2R1bGUgaW4gaXQncyBtb2R1bGUuXG4gICAqIEl0IHJlcXVpZXJzIHRoYXQgdGhlIG5hc0Zvcm1Hcm91cCBpbnB1dCBpcyBmaWxsZWQuXG4gICAqL1xuICBASW5wdXQoKSBuYXNGb3JtQ29udHJvbE5hbWU6IHN0cmluZztcblxuICAvKipcbiAgICogQHByb3BlcnR5IElucHV0XG4gICAqIEBkZXNjcmlwdGlvblxuICAgKiBBZGRzIHRoZSBwYXJlbnQncyBmb3JtIGdyb3VwLlxuICAgKiBJdCByZXF1aXJlcyB0aGF0IHRoZSBjb25zdW1lciBpbmNsdWRlZCBSZWFjdGl2ZUZvcm1zTW9kdWxlIGluIGl0J3MgbW9kdWxlLlxuICAgKiBJdCBpcyByZXF1aWVyZWQgdG8gYmUgZmlsbGVkIGlmIG5hc0Zvcm1Db250cm9sTmFtZSBhZGRlZC5cbiAgICovXG4gIEBJbnB1dCgpIG5hc0Zvcm1Hcm91cDogRm9ybUdyb3VwO1xuXG4gIC8qKlxuICAgKiBAcHJvcGVydHkgSW5wdXRcbiAgICogQGRlc2NyaXB0aW9uXG4gICAqIEFkZHMgYW4gYXJpYS1sYWJlbCBhdHRyaWJ1dGUgdG8gdGhlIGJhY2tkcm9wIGJ1dHRvbi5cbiAgICovXG4gIEBJbnB1dCgpIGFyaWFMYWJlbEJhY2tkcm9wOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIEBwcm9wZXJ0eSBJbnB1dFxuICAgKiBAZGVzY3JpcHRpb25cbiAgICogQWRkcyAnYXJpYS1sYWJlbCcgb24gdGhlIGNsZWFyIGJ1dHRvbiBpbnNpZGUgaW5wdXQuXG4gICAqL1xuICBASW5wdXQoKSBhcmlhTGFiZWxDbGVhcjogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBAcHJvcGVydHkgT3V0cHV0XG4gICAqIEBkZXNjcmlwdGlvblxuICAgKiBJcyBmaXJlZCB3aGVuIHRoZSBuZXh0IGVsZW1lbnQgc2hvdWxkIGJlIGZvY3VzZWQuXG4gICAqL1xuICBAT3V0cHV0KCkgZm9jdXNPbk5leHQgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG5cbiAgLyoqXG4gICAqIEBwcm9wZXJ0eSBPdXRwdXRcbiAgICogQGRlc2NyaXB0aW9uXG4gICAqIElzIGZpcmVkIHdoZW4gdGhlIHVzZXIgc2VsZWN0cyBhbiBpdGVtIGluIHRoZSBkcm9wZG93biBsaXN0LlxuICAgKi9cbiAgQE91dHB1dCgpIHNlbGVjdGVkQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxBdXRvY29tcGxldGVNb2RlbD4oKTtcblxuICBAT3V0cHV0KCkgb3BlbkNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8Ym9vbGVhbj4oKTtcbiAgQE91dHB1dCgpIG1vZGVsQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxzdHJpbmc+KCk7XG5cbiAgcHJpdmF0ZSBvcGVuVmFsdWUgPSBmYWxzZTtcbiAgcHJpdmF0ZSBpdGVtc1ZhbHVlOiBBcnJheTxBdXRvY29tcGxldGVNb2RlbD47XG4gIHByaXZhdGUgbW9kZWxWYWx1ZTogc3RyaW5nO1xuICBwcml2YXRlIGNvbXBvbmVudElkOiBudW1iZXI7XG5cbiAgY29uc3RydWN0b3IoQEluamVjdChET0NVTUVOVCkgcHJpdmF0ZSBkb2N1bWVudDogYW55KSB7XG4gICAgc3VwZXIoJ25hcy1hdXRvY29tcGxldGUnKTtcbiAgICB0aGlzLmNvbXBvbmVudElkID0gbmV4dElkKys7XG4gIH1cblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMuYXJpYUxhYmVsQ2xlYXIpIHtcbiAgICAgIHRoaXMud2Fybk1pc3NpbmdBY2Nlc3NpYmlsdHlJbnB1dCgnYXJpYUxhYmVsQ2xlYXInKTtcbiAgICB9XG5cbiAgICBpZiAoIXRoaXMuYXJpYUxhYmVsQmFja2Ryb3ApIHtcbiAgICAgIHRoaXMud2Fybk1pc3NpbmdBY2Nlc3NpYmlsdHlJbnB1dCgnYXJpYUxhYmVsQmFja2Ryb3AnKTtcbiAgICB9XG4gIH1cblxuICBnZXRSZXN1bHRzSWQoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gYG5hcy1hdXRvY29tcGxldGUtcmVzdWx0cy0ke3RoaXMuY29tcG9uZW50SWR9YDtcbiAgfVxuXG4gIGdldExhYmVsSWQoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gYG5hcy1hdXRvY29tcGxldGUtbGFiZWwtJHt0aGlzLmNvbXBvbmVudElkfWA7XG4gIH1cblxuICBnZXRJbnB1dElkKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIGBuYXMtYXV0b2NvbXBsZXRlLWlucHV0LSR7dGhpcy5jb21wb25lbnRJZH1gO1xuICB9XG5cbiAgc2V0T3BlbigpOiB2b2lkIHtcbiAgICB0aGlzLmlucHV0Lm5hdGl2ZUVsZW1lbnQuc2VsZWN0KCk7XG4gICAgdGhpcy5vcGVuID0gdHJ1ZTtcbiAgfVxuXG4gIGZpbHRlcigpOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMuaXRlbXMpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBpZiAoIXRoaXMubW9kZWwgJiYgKCF0aGlzLm5hc0Zvcm1Hcm91cCB8fCAhdGhpcy5uYXNGb3JtQ29udHJvbE5hbWUpKSB7XG4gICAgICB0aGlzLmZpbHRlcmVkSXRlbXMgPSB0aGlzLml0ZW1zO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGxldCBjdXJyZW50TW9kZWwgPSB0aGlzLm1vZGVsO1xuXG4gICAgaWYgKHRoaXMubmFzRm9ybUdyb3VwICYmIHRoaXMubmFzRm9ybUNvbnRyb2xOYW1lKSB7XG4gICAgICBjb25zdCBjb250cm9sID0gdGhpcy5uYXNGb3JtR3JvdXAuZ2V0KHRoaXMubmFzRm9ybUNvbnRyb2xOYW1lKTtcblxuICAgICAgY3VycmVudE1vZGVsID0gY29udHJvbC52YWx1ZTtcbiAgICAgIHRoaXMubW9kZWwgPSBjb250cm9sLnZhbHVlO1xuICAgIH1cblxuICAgIHRoaXMuZmlsdGVyZWRJdGVtcyA9IHRoaXMuaXRlbXMuZmlsdGVyKHggPT5cbiAgICAgICh4LnRpdGxlICYmIHgudGl0bGUudG9Mb3dlckNhc2UoKS5pbmNsdWRlcyhjdXJyZW50TW9kZWwudG9Mb3dlckNhc2UoKSkpIHx8XG4gICAgICAoeC5wcmVhbWJsZSAmJiB4LnByZWFtYmxlLnRvTG93ZXJDYXNlKCkuaW5jbHVkZXMoY3VycmVudE1vZGVsLnRvTG93ZXJDYXNlKCkpKSk7XG5cbiAgICBpZiAoY3VycmVudE1vZGVsID09PSAnJyB8fCB0aGlzLmlucHV0Lm5hdGl2ZUVsZW1lbnQudmFsdWUgPT09ICcnKSB7XG4gICAgICB0aGlzLmZpbHRlcmVkSXRlbXMgPSB0aGlzLml0ZW1zO1xuICAgIH1cblxuICAgIHRoaXMuaW5kZXggPSAwO1xuICAgIGlmICh0aGlzLmZpbHRlcmVkSXRlbXMpIHtcbiAgICAgIHRoaXMuZm9jdXNlZCA9IHRoaXMuZmlsdGVyZWRJdGVtc1t0aGlzLmluZGV4XTtcbiAgICAgIHRoaXMub3BlbiA9IHRydWU7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMub3BlbiA9IGZhbHNlO1xuICAgIH1cbiAgfVxuXG4gIG9uS2V5RG93bihldmVudDogS2V5Ym9hcmRFdmVudCk6IHZvaWQge1xuICAgIHN3aXRjaCAoZXZlbnQua2V5KSB7XG4gICAgICBjYXNlICdFc2NhcGUnOlxuICAgICAgICB0aGlzLm9wZW4gPSBmYWxzZTtcbiAgICAgICAgdGhpcy5ibHVyKCk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAnVGFiJzpcbiAgICAgIGNhc2UgJ0VudGVyJzpcbiAgICAgICAgaWYgKCFldmVudC5zaGlmdEtleSkge1xuICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgdGhpcy5mb2N1c09uTmV4dC5lbWl0KGV2ZW50KTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICh0aGlzLmZvY3VzZWQpIHtcbiAgICAgICAgICB0aGlzLm1vZGVsVmFsdWUgPSB0aGlzLmZvY3VzZWQudGl0bGU7XG4gICAgICAgICAgdGhpcy5zZWxlY3RlZENoYW5nZS5lbWl0KHRoaXMuZm9jdXNlZCk7XG4gICAgICAgICAgdGhpcy5wYXRoUmVhY3RpdmVGb3JtQ29udHJvbCh0aGlzLm1vZGVsVmFsdWUpO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5ibHVyKCk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAnQXJyb3dEb3duJzpcbiAgICAgIGNhc2UgJ0Rvd24nOlxuICAgICAgICB0aGlzLmZvY3VzRG93bigpO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgJ0Fycm93VXAnOlxuICAgICAgY2FzZSAnVXAnOlxuICAgICAgICB0aGlzLmZvY3VzVXAoKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBkZWZhdWx0OlxuICAgICAgICBicmVhaztcbiAgICB9XG4gIH1cblxuICBjbGVhclNlbGVjdGVkKGV2ZW50OiBhbnkpOiB2b2lkIHtcbiAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuXG4gICAgdGhpcy5mb2N1c2VkID0gbnVsbDtcbiAgICB0aGlzLmZpbHRlcmVkSXRlbXMgPSB0aGlzLml0ZW1zO1xuICAgIHRoaXMubW9kZWwgPSAnJztcbiAgICB0aGlzLm9wZW4gPSB0cnVlO1xuICAgIHRoaXMuaW5kZXggPSAtMTtcblxuICAgIGlmKCEhdGhpcy5pbnB1dCAmJiAhIXRoaXMuc3Bhbikge1xuICAgICAgdGhpcy5pbnB1dC5uYXRpdmVFbGVtZW50LnN0eWxlLmJvcmRlckNvbG9yID0gJyM2ZjZmNmYnO1xuICAgICAgdGhpcy5zcGFuLm5hdGl2ZUVsZW1lbnQuc3R5bGUuYm9yZGVyQ29sb3IgPSAnIzZmNmY2Zic7XG4gICAgfVxuXG4gICAgdGhpcy5pbnB1dC5uYXRpdmVFbGVtZW50LmZvY3VzKCk7XG4gIH1cblxuICBzZWxlY3QoaXRlbTogQXV0b2NvbXBsZXRlTW9kZWwpOiB2b2lkIHtcbiAgICB0aGlzLmZvY3VzZWQgPSBpdGVtO1xuICAgIHRoaXMubW9kZWwgPSBpdGVtLnRpdGxlO1xuICAgIHRoaXMuc2VsZWN0ZWRDaGFuZ2UuZW1pdChpdGVtKTtcblxuICAgIGlmICh0aGlzLmZpbHRlcmVkSXRlbXMpIHtcbiAgICAgIHRoaXMuaW5kZXggPSB0aGlzLmZpbHRlcmVkSXRlbXMuZmluZEluZGV4KHggPT4geC5pZCA9PT0gaXRlbS5pZCk7XG4gICAgfVxuXG4gICAgdGhpcy5vcGVuID0gZmFsc2U7XG4gICAgdGhpcy5mb2N1c09uTmV4dC5lbWl0KCk7XG4gIH1cblxuICBibHVyKCk6IHZvaWQge1xuICAgIHRoaXMub3BlbiA9IGZhbHNlO1xuICAgIHRoaXMub3BlbkNoYW5nZS5lbWl0KGZhbHNlKTtcbiAgfVxuXG4gIHByaXZhdGUgZm9jdXNEb3duKCk6IHZvaWQge1xuICAgICsrdGhpcy5pbmRleDtcblxuICAgIGlmICh0aGlzLmZpbHRlcmVkSXRlbXMpIHtcbiAgICAgIGlmICghdGhpcy5maWx0ZXJlZEl0ZW1zW3RoaXMuaW5kZXhdKSB7XG4gICAgICAgIHRoaXMuaW5kZXggPSAwO1xuICAgICAgfVxuXG4gICAgICB0aGlzLmZvY3VzZWQgPSB0aGlzLmZpbHRlcmVkSXRlbXNbdGhpcy5pbmRleF07XG4gICAgfVxuXG4gICAgaWYgKHRoaXMuaW5kZXggPT09IDApIHtcbiAgICAgIHRoaXMuYXV0b1Njcm9sbCgwKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5hdXRvU2Nyb2xsKDEzMSk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBmb2N1c1VwKCk6IHZvaWQge1xuICAgIC0tdGhpcy5pbmRleDtcblxuICAgIGlmICh0aGlzLmluZGV4IDwgMCkge1xuICAgICAgdGhpcy5pbmRleCA9IDA7XG4gICAgICB0aGlzLmJsdXIoKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5maWx0ZXJlZEl0ZW1zKSB7XG4gICAgICB0aGlzLmZvY3VzZWQgPSB0aGlzLmZpbHRlcmVkSXRlbXNbdGhpcy5pbmRleF07XG4gICAgfVxuXG4gICAgdGhpcy5hdXRvU2Nyb2xsKDApO1xuICB9XG5cbiAgcGF0aFJlYWN0aXZlRm9ybUNvbnRyb2wobW9kZWw6IHN0cmluZyk6IHZvaWQge1xuICAgIGlmICh0aGlzLm5hc0Zvcm1Hcm91cCAmJiB0aGlzLm5hc0Zvcm1Db250cm9sTmFtZSkge1xuICAgICAgY29uc3QgZm9ybUNvbnRyb2wgPSB0aGlzLm5hc0Zvcm1Hcm91cC5nZXQodGhpcy5uYXNGb3JtQ29udHJvbE5hbWUpO1xuICAgICAgZm9ybUNvbnRyb2wucGF0Y2hWYWx1ZShtb2RlbCk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBhdXRvU2Nyb2xsKGV4dHJhT2Zmc2V0OiBudW1iZXIpOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMucmVzdWx0cykge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBjb25zdCByZXN1bHRzID0gdGhpcy5yZXN1bHRzLm5hdGl2ZUVsZW1lbnQ7XG4gICAgY29uc3QgZm9jdXNlZEl0ZW0gPSB0aGlzLmRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJy5uYXMtYXV0b2NvbXBsZXRlX19saXN0LWl0ZW0tLWZvY3VzJyk7XG5cbiAgICBpZiAoZm9jdXNlZEl0ZW0pIHtcbiAgICAgIHJlc3VsdHMuc2Nyb2xsVG8oMCwgMCk7XG4gICAgICByZXN1bHRzLnNjcm9sbFRvKDAsIGZvY3VzZWRJdGVtLm9mZnNldFRvcCArIGV4dHJhT2Zmc2V0IC0gcmVzdWx0cy5jbGllbnRIZWlnaHQpO1xuICAgIH1cbiAgfVxuXG4gIG9uSW5wdXQoZXZlbnQ6IEV2ZW50KTogdm9pZCB7XG4gICAgY29uc3QgaW5wdXRFbGVtZW50ID0gZXZlbnQudGFyZ2V0IGFzIEhUTUxJbnB1dEVsZW1lbnQ7XG4gICAgaWYgKHRoaXMubGFiZWwubGVuZ3RoID4gMCkge1xuICAgICAgdGhpcy5pbnB1dC5uYXRpdmVFbGVtZW50LnN0eWxlLmJvcmRlckNvbG9yID0gaW5wdXRFbGVtZW50LnZhbHVlID8gJyMxNTI3M2YnIDogJyM2ZjZmNmYnO1xuICAgICAgdGhpcy5zcGFuLm5hdGl2ZUVsZW1lbnQuc3R5bGUuYm9yZGVyQ29sb3IgPSBpbnB1dEVsZW1lbnQudmFsdWUgPyAnIzE1MjczZicgOiAnIzZmNmY2Zic7XG4gICAgfVxuICB9XG5cbiAgc2V0UmVtb3ZlSWNvbigpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLm1vZGVsID8gJ3JlbW92ZS0tc2Vjb25kYXJ5JyA6ICdyZW1vdmUnO1xuICB9XG59XG4iLCI8bmctY29udGFpbmVyICpuZ0lmPVwiIW5hc0Zvcm1Db250cm9sTmFtZTsgZWxzZSByZWFjdGl2ZUZvcm1cIj5cbiAgPGxhYmVsIFtpZF09XCJnZXRMYWJlbElkKClcIiAoaW5wdXQpPVwib25JbnB1dCgkZXZlbnQpXCIgW2F0dHIuYXJpYS1sYWJlbF09XCJsYWJlbFwiIFtuYXNDbGFzc109XCJnZXRDbGFzcygnd3JhcHBlcicsIFtvcGVuICYmICdhY3RpdmUnXSlcIlxuICAgICNsYWJlbEVsZW1lbnQ+XG4gICAgPHNwYW4gW25hc0NsYXNzXT1cImdldENsYXNzKCdsYWJlbCcpXCIgI3NwYW4+e3tsYWJlbH19PC9zcGFuPlxuICAgIDxpbnB1dCAjaW5wdXQgdHlwZT1cInRleHRcIiByb2xlPVwiY29tYm9ib3hcIiBhcmlhLWhhc3BvcHVwPVwidHJ1ZVwiIGFyaWEtYXV0b2NvbXBsZXRlPVwibm9uZVwiIGF1dG9jb21wbGV0ZT1cIm9mZlwiXG4gICAgICBbaWRdPVwiZ2V0SW5wdXRJZCgpXCIgW2F0dHIuYXJpYS1jb250cm9sc109XCJnZXRSZXN1bHRzSWQoKVwiIFthdHRyLmFyaWEtZXhwYW5kZWRdPVwib3BlbiA/ICd0cnVlJyA6ICdmYWxzZSdcIlxuICAgICAgW2F0dHIuYXJpYS1vd25zXT1cImdldFJlc3VsdHNJZCgpXCIgW25hc0NsYXNzXT1cImdldENsYXNzKCdpbnB1dCcpXCIgWyhuZ01vZGVsKV09XCJtb2RlbFwiIFtwbGFjZWhvbGRlcl09XCJwbGFjZWhvbGRlclwiXG4gICAgICAoZm9jdXMpPVwic2V0T3BlbigpXCIgKGlucHV0KT1cImZpbHRlcigpXCIgKGNsaWNrKT1cInNldE9wZW4oKVwiIChrZXlkb3duKT1cIm9uS2V5RG93bigkZXZlbnQpXCIgLz5cbiAgICA8c3BhbiBbbmFzQ2xhc3NdPVwiZ2V0Q2xhc3MoJ2ljb24nKVwiPlxuICAgICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgcm9sZT1cImJ1dHRvblwiIHRhYmluZGV4PVwiLTFcIiAqbmdJZj1cIm1vZGVsOyBlbHNlIGlzRW1wdHlcIiBbYXR0ci5hcmlhLWxhYmVsXT1cImFyaWFMYWJlbENsZWFyXCJcbiAgICAgICAgKGNsaWNrKT1cImNsZWFyU2VsZWN0ZWQoJGV2ZW50KVwiPlxuICAgICAgICA8bmFzLWljb24gW3R5cGVdPVwic2V0UmVtb3ZlSWNvbigpXCI+PC9uYXMtaWNvbj5cbiAgICAgIDwvYnV0dG9uPlxuICAgICAgPG5nLXRlbXBsYXRlICNpc0VtcHR5PlxuICAgICAgICA8bmFzLWljb24gW3R5cGVdPVwiJ3NtYWxsJ1wiIFtpY29uXT1cImljb25cIj48L25hcy1pY29uPlxuICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICA8L3NwYW4+XG4gIDwvbGFiZWw+XG48L25nLWNvbnRhaW5lcj5cbjxuZy10ZW1wbGF0ZSAjcmVhY3RpdmVGb3JtPlxuICA8bGFiZWwgW2lkXT1cImdldExhYmVsSWQoKVwiIChpbnB1dCk9XCJvbklucHV0KCRldmVudClcIiBbYXR0ci5hcmlhLWxhYmVsXT1cImxhYmVsXCIgW25hc0NsYXNzXT1cImdldENsYXNzKCd3cmFwcGVyJywgW29wZW4gJiYgJ2FjdGl2ZSddKVwiIFtmb3JtR3JvdXBdPVwibmFzRm9ybUdyb3VwXCI+XG4gICAgPHNwYW4gW25hc0NsYXNzXT1cImdldENsYXNzKCdsYWJlbCcpXCIgI3NwYW4+e3tsYWJlbH19PC9zcGFuPlxuICAgIDxpbnB1dCAjaW5wdXQgdHlwZT1cInRleHRcIiByb2xlPVwiY29tYm9ib3hcIiBhcmlhLWF1dG9jb21wbGV0ZT1cIm5vbmVcIiBhdXRvY29tcGxldGU9XCJvZmZcIiBbaWRdPVwiZ2V0SW5wdXRJZCgpXCJcbiAgICAgIFthdHRyLmFyaWEtY29udHJvbHNdPVwiZ2V0UmVzdWx0c0lkKClcIiBbYXR0ci5hcmlhLWV4cGFuZGVkXT1cIm9wZW4gPyAndHJ1ZScgOiAnZmFsc2UnXCJcbiAgICAgIFthdHRyLmFyaWEtb3duc109XCJnZXRSZXN1bHRzSWQoKVwiIFtmb3JtQ29udHJvbE5hbWVdPVwibmFzRm9ybUNvbnRyb2xOYW1lXCIgW25hc0NsYXNzXT1cImdldENsYXNzKCdpbnB1dCcpXCJcbiAgICAgIFtwbGFjZWhvbGRlcl09XCJwbGFjZWhvbGRlclwiIChmb2N1cyk9XCJzZXRPcGVuKClcIiAoaW5wdXQpPVwiZmlsdGVyKClcIiAoY2xpY2spPVwic2V0T3BlbigpXCJcbiAgICAgIChrZXlkb3duKT1cIm9uS2V5RG93bigkZXZlbnQpXCIgLz5cbiAgICA8c3BhbiBbbmFzQ2xhc3NdPVwiZ2V0Q2xhc3MoJ2ljb24nKVwiPlxuICAgICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgcm9sZT1cImJ1dHRvblwiIHRhYmluZGV4PVwiLTFcIiAqbmdJZj1cIm1vZGVsOyBlbHNlIGlzRW1wdHlcIiBbYXR0ci5hcmlhLWxhYmVsXT1cImFyaWFMYWJlbENsZWFyXCJcbiAgICAgICAgKGNsaWNrKT1cImNsZWFyU2VsZWN0ZWQoJGV2ZW50KVwiPlxuICAgICAgICA8bmFzLWljb24gW3R5cGVdPVwic2V0UmVtb3ZlSWNvbigpXCI+PC9uYXMtaWNvbj5cbiAgICAgIDwvYnV0dG9uPlxuICAgICAgPG5nLXRlbXBsYXRlICNpc0VtcHR5PlxuICAgICAgICA8bmFzLWljb24gW3R5cGVdPVwiJ3NtYWxsJ1wiIFtpY29uXT1cImljb25cIj48L25hcy1pY29uPlxuICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICA8L3NwYW4+XG4gIDwvbGFiZWw+XG48L25nLXRlbXBsYXRlPlxuPGRpdiBbaWRdPVwiZ2V0UmVzdWx0c0lkKClcIiBbbmFzQ2xhc3NdPVwiZ2V0Q2xhc3MoJ3Jlc3VsdHMtd3JhcHBlcicpXCIgW2F0dHIuYXJpYS1leHBhbmRlZF09XCJvcGVuID8gJ3RydWUnIDogJ2ZhbHNlJ1wiPlxuICA8dWwgI3Jlc3VsdHMgcm9sZT1cImxpc3Rib3hcIiAqbmdJZj1cIm9wZW5cIiBbYXR0ci5hcmlhLWxhYmVsbGVkYnldPVwiZ2V0TGFiZWxJZCgpXCIgW25hc0NsYXNzXT1cImdldENsYXNzKCdyZXN1bHRzJylcIj5cbiAgICA8bGkgcm9sZT1cIm9wdGlvblwiICpuZ0Zvcj1cImxldCBpdGVtIG9mIGZpbHRlcmVkSXRlbXNcIiBbaWRdPVwiaXRlbS5pZFwiXG4gICAgICBbbmFzQ2xhc3NdPVwiZ2V0Q2xhc3MoJ2xpc3QtaXRlbScsIGl0ZW0uaWQgPT09IGZvY3VzZWQ/LmlkICYmICdmb2N1cycpXCI+XG4gICAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiBbbmFzQ2xhc3NdPVwiZ2V0Q2xhc3MoJ2l0ZW0nLCBpdGVtLmlkID09PSBmb2N1c2VkPy5pZCAmJiAnZm9jdXMnKVwiIChjbGljayk9XCJzZWxlY3QoaXRlbSlcIlxuICAgICAgICB0YWJpbmRleD1cIi0xXCI+XG4gICAgICAgIDxzcGFuIFtuYXNDbGFzc109XCJnZXRDbGFzcygndGl0bGUnKVwiPnt7aXRlbS50aXRsZX19PC9zcGFuPlxuICAgICAgICA8c3BhbiBbbmFzQ2xhc3NdPVwiZ2V0Q2xhc3MoJ3ByZWFtYmxlJylcIj57e2l0ZW0ucHJlYW1ibGV9fTwvc3Bhbj5cbiAgICAgIDwvYnV0dG9uPlxuICAgIDwvbGk+XG4gIDwvdWw+XG48L2Rpdj5cblxuPG5hcy1iYWNrZHJvcCAqbmdJZj1cIiFleGlzdHMoZGlzYWJsZUJhY2tkcm9wKVwiIFthcmlhTGFiZWxCYWNrZHJvcF09XCJhcmlhTGFiZWxCYWNrZHJvcFwiXG4gIFsoc2hvd0JhY2tkcm9wKV09XCJzaG93QmFja2Ryb3BcIj48L25hcy1iYWNrZHJvcD4iXX0=
@@ -43,11 +43,11 @@ export class BackdropComponent extends NasComponentBase {
43
43
  event.preventDefault();
44
44
  }
45
45
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: BackdropComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
46
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: BackdropComponent, selector: "nas-backdrop", inputs: { showBackdrop: "showBackdrop", ariaLabelBackdrop: "ariaLabelBackdrop" }, outputs: { showBackdropChange: "showBackdropChange" }, usesInheritance: true, ngImport: i0, template: "<button type=\"button\"\n tabindex=\"0\"\n #backdrop\n [attr.aria-label]=\"ariaLabelBackdrop\"\n [nasClass]=\"getClass()\"\n (click)=\"onClose($event)\"\n *ngIf=\"show\">\n</button>", styles: ["@keyframes fade-in{0%{opacity:0}}@keyframes fade-in-down{0%{opacity:0;transform:translateY(-30px)}}@keyframes fade-in-left{0%{opacity:0;transform:translate(-30px)}}@keyframes fade-in-right{0%{opacity:0;transform:translate(30px)}}@keyframes fade-out{to{opacity:0}}@keyframes flip-in{0%{opacity:0;transform:rotateX(-90deg)}40%{opacity:1;transform:rotateX(10deg)}}@keyframes flip-out{to{opacity:0;transform:rotateX(-90deg)}}@keyframes pop-in-from-top{0%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,-100,1,1);opacity:0}6.67%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,-30.227,1,1)}13.33%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,1.76,1,1)}20%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,7.08,1,1)}26.67%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,3.838,1,1)}33.33%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,.902,1,1);opacity:1}40%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,-.237,1,1)}46.67%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,-.312,1,1)}53.33%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,-.141,1,1)}60%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,-.021,1,1)}66.67%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,.015,1,1)}73.33%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,.013,1,1)}80%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,.005,1,1)}86.67%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,0,1,1)}93.33%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,-.001,1,1);-webkit-transform:translate3d(0,0,0)}to{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,-.001,1,1);-webkit-transform:translate3d(0,0,0)}}.nas-backdrop{display:block;position:fixed;top:0;left:0;width:100%;height:100%;color:transparent;background-color:#0b14202b;animation:backdrop-animation .7s ease-out both}@keyframes backdrop-animation{0%{opacity:0}}\n"], dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.NasClassDirective, selector: "[nasClass]", inputs: ["nasClass", "attr.class"] }] }); }
46
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: BackdropComponent, selector: "nas-backdrop", inputs: { showBackdrop: "showBackdrop", ariaLabelBackdrop: "ariaLabelBackdrop" }, outputs: { showBackdropChange: "showBackdropChange" }, usesInheritance: true, ngImport: i0, template: "<button type=\"button\"\n tabindex=\"0\"\n #backdrop\n [attr.aria-label]=\"ariaLabelBackdrop\"\n [nasClass]=\"getClass()\"\n (click)=\"onClose($event)\"\n *ngIf=\"show\">\n</button>", styles: ["@keyframes fade-in{0%{opacity:0}}@keyframes fade-in-down{0%{opacity:0;transform:translateY(-30px)}}@keyframes fade-in-left{0%{opacity:0;transform:translate(-30px)}}@keyframes fade-in-right{0%{opacity:0;transform:translate(30px)}}@keyframes fade-out{to{opacity:0}}@keyframes flip-in{0%{opacity:0;transform:rotateX(-90deg)}40%{opacity:1;transform:rotateX(10deg)}}@keyframes flip-out{to{opacity:0;transform:rotateX(-90deg)}}@keyframes pop-in-from-top{0%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,-100,1,1);opacity:0}6.67%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,-30.227,1,1)}13.33%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,1.76,1,1)}20%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,7.08,1,1)}26.67%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,3.838,1,1)}33.33%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,.902,1,1);opacity:1}40%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,-.237,1,1)}46.67%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,-.312,1,1)}53.33%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,-.141,1,1)}60%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,-.021,1,1)}66.67%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,.015,1,1)}73.33%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,.013,1,1)}80%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,.005,1,1)}86.67%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,0,1,1)}93.33%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,-.001,1,1);-webkit-transform:translate3d(0,0,0)}to{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,-.001,1,1);-webkit-transform:translate3d(0,0,0)}}.nas-backdrop{display:block;z-index:1;position:fixed;top:0;left:0;width:100%;height:100%;color:transparent;background-color:#0b14202b;animation:backdrop-animation .7s ease-out both}@keyframes backdrop-animation{0%{opacity:0}}\n"], dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.NasClassDirective, selector: "[nasClass]", inputs: ["nasClass", "attr.class"] }] }); }
47
47
  }
48
48
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: BackdropComponent, decorators: [{
49
49
  type: Component,
50
- args: [{ selector: 'nas-backdrop', template: "<button type=\"button\"\n tabindex=\"0\"\n #backdrop\n [attr.aria-label]=\"ariaLabelBackdrop\"\n [nasClass]=\"getClass()\"\n (click)=\"onClose($event)\"\n *ngIf=\"show\">\n</button>", styles: ["@keyframes fade-in{0%{opacity:0}}@keyframes fade-in-down{0%{opacity:0;transform:translateY(-30px)}}@keyframes fade-in-left{0%{opacity:0;transform:translate(-30px)}}@keyframes fade-in-right{0%{opacity:0;transform:translate(30px)}}@keyframes fade-out{to{opacity:0}}@keyframes flip-in{0%{opacity:0;transform:rotateX(-90deg)}40%{opacity:1;transform:rotateX(10deg)}}@keyframes flip-out{to{opacity:0;transform:rotateX(-90deg)}}@keyframes pop-in-from-top{0%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,-100,1,1);opacity:0}6.67%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,-30.227,1,1)}13.33%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,1.76,1,1)}20%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,7.08,1,1)}26.67%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,3.838,1,1)}33.33%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,.902,1,1);opacity:1}40%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,-.237,1,1)}46.67%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,-.312,1,1)}53.33%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,-.141,1,1)}60%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,-.021,1,1)}66.67%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,.015,1,1)}73.33%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,.013,1,1)}80%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,.005,1,1)}86.67%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,0,1,1)}93.33%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,-.001,1,1);-webkit-transform:translate3d(0,0,0)}to{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,-.001,1,1);-webkit-transform:translate3d(0,0,0)}}.nas-backdrop{display:block;position:fixed;top:0;left:0;width:100%;height:100%;color:transparent;background-color:#0b14202b;animation:backdrop-animation .7s ease-out both}@keyframes backdrop-animation{0%{opacity:0}}\n"] }]
50
+ args: [{ selector: 'nas-backdrop', template: "<button type=\"button\"\n tabindex=\"0\"\n #backdrop\n [attr.aria-label]=\"ariaLabelBackdrop\"\n [nasClass]=\"getClass()\"\n (click)=\"onClose($event)\"\n *ngIf=\"show\">\n</button>", styles: ["@keyframes fade-in{0%{opacity:0}}@keyframes fade-in-down{0%{opacity:0;transform:translateY(-30px)}}@keyframes fade-in-left{0%{opacity:0;transform:translate(-30px)}}@keyframes fade-in-right{0%{opacity:0;transform:translate(30px)}}@keyframes fade-out{to{opacity:0}}@keyframes flip-in{0%{opacity:0;transform:rotateX(-90deg)}40%{opacity:1;transform:rotateX(10deg)}}@keyframes flip-out{to{opacity:0;transform:rotateX(-90deg)}}@keyframes pop-in-from-top{0%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,-100,1,1);opacity:0}6.67%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,-30.227,1,1)}13.33%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,1.76,1,1)}20%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,7.08,1,1)}26.67%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,3.838,1,1)}33.33%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,.902,1,1);opacity:1}40%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,-.237,1,1)}46.67%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,-.312,1,1)}53.33%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,-.141,1,1)}60%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,-.021,1,1)}66.67%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,.015,1,1)}73.33%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,.013,1,1)}80%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,.005,1,1)}86.67%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,0,1,1)}93.33%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,-.001,1,1);-webkit-transform:translate3d(0,0,0)}to{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,-.001,1,1);-webkit-transform:translate3d(0,0,0)}}.nas-backdrop{display:block;z-index:1;position:fixed;top:0;left:0;width:100%;height:100%;color:transparent;background-color:#0b14202b;animation:backdrop-animation .7s ease-out both}@keyframes backdrop-animation{0%{opacity:0}}\n"] }]
51
51
  }], ctorParameters: function () { return []; }, propDecorators: { showBackdropChange: [{
52
52
  type: Output
53
53
  }], showBackdrop: [{