@fundamental-ngx/platform 0.46.2-rc.6 → 0.46.2-rc.7

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.
@@ -78,7 +78,8 @@ export var MatchingStrategy;
78
78
  export const DATA_PROVIDERS = new InjectionToken('DataProviderRegistry');
79
79
  /** Matching Strategy: StartsWithPerTerm - Reqexp */
80
80
  export function getMatchingStrategyStartsWithPerTermReqexp(value) {
81
- return new RegExp(`(\\s|^)(${value})`, 'gi');
81
+ // We need to escape all special characters in order not to break the regular expression.
82
+ return new RegExp(`(\\s|^)(${value.replace(/[.*+?^${}()|[\]\\]/g, '\\$&')})`, 'gi');
82
83
  }
83
84
  /** @hidden */
84
85
  export function isDataSource(value) {
@@ -246,4 +247,4 @@ export class ApprovalFlowTeamDataSource extends ComboBoxDataSource {
246
247
  this.dataProvider = dataProvider;
247
248
  }
248
249
  }
249
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YS1zb3VyY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL3BsYXRmb3JtL3NyYy9saWIvc2hhcmVkL2RvbWFpbi9kYXRhLXNvdXJjZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxzREFBc0Q7QUFDdEQ7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQWtFRztBQUNILE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDL0MsT0FBTyxFQUFFLGVBQWUsRUFBYyxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDNUQsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRTNDLE1BQU0sQ0FBTixJQUFZLGdCQUlYO0FBSkQsV0FBWSxnQkFBZ0I7SUFDeEIsaUVBQTZDLENBQUE7SUFDN0MsK0NBQTJCLENBQUE7SUFDM0IseUNBQXFCLENBQUE7QUFDekIsQ0FBQyxFQUpXLGdCQUFnQixLQUFoQixnQkFBZ0IsUUFJM0I7QUFFRCxNQUFNLENBQUMsTUFBTSxjQUFjLEdBQUcsSUFBSSxjQUFjLENBQWlDLHNCQUFzQixDQUFDLENBQUM7QUFpQnpHLG9EQUFvRDtBQUNwRCxNQUFNLFVBQVUsMENBQTBDLENBQUMsS0FBYTtJQUNwRSxPQUFPLElBQUksTUFBTSxDQUFDLFdBQVcsS0FBSyxHQUFHLEVBQUUsSUFBSSxDQUFDLENBQUM7QUFDakQsQ0FBQztBQUVELGNBQWM7QUFDZCxNQUFNLFVBQVUsWUFBWSxDQUFVLEtBQVU7SUFDNUMsT0FBTyxLQUFLLElBQUksT0FBTyxLQUFLLENBQUMsSUFBSSxLQUFLLFVBQVUsQ0FBQztBQUNyRCxDQUFDO0FBR0Q7Ozs7R0FJRztBQUNILE1BQU0sT0FBZ0IsWUFBWTtJQUFsQztRQUlJLGNBQWM7UUFDSixzQkFBaUIsR0FBcUIsZ0JBQWdCLENBQUMsV0FBVyxDQUFD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QW1CO0lBRWxELENBQUM7Q0FDSjtBQUVELE1BQU0sT0FBTyxxQkFBeUIsU0FBUSxrQkFBcUI7SUFDL0QsY0FBYztJQUNkLFlBQW1CLFlBQStCO1FBQzlDLEtBQUssQ0FBQyxZQUFZLENBQUMsQ0FBQztRQURMLGlCQUFZLEdBQVosWUFBWSxDQUFtQjtJQUVsRCxDQUFDO0NBQ0o7QUFFRCxNQUFNLE9BQU8sY0FBa0IsU0FBUSxrQkFBcUI7SUFHeEQsY0FBYztJQUNkLFlBQW1CLFlBQStCO1FBQzlDLEtBQUssQ0FBQyxZQUFZLENBQUMsQ0FBQztRQURMLGlCQUFZLEdBQVosWUFBWSxDQUFtQjtRQUhsRCxjQUFjO1FBQ2QsY0FBUyxHQUFHLElBQUksQ0FBQztJQUlqQixDQUFDO0NBQ0o7QUFFRCxNQUFNLE9BQU8sb0JBQXdCLFNBQVEsa0JBQXFCO0lBQzlELGNBQWM7SUFDZCxZQUFtQixZQUErQjtRQUM5QyxLQUFLLENBQUMsWUFBWSxDQUFDLENBQUM7UUFETCxpQkFBWSxHQUFaLFlBQVksQ0FBbUI7SUFFbEQsQ0FBQztDQUNKO0FBRUQsTUFBTSxPQUFPLDBCQUE4QixTQUFRLGtCQUFxQjtJQUNwRSxjQUFjO0lBQ2QsWUFBbUIsWUFBNkI7UUFDNUMsS0FBSyxDQUFDLFlBQVksQ0FBQyxDQUFDO1FBREwsaUJBQVksR0FBWixZQUFZLENBQWlCO0lBRWhELENBQUM7Q0FDSjtBQUVELE1BQU0sT0FBTywwQkFBOEIsU0FBUSxrQkFBcUI7SUFDcEUsY0FBYztJQUNkLFlBQW1CLFlBQTZCO1FBQzVDLEtBQUssQ0FBQyxZQUFZLENBQUMsQ0FBQztRQURMLGlCQUFZLEdBQVosWUFBWSxDQUFpQjtJQUVoRCxDQUFDO0NBQ0oiLCJzb3VyY2VzQ29udGVudCI6WyIvKiBlc2xpbnQtZGlzYWJsZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tdW51c2VkLXZhcnMgKi9cbi8qKlxuICpcbiAqIFdoZW4gd29ya2luZyB3aXRoIGxhcmdlIHNldCBvZiBkYXRhIHVzaW5nIGNvbXBvbmVudHMgc3VjaCBhczpcbiAqICAtIERhdGF0YWJsZXNcbiAqICAtIElucHV0U2VhcmNoXG4gKiAgLSBDb21ib0JveCAoQXV0b2NvbXBsZXRlKVxuICogIC0gVHJlZVxuICogIC0gTGlzdFxuICogIC0gZXRjLi5cbiAqICBhbmQgZm9yIHRoZXNlIHdlIG5lZWQgdG8gdW5pZnkgdGhlIHdheSB3ZSBhY2Nlc3MgYSBkYXRhLiBDdXJyZW50bHkgd2UgbGVhdmUgbW9zdCBvZiB0aGUgY29tcGxleFxuICogIGRhdGEgYWNjZXNzIG9yIGRhdGEgbWFuaXB1bGF0aW9uIG9uIGFwcGxpY2F0aW9uIGRldmVsb3BlciB3aGljaCBsZWFkcyB0byBkaWZmZXJlbnRcbiAqICBpbXBsZW1lbnRhdGlvbiBhcHByb2FjaGVzIGFuZCBhbGxvdCBvZiBjb2RlIGR1cGxpY2F0aW9uLlxuICpcbiAqICBJdCBpcyBjb21tb24gcHJhY3RpY2Ugd2hlbiB3b3JraW5nIHdpdGggZGlmZmVyZW50IGRhdGEgaW5wdXQgc291cmNlcyB3ZSB0cnkgdG8gYXBwbHkgc29tZVxuICogIERlc2lnbiBwYXR0ZXJucyBlLmcuIEFkYXB0ZXIgUGF0dGVybiB0aGF0IHByb3ZpZGVzIHVzIHdpdGggZ3VpZGVsaW5lcyBob3cgZGlmZmVyZW50IGludGVyZmFjZXNcbiAqICBjYW4gdGFsayB0byBlYWNoIG90aGVyIGFuZCBmcm9tIGhlcmUgd2UgY2FuIGRlcml2ZSBhbm90aGVyIHBhdHRlcm4gc28gY2FsbGVkIERhdGFzb3VyY2UgcGF0dGVyblxuICogIHdoaWNoIGlzIGhpZ2gtbGV2ZWwgYXJjaGl0ZWN0dXJhbCBwYXR0ZXJuIHRvIGFic3RyYWN0IGRhdGEgYW5kIGludGVybmFsIHJlc291cmNlc1xuICogIGFjY2VzcyAoREIgY2FsbHMsIFJlc3QgY2FsbHMsIGRvbWFpbiBvYmplY3RzKSB3aXRoIGEgbWluaW5hbCBhbW91bnQgYSBjb2RlLlxuICpcbiAqIFdoYXQgd2Ugd2FudCB0byBhY2hpZXZlIGlzIHRvIGRlZmluZSBhYnN0cmFjdCBsYXllciB3aGVyZSBlYWNoIHNwZWNpZmljIHJlc291cmNlIHR5cGUgbmVlZHMgdG9cbiAqIGltcGxlbWVudCBhbmQgbW92ZSBhbGwgdGhlIHJlbGF0ZWQgbG9naWMgaW50byByZXVzYWJsZSBEYXRhU291cmNlcy4gKFRhYmxlRGF0YVNvdXJjZSxcbiAqIENvbWJvQm94RGF0YVNvdXJjZSwgLi4uIClcbiAqXG4gKiBPYnNlcnZhYmxlPFRbXT4gaXMgYSByZWFjdGl2ZSBzdHJlYW0sIHRoYXQgY2hhbmdlcyBpdHMgY29udGVudCBiYXNlZCBvbiB3aGF0IGl0IHB1c2hlZFxuICogaW50byBpdCB1c2luZyAubmV4dCgpLlxuICpcbiAqIEVhY2ggdHlwZSBvZiBkYXRhIGNvbXBvbmVudCBzdWNoIEF1dG9jb21wbGV0ZSwgRGF0YVRhYmxlLCBMaXN0LC4uIG5lZWRzIHRvIHByb3ZpZGUgaXRzIG93blxuICogc3BlY2lmaWMgaW1wbGVtZW50YXRpb24gdG8gaGFuZGxlIHNwZWNpZmljIHVzZS1jYXNlLlxuICpcbiAqIGBgYFxuICogIGV4cG9ydCBhYnN0cmFjdCBjbGFzcyBEYXRhVGFibGVEYXRhU291cmNlPFQ+IGltcGxlbWVudHMgRGF0YVNvdXJjZTxUPiB7XG4gKiAgICBkYXRhOiBUW107XG4gKiAgICBmaWx0ZXJUZXJtOiBzdHJpbmc7XG4gKiAgICBwYWdpbmF0b3I6IFBhZ2luYXRvciB8IG51bGxcbiAqXG4gKiAgICBmaWx0ZXJQcmVkaWNhdGU6ICgoZGF0YTogVCwgZmlsdGVyOiBzdHJpbmcpID0+IGJvb2xlYW47XG4gKlxuICogICAgc29ydERhdGE6ICgoZGF0YTogVFtdLCBzb3J0OiBTb3J0KSA9PiBUW10pO1xuICpcbiAqICAgIC8vXG4gKiAgICBjcmVhdGUgKHQ6IFQpOiBUO1xuICogICAgdXBkYXRlICh0OiBUKTogVDtcbiAqICAgIHJlbW92ZSAodDogVCk6IFQ7XG4gKlxuICogIH1cbiAqIGBgYFxuICpcbiAqIEFmdGVyIHdlIGRlZmluZSBhIGZvcm1hdCB3ZSBjYW4gc3RhcnQgY3JlYXRpbmcgY29uY3JldGUgaW1wbGVtZW50YXRpb25zIGJhc2VkIG9uIHRoZSB1c2FnZSBvclxuICogcmVzb3VyY2UgLmUuZzpcbiAqXG4gKlxuICogYGBgXG4gKiBleHBvcnQgYWJzdHJhY3QgY2xhc3MgUmVzdEF1dG9Db21wbGV0ZURhdGFTb3VyY2U8VD4gZXh0ZW5kIERhdGFDaG9vc2VyRGF0YVNvdXJjZSA8VD4ge1xuICogICAvLyBXZSBjYW4gdXNlIGEgcmVnaXN0cnkgdGhhdCBpcyBhYmxlIHRvIG1hcCBhIEVudGl0eSBUeXBlID0gRW5kcG9pbnRcbiAqICAgLy8gaGF2ZSBpZGVudGljYWwgd2F5IGhvdyB0byBmZXRjaCAsIHNlYXJjaCAsLi4uXG4gKiB9XG4gKiBgYGBcbiAqXG4gKiBQcm9iYWJseSB3aGVuIHdvcmtpbmcgd2l0aCBkYXRhIG9ubHkgbG9jYWxseSwgaXQgY2FuIGJlOlxuICpcbiAqIGBgYFxuICogZXhwb3J0IGFic3RyYWN0IGNsYXNzIExvY2FsQXJyYXlBdXRvQ29tcGxldGVEYXRhU291cmNlPFQ+IGV4dGVuZCBEYXRhQ2hvb3NlckRhdGFTb3VyY2UgPFQ+IHtcbiAqIH1cbiAqIGBgYFxuICpcbiAqXG4gKi9cbmltcG9ydCB7IEluamVjdGlvblRva2VuIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QsIE9ic2VydmFibGUsIFN1YmplY3QgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IHRha2VVbnRpbCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcblxuZXhwb3J0IGVudW0gTWF0Y2hpbmdTdHJhdGVneSB7XG4gICAgU1RBUlRTX1dJVEhfUEVSX1RFUk0gPSAnc3RhcnRzIHdpdGggcGVyIHRlcm0nLFxuICAgIFNUQVJUU19XSVRIID0gJ3N0YXJ0cyB3aXRoJyxcbiAgICBDT05UQUlOUyA9ICdjb250YWlucydcbn1cblxuZXhwb3J0IGNvbnN0IERBVEFfUFJPVklERVJTID0gbmV3IEluamVjdGlvblRva2VuPE1hcDxzdHJpbmcsIERhdGFQcm92aWRlcjxhbnk+Pj4oJ0RhdGFQcm92aWRlclJlZ2lzdHJ5Jyk7XG5cbmV4cG9ydCBpbnRlcmZhY2UgRGF0YVNvdXJjZTxULCBQID0gVFtdLCBMID0gYm9vbGVhbj4ge1xuICAgIG9wZW4oKTogT2JzZXJ2YWJsZTxQPjtcbiAgICBjbG9zZSgpOiB2b2lkO1xuICAgIGlzRGF0YUxvYWRpbmc6IEw7XG4gICAgb25EYXRhUmVxdWVzdGVkKCk6IE9ic2VydmFibGU8dm9pZD47XG4gICAgb25EYXRhUmVjZWl2ZWQoKTogT2JzZXJ2YWJsZTx2b2lkPjtcbn1cblxuZXhwb3J0IHR5cGUgTWF0Y2hCeSA9IChpdGVtOiBhbnkpID0+IGFueTtcblxuZXhwb3J0IGludGVyZmFjZSBNYXRjaGluZ0J5IHtcbiAgICBmaXJzdEJ5OiBNYXRjaEJ5O1xuICAgIHNlY29uZGFyeUJ5PzogTWF0Y2hCeTtcbn1cblxuLyoqIE1hdGNoaW5nIFN0cmF0ZWd5OiBTdGFydHNXaXRoUGVyVGVybSAtIFJlcWV4cCAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldE1hdGNoaW5nU3RyYXRlZ3lTdGFydHNXaXRoUGVyVGVybVJlcWV4cCh2YWx1ZTogc3RyaW5nKTogUmVnRXhwIHtcbiAgICByZXR1cm4gbmV3IFJlZ0V4cChgKFxcXFxzfF4pKCR7dmFsdWV9KWAsICdnaScpO1xufVxuXG4vKiogQGhpZGRlbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGlzRGF0YVNvdXJjZTxUID0gYW55Pih2YWx1ZTogYW55KTogdmFsdWUgaXMgRGF0YVNvdXJjZTxUPiB7XG4gICAgcmV0dXJuIHZhbHVlICYmIHR5cGVvZiB2YWx1ZS5vcGVuID09PSAnZnVuY3Rpb24nO1xufVxuXG5leHBvcnQgdHlwZSBQcm92aWRlclBhcmFtcyA9IFJlYWRvbmx5TWFwPHN0cmluZywgYW55Pjtcbi8qKlxuICogUHJvdmlkZXIgaXMgYSBkYXRhIGRyaXZlciB0aGF0IGNhbiBhY2Nlc3MgZGF0YSBhbmQgcmV0cmlldmUgdGhlbS4gSXQga25vd3MgaG93IHRvIGdldCAxXG4gKiBvciBtb3JlIHJlY29yZHMsIG1heWJlIGRvIHBhZ2luZyBhbmQgc29tZSBvdGhlciB0aGluZ3MuXG4gKlxuICovXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgRGF0YVByb3ZpZGVyPFQ+IHtcbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByb3RlY3RlZCBfa2V5UGF0aDogc3RyaW5nO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcm90ZWN0ZWQgX21hdGNoaW5nU3RyYXRlZ3k6IE1hdGNoaW5nU3RyYXRlZ3kgPSBNYXRjaGluZ1N0cmF0ZWd5LlNUQVJUU19XSVRIO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcm90ZWN0ZWQgX21hdGNoaW5nQnk6IE1hdGNoaW5nQnkgfCBudWxsID0gbnVsbDtcblxuICAgIGFic3RyYWN0IGZldGNoKHBhcmFtczogUHJvdmlkZXJQYXJhbXMsIHN0YXJ0PzogbnVtYmVyLCBlbmQ/OiBudW1iZXIpOiBPYnNlcnZhYmxlPFRbXT47XG5cbiAgICAvKipcbiAgICAgKiBUZWxscyBpZiB0aGlzIERhdGFQcm92aWRlciBzdXBwb3J0cyBJTlNFUlQsIFJFTU9WRVxuICAgICAqXG4gICAgICovXG4gICAgY2FuQ1JVRCgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cblxuICAgIC8vIEltcGxlbWVudCB0byBzdXBwb3J0IENSVUQgb3BlcmF0aW9ucy5cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgZ2V0T25lKHBhcmFtczogUHJvdmlkZXJQYXJhbXMpOiBPYnNlcnZhYmxlPFQ+IHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdOb3Qgc3VwcG9ydGVkJyk7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBpbnNlcnQocGF5bG9hZDogYW55LCBwYXJhbXM/OiBQcm92aWRlclBhcmFtcyk6IE9ic2VydmFibGU8VD4ge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ05vdCBzdXBwb3J0ZWQnKTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHJlbW92ZShwYXJhbXM6IFByb3ZpZGVyUGFyYW1zKTogT2JzZXJ2YWJsZTxib29sZWFuPiB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcignTm90IHN1cHBvcnRlZCcpO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgdXBkYXRlKHBheWxvYWQ6IGFueSwgcGFyYW1zPzogUHJvdmlkZXJQYXJhbXMpOiBPYnNlcnZhYmxlPFQ+IHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdOb3Qgc3VwcG9ydGVkJyk7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBzZXRMb29rdXBLZXkoa2V5OiBzdHJpbmcpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fa2V5UGF0aCA9IGtleTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHNldE1hdGNoaW5nQnkobWF0Y2hpbmdCeTogTWF0Y2hpbmdCeSk6IHZvaWQge1xuICAgICAgICB0aGlzLl9tYXRjaGluZ0J5ID0gbWF0Y2hpbmdCeTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHNldE1hdGNoaW5nU3RyYXRlZ3koc3RyYXRlZ3k6IE1hdGNoaW5nU3RyYXRlZ3kpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fbWF0Y2hpbmdTdHJhdGVneSA9IHN0cmF0ZWd5O1xuICAgIH1cbn1cblxuZXhwb3J0IGNsYXNzIENvbWJvQm94RGF0YVNvdXJjZTxUPiBpbXBsZW1lbnRzIERhdGFTb3VyY2U8VD4ge1xuICAgIC8qKiBAaGlkZGVuICovXG4gICAgc3RhdGljIHJlYWRvbmx5IE1heExpbWl0ID0gNTtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgbGltaXRsZXNzID0gZmFsc2U7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByb3RlY3RlZCByZWFkb25seSBfZGF0YUNoYW5nZXM6IEJlaGF2aW9yU3ViamVjdDxUW10+ID0gbmV3IEJlaGF2aW9yU3ViamVjdDxUW10+KFtdKTtcbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByb3RlY3RlZCByZWFkb25seSBfb25EYXRhUmVxdWVzdGVkJCA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcm90ZWN0ZWQgcmVhZG9ubHkgX29uRGF0YVJlY2VpdmVkJCA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcm90ZWN0ZWQgcmVhZG9ubHkgX29uRGVzdHJveSQgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJvdGVjdGVkIF9kYXRhTG9hZGluZyA9IGZhbHNlO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBnZXQgaXNEYXRhTG9hZGluZygpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2RhdGFMb2FkaW5nO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgY29uc3RydWN0b3IocHVibGljIGRhdGFQcm92aWRlcjogRGF0YVByb3ZpZGVyPGFueT4pIHt9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIG1hdGNoKHByZWRpY2F0ZTogc3RyaW5nIHwgTWFwPHN0cmluZywgc3RyaW5nPiA9IG5ldyBNYXA8c3RyaW5nLCBzdHJpbmc+KCksIHN0YXJ0ID0gMCwgZW5kID0gSW5maW5pdHkpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fb25EYXRhUmVxdWVzdGVkJC5uZXh0KCk7XG4gICAgICAgIHRoaXMuX2RhdGFMb2FkaW5nID0gdHJ1ZTtcbiAgICAgICAgY29uc3Qgc2VhcmNoUGFyYW0gPSBuZXcgTWFwKCk7XG5cbiAgICAgICAgaWYgKHR5cGVvZiBwcmVkaWNhdGUgPT09ICdzdHJpbmcnKSB7XG4gICAgICAgICAgICBzZWFyY2hQYXJhbS5zZXQoJ3F1ZXJ5JywgcHJlZGljYXRlKTtcbiAgICAgICAgfSBlbHNlIGlmIChwcmVkaWNhdGUgaW5zdGFuY2VvZiBNYXApIHtcbiAgICAgICAgICAgIHByZWRpY2F0ZS5mb3JFYWNoKCh2LCBrKSA9PiBzZWFyY2hQYXJhbS5zZXQoaywgdikpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdEYXRhU291cmNlLm1hdGNoKCkgcHJlZGljYXRlIGNhbiBvbmx5IGFjY2VwdHMgc3RyaW5nIGFuZCBNYXAnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICghc2VhcmNoUGFyYW0uaGFzKCdsaW1pdCcpICYmICF0aGlzLmxpbWl0bGVzcykge1xuICAgICAgICAgICAgc2VhcmNoUGFyYW0uc2V0KCdsaW1pdCcsIENvbWJvQm94RGF0YVNvdXJjZS5NYXhMaW1pdCk7XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLmRhdGFQcm92aWRlclxuICAgICAgICAgICAgLmZldGNoKHNlYXJjaFBhcmFtLCBzdGFydCwgZW5kKVxuICAgICAgICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMuX29uRGVzdHJveSQpKVxuICAgICAgICAgICAgLnN1YnNjcmliZShcbiAgICAgICAgICAgICAgICAocmVzdWx0OiBUW10pID0+IHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5fb25EYXRhUmVjZWl2ZWQkLm5leHQoKTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5fZGF0YUxvYWRpbmcgPSBmYWxzZTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5fZGF0YUNoYW5nZXMubmV4dChyZXN1bHQpO1xuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLl9vbkRhdGFSZWNlaXZlZCQubmV4dCgpO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLl9kYXRhTG9hZGluZyA9IGZhbHNlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICk7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBvcGVuKCk6IE9ic2VydmFibGU8VFtdPiB7XG4gICAgICAgIHJldHVybiB0aGlzLl9kYXRhQ2hhbmdlcy5waXBlKHRha2VVbnRpbCh0aGlzLl9vbkRlc3Ryb3kkKSk7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBjbG9zZSgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fb25EZXN0cm95JC5uZXh0KCk7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBvbkRhdGFSZXF1ZXN0ZWQoKTogT2JzZXJ2YWJsZTx2b2lkPiB7XG4gICAgICAgIHJldHVybiB0aGlzLl9vbkRhdGFSZXF1ZXN0ZWQkLmFzT2JzZXJ2YWJsZSgpO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgb25EYXRhUmVjZWl2ZWQoKTogT2JzZXJ2YWJsZTx2b2lkPiB7XG4gICAgICAgIHJldHVybiB0aGlzLl9vbkRhdGFSZWNlaXZlZCQuYXNPYnNlcnZhYmxlKCk7XG4gICAgfVxufVxuXG5leHBvcnQgY2xhc3MgTXVsdGlDb21ib0JveERhdGFTb3VyY2U8VD4gZXh0ZW5kcyBDb21ib0JveERhdGFTb3VyY2U8VD4ge1xuICAgIC8qKiBAaGlkZGVuICovXG4gICAgY29uc3RydWN0b3IocHVibGljIGRhdGFQcm92aWRlcjogRGF0YVByb3ZpZGVyPGFueT4pIHtcbiAgICAgICAgc3VwZXIoZGF0YVByb3ZpZGVyKTtcbiAgICB9XG59XG5cbmV4cG9ydCBjbGFzcyBTZWFyY2hGaWVsZERhdGFTb3VyY2U8VD4gZXh0ZW5kcyBDb21ib0JveERhdGFTb3VyY2U8VD4ge1xuICAgIC8qKiBAaGlkZGVuICovXG4gICAgY29uc3RydWN0b3IocHVibGljIGRhdGFQcm92aWRlcjogRGF0YVByb3ZpZGVyPGFueT4pIHtcbiAgICAgICAgc3VwZXIoZGF0YVByb3ZpZGVyKTtcbiAgICB9XG59XG5cbmV4cG9ydCBjbGFzcyBMaXN0RGF0YVNvdXJjZTxUPiBleHRlbmRzIENvbWJvQm94RGF0YVNvdXJjZTxUPiB7XG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBsaW1pdGxlc3MgPSB0cnVlO1xuICAgIC8qKiBAaGlkZGVuICovXG4gICAgY29uc3RydWN0b3IocHVibGljIGRhdGFQcm92aWRlcjogRGF0YVByb3ZpZGVyPGFueT4pIHtcbiAgICAgICAgc3VwZXIoZGF0YVByb3ZpZGVyKTtcbiAgICB9XG59XG5cbmV4cG9ydCBjbGFzcyBNdWx0aUlucHV0RGF0YVNvdXJjZTxUPiBleHRlbmRzIENvbWJvQm94RGF0YVNvdXJjZTxUPiB7XG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBjb25zdHJ1Y3RvcihwdWJsaWMgZGF0YVByb3ZpZGVyOiBEYXRhUHJvdmlkZXI8YW55Pikge1xuICAgICAgICBzdXBlcihkYXRhUHJvdmlkZXIpO1xuICAgIH1cbn1cblxuZXhwb3J0IGNsYXNzIEFwcHJvdmFsRmxvd1VzZXJEYXRhU291cmNlPFQ+IGV4dGVuZHMgQ29tYm9Cb3hEYXRhU291cmNlPFQ+IHtcbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIGNvbnN0cnVjdG9yKHB1YmxpYyBkYXRhUHJvdmlkZXI6IERhdGFQcm92aWRlcjxUPikge1xuICAgICAgICBzdXBlcihkYXRhUHJvdmlkZXIpO1xuICAgIH1cbn1cblxuZXhwb3J0IGNsYXNzIEFwcHJvdmFsRmxvd1RlYW1EYXRhU291cmNlPFQ+IGV4dGVuZHMgQ29tYm9Cb3hEYXRhU291cmNlPFQ+IHtcbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIGNvbnN0cnVjdG9yKHB1YmxpYyBkYXRhUHJvdmlkZXI6IERhdGFQcm92aWRlcjxUPikge1xuICAgICAgICBzdXBlcihkYXRhUHJvdmlkZXIpO1xuICAgIH1cbn1cbiJdfQ==
250
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YS1zb3VyY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL3BsYXRmb3JtL3NyYy9saWIvc2hhcmVkL2RvbWFpbi9kYXRhLXNvdXJjZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxzREFBc0Q7QUFDdEQ7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQWtFRztBQUNILE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDL0MsT0FBTyxFQUFFLGVBQWUsRUFBYyxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDNUQsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRTNDLE1BQU0sQ0FBTixJQUFZLGdCQUlYO0FBSkQsV0FBWSxnQkFBZ0I7SUFDeEIsaUVBQTZDLENBQUE7SUFDN0MsK0NBQTJCLENBQUE7SUFDM0IseUNBQXFCLENBQUE7QUFDekIsQ0FBQyxFQUpXLGdCQUFnQixLQUFoQixnQkFBZ0IsUUFJM0I7QUFFRCxNQUFNLENBQUMsTUFBTSxjQUFjLEdBQUcsSUFBSSxjQUFjLENBQWlDLHNCQUFzQixDQUFDLENBQUM7QUFpQnpHLG9EQUFvRDtBQUNwRCxNQUFNLFVBQVUsMENBQTBDLENBQUMsS0FBYTtJQUNwRSx5RkFBeUY7SUFDekYsT0FBTyxJQUFJLE1BQU0sQ0FBQyxXQUFXLEtBQUssQ0FBQyxPQUFPLENBQUMscUJBQXFCLEVBQUUsTUFBTSxDQUFDLEdBQUcsRUFBRSxJQUFJLENBQUMsQ0FBQztBQUN4RixDQUFDO0FBRUQsY0FBYztBQUNkLE1BQU0sVUFBVSxZQUFZLENBQVUsS0FBVTtJQUM1QyxPQUFPLEtBQUssSUFBSSxPQUFPLEtBQUssQ0FBQyxJQUFJLEtBQUssVUFBVSxDQUFDO0FBQ3JELENBQUM7QUFHRDs7OztHQUlHO0FBQ0gsTUFBTSxPQUFnQixZQUFZO0lBQWxD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QyxLQUFLLENBQUMsWUFBWSxDQUFDLENBQUM7UUFETCxpQkFBWSxHQUFaLFlBQVksQ0FBbUI7SUFFbEQsQ0FBQztDQUNKO0FBRUQsTUFBTSxPQUFPLHFCQUF5QixTQUFRLGtCQUFxQjtJQUMvRCxjQUFjO0lBQ2QsWUFBbUIsWUFBK0I7UUFDOUMsS0FBSyxDQUFDLFlBQVksQ0FBQyxDQUFDO1FBREwsaUJBQVksR0FBWixZQUFZLENBQW1CO0lBRWxELENBQUM7Q0FDSjtBQUVELE1BQU0sT0FBTyxjQUFrQixTQUFRLGtCQUFxQjtJQUd4RCxjQUFjO0lBQ2QsWUFBbUIsWUFBK0I7UUFDOUMsS0FBSyxDQUFDLFlBQVksQ0FBQyxDQUFDO1FBREwsaUJBQVksR0FBWixZQUFZLENBQW1CO1FBSGxELGNBQWM7UUFDZCxjQUFTLEdBQUcsSUFBSSxDQUFDO0lBSWpCLENBQUM7Q0FDSjtBQUVELE1BQU0sT0FBTyxvQkFBd0IsU0FBUSxrQkFBcUI7SUFDOUQsY0FBYztJQUNkLFlBQW1CLFlBQStCO1FBQzlDLEtBQUssQ0FBQyxZQUFZLENBQUMsQ0FBQztRQURMLGlCQUFZLEdBQVosWUFBWSxDQUFtQjtJQUVsRCxDQUFDO0NBQ0o7QUFFRCxNQUFNLE9BQU8sMEJBQThCLFNBQVEsa0JBQXFCO0lBQ3BFLGNBQWM7SUFDZCxZQUFtQixZQUE2QjtRQUM1QyxLQUFLLENBQUMsWUFBWSxDQUFDLENBQUM7UUFETCxpQkFBWSxHQUFaLFlBQVksQ0FBaUI7SUFFaEQsQ0FBQztDQUNKO0FBRUQsTUFBTSxPQUFPLDBCQUE4QixTQUFRLGtCQUFxQjtJQUNwRSxjQUFjO0lBQ2QsWUFBbUIsWUFBNkI7UUFDNUMsS0FBSyxDQUFDLFlBQVksQ0FBQyxDQUFDO1FBREwsaUJBQVksR0FBWixZQUFZLENBQWlCO0lBRWhELENBQUM7Q0FDSiIsInNvdXJjZXNDb250ZW50IjpbIi8qIGVzbGludC1kaXNhYmxlIEB0eXBlc2NyaXB0LWVzbGludC9uby11bnVzZWQtdmFycyAqL1xuLyoqXG4gKlxuICogV2hlbiB3b3JraW5nIHdpdGggbGFyZ2Ugc2V0IG9mIGRhdGEgdXNpbmcgY29tcG9uZW50cyBzdWNoIGFzOlxuICogIC0gRGF0YXRhYmxlc1xuICogIC0gSW5wdXRTZWFyY2hcbiAqICAtIENvbWJvQm94IChBdXRvY29tcGxldGUpXG4gKiAgLSBUcmVlXG4gKiAgLSBMaXN0XG4gKiAgLSBldGMuLlxuICogIGFuZCBmb3IgdGhlc2Ugd2UgbmVlZCB0byB1bmlmeSB0aGUgd2F5IHdlIGFjY2VzcyBhIGRhdGEuIEN1cnJlbnRseSB3ZSBsZWF2ZSBtb3N0IG9mIHRoZSBjb21wbGV4XG4gKiAgZGF0YSBhY2Nlc3Mgb3IgZGF0YSBtYW5pcHVsYXRpb24gb24gYXBwbGljYXRpb24gZGV2ZWxvcGVyIHdoaWNoIGxlYWRzIHRvIGRpZmZlcmVudFxuICogIGltcGxlbWVudGF0aW9uIGFwcHJvYWNoZXMgYW5kIGFsbG90IG9mIGNvZGUgZHVwbGljYXRpb24uXG4gKlxuICogIEl0IGlzIGNvbW1vbiBwcmFjdGljZSB3aGVuIHdvcmtpbmcgd2l0aCBkaWZmZXJlbnQgZGF0YSBpbnB1dCBzb3VyY2VzIHdlIHRyeSB0byBhcHBseSBzb21lXG4gKiAgRGVzaWduIHBhdHRlcm5zIGUuZy4gQWRhcHRlciBQYXR0ZXJuIHRoYXQgcHJvdmlkZXMgdXMgd2l0aCBndWlkZWxpbmVzIGhvdyBkaWZmZXJlbnQgaW50ZXJmYWNlc1xuICogIGNhbiB0YWxrIHRvIGVhY2ggb3RoZXIgYW5kIGZyb20gaGVyZSB3ZSBjYW4gZGVyaXZlIGFub3RoZXIgcGF0dGVybiBzbyBjYWxsZWQgRGF0YXNvdXJjZSBwYXR0ZXJuXG4gKiAgd2hpY2ggaXMgaGlnaC1sZXZlbCBhcmNoaXRlY3R1cmFsIHBhdHRlcm4gdG8gYWJzdHJhY3QgZGF0YSBhbmQgaW50ZXJuYWwgcmVzb3VyY2VzXG4gKiAgYWNjZXNzIChEQiBjYWxscywgUmVzdCBjYWxscywgZG9tYWluIG9iamVjdHMpIHdpdGggYSBtaW5pbmFsIGFtb3VudCBhIGNvZGUuXG4gKlxuICogV2hhdCB3ZSB3YW50IHRvIGFjaGlldmUgaXMgdG8gZGVmaW5lIGFic3RyYWN0IGxheWVyIHdoZXJlIGVhY2ggc3BlY2lmaWMgcmVzb3VyY2UgdHlwZSBuZWVkcyB0b1xuICogaW1wbGVtZW50IGFuZCBtb3ZlIGFsbCB0aGUgcmVsYXRlZCBsb2dpYyBpbnRvIHJldXNhYmxlIERhdGFTb3VyY2VzLiAoVGFibGVEYXRhU291cmNlLFxuICogQ29tYm9Cb3hEYXRhU291cmNlLCAuLi4gKVxuICpcbiAqIE9ic2VydmFibGU8VFtdPiBpcyBhIHJlYWN0aXZlIHN0cmVhbSwgdGhhdCBjaGFuZ2VzIGl0cyBjb250ZW50IGJhc2VkIG9uIHdoYXQgaXQgcHVzaGVkXG4gKiBpbnRvIGl0IHVzaW5nIC5uZXh0KCkuXG4gKlxuICogRWFjaCB0eXBlIG9mIGRhdGEgY29tcG9uZW50IHN1Y2ggQXV0b2NvbXBsZXRlLCBEYXRhVGFibGUsIExpc3QsLi4gbmVlZHMgdG8gcHJvdmlkZSBpdHMgb3duXG4gKiBzcGVjaWZpYyBpbXBsZW1lbnRhdGlvbiB0byBoYW5kbGUgc3BlY2lmaWMgdXNlLWNhc2UuXG4gKlxuICogYGBgXG4gKiAgZXhwb3J0IGFic3RyYWN0IGNsYXNzIERhdGFUYWJsZURhdGFTb3VyY2U8VD4gaW1wbGVtZW50cyBEYXRhU291cmNlPFQ+IHtcbiAqICAgIGRhdGE6IFRbXTtcbiAqICAgIGZpbHRlclRlcm06IHN0cmluZztcbiAqICAgIHBhZ2luYXRvcjogUGFnaW5hdG9yIHwgbnVsbFxuICpcbiAqICAgIGZpbHRlclByZWRpY2F0ZTogKChkYXRhOiBULCBmaWx0ZXI6IHN0cmluZykgPT4gYm9vbGVhbjtcbiAqXG4gKiAgICBzb3J0RGF0YTogKChkYXRhOiBUW10sIHNvcnQ6IFNvcnQpID0+IFRbXSk7XG4gKlxuICogICAgLy9cbiAqICAgIGNyZWF0ZSAodDogVCk6IFQ7XG4gKiAgICB1cGRhdGUgKHQ6IFQpOiBUO1xuICogICAgcmVtb3ZlICh0OiBUKTogVDtcbiAqXG4gKiAgfVxuICogYGBgXG4gKlxuICogQWZ0ZXIgd2UgZGVmaW5lIGEgZm9ybWF0IHdlIGNhbiBzdGFydCBjcmVhdGluZyBjb25jcmV0ZSBpbXBsZW1lbnRhdGlvbnMgYmFzZWQgb24gdGhlIHVzYWdlIG9yXG4gKiByZXNvdXJjZSAuZS5nOlxuICpcbiAqXG4gKiBgYGBcbiAqIGV4cG9ydCBhYnN0cmFjdCBjbGFzcyBSZXN0QXV0b0NvbXBsZXRlRGF0YVNvdXJjZTxUPiBleHRlbmQgRGF0YUNob29zZXJEYXRhU291cmNlIDxUPiB7XG4gKiAgIC8vIFdlIGNhbiB1c2UgYSByZWdpc3RyeSB0aGF0IGlzIGFibGUgdG8gbWFwIGEgRW50aXR5IFR5cGUgPSBFbmRwb2ludFxuICogICAvLyBoYXZlIGlkZW50aWNhbCB3YXkgaG93IHRvIGZldGNoICwgc2VhcmNoICwuLi5cbiAqIH1cbiAqIGBgYFxuICpcbiAqIFByb2JhYmx5IHdoZW4gd29ya2luZyB3aXRoIGRhdGEgb25seSBsb2NhbGx5LCBpdCBjYW4gYmU6XG4gKlxuICogYGBgXG4gKiBleHBvcnQgYWJzdHJhY3QgY2xhc3MgTG9jYWxBcnJheUF1dG9Db21wbGV0ZURhdGFTb3VyY2U8VD4gZXh0ZW5kIERhdGFDaG9vc2VyRGF0YVNvdXJjZSA8VD4ge1xuICogfVxuICogYGBgXG4gKlxuICpcbiAqL1xuaW1wb3J0IHsgSW5qZWN0aW9uVG9rZW4gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCwgT2JzZXJ2YWJsZSwgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgdGFrZVVudGlsIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuXG5leHBvcnQgZW51bSBNYXRjaGluZ1N0cmF0ZWd5IHtcbiAgICBTVEFSVFNfV0lUSF9QRVJfVEVSTSA9ICdzdGFydHMgd2l0aCBwZXIgdGVybScsXG4gICAgU1RBUlRTX1dJVEggPSAnc3RhcnRzIHdpdGgnLFxuICAgIENPTlRBSU5TID0gJ2NvbnRhaW5zJ1xufVxuXG5leHBvcnQgY29uc3QgREFUQV9QUk9WSURFUlMgPSBuZXcgSW5qZWN0aW9uVG9rZW48TWFwPHN0cmluZywgRGF0YVByb3ZpZGVyPGFueT4+PignRGF0YVByb3ZpZGVyUmVnaXN0cnknKTtcblxuZXhwb3J0IGludGVyZmFjZSBEYXRhU291cmNlPFQsIFAgPSBUW10sIEwgPSBib29sZWFuPiB7XG4gICAgb3BlbigpOiBPYnNlcnZhYmxlPFA+O1xuICAgIGNsb3NlKCk6IHZvaWQ7XG4gICAgaXNEYXRhTG9hZGluZzogTDtcbiAgICBvbkRhdGFSZXF1ZXN0ZWQoKTogT2JzZXJ2YWJsZTx2b2lkPjtcbiAgICBvbkRhdGFSZWNlaXZlZCgpOiBPYnNlcnZhYmxlPHZvaWQ+O1xufVxuXG5leHBvcnQgdHlwZSBNYXRjaEJ5ID0gKGl0ZW06IGFueSkgPT4gYW55O1xuXG5leHBvcnQgaW50ZXJmYWNlIE1hdGNoaW5nQnkge1xuICAgIGZpcnN0Qnk6IE1hdGNoQnk7XG4gICAgc2Vjb25kYXJ5Qnk/OiBNYXRjaEJ5O1xufVxuXG4vKiogTWF0Y2hpbmcgU3RyYXRlZ3k6IFN0YXJ0c1dpdGhQZXJUZXJtIC0gUmVxZXhwICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0TWF0Y2hpbmdTdHJhdGVneVN0YXJ0c1dpdGhQZXJUZXJtUmVxZXhwKHZhbHVlOiBzdHJpbmcpOiBSZWdFeHAge1xuICAgIC8vIFdlIG5lZWQgdG8gZXNjYXBlIGFsbCBzcGVjaWFsIGNoYXJhY3RlcnMgaW4gb3JkZXIgbm90IHRvIGJyZWFrIHRoZSByZWd1bGFyIGV4cHJlc3Npb24uXG4gICAgcmV0dXJuIG5ldyBSZWdFeHAoYChcXFxcc3xeKSgke3ZhbHVlLnJlcGxhY2UoL1suKis/XiR7fSgpfFtcXF1cXFxcXS9nLCAnXFxcXCQmJyl9KWAsICdnaScpO1xufVxuXG4vKiogQGhpZGRlbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGlzRGF0YVNvdXJjZTxUID0gYW55Pih2YWx1ZTogYW55KTogdmFsdWUgaXMgRGF0YVNvdXJjZTxUPiB7XG4gICAgcmV0dXJuIHZhbHVlICYmIHR5cGVvZiB2YWx1ZS5vcGVuID09PSAnZnVuY3Rpb24nO1xufVxuXG5leHBvcnQgdHlwZSBQcm92aWRlclBhcmFtcyA9IFJlYWRvbmx5TWFwPHN0cmluZywgYW55Pjtcbi8qKlxuICogUHJvdmlkZXIgaXMgYSBkYXRhIGRyaXZlciB0aGF0IGNhbiBhY2Nlc3MgZGF0YSBhbmQgcmV0cmlldmUgdGhlbS4gSXQga25vd3MgaG93IHRvIGdldCAxXG4gKiBvciBtb3JlIHJlY29yZHMsIG1heWJlIGRvIHBhZ2luZyBhbmQgc29tZSBvdGhlciB0aGluZ3MuXG4gKlxuICovXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgRGF0YVByb3ZpZGVyPFQ+IHtcbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByb3RlY3RlZCBfa2V5UGF0aDogc3RyaW5nO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcm90ZWN0ZWQgX21hdGNoaW5nU3RyYXRlZ3k6IE1hdGNoaW5nU3RyYXRlZ3kgPSBNYXRjaGluZ1N0cmF0ZWd5LlNUQVJUU19XSVRIO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcm90ZWN0ZWQgX21hdGNoaW5nQnk6IE1hdGNoaW5nQnkgfCBudWxsID0gbnVsbDtcblxuICAgIGFic3RyYWN0IGZldGNoKHBhcmFtczogUHJvdmlkZXJQYXJhbXMsIHN0YXJ0PzogbnVtYmVyLCBlbmQ/OiBudW1iZXIpOiBPYnNlcnZhYmxlPFRbXT47XG5cbiAgICAvKipcbiAgICAgKiBUZWxscyBpZiB0aGlzIERhdGFQcm92aWRlciBzdXBwb3J0cyBJTlNFUlQsIFJFTU9WRVxuICAgICAqXG4gICAgICovXG4gICAgY2FuQ1JVRCgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cblxuICAgIC8vIEltcGxlbWVudCB0byBzdXBwb3J0IENSVUQgb3BlcmF0aW9ucy5cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgZ2V0T25lKHBhcmFtczogUHJvdmlkZXJQYXJhbXMpOiBPYnNlcnZhYmxlPFQ+IHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdOb3Qgc3VwcG9ydGVkJyk7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBpbnNlcnQocGF5bG9hZDogYW55LCBwYXJhbXM/OiBQcm92aWRlclBhcmFtcyk6IE9ic2VydmFibGU8VD4ge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ05vdCBzdXBwb3J0ZWQnKTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHJlbW92ZShwYXJhbXM6IFByb3ZpZGVyUGFyYW1zKTogT2JzZXJ2YWJsZTxib29sZWFuPiB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcignTm90IHN1cHBvcnRlZCcpO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgdXBkYXRlKHBheWxvYWQ6IGFueSwgcGFyYW1zPzogUHJvdmlkZXJQYXJhbXMpOiBPYnNlcnZhYmxlPFQ+IHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdOb3Qgc3VwcG9ydGVkJyk7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBzZXRMb29rdXBLZXkoa2V5OiBzdHJpbmcpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fa2V5UGF0aCA9IGtleTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHNldE1hdGNoaW5nQnkobWF0Y2hpbmdCeTogTWF0Y2hpbmdCeSk6IHZvaWQge1xuICAgICAgICB0aGlzLl9tYXRjaGluZ0J5ID0gbWF0Y2hpbmdCeTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHNldE1hdGNoaW5nU3RyYXRlZ3koc3RyYXRlZ3k6IE1hdGNoaW5nU3RyYXRlZ3kpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fbWF0Y2hpbmdTdHJhdGVneSA9IHN0cmF0ZWd5O1xuICAgIH1cbn1cblxuZXhwb3J0IGNsYXNzIENvbWJvQm94RGF0YVNvdXJjZTxUPiBpbXBsZW1lbnRzIERhdGFTb3VyY2U8VD4ge1xuICAgIC8qKiBAaGlkZGVuICovXG4gICAgc3RhdGljIHJlYWRvbmx5IE1heExpbWl0ID0gNTtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgbGltaXRsZXNzID0gZmFsc2U7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByb3RlY3RlZCByZWFkb25seSBfZGF0YUNoYW5nZXM6IEJlaGF2aW9yU3ViamVjdDxUW10+ID0gbmV3IEJlaGF2aW9yU3ViamVjdDxUW10+KFtdKTtcbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByb3RlY3RlZCByZWFkb25seSBfb25EYXRhUmVxdWVzdGVkJCA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcm90ZWN0ZWQgcmVhZG9ubHkgX29uRGF0YVJlY2VpdmVkJCA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcm90ZWN0ZWQgcmVhZG9ubHkgX29uRGVzdHJveSQgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJvdGVjdGVkIF9kYXRhTG9hZGluZyA9IGZhbHNlO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBnZXQgaXNEYXRhTG9hZGluZygpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2RhdGFMb2FkaW5nO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgY29uc3RydWN0b3IocHVibGljIGRhdGFQcm92aWRlcjogRGF0YVByb3ZpZGVyPGFueT4pIHt9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIG1hdGNoKHByZWRpY2F0ZTogc3RyaW5nIHwgTWFwPHN0cmluZywgc3RyaW5nPiA9IG5ldyBNYXA8c3RyaW5nLCBzdHJpbmc+KCksIHN0YXJ0ID0gMCwgZW5kID0gSW5maW5pdHkpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fb25EYXRhUmVxdWVzdGVkJC5uZXh0KCk7XG4gICAgICAgIHRoaXMuX2RhdGFMb2FkaW5nID0gdHJ1ZTtcbiAgICAgICAgY29uc3Qgc2VhcmNoUGFyYW0gPSBuZXcgTWFwKCk7XG5cbiAgICAgICAgaWYgKHR5cGVvZiBwcmVkaWNhdGUgPT09ICdzdHJpbmcnKSB7XG4gICAgICAgICAgICBzZWFyY2hQYXJhbS5zZXQoJ3F1ZXJ5JywgcHJlZGljYXRlKTtcbiAgICAgICAgfSBlbHNlIGlmIChwcmVkaWNhdGUgaW5zdGFuY2VvZiBNYXApIHtcbiAgICAgICAgICAgIHByZWRpY2F0ZS5mb3JFYWNoKCh2LCBrKSA9PiBzZWFyY2hQYXJhbS5zZXQoaywgdikpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdEYXRhU291cmNlLm1hdGNoKCkgcHJlZGljYXRlIGNhbiBvbmx5IGFjY2VwdHMgc3RyaW5nIGFuZCBNYXAnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICghc2VhcmNoUGFyYW0uaGFzKCdsaW1pdCcpICYmICF0aGlzLmxpbWl0bGVzcykge1xuICAgICAgICAgICAgc2VhcmNoUGFyYW0uc2V0KCdsaW1pdCcsIENvbWJvQm94RGF0YVNvdXJjZS5NYXhMaW1pdCk7XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLmRhdGFQcm92aWRlclxuICAgICAgICAgICAgLmZldGNoKHNlYXJjaFBhcmFtLCBzdGFydCwgZW5kKVxuICAgICAgICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMuX29uRGVzdHJveSQpKVxuICAgICAgICAgICAgLnN1YnNjcmliZShcbiAgICAgICAgICAgICAgICAocmVzdWx0OiBUW10pID0+IHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5fb25EYXRhUmVjZWl2ZWQkLm5leHQoKTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5fZGF0YUxvYWRpbmcgPSBmYWxzZTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5fZGF0YUNoYW5nZXMubmV4dChyZXN1bHQpO1xuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLl9vbkRhdGFSZWNlaXZlZCQubmV4dCgpO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLl9kYXRhTG9hZGluZyA9IGZhbHNlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICk7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBvcGVuKCk6IE9ic2VydmFibGU8VFtdPiB7XG4gICAgICAgIHJldHVybiB0aGlzLl9kYXRhQ2hhbmdlcy5waXBlKHRha2VVbnRpbCh0aGlzLl9vbkRlc3Ryb3kkKSk7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBjbG9zZSgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fb25EZXN0cm95JC5uZXh0KCk7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBvbkRhdGFSZXF1ZXN0ZWQoKTogT2JzZXJ2YWJsZTx2b2lkPiB7XG4gICAgICAgIHJldHVybiB0aGlzLl9vbkRhdGFSZXF1ZXN0ZWQkLmFzT2JzZXJ2YWJsZSgpO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgb25EYXRhUmVjZWl2ZWQoKTogT2JzZXJ2YWJsZTx2b2lkPiB7XG4gICAgICAgIHJldHVybiB0aGlzLl9vbkRhdGFSZWNlaXZlZCQuYXNPYnNlcnZhYmxlKCk7XG4gICAgfVxufVxuXG5leHBvcnQgY2xhc3MgTXVsdGlDb21ib0JveERhdGFTb3VyY2U8VD4gZXh0ZW5kcyBDb21ib0JveERhdGFTb3VyY2U8VD4ge1xuICAgIC8qKiBAaGlkZGVuICovXG4gICAgY29uc3RydWN0b3IocHVibGljIGRhdGFQcm92aWRlcjogRGF0YVByb3ZpZGVyPGFueT4pIHtcbiAgICAgICAgc3VwZXIoZGF0YVByb3ZpZGVyKTtcbiAgICB9XG59XG5cbmV4cG9ydCBjbGFzcyBTZWFyY2hGaWVsZERhdGFTb3VyY2U8VD4gZXh0ZW5kcyBDb21ib0JveERhdGFTb3VyY2U8VD4ge1xuICAgIC8qKiBAaGlkZGVuICovXG4gICAgY29uc3RydWN0b3IocHVibGljIGRhdGFQcm92aWRlcjogRGF0YVByb3ZpZGVyPGFueT4pIHtcbiAgICAgICAgc3VwZXIoZGF0YVByb3ZpZGVyKTtcbiAgICB9XG59XG5cbmV4cG9ydCBjbGFzcyBMaXN0RGF0YVNvdXJjZTxUPiBleHRlbmRzIENvbWJvQm94RGF0YVNvdXJjZTxUPiB7XG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBsaW1pdGxlc3MgPSB0cnVlO1xuICAgIC8qKiBAaGlkZGVuICovXG4gICAgY29uc3RydWN0b3IocHVibGljIGRhdGFQcm92aWRlcjogRGF0YVByb3ZpZGVyPGFueT4pIHtcbiAgICAgICAgc3VwZXIoZGF0YVByb3ZpZGVyKTtcbiAgICB9XG59XG5cbmV4cG9ydCBjbGFzcyBNdWx0aUlucHV0RGF0YVNvdXJjZTxUPiBleHRlbmRzIENvbWJvQm94RGF0YVNvdXJjZTxUPiB7XG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBjb25zdHJ1Y3RvcihwdWJsaWMgZGF0YVByb3ZpZGVyOiBEYXRhUHJvdmlkZXI8YW55Pikge1xuICAgICAgICBzdXBlcihkYXRhUHJvdmlkZXIpO1xuICAgIH1cbn1cblxuZXhwb3J0IGNsYXNzIEFwcHJvdmFsRmxvd1VzZXJEYXRhU291cmNlPFQ+IGV4dGVuZHMgQ29tYm9Cb3hEYXRhU291cmNlPFQ+IHtcbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIGNvbnN0cnVjdG9yKHB1YmxpYyBkYXRhUHJvdmlkZXI6IERhdGFQcm92aWRlcjxUPikge1xuICAgICAgICBzdXBlcihkYXRhUHJvdmlkZXIpO1xuICAgIH1cbn1cblxuZXhwb3J0IGNsYXNzIEFwcHJvdmFsRmxvd1RlYW1EYXRhU291cmNlPFQ+IGV4dGVuZHMgQ29tYm9Cb3hEYXRhU291cmNlPFQ+IHtcbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIGNvbnN0cnVjdG9yKHB1YmxpYyBkYXRhUHJvdmlkZXI6IERhdGFQcm92aWRlcjxUPikge1xuICAgICAgICBzdXBlcihkYXRhUHJvdmlkZXIpO1xuICAgIH1cbn1cbiJdfQ==