@agorapulse/ui-components 18.1.12 → 18.1.13

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.
@@ -6,4 +6,4 @@ export const isInternalNavSelectorEntryANode = (entry) => `children` in entry;
6
6
  export const isInternalNavSelectorEntryACategory = (entry) => entry.type === 'CATEGORY';
7
7
  export const isInternalNavSelectorEntryAGroup = (entry) => entry.type === 'GROUP';
8
8
  export const isInternalNavSelectorEntryALeafDetails = (entry) => entry.type === 'LEAF_DETAILS';
9
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmF2LXNlbGVjdG9yLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vbGlicy91aS1jb21wb25lbnRzL25hdi1zZWxlY3Rvci9zcmMvbmF2LXNlbGVjdG9yLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQTJIQSxNQUFNLENBQUMsTUFBTSx1QkFBdUIsR0FBRyxDQUFDLEtBQXVCLEVBQTRCLEVBQUUsQ0FBQyxLQUFLLENBQUMsSUFBSSxLQUFLLE1BQU0sQ0FBQztBQUVwSCxNQUFNLENBQUMsTUFBTSx3QkFBd0IsR0FBRyxDQUFDLEtBQXVCLEVBQTZCLEVBQUUsQ0FBQyxLQUFLLENBQUMsSUFBSSxLQUFLLE9BQU8sQ0FBQztBQUV2SCxNQUFNLENBQUMsTUFBTSwyQkFBMkIsR0FBRyxDQUFDLEtBQXVCLEVBQWdDLEVBQUUsQ0FBQyxLQUFLLENBQUMsSUFBSSxLQUFLLFVBQVUsQ0FBQztBQThKaEksTUFBTSxDQUFDLE1BQU0sK0JBQStCLEdBQUcsQ0FBQyxLQUErQixFQUFvQyxFQUFFLENBQUMsS0FBSyxDQUFDLElBQUksS0FBSyxNQUFNLENBQUM7QUFFNUksTUFBTSxDQUFDLE1BQU0sK0JBQStCLEdBQUcsQ0FDM0MsS0FBK0IsRUFDZ0MsRUFBRSxDQUFDLFVBQVUsSUFBSSxLQUFLLENBQUM7QUFFMUYsTUFBTSxDQUFDLE1BQU0sbUNBQW1DLEdBQUcsQ0FBQyxLQUErQixFQUF3QyxFQUFFLENBQ3pILEtBQUssQ0FBQyxJQUFJLEtBQUssVUFBVSxDQUFDO0FBRTlCLE1BQU0sQ0FBQyxNQUFNLGdDQUFnQyxHQUFHLENBQUMsS0FBK0IsRUFBcUMsRUFBRSxDQUNuSCxLQUFLLENBQUMsSUFBSSxLQUFLLE9BQU8sQ0FBQztBQUUzQixNQUFNLENBQUMsTUFBTSxzQ0FBc0MsR0FBRyxDQUFDLEtBQStCLEVBQTJDLEVBQUUsQ0FDL0gsS0FBSyxDQUFDLElBQUksS0FBSyxjQUFjLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBdmF0YXJOZXR3b3JrIH0gZnJvbSAnQGFnb3JhcHVsc2UvdWktY29tcG9uZW50cy9hdmF0YXInO1xuXG5leHBvcnQgdHlwZSBOYXZTZWxlY3RvckxlYWZBY3Rpb25DbGlja2VkRXZlbnQgPSB7XG4gICAgLyoqIE5hbWUgb2YgdGhlIGFjdGlvbiB0aGF0IGhhcyBiZWVuIGNsaWNrZWQgKi9cbiAgICBhY3Rpb25OYW1lOiBzdHJpbmc7XG4gICAgLyoqIExlYWYgb24gd2hpY2ggdGhlIGFjdGlvbiBoYXMgYmVlbiBjbGlja2VkICovXG4gICAgbGVhZlVpZDogc3RyaW5nO1xufTtcblxuLyoqXG4gKiBBcyB0cmFuc2xhdGlvbiBpcyBub3QgYXZhaWxhYmxlIGluIHRoZSBEUywgdGhpcyBhbGwgdHJhbnNsYXRpb25zIG5lZWRlZFxuICovXG5leHBvcnQgaW50ZXJmYWNlIE5hdlNlbGVjdG9yVHJhbnNsYXRlZFRleHRzIHtcbiAgICAvKiogVGl0bGUgb2YgdGhlIG5hdiBzZWxlY3RvciAqL1xuICAgIHRpdGxlOiBzdHJpbmc7XG4gICAgLyoqIE9ubHkgdGV4dCBpbiBtdWx0aSBzZWxlY3QgbW9kZSAqL1xuICAgIG9ubHk6IHN0cmluZztcbiAgICAvKiogVG9vbHRpcCBkaXNwbGF5ZWQgb24gZm9sZGVkIGdyb3VwIHdoZW4gb25lIG9mIGl0cyBjaGlsZHJlbiBoYXZlIHRva2VuIGlzIGludmFsaWQgKi9cbiAgICBncm91cFRva2VuSW52YWxpZDogc3RyaW5nO1xuICAgIC8qKiBUb29saXAgZGlzcGxheWluZyB0aGF0IHRva2VuIGlzIGludmFsaWQgKi9cbiAgICB0b2tlbkludmFsaWQ6IHN0cmluZztcbiAgICAvKiogVG9vbGlwIGRpc3BsYXlpbmcgdGhhdCBmZWF0dXJlIGlzIGxvY2tlZCAqL1xuICAgIGZlYXR1cmVMb2NrZWQ6IHN0cmluZztcbiAgICAvKiogcGxhY2Vob2xkZXIgZm9yIHRoZSBzZWFyY2ggaW5wdXQgKi9cbiAgICBzZWFyY2hQbGFjZWhvbGRlcjogc3RyaW5nO1xuICAgIC8qKiBUZXh0IGRpc3BsYXllZCB3aGVuIHRoZSBzZWFyY2ggcmV0dXJuIG5vIHJlc3VsdHMgKi9cbiAgICBub1Jlc3VsdHM6IHN0cmluZztcbiAgICAvKiogVGV4dCBvZiB0aGUgYnV0dG9uIHRvIHNob3cgbW9yZSBkZXRhaWxzLCBpdOKAmXMgdXNlZCB3aGVuIHdlIGxpbWl0IHRoZSBudW1iZXIgb2YgZGV0YWlscyBkaXNwbGF5ZWQgICovXG4gICAgdmlld01vcmU6IHN0cmluZztcbiAgICAvKiogVGV4dCBvZiB0aGUgYnV0dG9uIHRvIHNob3cgbGVzcyBkZXRhaWxzLCBpdOKAmXMgdXNlZCB3aGVuIHdlIGxpbWl0IHRoZSBudW1iZXIgb2YgZGV0YWlscyBkaXNwbGF5ZWQgICovXG4gICAgdmlld0xlc3M6IHN0cmluZztcbn1cblxuLyoqXG4gKiBDb21tb24gaW50ZXJmYWNlIGZvciB0aGUgTmF2U2VsZWN0b3JcbiAqL1xuZXhwb3J0IHR5cGUgTmF2U2VsZWN0b3JCYXNlTm9kZSA9IHtcbiAgICAvKiogVW5pcXVlIGlkZW50aWZpZXIgb2YgdGhlIG5vZGUgKi9cbiAgICB1aWQ6IHN0cmluZztcbiAgICAvKiogRGlzcGxheWVkIG5hbWUgb2YgdGhlIG5vZGUgKi9cbiAgICBhbGlhczogc3RyaW5nO1xufTtcblxuLyoqXG4gKiBSZXByZXNlbnQgYW4gYWN0aW9uIHRoYXQgY2FuIGJlIHBlcmZvcm1lZCBvbiBhIGxlYWZcbiAqL1xuZXhwb3J0IHR5cGUgTmF2U2VsZWN0b3JMZWFmQWN0aW9uID0ge1xuICAgIC8qKiBVbmlxdWUgaWRlbnRpZmllciBvZiB0aGUgYWN0aW9uLCB1c2VkIGZvciBjbGljayB0cmFja2luZyAqL1xuICAgIGlkOiBzdHJpbmcgfCBudWxsO1xuICAgIC8qKiBBY3Rpb24gbGFiZWwgdG8gZGlzcGxheSAqL1xuICAgIGxhYmVsOiBzdHJpbmc7XG4gICAgLyoqIFRlY2huaWNhbCBuYW1lIG9mIHRoZSBhY3Rpb24sIHVzZWQgdG8gaWRlbnRpZnkgdGhlIGFjdGlvbiAqL1xuICAgIG5hbWU6IHN0cmluZztcbiAgICAvKiogT3B0aW9uYWwgaWNvbiB0byBkaXNwbGF5IG9uIHRoZSBhY3Rpb24gKi9cbiAgICBpY29uOiBzdHJpbmcgfCBudWxsO1xuICAgIC8qKiBPcHRpb25hbCBTdGF0dXMgKi9cbiAgICBzdGF0dXM6ICdkaXNhYmxlZCcgfCAnbG9ja2VkJyB8IG51bGw7XG59O1xuXG4vKipcbiAqIFJlcHJlc2VudCBmaW5hbCBlbnRyeSBvZiB0aGUgbmF2IHNlbGVjdG9yXG4gKi9cbmV4cG9ydCB0eXBlIE5hdlNlbGVjdG9yTGVhZiA9IHtcbiAgICBwaWN0dXJlVXJsOiBzdHJpbmcgfCBudWxsO1xuICAgIC8qKiBDb3VudGVyIHRvIGRpc3BsYXkgb24gdGhlIGVudHJ5LCB0byBpZ25vcmUgaWYgdGhlIGxlYWYgaGFzIGRldGFpbHMgKi9cbiAgICBjb3VudGVyOiBudW1iZXIgfCBudWxsO1xuICAgIC8qKiBXaGVuIHRydWUsIHRoZSBsZWFmIHdpbGwgYmUgaGlkZGVuICovXG4gICAgbWlzc2luZ1Blcm1pc3Npb246IGJvb2xlYW47XG4gICAgLyoqIEZvciBzb2NpYWwgcHJvZmlsZXMgb3IgYWQgYWNjb3VudHMgdGhlIGNvcnJlc3BvbmRpbmcgbmV0d29yayAqL1xuICAgIG5ldHdvcms6IEF2YXRhck5ldHdvcmsgfCBudWxsO1xuICAgIC8qKiBUcmFuc2xhdGVkIHRleHQgd2hlbiB0aGUgZW50cnkgaXMgZGlzYWJsZWQgKi9cbiAgICBkaXNhYmxlUmVhc29uOiBzdHJpbmcgfCBudWxsO1xuICAgIC8qKiBJbmRpY2F0ZXMgaWYgZW50cnkgaGFzIGl0cyB0b2tlbiBpbnZhbGlkICovXG4gICAgdG9rZW5JbnZhbGlkOiBib29sZWFuO1xuICAgIC8qKiBJbmRpY2F0ZXMgaWYgZW50cnkgaXMgbG9ja2VkICovXG4gICAgZmVhdHVyZUxvY2tlZDogYm9vbGVhbjtcbiAgICAvKiogU3ViIGVsZW1lbnRzIG9mIHRoZSBsZWFmLCB0aGV5IGFyZSBvcHRpb25hbCAqL1xuICAgIGRldGFpbHM6IE5hdlNlbGVjdG9yTGVhZkRldGFpbHNbXTtcbiAgICAvKiogT3B0aW9uYWwgYWN0aW9ucyB0aGF0IGNhbiBiZSBwZXJmb3JtZWQgb24gdGhlIGxlYWYgKi9cbiAgICBhY3Rpb25zOiBOYXZTZWxlY3RvckxlYWZBY3Rpb25bXTtcbiAgICB0eXBlOiAnTEVBRic7XG59ICYgTmF2U2VsZWN0b3JCYXNlTm9kZTtcblxuLyoqXG4gKiBSZXByZXNlbnQgYSBncm91cCBvZiBlbnRyaWVzIHdoaWNoIGhhcyBiZWVuIGNyZWF0ZWQgYnkgdGhlIHVzZXIgKGV4OiBtZW51R3JvdXApXG4gKi9cbmV4cG9ydCB0eXBlIE5hdlNlbGVjdG9yR3JvdXAgPSB7XG4gICAgLyoqIEEgZ3JvdXAgY2FuIG9ubHkgaGF2ZSBsZWF2ZXMgYXMgY2hpbGRyZW4gKi9cbiAgICBjaGlsZHJlbjogTmF2U2VsZWN0b3JMZWFmW107XG4gICAgLyoqIEluZGljYXRlcyBpZiB0aGUgZ3JvdXAgc2hvdWxkIGJlIGZvbGRlZCBvciBleHBhbmRlZCB3aGVuIGdlbmVyYXRpbmcgdGhlIG5hdiBzZWxlY3RvciAqL1xuICAgIGZvbGRlZDogYm9vbGVhbjtcbiAgICB0eXBlOiAnR1JPVVAnO1xufSAmIE5hdlNlbGVjdG9yQmFzZU5vZGU7XG5cbi8qKlxuICogUmVwcmVzZW50IGEgY2F0ZWdvcnkgb2YgZW50cmllcyB3aGljaCBoYXMgYmVlbiBjcmVhdGVkIGJ5IHRoZSBwcm9kdWN0IHRvIHNlcGFyYXRlIGRpZmZlcmVudCBraW5kIG9mIGVudHJpZXMgKGV4OiBzb2NpYWwgcHJvZmlsZXMsIHJlcG9ydHMsIGFkIGFjY291bnRz4oCmKVxuICovXG5leHBvcnQgdHlwZSBOYXZTZWxlY3RvckNhdGVnb3J5ID0ge1xuICAgIC8qKiBBIENhdGVnb3J5IGNhbiBoYXZlIGxlYXZlcyBvciBncm91cHMgYXMgY2hpbGRyZW4sIHlvdSBjYW4gaGF2ZSBsZWF2ZXMgYWxvbmdzaWRlIHdpdGggZ3JvdXBzICovXG4gICAgY2hpbGRyZW46IChOYXZTZWxlY3RvckxlYWYgfCBOYXZTZWxlY3Rvckdyb3VwKVtdO1xuICAgIC8qKiBJbmRpY2F0ZXMgaWYgdGhlIGdyb3VwIHNob3VsZCBiZSBmb2xkZWQgb3IgZXhwYW5kZWQgd2hlbiBnZW5lcmF0aW5nIHRoZSBuYXYgc2VsZWN0b3IgKi9cbiAgICBmb2xkZWQ6IGJvb2xlYW47XG4gICAgLyoqIFRpdGxlIG9mIHRoZSBlbXB0eSBzdGF0ZSAqL1xuICAgIGVtcHR5U3RhdGVUaXRsZT86IHN0cmluZztcbiAgICB0eXBlOiAnQ0FURUdPUlknO1xufSAmIE5hdlNlbGVjdG9yQmFzZU5vZGU7XG5cbmV4cG9ydCB0eXBlIE5hdlNlbGVjdG9yRW50cnkgPSBOYXZTZWxlY3RvckxlYWYgfCBOYXZTZWxlY3Rvckdyb3VwIHwgTmF2U2VsZWN0b3JDYXRlZ29yeTtcblxuLyoqXG4gKiBSZXByZXNlbnQgZGV0YWlscyBvZiBhIGxlYWYsIHRoZXkgYXJlIHVzZWQgdG8gYWxsb3cgdG8gZGlzcGxheSBtb3JlIHNwZWNpZmljIGluZm9ybWF0aW9uIGFib3V0IHRoZSBsZWFmXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgTmF2U2VsZWN0b3JMZWFmRGV0YWlscyB7XG4gICAgLyoqIFVuaXF1ZSBpZGVudGlmaWVyIG9mIHRoZSBub2RlICovXG4gICAgdWlkOiBzdHJpbmc7XG4gICAgLyoqIENvdW50ZXIgdG8gZGlzcGxheSBvbiB0aGUgZW50cnkgKi9cbiAgICBjb3VudGVyOiBudW1iZXIgfCBudWxsO1xuICAgIC8qKiBEaXNwbGF5ZWQgbmFtZSBvZiB0aGUgbm9kZSAqL1xuICAgIG5hbWU6IHN0cmluZztcbiAgICAvKiogVHJhbnNsYXRpb24gb2YgdGhlIGVycm9yIG9uIHRoZSBsZWFmICovXG4gICAgZXJyb3JSZWFzb246IHN0cmluZyB8IG51bGw7XG59XG5cbmV4cG9ydCBjb25zdCBpc05hdlNlbGVjdG9yRW50cnlBTGVhZiA9IChlbnRyeTogTmF2U2VsZWN0b3JFbnRyeSk6IGVudHJ5IGlzIE5hdlNlbGVjdG9yTGVhZiA9PiBlbnRyeS50eXBlID09PSAnTEVBRic7XG5cbmV4cG9ydCBjb25zdCBpc05hdlNlbGVjdG9yRW50cnlBR3JvdXAgPSAoZW50cnk6IE5hdlNlbGVjdG9yRW50cnkpOiBlbnRyeSBpcyBOYXZTZWxlY3Rvckdyb3VwID0+IGVudHJ5LnR5cGUgPT09ICdHUk9VUCc7XG5cbmV4cG9ydCBjb25zdCBpc05hdlNlbGVjdG9yRW50cnlBQ2F0ZWdvcnkgPSAoZW50cnk6IE5hdlNlbGVjdG9yRW50cnkpOiBlbnRyeSBpcyBOYXZTZWxlY3RvckNhdGVnb3J5ID0+IGVudHJ5LnR5cGUgPT09ICdDQVRFR09SWSc7XG5cbi8qKlxuICogUmVwcmVzZW50IHRoZSBhY2Nlc3NpYmlsaXR5IG9uIGEgbm9kZVxuICovXG5leHBvcnQgdHlwZSBOb2RlQWNjZXNzaWJpbGl0eSA9IHtcbiAgICAvKiogTnVtYmVyIG9mIHNpYmxpbmcgZWxlbWVudHMsIGl0c2VsZiBpbmNsdWRlZC4gRXg6IHRoZXJlIGFyZSA3IHNvY2lhbCBwcm9maWxlcyBkaXNwbGF5IGluIHRoZSBncm91cCAqL1xuICAgIGFyaWFTZXRzaXplOiBudW1iZXI7XG4gICAgLyoqIEluZGV4IHN0YXJ0aW5nIGZyb20gMSBvZiB0aGUgZWxlbWVudCBhbG9uZ3NpZGUgaXRzIHNpYmxpbmcgKi9cbiAgICBhcmlhUG9zaW5zZXQ6IG51bWJlcjtcbiAgICAvKiogMCB0byBiZSBmb2N1c2FibGUgYnkgVGFiIGtleSBhbmQgLTEgdG8gYmUgZm9jdXNhYmxlIGJ5IGtleWJvYXJkIHdpdGggSlMgKi9cbiAgICB0YWJJbmRleDogbnVtYmVyO1xuICAgIC8qKiBJbiBhIHRyZWUsIHRoZSBkZWVwIGxldmVsLCBzdGFydGluZyBmcm9tIDEgKi9cbiAgICBhcmlhTGV2ZWw6IG51bWJlcjtcbn07XG5cbmV4cG9ydCB0eXBlIEludGVybmFsTmF2U2VsZWN0b3JMZWFmQWN0aW9uID0ge1xuICAgIC8qKiBVbmlxdWUgaWRlbnRpZmllciBvZiB0aGUgYWN0aW9uLCB1c2VkIGZvciBjbGljayB0cmFja2luZyAqL1xuICAgIGlkOiBzdHJpbmcgfCBudWxsO1xuICAgIC8qKiBBY3Rpb24gbGFiZWwgdG8gZGlzcGxheSAqL1xuICAgIGxhYmVsOiBzdHJpbmc7XG4gICAgLyoqIFRlY2huaWNhbCBuYW1lIG9mIHRoZSBhY3Rpb24sIHVzZWQgdG8gaWRlbnRpZnkgdGhlIGFjdGlvbiAqL1xuICAgIG5hbWU6IHN0cmluZztcbiAgICAvKiogT3B0aW9uYWwgaWNvbiB0byBkaXNwbGF5IG9uIHRoZSBhY3Rpb24gKi9cbiAgICBpY29uOiBzdHJpbmcgfCBudWxsO1xuICAgIC8qKiBPcHRpb25hbCBTdGF0dXMgKi9cbiAgICBzdGF0dXM6ICdkaXNhYmxlZCcgfCAnbG9ja2VkJyB8IG51bGw7XG59O1xuXG4vKipcbiAqIFJlcHJlc2VudCBhIG5vZGVcbiAqL1xuZXhwb3J0IHR5cGUgSW50ZXJuYWxOYXZTZWxlY3RvckJhc2VOb2RlID0ge1xuICAgIC8qKiBVbmlxdWUgaWRlbnRpZmllciBvZiB0aGUgZW50cnkgKi9cbiAgICB1aWQ6IHN0cmluZztcbiAgICAvKiogRGlzcGxheWVkIG5hbWUgb2YgdGhlIGVudHJ5ICovXG4gICAgYWxpYXM6IHN0cmluZztcbiAgICBhY2Nlc3NpYmlsaXR5OiBOb2RlQWNjZXNzaWJpbGl0eTtcbiAgICAvKiogV2hlbiBoaWRkZW4sIHRoZSBlbnRyeSBpcyBub3QgZGlzcGxheWVkLCB1c2VkIHdoZW4gc2VhcmNoaW5nIGFuIGVsZW1lbnQgKi9cbiAgICBoaWRkZW46IGJvb2xlYW47XG4gICAgLyoqIFdoZW4gdHJ1ZSwgeW91IGNhbiBuYXZpZ2F0ZSB3aXRoIGFycm93IGtleXMgb24gdGhpcyBlbnRyeSAqL1xuICAgIGZvY3VzYWJsZTogYm9vbGVhbjtcbn07XG5cbi8qKlxuICogUmVwcmVzZW50IGEgZ3JvdXAgb2YgZW50cmllcyB3aGljaCBoYXMgYmVlbiBjcmVhdGVkIGJ5IHRoZSB1c2VyIChleDogbWVudUdyb3VwKVxuICovXG5leHBvcnQgdHlwZSBJbnRlcm5hbE5hdlNlbGVjdG9yR3JvdXAgPSB7XG4gICAgLyoqIEEgZ3JvdXAgY2FuIG9ubHkgaGF2ZSBsZWF2ZXMgYXMgY2hpbGRyZW4gKi9cbiAgICBjaGlsZHJlbjogSW50ZXJuYWxOYXZTZWxlY3RvckxlYWZbXTtcbiAgICAvKiogUGljdHVyZSB1cmwgb2YgdGhlIGdyb3VwLCB1c2VkIHdoZW4gdGhlIG5hdiBzZWxlY3RvciBpcyBtaW5pZmllZCAqL1xuICAgIGNoaWxkcmVuUGljdHVyZVVybFNhbXBsZTogeyB1cmw6IHN0cmluZyB8IG51bGw7IGluaXRpYWw6IHN0cmluZyB9W107XG4gICAgLyoqIEluZGljYXRlcyB3aGVuZXZlciB0aGUgZ3JvdXAgaXMgZm9sZGVkIG9yIG5vdCAqL1xuICAgIGZvbGRlZDogYm9vbGVhbjtcbiAgICAvKiogSW5kaWNhdGVzIHRoZSBjb3VudGVyIHZhbHVlIHRvIGRpc3BsYXkgd2hlbiB0aGUgZ3JvdXAgaXMgZm9sZGVkICovXG4gICAgY291bnRlcjogbnVtYmVyO1xuICAgIC8qKiBJbmRpY2F0ZXMgaWYgdGhlIGNvdW50ZXIgc2hvdWxkIGJlIGRpc3BsYXkgd2hlbiB0aGUgZ3JvdXAgaXMgZm9sZGVkICovXG4gICAgZGlzcGxheUNvdW50ZXI6IGJvb2xlYW47XG4gICAgLyoqIEluZGljYXRlcyBpZiB0aGUgdG9rZW4gaW52YWxpZCBpY29uIHNob3VsZCBiZSBkaXNwbGF5IHdoZW4gdGhlIGdyb3VwIGlzIGZvbGRlZCAqL1xuICAgIGRpc3BsYXlUb2tlbkludmFsaWQ6IGJvb2xlYW47XG4gICAgLyoqIEluZGljYXRlcyBpbiBtdWx0aSBzZWxlY3QgbW9kZSBpZiB0aGUgZ3JvdXAgaGFzIHNvbWUgY2hpbGRyZW4gc2VsZWN0ZWQgKi9cbiAgICB1bmRldGVybWluZWRTZWxlY3Rpb246IGJvb2xlYW47XG4gICAgLyoqIEluZGljYXRlcyBpZiB0aGUgZ3JvdXAgaXMgc2VsZWN0ZWQgKi9cbiAgICBzZWxlY3RlZDogYm9vbGVhbjtcbiAgICAvKiogSW5kaWNhdGVzIGlmIHRoZSBncm91cCBpcyBzZWxlY3RhYmxlICovXG4gICAgc2VsZWN0YWJsZTogYm9vbGVhbjtcbiAgICB0eXBlOiAnR1JPVVAnO1xufSAmIEludGVybmFsTmF2U2VsZWN0b3JCYXNlTm9kZTtcblxuLyoqXG4gKiBSZXByZXNlbnQgYSBjYXRlZ29yeSBvZiBlbnRyaWVzIHdoaWNoIGhhcyBiZWVuIGNyZWF0ZWQgYnkgdGhlIHByb2R1Y3QgdG8gc2VwYXJhdGUgZGlmZmVyZW50IGtpbmQgb2YgZW50cmllcyAoZXg6IHNvY2lhbCBwcm9maWxlcywgcmVwb3J0cywgYWQgYWNjb3VudHPigKYpXG4gKi9cbmV4cG9ydCB0eXBlIEludGVybmFsTmF2U2VsZWN0b3JDYXRlZ29yeSA9IHtcbiAgICAvKiogQSBDYXRlZ29yeSBjYW4gaGF2ZSBsZWF2ZXMgb3IgZ3JvdXBzIGFzIGNoaWxkcmVuLCB5b3UgY2FuIGhhdmUgbGVhdmVzIGFsb25nc2lkZSB3aXRoIGdyb3VwcyAqL1xuICAgIGNoaWxkcmVuOiAoSW50ZXJuYWxOYXZTZWxlY3Rvckdyb3VwIHwgSW50ZXJuYWxOYXZTZWxlY3RvckxlYWYpW107XG4gICAgLyoqIEluZGljYXRlcyB3aGVuZXZlciB0aGUgY2F0ZWdvcnkgaXMgZm9sZGVkIG9yIG5vdCAqL1xuICAgIGZvbGRlZDogYm9vbGVhbjtcbiAgICAvKiogVGl0bGUgb2YgdGhlIGVtcHR5IHN0YXRlICovXG4gICAgZW1wdHlTdGF0ZVRpdGxlPzogc3RyaW5nO1xuICAgIHR5cGU6ICdDQVRFR09SWSc7XG59ICYgSW50ZXJuYWxOYXZTZWxlY3RvckJhc2VOb2RlO1xuXG4vKipcbiAqIFJlcHJlc2VudCBmaW5hbCBlbnRyeSBvZiB0aGUgbmF2IHNlbGVjdG9yXG4gKi9cbmV4cG9ydCB0eXBlIEludGVybmFsTmF2U2VsZWN0b3JMZWFmID0ge1xuICAgIC8qKiBJbmRpY2F0ZXMgaWYgdGhlIGFjdGlvbnMgZHJvcGRvd24gY291bGQgYmUgZGlzcGxheS4gU2hvdWxkIG5vdCBiZSBkaXNwbGF5IGlmIHRoZSBsZWFmIGhhcyBhbiBlcnJvciBzdGF0dXMuICovXG4gICAgYWN0aW9uc0Rpc3BsYXlhYmxlOiBib29sZWFuO1xuICAgIC8qKiBBY3Rpb25zIHRoYXQgY2FuIGJlIHBlcmZvcm1lZCBvbiB0aGUgbGVhZiAqL1xuICAgIGFjdGlvbnM6IEludGVybmFsTmF2U2VsZWN0b3JMZWFmQWN0aW9uW107XG4gICAgLyoqIFBpY3R1cmUgdXJsIHRvIGRpc3BsYXkgb24gdGhlIGF2YXRhciwgb3B0aW9uYWwgKi9cbiAgICBwaWN0dXJlVXJsOiBzdHJpbmcgfCBudWxsO1xuICAgIC8qKiBJbmRpY2F0ZXMgaWYgdGhlIGNvdW50ZXIgY291bGQgYmUgZGlzcGxheS4gVGhlIGxlYWYgc2hvdWxkIG5vdCBiZSBkaXNhYmxlZCwgZmVhdHVyZSBsb2NrZWQgb3IgaGFzIHRva2VuIGludmFsaWQgKi9cbiAgICBjb3VudGVyRGlzcGxheWFibGU6IGJvb2xlYW47XG4gICAgLyoqIEluZGljYXRlcyBpZiB0aGUgdG9rZW4gaW52YWxpZCBpY29uIHNob3VsZCBiZSBkaXNwbGF5LiBTbyB3aGVuIGRpc3BsYXlhYmxlIHdoZW4gbm8gZGV0YWlscyBvciBmb2xkZWQgKi9cbiAgICBkaXNwbGF5Q291bnRlcjogYm9vbGVhbjtcbiAgICAvKiogQ291bnRlciB2YWx1ZSB0byBkaXNwbGF5ICovXG4gICAgY291bnRlcjogbnVtYmVyO1xuICAgIC8qKiBJbmRpY2F0ZXMgaWYgdGhlIHRva2VuIGludmFsaWQgaWNvbiBzaG91bGQgYmUgZGlzcGxheSAqL1xuICAgIGRpc3BsYXlUb2tlbkludmFsaWQ6IGJvb2xlYW47XG4gICAgLyoqIEluZGljYXRlcyBpZiB0aGUgZmVhdHVyZSBpcyBsb2NrZWQgKi9cbiAgICBkaXNwbGF5RmVhdHVyZUxvY2tlZDogYm9vbGVhbjtcbiAgICAvKiogSW5kaWNhdGVzIGlmIHRoZSBsZWFmIGlzIGRpc2FibGVkICovXG4gICAgZGlzYWJsZWQ6IGJvb2xlYW47XG4gICAgLyoqIFRoZSBkaXNhYmxlZCByZWFzb24gdG8gZGlzcGxheSBpbiB0b29sdGlwICovXG4gICAgZGlzYWJsZVJlYXNvbjogc3RyaW5nIHwgbnVsbDtcbiAgICAvKiogSW5kaWNhdGVzIGlmIHRoZSBsZWFmIGlzIHNlbGVjdGVkICovXG4gICAgc2VsZWN0ZWQ6IGJvb2xlYW47XG4gICAgLyoqIEluZGljYXRlcyBpZiB0aGUgbGVhZiBpcyBzZWxlY3RhYmxlICovXG4gICAgc2VsZWN0YWJsZTogYm9vbGVhbjtcbiAgICAvKiogRm9yIHNvY2lhbCBwcm9maWxlcyBvciBhZCBhY2NvdW50cywgdGhlIGNvcnJlc3BvbmRpbmcgbmV0d29yayAqL1xuICAgIG5ldHdvcms6IEF2YXRhck5ldHdvcmsgfCBudWxsO1xuICAgIC8qKiBJbmRpY2F0ZXMgaWYgdGhlIGxlYWYgZm9sZGFibGUuIFNvIHdoZW4gaXQgaGFzIGRldGFpbHMgYW5kIG5vIGVycm9yIHN0YXR1cyAqL1xuICAgIGZvbGRhYmxlOiBib29sZWFuO1xuICAgIC8qKiBJbmRpY2F0ZXMgaWYgdGhlIGxlYWYgaXMgZm9sZGVkICovXG4gICAgZm9sZGVkOiBib29sZWFuO1xuICAgIC8qKiBJbmRpY2F0ZXMgaWYgdGhlIGxlYWYgaGFzIG9uZSBvZiBpdHMgZGV0YWlscyBzZWxlY3RlZCAqL1xuICAgIGRldGFpbFNlbGVjdGVkOiBib29sZWFuO1xuICAgIC8qKiBJbmRpY2F0ZXMgaWYgdGhlIGxlYWYgaGFzIGRldGFpbHMgYW5kIHRoZXkgYXJlIGRpc3BsYXlhYmxlLiBTbyBubyBlcnJvciBzdGF0dXMgKi9cbiAgICBkZXRhaWxzRGlzcGxheWFibGU6IGJvb2xlYW47XG4gICAgLyoqIERldGFpbHMgb2YgdGhlIGxlYWYgKi9cbiAgICBkZXRhaWxzOiBJbnRlcm5hbE5hdlNlbGVjdG9yTGVhZkRldGFpbHNbXTtcbiAgICB0eXBlOiAnTEVBRic7XG4gICAgLyoqIEluZGljYXRlcyBpZiB0aGUgdmlldyBtb3JlIHNlY3Rpb24gc2hvdWxkIGJlIGRpc3BsYXkgZm9yIGRldGFpbHMgKi9cbiAgICB2aWV3TW9yZURpc3BsYXlhYmxlOiBib29sZWFuO1xuICAgIC8qKiBJbmRpY2F0ZXMgaWYgdGhlIHZpZXcgbW9yZSBvciB2aWV3IGxlc3MgYnV0dG9uIGlzIGRpc3BsYXllZCAqL1xuICAgIHZpZXdNb3JlRGlzcGxheWVkOiBib29sZWFuO1xuICAgIC8qKiBOdW1iZXIgb2YgZGV0YWlscyB0byBkaXNwbGF5IHdoZW4gdGhlIHZpZXcgbW9yZSBpcyBub3QgY2xpY2tlZCAqL1xuICAgIHZpZXdNb3JlRGV0YWlsc0Rpc3BsYXllZExpbWl0OiBudW1iZXI7XG59ICYgSW50ZXJuYWxOYXZTZWxlY3RvckJhc2VOb2RlO1xuXG4vKipcbiAqIFJlcHJlc2VudCBkZXRhaWxzIG9mIGEgbGVhZiwgdGhleSBhcmUgdXNlZCB0byBhbGxvdyB0byBkaXNwbGF5IG1vcmUgc3BlY2lmaWMgaW5mb3JtYXRpb24gYWJvdXQgdGhlIGxlYWZcbiAqL1xuZXhwb3J0IHR5cGUgSW50ZXJuYWxOYXZTZWxlY3RvckxlYWZEZXRhaWxzID0ge1xuICAgIC8qKiBVbmlxdWUgaWRlbnRpZmllciBvZiB0aGUgbm9kZSAqL1xuICAgIHVpZDogc3RyaW5nO1xuICAgIC8qKiBDb3VudGVyIHRvIGRpc3BsYXkgb24gdGhlIGRldGFpbCAqL1xuICAgIGNvdW50ZXI6IG51bWJlcjtcbiAgICAvKiogSW5kaWNhdGVzIGlmIHRoZSBjb3VudGVyIHNob3VsZCBiZSBkaXNwbGF5LiBTbyBubyBlcnJvciBvbiB0aGUgZGV0YWlsICovXG4gICAgZGlzcGxheUNvdW50ZXI6IGJvb2xlYW47XG4gICAgLyoqIERpc3BsYXllZCBuYW1lIG9mIHRoZSBub2RlICovXG4gICAgYWxpYXM6IHN0cmluZztcbiAgICAvKiogSW5kaWNhdGVzIGlmIHRoZSBkZXRhaWwgaXMgc2VsZWN0ZWQgKi9cbiAgICBzZWxlY3RlZDogYm9vbGVhbjtcbiAgICAvKiogSW5kaWNhdGVzIGlmIHdlIHNob3VsZCBkaXNwbGF5IGFuIGVycm9yIGljb24gKi9cbiAgICBkaXNwbGF5RXJyb3I6IGJvb2xlYW47XG4gICAgLyoqIFRyYW5zbGF0ZWQgdGV4dCB0byBkaXNwbGF5IGluIHRoZSB0b29sdGlwICovXG4gICAgZXJyb3JSZWFzb246IHN0cmluZyB8IG51bGw7XG4gICAgdHlwZTogJ0xFQUZfREVUQUlMUyc7XG59ICYgSW50ZXJuYWxOYXZTZWxlY3RvckJhc2VOb2RlO1xuXG5leHBvcnQgdHlwZSBJbnRlcm5hbE5hdlNlbGVjdG9yRW50cnkgPVxuICAgIHwgSW50ZXJuYWxOYXZTZWxlY3RvckxlYWZcbiAgICB8IEludGVybmFsTmF2U2VsZWN0b3JHcm91cFxuICAgIHwgSW50ZXJuYWxOYXZTZWxlY3RvckNhdGVnb3J5XG4gICAgfCBJbnRlcm5hbE5hdlNlbGVjdG9yTGVhZkRldGFpbHM7XG5cbmV4cG9ydCBjb25zdCBpc0ludGVybmFsTmF2U2VsZWN0b3JFbnRyeUFMZWFmID0gKGVudHJ5OiBJbnRlcm5hbE5hdlNlbGVjdG9yRW50cnkpOiBlbnRyeSBpcyBJbnRlcm5hbE5hdlNlbGVjdG9yTGVhZiA9PiBlbnRyeS50eXBlID09PSAnTEVBRic7XG5cbmV4cG9ydCBjb25zdCBpc0ludGVybmFsTmF2U2VsZWN0b3JFbnRyeUFOb2RlID0gKFxuICAgIGVudHJ5OiBJbnRlcm5hbE5hdlNlbGVjdG9yRW50cnlcbik6IGVudHJ5IGlzIEludGVybmFsTmF2U2VsZWN0b3JDYXRlZ29yeSB8IEludGVybmFsTmF2U2VsZWN0b3JHcm91cCA9PiBgY2hpbGRyZW5gIGluIGVudHJ5O1xuXG5leHBvcnQgY29uc3QgaXNJbnRlcm5hbE5hdlNlbGVjdG9yRW50cnlBQ2F0ZWdvcnkgPSAoZW50cnk6IEludGVybmFsTmF2U2VsZWN0b3JFbnRyeSk6IGVudHJ5IGlzIEludGVybmFsTmF2U2VsZWN0b3JDYXRlZ29yeSA9PlxuICAgIGVudHJ5LnR5cGUgPT09ICdDQVRFR09SWSc7XG5cbmV4cG9ydCBjb25zdCBpc0ludGVybmFsTmF2U2VsZWN0b3JFbnRyeUFHcm91cCA9IChlbnRyeTogSW50ZXJuYWxOYXZTZWxlY3RvckVudHJ5KTogZW50cnkgaXMgSW50ZXJuYWxOYXZTZWxlY3Rvckdyb3VwID0+XG4gICAgZW50cnkudHlwZSA9PT0gJ0dST1VQJztcblxuZXhwb3J0IGNvbnN0IGlzSW50ZXJuYWxOYXZTZWxlY3RvckVudHJ5QUxlYWZEZXRhaWxzID0gKGVudHJ5OiBJbnRlcm5hbE5hdlNlbGVjdG9yRW50cnkpOiBlbnRyeSBpcyBJbnRlcm5hbE5hdlNlbGVjdG9yTGVhZkRldGFpbHMgPT5cbiAgICBlbnRyeS50eXBlID09PSAnTEVBRl9ERVRBSUxTJztcbiJdfQ==
9
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmF2LXNlbGVjdG9yLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vbGlicy91aS1jb21wb25lbnRzL25hdi1zZWxlY3Rvci9zcmMvbmF2LXNlbGVjdG9yLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQTZIQSxNQUFNLENBQUMsTUFBTSx1QkFBdUIsR0FBRyxDQUFDLEtBQXVCLEVBQTRCLEVBQUUsQ0FBQyxLQUFLLENBQUMsSUFBSSxLQUFLLE1BQU0sQ0FBQztBQUVwSCxNQUFNLENBQUMsTUFBTSx3QkFBd0IsR0FBRyxDQUFDLEtBQXVCLEVBQTZCLEVBQUUsQ0FBQyxLQUFLLENBQUMsSUFBSSxLQUFLLE9BQU8sQ0FBQztBQUV2SCxNQUFNLENBQUMsTUFBTSwyQkFBMkIsR0FBRyxDQUFDLEtBQXVCLEVBQWdDLEVBQUUsQ0FBQyxLQUFLLENBQUMsSUFBSSxLQUFLLFVBQVUsQ0FBQztBQThKaEksTUFBTSxDQUFDLE1BQU0sK0JBQStCLEdBQUcsQ0FBQyxLQUErQixFQUFvQyxFQUFFLENBQUMsS0FBSyxDQUFDLElBQUksS0FBSyxNQUFNLENBQUM7QUFFNUksTUFBTSxDQUFDLE1BQU0sK0JBQStCLEdBQUcsQ0FDM0MsS0FBK0IsRUFDZ0MsRUFBRSxDQUFDLFVBQVUsSUFBSSxLQUFLLENBQUM7QUFFMUYsTUFBTSxDQUFDLE1BQU0sbUNBQW1DLEdBQUcsQ0FBQyxLQUErQixFQUF3QyxFQUFFLENBQ3pILEtBQUssQ0FBQyxJQUFJLEtBQUssVUFBVSxDQUFDO0FBRTlCLE1BQU0sQ0FBQyxNQUFNLGdDQUFnQyxHQUFHLENBQUMsS0FBK0IsRUFBcUMsRUFBRSxDQUNuSCxLQUFLLENBQUMsSUFBSSxLQUFLLE9BQU8sQ0FBQztBQUUzQixNQUFNLENBQUMsTUFBTSxzQ0FBc0MsR0FBRyxDQUFDLEtBQStCLEVBQTJDLEVBQUUsQ0FDL0gsS0FBSyxDQUFDLElBQUksS0FBSyxjQUFjLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBdmF0YXJOZXR3b3JrIH0gZnJvbSAnQGFnb3JhcHVsc2UvdWktY29tcG9uZW50cy9hdmF0YXInO1xuXG5leHBvcnQgdHlwZSBOYXZTZWxlY3RvckxlYWZBY3Rpb25DbGlja2VkRXZlbnQgPSB7XG4gICAgLyoqIE5hbWUgb2YgdGhlIGFjdGlvbiB0aGF0IGhhcyBiZWVuIGNsaWNrZWQgKi9cbiAgICBhY3Rpb25OYW1lOiBzdHJpbmc7XG4gICAgLyoqIExlYWYgb24gd2hpY2ggdGhlIGFjdGlvbiBoYXMgYmVlbiBjbGlja2VkICovXG4gICAgbGVhZlVpZDogc3RyaW5nO1xufTtcblxuLyoqXG4gKiBBcyB0cmFuc2xhdGlvbiBpcyBub3QgYXZhaWxhYmxlIGluIHRoZSBEUywgdGhpcyBhbGwgdHJhbnNsYXRpb25zIG5lZWRlZFxuICovXG5leHBvcnQgaW50ZXJmYWNlIE5hdlNlbGVjdG9yVHJhbnNsYXRlZFRleHRzIHtcbiAgICAvKiogVGl0bGUgb2YgdGhlIG5hdiBzZWxlY3RvciAqL1xuICAgIHRpdGxlOiBzdHJpbmc7XG4gICAgLyoqIE9ubHkgdGV4dCBpbiBtdWx0aSBzZWxlY3QgbW9kZSAqL1xuICAgIG9ubHk6IHN0cmluZztcbiAgICAvKiogVG9vbHRpcCBkaXNwbGF5ZWQgb24gZm9sZGVkIGdyb3VwIHdoZW4gb25lIG9mIGl0cyBjaGlsZHJlbiBoYXZlIHRva2VuIGlzIGludmFsaWQgKi9cbiAgICBncm91cFRva2VuSW52YWxpZDogc3RyaW5nO1xuICAgIC8qKiBUb29saXAgZGlzcGxheWluZyB0aGF0IHRva2VuIGlzIGludmFsaWQgKi9cbiAgICB0b2tlbkludmFsaWQ6IHN0cmluZztcbiAgICAvKiogVG9vbGlwIGRpc3BsYXlpbmcgdGhhdCBmZWF0dXJlIGlzIGxvY2tlZCAqL1xuICAgIGZlYXR1cmVMb2NrZWQ6IHN0cmluZztcbiAgICAvKiogcGxhY2Vob2xkZXIgZm9yIHRoZSBzZWFyY2ggaW5wdXQgKi9cbiAgICBzZWFyY2hQbGFjZWhvbGRlcjogc3RyaW5nO1xuICAgIC8qKiBUZXh0IGRpc3BsYXllZCB3aGVuIHRoZSBzZWFyY2ggcmV0dXJuIG5vIHJlc3VsdHMgKi9cbiAgICBub1Jlc3VsdHM6IHN0cmluZztcbiAgICAvKiogVGV4dCBvZiB0aGUgYnV0dG9uIHRvIHNob3cgbW9yZSBkZXRhaWxzLCBpdOKAmXMgdXNlZCB3aGVuIHdlIGxpbWl0IHRoZSBudW1iZXIgb2YgZGV0YWlscyBkaXNwbGF5ZWQgICovXG4gICAgdmlld01vcmU6IHN0cmluZztcbiAgICAvKiogVGV4dCBvZiB0aGUgYnV0dG9uIHRvIHNob3cgbGVzcyBkZXRhaWxzLCBpdOKAmXMgdXNlZCB3aGVuIHdlIGxpbWl0IHRoZSBudW1iZXIgb2YgZGV0YWlscyBkaXNwbGF5ZWQgICovXG4gICAgdmlld0xlc3M6IHN0cmluZztcbn1cblxuLyoqXG4gKiBDb21tb24gaW50ZXJmYWNlIGZvciB0aGUgTmF2U2VsZWN0b3JcbiAqL1xuZXhwb3J0IHR5cGUgTmF2U2VsZWN0b3JCYXNlTm9kZSA9IHtcbiAgICAvKiogVW5pcXVlIGlkZW50aWZpZXIgb2YgdGhlIG5vZGUgKi9cbiAgICB1aWQ6IHN0cmluZztcbiAgICAvKiogRGlzcGxheWVkIG5hbWUgb2YgdGhlIG5vZGUgKi9cbiAgICBhbGlhczogc3RyaW5nO1xufTtcblxuLyoqXG4gKiBSZXByZXNlbnQgYW4gYWN0aW9uIHRoYXQgY2FuIGJlIHBlcmZvcm1lZCBvbiBhIGxlYWZcbiAqL1xuZXhwb3J0IHR5cGUgTmF2U2VsZWN0b3JMZWFmQWN0aW9uID0ge1xuICAgIC8qKiBVbmlxdWUgaWRlbnRpZmllciBvZiB0aGUgYWN0aW9uLCB1c2VkIGZvciBjbGljayB0cmFja2luZyAqL1xuICAgIGlkOiBzdHJpbmcgfCBudWxsO1xuICAgIC8qKiBBY3Rpb24gbGFiZWwgdG8gZGlzcGxheSAqL1xuICAgIGxhYmVsOiBzdHJpbmc7XG4gICAgLyoqIFRlY2huaWNhbCBuYW1lIG9mIHRoZSBhY3Rpb24sIHVzZWQgdG8gaWRlbnRpZnkgdGhlIGFjdGlvbiAqL1xuICAgIG5hbWU6IHN0cmluZztcbiAgICAvKiogT3B0aW9uYWwgaWNvbiB0byBkaXNwbGF5IG9uIHRoZSBhY3Rpb24gKi9cbiAgICBpY29uOiBzdHJpbmcgfCBudWxsO1xuICAgIC8qKiBPcHRpb25hbCBTdGF0dXMgKi9cbiAgICBzdGF0dXM6ICdkaXNhYmxlZCcgfCAnbG9ja2VkJyB8IG51bGw7XG59O1xuXG4vKipcbiAqIFJlcHJlc2VudCBmaW5hbCBlbnRyeSBvZiB0aGUgbmF2IHNlbGVjdG9yXG4gKi9cbmV4cG9ydCB0eXBlIE5hdlNlbGVjdG9yTGVhZiA9IHtcbiAgICBwaWN0dXJlVXJsOiBzdHJpbmcgfCBudWxsO1xuICAgIC8qKiBDb3VudGVyIHRvIGRpc3BsYXkgb24gdGhlIGVudHJ5LCB0byBpZ25vcmUgaWYgdGhlIGxlYWYgaGFzIGRldGFpbHMgKi9cbiAgICBjb3VudGVyOiBudW1iZXIgfCBudWxsO1xuICAgIC8qKiBXaGVuIHRydWUsIHRoZSBsZWFmIHdpbGwgYmUgaGlkZGVuICovXG4gICAgbWlzc2luZ1Blcm1pc3Npb246IGJvb2xlYW47XG4gICAgLyoqIEZvciBzb2NpYWwgcHJvZmlsZXMgb3IgYWQgYWNjb3VudHMgdGhlIGNvcnJlc3BvbmRpbmcgbmV0d29yayAqL1xuICAgIG5ldHdvcms6IEF2YXRhck5ldHdvcmsgfCBudWxsO1xuICAgIC8qKiBUcmFuc2xhdGVkIHRleHQgd2hlbiB0aGUgZW50cnkgaXMgZGlzYWJsZWQgKi9cbiAgICBkaXNhYmxlUmVhc29uOiBzdHJpbmcgfCBudWxsO1xuICAgIC8qKiBJbmRpY2F0ZXMgaWYgZW50cnkgaGFzIGl0cyB0b2tlbiBpbnZhbGlkICovXG4gICAgdG9rZW5JbnZhbGlkOiBib29sZWFuO1xuICAgIC8qKiBJbmRpY2F0ZXMgaWYgZW50cnkgaXMgbG9ja2VkICovXG4gICAgZmVhdHVyZUxvY2tlZDogYm9vbGVhbjtcbiAgICAvKiogU3ViIGVsZW1lbnRzIG9mIHRoZSBsZWFmLCB0aGV5IGFyZSBvcHRpb25hbCAqL1xuICAgIGRldGFpbHM6IE5hdlNlbGVjdG9yTGVhZkRldGFpbHNbXTtcbiAgICAvKiogT3B0aW9uYWwgYWN0aW9ucyB0aGF0IGNhbiBiZSBwZXJmb3JtZWQgb24gdGhlIGxlYWYgKi9cbiAgICBhY3Rpb25zOiBOYXZTZWxlY3RvckxlYWZBY3Rpb25bXTtcbiAgICB0eXBlOiAnTEVBRic7XG59ICYgTmF2U2VsZWN0b3JCYXNlTm9kZTtcblxuLyoqXG4gKiBSZXByZXNlbnQgYSBncm91cCBvZiBlbnRyaWVzIHdoaWNoIGhhcyBiZWVuIGNyZWF0ZWQgYnkgdGhlIHVzZXIgKGV4OiBtZW51R3JvdXApXG4gKi9cbmV4cG9ydCB0eXBlIE5hdlNlbGVjdG9yR3JvdXAgPSB7XG4gICAgLyoqIEEgZ3JvdXAgY2FuIG9ubHkgaGF2ZSBsZWF2ZXMgYXMgY2hpbGRyZW4gKi9cbiAgICBjaGlsZHJlbjogTmF2U2VsZWN0b3JMZWFmW107XG4gICAgLyoqIEluZGljYXRlcyBpZiB0aGUgZ3JvdXAgc2hvdWxkIGJlIGZvbGRlZCBvciBleHBhbmRlZCB3aGVuIGdlbmVyYXRpbmcgdGhlIG5hdiBzZWxlY3RvciAqL1xuICAgIGZvbGRlZDogYm9vbGVhbjtcbiAgICB0eXBlOiAnR1JPVVAnO1xufSAmIE5hdlNlbGVjdG9yQmFzZU5vZGU7XG5cbi8qKlxuICogUmVwcmVzZW50IGEgY2F0ZWdvcnkgb2YgZW50cmllcyB3aGljaCBoYXMgYmVlbiBjcmVhdGVkIGJ5IHRoZSBwcm9kdWN0IHRvIHNlcGFyYXRlIGRpZmZlcmVudCBraW5kIG9mIGVudHJpZXMgKGV4OiBzb2NpYWwgcHJvZmlsZXMsIHJlcG9ydHMsIGFkIGFjY291bnRz4oCmKVxuICovXG5leHBvcnQgdHlwZSBOYXZTZWxlY3RvckNhdGVnb3J5ID0ge1xuICAgIC8qKiBBIENhdGVnb3J5IGNhbiBoYXZlIGxlYXZlcyBvciBncm91cHMgYXMgY2hpbGRyZW4sIHlvdSBjYW4gaGF2ZSBsZWF2ZXMgYWxvbmdzaWRlIHdpdGggZ3JvdXBzICovXG4gICAgY2hpbGRyZW46IChOYXZTZWxlY3RvckxlYWYgfCBOYXZTZWxlY3Rvckdyb3VwKVtdO1xuICAgIC8qKiBJbmRpY2F0ZXMgaWYgdGhlIGdyb3VwIHNob3VsZCBiZSBmb2xkZWQgb3IgZXhwYW5kZWQgd2hlbiBnZW5lcmF0aW5nIHRoZSBuYXYgc2VsZWN0b3IgKi9cbiAgICBmb2xkZWQ6IGJvb2xlYW47XG4gICAgLyoqIFRpdGxlIG9mIHRoZSBlbXB0eSBzdGF0ZSAqL1xuICAgIGVtcHR5U3RhdGVUaXRsZT86IHN0cmluZztcbiAgICB0eXBlOiAnQ0FURUdPUlknO1xufSAmIE5hdlNlbGVjdG9yQmFzZU5vZGU7XG5cbmV4cG9ydCB0eXBlIE5hdlNlbGVjdG9yRW50cnkgPSBOYXZTZWxlY3RvckxlYWYgfCBOYXZTZWxlY3Rvckdyb3VwIHwgTmF2U2VsZWN0b3JDYXRlZ29yeTtcblxuLyoqXG4gKiBSZXByZXNlbnQgZGV0YWlscyBvZiBhIGxlYWYsIHRoZXkgYXJlIHVzZWQgdG8gYWxsb3cgdG8gZGlzcGxheSBtb3JlIHNwZWNpZmljIGluZm9ybWF0aW9uIGFib3V0IHRoZSBsZWFmXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgTmF2U2VsZWN0b3JMZWFmRGV0YWlscyB7XG4gICAgLyoqIFVuaXF1ZSBpZGVudGlmaWVyIG9mIHRoZSBub2RlICovXG4gICAgdWlkOiBzdHJpbmc7XG4gICAgLyoqIENvdW50ZXIgdG8gZGlzcGxheSBvbiB0aGUgZW50cnkgKi9cbiAgICBjb3VudGVyOiBudW1iZXIgfCBudWxsO1xuICAgIC8qKiBJZiB0cnVlLCBleGNsdWRlcyB0aGlzIGZyb20gdGhlIGNvdW50ZXIgc3VtICovXG4gICAgZXhjbHVkZWRDb3VudGVyU3VtOiBib29sZWFuO1xuICAgIC8qKiBEaXNwbGF5ZWQgbmFtZSBvZiB0aGUgbm9kZSAqL1xuICAgIG5hbWU6IHN0cmluZztcbiAgICAvKiogVHJhbnNsYXRpb24gb2YgdGhlIGVycm9yIG9uIHRoZSBsZWFmICovXG4gICAgZXJyb3JSZWFzb246IHN0cmluZyB8IG51bGw7XG59XG5cbmV4cG9ydCBjb25zdCBpc05hdlNlbGVjdG9yRW50cnlBTGVhZiA9IChlbnRyeTogTmF2U2VsZWN0b3JFbnRyeSk6IGVudHJ5IGlzIE5hdlNlbGVjdG9yTGVhZiA9PiBlbnRyeS50eXBlID09PSAnTEVBRic7XG5cbmV4cG9ydCBjb25zdCBpc05hdlNlbGVjdG9yRW50cnlBR3JvdXAgPSAoZW50cnk6IE5hdlNlbGVjdG9yRW50cnkpOiBlbnRyeSBpcyBOYXZTZWxlY3Rvckdyb3VwID0+IGVudHJ5LnR5cGUgPT09ICdHUk9VUCc7XG5cbmV4cG9ydCBjb25zdCBpc05hdlNlbGVjdG9yRW50cnlBQ2F0ZWdvcnkgPSAoZW50cnk6IE5hdlNlbGVjdG9yRW50cnkpOiBlbnRyeSBpcyBOYXZTZWxlY3RvckNhdGVnb3J5ID0+IGVudHJ5LnR5cGUgPT09ICdDQVRFR09SWSc7XG5cbi8qKlxuICogUmVwcmVzZW50IHRoZSBhY2Nlc3NpYmlsaXR5IG9uIGEgbm9kZVxuICovXG5leHBvcnQgdHlwZSBOb2RlQWNjZXNzaWJpbGl0eSA9IHtcbiAgICAvKiogTnVtYmVyIG9mIHNpYmxpbmcgZWxlbWVudHMsIGl0c2VsZiBpbmNsdWRlZC4gRXg6IHRoZXJlIGFyZSA3IHNvY2lhbCBwcm9maWxlcyBkaXNwbGF5IGluIHRoZSBncm91cCAqL1xuICAgIGFyaWFTZXRzaXplOiBudW1iZXI7XG4gICAgLyoqIEluZGV4IHN0YXJ0aW5nIGZyb20gMSBvZiB0aGUgZWxlbWVudCBhbG9uZ3NpZGUgaXRzIHNpYmxpbmcgKi9cbiAgICBhcmlhUG9zaW5zZXQ6IG51bWJlcjtcbiAgICAvKiogMCB0byBiZSBmb2N1c2FibGUgYnkgVGFiIGtleSBhbmQgLTEgdG8gYmUgZm9jdXNhYmxlIGJ5IGtleWJvYXJkIHdpdGggSlMgKi9cbiAgICB0YWJJbmRleDogbnVtYmVyO1xuICAgIC8qKiBJbiBhIHRyZWUsIHRoZSBkZWVwIGxldmVsLCBzdGFydGluZyBmcm9tIDEgKi9cbiAgICBhcmlhTGV2ZWw6IG51bWJlcjtcbn07XG5cbmV4cG9ydCB0eXBlIEludGVybmFsTmF2U2VsZWN0b3JMZWFmQWN0aW9uID0ge1xuICAgIC8qKiBVbmlxdWUgaWRlbnRpZmllciBvZiB0aGUgYWN0aW9uLCB1c2VkIGZvciBjbGljayB0cmFja2luZyAqL1xuICAgIGlkOiBzdHJpbmcgfCBudWxsO1xuICAgIC8qKiBBY3Rpb24gbGFiZWwgdG8gZGlzcGxheSAqL1xuICAgIGxhYmVsOiBzdHJpbmc7XG4gICAgLyoqIFRlY2huaWNhbCBuYW1lIG9mIHRoZSBhY3Rpb24sIHVzZWQgdG8gaWRlbnRpZnkgdGhlIGFjdGlvbiAqL1xuICAgIG5hbWU6IHN0cmluZztcbiAgICAvKiogT3B0aW9uYWwgaWNvbiB0byBkaXNwbGF5IG9uIHRoZSBhY3Rpb24gKi9cbiAgICBpY29uOiBzdHJpbmcgfCBudWxsO1xuICAgIC8qKiBPcHRpb25hbCBTdGF0dXMgKi9cbiAgICBzdGF0dXM6ICdkaXNhYmxlZCcgfCAnbG9ja2VkJyB8IG51bGw7XG59O1xuXG4vKipcbiAqIFJlcHJlc2VudCBhIG5vZGVcbiAqL1xuZXhwb3J0IHR5cGUgSW50ZXJuYWxOYXZTZWxlY3RvckJhc2VOb2RlID0ge1xuICAgIC8qKiBVbmlxdWUgaWRlbnRpZmllciBvZiB0aGUgZW50cnkgKi9cbiAgICB1aWQ6IHN0cmluZztcbiAgICAvKiogRGlzcGxheWVkIG5hbWUgb2YgdGhlIGVudHJ5ICovXG4gICAgYWxpYXM6IHN0cmluZztcbiAgICBhY2Nlc3NpYmlsaXR5OiBOb2RlQWNjZXNzaWJpbGl0eTtcbiAgICAvKiogV2hlbiBoaWRkZW4sIHRoZSBlbnRyeSBpcyBub3QgZGlzcGxheWVkLCB1c2VkIHdoZW4gc2VhcmNoaW5nIGFuIGVsZW1lbnQgKi9cbiAgICBoaWRkZW46IGJvb2xlYW47XG4gICAgLyoqIFdoZW4gdHJ1ZSwgeW91IGNhbiBuYXZpZ2F0ZSB3aXRoIGFycm93IGtleXMgb24gdGhpcyBlbnRyeSAqL1xuICAgIGZvY3VzYWJsZTogYm9vbGVhbjtcbn07XG5cbi8qKlxuICogUmVwcmVzZW50IGEgZ3JvdXAgb2YgZW50cmllcyB3aGljaCBoYXMgYmVlbiBjcmVhdGVkIGJ5IHRoZSB1c2VyIChleDogbWVudUdyb3VwKVxuICovXG5leHBvcnQgdHlwZSBJbnRlcm5hbE5hdlNlbGVjdG9yR3JvdXAgPSB7XG4gICAgLyoqIEEgZ3JvdXAgY2FuIG9ubHkgaGF2ZSBsZWF2ZXMgYXMgY2hpbGRyZW4gKi9cbiAgICBjaGlsZHJlbjogSW50ZXJuYWxOYXZTZWxlY3RvckxlYWZbXTtcbiAgICAvKiogUGljdHVyZSB1cmwgb2YgdGhlIGdyb3VwLCB1c2VkIHdoZW4gdGhlIG5hdiBzZWxlY3RvciBpcyBtaW5pZmllZCAqL1xuICAgIGNoaWxkcmVuUGljdHVyZVVybFNhbXBsZTogeyB1cmw6IHN0cmluZyB8IG51bGw7IGluaXRpYWw6IHN0cmluZyB9W107XG4gICAgLyoqIEluZGljYXRlcyB3aGVuZXZlciB0aGUgZ3JvdXAgaXMgZm9sZGVkIG9yIG5vdCAqL1xuICAgIGZvbGRlZDogYm9vbGVhbjtcbiAgICAvKiogSW5kaWNhdGVzIHRoZSBjb3VudGVyIHZhbHVlIHRvIGRpc3BsYXkgd2hlbiB0aGUgZ3JvdXAgaXMgZm9sZGVkICovXG4gICAgY291bnRlcjogbnVtYmVyO1xuICAgIC8qKiBJbmRpY2F0ZXMgaWYgdGhlIGNvdW50ZXIgc2hvdWxkIGJlIGRpc3BsYXkgd2hlbiB0aGUgZ3JvdXAgaXMgZm9sZGVkICovXG4gICAgZGlzcGxheUNvdW50ZXI6IGJvb2xlYW47XG4gICAgLyoqIEluZGljYXRlcyBpZiB0aGUgdG9rZW4gaW52YWxpZCBpY29uIHNob3VsZCBiZSBkaXNwbGF5IHdoZW4gdGhlIGdyb3VwIGlzIGZvbGRlZCAqL1xuICAgIGRpc3BsYXlUb2tlbkludmFsaWQ6IGJvb2xlYW47XG4gICAgLyoqIEluZGljYXRlcyBpbiBtdWx0aSBzZWxlY3QgbW9kZSBpZiB0aGUgZ3JvdXAgaGFzIHNvbWUgY2hpbGRyZW4gc2VsZWN0ZWQgKi9cbiAgICB1bmRldGVybWluZWRTZWxlY3Rpb246IGJvb2xlYW47XG4gICAgLyoqIEluZGljYXRlcyBpZiB0aGUgZ3JvdXAgaXMgc2VsZWN0ZWQgKi9cbiAgICBzZWxlY3RlZDogYm9vbGVhbjtcbiAgICAvKiogSW5kaWNhdGVzIGlmIHRoZSBncm91cCBpcyBzZWxlY3RhYmxlICovXG4gICAgc2VsZWN0YWJsZTogYm9vbGVhbjtcbiAgICB0eXBlOiAnR1JPVVAnO1xufSAmIEludGVybmFsTmF2U2VsZWN0b3JCYXNlTm9kZTtcblxuLyoqXG4gKiBSZXByZXNlbnQgYSBjYXRlZ29yeSBvZiBlbnRyaWVzIHdoaWNoIGhhcyBiZWVuIGNyZWF0ZWQgYnkgdGhlIHByb2R1Y3QgdG8gc2VwYXJhdGUgZGlmZmVyZW50IGtpbmQgb2YgZW50cmllcyAoZXg6IHNvY2lhbCBwcm9maWxlcywgcmVwb3J0cywgYWQgYWNjb3VudHPigKYpXG4gKi9cbmV4cG9ydCB0eXBlIEludGVybmFsTmF2U2VsZWN0b3JDYXRlZ29yeSA9IHtcbiAgICAvKiogQSBDYXRlZ29yeSBjYW4gaGF2ZSBsZWF2ZXMgb3IgZ3JvdXBzIGFzIGNoaWxkcmVuLCB5b3UgY2FuIGhhdmUgbGVhdmVzIGFsb25nc2lkZSB3aXRoIGdyb3VwcyAqL1xuICAgIGNoaWxkcmVuOiAoSW50ZXJuYWxOYXZTZWxlY3Rvckdyb3VwIHwgSW50ZXJuYWxOYXZTZWxlY3RvckxlYWYpW107XG4gICAgLyoqIEluZGljYXRlcyB3aGVuZXZlciB0aGUgY2F0ZWdvcnkgaXMgZm9sZGVkIG9yIG5vdCAqL1xuICAgIGZvbGRlZDogYm9vbGVhbjtcbiAgICAvKiogVGl0bGUgb2YgdGhlIGVtcHR5IHN0YXRlICovXG4gICAgZW1wdHlTdGF0ZVRpdGxlPzogc3RyaW5nO1xuICAgIHR5cGU6ICdDQVRFR09SWSc7XG59ICYgSW50ZXJuYWxOYXZTZWxlY3RvckJhc2VOb2RlO1xuXG4vKipcbiAqIFJlcHJlc2VudCBmaW5hbCBlbnRyeSBvZiB0aGUgbmF2IHNlbGVjdG9yXG4gKi9cbmV4cG9ydCB0eXBlIEludGVybmFsTmF2U2VsZWN0b3JMZWFmID0ge1xuICAgIC8qKiBJbmRpY2F0ZXMgaWYgdGhlIGFjdGlvbnMgZHJvcGRvd24gY291bGQgYmUgZGlzcGxheS4gU2hvdWxkIG5vdCBiZSBkaXNwbGF5IGlmIHRoZSBsZWFmIGhhcyBhbiBlcnJvciBzdGF0dXMuICovXG4gICAgYWN0aW9uc0Rpc3BsYXlhYmxlOiBib29sZWFuO1xuICAgIC8qKiBBY3Rpb25zIHRoYXQgY2FuIGJlIHBlcmZvcm1lZCBvbiB0aGUgbGVhZiAqL1xuICAgIGFjdGlvbnM6IEludGVybmFsTmF2U2VsZWN0b3JMZWFmQWN0aW9uW107XG4gICAgLyoqIFBpY3R1cmUgdXJsIHRvIGRpc3BsYXkgb24gdGhlIGF2YXRhciwgb3B0aW9uYWwgKi9cbiAgICBwaWN0dXJlVXJsOiBzdHJpbmcgfCBudWxsO1xuICAgIC8qKiBJbmRpY2F0ZXMgaWYgdGhlIGNvdW50ZXIgY291bGQgYmUgZGlzcGxheS4gVGhlIGxlYWYgc2hvdWxkIG5vdCBiZSBkaXNhYmxlZCwgZmVhdHVyZSBsb2NrZWQgb3IgaGFzIHRva2VuIGludmFsaWQgKi9cbiAgICBjb3VudGVyRGlzcGxheWFibGU6IGJvb2xlYW47XG4gICAgLyoqIEluZGljYXRlcyBpZiB0aGUgdG9rZW4gaW52YWxpZCBpY29uIHNob3VsZCBiZSBkaXNwbGF5LiBTbyB3aGVuIGRpc3BsYXlhYmxlIHdoZW4gbm8gZGV0YWlscyBvciBmb2xkZWQgKi9cbiAgICBkaXNwbGF5Q291bnRlcjogYm9vbGVhbjtcbiAgICAvKiogQ291bnRlciB2YWx1ZSB0byBkaXNwbGF5ICovXG4gICAgY291bnRlcjogbnVtYmVyO1xuICAgIC8qKiBJbmRpY2F0ZXMgaWYgdGhlIHRva2VuIGludmFsaWQgaWNvbiBzaG91bGQgYmUgZGlzcGxheSAqL1xuICAgIGRpc3BsYXlUb2tlbkludmFsaWQ6IGJvb2xlYW47XG4gICAgLyoqIEluZGljYXRlcyBpZiB0aGUgZmVhdHVyZSBpcyBsb2NrZWQgKi9cbiAgICBkaXNwbGF5RmVhdHVyZUxvY2tlZDogYm9vbGVhbjtcbiAgICAvKiogSW5kaWNhdGVzIGlmIHRoZSBsZWFmIGlzIGRpc2FibGVkICovXG4gICAgZGlzYWJsZWQ6IGJvb2xlYW47XG4gICAgLyoqIFRoZSBkaXNhYmxlZCByZWFzb24gdG8gZGlzcGxheSBpbiB0b29sdGlwICovXG4gICAgZGlzYWJsZVJlYXNvbjogc3RyaW5nIHwgbnVsbDtcbiAgICAvKiogSW5kaWNhdGVzIGlmIHRoZSBsZWFmIGlzIHNlbGVjdGVkICovXG4gICAgc2VsZWN0ZWQ6IGJvb2xlYW47XG4gICAgLyoqIEluZGljYXRlcyBpZiB0aGUgbGVhZiBpcyBzZWxlY3RhYmxlICovXG4gICAgc2VsZWN0YWJsZTogYm9vbGVhbjtcbiAgICAvKiogRm9yIHNvY2lhbCBwcm9maWxlcyBvciBhZCBhY2NvdW50cywgdGhlIGNvcnJlc3BvbmRpbmcgbmV0d29yayAqL1xuICAgIG5ldHdvcms6IEF2YXRhck5ldHdvcmsgfCBudWxsO1xuICAgIC8qKiBJbmRpY2F0ZXMgaWYgdGhlIGxlYWYgZm9sZGFibGUuIFNvIHdoZW4gaXQgaGFzIGRldGFpbHMgYW5kIG5vIGVycm9yIHN0YXR1cyAqL1xuICAgIGZvbGRhYmxlOiBib29sZWFuO1xuICAgIC8qKiBJbmRpY2F0ZXMgaWYgdGhlIGxlYWYgaXMgZm9sZGVkICovXG4gICAgZm9sZGVkOiBib29sZWFuO1xuICAgIC8qKiBJbmRpY2F0ZXMgaWYgdGhlIGxlYWYgaGFzIG9uZSBvZiBpdHMgZGV0YWlscyBzZWxlY3RlZCAqL1xuICAgIGRldGFpbFNlbGVjdGVkOiBib29sZWFuO1xuICAgIC8qKiBJbmRpY2F0ZXMgaWYgdGhlIGxlYWYgaGFzIGRldGFpbHMgYW5kIHRoZXkgYXJlIGRpc3BsYXlhYmxlLiBTbyBubyBlcnJvciBzdGF0dXMgKi9cbiAgICBkZXRhaWxzRGlzcGxheWFibGU6IGJvb2xlYW47XG4gICAgLyoqIERldGFpbHMgb2YgdGhlIGxlYWYgKi9cbiAgICBkZXRhaWxzOiBJbnRlcm5hbE5hdlNlbGVjdG9yTGVhZkRldGFpbHNbXTtcbiAgICB0eXBlOiAnTEVBRic7XG4gICAgLyoqIEluZGljYXRlcyBpZiB0aGUgdmlldyBtb3JlIHNlY3Rpb24gc2hvdWxkIGJlIGRpc3BsYXkgZm9yIGRldGFpbHMgKi9cbiAgICB2aWV3TW9yZURpc3BsYXlhYmxlOiBib29sZWFuO1xuICAgIC8qKiBJbmRpY2F0ZXMgaWYgdGhlIHZpZXcgbW9yZSBvciB2aWV3IGxlc3MgYnV0dG9uIGlzIGRpc3BsYXllZCAqL1xuICAgIHZpZXdNb3JlRGlzcGxheWVkOiBib29sZWFuO1xuICAgIC8qKiBOdW1iZXIgb2YgZGV0YWlscyB0byBkaXNwbGF5IHdoZW4gdGhlIHZpZXcgbW9yZSBpcyBub3QgY2xpY2tlZCAqL1xuICAgIHZpZXdNb3JlRGV0YWlsc0Rpc3BsYXllZExpbWl0OiBudW1iZXI7XG59ICYgSW50ZXJuYWxOYXZTZWxlY3RvckJhc2VOb2RlO1xuXG4vKipcbiAqIFJlcHJlc2VudCBkZXRhaWxzIG9mIGEgbGVhZiwgdGhleSBhcmUgdXNlZCB0byBhbGxvdyB0byBkaXNwbGF5IG1vcmUgc3BlY2lmaWMgaW5mb3JtYXRpb24gYWJvdXQgdGhlIGxlYWZcbiAqL1xuZXhwb3J0IHR5cGUgSW50ZXJuYWxOYXZTZWxlY3RvckxlYWZEZXRhaWxzID0ge1xuICAgIC8qKiBVbmlxdWUgaWRlbnRpZmllciBvZiB0aGUgbm9kZSAqL1xuICAgIHVpZDogc3RyaW5nO1xuICAgIC8qKiBDb3VudGVyIHRvIGRpc3BsYXkgb24gdGhlIGRldGFpbCAqL1xuICAgIGNvdW50ZXI6IG51bWJlcjtcbiAgICAvKiogSW5kaWNhdGVzIGlmIHRoZSBjb3VudGVyIHNob3VsZCBiZSBkaXNwbGF5LiBTbyBubyBlcnJvciBvbiB0aGUgZGV0YWlsICovXG4gICAgZGlzcGxheUNvdW50ZXI6IGJvb2xlYW47XG4gICAgLyoqIERpc3BsYXllZCBuYW1lIG9mIHRoZSBub2RlICovXG4gICAgYWxpYXM6IHN0cmluZztcbiAgICAvKiogSW5kaWNhdGVzIGlmIHRoZSBkZXRhaWwgaXMgc2VsZWN0ZWQgKi9cbiAgICBzZWxlY3RlZDogYm9vbGVhbjtcbiAgICAvKiogSW5kaWNhdGVzIGlmIHdlIHNob3VsZCBkaXNwbGF5IGFuIGVycm9yIGljb24gKi9cbiAgICBkaXNwbGF5RXJyb3I6IGJvb2xlYW47XG4gICAgLyoqIFRyYW5zbGF0ZWQgdGV4dCB0byBkaXNwbGF5IGluIHRoZSB0b29sdGlwICovXG4gICAgZXJyb3JSZWFzb246IHN0cmluZyB8IG51bGw7XG4gICAgdHlwZTogJ0xFQUZfREVUQUlMUyc7XG59ICYgSW50ZXJuYWxOYXZTZWxlY3RvckJhc2VOb2RlO1xuXG5leHBvcnQgdHlwZSBJbnRlcm5hbE5hdlNlbGVjdG9yRW50cnkgPVxuICAgIHwgSW50ZXJuYWxOYXZTZWxlY3RvckxlYWZcbiAgICB8IEludGVybmFsTmF2U2VsZWN0b3JHcm91cFxuICAgIHwgSW50ZXJuYWxOYXZTZWxlY3RvckNhdGVnb3J5XG4gICAgfCBJbnRlcm5hbE5hdlNlbGVjdG9yTGVhZkRldGFpbHM7XG5cbmV4cG9ydCBjb25zdCBpc0ludGVybmFsTmF2U2VsZWN0b3JFbnRyeUFMZWFmID0gKGVudHJ5OiBJbnRlcm5hbE5hdlNlbGVjdG9yRW50cnkpOiBlbnRyeSBpcyBJbnRlcm5hbE5hdlNlbGVjdG9yTGVhZiA9PiBlbnRyeS50eXBlID09PSAnTEVBRic7XG5cbmV4cG9ydCBjb25zdCBpc0ludGVybmFsTmF2U2VsZWN0b3JFbnRyeUFOb2RlID0gKFxuICAgIGVudHJ5OiBJbnRlcm5hbE5hdlNlbGVjdG9yRW50cnlcbik6IGVudHJ5IGlzIEludGVybmFsTmF2U2VsZWN0b3JDYXRlZ29yeSB8IEludGVybmFsTmF2U2VsZWN0b3JHcm91cCA9PiBgY2hpbGRyZW5gIGluIGVudHJ5O1xuXG5leHBvcnQgY29uc3QgaXNJbnRlcm5hbE5hdlNlbGVjdG9yRW50cnlBQ2F0ZWdvcnkgPSAoZW50cnk6IEludGVybmFsTmF2U2VsZWN0b3JFbnRyeSk6IGVudHJ5IGlzIEludGVybmFsTmF2U2VsZWN0b3JDYXRlZ29yeSA9PlxuICAgIGVudHJ5LnR5cGUgPT09ICdDQVRFR09SWSc7XG5cbmV4cG9ydCBjb25zdCBpc0ludGVybmFsTmF2U2VsZWN0b3JFbnRyeUFHcm91cCA9IChlbnRyeTogSW50ZXJuYWxOYXZTZWxlY3RvckVudHJ5KTogZW50cnkgaXMgSW50ZXJuYWxOYXZTZWxlY3Rvckdyb3VwID0+XG4gICAgZW50cnkudHlwZSA9PT0gJ0dST1VQJztcblxuZXhwb3J0IGNvbnN0IGlzSW50ZXJuYWxOYXZTZWxlY3RvckVudHJ5QUxlYWZEZXRhaWxzID0gKGVudHJ5OiBJbnRlcm5hbE5hdlNlbGVjdG9yRW50cnkpOiBlbnRyeSBpcyBJbnRlcm5hbE5hdlNlbGVjdG9yTGVhZkRldGFpbHMgPT5cbiAgICBlbnRyeS50eXBlID09PSAnTEVBRl9ERVRBSUxTJztcbiJdfQ==
@@ -200,7 +200,7 @@ export class NavSelectorBuilder {
200
200
  const detailsDisplayable = this.isLeafLogicValid(leaf, LeafLogics.COUNTER) && !!leaf.details.length;
201
201
  const foldable = !!leaf.details.length && detailsDisplayable;
202
202
  const folded = true;
203
- const counter = (leaf.details.reduce((acc, detail) => acc + (detail.counter ?? 0), 0) || leaf.counter) ?? 0;
203
+ const counter = (leaf.details.filter(detail => !detail.excludedCounterSum).reduce((acc, detail) => acc + (detail.counter ?? 0), 0) || leaf.counter) ?? 0;
204
204
  const counterDisplayable = counter !== 0 && this.isLeafLogicValid(leaf, LeafLogics.COUNTER);
205
205
  const disabled = leaf.disableReason !== null;
206
206
  const viewMoreDisplayable = leaf.details.length > detailsDisplayedLimit;
@@ -268,4 +268,4 @@ export class NavSelectorBuilder {
268
268
  .every(([, logic]) => !logic(leaf));
269
269
  }
270
270
  }
