@skyux/core 9.12.0 → 9.13.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.
@@ -130,7 +130,9 @@ export class SkyAffixer {
|
|
130
130
|
}
|
131
131
|
}
|
132
132
|
#getOffsetParentRect() {
|
133
|
-
if
|
133
|
+
// Firefox sets the offsetParent to document.body if the element uses fixed positioning.
|
134
|
+
if (this.#config.position === 'absolute' &&
|
135
|
+
this.#affixedElement.offsetParent) {
|
134
136
|
return getOuterRect(this.#affixedElement.offsetParent);
|
135
137
|
}
|
136
138
|
else {
|
@@ -421,4 +423,4 @@ export class SkyAffixer {
|
|
421
423
|
});
|
422
424
|
}
|
423
425
|
}
|
424
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWZmaXhlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tcG9uZW50cy9jb3JlL3NyYy9saWIvbW9kdWxlcy9hZmZpeC9hZmZpeGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUdBLE9BQU8sRUFBYyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBRXpELE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBT2xFLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN0RSxPQUFPLEVBQ0wsZ0JBQWdCLEVBQ2hCLFlBQVksRUFDWixrQkFBa0IsRUFDbEIsd0JBQXdCLEVBQ3hCLGdDQUFnQyxFQUNoQyxvQ0FBb0MsR0FDckMsTUFBTSxhQUFhLENBQUM7QUFrQnJCLE1BQU0sb0JBQW9CLEdBQTBCO0lBQ2xELGNBQWMsRUFBRSxzQkFBc0IsQ0FBQyxjQUFjO0lBQ3JELGFBQWEsRUFBRSxLQUFLO0lBQ3BCLG1CQUFtQixFQUFFLFFBQVE7SUFDN0IsUUFBUSxFQUFFLEtBQUs7SUFDZixTQUFTLEVBQUUsT0FBTztDQUNuQixDQUFDO0FBRUYsTUFBTSxPQUFPLFVBQVU7SUFDckI7O09BRUc7SUFDSCxJQUFXLFlBQVk7UUFDckIsT0FBTyxJQUFJLENBQUMsZ0JBQWdCLENBQUM7SUFDL0IsQ0FBQztJQUVEOzs7O09BSUc7SUFDSCxJQUFXLGNBQWM7UUFDdkIsT0FBTyxJQUFJLENBQUMsa0JBQWtCLENBQUM7SUFDakMsQ0FBQztJQUVEOzs7T0FHRztJQUNILElBQVcsZUFBZTtRQUN4QixPQUFPLElBQUksQ0FBQyxtQkFBbUIsQ0FBQztJQUNsQyxDQUFDO0lBRUQsSUFBSSxPQUFPO1FBQ1QsT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDO0lBQ3ZCLENBQUM7SUFFRCxJQUFJLE9BQU8sQ0FBQyxLQUFpQztRQUMzQyxNQUFN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R0FBMkc7UUFDM0csSUFBSSxDQUFDLEtBQUssQ0FBQyxpQkFBaUIsQ0FBQyxHQUFHLEVBQUU7WUFDaEMsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLGNBQWMsRUFBRSxHQUFHLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDLE9BQU8sQ0FDL0QsQ0FBQyxhQUFhLEVBQUUsRUFBRTtnQkFDaEIsYUFBYSxFQUFFLGdCQUFnQixDQUFDLFFBQVEsRUFBRSxJQUFJLENBQUMscUJBQXFCLENBQUMsQ0FBQztZQUN4RSxDQUFDLENBQ0YsQ0FBQztRQUNKLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVELHdCQUF3QjtRQUN0QixJQUFJLENBQUMsa0JBQWtCLEVBQUUsV0FBVyxFQUFFLENBQUM7UUFFdkMsSUFBSSxDQUFDLEtBQUssQ0FBQyxpQkFBaUIsQ0FBQyxHQUFHLEVBQUU7WUFDaEMsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLGNBQWMsRUFBRSxHQUFHLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDLE9BQU8sQ0FDL0QsQ0FBQyxhQUFhLEVBQUUsRUFBRTtnQkFDaEIsYUFBYSxFQUFFLG1CQUFtQixDQUNoQyxRQUFRLEVBQ1IsSUFBSSxDQUFDLHFCQUFxQixDQUMzQixDQUFDO1lBQ0osQ0FBQyxDQUNGLENBQUM7UUFDSixDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFZpZXdwb3J0UnVsZXIgfSBmcm9tICdAYW5ndWxhci9jZGsvb3ZlcmxheSc7XG5pbXBvcnQgeyBOZ1pvbmUsIFJlbmRlcmVyMiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQgeyBPYnNlcnZhYmxlLCBTdWJqZWN0LCBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJztcblxuaW1wb3J0IHsgU2t5QWZmaXhBdXRvRml0Q29udGV4dCB9IGZyb20gJy4vYWZmaXgtYXV0by1maXQtY29udGV4dCc7XG5pbXBvcnQgeyBTa3lBZmZpeENvbmZpZyB9IGZyb20gJy4vYWZmaXgtY29uZmlnJztcbmltcG9ydCB7IFNreUFmZml4T2Zmc2V0IH0gZnJvbSAnLi9hZmZpeC1vZmZzZXQnO1xuaW1wb3J0IHsgU2t5QWZmaXhPZmZzZXRDaGFuZ2UgfSBmcm9tICcuL2FmZml4LW9mZnNldC1jaGFuZ2UnO1xuaW1wb3J0IHsgU2t5QWZmaXhQbGFjZW1lbnQgfSBmcm9tICcuL2FmZml4LXBsYWNlbWVudCc7XG5pbXBvcnQgeyBTa3lBZmZpeFBsYWNlbWVudENoYW5nZSB9IGZyb20gJy4vYWZmaXgtcGxhY2VtZW50LWNoYW5nZSc7XG5pbXBvcnQgeyBBZmZpeFJlY3QgfSBmcm9tICcuL2FmZml4LXJlY3QnO1xuaW1wb3J0IHsgZ2V0SW52ZXJzZVBsYWNlbWVudCwgZ2V0TmV4dFBsYWNlbWVudCB9IGZyb20gJy4vYWZmaXgtdXRpbHMnO1xuaW1wb3J0IHtcbiAgZ2V0RWxlbWVudE9mZnNldCxcbiAgZ2V0T3V0ZXJSZWN0LFxuICBnZXRPdmVyZmxvd1BhcmVudHMsXG4gIGdldFZpc2libGVSZWN0Rm9yRWxlbWVudCxcbiAgaXNPZmZzZXRGdWxseVZpc2libGVXaXRoaW5QYXJlbnQsXG4gIGlzT2Zmc2V0UGFydGlhbGx5VmlzaWJsZVdpdGhpblBhcmVudCxcbn0gZnJvbSAnLi9kb20tdXRpbHMnO1xuXG4vKipcbiAqIE1ha2Ugc3BlY2lmaWMgcHJvcGVydGllcyByZXF1aXJlZCwgc28gdGhhdCB3ZSBkb24ndCBoYXZlIHRvXG4gKiBkbyBudWxsIGNoZWNrcyB0aHJvdWdob3V0IHRoaXMgZmlsZS5cbiAqL1xudHlwZSBBZmZpeENvbmZpZ09yRGVmYXVsdHMgPSBTa3lBZmZpeENvbmZpZyAmXG4gIFJlcXVpcmVkPFxuICAgIFBpY2s8XG4gICAgICBTa3lBZmZpeENvbmZpZyxcbiAgICAgIHwgJ2F1dG9GaXRDb250ZXh0J1xuICAgICAgfCAnZW5hYmxlQXV0b0ZpdCdcbiAgICAgIHwgJ2hvcml6b250YWxBbGlnbm1lbnQnXG4gICAgICB8ICdpc1N0aWNreSdcbiAgICAgIHwgJ3BsYWNlbWVudCdcbiAgICA+XG4gID47XG5cbmNvbnN0IERFRkFVTFRfQUZGSVhfQ09ORklHOiBBZmZpeENvbmZpZ09yRGVmYXVsdHMgPSB7XG4gIGF1dG9GaXRDb250ZXh0OiBTa3lBZmZpeEF1dG9GaXRDb250ZXh0Lk92ZXJmbG93UGFyZW50LFxuICBlbmFibGVBdXRvRml0OiBmYWxzZSxcbiAgaG9yaXpvbnRhbEFsaWdubWVudDogJ2NlbnRlcicsXG4gIGlzU3RpY2t5OiBmYWxzZSxcbiAgcGxhY2VtZW50OiAnYWJvdmUnLFxufTtcblxuZXhwb3J0IGNsYXNzIFNreUFmZml4ZXIge1xuICAvKipcbiAgICogRmlyZXMgd2hlbiB0aGUgYWZmaXhlZCBlbGVtZW50J3Mgb2Zmc2V0IGNoYW5nZXMuXG4gICAqL1xuICBwdWJsaWMgZ2V0IG9mZnNldENoYW5nZSgpOiBPYnNlcnZhYmxlPFNreUFmZml4T2Zmc2V0Q2hhbmdlPiB7XG4gICAgcmV0dXJuIHRoaXMuI29mZnNldENoYW5nZU9icztcbiAgfVxuXG4gIC8qKlxuICAgKiBGaXJlcyB3aGVuIHRoZSBiYXNlIGVsZW1lbnQncyBuZWFyZXN0IG92ZXJmbG93IHBhcmVudCBpcyBzY3JvbGxpbmcuIFRoaXMgaXMgdXNlZnVsIGlmIHlvdSBuZWVkXG4gICAqIHRvIHBlcmZvcm0gYW4gYWRkaXRpb25hbCBhY3Rpb24gZHVyaW5nIHRoZSBzY3JvbGwgZXZlbnQgYnV0IGRvbid0IHdhbnQgdG8gZ2VuZXJhdGUgYW5vdGhlclxuICAgKiBldmVudCBsaXN0ZW5lci5cbiAgICovXG4gIHB1YmxpYyBnZXQgb3ZlcmZsb3dTY3JvbGwoKTogT2JzZXJ2YWJsZTx2b2lkPiB7XG4gICAgcmV0dXJuIHRoaXMuI292ZXJmbG93U2Nyb2xsT2JzO1xuICB9XG5cbiAgLyoqXG4gICAqIEZpcmVzIHdoZW4gdGhlIHBsYWNlbWVudCB2YWx1ZSBjaGFuZ2VzLiBBIGBudWxsYCB2YWx1ZSBpbmRpY2F0ZXMgdGhhdCBhIHN1aXRhYmxlXG4gICAqIHBsYWNlbWVudCBjb3VsZCBub3QgYmUgZm91bmQuXG4gICAqL1xuICBwdWJsaWMgZ2V0IHBsYWNlbWVudENoYW5nZSgpOiBPYnNlcnZhYmxlPFNreUFmZml4UGxhY2VtZW50Q2hhbmdlPiB7XG4gICAgcmV0dXJuIHRoaXMuI3BsYWNlbWVudENoYW5nZU9icztcbiAgfVxuXG4gIGdldCAjY29uZmlnKCk6IEFmZml4Q29uZmlnT3JEZWZhdWx0cyB7XG4gICAgcmV0dXJuIHRoaXMuI19jb25maWc7XG4gIH1cblxuICBzZXQgI2NvbmZpZyh2YWx1ZTogU2t5QWZmaXhDb25maWcgfCB1bmRlZmluZWQpIHtcbiAgICBjb25zdCBtZXJnZWQ6IEFmZml4Q29uZmlnT3JEZWZhdWx0cyA9IHtcbiAgICAgIC4uLkRFRkFVTFRfQUZGSVhfQ09ORklHLFxuICAgICAgLi4udmFsdWUsXG4gICAgfTtcblxuICAgIC8vIE1ha2Ugc3VyZSBub25lIG9mIHRoZSB2YWx1ZXMgYXJlIHVuZGVmaW5lZC5cbiAgICBsZXQga2V5OiBrZXlvZiB0eXBlb2YgbWVyZ2VkO1xuICAgIGZvciAoa2V5IGluIG1lcmdlZCkge1xuICAgICAgaWYgKG1lcmdlZFtrZXldID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgKG1lcmdlZCBhcyBhbnkpW2tleV0gPSBERUZBVUxUX0FGRklYX0NPTkZJR1trZXldO1xuICAgICAgfVxuICAgIH1cblxuICAgIHRoaXMuI19jb25maWcgPSBtZXJnZWQ7XG4gIH1cblxuICAjYWZmaXhlZEVsZW1lbnQ6IEhUTUxFbGVtZW50O1xuXG4gICNiYXNlRWxlbWVudDogSFRNTEVsZW1lbnQgfCB1bmRlZmluZWQ7XG5cbiAgI2N1cnJlbnRPZmZzZXQ6IFNreUFmZml4T2Zmc2V0IHwgdW5kZWZpbmVkO1xuXG4gICNjdXJyZW50UGxhY2VtZW50OiBTa3lBZmZpeFBsYWNlbWVudCB8IHVuZGVmaW5lZDtcblxuICAjbGF5b3V0Vmlld3BvcnQ6IEhUTUxFbGVtZW50O1xuXG4gICNvZmZzZXRDaGFuZ2U6IFN1YmplY3Q8U2t5QWZmaXhPZmZzZXRDaGFuZ2U+O1xuXG4gICNvZmZzZXRDaGFuZ2VPYnM6IE9ic2VydmFibGU8U2t5QWZmaXhPZmZzZXRDaGFuZ2U+O1xuXG4gICNvdmVyZmxvd1BhcmVudHM6IEhUTUxFbGVtZW50W10gPSBbXTtcblxuICAjb3ZlcmZsb3dTY3JvbGw6IFN1YmplY3Q8dm9pZD47XG5cbiAgI292ZXJmbG93U2Nyb2xsT2JzOiBPYnNlcnZhYmxlPHZvaWQ+O1xuXG4gICNwbGFjZW1lbnRDaGFuZ2U6IFN1YmplY3Q8U2t5QWZmaXhQbGFjZW1lbnRDaGFuZ2U+O1xuXG4gICNwbGFjZW1lbnRDaGFuZ2VPYnM6IE9ic2VydmFibGU8U2t5QWZmaXhQbGFjZW1lbnRDaGFuZ2U+O1xuXG4gICNyZW5kZXJlcjogUmVuZGVyZXIyO1xuXG4gICNzY3JvbGxDaGFuZ2UgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xuXG4gICN2aWV3cG9ydExpc3RlbmVyczogU3Vic2NyaXB0aW9uIHwgdW5kZWZpbmVkO1xuXG4gICN2aWV3cG9ydFJ1bGVyOiBWaWV3cG9ydFJ1bGVyO1xuXG4gICN6b25lOiBOZ1pvbmU7XG5cbiAgI19jb25maWc6IEFmZml4Q29uZmlnT3JEZWZhdWx0cyA9IERFRkFVTFRfQUZGSVhfQ09ORklHO1xuXG4gICNzY3JvbGxDaGFuZ2VMaXN0ZW5lcjogKCkgPT4gdm9pZCA9ICgpID0+IHRoaXMuI3Njcm9sbENoYW5nZS5uZXh0KCk7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgYWZmaXhlZEVsZW1lbnQ6IEhUTUxFbGVtZW50LFxuICAgIHJlbmRlcmVyOiBSZW5kZXJlcjIsXG4gICAgdmlld3BvcnRSdWxlcjogVmlld3BvcnRSdWxlcixcbiAgICB6b25lOiBOZ1pvbmUsXG4gICAgbGF5b3V0Vmlld3BvcnQ6IEhUTUxFbGVtZW50XG4gICkge1xuICAgIHRoaXMuI2FmZml4ZWRFbGVtZW50ID0gYWZmaXhlZEVsZW1lbnQ7XG4gICAgdGhpcy4jcmVuZGVyZXIgPSByZW5kZXJlcjtcbiAgICB0aGlzLiNsYXlvdXRWaWV3cG9ydCA9IGxheW91dFZpZXdwb3J0O1xuICAgIHRoaXMuI3ZpZXdwb3J0UnVsZXIgPSB2aWV3cG9ydFJ1bGVyO1xuICAgIHRoaXMuI3pvbmUgPSB6b25lO1xuXG4gICAgdGhpcy4jb2Zmc2V0Q2hhbmdlID0gbmV3IFN1YmplY3Q8U2t5QWZmaXhPZmZzZXRDaGFuZ2U+KCk7XG4gICAgdGhpcy4jb3ZlcmZsb3dTY3JvbGwgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xuICAgIHRoaXMuI3BsYWNlbWVudENoYW5nZSA9IG5ldyBTdWJqZWN0PFNreUFmZml4UGxhY2VtZW50Q2hhbmdlPigpO1xuXG4gICAgdGhpcy4jb2Zmc2V0Q2hhbmdlT2JzID0gdGhpcy4jb2Zmc2V0Q2hhbmdlLmFzT2JzZXJ2YWJsZSgpO1xuICAgIHRoaXMuI292ZXJmbG93U2Nyb2xsT2JzID0gdGhpcy4jb3ZlcmZsb3dTY3JvbGwuYXNPYnNlcnZhYmxlKCk7XG4gICAgdGhpcy4jcGxhY2VtZW50Q2hhbmdlT2JzID0gdGhpcy4jcGxhY2VtZW50Q2hhbmdlLmFzT2JzZXJ2YWJsZSgpO1xuICB9XG5cbiAgLyoqXG4gICAqIEFmZml4ZXMgYW4gZWxlbWVudCB0byBhIGJhc2UgZWxlbWVudC5cbiAgICogQHBhcmFtIGJhc2VFbGVtZW50IFRoZSBiYXNlIGVsZW1lbnQuXG4gICAqIEBwYXJhbSBjb25maWcgQ29uZmlndXJhdGlvbiBmb3IgdGhlIGFmZml4IGFjdGlvbi5cbiAgICovXG4gIHB1YmxpYyBhZmZpeFRvKGJhc2VFbGVtZW50OiBIVE1MRWxlbWVudCwgY29uZmlnPzogU2t5QWZmaXhDb25maWcpOiB2b2lkIHtcbiAgICB0aGlzLiNyZXNldCgpO1xuXG4gICAgdGhpcy4jY29uZmlnID0gY29uZmlnO1xuICAgIHRoaXMuI2Jhc2VFbGVtZW50ID0gYmFzZUVsZW1lbnQ7XG4gICAgdGhpcy4jb3ZlcmZsb3dQYXJlbnRzID0gZ2V0T3ZlcmZsb3dQYXJlbnRzKGJhc2VFbGVtZW50KTtcblxuICAgIHRoaXMuI2FmZml4KCk7XG5cbiAgICBpZiAodGhpcy4jY29uZmlnLmlzU3RpY2t5KSB7XG4gICAgICB0aGlzLiNhZGRWaWV3cG9ydExpc3RlbmVycygpO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBnZXRDb25maWcoKTogU2t5QWZmaXhDb25maWcge1xuICAgIHJldHVybiB0aGlzLiNjb25maWc7XG4gIH1cblxuICAvKipcbiAgICogUmUtcnVucyB0aGUgYWZmaXggY2FsY3VsYXRpb24uXG4gICAqL1xuICBwdWJsaWMgcmVhZmZpeCgpOiB2b2lkIHtcbiAgICAvLyBSZXNldCBjdXJyZW50IHBsYWNlbWVudCB0byBwcmVmZXJyZWQgcGxhY2VtZW50LlxuICAgIHRoaXMuI2N1cnJlbnRQbGFjZW1lbnQgPSB0aGlzLiNjb25maWcucGxhY2VtZW50O1xuICAgIHRoaXMuI2FmZml4KCk7XG4gIH1cblxuICAvKipcbiAgICogRGVzdHJveXMgdGhlIGFmZml4ZXIuXG4gICAqL1xuICBwdWJsaWMgZGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLiNyZXNldCgpO1xuICAgIHRoaXMuI3BsYWNlbWVudENoYW5nZS5jb21wbGV0ZSgpO1xuICAgIHRoaXMuI29mZnNldENoYW5nZS5jb21wbGV0ZSgpO1xuICAgIHRoaXMuI292ZXJmbG93U2Nyb2xsLmNvbXBsZXRlKCk7XG4gICAgdGhpcy4jc2Nyb2xsQ2hhbmdlLmNvbXBsZXRlKCk7XG4gIH1cblxuICAjYWZmaXgoKTogdm9pZCB7XG4gICAgY29uc3Qgb2Zmc2V0ID0gdGhpcy4jZ2V0T2Zmc2V0KCk7XG5cbiAgICBjb25zdCBvZmZzZXRQYXJlbnRSZWN0ID0gdGhpcy4jZ2V0T2Zmc2V0UGFyZW50UmVjdCgpO1xuICAgIG9mZnNldC50b3AgPSBvZmZzZXQudG9wIC0gb2Zmc2V0UGFyZW50UmVjdC50b3A7XG4gICAgb2Zmc2V0LmxlZnQgPSBvZmZzZXQubGVmdCAtIG9mZnNldFBhcmVudFJlY3QubGVmdDtcbiAgICBvZmZzZXQuYm90dG9tID0gb2Zmc2V0LmJvdHRvbSAtIG9mZnNldFBhcmVudFJlY3QudG9wO1xuICAgIG9mZnNldC5yaWdodCA9IG9mZnNldC5yaWdodCAtIG9mZnNldFBhcmVudFJlY3QubGVmdDtcblxuICAgIGlmICh0aGlzLiNpc05ld09mZnNldChvZmZzZXQpKSB7XG4gICAgICB0aGlzLiNyZW5kZXJlci5zZXRTdHlsZSh0aGlzLiNhZmZpeGVkRWxlbWVudCwgJ3RvcCcsIGAke29mZnNldC50b3B9cHhgKTtcbiAgICAgIHRoaXMuI3JlbmRlcmVyLnNldFN0eWxlKHRoaXMuI2FmZml4ZWRFbGVtZW50LCAnbGVmdCcsIGAke29mZnNldC5sZWZ0fXB4YCk7XG5cbiAgICAgIHRoaXMuI29mZnNldENoYW5nZS5uZXh0KHsgb2Zmc2V0IH0pO1xuICAgIH1cbiAgfVxuXG4gICNnZXRPZmZzZXRQYXJlbnRSZWN0KCk6IEFmZml4UmVjdCB7XG4gICAgaWYgKHRoaXMuI2FmZml4ZWRFbGVtZW50Lm9mZnNldFBhcmVudCkge1xuICAgICAgcmV0dXJuIGdldE91dGVyUmVjdCh0aGlzLiNhZmZpeGVkRWxlbWVudC5vZmZzZXRQYXJlbnQgYXMgSFRNTEVsZW1lbnQpO1xuICAgIH0gZWxzZSB7XG4gICAgICBjb25zdCBsYXlvdXRSZWN0ID0gZ2V0T3V0ZXJSZWN0KHRoaXMuI2xheW91dFZpZXdwb3J0KTtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIHRvcDogbGF5b3V0UmVjdC50b3AsXG4gICAgICAgIGxlZnQ6IGxheW91dFJlY3QubGVmdCxcbiAgICAgICAgaGVpZ2h0OiBsYXlvdXRSZWN0LmhlaWdodCxcbiAgICAgICAgd2lkdGg6IGxheW91dFJlY3Qud2lkdGgsXG4gICAgICAgIGJvdHRvbTogbGF5b3V0UmVjdC50b3AgLSBsYXlvdXRSZWN0LmhlaWdodCxcbiAgICAgICAgcmlnaHQ6IGxheW91dFJlY3QubGVmdCAtIGxheW91dFJlY3Qud2lkdGgsXG4gICAgICB9O1xuICAgIH1cbiAgfVxuXG4gICNnZXRPZmZzZXQoKTogUmVxdWlyZWQ8U2t5QWZmaXhPZmZzZXQ+IHtcbiAgICBjb25zdCBwYXJlbnQgPSB0aGlzLiNnZXRBdXRvRml0Q29udGV4dFBhcmVudCgpO1xuXG4gICAgY29uc3QgbWF4QXR0ZW1wdHMgPSA0O1xuICAgIGxldCBhdHRlbXB0cyA9IDA7XG5cbiAgICBsZXQgaXNBZmZpeGVkRWxlbWVudEZ1bGx5VmlzaWJsZSA9IGZhbHNlO1xuICAgIGxldCBvZmZzZXQ6IFJlcXVpcmVkPFNreUFmZml4T2Zmc2V0PjtcbiAgICBsZXQgcGxhY2VtZW50ID0gdGhpcy4jY29uZmlnLnBsYWNlbWVudDtcblxuICAgIGRvIHtcbiAgICAgIG9mZnNldCA9IHRoaXMuI2dldFByZWZlcnJlZE9mZnNldChwbGFjZW1lbnQpO1xuICAgICAgaXNBZmZpeGVkRWxlbWVudEZ1bGx5VmlzaWJsZSA9IGlzT2Zmc2V0RnVsbHlWaXNpYmxlV2l0aGluUGFyZW50KFxuICAgICAgICB0aGlzLiN2aWV3cG9ydFJ1bGVyLFxuICAgICAgICBwYXJlbnQsXG4gICAgICAgIG9mZnNldCxcbiAgICAgICAgdGhpcy4jY29uZmlnLmF1dG9GaXRPdmVyZmxvd09mZnNldFxuICAgICAgKTtcblxuICAgICAgaWYgKCF0aGlzLiNjb25maWcuZW5hYmxlQXV0b0ZpdCkge1xuICAgICAgICBicmVhaztcbiAgICAgIH1cblxuICAgICAgaWYgKCFpc0FmZml4ZWRFbGVtZW50RnVsbHlWaXNpYmxlKSB7XG4gICAgICAgIHBsYWNlbWVudCA9XG4gICAgICAgICAgYXR0ZW1wdHMgJSAyID09PSAwXG4gICAgICAgICAgICA/IGdldEludmVyc2VQbGFjZW1lbnQocGxhY2VtZW50KVxuICAgICAgICAgICAgOiBnZXROZXh0UGxhY2VtZW50KHBsYWNlbWVudCk7XG4gICAgICB9XG5cbiAgICAgIGF0dGVtcHRzKys7XG4gICAgfSB3aGlsZSAoIWlzQWZmaXhlZEVsZW1lbnRGdWxseVZpc2libGUgJiYgYXR0ZW1wdHMgPCBtYXhBdHRlbXB0cyk7XG5cbiAgICBpZiAoaXNBZmZpeGVkRWxlbWVudEZ1bGx5VmlzaWJsZSkge1xuICAgICAgaWYgKHRoaXMuI2lzQmFzZUVsZW1lbnRWaXNpYmxlKCkpIHtcbiAgICAgICAgdGhpcy4jbm90aWZ5UGxhY2VtZW50Q2hhbmdlKHBsYWNlbWVudCk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLiNub3RpZnlQbGFjZW1lbnRDaGFuZ2UobnVsbCk7XG4gICAgICB9XG5cbiAgICAgIHJldHVybiBvZmZzZXQ7XG4gICAgfVxuXG4gICAgaWYgKHRoaXMuI2NvbmZpZy5lbmFibGVBdXRvRml0KSB7XG4gICAgICB0aGlzLiNub3RpZnlQbGFjZW1lbnRDaGFuZ2UobnVsbCk7XG4gICAgfVxuXG4gICAgLy8gTm8gc3VpdGFibGUgcGxhY2VtZW50IHdhcyBmb3VuZCwgc28gcmV2ZXJ0IHRvIHByZWZlcnJlZCBwbGFjZW1lbnQuXG4gICAgcmV0dXJuIHRoaXMuI2dldFByZWZlcnJlZE9mZnNldCh0aGlzLiNjb25maWcucGxhY2VtZW50KTtcbiAgfVxuXG4gICNnZXRQcmVmZXJyZWRPZmZzZXQocGxhY2VtZW50OiBTa3lBZmZpeFBsYWNlbWVudCk6IFJlcXVpcmVkPFNreUFmZml4T2Zmc2V0PiB7XG4gICAgaWYgKCF0aGlzLiNiYXNlRWxlbWVudCkge1xuICAgICAgcmV0dXJuIHsgdG9wOiAwLCBsZWZ0OiAwLCBib3R0b206IDAsIHJpZ2h0OiAwIH07XG4gICAgfVxuXG4gICAgY29uc3QgYWZmaXhlZFJlY3QgPSBnZXRPdXRlclJlY3QodGhpcy4jYWZmaXhlZEVsZW1lbnQpO1xuICAgIGNvbnN0IGJhc2VSZWN0ID0gdGhpcy4jYmFzZUVsZW1lbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XG5cbiAgICBjb25zdCBob3Jpem9udGFsQWxpZ25tZW50ID0gdGhpcy4jY29uZmlnLmhvcml6b250YWxBbGlnbm1lbnQ7XG4gICAgY29uc3QgdmVydGljYWxBbGlnbm1lbnQgPSB0aGlzLiNjb25maWcudmVydGljYWxBbGlnbm1lbnQ7XG4gICAgY29uc3QgZW5hYmxlQXV0b0ZpdCA9IHRoaXMuI2NvbmZpZy5lbmFibGVBdXRvRml0O1xuXG4gICAgbGV0IHRvcDogbnVtYmVyO1xuICAgIGxldCBsZWZ0OiBudW1iZXI7XG5cbiAgICBpZiAocGxhY2VtZW50ID09PSAnYWJvdmUnIHx8IHBsYWNlbWVudCA9PT0gJ2JlbG93Jykge1xuICAgICAgaWYgKHBsYWNlbWVudCA9PT0gJ2Fib3ZlJykge1xuICAgICAgICB0b3AgPSBiYXNlUmVjdC50b3AgLSBhZmZpeGVkUmVjdC5oZWlnaHQ7XG5cbiAgICAgICAgc3dpdGNoICh2ZXJ0aWNhbEFsaWdubWVudCkge1xuICAgICAgICAgIGNhc2UgJ3RvcCc6XG4gICAgICAgICAgICB0b3AgPSB0b3AgKyBhZmZpeGVkUmVjdC5oZWlnaHQ7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICBjYXNlICdtaWRkbGUnOlxuICAgICAgICAgICAgdG9wID0gdG9wICsgYWZmaXhlZFJlY3QuaGVpZ2h0IC8gMjtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIGNhc2UgJ2JvdHRvbSc6XG4gICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0b3AgPSBiYXNlUmVjdC5ib3R0b207XG5cbiAgICAgICAgc3dpdGNoICh2ZXJ0aWNhbEFsaWdubWVudCkge1xuICAgICAgICAgIGNhc2UgJ3RvcCc6XG4gICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIGNhc2UgJ21pZGRsZSc6XG4gICAgICAgICAgICB0b3AgPSB0b3AgLSBhZmZpeGVkUmVjdC5oZWlnaHQgLyAyO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgY2FzZSAnYm90dG9tJzpcbiAgICAgICAgICAgIHRvcCA9IHRvcCAtIGFmZml4ZWRSZWN0LmhlaWdodDtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIHN3aXRjaCAoaG9yaXpvbnRhbEFsaWdubWVudCkge1xuICAgICAgICBjYXNlICdsZWZ0JzpcbiAgICAgICAgICBsZWZ0ID0gYmFzZVJlY3QubGVmdDtcbiAgICAgICAgICBicmVhaztcblxuICAgICAgICBjYXNlICdjZW50ZXInOlxuICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgIGxlZnQgPSBiYXNlUmVjdC5sZWZ0ICsgYmFzZVJlY3Qud2lkdGggLyAyIC0gYWZmaXhlZFJlY3Qud2lkdGggLyAyO1xuICAgICAgICAgIGJyZWFrO1xuXG4gICAgICAgIGNhc2UgJ3JpZ2h0JzpcbiAgICAgICAgICBsZWZ0ID0gYmFzZVJlY3QucmlnaHQgLSBhZmZpeGVkUmVjdC53aWR0aDtcbiAgICAgICAgICBicmVhaztcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgaWYgKHBsYWNlbWVudCA9PT0gJ2xlZnQnKSB7XG4gICAgICAgIGxlZnQgPSBiYXNlUmVjdC5sZWZ0IC0gYWZmaXhlZFJlY3Qud2lkdGg7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBsZWZ0ID0gYmFzZVJlY3QucmlnaHQ7XG4gICAgICB9XG5cbiAgICAgIHN3aXRjaCAodmVydGljYWxBbGlnbm1lbnQpIHtcbiAgICAgICAgY2FzZSAndG9wJzpcbiAgICAgICAgICB0b3AgPSBiYXNlUmVjdC50b3A7XG4gICAgICAgICAgYnJlYWs7XG5cbiAgICAgICAgY2FzZSAnbWlkZGxlJzpcbiAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICB0b3AgPSBiYXNlUmVjdC50b3AgKyBiYXNlUmVjdC5oZWlnaHQgLyAyIC0gYWZmaXhlZFJlY3QuaGVpZ2h0IC8gMjtcbiAgICAgICAgICBicmVhaztcblxuICAgICAgICBjYXNlICdib3R0b20nOlxuICAgICAgICAgIHRvcCA9IGJhc2VSZWN0LmJvdHRvbSAtIGFmZml4ZWRSZWN0LmhlaWdodDtcbiAgICAgICAgICBicmVhaztcbiAgICAgIH1cbiAgICB9XG5cbiAgICBjb25zdCBvZmZzZXQ6IFJlcXVpcmVkPFNreUFmZml4T2Zmc2V0PiA9IHsgdG9wLCBsZWZ0LCBib3R0b206IDAsIHJpZ2h0OiAwIH07XG5cbiAgICBpZiAoZW5hYmxlQXV0b0ZpdCkge1xuICAgICAgY29uc3QgYWRqdXN0bWVudHMgPSB0aGlzLiNhZGp1c3RPZmZzZXRUb092ZXJmbG93UGFyZW50KFxuICAgICAgICB7IHRvcCwgbGVmdCB9LFxuICAgICAgICBwbGFjZW1lbnQsXG4gICAgICAgIHRoaXMuI2Jhc2VFbGVtZW50XG4gICAgICApO1xuICAgICAgb2Zmc2V0LnRvcCA9IGFkanVzdG1lbnRzLnRvcDtcbiAgICAgIG9mZnNldC5sZWZ0ID0gYWRqdXN0bWVudHMubGVmdDtcbiAgICB9XG5cbiAgICBvZmZzZXQuYm90dG9tID0gb2Zmc2V0LnRvcCArIGFmZml4ZWRSZWN0LmhlaWdodDtcbiAgICBvZmZzZXQucmlnaHQgPSBvZmZzZXQubGVmdCArIGFmZml4ZWRSZWN0LndpZHRoO1xuXG4gICAgcmV0dXJuIG9mZnNldDtcbiAgfVxuXG4gIC8qKlxuICAgKiBTbGlnaHRseSBhZGp1c3QgdGhlIG9mZnNldCB0byBmaXQgd2l0aGluIHRoZSBzY3JvbGwgcGFyZW50J3MgYm91bmRhcmllcyBpZlxuICAgKiB0aGUgYWZmaXhlZCBlbGVtZW50IHdvdWxkIG90aGVyd2lzZSBiZSBjbGlwcGVkLlxuICAgKi9cbiAgI2FkanVzdE9mZnNldFRvT3ZlcmZsb3dQYXJlbnQoXG4gICAgb2Zmc2V0OiB7IHRvcDogbnVtYmVyOyBsZWZ0OiBudW1iZXIgfSxcbiAgICBwbGFjZW1lbnQ6IFNreUFmZml4UGxhY2VtZW50LFxuICAgIGJhc2VFbGVtZW50OiBIVE1MRWxlbWVudFxuICApOiB7IHRvcDogbnVtYmVyOyBsZWZ0OiBudW1iZXIgfSB7XG4gICAgY29uc3QgYWZmaXhlZFJlY3QgPSBnZXRPdXRlclJlY3QodGhpcy4jYWZmaXhlZEVsZW1lbnQpO1xuICAgIGNvbnN0IGJhc2VSZWN0ID0gYmFzZUVsZW1lbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XG5cbiAgICBjb25zdCBwYXJlbnQgPSB0aGlzLiNnZXRBdXRvRml0Q29udGV4dFBhcmVudCgpO1xuICAgIGxldCBwYXJlbnRPZmZzZXQ6IFJlcXVpcmVkPFNreUFmZml4T2Zmc2V0PjtcbiAgICBpZiAodGhpcy4jY29uZmlnLmF1dG9GaXRDb250ZXh0ID09PSBTa3lBZmZpeEF1dG9GaXRDb250ZXh0Lk92ZXJmbG93UGFyZW50KSB7XG4gICAgICBpZiAodGhpcy4jY29uZmlnLmF1dG9GaXRPdmVyZmxvd09mZnNldCkge1xuICAgICAgICAvLyBXaGVuIHRoZSBjb25maWcgY29udGFpbnMgYSBzcGVjaWZpYyBvZmZzZXQuXG4gICAgICAgIHBhcmVudE9mZnNldCA9IGdldEVsZW1lbnRPZmZzZXQoXG4gICAgICAgICAgcGFyZW50LFxuICAgICAgICAgIHRoaXMuI2NvbmZpZy5hdXRvRml0T3ZlcmZsb3dPZmZzZXRcbiAgICAgICAgKTtcbiAgICAgIH0gZWxzZSBpZiAoXG4gICAgICAgIGlzT2Zmc2V0RnVsbHlWaXNpYmxlV2l0aGluUGFyZW50KHRoaXMuI3ZpZXdwb3J0UnVsZXIsIHBhcmVudCwgYmFzZVJlY3QpXG4gICAgICApIHtcbiAgICAgICAgLy8gV2hlbiB0aGUgYmFzZSBlbGVtZW50IGlzIGZ1bGx5IHZpc2libGUgd2l0aGluIHRoZSBwYXJlbnQsIGFpbSBmb3IgdGhlIHZpc2libGUgcG9ydGlvbiBvZiB0aGUgcGFyZW50IGVsZW1lbnQuXG4gICAgICAgIHBhcmVudE9mZnNldCA9IGdldFZpc2libGVSZWN0Rm9yRWxlbWVudCh0aGlzLiN2aWV3cG9ydFJ1bGVyLCBwYXJlbnQpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgLy8gQW55d2hlcmUgaW4gdGhlIHBhcmVudCBlbGVtZW50LlxuICAgICAgICBwYXJlbnRPZmZzZXQgPSBnZXRPdXRlclJlY3QocGFyZW50KTtcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgY29uc3Qgdmlld3BvcnRSZWN0ID0gdGhpcy4jdmlld3BvcnRSdWxlci5nZXRWaWV3cG9ydFJlY3QoKTtcbiAgICAgIHBhcmVudE9mZnNldCA9IHtcbiAgICAgICAgdG9wOiAtdmlld3BvcnRSZWN0LnRvcCxcbiAgICAgICAgbGVmdDogLXZpZXdwb3J0UmVjdC5sZWZ0LFxuICAgICAgICBib3R0b206IC12aWV3cG9ydFJlY3QuYm90dG9tLFxuICAgICAgICByaWdodDogLXZpZXdwb3J0UmVjdC5yaWdodCxcbiAgICAgIH07XG4gICAgfVxuXG4gICAgLy8gQSBwaXhlbCB2YWx1ZSByZXByZXNlbnRpbmcgdGhlIGxlZXdheSBiZXR3ZWVuIHRoZSBlZGdlIG9mIHRoZSBvdmVyZmxvdyBwYXJlbnQgYW5kIHRoZSBlZGdlXG4gICAgLy8gb2YgdGhlIGJhc2UgZWxlbWVudCBiZWZvcmUgaXQgZGlzYXBwZWFycyBmcm9tIHZpZXcuXG4gICAgLy8gSWYgdGhlIHZpc2libGUgcG9ydGlvbiBvZiB0aGUgYmFzZSBlbGVtZW50IGlzIGxlc3MgdGhhbiB0aGlzIHBpeGVsIHZhbHVlLCB0aGUgYXV0by1maXRcbiAgICAvLyBmdW5jdGlvbmFsaXR5IGF0dGVtcHRzIHRvIGZpbmQgYW5vdGhlciBwbGFjZW1lbnQuXG4gICAgY29uc3QgZGVmYXVsdFBpeGVsVG9sZXJhbmNlID0gNDA7XG4gICAgbGV0IHBpeGVsVG9sZXJhbmNlOiBudW1iZXI7XG5cbiAgICBjb25zdCBvcmlnaW5hbE9mZnNldFRvcCA9IG9mZnNldC50b3A7XG4gICAgY29uc3Qgb3JpZ2luYWxPZmZzZXRMZWZ0ID0gb2Zmc2V0LmxlZnQ7XG5cbiAgICBzd2l0Y2ggKHBsYWNlbWVudCkge1xuICAgICAgY2FzZSAnYWJvdmUnOlxuICAgICAgY2FzZSAnYmVsb3cnOlxuICAgICAgICAvLyBLZWVwIHRoZSBhZmZpeGVkIGVsZW1lbnQgd2l0aGluIHRoZSBvdmVyZmxvdyBwYXJlbnQuXG4gICAgICAgIGlmIChvZmZzZXQubGVmdCA8IHBhcmVudE9mZnNldC5sZWZ0KSB7XG4gICAgICAgICAgb2Zmc2V0LmxlZnQgPSBwYXJlbnRPZmZzZXQubGVmdDtcbiAgICAgICAgfSBlbHNlIGlmIChvZmZzZXQubGVmdCArIGFmZml4ZWRSZWN0LndpZHRoID4gcGFyZW50T2Zmc2V0LnJpZ2h0KSB7XG4gICAgICAgICAgb2Zmc2V0LmxlZnQgPSBwYXJlbnRPZmZzZXQucmlnaHQgLSBhZmZpeGVkUmVjdC53aWR0aDtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIFVzZSBhIHNtYWxsZXIgcGl4ZWwgdG9sZXJhbmNlIGlmIHRoZSBiYXNlIGVsZW1lbnQgd2lkdGggaXMgbGVzcyB0aGFuIHRoZSBkZWZhdWx0LlxuICAgICAgICBwaXhlbFRvbGVyYW5jZSA9IE1hdGgubWluKGRlZmF1bHRQaXhlbFRvbGVyYW5jZSwgYmFzZVJlY3Qud2lkdGgpO1xuXG4gICAgICAgIC8vIE1ha2Ugc3VyZSB0aGUgYWZmaXhlZCBlbGVtZW50IG5ldmVyIGRldGFjaGVzIGZyb20gdGhlIGJhc2UgZWxlbWVudC5cbiAgICAgICAgaWYgKFxuICAgICAgICAgIG9mZnNldC5sZWZ0ICsgcGl4ZWxUb2xlcmFuY2UgPiBiYXNlUmVjdC5yaWdodCB8fFxuICAgICAgICAgIG9mZnNldC5sZWZ0ICsgYWZmaXhlZFJlY3Qud2lkdGggLSBwaXhlbFRvbGVyYW5jZSA8IGJhc2VSZWN0LmxlZnRcbiAgICAgICAgKSB7XG4gICAgICAgICAgb2Zmc2V0LmxlZnQgPSBvcmlnaW5hbE9mZnNldExlZnQ7XG4gICAgICAgIH1cblxuICAgICAgICBicmVhaztcblxuICAgICAgY2FzZSAnbGVmdCc6XG4gICAgICBjYXNlICdyaWdodCc6XG4gICAgICAgIC8vIEtlZXAgdGhlIGFmZml4ZWQgZWxlbWVudCB3aXRoaW4gdGhlIG92ZXJmbG93IHBhcmVudC5cbiAgICAgICAgaWYgKG9mZnNldC50b3AgPCBwYXJlbnRPZmZzZXQudG9wKSB7XG4gICAgICAgICAgb2Zmc2V0LnRvcCA9IHBhcmVudE9mZnNldC50b3A7XG4gICAgICAgIH0gZWxzZSBpZiAob2Zmc2V0LnRvcCArIGFmZml4ZWRSZWN0LmhlaWdodCA+IHBhcmVudE9mZnNldC5ib3R0b20pIHtcbiAgICAgICAgICBvZmZzZXQudG9wID0gcGFyZW50T2Zmc2V0LmJvdHRvbSAtIGFmZml4ZWRSZWN0LmhlaWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIFVzZSBhIHNtYWxsZXIgcGl4ZWwgdG9sZXJhbmNlIGlmIHRoZSBiYXNlIGVsZW1lbnQgaGVpZ2h0IGlzIGxlc3MgdGhhbiB0aGUgZGVmYXVsdC5cbiAgICAgICAgcGl4ZWxUb2xlcmFuY2UgPSBNYXRoLm1pbihkZWZhdWx0UGl4ZWxUb2xlcmFuY2UsIGJhc2VSZWN0LmhlaWdodCk7XG5cbiAgICAgICAgLy8gTWFrZSBzdXJlIHRoZSBhZmZpeGVkIGVsZW1lbnQgbmV2ZXIgZGV0YWNoZXMgZnJvbSB0aGUgYmFzZSBlbGVtZW50LlxuICAgICAgICBpZiAoXG4gICAgICAgICAgb2Zmc2V0LnRvcCArIHBpeGVsVG9sZXJhbmNlID4gYmFzZVJlY3QuYm90dG9tIHx8XG4gICAgICAgICAgb2Zmc2V0LnRvcCArIGFmZml4ZWRSZWN0LmhlaWdodCAtIHBpeGVsVG9sZXJhbmNlIDwgYmFzZVJlY3QudG9wXG4gICAgICAgICkge1xuICAgICAgICAgIG9mZnNldC50b3AgPSBvcmlnaW5hbE9mZnNldFRvcDtcbiAgICAgICAgfVxuXG4gICAgICAgIGJyZWFrO1xuICAgIH1cblxuICAgIHJldHVybiBvZmZzZXQ7XG4gIH1cblxuICAjZ2V0SW1tZWRpYXRlT3ZlcmZsb3dQYXJlbnQoKTogSFRNTEVsZW1lbnQge1xuICAgIHJldHVybiB0aGlzLiNvdmVyZmxvd1BhcmVudHNbMF07XG4gIH1cblxuICAjZ2V0QXV0b0ZpdENvbnRleHRQYXJlbnQoKTogSFRNTEVsZW1lbnQge1xuICAgIGNvbnN0IGJvZHlFbGVtZW50ID0gdGhpcy4jb3ZlcmZsb3dQYXJlbnRzW3RoaXMuI292ZXJmbG93UGFyZW50cy5sZW5ndGggLSAxXTtcblxuICAgIHJldHVybiB0aGlzLiNjb25maWcuYXV0b0ZpdENvbnRleHQgPT09IFNreUFmZml4QXV0b0ZpdENvbnRleHQuT3ZlcmZsb3dQYXJlbnRcbiAgICAgID8gdGhpcy4jZ2V0SW1tZWRpYXRlT3ZlcmZsb3dQYXJlbnQoKVxuICAgICAgOiBib2R5RWxlbWVudDtcbiAgfVxuXG4gICNub3RpZnlQbGFjZW1lbnRDaGFuZ2UocGxhY2VtZW50OiBTa3lBZmZpeFBsYWNlbWVudCB8IG51bGwpOiB2b2lkIHtcbiAgICBpZiAodGhpcy4jY3VycmVudFBsYWNlbWVudCAhPT0gcGxhY2VtZW50KSB7XG4gICAgICB0aGlzLiNjdXJyZW50UGxhY2VtZW50ID0gcGxhY2VtZW50ID8/IHVuZGVmaW5lZDtcbiAgICAgIHRoaXMuI3BsYWNlbWVudENoYW5nZS5uZXh0KHtcbiAgICAgICAgcGxhY2VtZW50LFxuICAgICAgfSk7XG4gICAgfVxuICB9XG5cbiAgI3Jlc2V0KCk6IHZvaWQge1xuICAgIHRoaXMuI3JlbW92ZVZpZXdwb3J0TGlzdGVuZXJzKCk7XG5cbiAgICB0aGlzLiNvdmVyZmxvd1BhcmVudHMgPSBbXTtcblxuICAgIHRoaXMuI2NvbmZpZyA9XG4gICAgICB0aGlzLiNiYXNlRWxlbWVudCA9XG4gICAgICB0aGlzLiNjdXJyZW50UGxhY2VtZW50ID1cbiAgICAgIHRoaXMuI2N1cnJlbnRPZmZzZXQgPVxuICAgICAgICB1bmRlZmluZWQ7XG4gIH1cblxuICAjaXNOZXdPZmZzZXQob2Zmc2V0OiBTa3lBZmZpeE9mZnNldCk6IGJvb2xlYW4ge1xuICAgIGlmICh0aGlzLiNjdXJyZW50T2Zmc2V0ID09PSB1bmRlZmluZWQpIHtcbiAgICAgIHRoaXMuI2N1cnJlbnRPZmZzZXQgPSBvZmZzZXQ7XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG5cbiAgICBpZiAoXG4gICAgICB0aGlzLiNjdXJyZW50T2Zmc2V0LnRvcCA9PT0gb2Zmc2V0LnRvcCAmJlxuICAgICAgdGhpcy4jY3VycmVudE9mZnNldC5sZWZ0ID09PSBvZmZzZXQubGVmdFxuICAgICkge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cblxuICAgIHRoaXMuI2N1cnJlbnRPZmZzZXQgPSBvZmZzZXQ7XG5cbiAgICByZXR1cm4gdHJ1ZTtcbiAgfVxuXG4gICNpc0Jhc2VFbGVtZW50VmlzaWJsZSgpOiBib29sZWFuIHtcbiAgICAvLyBDYW4ndCBnZXQgaGVyZSBpZiB0aGUgYmFzZSBlbGVtZW50IGlzIHVuZGVmaW5lZC5cbiAgICAvKiBpc3RhbmJ1bCBpZ25vcmUgaWYgKi9cbiAgICBpZiAoIXRoaXMuI2Jhc2VFbGVtZW50KSB7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuXG4gICAgY29uc3QgYmFzZVJlY3QgPSB0aGlzLiNiYXNlRWxlbWVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcblxuICAgIHJldHVybiBpc09mZnNldFBhcnRpYWxseVZpc2libGVXaXRoaW5QYXJlbnQoXG4gICAgICB0aGlzLiN2aWV3cG9ydFJ1bGVyLFxuICAgICAgdGhpcy4jZ2V0SW1tZWRpYXRlT3ZlcmZsb3dQYXJlbnQoKSxcbiAgICAgIHtcbiAgICAgICAgdG9wOiBiYXNlUmVjdC50b3AsXG4gICAgICAgIGxlZnQ6IGJhc2VSZWN0LmxlZnQsXG4gICAgICAgIHJpZ2h0OiBiYXNlUmVjdC5yaWdodCxcbiAgICAgICAgYm90dG9tOiBiYXNlUmVjdC5ib3R0b20sXG4gICAgICB9LFxuICAgICAgdGhpcy4jY29uZmlnLmF1dG9GaXRPdmVyZmxvd09mZnNldFxuICAgICk7XG4gIH1cblxuICAjYWRkVmlld3BvcnRMaXN0ZW5lcnMoKTogdm9pZCB7XG4gICAgdGhpcy4jdmlld3BvcnRMaXN0ZW5lcnMgPSBuZXcgU3Vic2NyaXB0aW9uKCk7XG5cbiAgICAvLyBSZXNpemUgYW5kIG9yaWVudGF0aW9uIGNoYW5nZXMuXG4gICAgdGhpcy4jdmlld3BvcnRMaXN0ZW5lcnMuYWRkKFxuICAgICAgdGhpcy4jdmlld3BvcnRSdWxlci5jaGFuZ2UoKS5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICB0aGlzLiNhZmZpeCgpO1xuICAgICAgfSlcbiAgICApO1xuXG4gICAgdGhpcy4jdmlld3BvcnRMaXN0ZW5lcnMuYWRkKFxuICAgICAgdGhpcy4jc2Nyb2xsQ2hhbmdlLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgIHRoaXMuI2FmZml4KCk7XG4gICAgICAgIHRoaXMuI292ZXJmbG93U2Nyb2xsLm5leHQoKTtcbiAgICAgIH0pXG4gICAgKTtcblxuICAgIC8vIExpc3RlbiBmb3Igc2Nyb2xsIGV2ZW50cyBvbiB0aGUgd2luZG93LCB2aXN1YWwgdmlld3BvcnQsIGFuZCBhbnkgb3ZlcmZsb3cgcGFyZW50cy5cbiAgICAvLyBodHRwczovL2RldmVsb3Blci5jaHJvbWUuY29tL2Jsb2cvdmlzdWFsLXZpZXdwb3J0LWFwaS8jZXZlbnRzLW9ubHktZmlyZS13aGVuLXRoZS12aXN1YWwtdmlld3BvcnQtY2hhbmdlc1xuICAgIHRoaXMuI3pvbmUucnVuT3V0c2lkZUFuZ3VsYXIoKCkgPT4ge1xuICAgICAgW3dpbmRvdywgd2luZG93LnZpc3VhbFZpZXdwb3J0LCAuLi50aGlzLiNvdmVyZmxvd1BhcmVudHNdLmZvckVhY2goXG4gICAgICAgIChwYXJlbnRFbGVtZW50KSA9PiB7XG4gICAgICAgICAgcGFyZW50RWxlbWVudD8uYWRkRXZlbnRMaXN0ZW5lcignc2Nyb2xsJywgdGhpcy4jc2Nyb2xsQ2hhbmdlTGlzdGVuZXIpO1xuICAgICAgICB9XG4gICAgICApO1xuICAgIH0pO1xuICB9XG5cbiAgI3JlbW92ZVZpZXdwb3J0TGlzdGVuZXJzKCk6IHZvaWQge1xuICAgIHRoaXMuI3ZpZXdwb3J0TGlzdGVuZXJzPy51bnN1YnNjcmliZSgpO1xuXG4gICAgdGhpcy4jem9uZS5ydW5PdXRzaWRlQW5ndWxhcigoKSA9PiB7XG4gICAgICBbd2luZG93LCB3aW5kb3cudmlzdWFsVmlld3BvcnQsIC4uLnRoaXMuI292ZXJmbG93UGFyZW50c10uZm9yRWFjaChcbiAgICAgICAgKHBhcmVudEVsZW1lbnQpID0+IHtcbiAgICAgICAgICBwYXJlbnRFbGVtZW50Py5yZW1vdmVFdmVudExpc3RlbmVyKFxuICAgICAgICAgICAgJ3Njcm9sbCcsXG4gICAgICAgICAgICB0aGlzLiNzY3JvbGxDaGFuZ2VMaXN0ZW5lclxuICAgICAgICAgICk7XG4gICAgICAgIH1cbiAgICAgICk7XG4gICAgfSk7XG4gIH1cbn1cbiJdfQ==
|
426
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWZmaXhlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tcG9uZW50cy9jb3JlL3NyYy9saWIvbW9kdWxlcy9hZmZpeC9hZmZpeGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUdBLE9BQU8sRUFBYyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBRXpELE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBT2xFLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN0RSxPQUFPLEVBQ0wsZ0JBQWdCLEVBQ2hCLFlBQVksRUFDWixrQkFBa0IsRUFDbEIsd0JBQXdCLEVBQ3hCLGdDQUFnQyxFQUNoQyxvQ0FBb0MsR0FDckMsTUFBTSxhQUFhLENBQUM7QUFrQnJCLE1BQU0sb0JBQW9CLEdBQTBCO0lBQ2xELGNBQWMsRUFBRSxzQkFBc0IsQ0FBQyxjQUFjO0lBQ3JELGFBQWEsRUFBRSxLQUFLO0lBQ3BCLG1CQUFtQixFQUFFLFFBQVE7SUFDN0IsUUFBUSxFQUFFLEtBQUs7SUFDZixTQUFTLEVBQUUsT0FBTztDQUNuQixDQUFDO0FBRUYsTUFBTSxPQUFPLFVBQVU7SUFDckI7O09BRUc7SUFDSCxJQUFXLFlBQVk7UUFDckIsT0FBTyxJQUFJLENBQUMsZ0JBQWdCLENBQUM7SUFDL0IsQ0FBQztJQUVEOzs7O09BSUc7SUFDSCxJQUFXLGNBQWM7UUFDdkIsT0FBTyxJQUFJLENBQUMsa0JBQWtCLENBQUM7SUFDakMsQ0FBQztJQUVEOzs7T0FHRztJQUNILElBQVcsZUFBZTtRQUN4QixPQUFPLElBQUksQ0FBQyxtQkFBbUIsQ0FBQztJQUNsQyxDQUFDO0lBRUQsSUFBSSxPQUFPO1FBQ1QsT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDO0lBQ3ZCLENBQUM7SUFFRCxJQUFJLE9BQU8sQ0FBQyxLQUFpQztRQUMzQyxNQUFN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QUFFLENBQUM7UUFDOUIsQ0FBQyxDQUFDLENBQ0gsQ0FBQztRQUVGLHFGQUFxRjtRQUNyRiwyR0FBMkc7UUFDM0csSUFBSSxDQUFDLEtBQUssQ0FBQyxpQkFBaUIsQ0FBQyxHQUFHLEVBQUU7WUFDaEMsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLGNBQWMsRUFBRSxHQUFHLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDLE9BQU8sQ0FDL0QsQ0FBQyxhQUFhLEVBQUUsRUFBRTtnQkFDaEIsYUFBYSxFQUFFLGdCQUFnQixDQUFDLFFBQVEsRUFBRSxJQUFJLENBQUMscUJBQXFCLENBQUMsQ0FBQztZQUN4RSxDQUFDLENBQ0YsQ0FBQztRQUNKLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVELHdCQUF3QjtRQUN0QixJQUFJLENBQUMsa0JBQWtCLEVBQUUsV0FBVyxFQUFFLENBQUM7UUFFdkMsSUFBSSxDQUFDLEtBQUssQ0FBQyxpQkFBaUIsQ0FBQyxHQUFHLEVBQUU7WUFDaEMsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLGNBQWMsRUFBRSxHQUFHLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDLE9BQU8sQ0FDL0QsQ0FBQyxhQUFhLEVBQUUsRUFBRTtnQkFDaEIsYUFBYSxFQUFFLG1CQUFtQixDQUNoQyxRQUFRLEVBQ1IsSUFBSSxDQUFDLHFCQUFxQixDQUMzQixDQUFDO1lBQ0osQ0FBQyxDQUNGLENBQUM7UUFDSixDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFZpZXdwb3J0UnVsZXIgfSBmcm9tICdAYW5ndWxhci9jZGsvb3ZlcmxheSc7XG5pbXBvcnQgeyBOZ1pvbmUsIFJlbmRlcmVyMiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQgeyBPYnNlcnZhYmxlLCBTdWJqZWN0LCBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJztcblxuaW1wb3J0IHsgU2t5QWZmaXhBdXRvRml0Q29udGV4dCB9IGZyb20gJy4vYWZmaXgtYXV0by1maXQtY29udGV4dCc7XG5pbXBvcnQgeyBTa3lBZmZpeENvbmZpZyB9IGZyb20gJy4vYWZmaXgtY29uZmlnJztcbmltcG9ydCB7IFNreUFmZml4T2Zmc2V0IH0gZnJvbSAnLi9hZmZpeC1vZmZzZXQnO1xuaW1wb3J0IHsgU2t5QWZmaXhPZmZzZXRDaGFuZ2UgfSBmcm9tICcuL2FmZml4LW9mZnNldC1jaGFuZ2UnO1xuaW1wb3J0IHsgU2t5QWZmaXhQbGFjZW1lbnQgfSBmcm9tICcuL2FmZml4LXBsYWNlbWVudCc7XG5pbXBvcnQgeyBTa3lBZmZpeFBsYWNlbWVudENoYW5nZSB9IGZyb20gJy4vYWZmaXgtcGxhY2VtZW50LWNoYW5nZSc7XG5pbXBvcnQgeyBBZmZpeFJlY3QgfSBmcm9tICcuL2FmZml4LXJlY3QnO1xuaW1wb3J0IHsgZ2V0SW52ZXJzZVBsYWNlbWVudCwgZ2V0TmV4dFBsYWNlbWVudCB9IGZyb20gJy4vYWZmaXgtdXRpbHMnO1xuaW1wb3J0IHtcbiAgZ2V0RWxlbWVudE9mZnNldCxcbiAgZ2V0T3V0ZXJSZWN0LFxuICBnZXRPdmVyZmxvd1BhcmVudHMsXG4gIGdldFZpc2libGVSZWN0Rm9yRWxlbWVudCxcbiAgaXNPZmZzZXRGdWxseVZpc2libGVXaXRoaW5QYXJlbnQsXG4gIGlzT2Zmc2V0UGFydGlhbGx5VmlzaWJsZVdpdGhpblBhcmVudCxcbn0gZnJvbSAnLi9kb20tdXRpbHMnO1xuXG4vKipcbiAqIE1ha2Ugc3BlY2lmaWMgcHJvcGVydGllcyByZXF1aXJlZCwgc28gdGhhdCB3ZSBkb24ndCBoYXZlIHRvXG4gKiBkbyBudWxsIGNoZWNrcyB0aHJvdWdob3V0IHRoaXMgZmlsZS5cbiAqL1xudHlwZSBBZmZpeENvbmZpZ09yRGVmYXVsdHMgPSBTa3lBZmZpeENvbmZpZyAmXG4gIFJlcXVpcmVkPFxuICAgIFBpY2s8XG4gICAgICBTa3lBZmZpeENvbmZpZyxcbiAgICAgIHwgJ2F1dG9GaXRDb250ZXh0J1xuICAgICAgfCAnZW5hYmxlQXV0b0ZpdCdcbiAgICAgIHwgJ2hvcml6b250YWxBbGlnbm1lbnQnXG4gICAgICB8ICdpc1N0aWNreSdcbiAgICAgIHwgJ3BsYWNlbWVudCdcbiAgICA+XG4gID47XG5cbmNvbnN0IERFRkFVTFRfQUZGSVhfQ09ORklHOiBBZmZpeENvbmZpZ09yRGVmYXVsdHMgPSB7XG4gIGF1dG9GaXRDb250ZXh0OiBTa3lBZmZpeEF1dG9GaXRDb250ZXh0Lk92ZXJmbG93UGFyZW50LFxuICBlbmFibGVBdXRvRml0OiBmYWxzZSxcbiAgaG9yaXpvbnRhbEFsaWdubWVudDogJ2NlbnRlcicsXG4gIGlzU3RpY2t5OiBmYWxzZSxcbiAgcGxhY2VtZW50OiAnYWJvdmUnLFxufTtcblxuZXhwb3J0IGNsYXNzIFNreUFmZml4ZXIge1xuICAvKipcbiAgICogRmlyZXMgd2hlbiB0aGUgYWZmaXhlZCBlbGVtZW50J3Mgb2Zmc2V0IGNoYW5nZXMuXG4gICAqL1xuICBwdWJsaWMgZ2V0IG9mZnNldENoYW5nZSgpOiBPYnNlcnZhYmxlPFNreUFmZml4T2Zmc2V0Q2hhbmdlPiB7XG4gICAgcmV0dXJuIHRoaXMuI29mZnNldENoYW5nZU9icztcbiAgfVxuXG4gIC8qKlxuICAgKiBGaXJlcyB3aGVuIHRoZSBiYXNlIGVsZW1lbnQncyBuZWFyZXN0IG92ZXJmbG93IHBhcmVudCBpcyBzY3JvbGxpbmcuIFRoaXMgaXMgdXNlZnVsIGlmIHlvdSBuZWVkXG4gICAqIHRvIHBlcmZvcm0gYW4gYWRkaXRpb25hbCBhY3Rpb24gZHVyaW5nIHRoZSBzY3JvbGwgZXZlbnQgYnV0IGRvbid0IHdhbnQgdG8gZ2VuZXJhdGUgYW5vdGhlclxuICAgKiBldmVudCBsaXN0ZW5lci5cbiAgICovXG4gIHB1YmxpYyBnZXQgb3ZlcmZsb3dTY3JvbGwoKTogT2JzZXJ2YWJsZTx2b2lkPiB7XG4gICAgcmV0dXJuIHRoaXMuI292ZXJmbG93U2Nyb2xsT2JzO1xuICB9XG5cbiAgLyoqXG4gICAqIEZpcmVzIHdoZW4gdGhlIHBsYWNlbWVudCB2YWx1ZSBjaGFuZ2VzLiBBIGBudWxsYCB2YWx1ZSBpbmRpY2F0ZXMgdGhhdCBhIHN1aXRhYmxlXG4gICAqIHBsYWNlbWVudCBjb3VsZCBub3QgYmUgZm91bmQuXG4gICAqL1xuICBwdWJsaWMgZ2V0IHBsYWNlbWVudENoYW5nZSgpOiBPYnNlcnZhYmxlPFNreUFmZml4UGxhY2VtZW50Q2hhbmdlPiB7XG4gICAgcmV0dXJuIHRoaXMuI3BsYWNlbWVudENoYW5nZU9icztcbiAgfVxuXG4gIGdldCAjY29uZmlnKCk6IEFmZml4Q29uZmlnT3JEZWZhdWx0cyB7XG4gICAgcmV0dXJuIHRoaXMuI19jb25maWc7XG4gIH1cblxuICBzZXQgI2NvbmZpZyh2YWx1ZTogU2t5QWZmaXhDb25maWcgfCB1bmRlZmluZWQpIHtcbiAgICBjb25zdCBtZXJnZWQ6IEFmZml4Q29uZmlnT3JEZWZhdWx0cyA9IHtcbiAgICAgIC4uLkRFRkFVTFRfQUZGSVhfQ09ORklHLFxuICAgICAgLi4udmFsdWUsXG4gICAgfTtcblxuICAgIC8vIE1ha2Ugc3VyZSBub25lIG9mIHRoZSB2YWx1ZXMgYXJlIHVuZGVmaW5lZC5cbiAgICBsZXQga2V5OiBrZXlvZiB0eXBlb2YgbWVyZ2VkO1xuICAgIGZvciAoa2V5IGluIG1lcmdlZCkge1xuICAgICAgaWYgKG1lcmdlZFtrZXldID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgKG1lcmdlZCBhcyBhbnkpW2tleV0gPSBERUZBVUxUX0FGRklYX0NPTkZJR1trZXldO1xuICAgICAgfVxuICAgIH1cblxuICAgIHRoaXMuI19jb25maWcgPSBtZXJnZWQ7XG4gIH1cblxuICAjYWZmaXhlZEVsZW1lbnQ6IEhUTUxFbGVtZW50O1xuXG4gICNiYXNlRWxlbWVudDogSFRNTEVsZW1lbnQgfCB1bmRlZmluZWQ7XG5cbiAgI2N1cnJlbnRPZmZzZXQ6IFNreUFmZml4T2Zmc2V0IHwgdW5kZWZpbmVkO1xuXG4gICNjdXJyZW50UGxhY2VtZW50OiBTa3lBZmZpeFBsYWNlbWVudCB8IHVuZGVmaW5lZDtcblxuICAjbGF5b3V0Vmlld3BvcnQ6IEhUTUxFbGVtZW50O1xuXG4gICNvZmZzZXRDaGFuZ2U6IFN1YmplY3Q8U2t5QWZmaXhPZmZzZXRDaGFuZ2U+O1xuXG4gICNvZmZzZXRDaGFuZ2VPYnM6IE9ic2VydmFibGU8U2t5QWZmaXhPZmZzZXRDaGFuZ2U+O1xuXG4gICNvdmVyZmxvd1BhcmVudHM6IEhUTUxFbGVtZW50W10gPSBbXTtcblxuICAjb3ZlcmZsb3dTY3JvbGw6IFN1YmplY3Q8dm9pZD47XG5cbiAgI292ZXJmbG93U2Nyb2xsT2JzOiBPYnNlcnZhYmxlPHZvaWQ+O1xuXG4gICNwbGFjZW1lbnRDaGFuZ2U6IFN1YmplY3Q8U2t5QWZmaXhQbGFjZW1lbnRDaGFuZ2U+O1xuXG4gICNwbGFjZW1lbnRDaGFuZ2VPYnM6IE9ic2VydmFibGU8U2t5QWZmaXhQbGFjZW1lbnRDaGFuZ2U+O1xuXG4gICNyZW5kZXJlcjogUmVuZGVyZXIyO1xuXG4gICNzY3JvbGxDaGFuZ2UgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xuXG4gICN2aWV3cG9ydExpc3RlbmVyczogU3Vic2NyaXB0aW9uIHwgdW5kZWZpbmVkO1xuXG4gICN2aWV3cG9ydFJ1bGVyOiBWaWV3cG9ydFJ1bGVyO1xuXG4gICN6b25lOiBOZ1pvbmU7XG5cbiAgI19jb25maWc6IEFmZml4Q29uZmlnT3JEZWZhdWx0cyA9IERFRkFVTFRfQUZGSVhfQ09ORklHO1xuXG4gICNzY3JvbGxDaGFuZ2VMaXN0ZW5lcjogKCkgPT4gdm9pZCA9ICgpID0+IHRoaXMuI3Njcm9sbENoYW5nZS5uZXh0KCk7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgYWZmaXhlZEVsZW1lbnQ6IEhUTUxFbGVtZW50LFxuICAgIHJlbmRlcmVyOiBSZW5kZXJlcjIsXG4gICAgdmlld3BvcnRSdWxlcjogVmlld3BvcnRSdWxlcixcbiAgICB6b25lOiBOZ1pvbmUsXG4gICAgbGF5b3V0Vmlld3BvcnQ6IEhUTUxFbGVtZW50XG4gICkge1xuICAgIHRoaXMuI2FmZml4ZWRFbGVtZW50ID0gYWZmaXhlZEVsZW1lbnQ7XG4gICAgdGhpcy4jcmVuZGVyZXIgPSByZW5kZXJlcjtcbiAgICB0aGlzLiNsYXlvdXRWaWV3cG9ydCA9IGxheW91dFZpZXdwb3J0O1xuICAgIHRoaXMuI3ZpZXdwb3J0UnVsZXIgPSB2aWV3cG9ydFJ1bGVyO1xuICAgIHRoaXMuI3pvbmUgPSB6b25lO1xuXG4gICAgdGhpcy4jb2Zmc2V0Q2hhbmdlID0gbmV3IFN1YmplY3Q8U2t5QWZmaXhPZmZzZXRDaGFuZ2U+KCk7XG4gICAgdGhpcy4jb3ZlcmZsb3dTY3JvbGwgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xuICAgIHRoaXMuI3BsYWNlbWVudENoYW5nZSA9IG5ldyBTdWJqZWN0PFNreUFmZml4UGxhY2VtZW50Q2hhbmdlPigpO1xuXG4gICAgdGhpcy4jb2Zmc2V0Q2hhbmdlT2JzID0gdGhpcy4jb2Zmc2V0Q2hhbmdlLmFzT2JzZXJ2YWJsZSgpO1xuICAgIHRoaXMuI292ZXJmbG93U2Nyb2xsT2JzID0gdGhpcy4jb3ZlcmZsb3dTY3JvbGwuYXNPYnNlcnZhYmxlKCk7XG4gICAgdGhpcy4jcGxhY2VtZW50Q2hhbmdlT2JzID0gdGhpcy4jcGxhY2VtZW50Q2hhbmdlLmFzT2JzZXJ2YWJsZSgpO1xuICB9XG5cbiAgLyoqXG4gICAqIEFmZml4ZXMgYW4gZWxlbWVudCB0byBhIGJhc2UgZWxlbWVudC5cbiAgICogQHBhcmFtIGJhc2VFbGVtZW50IFRoZSBiYXNlIGVsZW1lbnQuXG4gICAqIEBwYXJhbSBjb25maWcgQ29uZmlndXJhdGlvbiBmb3IgdGhlIGFmZml4IGFjdGlvbi5cbiAgICovXG4gIHB1YmxpYyBhZmZpeFRvKGJhc2VFbGVtZW50OiBIVE1MRWxlbWVudCwgY29uZmlnPzogU2t5QWZmaXhDb25maWcpOiB2b2lkIHtcbiAgICB0aGlzLiNyZXNldCgpO1xuXG4gICAgdGhpcy4jY29uZmlnID0gY29uZmlnO1xuICAgIHRoaXMuI2Jhc2VFbGVtZW50ID0gYmFzZUVsZW1lbnQ7XG4gICAgdGhpcy4jb3ZlcmZsb3dQYXJlbnRzID0gZ2V0T3ZlcmZsb3dQYXJlbnRzKGJhc2VFbGVtZW50KTtcblxuICAgIHRoaXMuI2FmZml4KCk7XG5cbiAgICBpZiAodGhpcy4jY29uZmlnLmlzU3RpY2t5KSB7XG4gICAgICB0aGlzLiNhZGRWaWV3cG9ydExpc3RlbmVycygpO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBnZXRDb25maWcoKTogU2t5QWZmaXhDb25maWcge1xuICAgIHJldHVybiB0aGlzLiNjb25maWc7XG4gIH1cblxuICAvKipcbiAgICogUmUtcnVucyB0aGUgYWZmaXggY2FsY3VsYXRpb24uXG4gICAqL1xuICBwdWJsaWMgcmVhZmZpeCgpOiB2b2lkIHtcbiAgICAvLyBSZXNldCBjdXJyZW50IHBsYWNlbWVudCB0byBwcmVmZXJyZWQgcGxhY2VtZW50LlxuICAgIHRoaXMuI2N1cnJlbnRQbGFjZW1lbnQgPSB0aGlzLiNjb25maWcucGxhY2VtZW50O1xuICAgIHRoaXMuI2FmZml4KCk7XG4gIH1cblxuICAvKipcbiAgICogRGVzdHJveXMgdGhlIGFmZml4ZXIuXG4gICAqL1xuICBwdWJsaWMgZGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLiNyZXNldCgpO1xuICAgIHRoaXMuI3BsYWNlbWVudENoYW5nZS5jb21wbGV0ZSgpO1xuICAgIHRoaXMuI29mZnNldENoYW5nZS5jb21wbGV0ZSgpO1xuICAgIHRoaXMuI292ZXJmbG93U2Nyb2xsLmNvbXBsZXRlKCk7XG4gICAgdGhpcy4jc2Nyb2xsQ2hhbmdlLmNvbXBsZXRlKCk7XG4gIH1cblxuICAjYWZmaXgoKTogdm9pZCB7XG4gICAgY29uc3Qgb2Zmc2V0ID0gdGhpcy4jZ2V0T2Zmc2V0KCk7XG5cbiAgICBjb25zdCBvZmZzZXRQYXJlbnRSZWN0ID0gdGhpcy4jZ2V0T2Zmc2V0UGFyZW50UmVjdCgpO1xuICAgIG9mZnNldC50b3AgPSBvZmZzZXQudG9wIC0gb2Zmc2V0UGFyZW50UmVjdC50b3A7XG4gICAgb2Zmc2V0LmxlZnQgPSBvZmZzZXQubGVmdCAtIG9mZnNldFBhcmVudFJlY3QubGVmdDtcbiAgICBvZmZzZXQuYm90dG9tID0gb2Zmc2V0LmJvdHRvbSAtIG9mZnNldFBhcmVudFJlY3QudG9wO1xuICAgIG9mZnNldC5yaWdodCA9IG9mZnNldC5yaWdodCAtIG9mZnNldFBhcmVudFJlY3QubGVmdDtcblxuICAgIGlmICh0aGlzLiNpc05ld09mZnNldChvZmZzZXQpKSB7XG4gICAgICB0aGlzLiNyZW5kZXJlci5zZXRTdHlsZSh0aGlzLiNhZmZpeGVkRWxlbWVudCwgJ3RvcCcsIGAke29mZnNldC50b3B9cHhgKTtcbiAgICAgIHRoaXMuI3JlbmRlcmVyLnNldFN0eWxlKHRoaXMuI2FmZml4ZWRFbGVtZW50LCAnbGVmdCcsIGAke29mZnNldC5sZWZ0fXB4YCk7XG5cbiAgICAgIHRoaXMuI29mZnNldENoYW5nZS5uZXh0KHsgb2Zmc2V0IH0pO1xuICAgIH1cbiAgfVxuXG4gICNnZXRPZmZzZXRQYXJlbnRSZWN0KCk6IEFmZml4UmVjdCB7XG4gICAgLy8gRmlyZWZveCBzZXRzIHRoZSBvZmZzZXRQYXJlbnQgdG8gZG9jdW1lbnQuYm9keSBpZiB0aGUgZWxlbWVudCB1c2VzIGZpeGVkIHBvc2l0aW9uaW5nLlxuICAgIGlmIChcbiAgICAgIHRoaXMuI2NvbmZpZy5wb3NpdGlvbiA9PT0gJ2Fic29sdXRlJyAmJlxuICAgICAgdGhpcy4jYWZmaXhlZEVsZW1lbnQub2Zmc2V0UGFyZW50XG4gICAgKSB7XG4gICAgICByZXR1cm4gZ2V0T3V0ZXJSZWN0KHRoaXMuI2FmZml4ZWRFbGVtZW50Lm9mZnNldFBhcmVudCBhcyBIVE1MRWxlbWVudCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGNvbnN0IGxheW91dFJlY3QgPSBnZXRPdXRlclJlY3QodGhpcy4jbGF5b3V0Vmlld3BvcnQpO1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgdG9wOiBsYXlvdXRSZWN0LnRvcCxcbiAgICAgICAgbGVmdDogbGF5b3V0UmVjdC5sZWZ0LFxuICAgICAgICBoZWlnaHQ6IGxheW91dFJlY3QuaGVpZ2h0LFxuICAgICAgICB3aWR0aDogbGF5b3V0UmVjdC53aWR0aCxcbiAgICAgICAgYm90dG9tOiBsYXlvdXRSZWN0LnRvcCAtIGxheW91dFJlY3QuaGVpZ2h0LFxuICAgICAgICByaWdodDogbGF5b3V0UmVjdC5sZWZ0IC0gbGF5b3V0UmVjdC53aWR0aCxcbiAgICAgIH07XG4gICAgfVxuICB9XG5cbiAgI2dldE9mZnNldCgpOiBSZXF1aXJlZDxTa3lBZmZpeE9mZnNldD4ge1xuICAgIGNvbnN0IHBhcmVudCA9IHRoaXMuI2dldEF1dG9GaXRDb250ZXh0UGFyZW50KCk7XG5cbiAgICBjb25zdCBtYXhBdHRlbXB0cyA9IDQ7XG4gICAgbGV0IGF0dGVtcHRzID0gMDtcblxuICAgIGxldCBpc0FmZml4ZWRFbGVtZW50RnVsbHlWaXNpYmxlID0gZmFsc2U7XG4gICAgbGV0IG9mZnNldDogUmVxdWlyZWQ8U2t5QWZmaXhPZmZzZXQ+O1xuICAgIGxldCBwbGFjZW1lbnQgPSB0aGlzLiNjb25maWcucGxhY2VtZW50O1xuXG4gICAgZG8ge1xuICAgICAgb2Zmc2V0ID0gdGhpcy4jZ2V0UHJlZmVycmVkT2Zmc2V0KHBsYWNlbWVudCk7XG4gICAgICBpc0FmZml4ZWRFbGVtZW50RnVsbHlWaXNpYmxlID0gaXNPZmZzZXRGdWxseVZpc2libGVXaXRoaW5QYXJlbnQoXG4gICAgICAgIHRoaXMuI3ZpZXdwb3J0UnVsZXIsXG4gICAgICAgIHBhcmVudCxcbiAgICAgICAgb2Zmc2V0LFxuICAgICAgICB0aGlzLiNjb25maWcuYXV0b0ZpdE92ZXJmbG93T2Zmc2V0XG4gICAgICApO1xuXG4gICAgICBpZiAoIXRoaXMuI2NvbmZpZy5lbmFibGVBdXRvRml0KSB7XG4gICAgICAgIGJyZWFrO1xuICAgICAgfVxuXG4gICAgICBpZiAoIWlzQWZmaXhlZEVsZW1lbnRGdWxseVZpc2libGUpIHtcbiAgICAgICAgcGxhY2VtZW50ID1cbiAgICAgICAgICBhdHRlbXB0cyAlIDIgPT09IDBcbiAgICAgICAgICAgID8gZ2V0SW52ZXJzZVBsYWNlbWVudChwbGFjZW1lbnQpXG4gICAgICAgICAgICA6IGdldE5leHRQbGFjZW1lbnQocGxhY2VtZW50KTtcbiAgICAgIH1cblxuICAgICAgYXR0ZW1wdHMrKztcbiAgICB9IHdoaWxlICghaXNBZmZpeGVkRWxlbWVudEZ1bGx5VmlzaWJsZSAmJiBhdHRlbXB0cyA8IG1heEF0dGVtcHRzKTtcblxuICAgIGlmIChpc0FmZml4ZWRFbGVtZW50RnVsbHlWaXNpYmxlKSB7XG4gICAgICBpZiAodGhpcy4jaXNCYXNlRWxlbWVudFZpc2libGUoKSkge1xuICAgICAgICB0aGlzLiNub3RpZnlQbGFjZW1lbnRDaGFuZ2UocGxhY2VtZW50KTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMuI25vdGlmeVBsYWNlbWVudENoYW5nZShudWxsKTtcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIG9mZnNldDtcbiAgICB9XG5cbiAgICBpZiAodGhpcy4jY29uZmlnLmVuYWJsZUF1dG9GaXQpIHtcbiAgICAgIHRoaXMuI25vdGlmeVBsYWNlbWVudENoYW5nZShudWxsKTtcbiAgICB9XG5cbiAgICAvLyBObyBzdWl0YWJsZSBwbGFjZW1lbnQgd2FzIGZvdW5kLCBzbyByZXZlcnQgdG8gcHJlZmVycmVkIHBsYWNlbWVudC5cbiAgICByZXR1cm4gdGhpcy4jZ2V0UHJlZmVycmVkT2Zmc2V0KHRoaXMuI2NvbmZpZy5wbGFjZW1lbnQpO1xuICB9XG5cbiAgI2dldFByZWZlcnJlZE9mZnNldChwbGFjZW1lbnQ6IFNreUFmZml4UGxhY2VtZW50KTogUmVxdWlyZWQ8U2t5QWZmaXhPZmZzZXQ+IHtcbiAgICBpZiAoIXRoaXMuI2Jhc2VFbGVtZW50KSB7XG4gICAgICByZXR1cm4geyB0b3A6IDAsIGxlZnQ6IDAsIGJvdHRvbTogMCwgcmlnaHQ6IDAgfTtcbiAgICB9XG5cbiAgICBjb25zdCBhZmZpeGVkUmVjdCA9IGdldE91dGVyUmVjdCh0aGlzLiNhZmZpeGVkRWxlbWVudCk7XG4gICAgY29uc3QgYmFzZVJlY3QgPSB0aGlzLiNiYXNlRWxlbWVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcblxuICAgIGNvbnN0IGhvcml6b250YWxBbGlnbm1lbnQgPSB0aGlzLiNjb25maWcuaG9yaXpvbnRhbEFsaWdubWVudDtcbiAgICBjb25zdCB2ZXJ0aWNhbEFsaWdubWVudCA9IHRoaXMuI2NvbmZpZy52ZXJ0aWNhbEFsaWdubWVudDtcbiAgICBjb25zdCBlbmFibGVBdXRvRml0ID0gdGhpcy4jY29uZmlnLmVuYWJsZUF1dG9GaXQ7XG5cbiAgICBsZXQgdG9wOiBudW1iZXI7XG4gICAgbGV0IGxlZnQ6IG51bWJlcjtcblxuICAgIGlmIChwbGFjZW1lbnQgPT09ICdhYm92ZScgfHwgcGxhY2VtZW50ID09PSAnYmVsb3cnKSB7XG4gICAgICBpZiAocGxhY2VtZW50ID09PSAnYWJvdmUnKSB7XG4gICAgICAgIHRvcCA9IGJhc2VSZWN0LnRvcCAtIGFmZml4ZWRSZWN0LmhlaWdodDtcblxuICAgICAgICBzd2l0Y2ggKHZlcnRpY2FsQWxpZ25tZW50KSB7XG4gICAgICAgICAgY2FzZSAndG9wJzpcbiAgICAgICAgICAgIHRvcCA9IHRvcCArIGFmZml4ZWRSZWN0LmhlaWdodDtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIGNhc2UgJ21pZGRsZSc6XG4gICAgICAgICAgICB0b3AgPSB0b3AgKyBhZmZpeGVkUmVjdC5oZWlnaHQgLyAyO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgY2FzZSAnYm90dG9tJzpcbiAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRvcCA9IGJhc2VSZWN0LmJvdHRvbTtcblxuICAgICAgICBzd2l0Y2ggKHZlcnRpY2FsQWxpZ25tZW50KSB7XG4gICAgICAgICAgY2FzZSAndG9wJzpcbiAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgY2FzZSAnbWlkZGxlJzpcbiAgICAgICAgICAgIHRvcCA9IHRvcCAtIGFmZml4ZWRSZWN0LmhlaWdodCAvIDI7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICBjYXNlICdib3R0b20nOlxuICAgICAgICAgICAgdG9wID0gdG9wIC0gYWZmaXhlZFJlY3QuaGVpZ2h0O1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgc3dpdGNoIChob3Jpem9udGFsQWxpZ25tZW50KSB7XG4gICAgICAgIGNhc2UgJ2xlZnQnOlxuICAgICAgICAgIGxlZnQgPSBiYXNlUmVjdC5sZWZ0O1xuICAgICAgICAgIGJyZWFrO1xuXG4gICAgICAgIGNhc2UgJ2NlbnRlcic6XG4gICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgbGVmdCA9IGJhc2VSZWN0LmxlZnQgKyBiYXNlUmVjdC53aWR0aCAvIDIgLSBhZmZpeGVkUmVjdC53aWR0aCAvIDI7XG4gICAgICAgICAgYnJlYWs7XG5cbiAgICAgICAgY2FzZSAncmlnaHQnOlxuICAgICAgICAgIGxlZnQgPSBiYXNlUmVjdC5yaWdodCAtIGFmZml4ZWRSZWN0LndpZHRoO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICBpZiAocGxhY2VtZW50ID09PSAnbGVmdCcpIHtcbiAgICAgICAgbGVmdCA9IGJhc2VSZWN0LmxlZnQgLSBhZmZpeGVkUmVjdC53aWR0aDtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGxlZnQgPSBiYXNlUmVjdC5yaWdodDtcbiAgICAgIH1cblxuICAgICAgc3dpdGNoICh2ZXJ0aWNhbEFsaWdubWVudCkge1xuICAgICAgICBjYXNlICd0b3AnOlxuICAgICAgICAgIHRvcCA9IGJhc2VSZWN0LnRvcDtcbiAgICAgICAgICBicmVhaztcblxuICAgICAgICBjYXNlICdtaWRkbGUnOlxuICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgIHRvcCA9IGJhc2VSZWN0LnRvcCArIGJhc2VSZWN0LmhlaWdodCAvIDIgLSBhZmZpeGVkUmVjdC5oZWlnaHQgLyAyO1xuICAgICAgICAgIGJyZWFrO1xuXG4gICAgICAgIGNhc2UgJ2JvdHRvbSc6XG4gICAgICAgICAgdG9wID0gYmFzZVJlY3QuYm90dG9tIC0gYWZmaXhlZFJlY3QuaGVpZ2h0O1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgfVxuICAgIH1cblxuICAgIGNvbnN0IG9mZnNldDogUmVxdWlyZWQ8U2t5QWZmaXhPZmZzZXQ+ID0geyB0b3AsIGxlZnQsIGJvdHRvbTogMCwgcmlnaHQ6IDAgfTtcblxuICAgIGlmIChlbmFibGVBdXRvRml0KSB7XG4gICAgICBjb25zdCBhZGp1c3RtZW50cyA9IHRoaXMuI2FkanVzdE9mZnNldFRvT3ZlcmZsb3dQYXJlbnQoXG4gICAgICAgIHsgdG9wLCBsZWZ0IH0sXG4gICAgICAgIHBsYWNlbWVudCxcbiAgICAgICAgdGhpcy4jYmFzZUVsZW1lbnRcbiAgICAgICk7XG4gICAgICBvZmZzZXQudG9wID0gYWRqdXN0bWVudHMudG9wO1xuICAgICAgb2Zmc2V0LmxlZnQgPSBhZGp1c3RtZW50cy5sZWZ0O1xuICAgIH1cblxuICAgIG9mZnNldC5ib3R0b20gPSBvZmZzZXQudG9wICsgYWZmaXhlZFJlY3QuaGVpZ2h0O1xuICAgIG9mZnNldC5yaWdodCA9IG9mZnNldC5sZWZ0ICsgYWZmaXhlZFJlY3Qud2lkdGg7XG5cbiAgICByZXR1cm4gb2Zmc2V0O1xuICB9XG5cbiAgLyoqXG4gICAqIFNsaWdodGx5IGFkanVzdCB0aGUgb2Zmc2V0IHRvIGZpdCB3aXRoaW4gdGhlIHNjcm9sbCBwYXJlbnQncyBib3VuZGFyaWVzIGlmXG4gICAqIHRoZSBhZmZpeGVkIGVsZW1lbnQgd291bGQgb3RoZXJ3aXNlIGJlIGNsaXBwZWQuXG4gICAqL1xuICAjYWRqdXN0T2Zmc2V0VG9PdmVyZmxvd1BhcmVudChcbiAgICBvZmZzZXQ6IHsgdG9wOiBudW1iZXI7IGxlZnQ6IG51bWJlciB9LFxuICAgIHBsYWNlbWVudDogU2t5QWZmaXhQbGFjZW1lbnQsXG4gICAgYmFzZUVsZW1lbnQ6IEhUTUxFbGVtZW50XG4gICk6IHsgdG9wOiBudW1iZXI7IGxlZnQ6IG51bWJlciB9IHtcbiAgICBjb25zdCBhZmZpeGVkUmVjdCA9IGdldE91dGVyUmVjdCh0aGlzLiNhZmZpeGVkRWxlbWVudCk7XG4gICAgY29uc3QgYmFzZVJlY3QgPSBiYXNlRWxlbWVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcblxuICAgIGNvbnN0IHBhcmVudCA9IHRoaXMuI2dldEF1dG9GaXRDb250ZXh0UGFyZW50KCk7XG4gICAgbGV0IHBhcmVudE9mZnNldDogUmVxdWlyZWQ8U2t5QWZmaXhPZmZzZXQ+O1xuICAgIGlmICh0aGlzLiNjb25maWcuYXV0b0ZpdENvbnRleHQgPT09IFNreUFmZml4QXV0b0ZpdENvbnRleHQuT3ZlcmZsb3dQYXJlbnQpIHtcbiAgICAgIGlmICh0aGlzLiNjb25maWcuYXV0b0ZpdE92ZXJmbG93T2Zmc2V0KSB7XG4gICAgICAgIC8vIFdoZW4gdGhlIGNvbmZpZyBjb250YWlucyBhIHNwZWNpZmljIG9mZnNldC5cbiAgICAgICAgcGFyZW50T2Zmc2V0ID0gZ2V0RWxlbWVudE9mZnNldChcbiAgICAgICAgICBwYXJlbnQsXG4gICAgICAgICAgdGhpcy4jY29uZmlnLmF1dG9GaXRPdmVyZmxvd09mZnNldFxuICAgICAgICApO1xuICAgICAgfSBlbHNlIGlmIChcbiAgICAgICAgaXNPZmZzZXRGdWxseVZpc2libGVXaXRoaW5QYXJlbnQodGhpcy4jdmlld3BvcnRSdWxlciwgcGFyZW50LCBiYXNlUmVjdClcbiAgICAgICkge1xuICAgICAgICAvLyBXaGVuIHRoZSBiYXNlIGVsZW1lbnQgaXMgZnVsbHkgdmlzaWJsZSB3aXRoaW4gdGhlIHBhcmVudCwgYWltIGZvciB0aGUgdmlzaWJsZSBwb3J0aW9uIG9mIHRoZSBwYXJlbnQgZWxlbWVudC5cbiAgICAgICAgcGFyZW50T2Zmc2V0ID0gZ2V0VmlzaWJsZVJlY3RGb3JFbGVtZW50KHRoaXMuI3ZpZXdwb3J0UnVsZXIsIHBhcmVudCk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICAvLyBBbnl3aGVyZSBpbiB0aGUgcGFyZW50IGVsZW1lbnQuXG4gICAgICAgIHBhcmVudE9mZnNldCA9IGdldE91dGVyUmVjdChwYXJlbnQpO1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICBjb25zdCB2aWV3cG9ydFJlY3QgPSB0aGlzLiN2aWV3cG9ydFJ1bGVyLmdldFZpZXdwb3J0UmVjdCgpO1xuICAgICAgcGFyZW50T2Zmc2V0ID0ge1xuICAgICAgICB0b3A6IC12aWV3cG9ydFJlY3QudG9wLFxuICAgICAgICBsZWZ0OiAtdmlld3BvcnRSZWN0LmxlZnQsXG4gICAgICAgIGJvdHRvbTogLXZpZXdwb3J0UmVjdC5ib3R0b20sXG4gICAgICAgIHJpZ2h0OiAtdmlld3BvcnRSZWN0LnJpZ2h0LFxuICAgICAgfTtcbiAgICB9XG5cbiAgICAvLyBBIHBpeGVsIHZhbHVlIHJlcHJlc2VudGluZyB0aGUgbGVld2F5IGJldHdlZW4gdGhlIGVkZ2Ugb2YgdGhlIG92ZXJmbG93IHBhcmVudCBhbmQgdGhlIGVkZ2VcbiAgICAvLyBvZiB0aGUgYmFzZSBlbGVtZW50IGJlZm9yZSBpdCBkaXNhcHBlYXJzIGZyb20gdmlldy5cbiAgICAvLyBJZiB0aGUgdmlzaWJsZSBwb3J0aW9uIG9mIHRoZSBiYXNlIGVsZW1lbnQgaXMgbGVzcyB0aGFuIHRoaXMgcGl4ZWwgdmFsdWUsIHRoZSBhdXRvLWZpdFxuICAgIC8vIGZ1bmN0aW9uYWxpdHkgYXR0ZW1wdHMgdG8gZmluZCBhbm90aGVyIHBsYWNlbWVudC5cbiAgICBjb25zdCBkZWZhdWx0UGl4ZWxUb2xlcmFuY2UgPSA0MDtcbiAgICBsZXQgcGl4ZWxUb2xlcmFuY2U6IG51bWJlcjtcblxuICAgIGNvbnN0IG9yaWdpbmFsT2Zmc2V0VG9wID0gb2Zmc2V0LnRvcDtcbiAgICBjb25zdCBvcmlnaW5hbE9mZnNldExlZnQgPSBvZmZzZXQubGVmdDtcblxuICAgIHN3aXRjaCAocGxhY2VtZW50KSB7XG4gICAgICBjYXNlICdhYm92ZSc6XG4gICAgICBjYXNlICdiZWxvdyc6XG4gICAgICAgIC8vIEtlZXAgdGhlIGFmZml4ZWQgZWxlbWVudCB3aXRoaW4gdGhlIG92ZXJmbG93IHBhcmVudC5cbiAgICAgICAgaWYgKG9mZnNldC5sZWZ0IDwgcGFyZW50T2Zmc2V0LmxlZnQpIHtcbiAgICAgICAgICBvZmZzZXQubGVmdCA9IHBhcmVudE9mZnNldC5sZWZ0O1xuICAgICAgICB9IGVsc2UgaWYgKG9mZnNldC5sZWZ0ICsgYWZmaXhlZFJlY3Qud2lkdGggPiBwYXJlbnRPZmZzZXQucmlnaHQpIHtcbiAgICAgICAgICBvZmZzZXQubGVmdCA9IHBhcmVudE9mZnNldC5yaWdodCAtIGFmZml4ZWRSZWN0LndpZHRoO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gVXNlIGEgc21hbGxlciBwaXhlbCB0b2xlcmFuY2UgaWYgdGhlIGJhc2UgZWxlbWVudCB3aWR0aCBpcyBsZXNzIHRoYW4gdGhlIGRlZmF1bHQuXG4gICAgICAgIHBpeGVsVG9sZXJhbmNlID0gTWF0aC5taW4oZGVmYXVsdFBpeGVsVG9sZXJhbmNlLCBiYXNlUmVjdC53aWR0aCk7XG5cbiAgICAgICAgLy8gTWFrZSBzdXJlIHRoZSBhZmZpeGVkIGVsZW1lbnQgbmV2ZXIgZGV0YWNoZXMgZnJvbSB0aGUgYmFzZSBlbGVtZW50LlxuICAgICAgICBpZiAoXG4gICAgICAgICAgb2Zmc2V0LmxlZnQgKyBwaXhlbFRvbGVyYW5jZSA+IGJhc2VSZWN0LnJpZ2h0IHx8XG4gICAgICAgICAgb2Zmc2V0LmxlZnQgKyBhZmZpeGVkUmVjdC53aWR0aCAtIHBpeGVsVG9sZXJhbmNlIDwgYmFzZVJlY3QubGVmdFxuICAgICAgICApIHtcbiAgICAgICAgICBvZmZzZXQubGVmdCA9IG9yaWdpbmFsT2Zmc2V0TGVmdDtcbiAgICAgICAgfVxuXG4gICAgICAgIGJyZWFrO1xuXG4gICAgICBjYXNlICdsZWZ0JzpcbiAgICAgIGNhc2UgJ3JpZ2h0JzpcbiAgICAgICAgLy8gS2VlcCB0aGUgYWZmaXhlZCBlbGVtZW50IHdpdGhpbiB0aGUgb3ZlcmZsb3cgcGFyZW50LlxuICAgICAgICBpZiAob2Zmc2V0LnRvcCA8IHBhcmVudE9mZnNldC50b3ApIHtcbiAgICAgICAgICBvZmZzZXQudG9wID0gcGFyZW50T2Zmc2V0LnRvcDtcbiAgICAgICAgfSBlbHNlIGlmIChvZmZzZXQudG9wICsgYWZmaXhlZFJlY3QuaGVpZ2h0ID4gcGFyZW50T2Zmc2V0LmJvdHRvbSkge1xuICAgICAgICAgIG9mZnNldC50b3AgPSBwYXJlbnRPZmZzZXQuYm90dG9tIC0gYWZmaXhlZFJlY3QuaGVpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gVXNlIGEgc21hbGxlciBwaXhlbCB0b2xlcmFuY2UgaWYgdGhlIGJhc2UgZWxlbWVudCBoZWlnaHQgaXMgbGVzcyB0aGFuIHRoZSBkZWZhdWx0LlxuICAgICAgICBwaXhlbFRvbGVyYW5jZSA9IE1hdGgubWluKGRlZmF1bHRQaXhlbFRvbGVyYW5jZSwgYmFzZVJlY3QuaGVpZ2h0KTtcblxuICAgICAgICAvLyBNYWtlIHN1cmUgdGhlIGFmZml4ZWQgZWxlbWVudCBuZXZlciBkZXRhY2hlcyBmcm9tIHRoZSBiYXNlIGVsZW1lbnQuXG4gICAgICAgIGlmIChcbiAgICAgICAgICBvZmZzZXQudG9wICsgcGl4ZWxUb2xlcmFuY2UgPiBiYXNlUmVjdC5ib3R0b20gfHxcbiAgICAgICAgICBvZmZzZXQudG9wICsgYWZmaXhlZFJlY3QuaGVpZ2h0IC0gcGl4ZWxUb2xlcmFuY2UgPCBiYXNlUmVjdC50b3BcbiAgICAgICAgKSB7XG4gICAgICAgICAgb2Zmc2V0LnRvcCA9IG9yaWdpbmFsT2Zmc2V0VG9wO1xuICAgICAgICB9XG5cbiAgICAgICAgYnJlYWs7XG4gICAgfVxuXG4gICAgcmV0dXJuIG9mZnNldDtcbiAgfVxuXG4gICNnZXRJbW1lZGlhdGVPdmVyZmxvd1BhcmVudCgpOiBIVE1MRWxlbWVudCB7XG4gICAgcmV0dXJuIHRoaXMuI292ZXJmbG93UGFyZW50c1swXTtcbiAgfVxuXG4gICNnZXRBdXRvRml0Q29udGV4dFBhcmVudCgpOiBIVE1MRWxlbWVudCB7XG4gICAgY29uc3QgYm9keUVsZW1lbnQgPSB0aGlzLiNvdmVyZmxvd1BhcmVudHNbdGhpcy4jb3ZlcmZsb3dQYXJlbnRzLmxlbmd0aCAtIDFdO1xuXG4gICAgcmV0dXJuIHRoaXMuI2NvbmZpZy5hdXRvRml0Q29udGV4dCA9PT0gU2t5QWZmaXhBdXRvRml0Q29udGV4dC5PdmVyZmxvd1BhcmVudFxuICAgICAgPyB0aGlzLiNnZXRJbW1lZGlhdGVPdmVyZmxvd1BhcmVudCgpXG4gICAgICA6IGJvZHlFbGVtZW50O1xuICB9XG5cbiAgI25vdGlmeVBsYWNlbWVudENoYW5nZShwbGFjZW1lbnQ6IFNreUFmZml4UGxhY2VtZW50IHwgbnVsbCk6IHZvaWQge1xuICAgIGlmICh0aGlzLiNjdXJyZW50UGxhY2VtZW50ICE9PSBwbGFjZW1lbnQpIHtcbiAgICAgIHRoaXMuI2N1cnJlbnRQbGFjZW1lbnQgPSBwbGFjZW1lbnQgPz8gdW5kZWZpbmVkO1xuICAgICAgdGhpcy4jcGxhY2VtZW50Q2hhbmdlLm5leHQoe1xuICAgICAgICBwbGFjZW1lbnQsXG4gICAgICB9KTtcbiAgICB9XG4gIH1cblxuICAjcmVzZXQoKTogdm9pZCB7XG4gICAgdGhpcy4jcmVtb3ZlVmlld3BvcnRMaXN0ZW5lcnMoKTtcblxuICAgIHRoaXMuI292ZXJmbG93UGFyZW50cyA9IFtdO1xuXG4gICAgdGhpcy4jY29uZmlnID1cbiAgICAgIHRoaXMuI2Jhc2VFbGVtZW50ID1cbiAgICAgIHRoaXMuI2N1cnJlbnRQbGFjZW1lbnQgPVxuICAgICAgdGhpcy4jY3VycmVudE9mZnNldCA9XG4gICAgICAgIHVuZGVmaW5lZDtcbiAgfVxuXG4gICNpc05ld09mZnNldChvZmZzZXQ6IFNreUFmZml4T2Zmc2V0KTogYm9vbGVhbiB7XG4gICAgaWYgKHRoaXMuI2N1cnJlbnRPZmZzZXQgPT09IHVuZGVmaW5lZCkge1xuICAgICAgdGhpcy4jY3VycmVudE9mZnNldCA9IG9mZnNldDtcbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cblxuICAgIGlmIChcbiAgICAgIHRoaXMuI2N1cnJlbnRPZmZzZXQudG9wID09PSBvZmZzZXQudG9wICYmXG4gICAgICB0aGlzLiNjdXJyZW50T2Zmc2V0LmxlZnQgPT09IG9mZnNldC5sZWZ0XG4gICAgKSB7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuXG4gICAgdGhpcy4jY3VycmVudE9mZnNldCA9IG9mZnNldDtcblxuICAgIHJldHVybiB0cnVlO1xuICB9XG5cbiAgI2lzQmFzZUVsZW1lbnRWaXNpYmxlKCk6IGJvb2xlYW4ge1xuICAgIC8vIENhbid0IGdldCBoZXJlIGlmIHRoZSBiYXNlIGVsZW1lbnQgaXMgdW5kZWZpbmVkLlxuICAgIC8qIGlzdGFuYnVsIGlnbm9yZSBpZiAqL1xuICAgIGlmICghdGhpcy4jYmFzZUVsZW1lbnQpIHtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG5cbiAgICBjb25zdCBiYXNlUmVjdCA9IHRoaXMuI2Jhc2VFbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xuXG4gICAgcmV0dXJuIGlzT2Zmc2V0UGFydGlhbGx5VmlzaWJsZVdpdGhpblBhcmVudChcbiAgICAgIHRoaXMuI3ZpZXdwb3J0UnVsZXIsXG4gICAgICB0aGlzLiNnZXRJbW1lZGlhdGVPdmVyZmxvd1BhcmVudCgpLFxuICAgICAge1xuICAgICAgICB0b3A6IGJhc2VSZWN0LnRvcCxcbiAgICAgICAgbGVmdDogYmFzZVJlY3QubGVmdCxcbiAgICAgICAgcmlnaHQ6IGJhc2VSZWN0LnJpZ2h0LFxuICAgICAgICBib3R0b206IGJhc2VSZWN0LmJvdHRvbSxcbiAgICAgIH0sXG4gICAgICB0aGlzLiNjb25maWcuYXV0b0ZpdE92ZXJmbG93T2Zmc2V0XG4gICAgKTtcbiAgfVxuXG4gICNhZGRWaWV3cG9ydExpc3RlbmVycygpOiB2b2lkIHtcbiAgICB0aGlzLiN2aWV3cG9ydExpc3RlbmVycyA9IG5ldyBTdWJzY3JpcHRpb24oKTtcblxuICAgIC8vIFJlc2l6ZSBhbmQgb3JpZW50YXRpb24gY2hhbmdlcy5cbiAgICB0aGlzLiN2aWV3cG9ydExpc3RlbmVycy5hZGQoXG4gICAgICB0aGlzLiN2aWV3cG9ydFJ1bGVyLmNoYW5nZSgpLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgIHRoaXMuI2FmZml4KCk7XG4gICAgICB9KVxuICAgICk7XG5cbiAgICB0aGlzLiN2aWV3cG9ydExpc3RlbmVycy5hZGQoXG4gICAgICB0aGlzLiNzY3JvbGxDaGFuZ2Uuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgdGhpcy4jYWZmaXgoKTtcbiAgICAgICAgdGhpcy4jb3ZlcmZsb3dTY3JvbGwubmV4dCgpO1xuICAgICAgfSlcbiAgICApO1xuXG4gICAgLy8gTGlzdGVuIGZvciBzY3JvbGwgZXZlbnRzIG9uIHRoZSB3aW5kb3csIHZpc3VhbCB2aWV3cG9ydCwgYW5kIGFueSBvdmVyZmxvdyBwYXJlbnRzLlxuICAgIC8vIGh0dHBzOi8vZGV2ZWxvcGVyLmNocm9tZS5jb20vYmxvZy92aXN1YWwtdmlld3BvcnQtYXBpLyNldmVudHMtb25seS1maXJlLXdoZW4tdGhlLXZpc3VhbC12aWV3cG9ydC1jaGFuZ2VzXG4gICAgdGhpcy4jem9uZS5ydW5PdXRzaWRlQW5ndWxhcigoKSA9PiB7XG4gICAgICBbd2luZG93LCB3aW5kb3cudmlzdWFsVmlld3BvcnQsIC4uLnRoaXMuI292ZXJmbG93UGFyZW50c10uZm9yRWFjaChcbiAgICAgICAgKHBhcmVudEVsZW1lbnQpID0+IHtcbiAgICAgICAgICBwYXJlbnRFbGVtZW50Py5hZGRFdmVudExpc3RlbmVyKCdzY3JvbGwnLCB0aGlzLiNzY3JvbGxDaGFuZ2VMaXN0ZW5lcik7XG4gICAgICAgIH1cbiAgICAgICk7XG4gICAgfSk7XG4gIH1cblxuICAjcmVtb3ZlVmlld3BvcnRMaXN0ZW5lcnMoKTogdm9pZCB7XG4gICAgdGhpcy4jdmlld3BvcnRMaXN0ZW5lcnM/LnVuc3Vic2NyaWJlKCk7XG5cbiAgICB0aGlzLiN6b25lLnJ1bk91dHNpZGVBbmd1bGFyKCgpID0+IHtcbiAgICAgIFt3aW5kb3csIHdpbmRvdy52aXN1YWxWaWV3cG9ydCwgLi4udGhpcy4jb3ZlcmZsb3dQYXJlbnRzXS5mb3JFYWNoKFxuICAgICAgICAocGFyZW50RWxlbWVudCkgPT4ge1xuICAgICAgICAgIHBhcmVudEVsZW1lbnQ/LnJlbW92ZUV2ZW50TGlzdGVuZXIoXG4gICAgICAgICAgICAnc2Nyb2xsJyxcbiAgICAgICAgICAgIHRoaXMuI3Njcm9sbENoYW5nZUxpc3RlbmVyXG4gICAgICAgICAgKTtcbiAgICAgICAgfVxuICAgICAgKTtcbiAgICB9KTtcbiAgfVxufVxuIl19
|
package/esm2022/version.mjs
CHANGED
@@ -15,5 +15,5 @@ export class Version {
|
|
15
15
|
/**
|
16
16
|
* Represents the version of @skyux/core.
|
17
17
|
*/
|
18
|
-
export const VERSION = new Version('9.
|
18
|
+
export const VERSION = new Version('9.13.0');
|
19
19
|
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmVyc2lvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL2xpYnMvY29tcG9uZW50cy9jb3JlL3NyYy92ZXJzaW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLHdDQUF3QztBQUN4QyxtRkFBbUY7QUFFbkY7OztHQUdHO0FBQ0gsTUFBTSxPQUFPLE9BQU87SUFLbEIsWUFBNEIsSUFBWTtRQUFaLFNBQUksR0FBSixJQUFJLENBQVE7UUFDdEMsSUFBSSxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ2hDLElBQUksQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUNoQyxJQUFJLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUNsRCxDQUFDO0NBQ0Y7QUFFRDs7R0FFRztBQUNILE1BQU0sQ0FBQyxNQUFNLE9BQU8sR0FBRyxJQUFJLE9BQU8sQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLy8gVGFrZW4gZnJvbSBBbmd1bGFyJ3MgdmVyc2lvbi50cyBmaWxlLlxuLy8gU2VlOiBodHRwczovL2dpdGh1Yi5jb20vYW5ndWxhci9hbmd1bGFyL2Jsb2IvMTYuMi54L3BhY2thZ2VzL2NvcmUvc3JjL3ZlcnNpb24udHNcblxuLyoqXG4gKiBSZXByZXNlbnRzIHRoZSB2ZXJzaW9uIG9mIGEgcGFja2FnZS5cbiAqIEBpbnRlcm5hbFxuICovXG5leHBvcnQgY2xhc3MgVmVyc2lvbiB7XG4gIHB1YmxpYyByZWFkb25seSBtYWpvcjogc3RyaW5nO1xuICBwdWJsaWMgcmVhZG9ubHkgbWlub3I6IHN0cmluZztcbiAgcHVibGljIHJlYWRvbmx5IHBhdGNoOiBzdHJpbmc7XG5cbiAgY29uc3RydWN0b3IocHVibGljIHJlYWRvbmx5IGZ1bGw6IHN0cmluZykge1xuICAgIHRoaXMubWFqb3IgPSBmdWxsLnNwbGl0KCcuJylbMF07XG4gICAgdGhpcy5taW5vciA9IGZ1bGwuc3BsaXQoJy4nKVsxXTtcbiAgICB0aGlzLnBhdGNoID0gZnVsbC5zcGxpdCgnLicpLnNsaWNlKDIpLmpvaW4oJy4nKTtcbiAgfVxufVxuXG4vKipcbiAqIFJlcHJlc2VudHMgdGhlIHZlcnNpb24gb2YgQHNreXV4L2NvcmUuXG4gKi9cbmV4cG9ydCBjb25zdCBWRVJTSU9OID0gbmV3IFZlcnNpb24oJzAuMC4wLVBMQUNFSE9MREVSJyk7XG4iXX0=
|
package/fesm2022/skyux-core.mjs
CHANGED
@@ -546,7 +546,9 @@ class SkyAffixer {
|
|
546
546
|
}
|
547
547
|
}
|
548
548
|
#getOffsetParentRect() {
|
549
|
-
if
|
549
|
+
// Firefox sets the offsetParent to document.body if the element uses fixed positioning.
|
550
|
+
if (this.#config.position === 'absolute' &&
|
551
|
+
this.#affixedElement.offsetParent) {
|
550
552
|
return getOuterRect(this.#affixedElement.offsetParent);
|
551
553
|
}
|
552
554
|
else {
|
@@ -4085,7 +4087,7 @@ class Version {
|
|
4085
4087
|
/**
|
4086
4088
|
* Represents the version of @skyux/core.
|
4087
4089
|
*/
|
4088
|
-
const VERSION = new Version('9.
|
4090
|
+
const VERSION = new Version('9.13.0');
|
4089
4091
|
|
4090
4092
|
/**
|
4091
4093
|
* Generated bundle index. Do not edit.
|