ng-miam 9.2.0 → 9.2.2
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.
- package/bundles/ng-miam.umd.js +927 -634
- package/bundles/ng-miam.umd.js.map +1 -1
- package/bundles/ng-miam.umd.min.js +1 -1
- package/bundles/ng-miam.umd.min.js.map +1 -1
- package/esm2015/lib/_components/accordion/accordion.component.js +2 -2
- package/esm2015/lib/_components/addon-link/addon-link.component.js +3 -3
- package/esm2015/lib/_components/counter-input/counter-input.component.js +14 -12
- package/esm2015/lib/_components/guests-dropdown/guests-dropdown.component.js +8 -5
- package/esm2015/lib/_components/icon/icon.component.js +2 -2
- package/esm2015/lib/_components/like-button/like-button.component.js +6 -5
- package/esm2015/lib/_components/modal/modal.component.js +39 -36
- package/esm2015/lib/_components/no-pos-selected/no-pos-selected.component.js +2 -2
- package/esm2015/lib/_components/product-card/out-of-stock-overlay/out-of-stock-overlay.component.js +15 -6
- package/esm2015/lib/_components/product-card/product-card-skeleton/product-card-skeleton.component.js +1 -1
- package/esm2015/lib/_components/product-card/product-card.component.js +25 -7
- package/esm2015/lib/_components/products-picker/products-picker.component.js +2 -2
- package/esm2015/lib/_components/recipe-promotion-badge/recipe-promotion-badge.component.js +2 -2
- package/esm2015/lib/_components/sponsor-blocks/sponsor-image-and-text-block/sponsor-image-and-text-block.component.js +4 -4
- package/esm2015/lib/_components/sponsor-blocks/sponsor-logo-block/sponsor-logo-block.component.js +4 -4
- package/esm2015/lib/_components/sponsor-blocks/sponsor-picture-block/sponsor-picture-block.component.js +3 -3
- package/esm2015/lib/_components/sponsor-blocks/sponsor-small-picture-block/sponsor-small-picture-block.component.js +3 -3
- package/esm2015/lib/_components/sponsor-blocks/sponsor-text-and-image-block/sponsor-text-and-image-block.component.js +4 -4
- package/esm2015/lib/_models/basket-actions/basket-action.js +2 -2
- package/esm2015/lib/_services/basket-recipe-cleanup.service.js +62 -0
- package/esm2015/lib/_services/basket-transfer.service.js +3 -2
- package/esm2015/lib/_services/baskets-synchronizing/baskets-synchronizer.service.js +9 -3
- package/esm2015/lib/_services/context.service.js +17 -13
- package/esm2015/lib/_services/interceptor.service.js +10 -3
- package/esm2015/lib/_services/recipe-details.service.js +22 -7
- package/esm2015/lib/_services/recipes.service.js +5 -5
- package/esm2015/lib/_services/store-locator.service.js +10 -3
- package/esm2015/lib/_services/store-out-of-stock.service.js +57 -0
- package/esm2015/lib/_services/user.service.js +3 -3
- package/esm2015/lib/_types/builded/mealz-interface.js +1 -1
- package/esm2015/lib/_web-components/basket-preview/basket-preview-block/basket-preview-block.component.js +3 -2
- package/esm2015/lib/_web-components/basket-preview/basket-preview-line/basket-preview-line.component.js +130 -122
- package/esm2015/lib/_web-components/basket-preview/basket-preview-product/basket-preview-product.component.js +44 -34
- package/esm2015/lib/_web-components/basket-preview/replace-item/replace-item.component.js +14 -7
- package/esm2015/lib/_web-components/list-scan/files-inputs/files-inputs.component.js +2 -2
- package/esm2015/lib/_web-components/meals-planner/meals-planner-form/meals-planner-form.component.js +13 -13
- package/esm2015/lib/_web-components/no-supplier-onboarding/no-supplier-onboarding.component.js +8 -12
- package/esm2015/lib/_web-components/preferences/preferences-search/preferences-search.component.js +2 -2
- package/esm2015/lib/_web-components/preferences/preferences.component.js +28 -28
- package/esm2015/lib/_web-components/recipe-cards/recipe-card/recipe-card.component.js +118 -97
- package/esm2015/lib/_web-components/recipe-cards/recipe-card-cta/recipe-card-cta.component.js +21 -14
- package/esm2015/lib/_web-components/recipe-catalog/catalog-article-card/catalog-article-card.component.js +9 -8
- package/esm2015/lib/_web-components/recipe-catalog/catalog-category/catalog-category.component.js +10 -8
- package/esm2015/lib/_web-components/recipe-catalog/catalog-header/catalog-header.component.js +3 -3
- package/esm2015/lib/_web-components/recipe-catalog/catalog-toolbar/catalog-toolbar.component.js +14 -10
- package/esm2015/lib/_web-components/recipe-catalog/recipe-catalog.component.js +42 -37
- package/esm2015/lib/_web-components/recipe-details/last-order-modal/last-order-modal.component.js +2 -2
- package/esm2015/lib/_web-components/recipe-details/recipe-addon/recipe-addon.component.js +4 -3
- package/esm2015/lib/_web-components/recipe-details/recipe-details-infos/recipe-details-infos.component.js +16 -13
- package/esm2015/lib/_web-components/recipe-details/recipe-details-ingredients/recipe-details-ingredients.component.js +4 -3
- package/esm2015/lib/_web-components/recipe-details/recipe-details.component.js +98 -103
- package/esm2015/lib/_web-components/recipe-details/store-locator-link/store-locator-link.component.js +8 -7
- package/esm2015/lib/_web-components/recipe-modal/recipe-modal.component.js +7 -2
- package/esm2015/lib/environments/environment.js +2 -2
- package/esm2015/lib/environments/environment.prod.js +2 -2
- package/esm2015/lib/environments/version.js +2 -2
- package/esm2015/lib/ng-miam.module.js +4 -1
- package/fesm2015/ng-miam.js +882 -627
- package/fesm2015/ng-miam.js.map +1 -1
- package/lib/_components/components.module.d.ts +2 -1
- package/lib/_components/components.module.d.ts.map +1 -1
- package/lib/_components/product-card/out-of-stock-overlay/out-of-stock-overlay.component.d.ts +7 -3
- package/lib/_components/product-card/out-of-stock-overlay/out-of-stock-overlay.component.d.ts.map +1 -1
- package/lib/_components/product-card/product-card.component.d.ts +2 -0
- package/lib/_components/product-card/product-card.component.d.ts.map +1 -1
- package/lib/_models/basket-actions/basket-action.d.ts.map +1 -1
- package/lib/_services/basket-recipe-cleanup.service.d.ts +21 -0
- package/lib/_services/basket-recipe-cleanup.service.d.ts.map +1 -0
- package/lib/_services/basket-transfer.service.d.ts.map +1 -1
- package/lib/_services/baskets-synchronizing/baskets-synchronizer.service.d.ts +1 -1
- package/lib/_services/baskets-synchronizing/baskets-synchronizer.service.d.ts.map +1 -1
- package/lib/_services/context.service.d.ts +3 -1
- package/lib/_services/context.service.d.ts.map +1 -1
- package/lib/_services/interceptor.service.d.ts +1 -0
- package/lib/_services/interceptor.service.d.ts.map +1 -1
- package/lib/_services/recipe-details.service.d.ts +8 -2
- package/lib/_services/recipe-details.service.d.ts.map +1 -1
- package/lib/_services/recipes.service.d.ts +2 -6
- package/lib/_services/recipes.service.d.ts.map +1 -1
- package/lib/_services/store-locator.service.d.ts +1 -0
- package/lib/_services/store-locator.service.d.ts.map +1 -1
- package/lib/_services/store-out-of-stock.service.d.ts +13 -0
- package/lib/_services/store-out-of-stock.service.d.ts.map +1 -0
- package/lib/_services/user.service.d.ts +2 -2
- package/lib/_services/user.service.d.ts.map +1 -1
- package/lib/_types/builded/mealz-interface.d.ts +4 -0
- package/lib/_types/builded/mealz-interface.d.ts.map +1 -1
- package/lib/_web-components/basket-preview/replace-item/replace-item.component.d.ts +1 -0
- package/lib/_web-components/basket-preview/replace-item/replace-item.component.d.ts.map +1 -1
- package/lib/_web-components/recipe-cards/recipe-card/recipe-card.component.d.ts +1 -0
- package/lib/_web-components/recipe-cards/recipe-card/recipe-card.component.d.ts.map +1 -1
- package/lib/_web-components/recipe-cards/recipe-card-cta/recipe-card-cta.component.d.ts +1 -1
- package/lib/_web-components/recipe-cards/recipe-card-cta/recipe-card-cta.component.d.ts.map +1 -1
- package/lib/_web-components/recipe-details/recipe-details.component.d.ts +1 -1
- package/lib/_web-components/recipe-details/recipe-details.component.d.ts.map +1 -1
- package/lib/_web-components/recipe-modal/recipe-modal.component.d.ts.map +1 -1
- package/lib/environments/version.d.ts +1 -1
- package/lib/ng-miam.module.d.ts.map +1 -1
- package/miam-style.css +1 -1
- package/package.json +1 -1
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
export {};
|
|
2
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVhbHotaW50ZXJmYWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmctbWlhbS9zcmMvbGliL190eXBlcy9idWlsZGVkL21lYWx6LWludGVyZmFjZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRXZlbnRFbWl0dGVyIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBEb2N1bWVudENvbGxlY3Rpb24gfSBmcm9tICdtaWFtLWpzb25hcGknO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgUG9pbnRPZlNhbGUsIFN1cHBsaWVyIH0gZnJvbSAnLi4vLi4vX21vZGVscyc7XG5pbXBvcnQgeyBDb21wYXJhYmxlUHJvZHVjdCB9IGZyb20gJy4vY29tcGFyYWJsZS1wcm9kdWN0JztcblxuZXhwb3J0IGludGVyZmFjZSBNZWFsekludGVyZmFjZSB7XG4gIC8qKlxuICAgKiBNZXRob2QgdG8gY2FsbCB3aGVuIHRoZSB1c2VyIGJlZ2lucyB0aGUgcGF5bWVudCBwcm9jZWR1cmUgKHR5cGljYWxseSB3aGVuIHRoZXkgY2xpY2tcbiAgICogb24gYSBcIkNvbmZpcm0gbXkgY2FydFwiIGJ1dHRvbilcbiAgICogQHBhcmFtIHRvdGFsUHJpY2UgdGhlIHRvdGFsIHByaWNlIG9mIHlvdXIgYmFza2V0IChjYW4gYmUgYSBmbG9hdGluZyBvciBpbnRlZ2VyIG51bWJlcilcbiAgICovXG4gIHBheW1lbnRTdGFydGVkOiAodG90YWxQcmljZTogbnVtYmVyKSA9PiB2b2lkO1xuXG4gIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4gIGFuYWx5dGljczoge1xuICAgIC8qKlxuICAgICAqIEluaXRpYWxpemUgQW5hbHl0aWNzXG4gICAgICpcbiAgICAgKiBAcGFyYW0gZG9tYWluIFBsYXVzaWJsZSBkb21haW5cbiAgICAgKi9cbiAgICBpbml0OiAoZG9tYWluOiBzdHJpbmcpID0+IHZvaWQ7XG5cbiAgICAvKipcbiAgICAgKiBPYnNlcnZhYmxlIG9uIGV2ZW50cyBhcyBhIHN0cmluZyBzZW50IGZyb20gQW5hbHl0aWNzXG4gICAgICovXG4gICAgZXZlbnRTZW50JDogT2JzZXJ2YWJsZTxzdHJpbmc+O1xuXG4gICAgLyoqXG4gICAgICogTXVzdCBiZSBjYWxsZWQgYmVmb3JlIGluaXRcbiAgICAgKi9cbiAgICBzZXRBYlRlc3RLZXk6IChrZXk6IHN0cmluZykgPT4gdm9pZDtcbiAgfTtcblxuICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuICBiYXNrZXQ6IHtcbiAgICAvKipcbiAgICAgKiBFbWl0cyB0cnVlIHdoZW4gTWVhbHoncyBiYXNrZXQgaGFzIHN1Y2Nlc2Z1bGx5IGxvYWRlZCBmb3IgdGhlIGZpcnN0IHRpbWUuXG4gICAgICogRG9lcyBub3QgZW1pdCBhbnl0aGluZyBiZWZvcmUgb3IgYWZ0ZXIgdGhhdC5cbiAgICAgKi9cbiAgICBiYXNrZXRJc1JlYWR5JDogT2JzZXJ2YWJsZTxib29sZWFuPjtcbiAgICAvKipcbiAgICAgKiBGZXRjaCB0aGUgZmlyc3QgQmFza2V0IGVhcmx5IChiZWZvcmUgYW55IGFjdGlvbiByZXF1aXJlcyBpdCBvbiBNZWFseidzXG4gICAgICogc2lkZSksIHNvIHlvdSBjYW4gc3RhcnQgdGhlIGJhc2tldC1zeW5jIGVhcmxpZXJcbiAgICAgKi9cbiAgICBpbml0aWFsaXplOiAoKSA9PiB2b2lkO1xuICAgIC8qKlxuICAgICAqIFJlc2V0cyBNZWFseidzIGJhc2tldCA6IGVtcHRpZXMgYWxsIHByb2R1Y3RzICYgcmVjaXBlcyBhZGRlZCBieSB0aGUgdXNlclxuICAgICAqIC8hXFwgV2UgaGVhdmlseSByZWNvbW1lbmQgbm90IHRvIHVzZSB0aGlzIG1ldGhvZCBleGNlcHQgaW4gdGhlIGNvbnNvbGUgZm9yIHRlc3RpbmcgcHVycG9zZXMgLyFcXFxuICAgICAqL1xuICAgIHJlc2V0OiAoKSA9PiB2b2lkO1xuICAgIC8qKlxuICAgICAqIElmIHlvdSBoYXZlIGRpZmZlcmVudCBwcmljZSB0YWJsZXMgKG9yIHByaWNlYm9va3MpIGZvciB0aGUgc2FtZSBwb2ludCBvZiBzYWxlLCB5b3UgY2FuIGNhbGwgdGhpc1xuICAgICAqIG1ldGhvZCB0byBtYWtlIE1lYWx6IGtub3cgb24gd2hpY2ggcHJpY2Vib29rIHlvdSBhcmUgdXNpbmdcbiAgICAgKiBGb3IgZXhhbXBsZSwgcHJpY2VzIGNhbiBiZSBkaWZmZXJlbnQgZGVwZW5kaW5nIG9uIGlmIHRoZSB1c2VyIGNob3NlIGhvbWUgZGVsaXZlcnkgb3IgZHJpdmUtaW5cbiAgICAgKi9cbiAgICB1cGRhdGVQcmljZWJvb2s6IChwcmljZWJvb2tOYW1lOiBzdHJpbmcpID0+IE9ic2VydmFibGU8dm9pZD47XG4gICAgLyoqXG4gICAgICogQHJldHVybnMgQSBCZWhhdmlvclN1YmplY3QgdGhhdCBlbWl0cyB0aGUgY3VycmVudCBudW1iZXIgb2YgcmVjaXBlcyBpbiBNZWFseidzIEJhc2tldFxuICAgICAqL1xuICAgIHJlY2lwZUNvdW50OiAoKSA9PiBPYnNlcnZhYmxlPG51bWJlcj47XG4gICAgLyoqXG4gICAgICogT3BlbnMgdGhlIHByZXZpZXcgYnkgY2FsbGluZyB0aGUgYG9wZW5CYXNrZXRgIG1ldGhvZCBvZiB0aGUgYHJlY2lwZXNTZXJ2aWNlYC5cbiAgICAgKi9cbiAgICBvcGVuUHJldmlldzogKGFuYWx5dGljc1BhdGg/OiBzdHJpbmcpID0+IHZvaWQ7XG4gICAgLyoqXG4gICAgICogLyFcXCBEZWJ1ZyBvbmx5OiBJZiBuby1zdXBwbGllciBtb2RlIGlzIGFjdGl2YXRlZCwgb3ZlcnJpZGUgdGhlIGJhc2Ugb2YgdGhlIHRyYW5zZmVyIHVybCB3aXRoIGFuIG90aGVyIHVybFxuICAgICAqIGV4OiBpZiB0cmFuc2ZlciB1cmwgaXMgJ2h0dHBzOi8vdGVzdC5jb20vcmVjaXBlcz9wYXJhbTE9eCxwYXJhbTI9eSdcbiAgICAgKiBhbmQgb3ZlcnJpZGVUcmFuc2ZlclVybCBpcyBjYWxsZWQgd2l0aCAnaHR0cDovL2xvY2FsaG9zdDozMDAwL3JlY2V0dGVzJ1xuICAgICAqIHRyYW5zZmVyIHVybCB3aWxsIGJlY29tZSAnaHR0cDovL2xvY2FsaG9zdDozMDAwL3JlY2V0dGVzP3BhcmFtMT14LHBhcmFtMj15J1xuICAgICAqL1xuICAgIG92ZXJyaWRlVHJhbnNmZXJVcmw6ICh1cmw6IHN0cmluZykgPT4gdm9pZDtcbiAgfTtcblxuICBiYXNrZXRTeW5jOiB7XG4gICAgLyoqXG4gICAgICogVGhlIGNhbGxiYWNrIHBhcmFtZXRlciBpcyBjYWxsZWQgd2hlbiBNZWFseidzIGJhc2tldCBjaGFuZ2VzIHRvIHVwZGF0ZSB0aGUgdXNlcidzIGNhcnQgYWNjb3JkaW5nbHlcbiAgICAgKlxuICAgICAqIEBwYXJhbSBwdXNoUHJvZHVjdHNUb0NhcnQgYSBtZXRob2QgdGhhdCB1cGRhdGVzIHRoZSB1c2VyJ3MgY2FydCB3aXRoIHRoZSBwcm9kdWN0cyBwYXNzZWQgaW4gcGFyYW1ldGVyLCBieSBhZGRpbmdcbiAgICAgKiBwcm9kdWN0cyBpZiB0aGVpciBxdWFudGl0eSBpcyBwb3NpdGl2ZSwgYW5kIHJlbW92aW5nIHRoZW0gaWYgdGhlaXIgcXVhbnRpdHkgaXMgbmVnYXRpdmVcbiAgICAgKi9cbiAgICBkZWZpbmVQdXNoUHJvZHVjdHNUb0NhcnQ6IChwdXNoUHJvZHVjdHNUb0NhcnQ6IChwcm9kdWN0czogQ29tcGFyYWJsZVByb2R1Y3RbXSkgPT4gdm9pZCkgPT4gdm9pZDtcbiAgICAvKipcbiAgICAgKiBUaGUgY2FsbGJhY2sgcGFyYW1ldGVyIGlzIGNhbGxlZCB3aGVuIE1lYWx6J3MgYmFza2V0IGFkZHMgbmV3IHByb2R1Y3RzIHRvIHVwZGF0ZSB0aGUgdXNlcidzIGNhcnQgYWNjb3JkaW5nbHlcbiAgICAgKlxuICAgICAqIEBwYXJhbSBwdXNoUHJvZHVjdHNUb0NhcnQgYSBtZXRob2QgdGhhdCBhZGRzIHRoZSBwcm9kdWN0cyBwYXNzZWQgaW4gcGFyYW1ldGVyIHRvIHRoZSB1c2VyJ3MgY2FydFxuICAgICAqL1xuICAgIGRlZmluZUFkZFByb2R1Y3RzVG9DYXJ0OiAoYWRkUHJvZHVjdHNUb0NhcnQ6IChwcm9kdWN0czogQ29tcGFyYWJsZVByb2R1Y3RbXSkgPT4gdm9pZCkgPT4gdm9pZDtcbiAgICAvKipcbiAgICAgKiBUaGUgY2FsbGJhY2sgcGFyYW1ldGVyIGlzIGNhbGxlZCB3aGVuIE1lYWx6J3MgYmFza2V0IHJlbW92ZXMgc29tZSBwcm9kdWN0cyB0byB1cGRhdGUgdGhlIHVzZXIncyBjYXJ0IGFjY29yZGluZ2x5XG4gICAgICpcbiAgICAgKiBAcGFyYW0gcHVzaFByb2R1Y3RzVG9DYXJ0IGEgbWV0aG9kIHRoYXQgcmVtb3ZlcyB0aGUgcHJvZHVjdHMgcGFzc2VkIGluIHBhcmFtZXRlciBmcm9tIHRoZSB1c2VyJ3MgY2FydCAodGhlIHF1YW50aXR5IGF0dHJpYnV0ZSBvZlxuICAgICAqIGVhY2ggcHJvZHVjdCBpcyBhIG5lZ2F0aXZlIG51bWJlciB0byBpbmRpY2F0ZSB0aGF0IGl0IGlzIHRoZSBxdWFudGl0eSB0byByZW1vdmUpXG4gICAgICovXG4gICAgZGVmaW5lUmVtb3ZlUHJvZHVjdHNGcm9tQ2FydDogKHJlbW92ZVByb2R1Y3RzRnJvbUNhcnQ6IChwcm9kdWN0czogQ29tcGFyYWJsZVByb2R1Y3RbXSkgPT4gdm9pZCkgPT4gdm9pZDtcbiAgICAvKipcbiAgICAgKiBUaGUgY2FsbGJhY2sgcGFyYW1ldGVyIGlzIGNhbGxlZCB3aGVuIE1lYWx6J3MgYmFza2V0IGNoYW5nZXMgdG8gdXBkYXRlIHRoZSB1c2VyJ3MgY2FydCBhY2NvcmRpbmdseVxuICAgICAqXG4gICAgICogQHBhcmFtIHB1c2hQcm9kdWN0c1RvQ2FydCBhIG1ldGhvZCB0aGF0IHVwZGF0ZXMgdGhlIHVzZXIncyBjYXJ0IHdpdGggdGhlIHBydWR1Y3RzIHBhc3NlZCBpbiBwYXJhbWV0ZXIsIGJ5IGFkZGluZ1xuICAgICAqIHByb2R1Y3RzIGlmIHRoZWlyIHF1YW50aXR5IGlzIHBvc2l0aXZlLCBhbmQgcmVtb3ZpbmcgdGhlbSBpZiB0aGVpciBxdWFudGl0eSBpcyBuZWdhdGl2ZVxuICAgICAqL1xuICAgIGRlZmluZVB1c2hCYXNrZXRFbnRyaWVzVG9CYXNrZXQ6IChwdXNoUHJvZHVjdHNUb0NhcnQ6IChwcm9kdWN0czogQ29tcGFyYWJsZVByb2R1Y3RbXSkgPT4gdm9pZCkgPT4gdm9pZDtcbiAgICAvKipcbiAgICAgKiBDYWxsIHRvIG5vdGlmeSBNZWFseiB0aGF0IHRoZSB1c2VyJ3MgY2FydCBoYXMgYmVlbiB1cGRhdGVkXG4gICAgICpcbiAgICAgKiBAcGFyYW0gY29tcGFyYWJsZVByb2R1Y3RzIFRoZSBwcm9kdWN0cyBpbiB0aGUgdXNlcidzIGNhcnRcbiAgICAgKi9cbiAgICByZXRhaWxlckJhc2tldENoYW5nZWQ6IChjb21wYXJhYmxlUHJvZHVjdHM6IENvbXBhcmFibGVQcm9kdWN0W10pID0+IHZvaWQ7XG4gICAgLyoqXG4gICAgICogQ2FsbCB0byBub3RpZnkgTWVhbHogdGhhdCB0aGUgdXNlcidzIGNhcnQgd2FzIHBhaWRcbiAgICAgKiBNZWFseiB0aGVuIHJlZnJlc2hlcyB0aGUgYmFza2V0IGZvciB0aGUgbmV4dCB1c2VyJ3MgY2FydFxuICAgICAqXG4gICAgICogQHBhcmFtIHRvdGFsIFRoZSB0b3RhbCBwcmljZSBvZiB0aGUgY2FydCBwYWlkXG4gICAgICovXG4gICAgaGFuZGxlUGF5bWVudDogKHRvdGFsOiBudW1iZXIpID0+IHZvaWQ7XG4gIH07XG5cbiAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbiAgY29uZmlnOiB7XG4gICAgbWVhbHpMb2dzOiAocGFyYW06ICdub25lJyB8ICd3YXJuJyB8ICdlcnJvcicgfCAnYWxsJykgPT4gdm9pZDtcbiAgfTtcblxuICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuICBmZWF0dXJlczoge1xuICAgIC8qKlxuICAgICAqIENhbGwgdG8gZW5hYmxlIHJlY2lwZXMgdG8gZGlzcGxheSBhIHZpZGVvIGluc3RlYWQgb2YgdGhlaXIgcGljdHVyZSwgaWYgdGhlcmUgaXMgYSB2aWRlbyBmb3IgdGhlIHJlY2lwZVxuICAgICAqL1xuICAgIGVuYWJsZVZpZGVvUmVjaXBlczogKCkgPT4gdm9pZDtcbiAgICAvKipcbiAgICAgKiBDYWxsIHRvIGVuYWJsZSB0aGUgY2F0YWxvZyB0byBkaXNwbGF5IGFydGljbGVzLCBpZiB0aGVpciBhcmUgcGFja2FnZXMgdGhhdCBjb250YWluIGFueSBhcnRpY2xlc1xuICAgICAqL1xuICAgIGVuYWJsZUFydGljbGVzSW5DYXRhbG9nOiAoKSA9PiB2b2lkO1xuICAgIC8qKlxuICAgICAqIENhbGwgdG8gYXV0aG9yaXplIE1lYWx6IHRvIGFzayBmb3IgdXNlciBwcmVmZXJlbmNlcyB0aGUgZmlyc3QgdGltZSB1c2VycyB2aWV3IHRoZSByZWNpcGUgY2F0YWxvZ1xuICAgICAqL1xuICAgIGVuYWJsZVVzZXJQcmVmZXJlbmNlczogKCkgPT4gdm9pZDtcbiAgICAvKipcbiAgICAgKiBDYWxsIHRvIGVuYWJsZSB0YWdzIGRpc3BsYXlpbmcgb24gcmVjaXBlLWRldGFpbHNcbiAgICAgKi9cbiAgICBlbmFibGVUYWdzT25SZWNpcGVzOiAoKSA9PiB2b2lkO1xuICAgIC8qKlxuICAgICAqIENhbGwgdG8gZW5hYmxlIHRoZSBtZWFscy1wbGFubmVyXG4gICAgICpcbiAgICAgKiBAcGFyYW0gdXJsIG9mIHRoZSBwYWdlIHdoZXJlIHlvdSBpbmplY3QgdGhlIG1lYWxzIHBsYW5uZXJcbiAgICAgKiBAcGFyYW0gYW50aUluZmxhdGlvbiBpZiB5b3Ugd2FudCB0byB1c2UgdGhlIGFudGkgaW5mbGF0aW9uXG4gICAgICovXG4gICAgZW5hYmxlTWVhbHNQbGFubmVyOiAodXJsOiBzdHJpbmcsIGFudGlJbmZsYXRpb24/OiBib29sZWFuKSA9PiB2b2lkO1xuXG4gICAgLyoqXG4gICAgICogQ2FsbCB0byBlbmFibGUgU0VPIChUaXRsZSBhbmQgbWV0YSB0YWdzIG9uIHJlY2lwZSBkaXNwbGF5KVxuICAgICAqL1xuICAgIGVuYWJsZVNlbzogKCkgPT4gdm9pZFxuICAgIC8qKlxuICAgICAqIENhbGwgdG8gZW5hYmxlIGd1ZXN0cyBpbnB1dCBvbiBteS1tZWFscyBjYXJkc1xuICAgICAqL1xuICAgIGVuYWJsZUd1ZXN0c0lucHV0T25NeU1lYWxzOiAoKSA9PiB2b2lkO1xuXG4gICAgLyoqXG4gICAgICogQ2FsbCB0byBlbmFibGUgY29sbGFwc2luZyBvZiB1bmF2YWlsYWJsZSBwcm9kdWN0cyBieSBkZWZhdWx0XG4gICAgICogQGRlcHJlY2F0ZWQgTm90IHVzZWQgYW55bW9yZVxuICAgICAqL1xuICAgIGNvbGxhcHNlVW5hdmFpbGFibGVQcm9kdWN0c0J5RGVmYXVsdDogKCkgPT4gdm9pZDtcbiAgfTtcblxuICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuICBob29rOiB7XG4gICAgLyoqXG4gICAgICogU2V0IHVwIGEgY2FsbGJhY2sgd2hpY2ggTWVhbHogd2lsbCBjYWxsIGJlZm9yZSBhZGRpbmcgYSByZWNpcGUgdG8gdGhlIHVzZXIncyBjYXJ0XG4gICAgICpcbiAgICAgKiBAcGFyYW0gY2FsbGJhY2sgYSBtZXRob2QgdGhhdCB3aWxsIGJlIGNhbGxlZCBwYXNzaW5nIHR3byBwYXJhbWV0ZXJzIDpcbiAgICAgKiAgLSBpc0xvZ2dlZCwgdHJ1ZSBpZiB0aGUgdXNlciBpcyBsb2dnZWQgKGFjY29yZGluZyB0byBNZWFseiwgc2VlIHVzZXIubG9hZFdpdGhFeHRJZCBmb3IgbW9yZSlcbiAgICAgKiAgLSBpc1Bvc1ZhbGlkIHRydWUgaWYgdGhlIFBvaW50T2ZTYWxlIGlzIHJlY29nbml6ZWQgYnkgTWVhbHpcbiAgICAgKiBUeXBpY2FsbHkgeW91IG1pZ2h0IHdhbnQgdG8gdXNlIHRoaXMgdG8gc2hvdyB5b3VyIGNvbm5leGlvbiBwYWdlIGlmIHRoZSB1c2VyIHRyaWVzIHRvIGFkZCBhIHJlY2lwZSB3aGlsZSBsb2dnZWQgb3V0XG4gICAgICogb3IgdG8gc2hvdyB5b3VyIHBvaW50IG9mIHNhbGUgcGlja2VyIGlmIHRoZSB1c2VyIGhhcyBub3QgY2hvc2VuIG9uZVxuICAgICAqL1xuICAgIHNldEhvb2tDYWxsYmFjazogKGNhbGxiYWNrOiAoaXNMb2dnZWQsIGlzUG9zVmFsaWQpID0+IGJvb2xlYW4pID0+IHZvaWQ7XG4gICAgLyoqXG4gICAgICogU2V0IHVwIGEgY2FsbGJhY2sgd2hpY2ggTWVhbHogd2lsbCBjYWxsIHdoZW4gaXQgbmVlZHMgdG8gZm9yY2UgdGhlIFBPU1xuICAgICAqIChvbmx5IHVzZWQgd2hlbiB0cmFuZmVyaW5nIGEgYmFza2V0IGZyb20gYW4gYWZmaWxpYXRlZCB3ZWJzaXRlKVxuICAgICAqXG4gICAgICogQHBhcmFtIGNhbGxiYWNrIGEgbWV0aG9kIHRoYXQgd2lsbCBiZSBjYWxsZWQgcGFzc2luZyA6XG4gICAgICogIC0gcG9zRXh0SWQsIHRoZSBpZCBvZiB0aGUgUE9TIChpbiB5b3VyIGRhdGFiYXNlKVxuICAgICAqL1xuICAgIHNldEZvcmNlUG9zQ2FsbGJhY2s6IChjYWxsYmFjazogKHBvc0V4dElkOiBzdHJpbmcpID0+IGJvb2xlYW4pID0+IHZvaWQ7XG4gIH07XG5cbiAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbiAgcG9zOiB7XG4gICAgLyoqXG4gICAgICogQ2FsbCB0byBpbmZvcm0gTWVhbHogb2YgdGhlIHBvaW50IG9mIHNhbGUgdGhlIHVzZXIgaXMgY3VycmVudGx5IG9uLiBEbyBub3QgZm9yZ2V0IHRvIGNhbGwgdGhlIG1ldGhvZFxuICAgICAqIGlmIGl0IGNoYW5nZXMgYWZ0ZXIgdXNlciBsb2FkcyB0aGUgcGFnZVxuICAgICAqXG4gICAgICogQHBhcmFtIGV4dGVybmFsSWQgdGhlIGlkIG9mIHRoZSBQb2ludE9mU2FsZSBpbiBjbGllbnQncyBkYXRhYmFzZVxuICAgICAqL1xuICAgIGxvYWQ6IChleHRlcm5hbElkKSA9PiB2b2lkO1xuXG4gICAgLyoqXG4gICAgICogVGhpcyBpcyBhbiBpbnRlcm5hbCBtZXRob2QgdGhhdCB3aWxsIGJlIG1vdmVkIGVsc2V3aGVyZSBzb29uLiBEbyBub3QgY2FsbFxuICAgICAqL1xuICAgIGdldEJ5QWRkcmVzczogKGFkZHJlc3M6IHN0cmluZywgcmFkaXVzOiBzdHJpbmcsIHN1cHBsaWVyczogc3RyaW5nW10pID0+IE9ic2VydmFibGU8RG9jdW1lbnRDb2xsZWN0aW9uPFBvaW50T2ZTYWxlPj47XG4gICAgLyoqXG4gICAgICogVGhpcyBpcyBhbiBpbnRlcm5hbCBtZXRob2QgdGhhdCB3aWxsIGJlIG1vdmVkIGVsc2V3aGVyZSBzb29uLiBEbyBub3QgY2FsbFxuICAgICAqL1xuICAgIGdldEJ5Q29vcmRpbmF0ZXM6IChsYXRpdHVkZTogbnVtYmVyLCBsb25naXR1ZGU6IG51bWJlciwgcmFkaXVzOiBudW1iZXIsIHN1cHBsaWVyczogc3RyaW5nW10pID0+IE9ic2VydmFibGU8RG9jdW1lbnRDb2xsZWN0aW9uPFBvaW50T2ZTYWxlPj47XG4gIH07XG5cbiAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbiAgcmVjaXBlczoge1xuICAgIC8qKlxuICAgICAqIEFuIG9ic2VydmFibGUgdGhhdCBlbWl0cyBhIHZhbHVlIHdoZW4gdGhlIHJlY2lwZS1tb2RhbCBpcyBjbG9zZWRcbiAgICAgKi9cbiAgICBoaWRkZW46IE9ic2VydmFibGU8Ym9vbGVhbj47XG4gICAgLyoqXG4gICAgICogQW4gRXZlbnRFbWl0dGVyIHRoYXQgZW1pdHMgYSB2YWx1ZSB3aGVuIHRoZSBcIkFkZCBhbGwgaW5ncmVkaWVudHNcIiBDVEEgb24gcmVjaXBlLWRldGFpbHMgaXMgY2xpY2tlZFxuICAgICAqL1xuICAgIGFkZEFsbEluZ3JlZGllbnRzQ1RBV2FzQ2xpY2tlZDogRXZlbnRFbWl0dGVyPHsgaW5ncmVkaWVudHNBZGRlZDogbnVtYmVyOyBpbmdyZWRpZW50c1RvdGFsOiBudW1iZXIgfT47XG4gICAgLyoqXG4gICAgICogQ2FsbCB3aXRoIGFuIHVybCBvZiBhIHBpY3R1cmUgdG8gY2hhbmdlIHRoZSBkZWZhdWx0IHBpY3R1cmUgZGlzcGxheWVkIGlmIGFuIGluZ3JlZGllbnQgZG9lc24ndCBoYXZlIGEgcGljdHVyZVxuICAgICAqIGFuZCBpZiBpbmdyZWRpZW50cyBwaWN0dXJlIGhhdmUgYmVlbiBlbmFibGVkIHdpdGggcmVjaXBlcy5zaG91bGREaXNwbGF5SW5ncmVkaWVudFBpY3R1cmVzT25SZWNpcGVDYXJkcyh0cnVlKVxuICAgICAqL1xuICAgIHNldERlZmF1bHRJbmdyZWRpZW50UGljdHVyZTogKHVybDogc3RyaW5nKSA9PiB2b2lkO1xuXG4gICAgLyoqXG4gICAgICogQ2FsbCB3aXRoIGFuIHVybCBvZiBhIHBpY3R1cmUgdG8gY2hhbmdlIHRoZSBkZWZhdWx0IHBpY3R1cmUgZGlzcGxheWVkIGlmIGEgcmVjaXBlIGRvZXNuJ3QgaGF2ZSBhIHBpY3R1cmVcbiAgICAgKi9cbiAgICBzZXREZWZhdWx0UmVjaXBlUGljdHVyZTogKHVybDogc3RyaW5nKSA9PiB2b2lkO1xuXG4gICAgLyoqXG4gICAgICogT3ZlcnJpZGUgZGVmYXVsdCBsYWJlbHMgZm9yIGRpZmZpY3VsdHkgbGV2ZWxzXG4gICAgICpcbiAgICAgKiBAcGFyYW0gbGV2ZWxzIFRoZSBsaXN0IG9mIGxhYmVscyB0byBvdmVycmlkZSBmb3IgZWFjaCBkaWZmaWN1bHR5IChkaWZmaWN1bHRpZXMgYXJlIHJlc3BlY3RpdmVseSAxOiBFYXN5LCAyOiBNZWRpdW0sIDM6IEhhcmQpXG4gICAgICogZXhhbXBsZSA6IFt7dmFsdWU6IDEsIGxhYmVsOiBcIkJlZ2lubmVyXCJ9XSB0byB1cGRhdGUgdGhlIGxhYmVsIG9mIGVhc3kgcmVjaXBlcyB0byBcIkJlZ2lubmVyXCJcbiAgICAgKi9cbiAgICBzZXREaWZmaWN1bHR5TGV2ZWxzOiAobGV2ZWxzOiB7IHZhbHVlOiBudW1iZXI7IGxhYmVsOiBzdHJpbmcgfVtdKSA9PiB2b2lkO1xuICAgIC8vIC8qKlxuICAgIC8vICAqIC8hXFwgREVQUkVDQVRFRDogRE8gTk9UIFVTRSAvIVxcXG4gICAgLy8gICovXG4gICAgLy8gIHNldFJlY2lwZXNQcmltYXJ5QnV0dG9uQWN0aW9uczogKGRpc3BsYXk6IGJvb2xlYW4sIGFkZFRvQmFza2V0OiBib29sZWFuKSA9PiB2b2lkO1xuICAgIC8vIC8qKlxuICAgIC8vICAqIC8hXFwgREVQUkVDQVRFRDogRE8gTk9UIFVTRSAvIVxcXG4gICAgLy8gICovXG4gICAgLy8gc2V0U3VnZ2VzdGlvbnNQcmltYXJ5QnV0dG9uQWN0aW9uczogKGRpc3BsYXk6IGJvb2xlYW4sIGFkZFRvQmFza2V0OiBib29sZWFuKSA9PiB2b2lkO1xuICAgIC8qKlxuICAgICAqIElmIGNhbGxlZCwgYWRkaW5nIG9yIHJlbW92aW5nIGFueSBwcm9kdWN0IHRvIG9yIGZyb20gdGhlIGNhcnQgd2lsbCBkaXNwbGF5IGEgY29uZmlybWF0aW9uIHRvYXN0ZXJcbiAgICAgKi9cbiAgICBzaG93Q29uZmlybWF0aW9uVG9hc3RlcjogKCkgPT4gdm9pZDtcblxuICAgIC8qKlxuICAgICAqIEBwYXJhbSBzaG91bGQgaWYgc2V0IHRvIHRydWUsIHRoZSByZWNpcGUtY2FyZHMgd2lsbCBkaXNwbGF5IHRoZSBpbmdyZWRpZW50cyBvZiB0aGVpciByZWNpcGVcbiAgICAgKi9cbiAgICBzaG91bGREaXNwbGF5SW5ncmVkaWVudFBpY3R1cmVzT25SZWNpcGVDYXJkczogKHNob3VsZDogYm9vbGVhbikgPT4gdm9pZDtcbiAgfTtcblxuICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuICByb3V0ZXI6IHtcbiAgICAvKipcbiAgICAgKiBJbmZvcm0gTWVhbHogb2YgdGhlIHVybCB3aGVyZSB0aGUgY2F0YWxvZyBpcyBmb3IgdGhlIHJlZGlyZWN0aW9uIGxpbmsgb2YgcmVjaXBlLWRldGFpbHNcbiAgICAgKi9cbiAgICBzZXRSZWNpcGVDYXRhbG9nVXJsOiAodXJsPzogc3RyaW5nKSA9PiB2b2lkO1xuICAgIC8qKlxuICAgICAqIEluZm9ybSBNZWFseiBvZiB0aGUgdXJsIHdoZXJlIHRoZSBvbmJvYXJkaW5nIHNlY3Rpb24gb2YgdGhlIGNhdGFsb2cgc2hvdWxkIHJlZGlyZWN0XG4gICAgICovXG4gICAgc2V0UmVjaXBlSW5mb0xpbms6ICh1cmw/OiBzdHJpbmcpID0+IHZvaWQ7XG4gICAgLyoqXG4gICAgICogSW5mb3JtIE1lYWx6IG9mIHRoZSB1cmwgb2YgdGhlIHJldGFpbGVyJ3MgaWYgTWVhbHogbmVlZHMgdG8gcmVkaXJlY3QgdGhlcmVcbiAgICAgKi9cbiAgICBzZXRSZXRhaWxlckNhcnRVcmw6ICh1cmw/OiBzdHJpbmcpID0+IHZvaWQ7XG4gICAgLyoqXG4gICAgICogSW5mb3JtIE1lYWx6IG9mIHRoZSB1cmwgd2hlcmUgdGhlIHByb21vdGlvbnMgYXJlXG4gICAgICovXG4gICAgc2V0UHJvbW90aW9uc1VybDogKHVybD86IHN0cmluZykgPT4gdm9pZDtcbiAgfTtcblxuICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuICBzdXBwbGllcjoge1xuICAgIC8qKlxuICAgICAqIC8hXFwgVGhpcyBuZWVkcyB0byBiZSB0aGUgZmlyc3QgbWV0aG9kIGNhbGxlZCwgYmVjYXVzZSBub3RoaW5nIHdpbGwgd29yayBpZiB0aGUgb3JpZ2luIGlzbid0IHNldFxuICAgICAqIEBwYXJhbSBvcmlnaW4gYW4gaWRlbnRpZmllciBzdHJpbmcgdGhhdCBNZWFseiBwYXNzZXMgdG8gdGhlIEFQSSB3aXRoIGVhY2ggcmVxdWVzdCB0byBrZWVwIHRyYWNrIG9mIHRoZSBvcmlnaW5cbiAgICAgKiBvZiB0aGUgcmVxdWVzdFxuICAgICAqL1xuICAgIHNldE9yaWdpbjogKG9yaWdpbjogc3RyaW5nKSA9PiB2b2lkO1xuICAgIC8qKlxuICAgICAqIENhbGwgdG8gaW5mb3JtIE1lYWx6IG9mIHRoZSBzdXBwbGllciB0aGUgdXNlciBpcyBjdXJyZW50bHkgb24uIERvIG5vdCBmb3JnZXQgdG8gY2FsbCB0aGUgbWV0aG9kXG4gICAgICogaWYgaXQgY2hhbmdlcyBhZnRlciB1c2VyIGxvYWRzIHRoZSBwYWdlIChzaG91bGQgbm90IGhhcHBlbiBlc2NlcHQgaW4gdmVyeSBzcGVjaWZpYyBjYXNlcylcbiAgICAgKlxuICAgICAqIEBwYXJhbSBzdXBwbGllcklkIHRoZSBTdXBwbGllciBpZCBpbiBNZWFseidzIGRhdGFiYXNlXG4gICAgICovXG4gICAgbG9hZDogKHN1cHBsaWVySWQ6IG51bWJlciB8IHN0cmluZykgPT4gdm9pZDtcbiAgICAvKipcbiAgICAgKiAzLWluLTEgdmVyc2lvbiBvZiBzdXBwbGllci5sb2FkLCBzdXBwbGllci5zZXRPcmlnaW4gJiBhbmFseXRpY3MuaW5pdCwgdGhhdCByZXF1aXJlcyBhIHNpbmdsZSB0b2tlblxuICAgICAqIEBwYXJhbSB0b2tlbiBhIHNpbmdsZSB0b2tlbiBjb250YWluaW5nIHRoZSBpbmZvcm1hdGlvbiBmb3Igc3VwcGxpZXJJZCwgb3JpZ2luICYgcGxhdXNpYmxlIGRvbWFpblxuICAgICAqL1xuICAgIHNldHVwV2l0aFRva2VuOiAodG9rZW46IHN0cmluZykgPT4gdm9pZDtcblxuICAgIGdldEFmZmlsaWF0ZVN1cHBsaWVyczogKCkgPT4gT2JzZXJ2YWJsZTxTdXBwbGllcltdPjtcbiAgfTtcblxuICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuICB1c2VyOiB7XG4gICAgLyoqXG4gICAgICogQ2FsbCB0byBpbmZvcm0gTWVhbHogb2YgdGhlIGlkIG9mIHRoZSB1c2VyLlxuICAgICAqXG4gICAgICogQHBhcmFtIGlkIGEgc3RyaW5nIHVuaXF1ZSBpZGVudGlmaWVyIHRvIHRoZSB1c2VyXG4gICAgICogQHBhcmFtIGZvcmJpZFByb2ZpbGluZyBpZiBzZXQgdG8gdHJ1ZSwgZGVzYWN0aXZhdGUgcGVyc29uYWxpemVkIGNvbnRlbnQgKHBlcnNvbmFsaXplZCByZWNpcGVzICYgcHJvZHVjdHMpXG4gICAgICogQHBhcmFtIGluaXRCYXNrZXQgREVQUkVDQVRFRCAtIGlmIHNldCB0byB0cnVlLCBmZXRjaCB0aGUgR3JvY2VyaWVzTGlzdCAmIEJhc2tldCBvZiB0aGUgdXNlciAocmVjb21tYW5kZWQgYXNcbiAgICAgKiBpdCBzYXZlcyB0aW1lIGxhdGVyKVxuICAgICAqL1xuICAgIGxvYWRXaXRoRXh0ZXJuYWxJZDogKGlkOiBzdHJpbmcsIGZvcmJpZFByb2ZpbGluZz86IGJvb2xlYW4sIGluaXRCYXNrZXQ/OiBib29sZWFuKSA9PiBPYnNlcnZhYmxlPG9iamVjdD47XG4gICAgLyoqXG4gICAgICogQ2FsbCB0byBpbmZvcm0gTWVhbHogdGhhdCB0aGUgdXNlciBpcyBhdXRobGVzcyB3aXRoIHRoZSBjb3JyZXNwb25kaW5nIGlkXG4gICAgICogQHBhcmFtIGlkIGF1dGhsZXNzLWlkIGZldGNoZWQgZnJvbSB0aGUgcm91dGUgL2dlbmVyYXRlLWF1dGhsZXNzLXRva2VuXG4gICAgICogQHBhcmFtIGZvcmJpZFByb2ZpbGluZyBpZiBzZXQgdG8gdHJ1ZSwgZGVzYWN0aXZhdGUgcGVyc29uYWxpemVkIGNvbnRlbnQgKHBlcnNvbmFsaXplZCByZWNpcGVzICYgcHJvZHVjdHMpXG4gICAgICovXG4gICAgbG9hZFdpdGhBdXRobGVzc0lkOiAoaWQ6IHN0cmluZywgZm9yYmlkUHJvZmlsaW5nPzogYm9vbGVhbikgPT4gdm9pZDtcbiAgICAvKipcbiAgICAgKiBDYWxsIHRvIGluZm9ybSBNZWFseiB0aGF0IHByb2ZpbGluZyBwcmVmZXJlbmNlcyBoYXZlIGJlZW4gdXBkYXRlZFxuICAgICAqIEBwYXJhbSBmb3JiaWRQcm9maWxpbmcgaWYgc2V0IHRvIHRydWUsIGRlc2FjdGl2YXRlIHBlcnNvbmFsaXplZCBjb250ZW50IChwZXJzb25hbGl6ZWQgcmVjaXBlcyAmIHByb2R1Y3RzKVxuICAgICAqIEBwYXJhbSB1c2VySWQgdXNlcklkIG9yIGF1dGhsZXNzSWQgb2YgdGhlIHVzZXJcbiAgICAgKiBAcGFyYW0gaXNBdXRobGVzcyBpZiB0cnVlIE1lYWx6IHdpbGwgdHJlYXQgdXNlcklEIGFzIGFuIGF1dGhsZXNzLWlkXG4gICAgICovXG4gICAgdXBkYXRlRm9yYmlkUHJvZmlsaW5nOiAoZm9yYmlkUHJvZmlsaW5nOiBib29sZWFuLCB1c2VySWQ6IHN0cmluZywgaXNBdXRobGVzczogYm9vbGVhbikgPT4gdm9pZDtcbiAgICAvKipcbiAgICAgKiBDYWxsIHRvIGluZm9ybSBNZWFseiB0aGF0IHRoZSB1c2VyIGhhcyBsb2dnZWQgb3V0XG4gICAgICovXG4gICAgcmVzZXQ6ICgpID0+IHZvaWQ7XG5cbiAgICAvKipcbiAgICAgKiBTZXQgdXNlciBsYW5ndWFnZSB3aXRoIGEgSVNPIDYzOS0xIGNvZGUgb3IgY3VzdG9tIGxhbmd1YWdlIG5hbWVcbiAgICAgKiBAcGFyYW0gbGFuZ1xuICAgICAqL1xuICAgIHNldExhbmd1YWdlOiAobGFuZzogc3RyaW5nKSA9PiB2b2lkO1xuXG4gICAgLyoqXG4gICAgICogSWYgeW91ciB3ZWJzaXRlIGhhcyBhIFwiZmF2b3JpdGUgcHJvZHVjdHNcIiBmZWF0dXJlLCB5b3UgY2FuIHBhc3MgdGhlIGlkcyBvZiBhbGwgcHJvZHVjdHNcbiAgICAgKiB3aGljaCB0aGUgdXNlciBoYXMgbWFya2VkIGFzIGZhdm9yaXRlcywgc28gdGhleSBjYW4gYmUgcHJpb3JpdGl6ZWQgd2hlbiBhZGRpbmcgYSByZWNpcGVcbiAgICAgKiB0byB0aGVpciBjYXJ0LCBpZiBvbmUgb2YgdGhlbSBpcyByZXR1cm5lZCBhcyBhIG1hdGNoaW5nIHByb2R1Y3QgZm9yIHRoZSByZWNpcGUuXG4gICAgICpcbiAgICAgKiBAcGFyYW0gZmF2b3JpdGVQcm9kdWN0SWRzIGFuIGFycmF5IG9mIHByb2R1Y3QgaWRzLCBwYXNzZWQgYXMgc3RyaW5nXG4gICAgICovXG4gICAgc2V0RmF2b3JpdGVJdGVtczogKGZhdm9yaXRlUHJvZHVjdElkczogc3RyaW5nW10pID0+IE9ic2VydmFibGU8b2JqZWN0PjtcblxuICAgIC8qKlxuICAgICAqIFVzZXIgbG9jYXRpb24gY2FuIGJlIHNldCBmcm9tIHRoZSB1c2VyJ3MgYnJvd3NlciBpZiB0aGV5IGFsbG93ZWQgaXRcbiAgICAgKiBAcGFyYW0gY29vcmRzIG11c3QgcHJvdmlkZSBsYXRpdHVkZSAobnVtYmVyKSBhbmQgbG9uZ2l0dWRlIChudW1iZXIpIGFuZCBvcHRpb25hbGx5IGFuIGFjY3VyYWN5IChudW1iZXIpXG4gICAgICovXG4gICAgc2V0TG9jYXRpb246IChjb29yZHM6IEdlb2xvY2F0aW9uUG9zaXRpb24pID0+IHZvaWQ7XG4gIH07XG5cbiAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbiAgZXZlbnRzOiB7XG4gICAgc3RvcmVMb2NhdG9yT3BlbmVkOiAoKSA9PiBPYnNlcnZhYmxlPGJvb2xlYW4+XG4gIH07XG5cbiAgLyoqXG4gICAqIENhbGwgd2l0aCB0aGUgaGVpZ2h0IGluIHB4IG9mIHlvdXIgd2Vic2l0ZSdzIGhlYWRlciB3aGVuIGl0IGlzIHN0aWNreSBzbyBNZWFseiBjYW4gb2Zmc2V0IGl0cyBzdGlja3kgY29tcG9uZW50c1xuICAgKiBJZiBub3QgY2FsbGVkLCBhbnkgc3RpY2t5IGNvbXBvbmVudHMgZnJvbSBNZWFseiBtYXkgYXBwZWFyIG5vdCBzdGljayBjb3JyZWN0bHkgYmVsb3cgeW91ciBoZWFkZXJcbiAgICovXG4gIHNldFN0aWNreUhlYWRlckhlaWdodDogKGhlaWdodDogbnVtYmVyKSA9PiB2b2lkO1xuXG4gIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4gIC8qKlxuICAgKiBPdmVycmlkZSB0d28gdGltZXMgd2lsbCBub3QgYmUgY29uc2lkZXJlZCAoREVQUkVDQVRFRClcbiAgICogQHBhcmFtIGljb24gaGF2ZSB0byBiZSBhIGtub3dlZCBpY29uIG5hbWUgc2VlIHNlY3Rpb24gJ0N1c3RvbSBpY29ucycgaW4gcmVhZCBtZVxuICAgKiBAcGFyYW0gdXJsIG9mIHRoZSBuZXcgaWNvblxuICAgKi9cbiAgb3ZlcnJpZGVJY29uOiAoaWNvbiwgdXJsOiBzdHJpbmcpID0+IHZvaWQ7XG5cbiAgLyoqXG4gICAqIFBhc3MgYSBjYWxsYmFjayB0aGF0IHJldHVybnMgdGhlIGRlZmF1bHQgc2Nyb2xsIGNvbnRhaW5lciBvZiB0aGUgcGFnZSBzbyBtZWFseiBtb2RhbCBjYW4gYmxvY2sgdGhlIHNjcm9sbCB3aGVuIG9wZW5lZFxuICAgKiBEZWZhdWx0IGNhbGxiYWNrIHJldHVybnMgZG9jdW1lbnQuYm9keVxuICAgKi9cbiAgc2V0RGVmYXVsdFNjcm9sbEVsZW1lbnRHZXR0ZXI6IChjYWxsYmFjazogKCkgPT4gSFRNTEVsZW1lbnQpID0+IHZvaWQ7XG59XG4iXX0=
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVhbHotaW50ZXJmYWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmctbWlhbS9zcmMvbGliL190eXBlcy9idWlsZGVkL21lYWx6LWludGVyZmFjZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRXZlbnRFbWl0dGVyIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBEb2N1bWVudENvbGxlY3Rpb24gfSBmcm9tICdtaWFtLWpzb25hcGknO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgUG9pbnRPZlNhbGUsIFN1cHBsaWVyIH0gZnJvbSAnLi4vLi4vX21vZGVscyc7XG5pbXBvcnQgeyBDb21wYXJhYmxlUHJvZHVjdCB9IGZyb20gJy4vY29tcGFyYWJsZS1wcm9kdWN0JztcblxuZXhwb3J0IGludGVyZmFjZSBNZWFsekludGVyZmFjZSB7XG4gIC8qKlxuICAgKiBNZXRob2QgdG8gY2FsbCB3aGVuIHRoZSB1c2VyIGJlZ2lucyB0aGUgcGF5bWVudCBwcm9jZWR1cmUgKHR5cGljYWxseSB3aGVuIHRoZXkgY2xpY2tcbiAgICogb24gYSBcIkNvbmZpcm0gbXkgY2FydFwiIGJ1dHRvbilcbiAgICogQHBhcmFtIHRvdGFsUHJpY2UgdGhlIHRvdGFsIHByaWNlIG9mIHlvdXIgYmFza2V0IChjYW4gYmUgYSBmbG9hdGluZyBvciBpbnRlZ2VyIG51bWJlcilcbiAgICovXG4gIHBheW1lbnRTdGFydGVkOiAodG90YWxQcmljZTogbnVtYmVyKSA9PiB2b2lkO1xuXG4gIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4gIGFuYWx5dGljczoge1xuICAgIC8qKlxuICAgICAqIEluaXRpYWxpemUgQW5hbHl0aWNzXG4gICAgICpcbiAgICAgKiBAcGFyYW0gZG9tYWluIFBsYXVzaWJsZSBkb21haW5cbiAgICAgKi9cbiAgICBpbml0OiAoZG9tYWluOiBzdHJpbmcpID0+IHZvaWQ7XG5cbiAgICAvKipcbiAgICAgKiBPYnNlcnZhYmxlIG9uIGV2ZW50cyBhcyBhIHN0cmluZyBzZW50IGZyb20gQW5hbHl0aWNzXG4gICAgICovXG4gICAgZXZlbnRTZW50JDogT2JzZXJ2YWJsZTxzdHJpbmc+O1xuXG4gICAgLyoqXG4gICAgICogTXVzdCBiZSBjYWxsZWQgYmVmb3JlIGluaXRcbiAgICAgKi9cbiAgICBzZXRBYlRlc3RLZXk6IChrZXk6IHN0cmluZykgPT4gdm9pZDtcbiAgfTtcblxuICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuICBiYXNrZXQ6IHtcbiAgICAvKipcbiAgICAgKiBFbWl0cyB0cnVlIHdoZW4gTWVhbHoncyBiYXNrZXQgaGFzIHN1Y2Nlc2Z1bGx5IGxvYWRlZCBmb3IgdGhlIGZpcnN0IHRpbWUuXG4gICAgICogRG9lcyBub3QgZW1pdCBhbnl0aGluZyBiZWZvcmUgb3IgYWZ0ZXIgdGhhdC5cbiAgICAgKi9cbiAgICBiYXNrZXRJc1JlYWR5JDogT2JzZXJ2YWJsZTxib29sZWFuPjtcbiAgICAvKipcbiAgICAgKiBGZXRjaCB0aGUgZmlyc3QgQmFza2V0IGVhcmx5IChiZWZvcmUgYW55IGFjdGlvbiByZXF1aXJlcyBpdCBvbiBNZWFseidzXG4gICAgICogc2lkZSksIHNvIHlvdSBjYW4gc3RhcnQgdGhlIGJhc2tldC1zeW5jIGVhcmxpZXJcbiAgICAgKi9cbiAgICBpbml0aWFsaXplOiAoKSA9PiB2b2lkO1xuICAgIC8qKlxuICAgICAqIFJlc2V0cyBNZWFseidzIGJhc2tldCA6IGVtcHRpZXMgYWxsIHByb2R1Y3RzICYgcmVjaXBlcyBhZGRlZCBieSB0aGUgdXNlclxuICAgICAqIC8hXFwgV2UgaGVhdmlseSByZWNvbW1lbmQgbm90IHRvIHVzZSB0aGlzIG1ldGhvZCBleGNlcHQgaW4gdGhlIGNvbnNvbGUgZm9yIHRlc3RpbmcgcHVycG9zZXMgLyFcXFxuICAgICAqL1xuICAgIHJlc2V0OiAoKSA9PiB2b2lkO1xuICAgIC8qKlxuICAgICAqIElmIHlvdSBoYXZlIGRpZmZlcmVudCBwcmljZSB0YWJsZXMgKG9yIHByaWNlYm9va3MpIGZvciB0aGUgc2FtZSBwb2ludCBvZiBzYWxlLCB5b3UgY2FuIGNhbGwgdGhpc1xuICAgICAqIG1ldGhvZCB0byBtYWtlIE1lYWx6IGtub3cgb24gd2hpY2ggcHJpY2Vib29rIHlvdSBhcmUgdXNpbmdcbiAgICAgKiBGb3IgZXhhbXBsZSwgcHJpY2VzIGNhbiBiZSBkaWZmZXJlbnQgZGVwZW5kaW5nIG9uIGlmIHRoZSB1c2VyIGNob3NlIGhvbWUgZGVsaXZlcnkgb3IgZHJpdmUtaW5cbiAgICAgKi9cbiAgICB1cGRhdGVQcmljZWJvb2s6IChwcmljZWJvb2tOYW1lOiBzdHJpbmcpID0+IE9ic2VydmFibGU8dm9pZD47XG4gICAgLyoqXG4gICAgICogQHJldHVybnMgQSBCZWhhdmlvclN1YmplY3QgdGhhdCBlbWl0cyB0aGUgY3VycmVudCBudW1iZXIgb2YgcmVjaXBlcyBpbiBNZWFseidzIEJhc2tldFxuICAgICAqL1xuICAgIHJlY2lwZUNvdW50OiAoKSA9PiBPYnNlcnZhYmxlPG51bWJlcj47XG4gICAgLyoqXG4gICAgICogT3BlbnMgdGhlIHByZXZpZXcgYnkgY2FsbGluZyB0aGUgYG9wZW5CYXNrZXRgIG1ldGhvZCBvZiB0aGUgYHJlY2lwZXNTZXJ2aWNlYC5cbiAgICAgKi9cbiAgICBvcGVuUHJldmlldzogKGFuYWx5dGljc1BhdGg/OiBzdHJpbmcpID0+IHZvaWQ7XG4gICAgLyoqXG4gICAgICogLyFcXCBEZWJ1ZyBvbmx5OiBJZiBuby1zdXBwbGllciBtb2RlIGlzIGFjdGl2YXRlZCwgb3ZlcnJpZGUgdGhlIGJhc2Ugb2YgdGhlIHRyYW5zZmVyIHVybCB3aXRoIGFuIG90aGVyIHVybFxuICAgICAqIGV4OiBpZiB0cmFuc2ZlciB1cmwgaXMgJ2h0dHBzOi8vdGVzdC5jb20vcmVjaXBlcz9wYXJhbTE9eCxwYXJhbTI9eSdcbiAgICAgKiBhbmQgb3ZlcnJpZGVUcmFuc2ZlclVybCBpcyBjYWxsZWQgd2l0aCAnaHR0cDovL2xvY2FsaG9zdDozMDAwL3JlY2V0dGVzJ1xuICAgICAqIHRyYW5zZmVyIHVybCB3aWxsIGJlY29tZSAnaHR0cDovL2xvY2FsaG9zdDozMDAwL3JlY2V0dGVzP3BhcmFtMT14LHBhcmFtMj15J1xuICAgICAqL1xuICAgIG92ZXJyaWRlVHJhbnNmZXJVcmw6ICh1cmw6IHN0cmluZykgPT4gdm9pZDtcbiAgfTtcblxuICBiYXNrZXRTeW5jOiB7XG4gICAgLyoqXG4gICAgICogVGhlIGNhbGxiYWNrIHBhcmFtZXRlciBpcyBjYWxsZWQgd2hlbiBNZWFseidzIGJhc2tldCBjaGFuZ2VzIHRvIHVwZGF0ZSB0aGUgdXNlcidzIGNhcnQgYWNjb3JkaW5nbHlcbiAgICAgKlxuICAgICAqIEBwYXJhbSBwdXNoUHJvZHVjdHNUb0NhcnQgYSBtZXRob2QgdGhhdCB1cGRhdGVzIHRoZSB1c2VyJ3MgY2FydCB3aXRoIHRoZSBwcm9kdWN0cyBwYXNzZWQgaW4gcGFyYW1ldGVyLCBieSBhZGRpbmdcbiAgICAgKiBwcm9kdWN0cyBpZiB0aGVpciBxdWFudGl0eSBpcyBwb3NpdGl2ZSwgYW5kIHJlbW92aW5nIHRoZW0gaWYgdGhlaXIgcXVhbnRpdHkgaXMgbmVnYXRpdmVcbiAgICAgKi9cbiAgICBkZWZpbmVQdXNoUHJvZHVjdHNUb0NhcnQ6IChwdXNoUHJvZHVjdHNUb0NhcnQ6IChwcm9kdWN0czogQ29tcGFyYWJsZVByb2R1Y3RbXSkgPT4gdm9pZCkgPT4gdm9pZDtcbiAgICAvKipcbiAgICAgKiBUaGUgY2FsbGJhY2sgcGFyYW1ldGVyIGlzIGNhbGxlZCB3aGVuIE1lYWx6J3MgYmFza2V0IGFkZHMgbmV3IHByb2R1Y3RzIHRvIHVwZGF0ZSB0aGUgdXNlcidzIGNhcnQgYWNjb3JkaW5nbHlcbiAgICAgKlxuICAgICAqIEBwYXJhbSBwdXNoUHJvZHVjdHNUb0NhcnQgYSBtZXRob2QgdGhhdCBhZGRzIHRoZSBwcm9kdWN0cyBwYXNzZWQgaW4gcGFyYW1ldGVyIHRvIHRoZSB1c2VyJ3MgY2FydFxuICAgICAqL1xuICAgIGRlZmluZUFkZFByb2R1Y3RzVG9DYXJ0OiAoYWRkUHJvZHVjdHNUb0NhcnQ6IChwcm9kdWN0czogQ29tcGFyYWJsZVByb2R1Y3RbXSkgPT4gdm9pZCkgPT4gdm9pZDtcbiAgICAvKipcbiAgICAgKiBUaGUgY2FsbGJhY2sgcGFyYW1ldGVyIGlzIGNhbGxlZCB3aGVuIE1lYWx6J3MgYmFza2V0IHJlbW92ZXMgc29tZSBwcm9kdWN0cyB0byB1cGRhdGUgdGhlIHVzZXIncyBjYXJ0IGFjY29yZGluZ2x5XG4gICAgICpcbiAgICAgKiBAcGFyYW0gcHVzaFByb2R1Y3RzVG9DYXJ0IGEgbWV0aG9kIHRoYXQgcmVtb3ZlcyB0aGUgcHJvZHVjdHMgcGFzc2VkIGluIHBhcmFtZXRlciBmcm9tIHRoZSB1c2VyJ3MgY2FydCAodGhlIHF1YW50aXR5IGF0dHJpYnV0ZSBvZlxuICAgICAqIGVhY2ggcHJvZHVjdCBpcyBhIG5lZ2F0aXZlIG51bWJlciB0byBpbmRpY2F0ZSB0aGF0IGl0IGlzIHRoZSBxdWFudGl0eSB0byByZW1vdmUpXG4gICAgICovXG4gICAgZGVmaW5lUmVtb3ZlUHJvZHVjdHNGcm9tQ2FydDogKHJlbW92ZVByb2R1Y3RzRnJvbUNhcnQ6IChwcm9kdWN0czogQ29tcGFyYWJsZVByb2R1Y3RbXSkgPT4gdm9pZCkgPT4gdm9pZDtcbiAgICAvKipcbiAgICAgKiBUaGUgY2FsbGJhY2sgcGFyYW1ldGVyIGlzIGNhbGxlZCB3aGVuIE1lYWx6J3MgYmFza2V0IGNoYW5nZXMgdG8gdXBkYXRlIHRoZSB1c2VyJ3MgY2FydCBhY2NvcmRpbmdseVxuICAgICAqXG4gICAgICogQHBhcmFtIHB1c2hQcm9kdWN0c1RvQ2FydCBhIG1ldGhvZCB0aGF0IHVwZGF0ZXMgdGhlIHVzZXIncyBjYXJ0IHdpdGggdGhlIHBydWR1Y3RzIHBhc3NlZCBpbiBwYXJhbWV0ZXIsIGJ5IGFkZGluZ1xuICAgICAqIHByb2R1Y3RzIGlmIHRoZWlyIHF1YW50aXR5IGlzIHBvc2l0aXZlLCBhbmQgcmVtb3ZpbmcgdGhlbSBpZiB0aGVpciBxdWFudGl0eSBpcyBuZWdhdGl2ZVxuICAgICAqL1xuICAgIGRlZmluZVB1c2hCYXNrZXRFbnRyaWVzVG9CYXNrZXQ6IChwdXNoUHJvZHVjdHNUb0NhcnQ6IChwcm9kdWN0czogQ29tcGFyYWJsZVByb2R1Y3RbXSkgPT4gdm9pZCkgPT4gdm9pZDtcbiAgICAvKipcbiAgICAgKiBDYWxsIHRvIG5vdGlmeSBNZWFseiB0aGF0IHRoZSB1c2VyJ3MgY2FydCBoYXMgYmVlbiB1cGRhdGVkXG4gICAgICpcbiAgICAgKiBAcGFyYW0gY29tcGFyYWJsZVByb2R1Y3RzIFRoZSBwcm9kdWN0cyBpbiB0aGUgdXNlcidzIGNhcnRcbiAgICAgKi9cbiAgICByZXRhaWxlckJhc2tldENoYW5nZWQ6IChjb21wYXJhYmxlUHJvZHVjdHM6IENvbXBhcmFibGVQcm9kdWN0W10pID0+IHZvaWQ7XG4gICAgLyoqXG4gICAgICogQ2FsbCB0byBub3RpZnkgTWVhbHogdGhhdCB0aGUgdXNlcidzIGNhcnQgd2FzIHBhaWRcbiAgICAgKiBNZWFseiB0aGVuIHJlZnJlc2hlcyB0aGUgYmFza2V0IGZvciB0aGUgbmV4dCB1c2VyJ3MgY2FydFxuICAgICAqXG4gICAgICogQHBhcmFtIHRvdGFsIFRoZSB0b3RhbCBwcmljZSBvZiB0aGUgY2FydCBwYWlkXG4gICAgICovXG4gICAgaGFuZGxlUGF5bWVudDogKHRvdGFsOiBudW1iZXIpID0+IHZvaWQ7XG4gIH07XG5cbiAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbiAgY29uZmlnOiB7XG4gICAgbWVhbHpMb2dzOiAocGFyYW06ICdub25lJyB8ICd3YXJuJyB8ICdlcnJvcicgfCAnYWxsJykgPT4gdm9pZDtcbiAgfTtcblxuICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuICBmZWF0dXJlczoge1xuICAgIC8qKlxuICAgICAqIENhbGwgdG8gZW5hYmxlIHJlY2lwZXMgdG8gZGlzcGxheSBhIHZpZGVvIGluc3RlYWQgb2YgdGhlaXIgcGljdHVyZSwgaWYgdGhlcmUgaXMgYSB2aWRlbyBmb3IgdGhlIHJlY2lwZVxuICAgICAqL1xuICAgIGVuYWJsZVZpZGVvUmVjaXBlczogKCkgPT4gdm9pZDtcbiAgICAvKipcbiAgICAgKiBDYWxsIHRvIGVuYWJsZSB0aGUgY2F0YWxvZyB0byBkaXNwbGF5IGFydGljbGVzLCBpZiB0aGVpciBhcmUgcGFja2FnZXMgdGhhdCBjb250YWluIGFueSBhcnRpY2xlc1xuICAgICAqL1xuICAgIGVuYWJsZUFydGljbGVzSW5DYXRhbG9nOiAoKSA9PiB2b2lkO1xuICAgIC8qKlxuICAgICAqIENhbGwgdG8gYXV0aG9yaXplIE1lYWx6IHRvIGFzayBmb3IgdXNlciBwcmVmZXJlbmNlcyB0aGUgZmlyc3QgdGltZSB1c2VycyB2aWV3IHRoZSByZWNpcGUgY2F0YWxvZ1xuICAgICAqL1xuICAgIGVuYWJsZVVzZXJQcmVmZXJlbmNlczogKCkgPT4gdm9pZDtcbiAgICAvKipcbiAgICAgKiBDYWxsIHRvIGVuYWJsZSB0YWdzIGRpc3BsYXlpbmcgb24gcmVjaXBlLWRldGFpbHNcbiAgICAgKi9cbiAgICBlbmFibGVUYWdzT25SZWNpcGVzOiAoKSA9PiB2b2lkO1xuICAgIC8qKlxuICAgICAqIENhbGwgdG8gZW5hYmxlIHRoZSBtZWFscy1wbGFubmVyXG4gICAgICpcbiAgICAgKiBAcGFyYW0gdXJsIG9mIHRoZSBwYWdlIHdoZXJlIHlvdSBpbmplY3QgdGhlIG1lYWxzIHBsYW5uZXJcbiAgICAgKiBAcGFyYW0gYW50aUluZmxhdGlvbiBpZiB5b3Ugd2FudCB0byB1c2UgdGhlIGFudGkgaW5mbGF0aW9uXG4gICAgICovXG4gICAgZW5hYmxlTWVhbHNQbGFubmVyOiAodXJsOiBzdHJpbmcsIGFudGlJbmZsYXRpb24/OiBib29sZWFuKSA9PiB2b2lkO1xuXG4gICAgLyoqXG4gICAgICogQ2FsbCB0byBlbmFibGUgU0VPIChUaXRsZSBhbmQgbWV0YSB0YWdzIG9uIHJlY2lwZSBkaXNwbGF5KVxuICAgICAqL1xuICAgIGVuYWJsZVNlbzogKCkgPT4gdm9pZFxuICAgIC8qKlxuICAgICAqIENhbGwgdG8gZW5hYmxlIGd1ZXN0cyBpbnB1dCBvbiBteS1tZWFscyBjYXJkc1xuICAgICAqL1xuICAgIGVuYWJsZUd1ZXN0c0lucHV0T25NeU1lYWxzOiAoKSA9PiB2b2lkO1xuXG4gICAgLyoqXG4gICAgICogQ2FsbCB0byBlbmFibGUgY29sbGFwc2luZyBvZiB1bmF2YWlsYWJsZSBwcm9kdWN0cyBieSBkZWZhdWx0XG4gICAgICogQGRlcHJlY2F0ZWQgTm90IHVzZWQgYW55bW9yZVxuICAgICAqL1xuICAgIGNvbGxhcHNlVW5hdmFpbGFibGVQcm9kdWN0c0J5RGVmYXVsdDogKCkgPT4gdm9pZDtcbiAgfTtcblxuICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuICBob29rOiB7XG4gICAgLyoqXG4gICAgICogU2V0IHVwIGEgY2FsbGJhY2sgd2hpY2ggTWVhbHogd2lsbCBjYWxsIGJlZm9yZSBhZGRpbmcgYSByZWNpcGUgdG8gdGhlIHVzZXIncyBjYXJ0XG4gICAgICpcbiAgICAgKiBAcGFyYW0gY2FsbGJhY2sgYSBtZXRob2QgdGhhdCB3aWxsIGJlIGNhbGxlZCBwYXNzaW5nIHR3byBwYXJhbWV0ZXJzIDpcbiAgICAgKiAgLSBpc0xvZ2dlZCwgdHJ1ZSBpZiB0aGUgdXNlciBpcyBsb2dnZWQgKGFjY29yZGluZyB0byBNZWFseiwgc2VlIHVzZXIubG9hZFdpdGhFeHRJZCBmb3IgbW9yZSlcbiAgICAgKiAgLSBpc1Bvc1ZhbGlkIHRydWUgaWYgdGhlIFBvaW50T2ZTYWxlIGlzIHJlY29nbml6ZWQgYnkgTWVhbHpcbiAgICAgKiBUeXBpY2FsbHkgeW91IG1pZ2h0IHdhbnQgdG8gdXNlIHRoaXMgdG8gc2hvdyB5b3VyIGNvbm5leGlvbiBwYWdlIGlmIHRoZSB1c2VyIHRyaWVzIHRvIGFkZCBhIHJlY2lwZSB3aGlsZSBsb2dnZWQgb3V0XG4gICAgICogb3IgdG8gc2hvdyB5b3VyIHBvaW50IG9mIHNhbGUgcGlja2VyIGlmIHRoZSB1c2VyIGhhcyBub3QgY2hvc2VuIG9uZVxuICAgICAqL1xuICAgIHNldEhvb2tDYWxsYmFjazogKGNhbGxiYWNrOiAoaXNMb2dnZWQsIGlzUG9zVmFsaWQpID0+IGJvb2xlYW4pID0+IHZvaWQ7XG4gICAgLyoqXG4gICAgICogU2V0IHVwIGEgY2FsbGJhY2sgd2hpY2ggTWVhbHogd2lsbCBjYWxsIHdoZW4gaXQgbmVlZHMgdG8gZm9yY2UgdGhlIFBPU1xuICAgICAqIChvbmx5IHVzZWQgd2hlbiB0cmFuZmVyaW5nIGEgYmFza2V0IGZyb20gYW4gYWZmaWxpYXRlZCB3ZWJzaXRlKVxuICAgICAqXG4gICAgICogQHBhcmFtIGNhbGxiYWNrIGEgbWV0aG9kIHRoYXQgd2lsbCBiZSBjYWxsZWQgcGFzc2luZyA6XG4gICAgICogIC0gcG9zRXh0SWQsIHRoZSBpZCBvZiB0aGUgUE9TIChpbiB5b3VyIGRhdGFiYXNlKVxuICAgICAqL1xuICAgIHNldEZvcmNlUG9zQ2FsbGJhY2s6IChjYWxsYmFjazogKHBvc0V4dElkOiBzdHJpbmcpID0+IGJvb2xlYW4pID0+IHZvaWQ7XG4gIH07XG5cbiAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbiAgcG9zOiB7XG4gICAgLyoqXG4gICAgICogQ2FsbCB0byBpbmZvcm0gTWVhbHogb2YgdGhlIHBvaW50IG9mIHNhbGUgdGhlIHVzZXIgaXMgY3VycmVudGx5IG9uLiBEbyBub3QgZm9yZ2V0IHRvIGNhbGwgdGhlIG1ldGhvZFxuICAgICAqIGlmIGl0IGNoYW5nZXMgYWZ0ZXIgdXNlciBsb2FkcyB0aGUgcGFnZVxuICAgICAqXG4gICAgICogQHBhcmFtIGV4dGVybmFsSWQgdGhlIGlkIG9mIHRoZSBQb2ludE9mU2FsZSBpbiBjbGllbnQncyBkYXRhYmFzZVxuICAgICAqL1xuICAgIGxvYWQ6IChleHRlcm5hbElkKSA9PiB2b2lkO1xuXG4gICAgLyoqXG4gICAgICogVGhpcyBpcyBhbiBpbnRlcm5hbCBtZXRob2QgdGhhdCB3aWxsIGJlIG1vdmVkIGVsc2V3aGVyZSBzb29uLiBEbyBub3QgY2FsbFxuICAgICAqL1xuICAgIGdldEJ5QWRkcmVzczogKGFkZHJlc3M6IHN0cmluZywgcmFkaXVzOiBzdHJpbmcsIHN1cHBsaWVyczogc3RyaW5nW10pID0+IE9ic2VydmFibGU8RG9jdW1lbnRDb2xsZWN0aW9uPFBvaW50T2ZTYWxlPj47XG4gICAgLyoqXG4gICAgICogVGhpcyBpcyBhbiBpbnRlcm5hbCBtZXRob2QgdGhhdCB3aWxsIGJlIG1vdmVkIGVsc2V3aGVyZSBzb29uLiBEbyBub3QgY2FsbFxuICAgICAqL1xuICAgIGdldEJ5Q29vcmRpbmF0ZXM6IChsYXRpdHVkZTogbnVtYmVyLCBsb25naXR1ZGU6IG51bWJlciwgcmFkaXVzOiBudW1iZXIsIHN1cHBsaWVyczogc3RyaW5nW10pID0+IE9ic2VydmFibGU8RG9jdW1lbnRDb2xsZWN0aW9uPFBvaW50T2ZTYWxlPj47XG5cblxuICAgIC8qKlxuICAgICAqIE9wZW5zIHRoZSBubyBzdXBwbGllciBvbmJvYXJkaW5nIHBvcHVwXG4gICAgICovXG4gICAgb3Blbk5vU3VwcGxpZXJPbmJvYXJkaW5nOiAoKSA9PiB2b2lkO1xuICB9O1xuXG4gIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4gIHJlY2lwZXM6IHtcbiAgICAvKipcbiAgICAgKiBBbiBvYnNlcnZhYmxlIHRoYXQgZW1pdHMgYSB2YWx1ZSB3aGVuIHRoZSByZWNpcGUtbW9kYWwgaXMgY2xvc2VkXG4gICAgICovXG4gICAgaGlkZGVuOiBPYnNlcnZhYmxlPGJvb2xlYW4+O1xuICAgIC8qKlxuICAgICAqIEFuIEV2ZW50RW1pdHRlciB0aGF0IGVtaXRzIGEgdmFsdWUgd2hlbiB0aGUgXCJBZGQgYWxsIGluZ3JlZGllbnRzXCIgQ1RBIG9uIHJlY2lwZS1kZXRhaWxzIGlzIGNsaWNrZWRcbiAgICAgKi9cbiAgICBhZGRBbGxJbmdyZWRpZW50c0NUQVdhc0NsaWNrZWQ6IEV2ZW50RW1pdHRlcjx7IGluZ3JlZGllbnRzQWRkZWQ6IG51bWJlcjsgaW5ncmVkaWVudHNUb3RhbDogbnVtYmVyIH0+O1xuICAgIC8qKlxuICAgICAqIENhbGwgd2l0aCBhbiB1cmwgb2YgYSBwaWN0dXJlIHRvIGNoYW5nZSB0aGUgZGVmYXVsdCBwaWN0dXJlIGRpc3BsYXllZCBpZiBhbiBpbmdyZWRpZW50IGRvZXNuJ3QgaGF2ZSBhIHBpY3R1cmVcbiAgICAgKiBhbmQgaWYgaW5ncmVkaWVudHMgcGljdHVyZSBoYXZlIGJlZW4gZW5hYmxlZCB3aXRoIHJlY2lwZXMuc2hvdWxkRGlzcGxheUluZ3JlZGllbnRQaWN0dXJlc09uUmVjaXBlQ2FyZHModHJ1ZSlcbiAgICAgKi9cbiAgICBzZXREZWZhdWx0SW5ncmVkaWVudFBpY3R1cmU6ICh1cmw6IHN0cmluZykgPT4gdm9pZDtcblxuICAgIC8qKlxuICAgICAqIENhbGwgd2l0aCBhbiB1cmwgb2YgYSBwaWN0dXJlIHRvIGNoYW5nZSB0aGUgZGVmYXVsdCBwaWN0dXJlIGRpc3BsYXllZCBpZiBhIHJlY2lwZSBkb2Vzbid0IGhhdmUgYSBwaWN0dXJlXG4gICAgICovXG4gICAgc2V0RGVmYXVsdFJlY2lwZVBpY3R1cmU6ICh1cmw6IHN0cmluZykgPT4gdm9pZDtcblxuICAgIC8qKlxuICAgICAqIE92ZXJyaWRlIGRlZmF1bHQgbGFiZWxzIGZvciBkaWZmaWN1bHR5IGxldmVsc1xuICAgICAqXG4gICAgICogQHBhcmFtIGxldmVscyBUaGUgbGlzdCBvZiBsYWJlbHMgdG8gb3ZlcnJpZGUgZm9yIGVhY2ggZGlmZmljdWx0eSAoZGlmZmljdWx0aWVzIGFyZSByZXNwZWN0aXZlbHkgMTogRWFzeSwgMjogTWVkaXVtLCAzOiBIYXJkKVxuICAgICAqIGV4YW1wbGUgOiBbe3ZhbHVlOiAxLCBsYWJlbDogXCJCZWdpbm5lclwifV0gdG8gdXBkYXRlIHRoZSBsYWJlbCBvZiBlYXN5IHJlY2lwZXMgdG8gXCJCZWdpbm5lclwiXG4gICAgICovXG4gICAgc2V0RGlmZmljdWx0eUxldmVsczogKGxldmVsczogeyB2YWx1ZTogbnVtYmVyOyBsYWJlbDogc3RyaW5nIH1bXSkgPT4gdm9pZDtcbiAgICAvLyAvKipcbiAgICAvLyAgKiAvIVxcIERFUFJFQ0FURUQ6IERPIE5PVCBVU0UgLyFcXFxuICAgIC8vICAqL1xuICAgIC8vICBzZXRSZWNpcGVzUHJpbWFyeUJ1dHRvbkFjdGlvbnM6IChkaXNwbGF5OiBib29sZWFuLCBhZGRUb0Jhc2tldDogYm9vbGVhbikgPT4gdm9pZDtcbiAgICAvLyAvKipcbiAgICAvLyAgKiAvIVxcIERFUFJFQ0FURUQ6IERPIE5PVCBVU0UgLyFcXFxuICAgIC8vICAqL1xuICAgIC8vIHNldFN1Z2dlc3Rpb25zUHJpbWFyeUJ1dHRvbkFjdGlvbnM6IChkaXNwbGF5OiBib29sZWFuLCBhZGRUb0Jhc2tldDogYm9vbGVhbikgPT4gdm9pZDtcbiAgICAvKipcbiAgICAgKiBJZiBjYWxsZWQsIGFkZGluZyBvciByZW1vdmluZyBhbnkgcHJvZHVjdCB0byBvciBmcm9tIHRoZSBjYXJ0IHdpbGwgZGlzcGxheSBhIGNvbmZpcm1hdGlvbiB0b2FzdGVyXG4gICAgICovXG4gICAgc2hvd0NvbmZpcm1hdGlvblRvYXN0ZXI6ICgpID0+IHZvaWQ7XG5cbiAgICAvKipcbiAgICAgKiBAcGFyYW0gc2hvdWxkIGlmIHNldCB0byB0cnVlLCB0aGUgcmVjaXBlLWNhcmRzIHdpbGwgZGlzcGxheSB0aGUgaW5ncmVkaWVudHMgb2YgdGhlaXIgcmVjaXBlXG4gICAgICovXG4gICAgc2hvdWxkRGlzcGxheUluZ3JlZGllbnRQaWN0dXJlc09uUmVjaXBlQ2FyZHM6IChzaG91bGQ6IGJvb2xlYW4pID0+IHZvaWQ7XG4gIH07XG5cbiAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbiAgcm91dGVyOiB7XG4gICAgLyoqXG4gICAgICogSW5mb3JtIE1lYWx6IG9mIHRoZSB1cmwgd2hlcmUgdGhlIGNhdGFsb2cgaXMgZm9yIHRoZSByZWRpcmVjdGlvbiBsaW5rIG9mIHJlY2lwZS1kZXRhaWxzXG4gICAgICovXG4gICAgc2V0UmVjaXBlQ2F0YWxvZ1VybDogKHVybD86IHN0cmluZykgPT4gdm9pZDtcbiAgICAvKipcbiAgICAgKiBJbmZvcm0gTWVhbHogb2YgdGhlIHVybCB3aGVyZSB0aGUgb25ib2FyZGluZyBzZWN0aW9uIG9mIHRoZSBjYXRhbG9nIHNob3VsZCByZWRpcmVjdFxuICAgICAqL1xuICAgIHNldFJlY2lwZUluZm9MaW5rOiAodXJsPzogc3RyaW5nKSA9PiB2b2lkO1xuICAgIC8qKlxuICAgICAqIEluZm9ybSBNZWFseiBvZiB0aGUgdXJsIG9mIHRoZSByZXRhaWxlcidzIGlmIE1lYWx6IG5lZWRzIHRvIHJlZGlyZWN0IHRoZXJlXG4gICAgICovXG4gICAgc2V0UmV0YWlsZXJDYXJ0VXJsOiAodXJsPzogc3RyaW5nKSA9PiB2b2lkO1xuICAgIC8qKlxuICAgICAqIEluZm9ybSBNZWFseiBvZiB0aGUgdXJsIHdoZXJlIHRoZSBwcm9tb3Rpb25zIGFyZVxuICAgICAqL1xuICAgIHNldFByb21vdGlvbnNVcmw6ICh1cmw/OiBzdHJpbmcpID0+IHZvaWQ7XG4gIH07XG5cbiAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbiAgc3VwcGxpZXI6IHtcbiAgICAvKipcbiAgICAgKiAvIVxcIFRoaXMgbmVlZHMgdG8gYmUgdGhlIGZpcnN0IG1ldGhvZCBjYWxsZWQsIGJlY2F1c2Ugbm90aGluZyB3aWxsIHdvcmsgaWYgdGhlIG9yaWdpbiBpc24ndCBzZXRcbiAgICAgKiBAcGFyYW0gb3JpZ2luIGFuIGlkZW50aWZpZXIgc3RyaW5nIHRoYXQgTWVhbHogcGFzc2VzIHRvIHRoZSBBUEkgd2l0aCBlYWNoIHJlcXVlc3QgdG8ga2VlcCB0cmFjayBvZiB0aGUgb3JpZ2luXG4gICAgICogb2YgdGhlIHJlcXVlc3RcbiAgICAgKi9cbiAgICBzZXRPcmlnaW46IChvcmlnaW46IHN0cmluZykgPT4gdm9pZDtcbiAgICAvKipcbiAgICAgKiBDYWxsIHRvIGluZm9ybSBNZWFseiBvZiB0aGUgc3VwcGxpZXIgdGhlIHVzZXIgaXMgY3VycmVudGx5IG9uLiBEbyBub3QgZm9yZ2V0IHRvIGNhbGwgdGhlIG1ldGhvZFxuICAgICAqIGlmIGl0IGNoYW5nZXMgYWZ0ZXIgdXNlciBsb2FkcyB0aGUgcGFnZSAoc2hvdWxkIG5vdCBoYXBwZW4gZXNjZXB0IGluIHZlcnkgc3BlY2lmaWMgY2FzZXMpXG4gICAgICpcbiAgICAgKiBAcGFyYW0gc3VwcGxpZXJJZCB0aGUgU3VwcGxpZXIgaWQgaW4gTWVhbHoncyBkYXRhYmFzZVxuICAgICAqL1xuICAgIGxvYWQ6IChzdXBwbGllcklkOiBudW1iZXIgfCBzdHJpbmcpID0+IHZvaWQ7XG4gICAgLyoqXG4gICAgICogMy1pbi0xIHZlcnNpb24gb2Ygc3VwcGxpZXIubG9hZCwgc3VwcGxpZXIuc2V0T3JpZ2luICYgYW5hbHl0aWNzLmluaXQsIHRoYXQgcmVxdWlyZXMgYSBzaW5nbGUgdG9rZW5cbiAgICAgKiBAcGFyYW0gdG9rZW4gYSBzaW5nbGUgdG9rZW4gY29udGFpbmluZyB0aGUgaW5mb3JtYXRpb24gZm9yIHN1cHBsaWVySWQsIG9yaWdpbiAmIHBsYXVzaWJsZSBkb21haW5cbiAgICAgKi9cbiAgICBzZXR1cFdpdGhUb2tlbjogKHRva2VuOiBzdHJpbmcpID0+IHZvaWQ7XG5cbiAgICBnZXRBZmZpbGlhdGVTdXBwbGllcnM6ICgpID0+IE9ic2VydmFibGU8U3VwcGxpZXJbXT47XG4gIH07XG5cbiAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbiAgdXNlcjoge1xuICAgIC8qKlxuICAgICAqIENhbGwgdG8gaW5mb3JtIE1lYWx6IG9mIHRoZSBpZCBvZiB0aGUgdXNlci5cbiAgICAgKlxuICAgICAqIEBwYXJhbSBpZCBhIHN0cmluZyB1bmlxdWUgaWRlbnRpZmllciB0byB0aGUgdXNlclxuICAgICAqIEBwYXJhbSBmb3JiaWRQcm9maWxpbmcgaWYgc2V0IHRvIHRydWUsIGRlc2FjdGl2YXRlIHBlcnNvbmFsaXplZCBjb250ZW50IChwZXJzb25hbGl6ZWQgcmVjaXBlcyAmIHByb2R1Y3RzKVxuICAgICAqIEBwYXJhbSBpbml0QmFza2V0IERFUFJFQ0FURUQgLSBpZiBzZXQgdG8gdHJ1ZSwgZmV0Y2ggdGhlIEdyb2Nlcmllc0xpc3QgJiBCYXNrZXQgb2YgdGhlIHVzZXIgKHJlY29tbWFuZGVkIGFzXG4gICAgICogaXQgc2F2ZXMgdGltZSBsYXRlcilcbiAgICAgKi9cbiAgICBsb2FkV2l0aEV4dGVybmFsSWQ6IChpZDogc3RyaW5nLCBmb3JiaWRQcm9maWxpbmc/OiBib29sZWFuLCBpbml0QmFza2V0PzogYm9vbGVhbikgPT4gT2JzZXJ2YWJsZTxvYmplY3Q+O1xuICAgIC8qKlxuICAgICAqIENhbGwgdG8gaW5mb3JtIE1lYWx6IHRoYXQgdGhlIHVzZXIgaXMgYXV0aGxlc3Mgd2l0aCB0aGUgY29ycmVzcG9uZGluZyBpZFxuICAgICAqIEBwYXJhbSBpZCBhdXRobGVzcy1pZCBmZXRjaGVkIGZyb20gdGhlIHJvdXRlIC9nZW5lcmF0ZS1hdXRobGVzcy10b2tlblxuICAgICAqIEBwYXJhbSBmb3JiaWRQcm9maWxpbmcgaWYgc2V0IHRvIHRydWUsIGRlc2FjdGl2YXRlIHBlcnNvbmFsaXplZCBjb250ZW50IChwZXJzb25hbGl6ZWQgcmVjaXBlcyAmIHByb2R1Y3RzKVxuICAgICAqL1xuICAgIGxvYWRXaXRoQXV0aGxlc3NJZDogKGlkOiBzdHJpbmcsIGZvcmJpZFByb2ZpbGluZz86IGJvb2xlYW4pID0+IHZvaWQ7XG4gICAgLyoqXG4gICAgICogQ2FsbCB0byBpbmZvcm0gTWVhbHogdGhhdCBwcm9maWxpbmcgcHJlZmVyZW5jZXMgaGF2ZSBiZWVuIHVwZGF0ZWRcbiAgICAgKiBAcGFyYW0gZm9yYmlkUHJvZmlsaW5nIGlmIHNldCB0byB0cnVlLCBkZXNhY3RpdmF0ZSBwZXJzb25hbGl6ZWQgY29udGVudCAocGVyc29uYWxpemVkIHJlY2lwZXMgJiBwcm9kdWN0cylcbiAgICAgKiBAcGFyYW0gdXNlcklkIHVzZXJJZCBvciBhdXRobGVzc0lkIG9mIHRoZSB1c2VyXG4gICAgICogQHBhcmFtIGlzQXV0aGxlc3MgaWYgdHJ1ZSBNZWFseiB3aWxsIHRyZWF0IHVzZXJJRCBhcyBhbiBhdXRobGVzcy1pZFxuICAgICAqL1xuICAgIHVwZGF0ZUZvcmJpZFByb2ZpbGluZzogKGZvcmJpZFByb2ZpbGluZzogYm9vbGVhbiwgdXNlcklkOiBzdHJpbmcsIGlzQXV0aGxlc3M6IGJvb2xlYW4pID0+IHZvaWQ7XG4gICAgLyoqXG4gICAgICogQ2FsbCB0byBpbmZvcm0gTWVhbHogdGhhdCB0aGUgdXNlciBoYXMgbG9nZ2VkIG91dFxuICAgICAqL1xuICAgIHJlc2V0OiAoKSA9PiB2b2lkO1xuXG4gICAgLyoqXG4gICAgICogU2V0IHVzZXIgbGFuZ3VhZ2Ugd2l0aCBhIElTTyA2MzktMSBjb2RlIG9yIGN1c3RvbSBsYW5ndWFnZSBuYW1lXG4gICAgICogQHBhcmFtIGxhbmdcbiAgICAgKi9cbiAgICBzZXRMYW5ndWFnZTogKGxhbmc6IHN0cmluZykgPT4gdm9pZDtcblxuICAgIC8qKlxuICAgICAqIElmIHlvdXIgd2Vic2l0ZSBoYXMgYSBcImZhdm9yaXRlIHByb2R1Y3RzXCIgZmVhdHVyZSwgeW91IGNhbiBwYXNzIHRoZSBpZHMgb2YgYWxsIHByb2R1Y3RzXG4gICAgICogd2hpY2ggdGhlIHVzZXIgaGFzIG1hcmtlZCBhcyBmYXZvcml0ZXMsIHNvIHRoZXkgY2FuIGJlIHByaW9yaXRpemVkIHdoZW4gYWRkaW5nIGEgcmVjaXBlXG4gICAgICogdG8gdGhlaXIgY2FydCwgaWYgb25lIG9mIHRoZW0gaXMgcmV0dXJuZWQgYXMgYSBtYXRjaGluZyBwcm9kdWN0IGZvciB0aGUgcmVjaXBlLlxuICAgICAqXG4gICAgICogQHBhcmFtIGZhdm9yaXRlUHJvZHVjdElkcyBhbiBhcnJheSBvZiBwcm9kdWN0IGlkcywgcGFzc2VkIGFzIHN0cmluZ1xuICAgICAqL1xuICAgIHNldEZhdm9yaXRlSXRlbXM6IChmYXZvcml0ZVByb2R1Y3RJZHM6IHN0cmluZ1tdKSA9PiBPYnNlcnZhYmxlPG9iamVjdD47XG5cbiAgICAvKipcbiAgICAgKiBVc2VyIGxvY2F0aW9uIGNhbiBiZSBzZXQgZnJvbSB0aGUgdXNlcidzIGJyb3dzZXIgaWYgdGhleSBhbGxvd2VkIGl0XG4gICAgICogQHBhcmFtIGNvb3JkcyBtdXN0IHByb3ZpZGUgbGF0aXR1ZGUgKG51bWJlcikgYW5kIGxvbmdpdHVkZSAobnVtYmVyKSBhbmQgb3B0aW9uYWxseSBhbiBhY2N1cmFjeSAobnVtYmVyKVxuICAgICAqL1xuICAgIHNldExvY2F0aW9uOiAoY29vcmRzOiBHZW9sb2NhdGlvblBvc2l0aW9uKSA9PiB2b2lkO1xuICB9O1xuXG4gIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4gIGV2ZW50czoge1xuICAgIHN0b3JlTG9jYXRvck9wZW5lZDogKCkgPT4gT2JzZXJ2YWJsZTxib29sZWFuPlxuICB9O1xuXG4gIC8qKlxuICAgKiBDYWxsIHdpdGggdGhlIGhlaWdodCBpbiBweCBvZiB5b3VyIHdlYnNpdGUncyBoZWFkZXIgd2hlbiBpdCBpcyBzdGlja3kgc28gTWVhbHogY2FuIG9mZnNldCBpdHMgc3RpY2t5IGNvbXBvbmVudHNcbiAgICogSWYgbm90IGNhbGxlZCwgYW55IHN0aWNreSBjb21wb25lbnRzIGZyb20gTWVhbHogbWF5IGFwcGVhciBub3Qgc3RpY2sgY29ycmVjdGx5IGJlbG93IHlvdXIgaGVhZGVyXG4gICAqL1xuICBzZXRTdGlja3lIZWFkZXJIZWlnaHQ6IChoZWlnaHQ6IG51bWJlcikgPT4gdm9pZDtcblxuICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuICAvKipcbiAgICogT3ZlcnJpZGUgdHdvIHRpbWVzIHdpbGwgbm90IGJlIGNvbnNpZGVyZWQgKERFUFJFQ0FURUQpXG4gICAqIEBwYXJhbSBpY29uIGhhdmUgdG8gYmUgYSBrbm93ZWQgaWNvbiBuYW1lIHNlZSBzZWN0aW9uICdDdXN0b20gaWNvbnMnIGluIHJlYWQgbWVcbiAgICogQHBhcmFtIHVybCBvZiB0aGUgbmV3IGljb25cbiAgICovXG4gIG92ZXJyaWRlSWNvbjogKGljb24sIHVybDogc3RyaW5nKSA9PiB2b2lkO1xuXG4gIC8qKlxuICAgKiBQYXNzIGEgY2FsbGJhY2sgdGhhdCByZXR1cm5zIHRoZSBkZWZhdWx0IHNjcm9sbCBjb250YWluZXIgb2YgdGhlIHBhZ2Ugc28gbWVhbHogbW9kYWwgY2FuIGJsb2NrIHRoZSBzY3JvbGwgd2hlbiBvcGVuZWRcbiAgICogRGVmYXVsdCBjYWxsYmFjayByZXR1cm5zIGRvY3VtZW50LmJvZHlcbiAgICovXG4gIHNldERlZmF1bHRTY3JvbGxFbGVtZW50R2V0dGVyOiAoY2FsbGJhY2s6ICgpID0+IEhUTUxFbGVtZW50KSA9PiB2b2lkO1xufVxuIl19
|
|
@@ -274,12 +274,13 @@ export class BasketPreviewBlockComponent extends EventTracerComponent {
|
|
|
274
274
|
}
|
|
275
275
|
}
|
|
276
276
|
ngOnChanges(changes) {
|
|
277
|
+
var _a;
|
|
277
278
|
if (Object.keys(changes).includes('recipeId')) {
|
|
278
279
|
this.loading.next(true);
|
|
279
280
|
}
|
|
280
281
|
if (changes.isStoreLocatorDisplayed &&
|
|
281
282
|
changes.isStoreLocatorDisplayed.previousValue !== changes.isStoreLocatorDisplayed.currentValue &&
|
|
282
|
-
!this.isStoreLocatorDisplayed) {
|
|
283
|
+
!this.isStoreLocatorDisplayed && ((_a = this.recipeService.displayedRecipe$.value) === null || _a === void 0 ? void 0 : _a.previewMode)) {
|
|
283
284
|
this.pageview();
|
|
284
285
|
}
|
|
285
286
|
}
|
|
@@ -579,4 +580,4 @@ BasketPreviewBlockComponent.ɵcmp = i0.ɵɵdefineComponent({ type: BasketPreview
|
|
|
579
580
|
type: ViewChildren,
|
|
580
581
|
args: [BasketPreviewProductComponent]
|
|
581
582
|
}] }); })();
|
|
582
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFza2V0LXByZXZpZXctYmxvY2suY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmctbWlhbS9zcmMvbGliL193ZWItY29tcG9uZW50cy9iYXNrZXQtcHJldmlldy9iYXNrZXQtcHJldmlldy1ibG9jay9iYXNrZXQtcHJldmlldy1ibG9jay5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZy1taWFtL3NyYy9saWIvX3dlYi1jb21wb25lbnRzL2Jhc2tldC1wcmV2aWV3L2Jhc2tldC1wcmV2aWV3LWJsb2NrL2Jhc2tldC1wcmV2aWV3LWJsb2NrLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUNuRCxPQUFPLEVBRUwsdUJBQXVCLEVBQ3ZCLGlCQUFpQixFQUNqQixTQUFTLEVBQ1QsWUFBWSxFQUNaLEtBQUssRUFJTCxNQUFNLEVBQ04sU0FBUyxFQUVULFlBQVksRUFDWixpQkFBaUIsRUFDbEIsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxNQUFNLE1BQU0sa0JBQWtCLENBQUM7QUFDdEMsT0FBTyxFQUFFLGVBQWUsRUFBRSxhQUFhLEVBQUUsUUFBUSxFQUFFLEtBQUssRUFBYyxFQUFFLEVBQWdCLE1BQU0sTUFBTSxDQUFDO0FBQ3JHLE9BQU8sRUFBRSxNQUFNLEVBQUUsR0FBRyxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsSUFBSSxFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzlFLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLHVEQUF1RCxDQUFDO0FBRTdGLE9BQU8sRUFDTCxnQkFBZ0IsRUFDaEIsY0FBYyxFQUNkLDBCQUEwQixFQUMxQixjQUFjLEVBQ2QsbUJBQW1CLEVBQ25CLHlCQUF5QixFQUN6QixjQUFjLEVBQ2Ys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ZGsvbGF5b3V0JztcbmltcG9ydCB7XG4gIEFmdGVyVmlld0luaXQsXG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgQ29tcG9uZW50LFxuICBFdmVudEVtaXR0ZXIsXG4gIElucHV0LFxuICBPbkNoYW5nZXMsXG4gIE9uRGVzdHJveSxcbiAgT25Jbml0LFxuICBPdXRwdXQsXG4gIFF1ZXJ5TGlzdCxcbiAgU2ltcGxlQ2hhbmdlcyxcbiAgVmlld0NoaWxkcmVuLFxuICBWaWV3RW5jYXBzdWxhdGlvblxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCByZW1vdmUgZnJvbSAnbG9kYXNoLWVzL3JlbW92ZSc7XG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QsIGNvbWJpbmVMYXRlc3QsIGZvcmtKb2luLCBtZXJnZSwgT2JzZXJ2YWJsZSwgb2YsIFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgZmlsdGVyLCBtYXAsIHNraXBXaGlsZSwgc3dpdGNoTWFwLCB0YWtlLCB0YXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBFdmVudFRyYWNlckNvbXBvbmVudCB9IGZyb20gJy4uLy4uLy4uL19jb21wb25lbnRzL2Fic3RyYWN0cy9ldmVudC10cmFjZXIuY29tcG9uZW50JztcbmltcG9ydCB7IEJhc2tldCwgQmFza2V0RW50cnksIEJhc2tldFByZXZpZXdMaW5lLCBJbmdyZWRpZW50IH0gZnJvbSAnLi4vLi4vLi4vX21vZGVscyc7XG5pbXBvcnQge1xuICBBbmFseXRpY3NTZXJ2aWNlLFxuICBCYXNrZXRzU2VydmljZSxcbiAgQmFza2V0c1N5bmNocm9uaXplclNlcnZpY2UsXG4gIENvbnRleHRTZXJ2aWNlLFxuICBQb2ludE9mU2FsZXNTZXJ2aWNlLFxuICBQcm9kdWN0UmVwbGFjZW1lbnRTZXJ2aWNlLFxuICBSZWNpcGVzU2VydmljZVxufSBmcm9tICcuLi8uLi8uLi9fc2VydmljZXMnO1xuaW1wb3J0IHsgQmFza2V0U3RhdHMgfSBmcm9tICcuLi8uLi8uLi9fdHlwZXMvYmFza2V0LXN0YXRzJztcbmltcG9ydCB7IEljb24gfSBmcm9tICcuLi8uLi8uLi9fdHlwZXMvaWNvbi5lbnVtJztcbmltcG9ydCB7IEJhc2tldFByZXZpZXdMaW5lQ29tcG9uZW50IH0gZnJvbSAnLi4vYmFza2V0LXByZXZpZXctbGluZS9iYXNrZXQtcHJldmlldy1saW5lLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBCYXNrZXRQcmV2aWV3UHJvZHVjdENvbXBvbmVudCB9IGZyb20gJy4uL2Jhc2tldC1wcmV2aWV3LXByb2R1Y3QvYmFza2V0LXByZXZpZXctcHJvZHVjdC5jb21wb25lbnQnO1xuaW1wb3J0IHsgUmVtb3ZlUmVjaXBlQWN0aW9uIH0gZnJvbSAnLi4vLi4vLi4vX21vZGVscy9iYXNrZXQtYWN0aW9ucy9yZW1vdmUtcmVjaXBlLWFjdGlvbic7XG5pbXBvcnQgeyBVcGRhdGVSZWNpcGVGcm9tR3Vlc3RBY3Rpb24gfSBmcm9tICcuLi8uLi8uLi9fbW9kZWxzL2Jhc2tldC1hY3Rpb25zL3VwZGF0ZS1yZWNpcGUtZnJvbS1ndWVzdC1hY3Rpb24nO1xuaW1wb3J0IHsgZGVlcENsb25lV2l0aENsYXNzIH0gZnJvbSAnLi4vLi4vLi4vX3V0aWxzL21ldGhvZHMvZGVlcENsb25lJztcblxuZXhwb3J0IGVudW0gQmFza2V0VGFiIHtcbiAgUkVDSVBFUyA9IDAsXG4gIFBST0RVQ1RTID0gMVxufVxuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICduZy1taWFtLWJhc2tldC1wcmV2aWV3LWJsb2NrJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2Jhc2tldC1wcmV2aWV3LWJsb2NrLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vYmFza2V0LXByZXZpZXctYmxvY2suY29tcG9uZW50LnNjc3MnXSxcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2hcbn0pXG5cbmV4cG9ydCBjbGFzcyBCYXNrZXRQcmV2aWV3QmxvY2tDb21wb25lbnQgZXh0ZW5kcyBFdmVudFRyYWNlckNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95LCBPbkNoYW5nZXMsIEFmdGVyVmlld0luaXQge1xuICBASW5wdXQoKSByZWNpcGVJZDogc3RyaW5nO1xuICBASW5wdXQoKSBzaG93Tm90aWNlID0gZmFsc2U7XG4gIEBJbnB1dCgpIHJlY2lwZXNBbHdheXNFeHBhbmRlZCA9IGZhbHNlO1xuICBASW5wdXQoKSBpdGVtc0Fsd2F5c0V4cGFuZGVkID0gZmFsc2U7XG4gIEBJbnB1dCgpIGRpc3BsYXlJdGVtc1VuaXRhcnlQcmljZSA9IGZhbHNlO1xuICBASW5wdXQoKSBpc1N0b3JlTG9jYXRvckRpc3BsYXllZCA9IGZhbHNlO1xuICBASW5wdXQoKSByZWNpcGVzSWRzID0gW107XG4gIEBJbnB1dCgpIGxlZ2FjeU1vZGUgPSBmYWxzZTtcbiAgQE91dHB1dCgpIHN0YXRzVXBkYXRlZCA9IG5ldyBFdmVudEVtaXR0ZXI8QmFza2V0U3RhdHM+KCk7XG4gIEBPdXRwdXQoKSBndWVzdENvdW50Q2hhbmdlZCA9IG5ldyBFdmVudEVtaXR0ZXI8bnVtYmVyPigpO1xuICBAT3V0cHV0KCkgbG9hZGluZyA9IG5ldyBCZWhhdmlvclN1YmplY3QodHJ1ZSk7XG4gIEBPdXRwdXQoKSB0b3RhbFByaWNlQ2hhbmdlZCA9IG5ldyBFdmVudEVtaXR0ZXI8bnVtYmVyPigpO1xuXG4gIEBWaWV3Q2hpbGRyZW4oQmFza2V0UHJldmlld0xpbmVDb21wb25lbnQpIGxpbmVDb21wb25lbnRzOiBCYXNrZXRQcmV2aWV3TGluZUNvbXBvbmVudFtdO1xuICBAVmlld0NoaWxkcmVuKEJhc2tldFByZXZpZXdMaW5lQ29tcG9uZW50KSBiYXNrZXRQcmV2aWV3UmVjaXBlUm93czogUXVlcnlMaXN0PEJhc2tldFByZXZpZXdMaW5lQ29tcG9uZW50PjtcbiAgQFZpZXdDaGlsZHJlbihCYXNrZXRQcmV2aWV3UHJvZHVjdENvbXBvbmVudCkgcHJvZHVjdHNFbGVtZW50czogUXVlcnlMaXN0PEJhc2tldFByZXZpZXdQcm9kdWN0Q29tcG9uZW50PjtcblxuICBsaW5lczogQmFza2V0UHJldmlld0xpbmVbXTtcbiAgcHJvZHVjdHNMaXN0OiBCYXNrZXRFbnRyeVtdO1xuICBjb3JzSXNzdWVzID0gZmFsc2U7XG4gIGljb24gPSBJY29uO1xuICBpc01vYmlsZSA9IGZhbHNlO1xuICBhY3RpdmVCYXNrZXRUYWI6IEJhc2tldFRhYiA9IEJhc2tldFRhYi5SRUNJUEVTO1xuICBiYXNrZXRUYWIgPSBCYXNrZXRUYWI7XG4gIHNob3VsZFNjcm9sbFRvTGFzdFByb2R1Y3QgPSBmYWxzZTtcblxuICBibG9ja1N0YXRlczogQmVoYXZpb3JTdWJqZWN0PHsgY3VycmVudE9wZW5MaW5lOiBzdHJpbmc7IG92ZXJsYXlPcGVuOiBib29sZWFuOyBsaW5lQ29tcG9uZW50OiBCYXNrZXRQcmV2aWV3TGluZUNvbXBvbmVudCB9PjtcbiAgcHJpdmF0ZSBzdWJzY3JpcHRpb25zID0gW107XG4gIHByaXZhdGUgbGluZXNIYXNoZXMgPSB7fTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwdWJsaWMgY2RyOiBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICBwdWJsaWMgcG9zU2VydmljZTogUG9pbnRPZlNhbGVzU2VydmljZSxcbiAgICBwdWJsaWMgY29udGV4dFNlcnZpY2U6IENvbnRleHRTZXJ2aWNlLFxuICAgIHB1YmxpYyBiYXNrZXRzU2VydmljZTogQmFza2V0c1NlcnZpY2UsXG4gICAgcHJpdmF0ZSBtZWRpYU1hdGNoZXI6IE1lZGlhTWF0Y2hlcixcbiAgICBhbmFseXRpY3NTZXJ2aWNlOiBBbmFseXRpY3NTZXJ2aWNlLFxuICAgIHB1YmxpYyBwcm9kdWN0UmVwbGFjZW1lbnRTZXJ2aWNlOiBQcm9kdWN0UmVwbGFjZW1lbnRTZXJ2aWNlLFxuICAgIHByaXZhdGUgYmFza2V0U3luY2hyb1NlcnZpY2U6IEJhc2tldHNTeW5jaHJvbml6ZXJTZXJ2aWNlLFxuICAgIHByaXZhdGUgcmVjaXBlU2VydmljZTogUmVjaXBlc1NlcnZpY2VcbiAgKSB7XG4gICAgc3VwZXIoYW5hbHl0aWNzU2VydmljZSk7XG4gICAgdGhpcy5pc01vYmlsZSA9IHRoaXMubWVkaWFNYXRjaGVyLm1hdGNoTWVkaWEoJyhtYXgtd2lkdGg6IDEwMjNweCknKS5tYXRjaGVzO1xuICB9XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy5ibG9ja1N0YXRlcyA9IG5ldyBCZWhhdmlvclN1YmplY3QoeyBjdXJyZW50T3BlbkxpbmU6IG51bGwsIG92ZXJsYXlPcGVuOiBmYWxzZSwgbGluZUNvbXBvbmVudDogbnVsbCB9KTtcbiAgICB0aGlzLmxvYWRQcmV2aWV3QW5kUHJvZHVjdHNXaGVuQmFza2V0SXNSZWFkeSgpO1xuICAgIHRoaXMuc3Vic2NyaXB0aW9ucy5wdXNoKFxuICAgICAgdGhpcy5jb250ZXh0U2VydmljZS5nZXRDT1JTSXNzdWVzU3RhdGUoKS5zdWJzY3JpYmUocmVzID0+IHtcbiAgICAgICAgdGhpcy5jb3JzSXNzdWVzID0gcmVzO1xuICAgICAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgICB9KSxcbiAgICAgIHRoaXMuYmxvY2tTdGF0ZXMuc3Vic2NyaWJlKCgpID0+IHRoaXMuaGFuZGxlYmxvY2tTdGF0ZSgpKSxcbiAgICAgIHRoaXMuYmFza2V0c1NlcnZpY2UuYmFza2V0U3RhdHMkLnBpcGUoXG4gICAgICAgIHNraXBXaGlsZShzdGF0cyA9PiAhc3RhdHMpLFxuICAgICAgICB0YXAoc3RhdHMgPT4gdGhpcy5zdGF0c1VwZGF0ZWQuZW1pdChzdGF0cykpXG4gICAgICApLnN1YnNjcmliZSgpLFxuICAgICAgdGhpcy5wb3NTZXJ2aWNlLmlzUG9zVmFsaWQoKS5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgICB9KSxcbiAgICAgIHRoaXMucHJvZHVjdFJlcGxhY2VtZW50U2VydmljZS5wcm9kdWN0QWRkZWQkLnN1YnNjcmliZSgoYWRkZWQ6IGJvb2xlYW4pID0+IHtcbiAgICAgICAgaWYgKGFkZGVkKSB7XG4gICAgICAgICAgdGhpcy5hY3RpdmVCYXNrZXRUYWIgPSBCYXNrZXRUYWIuUFJPRFVDVFM7XG4gICAgICAgICAgdGhpcy5wcm9kdWN0UmVwbGFjZW1lbnRTZXJ2aWNlLnByb2R1Y3RBZGRlZCQubmV4dChmYWxzZSk7XG4gICAgICAgICAgdGhpcy5zaG91bGRTY3JvbGxUb0xhc3RQcm9kdWN0ID0gdHJ1ZTtcbiAgICAgICAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgICAgIH1cbiAgICAgIH0pXG4gICAgKTtcbiAgICBpZiAodGhpcy5wcm9kdWN0UmVwbGFjZW1lbnRTZXJ2aWNlLnNjcm9sbEJhY2tUb0Jhc2tldEVudHJ5SWQpIHtcbiAgICAgIHRoaXMuYWN0aXZlQmFza2V0VGFiID0gQmFza2V0VGFiLlBST0RVQ1RTO1xuICAgICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xuICAgIH1cbiAgfVxuXG4gIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcbiAgICBpZiAoT2JqZWN0LmtleXMoY2hhbmdlcykuaW5jbHVkZXMoJ3JlY2lwZUlkJykpIHtcbiAgICAgIHRoaXMubG9hZGluZy5uZXh0KHRydWUpO1xuICAgIH1cbiAgICBpZiAoXG4gICAgICBjaGFuZ2VzLmlzU3RvcmVMb2NhdG9yRGlzcGxheWVkICYmXG4gICAgICBjaGFuZ2VzLmlzU3RvcmVMb2NhdG9yRGlzcGxheWVkLnByZXZpb3VzVmFsdWUgIT09IGNoYW5nZXMuaXNTdG9yZUxvY2F0b3JEaXNwbGF5ZWQuY3VycmVudFZhbHVlICYmXG4gICAgICAhdGhpcy5pc1N0b3JlTG9jYXRvckRpc3BsYXllZFxuICAgICkge1xuICAgICAgdGhpcy5wYWdldmlldygpO1xuICAgIH1cbiAgfVxuXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5iYXNrZXRQcmV2aWV3UmVjaXBlUm93cyAmJiB0aGlzLnJlY2lwZUlkKSB7XG4gICAgICB0aGlzLmZpbmRBbmRGb2N1c0N1cnJlbnRSZWNpcGUodGhpcy5iYXNrZXRQcmV2aWV3UmVjaXBlUm93cy50b0FycmF5KCkpO1xuICAgIH1cbiAgICB0aGlzLnN1YnNjcmlwdGlvbnMucHVzaChcbiAgICAgIHRoaXMuYmFza2V0UHJldmlld1JlY2lwZVJvd3MuY2hhbmdlcy5zdWJzY3JpYmUoKGJwcnJzOiBCYXNrZXRQcmV2aWV3TGluZUNvbXBvbmVudFtdKSA9PiB7XG4gICAgICAgIHRoaXMuZmluZEFuZEZvY3VzQ3VycmVudFJlY2lwZShicHJycyk7XG4gICAgICB9KVxuICAgICk7XG4gIH1cblxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLnN1YnNjcmlwdGlvbnMuZm9yRWFjaCgoc3ViOiBTdWJzY3JpcHRpb24pID0+IHN1Yi51bnN1YnNjcmliZSgpKTtcbiAgfVxuXG4gIGN1cnJlbnRQYXRoKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMubGVnYWN5TW9kZSA/ICdiYXNrZXQtcHJldmlldycgOiBgYmFza2V0LyR7dGhpcy5hY3RpdmVCYXNrZXRUYWIgPT09IEJhc2tldFRhYi5SRUNJUEVTID8gJ3JlY2lwZXMnIDogJ3Byb2R1Y3RzJ31gO1xuICB9XG5cbiAgbG9hZFByZXZpZXdBbmRQcm9kdWN0c1doZW5CYXNrZXRJc1JlYWR5KCk6IHZvaWQge1xuICAgIHRoaXMuc3Vic2NyaXB0aW9ucy5wdXNoKFxuICAgICAgLy8gSWYgcmVjaXBlcyBhcmUgYmVpbmcgYWRkZWQgd2Ugd2FpdCBmb3IgdGhlbSBiZWZvcmUgbG9hZGluZyB0aGUgcHJldmlld1xuICAgICAgdGhpcy5iYXNrZXRzU2VydmljZS5yZWNpcGVzV2lsbEJlQWRkZWQoKS5waXBlKFxuICAgICAgICBza2lwV2hpbGUoYWRkZWQgPT4gYWRkZWQpLFxuICAgICAgICB0YWtlKDEpXG4gICAgICApLnBpcGUoXG4gICAgICAgIHN3aXRjaE1hcCgoKSA9PiB0aGlzLmJhc2tldHNTZXJ2aWNlLndhaXRGb3JCYXNrZXQpLFxuICAgICAgICBzd2l0Y2hNYXAoYmFza2V0ID0+IHRoaXMubG9hZFByZXZpZXcoYmFza2V0KSksXG4gICAgICAgIHN3aXRjaE1hcCgoKSA9PiB0aGlzLmxvYWRQcm9kdWN0cygpKVxuICAgICAgKS5zdWJzY3JpYmUoKVxuICAgICk7XG4gIH1cblxuICBsb2FkUHJldmlldyhiYXNrZXQ6IEJhc2tldCk6IE9ic2VydmFibGU8QmFza2V0UHJldmlld0xpbmVbXT4ge1xuICAgIHJldHVybiB0aGlzLmJhc2tldHNTZXJ2aWNlLmJhc2tldFByZXZpZXckLnBpcGUoXG4gICAgICBza2lwV2hpbGUocHJldmlldyA9PiAhcHJldmlldyB8fCBwcmV2aWV3Lmxlbmd0aCAhPT0gYmFza2V0LnJlY2lwZUluZm9zLmxlbmd0aCksXG4gICAgICBzd2l0Y2hNYXAocHJldmlldyA9PiB7XG4gICAgICAgIHRoaXMubGluZXMgPSB0aGlzLnJlY2lwZXNJZHMubGVuZ3RoID09PSAwID8gcHJldmlldyA6IHByZXZpZXcuZmlsdGVyKGxpbmUgPT4gdGhpcy5yZWNpcGVzSWRzLmluY2x1ZGVzKGxpbmUuaWQpKTtcbiAgICAgICAgY29uc3QgdG90YWxQcmljZSA9IHRoaXMubGluZXMucmVkdWNlKCh0b3RhbCwgbGluZSkgPT4gdG90YWwgKyArbGluZS5wcmljZSwgMCk7XG4gICAgICAgIHRoaXMudG90YWxQcmljZUNoYW5nZWQuZW1pdCh0b3RhbFByaWNlKTtcbiAgICAgICAgdGhpcy5sb2FkaW5nLm5leHQoZmFsc2UpO1xuICAgICAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgICAgIHJldHVybiBvZihwcmV2aWV3KTtcbiAgICAgIH0pXG4gICAgKTtcbiAgfVxuXG4gIGxvYWRQcm9kdWN0cygpOiBPYnNlcnZhYmxlPGFueVtdPiB7XG4gICAgcmV0dXJuIHRoaXMuYmFza2V0c1NlcnZpY2UuYWN0aXZlQmFza2V0RW50cmllcygpLnBpcGUoXG4gICAgICB0YXAoKGVudHJpZXM6IEJhc2tldEVudHJ5W10pID0+IHtcbiAgICAgICAgdGhpcy5wcm9kdWN0c0xpc3QgPSBlbnRyaWVzO1xuICAgICAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgICAgIGlmICh0aGlzLnNob3VsZFNjcm9sbFRvTGFzdFByb2R1Y3QpIHtcbiAgICAgICAgICB0aGlzLnNjcm9sbFRvTGFzdFByb2R1Y3QoKTtcbiAgICAgICAgfVxuICAgICAgfSlcbiAgICApO1xuICB9XG5cbiAgcmVtb3ZlUmVjaXBlKGxpbmU6IEJhc2tldFByZXZpZXdMaW5lKTogdm9pZCB7XG4gICAgdGhpcy5zdWJzY3JpcHRpb25zLnB1c2goXG4gICAgICB0aGlzLnJlY2lwZVNlcnZpY2UuZ2V0SW5ncmVkaWVudHNCeVJlY2lwZUlkKGxpbmUuaWQpLnBpcGUoXG4gICAgICAgIHN3aXRjaE1hcChyZWNpcGUgPT4ge1xuICAgICAgICAgIGNvbnN0IHJlcXVlc3RzID0gcmVjaXBlLmluZ3JlZGllbnRzLm1hcChpbmcgPT5cbiAgICAgICAgICAgIHRoaXMuYmFza2V0c1NlcnZpY2UuYmFza2V0RW50cnlGcm9tSW5ncmVkaWVudChpbmcuaWQsIDApXG4gICAgICAgICAgKTtcbiAgICAgICAgICByZXR1cm4gZm9ya0pvaW4ocmVxdWVzdHMpLnBpcGUoXG4gICAgICAgICAgICBtYXAoKGJhc2tldEVudHJpZXM6IEJhc2tldEVudHJ5W10pID0+ICh7XG4gICAgICAgICAgICAgIHJlY2lwZSxcbiAgICAgICAgICAgICAgYmFza2V0RW50cmllc1xuICAgICAgICAgICAgfSkpXG4gICAgICAgICAgKTtcbiAgICAgICAgfSlcbiAgICAgICkuc3Vic2NyaWJlKCh7IHJlY2lwZSwgYmFza2V0RW50cmllcyB9KSA9PiB7XG4gICAgICAgIGNvbnN0IGNsb25lZEVudHJpZXMgPSBkZWVwQ2xvbmVXaXRoQ2xhc3MoYmFza2V0RW50cmllcykgYXMgQmFza2V0RW50cnlbXTtcbiAgICAgICAgY29uc3QgbWF0Y2hlZFByb2R1Y3RzID0gY2xvbmVkRW50cmllcy5tYXAoKGJhc2tldEVudHJ5LCBpbmRleCkgPT4gKHtcbiAgICAgICAgICBiYXNrZXRFbnRyeSxcbiAgICAgICAgICBpbmdyZWRpZW50OiByZWNpcGUuaW5ncmVkaWVudHNbaW5kZXhdXG4gICAgICAgIH0pKTtcbiAgICAgICAgY29uc3QgZmlsdGVyZWRQcm9kdWN0cyA9IG1hdGNoZWRQcm9kdWN0cy5maWx0ZXIocHJvZHVjdCA9PiBwcm9kdWN0LmJhc2tldEVudHJ5LmlkICE9PSAnLTEnKTtcbiAgICAgICAgY29uc3QgcmVjaXBlUmVtb3ZlQWN0aW9ucyA9IGZpbHRlcmVkUHJvZHVjdHMuZmlsdGVyKGUgPT4gZS5iYXNrZXRFbnRyeS5zdGF0dXMgPT09ICdhY3RpdmUnICYmIGUuYmFza2V0RW50cnkucXVhbnRpdHkgPiAwKVxuICAgICAgICAgIC5tYXAocHJvZHVjdCA9PiBuZXcgUmVtb3ZlUmVjaXBlQWN0aW9uKFxuICAgICAgICAgICAgcHJvZHVjdC5iYXNrZXRFbnRyeSxcbiAgICAgICAgICAgIHt9LFxuICAgICAgICAgICAgdGhpcy5iYXNrZXRzU2VydmljZVxuICAgICAgICAgICkpO1xuICAgICAgICBpZiAocmVjaXBlUmVtb3ZlQWN0aW9ucy5sZW5ndGggIT09IDApIHtcbiAgICAgICAgICByZWNpcGVSZW1vdmVBY3Rpb25zW3JlY2lwZVJlbW92ZUFjdGlvbnMubGVuZ3RoIC0gMV0ub25TdWNjZXNzLnBpcGUodGFrZSgxKSkuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgICAgIHRoaXMucmVtb3ZlUmVjaXBlRnJvbUJhc2tldChsaW5lLCBmaWx0ZXJlZFByb2R1Y3RzKTtcbiAgICAgICAgICB9KTtcbiAgICAgICAgICB0aGlzLmJhc2tldFN5bmNocm9TZXJ2aWNlLmFkZFRvQWN0aW9uTGlzdChyZWNpcGVSZW1vdmVBY3Rpb25zKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICB0aGlzLnJlbW92ZVJlY2lwZUZyb21CYXNrZXQobGluZSwgZmlsdGVyZWRQcm9kdWN0cyk7XG4gICAgICAgIH1cbiAgICAgIH0pXG4gICAgKTtcbiAgfVxuXG4gIHByaXZhdGUgcmVtb3ZlUmVjaXBlRnJvbUJhc2tldChsaW5lOiBCYXNrZXRQcmV2aWV3TGluZSwgcHJvZHVjdHM6IHsgYmFza2V0RW50cnk6IEJhc2tldEVudHJ5LCBpbmdyZWRpZW50OiBJbmdyZWRpZW50IH1bXSk6IHZvaWQge1xuICAgIHRoaXMuYmFza2V0c1NlcnZpY2UucmVtb3ZlUHJvZHVjdEZyb21SZWNpcGUocHJvZHVjdHMsIHRoaXMuZXZlbnRUcmFjZSk7XG4gICAgdGhpcy5zdWJzY3JpcHRpb25zLnB1c2goXG4gICAgICBjb21iaW5lTGF0ZXN0KFtcbiAgICAgICAgdGhpcy5iYXNrZXRzU2VydmljZS5lbnRyaWVzV2lsbEJlUmVtb3ZlZEZyb21SZWNpcGUoKSxcbiAgICAgICAgdGhpcy5iYXNrZXRzU2VydmljZS5lbnRyaWVzQXJlQmVpbmdSZW1vdmVkRnJvbVJlY2lwZSgpXVxuICAgICAgKS5waXBlKFxuICAgICAgICBmaWx0ZXIoaW5Qcm9jZXNzID0+ICFpblByb2Nlc3NbMF0gJiYgIWluUHJvY2Vzc1sxXSksXG4gICAgICAgIHRha2UoMSlcbiAgICAgICkuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgdGhpcy5iYXNrZXRzU2VydmljZS5yZW1vdmVSZWNpcGVzRnJvbUJhc2tldChbbGluZS5pZF0sIHRoaXMuZXZlbnRUcmFjZSwgdHJ1ZSk7XG4gICAgICAgIHRoaXMuYmFza2V0c1NlcnZpY2UucmVjaXBlV2lsbEJlUmVtb3ZlZChsaW5lLmlkKS5waXBlKHNraXBXaGlsZSh3aWxsQmVSZW1vdmVkID0+IHdpbGxCZVJlbW92ZWQpLCB0YWtlKDEpKS5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICAgIGNvbnN0IHJlY2lwZUluZGV4ID0gdGhpcy5yZWNpcGVzSWRzLmZpbmRJbmRleChyZWNpcGVJZCA9PiByZWNpcGVJZCA9PT0gbGluZS5pZCk7XG4gICAgICAgICAgaWYgKHJlY2lwZUluZGV4ID49IDApIHtcbiAgICAgICAgICAgIHRoaXMucmVjaXBlc0lkcy5zcGxpY2UocmVjaXBlSW5kZXgsIDEpO1xuICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICB9KVxuICAgICk7XG4gIH1cblxuICB1cGRhdGVSZWNpcGUobGluZTogQmFza2V0UHJldmlld0xpbmUpOiB2b2lkIHtcbiAgICB0aGlzLmJhc2tldHNTZXJ2aWNlLnVwZGF0ZVJlY2lwZXNJbkJhc2tldChbbGluZS5pZF0sIGxpbmUuY291bnQsIHRoaXMuZXZlbnRUcmFjZSwgdHJ1ZSk7XG5cbiAgICB0aGlzLnN1YnNjcmlwdGlvbnMucHVzaChcbiAgICAgIHRoaXMucmVjaXBlU2VydmljZS5nZXRJbmdyZWRpZW50c0J5UmVjaXBlSWQobGluZS5pZCkucGlwZShcbiAgICAgICAgc3dpdGNoTWFwKHJlY2lwZSA9PiB7XG4gICAgICAgICAgY29uc3QgcmVxdWVzdHMgPSByZWNpcGUuaW5ncmVkaWVudHMubWFwKGluZyA9PlxuICAgICAgICAgICAgdGhpcy5iYXNrZXRzU2VydmljZS5iYXNrZXRFbnRyeUZyb21JbmdyZWRpZW50KGluZy5pZCwgbGluZS5jb3VudClcbiAgICAgICAgICApO1xuICAgICAgICAgIHJldHVybiBmb3JrSm9pbihyZXF1ZXN0cyk7XG4gICAgICAgIH0pXG4gICAgICApLnN1YnNjcmliZSgoYmFza2V0RW50cmllczogQmFza2V0RW50cnlbXSkgPT4ge1xuICAgICAgICBjb25zdCB1cGRhdGVBY3Rpb25zID0gYmFza2V0RW50cmllc1xuICAgICAgICAgIC5maWx0ZXIoYmFza2V0RW50cnkgPT4gYmFza2V0RW50cnkuaWQgIT09ICctMScgJiYgYmFza2V0RW50cnkucmVjaXBlc0lkcy5pbmNsdWRlcygrbGluZS5pZCkpXG4gICAgICAgICAgLm1hcChiYXNrZXRFbnRyeSA9PiB7XG4gICAgICAgICAgICBjb25zdCBuZXdCYXNrZXRFbnRyeTogQmFza2V0RW50cnkgPSBkZWVwQ2xvbmVXaXRoQ2xhc3MoYmFza2V0RW50cnkpOyAvLyBDbG9uZSBmb3IgaW1tdXRhYmlsaXR5XG4gICAgICAgICAgICByZXR1cm4gbmV3IFVwZGF0ZVJlY2lwZUZyb21HdWVzdEFjdGlvbihcbiAgICAgICAgICAgICAgbmV3QmFza2V0RW50cnksXG4gICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBldmVudFRyYWNlOiB0aGlzLmV2ZW50VHJhY2UsXG4gICAgICAgICAgICAgICAgcmVjaXBlSWQ6IGxpbmUuaWRcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgdGhpcy5iYXNrZXRzU2VydmljZVxuICAgICAgICAgICAgKTtcbiAgICAgICAgICB9KTtcbiAgICAgICAgdGhpcy5iYXNrZXRTeW5jaHJvU2VydmljZS5hZGRUb0FjdGlvbkxpc3QodXBkYXRlQWN0aW9ucyk7XG4gICAgICAgIG1lcmdlKC4uLnVwZGF0ZUFjdGlvbnMubWFwKGFjdGlvbiA9PiBhY3Rpb24ub25UaW1lb3V0KSwgLi4udXBkYXRlQWN0aW9ucy5tYXAoYWN0aW9uID0+IGFjdGlvbi5vbkVycm9yKSlcbiAgICAgICAgICAucGlwZSh0YWtlKDEpKVxuICAgICAgICAgIC5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICAgICAgdGhpcy5sb2FkUHJldmlld0FuZFByb2R1Y3RzV2hlbkJhc2tldElzUmVhZHkoKTtcbiAgICAgICAgICB9KTtcbiAgICAgICAgdGhpcy5ndWVzdENvdW50Q2hhbmdlZC5lbWl0KGxpbmUuY291bnQpO1xuICAgICAgfSlcbiAgICApO1xuICB9XG5cbiAgY2xvc2VPdmVybGF5KCk6IHZvaWQge1xuICAgIGlmICh0aGlzLmJsb2NrU3RhdGVzLmdldFZhbHVlKCkgJiYgdGhpcy5ibG9ja1N0YXRlcy5nZXRWYWx1ZSgpLmxpbmVDb21wb25lbnQpIHtcbiAgICAgIHRoaXMuYmxvY2tTdGF0ZXMudmFsdWUubGluZUNvbXBvbmVudC5wcm9kdWN0Q2hvc2VuKCk7XG4gICAgfVxuICB9XG5cbiAgaGFuZGxlYmxvY2tTdGF0ZSgpOiB2b2lkIHtcbiAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCk7XG4gIH1cblxuICBzY3JvbGx0b3AoZWxlbWVudDogRWxlbWVudCk6IHZvaWQge1xuICAgIC8vIHNjcm9sbCB0b3AgYmFzZSBvbiBtb2RhbCBjb250YWluZXJcbiAgICBpZiAodGhpcy5pc01vYmlsZSkge1xuICAgICAgY29uc3QgbW9kYWxDb250YWluZXIgPSBkb2N1bWVudC5nZXRFbGVtZW50c0J5Q2xhc3NOYW1lKCdtaWFtLXdyYXBwZXItcHJldmlldycpWzBdO1xuICAgICAgaWYgKG1vZGFsQ29udGFpbmVyKSB7XG4gICAgICAgIG1vZGFsQ29udGFpbmVyLnNjcm9sbFRvcCA9IDA7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cbiAgICAgIGVsZW1lbnQuc2Nyb2xsSW50b1ZpZXcoKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICAvLyBzY3JvbGwgYmFzZSBvbiBnbG9iYWwgd2luZG93XG4gICAgZWxlbWVudC5zY3JvbGxJbnRvVmlldygpO1xuICB9XG5cbiAgc2Nyb2xsVG9MYXN0UHJvZHVjdCgpOiB2b2lkIHtcbiAgICB0aGlzLnByb2R1Y3RzRWxlbWVudHMubGFzdC5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQuc2Nyb2xsSW50b1ZpZXcoeyBibG9jazogJ2VuZCcsIGJlaGF2aW9yOiAnc21vb3RoJyB9KTtcbiAgICB0aGlzLnNob3VsZFNjcm9sbFRvTGFzdFByb2R1Y3QgPSBmYWxzZTtcbiAgfVxuXG4gIHRyYWNrQnlCUExpbmVGbihpbmRleDogbnVtYmVyLCBsaW5lOiBCYXNrZXRQcmV2aWV3TGluZSk6IHN0cmluZyB7XG4gICAgcmV0dXJuIGxpbmUuaWQ7XG4gIH1cblxuICB0cmFja0J5UHJvZHVjdEZuKGluZGV4OiBudW1iZXIsIHByb2R1Y3Q6IEJhc2tldEVudHJ5KTogc3RyaW5nIHtcbiAgICByZXR1cm4gcHJvZHVjdC5pZDtcbiAgfVxuXG4gIHByaXZhdGUgcmVmcmVzaFByZXZpZXcobmV3TGluZXM6IEJhc2tldFByZXZpZXdMaW5lW10pOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMubGluZXMpIHtcbiAgICAgIC8vIEZpcnN0IGxvYWRcbiAgICAgIHRoaXMubGluZXMgPSBuZXdMaW5lcztcbiAgICB9IGVsc2Uge1xuICAgICAgY29uc3QgbmV3TGluZXNJZHMgPSBbXTtcbiAgICAgIG5ld0xpbmVzLmZvckVhY2goKGxpbmU6IEJhc2tldFByZXZpZXdMaW5lKSA9PiB7XG4gICAgICAgIG5ld0xpbmVzSWRzLnB1c2gobGluZS5pZCk7XG4gICAgICAgIGNvbnN0IGV4aXN0aW5nTGluZSA9IHRoaXMubGluZXMuZmluZChsID0+IGwuaWQgPT09IGxpbmUuaWQpO1xuICAgICAgICBpZiAoZXhpc3RpbmdMaW5lKSB7XG4gICAgICAgICAgLy8gVXBkYXRlIGV4aXN0aW5nIG9iamVjdCB3aXRoIGl0cyBuZXcgdmFsdWVzXG4gICAgICAgICAgT2JqZWN0LmFzc2lnbihleGlzdGluZ0xpbmUsIGxpbmUpO1xuXG4gICAgICAgICAgLy8gTWFyayBiYXNrZXQgbGluZXMgY29tcG9uZW50IGZvciBjaGVja1xuICAgICAgICAgIGNvbnN0IGV4aXN0aW5nQ29tcCA9IHRoaXMubGluZUNvbXBvbmVudHMuZmluZChjb21wID0+IGNvbXAubGluZS5pZCA9PT0gbGluZS5pZCk7XG4gICAgICAgICAgZXhpc3RpbmdDb21wPy5jZHIubWFya0ZvckNoZWNrKCk7XG5cbiAgICAgICAgICAvLyBGb3JjZSByZWxvYWQgdGhlIGJhc2tldCBlbnRyaWVzIGlmIHRoZWlyIHF1YW50aXRpZXMgb3Igc2VsZWN0ZWQgaXRlbXMgaGF2ZSBjaGFuZ2VkXG4gICAgICAgICAgY29uc3QgZW50cmllcyA9IGxpbmUuZW50cmllcy5mb3VuZC5zb3J0KGUgPT4gcGFyc2VJbnQoZS5pZCwgMTApKTtcbiAgICAgICAgICBjb25zdCBoYXNoID0gZW50cmllcy5tYXAoZSA9PiBlLmF0dHJpYnV0ZXNbJ3NlbGVjdGVkLWl0ZW0taWQnXSArICctJyArIGUuYXR0cmlidXRlcy5xdWFudGl0eSkuam9pbignLycpO1xuICAgICAgICAgIGlmIChoYXNoICE9PSB0aGlzLmxpbmVzSGFzaGVzW2xpbmUuaWRdICYmIGV4aXN0aW5nQ29tcD8uZW50cmllc0xpbmVzJC52YWx1ZSkge1xuICAgICAgICAgICAgZXhpc3RpbmdDb21wLmJ1aWxkRW50cmllc0xpbmVzKCk7XG4gICAgICAgICAgICB0aGlzLmxpbmVzSGFzaGVzW2xpbmUuaWRdID0gaGFzaDtcbiAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgLy8gUHVzaCB0aGUgbmV3IGxpbmUgdG8gdGhlIGJlZ2dpbmluZyBvZiB0aGUgYXJyYXlcbiAgICAgICAgICB0aGlzLmxpbmVzLnVuc2hpZnQobGluZSk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgICAgLy8gUmVtb3ZlIGRlbGV0ZWQgbGluZXNcbiAgICAgIHJlbW92ZSh0aGlzLmxpbmVzLCBsID0+ICFuZXdMaW5lc0lkcy5pbmNsdWRlcyhsLmlkKSk7XG4gICAgfVxuICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcbiAgfVxuXG4gIGhhbmRsZVJlcGxhY2VCdXR0b25DbGljayhwcm9kdWN0OiBCYXNrZXRFbnRyeSk6IHZvaWQge1xuICAgIHRoaXMucHJvZHVjdFJlcGxhY2VtZW50U2VydmljZS51cGRhdGVQcm9kdWN0VG9SZXBsYWNlKHByb2R1Y3QpO1xuICAgIHRoaXMucHJvZHVjdFJlcGxhY2VtZW50U2VydmljZS5jaGFuZ2VSZXBsYWNlTW9kYWxTdGF0ZSh0cnVlKTtcbiAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCk7XG4gIH1cblxuICBwcml2YXRlIGZpbmRBbmRGb2N1c0N1cnJlbnRSZWNpcGUocmVjaXBlUm93czogQmFza2V0UHJldmlld0xpbmVDb21wb25lbnRbXSk6IHZvaWQge1xuICAgIGNvbnN0IHJlY2lwZVJvd0VsZW1lbnQgPSByZWNpcGVSb3dzLmZpbmQoYnByciA9PiBicHJyLmxpbmUuaWQgPT09IHRoaXMucmVjaXBlSWQpO1xuICAgIGlmIChyZWNpcGVSb3dFbGVtZW50KSB7XG4gICAgICByZWNpcGVSb3dFbGVtZW50LmV4cGFuZGVkID0gdHJ1ZTtcbiAgICAgIHJlY2lwZVJvd0VsZW1lbnQuYnVpbGRFbnRyaWVzTGluZXMoKTtcbiAgICAgIHJlY2lwZVJvd0VsZW1lbnQuY2RyLmRldGVjdENoYW5nZXMoKTtcbiAgICAgIChyZWNpcGVSb3dFbGVtZW50LmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudCBhcyBFbGVtZW50KS5zY3JvbGxJbnRvVmlldygpO1xuICAgIH1cbiAgfVxufVxuIiwiPGRpdiAjcHJldmlld0Jsb2NrVG9wIGNsYXNzPVwibWlhbS1iYXNrZXQtcHJldmlldy1ibG9ja19fYW5jaG9yXCI+PC9kaXY+XG48ZGl2ICpuZ0lmPSchY29yc0lzc3VlcyBlbHNlIGNvcnMnIGNsYXNzPVwibWlhbS1iYXNrZXQtcHJldmlldy1ibG9ja1wiPlxuICA8bmctY29udGFpbmVyICpuZ0lmPVwiKHBvc1NlcnZpY2UuaXNQb3NWYWxpZCgpIHwgYXN5bmMpIGVsc2Ugbm9Qb3NcIj5cbiAgICA8ZGl2IGNsYXNzPVwibWlhbS1iYXNrZXQtcHJldmlldy1ibG9ja19faGVhZGVyXCI+XG4gICAgICA8ZGl2ICpuZ0lmPVwibGluZXM/Lmxlbmd0aCA+IDBcIlxuICAgICAgICBjbGFzcz1cIm1pYW0tYmFza2V0LXByZXZpZXctYmxvY2tfX3RpdGxlIG1pYW0tZHMtdGV4dFwiXG4gICAgICAgIFtuZ0NsYXNzXT1cImNvbnRleHRTZXJ2aWNlLm5vU3VwcGxpZXIgPyAnbWlhbS1iYXNrZXQtcHJldmlldy1ibG9ja19fdGl0bGUtbm8tc3VwcGxpZXIgd2VpZ2h0LXhsJyA6ICd3ZWlnaHQteHhsIHNpemUtbCdcIj5cbiAgICAgICAgPHNwYW4gY2xhc3M9XCJudW1iZXJcIj57e2xpbmVzLmxlbmd0aH19PC9zcGFuPlxuICAgICAgICA8c3BhbiBpMThuPnJlcGFzIGRhbnMgdm90cmUgcGFuaWVyPC9zcGFuPlxuICAgICAgPC9kaXY+XG4gICAgICA8bmctbWlhbS1zbGlkZXItdGFic1xuICAgICAgICAgICpuZ0lmPVwiY29udGV4dFNlcnZpY2Uubm9TdXBwbGllclwiXG4gICAgICAgICAgaTE4bi10YWJzXG4gICAgICAgICAgdGFicz1cIlJlY2V0dGVzLCBQcm9kdWl0c1wiXG4gICAgICAgICAgWyhzZWxlY3RlZFRhYkluZGV4KV09XCJhY3RpdmVCYXNrZXRUYWJcIlxuICAgICAgICAgIChzZWxlY3RlZFRhYkluZGV4Q2hhbmdlKT1cImNkci5kZXRlY3RDaGFuZ2VzKClcIj5cbiAgICAgIDwvbmctbWlhbS1zbGlkZXItdGFicz5cbiAgICA8L2Rpdj5cbiAgICA8ZGl2ICpuZ0lmPVwiYWN0aXZlQmFza2V0VGFiID09PSBiYXNrZXRUYWIuUkVDSVBFU1wiIGNsYXNzPVwibWlhbS1iYXNrZXQtcHJldmlldy1ibG9ja19fbGluZXNcIj5cbiAgICAgIDxuZy1taWFtLXByb2R1Y3QtYWRkaXRpb24tY2FyZCAqbmdJZj1cImNvbnRleHRTZXJ2aWNlLm5vU3VwcGxpZXJcIj48L25nLW1pYW0tcHJvZHVjdC1hZGRpdGlvbi1jYXJkPlxuICAgICAgPG5nLW1pYW0tYmFza2V0LXByZXZpZXctbGluZVxuICAgICAgICAqbmdGb3I9XCJsZXQgbGluZSBvZiBsaW5lcztcIlxuICAgICAgICBbbGluZV09XCJsaW5lXCJcbiAgICAgICAgW2Jsb2NrU3RhdGVzXT1cImJsb2NrU3RhdGVzXCJcbiAgICAgICAgW3JlY2lwZXNBbHdheXNFeHBhbmRlZF09XCJyZWNpcGVzQWx3YXlzRXhwYW5kZWRcIlxuICAgICAgICBbaXRlbXNBbHdheXNFeHBhbmRlZF09XCJpdGVtc0Fsd2F5c0V4cGFuZGVkXCJcbiAgICAgICAgW2Rpc3BsYXlJdGVtc1VuaXRhcnlQcmljZV09XCJkaXNwbGF5SXRlbXNVbml0YXJ5UHJpY2VcIlxuICAgICAgICBbbGVnYWN5TW9kZV09XCJsZWdhY3lNb2RlXCJcbiAgICAgICAgW29yaWdpblRyYWNlXT1cImV2ZW50VHJhY2VcIlxuICAgICAgICAocmVtb3ZlZCk9XCJyZW1vdmVSZWNpcGUoJGV2ZW50KVwiXG4gICAgICAgIChjb3VudENoYW5nZWQpPVwidXBkYXRlUmVjaXBlKCRldmVudClcIlxuICAgICAgICAocmVwbGFjZUl0ZW0pPSdzY3JvbGx0b3AocHJldmlld0Jsb2NrVG9wKSdcbiAgICAgICAgW25nU3R5bGVdPVwieydkaXNwbGF5JzogYmxvY2tTdGF0ZXM/LnZhbHVlPy5vdmVybGF5T3BlbiA/ICdub25lJyA6ICdibG9jayd9IFwiXG4gICAgICA+PC9uZy1taWFtLWJhc2tldC1wcmV2aWV3LWxpbmU+XG4gICAgICA8bmctbWlhbS1yZXBsYWNlLWl0ZW1cbiAgICAgICAgKm5nSWY9XCJibG9ja1N0YXRlcz8udmFsdWU/Lm92ZXJsYXlPcGVuXCJcbiAgICAgICAgW29yaWdpblRyYWNlXT1cImV2ZW50VHJhY2VcIlxuICAgICAgICBbcmVjaXBlXT1cImJsb2NrU3RhdGVzPy52YWx1ZT8ubGluZUNvbXBvbmVudC5saW5lLnJlY2lwZVwiXG4gICAgICAgIFtpbmdyZWRpZW50XT1cImJsb2NrU3RhdGVzPy52YWx1ZT8ubGluZUNvbXBvbmVudC5saW5lLmluZ3JlZGllbnRcIlxuICAgICAgICBbYmFza2V0RW50cnldPVwiYmxvY2tTdGF0ZXM/LnZhbHVlPy5saW5lQ29tcG9uZW50LmxpbmUucmVjb3JkXCJcbiAgICAgICAgW2xvYWRPblNlbGVjdF09XCJ0cnVlXCJcbiAgICAgICAgKHNlbGVjdGVkKT1cImJsb2NrU3RhdGVzPy52YWx1ZT8ubGluZUNvbXBvbmVudC5wcm9kdWN0Q2hvc2VuKCRldmVudClcIlxuICAgICAgPlxuICAgICAgPC9uZy1taWFtLXJlcGxhY2UtaXRlbT5cbiAgICAgIDxkaXYgKm5nSWY9XCIhKGxvYWRpbmcgfCBhc3luYykgJiYgKCFsaW5lcyB8fCBsaW5lcy5sZW5ndGggPT09IDApXCIgY2xhc3M9XCJtaWFtLWJhc2tldC1wcmV2aWV3LWJsb2NrX19saW5lc19fbm90LWZvdW5kXCI+XG4gICAgICAgIDxwPjxiIGkxOG4+Vm91cyBuJ2F2ZXogcGFzIGVuY29yZSBzw6lsZWN0aW9ubsOpIGRlIHJlcGFzLjwvYj48L3A+XG4gICAgICAgIDxwIGkxOG4gKm5nSWY9XCJzaG93Tm90aWNlXCI+TmF2aWd1ZXogdmVycyBsYSBwYWdlIGQndW5lIHJlY2V0dGUsIHB1aXMgY2xpcXVleiBzdXIgXCJDb21tYW5kZXIgbGVzIGluZ3LDqWRpZW50c1wiLjwvcD5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICAgIDxkaXYgKm5nSWY9XCJhY3RpdmVCYXNrZXRUYWIgPT09IGJhc2tldFRhYi5QUk9EVUNUU1wiIGNsYXNzPVwibWlhbS1iYXNrZXQtcHJldmlldy1ibG9ja19fcHJvZHVjdHNcIj5cbiAgICAgIDxuZy1taWFtLXByb2R1Y3QtYWRkaXRpb24tY2FyZCAqbmdJZj1cImNvbnRleHRTZXJ2aWNlLm5vU3VwcGxpZXJcIj48L25nLW1pYW0tcHJvZHVjdC1hZGRpdGlvbi1jYXJkPlxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgcHJvZHVjdCBvZiBwcm9kdWN0c0xpc3Q7IGxldCBsYXN0ID0gbGFzdDsgdHJhY2tCeTogdHJhY2tCeVByb2R1Y3RGblwiPlxuICAgICAgICA8bmctbWlhbS1iYXNrZXQtcHJldmlldy1wcm9kdWN0XG4gICAgICAgICAgW2Jhc2tldEVudHJ5XT1cInByb2R1Y3RcIlxuICAgICAgICAgIChyZXBsYWNlQnV0dG9uQ2xpY2tlZCk9XCJoYW5kbGVSZXBsYWNlQnV0dG9uQ2xpY2socHJvZHVjdClcIlxuICAgICAgICA+PC9uZy1taWFtLWJhc2tldC1wcmV2aWV3LXByb2R1Y3Q+XG4gICAgICAgIDxociBjbGFzcz1cIm1pYW0tYmFza2V0LXByZXZpZXctYmxvY2tfX3Byb2R1Y3RzLXNlcGFyYXRvclwiICpuZ0lmPVwiIWxhc3RcIi8+XG4gICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICA8L2Rpdj5cblxuICAgIDxkaXYgY2xhc3M9XCJtaWFtLWJhc2tldC1wcmV2aWV3LWJsb2NrX19saW5lc19fbG9hZGVyXCIgKm5nSWY9XCIobG9hZGluZyB8IGFzeW5jKVwiPlxuICAgICAgPG5nLW1pYW0tbG9hZGVyPjwvbmctbWlhbS1sb2FkZXI+XG4gICAgICA8ZGl2PlxuICAgICAgICA8c3BhbiBpMThuICpuZ0lmPVwicmVjaXBlSWRcIj5DaGFyZ2VtZW50IGR1IHJlcGFzLi4uPC9zcGFuPlxuICAgICAgICA8c3BhbiBpMThuICpuZ0lmPVwiIXJlY2lwZUlkXCI+Q2hhcmdlbWVudCBkZXMgcmVwYXMuLi48L3NwYW4+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgPC9uZy1jb250YWluZXI+XG48L2Rpdj5cbjxuZy10ZW1wbGF0ZSAjY29ycz5cbjxuZy1taWFtLWNvcnMtb3ZlcmxheT48L25nLW1pYW0tY29ycy1vdmVybGF5PlxuPC9uZy10ZW1wbGF0ZT5cbjxuZy10ZW1wbGF0ZSAjbm9Qb3M+XG4gIDxkaXYgY2xhc3M9XCJtaWFtLWJhc2tldC1wcmV2aWV3LWJsb2NrX19ub1Bvc1wiPlxuICAgIDxzcGFuIGkxOG4+RMOpc29sw6ksIGNlIG1hZ2FzaW4gbmUgcGVybWV0IHBhcyBkZSBzw6lsZWN0aW9ubmVyIGRlcyByZXBhcy48L3NwYW4+XG4gICAgPGJyPlxuICAgIDxzcGFuIGkxOG4+VmV1aWxsZXogc8OpbGVjdGlvbm5lciB1biBhdXRyZSBtYWdhc2luPC9zcGFuPlxuICA8L2Rpdj5cbjwvbmctdGVtcGxhdGU+XG4iXX0=
|
|
583
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFza2V0LXByZXZpZXctYmxvY2suY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmctbWlhbS9zcmMvbGliL193ZWItY29tcG9uZW50cy9iYXNrZXQtcHJldmlldy9iYXNrZXQtcHJldmlldy1ibG9jay9iYXNrZXQtcHJldmlldy1ibG9jay5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZy1taWFtL3NyYy9saWIvX3dlYi1jb21wb25lbnRzL2Jhc2tldC1wcmV2aWV3L2Jhc2tldC1wcmV2aWV3LWJsb2NrL2Jhc2tldC1wcmV2aWV3LWJsb2NrLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUNuRCxPQUFPLEVBRUwsdUJBQXVCLEVBQ3ZCLGlCQUFpQixFQUNqQixTQUFTLEVBQ1QsWUFBWSxFQUNaLEtBQUssRUFJTCxNQUFNLEVBQ04sU0FBUyxFQUVULFlBQVksRUFDWixpQkFBaUIsRUFDbEIsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxNQUFNLE1BQU0sa0JBQWtCLENBQUM7QUFDdEMsT0FBTyxFQUFFLGVBQWUsRUFBRSxhQUFhLEVBQUUsUUFBUSxFQUFFLEtBQUssRUFBYyxFQUFFLEVBQWdCLE1BQU0sTUFBTSxDQUFDO0FBQ3JHLE9BQU8sRUFBRSxNQUFNLEVBQUUsR0FBRyxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsSUFBSSxFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzlFLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLHVEQUF1RCxDQUFDO0FBRTdGLE9BQU8sRUFDTCxnQkFBZ0IsRUFDaEIsY0FBYyxFQUNkLDBCQUEwQixFQUMxQixjQUFjLEVBQ2QsbUJBQW1CLEVBQ25CLHlCQUF5QixFQUN6QixjQUFjLEVBQ2Ys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InNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE1lZGlhTWF0Y2hlciB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9sYXlvdXQnO1xuaW1wb3J0IHtcbiAgQWZ0ZXJWaWV3SW5pdCxcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIENoYW5nZURldGVjdG9yUmVmLFxuICBDb21wb25lbnQsXG4gIEV2ZW50RW1pdHRlcixcbiAgSW5wdXQsXG4gIE9uQ2hhbmdlcyxcbiAgT25EZXN0cm95LFxuICBPbkluaXQsXG4gIE91dHB1dCxcbiAgUXVlcnlMaXN0LFxuICBTaW1wbGVDaGFuZ2VzLFxuICBWaWV3Q2hpbGRyZW4sXG4gIFZpZXdFbmNhcHN1bGF0aW9uXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHJlbW92ZSBmcm9tICdsb2Rhc2gtZXMvcmVtb3ZlJztcbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCwgY29tYmluZUxhdGVzdCwgZm9ya0pvaW4sIG1lcmdlLCBPYnNlcnZhYmxlLCBvZiwgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBmaWx0ZXIsIG1hcCwgc2tpcFdoaWxlLCBzd2l0Y2hNYXAsIHRha2UsIHRhcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IEV2ZW50VHJhY2VyQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vLi4vX2NvbXBvbmVudHMvYWJzdHJhY3RzL2V2ZW50LXRyYWNlci5jb21wb25lbnQnO1xuaW1wb3J0IHsgQmFza2V0LCBCYXNrZXRFbnRyeSwgQmFza2V0UHJldmlld0xpbmUsIEluZ3JlZGllbnQgfSBmcm9tICcuLi8uLi8uLi9fbW9kZWxzJztcbmltcG9ydCB7XG4gIEFuYWx5dGljc1NlcnZpY2UsXG4gIEJhc2tldHNTZXJ2aWNlLFxuICBCYXNrZXRzU3luY2hyb25pemVyU2VydmljZSxcbiAgQ29udGV4dFNlcnZpY2UsXG4gIFBvaW50T2ZTYWxlc1NlcnZpY2UsXG4gIFByb2R1Y3RSZXBsYWNlbWVudFNlcnZpY2UsXG4gIFJlY2lwZXNTZXJ2aWNlXG59IGZyb20gJy4uLy4uLy4uL19zZXJ2aWNlcyc7XG5pbXBvcnQgeyBCYXNrZXRTdGF0cyB9IGZyb20gJy4uLy4uLy4uL190eXBlcy9iYXNrZXQtc3RhdHMnO1xuaW1wb3J0IHsgSWNvbiB9IGZyb20gJy4uLy4uLy4uL190eXBlcy9pY29uLmVudW0nO1xuaW1wb3J0IHsgQmFza2V0UHJldmlld0xpbmVDb21wb25lbnQgfSBmcm9tICcuLi9iYXNrZXQtcHJldmlldy1saW5lL2Jhc2tldC1wcmV2aWV3LWxpbmUuY29tcG9uZW50JztcbmltcG9ydCB7IEJhc2tldFByZXZpZXdQcm9kdWN0Q29tcG9uZW50IH0gZnJvbSAnLi4vYmFza2V0LXByZXZpZXctcHJvZHVjdC9iYXNrZXQtcHJldmlldy1wcm9kdWN0LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBSZW1vdmVSZWNpcGVBY3Rpb24gfSBmcm9tICcuLi8uLi8uLi9fbW9kZWxzL2Jhc2tldC1hY3Rpb25zL3JlbW92ZS1yZWNpcGUtYWN0aW9uJztcbmltcG9ydCB7IFVwZGF0ZVJlY2lwZUZyb21HdWVzdEFjdGlvbiB9IGZyb20gJy4uLy4uLy4uL19tb2RlbHMvYmFza2V0LWFjdGlvbnMvdXBkYXRlLXJlY2lwZS1mcm9tLWd1ZXN0LWFjdGlvbic7XG5pbXBvcnQgeyBkZWVwQ2xvbmVXaXRoQ2xhc3MgfSBmcm9tICcuLi8uLi8uLi9fdXRpbHMvbWV0aG9kcy9kZWVwQ2xvbmUnO1xuXG5leHBvcnQgZW51bSBCYXNrZXRUYWIge1xuICBSRUNJUEVTID0gMCxcbiAgUFJPRFVDVFMgPSAxXG59XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ25nLW1pYW0tYmFza2V0LXByZXZpZXctYmxvY2snLFxuICB0ZW1wbGF0ZVVybDogJy4vYmFza2V0LXByZXZpZXctYmxvY2suY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9iYXNrZXQtcHJldmlldy1ibG9jay5jb21wb25lbnQuc2NzcyddLFxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaFxufSlcblxuZXhwb3J0IGNsYXNzIEJhc2tldFByZXZpZXdCbG9ja0NvbXBvbmVudCBleHRlbmRzIEV2ZW50VHJhY2VyQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3ksIE9uQ2hhbmdlcywgQWZ0ZXJWaWV3SW5pdCB7XG4gIEBJbnB1dCgpIHJlY2lwZUlkOiBzdHJpbmc7XG4gIEBJbnB1dCgpIHNob3dOb3RpY2UgPSBmYWxzZTtcbiAgQElucHV0KCkgcmVjaXBlc0Fsd2F5c0V4cGFuZGVkID0gZmFsc2U7XG4gIEBJbnB1dCgpIGl0ZW1zQWx3YXlzRXhwYW5kZWQgPSBmYWxzZTtcbiAgQElucHV0KCkgZGlzcGxheUl0ZW1zVW5pdGFyeVByaWNlID0gZmFsc2U7XG4gIEBJbnB1dCgpIGlzU3RvcmVMb2NhdG9yRGlzcGxheWVkID0gZmFsc2U7XG4gIEBJbnB1dCgpIHJlY2lwZXNJZHMgPSBbXTtcbiAgQElucHV0KCkgbGVnYWN5TW9kZSA9IGZhbHNlO1xuICBAT3V0cHV0KCkgc3RhdHNVcGRhdGVkID0gbmV3IEV2ZW50RW1pdHRlcjxCYXNrZXRTdGF0cz4oKTtcbiAgQE91dHB1dCgpIGd1ZXN0Q291bnRDaGFuZ2VkID0gbmV3IEV2ZW50RW1pdHRlcjxudW1iZXI+KCk7XG4gIEBPdXRwdXQoKSBsb2FkaW5nID0gbmV3IEJlaGF2aW9yU3ViamVjdCh0cnVlKTtcbiAgQE91dHB1dCgpIHRvdGFsUHJpY2VDaGFuZ2VkID0gbmV3IEV2ZW50RW1pdHRlcjxudW1iZXI+KCk7XG5cbiAgQFZpZXdDaGlsZHJlbihCYXNrZXRQcmV2aWV3TGluZUNvbXBvbmVudCkgbGluZUNvbXBvbmVudHM6IEJhc2tldFByZXZpZXdMaW5lQ29tcG9uZW50W107XG4gIEBWaWV3Q2hpbGRyZW4oQmFza2V0UHJldmlld0xpbmVDb21wb25lbnQpIGJhc2tldFByZXZpZXdSZWNpcGVSb3dzOiBRdWVyeUxpc3Q8QmFza2V0UHJldmlld0xpbmVDb21wb25lbnQ+O1xuICBAVmlld0NoaWxkcmVuKEJhc2tldFByZXZpZXdQcm9kdWN0Q29tcG9uZW50KSBwcm9kdWN0c0VsZW1lbnRzOiBRdWVyeUxpc3Q8QmFza2V0UHJldmlld1Byb2R1Y3RDb21wb25lbnQ+O1xuXG4gIGxpbmVzOiBCYXNrZXRQcmV2aWV3TGluZVtdO1xuICBwcm9kdWN0c0xpc3Q6IEJhc2tldEVudHJ5W107XG4gIGNvcnNJc3N1ZXMgPSBmYWxzZTtcbiAgaWNvbiA9IEljb247XG4gIGlzTW9iaWxlID0gZmFsc2U7XG4gIGFjdGl2ZUJhc2tldFRhYjogQmFza2V0VGFiID0gQmFza2V0VGFiLlJFQ0lQRVM7XG4gIGJhc2tldFRhYiA9IEJhc2tldFRhYjtcbiAgc2hvdWxkU2Nyb2xsVG9MYXN0UHJvZHVjdCA9IGZhbHNlO1xuXG4gIGJsb2NrU3RhdGVzOiBCZWhhdmlvclN1YmplY3Q8eyBjdXJyZW50T3BlbkxpbmU6IHN0cmluZzsgb3ZlcmxheU9wZW46IGJvb2xlYW47IGxpbmVDb21wb25lbnQ6IEJhc2tldFByZXZpZXdMaW5lQ29tcG9uZW50IH0+O1xuICBwcml2YXRlIHN1YnNjcmlwdGlvbnMgPSBbXTtcbiAgcHJpdmF0ZSBsaW5lc0hhc2hlcyA9IHt9O1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHB1YmxpYyBjZHI6IENoYW5nZURldGVjdG9yUmVmLFxuICAgIHB1YmxpYyBwb3NTZXJ2aWNlOiBQb2ludE9mU2FsZXNTZXJ2aWNlLFxuICAgIHB1YmxpYyBjb250ZXh0U2VydmljZTogQ29udGV4dFNlcnZpY2UsXG4gICAgcHVibGljIGJhc2tldHNTZXJ2aWNlOiBCYXNrZXRzU2VydmljZSxcbiAgICBwcml2YXRlIG1lZGlhTWF0Y2hlcjogTWVkaWFNYXRjaGVyLFxuICAgIGFuYWx5dGljc1NlcnZpY2U6IEFuYWx5dGljc1NlcnZpY2UsXG4gICAgcHVibGljIHByb2R1Y3RSZXBsYWNlbWVudFNlcnZpY2U6IFByb2R1Y3RSZXBsYWNlbWVudFNlcnZpY2UsXG4gICAgcHJpdmF0ZSBiYXNrZXRTeW5jaHJvU2VydmljZTogQmFza2V0c1N5bmNocm9uaXplclNlcnZpY2UsXG4gICAgcHJpdmF0ZSByZWNpcGVTZXJ2aWNlOiBSZWNpcGVzU2VydmljZVxuICApIHtcbiAgICBzdXBlcihhbmFseXRpY3NTZXJ2aWNlKTtcbiAgICB0aGlzLmlzTW9iaWxlID0gdGhpcy5tZWRpYU1hdGNoZXIubWF0Y2hNZWRpYSgnKG1heC13aWR0aDogMTAyM3B4KScpLm1hdGNoZXM7XG4gIH1cblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLmJsb2NrU3RhdGVzID0gbmV3IEJlaGF2aW9yU3ViamVjdCh7IGN1cnJlbnRPcGVuTGluZTogbnVsbCwgb3ZlcmxheU9wZW46IGZhbHNlLCBsaW5lQ29tcG9uZW50OiBudWxsIH0pO1xuICAgIHRoaXMubG9hZFByZXZpZXdBbmRQcm9kdWN0c1doZW5CYXNrZXRJc1JlYWR5KCk7XG4gICAgdGhpcy5zdWJzY3JpcHRpb25zLnB1c2goXG4gICAgICB0aGlzLmNvbnRleHRTZXJ2aWNlLmdldENPUlNJc3N1ZXNTdGF0ZSgpLnN1YnNjcmliZShyZXMgPT4ge1xuICAgICAgICB0aGlzLmNvcnNJc3N1ZXMgPSByZXM7XG4gICAgICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcbiAgICAgIH0pLFxuICAgICAgdGhpcy5ibG9ja1N0YXRlcy5zdWJzY3JpYmUoKCkgPT4gdGhpcy5oYW5kbGVibG9ja1N0YXRlKCkpLFxuICAgICAgdGhpcy5iYXNrZXRzU2VydmljZS5iYXNrZXRTdGF0cyQucGlwZShcbiAgICAgICAgc2tpcFdoaWxlKHN0YXRzID0+ICFzdGF0cyksXG4gICAgICAgIHRhcChzdGF0cyA9PiB0aGlzLnN0YXRzVXBkYXRlZC5lbWl0KHN0YXRzKSlcbiAgICAgICkuc3Vic2NyaWJlKCksXG4gICAgICB0aGlzLnBvc1NlcnZpY2UuaXNQb3NWYWxpZCgpLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcbiAgICAgIH0pLFxuICAgICAgdGhpcy5wcm9kdWN0UmVwbGFjZW1lbnRTZXJ2aWNlLnByb2R1Y3RBZGRlZCQuc3Vic2NyaWJlKChhZGRlZDogYm9vbGVhbikgPT4ge1xuICAgICAgICBpZiAoYWRkZWQpIHtcbiAgICAgICAgICB0aGlzLmFjdGl2ZUJhc2tldFRhYiA9IEJhc2tldFRhYi5QUk9EVUNUUztcbiAgICAgICAgICB0aGlzLnByb2R1Y3RSZXBsYWNlbWVudFNlcnZpY2UucHJvZHVjdEFkZGVkJC5uZXh0KGZhbHNlKTtcbiAgICAgICAgICB0aGlzLnNob3VsZFNjcm9sbFRvTGFzdFByb2R1Y3QgPSB0cnVlO1xuICAgICAgICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcbiAgICAgICAgfVxuICAgICAgfSlcbiAgICApO1xuICAgIGlmICh0aGlzLnByb2R1Y3RSZXBsYWNlbWVudFNlcnZpY2Uuc2Nyb2xsQmFja1RvQmFza2V0RW50cnlJZCkge1xuICAgICAgdGhpcy5hY3RpdmVCYXNrZXRUYWIgPSBCYXNrZXRUYWIuUFJPRFVDVFM7XG4gICAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgfVxuICB9XG5cbiAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xuICAgIGlmIChPYmplY3Qua2V5cyhjaGFuZ2VzKS5pbmNsdWRlcygncmVjaXBlSWQnKSkge1xuICAgICAgdGhpcy5sb2FkaW5nLm5leHQodHJ1ZSk7XG4gICAgfVxuICAgIGlmIChcbiAgICAgIGNoYW5nZXMuaXNTdG9yZUxvY2F0b3JEaXNwbGF5ZWQgJiZcbiAgICAgIGNoYW5nZXMuaXNTdG9yZUxvY2F0b3JEaXNwbGF5ZWQucHJldmlvdXNWYWx1ZSAhPT0gY2hhbmdlcy5pc1N0b3JlTG9jYXRvckRpc3BsYXllZC5jdXJyZW50VmFsdWUgJiZcbiAgICAgICF0aGlzLmlzU3RvcmVMb2NhdG9yRGlzcGxheWVkICYmIHRoaXMucmVjaXBlU2VydmljZS5kaXNwbGF5ZWRSZWNpcGUkLnZhbHVlPy5wcmV2aWV3TW9kZVxuICAgICkge1xuICAgICAgdGhpcy5wYWdldmlldygpO1xuICAgIH1cbiAgfVxuXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5iYXNrZXRQcmV2aWV3UmVjaXBlUm93cyAmJiB0aGlzLnJlY2lwZUlkKSB7XG4gICAgICB0aGlzLmZpbmRBbmRGb2N1c0N1cnJlbnRSZWNpcGUodGhpcy5iYXNrZXRQcmV2aWV3UmVjaXBlUm93cy50b0FycmF5KCkpO1xuICAgIH1cbiAgICB0aGlzLnN1YnNjcmlwdGlvbnMucHVzaChcbiAgICAgIHRoaXMuYmFza2V0UHJldmlld1JlY2lwZVJvd3MuY2hhbmdlcy5zdWJzY3JpYmUoKGJwcnJzOiBCYXNrZXRQcmV2aWV3TGluZUNvbXBvbmVudFtdKSA9PiB7XG4gICAgICAgIHRoaXMuZmluZEFuZEZvY3VzQ3VycmVudFJlY2lwZShicHJycyk7XG4gICAgICB9KVxuICAgICk7XG4gIH1cblxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLnN1YnNjcmlwdGlvbnMuZm9yRWFjaCgoc3ViOiBTdWJzY3JpcHRpb24pID0+IHN1Yi51bnN1YnNjcmliZSgpKTtcbiAgfVxuXG4gIGN1cnJlbnRQYXRoKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMubGVnYWN5TW9kZSA/ICdiYXNrZXQtcHJldmlldycgOiBgYmFza2V0LyR7dGhpcy5hY3RpdmVCYXNrZXRUYWIgPT09IEJhc2tldFRhYi5SRUNJUEVTID8gJ3JlY2lwZXMnIDogJ3Byb2R1Y3RzJ31gO1xuICB9XG5cbiAgbG9hZFByZXZpZXdBbmRQcm9kdWN0c1doZW5CYXNrZXRJc1JlYWR5KCk6IHZvaWQge1xuICAgIHRoaXMuc3Vic2NyaXB0aW9ucy5wdXNoKFxuICAgICAgLy8gSWYgcmVjaXBlcyBhcmUgYmVpbmcgYWRkZWQgd2Ugd2FpdCBmb3IgdGhlbSBiZWZvcmUgbG9hZGluZyB0aGUgcHJldmlld1xuICAgICAgdGhpcy5iYXNrZXRzU2VydmljZS5yZWNpcGVzV2lsbEJlQWRkZWQoKS5waXBlKFxuICAgICAgICBza2lwV2hpbGUoYWRkZWQgPT4gYWRkZWQpLFxuICAgICAgICB0YWtlKDEpXG4gICAgICApLnBpcGUoXG4gICAgICAgIHN3aXRjaE1hcCgoKSA9PiB0aGlzLmJhc2tldHNTZXJ2aWNlLndhaXRGb3JCYXNrZXQpLFxuICAgICAgICBzd2l0Y2hNYXAoYmFza2V0ID0+IHRoaXMubG9hZFByZXZpZXcoYmFza2V0KSksXG4gICAgICAgIHN3aXRjaE1hcCgoKSA9PiB0aGlzLmxvYWRQcm9kdWN0cygpKVxuICAgICAgKS5zdWJzY3JpYmUoKVxuICAgICk7XG4gIH1cblxuICBsb2FkUHJldmlldyhiYXNrZXQ6IEJhc2tldCk6IE9ic2VydmFibGU8QmFza2V0UHJldmlld0xpbmVbXT4ge1xuICAgIHJldHVybiB0aGlzLmJhc2tldHNTZXJ2aWNlLmJhc2tldFByZXZpZXckLnBpcGUoXG4gICAgICBza2lwV2hpbGUocHJldmlldyA9PiAhcHJldmlldyB8fCBwcmV2aWV3Lmxlbmd0aCAhPT0gYmFza2V0LnJlY2lwZUluZm9zLmxlbmd0aCksXG4gICAgICBzd2l0Y2hNYXAocHJldmlldyA9PiB7XG4gICAgICAgIHRoaXMubGluZXMgPSB0aGlzLnJlY2lwZXNJZHMubGVuZ3RoID09PSAwID8gcHJldmlldyA6IHByZXZpZXcuZmlsdGVyKGxpbmUgPT4gdGhpcy5yZWNpcGVzSWRzLmluY2x1ZGVzKGxpbmUuaWQpKTtcbiAgICAgICAgY29uc3QgdG90YWxQcmljZSA9IHRoaXMubGluZXMucmVkdWNlKCh0b3RhbCwgbGluZSkgPT4gdG90YWwgKyArbGluZS5wcmljZSwgMCk7XG4gICAgICAgIHRoaXMudG90YWxQcmljZUNoYW5nZWQuZW1pdCh0b3RhbFByaWNlKTtcbiAgICAgICAgdGhpcy5sb2FkaW5nLm5leHQoZmFsc2UpO1xuICAgICAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgICAgIHJldHVybiBvZihwcmV2aWV3KTtcbiAgICAgIH0pXG4gICAgKTtcbiAgfVxuXG4gIGxvYWRQcm9kdWN0cygpOiBPYnNlcnZhYmxlPGFueVtdPiB7XG4gICAgcmV0dXJuIHRoaXMuYmFza2V0c1NlcnZpY2UuYWN0aXZlQmFza2V0RW50cmllcygpLnBpcGUoXG4gICAgICB0YXAoKGVudHJpZXM6IEJhc2tldEVudHJ5W10pID0+IHtcbiAgICAgICAgdGhpcy5wcm9kdWN0c0xpc3QgPSBlbnRyaWVzO1xuICAgICAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgICAgIGlmICh0aGlzLnNob3VsZFNjcm9sbFRvTGFzdFByb2R1Y3QpIHtcbiAgICAgICAgICB0aGlzLnNjcm9sbFRvTGFzdFByb2R1Y3QoKTtcbiAgICAgICAgfVxuICAgICAgfSlcbiAgICApO1xuICB9XG5cbiAgcmVtb3ZlUmVjaXBlKGxpbmU6IEJhc2tldFByZXZpZXdMaW5lKTogdm9pZCB7XG4gICAgdGhpcy5zdWJzY3JpcHRpb25zLnB1c2goXG4gICAgICB0aGlzLnJlY2lwZVNlcnZpY2UuZ2V0SW5ncmVkaWVudHNCeVJlY2lwZUlkKGxpbmUuaWQpLnBpcGUoXG4gICAgICAgIHN3aXRjaE1hcChyZWNpcGUgPT4ge1xuICAgICAgICAgIGNvbnN0IHJlcXVlc3RzID0gcmVjaXBlLmluZ3JlZGllbnRzLm1hcChpbmcgPT5cbiAgICAgICAgICAgIHRoaXMuYmFza2V0c1NlcnZpY2UuYmFza2V0RW50cnlGcm9tSW5ncmVkaWVudChpbmcuaWQsIDApXG4gICAgICAgICAgKTtcbiAgICAgICAgICByZXR1cm4gZm9ya0pvaW4ocmVxdWVzdHMpLnBpcGUoXG4gICAgICAgICAgICBtYXAoKGJhc2tldEVudHJpZXM6IEJhc2tldEVudHJ5W10pID0+ICh7XG4gICAgICAgICAgICAgIHJlY2lwZSxcbiAgICAgICAgICAgICAgYmFza2V0RW50cmllc1xuICAgICAgICAgICAgfSkpXG4gICAgICAgICAgKTtcbiAgICAgICAgfSlcbiAgICAgICkuc3Vic2NyaWJlKCh7IHJlY2lwZSwgYmFza2V0RW50cmllcyB9KSA9PiB7XG4gICAgICAgIGNvbnN0IGNsb25lZEVudHJpZXMgPSBkZWVwQ2xvbmVXaXRoQ2xhc3MoYmFza2V0RW50cmllcykgYXMgQmFza2V0RW50cnlbXTtcbiAgICAgICAgY29uc3QgbWF0Y2hlZFByb2R1Y3RzID0gY2xvbmVkRW50cmllcy5tYXAoKGJhc2tldEVudHJ5LCBpbmRleCkgPT4gKHtcbiAgICAgICAgICBiYXNrZXRFbnRyeSxcbiAgICAgICAgICBpbmdyZWRpZW50OiByZWNpcGUuaW5ncmVkaWVudHNbaW5kZXhdXG4gICAgICAgIH0pKTtcbiAgICAgICAgY29uc3QgZmlsdGVyZWRQcm9kdWN0cyA9IG1hdGNoZWRQcm9kdWN0cy5maWx0ZXIocHJvZHVjdCA9PiBwcm9kdWN0LmJhc2tldEVudHJ5LmlkICE9PSAnLTEnKTtcbiAgICAgICAgY29uc3QgcmVjaXBlUmVtb3ZlQWN0aW9ucyA9IGZpbHRlcmVkUHJvZHVjdHMuZmlsdGVyKGUgPT4gZS5iYXNrZXRFbnRyeS5zdGF0dXMgPT09ICdhY3RpdmUnICYmIGUuYmFza2V0RW50cnkucXVhbnRpdHkgPiAwKVxuICAgICAgICAgIC5tYXAocHJvZHVjdCA9PiBuZXcgUmVtb3ZlUmVjaXBlQWN0aW9uKFxuICAgICAgICAgICAgcHJvZHVjdC5iYXNrZXRFbnRyeSxcbiAgICAgICAgICAgIHt9LFxuICAgICAgICAgICAgdGhpcy5iYXNrZXRzU2VydmljZVxuICAgICAgICAgICkpO1xuICAgICAgICBpZiAocmVjaXBlUmVtb3ZlQWN0aW9ucy5sZW5ndGggIT09IDApIHtcbiAgICAgICAgICByZWNpcGVSZW1vdmVBY3Rpb25zW3JlY2lwZVJlbW92ZUFjdGlvbnMubGVuZ3RoIC0gMV0ub25TdWNjZXNzLnBpcGUodGFrZSgxKSkuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgICAgIHRoaXMucmVtb3ZlUmVjaXBlRnJvbUJhc2tldChsaW5lLCBmaWx0ZXJlZFByb2R1Y3RzKTtcbiAgICAgICAgICB9KTtcbiAgICAgICAgICB0aGlzLmJhc2tldFN5bmNocm9TZXJ2aWNlLmFkZFRvQWN0aW9uTGlzdChyZWNpcGVSZW1vdmVBY3Rpb25zKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICB0aGlzLnJlbW92ZVJlY2lwZUZyb21CYXNrZXQobGluZSwgZmlsdGVyZWRQcm9kdWN0cyk7XG4gICAgICAgIH1cbiAgICAgIH0pXG4gICAgKTtcbiAgfVxuXG4gIHByaXZhdGUgcmVtb3ZlUmVjaXBlRnJvbUJhc2tldChsaW5lOiBCYXNrZXRQcmV2aWV3TGluZSwgcHJvZHVjdHM6IHsgYmFza2V0RW50cnk6IEJhc2tldEVudHJ5LCBpbmdyZWRpZW50OiBJbmdyZWRpZW50IH1bXSk6IHZvaWQge1xuICAgIHRoaXMuYmFza2V0c1NlcnZpY2UucmVtb3ZlUHJvZHVjdEZyb21SZWNpcGUocHJvZHVjdHMsIHRoaXMuZXZlbnRUcmFjZSk7XG4gICAgdGhpcy5zdWJzY3JpcHRpb25zLnB1c2goXG4gICAgICBjb21iaW5lTGF0ZXN0KFtcbiAgICAgICAgdGhpcy5iYXNrZXRzU2VydmljZS5lbnRyaWVzV2lsbEJlUmVtb3ZlZEZyb21SZWNpcGUoKSxcbiAgICAgICAgdGhpcy5iYXNrZXRzU2VydmljZS5lbnRyaWVzQXJlQmVpbmdSZW1vdmVkRnJvbVJlY2lwZSgpXVxuICAgICAgKS5waXBlKFxuICAgICAgICBmaWx0ZXIoaW5Qcm9jZXNzID0+ICFpblByb2Nlc3NbMF0gJiYgIWluUHJvY2Vzc1sxXSksXG4gICAgICAgIHRha2UoMSlcbiAgICAgICkuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgdGhpcy5iYXNrZXRzU2VydmljZS5yZW1vdmVSZWNpcGVzRnJvbUJhc2tldChbbGluZS5pZF0sIHRoaXMuZXZlbnRUcmFjZSwgdHJ1ZSk7XG4gICAgICAgIHRoaXMuYmFza2V0c1NlcnZpY2UucmVjaXBlV2lsbEJlUmVtb3ZlZChsaW5lLmlkKS5waXBlKHNraXBXaGlsZSh3aWxsQmVSZW1vdmVkID0+IHdpbGxCZVJlbW92ZWQpLCB0YWtlKDEpKS5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICAgIGNvbnN0IHJlY2lwZUluZGV4ID0gdGhpcy5yZWNpcGVzSWRzLmZpbmRJbmRleChyZWNpcGVJZCA9PiByZWNpcGVJZCA9PT0gbGluZS5pZCk7XG4gICAgICAgICAgaWYgKHJlY2lwZUluZGV4ID49IDApIHtcbiAgICAgICAgICAgIHRoaXMucmVjaXBlc0lkcy5zcGxpY2UocmVjaXBlSW5kZXgsIDEpO1xuICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICB9KVxuICAgICk7XG4gIH1cblxuICB1cGRhdGVSZWNpcGUobGluZTogQmFza2V0UHJldmlld0xpbmUpOiB2b2lkIHtcbiAgICB0aGlzLmJhc2tldHNTZXJ2aWNlLnVwZGF0ZVJlY2lwZXNJbkJhc2tldChbbGluZS5pZF0sIGxpbmUuY291bnQsIHRoaXMuZXZlbnRUcmFjZSwgdHJ1ZSk7XG5cbiAgICB0aGlzLnN1YnNjcmlwdGlvbnMucHVzaChcbiAgICAgIHRoaXMucmVjaXBlU2VydmljZS5nZXRJbmdyZWRpZW50c0J5UmVjaXBlSWQobGluZS5pZCkucGlwZShcbiAgICAgICAgc3dpdGNoTWFwKHJlY2lwZSA9PiB7XG4gICAgICAgICAgY29uc3QgcmVxdWVzdHMgPSByZWNpcGUuaW5ncmVkaWVudHMubWFwKGluZyA9PlxuICAgICAgICAgICAgdGhpcy5iYXNrZXRzU2VydmljZS5iYXNrZXRFbnRyeUZyb21JbmdyZWRpZW50KGluZy5pZCwgbGluZS5jb3VudClcbiAgICAgICAgICApO1xuICAgICAgICAgIHJldHVybiBmb3JrSm9pbihyZXF1ZXN0cyk7XG4gICAgICAgIH0pXG4gICAgICApLnN1YnNjcmliZSgoYmFza2V0RW50cmllczogQmFza2V0RW50cnlbXSkgPT4ge1xuICAgICAgICBjb25zdCB1cGRhdGVBY3Rpb25zID0gYmFza2V0RW50cmllc1xuICAgICAgICAgIC5maWx0ZXIoYmFza2V0RW50cnkgPT4gYmFza2V0RW50cnkuaWQgIT09ICctMScgJiYgYmFza2V0RW50cnkucmVjaXBlc0lkcy5pbmNsdWRlcygrbGluZS5pZCkpXG4gICAgICAgICAgLm1hcChiYXNrZXRFbnRyeSA9PiB7XG4gICAgICAgICAgICBjb25zdCBuZXdCYXNrZXRFbnRyeTogQmFza2V0RW50cnkgPSBkZWVwQ2xvbmVXaXRoQ2xhc3MoYmFza2V0RW50cnkpOyAvLyBDbG9uZSBmb3IgaW1tdXRhYmlsaXR5XG4gICAgICAgICAgICByZXR1cm4gbmV3IFVwZGF0ZVJlY2lwZUZyb21HdWVzdEFjdGlvbihcbiAgICAgICAgICAgICAgbmV3QmFza2V0RW50cnksXG4gICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBldmVudFRyYWNlOiB0aGlzLmV2ZW50VHJhY2UsXG4gICAgICAgICAgICAgICAgcmVjaXBlSWQ6IGxpbmUuaWRcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgdGhpcy5iYXNrZXRzU2VydmljZVxuICAgICAgICAgICAgKTtcbiAgICAgICAgICB9KTtcbiAgICAgICAgdGhpcy5iYXNrZXRTeW5jaHJvU2VydmljZS5hZGRUb0FjdGlvbkxpc3QodXBkYXRlQWN0aW9ucyk7XG4gICAgICAgIG1lcmdlKC4uLnVwZGF0ZUFjdGlvbnMubWFwKGFjdGlvbiA9PiBhY3Rpb24ub25UaW1lb3V0KSwgLi4udXBkYXRlQWN0aW9ucy5tYXAoYWN0aW9uID0+IGFjdGlvbi5vbkVycm9yKSlcbiAgICAgICAgICAucGlwZSh0YWtlKDEpKVxuICAgICAgICAgIC5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICAgICAgdGhpcy5sb2FkUHJldmlld0FuZFByb2R1Y3RzV2hlbkJhc2tldElzUmVhZHkoKTtcbiAgICAgICAgICB9KTtcbiAgICAgICAgdGhpcy5ndWVzdENvdW50Q2hhbmdlZC5lbWl0KGxpbmUuY291bnQpO1xuICAgICAgfSlcbiAgICApO1xuICB9XG5cbiAgY2xvc2VPdmVybGF5KCk6IHZvaWQge1xuICAgIGlmICh0aGlzLmJsb2NrU3RhdGVzLmdldFZhbHVlKCkgJiYgdGhpcy5ibG9ja1N0YXRlcy5nZXRWYWx1ZSgpLmxpbmVDb21wb25lbnQpIHtcbiAgICAgIHRoaXMuYmxvY2tTdGF0ZXMudmFsdWUubGluZUNvbXBvbmVudC5wcm9kdWN0Q2hvc2VuKCk7XG4gICAgfVxuICB9XG5cbiAgaGFuZGxlYmxvY2tTdGF0ZSgpOiB2b2lkIHtcbiAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCk7XG4gIH1cblxuICBzY3JvbGx0b3AoZWxlbWVudDogRWxlbWVudCk6IHZvaWQge1xuICAgIC8vIHNjcm9sbCB0b3AgYmFzZSBvbiBtb2RhbCBjb250YWluZXJcbiAgICBpZiAodGhpcy5pc01vYmlsZSkge1xuICAgICAgY29uc3QgbW9kYWxDb250YWluZXIgPSBkb2N1bWVudC5nZXRFbGVtZW50c0J5Q2xhc3NOYW1lKCdtaWFtLXdyYXBwZXItcHJldmlldycpWzBdO1xuICAgICAgaWYgKG1vZGFsQ29udGFpbmVyKSB7XG4gICAgICAgIG1vZGFsQ29udGFpbmVyLnNjcm9sbFRvcCA9IDA7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cbiAgICAgIGVsZW1lbnQuc2Nyb2xsSW50b1ZpZXcoKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICAvLyBzY3JvbGwgYmFzZSBvbiBnbG9iYWwgd2luZG93XG4gICAgZWxlbWVudC5zY3JvbGxJbnRvVmlldygpO1xuICB9XG5cbiAgc2Nyb2xsVG9MYXN0UHJvZHVjdCgpOiB2b2lkIHtcbiAgICB0aGlzLnByb2R1Y3RzRWxlbWVudHMubGFzdC5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQuc2Nyb2xsSW50b1ZpZXcoeyBibG9jazogJ2VuZCcsIGJlaGF2aW9yOiAnc21vb3RoJyB9KTtcbiAgICB0aGlzLnNob3VsZFNjcm9sbFRvTGFzdFByb2R1Y3QgPSBmYWxzZTtcbiAgfVxuXG4gIHRyYWNrQnlCUExpbmVGbihpbmRleDogbnVtYmVyLCBsaW5lOiBCYXNrZXRQcmV2aWV3TGluZSk6IHN0cmluZyB7XG4gICAgcmV0dXJuIGxpbmUuaWQ7XG4gIH1cblxuICB0cmFja0J5UHJvZHVjdEZuKGluZGV4OiBudW1iZXIsIHByb2R1Y3Q6IEJhc2tldEVudHJ5KTogc3RyaW5nIHtcbiAgICByZXR1cm4gcHJvZHVjdC5pZDtcbiAgfVxuXG4gIHByaXZhdGUgcmVmcmVzaFByZXZpZXcobmV3TGluZXM6IEJhc2tldFByZXZpZXdMaW5lW10pOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMubGluZXMpIHtcbiAgICAgIC8vIEZpcnN0IGxvYWRcbiAgICAgIHRoaXMubGluZXMgPSBuZXdMaW5lcztcbiAgICB9IGVsc2Uge1xuICAgICAgY29uc3QgbmV3TGluZXNJZHMgPSBbXTtcbiAgICAgIG5ld0xpbmVzLmZvckVhY2goKGxpbmU6IEJhc2tldFByZXZpZXdMaW5lKSA9PiB7XG4gICAgICAgIG5ld0xpbmVzSWRzLnB1c2gobGluZS5pZCk7XG4gICAgICAgIGNvbnN0IGV4aXN0aW5nTGluZSA9IHRoaXMubGluZXMuZmluZChsID0+IGwuaWQgPT09IGxpbmUuaWQpO1xuICAgICAgICBpZiAoZXhpc3RpbmdMaW5lKSB7XG4gICAgICAgICAgLy8gVXBkYXRlIGV4aXN0aW5nIG9iamVjdCB3aXRoIGl0cyBuZXcgdmFsdWVzXG4gICAgICAgICAgT2JqZWN0LmFzc2lnbihleGlzdGluZ0xpbmUsIGxpbmUpO1xuXG4gICAgICAgICAgLy8gTWFyayBiYXNrZXQgbGluZXMgY29tcG9uZW50IGZvciBjaGVja1xuICAgICAgICAgIGNvbnN0IGV4aXN0aW5nQ29tcCA9IHRoaXMubGluZUNvbXBvbmVudHMuZmluZChjb21wID0+IGNvbXAubGluZS5pZCA9PT0gbGluZS5pZCk7XG4gICAgICAgICAgZXhpc3RpbmdDb21wPy5jZHIubWFya0ZvckNoZWNrKCk7XG5cbiAgICAgICAgICAvLyBGb3JjZSByZWxvYWQgdGhlIGJhc2tldCBlbnRyaWVzIGlmIHRoZWlyIHF1YW50aXRpZXMgb3Igc2VsZWN0ZWQgaXRlbXMgaGF2ZSBjaGFuZ2VkXG4gICAgICAgICAgY29uc3QgZW50cmllcyA9IGxpbmUuZW50cmllcy5mb3VuZC5zb3J0KGUgPT4gcGFyc2VJbnQoZS5pZCwgMTApKTtcbiAgICAgICAgICBjb25zdCBoYXNoID0gZW50cmllcy5tYXAoZSA9PiBlLmF0dHJpYnV0ZXNbJ3NlbGVjdGVkLWl0ZW0taWQnXSArICctJyArIGUuYXR0cmlidXRlcy5xdWFudGl0eSkuam9pbignLycpO1xuICAgICAgICAgIGlmIChoYXNoICE9PSB0aGlzLmxpbmVzSGFzaGVzW2xpbmUuaWRdICYmIGV4aXN0aW5nQ29tcD8uZW50cmllc0xpbmVzJC52YWx1ZSkge1xuICAgICAgICAgICAgZXhpc3RpbmdDb21wLmJ1aWxkRW50cmllc0xpbmVzKCk7XG4gICAgICAgICAgICB0aGlzLmxpbmVzSGFzaGVzW2xpbmUuaWRdID0gaGFzaDtcbiAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgLy8gUHVzaCB0aGUgbmV3IGxpbmUgdG8gdGhlIGJlZ2dpbmluZyBvZiB0aGUgYXJyYXlcbiAgICAgICAgICB0aGlzLmxpbmVzLnVuc2hpZnQobGluZSk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgICAgLy8gUmVtb3ZlIGRlbGV0ZWQgbGluZXNcbiAgICAgIHJlbW92ZSh0aGlzLmxpbmVzLCBsID0+ICFuZXdMaW5lc0lkcy5pbmNsdWRlcyhsLmlkKSk7XG4gICAgfVxuICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcbiAgfVxuXG4gIGhhbmRsZVJlcGxhY2VCdXR0b25DbGljayhwcm9kdWN0OiBCYXNrZXRFbnRyeSk6IHZvaWQge1xuICAgIHRoaXMucHJvZHVjdFJlcGxhY2VtZW50U2VydmljZS51cGRhdGVQcm9kdWN0VG9SZXBsYWNlKHByb2R1Y3QpO1xuICAgIHRoaXMucHJvZHVjdFJlcGxhY2VtZW50U2VydmljZS5jaGFuZ2VSZXBsYWNlTW9kYWxTdGF0ZSh0cnVlKTtcbiAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCk7XG4gIH1cblxuICBwcml2YXRlIGZpbmRBbmRGb2N1c0N1cnJlbnRSZWNpcGUocmVjaXBlUm93czogQmFza2V0UHJldmlld0xpbmVDb21wb25lbnRbXSk6IHZvaWQge1xuICAgIGNvbnN0IHJlY2lwZVJvd0VsZW1lbnQgPSByZWNpcGVSb3dzLmZpbmQoYnByciA9PiBicHJyLmxpbmUuaWQgPT09IHRoaXMucmVjaXBlSWQpO1xuICAgIGlmIChyZWNpcGVSb3dFbGVtZW50KSB7XG4gICAgICByZWNpcGVSb3dFbGVtZW50LmV4cGFuZGVkID0gdHJ1ZTtcbiAgICAgIHJlY2lwZVJvd0VsZW1lbnQuYnVpbGRFbnRyaWVzTGluZXMoKTtcbiAgICAgIHJlY2lwZVJvd0VsZW1lbnQuY2RyLmRldGVjdENoYW5nZXMoKTtcbiAgICAgIChyZWNpcGVSb3dFbGVtZW50LmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudCBhcyBFbGVtZW50KS5zY3JvbGxJbnRvVmlldygpO1xuICAgIH1cbiAgfVxufVxuIiwiPGRpdiAjcHJldmlld0Jsb2NrVG9wIGNsYXNzPVwibWlhbS1iYXNrZXQtcHJldmlldy1ibG9ja19fYW5jaG9yXCI+PC9kaXY+XG48ZGl2ICpuZ0lmPSchY29yc0lzc3VlcyBlbHNlIGNvcnMnIGNsYXNzPVwibWlhbS1iYXNrZXQtcHJldmlldy1ibG9ja1wiPlxuICA8bmctY29udGFpbmVyICpuZ0lmPVwiKHBvc1NlcnZpY2UuaXNQb3NWYWxpZCgpIHwgYXN5bmMpIGVsc2Ugbm9Qb3NcIj5cbiAgICA8ZGl2IGNsYXNzPVwibWlhbS1iYXNrZXQtcHJldmlldy1ibG9ja19faGVhZGVyXCI+XG4gICAgICA8ZGl2ICpuZ0lmPVwibGluZXM/Lmxlbmd0aCA+IDBcIlxuICAgICAgICBjbGFzcz1cIm1pYW0tYmFza2V0LXByZXZpZXctYmxvY2tfX3RpdGxlIG1pYW0tZHMtdGV4dFwiXG4gICAgICAgIFtuZ0NsYXNzXT1cImNvbnRleHRTZXJ2aWNlLm5vU3VwcGxpZXIgPyAnbWlhbS1iYXNrZXQtcHJldmlldy1ibG9ja19fdGl0bGUtbm8tc3VwcGxpZXIgd2VpZ2h0LXhsJyA6ICd3ZWlnaHQteHhsIHNpemUtbCdcIj5cbiAgICAgICAgPHNwYW4gY2xhc3M9XCJudW1iZXJcIj57e2xpbmVzLmxlbmd0aH19PC9zcGFuPlxuICAgICAgICA8c3BhbiBpMThuPnJlcGFzIGRhbnMgdm90cmUgcGFuaWVyPC9zcGFuPlxuICAgICAgPC9kaXY+XG4gICAgICA8bmctbWlhbS1zbGlkZXItdGFic1xuICAgICAgICAgICpuZ0lmPVwiY29udGV4dFNlcnZpY2Uubm9TdXBwbGllclwiXG4gICAgICAgICAgaTE4bi10YWJzXG4gICAgICAgICAgdGFicz1cIlJlY2V0dGVzLCBQcm9kdWl0c1wiXG4gICAgICAgICAgWyhzZWxlY3RlZFRhYkluZGV4KV09XCJhY3RpdmVCYXNrZXRUYWJcIlxuICAgICAgICAgIChzZWxlY3RlZFRhYkluZGV4Q2hhbmdlKT1cImNkci5kZXRlY3RDaGFuZ2VzKClcIj5cbiAgICAgIDwvbmctbWlhbS1zbGlkZXItdGFicz5cbiAgICA8L2Rpdj5cbiAgICA8ZGl2ICpuZ0lmPVwiYWN0aXZlQmFza2V0VGFiID09PSBiYXNrZXRUYWIuUkVDSVBFU1wiIGNsYXNzPVwibWlhbS1iYXNrZXQtcHJldmlldy1ibG9ja19fbGluZXNcIj5cbiAgICAgIDxuZy1taWFtLXByb2R1Y3QtYWRkaXRpb24tY2FyZCAqbmdJZj1cImNvbnRleHRTZXJ2aWNlLm5vU3VwcGxpZXJcIj48L25nLW1pYW0tcHJvZHVjdC1hZGRpdGlvbi1jYXJkPlxuICAgICAgPG5nLW1pYW0tYmFza2V0LXByZXZpZXctbGluZVxuICAgICAgICAqbmdGb3I9XCJsZXQgbGluZSBvZiBsaW5lcztcIlxuICAgICAgICBbbGluZV09XCJsaW5lXCJcbiAgICAgICAgW2Jsb2NrU3RhdGVzXT1cImJsb2NrU3RhdGVzXCJcbiAgICAgICAgW3JlY2lwZXNBbHdheXNFeHBhbmRlZF09XCJyZWNpcGVzQWx3YXlzRXhwYW5kZWRcIlxuICAgICAgICBbaXRlbXNBbHdheXNFeHBhbmRlZF09XCJpdGVtc0Fsd2F5c0V4cGFuZGVkXCJcbiAgICAgICAgW2Rpc3BsYXlJdGVtc1VuaXRhcnlQcmljZV09XCJkaXNwbGF5SXRlbXNVbml0YXJ5UHJpY2VcIlxuICAgICAgICBbbGVnYWN5TW9kZV09XCJsZWdhY3lNb2RlXCJcbiAgICAgICAgW29yaWdpblRyYWNlXT1cImV2ZW50VHJhY2VcIlxuICAgICAgICAocmVtb3ZlZCk9XCJyZW1vdmVSZWNpcGUoJGV2ZW50KVwiXG4gICAgICAgIChjb3VudENoYW5nZWQpPVwidXBkYXRlUmVjaXBlKCRldmVudClcIlxuICAgICAgICAocmVwbGFjZUl0ZW0pPSdzY3JvbGx0b3AocHJldmlld0Jsb2NrVG9wKSdcbiAgICAgICAgW25nU3R5bGVdPVwieydkaXNwbGF5JzogYmxvY2tTdGF0ZXM/LnZhbHVlPy5vdmVybGF5T3BlbiA/ICdub25lJyA6ICdibG9jayd9IFwiXG4gICAgICA+PC9uZy1taWFtLWJhc2tldC1wcmV2aWV3LWxpbmU+XG4gICAgICA8bmctbWlhbS1yZXBsYWNlLWl0ZW1cbiAgICAgICAgKm5nSWY9XCJibG9ja1N0YXRlcz8udmFsdWU/Lm92ZXJsYXlPcGVuXCJcbiAgICAgICAgW29yaWdpblRyYWNlXT1cImV2ZW50VHJhY2VcIlxuICAgICAgICBbcmVjaXBlXT1cImJsb2NrU3RhdGVzPy52YWx1ZT8ubGluZUNvbXBvbmVudC5saW5lLnJlY2lwZVwiXG4gICAgICAgIFtpbmdyZWRpZW50XT1cImJsb2NrU3RhdGVzPy52YWx1ZT8ubGluZUNvbXBvbmVudC5saW5lLmluZ3JlZGllbnRcIlxuICAgICAgICBbYmFza2V0RW50cnldPVwiYmxvY2tTdGF0ZXM/LnZhbHVlPy5saW5lQ29tcG9uZW50LmxpbmUucmVjb3JkXCJcbiAgICAgICAgW2xvYWRPblNlbGVjdF09XCJ0cnVlXCJcbiAgICAgICAgKHNlbGVjdGVkKT1cImJsb2NrU3RhdGVzPy52YWx1ZT8ubGluZUNvbXBvbmVudC5wcm9kdWN0Q2hvc2VuKCRldmVudClcIlxuICAgICAgPlxuICAgICAgPC9uZy1taWFtLXJlcGxhY2UtaXRlbT5cbiAgICAgIDxkaXYgKm5nSWY9XCIhKGxvYWRpbmcgfCBhc3luYykgJiYgKCFsaW5lcyB8fCBsaW5lcy5sZW5ndGggPT09IDApXCIgY2xhc3M9XCJtaWFtLWJhc2tldC1wcmV2aWV3LWJsb2NrX19saW5lc19fbm90LWZvdW5kXCI+XG4gICAgICAgIDxwPjxiIGkxOG4+Vm91cyBuJ2F2ZXogcGFzIGVuY29yZSBzw6lsZWN0aW9ubsOpIGRlIHJlcGFzLjwvYj48L3A+XG4gICAgICAgIDxwIGkxOG4gKm5nSWY9XCJzaG93Tm90aWNlXCI+TmF2aWd1ZXogdmVycyBsYSBwYWdlIGQndW5lIHJlY2V0dGUsIHB1aXMgY2xpcXVleiBzdXIgXCJDb21tYW5kZXIgbGVzIGluZ3LDqWRpZW50c1wiLjwvcD5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICAgIDxkaXYgKm5nSWY9XCJhY3RpdmVCYXNrZXRUYWIgPT09IGJhc2tldFRhYi5QUk9EVUNUU1wiIGNsYXNzPVwibWlhbS1iYXNrZXQtcHJldmlldy1ibG9ja19fcHJvZHVjdHNcIj5cbiAgICAgIDxuZy1taWFtLXByb2R1Y3QtYWRkaXRpb24tY2FyZCAqbmdJZj1cImNvbnRleHRTZXJ2aWNlLm5vU3VwcGxpZXJcIj48L25nLW1pYW0tcHJvZHVjdC1hZGRpdGlvbi1jYXJkPlxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgcHJvZHVjdCBvZiBwcm9kdWN0c0xpc3Q7IGxldCBsYXN0ID0gbGFzdDsgdHJhY2tCeTogdHJhY2tCeVByb2R1Y3RGblwiPlxuICAgICAgICA8bmctbWlhbS1iYXNrZXQtcHJldmlldy1wcm9kdWN0XG4gICAgICAgICAgW2Jhc2tldEVudHJ5XT1cInByb2R1Y3RcIlxuICAgICAgICAgIChyZXBsYWNlQnV0dG9uQ2xpY2tlZCk9XCJoYW5kbGVSZXBsYWNlQnV0dG9uQ2xpY2socHJvZHVjdClcIlxuICAgICAgICA+PC9uZy1taWFtLWJhc2tldC1wcmV2aWV3LXByb2R1Y3Q+XG4gICAgICAgIDxociBjbGFzcz1cIm1pYW0tYmFza2V0LXByZXZpZXctYmxvY2tfX3Byb2R1Y3RzLXNlcGFyYXRvclwiICpuZ0lmPVwiIWxhc3RcIi8+XG4gICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICA8L2Rpdj5cblxuICAgIDxkaXYgY2xhc3M9XCJtaWFtLWJhc2tldC1wcmV2aWV3LWJsb2NrX19saW5lc19fbG9hZGVyXCIgKm5nSWY9XCIobG9hZGluZyB8IGFzeW5jKVwiPlxuICAgICAgPG5nLW1pYW0tbG9hZGVyPjwvbmctbWlhbS1sb2FkZXI+XG4gICAgICA8ZGl2PlxuICAgICAgICA8c3BhbiBpMThuICpuZ0lmPVwicmVjaXBlSWRcIj5DaGFyZ2VtZW50IGR1IHJlcGFzLi4uPC9zcGFuPlxuICAgICAgICA8c3BhbiBpMThuICpuZ0lmPVwiIXJlY2lwZUlkXCI+Q2hhcmdlbWVudCBkZXMgcmVwYXMuLi48L3NwYW4+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgPC9uZy1jb250YWluZXI+XG48L2Rpdj5cbjxuZy10ZW1wbGF0ZSAjY29ycz5cbjxuZy1taWFtLWNvcnMtb3ZlcmxheT48L25nLW1pYW0tY29ycy1vdmVybGF5PlxuPC9uZy10ZW1wbGF0ZT5cbjxuZy10ZW1wbGF0ZSAjbm9Qb3M+XG4gIDxkaXYgY2xhc3M9XCJtaWFtLWJhc2tldC1wcmV2aWV3LWJsb2NrX19ub1Bvc1wiPlxuICAgIDxzcGFuIGkxOG4+RMOpc29sw6ksIGNlIG1hZ2FzaW4gbmUgcGVybWV0IHBhcyBkZSBzw6lsZWN0aW9ubmVyIGRlcyByZXBhcy48L3NwYW4+XG4gICAgPGJyPlxuICAgIDxzcGFuIGkxOG4+VmV1aWxsZXogc8OpbGVjdGlvbm5lciB1biBhdXRyZSBtYWdhc2luPC9zcGFuPlxuICA8L2Rpdj5cbjwvbmctdGVtcGxhdGU+XG4iXX0=
|