271
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmF2LXNlbGVjdG9yLmJ1aWxkZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWJzL3VpLWNvbXBvbmVudHMvbmF2LXNlbGVjdG9yL3NyYy91dGlscy9uYXYtc2VsZWN0b3IuYnVpbGRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBTUgsK0JBQStCLEVBQy9CLDJCQUEyQixFQUMzQix3QkFBd0IsRUFDeEIsdUJBQXVCLEdBTTFCLE1BQU0saUJBQWlCLENBQUM7QUFDekIsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0scUNBQXFDLENBQUM7QUFDL0UsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDbkUsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sb0NBQW9DLENBQUM7QUFDNUUsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFFdkUsTUFBTSxVQUFVLEdBQUc7SUFDZixRQUFRLEVBQUUsVUFBVTtJQUNwQixjQUFjLEVBQUUsZ0JBQWdCO0lBQ2hDLGFBQWEsRUFBRSxlQUFlO0lBQzlCLE9BQU8sRUFBRSxTQUFTO0NBQ1osQ0FBQztBQUdYOzs7R0FHRztBQUNILE1BQU0sT0FBTyxrQkFBa0I7SUFDM0IsNkNBQTZDO0lBQ3JDLE1BQU0sQ0FBQyxvQkFBb0IsR0FBMEQ7UUFDekYsQ0FBQyxVQUFVLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQyxJQUFxQixFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsYUFBYSxLQUFLLElBQUk7UUFDN0UsQ0FBQyxVQUFVLENBQUMsY0FBYyxDQUFDLEVBQUUsQ0FBQyxJQUFxQixFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsYUFBYTtRQUMxRSxDQUFDLFVBQVUsQ0FBQyxhQUFhLENBQUMsRUFBRSxDQUFDLElBQXFCLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxZQUFZO1FBQ3hFLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUMsSUFBcUIsRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLE9BQU8sS0FBSyxJQUFJO0tBQ3pFLENBQUM7SUFFRjs7Ozs7T0FLRztJQUNILE1BQU0sQ0FBQyxLQUFLLENBQUMsT0FBMkIsRUFBRSxnQkFBK0IsRUFBRSxxQkFBNkI7UUFDcEcsSUFBSSxDQUFDLGdCQUFnQixDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQy9CLElBQUksWUFBWSxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUMsT0FBTyxFQUFFLEtBQUssRUFBRSxDQUFDLEVBQUUscUJBQXFCLENBQUMsQ0FBQztRQUMvRSxJQUFJLGdCQUFnQixFQUFFLENBQUM7WUFDbkIsWUFBWSxHQUFHLHVCQUF1QixDQUFDLE1BQU0sQ0FBQyxZQUFZLEVBQUUsZ0JBQWdCLENBQUMsQ0FBQztZQUM5RSxZQUFZLEdBQUcsa0JBQWtCLENBQUMsYUFBYSxDQUFDLFlBQVksRUFBRSxnQkFBZ0IsRUFBRSxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQUUsUUFBUSxFQUFFLEtBQUssRUFBRSxDQUFDLENBQUM7UUFDOUgsQ0FBQztRQUNELE9BQU8sWUFBWSxDQUFDO0lBQ3hCLENBQUM7SUFFRDs7Ozs7T0FLRztJQUNILE1BQU0sQ0FBQyxtQkFBbUIsQ0FDdEIsT0FBMkIsRUFDM0IsaUJBQWtDLEVBQ2xDLHFCQUE2QjtRQUU3QixJQUFJLENBQUMsZ0JBQWdCLENBQUMsT0FBTyxFQUFFLElBQUksQ0FBQyxDQUFDO1FBQ3JDLElBQUksWUFBWSxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUMsT0FBTyxFQUFFLElBQUksRUFBRSxDQUFDLEVBQUUscUJBQXFCLENBQUMsQ0FBQztRQUM5RSxJQUFJLGlCQUFpQixFQUFFLENBQUM7WUFDcEIsS0FBSyxNQUFNLGdCQUFnQixJQUFJLGlCQUFpQixFQUFFLENBQUM7Z0JBQy9DLFlBQVksR0FBRyxzQkFBc0IsQ0FBQyxvQkFBb0IsQ0FBQyxZQUFZLEVBQUUsZ0JBQWdCLENBQUMsQ0FBQztnQkFDM0YsWUFBWSxHQUFHLGtCQUFrQixDQUFDLGFBQWEsQ0FBQyxZQUFZLEVBQUUsZ0JBQWdCLEVBQUUsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFFLFFBQVEsRUFBRSxLQUFLLEVBQUUsQ0FBQyxDQUFDO1lBQzlILENBQUM7UUFDTCxDQUFDO1FBQ0QsT0FBTyxZQUFZLENBQUM7SUFDeEIsQ0FBQztJQUVPLE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQyxPQUEyQixFQUFFLG1CQUFtQixHQUFHLEtBQUs7UUFDcEYsT0FBTyxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsRUFBRTtZQUNwQixJQUFJLHdCQUF3QixDQUFDLEtBQUssQ0FBQyxJQUFJLDJCQUEyQixDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUM7Z0JBQ3hFLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxLQUFLLENBQUMsUUFBUSxFQUFFLG1CQUFtQixDQUFDLENBQUM7WUFDL0QsQ0FBQztpQkFBTSxJQUFJLHVCQUF1QixDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUM7Z0JBQ3hDLElBQUksS0FBSyxDQUFDLE9BQU8sQ0FBQyxNQUFNLElBQUksbUJBQW1CLEVBQUUsQ0FBQztvQkFDOUMsT0FBTyxDQUFDLEtBQUssQ0FBQyw0QkFBNEIsS0FBSyxDQUFDLEdBQUcsK0NBQStDLENBQUMsQ0FBQztnQkFDeEcsQ0FBQztZQUNMLENBQUM7UUFDTCxDQUFDLENBQUMsQ0FBQztJQUNQLENBQUM7SUFFTyxNQUFNLENBQUMsWUFBWSxDQUN2QixPQUEyQixFQUMzQixtQkFBNEIsRUFDNUIsS0FBSyxHQUFHLENBQUMsRUFDVCxxQkFBNkI7UUFFN0IsTUFBTSxVQUFVLEdBQUcsT0FBTzthQUNyQixHQUFHLENBQUMsQ0FBQyxLQUFLLEVBQUUsR0FBRyxFQUFFLEVBQUUsQ0FDaEIsSUFBSSxDQUFDLFVBQVUsQ0FBQyxLQUFLLEVBQUUsRUFBRSxtQkFBbUIsRUFBRSxLQUFLLEVBQUUsR0FBRyxFQUFFLGtCQUFrQixFQUFFLE9BQU8sQ0FBQyxNQUFNLEVBQUUscUJBQXFCLEVBQUUsQ0FBQyxDQUN6SDthQUNBLE1BQU0sQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsS0FBSyxJQUFJLENBQUMsQ0FBQztRQUMvQixPQUFPLHdCQUF3QixDQUFDLFVBQVUsQ0FBQyxVQUFVLENBQUMsQ0FBQztJQUMzRCxDQUFDO0lBRU8sTUFBTSxDQUFDLFVBQVUsQ0FDckIsS0FBdUIsRUFDdkIsRUFDSSxtQkFBbUIsRUFDbkIsS0FBSyxFQUNMLEdBQUcsRUFDSCxrQkFBa0IsRUFDbEIscUJBQXFCLEdBQ2lHO1FBRTFILElBQUksdUJBQXVCLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQztZQUNqQyxPQUFPLElBQUksQ0FBQyxTQUFTLENBQUMsS0FBSyxFQUFFO2dCQUN6QixtQkFBbUI7Z0JBQ25CLEtBQUs7Z0JBQ0wsR0FBRztnQkFDSCxpQkFBaUIsRUFBRSxrQkFBa0I7Z0JBQ3JDLFNBQVMsRUFBRSxJQUFJO2dCQUNmLHFCQUFxQjthQUN4QixDQUFDLENBQUM7UUFDUCxDQUFDO2FBQU0sSUFBSSwyQkFBMkIsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDO1lBQzVDLE9BQU8sSUFBSSxDQUFDLGFBQWEsQ0FBQyxLQUFLLEVBQUU7Z0JBQzdCLG1CQUFtQjtnQkFDbkIsS0FBSztnQkFDTCxHQUFHO2dCQUNILHFCQUFxQixFQUFFLGtCQUFrQjtnQkFDekMscUJBQXFCO2FBQ3hCLENBQUMsQ0FBQztRQUNQLENBQUM7YUFBTSxDQUFDO1lBQ0osT0FBTyxJQUFJLENBQUMsVUFBVSxDQUFDLEtBQUssRUFBRTtnQkFDMUIsbUJBQW1CO2dCQUNuQixLQUFLO2dCQUNMLEdBQUc7Z0JBQ0gsbUJBQW1CLEVBQUUsa0JBQWtCO2dCQUN2QyxTQUFTLEVBQUUsSUFBSTtnQkFDZixxQkFBcUI7YUFDeEIsQ0FBQyxDQUFDO1FBQ1AsQ0FBQztJQUNMLENBQUM7SUFFTyxNQUFNLENBQUMscUJBQXFCLENBQ2hDLEtBQTBCLEVBQzFCLEVBQ0ksU0FBUyxFQUNULG1CQUFtQixFQUNuQixhQUFhLEVBQ2IscUJBQXFCLEdBTXhCO1FBRUQsT0FBTyxLQUFLLENBQUMsUUFBUTthQUNoQixHQUFHLENBQUMsQ0FBQyxLQUFLLEVBQUUsR0FBRyxFQUFFLEVBQUU7WUFDaEIsSUFBSSx1QkFBdUIsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDO2dCQUNqQyxPQUFPLElBQUksQ0FBQyxTQUFTLENBQUMsS0FBSyxFQUFFO29CQUN6QixTQUFTO29CQUNULG1CQUFtQjtvQkFDbkIsS0FBSyxFQUFFLGFBQWEsR0FBRyxDQUFDO29CQUN4QixHQUFHO29CQUNILGlCQUFpQixFQUFFLEtBQUssQ0FBQyxRQUFRLENBQUMsTUFBTTtvQkFDeEMscUJBQXFCO2lCQUN4QixDQUFDLENBQUM7WUFDUCxDQUFDO2lCQUFNLENBQUM7Z0JBQ0osT0FBTyxJQUFJLENBQUMsVUFBVSxDQUFDLEtBQUssRUFBRTtvQkFDMUIsU0FBUztvQkFDVCxtQkFBbUI7b0JBQ25CLEtBQUssRUFBRSxhQUFhLEdBQUcsQ0FBQztvQkFDeEIsR0FBRztvQkFDSCxtQkFBbUIsRUFBRSxLQUFLLENBQUMsUUFBUSxDQUFDLE1BQU07b0JBQzFDLHFCQUFxQjtpQkFDeEIsQ0FBQyxDQUFDO1lBQ1AsQ0FBQztRQUNMLENBQUMsQ0FBQzthQUNELE1BQU0sQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsS0FBSyxJQUFJLENBQUMsQ0FBQztJQUNuQyxDQUFDO0lBRU8sTUFBTSxDQUFDLGFBQWEsQ0FDeEIsSUFBeUIsRUFDekIsRUFDSSxtQkFBbUIsRUFDbkIsS0FBSyxFQUNMLEdBQUcsRUFDSCxxQkFBcUIsRUFDckIscUJBQXFCLEdBT3hCO1FBRUQsTUFBTSxRQUFRLEdBQUcsSUFBSSxDQUFDLHFCQUFxQixDQUFDLElBQUksRUFBRTtZQUM5QyxTQUFTLEVBQUUsQ0FBQyxJQUFJLENBQUMsTUFBTTtZQUN2QixtQkFBbUI7WUFDbkIsYUFBYSxFQUFFLEtBQUs7WUFDcEIscUJBQXFCO1NBQ3hCLENBQUMsQ0FBQztRQUVILE9BQU87WUFDSCxHQUFHLEVBQUUsSUFBSSxDQUFDLEdBQUc7WUFDYixLQUFLLEVBQUUsSUFBSSxDQUFDLEtBQUs7WUFDakIsUUFBUTtZQUNSLE1BQU0sRUFBRSxLQUFLO1lBQ2IsU0FBUyxFQUFFLElBQUk7WUFDZixhQUFhLEVBQUU7Z0JBQ1gsUUFBUSxFQUFFLENBQUMsQ0FBQztnQkFDWixTQUFTLEVBQUUsS0FBSztnQkFDaEIsWUFBWSxFQUFFLEdBQUcsR0FBRyxDQUFDO2dCQUNyQixXQUFXLEVBQUUscUJBQXFCO2FBQ3JDO1lBQ0QsTUFBTSxFQUFFLElBQUksQ0FBQyxNQUFNO1lBQ25CLGVBQWUsRUFBRSxJQUFJLENBQUMsZUFBZTtZQUNyQyxJQUFJLEVBQUUsSUFBSSxDQUFDLElBQUk7U0FDbEIsQ0FBQztJQUNOLENBQUM7SUFFTyxNQUFNLENBQUMsa0JBQWtCLENBQzdCLEtBQXVCLEVBQ3ZCLEVBQ0ksbUJBQW1CLEVBQ25CLFVBQVUsRUFDVixTQUFTLEVBQ1QscUJBQXFCLEdBQ2lGO1FBRTFHLE9BQU8sS0FBSyxDQUFDLFFBQVE7YUFDaEIsR0FBRyxDQUFDLENBQUMsS0FBSyxFQUFFLEdBQUcsRUFBRSxFQUFFLENBQ2hCLElBQUksQ0FBQyxTQUFTLENBQUMsS0FBSyxFQUFFO1lBQ2xCLG1CQUFtQjtZQUNuQixLQUFLLEVBQUUsVUFBVSxHQUFHLENBQUM7WUFDckIsR0FBRztZQUNILGlCQUFpQixFQUFFLEtBQUssQ0FBQyxRQUFRLENBQUMsTUFBTTtZQUN4QyxTQUFTLEVBQUUsU0FBUyxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU07WUFDckMscUJBQXFCO1NBQ3hCLENBQUMsQ0FDTDthQUNBLE1BQU0sQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsS0FBSyxJQUFJLENBQUMsQ0FBQztJQUNuQyxDQUFDO0lBRU8sTUFBTSxDQUFDLFVBQVUsQ0FDckIsSUFBc0IsRUFDdEIsRUFDSSxTQUFTLEVBQ1QsbUJBQW1CLEVBQ25CLEtBQUssRUFDTCxHQUFHLEVBQ0gsbUJBQW1CLEVBQ25CLHFCQUFxQixHQVF4QjtRQUVELE1BQU0sUUFBUSxHQUFHLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLEVBQUUsRUFBRSxtQkFBbUIsRUFBRSxVQUFVLEVBQUUsS0FBSyxFQUFFLFNBQVMsRUFBRSxxQkFBcUIsRUFBRSxDQUFDLENBQUM7UUFDN0gsTUFBTSxtQkFBbUIsR0FBRyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUMsRUFBRSxtQkFBbUIsRUFBRSxFQUFFLEVBQUUsQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDO1FBRTVGLE1BQU0scUJBQXFCLEdBQUcsUUFBUSxDQUFDLE1BQU0sQ0FBQyxDQUFDLEVBQUUsUUFBUSxFQUFFLEVBQUUsRUFBRSxDQUFDLFFBQVEsQ0FBQyxDQUFDLE1BQU0sQ0FBQztRQUVqRixPQUFPO1lBQ0gsR0FBRyxFQUFFLElBQUksQ0FBQyxHQUFHO1lBQ2IsS0FBSyxFQUFFLElBQUksQ0FBQyxLQUFLO1lBQ2pCLFFBQVE7WUFDUix3QkFBd0IsRUFBRSxRQUFRO2lCQUM3QixHQUFHLENBQUMsQ0FBQyxLQUFLLEVBQUUsR0FBRyxFQUFFLEVBQUUsQ0FDaEIsK0JBQStCLENBQUMsS0FBSyxDQUFDLElBQUksR0FBRyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxHQUFHLEVBQUUsS0FBSyxDQUFDLFVBQVUsRUFBRSxPQUFPLEVBQUUsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQ2hIO2lCQUNBLE1BQU0sQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsS0FBSyxJQUFJLENBQUM7WUFDOUIsTUFBTSxFQUFFLEtBQUs7WUFDYixhQUFhLEVBQUU7Z0JBQ1gsUUFBUSxFQUFFLENBQUMsQ0FBQztnQkFDWixZQUFZLEVBQUUsR0FBRyxHQUFHLENBQUM7Z0JBQ3JCLFNBQVMsRUFBRSxLQUFLO2dCQUNoQixXQUFXLEVBQUUsbUJBQW1CO2FBQ25DO1lBQ0QsU0FBUztZQUNULGNBQWMsRUFBRSxJQUFJLENBQUMsTUFBTSxJQUFJLFFBQVEsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQywrQkFBK0IsQ0FBQyxLQUFLLENBQUMsSUFBSSxLQUFLLENBQUMsT0FBTyxLQUFLLENBQUMsQ0FBQztZQUNwSCxPQUFPLEVBQUUsUUFBUSxDQUFDLE1BQU0sQ0FBQyxDQUFDLEdBQUcsRUFBRSxFQUFFLE9BQU8sRUFBRSxFQUFFLEVBQUUsQ0FBQyxHQUFHLEdBQUcsT0FBTyxFQUFFLENBQUMsQ0FBQztZQUNoRSxtQkFBbUI7WUFDbkIsUUFBUSxFQUFFLEtBQUs7WUFDZixVQUFVLEVBQUUsbUJBQW1CLElBQUksUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDLEVBQUUsVUFBVSxFQUFFLEVBQUUsRUFBRSxDQUFDLFVBQVUsQ0FBQztZQUNoRixxQkFBcUIsRUFBRSxxQkFBcUIsS0FBSyxRQUFRLENBQUMsTUFBTSxJQUFJLHFCQUFxQixHQUFHLENBQUM7WUFDN0YsTUFBTSxFQUFFLElBQUksQ0FBQyxNQUFNO1lBQ25CLElBQUksRUFBRSxJQUFJLENBQUMsSUFBSTtTQUNsQixDQUFDO0lBQ04sQ0FBQztJQUVPLE1BQU0sQ0FBQyxTQUFTLENBQ3BCLElBQXFCLEVBQ3JCLEVBQ0ksU0FBUyxFQUNULG1CQUFtQixFQUNuQixLQUFLLEVBQ0wsR0FBRyxFQUNILGlCQUFpQixFQUNqQixxQkFBcUIsR0FReEI7UUFFRCxJQUFJLElBQUksQ0FBQyxpQkFBaUIsRUFBRSxDQUFDO1lBQ3pCLE9BQU8sSUFBSSxDQUFDO1FBQ2hCLENBQUM7UUFFRCxNQUFNLGtCQUFrQixHQUFHLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLEVBQUUsVUFBVSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQztRQUNwRyxNQUFNLFFBQVEsR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxNQUFNLElBQUksa0JBQWtCLENBQUM7UUFDN0QsTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDO1FBQ3BCLE1BQU0sT0FBTyxHQUFHLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQyxHQUFHLEVBQUUsTUFBTSxFQUFFLEVBQUUsQ0FBQyxHQUFHLEdBQUcsQ0FBQyxNQUFNLENBQUMsT0FBTyxJQUFJLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxJQUFJLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDNUcsTUFBTSxrQkFBa0IsR0FBRyxPQUFPLEtBQUssQ0FBQyxJQUFJLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLEVBQUUsVUFBVSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBRTVGLE1BQU0sUUFBUSxHQUFHLElBQUksQ0FBQyxhQUFhLEtBQUssSUFBSSxDQUFDO1FBRTdDLE1BQU0sbUJBQW1CLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxNQUFNLEdBQUcscUJBQXFCLENBQUM7UUFFeEUsT0FBTztZQUNILEdBQUcsRUFBRSxJQUFJLENBQUMsR0FBRztZQUNiLEtBQUssRUFBRSxJQUFJLENBQUMsS0FBSztZQUNqQixPQUFPLEVBQUUsSUFBSSxDQUFDLE9BQU87WUFDckIsVUFBVSxFQUFFLElBQUksQ0FBQyxVQUFVO1lBQzNCLGtCQUFrQixFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sSUFBSSxJQUFJLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxFQUFFLFVBQVUsQ0FBQyxPQUFPLENBQUM7WUFDNUYsUUFBUTtZQUNSLGFBQWEsRUFBRSxJQUFJLENBQUMsYUFBYTtZQUNqQyxNQUFNLEVBQUUsS0FBSztZQUNiLFNBQVMsRUFDTCxTQUFTO2dCQUNULENBQUMsQ0FBQyxtQkFBbUIsSUFBSSxJQUFJLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxFQUFFLFVBQVUsQ0FBQyxPQUFPLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxtQkFBbUIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1lBQ3JILGFBQWEsRUFBRTtnQkFDWCxRQUFRLEVBQUUsQ0FBQyxDQUFDO2dCQUNaLFlBQVksRUFBRSxHQUFHLEdBQUcsQ0FBQztnQkFDckIsU0FBUyxFQUFFLEtBQUs7Z0JBQ2hCLFdBQVcsRUFBRSxpQkFBaUI7YUFDakM7WUFDRCxRQUFRO1lBQ1IsTUFBTTtZQUNOLGNBQWMsRUFBRSxNQUFNLElBQUksa0JBQWtCO1lBQzVDLGtCQUFrQjtZQUNsQixPQUFPO1lBQ1AsT0FBTyxFQUFFLElBQUksQ0FBQyxPQUFPO1lBQ3JCLG1CQUFtQixFQUFFLElBQUksQ0FBQyxZQUFZLElBQUksSUFBSSxDQUFDLGdCQUFnQixDQUFDLElBQUksRUFBRSxVQUFVLENBQUMsYUFBYSxFQUFFLFVBQVUsQ0FBQyxPQUFPLENBQUM7WUFDbkgsb0JBQW9CLEVBQ2hCLElBQUksQ0FBQyxhQUFhLElBQUksSUFBSSxDQUFDLGdCQUFnQixDQUFDLElBQUksRUFBRSxVQUFVLENBQUMsY0FBYyxFQUFFLFVBQVUsQ0FBQyxhQUFhLEVBQUUsVUFBVSxDQUFDLE9BQU8sQ0FBQztZQUM5SCxRQUFRLEVBQUUsS0FBSztZQUNmLFVBQVUsRUFBRSxtQkFBbUI7Z0JBQzNCLENBQUMsQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxFQUFFLFVBQVUsQ0FBQyxPQUFPLENBQUM7Z0JBQ2pELENBQUMsQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxFQUFFLFVBQVUsQ0FBQyxjQUFjLEVBQUUsVUFBVSxDQUFDLGFBQWEsRUFBRSxVQUFVLENBQUMsT0FBTyxDQUFDO1lBQzFHLGtCQUFrQjtZQUNsQixPQUFPLEVBQUUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDLE1BQU0sRUFBRSxLQUFLLEdBQUcsQ0FBQyxFQUFFLFNBQVMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1lBQ2xHLGNBQWMsRUFBRSxLQUFLO1lBQ3JCLElBQUksRUFBRSxNQUFNO1lBQ1osbUJBQW1CO1lBQ25CLGlCQUFpQixFQUFFLG1CQUFtQjtZQUN0Qyw2QkFBNkIsRUFBRSxxQkFBcUI7U0FDdkQsQ0FBQztJQUNOLENBQUM7SUFFTyxNQUFNLENBQUMsZUFBZSxDQUFDLE1BQThCLEVBQUUsS0FBYSxFQUFFLFNBQWtCO1FBQzVGLE9BQU87WUFDSCxHQUFHLEVBQUUsTUFBTSxDQUFDLEdBQUc7WUFDZixPQUFPLEVBQUUsTUFBTSxDQUFDLE9BQU8sSUFBSSxDQUFDO1lBQzVCLGNBQWMsRUFBRSxNQUFNLENBQUMsT0FBTyxLQUFLLElBQUk7WUFDdkMsS0FBSyxFQUFFLE1BQU0sQ0FBQyxJQUFJO1lBQ2xCLE1BQU0sRUFBRSxLQUFLO1lBQ2IsYUFBYSxFQUFFO2dCQUNYLFFBQVEsRUFBRSxDQUFDLENBQUM7Z0JBQ1osWUFBWSxFQUFFLENBQUM7Z0JBQ2YsU0FBUyxFQUFFLEtBQUs7Z0JBQ2hCLFdBQVcsRUFBRSxDQUFDO2FBQ2pCO1lBQ0QsU0FBUztZQUNULFFBQVEsRUFBRSxLQUFLO1lBQ2YsV0FBVyxFQUFFLE1BQU0sQ0FBQyxXQUFXO1lBQy9CLFlBQVksRUFBRSxNQUFNLENBQUMsV0FBVyxLQUFLLElBQUk7WUFDekMsSUFBSSxFQUFFLGNBQWM7U0FDdkIsQ0FBQztJQUNOLENBQUM7SUFFTyxNQUFNLENBQUMsZ0JBQWdCLENBQUMsSUFBcUIsRUFBRSxHQUFHLFFBQXNCO1FBQzVFLE9BQU8sTUFBTSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsb0JBQW9CLENBQUM7YUFDM0MsTUFBTSxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLEdBQWlCLENBQUMsQ0FBQzthQUN4RCxLQUFLLENBQUMsQ0FBQyxDQUFDLEVBQUUsS0FBSyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7SUFDNUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gICAgSW50ZXJuYWxOYXZTZWxlY3RvckNhdGVnb3J5LFxuICAgIEludGVybmFsTmF2U2VsZWN0b3JFbnRyeSxcbiAgICBJbnRlcm5hbE5hdlNlbGVjdG9yR3JvdXAsXG4gICAgSW50ZXJuYWxOYXZTZWxlY3RvckxlYWYsXG4gICAgSW50ZXJuYWxOYXZTZWxlY3RvckxlYWZEZXRhaWxzLFxuICAgIGlzSW50ZXJuYWxOYXZTZWxlY3RvckVudHJ5QUxlYWYsXG4gICAgaXNOYXZTZWxlY3RvckVudHJ5QUNhdGVnb3J5LFxuICAgIGlzTmF2U2VsZWN0b3JFbnRyeUFHcm91cCxcbiAgICBpc05hdlNlbGVjdG9yRW50cnlBTGVhZixcbiAgICBOYXZTZWxlY3RvckNhdGVnb3J5LFxuICAgIE5hdlNlbGVjdG9yRW50cnksXG4gICAgTmF2U2VsZWN0b3JHcm91cCxcbiAgICBOYXZTZWxlY3RvckxlYWYsXG4gICAgTmF2U2VsZWN0b3JMZWFmRGV0YWlscyxcbn0gZnJvbSAnLi4vbmF2LXNlbGVjdG9yJztcbmltcG9ydCB7IE5hdlNlbGVjdG9yQWNjZXNzaWJpbGl0eSB9IGZyb20gJy4uL3V0aWxzL25hdi1zZWxlY3Rvci5hY2Nlc3NpYmlsaXR5JztcbmltcG9ydCB7IE5hdlNlbGVjdG9yRm9sZGluZyB9IGZyb20gJy4uL3V0aWxzL25hdi1zZWxlY3Rvci5mb2xkaW5nJztcbmltcG9ydCB7IE5hdlNlbGVjdG9yTXVsdGlTZWxlY3QgfSBmcm9tICcuLi91dGlscy9uYXYtc2VsZWN0b3IubXVsdGktc2VsZWN0JztcbmltcG9ydCB7IE5hdlNlbGVjdG9yU2luZ2xlU2VsZWN0IH0gZnJvbSAnLi9uYXYtc2VsZWN0b3Iuc2luZ2xlLXNlbGVjdCc7XG5cbmNvbnN0IExlYWZMb2dpY3MgPSB7XG4gICAgRElTQUJMRUQ6ICdESVNBQkxFRCcsXG4gICAgRkVBVFVSRV9MT0NLRUQ6ICdGRUFUVVJFX0xPQ0tFRCcsXG4gICAgVE9LRU5fSU5WQUxJRDogJ1RPS0VOX0lOVkFMSUQnLFxuICAgIENPVU5URVI6ICdDT1VOVEVSJyxcbn0gYXMgY29uc3Q7XG50eXBlIExlYWZMb2dpY3MgPSBrZXlvZiB0eXBlb2YgTGVhZkxvZ2ljcztcblxuLyoqXG4gKiBOYXZTZWxlY3RvckJ1aWxkZXIgaXMgYSB1dGlsaXR5IGNsYXNzIHRoYXQgYnVpbGRzIHRoZSBOYXZTZWxlY3RvciBlbnRyaWVzIGZvciBzaW5nbGUgYW5kIG11bHRpcGxlIHNlbGVjdCBtb2Rlcy5cbiAqIEl0IGFsc28gY2hlY2tzIHRoZSBzdHJ1Y3R1cmUgb2YgdGhlIGVudHJpZXMgdG8gZW5zdXJlIHRoZXkgYXJlIHZhbGlkLlxuICovXG5leHBvcnQgY2xhc3MgTmF2U2VsZWN0b3JCdWlsZGVyIHtcbiAgICAvLyAvIVxcLyFcXCBPcmRlciBvZiBsb2dpY3MgaXMgaW1wb3J0YW50IC8hXFwvIVxcXG4gICAgcHJpdmF0ZSBzdGF0aWMgTEVBRl9MT0dJQ1NfUFJJT1JJVFk6IFJlY29yZDxMZWFmTG9naWNzLCAobGVmOiBOYXZTZWxlY3RvckxlYWYpID0+IGJvb2xlYW4+ID0ge1xuICAgICAgICBbTGVhZkxvZ2ljcy5ESVNBQkxFRF06IChsZWFmOiBOYXZTZWxlY3RvckxlYWYpID0+IGxlYWYuZGlzYWJsZVJlYXNvbiAhPT0gbnVsbCxcbiAgICAgICAgW0xlYWZMb2dpY3MuRkVBVFVSRV9MT0NLRURdOiAobGVhZjogTmF2U2VsZWN0b3JMZWFmKSA9PiBsZWFmLmZlYXR1cmVMb2NrZWQsXG4gICAgICAgIFtMZWFmTG9naWNzLlRPS0VOX0lOVkFMSURdOiAobGVhZjogTmF2U2VsZWN0b3JMZWFmKSA9PiBsZWFmLnRva2VuSW52YWxpZCxcbiAgICAgICAgW0xlYWZMb2dpY3MuQ09VTlRFUl06IChsZWFmOiBOYXZTZWxlY3RvckxlYWYpID0+IGxlYWYuY291bnRlciAhPT0gbnVsbCxcbiAgICB9O1xuXG4gICAgLyoqXG4gICAgICogQnVpbGRzIHRoZSBOYXZTZWxlY3RvciBlbnRyaWVzIGZvciBzaW5nbGUgc2VsZWN0IG1vZGUuXG4gICAgICogQHBhcmFtIGVudHJpZXMgbmF2IHNlbGVjdG9yIGVudHJpZXNcbiAgICAgKiBAcGFyYW0gc2VsZWN0ZWRFbnRyeVVpZCBzZWxlY3RlZCBlbnRyeSB1aWRcbiAgICAgKiBAcGFyYW0gZGV0YWlsc0Rpc3BsYXllZExpbWl0IG51bWJlciBvZiBkZXRhaWxzIGRpc3BsYXllZCBsaW1pdFxuICAgICAqL1xuICAgIHN0YXRpYyBidWlsZChlbnRyaWVzOiBOYXZTZWxlY3RvckVudHJ5W10sIHNlbGVjdGVkRW50cnlVaWQ6IHN0cmluZyB8IG51bGwsIGRldGFpbHNEaXNwbGF5ZWRMaW1pdDogbnVtYmVyKTogSW50ZXJuYWxOYXZTZWxlY3RvckVudHJ5W10ge1xuICAgICAgICB0aGlzLnN0cnVjdHVyZUNoZWNrZXIoZW50cmllcyk7XG4gICAgICAgIGxldCBidWlsdEVudHJpZXMgPSB0aGlzLmJ1aWxkRW50cmllcyhlbnRyaWVzLCBmYWxzZSwgMSwgZGV0YWlsc0Rpc3BsYXllZExpbWl0KTtcbiAgICAgICAgaWYgKHNlbGVjdGVkRW50cnlVaWQpIHtcbiAgICAgICAgICAgIGJ1aWx0RW50cmllcyA9IE5hdlNlbGVjdG9yU2luZ2xlU2VsZWN0LnNlbGVjdChidWlsdEVudHJpZXMsIHNlbGVjdGVkRW50cnlVaWQpO1xuICAgICAgICAgICAgYnVpbHRFbnRyaWVzID0gTmF2U2VsZWN0b3JGb2xkaW5nLnVuZm9sZFBhcmVudHMoYnVpbHRFbnRyaWVzLCBzZWxlY3RlZEVudHJ5VWlkLCB7IG11bHRpcGxlTW9kZTogZmFsc2UsIG1pbmlmaWVkOiBmYWxzZSB9KTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gYnVpbHRFbnRyaWVzO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEJ1aWxkcyB0aGUgTmF2U2VsZWN0b3IgZW50cmllcyBmb3IgbXVsdGlwbGUgc2VsZWN0IG1vZGUuXG4gICAgICogQHBhcmFtIGVudHJpZXMgbmF2IHNlbGVjdG9yIGVudHJpZXNcbiAgICAgKiBAcGFyYW0gc2VsZWN0ZWRFbnRyeVVpZHMgc2VsZWN0ZWQgZW50cnkgdWlkc1xuICAgICAqIEBwYXJhbSBkZXRhaWxzRGlzcGxheWVkTGltaXQgbnVtYmVyIG9mIGRldGFpbHMgZGlzcGxheWVkIGxpbWl0XG4gICAgICovXG4gICAgc3RhdGljIGJ1aWxkSW5NdWx0aXBsZU1vZGUoXG4gICAgICAgIGVudHJpZXM6IE5hdlNlbGVjdG9yRW50cnlbXSxcbiAgICAgICAgc2VsZWN0ZWRFbnRyeVVpZHM6IHN0cmluZ1tdIHwgbnVsbCxcbiAgICAgICAgZGV0YWlsc0Rpc3BsYXllZExpbWl0OiBudW1iZXJcbiAgICApOiBJbnRlcm5hbE5hdlNlbGVjdG9yRW50cnlbXSB7XG4gICAgICAgIHRoaXMuc3RydWN0dXJlQ2hlY2tlcihlbnRyaWVzLCB0cnVlKTtcbiAgICAgICAgbGV0IGJ1aWx0RW50cmllcyA9IHRoaXMuYnVpbGRFbnRyaWVzKGVudHJpZXMsIHRydWUsIDEsIGRldGFpbHNEaXNwbGF5ZWRMaW1pdCk7XG4gICAgICAgIGlmIChzZWxlY3RlZEVudHJ5VWlkcykge1xuICAgICAgICAgICAgZm9yIChjb25zdCBzZWxlY3RlZEVudHJ5VWlkIG9mIHNlbGVjdGVkRW50cnlVaWRzKSB7XG4gICAgICAgICAgICAgICAgYnVpbHRFbnRyaWVzID0gTmF2U2VsZWN0b3JNdWx0aVNlbGVjdC5zZWxlY3RJbk11bHRpcGxlTW9kZShidWlsdEVudHJpZXMsIHNlbGVjdGVkRW50cnlVaWQpO1xuICAgICAgICAgICAgICAgIGJ1aWx0RW50cmllcyA9IE5hdlNlbGVjdG9yRm9sZGluZy51bmZvbGRQYXJlbnRzKGJ1aWx0RW50cmllcywgc2VsZWN0ZWRFbnRyeVVpZCwgeyBtdWx0aXBsZU1vZGU6IGZhbHNlLCBtaW5pZmllZDogZmFsc2UgfSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGJ1aWx0RW50cmllcztcbiAgICB9XG5cbiAgICBwcml2YXRlIHN0YXRpYyBzdHJ1Y3R1cmVDaGVja2VyKGVudHJpZXM6IE5hdlNlbGVjdG9yRW50cnlbXSwgbXVsdGlwbGVNb2RlRW5hYmxlZCA9IGZhbHNlKTogdm9pZCB7XG4gICAgICAgIGVudHJpZXMuZm9yRWFjaChlbnRyeSA9PiB7XG4gICAgICAgICAgICBpZiAoaXNOYXZTZWxlY3RvckVudHJ5QUdyb3VwKGVudHJ5KSB8fCBpc05hdlNlbGVjdG9yRW50cnlBQ2F0ZWdvcnkoZW50cnkpKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5zdHJ1Y3R1cmVDaGVja2VyKGVudHJ5LmNoaWxkcmVuLCBtdWx0aXBsZU1vZGVFbmFibGVkKTtcbiAgICAgICAgICAgIH0gZWxzZSBpZiAoaXNOYXZTZWxlY3RvckVudHJ5QUxlYWYoZW50cnkpKSB7XG4gICAgICAgICAgICAgICAgaWYgKGVudHJ5LmRldGFpbHMubGVuZ3RoICYmIG11bHRpcGxlTW9kZUVuYWJsZWQpIHtcbiAgICAgICAgICAgICAgICAgICAgY29uc29sZS5lcnJvcihgTmF2U2VsZWN0b3JCdWlsZGVyOiBMZWFmICR7ZW50cnkudWlkfSB3aXRoIGRldGFpbHMgaXMgbm90IGFsbG93ZWQgaW4gbXVsdGlwbGUgbW9kZWApO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBzdGF0aWMgYnVpbGRFbnRyaWVzKFxuICAgICAgICBlbnRyaWVzOiBOYXZTZWxlY3RvckVudHJ5W10sXG4gICAgICAgIG11bHRpcGxlTW9kZUVuYWJsZWQ6IGJvb2xlYW4sXG4gICAgICAgIGxldmVsID0gMSxcbiAgICAgICAgZGV0YWlsc0Rpc3BsYXllZExpbWl0OiBudW1iZXJcbiAgICApOiBJbnRlcm5hbE5hdlNlbGVjdG9yRW50cnlbXSB7XG4gICAgICAgIGNvbnN0IG5ld0VudHJpZXMgPSBlbnRyaWVzXG4gICAgICAgICAgICAubWFwKChlbnRyeSwgaWR4KSA9PlxuICAgICAgICAgICAgICAgIHRoaXMuYnVpbGRFbnRyeShlbnRyeSwgeyBtdWx0aXBsZU1vZGVFbmFibGVkLCBsZXZlbCwgaWR4LCB0b3RhbE51bWJlck9mRW50cnk6IGVudHJpZXMubGVuZ3RoLCBkZXRhaWxzRGlzcGxheWVkTGltaXQgfSlcbiAgICAgICAgICAgIClcbiAgICAgICAgICAgIC5maWx0ZXIoaXQgPT4gaXQgIT09IG51bGwpO1xuICAgICAgICByZXR1cm4gTmF2U2VsZWN0b3JBY2Nlc3NpYmlsaXR5LnJlc2V0Rm9jdXMobmV3RW50cmllcyk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBzdGF0aWMgYnVpbGRFbnRyeShcbiAgICAgICAgZW50cnk6IE5hdlNlbGVjdG9yRW50cnksXG4gICAgICAgIHtcbiAgICAgICAgICAgIG11bHRpcGxlTW9kZUVuYWJsZWQsXG4gICAgICAgICAgICBsZXZlbCxcbiAgICAgICAgICAgIGlkeCxcbiAgICAgICAgICAgIHRvdGFsTnVtYmVyT2ZFbnRyeSxcbiAgICAgICAgICAgIGRldGFpbHNEaXNwbGF5ZWRMaW1pdCxcbiAgICAgICAgfTogeyBtdWx0aXBsZU1vZGVFbmFibGVkOiBib29sZWFuOyBsZXZlbDogbnVtYmVyOyBpZHg6IG51bWJlcjsgdG90YWxOdW1iZXJPZkVudHJ5OiBudW1iZXI7IGRldGFpbHNEaXNwbGF5ZWRMaW1pdDogbnVtYmVyIH1cbiAgICApOiBJbnRlcm5hbE5hdlNlbGVjdG9yRW50cnkgfCBudWxsIHtcbiAgICAgICAgaWYgKGlzTmF2U2VsZWN0b3JFbnRyeUFMZWFmKGVudHJ5KSkge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMuYnVpbGRMZWFmKGVudHJ5LCB7XG4gICAgICAgICAgICAgICAgbXVsdGlwbGVNb2RlRW5hYmxlZCxcbiAgICAgICAgICAgICAgICBsZXZlbCxcbiAgICAgICAgICAgICAgICBpZHgsXG4gICAgICAgICAgICAgICAgdG90YWxOdW1iZXJPZkxlYWY6IHRvdGFsTnVtYmVyT2ZFbnRyeSxcbiAgICAgICAgICAgICAgICBmb2N1c2FibGU6IHRydWUsXG4gICAgICAgICAgICAgICAgZGV0YWlsc0Rpc3BsYXllZExpbWl0LFxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH0gZWxzZSBpZiAoaXNOYXZTZWxlY3RvckVudHJ5QUNhdGVnb3J5KGVudHJ5KSkge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMuYnVpbGRDYXRlZ29yeShlbnRyeSwge1xuICAgICAgICAgICAgICAgIG11bHRpcGxlTW9kZUVuYWJsZWQsXG4gICAgICAgICAgICAgICAgbGV2ZWwsXG4gICAgICAgICAgICAgICAgaWR4LFxuICAgICAgICAgICAgICAgIHRvdGFsTnVtYmVyT2ZDYXRlZ29yeTogdG90YWxOdW1iZXJPZkVudHJ5LFxuICAgICAgICAgICAgICAgIGRldGFpbHNEaXNwbGF5ZWRMaW1pdCxcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMuYnVpbGRHcm91cChlbnRyeSwge1xuICAgICAgICAgICAgICAgIG11bHRpcGxlTW9kZUVuYWJsZWQsXG4gICAgICAgICAgICAgICAgbGV2ZWwsXG4gICAgICAgICAgICAgICAgaWR4LFxuICAgICAgICAgICAgICAgIHRvdGFsTnVtYmVyT2ZHcm91cHM6IHRvdGFsTnVtYmVyT2ZFbnRyeSxcbiAgICAgICAgICAgICAgICBmb2N1c2FibGU6IHRydWUsXG4gICAgICAgICAgICAgICAgZGV0YWlsc0Rpc3BsYXllZExpbWl0LFxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIHN0YXRpYyBidWlsZENhdGVnb3J5Q2hpbGRyZW4oXG4gICAgICAgIGVudHJ5OiBOYXZTZWxlY3RvckNhdGVnb3J5LFxuICAgICAgICB7XG4gICAgICAgICAgICBmb2N1c2FibGUsXG4gICAgICAgICAgICBtdWx0aXBsZU1vZGVFbmFibGVkLFxuICAgICAgICAgICAgY2F0ZWdvcnlMZXZlbCxcbiAgICAgICAgICAgIGRldGFpbHNEaXNwbGF5ZWRMaW1pdCxcbiAgICAgICAgfToge1xuICAgICAgICAgICAgZm9jdXNhYmxlOiBib29sZWFuO1xuICAgICAgICAgICAgbXVsdGlwbGVNb2RlRW5hYmxlZDogYm9vbGVhbjtcbiAgICAgICAgICAgIGNhdGVnb3J5TGV2ZWw6IG51bWJlcjtcbiAgICAgICAgICAgIGRldGFpbHNEaXNwbGF5ZWRMaW1pdDogbnVtYmVyO1xuICAgICAgICB9XG4gICAgKTogKEludGVybmFsTmF2U2VsZWN0b3JHcm91cCB8IEludGVybmFsTmF2U2VsZWN0b3JMZWFmKVtdIHtcbiAgICAgICAgcmV0dXJuIGVudHJ5LmNoaWxkcmVuXG4gICAgICAgICAgICAubWFwKChjaGlsZCwgaWR4KSA9PiB7XG4gICAgICAgICAgICAgICAgaWYgKGlzTmF2U2VsZWN0b3JFbnRyeUFMZWFmKGNoaWxkKSkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5idWlsZExlYWYoY2hpbGQsIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGZvY3VzYWJsZSxcbiAgICAgICAgICAgICAgICAgICAgICAgIG11bHRpcGxlTW9kZUVuYWJsZWQsXG4gICAgICAgICAgICAgICAgICAgICAgICBsZXZlbDogY2F0ZWdvcnlMZXZlbCArIDEsXG4gICAgICAgICAgICAgICAgICAgICAgICBpZHgsXG4gICAgICAgICAgICAgICAgICAgICAgICB0b3RhbE51bWJlck9mTGVhZjogZW50cnkuY2hpbGRyZW4ubGVuZ3RoLFxuICAgICAgICAgICAgICAgICAgICAgICAgZGV0YWlsc0Rpc3BsYXllZExpbWl0LFxuICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5idWlsZEdyb3VwKGNoaWxkLCB7XG4gICAgICAgICAgICAgICAgICAgICAgICBmb2N1c2FibGUsXG4gICAgICAgICAgICAgICAgICAgICAgICBtdWx0aXBsZU1vZGVFbmFibGVkLFxuICAgICAgICAgICAgICAgICAgICAgICAgbGV2ZWw6IGNhdGVnb3J5TGV2ZWwgKyAxLFxuICAgICAgICAgICAgICAgICAgICAgICAgaWR4LFxuICAgICAgICAgICAgICAgICAgICAgICAgdG90YWxOdW1iZXJPZkdyb3VwczogZW50cnkuY2hpbGRyZW4ubGVuZ3RoLFxuICAgICAgICAgICAgICAgICAgICAgICAgZGV0YWlsc0Rpc3BsYXllZExpbWl0LFxuICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KVxuICAgICAgICAgICAgLmZpbHRlcihpdCA9PiBpdCAhPT0gbnVsbCk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBzdGF0aWMgYnVpbGRDYXRlZ29yeShcbiAgICAgICAgbm9kZTogTmF2U2VsZWN0b3JDYXRlZ29yeSxcbiAgICAgICAge1xuICAgICAgICAgICAgbXVsdGlwbGVNb2RlRW5hYmxlZCxcbiAgICAgICAgICAgIGxldmVsLFxuICAgICAgICAgICAgaWR4LFxuICAgICAgICAgICAgdG90YWxOdW1iZXJPZkNhdGVnb3J5LFxuICAgICAgICAgICAgZGV0YWlsc0Rpc3BsYXllZExpbWl0LFxuICAgICAgICB9OiB7XG4gICAgICAgICAgICBtdWx0aXBsZU1vZGVFbmFibGVkOiBib29sZWFuO1xuICAgICAgICAgICAgbGV2ZWw6IG51bWJlcjtcbiAgICAgICAgICAgIGlkeDogbnVtYmVyO1xuICAgICAgICAgICAgdG90YWxOdW1iZXJPZkNhdGVnb3J5OiBudW1iZXI7XG4gICAgICAgICAgICBkZXRhaWxzRGlzcGxheWVkTGltaXQ6IG51bWJlcjtcbiAgICAgICAgfVxuICAgICk6IEludGVybmFsTmF2U2VsZWN0b3JDYXRlZ29yeSB7XG4gICAgICAgIGNvbnN0IGNoaWxkcmVuID0gdGhpcy5idWlsZENhdGVnb3J5Q2hpbGRyZW4obm9kZSwge1xuICAgICAgICAgICAgZm9jdXNhYmxlOiAhbm9kZS5mb2xkZWQsXG4gICAgICAgICAgICBtdWx0aXBsZU1vZGVFbmFibGVkLFxuICAgICAgICAgICAgY2F0ZWdvcnlMZXZlbDogbGV2ZWwsXG4gICAgICAgICAgICBkZXRhaWxzRGlzcGxheWVkTGltaXQsXG4gICAgICAgIH0pO1xuXG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICB1aWQ6IG5vZGUudWlkLFxuICAgICAgICAgICAgYWxpYXM6IG5vZGUuYWxpYXMsXG4gICAgICAgICAgICBjaGlsZHJlbixcbiAgICAgICAgICAgIGhpZGRlbjogZmFsc2UsXG4gICAgICAgICAgICBmb2N1c2FibGU6IHRydWUsXG4gICAgICAgICAgICBhY2Nlc3NpYmlsaXR5OiB7XG4gICAgICAgICAgICAgICAgdGFiSW5kZXg6IC0xLFxuICAgICAgICAgICAgICAgIGFyaWFMZXZlbDogbGV2ZWwsXG4gICAgICAgICAgICAgICAgYXJpYVBvc2luc2V0OiBpZHggKyAxLFxuICAgICAgICAgICAgICAgIGFyaWFTZXRzaXplOiB0b3RhbE51bWJlck9mQ2F0ZWdvcnksXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgZm9sZGVkOiBub2RlLmZvbGRlZCxcbiAgICAgICAgICAgIGVtcHR5U3RhdGVUaXRsZTogbm9kZS5lbXB0eVN0YXRlVGl0bGUsXG4gICAgICAgICAgICB0eXBlOiBub2RlLnR5cGUsXG4gICAgICAgIH07XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBzdGF0aWMgYnVpbGRHcm91cENoaWxkcmVuKFxuICAgICAgICBlbnRyeTogTmF2U2VsZWN0b3JHcm91cCxcbiAgICAgICAge1xuICAgICAgICAgICAgbXVsdGlwbGVNb2RlRW5hYmxlZCxcbiAgICAgICAgICAgIGdyb3VwTGV2ZWwsXG4gICAgICAgICAgICBmb2N1c2FibGUsXG4gICAgICAgICAgICBkZXRhaWxzRGlzcGxheWVkTGltaXQsXG4gICAgICAgIH06IHsgbXVsdGlwbGVNb2RlRW5hYmxlZDogYm9vbGVhbjsgZ3JvdXBMZXZlbDogbnVtYmVyOyBmb2N1c2FibGU6IGJvb2xlYW47IGRldGFpbHNEaXNwbGF5ZWRMaW1pdDogbnVtYmVyIH1cbiAgICApOiBJbnRlcm5hbE5hdlNlbGVjdG9yTGVhZltdIHtcbiAgICAgICAgcmV0dXJuIGVudHJ5LmNoaWxkcmVuXG4gICAgICAgICAgICAubWFwKChjaGlsZCwgaWR4KSA9PlxuICAgICAgICAgICAgICAgIHRoaXMuYnVpbGRMZWFmKGNoaWxkLCB7XG4gICAgICAgICAgICAgICAgICAgIG11bHRpcGxlTW9kZUVuYWJsZWQsXG4gICAgICAgICAgICAgICAgICAgIGxldmVsOiBncm91cExldmVsICsgMSxcbiAgICAgICAgICAgICAgICAgICAgaWR4LFxuICAgICAgICAgICAgICAgICAgICB0b3RhbE51bWJlck9mTGVhZjogZW50cnkuY2hpbGRyZW4ubGVuZ3RoLFxuICAgICAgICAgICAgICAgICAgICBmb2N1c2FibGU6IGZvY3VzYWJsZSAmJiAhZW50cnkuZm9sZGVkLFxuICAgICAgICAgICAgICAgICAgICBkZXRhaWxzRGlzcGxheWVkTGltaXQsXG4gICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgIClcbiAgICAgICAgICAgIC5maWx0ZXIoaXQgPT4gaXQgIT09IG51bGwpO1xuICAgIH1cblxuICAgIHByaXZhdGUgc3RhdGljIGJ1aWxkR3JvdXAoXG4gICAgICAgIG5vZGU6IE5hdlNlbGVjdG9yR3JvdXAsXG4gICAgICAgIHtcbiAgICAgICAgICAgIGZvY3VzYWJsZSxcbiAgICAgICAgICAgIG11bHRpcGxlTW9kZUVuYWJsZWQsXG4gICAgICAgICAgICBsZXZlbCxcbiAgICAgICAgICAgIGlkeCxcbiAgICAgICAgICAgIHRvdGFsTnVtYmVyT2ZHcm91cHMsXG4gICAgICAgICAgICBkZXRhaWxzRGlzcGxheWVkTGltaXQsXG4gICAgICAgIH06IHtcbiAgICAgICAgICAgIGZvY3VzYWJsZTogYm9vbGVhbjtcbiAgICAgICAgICAgIG11bHRpcGxlTW9kZUVuYWJsZWQ6IGJvb2xlYW47XG4gICAgICAgICAgICBsZXZlbDogbnVtYmVyO1xuICAgICAgICAgICAgaWR4OiBudW1iZXI7XG4gICAgICAgICAgICB0b3RhbE51bWJlck9mR3JvdXBzOiBudW1iZXI7XG4gICAgICAgICAgICBkZXRhaWxzRGlzcGxheWVkTGltaXQ6IG51bWJlcjtcbiAgICAgICAgfVxuICAgICk6IEludGVybmFsTmF2U2VsZWN0b3JHcm91cCB7XG4gICAgICAgIGNvbnN0IGNoaWxkcmVuID0gdGhpcy5idWlsZEdyb3VwQ2hpbGRyZW4obm9kZSwgeyBtdWx0aXBsZU1vZGVFbmFibGVkLCBncm91cExldmVsOiBsZXZlbCwgZm9jdXNhYmxlLCBkZXRhaWxzRGlzcGxheWVkTGltaXQgfSk7XG4gICAgICAgIGNvbnN0IGRpc3BsYXlUb2tlbkludmFsaWQgPSBjaGlsZHJlbi5zb21lKCh7IGRpc3BsYXlUb2tlbkludmFsaWQgfSkgPT4gZGlzcGxheVRva2VuSW52YWxpZCk7XG5cbiAgICAgICAgY29uc3Qgc2VsZWN0ZWRDaGlsZHJlbkNvdW50ID0gY2hpbGRyZW4uZmlsdGVyKCh7IHNlbGVjdGVkIH0pID0+IHNlbGVjdGVkKS5sZW5ndGg7XG5cbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIHVpZDogbm9kZS51aWQsXG4gICAgICAgICAgICBhbGlhczogbm9kZS5hbGlhcyxcbiAgICAgICAgICAgIGNoaWxkcmVuLFxuICAgICAgICAgICAgY2hpbGRyZW5QaWN0dXJlVXJsU2FtcGxlOiBjaGlsZHJlblxuICAgICAgICAgICAgICAgIC5tYXAoKGNoaWxkLCBpZHgpID0+XG4gICAgICAgICAgICAgICAgICAgIGlzSW50ZXJuYWxOYXZTZWxlY3RvckVudHJ5QUxlYWYoY2hpbGQpICYmIGlkeCA8IDQgPyB7IHVybDogY2hpbGQucGljdHVyZVVybCwgaW5pdGlhbDogY2hpbGQuYWxpYXNbMF0gfSA6IG51bGxcbiAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgLmZpbHRlcihpdCA9PiBpdCAhPT0gbnVsbCksXG4gICAgICAgICAgICBoaWRkZW46IGZhbHNlLFxuICAgICAgICAgICAgYWNjZXNzaWJpbGl0eToge1xuICAgICAgICAgICAgICAgIHRhYkluZGV4OiAtMSxcbiAgICAgICAgICAgICAgICBhcmlhUG9zaW5zZXQ6IGlkeCArIDEsXG4gICAgICAgICAgICAgICAgYXJpYUxldmVsOiBsZXZlbCxcbiAgICAgICAgICAgICAgICBhcmlhU2V0c2l6ZTogdG90YWxOdW1iZXJPZkdyb3VwcyxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBmb2N1c2FibGUsXG4gICAgICAgICAgICBkaXNwbGF5Q291bnRlcjogbm9kZS5mb2xkZWQgJiYgY2hpbGRyZW4uc29tZShjaGlsZCA9PiBpc0ludGVybmFsTmF2U2VsZWN0b3JFbnRyeUFMZWFmKGNoaWxkKSAmJiBjaGlsZC5jb3VudGVyICE9PSAwKSxcbiAgICAgICAgICAgIGNvdW50ZXI6IGNoaWxkcmVuLnJlZHVjZSgoYWNjLCB7IGNvdW50ZXIgfSkgPT4gYWNjICsgY291bnRlciwgMCksXG4gICAgICAgICAgICBkaXNwbGF5VG9rZW5JbnZhbGlkLFxuICAgICAgICAgICAgc2VsZWN0ZWQ6IGZhbHNlLFxuICAgICAgICAgICAgc2VsZWN0YWJsZTogbXVsdGlwbGVNb2RlRW5hYmxlZCAmJiBjaGlsZHJlbi5zb21lKCh7IHNlbGVjdGFibGUgfSkgPT4gc2VsZWN0YWJsZSksXG4gICAgICAgICAgICB1bmRldGVybWluZWRTZWxlY3Rpb246IHNlbGVjdGVkQ2hpbGRyZW5Db3VudCAhPT0gY2hpbGRyZW4ubGVuZ3RoICYmIHNlbGVjdGVkQ2hpbGRyZW5Db3VudCA+IDAsXG4gICAgICAgICAgICBmb2xkZWQ6IG5vZGUuZm9sZGVkLFxuICAgICAgICAgICAgdHlwZTogbm9kZS50eXBlLFxuICAgICAgICB9O1xuICAgIH1cblxuICAgIHByaXZhdGUgc3RhdGljIGJ1aWxkTGVhZihcbiAgICAgICAgbGVhZjogTmF2U2VsZWN0b3JMZWFmLFxuICAgICAgICB7XG4gICAgICAgICAgICBmb2N1c2FibGUsXG4gICAgICAgICAgICBtdWx0aXBsZU1vZGVFbmFibGVkLFxuICAgICAgICAgICAgbGV2ZWwsXG4gICAgICAgICAgICBpZHgsXG4gICAgICAgICAgICB0b3RhbE51bWJlck9mTGVhZixcbiAgICAgICAgICAgIGRldGFpbHNEaXNwbGF5ZWRMaW1pdCxcbiAgICAgICAgfToge1xuICAgICAgICAgICAgZm9jdXNhYmxlOiBib29sZWFuO1xuICAgICAgICAgICAgbXVsdGlwbGVNb2RlRW5hYmxlZDogYm9vbGVhbjtcbiAgICAgICAgICAgIGxldmVsOiBudW1iZXI7XG4gICAgICAgICAgICBpZHg6IG51bWJlcjtcbiAgICAgICAgICAgIHRvdGFsTnVtYmVyT2ZMZWFmOiBudW1iZXI7XG4gICAgICAgICAgICBkZXRhaWxzRGlzcGxheWVkTGltaXQ6IG51bWJlcjtcbiAgICAgICAgfVxuICAgICk6IEludGVybmFsTmF2U2VsZWN0b3JMZWFmIHwgbnVsbCB7XG4gICAgICAgIGlmIChsZWFmLm1pc3NpbmdQZXJtaXNzaW9uKSB7XG4gICAgICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IGRldGFpbHNEaXNwbGF5YWJsZSA9IHRoaXMuaXNMZWFmTG9naWNWYWxpZChsZWFmLCBMZWFmTG9naWNzLkNPVU5URVIpICYmICEhbGVhZi5kZXRhaWxzLmxlbmd0aDtcbiAgICAgICAgY29uc3QgZm9sZGFibGUgPSAhIWxlYWYuZGV0YWlscy5sZW5ndGggJiYgZGV0YWlsc0Rpc3BsYXlhYmxlO1xuICAgICAgICBjb25zdCBmb2xkZWQgPSB0cnVlO1xuICAgICAgICBjb25zdCBjb3VudGVyID0gKGxlYWYuZGV0YWlscy5yZWR1Y2UoKGFjYywgZGV0YWlsKSA9PiBhY2MgKyAoZGV0YWlsLmNvdW50ZXIgPz8gMCksIDApIHx8IGxlYWYuY291bnRlcikgPz8gMDtcbiAgICAgICAgY29uc3QgY291bnRlckRpc3BsYXlhYmxlID0gY291bnRlciAhPT0gMCAmJiB0aGlzLmlzTGVhZkxvZ2ljVmFsaWQobGVhZiwgTGVhZkxvZ2ljcy5DT1VOVEVSKTtcblxuICAgICAgICBjb25zdCBkaXNhYmxlZCA9IGxlYWYuZGlzYWJsZVJlYXNvbiAhPT0gbnVsbDtcblxuICAgICAgICBjb25zdCB2aWV3TW9yZURpc3BsYXlhYmxlID0gbGVhZi5kZXRhaWxzLmxlbmd0aCA+IGRldGFpbHNEaXNwbGF5ZWRMaW1pdDtcblxuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgdWlkOiBsZWFmLnVpZCxcbiAgICAgICAgICAgIGFsaWFzOiBsZWFmLmFsaWFzLFxuICAgICAgICAgICAgYWN0aW9uczogbGVhZi5hY3Rpb25zLFxuICAgICAgICAgICAgcGljdHVyZVVybDogbGVhZi5waWN0dXJlVXJsLFxuICAgICAgICAgICAgYWN0aW9uc0Rpc3BsYXlhYmxlOiAhIWxlYWYuYWN0aW9ucy5sZW5ndGggJiYgdGhpcy5pc0xlYWZMb2dpY1ZhbGlkKGxlYWYsIExlYWZMb2dpY3MuQ09VTlRFUiksXG4gICAgICAgICAgICBkaXNhYmxlZCxcbiAgICAgICAgICAgIGRpc2FibGVSZWFzb246IGxlYWYuZGlzYWJsZVJlYXNvbixcbiAgICAgICAgICAgIGhpZGRlbjogZmFsc2UsXG4gICAgICAgICAgICBmb2N1c2FibGU6XG4gICAgICAgICAgICAgICAgZm9jdXNhYmxlICYmXG4gICAgICAgICAgICAgICAgKChtdWx0aXBsZU1vZGVFbmFibGVkICYmIHRoaXMuaXNMZWFmTG9naWNWYWxpZChsZWFmLCBMZWFmTG9naWNzLkNPVU5URVIpKSB8fCAoIW11bHRpcGxlTW9kZUVuYWJsZWQgJiYgIWRpc2FibGVkKSksXG4gICAgICAgICAgICBhY2Nlc3NpYmlsaXR5OiB7XG4gICAgICAgICAgICAgICAgdGFiSW5kZXg6IC0xLFxuICAgICAgICAgICAgICAgIGFyaWFQb3NpbnNldDogaWR4ICsgMSxcbiAgICAgICAgICAgICAgICBhcmlhTGV2ZWw6IGxldmVsLFxuICAgICAgICAgICAgICAgIGFyaWFTZXRzaXplOiB0b3RhbE51bWJlck9mTGVhZixcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBmb2xkYWJsZSxcbiAgICAgICAgICAgIGZvbGRlZCxcbiAgICAgICAgICAgIGRpc3BsYXlDb3VudGVyOiBmb2xkZWQgJiYgY291bnRlckRpc3BsYXlhYmxlLFxuICAgICAgICAgICAgY291bnRlckRpc3BsYXlhYmxlLFxuICAgICAgICAgICAgY291bnRlcixcbiAgICAgICAgICAgIG5ldHdvcms6IGxlYWYubmV0d29yayxcbiAgICAgICAgICAgIGRpc3BsYXlUb2tlbkludmFsaWQ6IGxlYWYudG9rZW5JbnZhbGlkICYmIHRoaXMuaXNMZWFmTG9naWNWYWxpZChsZWFmLCBMZWFmTG9naWNzLlRPS0VOX0lOVkFMSUQsIExlYWZMb2dpY3MuQ09VTlRFUiksXG4gICAgICAgICAgICBkaXNwbGF5RmVhdHVyZUxvY2tlZDpcbiAgICAgICAgICAgICAgICBsZWFmLmZlYXR1cmVMb2NrZWQgJiYgdGhpcy5pc0xlYWZMb2dpY1ZhbGlkKGxlYWYsIExlYWZMb2dpY3MuRkVBVFVSRV9MT0NLRUQsIExlYWZMb2dpY3MuVE9LRU5fSU5WQUxJRCwgTGVhZkxvZ2ljcy5DT1VOVEVSKSxcbiAgICAgICAgICAgIHNlbGVjdGVkOiBmYWxzZSxcbiAgICAgICAgICAgIHNlbGVjdGFibGU6IG11bHRpcGxlTW9kZUVuYWJsZWRcbiAgICAgICAgICAgICAgICA/IHRoaXMuaXNMZWFmTG9naWNWYWxpZChsZWFmLCBMZWFmTG9naWNzLkNPVU5URVIpXG4gICAgICAgICAgICAgICAgOiB0aGlzLmlzTGVhZkxvZ2ljVmFsaWQobGVhZiwgTGVhZkxvZ2ljcy5GRUFUVVJFX0xPQ0tFRCwgTGVhZkxvZ2ljcy5UT0tFTl9JTlZBTElELCBMZWFmTG9naWNzLkNPVU5URVIpLFxuICAgICAgICAgICAgZGV0YWlsc0Rpc3BsYXlhYmxlLFxuICAgICAgICAgICAgZGV0YWlsczogbGVhZi5kZXRhaWxzLm1hcChkZXRhaWwgPT4gdGhpcy5idWlsZExlYWZEZXRhaWwoZGV0YWlsLCBsZXZlbCArIDEsIGZvY3VzYWJsZSAmJiAhZm9sZGVkKSksXG4gICAgICAgICAgICBkZXRhaWxTZWxlY3RlZDogZmFsc2UsXG4gICAgICAgICAgICB0eXBlOiAnTEVBRicsXG4gICAgICAgICAgICB2aWV3TW9yZURpc3BsYXlhYmxlLFxuICAgICAgICAgICAgdmlld01vcmVEaXNwbGF5ZWQ6IHZpZXdNb3JlRGlzcGxheWFibGUsXG4gICAgICAgICAgICB2aWV3TW9yZURldGFpbHNEaXNwbGF5ZWRMaW1pdDogZGV0YWlsc0Rpc3BsYXllZExpbWl0LFxuICAgICAgICB9O1xuICAgIH1cblxuICAgIHByaXZhdGUgc3RhdGljIGJ1aWxkTGVhZkRldGFpbChkZXRhaWw6IE5hdlNlbGVjdG9yTGVhZkRldGFpbHMsIGxldmVsOiBudW1iZXIsIGZvY3VzYWJsZTogYm9vbGVhbik6IEludGVybmFsTmF2U2VsZWN0b3JMZWFmRGV0YWlscyB7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICB1aWQ6IGRldGFpbC51aWQsXG4gICAgICAgICAgICBjb3VudGVyOiBkZXRhaWwuY291bnRlciA/PyAwLFxuICAgICAgICAgICAgZGlzcGxheUNvdW50ZXI6IGRldGFpbC5jb3VudGVyICE9PSBudWxsLFxuICAgICAgICAgICAgYWxpYXM6IGRldGFpbC5uYW1lLFxuICAgICAgICAgICAgaGlkZGVuOiBmYWxzZSxcbiAgICAgICAgICAgIGFjY2Vzc2liaWxpdHk6IHtcbiAgICAgICAgICAgICAgICB0YWJJbmRleDogLTEsXG4gICAgICAgICAgICAgICAgYXJpYVBvc2luc2V0OiAxLFxuICAgICAgICAgICAgICAgIGFyaWFMZXZlbDogbGV2ZWwsXG4gICAgICAgICAgICAgICAgYXJpYVNldHNpemU6IDEsXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgZm9jdXNhYmxlLFxuICAgICAgICAgICAgc2VsZWN0ZWQ6IGZhbHNlLFxuICAgICAgICAgICAgZXJyb3JSZWFzb246IGRldGFpbC5lcnJvclJlYXNvbixcbiAgICAgICAgICAgIGRpc3BsYXlFcnJvcjogZGV0YWlsLmVycm9yUmVhc29uICE9PSBudWxsLFxuICAgICAgICAgICAgdHlwZTogJ0xFQUZfREVUQUlMUycsXG4gICAgICAgIH07XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBzdGF0aWMgaXNMZWFmTG9naWNWYWxpZChsZWFmOiBOYXZTZWxlY3RvckxlYWYsIC4uLmV4Y2x1ZGVzOiBMZWFmTG9naWNzW10pOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIE9iamVjdC5lbnRyaWVzKHRoaXMuTEVBRl9MT0dJQ1NfUFJJT1JJVFkpXG4gICAgICAgICAgICAuZmlsdGVyKChba2V5XSkgPT4gIWV4Y2x1ZGVzLmluY2x1ZGVzKGtleSBhcyBMZWFmTG9naWNzKSlcbiAgICAgICAgICAgIC5ldmVyeSgoWywgbG9naWNdKSA9PiAhbG9naWMobGVhZikpO1xuICAgIH1cbn1cbiJdfQ==
271
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmF2LXNlbGVjdG9yLmJ1aWxkZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWJzL3VpLWNvbXBvbmVudHMvbmF2LXNlbGVjdG9yL3NyYy91dGlscy9uYXYtc2VsZWN0b3IuYnVpbGRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBTUgsK0JBQStCLEVBQy9CLDJCQUEyQixFQUMzQix3QkFBd0IsRUFDeEIsdUJBQXVCLEdBTTFCLE1BQU0saUJBQWlCLENBQUM7QUFDekIsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0scUNBQXFDLENBQUM7QUFDL0UsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDbkUsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sb0NBQW9DLENBQUM7QUFDNUUsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFFdkUsTUFBTSxVQUFVLEdBQUc7SUFDZixRQUFRLEVBQUUsVUFBVTtJQUNwQixjQUFjLEVBQUUsZ0JBQWdCO0lBQ2hDLGFBQWEsRUFBRSxlQUFlO0lBQzlCLE9BQU8sRUFBRSxTQUFTO0NBQ1osQ0FBQztBQUdYOzs7R0FHRztBQUNILE1BQU0sT0FBTyxrQkFBa0I7SUFDM0IsNkNBQTZDO0lBQ3JDLE1BQU0sQ0FBQyxvQkFBb0IsR0FBMEQ7UUFDekYsQ0FBQyxVQUFVLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQyxJQUFxQixFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsYUFBYSxLQUFLLElBQUk7UUFDN0UsQ0FBQyxVQUFVLENBQUMsY0FBYyxDQUFDLEVBQUUsQ0FBQyxJQUFxQixFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsYUFBYTtRQUMxRSxDQUFDLFVBQVUsQ0FBQyxhQUFhLENBQUMsRUFBRSxDQUFDLElBQXFCLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxZQUFZO1FBQ3hFLENBQUMsVUFBVSxDQUFDLE9B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QUN2RCxDQUFDO0lBQ04sQ0FBQztJQUVPLE1BQU0sQ0FBQyxlQUFlLENBQUMsTUFBOEIsRUFBRSxLQUFhLEVBQUUsU0FBa0I7UUFDNUYsT0FBTztZQUNILEdBQUcsRUFBRSxNQUFNLENBQUMsR0FBRztZQUNmLE9BQU8sRUFBRSxNQUFNLENBQUMsT0FBTyxJQUFJLENBQUM7WUFDNUIsY0FBYyxFQUFFLE1BQU0sQ0FBQyxPQUFPLEtBQUssSUFBSTtZQUN2QyxLQUFLLEVBQUUsTUFBTSxDQUFDLElBQUk7WUFDbEIsTUFBTSxFQUFFLEtBQUs7WUFDYixhQUFhLEVBQUU7Z0JBQ1gsUUFBUSxFQUFFLENBQUMsQ0FBQztnQkFDWixZQUFZLEVBQUUsQ0FBQztnQkFDZixTQUFTLEVBQUUsS0FBSztnQkFDaEIsV0FBVyxFQUFFLENBQUM7YUFDakI7WUFDRCxTQUFTO1lBQ1QsUUFBUSxFQUFFLEtBQUs7WUFDZixXQUFXLEVBQUUsTUFBTSxDQUFDLFdBQVc7WUFDL0IsWUFBWSxFQUFFLE1BQU0sQ0FBQyxXQUFXLEtBQUssSUFBSTtZQUN6QyxJQUFJLEVBQUUsY0FBYztTQUN2QixDQUFDO0lBQ04sQ0FBQztJQUVPLE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFxQixFQUFFLEdBQUcsUUFBc0I7UUFDNUUsT0FBTyxNQUFNLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxvQkFBb0IsQ0FBQzthQUMzQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsR0FBaUIsQ0FBQyxDQUFDO2FBQ3hELEtBQUssQ0FBQyxDQUFDLENBQUMsRUFBRSxLQUFLLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztJQUM1QyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgICBJbnRlcm5hbE5hdlNlbGVjdG9yQ2F0ZWdvcnksXG4gICAgSW50ZXJuYWxOYXZTZWxlY3RvckVudHJ5LFxuICAgIEludGVybmFsTmF2U2VsZWN0b3JHcm91cCxcbiAgICBJbnRlcm5hbE5hdlNlbGVjdG9yTGVhZixcbiAgICBJbnRlcm5hbE5hdlNlbGVjdG9yTGVhZkRldGFpbHMsXG4gICAgaXNJbnRlcm5hbE5hdlNlbGVjdG9yRW50cnlBTGVhZixcbiAgICBpc05hdlNlbGVjdG9yRW50cnlBQ2F0ZWdvcnksXG4gICAgaXNOYXZTZWxlY3RvckVudHJ5QUdyb3VwLFxuICAgIGlzTmF2U2VsZWN0b3JFbnRyeUFMZWFmLFxuICAgIE5hdlNlbGVjdG9yQ2F0ZWdvcnksXG4gICAgTmF2U2VsZWN0b3JFbnRyeSxcbiAgICBOYXZTZWxlY3Rvckdyb3VwLFxuICAgIE5hdlNlbGVjdG9yTGVhZixcbiAgICBOYXZTZWxlY3RvckxlYWZEZXRhaWxzLFxufSBmcm9tICcuLi9uYXYtc2VsZWN0b3InO1xuaW1wb3J0IHsgTmF2U2VsZWN0b3JBY2Nlc3NpYmlsaXR5IH0gZnJvbSAnLi4vdXRpbHMvbmF2LXNlbGVjdG9yLmFjY2Vzc2liaWxpdHknO1xuaW1wb3J0IHsgTmF2U2VsZWN0b3JGb2xkaW5nIH0gZnJvbSAnLi4vdXRpbHMvbmF2LXNlbGVjdG9yLmZvbGRpbmcnO1xuaW1wb3J0IHsgTmF2U2VsZWN0b3JNdWx0aVNlbGVjdCB9IGZyb20gJy4uL3V0aWxzL25hdi1zZWxlY3Rvci5tdWx0aS1zZWxlY3QnO1xuaW1wb3J0IHsgTmF2U2VsZWN0b3JTaW5nbGVTZWxlY3QgfSBmcm9tICcuL25hdi1zZWxlY3Rvci5zaW5nbGUtc2VsZWN0JztcblxuY29uc3QgTGVhZkxvZ2ljcyA9IHtcbiAgICBESVNBQkxFRDogJ0RJU0FCTEVEJyxcbiAgICBGRUFUVVJFX0xPQ0tFRDogJ0ZFQVRVUkVfTE9DS0VEJyxcbiAgICBUT0tFTl9JTlZBTElEOiAnVE9LRU5fSU5WQUxJRCcsXG4gICAgQ09VTlRFUjogJ0NPVU5URVInLFxufSBhcyBjb25zdDtcbnR5cGUgTGVhZkxvZ2ljcyA9IGtleW9mIHR5cGVvZiBMZWFmTG9naWNzO1xuXG4vKipcbiAqIE5hdlNlbGVjdG9yQnVpbGRlciBpcyBhIHV0aWxpdHkgY2xhc3MgdGhhdCBidWlsZHMgdGhlIE5hdlNlbGVjdG9yIGVudHJpZXMgZm9yIHNpbmdsZSBhbmQgbXVsdGlwbGUgc2VsZWN0IG1vZGVzLlxuICogSXQgYWxzbyBjaGVja3MgdGhlIHN0cnVjdHVyZSBvZiB0aGUgZW50cmllcyB0byBlbnN1cmUgdGhleSBhcmUgdmFsaWQuXG4gKi9cbmV4cG9ydCBjbGFzcyBOYXZTZWxlY3RvckJ1aWxkZXIge1xuICAgIC8vIC8hXFwvIVxcIE9yZGVyIG9mIGxvZ2ljcyBpcyBpbXBvcnRhbnQgLyFcXC8hXFxcbiAgICBwcml2YXRlIHN0YXRpYyBMRUFGX0xPR0lDU19QUklPUklUWTogUmVjb3JkPExlYWZMb2dpY3MsIChsZWY6IE5hdlNlbGVjdG9yTGVhZikgPT4gYm9vbGVhbj4gPSB7XG4gICAgICAgIFtMZWFmTG9naWNzLkRJU0FCTEVEXTogKGxlYWY6IE5hdlNlbGVjdG9yTGVhZikgPT4gbGVhZi5kaXNhYmxlUmVhc29uICE9PSBudWxsLFxuICAgICAgICBbTGVhZkxvZ2ljcy5GRUFUVVJFX0xPQ0tFRF06IChsZWFmOiBOYXZTZWxlY3RvckxlYWYpID0+IGxlYWYuZmVhdHVyZUxvY2tlZCxcbiAgICAgICAgW0xlYWZMb2dpY3MuVE9LRU5fSU5WQUxJRF06IChsZWFmOiBOYXZTZWxlY3RvckxlYWYpID0+IGxlYWYudG9rZW5JbnZhbGlkLFxuICAgICAgICBbTGVhZkxvZ2ljcy5DT1VOVEVSXTogKGxlYWY6IE5hdlNlbGVjdG9yTGVhZikgPT4gbGVhZi5jb3VudGVyICE9PSBudWxsLFxuICAgIH07XG5cbiAgICAvKipcbiAgICAgKiBCdWlsZHMgdGhlIE5hdlNlbGVjdG9yIGVudHJpZXMgZm9yIHNpbmdsZSBzZWxlY3QgbW9kZS5cbiAgICAgKiBAcGFyYW0gZW50cmllcyBuYXYgc2VsZWN0b3IgZW50cmllc1xuICAgICAqIEBwYXJhbSBzZWxlY3RlZEVudHJ5VWlkIHNlbGVjdGVkIGVudHJ5IHVpZFxuICAgICAqIEBwYXJhbSBkZXRhaWxzRGlzcGxheWVkTGltaXQgbnVtYmVyIG9mIGRldGFpbHMgZGlzcGxheWVkIGxpbWl0XG4gICAgICovXG4gICAgc3RhdGljIGJ1aWxkKGVudHJpZXM6IE5hdlNlbGVjdG9yRW50cnlbXSwgc2VsZWN0ZWRFbnRyeVVpZDogc3RyaW5nIHwgbnVsbCwgZGV0YWlsc0Rpc3BsYXllZExpbWl0OiBudW1iZXIpOiBJbnRlcm5hbE5hdlNlbGVjdG9yRW50cnlbXSB7XG4gICAgICAgIHRoaXMuc3RydWN0dXJlQ2hlY2tlcihlbnRyaWVzKTtcbiAgICAgICAgbGV0IGJ1aWx0RW50cmllcyA9IHRoaXMuYnVpbGRFbnRyaWVzKGVudHJpZXMsIGZhbHNlLCAxLCBkZXRhaWxzRGlzcGxheWVkTGltaXQpO1xuICAgICAgICBpZiAoc2VsZWN0ZWRFbnRyeVVpZCkge1xuICAgICAgICAgICAgYnVpbHRFbnRyaWVzID0gTmF2U2VsZWN0b3JTaW5nbGVTZWxlY3Quc2VsZWN0KGJ1aWx0RW50cmllcywgc2VsZWN0ZWRFbnRyeVVpZCk7XG4gICAgICAgICAgICBidWlsdEVudHJpZXMgPSBOYXZTZWxlY3RvckZvbGRpbmcudW5mb2xkUGFyZW50cyhidWlsdEVudHJpZXMsIHNlbGVjdGVkRW50cnlVaWQsIHsgbXVsdGlwbGVNb2RlOiBmYWxzZSwgbWluaWZpZWQ6IGZhbHNlIH0pO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBidWlsdEVudHJpZXM7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQnVpbGRzIHRoZSBOYXZTZWxlY3RvciBlbnRyaWVzIGZvciBtdWx0aXBsZSBzZWxlY3QgbW9kZS5cbiAgICAgKiBAcGFyYW0gZW50cmllcyBuYXYgc2VsZWN0b3IgZW50cmllc1xuICAgICAqIEBwYXJhbSBzZWxlY3RlZEVudHJ5VWlkcyBzZWxlY3RlZCBlbnRyeSB1aWRzXG4gICAgICogQHBhcmFtIGRldGFpbHNEaXNwbGF5ZWRMaW1pdCBudW1iZXIgb2YgZGV0YWlscyBkaXNwbGF5ZWQgbGltaXRcbiAgICAgKi9cbiAgICBzdGF0aWMgYnVpbGRJbk11bHRpcGxlTW9kZShcbiAgICAgICAgZW50cmllczogTmF2U2VsZWN0b3JFbnRyeVtdLFxuICAgICAgICBzZWxlY3RlZEVudHJ5VWlkczogc3RyaW5nW10gfCBudWxsLFxuICAgICAgICBkZXRhaWxzRGlzcGxheWVkTGltaXQ6IG51bWJlclxuICAgICk6IEludGVybmFsTmF2U2VsZWN0b3JFbnRyeVtdIHtcbiAgICAgICAgdGhpcy5zdHJ1Y3R1cmVDaGVja2VyKGVudHJpZXMsIHRydWUpO1xuICAgICAgICBsZXQgYnVpbHRFbnRyaWVzID0gdGhpcy5idWlsZEVudHJpZXMoZW50cmllcywgdHJ1ZSwgMSwgZGV0YWlsc0Rpc3BsYXllZExpbWl0KTtcbiAgICAgICAgaWYgKHNlbGVjdGVkRW50cnlVaWRzKSB7XG4gICAgICAgICAgICBmb3IgKGNvbnN0IHNlbGVjdGVkRW50cnlVaWQgb2Ygc2VsZWN0ZWRFbnRyeVVpZHMpIHtcbiAgICAgICAgICAgICAgICBidWlsdEVudHJpZXMgPSBOYXZTZWxlY3Rvck11bHRpU2VsZWN0LnNlbGVjdEluTXVsdGlwbGVNb2RlKGJ1aWx0RW50cmllcywgc2VsZWN0ZWRFbnRyeVVpZCk7XG4gICAgICAgICAgICAgICAgYnVpbHRFbnRyaWVzID0gTmF2U2VsZWN0b3JGb2xkaW5nLnVuZm9sZFBhcmVudHMoYnVpbHRFbnRyaWVzLCBzZWxlY3RlZEVudHJ5VWlkLCB7IG11bHRpcGxlTW9kZTogZmFsc2UsIG1pbmlmaWVkOiBmYWxzZSB9KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gYnVpbHRFbnRyaWVzO1xuICAgIH1cblxuICAgIHByaXZhdGUgc3RhdGljIHN0cnVjdHVyZUNoZWNrZXIoZW50cmllczogTmF2U2VsZWN0b3JFbnRyeVtdLCBtdWx0aXBsZU1vZGVFbmFibGVkID0gZmFsc2UpOiB2b2lkIHtcbiAgICAgICAgZW50cmllcy5mb3JFYWNoKGVudHJ5ID0+IHtcbiAgICAgICAgICAgIGlmIChpc05hdlNlbGVjdG9yRW50cnlBR3JvdXAoZW50cnkpIHx8IGlzTmF2U2VsZWN0b3JFbnRyeUFDYXRlZ29yeShlbnRyeSkpIHtcbiAgICAgICAgICAgICAgICB0aGlzLnN0cnVjdHVyZUNoZWNrZXIoZW50cnkuY2hpbGRyZW4sIG11bHRpcGxlTW9kZUVuYWJsZWQpO1xuICAgICAgICAgICAgfSBlbHNlIGlmIChpc05hdlNlbGVjdG9yRW50cnlBTGVhZihlbnRyeSkpIHtcbiAgICAgICAgICAgICAgICBpZiAoZW50cnkuZGV0YWlscy5sZW5ndGggJiYgbXVsdGlwbGVNb2RlRW5hYmxlZCkge1xuICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmVycm9yKGBOYXZTZWxlY3RvckJ1aWxkZXI6IExlYWYgJHtlbnRyeS51aWR9IHdpdGggZGV0YWlscyBpcyBub3QgYWxsb3dlZCBpbiBtdWx0aXBsZSBtb2RlYCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHN0YXRpYyBidWlsZEVudHJpZXMoXG4gICAgICAgIGVudHJpZXM6IE5hdlNlbGVjdG9yRW50cnlbXSxcbiAgICAgICAgbXVsdGlwbGVNb2RlRW5hYmxlZDogYm9vbGVhbixcbiAgICAgICAgbGV2ZWwgPSAxLFxuICAgICAgICBkZXRhaWxzRGlzcGxheWVkTGltaXQ6IG51bWJlclxuICAgICk6IEludGVybmFsTmF2U2VsZWN0b3JFbnRyeVtdIHtcbiAgICAgICAgY29uc3QgbmV3RW50cmllcyA9IGVudHJpZXNcbiAgICAgICAgICAgIC5tYXAoKGVudHJ5LCBpZHgpID0+XG4gICAgICAgICAgICAgICAgdGhpcy5idWlsZEVudHJ5KGVudHJ5LCB7IG11bHRpcGxlTW9kZUVuYWJsZWQsIGxldmVsLCBpZHgsIHRvdGFsTnVtYmVyT2ZFbnRyeTogZW50cmllcy5sZW5ndGgsIGRldGFpbHNEaXNwbGF5ZWRMaW1pdCB9KVxuICAgICAgICAgICAgKVxuICAgICAgICAgICAgLmZpbHRlcihpdCA9PiBpdCAhPT0gbnVsbCk7XG4gICAgICAgIHJldHVybiBOYXZTZWxlY3RvckFjY2Vzc2liaWxpdHkucmVzZXRGb2N1cyhuZXdFbnRyaWVzKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHN0YXRpYyBidWlsZEVudHJ5KFxuICAgICAgICBlbnRyeTogTmF2U2VsZWN0b3JFbnRyeSxcbiAgICAgICAge1xuICAgICAgICAgICAgbXVsdGlwbGVNb2RlRW5hYmxlZCxcbiAgICAgICAgICAgIGxldmVsLFxuICAgICAgICAgICAgaWR4LFxuICAgICAgICAgICAgdG90YWxOdW1iZXJPZkVudHJ5LFxuICAgICAgICAgICAgZGV0YWlsc0Rpc3BsYXllZExpbWl0LFxuICAgICAgICB9OiB7IG11bHRpcGxlTW9kZUVuYWJsZWQ6IGJvb2xlYW47IGxldmVsOiBudW1iZXI7IGlkeDogbnVtYmVyOyB0b3RhbE51bWJlck9mRW50cnk6IG51bWJlcjsgZGV0YWlsc0Rpc3BsYXllZExpbWl0OiBudW1iZXIgfVxuICAgICk6IEludGVybmFsTmF2U2VsZWN0b3JFbnRyeSB8IG51bGwge1xuICAgICAgICBpZiAoaXNOYXZTZWxlY3RvckVudHJ5QUxlYWYoZW50cnkpKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5idWlsZExlYWYoZW50cnksIHtcbiAgICAgICAgICAgICAgICBtdWx0aXBsZU1vZGVFbmFibGVkLFxuICAgICAgICAgICAgICAgIGxldmVsLFxuICAgICAgICAgICAgICAgIGlkeCxcbiAgICAgICAgICAgICAgICB0b3RhbE51bWJlck9mTGVhZjogdG90YWxOdW1iZXJPZkVudHJ5LFxuICAgICAgICAgICAgICAgIGZvY3VzYWJsZTogdHJ1ZSxcbiAgICAgICAgICAgICAgICBkZXRhaWxzRGlzcGxheWVkTGltaXQsXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfSBlbHNlIGlmIChpc05hdlNlbGVjdG9yRW50cnlBQ2F0ZWdvcnkoZW50cnkpKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5idWlsZENhdGVnb3J5KGVudHJ5LCB7XG4gICAgICAgICAgICAgICAgbXVsdGlwbGVNb2RlRW5hYmxlZCxcbiAgICAgICAgICAgICAgICBsZXZlbCxcbiAgICAgICAgICAgICAgICBpZHgsXG4gICAgICAgICAgICAgICAgdG90YWxOdW1iZXJPZkNhdGVnb3J5OiB0b3RhbE51bWJlck9mRW50cnksXG4gICAgICAgICAgICAgICAgZGV0YWlsc0Rpc3BsYXllZExpbWl0LFxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5idWlsZEdyb3VwKGVudHJ5LCB7XG4gICAgICAgICAgICAgICAgbXVsdGlwbGVNb2RlRW5hYmxlZCxcbiAgICAgICAgICAgICAgICBsZXZlbCxcbiAgICAgICAgICAgICAgICBpZHgsXG4gICAgICAgICAgICAgICAgdG90YWxOdW1iZXJPZkdyb3VwczogdG90YWxOdW1iZXJPZkVudHJ5LFxuICAgICAgICAgICAgICAgIGZvY3VzYWJsZTogdHJ1ZSxcbiAgICAgICAgICAgICAgICBkZXRhaWxzRGlzcGxheWVkTGltaXQsXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgc3RhdGljIGJ1aWxkQ2F0ZWdvcnlDaGlsZHJlbihcbiAgICAgICAgZW50cnk6IE5hdlNlbGVjdG9yQ2F0ZWdvcnksXG4gICAgICAgIHtcbiAgICAgICAgICAgIGZvY3VzYWJsZSxcbiAgICAgICAgICAgIG11bHRpcGxlTW9kZUVuYWJsZWQsXG4gICAgICAgICAgICBjYXRlZ29yeUxldmVsLFxuICAgICAgICAgICAgZGV0YWlsc0Rpc3BsYXllZExpbWl0LFxuICAgICAgICB9OiB7XG4gICAgICAgICAgICBmb2N1c2FibGU6IGJvb2xlYW47XG4gICAgICAgICAgICBtdWx0aXBsZU1vZGVFbmFibGVkOiBib29sZWFuO1xuICAgICAgICAgICAgY2F0ZWdvcnlMZXZlbDogbnVtYmVyO1xuICAgICAgICAgICAgZGV0YWlsc0Rpc3BsYXllZExpbWl0OiBudW1iZXI7XG4gICAgICAgIH1cbiAgICApOiAoSW50ZXJuYWxOYXZTZWxlY3Rvckdyb3VwIHwgSW50ZXJuYWxOYXZTZWxlY3RvckxlYWYpW10ge1xuICAgICAgICByZXR1cm4gZW50cnkuY2hpbGRyZW5cbiAgICAgICAgICAgIC5tYXAoKGNoaWxkLCBpZHgpID0+IHtcbiAgICAgICAgICAgICAgICBpZiAoaXNOYXZTZWxlY3RvckVudHJ5QUxlYWYoY2hpbGQpKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLmJ1aWxkTGVhZihjaGlsZCwge1xuICAgICAgICAgICAgICAgICAgICAgICAgZm9jdXNhYmxlLFxuICAgICAgICAgICAgICAgICAgICAgICAgbXVsdGlwbGVNb2RlRW5hYmxlZCxcbiAgICAgICAgICAgICAgICAgICAgICAgIGxldmVsOiBjYXRlZ29yeUxldmVsICsgMSxcbiAgICAgICAgICAgICAgICAgICAgICAgIGlkeCxcbiAgICAgICAgICAgICAgICAgICAgICAgIHRvdGFsTnVtYmVyT2ZMZWFmOiBlbnRyeS5jaGlsZHJlbi5sZW5ndGgsXG4gICAgICAgICAgICAgICAgICAgICAgICBkZXRhaWxzRGlzcGxheWVkTGltaXQsXG4gICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLmJ1aWxkR3JvdXAoY2hpbGQsIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGZvY3VzYWJsZSxcbiAgICAgICAgICAgICAgICAgICAgICAgIG11bHRpcGxlTW9kZUVuYWJsZWQsXG4gICAgICAgICAgICAgICAgICAgICAgICBsZXZlbDogY2F0ZWdvcnlMZXZlbCArIDEsXG4gICAgICAgICAgICAgICAgICAgICAgICBpZHgsXG4gICAgICAgICAgICAgICAgICAgICAgICB0b3RhbE51bWJlck9mR3JvdXBzOiBlbnRyeS5jaGlsZHJlbi5sZW5ndGgsXG4gICAgICAgICAgICAgICAgICAgICAgICBkZXRhaWxzRGlzcGxheWVkTGltaXQsXG4gICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAuZmlsdGVyKGl0ID0+IGl0ICE9PSBudWxsKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHN0YXRpYyBidWlsZENhdGVnb3J5KFxuICAgICAgICBub2RlOiBOYXZTZWxlY3RvckNhdGVnb3J5LFxuICAgICAgICB7XG4gICAgICAgICAgICBtdWx0aXBsZU1vZGVFbmFibGVkLFxuICAgICAgICAgICAgbGV2ZWwsXG4gICAgICAgICAgICBpZHgsXG4gICAgICAgICAgICB0b3RhbE51bWJlck9mQ2F0ZWdvcnksXG4gICAgICAgICAgICBkZXRhaWxzRGlzcGxheWVkTGltaXQsXG4gICAgICAgIH06IHtcbiAgICAgICAgICAgIG11bHRpcGxlTW9kZUVuYWJsZWQ6IGJvb2xlYW47XG4gICAgICAgICAgICBsZXZlbDogbnVtYmVyO1xuICAgICAgICAgICAgaWR4OiBudW1iZXI7XG4gICAgICAgICAgICB0b3RhbE51bWJlck9mQ2F0ZWdvcnk6IG51bWJlcjtcbiAgICAgICAgICAgIGRldGFpbHNEaXNwbGF5ZWRMaW1pdDogbnVtYmVyO1xuICAgICAgICB9XG4gICAgKTogSW50ZXJuYWxOYXZTZWxlY3RvckNhdGVnb3J5IHtcbiAgICAgICAgY29uc3QgY2hpbGRyZW4gPSB0aGlzLmJ1aWxkQ2F0ZWdvcnlDaGlsZHJlbihub2RlLCB7XG4gICAgICAgICAgICBmb2N1c2FibGU6ICFub2RlLmZvbGRlZCxcbiAgICAgICAgICAgIG11bHRpcGxlTW9kZUVuYWJsZWQsXG4gICAgICAgICAgICBjYXRlZ29yeUxldmVsOiBsZXZlbCxcbiAgICAgICAgICAgIGRldGFpbHNEaXNwbGF5ZWRMaW1pdCxcbiAgICAgICAgfSk7XG5cbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIHVpZDogbm9kZS51aWQsXG4gICAgICAgICAgICBhbGlhczogbm9kZS5hbGlhcyxcbiAgICAgICAgICAgIGNoaWxkcmVuLFxuICAgICAgICAgICAgaGlkZGVuOiBmYWxzZSxcbiAgICAgICAgICAgIGZvY3VzYWJsZTogdHJ1ZSxcbiAgICAgICAgICAgIGFjY2Vzc2liaWxpdHk6IHtcbiAgICAgICAgICAgICAgICB0YWJJbmRleDogLTEsXG4gICAgICAgICAgICAgICAgYXJpYUxldmVsOiBsZXZlbCxcbiAgICAgICAgICAgICAgICBhcmlhUG9zaW5zZXQ6IGlkeCArIDEsXG4gICAgICAgICAgICAgICAgYXJpYVNldHNpemU6IHRvdGFsTnVtYmVyT2ZDYXRlZ29yeSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBmb2xkZWQ6IG5vZGUuZm9sZGVkLFxuICAgICAgICAgICAgZW1wdHlTdGF0ZVRpdGxlOiBub2RlLmVtcHR5U3RhdGVUaXRsZSxcbiAgICAgICAgICAgIHR5cGU6IG5vZGUudHlwZSxcbiAgICAgICAgfTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHN0YXRpYyBidWlsZEdyb3VwQ2hpbGRyZW4oXG4gICAgICAgIGVudHJ5OiBOYXZTZWxlY3Rvckdyb3VwLFxuICAgICAgICB7XG4gICAgICAgICAgICBtdWx0aXBsZU1vZGVFbmFibGVkLFxuICAgICAgICAgICAgZ3JvdXBMZXZlbCxcbiAgICAgICAgICAgIGZvY3VzYWJsZSxcbiAgICAgICAgICAgIGRldGFpbHNEaXNwbGF5ZWRMaW1pdCxcbiAgICAgICAgfTogeyBtdWx0aXBsZU1vZGVFbmFibGVkOiBib29sZWFuOyBncm91cExldmVsOiBudW1iZXI7IGZvY3VzYWJsZTogYm9vbGVhbjsgZGV0YWlsc0Rpc3BsYXllZExpbWl0OiBudW1iZXIgfVxuICAgICk6IEludGVybmFsTmF2U2VsZWN0b3JMZWFmW10ge1xuICAgICAgICByZXR1cm4gZW50cnkuY2hpbGRyZW5cbiAgICAgICAgICAgIC5tYXAoKGNoaWxkLCBpZHgpID0+XG4gICAgICAgICAgICAgICAgdGhpcy5idWlsZExlYWYoY2hpbGQsIHtcbiAgICAgICAgICAgICAgICAgICAgbXVsdGlwbGVNb2RlRW5hYmxlZCxcbiAgICAgICAgICAgICAgICAgICAgbGV2ZWw6IGdyb3VwTGV2ZWwgKyAxLFxuICAgICAgICAgICAgICAgICAgICBpZHgsXG4gICAgICAgICAgICAgICAgICAgIHRvdGFsTnVtYmVyT2ZMZWFmOiBlbnRyeS5jaGlsZHJlbi5sZW5ndGgsXG4gICAgICAgICAgICAgICAgICAgIGZvY3VzYWJsZTogZm9jdXNhYmxlICYmICFlbnRyeS5mb2xkZWQsXG4gICAgICAgICAgICAgICAgICAgIGRldGFpbHNEaXNwbGF5ZWRMaW1pdCxcbiAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgKVxuICAgICAgICAgICAgLmZpbHRlcihpdCA9PiBpdCAhPT0gbnVsbCk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBzdGF0aWMgYnVpbGRHcm91cChcbiAgICAgICAgbm9kZTogTmF2U2VsZWN0b3JHcm91cCxcbiAgICAgICAge1xuICAgICAgICAgICAgZm9jdXNhYmxlLFxuICAgICAgICAgICAgbXVsdGlwbGVNb2RlRW5hYmxlZCxcbiAgICAgICAgICAgIGxldmVsLFxuICAgICAgICAgICAgaWR4LFxuICAgICAgICAgICAgdG90YWxOdW1iZXJPZkdyb3VwcyxcbiAgICAgICAgICAgIGRldGFpbHNEaXNwbGF5ZWRMaW1pdCxcbiAgICAgICAgfToge1xuICAgICAgICAgICAgZm9jdXNhYmxlOiBib29sZWFuO1xuICAgICAgICAgICAgbXVsdGlwbGVNb2RlRW5hYmxlZDogYm9vbGVhbjtcbiAgICAgICAgICAgIGxldmVsOiBudW1iZXI7XG4gICAgICAgICAgICBpZHg6IG51bWJlcjtcbiAgICAgICAgICAgIHRvdGFsTnVtYmVyT2ZHcm91cHM6IG51bWJlcjtcbiAgICAgICAgICAgIGRldGFpbHNEaXNwbGF5ZWRMaW1pdDogbnVtYmVyO1xuICAgICAgICB9XG4gICAgKTogSW50ZXJuYWxOYXZTZWxlY3Rvckdyb3VwIHtcbiAgICAgICAgY29uc3QgY2hpbGRyZW4gPSB0aGlzLmJ1aWxkR3JvdXBDaGlsZHJlbihub2RlLCB7IG11bHRpcGxlTW9kZUVuYWJsZWQsIGdyb3VwTGV2ZWw6IGxldmVsLCBmb2N1c2FibGUsIGRldGFpbHNEaXNwbGF5ZWRMaW1pdCB9KTtcbiAgICAgICAgY29uc3QgZGlzcGxheVRva2VuSW52YWxpZCA9IGNoaWxkcmVuLnNvbWUoKHsgZGlzcGxheVRva2VuSW52YWxpZCB9KSA9PiBkaXNwbGF5VG9rZW5JbnZhbGlkKTtcblxuICAgICAgICBjb25zdCBzZWxlY3RlZENoaWxkcmVuQ291bnQgPSBjaGlsZHJlbi5maWx0ZXIoKHsgc2VsZWN0ZWQgfSkgPT4gc2VsZWN0ZWQpLmxlbmd0aDtcblxuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgdWlkOiBub2RlLnVpZCxcbiAgICAgICAgICAgIGFsaWFzOiBub2RlLmFsaWFzLFxuICAgICAgICAgICAgY2hpbGRyZW4sXG4gICAgICAgICAgICBjaGlsZHJlblBpY3R1cmVVcmxTYW1wbGU6IGNoaWxkcmVuXG4gICAgICAgICAgICAgICAgLm1hcCgoY2hpbGQsIGlkeCkgPT5cbiAgICAgICAgICAgICAgICAgICAgaXNJbnRlcm5hbE5hdlNlbGVjdG9yRW50cnlBTGVhZihjaGlsZCkgJiYgaWR4IDwgNCA/IHsgdXJsOiBjaGlsZC5waWN0dXJlVXJsLCBpbml0aWFsOiBjaGlsZC5hbGlhc1swXSB9IDogbnVsbFxuICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICAuZmlsdGVyKGl0ID0+IGl0ICE9PSBudWxsKSxcbiAgICAgICAgICAgIGhpZGRlbjogZmFsc2UsXG4gICAgICAgICAgICBhY2Nlc3NpYmlsaXR5OiB7XG4gICAgICAgICAgICAgICAgdGFiSW5kZXg6IC0xLFxuICAgICAgICAgICAgICAgIGFyaWFQb3NpbnNldDogaWR4ICsgMSxcbiAgICAgICAgICAgICAgICBhcmlhTGV2ZWw6IGxldmVsLFxuICAgICAgICAgICAgICAgIGFyaWFTZXRzaXplOiB0b3RhbE51bWJlck9mR3JvdXBzLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIGZvY3VzYWJsZSxcbiAgICAgICAgICAgIGRpc3BsYXlDb3VudGVyOiBub2RlLmZvbGRlZCAmJiBjaGlsZHJlbi5zb21lKGNoaWxkID0+IGlzSW50ZXJuYWxOYXZTZWxlY3RvckVudHJ5QUxlYWYoY2hpbGQpICYmIGNoaWxkLmNvdW50ZXIgIT09IDApLFxuICAgICAgICAgICAgY291bnRlcjogY2hpbGRyZW4ucmVkdWNlKChhY2MsIHsgY291bnRlciB9KSA9PiBhY2MgKyBjb3VudGVyLCAwKSxcbiAgICAgICAgICAgIGRpc3BsYXlUb2tlbkludmFsaWQsXG4gICAgICAgICAgICBzZWxlY3RlZDogZmFsc2UsXG4gICAgICAgICAgICBzZWxlY3RhYmxlOiBtdWx0aXBsZU1vZGVFbmFibGVkICYmIGNoaWxkcmVuLnNvbWUoKHsgc2VsZWN0YWJsZSB9KSA9PiBzZWxlY3RhYmxlKSxcbiAgICAgICAgICAgIHVuZGV0ZXJtaW5lZFNlbGVjdGlvbjogc2VsZWN0ZWRDaGlsZHJlbkNvdW50ICE9PSBjaGlsZHJlbi5sZW5ndGggJiYgc2VsZWN0ZWRDaGlsZHJlbkNvdW50ID4gMCxcbiAgICAgICAgICAgIGZvbGRlZDogbm9kZS5mb2xkZWQsXG4gICAgICAgICAgICB0eXBlOiBub2RlLnR5cGUsXG4gICAgICAgIH07XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBzdGF0aWMgYnVpbGRMZWFmKFxuICAgICAgICBsZWFmOiBOYXZTZWxlY3RvckxlYWYsXG4gICAgICAgIHtcbiAgICAgICAgICAgIGZvY3VzYWJsZSxcbiAgICAgICAgICAgIG11bHRpcGxlTW9kZUVuYWJsZWQsXG4gICAgICAgICAgICBsZXZlbCxcbiAgICAgICAgICAgIGlkeCxcbiAgICAgICAgICAgIHRvdGFsTnVtYmVyT2ZMZWFmLFxuICAgICAgICAgICAgZGV0YWlsc0Rpc3BsYXllZExpbWl0LFxuICAgICAgICB9OiB7XG4gICAgICAgICAgICBmb2N1c2FibGU6IGJvb2xlYW47XG4gICAgICAgICAgICBtdWx0aXBsZU1vZGVFbmFibGVkOiBib29sZWFuO1xuICAgICAgICAgICAgbGV2ZWw6IG51bWJlcjtcbiAgICAgICAgICAgIGlkeDogbnVtYmVyO1xuICAgICAgICAgICAgdG90YWxOdW1iZXJPZkxlYWY6IG51bWJlcjtcbiAgICAgICAgICAgIGRldGFpbHNEaXNwbGF5ZWRMaW1pdDogbnVtYmVyO1xuICAgICAgICB9XG4gICAgKTogSW50ZXJuYWxOYXZTZWxlY3RvckxlYWYgfCBudWxsIHtcbiAgICAgICAgaWYgKGxlYWYubWlzc2luZ1Blcm1pc3Npb24pIHtcbiAgICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgZGV0YWlsc0Rpc3BsYXlhYmxlID0gdGhpcy5pc0xlYWZMb2dpY1ZhbGlkKGxlYWYsIExlYWZMb2dpY3MuQ09VTlRFUikgJiYgISFsZWFmLmRldGFpbHMubGVuZ3RoO1xuICAgICAgICBjb25zdCBmb2xkYWJsZSA9ICEhbGVhZi5kZXRhaWxzLmxlbmd0aCAmJiBkZXRhaWxzRGlzcGxheWFibGU7XG4gICAgICAgIGNvbnN0IGZvbGRlZCA9IHRydWU7XG4gICAgICAgIGNvbnN0IGNvdW50ZXIgPSAobGVhZi5kZXRhaWxzLmZpbHRlcihkZXRhaWw9PiAhZGV0YWlsLmV4Y2x1ZGVkQ291bnRlclN1bSkucmVkdWNlKChhY2MsIGRldGFpbCkgPT4gYWNjICsgKGRldGFpbC5jb3VudGVyID8/IDApLCAwKSB8fCBsZWFmLmNvdW50ZXIpID8/IDA7XG4gICAgICAgIGNvbnN0IGNvdW50ZXJEaXNwbGF5YWJsZSA9IGNvdW50ZXIgIT09IDAgJiYgdGhpcy5pc0xlYWZMb2dpY1ZhbGlkKGxlYWYsIExlYWZMb2dpY3MuQ09VTlRFUik7XG5cbiAgICAgICAgY29uc3QgZGlzYWJsZWQgPSBsZWFmLmRpc2FibGVSZWFzb24gIT09IG51bGw7XG5cbiAgICAgICAgY29uc3Qgdmlld01vcmVEaXNwbGF5YWJsZSA9IGxlYWYuZGV0YWlscy5sZW5ndGggPiBkZXRhaWxzRGlzcGxheWVkTGltaXQ7XG5cbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIHVpZDogbGVhZi51aWQsXG4gICAgICAgICAgICBhbGlhczogbGVhZi5hbGlhcyxcbiAgICAgICAgICAgIGFjdGlvbnM6IGxlYWYuYWN0aW9ucyxcbiAgICAgICAgICAgIHBpY3R1cmVVcmw6IGxlYWYucGljdHVyZVVybCxcbiAgICAgICAgICAgIGFjdGlvbnNEaXNwbGF5YWJsZTogISFsZWFmLmFjdGlvbnMubGVuZ3RoICYmIHRoaXMuaXNMZWFmTG9naWNWYWxpZChsZWFmLCBMZWFmTG9naWNzLkNPVU5URVIpLFxuICAgICAgICAgICAgZGlzYWJsZWQsXG4gICAgICAgICAgICBkaXNhYmxlUmVhc29uOiBsZWFmLmRpc2FibGVSZWFzb24sXG4gICAgICAgICAgICBoaWRkZW46IGZhbHNlLFxuICAgICAgICAgICAgZm9jdXNhYmxlOlxuICAgICAgICAgICAgICAgIGZvY3VzYWJsZSAmJlxuICAgICAgICAgICAgICAgICgobXVsdGlwbGVNb2RlRW5hYmxlZCAmJiB0aGlzLmlzTGVhZkxvZ2ljVmFsaWQobGVhZiwgTGVhZkxvZ2ljcy5DT1VOVEVSKSkgfHwgKCFtdWx0aXBsZU1vZGVFbmFibGVkICYmICFkaXNhYmxlZCkpLFxuICAgICAgICAgICAgYWNjZXNzaWJpbGl0eToge1xuICAgICAgICAgICAgICAgIHRhYkluZGV4OiAtMSxcbiAgICAgICAgICAgICAgICBhcmlhUG9zaW5zZXQ6IGlkeCArIDEsXG4gICAgICAgICAgICAgICAgYXJpYUxldmVsOiBsZXZlbCxcbiAgICAgICAgICAgICAgICBhcmlhU2V0c2l6ZTogdG90YWxOdW1iZXJPZkxlYWYsXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgZm9sZGFibGUsXG4gICAgICAgICAgICBmb2xkZWQsXG4gICAgICAgICAgICBkaXNwbGF5Q291bnRlcjogZm9sZGVkICYmIGNvdW50ZXJEaXNwbGF5YWJsZSxcbiAgICAgICAgICAgIGNvdW50ZXJEaXNwbGF5YWJsZSxcbiAgICAgICAgICAgIGNvdW50ZXIsXG4gICAgICAgICAgICBuZXR3b3JrOiBsZWFmLm5ldHdvcmssXG4gICAgICAgICAgICBkaXNwbGF5VG9rZW5JbnZhbGlkOiBsZWFmLnRva2VuSW52YWxpZCAmJiB0aGlzLmlzTGVhZkxvZ2ljVmFsaWQobGVhZiwgTGVhZkxvZ2ljcy5UT0tFTl9JTlZBTElELCBMZWFmTG9naWNzLkNPVU5URVIpLFxuICAgICAgICAgICAgZGlzcGxheUZlYXR1cmVMb2NrZWQ6XG4gICAgICAgICAgICAgICAgbGVhZi5mZWF0dXJlTG9ja2VkICYmIHRoaXMuaXNMZWFmTG9naWNWYWxpZChsZWFmLCBMZWFmTG9naWNzLkZFQVRVUkVfTE9DS0VELCBMZWFmTG9naWNzLlRPS0VOX0lOVkFMSUQsIExlYWZMb2dpY3MuQ09VTlRFUiksXG4gICAgICAgICAgICBzZWxlY3RlZDogZmFsc2UsXG4gICAgICAgICAgICBzZWxlY3RhYmxlOiBtdWx0aXBsZU1vZGVFbmFibGVkXG4gICAgICAgICAgICAgICAgPyB0aGlzLmlzTGVhZkxvZ2ljVmFsaWQobGVhZiwgTGVhZkxvZ2ljcy5DT1VOVEVSKVxuICAgICAgICAgICAgICAgIDogdGhpcy5pc0xlYWZMb2dpY1ZhbGlkKGxlYWYsIExlYWZMb2dpY3MuRkVBVFVSRV9MT0NLRUQsIExlYWZMb2dpY3MuVE9LRU5fSU5WQUxJRCwgTGVhZkxvZ2ljcy5DT1VOVEVSKSxcbiAgICAgICAgICAgIGRldGFpbHNEaXNwbGF5YWJsZSxcbiAgICAgICAgICAgIGRldGFpbHM6IGxlYWYuZGV0YWlscy5tYXAoZGV0YWlsID0+IHRoaXMuYnVpbGRMZWFmRGV0YWlsKGRldGFpbCwgbGV2ZWwgKyAxLCBmb2N1c2FibGUgJiYgIWZvbGRlZCkpLFxuICAgICAgICAgICAgZGV0YWlsU2VsZWN0ZWQ6IGZhbHNlLFxuICAgICAgICAgICAgdHlwZTogJ0xFQUYnLFxuICAgICAgICAgICAgdmlld01vcmVEaXNwbGF5YWJsZSxcbiAgICAgICAgICAgIHZpZXdNb3JlRGlzcGxheWVkOiB2aWV3TW9yZURpc3BsYXlhYmxlLFxuICAgICAgICAgICAgdmlld01vcmVEZXRhaWxzRGlzcGxheWVkTGltaXQ6IGRldGFpbHNEaXNwbGF5ZWRMaW1pdCxcbiAgICAgICAgfTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHN0YXRpYyBidWlsZExlYWZEZXRhaWwoZGV0YWlsOiBOYXZTZWxlY3RvckxlYWZEZXRhaWxzLCBsZXZlbDogbnVtYmVyLCBmb2N1c2FibGU6IGJvb2xlYW4pOiBJbnRlcm5hbE5hdlNlbGVjdG9yTGVhZkRldGFpbHMge1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgdWlkOiBkZXRhaWwudWlkLFxuICAgICAgICAgICAgY291bnRlcjogZGV0YWlsLmNvdW50ZXIgPz8gMCxcbiAgICAgICAgICAgIGRpc3BsYXlDb3VudGVyOiBkZXRhaWwuY291bnRlciAhPT0gbnVsbCxcbiAgICAgICAgICAgIGFsaWFzOiBkZXRhaWwubmFtZSxcbiAgICAgICAgICAgIGhpZGRlbjogZmFsc2UsXG4gICAgICAgICAgICBhY2Nlc3NpYmlsaXR5OiB7XG4gICAgICAgICAgICAgICAgdGFiSW5kZXg6IC0xLFxuICAgICAgICAgICAgICAgIGFyaWFQb3NpbnNldDogMSxcbiAgICAgICAgICAgICAgICBhcmlhTGV2ZWw6IGxldmVsLFxuICAgICAgICAgICAgICAgIGFyaWFTZXRzaXplOiAxLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIGZvY3VzYWJsZSxcbiAgICAgICAgICAgIHNlbGVjdGVkOiBmYWxzZSxcbiAgICAgICAgICAgIGVycm9yUmVhc29uOiBkZXRhaWwuZXJyb3JSZWFzb24sXG4gICAgICAgICAgICBkaXNwbGF5RXJyb3I6IGRldGFpbC5lcnJvclJlYXNvbiAhPT0gbnVsbCxcbiAgICAgICAgICAgIHR5cGU6ICdMRUFGX0RFVEFJTFMnLFxuICAgICAgICB9O1xuICAgIH1cblxuICAgIHByaXZhdGUgc3RhdGljIGlzTGVhZkxvZ2ljVmFsaWQobGVhZjogTmF2U2VsZWN0b3JMZWFmLCAuLi5leGNsdWRlczogTGVhZkxvZ2ljc1tdKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiBPYmplY3QuZW50cmllcyh0aGlzLkxFQUZfTE9HSUNTX1BSSU9SSVRZKVxuICAgICAgICAgICAgLmZpbHRlcigoW2tleV0pID0+ICFleGNsdWRlcy5pbmNsdWRlcyhrZXkgYXMgTGVhZkxvZ2ljcykpXG4gICAgICAgICAgICAuZXZlcnkoKFssIGxvZ2ljXSkgPT4gIWxvZ2ljKGxlYWYpKTtcbiAgICB9XG59XG4iXX0=
@@ -1201,7 +1201,7 @@ class NavSelectorBuilder {
1201
1201
  const detailsDisplayable = this.isLeafLogicValid(leaf, LeafLogics.COUNTER) && !!leaf.details.length;
1202
1202
  const foldable = !!leaf.details.length && detailsDisplayable;
1203
1203
  const folded = true;
1204
- const counter = (leaf.details.reduce((acc, detail) => acc + (detail.counter ?? 0), 0) || leaf.counter) ?? 0;
1204
+ const counter = (leaf.details.filter(detail => !detail.excludedCounterSum).reduce((acc, detail) => acc + (detail.counter ?? 0), 0) || leaf.counter) ?? 0;
1205
1205
  const counterDisplayable = counter !== 0 && this.isLeafLogicValid(leaf, LeafLogics.COUNTER);
1206
1206
  const disabled = leaf.disableReason !== null;
1207
1207
  const viewMoreDisplayable = leaf.details.length > detailsDisplayedLimit;