@infrab4a/connect-angular 5.0.0-beta.60 → 5.0.0-beta.61
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/esm2022/angular-firestore.module.mjs +16 -2
- package/esm2022/services/cart.service.mjs +2 -2
- package/esm2022/services/catalog/wishlist.service.mjs +95 -6
- package/esm2022/services/coupon.service.mjs +7 -3
- package/esm2022/services/home-shop.service.mjs +4 -4
- package/fesm2022/infrab4a-connect-angular.mjs +117 -10
- package/fesm2022/infrab4a-connect-angular.mjs.map +1 -1
- package/package.json +2 -2
- package/services/catalog/wishlist.service.d.ts +7 -2
|
@@ -2,7 +2,7 @@ import { isPlatformBrowser, isPlatformServer } from '@angular/common';
|
|
|
2
2
|
import { NgModule, PLATFORM_ID } from '@angular/core';
|
|
3
3
|
import { FirebaseApp } from '@angular/fire/app';
|
|
4
4
|
import { Firestore, initializeFirestore, memoryLocalCache, provideFirestore } from '@angular/fire/firestore';
|
|
5
|
-
import { Buy2WinFirestoreRepository, CampaignDashboardFirestoreRepository, CampaignHashtagFirestoreRepository, CategoryFirestoreRepository, CheckoutFirestoreRepository, CheckoutSubscriptionFirestoreRepository, ConnectFirestoreService, CouponFirestoreRepository, HomeFirestoreRepository, LeadFirestoreRepository, LegacyOrderFirestoreRepository, OrderBlockedFirestoreRepository, OrderFirestoreRepository, PaymentFirestoreRepository, ProductFirestoreRepository, ProductVariantFirestoreRepository, ShopMenuFirestoreRepository, ShopSettingsFirestoreRepository, SubscriptionEditionFirestoreRepository, SubscriptionFirestoreRepository, SubscriptionMaterializationFirestoreRepository, SubscriptionPaymentFirestoreRepository, SubscriptionPlanFirestoreRepository, SubscriptionProductFirestoreRepository, SubscriptionSummaryFirestoreRepository, UserAddressFirestoreRepository, UserBeautyProfileFirestoreRepository, UserFirestoreRepository, UserPaymentMethodFirestoreRepository, } from '@infrab4a/connect';
|
|
5
|
+
import { Buy2WinFirestoreRepository, CampaignDashboardFirestoreRepository, CampaignHashtagFirestoreRepository, CategoryFirestoreRepository, CheckoutFirestoreRepository, CheckoutSubscriptionFirestoreRepository, ConnectFirestoreService, CouponFirestoreRepository, HomeFirestoreRepository, LeadFirestoreRepository, LegacyOrderFirestoreRepository, LogFirestoreRepository, OrderBlockedFirestoreRepository, OrderFirestoreRepository, PaymentFirestoreRepository, ProductFirestoreRepository, ProductVariantFirestoreRepository, ShopMenuFirestoreRepository, ShopSettingsFirestoreRepository, SubscriptionEditionFirestoreRepository, SubscriptionFirestoreRepository, SubscriptionMaterializationFirestoreRepository, SubscriptionPaymentFirestoreRepository, SubscriptionPlanFirestoreRepository, SubscriptionProductFirestoreRepository, SubscriptionSummaryFirestoreRepository, UserAddressFirestoreRepository, UserBeautyProfileFirestoreRepository, UserFirestoreRepository, UserPaymentMethodFirestoreRepository, } from '@infrab4a/connect';
|
|
6
6
|
import { AngularElasticSeachModule } from './angular-elastic-search.module';
|
|
7
7
|
import { ES_CONFIG, FIREBASE_APP_NAME, FIREBASE_OPTIONS } from './consts';
|
|
8
8
|
import { MobileOperationSystemCheckerHelper } from './helpers';
|
|
@@ -240,6 +240,13 @@ export class AngularFirestoreModule {
|
|
|
240
240
|
},
|
|
241
241
|
deps: ['FirestoreOptions'],
|
|
242
242
|
},
|
|
243
|
+
{
|
|
244
|
+
provide: 'LogRepository',
|
|
245
|
+
useFactory: (options) => {
|
|
246
|
+
return new LogFirestoreRepository(options);
|
|
247
|
+
},
|
|
248
|
+
deps: ['FirestoreOptions'],
|
|
249
|
+
},
|
|
243
250
|
], imports: [AngularElasticSeachModule,
|
|
244
251
|
provideFirestore((injector) => {
|
|
245
252
|
const platformId = injector.get(PLATFORM_ID);
|
|
@@ -493,7 +500,14 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.3", ngImpor
|
|
|
493
500
|
},
|
|
494
501
|
deps: ['FirestoreOptions'],
|
|
495
502
|
},
|
|
503
|
+
{
|
|
504
|
+
provide: 'LogRepository',
|
|
505
|
+
useFactory: (options) => {
|
|
506
|
+
return new LogFirestoreRepository(options);
|
|
507
|
+
},
|
|
508
|
+
deps: ['FirestoreOptions'],
|
|
509
|
+
},
|
|
496
510
|
],
|
|
497
511
|
}]
|
|
498
512
|
}] });
|
|
499
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYW5ndWxhci1maXJlc3RvcmUubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vcHJvamVjdHMvY29ubmVjdC1hbmd1bGFyL3NyYy9hbmd1bGFyLWZpcmVzdG9yZS5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGlCQUFpQixFQUFFLGdCQUFnQixFQUFFLE1BQU0saUJBQWlCLENBQUE7QUFDckUsT0FBTyxFQUFpQyxRQUFRLEVBQUUsV0FBVyxFQUFFLE1BQU0sZUFBZSxDQUFBO0FBQ3BGLE9BQU8sRUFBRSxXQUFXLEVBQW1CLE1BQU0sbUJBQW1CLENBQUE7QUFDaEUsT0FBTyxFQUFFLFNBQVMsRUFBRSxtQkFBbUIsRUFBRSxnQkFBZ0IsRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHlCQUF5QixDQUFBO0FBQzVHLE9BQU8sRUFHTCwwQkFBMEIsRUFFMUIsb0NBQW9DLEVBRXBDLGtDQUFrQyxFQUVsQywyQkFBMkIsRUFFM0IsMkJBQTJCLEVBRTNCLHVDQUF1QyxFQUV2Qyx1QkFBdUIsRUFDdkIseUJBQXlCLEVBS3pCLHVCQUF1QixFQUV2Qix1QkFBdUIsRUFFdkIsOEJBQThCLEVBRTlCLCtCQUErQixFQUUvQix3QkFBd0IsRUFFeEIsMEJBQTBCLEVBRTFCLDBCQUEwQixFQUUxQixpQ0FBaUMsRUFDakMsMkJBQTJCLEVBRTNCLCtCQUErQixFQUUvQixzQ0FBc0MsRUFDdEMsK0JBQStCLEVBQy9CLDhDQUE4QyxFQUU5QyxzQ0FBc0MsRUFFdEMsbUNBQW1DLEVBRW5DLHNDQUFzQyxFQUd0QyxzQ0FBc0MsRUFFdEMsOEJBQThCLEVBRTlCLG9DQUFvQyxFQUNwQyx1QkFBdUIsRUFDdkIsb0NBQW9DLEdBSXJDLE1BQU0sbUJBQW1CLENBQUE7QUFFMUIsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0saUNBQWlDLENBQUE7QUFDM0UsT0FBTyxFQUFFLFNBQVMsRUFBRSxpQkFBaUIsRUFBRSxnQkFBZ0Is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Q3BFLENBQUM7NEJBQ0QsSUFBSSxFQUFFLENBQUMsa0JBQWtCLENBQUM7eUJBQzNCO3dCQUNEOzRCQUNFLE9BQU8sRUFBRSwrQkFBK0I7NEJBQ3hDLFVBQVUsRUFBRSxDQUFDLE9BQXlCLEVBQWlDLEVBQUU7Z0NBQ3ZFLE9BQU8sSUFBSSxzQ0FBc0MsQ0FBQyxPQUFPLENBQUMsQ0FBQTs0QkFDNUQsQ0FBQzs0QkFDRCxJQUFJLEVBQUUsQ0FBQyxrQkFBa0IsQ0FBQzt5QkFDM0I7d0JBQ0Q7NEJBQ0UsT0FBTyxFQUFFLGlDQUFpQzs0QkFDMUMsVUFBVSxFQUFFLENBQUMsT0FBeUIsRUFBRSxpQkFBNkMsRUFBcUIsRUFBRTtnQ0FDMUcsT0FBTyxJQUFJLGlDQUFpQyxDQUFDLE9BQU8sRUFBRSxpQkFBaUIsQ0FBQyxDQUFBOzRCQUMxRSxDQUFDOzRCQUNELElBQUksRUFBRSxDQUFDLGtCQUFrQixFQUFFLDBCQUEwQixDQUFDO3lCQUN2RDt3QkFDRDs0QkFDRSxPQUFPLEVBQUUsd0JBQXdCOzRCQUNqQyxVQUFVLEVBQUUsQ0FBQyxPQUF5QixFQUEwQixFQUFFO2dDQUNoRSxPQUFPLElBQUksK0JBQStCLENBQUMsT0FBTyxDQUFDLENBQUE7NEJBQ3JELENBQUM7NEJBQ0QsSUFBSSxFQUFFLENBQUMsa0JBQWtCLENBQUM7eUJBQzNCO3FCQUNGO2lCQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgaXNQbGF0Zm9ybUJyb3dzZXIsIGlzUGxhdGZvcm1TZXJ2ZXIgfSBmcm9tICdAYW5ndWxhci9jb21tb24nXHJcbmltcG9ydCB7IEluamVjdG9yLCBNb2R1bGVXaXRoUHJvdmlkZXJzLCBOZ01vZHVsZSwgUExBVEZPUk1fSUQgfSBmcm9tICdAYW5ndWxhci9jb3JlJ1xyXG5pbXBvcnQgeyBGaXJlYmFzZUFwcCwgRmlyZWJhc2VPcHRpb25zIH0gZnJvbSAnQGFuZ3VsYXIvZmlyZS9hcHAnXHJcbmltcG9ydCB7IEZpcmVzdG9yZSwgaW5pdGlhbGl6ZUZpcmVzdG9yZSwgbWVtb3J5TG9jYWxDYWNoZSwgcHJvdmlkZUZpcmVzdG9yZSB9IGZyb20gJ0Bhbmd1bGFyL2ZpcmUvZmlyZXN0b3JlJ1xyXG5pbXBvcnQge1xyXG4gIEF4aW9zRWxhc3RpY1NlYXJjaENvbmZpZyxcclxuICBCZWF1dHlQcm9maWxlUmVwb3NpdG9yeSxcclxuICBCdXkyV2luRmlyZXN0b3JlUmVwb3NpdG9yeSxcclxuICBCdXkyV2luUmVwb3NpdG9yeSxcclxuICBDYW1wYWlnbkRhc2hib2FyZEZpcmVzdG9yZVJlcG9zaXRvcnksXHJcbiAgQ2FtcGFpZ25EYXNoYm9hcmRSZXBvc2l0b3J5LFxyXG4gIENhbXBhaWduSGFzaHRhZ0ZpcmVzdG9yZVJlcG9zaXRvcnksXHJcbiAgQ2FtcGFpZ25IYXNodGFnUmVwb3NpdG9yeSxcclxuICBDYXRlZ29yeUZpcmVzdG9yZVJlcG9zaXRvcnksXHJcbiAgQ2F0ZWdvcnlSZXBvc2l0b3J5LFxyXG4gIENoZWNrb3V0RmlyZXN0b3JlUmVwb3NpdG9yeSxcclxuICBDaGVja291dFJlcG9zaXRvcnksXHJcbiAgQ2hlY2tvdXRTdWJzY3JpcHRpb25GaXJlc3RvcmVSZXBvc2l0b3J5LFxyXG4gIENoZWNrb3V0U3Vic2NyaXB0aW9uUmVwb3NpdG9yeSxcclxuICBDb25uZWN0RmlyZXN0b3JlU2VydmljZSxcclxuICBDb3Vwb25GaXJlc3RvcmVSZXBvc2l0b3J5LFxyXG4gIENvdXBvblJlcG9zaXRvcnksXHJcbiAgRWRpdGlvblJlcG9zaXRvcnksXHJcbiAgRmlyZXN0b3JlQ29uc3RydWN0b3JQYXJhbXMsXHJcbiAgRmlyZXN0b3JlSW50ZXJ0Y2VwdG9yUmVxdWVzdFBhcmFtcyxcclxuICBIb21lRmlyZXN0b3JlUmVwb3NpdG9yeSxcclxuICBIb21lUmVwb3NpdG9yeSxcclxuICBMZWFkRmlyZXN0b3JlUmVwb3NpdG9yeSxcclxuICBMZWFkUmVwb3NpdG9yeSxcclxuICBMZWdhY3lPcmRlckZpcmVzdG9yZVJlcG9zaXRvcnksXHJcbiAgTGVnYWN5T3JkZXJSZXBvc2l0b3J5LFxyXG4gIE9yZGVyQmxvY2tlZEZpcmVzdG9yZVJlcG9zaXRvcnksXHJcbiAgT3JkZXJCbG9ja2VkUmVwb3NpdG9yeSxcclxuICBPcmRlckZpcmVzdG9yZVJlcG9zaXRvcnksXHJcbiAgT3JkZXJSZXBvc2l0b3J5LFxyXG4gIFBheW1lbnRGaXJlc3RvcmVSZXBvc2l0b3J5LFxyXG4gIFBheW1lbnRSZXBvc2l0b3J5LFxyXG4gIFByb2R1Y3RGaXJlc3RvcmVSZXBvc2l0b3J5LFxyXG4gIFByb2R1Y3RSZXBvc2l0b3J5LFxyXG4gIFByb2R1Y3RWYXJpYW50RmlyZXN0b3JlUmVwb3NpdG9yeSxcclxuICBTaG9wTWVudUZpcmVzdG9yZVJlcG9zaXRvcnksXHJcbiAgU2hvcE1lbnVSZXBvc2l0b3J5LFxyXG4gIFNob3BTZXR0aW5nc0ZpcmVzdG9yZVJlcG9zaXRvcnksXHJcbiAgU2hvcFNldHRpbmdzUmVwb3NpdG9yeSxcclxuICBTdWJzY3JpcHRpb25FZGl0aW9uRmlyZXN0b3JlUmVwb3NpdG9yeSxcclxuICBTdWJzY3JpcHRpb25GaXJlc3RvcmVSZXBvc2l0b3J5LFxyXG4gIFN1YnNjcmlwdGlvbk1hdGVyaWFsaXphdGlvbkZpcmVzdG9yZVJlcG9zaXRvcnksXHJcbiAgU3Vic2NyaXB0aW9uTWF0ZXJpYWxpemF0aW9uUmVwb3NpdG9yeSxcclxuICBTdWJzY3JpcHRpb25QYXltZW50RmlyZXN0b3JlUmVwb3NpdG9yeSxcclxuICBTdWJzY3JpcHRpb25QYXltZW50UmVwb3NpdG9yeSxcclxuICBTdWJzY3JpcHRpb25QbGFuRmlyZXN0b3JlUmVwb3NpdG9yeSxcclxuICBTdWJzY3JpcHRpb25QbGFuUmVwb3NpdG9yeSxcclxuICBTdWJzY3JpcHRpb25Qcm9kdWN0RmlyZXN0b3JlUmVwb3NpdG9yeSxcclxuICBTdWJzY3JpcHRpb25Qcm9kdWN0UmVwb3NpdG9yeSxcclxuICBTdWJzY3JpcHRpb25SZXBvc2l0b3J5LFxyXG4gIFN1YnNjcmlwdGlvblN1bW1hcnlGaXJlc3RvcmVSZXBvc2l0b3J5LFxyXG4gIFN1YnNjcmlwdGlvblN1bW1hcnlSZXBvc2l0b3J5LFxyXG4gIFVzZXJBZGRyZXNzRmlyZXN0b3JlUmVwb3NpdG9yeSxcclxuICBVc2VyQWRkcmVzc1JlcG9zaXRvcnksXHJcbiAgVXNlckJlYXV0eVByb2ZpbGVGaXJlc3RvcmVSZXBvc2l0b3J5LFxyXG4gIFVzZXJGaXJlc3RvcmVSZXBvc2l0b3J5LFxyXG4gIFVzZXJQYXltZW50TWV0aG9kRmlyZXN0b3JlUmVwb3NpdG9yeSxcclxuICBVc2VyUGF5bWVudE1ldGhvZFJlcG9zaXRvcnksXHJcbiAgVXNlclJlcG9zaXRvcnksXHJcbiAgVmFyaWFudFJlcG9zaXRvcnksXHJcbn0gZnJvbSAnQGluZnJhYjRhL2Nvbm5lY3QnXHJcblxyXG5pbXBvcnQgeyBBbmd1bGFyRWxhc3RpY1NlYWNoTW9kdWxlIH0gZnJvbSAnLi9hbmd1bGFyLWVsYXN0aWMtc2VhcmNoLm1vZHVsZSdcclxuaW1wb3J0IHsgRVNfQ09ORklHLCBGSVJFQkFTRV9BUFBfTkFNRSwgRklSRUJBU0VfT1BUSU9OUyB9IGZyb20gJy4vY29uc3RzJ1xyXG5pbXBvcnQgeyBNb2JpbGVPcGVyYXRpb25TeXN0ZW1DaGVja2VySGVscGVyIH0gZnJvbSAnLi9oZWxwZXJzJ1xyXG5pbXBvcnQgeyBGaXJlYmFzZUFwcENvbmZpZyB9IGZyb20gJy4vdHlwZXMnXHJcblxyXG5leHBvcnQgdHlwZSBGaXJlc3RvcmVPcHRpb25zID0gUGljazxGaXJlc3RvcmVDb25zdHJ1Y3RvclBhcmFtczxhbnk+LCAnZmlyZXN0b3JlJyB8ICdpbnRlcmNlcHRvcnMnPlxyXG5cclxuQE5nTW9kdWxlKHtcclxuICBpbXBvcnRzOiBbXHJcbiAgICBBbmd1bGFyRWxhc3RpY1NlYWNoTW9kdWxlLFxyXG4gICAgcHJvdmlkZUZpcmVzdG9yZSgoaW5qZWN0b3I6IEluamVjdG9yKSA9PiB7XHJcbiAgICAgIGNvbnN0IHBsYXRmb3JtSWQgPSBpbmplY3Rvci5nZXQoUExBVEZPUk1fSUQpXHJcblxyXG4gICAgICBpZiAoaXNQbGF0Zm9ybVNlcnZlcihwbGF0Zm9ybUlkKSB8fCAhTW9iaWxlT3BlcmF0aW9uU3lzdGVtQ2hlY2tlckhlbHBlci5pc0FwcGxlRGV2aWNlKCkpXHJcbiAgICAgICAgcmV0dXJuIGluaXRpYWxpemVGaXJlc3RvcmUoaW5qZWN0b3IuZ2V0KEZpcmViYXNlQXBwKSwge1xyXG4gICAgICAgICAgaWdub3JlVW5kZWZpbmVkUHJvcGVydGllczogdHJ1ZSxcclxuICAgICAgICB9KVxyXG5cclxuICAgICAgY29uc3QgZmlyZXN0b3JlID0gaW5pdGlhbGl6ZUZpcmVzdG9yZShpbmplY3Rvci5nZXQoRmlyZWJhc2VBcHApLCB7XHJcbiAgICAgICAgZXhwZXJpbWVudGFsRm9yY2VMb25nUG9sbGluZzogdHJ1ZSxcclxuICAgICAgICBpZ25vcmVVbmRlZmluZWRQcm9wZXJ0aWVzOiB0cnVlLFxyXG4gICAgICAgIGxvY2FsQ2FjaGU6IG1lbW9yeUxvY2FsQ2FjaGUoKSxcclxuICAgICAgfSlcclxuXHJcbiAgICAgIHJldHVybiBmaXJlc3RvcmVcclxuICAgIH0pLFxyXG4gIF0sXHJcbiAgcHJvdmlkZXJzOiBbXHJcbiAgICB7XHJcbiAgICAgIHByb3ZpZGU6ICdGaXJlc3RvcmVPcHRpb25zJyxcclxuICAgICAgdXNlRmFjdG9yeTogKGZpcmVzdG9yZTogRmlyZXN0b3JlLCBwbGF0Zm9ybUlkOiBzdHJpbmcpOiBGaXJlc3RvcmVPcHRpb25zID0+ICh7XHJcbiAgICAgICAgZmlyZXN0b3JlOiBuZXcgQ29ubmVjdEZpcmVzdG9yZVNlcnZpY2UoZmlyZXN0b3JlKSxcclxuICAgICAgICBpbnRlcmNlcHRvcnM6IHtcclxuICAgICAgICAgIHJlcXVlc3Q6IChyZXF1ZXN0OiBGaXJlc3RvcmVJbnRlcnRjZXB0b3JSZXF1ZXN0UGFyYW1zPGFueT4gJiB7IGludGVydmFsOiBSZXR1cm5UeXBlPHR5cGVvZiBzZXRUaW1lb3V0PiB9KSA9PiB7XHJcbiAgICAgICAgICAgIGlmIChpc1BsYXRmb3JtQnJvd3NlcihwbGF0Zm9ybUlkKSkgcmV0dXJuIHJlcXVlc3RcclxuXHJcbiAgICAgICAgICAgIGNvbnN0IGludGVydmFsID0gc2V0SW50ZXJ2YWwoKCkgPT4ge30sIDEwMClcclxuXHJcbiAgICAgICAgICAgIHJlcXVlc3QuaW50ZXJ2YWwgPSBpbnRlcnZhbFxyXG5cclxuICAgICAgICAgICAgcmV0dXJuIHJlcXVlc3RcclxuICAgICAgICAgIH0sXHJcbiAgICAgICAgICByZXNwb25zZTogKFxyXG4gICAgICAgICAgICByZXNwb25zZTogYW55LFxyXG4gICAgICAgICAgICByZXF1ZXN0OiBGaXJlc3RvcmVJbnRlcnRjZXB0b3JSZXF1ZXN0UGFyYW1zPGFueT4gJiB7IGludGVydmFsOiBSZXR1cm5UeXBlPHR5cGVvZiBzZXRUaW1lb3V0PiB9LFxyXG4gICAgICAgICAgKSA9PiB7XHJcbiAgICAgICAgICAgIGlmIChpc1BsYXRmb3JtQnJvd3NlcihwbGF0Zm9ybUlkKSkgcmV0dXJuIHJlc3BvbnNlXHJcblxyXG4gICAgICAgICAgICBjbGVhckludGVydmFsKHJlcXVlc3QuaW50ZXJ2YWwpXHJcblxyXG4gICAgICAgICAgICByZXR1cm4gcmVzcG9uc2VcclxuICAgICAgICAgIH0sXHJcbiAgICAgICAgfSxcclxuICAgICAgfSksXHJcbiAgICAgIGRlcHM6IFtGaXJlc3RvcmUsIFBMQVRGT1JNX0lEXSxcclxuICAgIH0sXHJcbiAgICB7XHJcbiAgICAgIHByb3ZpZGU6ICdCZWF1dHlQcm9maWxlUmVwb3NpdG9yeScsXHJcbiAgICAgIHVzZUZhY3Rvcnk6IChjb25maWc6IEZpcmVzdG9yZU9wdGlvbnMsIHVzZXJSZXBvc2l0b3J5OiBVc2VyRmlyZXN0b3JlUmVwb3NpdG9yeSk6IEJlYXV0eVByb2ZpbGVSZXBvc2l0b3J5ID0+IHtcclxuICAgICAgICByZXR1cm4gbmV3IFVzZXJCZWF1dHlQcm9maWxlRmlyZXN0b3JlUmVwb3NpdG9yeShjb25maWcsIHVzZXJSZXBvc2l0b3J5KVxyXG4gICAgICB9LFxyXG4gICAgICBkZXBzOiBbJ0ZpcmVzdG9yZU9wdGlvbnMnLCAnVXNlclJlcG9zaXRvcnknXSxcclxuICAgIH0sXHJcbiAgICB7XHJcbiAgICAgIHByb3ZpZGU6ICdCdXkyV2luUmVwb3NpdG9yeScsXHJcbiAgICAgIHVzZUZhY3Rvcnk6IChvcHRpb25zOiBGaXJlc3RvcmVPcHRpb25zKTogQnV5MldpblJlcG9zaXRvcnkgPT4ge1xyXG4gICAgICAgIHJldHVybiBuZXcgQnV5MldpbkZpcmVzdG9yZVJlcG9zaXRvcnkob3B0aW9ucylcclxuICAgICAgfSxcclxuICAgICAgZGVwczogWydGaXJlc3RvcmVPcHRpb25zJ10sXHJcbiAgICB9LFxyXG4gICAge1xyXG4gICAgICBwcm92aWRlOiBDYXRlZ29yeUZpcmVzdG9yZVJlcG9zaXRvcnksXHJcbiAgICAgIHVzZUZhY3Rvcnk6IChvcHRpb25zOiBGaXJlc3RvcmVPcHRpb25zKTogQ2F0ZWdvcnlSZXBvc2l0b3J5ID0+IHtcclxuICAgICAgICByZXR1cm4gbmV3IENhdGVnb3J5RmlyZXN0b3JlUmVwb3NpdG9yeShvcHRpb25zKVxyXG4gICAgICB9LFxyXG4gICAgICBkZXBzOiBbJ0ZpcmVzdG9yZU9wdGlvbnMnXSxcclxuICAgIH0sXHJcbiAgICB7XHJcbiAgICAgIHByb3ZpZGU6ICdDaGVja291dFJlcG9zaXRvcnknLFxyXG4gICAgICB1c2VGYWN0b3J5OiAob3B0aW9uczogRmlyZXN0b3JlT3B0aW9ucyk6IENoZWNrb3V0UmVwb3NpdG9yeSA9PiB7XHJcbiAgICAgICAgcmV0dXJuIG5ldyBDaGVja291dEZpcmVzdG9yZVJlcG9zaXRvcnkob3B0aW9ucylcclxuICAgICAgfSxcclxuICAgICAgZGVwczogWydGaXJlc3RvcmVPcHRpb25zJ10sXHJcbiAgICB9LFxyXG4gICAge1xyXG4gICAgICBwcm92aWRlOiAnQ2hlY2tvdXRTdWJzY3JpcHRpb25SZXBvc2l0b3J5JyxcclxuICAgICAgdXNlRmFjdG9yeTogKG9wdGlvbnM6IEZpcmVzdG9yZU9wdGlvbnMpOiBDaGVja291dFN1YnNjcmlwdGlvblJlcG9zaXRvcnkgPT4ge1xyXG4gICAgICAgIHJldHVybiBuZXcgQ2hlY2tvdXRTdWJzY3JpcHRpb25GaXJlc3RvcmVSZXBvc2l0b3J5KG9wdGlvbnMpXHJcbiAgICAgIH0sXHJcbiAgICAgIGRlcHM6IFsnRmlyZXN0b3JlT3B0aW9ucyddLFxyXG4gICAgfSxcclxuICAgIHtcclxuICAgICAgcHJvdmlkZTogJ0NvdXBvblJlcG9zaXRvcnknLFxyXG4gICAgICB1c2VGYWN0b3J5OiAob3B0aW9uczogRmlyZXN0b3JlT3B0aW9ucyk6IENvdXBvblJlcG9zaXRvcnkgPT4ge1xyXG4gICAgICAgIHJldHVybiBuZXcgQ291cG9uRmlyZXN0b3JlUmVwb3NpdG9yeShvcHRpb25zKVxyXG4gICAgICB9LFxyXG4gICAgICBkZXBzOiBbJ0ZpcmVzdG9yZU9wdGlvbnMnXSxcclxuICAgIH0sXHJcbiAgICB7XHJcbiAgICAgIHByb3ZpZGU6ICdDYW1wYWlnbkhhc2h0YWdSZXBvc2l0b3J5JyxcclxuICAgICAgdXNlRmFjdG9yeTogKG9wdGlvbnM6IEZpcmVzdG9yZU9wdGlvbnMpOiBDYW1wYWlnbkhhc2h0YWdSZXBvc2l0b3J5ID0+IHtcclxuICAgICAgICByZXR1cm4gbmV3IENhbXBhaWduSGFzaHRhZ0ZpcmVzdG9yZVJlcG9zaXRvcnkob3B0aW9ucylcclxuICAgICAgfSxcclxuICAgICAgZGVwczogWydGaXJlc3RvcmVPcHRpb25zJ10sXHJcbiAgICB9LFxyXG4gICAge1xyXG4gICAgICBwcm92aWRlOiAnQ2FtcGFpZ25EYXNoYm9hcmRSZXBvc2l0b3J5JyxcclxuICAgICAgdXNlRmFjdG9yeTogKG9wdGlvbnM6IEZpcmVzdG9yZU9wdGlvbnMpOiBDYW1wYWlnbkRhc2hib2FyZFJlcG9zaXRvcnkgPT4ge1xyXG4gICAgICAgIHJldHVybiBuZXcgQ2FtcGFpZ25EYXNoYm9hcmRGaXJlc3RvcmVSZXBvc2l0b3J5KG9wdGlvbnMpXHJcbiAgICAgIH0sXHJcbiAgICAgIGRlcHM6IFsnRmlyZXN0b3JlT3B0aW9ucyddLFxyXG4gICAgfSxcclxuICAgIHtcclxuICAgICAgcHJvdmlkZTogJ0VkaXRpb25SZXBvc2l0b3J5JyxcclxuICAgICAgdXNlRmFjdG9yeTogKFxyXG4gICAgICAgIG9wdGlvbnM6IEZpcmVzdG9yZU9wdGlvbnMsXHJcbiAgICAgICAgc3Vic2NyaXB0aW9uUmVwb3NpdG9yeTogU3Vic2NyaXB0aW9uRmlyZXN0b3JlUmVwb3NpdG9yeSxcclxuICAgICAgKTogRWRpdGlvblJlcG9zaXRvcnkgPT4ge1xyXG4gICAgICAgIHJldHVybiBuZXcgU3Vic2NyaXB0aW9uRWRpdGlvbkZpcmVzdG9yZVJlcG9zaXRvcnkob3B0aW9ucywgc3Vic2NyaXB0aW9uUmVwb3NpdG9yeSlcclxuICAgICAgfSxcclxuICAgICAgZGVwczogWydGaXJlc3RvcmVPcHRpb25zJywgJ1N1YnNjcmlwdGlvblJlcG9zaXRvcnknXSxcclxuICAgIH0sXHJcbiAgICB7XHJcbiAgICAgIHByb3ZpZGU6ICdIb21lUmVwb3NpdG9yeScsXHJcbiAgICAgIHVzZUZhY3Rvcnk6IChvcHRpb25zOiBGaXJlc3RvcmVPcHRpb25zKTogSG9tZVJlcG9zaXRvcnkgPT4ge1xyXG4gICAgICAgIHJldHVybiBuZXcgSG9tZUZpcmVzdG9yZVJlcG9zaXRvcnkob3B0aW9ucylcclxuICAgICAgfSxcclxuICAgICAgZGVwczogWydGaXJlc3RvcmVPcHRpb25zJ10sXHJcbiAgICB9LFxyXG4gICAge1xyXG4gICAgICBwcm92aWRlOiAnTGVhZFJlcG9zaXRvcnknLFxyXG4gICAgICB1c2VGYWN0b3J5OiAob3B0aW9uczogRmlyZXN0b3JlT3B0aW9ucyk6IExlYWRSZXBvc2l0b3J5ID0+IHtcclxuICAgICAgICByZXR1cm4gbmV3IExlYWRGaXJlc3RvcmVSZXBvc2l0b3J5KG9wdGlvbnMpXHJcbiAgICAgIH0sXHJcbiAgICAgIGRlcHM6IFsnRmlyZXN0b3JlT3B0aW9ucyddLFxyXG4gICAgfSxcclxuICAgIHtcclxuICAgICAgcHJvdmlkZTogJ0xlZ2FjeU9yZGVyUmVwb3NpdG9yeScsXHJcbiAgICAgIHVzZUZhY3Rvcnk6IChvcHRpb25zOiBGaXJlc3RvcmVPcHRpb25zKTogTGVnYWN5T3JkZXJSZXBvc2l0b3J5ID0+IHtcclxuICAgICAgICByZXR1cm4gbmV3IExlZ2FjeU9yZGVyRmlyZXN0b3JlUmVwb3NpdG9yeShvcHRpb25zKVxyXG4gICAgICB9LFxyXG4gICAgICBkZXBzOiBbJ0ZpcmVzdG9yZU9wdGlvbnMnXSxcclxuICAgIH0sXHJcbiAgICB7XHJcbiAgICAgIHByb3ZpZGU6ICdTaG9wTWVudVJlcG9zaXRvcnknLFxyXG4gICAgICB1c2VGYWN0b3J5OiAob3B0aW9uczogRmlyZXN0b3JlT3B0aW9ucyk6IFNob3BNZW51UmVwb3NpdG9yeSA9PiB7XHJcbiAgICAgICAgcmV0dXJuIG5ldyBTaG9wTWVudUZpcmVzdG9yZVJlcG9zaXRvcnkob3B0aW9ucylcclxuICAgICAgfSxcclxuICAgICAgZGVwczogWydGaXJlc3RvcmVPcHRpb25zJ10sXHJcbiAgICB9LFxyXG4gICAge1xyXG4gICAgICBwcm92aWRlOiAnT3JkZXJSZXBvc2l0b3J5JyxcclxuICAgICAgdXNlRmFjdG9yeTogKG9wdGlvbnM6IEZpcmVzdG9yZU9wdGlvbnMpOiBPcmRlclJlcG9zaXRvcnkgPT4ge1xyXG4gICAgICAgIHJldHVybiBuZXcgT3JkZXJGaXJlc3RvcmVSZXBvc2l0b3J5KG9wdGlvbnMpXHJcbiAgICAgIH0sXHJcbiAgICAgIGRlcHM6IFsnRmlyZXN0b3JlT3B0aW9ucyddLFxyXG4gICAgfSxcclxuICAgIHtcclxuICAgICAgcHJvdmlkZTogJ1BheW1lbnRSZXBvc2l0b3J5JyxcclxuICAgICAgdXNlRmFjdG9yeTogKG9wdGlvbnM6IEZpcmVzdG9yZU9wdGlvbnMpOiBQYXltZW50UmVwb3NpdG9yeSA9PiB7XHJcbiAgICAgICAgcmV0dXJuIG5ldyBQYXltZW50RmlyZXN0b3JlUmVwb3NpdG9yeShvcHRpb25zKVxyXG4gICAgICB9LFxyXG4gICAgICBkZXBzOiBbJ0ZpcmVzdG9yZU9wdGlvbnMnXSxcclxuICAgIH0sXHJcbiAgICB7XHJcbiAgICAgIHByb3ZpZGU6IFByb2R1Y3RGaXJlc3RvcmVSZXBvc2l0b3J5LFxyXG4gICAgICB1c2VGYWN0b3J5OiAob3B0aW9uczogRmlyZXN0b3JlT3B0aW9ucyk6IFByb2R1Y3RSZXBvc2l0b3J5ID0+IHtcclxuICAgICAgICByZXR1cm4gbmV3IFByb2R1Y3RGaXJlc3RvcmVSZXBvc2l0b3J5KG9wdGlvbnMpXHJcbiAgICAgIH0sXHJcbiAgICAgIGRlcHM6IFsnRmlyZXN0b3JlT3B0aW9ucyddLFxyXG4gICAgfSxcclxuICAgIHtcclxuICAgICAgcHJvdmlkZTogJ1Nob3BTZXR0aW5nc1JlcG9zaXRvcnknLFxyXG4gICAgICB1c2VGYWN0b3J5OiAob3B0aW9uczogRmlyZXN0b3JlT3B0aW9ucyk6IFNob3BTZXR0aW5nc1JlcG9zaXRvcnkgPT4ge1xyXG4gICAgICAgIHJldHVybiBuZXcgU2hvcFNldHRpbmdzRmlyZXN0b3JlUmVwb3NpdG9yeShvcHRpb25zKVxyXG4gICAgICB9LFxyXG4gICAgICBkZXBzOiBbJ0ZpcmVzdG9yZU9wdGlvbnMnXSxcclxuICAgIH0sXHJcbiAgICB7XHJcbiAgICAgIHByb3ZpZGU6ICdTdWJzY3JpcHRpb25QYXltZW50UmVwb3NpdG9yeScsXHJcbiAgICAgIHVzZUZhY3Rvcnk6IChcclxuICAgICAgICBvcHRpb25zOiBGaXJlc3RvcmVPcHRpb25zLFxyXG4gICAgICAgIHN1YnNjcmlwdGlvblJlcG9zaXRvcnk6IFN1YnNjcmlwdGlvbkZpcmVzdG9yZVJlcG9zaXRvcnksXHJcbiAgICAgICk6IFN1YnNjcmlwdGlvblBheW1lbnRSZXBvc2l0b3J5ID0+IHtcclxuICAgICAgICByZXR1cm4gbmV3IFN1YnNjcmlwdGlvblBheW1lbnRGaXJlc3RvcmVSZXBvc2l0b3J5KG9wdGlvbnMsIHN1YnNjcmlwdGlvblJlcG9zaXRvcnkpXHJcbiAgICAgIH0sXHJcbiAgICAgIGRlcHM6IFsnRmlyZXN0b3JlT3B0aW9ucycsICdTdWJzY3JpcHRpb25SZXBvc2l0b3J5J10sXHJcbiAgICB9LFxyXG4gICAge1xyXG4gICAgICBwcm92aWRlOiAnU3Vic2NyaXB0aW9uUGxhblJlcG9zaXRvcnknLFxyXG4gICAgICB1c2VGYWN0b3J5OiAob3B0aW9uczogRmlyZXN0b3JlT3B0aW9ucyk6IFN1YnNjcmlwdGlvblBsYW5SZXBvc2l0b3J5ID0+IHtcclxuICAgICAgICByZXR1cm4gbmV3IFN1YnNjcmlwdGlvblBsYW5GaXJlc3RvcmVSZXBvc2l0b3J5KG9wdGlvbnMpXHJcbiAgICAgIH0sXHJcbiAgICAgIGRlcHM6IFsnRmlyZXN0b3JlT3B0aW9ucyddLFxyXG4gICAgfSxcclxuICAgIHtcclxuICAgICAgcHJvdmlkZTogJ1N1YnNjcmlwdGlvblByb2R1Y3RSZXBvc2l0b3J5JyxcclxuICAgICAgdXNlRmFjdG9yeTogKG9wdGlvbnM6IEZpcmVzdG9yZU9wdGlvbnMpOiBTdWJzY3JpcHRpb25Qcm9kdWN0UmVwb3NpdG9yeSA9PiB7XHJcbiAgICAgICAgcmV0dXJuIG5ldyBTdWJzY3JpcHRpb25Qcm9kdWN0RmlyZXN0b3JlUmVwb3NpdG9yeShvcHRpb25zKVxyXG4gICAgICB9LFxyXG4gICAgICBkZXBzOiBbJ0ZpcmVzdG9yZU9wdGlvbnMnXSxcclxuICAgIH0sXHJcbiAgICB7XHJcbiAgICAgIHByb3ZpZGU6ICdTdWJzY3JpcHRpb25SZXBvc2l0b3J5JyxcclxuICAgICAgdXNlRmFjdG9yeTogKG9wdGlvbnM6IEZpcmVzdG9yZU9wdGlvbnMpOiBTdWJzY3JpcHRpb25SZXBvc2l0b3J5ID0+IHtcclxuICAgICAgICByZXR1cm4gbmV3IFN1YnNjcmlwdGlvbkZpcmVzdG9yZVJlcG9zaXRvcnkob3B0aW9ucylcclxuICAgICAgfSxcclxuICAgICAgZGVwczogWydGaXJlc3RvcmVPcHRpb25zJ10sXHJcbiAgICB9LFxyXG4gICAge1xyXG4gICAgICBwcm92aWRlOiAnVXNlclJlcG9zaXRvcnknLFxyXG4gICAgICB1c2VGYWN0b3J5OiAob3B0aW9uczogRmlyZXN0b3JlT3B0aW9ucyk6IFVzZXJSZXBvc2l0b3J5ID0+IHtcclxuICAgICAgICByZXR1cm4gbmV3IFVzZXJGaXJlc3RvcmVSZXBvc2l0b3J5KG9wdGlvbnMpXHJcbiAgICAgIH0sXHJcbiAgICAgIGRlcHM6IFsnRmlyZXN0b3JlT3B0aW9ucyddLFxyXG4gICAgfSxcclxuICAgIHtcclxuICAgICAgcHJvdmlkZTogJ1VzZXJBZGRyZXNzUmVwb3NpdG9yeScsXHJcbiAgICAgIHVzZUZhY3Rvcnk6IChvcHRpb25zOiBGaXJlc3RvcmVPcHRpb25zLCB1c2VyUmVwb3NpdG9yeTogVXNlckZpcmVzdG9yZVJlcG9zaXRvcnkpOiBVc2VyQWRkcmVzc1JlcG9zaXRvcnkgPT4ge1xyXG4gICAgICAgIHJldHVybiBuZXcgVXNlckFkZHJlc3NGaXJlc3RvcmVSZXBvc2l0b3J5KG9wdGlvbnMsIHVzZXJSZXBvc2l0b3J5KVxyXG4gICAgICB9LFxyXG4gICAgICBkZXBzOiBbJ0ZpcmVzdG9yZU9wdGlvbnMnLCAnVXNlclJlcG9zaXRvcnknXSxcclxuICAgIH0sXHJcbiAgICB7XHJcbiAgICAgIHByb3ZpZGU6ICdVc2VyUGF5bWVudE1ldGhvZFJlcG9zaXRvcnknLFxyXG4gICAgICB1c2VGYWN0b3J5OiAob3B0aW9uczogRmlyZXN0b3JlT3B0aW9ucywgdXNlclJlcG9zaXRvcnk6IFVzZXJGaXJlc3RvcmVSZXBvc2l0b3J5KTogVXNlclBheW1lbnRNZXRob2RSZXBvc2l0b3J5ID0+IHtcclxuICAgICAgICByZXR1cm4gbmV3IFVzZXJQYXltZW50TWV0aG9kRmlyZXN0b3JlUmVwb3NpdG9yeShvcHRpb25zLCB1c2VyUmVwb3NpdG9yeSlcclxuICAgICAgfSxcclxuICAgICAgZGVwczogWydGaXJlc3RvcmVPcHRpb25zJywgJ1VzZXJSZXBvc2l0b3J5J10sXHJcbiAgICB9LFxyXG4gICAge1xyXG4gICAgICBwcm92aWRlOiAnU3Vic2NyaXB0aW9uTWF0ZXJpYWxpemF0aW9uUmVwb3NpdG9yeScsXHJcbiAgICAgIHVzZUZhY3Rvcnk6IChvcHRpb25zOiBGaXJlc3RvcmVPcHRpb25zKTogU3Vic2NyaXB0aW9uTWF0ZXJpYWxpemF0aW9uUmVwb3NpdG9yeSA9PiB7XHJcbiAgICAgICAgcmV0dXJuIG5ldyBTdWJzY3JpcHRpb25NYXRlcmlhbGl6YXRpb25GaXJlc3RvcmVSZXBvc2l0b3J5KG9wdGlvbnMpXHJcbiAgICAgIH0sXHJcbiAgICAgIGRlcHM6IFsnRmlyZXN0b3JlT3B0aW9ucyddLFxyXG4gICAgfSxcclxuICAgIHtcclxuICAgICAgcHJvdmlkZTogJ1N1YnNjcmlwdGlvblN1bW1hcnlSZXBvc2l0b3J5JyxcclxuICAgICAgdXNlRmFjdG9yeTogKG9wdGlvbnM6IEZpcmVzdG9yZU9wdGlvbnMpOiBTdWJzY3JpcHRpb25TdW1tYXJ5UmVwb3NpdG9yeSA9PiB7XHJcbiAgICAgICAgcmV0dXJuIG5ldyBTdWJzY3JpcHRpb25TdW1tYXJ5RmlyZXN0b3JlUmVwb3NpdG9yeShvcHRpb25zKVxyXG4gICAgICB9LFxyXG4gICAgICBkZXBzOiBbJ0ZpcmVzdG9yZU9wdGlvbnMnXSxcclxuICAgIH0sXHJcbiAgICB7XHJcbiAgICAgIHByb3ZpZGU6IFByb2R1Y3RWYXJpYW50RmlyZXN0b3JlUmVwb3NpdG9yeSxcclxuICAgICAgdXNlRmFjdG9yeTogKG9wdGlvbnM6IEZpcmVzdG9yZU9wdGlvbnMsIHByb2R1Y3RSZXBvc2l0b3J5OiBQcm9kdWN0RmlyZXN0b3JlUmVwb3NpdG9yeSk6IFZhcmlhbnRSZXBvc2l0b3J5ID0+IHtcclxuICAgICAgICByZXR1cm4gbmV3IFByb2R1Y3RWYXJpYW50RmlyZXN0b3JlUmVwb3NpdG9yeShvcHRpb25zLCBwcm9kdWN0UmVwb3NpdG9yeSlcclxuICAgICAgfSxcclxuICAgICAgZGVwczogWydGaXJlc3RvcmVPcHRpb25zJywgUHJvZHVjdEZpcmVzdG9yZVJlcG9zaXRvcnldLFxyXG4gICAgfSxcclxuICAgIHtcclxuICAgICAgcHJvdmlkZTogJ09yZGVyQmxvY2tlZFJlcG9zaXRvcnknLFxyXG4gICAgICB1c2VGYWN0b3J5OiAob3B0aW9uczogRmlyZXN0b3JlT3B0aW9ucyk6IE9yZGVyQmxvY2tlZFJlcG9zaXRvcnkgPT4ge1xyXG4gICAgICAgIHJldHVybiBuZXcgT3JkZXJCbG9ja2VkRmlyZXN0b3JlUmVwb3NpdG9yeShvcHRpb25zKVxyXG4gICAgICB9LFxyXG4gICAgICBkZXBzOiBbJ0ZpcmVzdG9yZU9wdGlvbnMnXSxcclxuICAgIH0sXHJcbiAgXSxcclxufSlcclxuZXhwb3J0IGNsYXNzIEFuZ3VsYXJGaXJlc3RvcmVNb2R1bGUge1xyXG4gIHN0YXRpYyBpbml0aWFsaXplQXBwKFxyXG4gICAgb3B0aW9uczoge1xyXG4gICAgICBmaXJlYmFzZTogRmlyZWJhc2VPcHRpb25zXHJcbiAgICAgIGVsYXN0aWNTZWFyY2g6IEF4aW9zRWxhc3RpY1NlYXJjaENvbmZpZ1xyXG4gICAgfSxcclxuICAgIG5hbWVPckNvbmZpZz86IHN0cmluZyB8IEZpcmViYXNlQXBwQ29uZmlnLFxyXG4gICk6IE1vZHVsZVdpdGhQcm92aWRlcnM8QW5ndWxhckZpcmVzdG9yZU1vZHVsZT4ge1xyXG4gICAgcmV0dXJuIHtcclxuICAgICAgbmdNb2R1bGU6IEFuZ3VsYXJGaXJlc3RvcmVNb2R1bGUsXHJcbiAgICAgIHByb3ZpZGVyczogW1xyXG4gICAgICAgIHsgcHJvdmlkZTogRklSRUJBU0VfT1BUSU9OUywgdXNlVmFsdWU6IG9wdGlvbnMuZmlyZWJhc2UgfSxcclxuICAgICAgICB7IHByb3ZpZGU6IEZJUkVCQVNFX0FQUF9OQU1FLCB1c2VWYWx1ZTogbmFtZU9yQ29uZmlnIH0sXHJcbiAgICAgICAgeyBwcm92aWRlOiBFU19DT05GSUcsIHVzZVZhbHVlOiBvcHRpb25zLmVsYXN0aWNTZWFyY2ggfSxcclxuICAgICAgXSxcclxuICAgIH1cclxuICB9XHJcbn1cclxuIl19
|
|
513
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYW5ndWxhci1maXJlc3RvcmUubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vcHJvamVjdHMvY29ubmVjdC1hbmd1bGFyL3NyYy9hbmd1bGFyLWZpcmVzdG9yZS5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGlCQUFpQixFQUFFLGdCQUFnQixFQUFFLE1BQU0saUJBQWlCLENBQUE7QUFDckUsT0FBTyxFQUFpQyxRQUFRLEVBQUUsV0FBVyxFQUFFLE1BQU0sZUFBZSxDQUFBO0FBQ3BGLE9BQU8sRUFBRSxXQUFXLEVBQW1CLE1BQU0sbUJBQW1CLENBQUE7QUFDaEUsT0FBTyxFQUFFLFNBQVMsRUFBRSxtQkFBbUIsRUFBRSxnQkFBZ0IsRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHlCQUF5QixDQUFBO0FBQzVHLE9BQU8sRUFHTCwwQkFBMEIsRUFFMUIsb0NBQW9DLEVBRXBDLGtDQUFrQyxFQUVsQywyQkFBMkIsRUFFM0IsMkJBQTJCLEVBRTNCLHVDQUF1QyxFQUV2Qyx1QkFBdUIsRUFDdkIseUJBQXlCLEVBS3pCLHVCQUF1QixFQUV2Qix1QkFBdUIsRUFFdkIsOEJBQThCLEVBRTlCLHNCQUFzQixFQUV0QiwrQkFBK0IsRUFFL0Isd0JBQXdCLEVBRXhCLDBCQUEwQixFQUUxQiwwQkFBMEIsRUFFMUIsaUNBQWlDLEVBQ2pDLDJCQUEyQixFQUUzQiwrQkFBK0IsRUFFL0Isc0NBQXNDLEVBQ3RDLCtCQUErQixFQUMvQiw4Q0FBOEMsRUFFOUMsc0NBQXNDLEVBRXRDLG1DQUFtQyxFQUVuQyxzQ0FBc0MsRUFHdEMsc0NBQXNDLEVBRXRDLDhCQUE4QixFQUU5QixvQ0FBb0MsRUFDcEMsdUJBQXVCLEVBQ3ZCLG9DQUFvQyxHQUlyQyxNQUFNLG1CQUFtQixDQUFBO0FBRTFCLE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLGlDQUFpQyxDQUFBO0FBQzNFLE9BQU8sRUFBRSxTQUFTLEVBQUUsaUJBQWlC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Q0FBQzt5QkFDM0I7cUJBQ0Y7aUJBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBpc1BsYXRmb3JtQnJvd3NlciwgaXNQbGF0Zm9ybVNlcnZlciB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbidcclxuaW1wb3J0IHsgSW5qZWN0b3IsIE1vZHVsZVdpdGhQcm92aWRlcnMsIE5nTW9kdWxlLCBQTEFURk9STV9JRCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnXHJcbmltcG9ydCB7IEZpcmViYXNlQXBwLCBGaXJlYmFzZU9wdGlvbnMgfSBmcm9tICdAYW5ndWxhci9maXJlL2FwcCdcclxuaW1wb3J0IHsgRmlyZXN0b3JlLCBpbml0aWFsaXplRmlyZXN0b3JlLCBtZW1vcnlMb2NhbENhY2hlLCBwcm92aWRlRmlyZXN0b3JlIH0gZnJvbSAnQGFuZ3VsYXIvZmlyZS9maXJlc3RvcmUnXHJcbmltcG9ydCB7XHJcbiAgQXhpb3NFbGFzdGljU2VhcmNoQ29uZmlnLFxyXG4gIEJlYXV0eVByb2ZpbGVSZXBvc2l0b3J5LFxyXG4gIEJ1eTJXaW5GaXJlc3RvcmVSZXBvc2l0b3J5LFxyXG4gIEJ1eTJXaW5SZXBvc2l0b3J5LFxyXG4gIENhbXBhaWduRGFzaGJvYXJkRmlyZXN0b3JlUmVwb3NpdG9yeSxcclxuICBDYW1wYWlnbkRhc2hib2FyZFJlcG9zaXRvcnksXHJcbiAgQ2FtcGFpZ25IYXNodGFnRmlyZXN0b3JlUmVwb3NpdG9yeSxcclxuICBDYW1wYWlnbkhhc2h0YWdSZXBvc2l0b3J5LFxyXG4gIENhdGVnb3J5RmlyZXN0b3JlUmVwb3NpdG9yeSxcclxuICBDYXRlZ29yeVJlcG9zaXRvcnksXHJcbiAgQ2hlY2tvdXRGaXJlc3RvcmVSZXBvc2l0b3J5LFxyXG4gIENoZWNrb3V0UmVwb3NpdG9yeSxcclxuICBDaGVja291dFN1YnNjcmlwdGlvbkZpcmVzdG9yZVJlcG9zaXRvcnksXHJcbiAgQ2hlY2tvdXRTdWJzY3JpcHRpb25SZXBvc2l0b3J5LFxyXG4gIENvbm5lY3RGaXJlc3RvcmVTZXJ2aWNlLFxyXG4gIENvdXBvbkZpcmVzdG9yZVJlcG9zaXRvcnksXHJcbiAgQ291cG9uUmVwb3NpdG9yeSxcclxuICBFZGl0aW9uUmVwb3NpdG9yeSxcclxuICBGaXJlc3RvcmVDb25zdHJ1Y3RvclBhcmFtcyxcclxuICBGaXJlc3RvcmVJbnRlcnRjZXB0b3JSZXF1ZXN0UGFyYW1zLFxyXG4gIEhvbWVGaXJlc3RvcmVSZXBvc2l0b3J5LFxyXG4gIEhvbWVSZXBvc2l0b3J5LFxyXG4gIExlYWRGaXJlc3RvcmVSZXBvc2l0b3J5LFxyXG4gIExlYWRSZXBvc2l0b3J5LFxyXG4gIExlZ2FjeU9yZGVyRmlyZXN0b3JlUmVwb3NpdG9yeSxcclxuICBMZWdhY3lPcmRlclJlcG9zaXRvcnksXHJcbiAgTG9nRmlyZXN0b3JlUmVwb3NpdG9yeSxcclxuICBMb2dSZXBvc2l0b3J5LFxyXG4gIE9yZGVyQmxvY2tlZEZpcmVzdG9yZVJlcG9zaXRvcnksXHJcbiAgT3JkZXJCbG9ja2VkUmVwb3NpdG9yeSxcclxuICBPcmRlckZpcmVzdG9yZVJlcG9zaXRvcnksXHJcbiAgT3JkZXJSZXBvc2l0b3J5LFxyXG4gIFBheW1lbnRGaXJlc3RvcmVSZXBvc2l0b3J5LFxyXG4gIFBheW1lbnRSZXBvc2l0b3J5LFxyXG4gIFByb2R1Y3RGaXJlc3RvcmVSZXBvc2l0b3J5LFxyXG4gIFByb2R1Y3RSZXBvc2l0b3J5LFxyXG4gIFByb2R1Y3RWYXJpYW50RmlyZXN0b3JlUmVwb3NpdG9yeSxcclxuICBTaG9wTWVudUZpcmVzdG9yZVJlcG9zaXRvcnksXHJcbiAgU2hvcE1lbnVSZXBvc2l0b3J5LFxyXG4gIFNob3BTZXR0aW5nc0ZpcmVzdG9yZVJlcG9zaXRvcnksXHJcbiAgU2hvcFNldHRpbmdzUmVwb3NpdG9yeSxcclxuICBTdWJzY3JpcHRpb25FZGl0aW9uRmlyZXN0b3JlUmVwb3NpdG9yeSxcclxuICBTdWJzY3JpcHRpb25GaXJlc3RvcmVSZXBvc2l0b3J5LFxyXG4gIFN1YnNjcmlwdGlvbk1hdGVyaWFsaXphdGlvbkZpcmVzdG9yZVJlcG9zaXRvcnksXHJcbiAgU3Vic2NyaXB0aW9uTWF0ZXJpYWxpemF0aW9uUmVwb3NpdG9yeSxcclxuICBTdWJzY3JpcHRpb25QYXltZW50RmlyZXN0b3JlUmVwb3NpdG9yeSxcclxuICBTdWJzY3JpcHRpb25QYXltZW50UmVwb3NpdG9yeSxcclxuICBTdWJzY3JpcHRpb25QbGFuRmlyZXN0b3JlUmVwb3NpdG9yeSxcclxuICBTdWJzY3JpcHRpb25QbGFuUmVwb3NpdG9yeSxcclxuICBTdWJzY3JpcHRpb25Qcm9kdWN0RmlyZXN0b3JlUmVwb3NpdG9yeSxcclxuICBTdWJzY3JpcHRpb25Qcm9kdWN0UmVwb3NpdG9yeSxcclxuICBTdWJzY3JpcHRpb25SZXBvc2l0b3J5LFxyXG4gIFN1YnNjcmlwdGlvblN1bW1hcnlGaXJlc3RvcmVSZXBvc2l0b3J5LFxyXG4gIFN1YnNjcmlwdGlvblN1bW1hcnlSZXBvc2l0b3J5LFxyXG4gIFVzZXJBZGRyZXNzRmlyZXN0b3JlUmVwb3NpdG9yeSxcclxuICBVc2VyQWRkcmVzc1JlcG9zaXRvcnksXHJcbiAgVXNlckJlYXV0eVByb2ZpbGVGaXJlc3RvcmVSZXBvc2l0b3J5LFxyXG4gIFVzZXJGaXJlc3RvcmVSZXBvc2l0b3J5LFxyXG4gIFVzZXJQYXltZW50TWV0aG9kRmlyZXN0b3JlUmVwb3NpdG9yeSxcclxuICBVc2VyUGF5bWVudE1ldGhvZFJlcG9zaXRvcnksXHJcbiAgVXNlclJlcG9zaXRvcnksXHJcbiAgVmFyaWFudFJlcG9zaXRvcnksXHJcbn0gZnJvbSAnQGluZnJhYjRhL2Nvbm5lY3QnXHJcblxyXG5pbXBvcnQgeyBBbmd1bGFyRWxhc3RpY1NlYWNoTW9kdWxlIH0gZnJvbSAnLi9hbmd1bGFyLWVsYXN0aWMtc2VhcmNoLm1vZHVsZSdcclxuaW1wb3J0IHsgRVNfQ09ORklHLCBGSVJFQkFTRV9BUFBfTkFNRSwgRklSRUJBU0VfT1BUSU9OUyB9IGZyb20gJy4vY29uc3RzJ1xyXG5pbXBvcnQgeyBNb2JpbGVPcGVyYXRpb25TeXN0ZW1DaGVja2VySGVscGVyIH0gZnJvbSAnLi9oZWxwZXJzJ1xyXG5pbXBvcnQgeyBGaXJlYmFzZUFwcENvbmZpZyB9IGZyb20gJy4vdHlwZXMnXHJcblxyXG5leHBvcnQgdHlwZSBGaXJlc3RvcmVPcHRpb25zID0gUGljazxGaXJlc3RvcmVDb25zdHJ1Y3RvclBhcmFtczxhbnk+LCAnZmlyZXN0b3JlJyB8ICdpbnRlcmNlcHRvcnMnPlxyXG5cclxuQE5nTW9kdWxlKHtcclxuICBpbXBvcnRzOiBbXHJcbiAgICBBbmd1bGFyRWxhc3RpY1NlYWNoTW9kdWxlLFxyXG4gICAgcHJvdmlkZUZpcmVzdG9yZSgoaW5qZWN0b3I6IEluamVjdG9yKSA9PiB7XHJcbiAgICAgIGNvbnN0IHBsYXRmb3JtSWQgPSBpbmplY3Rvci5nZXQoUExBVEZPUk1fSUQpXHJcblxyXG4gICAgICBpZiAoaXNQbGF0Zm9ybVNlcnZlcihwbGF0Zm9ybUlkKSB8fCAhTW9iaWxlT3BlcmF0aW9uU3lzdGVtQ2hlY2tlckhlbHBlci5pc0FwcGxlRGV2aWNlKCkpXHJcbiAgICAgICAgcmV0dXJuIGluaXRpYWxpemVGaXJlc3RvcmUoaW5qZWN0b3IuZ2V0KEZpcmViYXNlQXBwKSwge1xyXG4gICAgICAgICAgaWdub3JlVW5kZWZpbmVkUHJvcGVydGllczogdHJ1ZSxcclxuICAgICAgICB9KVxyXG5cclxuICAgICAgY29uc3QgZmlyZXN0b3JlID0gaW5pdGlhbGl6ZUZpcmVzdG9yZShpbmplY3Rvci5nZXQoRmlyZWJhc2VBcHApLCB7XHJcbiAgICAgICAgZXhwZXJpbWVudGFsRm9yY2VMb25nUG9sbGluZzogdHJ1ZSxcclxuICAgICAgICBpZ25vcmVVbmRlZmluZWRQcm9wZXJ0aWVzOiB0cnVlLFxyXG4gICAgICAgIGxvY2FsQ2FjaGU6IG1lbW9yeUxvY2FsQ2FjaGUoKSxcclxuICAgICAgfSlcclxuXHJcbiAgICAgIHJldHVybiBmaXJlc3RvcmVcclxuICAgIH0pLFxyXG4gIF0sXHJcbiAgcHJvdmlkZXJzOiBbXHJcbiAgICB7XHJcbiAgICAgIHByb3ZpZGU6ICdGaXJlc3RvcmVPcHRpb25zJyxcclxuICAgICAgdXNlRmFjdG9yeTogKGZpcmVzdG9yZTogRmlyZXN0b3JlLCBwbGF0Zm9ybUlkOiBzdHJpbmcpOiBGaXJlc3RvcmVPcHRpb25zID0+ICh7XHJcbiAgICAgICAgZmlyZXN0b3JlOiBuZXcgQ29ubmVjdEZpcmVzdG9yZVNlcnZpY2UoZmlyZXN0b3JlKSxcclxuICAgICAgICBpbnRlcmNlcHRvcnM6IHtcclxuICAgICAgICAgIHJlcXVlc3Q6IChyZXF1ZXN0OiBGaXJlc3RvcmVJbnRlcnRjZXB0b3JSZXF1ZXN0UGFyYW1zPGFueT4gJiB7IGludGVydmFsOiBSZXR1cm5UeXBlPHR5cGVvZiBzZXRUaW1lb3V0PiB9KSA9PiB7XHJcbiAgICAgICAgICAgIGlmIChpc1BsYXRmb3JtQnJvd3NlcihwbGF0Zm9ybUlkKSkgcmV0dXJuIHJlcXVlc3RcclxuXHJcbiAgICAgICAgICAgIGNvbnN0IGludGVydmFsID0gc2V0SW50ZXJ2YWwoKCkgPT4ge30sIDEwMClcclxuXHJcbiAgICAgICAgICAgIHJlcXVlc3QuaW50ZXJ2YWwgPSBpbnRlcnZhbFxyXG5cclxuICAgICAgICAgICAgcmV0dXJuIHJlcXVlc3RcclxuICAgICAgICAgIH0sXHJcbiAgICAgICAgICByZXNwb25zZTogKFxyXG4gICAgICAgICAgICByZXNwb25zZTogYW55LFxyXG4gICAgICAgICAgICByZXF1ZXN0OiBGaXJlc3RvcmVJbnRlcnRjZXB0b3JSZXF1ZXN0UGFyYW1zPGFueT4gJiB7IGludGVydmFsOiBSZXR1cm5UeXBlPHR5cGVvZiBzZXRUaW1lb3V0PiB9LFxyXG4gICAgICAgICAgKSA9PiB7XHJcbiAgICAgICAgICAgIGlmIChpc1BsYXRmb3JtQnJvd3NlcihwbGF0Zm9ybUlkKSkgcmV0dXJuIHJlc3BvbnNlXHJcblxyXG4gICAgICAgICAgICBjbGVhckludGVydmFsKHJlcXVlc3QuaW50ZXJ2YWwpXHJcblxyXG4gICAgICAgICAgICByZXR1cm4gcmVzcG9uc2VcclxuICAgICAgICAgIH0sXHJcbiAgICAgICAgfSxcclxuICAgICAgfSksXHJcbiAgICAgIGRlcHM6IFtGaXJlc3RvcmUsIFBMQVRGT1JNX0lEXSxcclxuICAgIH0sXHJcbiAgICB7XHJcbiAgICAgIHByb3ZpZGU6ICdCZWF1dHlQcm9maWxlUmVwb3NpdG9yeScsXHJcbiAgICAgIHVzZUZhY3Rvcnk6IChjb25maWc6IEZpcmVzdG9yZU9wdGlvbnMsIHVzZXJSZXBvc2l0b3J5OiBVc2VyRmlyZXN0b3JlUmVwb3NpdG9yeSk6IEJlYXV0eVByb2ZpbGVSZXBvc2l0b3J5ID0+IHtcclxuICAgICAgICByZXR1cm4gbmV3IFVzZXJCZWF1dHlQcm9maWxlRmlyZXN0b3JlUmVwb3NpdG9yeShjb25maWcsIHVzZXJSZXBvc2l0b3J5KVxyXG4gICAgICB9LFxyXG4gICAgICBkZXBzOiBbJ0ZpcmVzdG9yZU9wdGlvbnMnLCAnVXNlclJlcG9zaXRvcnknXSxcclxuICAgIH0sXHJcbiAgICB7XHJcbiAgICAgIHByb3ZpZGU6ICdCdXkyV2luUmVwb3NpdG9yeScsXHJcbiAgICAgIHVzZUZhY3Rvcnk6IChvcHRpb25zOiBGaXJlc3RvcmVPcHRpb25zKTogQnV5MldpblJlcG9zaXRvcnkgPT4ge1xyXG4gICAgICAgIHJldHVybiBuZXcgQnV5MldpbkZpcmVzdG9yZVJlcG9zaXRvcnkob3B0aW9ucylcclxuICAgICAgfSxcclxuICAgICAgZGVwczogWydGaXJlc3RvcmVPcHRpb25zJ10sXHJcbiAgICB9LFxyXG4gICAge1xyXG4gICAgICBwcm92aWRlOiBDYXRlZ29yeUZpcmVzdG9yZVJlcG9zaXRvcnksXHJcbiAgICAgIHVzZUZhY3Rvcnk6IChvcHRpb25zOiBGaXJlc3RvcmVPcHRpb25zKTogQ2F0ZWdvcnlSZXBvc2l0b3J5ID0+IHtcclxuICAgICAgICByZXR1cm4gbmV3IENhdGVnb3J5RmlyZXN0b3JlUmVwb3NpdG9yeShvcHRpb25zKVxyXG4gICAgICB9LFxyXG4gICAgICBkZXBzOiBbJ0ZpcmVzdG9yZU9wdGlvbnMnXSxcclxuICAgIH0sXHJcbiAgICB7XHJcbiAgICAgIHByb3ZpZGU6ICdDaGVja291dFJlcG9zaXRvcnknLFxyXG4gICAgICB1c2VGYWN0b3J5OiAob3B0aW9uczogRmlyZXN0b3JlT3B0aW9ucyk6IENoZWNrb3V0UmVwb3NpdG9yeSA9PiB7XHJcbiAgICAgICAgcmV0dXJuIG5ldyBDaGVja291dEZpcmVzdG9yZVJlcG9zaXRvcnkob3B0aW9ucylcclxuICAgICAgfSxcclxuICAgICAgZGVwczogWydGaXJlc3RvcmVPcHRpb25zJ10sXHJcbiAgICB9LFxyXG4gICAge1xyXG4gICAgICBwcm92aWRlOiAnQ2hlY2tvdXRTdWJzY3JpcHRpb25SZXBvc2l0b3J5JyxcclxuICAgICAgdXNlRmFjdG9yeTogKG9wdGlvbnM6IEZpcmVzdG9yZU9wdGlvbnMpOiBDaGVja291dFN1YnNjcmlwdGlvblJlcG9zaXRvcnkgPT4ge1xyXG4gICAgICAgIHJldHVybiBuZXcgQ2hlY2tvdXRTdWJzY3JpcHRpb25GaXJlc3RvcmVSZXBvc2l0b3J5KG9wdGlvbnMpXHJcbiAgICAgIH0sXHJcbiAgICAgIGRlcHM6IFsnRmlyZXN0b3JlT3B0aW9ucyddLFxyXG4gICAgfSxcclxuICAgIHtcclxuICAgICAgcHJvdmlkZTogJ0NvdXBvblJlcG9zaXRvcnknLFxyXG4gICAgICB1c2VGYWN0b3J5OiAob3B0aW9uczogRmlyZXN0b3JlT3B0aW9ucyk6IENvdXBvblJlcG9zaXRvcnkgPT4ge1xyXG4gICAgICAgIHJldHVybiBuZXcgQ291cG9uRmlyZXN0b3JlUmVwb3NpdG9yeShvcHRpb25zKVxyXG4gICAgICB9LFxyXG4gICAgICBkZXBzOiBbJ0ZpcmVzdG9yZU9wdGlvbnMnXSxcclxuICAgIH0sXHJcbiAgICB7XHJcbiAgICAgIHByb3ZpZGU6ICdDYW1wYWlnbkhhc2h0YWdSZXBvc2l0b3J5JyxcclxuICAgICAgdXNlRmFjdG9yeTogKG9wdGlvbnM6IEZpcmVzdG9yZU9wdGlvbnMpOiBDYW1wYWlnbkhhc2h0YWdSZXBvc2l0b3J5ID0+IHtcclxuICAgICAgICByZXR1cm4gbmV3IENhbXBhaWduSGFzaHRhZ0ZpcmVzdG9yZVJlcG9zaXRvcnkob3B0aW9ucylcclxuICAgICAgfSxcclxuICAgICAgZGVwczogWydGaXJlc3RvcmVPcHRpb25zJ10sXHJcbiAgICB9LFxyXG4gICAge1xyXG4gICAgICBwcm92aWRlOiAnQ2FtcGFpZ25EYXNoYm9hcmRSZXBvc2l0b3J5JyxcclxuICAgICAgdXNlRmFjdG9yeTogKG9wdGlvbnM6IEZpcmVzdG9yZU9wdGlvbnMpOiBDYW1wYWlnbkRhc2hib2FyZFJlcG9zaXRvcnkgPT4ge1xyXG4gICAgICAgIHJldHVybiBuZXcgQ2FtcGFpZ25EYXNoYm9hcmRGaXJlc3RvcmVSZXBvc2l0b3J5KG9wdGlvbnMpXHJcbiAgICAgIH0sXHJcbiAgICAgIGRlcHM6IFsnRmlyZXN0b3JlT3B0aW9ucyddLFxyXG4gICAgfSxcclxuICAgIHtcclxuICAgICAgcHJvdmlkZTogJ0VkaXRpb25SZXBvc2l0b3J5JyxcclxuICAgICAgdXNlRmFjdG9yeTogKFxyXG4gICAgICAgIG9wdGlvbnM6IEZpcmVzdG9yZU9wdGlvbnMsXHJcbiAgICAgICAgc3Vic2NyaXB0aW9uUmVwb3NpdG9yeTogU3Vic2NyaXB0aW9uRmlyZXN0b3JlUmVwb3NpdG9yeSxcclxuICAgICAgKTogRWRpdGlvblJlcG9zaXRvcnkgPT4ge1xyXG4gICAgICAgIHJldHVybiBuZXcgU3Vic2NyaXB0aW9uRWRpdGlvbkZpcmVzdG9yZVJlcG9zaXRvcnkob3B0aW9ucywgc3Vic2NyaXB0aW9uUmVwb3NpdG9yeSlcclxuICAgICAgfSxcclxuICAgICAgZGVwczogWydGaXJlc3RvcmVPcHRpb25zJywgJ1N1YnNjcmlwdGlvblJlcG9zaXRvcnknXSxcclxuICAgIH0sXHJcbiAgICB7XHJcbiAgICAgIHByb3ZpZGU6ICdIb21lUmVwb3NpdG9yeScsXHJcbiAgICAgIHVzZUZhY3Rvcnk6IChvcHRpb25zOiBGaXJlc3RvcmVPcHRpb25zKTogSG9tZVJlcG9zaXRvcnkgPT4ge1xyXG4gICAgICAgIHJldHVybiBuZXcgSG9tZUZpcmVzdG9yZVJlcG9zaXRvcnkob3B0aW9ucylcclxuICAgICAgfSxcclxuICAgICAgZGVwczogWydGaXJlc3RvcmVPcHRpb25zJ10sXHJcbiAgICB9LFxyXG4gICAge1xyXG4gICAgICBwcm92aWRlOiAnTGVhZFJlcG9zaXRvcnknLFxyXG4gICAgICB1c2VGYWN0b3J5OiAob3B0aW9uczogRmlyZXN0b3JlT3B0aW9ucyk6IExlYWRSZXBvc2l0b3J5ID0+IHtcclxuICAgICAgICByZXR1cm4gbmV3IExlYWRGaXJlc3RvcmVSZXBvc2l0b3J5KG9wdGlvbnMpXHJcbiAgICAgIH0sXHJcbiAgICAgIGRlcHM6IFsnRmlyZXN0b3JlT3B0aW9ucyddLFxyXG4gICAgfSxcclxuICAgIHtcclxuICAgICAgcHJvdmlkZTogJ0xlZ2FjeU9yZGVyUmVwb3NpdG9yeScsXHJcbiAgICAgIHVzZUZhY3Rvcnk6IChvcHRpb25zOiBGaXJlc3RvcmVPcHRpb25zKTogTGVnYWN5T3JkZXJSZXBvc2l0b3J5ID0+IHtcclxuICAgICAgICByZXR1cm4gbmV3IExlZ2FjeU9yZGVyRmlyZXN0b3JlUmVwb3NpdG9yeShvcHRpb25zKVxyXG4gICAgICB9LFxyXG4gICAgICBkZXBzOiBbJ0ZpcmVzdG9yZU9wdGlvbnMnXSxcclxuICAgIH0sXHJcbiAgICB7XHJcbiAgICAgIHByb3ZpZGU6ICdTaG9wTWVudVJlcG9zaXRvcnknLFxyXG4gICAgICB1c2VGYWN0b3J5OiAob3B0aW9uczogRmlyZXN0b3JlT3B0aW9ucyk6IFNob3BNZW51UmVwb3NpdG9yeSA9PiB7XHJcbiAgICAgICAgcmV0dXJuIG5ldyBTaG9wTWVudUZpcmVzdG9yZVJlcG9zaXRvcnkob3B0aW9ucylcclxuICAgICAgfSxcclxuICAgICAgZGVwczogWydGaXJlc3RvcmVPcHRpb25zJ10sXHJcbiAgICB9LFxyXG4gICAge1xyXG4gICAgICBwcm92aWRlOiAnT3JkZXJSZXBvc2l0b3J5JyxcclxuICAgICAgdXNlRmFjdG9yeTogKG9wdGlvbnM6IEZpcmVzdG9yZU9wdGlvbnMpOiBPcmRlclJlcG9zaXRvcnkgPT4ge1xyXG4gICAgICAgIHJldHVybiBuZXcgT3JkZXJGaXJlc3RvcmVSZXBvc2l0b3J5KG9wdGlvbnMpXHJcbiAgICAgIH0sXHJcbiAgICAgIGRlcHM6IFsnRmlyZXN0b3JlT3B0aW9ucyddLFxyXG4gICAgfSxcclxuICAgIHtcclxuICAgICAgcHJvdmlkZTogJ1BheW1lbnRSZXBvc2l0b3J5JyxcclxuICAgICAgdXNlRmFjdG9yeTogKG9wdGlvbnM6IEZpcmVzdG9yZU9wdGlvbnMpOiBQYXltZW50UmVwb3NpdG9yeSA9PiB7XHJcbiAgICAgICAgcmV0dXJuIG5ldyBQYXltZW50RmlyZXN0b3JlUmVwb3NpdG9yeShvcHRpb25zKVxyXG4gICAgICB9LFxyXG4gICAgICBkZXBzOiBbJ0ZpcmVzdG9yZU9wdGlvbnMnXSxcclxuICAgIH0sXHJcbiAgICB7XHJcbiAgICAgIHByb3ZpZGU6IFByb2R1Y3RGaXJlc3RvcmVSZXBvc2l0b3J5LFxyXG4gICAgICB1c2VGYWN0b3J5OiAob3B0aW9uczogRmlyZXN0b3JlT3B0aW9ucyk6IFByb2R1Y3RSZXBvc2l0b3J5ID0+IHtcclxuICAgICAgICByZXR1cm4gbmV3IFByb2R1Y3RGaXJlc3RvcmVSZXBvc2l0b3J5KG9wdGlvbnMpXHJcbiAgICAgIH0sXHJcbiAgICAgIGRlcHM6IFsnRmlyZXN0b3JlT3B0aW9ucyddLFxyXG4gICAgfSxcclxuICAgIHtcclxuICAgICAgcHJvdmlkZTogJ1Nob3BTZXR0aW5nc1JlcG9zaXRvcnknLFxyXG4gICAgICB1c2VGYWN0b3J5OiAob3B0aW9uczogRmlyZXN0b3JlT3B0aW9ucyk6IFNob3BTZXR0aW5nc1JlcG9zaXRvcnkgPT4ge1xyXG4gICAgICAgIHJldHVybiBuZXcgU2hvcFNldHRpbmdzRmlyZXN0b3JlUmVwb3NpdG9yeShvcHRpb25zKVxyXG4gICAgICB9LFxyXG4gICAgICBkZXBzOiBbJ0ZpcmVzdG9yZU9wdGlvbnMnXSxcclxuICAgIH0sXHJcbiAgICB7XHJcbiAgICAgIHByb3ZpZGU6ICdTdWJzY3JpcHRpb25QYXltZW50UmVwb3NpdG9yeScsXHJcbiAgICAgIHVzZUZhY3Rvcnk6IChcclxuICAgICAgICBvcHRpb25zOiBGaXJlc3RvcmVPcHRpb25zLFxyXG4gICAgICAgIHN1YnNjcmlwdGlvblJlcG9zaXRvcnk6IFN1YnNjcmlwdGlvbkZpcmVzdG9yZVJlcG9zaXRvcnksXHJcbiAgICAgICk6IFN1YnNjcmlwdGlvblBheW1lbnRSZXBvc2l0b3J5ID0+IHtcclxuICAgICAgICByZXR1cm4gbmV3IFN1YnNjcmlwdGlvblBheW1lbnRGaXJlc3RvcmVSZXBvc2l0b3J5KG9wdGlvbnMsIHN1YnNjcmlwdGlvblJlcG9zaXRvcnkpXHJcbiAgICAgIH0sXHJcbiAgICAgIGRlcHM6IFsnRmlyZXN0b3JlT3B0aW9ucycsICdTdWJzY3JpcHRpb25SZXBvc2l0b3J5J10sXHJcbiAgICB9LFxyXG4gICAge1xyXG4gICAgICBwcm92aWRlOiAnU3Vic2NyaXB0aW9uUGxhblJlcG9zaXRvcnknLFxyXG4gICAgICB1c2VGYWN0b3J5OiAob3B0aW9uczogRmlyZXN0b3JlT3B0aW9ucyk6IFN1YnNjcmlwdGlvblBsYW5SZXBvc2l0b3J5ID0+IHtcclxuICAgICAgICByZXR1cm4gbmV3IFN1YnNjcmlwdGlvblBsYW5GaXJlc3RvcmVSZXBvc2l0b3J5KG9wdGlvbnMpXHJcbiAgICAgIH0sXHJcbiAgICAgIGRlcHM6IFsnRmlyZXN0b3JlT3B0aW9ucyddLFxyXG4gICAgfSxcclxuICAgIHtcclxuICAgICAgcHJvdmlkZTogJ1N1YnNjcmlwdGlvblByb2R1Y3RSZXBvc2l0b3J5JyxcclxuICAgICAgdXNlRmFjdG9yeTogKG9wdGlvbnM6IEZpcmVzdG9yZU9wdGlvbnMpOiBTdWJzY3JpcHRpb25Qcm9kdWN0UmVwb3NpdG9yeSA9PiB7XHJcbiAgICAgICAgcmV0dXJuIG5ldyBTdWJzY3JpcHRpb25Qcm9kdWN0RmlyZXN0b3JlUmVwb3NpdG9yeShvcHRpb25zKVxyXG4gICAgICB9LFxyXG4gICAgICBkZXBzOiBbJ0ZpcmVzdG9yZU9wdGlvbnMnXSxcclxuICAgIH0sXHJcbiAgICB7XHJcbiAgICAgIHByb3ZpZGU6ICdTdWJzY3JpcHRpb25SZXBvc2l0b3J5JyxcclxuICAgICAgdXNlRmFjdG9yeTogKG9wdGlvbnM6IEZpcmVzdG9yZU9wdGlvbnMpOiBTdWJzY3JpcHRpb25SZXBvc2l0b3J5ID0+IHtcclxuICAgICAgICByZXR1cm4gbmV3IFN1YnNjcmlwdGlvbkZpcmVzdG9yZVJlcG9zaXRvcnkob3B0aW9ucylcclxuICAgICAgfSxcclxuICAgICAgZGVwczogWydGaXJlc3RvcmVPcHRpb25zJ10sXHJcbiAgICB9LFxyXG4gICAge1xyXG4gICAgICBwcm92aWRlOiAnVXNlclJlcG9zaXRvcnknLFxyXG4gICAgICB1c2VGYWN0b3J5OiAob3B0aW9uczogRmlyZXN0b3JlT3B0aW9ucyk6IFVzZXJSZXBvc2l0b3J5ID0+IHtcclxuICAgICAgICByZXR1cm4gbmV3IFVzZXJGaXJlc3RvcmVSZXBvc2l0b3J5KG9wdGlvbnMpXHJcbiAgICAgIH0sXHJcbiAgICAgIGRlcHM6IFsnRmlyZXN0b3JlT3B0aW9ucyddLFxyXG4gICAgfSxcclxuICAgIHtcclxuICAgICAgcHJvdmlkZTogJ1VzZXJBZGRyZXNzUmVwb3NpdG9yeScsXHJcbiAgICAgIHVzZUZhY3Rvcnk6IChvcHRpb25zOiBGaXJlc3RvcmVPcHRpb25zLCB1c2VyUmVwb3NpdG9yeTogVXNlckZpcmVzdG9yZVJlcG9zaXRvcnkpOiBVc2VyQWRkcmVzc1JlcG9zaXRvcnkgPT4ge1xyXG4gICAgICAgIHJldHVybiBuZXcgVXNlckFkZHJlc3NGaXJlc3RvcmVSZXBvc2l0b3J5KG9wdGlvbnMsIHVzZXJSZXBvc2l0b3J5KVxyXG4gICAgICB9LFxyXG4gICAgICBkZXBzOiBbJ0ZpcmVzdG9yZU9wdGlvbnMnLCAnVXNlclJlcG9zaXRvcnknXSxcclxuICAgIH0sXHJcbiAgICB7XHJcbiAgICAgIHByb3ZpZGU6ICdVc2VyUGF5bWVudE1ldGhvZFJlcG9zaXRvcnknLFxyXG4gICAgICB1c2VGYWN0b3J5OiAob3B0aW9uczogRmlyZXN0b3JlT3B0aW9ucywgdXNlclJlcG9zaXRvcnk6IFVzZXJGaXJlc3RvcmVSZXBvc2l0b3J5KTogVXNlclBheW1lbnRNZXRob2RSZXBvc2l0b3J5ID0+IHtcclxuICAgICAgICByZXR1cm4gbmV3IFVzZXJQYXltZW50TWV0aG9kRmlyZXN0b3JlUmVwb3NpdG9yeShvcHRpb25zLCB1c2VyUmVwb3NpdG9yeSlcclxuICAgICAgfSxcclxuICAgICAgZGVwczogWydGaXJlc3RvcmVPcHRpb25zJywgJ1VzZXJSZXBvc2l0b3J5J10sXHJcbiAgICB9LFxyXG4gICAge1xyXG4gICAgICBwcm92aWRlOiAnU3Vic2NyaXB0aW9uTWF0ZXJpYWxpemF0aW9uUmVwb3NpdG9yeScsXHJcbiAgICAgIHVzZUZhY3Rvcnk6IChvcHRpb25zOiBGaXJlc3RvcmVPcHRpb25zKTogU3Vic2NyaXB0aW9uTWF0ZXJpYWxpemF0aW9uUmVwb3NpdG9yeSA9PiB7XHJcbiAgICAgICAgcmV0dXJuIG5ldyBTdWJzY3JpcHRpb25NYXRlcmlhbGl6YXRpb25GaXJlc3RvcmVSZXBvc2l0b3J5KG9wdGlvbnMpXHJcbiAgICAgIH0sXHJcbiAgICAgIGRlcHM6IFsnRmlyZXN0b3JlT3B0aW9ucyddLFxyXG4gICAgfSxcclxuICAgIHtcclxuICAgICAgcHJvdmlkZTogJ1N1YnNjcmlwdGlvblN1bW1hcnlSZXBvc2l0b3J5JyxcclxuICAgICAgdXNlRmFjdG9yeTogKG9wdGlvbnM6IEZpcmVzdG9yZU9wdGlvbnMpOiBTdWJzY3JpcHRpb25TdW1tYXJ5UmVwb3NpdG9yeSA9PiB7XHJcbiAgICAgICAgcmV0dXJuIG5ldyBTdWJzY3JpcHRpb25TdW1tYXJ5RmlyZXN0b3JlUmVwb3NpdG9yeShvcHRpb25zKVxyXG4gICAgICB9LFxyXG4gICAgICBkZXBzOiBbJ0ZpcmVzdG9yZU9wdGlvbnMnXSxcclxuICAgIH0sXHJcbiAgICB7XHJcbiAgICAgIHByb3ZpZGU6IFByb2R1Y3RWYXJpYW50RmlyZXN0b3JlUmVwb3NpdG9yeSxcclxuICAgICAgdXNlRmFjdG9yeTogKG9wdGlvbnM6IEZpcmVzdG9yZU9wdGlvbnMsIHByb2R1Y3RSZXBvc2l0b3J5OiBQcm9kdWN0RmlyZXN0b3JlUmVwb3NpdG9yeSk6IFZhcmlhbnRSZXBvc2l0b3J5ID0+IHtcclxuICAgICAgICByZXR1cm4gbmV3IFByb2R1Y3RWYXJpYW50RmlyZXN0b3JlUmVwb3NpdG9yeShvcHRpb25zLCBwcm9kdWN0UmVwb3NpdG9yeSlcclxuICAgICAgfSxcclxuICAgICAgZGVwczogWydGaXJlc3RvcmVPcHRpb25zJywgUHJvZHVjdEZpcmVzdG9yZVJlcG9zaXRvcnldLFxyXG4gICAgfSxcclxuICAgIHtcclxuICAgICAgcHJvdmlkZTogJ09yZGVyQmxvY2tlZFJlcG9zaXRvcnknLFxyXG4gICAgICB1c2VGYWN0b3J5OiAob3B0aW9uczogRmlyZXN0b3JlT3B0aW9ucyk6IE9yZGVyQmxvY2tlZFJlcG9zaXRvcnkgPT4ge1xyXG4gICAgICAgIHJldHVybiBuZXcgT3JkZXJCbG9ja2VkRmlyZXN0b3JlUmVwb3NpdG9yeShvcHRpb25zKVxyXG4gICAgICB9LFxyXG4gICAgICBkZXBzOiBbJ0ZpcmVzdG9yZU9wdGlvbnMnXSxcclxuICAgIH0sXHJcbiAgICB7XHJcbiAgICAgIHByb3ZpZGU6ICdMb2dSZXBvc2l0b3J5JyxcclxuICAgICAgdXNlRmFjdG9yeTogKG9wdGlvbnM6IEZpcmVzdG9yZU9wdGlvbnMpOiBMb2dSZXBvc2l0b3J5ID0+IHtcclxuICAgICAgICByZXR1cm4gbmV3IExvZ0ZpcmVzdG9yZVJlcG9zaXRvcnkob3B0aW9ucylcclxuICAgICAgfSxcclxuICAgICAgZGVwczogWydGaXJlc3RvcmVPcHRpb25zJ10sXHJcbiAgICB9LFxyXG4gIF0sXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBBbmd1bGFyRmlyZXN0b3JlTW9kdWxlIHtcclxuICBzdGF0aWMgaW5pdGlhbGl6ZUFwcChcclxuICAgIG9wdGlvbnM6IHtcclxuICAgICAgZmlyZWJhc2U6IEZpcmViYXNlT3B0aW9uc1xyXG4gICAgICBlbGFzdGljU2VhcmNoOiBBeGlvc0VsYXN0aWNTZWFyY2hDb25maWdcclxuICAgIH0sXHJcbiAgICBuYW1lT3JDb25maWc/OiBzdHJpbmcgfCBGaXJlYmFzZUFwcENvbmZpZyxcclxuICApOiBNb2R1bGVXaXRoUHJvdmlkZXJzPEFuZ3VsYXJGaXJlc3RvcmVNb2R1bGU+IHtcclxuICAgIHJldHVybiB7XHJcbiAgICAgIG5nTW9kdWxlOiBBbmd1bGFyRmlyZXN0b3JlTW9kdWxlLFxyXG4gICAgICBwcm92aWRlcnM6IFtcclxuICAgICAgICB7IHByb3ZpZGU6IEZJUkVCQVNFX09QVElPTlMsIHVzZVZhbHVlOiBvcHRpb25zLmZpcmViYXNlIH0sXHJcbiAgICAgICAgeyBwcm92aWRlOiBGSVJFQkFTRV9BUFBfTkFNRSwgdXNlVmFsdWU6IG5hbWVPckNvbmZpZyB9LFxyXG4gICAgICAgIHsgcHJvdmlkZTogRVNfQ09ORklHLCB1c2VWYWx1ZTogb3B0aW9ucy5lbGFzdGljU2VhcmNoIH0sXHJcbiAgICAgIF0sXHJcbiAgICB9XHJcbiAgfVxyXG59XHJcbiJdfQ==
|
|
@@ -71,7 +71,7 @@ export class CartService {
|
|
|
71
71
|
quantity: (item.quantity || 0) + (quantity || 0),
|
|
72
72
|
pricePaid,
|
|
73
73
|
discount: 0,
|
|
74
|
-
categories: product.categories
|
|
74
|
+
categories: product.categories || product.category?.id ? [product.category?.id, ...product.categories] : [],
|
|
75
75
|
isGift: isGift ?? null,
|
|
76
76
|
costPrice: product.costPrice ?? 0,
|
|
77
77
|
type,
|
|
@@ -281,4 +281,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.3", ngImpor
|
|
|
281
281
|
type: Inject,
|
|
282
282
|
args: ['Buy2WinRepository']
|
|
283
283
|
}] }] });
|
|
284
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FydC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvY29ubmVjdC1hbmd1bGFyL3NyYy9zZXJ2aWNlcy9jYXJ0LnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUE7QUFDbEQsT0FBTyxFQUVMLDBCQUEwQixFQUUxQixRQUFRLEVBQ1IsS0FBSyxFQUNMLFFBQVEsRUFDUixhQUFhLEVBR2Isd0JBQXdCLEVBRXhCLEtBQUssRUFJTCxLQUFLLEdBQ04sTUFBTSxtQkFBbUIsQ0FBQTtBQUMxQixPQUFPLEVBQUUsSUFBSSxFQUFFLEdBQUcsRUFBYyxFQUFFLEVBQUUsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFBO0FBQ3pELE9BQU8sRUFBRSxVQUFVLEVBQUUsU0FBUyxFQUFFLEdBQUcsRUFBRSxRQUFRLEVBQUUsR0FBRyxFQUFFLE1BQU0sZ0JBQWdCLENBQUE7QUFDMUUsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLFdBQVcsQ0FBQTtBQUN4QyxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUE7QUFDNUMsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLG9CQUFvQixDQUFBOzs7OztBQVFwRCxNQUFNLE9BQU8sV0FBVztJQUd0QixZQUNtQixXQUF3QixFQUN4QixlQUFnQyxFQUNWLFdBQWtCLEVBQ1gsaUJBQW9DLEVBQ25DLGtCQUFzQyxFQUN2QyxpQkFBb0MsRUFDcEMsaUJBQTZDO1FBTjFFLGdCQUFXLEdBQVgsV0FBVyxDQUFhO1FBQ3hCLG9CQUFlLEdBQWYsZUFBZSxDQUFpQjtRQUNWLGdCQUFXLEdBQVgsV0FBVyxDQUFPO1FBQ1gsc0JBQWlCLEdBQWpCLGlCQUFpQixDQUFtQjtRQUNuQyx1QkFBa0IsR0FBbEIsa0JBQWtCLENBQW9CO1FBQ3ZDLHNCQUFpQixHQUFqQixpQkFBaUIsQ0FBbUI7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LENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUE7WUFFNUUsT0FBTyxRQUFRLENBQUMsVUFBVSxDQUFDO2dCQUN6QixLQUFLO2dCQUNMLFVBQVU7Z0JBQ1YsRUFBRSxFQUFFLEVBQUUsQ0FBQyxRQUFRLEVBQUU7Z0JBQ2pCLElBQUk7Z0JBQ0osS0FBSztnQkFDTCxHQUFHO2dCQUNILElBQUk7Z0JBQ0osS0FBSztnQkFDTCxNQUFNO2dCQUNOLEdBQUc7Z0JBQ0gsS0FBSztnQkFDTCxTQUFTLEVBQUUsQ0FBQztnQkFDWixRQUFRLEVBQUUsQ0FBQztnQkFDWCxNQUFNLEVBQUUsSUFBSTthQUNiLENBQUMsQ0FBQTtRQUNKLENBQUMsQ0FBQyxDQUFBO0lBQ0osQ0FBQzs4R0FuWFUsV0FBVyw0RUFNWixZQUFZLGFBQ1osbUJBQW1CLGFBQ25CLG9CQUFvQixhQUNwQixtQkFBbUIsYUFDbkIsbUJBQW1CO2tIQVZsQixXQUFXOzsyRkFBWCxXQUFXO2tCQUR2QixVQUFVOzswQkFPTixNQUFNOzJCQUFDLFlBQVk7OzBCQUNuQixNQUFNOzJCQUFDLG1CQUFtQjs7MEJBQzFCLE1BQU07MkJBQUMsb0JBQW9COzswQkFDM0IsTUFBTTsyQkFBQyxtQkFBbUI7OzBCQUMxQixNQUFNOzJCQUFDLG1CQUFtQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdCwgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnXHJcbmltcG9ydCB7XHJcbiAgQnV5MldpbixcclxuICBCdXkyV2luRmlyZXN0b3JlUmVwb3NpdG9yeSxcclxuICBDYXRlZ29yeVJlcG9zaXRvcnksXHJcbiAgQ2hlY2tvdXQsXHJcbiAgaXNOaWwsXHJcbiAgTGluZUl0ZW0sXHJcbiAgTm90Rm91bmRFcnJvcixcclxuICBQcm9kdWN0LFxyXG4gIFByb2R1Y3RSZXBvc2l0b3J5LFxyXG4gIFJvdW5kUHJvZHVjdFByaWNlc0hlbHBlcixcclxuICBTaG9wUHJpY2UsXHJcbiAgU2hvcHMsXHJcbiAgVXNlcixcclxuICBWYXJpYW50LFxyXG4gIFZhcmlhbnRSZXBvc2l0b3J5LFxyXG4gIFdoZXJlLFxyXG59IGZyb20gJ0BpbmZyYWI0YS9jb25uZWN0J1xyXG5pbXBvcnQgeyBmcm9tLCBpaWYsIE9ic2VydmFibGUsIG9mLCBTdWJqZWN0IH0gZnJvbSAncnhqcydcclxuaW1wb3J0IHsgY2F0Y2hFcnJvciwgY29uY2F0TWFwLCBtYXAsIG1lcmdlTWFwLCB0YXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycydcclxuaW1wb3J0IHsgREVGQVVMVF9TSE9QIH0gZnJvbSAnLi4vY29uc3RzJ1xyXG5pbXBvcnQgeyBBdXRoU2VydmljZSB9IGZyb20gJy4vYXV0aC5zZXJ2aWNlJ1xyXG5pbXBvcnQgeyBDaGVja291dFNlcnZpY2UgfSBmcm9tICcuL2NoZWNrb3V0LnNlcnZpY2UnXHJcbmltcG9ydCB7IFJlcXVpcmVkQ2hlY2tvdXREYXRhIH0gZnJvbSAnLi90eXBlcydcclxuXHJcbmV4cG9ydCB0eXBlIENhcnQgPSB7XHJcbiAgW2lkOiBzdHJpbmddOiBMaW5lSXRlbVxyXG59XHJcblxyXG5ASW5qZWN0YWJsZSgpXHJcbmV4cG9ydCBjbGFzcyBDYXJ0U2VydmljZSB7XHJcbiAgcHJpdmF0ZSBjYXJ0U3ViamVjdDogU3ViamVjdDxDYXJ0PiA9IG5ldyBTdWJqZWN0KClcclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwcml2YXRlIHJlYWRvbmx5IGF1dGhTZXJ2aWNlOiBBdXRoU2VydmljZSxcclxuICAgIHByaXZhdGUgcmVhZG9ubHkgY2hlY2tvdXRTZXJ2aWNlOiBDaGVja291dFNlcnZpY2UsXHJcbiAgICBASW5qZWN0KERFRkFVTFRfU0hPUCkgcHJpdmF0ZSByZWFkb25seSBkZWZhdWx0U2hvcDogU2hvcHMsXHJcbiAgICBASW5qZWN0KCdQcm9kdWN0UmVwb3NpdG9yeScpIHByaXZhdGUgcmVhZG9ubHkgcHJvZHVjdFJlcG9zaXRvcnk6IFByb2R1Y3RSZXBvc2l0b3J5LFxyXG4gICAgQEluamVjdCgnQ2F0ZWdvcnlSZXBvc2l0b3J5JykgcHJpdmF0ZSByZWFkb25seSBjYXRlZ29yeVJlcG9zaXRvcnk6IENhdGVnb3J5UmVwb3NpdG9yeSxcclxuICAgIEBJbmplY3QoJ1ZhcmlhbnRSZXBvc2l0b3J5JykgcHJpdmF0ZSByZWFkb25seSB2YXJpYW50UmVwb3NpdG9yeTogVmFyaWFudFJlcG9zaXRvcnksXHJcbiAgICBASW5qZWN0KCdCdXkyV2luUmVwb3NpdG9yeScpIHByaXZhdGUgcmVhZG9ubHkgYnV5MldpblJlcG9zaXRvcnk6IEJ1eTJXaW5GaXJlc3RvcmVSZXBvc2l0b3J5LFxyXG4gICkge31cclxuXHJcbiAgYWRkSXRlbShpdGVtOiBMaW5lSXRlbSwgcXVhbnRpdHk6IG51bWJlciA9IDEpOiBPYnNlcnZhYmxlPENhcnQ+IHtcclxuICAgIHJldHVybiBmcm9tKHRoaXMuY2hlY2tvdXRTZXJ2aWNlLmdldENoZWNrb3V0KCkpLnBpcGUoXHJcbiAgICAgIGNvbmNhdE1hcChhc3luYyAoY2hlY2tvdXQpID0+IGF3YWl0IHRoaXMuYnVpbGRMaW5lSXRlbSh7IGNoZWNrb3V0LCBpdGVtLCBxdWFudGl0eTogcXVhbnRpdHkgfHwgMSB9KSksXHJcbiAgICAgIG1lcmdlTWFwKCh7IGNoZWNrb3V0LCBsaW5lSXRlbSB9KSA9PiB0aGlzLnVwZGF0ZUxpbmVJdGVtSW5DYXJ0KGxpbmVJdGVtLCBxdWFudGl0eSB8fCAxLCBjaGVja291dCBhcyBDaGVja291dCkpLFxyXG4gICAgICB0YXAoKGNhcnQpID0+IHRoaXMuY2FydFN1YmplY3QubmV4dChjYXJ0KSksXHJcbiAgICApXHJcbiAgfVxyXG5cclxuICBkZWNyZWFzZUl0ZW0oaXRlbTogTGluZUl0ZW0pOiBPYnNlcnZhYmxlPENhcnQ+IHtcclxuICAgIHJldHVybiB0aGlzLmNoZWNrb3V0U2VydmljZS5nZXRDaGVja291dCgpLnBpcGUoXHJcbiAgICAgIG1hcCgoY2hlY2tvdXQpID0+IHtcclxuICAgICAgICBjb25zdCBjaGVja291dEl0ZW0gPSBjaGVja291dC5saW5lSXRlbXM/LmZpbmQoKGxpbmVJdGVtKSA9PiBsaW5lSXRlbS5pZCA9PT0gaXRlbS5pZClcclxuXHJcbiAgICAgICAgaWYgKCFpc05pbChjaGVja291dEl0ZW0pKSBjaGVja291dEl0ZW0ucXVhbnRpdHkgLT0gY2hlY2tvdXRJdGVtLnF1YW50aXR5ID4gMSA/IDEgOiAwXHJcblxyXG4gICAgICAgIHJldHVybiBjaGVja291dFxyXG4gICAgICB9KSxcclxuICAgICAgY29uY2F0TWFwKChjaGVja291dCkgPT4gdGhpcy5jaGVja291dFNlcnZpY2UudXBkYXRlQ2hlY2tvdXRMaW5lSXRlbXMoY2hlY2tvdXQpKSxcclxuICAgICAgbWFwKChjaGVja291dCkgPT4gdGhpcy5nZW5lcmF0ZUNhcnRPYmplY3QoY2hlY2tvdXQubGluZUl0ZW1zKSksXHJcbiAgICAgIHRhcCgoY2FydCkgPT4gdGhpcy5jYXJ0U3ViamVjdC5uZXh0KGNhcnQpKSxcclxuICAgIClcclxuICB9XHJcblxyXG4gIGdldENhcnQoY2hlY2tvdXQ/OiBSZXF1aXJlZENoZWNrb3V0RGF0YSk6IE9ic2VydmFibGU8Q2FydD4ge1xyXG4gICAgdGhpcy5idWlsZENhcnRGcm9tQ2hlY2tvdXQoY2hlY2tvdXQpLnN1YnNjcmliZSgoY2FydCkgPT4gdGhpcy5jYXJ0U3ViamVjdC5uZXh0KGNhcnQpKVxyXG5cclxuICAgIHJldHVybiB0aGlzLmNhcnRTdWJqZWN0XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBAZGVwcmVjYXRlZCBUaGUgbWV0aG9kIHNob3VsZCBub3QgYmUgdXNlZFxyXG4gICAqL1xyXG4gIGdldFZhcmlhbnRQcmljZURpc2NvdW50KGl0ZW06IExpbmVJdGVtKTogT2JzZXJ2YWJsZTxudW1iZXI+IHtcclxuICAgIHJldHVybiB0aGlzLmF1dGhTZXJ2aWNlLmdldFVzZXIoKS5waXBlKFxyXG4gICAgICBjb25jYXRNYXAoKHVzZXIpID0+XHJcbiAgICAgICAgaWlmKFxyXG4gICAgICAgICAgKCkgPT4gdXNlci5pc1N1YnNjcmliZXIgJiYgISFpdGVtLnByaWNlLnN1YnNjcmliZXJQcmljZSxcclxuICAgICAgICAgIG9mKGl0ZW0ucHJpY2Uuc3Vic2NyaWJlclByaWNlKSxcclxuICAgICAgICAgIG9mKGl0ZW0ucHJpY2UucHJpY2UpLFxyXG4gICAgICAgICksXHJcbiAgICAgICksXHJcbiAgICAgIGNhdGNoRXJyb3IoKCkgPT4gb2YoaXRlbS5wcmljZS5wcmljZSkpLFxyXG4gICAgKVxyXG4gIH1cclxuXHJcbiAgcmVtb3ZlSXRlbShpdGVtOiBMaW5lSXRlbSk6IE9ic2VydmFibGU8Q2FydD4ge1xyXG4gICAgcmV0dXJuIHRoaXMuY2hlY2tvdXRTZXJ2aWNlLmdldENoZWNrb3V0KCkucGlwZShcclxuICAgICAgbWFwKChjaGVja291dCkgPT4ge1xyXG4gICAgICAgIGNvbnN0IGluZGV4ID0gY2hlY2tvdXQubGluZUl0ZW1zLmZpbmRJbmRleCgobGluZUl0ZW0pID0+IGxpbmVJdGVtLmlkID09PSBpdGVtLmlkKVxyXG5cclxuICAgICAgICBpZiAoaW5kZXggPj0gMCkgY2hlY2tvdXQubGluZUl0ZW1zLnNwbGljZShpbmRleCwgMSlcclxuXHJcbiAgICAgICAgcmV0dXJuIGNoZWNrb3V0XHJcbiAgICAgIH0pLFxyXG4gICAgICBjb25jYXRNYXAoKGNoZWNrb3V0KSA9PiB0aGlzLmNoZWNrb3V0U2VydmljZS51cGRhdGVDaGVja291dExpbmVJdGVtcyhjaGVja291dCkpLFxyXG4gICAgICBtYXAoKGNoZWNrb3V0KSA9PiB0aGlzLmdlbmVyYXRlQ2FydE9iamVjdChjaGVja291dC5saW5lSXRlbXMpKSxcclxuICAgICAgdGFwKChjYXJ0KSA9PiB0aGlzLmNhcnRTdWJqZWN0Lm5leHQoY2FydCkpLFxyXG4gICAgKVxyXG4gIH1cclxuXHJcbiAgdXBkYXRlVXNlckNhcnQodXNlcjogVXNlcik6IE9ic2VydmFibGU8Q2FydD4ge1xyXG4gICAgcmV0dXJuIHRoaXMuY2hlY2tvdXRTZXJ2aWNlLmdldENoZWNrb3V0KCkucGlwZShcclxuICAgICAgY29uY2F0TWFwKChjaGVja291dCkgPT5cclxuICAgICAgICB0aGlzLmNoZWNrb3V0U2VydmljZS51cGRhdGVDaGVja291dFVzZXIoQ2hlY2tvdXQudG9JbnN0YW5jZSh7IC4uLmNoZWNrb3V0LnRvUGxhaW4oKSwgdXNlciB9KSksXHJcbiAgICAgICksXHJcbiAgICAgIGNvbmNhdE1hcChcclxuICAgICAgICBhc3luYyAoY2hlY2tvdXQpID0+XHJcbiAgICAgICAgICBhd2FpdCB0aGlzLmNoZWNrb3V0U2VydmljZVxyXG4gICAgICAgICAgICAudXBkYXRlQ2hlY2tvdXRMaW5lSXRlbXMoXHJcbiAgICAgICAgICAgICAgQ2hlY2tvdXQudG9JbnN0YW5jZSh7XHJcbiAgICAgICAgICAgICAgICAuLi5jaGVja291dC50b1BsYWluKCksXHJcbiAgICAgICAgICAgICAgICBsaW5lSXRlbXM6IGNoZWNrb3V0LmxpbmVJdGVtcz8ubGVuZ3RoXHJcbiAgICAgICAgICAgICAgICAgID8gYXdhaXQgUHJvbWlzZS5hbGwoXHJcbiAgICAgICAgICAgICAgICAgICAgICBjaGVja291dC5saW5lSXRlbXM/Lm1hcChhc3luYyAoaXRlbSkgPT4gKGF3YWl0IHRoaXMuYnVpbGRMaW5lSXRlbSh7IGNoZWNrb3V0LCBpdGVtIH0pKS5saW5lSXRlbSksXHJcbiAgICAgICAgICAgICAgICAgICAgKVxyXG4gICAgICAgICAgICAgICAgICA6IFtdLFxyXG4gICAgICAgICAgICAgIH0pLFxyXG4gICAgICAgICAgICApXHJcbiAgICAgICAgICAgIC50b1Byb21pc2UoKSxcclxuICAgICAgKSxcclxuICAgICAgbWFwKChjaGVja291dCkgPT4gdGhpcy5nZW5lcmF0ZUNhcnRPYmplY3QoY2hlY2tvdXQubGluZUl0ZW1zKSksXHJcbiAgICAgIHRhcCgoY2FydCkgPT4gdGhpcy5jYXJ0U3ViamVjdC5uZXh0KGNhcnQpKSxcclxuICAgIClcclxuICB9XHJcblxyXG4gIGNsZWFyQ2FydCgpOiBPYnNlcnZhYmxlPENhcnQ+IHtcclxuICAgIHJldHVybiB0aGlzLmNoZWNrb3V0U2VydmljZS5nZXRDaGVja291dCgpLnBpcGUoXHJcbiAgICAgIG1hcCgoY2hlY2tvdXQpID0+IHtcclxuICAgICAgICB0aGlzLmNoZWNrb3V0U2VydmljZS5jbGVhckNoZWNrb3V0RnJvbVNlc3Npb24oKVxyXG4gICAgICAgIHJldHVybiBjaGVja291dFxyXG4gICAgICB9KSxcclxuICAgICAgY29uY2F0TWFwKChvbGRDaGVja291dCkgPT4gdGhpcy5idWlsZENhcnRGcm9tQ2hlY2tvdXQob2xkQ2hlY2tvdXQpKSxcclxuICAgICAgdGFwKChjYXJ0KSA9PiB0aGlzLmNhcnRTdWJqZWN0Lm5leHQoY2FydCkpLFxyXG4gICAgKVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBidWlsZENhcnRGcm9tQ2hlY2tvdXQoY2hlY2tvdXREYXRhPzogUmVxdWlyZWRDaGVja291dERhdGEpOiBPYnNlcnZhYmxlPENhcnQ+IHtcclxuICAgIHJldHVybiB0aGlzLmNoZWNrb3V0U2VydmljZS5nZXRDaGVja291dChjaGVja291dERhdGEpLnBpcGUoXHJcbiAgICAgIG1hcCgoY2hlY2tvdXQpID0+IGNoZWNrb3V0LmxpbmVJdGVtcyksXHJcbiAgICAgIGNvbmNhdE1hcCgobGluZUl0ZW1zKSA9PiBvZih0aGlzLmdlbmVyYXRlQ2FydE9iamVjdChsaW5lSXRlbXMpKSksXHJcbiAgICApXHJcbiAgfVxyXG5cclxuICBwcml2YXRlIHVwZGF0ZUxpbmVJdGVtSW5DYXJ0ID0gKGxpbmVJdGVtOiBMaW5lSXRlbSwgcXVhbnRpdHk6IG51bWJlciwgY2hlY2tvdXQ/OiBDaGVja291dCk6IE9ic2VydmFibGU8Q2FydD4gPT5cclxuICAgIChpc05pbChjaGVja291dCkgPyB0aGlzLmNoZWNrb3V0U2VydmljZS5nZXRDaGVja291dCgpIDogb2YoY2hlY2tvdXQpKS5waXBlKFxyXG4gICAgICBjb25jYXRNYXAoKGNoZWNrb3V0TG9hZGVkKSA9PiB7XHJcbiAgICAgICAgY29uc3QgaXRlbXM6IExpbmVJdGVtW10gPSBbXVxyXG4gICAgICAgIGNvbnN0IGluZGV4ID0gY2hlY2tvdXRMb2FkZWQubGluZUl0ZW1zPy5tYXAoKGNoZWNrb3V0SXRlbSkgPT4gY2hlY2tvdXRJdGVtLmlkKS5pbmRleE9mKGxpbmVJdGVtLmlkKVxyXG5cclxuICAgICAgICBpZiAoaW5kZXggPiAtMSkge1xyXG4gICAgICAgICAgY2hlY2tvdXRMb2FkZWQubGluZUl0ZW1zW2luZGV4XS5xdWFudGl0eSArPSBxdWFudGl0eVxyXG4gICAgICAgICAgY2hlY2tvdXRMb2FkZWQubGluZUl0ZW1zW2luZGV4XS5wcmljZVBhaWQgPSBsaW5lSXRlbS5wcmljZVBhaWRcclxuICAgICAgICAgIGNoZWNrb3V0TG9hZGVkLmxpbmVJdGVtc1tpbmRleF0ucHJpY2UgPSBsaW5lSXRlbS5wcmljZVxyXG4gICAgICAgIH0gZWxzZVxyXG4gICAgICAgICAgY2hlY2tvdXRMb2FkZWQubGluZUl0ZW1zID0gaXRlbXMuY29uY2F0KFxyXG4gICAgICAgICAgICBjaGVja291dExvYWRlZC5saW5lSXRlbXMgPyBjaGVja291dExvYWRlZC5saW5lSXRlbXMuY29uY2F0KFtsaW5lSXRlbV0pIDogW2xpbmVJdGVtXSxcclxuICAgICAgICAgIClcclxuICAgICAgICByZXR1cm4gdGhpcy5jaGVja291dFNlcnZpY2VcclxuICAgICAgICAgIC51cGRhdGVDaGVja291dExpbmVJdGVtcyhjaGVja291dExvYWRlZClcclxuICAgICAgICAgIC5waXBlKG1hcCgodXBkYXRlZENoZWNrb3V0KSA9PiB0aGlzLmdlbmVyYXRlQ2FydE9iamVjdCh1cGRhdGVkQ2hlY2tvdXQubGluZUl0ZW1zKSkpXHJcbiAgICAgIH0pLFxyXG4gICAgKVxyXG5cclxuICBwcml2YXRlIGdlbmVyYXRlQ2FydE9iamVjdCA9IChpdGVtczogTGluZUl0ZW1bXSk6IENhcnQgPT5cclxuICAgIGl0ZW1zPy5yZWR1Y2UoXHJcbiAgICAgIChjYXJ0LCBpdGVtKSA9PiAoe1xyXG4gICAgICAgIC4uLmNhcnQsXHJcbiAgICAgICAgW2l0ZW0uaWRdOiBMaW5lSXRlbS50b0luc3RhbmNlKHtcclxuICAgICAgICAgIC4uLihjYXJ0W2l0ZW0uaWRdIHx8IGl0ZW0pLFxyXG4gICAgICAgICAgcXVhbnRpdHk6IChjYXJ0W2l0ZW0uaWRdPy5xdWFudGl0eSB8fCAwKSArIChpdGVtLnF1YW50aXR5ID8gaXRlbS5xdWFudGl0eSA6IDEpLFxyXG4gICAgICAgIH0pLFxyXG4gICAgICB9KSxcclxuICAgICAge30gYXMgUmVjb3JkPHN0cmluZywgTGluZUl0ZW0+LFxyXG4gICAgKSB8fCB7fVxyXG5cclxuICBwcml2YXRlIGJ1aWxkTGluZUl0ZW0gPSBhc3luYyAoe1xyXG4gICAgY2hlY2tvdXQsXHJcbiAgICBpdGVtLFxyXG4gICAgcXVhbnRpdHksXHJcbiAgfToge1xyXG4gICAgY2hlY2tvdXQ6IFJlcXVpcmVkQ2hlY2tvdXREYXRhXHJcbiAgICBpdGVtOiBMaW5lSXRlbVxyXG4gICAgcXVhbnRpdHk/OiBudW1iZXJcclxuICB9KTogUHJvbWlzZTx7IGNoZWNrb3V0OiBQYXJ0aWFsPENoZWNrb3V0PjsgbGluZUl0ZW06IExpbmVJdGVtIH0+ID0+IHtcclxuICAgIGNvbnN0IHByb2R1Y3QgPSBhd2FpdCB0aGlzLmdldFByb2R1Y3REYXRhKGl0ZW0uaWQpXHJcblxyXG4gICAgaXRlbS5xdWFudGl0eSA9IGl0ZW0/LnF1YW50aXR5IHx8IGNoZWNrb3V0Py5saW5lSXRlbXM/LmZpbmQoKGxpbmVJdGVtKSA9PiBsaW5lSXRlbS5pZCA9PT0gaXRlbS5pZCk/LnF1YW50aXR5IHx8IDBcclxuXHJcbiAgICBpZiAodGhpcy5jaGVja01heFN0b2NrKHByb2R1Y3Quc3RvY2sucXVhbnRpdHksIGl0ZW0ucXVhbnRpdHkgfHwgMCwgcXVhbnRpdHkgfHwgMCkpXHJcbiAgICAgIHRocm93IG5ldyBFcnJvcignRGVzY3VscGUhIFRlbW9zIGFwZW5hcyAnICsgcHJvZHVjdC5zdG9jaz8ucXVhbnRpdHkgKyAnIGVtIGVzdG9xdWUuJylcclxuXHJcbiAgICBjb25zdCBpbWFnZSA9IGl0ZW0uaW1hZ2UgfHwgaXRlbS5pbWFnZXM/LnNoaWZ0KClcclxuICAgIGNvbnN0IHsgaWQsIG5hbWUsIEVBTiwgc2x1Zywgd2VpZ2h0LCBza3UsIHR5cGUgfSA9IGl0ZW1cclxuICAgIGNvbnN0IGlzR2lmdCA9IGl0ZW0uaXNHaWZ0IHx8IG51bGxcclxuICAgIGNvbnN0IHByaWNlUGFpZCA9IHRoaXMuZ2V0UHJvZHVjdFByaWNlKHtcclxuICAgICAgcHJvZHVjdDogTGluZUl0ZW0udG9JbnN0YW5jZShwcm9kdWN0KSxcclxuICAgICAgc2hvcDogY2hlY2tvdXQuc2hvcCB8fCB0aGlzLmRlZmF1bHRTaG9wLFxyXG4gICAgICBpc1N1YnNjcmliZXI6IGNoZWNrb3V0LnVzZXI/LmlzU3Vic2NyaWJlcixcclxuICAgIH0pXHJcblxyXG4gICAgUm91bmRQcm9kdWN0UHJpY2VzSGVscGVyLnJvdW5kUHJvZHVjdFByaWNlcyhpdGVtKVxyXG4gICAgUm91bmRQcm9kdWN0UHJpY2VzSGVscGVyLnJvdW5kUHJvZHVjdFByaWNlcyhwcm9kdWN0IGFzIFByb2R1Y3QpXHJcblxyXG4gICAgcmV0dXJuIHtcclxuICAgICAgY2hlY2tvdXQsXHJcbiAgICAgIGxpbmVJdGVtOiBMaW5lSXRlbS50b0luc3RhbmNlKHtcclxuICAgICAgICBpZCxcclxuICAgICAgICBuYW1lOiBuYW1lID8/IHByb2R1Y3QubmFtZSxcclxuICAgICAgICBFQU46IEVBTiA/PyBwcm9kdWN0LkVBTixcclxuICAgICAgICBicmFuZDogcHJvZHVjdC5icmFuZCxcclxuICAgICAgICBzbHVnOiBzbHVnID8/IHByb2R1Y3Quc2x1ZyxcclxuICAgICAgICBza3U6IHNrdSA/PyBwcm9kdWN0LnNrdSxcclxuICAgICAgICBzdG9jazogcHJvZHVjdC5zdG9jayxcclxuICAgICAgICBwcmljZTogdGhpcy5yb3VuZFByaWNlKHByb2R1Y3QucHJpY2UpLFxyXG4gICAgICAgIGltYWdlLFxyXG4gICAgICAgIHdlaWdodDogd2VpZ2h0ID8/IHByb2R1Y3Qud2VpZ2h0LFxyXG4gICAgICAgIHF1YW50aXR5OiAoaXRlbS5xdWFudGl0eSB8fCAwKSArIChxdWFudGl0eSB8fCAwKSxcclxuICAgICAgICBwcmljZVBhaWQsXHJcbiAgICAgICAgZGlzY291bnQ6IDAsXHJcbiAgICAgICAgY2F0ZWdvcmllczogcHJvZHVjdC5jYXRlZ29yaWVzID8/IFtdLFxyXG4gICAgICAgIGlzR2lmdDogaXNHaWZ0ID8/IG51bGwsXHJcbiAgICAgICAgY29zdFByaWNlOiBwcm9kdWN0LmNvc3RQcmljZSA/PyAwLFxyXG4gICAgICAgIHR5cGUsXHJcbiAgICAgIH0pLFxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSByb3VuZFByaWNlKHByb2R1Y3RQcmljZTogU2hvcFByaWNlKTogU2hvcFByaWNlIHtcclxuICAgIGNvbnN0IHsgcHJpY2UsIGZ1bGxQcmljZSwgc3Vic2NyaWJlclByaWNlIH0gPSBwcm9kdWN0UHJpY2VcclxuICAgIHJldHVybiB7XHJcbiAgICAgIC4uLnByb2R1Y3RQcmljZSxcclxuICAgICAgcHJpY2U6IE51bWJlcihwcmljZS50b0ZpeGVkKDIpKSxcclxuICAgICAgZnVsbFByaWNlOiBOdW1iZXIoZnVsbFByaWNlLnRvRml4ZWQoMikpLFxyXG4gICAgICAuLi4oc3Vic2NyaWJlclByaWNlICYmIHsgc3Vic2NyaWJlclByaWNlOiBOdW1iZXIoc3Vic2NyaWJlclByaWNlLnRvRml4ZWQoMikpIH0pLFxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBhc3luYyBnZXRQcm9kdWN0RGF0YShwcm9kdWN0SWQ6IHN0cmluZyk6IFByb21pc2U8UGFydGlhbDxQcm9kdWN0Pj4ge1xyXG4gICAgbGV0IHByb2R1Y3Q6IFByb2R1Y3RcclxuICAgIGxldCB2YXJpYW50OiBWYXJpYW50XHJcblxyXG4gICAgdHJ5IHtcclxuICAgICAgcHJvZHVjdCA9IGF3YWl0IHRoaXMucHJvZHVjdFJlcG9zaXRvcnkuZ2V0KHsgaWQ6IHByb2R1Y3RJZCB9KVxyXG4gICAgfSBjYXRjaCAoZXJyb3IpIHtcclxuICAgICAgaWYgKCEoZXJyb3IgaW5zdGFuY2VvZiBOb3RGb3VuZEVycm9yKSkgdGhyb3cgZXJyb3JcclxuXHJcbiAgICAgIGNvbnN0IHsgZGF0YTogdmFyaWFudHMgfSA9IGF3YWl0IHRoaXMudmFyaWFudFJlcG9zaXRvcnkuZmluZCh7IGZpbHRlcnM6IHsgaWQ6IHByb2R1Y3RJZCB9IH0pXHJcblxyXG4gICAgICB2YXJpYW50ID0gdmFyaWFudHMuc2hpZnQoKVxyXG5cclxuICAgICAgaWYgKCF2YXJpYW50KSB0aHJvdyBlcnJvclxyXG5cclxuICAgICAgcHJvZHVjdCA9IGF3YWl0IHRoaXMucHJvZHVjdFJlcG9zaXRvcnkuZ2V0KHsgaWQ6IHZhcmlhbnQucHJvZHVjdElkIH0pXHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIHtcclxuICAgICAgLi4ucHJvZHVjdC50b1BsYWluKCksXHJcbiAgICAgIC4uLih2YXJpYW50ICYmIHsgLi4udmFyaWFudC50b1BsYWluKCkgfSksXHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGdldFByb2R1Y3RQcmljZSA9ICh7XHJcbiAgICBwcm9kdWN0LFxyXG4gICAgaXNTdWJzY3JpYmVyLFxyXG4gIH06IHtcclxuICAgIHByb2R1Y3Q6IExpbmVJdGVtXHJcbiAgICBzaG9wOiBTaG9wc1xyXG4gICAgaXNTdWJzY3JpYmVyOiBib29sZWFuXHJcbiAgfSk6IG51bWJlciA9PiB7XHJcbiAgICBjb25zdCBpbmZvID0gcHJvZHVjdC5wcmljZVxyXG5cclxuICAgIGlmIChwcm9kdWN0LmlzR2lmdCkgcmV0dXJuIDBcclxuXHJcbiAgICByZXR1cm4gaXNTdWJzY3JpYmVyICYmIGluZm8uc3Vic2NyaWJlclByaWNlID4gMFxyXG4gICAgICA/IE51bWJlcihpbmZvLnN1YnNjcmliZXJQcmljZS50b0ZpeGVkKDIpKVxyXG4gICAgICA6IE51bWJlcihpbmZvLnByaWNlLnRvRml4ZWQoMikpXHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGNoZWNrTWF4U3RvY2sgPSAoY3VycmVudFN0b2NrOiBudW1iZXIsIGN1cnJlbnRJdGVtUXRkOiBudW1iZXIsIHF1YW50aXR5VG9BZGQ6IG51bWJlcikgPT4ge1xyXG4gICAgY29uc3QgbWF4U3RvY2sgPSBjdXJyZW50U3RvY2sgfHwgMFxyXG4gICAgY29uc3QgY3VycmVudEl0ZW1BbW91bnQgPSBjdXJyZW50SXRlbVF0ZCB8fCAwXHJcblxyXG4gICAgcmV0dXJuIGN1cnJlbnRJdGVtQW1vdW50ICsgcXVhbnRpdHlUb0FkZCA+IG1heFN0b2NrXHJcbiAgfVxyXG5cclxuICBnZXRHaWZ0cygpIHtcclxuICAgIHJldHVybiB0aGlzLmNoZWNrb3V0U2VydmljZS5nZXRDaGVja291dCgpLnBpcGUoXHJcbiAgICAgIG1lcmdlTWFwKGFzeW5jIChjaGVja291dCkgPT4ge1xyXG4gICAgICAgIGNvbnN0IG5vdEdpZnRJdGVtczogTGluZUl0ZW1bXSA9IGNoZWNrb3V0LmxpbmVJdGVtcyA/IGNoZWNrb3V0LmxpbmVJdGVtcy5maWx0ZXIoKGl0ZW0pID0+ICFpdGVtLmlzR2lmdCkgOiBbXVxyXG5cclxuICAgICAgICBpZiAoIW5vdEdpZnRJdGVtcy5sZW5ndGgpIHJldHVybiB7IC4uLmNoZWNrb3V0LCBsaW5lSXRlbXM6IFtdIH0gYXMgQ2hlY2tvdXRcclxuXHJcbiAgICAgICAgY29uc3QgY2FydFRvdGFsID0gbm90R2lmdEl0ZW1zLnJlZHVjZSgoYSwgYikgPT4gYSArIGIucHJpY2VQYWlkICogYi5xdWFudGl0eSwgMClcclxuXHJcbiAgICAgICAgY29uc3QgY2FtcGFpZ25zID0gYXdhaXQgdGhpcy5idXkyV2luUmVwb3NpdG9yeVxyXG4gICAgICAgICAgLmZpbmQoe1xyXG4gICAgICAgICAgICBmaWx0ZXJzOiB7XHJcbiAgICAgICAgICAgICAgYWN0aXZlOiB7IG9wZXJhdG9yOiBXaGVyZS5FUVVBTFMsIHZhbHVlOiB0cnVlIH0sXHJcbiAgICAgICAgICAgICAgc2hvcDogeyBvcGVyYXRvcjogV2hlcmUuRVFVQUxTLCB2YWx1ZTogdGhpcy5kZWZhdWx0U2hvcCB9LFxyXG4gICAgICAgICAgICB9LFxyXG4gICAgICAgICAgfSlcclxuICAgICAgICAgIC50aGVuKChkYXRhKSA9PiBkYXRhLmRhdGEpXHJcblxyXG4gICAgICAgIGlmICghY2FtcGFpZ25zLmxlbmd0aCkgcmV0dXJuIHsgLi4uY2hlY2tvdXQsIGxpbmVJdGVtczogbm90R2lmdEl0ZW1zIH0gYXMgQ2hlY2tvdXRcclxuXHJcbiAgICAgICAgY29uc3QgZWxlZ2libGVDYW1wYWlnbnM6IEJ1eTJXaW5bXSA9IFtdXHJcblxyXG4gICAgICAgIGZvciAoY29uc3QgY2FtcGFpZ24gb2YgY2FtcGFpZ25zKSB7XHJcbiAgICAgICAgICBjb25zdCB0b2RheSA9IG5ldyBEYXRlKCkuZ2V0VGltZSgpXHJcblxyXG4gICAgICAgICAgaWYgKCEoY2FtcGFpZ24uc3RhcnREYXRlLmdldFRpbWUoKSA8PSB0b2RheSkgJiYgIShjYW1wYWlnbi5lbmREYXRlLmdldFRpbWUoKSA+PSB0b2RheSkpIGNvbnRpbnVlXHJcblxyXG4gICAgICAgICAgaWYgKGNhbXBhaWduLmFjdGl2ZUNhdGVnb3J5KSB7XHJcbiAgICAgICAgICAgIGNvbnN0IGNhdGVnb3JpZXNDYW1wYWluZyA9IGNhbXBhaWduLmNhdGVnb3JpZXMubWFwKChjKSA9PiBjLmlkLnRvU3RyaW5nKCkpXHJcbiAgICAgICAgICAgIGNvbnN0IGNhdGVnb3JpZXNDYW1wYWluZ0Z1bGxUcmVlID0gW11cclxuXHJcbiAgICAgICAgICAgIGZvciAoY29uc3QgaWQgb2YgY2F0ZWdvcmllc0NhbXBhaW5nKSB7XHJcbiAgICAgICAgICAgICAgY29uc3QgY2hpbGRyZW4gPSBhd2FpdCB0aGlzLmNhdGVnb3J5UmVwb3NpdG9yeS5nZXRDaGlsZHJlbihwYXJzZUludChpZCkpXHJcblxyXG4gICAgICAgICAgICAgIGNhdGVnb3JpZXNDYW1wYWluZ0Z1bGxUcmVlLnB1c2goaWQsIC4uLmNoaWxkcmVuLm1hcCgoYykgPT4gYy5pZC50b1N0cmluZygpKSlcclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgY29uc3QgY2F0ZWdvcmllc0NhbXBhaW5nVHJlZSA9IFsuLi5uZXcgU2V0KGNhdGVnb3JpZXNDYW1wYWluZ0Z1bGxUcmVlKV1cclxuICAgICAgICAgICAgY29uc3QgZmlsdGVyUHJvZHVjdHNDYXRlZ29yaWVzID0gY2hlY2tvdXQubGluZUl0ZW1zLmZpbHRlcigobCkgPT4ge1xyXG4gICAgICAgICAgICAgIGlmICghbC5jYXRlZ29yaWVzIHx8ICFsLmNhdGVnb3JpZXM/Lmxlbmd0aCkgcmV0dXJuIHRydWVcclxuXHJcbiAgICAgICAgICAgICAgcmV0dXJuIGwuY2F0ZWdvcmllcy5zb21lKChjKSA9PiBjYXRlZ29yaWVzQ2FtcGFpbmdUcmVlLnNvbWUoKGNhdCkgPT4gY2F0ID09IGMpKVxyXG4gICAgICAgICAgICB9KVxyXG5cclxuICAgICAgICAgICAgaWYgKGZpbHRlclByb2R1Y3RzQ2F0ZWdvcmllcy5sZW5ndGgpIHtcclxuICAgICAgICAgICAgICBjb25zdCBjYXJ0VG90YWxDYXRlZ29yaWVzID0gZmlsdGVyUHJvZHVjdHNDYXRlZ29yaWVzLnJlZHVjZSgoYSwgYikgPT4gYSArIGIucHJpY2VQYWlkICogYi5xdWFudGl0eSwgMClcclxuXHJcbiAgICAgICAgICAgICAgaWYgKGNhcnRUb3RhbENhdGVnb3JpZXMgPj0gY2FtcGFpZ24uY2FydFZhbHVlTWluKSBlbGVnaWJsZUNhbXBhaWducy5wdXNoKGNhbXBhaWduKVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICBpZiAoY2FtcGFpZ24uY2FydFZhbHVlICYmIGNhbXBhaWduLmNhcnRWYWx1ZSA+IDApIHtcclxuICAgICAgICAgICAgICBpZiAoY2FtcGFpZ24uY2FydFZhbHVlIDw9IGNhcnRUb3RhbCkgZWxlZ2libGVDYW1wYWlnbnMucHVzaChjYW1wYWlnbilcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgaWYgKCFlbGVnaWJsZUNhbXBhaWducy5sZW5ndGgpIHJldHVybiB7IC4uLmNoZWNrb3V0LCBsaW5lSXRlbXM6IG5vdEdpZnRJdGVtcyB9IGFzIENoZWNrb3V0XHJcblxyXG4gICAgICAgIGNvbnN0IGNhbXBhaW5nblByb2R1Y3RzOiBQcm9kdWN0W11bXSA9IFtdXHJcblxyXG4gICAgICAgIGZvciAoY29uc3QgY2FtcGFpZ24gb2YgZWxlZ2libGVDYW1wYWlnbnMpIHtcclxuICAgICAgICAgIGxldCBlbGVnaWJsZVByb2R1Y3RzID0gW11cclxuXHJcbiAgICAgICAgICBmb3IgKGNvbnN0IHByb2R1Y3Qgb2YgY2FtcGFpZ24ucHJvZHVjdHMpIHtcclxuICAgICAgICAgICAgY29uc3QgeyBkYXRhOiBwcm9kdWN0RGF0YSB9ID0gYXdhaXQgdGhpcy5wcm9kdWN0UmVwb3NpdG9yeS5maW5kKHsgZmlsdGVyczogeyBza3U6IHByb2R1Y3QgfSB9KVxyXG5cclxuICAgICAgICAgICAgaWYgKCFwcm9kdWN0RGF0YS5sZW5ndGgpIGNvbnRpbnVlXHJcblxyXG4gICAgICAgICAgICBjb25zdCBnaWZ0ID0gcHJvZHVjdERhdGEuc2hpZnQoKVxyXG5cclxuICAgICAgICAgICAgaWYgKGdpZnQuc3RvY2sucXVhbnRpdHkgPCAxKSBjb250aW51ZVxyXG5cclxuICAgICAgICAgICAgZWxlZ2libGVQcm9kdWN0cy5wdXNoKGdpZnQpXHJcbiAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgY2FtcGFpbmduUHJvZHVjdHMucHVzaChlbGVnaWJsZVByb2R1Y3RzKVxyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgaWYgKCFjYW1wYWluZ25Qcm9kdWN0cy5sZW5ndGgpIHJldHVybiB7IC4uLmNoZWNrb3V0LCBsaW5lSXRlbXM6IG5vdEdpZnRJdGVtcyB9IGFzIENoZWNrb3V0XHJcblxyXG4gICAgICAgIGNvbnN0IGdpZnRzID0gdGhpcy5naWZ0VG9MaW5lSXRlbXMoW10uY29uY2F0KC4uLmNhbXBhaW5nblByb2R1Y3RzKSlcclxuXHJcbiAgICAgICAgcmV0dXJuIHsgLi4uY2hlY2tvdXQsIGxpbmVJdGVtczogbm90R2lmdEl0ZW1zLmNvbmNhdChnaWZ0cykgfVxyXG4gICAgICB9KSxcclxuICAgICAgY29uY2F0TWFwKChjaGVja291dCkgPT4gdGhpcy5jaGVja291dFNlcnZpY2UudXBkYXRlQ2hlY2tvdXRMaW5lSXRlbXMoY2hlY2tvdXQpKSxcclxuICAgICAgbWFwKChjaGVja291dCkgPT4gdGhpcy5nZW5lcmF0ZUNhcnRPYmplY3QoY2hlY2tvdXQubGluZUl0ZW1zKSksXHJcbiAgICAgIHRhcCgoY2FydCkgPT4gdGhpcy5jYXJ0U3ViamVjdC5uZXh0KGNhcnQpKSxcclxuICAgIClcclxuICB9XHJcblxyXG4gIHByaXZhdGUgZ2lmdFRvTGluZUl0ZW1zKGl0ZW1zOiBQcm9kdWN0W10pOiBMaW5lSXRlbVtdIHtcclxuICAgIHJldHVybiBpdGVtcy5tYXAoKGl0ZW0pID0+IHtcclxuICAgICAgY29uc3QgeyBicmFuZCwgY2F0ZWdvcmllcywgaWQsIG5hbWUsIHByaWNlLCBza3UsIHNsdWcsIHN0b2NrLCB3ZWlnaHQsIEVBTiB9ID0gaXRlbVxyXG5cclxuICAgICAgY29uc3QgaW1hZ2UgPSBpdGVtPy5taW5pYXR1cmVzPy5sZW5ndGggPyBpdGVtLm1pbmlhdHVyZXNbMF0gOiBpdGVtLmltYWdlc1swXVxyXG5cclxuICAgICAgcmV0dXJuIExpbmVJdGVtLnRvSW5zdGFuY2Uoe1xyXG4gICAgICAgIGJyYW5kLFxyXG4gICAgICAgIGNhdGVnb3JpZXMsXHJcbiAgICAgICAgaWQ6IGlkLnRvU3RyaW5nKCksXHJcbiAgICAgICAgbmFtZSxcclxuICAgICAgICBwcmljZSxcclxuICAgICAgICBza3UsXHJcbiAgICAgICAgc2x1ZyxcclxuICAgICAgICBzdG9jayxcclxuICAgICAgICB3ZWlnaHQsXHJcbiAgICAgICAgRUFOLFxyXG4gICAgICAgIGltYWdlLFxyXG4gICAgICAgIHByaWNlUGFpZDogMCxcclxuICAgICAgICBxdWFudGl0eTogMSxcclxuICAgICAgICBpc0dpZnQ6IHRydWUsXHJcbiAgICAgIH0pXHJcbiAgICB9KVxyXG4gIH1cclxufVxyXG4iXX0=
|
|
284
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FydC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvY29ubmVjdC1hbmd1bGFyL3NyYy9zZXJ2aWNlcy9jYXJ0LnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUE7QUFDbEQsT0FBTyxFQUVMLDBCQUEwQixFQUUxQixRQUFRLEVBQ1IsS0FBSyxFQUNMLFFBQVEsRUFDUixhQUFhLEVBR2Isd0JBQXdCLEVBRXhCLEtBQUssRUFJTCxLQUFLLEdBQ04sTUFBTSxtQkFBbUIsQ0FBQTtBQUMxQixPQUFPLEVBQUUsSUFBSSxFQUFFLEdBQUcsRUFBYyxFQUFFLEVBQUUsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFBO0FBQ3pELE9BQU8sRUFBRSxVQUFVLEVBQUUsU0FBUyxFQUFFLEdBQUcsRUFBRSxRQUFRLEVBQUUsR0FBRyxFQUFFLE1BQU0sZ0JBQWdCLENBQUE7QUFDMUUsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLFdBQVcsQ0FBQTtBQUN4QyxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUE7QUFDNUMsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLG9CQUFvQixDQUFBOzs7OztBQVFwRCxNQUFNLE9BQU8sV0FBVztJQUd0QixZQUNtQixXQUF3QixFQUN4QixlQUFnQyxFQUNWLFdBQWtCLEVBQ1gsaUJBQW9DLEVBQ25DLGtCQUFzQyxFQUN2QyxpQkFBb0MsRUFDcEMsaUJBQTZDO1FBTjFFLGdCQUFXLEdBQVgsV0FBVyxDQUFhO1FBQ3hCLG9CQUFlLEdBQWYsZUFBZSxDQUFpQjtRQUNWLGdCQUFXLEdBQVgsV0FBVyxDQUFPO1FBQ1gsc0JBQWlCLEdBQWpCLGlCQUFpQixDQUFtQjtRQUNuQyx1QkFBa0IsR0FBbEIsa0JBQWtCLENBQW9CO1FBQ3ZDLHNCQUFpQixHQUFqQixpQkFBaUIsQ0FBbUI7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R0FBRyxFQUFFLEdBQUcsSUFBSSxDQUFBO1lBRWxGLE1BQU0sS0FBSyxHQUFHLElBQUksRUFBRSxVQUFVLEVBQUUsTUFBTSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFBO1lBRTVFLE9BQU8sUUFBUSxDQUFDLFVBQVUsQ0FBQztnQkFDekIsS0FBSztnQkFDTCxVQUFVO2dCQUNWLEVBQUUsRUFBRSxFQUFFLENBQUMsUUFBUSxFQUFFO2dCQUNqQixJQUFJO2dCQUNKLEtBQUs7Z0JBQ0wsR0FBRztnQkFDSCxJQUFJO2dCQUNKLEtBQUs7Z0JBQ0wsTUFBTTtnQkFDTixHQUFHO2dCQUNILEtBQUs7Z0JBQ0wsU0FBUyxFQUFFLENBQUM7Z0JBQ1osUUFBUSxFQUFFLENBQUM7Z0JBQ1gsTUFBTSxFQUFFLElBQUk7YUFDYixDQUFDLENBQUE7UUFDSixDQUFDLENBQUMsQ0FBQTtJQUNKLENBQUM7OEdBblhVLFdBQVcsNEVBTVosWUFBWSxhQUNaLG1CQUFtQixhQUNuQixvQkFBb0IsYUFDcEIsbUJBQW1CLGFBQ25CLG1CQUFtQjtrSEFWbEIsV0FBVzs7MkZBQVgsV0FBVztrQkFEdkIsVUFBVTs7MEJBT04sTUFBTTsyQkFBQyxZQUFZOzswQkFDbkIsTUFBTTsyQkFBQyxtQkFBbUI7OzBCQUMxQixNQUFNOzJCQUFDLG9CQUFvQjs7MEJBQzNCLE1BQU07MkJBQUMsbUJBQW1COzswQkFDMUIsTUFBTTsyQkFBQyxtQkFBbUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3QsIEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJ1xyXG5pbXBvcnQge1xyXG4gIEJ1eTJXaW4sXHJcbiAgQnV5MldpbkZpcmVzdG9yZVJlcG9zaXRvcnksXHJcbiAgQ2F0ZWdvcnlSZXBvc2l0b3J5LFxyXG4gIENoZWNrb3V0LFxyXG4gIGlzTmlsLFxyXG4gIExpbmVJdGVtLFxyXG4gIE5vdEZvdW5kRXJyb3IsXHJcbiAgUHJvZHVjdCxcclxuICBQcm9kdWN0UmVwb3NpdG9yeSxcclxuICBSb3VuZFByb2R1Y3RQcmljZXNIZWxwZXIsXHJcbiAgU2hvcFByaWNlLFxyXG4gIFNob3BzLFxyXG4gIFVzZXIsXHJcbiAgVmFyaWFudCxcclxuICBWYXJpYW50UmVwb3NpdG9yeSxcclxuICBXaGVyZSxcclxufSBmcm9tICdAaW5mcmFiNGEvY29ubmVjdCdcclxuaW1wb3J0IHsgZnJvbSwgaWlmLCBPYnNlcnZhYmxlLCBvZiwgU3ViamVjdCB9IGZyb20gJ3J4anMnXHJcbmltcG9ydCB7IGNhdGNoRXJyb3IsIGNvbmNhdE1hcCwgbWFwLCBtZXJnZU1hcCwgdGFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnXHJcbmltcG9ydCB7IERFRkFVTFRfU0hPUCB9IGZyb20gJy4uL2NvbnN0cydcclxuaW1wb3J0IHsgQXV0aFNlcnZpY2UgfSBmcm9tICcuL2F1dGguc2VydmljZSdcclxuaW1wb3J0IHsgQ2hlY2tvdXRTZXJ2aWNlIH0gZnJvbSAnLi9jaGVja291dC5zZXJ2aWNlJ1xyXG5pbXBvcnQgeyBSZXF1aXJlZENoZWNrb3V0RGF0YSB9IGZyb20gJy4vdHlwZXMnXHJcblxyXG5leHBvcnQgdHlwZSBDYXJ0ID0ge1xyXG4gIFtpZDogc3RyaW5nXTogTGluZUl0ZW1cclxufVxyXG5cclxuQEluamVjdGFibGUoKVxyXG5leHBvcnQgY2xhc3MgQ2FydFNlcnZpY2Uge1xyXG4gIHByaXZhdGUgY2FydFN1YmplY3Q6IFN1YmplY3Q8Q2FydD4gPSBuZXcgU3ViamVjdCgpXHJcblxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHJpdmF0ZSByZWFkb25seSBhdXRoU2VydmljZTogQXV0aFNlcnZpY2UsXHJcbiAgICBwcml2YXRlIHJlYWRvbmx5IGNoZWNrb3V0U2VydmljZTogQ2hlY2tvdXRTZXJ2aWNlLFxyXG4gICAgQEluamVjdChERUZBVUxUX1NIT1ApIHByaXZhdGUgcmVhZG9ubHkgZGVmYXVsdFNob3A6IFNob3BzLFxyXG4gICAgQEluamVjdCgnUHJvZHVjdFJlcG9zaXRvcnknKSBwcml2YXRlIHJlYWRvbmx5IHByb2R1Y3RSZXBvc2l0b3J5OiBQcm9kdWN0UmVwb3NpdG9yeSxcclxuICAgIEBJbmplY3QoJ0NhdGVnb3J5UmVwb3NpdG9yeScpIHByaXZhdGUgcmVhZG9ubHkgY2F0ZWdvcnlSZXBvc2l0b3J5OiBDYXRlZ29yeVJlcG9zaXRvcnksXHJcbiAgICBASW5qZWN0KCdWYXJpYW50UmVwb3NpdG9yeScpIHByaXZhdGUgcmVhZG9ubHkgdmFyaWFudFJlcG9zaXRvcnk6IFZhcmlhbnRSZXBvc2l0b3J5LFxyXG4gICAgQEluamVjdCgnQnV5MldpblJlcG9zaXRvcnknKSBwcml2YXRlIHJlYWRvbmx5IGJ1eTJXaW5SZXBvc2l0b3J5OiBCdXkyV2luRmlyZXN0b3JlUmVwb3NpdG9yeSxcclxuICApIHt9XHJcblxyXG4gIGFkZEl0ZW0oaXRlbTogTGluZUl0ZW0sIHF1YW50aXR5OiBudW1iZXIgPSAxKTogT2JzZXJ2YWJsZTxDYXJ0PiB7XHJcbiAgICByZXR1cm4gZnJvbSh0aGlzLmNoZWNrb3V0U2VydmljZS5nZXRDaGVja291dCgpKS5waXBlKFxyXG4gICAgICBjb25jYXRNYXAoYXN5bmMgKGNoZWNrb3V0KSA9PiBhd2FpdCB0aGlzLmJ1aWxkTGluZUl0ZW0oeyBjaGVja291dCwgaXRlbSwgcXVhbnRpdHk6IHF1YW50aXR5IHx8IDEgfSkpLFxyXG4gICAgICBtZXJnZU1hcCgoeyBjaGVja291dCwgbGluZUl0ZW0gfSkgPT4gdGhpcy51cGRhdGVMaW5lSXRlbUluQ2FydChsaW5lSXRlbSwgcXVhbnRpdHkgfHwgMSwgY2hlY2tvdXQgYXMgQ2hlY2tvdXQpKSxcclxuICAgICAgdGFwKChjYXJ0KSA9PiB0aGlzLmNhcnRTdWJqZWN0Lm5leHQoY2FydCkpLFxyXG4gICAgKVxyXG4gIH1cclxuXHJcbiAgZGVjcmVhc2VJdGVtKGl0ZW06IExpbmVJdGVtKTogT2JzZXJ2YWJsZTxDYXJ0PiB7XHJcbiAgICByZXR1cm4gdGhpcy5jaGVja291dFNlcnZpY2UuZ2V0Q2hlY2tvdXQoKS5waXBlKFxyXG4gICAgICBtYXAoKGNoZWNrb3V0KSA9PiB7XHJcbiAgICAgICAgY29uc3QgY2hlY2tvdXRJdGVtID0gY2hlY2tvdXQubGluZUl0ZW1zPy5maW5kKChsaW5lSXRlbSkgPT4gbGluZUl0ZW0uaWQgPT09IGl0ZW0uaWQpXHJcblxyXG4gICAgICAgIGlmICghaXNOaWwoY2hlY2tvdXRJdGVtKSkgY2hlY2tvdXRJdGVtLnF1YW50aXR5IC09IGNoZWNrb3V0SXRlbS5xdWFudGl0eSA+IDEgPyAxIDogMFxyXG5cclxuICAgICAgICByZXR1cm4gY2hlY2tvdXRcclxuICAgICAgfSksXHJcbiAgICAgIGNvbmNhdE1hcCgoY2hlY2tvdXQpID0+IHRoaXMuY2hlY2tvdXRTZXJ2aWNlLnVwZGF0ZUNoZWNrb3V0TGluZUl0ZW1zKGNoZWNrb3V0KSksXHJcbiAgICAgIG1hcCgoY2hlY2tvdXQpID0+IHRoaXMuZ2VuZXJhdGVDYXJ0T2JqZWN0KGNoZWNrb3V0LmxpbmVJdGVtcykpLFxyXG4gICAgICB0YXAoKGNhcnQpID0+IHRoaXMuY2FydFN1YmplY3QubmV4dChjYXJ0KSksXHJcbiAgICApXHJcbiAgfVxyXG5cclxuICBnZXRDYXJ0KGNoZWNrb3V0PzogUmVxdWlyZWRDaGVja291dERhdGEpOiBPYnNlcnZhYmxlPENhcnQ+IHtcclxuICAgIHRoaXMuYnVpbGRDYXJ0RnJvbUNoZWNrb3V0KGNoZWNrb3V0KS5zdWJzY3JpYmUoKGNhcnQpID0+IHRoaXMuY2FydFN1YmplY3QubmV4dChjYXJ0KSlcclxuXHJcbiAgICByZXR1cm4gdGhpcy5jYXJ0U3ViamVjdFxyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogQGRlcHJlY2F0ZWQgVGhlIG1ldGhvZCBzaG91bGQgbm90IGJlIHVzZWRcclxuICAgKi9cclxuICBnZXRWYXJpYW50UHJpY2VEaXNjb3VudChpdGVtOiBMaW5lSXRlbSk6IE9ic2VydmFibGU8bnVtYmVyPiB7XHJcbiAgICByZXR1cm4gdGhpcy5hdXRoU2VydmljZS5nZXRVc2VyKCkucGlwZShcclxuICAgICAgY29uY2F0TWFwKCh1c2VyKSA9PlxyXG4gICAgICAgIGlpZihcclxuICAgICAgICAgICgpID0+IHVzZXIuaXNTdWJzY3JpYmVyICYmICEhaXRlbS5wcmljZS5zdWJzY3JpYmVyUHJpY2UsXHJcbiAgICAgICAgICBvZihpdGVtLnByaWNlLnN1YnNjcmliZXJQcmljZSksXHJcbiAgICAgICAgICBvZihpdGVtLnByaWNlLnByaWNlKSxcclxuICAgICAgICApLFxyXG4gICAgICApLFxyXG4gICAgICBjYXRjaEVycm9yKCgpID0+IG9mKGl0ZW0ucHJpY2UucHJpY2UpKSxcclxuICAgIClcclxuICB9XHJcblxyXG4gIHJlbW92ZUl0ZW0oaXRlbTogTGluZUl0ZW0pOiBPYnNlcnZhYmxlPENhcnQ+IHtcclxuICAgIHJldHVybiB0aGlzLmNoZWNrb3V0U2VydmljZS5nZXRDaGVja291dCgpLnBpcGUoXHJcbiAgICAgIG1hcCgoY2hlY2tvdXQpID0+IHtcclxuICAgICAgICBjb25zdCBpbmRleCA9IGNoZWNrb3V0LmxpbmVJdGVtcy5maW5kSW5kZXgoKGxpbmVJdGVtKSA9PiBsaW5lSXRlbS5pZCA9PT0gaXRlbS5pZClcclxuXHJcbiAgICAgICAgaWYgKGluZGV4ID49IDApIGNoZWNrb3V0LmxpbmVJdGVtcy5zcGxpY2UoaW5kZXgsIDEpXHJcblxyXG4gICAgICAgIHJldHVybiBjaGVja291dFxyXG4gICAgICB9KSxcclxuICAgICAgY29uY2F0TWFwKChjaGVja291dCkgPT4gdGhpcy5jaGVja291dFNlcnZpY2UudXBkYXRlQ2hlY2tvdXRMaW5lSXRlbXMoY2hlY2tvdXQpKSxcclxuICAgICAgbWFwKChjaGVja291dCkgPT4gdGhpcy5nZW5lcmF0ZUNhcnRPYmplY3QoY2hlY2tvdXQubGluZUl0ZW1zKSksXHJcbiAgICAgIHRhcCgoY2FydCkgPT4gdGhpcy5jYXJ0U3ViamVjdC5uZXh0KGNhcnQpKSxcclxuICAgIClcclxuICB9XHJcblxyXG4gIHVwZGF0ZVVzZXJDYXJ0KHVzZXI6IFVzZXIpOiBPYnNlcnZhYmxlPENhcnQ+IHtcclxuICAgIHJldHVybiB0aGlzLmNoZWNrb3V0U2VydmljZS5nZXRDaGVja291dCgpLnBpcGUoXHJcbiAgICAgIGNvbmNhdE1hcCgoY2hlY2tvdXQpID0+XHJcbiAgICAgICAgdGhpcy5jaGVja291dFNlcnZpY2UudXBkYXRlQ2hlY2tvdXRVc2VyKENoZWNrb3V0LnRvSW5zdGFuY2UoeyAuLi5jaGVja291dC50b1BsYWluKCksIHVzZXIgfSkpLFxyXG4gICAgICApLFxyXG4gICAgICBjb25jYXRNYXAoXHJcbiAgICAgICAgYXN5bmMgKGNoZWNrb3V0KSA9PlxyXG4gICAgICAgICAgYXdhaXQgdGhpcy5jaGVja291dFNlcnZpY2VcclxuICAgICAgICAgICAgLnVwZGF0ZUNoZWNrb3V0TGluZUl0ZW1zKFxyXG4gICAgICAgICAgICAgIENoZWNrb3V0LnRvSW5zdGFuY2Uoe1xyXG4gICAgICAgICAgICAgICAgLi4uY2hlY2tvdXQudG9QbGFpbigpLFxyXG4gICAgICAgICAgICAgICAgbGluZUl0ZW1zOiBjaGVja291dC5saW5lSXRlbXM/Lmxlbmd0aFxyXG4gICAgICAgICAgICAgICAgICA/IGF3YWl0IFByb21pc2UuYWxsKFxyXG4gICAgICAgICAgICAgICAgICAgICAgY2hlY2tvdXQubGluZUl0ZW1zPy5tYXAoYXN5bmMgKGl0ZW0pID0+IChhd2FpdCB0aGlzLmJ1aWxkTGluZUl0ZW0oeyBjaGVja291dCwgaXRlbSB9KSkubGluZUl0ZW0pLFxyXG4gICAgICAgICAgICAgICAgICAgIClcclxuICAgICAgICAgICAgICAgICAgOiBbXSxcclxuICAgICAgICAgICAgICB9KSxcclxuICAgICAgICAgICAgKVxyXG4gICAgICAgICAgICAudG9Qcm9taXNlKCksXHJcbiAgICAgICksXHJcbiAgICAgIG1hcCgoY2hlY2tvdXQpID0+IHRoaXMuZ2VuZXJhdGVDYXJ0T2JqZWN0KGNoZWNrb3V0LmxpbmVJdGVtcykpLFxyXG4gICAgICB0YXAoKGNhcnQpID0+IHRoaXMuY2FydFN1YmplY3QubmV4dChjYXJ0KSksXHJcbiAgICApXHJcbiAgfVxyXG5cclxuICBjbGVhckNhcnQoKTogT2JzZXJ2YWJsZTxDYXJ0PiB7XHJcbiAgICByZXR1cm4gdGhpcy5jaGVja291dFNlcnZpY2UuZ2V0Q2hlY2tvdXQoKS5waXBlKFxyXG4gICAgICBtYXAoKGNoZWNrb3V0KSA9PiB7XHJcbiAgICAgICAgdGhpcy5jaGVja291dFNlcnZpY2UuY2xlYXJDaGVja291dEZyb21TZXNzaW9uKClcclxuICAgICAgICByZXR1cm4gY2hlY2tvdXRcclxuICAgICAgfSksXHJcbiAgICAgIGNvbmNhdE1hcCgob2xkQ2hlY2tvdXQpID0+IHRoaXMuYnVpbGRDYXJ0RnJvbUNoZWNrb3V0KG9sZENoZWNrb3V0KSksXHJcbiAgICAgIHRhcCgoY2FydCkgPT4gdGhpcy5jYXJ0U3ViamVjdC5uZXh0KGNhcnQpKSxcclxuICAgIClcclxuICB9XHJcblxyXG4gIHByaXZhdGUgYnVpbGRDYXJ0RnJvbUNoZWNrb3V0KGNoZWNrb3V0RGF0YT86IFJlcXVpcmVkQ2hlY2tvdXREYXRhKTogT2JzZXJ2YWJsZTxDYXJ0PiB7XHJcbiAgICByZXR1cm4gdGhpcy5jaGVja291dFNlcnZpY2UuZ2V0Q2hlY2tvdXQoY2hlY2tvdXREYXRhKS5waXBlKFxyXG4gICAgICBtYXAoKGNoZWNrb3V0KSA9PiBjaGVja291dC5saW5lSXRlbXMpLFxyXG4gICAgICBjb25jYXRNYXAoKGxpbmVJdGVtcykgPT4gb2YodGhpcy5nZW5lcmF0ZUNhcnRPYmplY3QobGluZUl0ZW1zKSkpLFxyXG4gICAgKVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSB1cGRhdGVMaW5lSXRlbUluQ2FydCA9IChsaW5lSXRlbTogTGluZUl0ZW0sIHF1YW50aXR5OiBudW1iZXIsIGNoZWNrb3V0PzogQ2hlY2tvdXQpOiBPYnNlcnZhYmxlPENhcnQ+ID0+XHJcbiAgICAoaXNOaWwoY2hlY2tvdXQpID8gdGhpcy5jaGVja291dFNlcnZpY2UuZ2V0Q2hlY2tvdXQoKSA6IG9mKGNoZWNrb3V0KSkucGlwZShcclxuICAgICAgY29uY2F0TWFwKChjaGVja291dExvYWRlZCkgPT4ge1xyXG4gICAgICAgIGNvbnN0IGl0ZW1zOiBMaW5lSXRlbVtdID0gW11cclxuICAgICAgICBjb25zdCBpbmRleCA9IGNoZWNrb3V0TG9hZGVkLmxpbmVJdGVtcz8ubWFwKChjaGVja291dEl0ZW0pID0+IGNoZWNrb3V0SXRlbS5pZCkuaW5kZXhPZihsaW5lSXRlbS5pZClcclxuXHJcbiAgICAgICAgaWYgKGluZGV4ID4gLTEpIHtcclxuICAgICAgICAgIGNoZWNrb3V0TG9hZGVkLmxpbmVJdGVtc1tpbmRleF0ucXVhbnRpdHkgKz0gcXVhbnRpdHlcclxuICAgICAgICAgIGNoZWNrb3V0TG9hZGVkLmxpbmVJdGVtc1tpbmRleF0ucHJpY2VQYWlkID0gbGluZUl0ZW0ucHJpY2VQYWlkXHJcbiAgICAgICAgICBjaGVja291dExvYWRlZC5saW5lSXRlbXNbaW5kZXhdLnByaWNlID0gbGluZUl0ZW0ucHJpY2VcclxuICAgICAgICB9IGVsc2VcclxuICAgICAgICAgIGNoZWNrb3V0TG9hZGVkLmxpbmVJdGVtcyA9IGl0ZW1zLmNvbmNhdChcclxuICAgICAgICAgICAgY2hlY2tvdXRMb2FkZWQubGluZUl0ZW1zID8gY2hlY2tvdXRMb2FkZWQubGluZUl0ZW1zLmNvbmNhdChbbGluZUl0ZW1dKSA6IFtsaW5lSXRlbV0sXHJcbiAgICAgICAgICApXHJcbiAgICAgICAgcmV0dXJuIHRoaXMuY2hlY2tvdXRTZXJ2aWNlXHJcbiAgICAgICAgICAudXBkYXRlQ2hlY2tvdXRMaW5lSXRlbXMoY2hlY2tvdXRMb2FkZWQpXHJcbiAgICAgICAgICAucGlwZShtYXAoKHVwZGF0ZWRDaGVja291dCkgPT4gdGhpcy5nZW5lcmF0ZUNhcnRPYmplY3QodXBkYXRlZENoZWNrb3V0LmxpbmVJdGVtcykpKVxyXG4gICAgICB9KSxcclxuICAgIClcclxuXHJcbiAgcHJpdmF0ZSBnZW5lcmF0ZUNhcnRPYmplY3QgPSAoaXRlbXM6IExpbmVJdGVtW10pOiBDYXJ0ID0+XHJcbiAgICBpdGVtcz8ucmVkdWNlKFxyXG4gICAgICAoY2FydCwgaXRlbSkgPT4gKHtcclxuICAgICAgICAuLi5jYXJ0LFxyXG4gICAgICAgIFtpdGVtLmlkXTogTGluZUl0ZW0udG9JbnN0YW5jZSh7XHJcbiAgICAgICAgICAuLi4oY2FydFtpdGVtLmlkXSB8fCBpdGVtKSxcclxuICAgICAgICAgIHF1YW50aXR5OiAoY2FydFtpdGVtLmlkXT8ucXVhbnRpdHkgfHwgMCkgKyAoaXRlbS5xdWFudGl0eSA/IGl0ZW0ucXVhbnRpdHkgOiAxKSxcclxuICAgICAgICB9KSxcclxuICAgICAgfSksXHJcbiAgICAgIHt9IGFzIFJlY29yZDxzdHJpbmcsIExpbmVJdGVtPixcclxuICAgICkgfHwge31cclxuXHJcbiAgcHJpdmF0ZSBidWlsZExpbmVJdGVtID0gYXN5bmMgKHtcclxuICAgIGNoZWNrb3V0LFxyXG4gICAgaXRlbSxcclxuICAgIHF1YW50aXR5LFxyXG4gIH06IHtcclxuICAgIGNoZWNrb3V0OiBSZXF1aXJlZENoZWNrb3V0RGF0YVxyXG4gICAgaXRlbTogTGluZUl0ZW1cclxuICAgIHF1YW50aXR5PzogbnVtYmVyXHJcbiAgfSk6IFByb21pc2U8eyBjaGVja291dDogUGFydGlhbDxDaGVja291dD47IGxpbmVJdGVtOiBMaW5lSXRlbSB9PiA9PiB7XHJcbiAgICBjb25zdCBwcm9kdWN0ID0gYXdhaXQgdGhpcy5nZXRQcm9kdWN0RGF0YShpdGVtLmlkKVxyXG5cclxuICAgIGl0ZW0ucXVhbnRpdHkgPSBpdGVtPy5xdWFudGl0eSB8fCBjaGVja291dD8ubGluZUl0ZW1zPy5maW5kKChsaW5lSXRlbSkgPT4gbGluZUl0ZW0uaWQgPT09IGl0ZW0uaWQpPy5xdWFudGl0eSB8fCAwXHJcblxyXG4gICAgaWYgKHRoaXMuY2hlY2tNYXhTdG9jayhwcm9kdWN0LnN0b2NrLnF1YW50aXR5LCBpdGVtLnF1YW50aXR5IHx8IDAsIHF1YW50aXR5IHx8IDApKVxyXG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ0Rlc2N1bHBlISBUZW1vcyBhcGVuYXMgJyArIHByb2R1Y3Quc3RvY2s/LnF1YW50aXR5ICsgJyBlbSBlc3RvcXVlLicpXHJcblxyXG4gICAgY29uc3QgaW1hZ2UgPSBpdGVtLmltYWdlIHx8IGl0ZW0uaW1hZ2VzPy5zaGlmdCgpXHJcbiAgICBjb25zdCB7IGlkLCBuYW1lLCBFQU4sIHNsdWcsIHdlaWdodCwgc2t1LCB0eXBlIH0gPSBpdGVtXHJcbiAgICBjb25zdCBpc0dpZnQgPSBpdGVtLmlzR2lmdCB8fCBudWxsXHJcbiAgICBjb25zdCBwcmljZVBhaWQgPSB0aGlzLmdldFByb2R1Y3RQcmljZSh7XHJcbiAgICAgIHByb2R1Y3Q6IExpbmVJdGVtLnRvSW5zdGFuY2UocHJvZHVjdCksXHJcbiAgICAgIHNob3A6IGNoZWNrb3V0LnNob3AgfHwgdGhpcy5kZWZhdWx0U2hvcCxcclxuICAgICAgaXNTdWJzY3JpYmVyOiBjaGVja291dC51c2VyPy5pc1N1YnNjcmliZXIsXHJcbiAgICB9KVxyXG5cclxuICAgIFJvdW5kUHJvZHVjdFByaWNlc0hlbHBlci5yb3VuZFByb2R1Y3RQcmljZXMoaXRlbSlcclxuICAgIFJvdW5kUHJvZHVjdFByaWNlc0hlbHBlci5yb3VuZFByb2R1Y3RQcmljZXMocHJvZHVjdCBhcyBQcm9kdWN0KVxyXG5cclxuICAgIHJldHVybiB7XHJcbiAgICAgIGNoZWNrb3V0LFxyXG4gICAgICBsaW5lSXRlbTogTGluZUl0ZW0udG9JbnN0YW5jZSh7XHJcbiAgICAgICAgaWQsXHJcbiAgICAgICAgbmFtZTogbmFtZSA/PyBwcm9kdWN0Lm5hbWUsXHJcbiAgICAgICAgRUFOOiBFQU4gPz8gcHJvZHVjdC5FQU4sXHJcbiAgICAgICAgYnJhbmQ6IHByb2R1Y3QuYnJhbmQsXHJcbiAgICAgICAgc2x1Zzogc2x1ZyA/PyBwcm9kdWN0LnNsdWcsXHJcbiAgICAgICAgc2t1OiBza3UgPz8gcHJvZHVjdC5za3UsXHJcbiAgICAgICAgc3RvY2s6IHByb2R1Y3Quc3RvY2ssXHJcbiAgICAgICAgcHJpY2U6IHRoaXMucm91bmRQcmljZShwcm9kdWN0LnByaWNlKSxcclxuICAgICAgICBpbWFnZSxcclxuICAgICAgICB3ZWlnaHQ6IHdlaWdodCA/PyBwcm9kdWN0LndlaWdodCxcclxuICAgICAgICBxdWFudGl0eTogKGl0ZW0ucXVhbnRpdHkgfHwgMCkgKyAocXVhbnRpdHkgfHwgMCksXHJcbiAgICAgICAgcHJpY2VQYWlkLFxyXG4gICAgICAgIGRpc2NvdW50OiAwLFxyXG4gICAgICAgIGNhdGVnb3JpZXM6IHByb2R1Y3QuY2F0ZWdvcmllcyB8fCBwcm9kdWN0LmNhdGVnb3J5Py5pZCA/IFtwcm9kdWN0LmNhdGVnb3J5Py5pZCwgLi4ucHJvZHVjdC5jYXRlZ29yaWVzXSA6IFtdLFxyXG4gICAgICAgIGlzR2lmdDogaXNHaWZ0ID8/IG51bGwsXHJcbiAgICAgICAgY29zdFByaWNlOiBwcm9kdWN0LmNvc3RQcmljZSA/PyAwLFxyXG4gICAgICAgIHR5cGUsXHJcbiAgICAgIH0pLFxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSByb3VuZFByaWNlKHByb2R1Y3RQcmljZTogU2hvcFByaWNlKTogU2hvcFByaWNlIHtcclxuICAgIGNvbnN0IHsgcHJpY2UsIGZ1bGxQcmljZSwgc3Vic2NyaWJlclByaWNlIH0gPSBwcm9kdWN0UHJpY2VcclxuICAgIHJldHVybiB7XHJcbiAgICAgIC4uLnByb2R1Y3RQcmljZSxcclxuICAgICAgcHJpY2U6IE51bWJlcihwcmljZS50b0ZpeGVkKDIpKSxcclxuICAgICAgZnVsbFByaWNlOiBOdW1iZXIoZnVsbFByaWNlLnRvRml4ZWQoMikpLFxyXG4gICAgICAuLi4oc3Vic2NyaWJlclByaWNlICYmIHsgc3Vic2NyaWJlclByaWNlOiBOdW1iZXIoc3Vic2NyaWJlclByaWNlLnRvRml4ZWQoMikpIH0pLFxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBhc3luYyBnZXRQcm9kdWN0RGF0YShwcm9kdWN0SWQ6IHN0cmluZyk6IFByb21pc2U8UGFydGlhbDxQcm9kdWN0Pj4ge1xyXG4gICAgbGV0IHByb2R1Y3Q6IFByb2R1Y3RcclxuICAgIGxldCB2YXJpYW50OiBWYXJpYW50XHJcblxyXG4gICAgdHJ5IHtcclxuICAgICAgcHJvZHVjdCA9IGF3YWl0IHRoaXMucHJvZHVjdFJlcG9zaXRvcnkuZ2V0KHsgaWQ6IHByb2R1Y3RJZCB9KVxyXG4gICAgfSBjYXRjaCAoZXJyb3IpIHtcclxuICAgICAgaWYgKCEoZXJyb3IgaW5zdGFuY2VvZiBOb3RGb3VuZEVycm9yKSkgdGhyb3cgZXJyb3JcclxuXHJcbiAgICAgIGNvbnN0IHsgZGF0YTogdmFyaWFudHMgfSA9IGF3YWl0IHRoaXMudmFyaWFudFJlcG9zaXRvcnkuZmluZCh7IGZpbHRlcnM6IHsgaWQ6IHByb2R1Y3RJZCB9IH0pXHJcblxyXG4gICAgICB2YXJpYW50ID0gdmFyaWFudHMuc2hpZnQoKVxyXG5cclxuICAgICAgaWYgKCF2YXJpYW50KSB0aHJvdyBlcnJvclxyXG5cclxuICAgICAgcHJvZHVjdCA9IGF3YWl0IHRoaXMucHJvZHVjdFJlcG9zaXRvcnkuZ2V0KHsgaWQ6IHZhcmlhbnQucHJvZHVjdElkIH0pXHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIHtcclxuICAgICAgLi4ucHJvZHVjdC50b1BsYWluKCksXHJcbiAgICAgIC4uLih2YXJpYW50ICYmIHsgLi4udmFyaWFudC50b1BsYWluKCkgfSksXHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGdldFByb2R1Y3RQcmljZSA9ICh7XHJcbiAgICBwcm9kdWN0LFxyXG4gICAgaXNTdWJzY3JpYmVyLFxyXG4gIH06IHtcclxuICAgIHByb2R1Y3Q6IExpbmVJdGVtXHJcbiAgICBzaG9wOiBTaG9wc1xyXG4gICAgaXNTdWJzY3JpYmVyOiBib29sZWFuXHJcbiAgfSk6IG51bWJlciA9PiB7XHJcbiAgICBjb25zdCBpbmZvID0gcHJvZHVjdC5wcmljZVxyXG5cclxuICAgIGlmIChwcm9kdWN0LmlzR2lmdCkgcmV0dXJuIDBcclxuXHJcbiAgICByZXR1cm4gaXNTdWJzY3JpYmVyICYmIGluZm8uc3Vic2NyaWJlclByaWNlID4gMFxyXG4gICAgICA/IE51bWJlcihpbmZvLnN1YnNjcmliZXJQcmljZS50b0ZpeGVkKDIpKVxyXG4gICAgICA6IE51bWJlcihpbmZvLnByaWNlLnRvRml4ZWQoMikpXHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGNoZWNrTWF4U3RvY2sgPSAoY3VycmVudFN0b2NrOiBudW1iZXIsIGN1cnJlbnRJdGVtUXRkOiBudW1iZXIsIHF1YW50aXR5VG9BZGQ6IG51bWJlcikgPT4ge1xyXG4gICAgY29uc3QgbWF4U3RvY2sgPSBjdXJyZW50U3RvY2sgfHwgMFxyXG4gICAgY29uc3QgY3VycmVudEl0ZW1BbW91bnQgPSBjdXJyZW50SXRlbVF0ZCB8fCAwXHJcblxyXG4gICAgcmV0dXJuIGN1cnJlbnRJdGVtQW1vdW50ICsgcXVhbnRpdHlUb0FkZCA+IG1heFN0b2NrXHJcbiAgfVxyXG5cclxuICBnZXRHaWZ0cygpIHtcclxuICAgIHJldHVybiB0aGlzLmNoZWNrb3V0U2VydmljZS5nZXRDaGVja291dCgpLnBpcGUoXHJcbiAgICAgIG1lcmdlTWFwKGFzeW5jIChjaGVja291dCkgPT4ge1xyXG4gICAgICAgIGNvbnN0IG5vdEdpZnRJdGVtczogTGluZUl0ZW1bXSA9IGNoZWNrb3V0LmxpbmVJdGVtcyA/IGNoZWNrb3V0LmxpbmVJdGVtcy5maWx0ZXIoKGl0ZW0pID0+ICFpdGVtLmlzR2lmdCkgOiBbXVxyXG5cclxuICAgICAgICBpZiAoIW5vdEdpZnRJdGVtcy5sZW5ndGgpIHJldHVybiB7IC4uLmNoZWNrb3V0LCBsaW5lSXRlbXM6IFtdIH0gYXMgQ2hlY2tvdXRcclxuXHJcbiAgICAgICAgY29uc3QgY2FydFRvdGFsID0gbm90R2lmdEl0ZW1zLnJlZHVjZSgoYSwgYikgPT4gYSArIGIucHJpY2VQYWlkICogYi5xdWFudGl0eSwgMClcclxuXHJcbiAgICAgICAgY29uc3QgY2FtcGFpZ25zID0gYXdhaXQgdGhpcy5idXkyV2luUmVwb3NpdG9yeVxyXG4gICAgICAgICAgLmZpbmQoe1xyXG4gICAgICAgICAgICBmaWx0ZXJzOiB7XHJcbiAgICAgICAgICAgICAgYWN0aXZlOiB7IG9wZXJhdG9yOiBXaGVyZS5FUVVBTFMsIHZhbHVlOiB0cnVlIH0sXHJcbiAgICAgICAgICAgICAgc2hvcDogeyBvcGVyYXRvcjogV2hlcmUuRVFVQUxTLCB2YWx1ZTogdGhpcy5kZWZhdWx0U2hvcCB9LFxyXG4gICAgICAgICAgICB9LFxyXG4gICAgICAgICAgfSlcclxuICAgICAgICAgIC50aGVuKChkYXRhKSA9PiBkYXRhLmRhdGEpXHJcblxyXG4gICAgICAgIGlmICghY2FtcGFpZ25zLmxlbmd0aCkgcmV0dXJuIHsgLi4uY2hlY2tvdXQsIGxpbmVJdGVtczogbm90R2lmdEl0ZW1zIH0gYXMgQ2hlY2tvdXRcclxuXHJcbiAgICAgICAgY29uc3QgZWxlZ2libGVDYW1wYWlnbnM6IEJ1eTJXaW5bXSA9IFtdXHJcblxyXG4gICAgICAgIGZvciAoY29uc3QgY2FtcGFpZ24gb2YgY2FtcGFpZ25zKSB7XHJcbiAgICAgICAgICBjb25zdCB0b2RheSA9IG5ldyBEYXRlKCkuZ2V0VGltZSgpXHJcblxyXG4gICAgICAgICAgaWYgKCEoY2FtcGFpZ24uc3RhcnREYXRlLmdldFRpbWUoKSA8PSB0b2RheSkgJiYgIShjYW1wYWlnbi5lbmREYXRlLmdldFRpbWUoKSA+PSB0b2RheSkpIGNvbnRpbnVlXHJcblxyXG4gICAgICAgICAgaWYgKGNhbXBhaWduLmFjdGl2ZUNhdGVnb3J5KSB7XHJcbiAgICAgICAgICAgIGNvbnN0IGNhdGVnb3JpZXNDYW1wYWluZyA9IGNhbXBhaWduLmNhdGVnb3JpZXMubWFwKChjKSA9PiBjLmlkLnRvU3RyaW5nKCkpXHJcbiAgICAgICAgICAgIGNvbnN0IGNhdGVnb3JpZXNDYW1wYWluZ0Z1bGxUcmVlID0gW11cclxuXHJcbiAgICAgICAgICAgIGZvciAoY29uc3QgaWQgb2YgY2F0ZWdvcmllc0NhbXBhaW5nKSB7XHJcbiAgICAgICAgICAgICAgY29uc3QgY2hpbGRyZW4gPSBhd2FpdCB0aGlzLmNhdGVnb3J5UmVwb3NpdG9yeS5nZXRDaGlsZHJlbihwYXJzZUludChpZCkpXHJcblxyXG4gICAgICAgICAgICAgIGNhdGVnb3JpZXNDYW1wYWluZ0Z1bGxUcmVlLnB1c2goaWQsIC4uLmNoaWxkcmVuLm1hcCgoYykgPT4gYy5pZC50b1N0cmluZygpKSlcclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgY29uc3QgY2F0ZWdvcmllc0NhbXBhaW5nVHJlZSA9IFsuLi5uZXcgU2V0KGNhdGVnb3JpZXNDYW1wYWluZ0Z1bGxUcmVlKV1cclxuICAgICAgICAgICAgY29uc3QgZmlsdGVyUHJvZHVjdHNDYXRlZ29yaWVzID0gY2hlY2tvdXQubGluZUl0ZW1zLmZpbHRlcigobCkgPT4ge1xyXG4gICAgICAgICAgICAgIGlmICghbC5jYXRlZ29yaWVzIHx8ICFsLmNhdGVnb3JpZXM/Lmxlbmd0aCkgcmV0dXJuIHRydWVcclxuXHJcbiAgICAgICAgICAgICAgcmV0dXJuIGwuY2F0ZWdvcmllcy5zb21lKChjKSA9PiBjYXRlZ29yaWVzQ2FtcGFpbmdUcmVlLnNvbWUoKGNhdCkgPT4gY2F0ID09IGMpKVxyXG4gICAgICAgICAgICB9KVxyXG5cclxuICAgICAgICAgICAgaWYgKGZpbHRlclByb2R1Y3RzQ2F0ZWdvcmllcy5sZW5ndGgpIHtcclxuICAgICAgICAgICAgICBjb25zdCBjYXJ0VG90YWxDYXRlZ29yaWVzID0gZmlsdGVyUHJvZHVjdHNDYXRlZ29yaWVzLnJlZHVjZSgoYSwgYikgPT4gYSArIGIucHJpY2VQYWlkICogYi5xdWFudGl0eSwgMClcclxuXHJcbiAgICAgICAgICAgICAgaWYgKGNhcnRUb3RhbENhdGVnb3JpZXMgPj0gY2FtcGFpZ24uY2FydFZhbHVlTWluKSBlbGVnaWJsZUNhbXBhaWducy5wdXNoKGNhbXBhaWduKVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICBpZiAoY2FtcGFpZ24uY2FydFZhbHVlICYmIGNhbXBhaWduLmNhcnRWYWx1ZSA+IDApIHtcclxuICAgICAgICAgICAgICBpZiAoY2FtcGFpZ24uY2FydFZhbHVlIDw9IGNhcnRUb3RhbCkgZWxlZ2libGVDYW1wYWlnbnMucHVzaChjYW1wYWlnbilcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgaWYgKCFlbGVnaWJsZUNhbXBhaWducy5sZW5ndGgpIHJldHVybiB7IC4uLmNoZWNrb3V0LCBsaW5lSXRlbXM6IG5vdEdpZnRJdGVtcyB9IGFzIENoZWNrb3V0XHJcblxyXG4gICAgICAgIGNvbnN0IGNhbXBhaW5nblByb2R1Y3RzOiBQcm9kdWN0W11bXSA9IFtdXHJcblxyXG4gICAgICAgIGZvciAoY29uc3QgY2FtcGFpZ24gb2YgZWxlZ2libGVDYW1wYWlnbnMpIHtcclxuICAgICAgICAgIGxldCBlbGVnaWJsZVByb2R1Y3RzID0gW11cclxuXHJcbiAgICAgICAgICBmb3IgKGNvbnN0IHByb2R1Y3Qgb2YgY2FtcGFpZ24ucHJvZHVjdHMpIHtcclxuICAgICAgICAgICAgY29uc3QgeyBkYXRhOiBwcm9kdWN0RGF0YSB9ID0gYXdhaXQgdGhpcy5wcm9kdWN0UmVwb3NpdG9yeS5maW5kKHsgZmlsdGVyczogeyBza3U6IHByb2R1Y3QgfSB9KVxyXG5cclxuICAgICAgICAgICAgaWYgKCFwcm9kdWN0RGF0YS5sZW5ndGgpIGNvbnRpbnVlXHJcblxyXG4gICAgICAgICAgICBjb25zdCBnaWZ0ID0gcHJvZHVjdERhdGEuc2hpZnQoKVxyXG5cclxuICAgICAgICAgICAgaWYgKGdpZnQuc3RvY2sucXVhbnRpdHkgPCAxKSBjb250aW51ZVxyXG5cclxuICAgICAgICAgICAgZWxlZ2libGVQcm9kdWN0cy5wdXNoKGdpZnQpXHJcbiAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgY2FtcGFpbmduUHJvZHVjdHMucHVzaChlbGVnaWJsZVByb2R1Y3RzKVxyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgaWYgKCFjYW1wYWluZ25Qcm9kdWN0cy5sZW5ndGgpIHJldHVybiB7IC4uLmNoZWNrb3V0LCBsaW5lSXRlbXM6IG5vdEdpZnRJdGVtcyB9IGFzIENoZWNrb3V0XHJcblxyXG4gICAgICAgIGNvbnN0IGdpZnRzID0gdGhpcy5naWZ0VG9MaW5lSXRlbXMoW10uY29uY2F0KC4uLmNhbXBhaW5nblByb2R1Y3RzKSlcclxuXHJcbiAgICAgICAgcmV0dXJuIHsgLi4uY2hlY2tvdXQsIGxpbmVJdGVtczogbm90R2lmdEl0ZW1zLmNvbmNhdChnaWZ0cykgfVxyXG4gICAgICB9KSxcclxuICAgICAgY29uY2F0TWFwKChjaGVja291dCkgPT4gdGhpcy5jaGVja291dFNlcnZpY2UudXBkYXRlQ2hlY2tvdXRMaW5lSXRlbXMoY2hlY2tvdXQpKSxcclxuICAgICAgbWFwKChjaGVja291dCkgPT4gdGhpcy5nZW5lcmF0ZUNhcnRPYmplY3QoY2hlY2tvdXQubGluZUl0ZW1zKSksXHJcbiAgICAgIHRhcCgoY2FydCkgPT4gdGhpcy5jYXJ0U3ViamVjdC5uZXh0KGNhcnQpKSxcclxuICAgIClcclxuICB9XHJcblxyXG4gIHByaXZhdGUgZ2lmdFRvTGluZUl0ZW1zKGl0ZW1zOiBQcm9kdWN0W10pOiBMaW5lSXRlbVtdIHtcclxuICAgIHJldHVybiBpdGVtcy5tYXAoKGl0ZW0pID0+IHtcclxuICAgICAgY29uc3QgeyBicmFuZCwgY2F0ZWdvcmllcywgaWQsIG5hbWUsIHByaWNlLCBza3UsIHNsdWcsIHN0b2NrLCB3ZWlnaHQsIEVBTiB9ID0gaXRlbVxyXG5cclxuICAgICAgY29uc3QgaW1hZ2UgPSBpdGVtPy5taW5pYXR1cmVzPy5sZW5ndGggPyBpdGVtLm1pbmlhdHVyZXNbMF0gOiBpdGVtLmltYWdlc1swXVxyXG5cclxuICAgICAgcmV0dXJuIExpbmVJdGVtLnRvSW5zdGFuY2Uoe1xyXG4gICAgICAgIGJyYW5kLFxyXG4gICAgICAgIGNhdGVnb3JpZXMsXHJcbiAgICAgICAgaWQ6IGlkLnRvU3RyaW5nKCksXHJcbiAgICAgICAgbmFtZSxcclxuICAgICAgICBwcmljZSxcclxuICAgICAgICBza3UsXHJcbiAgICAgICAgc2x1ZyxcclxuICAgICAgICBzdG9jayxcclxuICAgICAgICB3ZWlnaHQsXHJcbiAgICAgICAgRUFOLFxyXG4gICAgICAgIGltYWdlLFxyXG4gICAgICAgIHByaWNlUGFpZDogMCxcclxuICAgICAgICBxdWFudGl0eTogMSxcclxuICAgICAgICBpc0dpZnQ6IHRydWUsXHJcbiAgICAgIH0pXHJcbiAgICB9KVxyXG4gIH1cclxufVxyXG4iXX0=
|