@gomomento/sdk-core 1.113.0 → 1.115.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/src/clients/ICacheClient.d.ts +14 -2
- package/dist/src/clients/ICacheClient.js +1 -1
- package/dist/src/clients/IMomentoCache.d.ts +12 -1
- package/dist/src/clients/IMomentoCache.js +1 -1
- package/dist/src/index.d.ts +8 -2
- package/dist/src/index.js +16 -4
- package/dist/src/internal/clients/cache/AbstractCacheClient.d.ts +101 -2
- package/dist/src/internal/clients/cache/AbstractCacheClient.js +117 -1
- package/dist/src/internal/clients/cache/IDataClient.d.ts +7 -1
- package/dist/src/internal/clients/cache/IDataClient.js +1 -1
- package/dist/src/internal/clients/cache/momento-cache.d.ts +12 -1
- package/dist/src/internal/clients/cache/momento-cache.js +19 -1
- package/dist/src/messages/responses/cache-get-with-hash.d.ts +76 -0
- package/dist/src/messages/responses/cache-get-with-hash.js +107 -0
- package/dist/src/messages/responses/cache-set-if-absent-or-hash-equal.d.ts +47 -0
- package/dist/src/messages/responses/cache-set-if-absent-or-hash-equal.js +60 -0
- package/dist/src/messages/responses/cache-set-if-absent-or-hash-not-equal.d.ts +47 -0
- package/dist/src/messages/responses/cache-set-if-absent-or-hash-not-equal.js +60 -0
- package/dist/src/messages/responses/cache-set-if-present-and-hash-equal.d.ts +47 -0
- package/dist/src/messages/responses/cache-set-if-present-and-hash-equal.js +60 -0
- package/dist/src/messages/responses/cache-set-if-present-and-hash-not-equal.d.ts +47 -0
- package/dist/src/messages/responses/cache-set-if-present-and-hash-not-equal.js +60 -0
- package/dist/src/messages/responses/cache-set-with-hash.d.ts +46 -0
- package/dist/src/messages/responses/cache-set-with-hash.js +59 -0
- package/dist/src/messages/responses/enums/cache/scalar/index.d.ts +30 -0
- package/dist/src/messages/responses/enums/cache/scalar/index.js +38 -2
- package/dist/src/utils/cache-call-options.d.ts +2 -0
- package/dist/src/utils/cache-call-options.js +1 -1
- package/package.json +1 -1
@@ -1,8 +1,10 @@
|
|
1
|
-
import { CacheDelete, CacheGet, CacheIncrement, CacheSet, CacheSetIfNotExists, CacheSetFetch, CacheSetAddElements, CacheSetContainsElement, CacheSetContainsElements, CacheSetRemoveElements, CacheListFetch, CacheListLength, CacheListPushFront, CacheListPushBack, CacheListConcatenateBack, CacheListConcatenateFront, CacheListPopBack, CacheListPopFront, CacheListRemoveValue, CacheListRetain, CacheDictionarySetField, CacheDictionarySetFields, CacheDictionaryGetField, CacheDictionaryFetch, CacheDictionaryIncrement, CacheDictionaryRemoveField, CacheDictionaryRemoveFields, CacheSortedSetFetch, CacheSortedSetPutElement, CacheSortedSetPutElements, CacheSortedSetGetRank, CacheSortedSetGetScore, CacheSortedSetGetScores, CacheSortedSetIncrementScore, CacheSortedSetRemoveElement, CacheSortedSetLength, CacheSortedSetLengthByScore, CollectionTtl, SortedSetOrder, CacheItemGetType, CacheItemGetTtl, CacheKeyExists, CacheKeysExist, CacheUpdateTtl, CacheIncreaseTtl, CacheDecreaseTtl, CacheDictionaryLength, CacheDictionaryGetFields, CacheSetBatch, CacheGetBatch, CacheSetIfAbsent, CacheSetIfPresent, CacheSetIfEqual, CacheSetIfNotEqual, CacheSetIfPresentAndNotEqual, CacheSetIfAbsentOrEqual, CacheSetSample, CacheSortedSetRemoveElements, CacheSetPop, CacheSetLength, CacheSortedSetUnionStore } from '../../../index';
|
1
|
+
import { CacheDelete, CacheGet, CacheIncrement, CacheSet, CacheSetIfNotExists, CacheSetFetch, CacheSetAddElements, CacheSetContainsElement, CacheSetContainsElements, CacheSetRemoveElements, CacheListFetch, CacheListLength, CacheListPushFront, CacheListPushBack, CacheListConcatenateBack, CacheListConcatenateFront, CacheListPopBack, CacheListPopFront, CacheListRemoveValue, CacheListRetain, CacheDictionarySetField, CacheDictionarySetFields, CacheDictionaryGetField, CacheDictionaryFetch, CacheDictionaryIncrement, CacheDictionaryRemoveField, CacheDictionaryRemoveFields, CacheSortedSetFetch, CacheSortedSetPutElement, CacheSortedSetPutElements, CacheSortedSetGetRank, CacheSortedSetGetScore, CacheSortedSetGetScores, CacheSortedSetIncrementScore, CacheSortedSetRemoveElement, CacheSortedSetLength, CacheSortedSetLengthByScore, CollectionTtl, SortedSetOrder, CacheItemGetType, CacheItemGetTtl, CacheKeyExists, CacheKeysExist, CacheUpdateTtl, CacheIncreaseTtl, CacheDecreaseTtl, CacheDictionaryLength, CacheDictionaryGetFields, CacheSetBatch, CacheGetBatch, CacheSetIfAbsent, CacheSetIfPresent, CacheSetIfEqual, CacheSetIfNotEqual, CacheSetIfPresentAndNotEqual, CacheSetIfAbsentOrEqual, CacheSetSample, CacheSortedSetRemoveElements, CacheSetPop, CacheSetLength, CacheSortedSetUnionStore, CacheGetWithHash, CacheSetWithHash, CacheSetIfPresentAndHashEqual, CacheSetIfPresentAndHashNotEqual, CacheSetIfAbsentOrHashEqual, CacheSetIfAbsentOrHashNotEqual } from '../../../index';
|
2
2
|
import { GetBatchCallOptions, GetCallOptions, SetBatchCallOptions, SetBatchItem, SetCallOptions, SetIfAbsentCallOptions, SortedSetAggregate, SortedSetSource } from '../../../utils';
|
3
3
|
export interface IDataClient {
|
4
4
|
get(cacheName: string, key: string | Uint8Array, options?: GetCallOptions): Promise<CacheGet.Response>;
|
5
|
+
getWithHash(cacheName: string, key: string | Uint8Array, options?: GetCallOptions): Promise<CacheGetWithHash.Response>;
|
5
6
|
set(cacheName: string, key: string | Uint8Array, value: string | Uint8Array, options?: SetCallOptions): Promise<CacheSet.Response>;
|
7
|
+
setWithHash(cacheName: string, key: string | Uint8Array, value: string | Uint8Array, options?: SetCallOptions): Promise<CacheSetWithHash.Response>;
|
6
8
|
delete(cacheName: string, key: string | Uint8Array): Promise<CacheDelete.Response>;
|
7
9
|
increment(cacheName: string, field: string | Uint8Array, amount: number, ttl?: number): Promise<CacheIncrement.Response>;
|
8
10
|
setIfNotExists(cacheName: string, key: string | Uint8Array, field: string | Uint8Array, ttl?: number): Promise<CacheSetIfNotExists.Response>;
|
@@ -12,6 +14,10 @@ export interface IDataClient {
|
|
12
14
|
setIfNotEqual(cacheName: string, key: string | Uint8Array, field: string | Uint8Array, notEqual: string | Uint8Array, ttl?: number): Promise<CacheSetIfNotEqual.Response>;
|
13
15
|
setIfPresentAndNotEqual(cacheName: string, key: string | Uint8Array, field: string | Uint8Array, notEqual: string | Uint8Array, ttl?: number): Promise<CacheSetIfPresentAndNotEqual.Response>;
|
14
16
|
setIfAbsentOrEqual(cacheName: string, key: string | Uint8Array, field: string | Uint8Array, equal: string | Uint8Array, ttl?: number): Promise<CacheSetIfAbsentOrEqual.Response>;
|
17
|
+
setIfPresentAndHashEqual(cacheName: string, key: string | Uint8Array, value: string | Uint8Array, hashEqual: Uint8Array, ttl?: number): Promise<CacheSetIfPresentAndHashEqual.Response>;
|
18
|
+
setIfPresentAndHashNotEqual(cacheName: string, key: string | Uint8Array, value: string | Uint8Array, hashNotEqual: Uint8Array, ttl?: number): Promise<CacheSetIfPresentAndHashNotEqual.Response>;
|
19
|
+
setIfAbsentOrHashEqual(cacheName: string, key: string | Uint8Array, value: string | Uint8Array, hashEqual: Uint8Array, ttl?: number): Promise<CacheSetIfAbsentOrHashEqual.Response>;
|
20
|
+
setIfAbsentOrHashNotEqual(cacheName: string, key: string | Uint8Array, value: string | Uint8Array, hashNotEqual: Uint8Array, ttl?: number): Promise<CacheSetIfAbsentOrHashNotEqual.Response>;
|
15
21
|
getBatch(cacheName: string, keys: Array<string | Uint8Array>, options?: GetBatchCallOptions): Promise<CacheGetBatch.Response>;
|
16
22
|
setBatch(cacheName: string, items: Record<string, string | Uint8Array> | Map<string | Uint8Array, string | Uint8Array> | Array<SetBatchItem>, options?: SetBatchCallOptions): Promise<CacheSetBatch.Response>;
|
17
23
|
setFetch(cacheName: string, setName: string): Promise<CacheSetFetch.Response>;
|
@@ -1,3 +1,3 @@
|
|
1
1
|
"use strict";
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
3
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiSURhdGFDbGllbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvaW50ZXJuYWwvY2xpZW50cy9jYWNoZS9JRGF0YUNsaWVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQ2FjaGVEZWxldGUsXG4gIENhY2hlR2V0LFxuICBDYWNoZUluY3JlbWVudCxcbiAgQ2FjaGVTZXQsXG4gIENhY2hlU2V0SWZOb3RFeGlzdHMsXG4gIENhY2hlU2V0RmV0Y2gsXG4gIENhY2hlU2V0QWRkRWxlbWVudHMsXG4gIENhY2hlU2V0Q29udGFpbnNFbGVtZW50LFxuICBDYWNoZVNldENvbnRhaW5zRWxlbWVudHMsXG4gIENhY2hlU2V0UmVtb3ZlRWxlbWVudHMsXG4gIENhY2hlTGlzdEZldGNoLFxuICBDYWNoZUxpc3RMZW5ndGgsXG4gIENhY2hlTGlzdFB1c2hGcm9udCxcbiAgQ2FjaGVMaXN0UHVzaEJhY2ssXG4gIENhY2hlTGlzdENvbmNhdGVuYXRlQmFjayxcbiAgQ2FjaGVMaXN0Q29uY2F0ZW5hdGVGcm9udCxcbiAgQ2FjaGVMaXN0UG9wQmFjayxcbiAgQ2FjaGVMaXN0UG9wRnJvbnQsXG4gIENhY2hlTGlzdFJlbW92ZVZhbHVlLFxuICBDYWNoZUxpc3RSZXRhaW4sXG4gIENhY2hlRGljdGlvbmFyeVNldEZpZWxkLFxuICBDYWNoZURpY3Rpb25hcnlTZXRGaWVsZHMsXG4gIENhY2hlRGljdGlvbmFyeUdldEZpZWxkLFxuICBDYWNoZURpY3Rpb25hcnlGZXRjaCxcbiAgQ2FjaGVEaWN0aW9uYXJ5SW5jcmVtZW50LFxuICBDYWNoZURpY3Rpb25hcnlSZW1vdmVGaWVsZCxcbiAgQ2FjaGVEaWN0aW9uYXJ5UmVtb3ZlRmllbGRzLFxuICBDYWNoZVNvcnRlZFNldEZldGNoLFxuICBDYWNoZVNvcnRlZFNldFB1dEVsZW1lbnQsXG4gIENhY2hlU29ydGVkU2V0UHV0RWxlbWVudHMsXG4gIENhY2hlU29ydGVkU2V0R2V0UmFuayxcbiAgQ2FjaGVTb3J0ZWRTZXRHZXRTY29yZSxcbiAgQ2FjaGVTb3J0ZWRTZXRHZXRTY29yZXMsXG4gIENhY2hlU29ydGVkU2V0SW5jcmVtZW50U2NvcmUsXG4gIENhY2hlU29ydGVkU2V0UmVtb3ZlRWxlbWVudCxcbiAgQ2FjaGVTb3J0ZWRTZXRMZW5ndGgsXG4gIENhY2hlU29ydGVkU2V0TGVuZ3RoQnlTY29yZSxcbiAgQ29sbGVjdGlvblR0bCxcbiAgU29ydGVkU2V0T3JkZXIsXG4gIENhY2hlSXRlbUdldFR5cGUsXG4gIENhY2hlSXRlbUdldFR0bCxcbiAgQ2FjaGVLZXlFeGlzdHMsXG4gIENhY2hlS2V5c0V4aXN0LFxuICBDYWNoZVVwZGF0ZVR0bCxcbiAgQ2FjaGVJbmNyZWFzZVR0bCxcbiAgQ2FjaGVEZWNyZWFzZVR0bCxcbiAgQ2FjaGVEaWN0aW9uYXJ5TGVuZ3RoLFxuICBDYWNoZURpY3Rpb25hcnlHZXRGaWVsZHMsXG4gIENhY2hlU2V0QmF0Y2gsXG4gIENhY2hlR2V0QmF0Y2gsXG4gIENhY2hlU2V0SWZBYnNlbnQsXG4gIENhY2hlU2V0SWZQcmVzZW50LFxuICBDYWNoZVNldElmRXF1YWwsXG4gIENhY2hlU2V0SWZOb3RFcXVhbCxcbiAgQ2FjaGVTZXRJZlByZXNlbnRBbmROb3RFcXVhbCxcbiAgQ2FjaGVTZXRJZkFic2VudE9yRXF1YWwsXG4gIENhY2hlU2V0U2FtcGxlLFxuICBDYWNoZVNvcnRlZFNldFJlbW92ZUVsZW1lbnRzLFxuICBDYWNoZVNldFBvcCxcbiAgQ2FjaGVTZXRMZW5ndGgsXG4gIENhY2hlU29ydGVkU2V0VW5pb25TdG9yZSxcbn0gZnJvbSAnLi4vLi4vLi4vaW5kZXgnO1xuaW1wb3J0IHtcbiAgR2V0QmF0Y2hDYWxsT3B0aW9ucyxcbiAgR2V0Q2FsbE9wdGlvbnMsXG4gIFNldEJhdGNoQ2FsbE9wdGlvbnMsXG4gIFNldEJhdGNoSXRlbSxcbiAgU2V0Q2FsbE9wdGlvbnMsXG4gIFNldElmQWJzZW50Q2FsbE9wdGlvbnMsXG4gIFNvcnRlZFNldEFnZ3JlZ2F0ZSxcbiAgU29ydGVkU2V0U291cmNlLFxufSBmcm9tICcuLi8uLi8uLi91dGlscyc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgSURhdGFDbGllbnQge1xuICBnZXQoXG4gICAgY2FjaGVOYW1lOiBzdHJpbmcsXG4gICAga2V5OiBzdHJpbmcgfCBVaW50OEFycmF5LFxuICAgIG9wdGlvbnM/OiBHZXRDYWxsT3B0aW9uc1xuICApOiBQcm9taXNlPENhY2hlR2V0LlJlc3BvbnNlPjtcbiAgc2V0KFxuICAgIGNhY2hlTmFtZTogc3RyaW5nLFxuICAgIGtleTogc3RyaW5nIHwgVWludDhBcnJheSxcbiAgICB2YWx1ZTogc3RyaW5nIHwgVWludDhBcnJheSxcbiAgICBvcHRpb25zPzogU2V0Q2FsbE9wdGlvbnNcbiAgKTogUHJvbWlzZTxDYWNoZVNldC5SZXNwb25zZT47XG4gIGRlbGV0ZShcbiAgICBjYWNoZU5hbWU6IHN0cmluZyxcbiAgICBrZXk6IHN0cmluZyB8IFVpbnQ4QXJyYXlcbiAgKTogUHJvbWlzZTxDYWNoZURlbGV0ZS5SZXNwb25zZT47XG4gIGluY3JlbWVudChcbiAgICBjYWNoZU5hbWU6IHN0cmluZyxcbiAgICBmaWVsZDogc3RyaW5nIHwgVWludDhBcnJheSxcbiAgICBhbW91bnQ6IG51bWJlcixcbiAgICB0dGw/OiBudW1iZXJcbiAgKTogUHJvbWlzZTxDYWNoZUluY3JlbWVudC5SZXNwb25zZT47XG4gIHNldElmTm90RXhpc3RzKFxuICAgIGNhY2hlTmFtZTogc3RyaW5nLFxuICAgIGtleTogc3RyaW5nIHwgVWludDhBcnJheSxcbiAgICBmaWVsZDogc3RyaW5nIHwgVWludDhBcnJheSxcbiAgICB0dGw/OiBudW1iZXJcbiAgKTogUHJvbWlzZTxDYWNoZVNldElmTm90RXhpc3RzLlJlc3BvbnNlPjtcbiAgc2V0SWZBYnNlbnQoXG4gICAgY2FjaGVOYW1lOiBzdHJpbmcsXG4gICAga2V5OiBzdHJpbmcgfCBVaW50OEFycmF5LFxuICAgIGZpZWxkOiBzdHJpbmcgfCBVaW50OEFycmF5LFxuICAgIG9wdGlvbnM/OiBTZXRJZkFic2VudENhbGxPcHRpb25zXG4gICk6IFByb21pc2U8Q2FjaGVTZXRJZkFic2VudC5SZXNwb25zZT47XG4gIHNldElmUHJlc2VudChcbiAgICBjYWNoZU5hbWU6IHN0cmluZyxcbiAgICBrZXk6IHN0cmluZyB8IFVpbnQ4QXJyYXksXG4gICAgZmllbGQ6IHN0cmluZyB8IFVpbnQ4QXJyYXksXG4gICAgdHRsPzogbnVtYmVyXG4gICk6IFByb21pc2U8Q2FjaGVTZXRJZlByZXNlbnQuUmVzcG9uc2U+O1xuICBzZXRJZkVxdWFsKFxuICAgIGNhY2hlTmFtZTogc3RyaW5nLFxuICAgIGtleTogc3RyaW5nIHwgVWludDhBcnJheSxcbiAgICBmaWVsZDogc3RyaW5nIHwgVWludDhBcnJheSxcbiAgICBlcXVhbDogc3RyaW5nIHwgVWludDhBcnJheSxcbiAgICB0dGw/OiBudW1iZXJcbiAgKTogUHJvbWlzZTxDYWNoZVNldElmRXF1YWwuUmVzcG9uc2U+O1xuICBzZXRJZk5vdEVxdWFsKFxuICAgIGNhY2hlTmFtZTogc3RyaW5nLFxuICAgIGtleTogc3RyaW5nIHwgVWludDhBcnJheSxcbiAgICBmaWVsZDogc3RyaW5nIHwgVWludDhBcnJheSxcbiAgICBub3RFcXVhbDogc3RyaW5nIHwgVWludDhBcnJheSxcbiAgICB0dGw/OiBudW1iZXJcbiAgKTogUHJvbWlzZTxDYWNoZVNldElmTm90RXF1YWwuUmVzcG9uc2U+O1xuICBzZXRJZlByZXNlbnRBbmROb3RFcXVhbChcbiAgICBjYWNoZU5hbWU6IHN0cmluZyxcbiAgICBrZXk6IHN0cmluZyB8IFVpbnQ4QXJyYXksXG4gICAgZmllbGQ6IHN0cmluZyB8IFVpbnQ4QXJyYXksXG4gICAgbm90RXF1YWw6IHN0cmluZyB8IFVpbnQ4QXJyYXksXG4gICAgdHRsPzogbnVtYmVyXG4gICk6IFByb21pc2U8Q2FjaGVTZXRJZlByZXNlbnRBbmROb3RFcXVhbC5SZXNwb25zZT47XG4gIHNldElmQWJzZW50T3JFcXVhbChcbiAgICBjYWNoZU5hbWU6IHN0cmluZyxcbiAgICBrZXk6IHN0cmluZyB8IFVpbnQ4QXJyYXksXG4gICAgZmllbGQ6IHN0cmluZyB8IFVpbnQ4QXJyYXksXG4gICAgZXF1YWw6IHN0cmluZyB8IFVpbnQ4QXJyYXksXG4gICAgdHRsPzogbnVtYmVyXG4gICk6IFByb21pc2U8Q2FjaGVTZXRJZkFic2VudE9yRXF1YWwuUmVzcG9uc2U+O1xuICBnZXRCYXRjaChcbiAgICBjYWNoZU5hbWU6IHN0cmluZyxcbiAgICBrZXlzOiBBcnJheTxzdHJpbmcgfCBVaW50OEFycmF5PixcbiAgICBvcHRpb25zPzogR2V0QmF0Y2hDYWxsT3B0aW9uc1xuICApOiBQcm9taXNlPENhY2hlR2V0QmF0Y2guUmVzcG9uc2U+O1xuICBzZXRCYXRjaChcbiAgICBjYWNoZU5hbWU6IHN0cmluZyxcbiAgICBpdGVtczpcbiAgICAgIHwgUmVjb3JkPHN0cmluZywgc3RyaW5nIHwgVWludDhBcnJheT5cbiAgICAgIHwgTWFwPHN0cmluZyB8IFVpbnQ4QXJyYXksIHN0cmluZyB8IFVpbnQ4QXJyYXk+XG4gICAgICB8IEFycmF5PFNldEJhdGNoSXRlbT4sXG4gICAgb3B0aW9ucz86IFNldEJhdGNoQ2FsbE9wdGlvbnNcbiAgKTogUHJvbWlzZTxDYWNoZVNldEJhdGNoLlJlc3BvbnNlPjtcbiAgc2V0RmV0Y2goY2FjaGVOYW1lOiBzdHJpbmcsIHNldE5hbWU6IHN0cmluZyk6IFByb21pc2U8Q2FjaGVTZXRGZXRjaC5SZXNwb25zZT47XG4gIHNldEFkZEVsZW1lbnRzKFxuICAgIGNhY2hlTmFtZTogc3RyaW5nLFxuICAgIHNldE5hbWU6IHN0cmluZyxcbiAgICBlbGVtZW50czogc3RyaW5nW10gfCBVaW50OEFycmF5W10sXG4gICAgdHRsPzogQ29sbGVjdGlvblR0bFxuICApOiBQcm9taXNlPENhY2hlU2V0QWRkRWxlbWVudHMuUmVzcG9uc2U+O1xuICBzZXRDb250YWluc0VsZW1lbnQoXG4gICAgY2FjaGVOYW1lOiBzdHJpbmcsXG4gICAgc2V0TmFtZTogc3RyaW5nLFxuICAgIGVsZW1lbnQ6IHN0cmluZyB8IFVpbnQ4QXJyYXlcbiAgKTogUHJvbWlzZTxDYWNoZVNldENvbnRhaW5zRWxlbWVudC5SZXNwb25zZT47XG4gIHNldENvbnRhaW5zRWxlbWVudHMoXG4gICAgY2FjaGVOYW1lOiBzdHJpbmcsXG4gICAgc2V0TmFtZTogc3RyaW5nLFxuICAgIGVsZW1lbnRzOiBzdHJpbmdbXSB8IFVpbnQ4QXJyYXlbXVxuICApOiBQcm9taXNlPENhY2hlU2V0Q29udGFpbnNFbGVtZW50cy5SZXNwb25zZT47XG4gIHNldFJlbW92ZUVsZW1lbnRzKFxuICAgIGNhY2hlTmFtZTogc3RyaW5nLFxuICAgIHNldE5hbWU6IHN0cmluZyxcbiAgICBlbGVtZW50czogc3RyaW5nW10gfCBVaW50OEFycmF5W11cbiAgKTogUHJvbWlzZTxDYWNoZVNldFJlbW92ZUVsZW1lbnRzLlJlc3BvbnNlPjtcbiAgc2V0U2FtcGxlKFxuICAgIGNhY2hlTmFtZTogc3RyaW5nLFxuICAgIHNldE5hbWU6IHN0cmluZyxcbiAgICBsaW1pdDogbnVtYmVyXG4gICk6IFByb21pc2U8Q2FjaGVTZXRTYW1wbGUuUmVzcG9uc2U+O1xuICBzZXRQb3AoXG4gICAgY2FjaGVOYW1lOiBzdHJpbmcsXG4gICAgc2V0TmFtZTogc3RyaW5nLFxuICAgIGNvdW50OiBudW1iZXJcbiAgKTogUHJvbWlzZTxDYWNoZVNldFBvcC5SZXNwb25zZT47XG4gIHNldExlbmd0aChcbiAgICBjYWNoZU5hbWU6IHN0cmluZyxcbiAgICBzZXROYW1lOiBzdHJpbmdcbiAgKTogUHJvbWlzZTxDYWNoZVNldExlbmd0aC5SZXNwb25zZT47XG4gIGxpc3RGZXRjaChcbiAgICBjYWNoZU5hbWU6IHN0cmluZyxcbiAgICBsaXN0TmFtZTogc3RyaW5nLFxuICAgIHN0YXJ0SW5kZXg/OiBudW1iZXIsXG4gICAgZW5kSW5kZXg/OiBudW1iZXJcbiAgKTogUHJvbWlzZTxDYWNoZUxpc3RGZXRjaC5SZXNwb25zZT47XG4gIGxpc3RMZW5ndGgoXG4gICAgY2FjaGVOYW1lOiBzdHJpbmcsXG4gICAgbGlzdE5hbWU6IHN0cmluZ1xuICApOiBQcm9taXNlPENhY2hlTGlzdExlbmd0aC5SZXNwb25zZT47XG4gIGxpc3RQdXNoRnJvbnQoXG4gICAgY2FjaGVOYW1lOiBzdHJpbmcsXG4gICAgbGlzdE5hbWU6IHN0cmluZyxcbiAgICB2YWx1ZTogc3RyaW5nIHwgVWludDhBcnJheSxcbiAgICB0cnVuY2F0ZUJhY2tUb1NpemU/OiBudW1iZXIsXG4gICAgdHRsPzogQ29sbGVjdGlvblR0bFxuICApOiBQcm9taXNlPENhY2hlTGlzdFB1c2hGcm9udC5SZXNwb25zZT47XG4gIGxpc3RQdXNoQmFjayhcbiAgICBjYWNoZU5hbWU6IHN0cmluZyxcbiAgICBsaXN0TmFtZTogc3RyaW5nLFxuICAgIHZhbHVlOiBzdHJpbmcgfCBVaW50OEFycmF5LFxuICAgIHRydW5jYXRlRnJvbnRUb1NpemU/OiBudW1iZXIsXG4gICAgdHRsPzogQ29sbGVjdGlvblR0bFxuICApOiBQcm9taXNlPENhY2hlTGlzdFB1c2hCYWNrLlJlc3BvbnNlPjtcbiAgbGlzdENvbmNhdGVuYXRlQmFjayhcbiAgICBjYWNoZU5hbWU6IHN0cmluZyxcbiAgICBsaXN0TmFtZTogc3RyaW5nLFxuICAgIHZhbHVlczogc3RyaW5nW10gfCBVaW50OEFycmF5W10sXG4gICAgdHJ1bmNhdGVGcm9udFRvU2l6ZT86IG51bWJlcixcbiAgICB0dGw/OiBDb2xsZWN0aW9uVHRsXG4gICk6IFByb21pc2U8Q2FjaGVMaXN0Q29uY2F0ZW5hdGVCYWNrLlJlc3BvbnNlPjtcbiAgbGlzdENvbmNhdGVuYXRlRnJvbnQoXG4gICAgY2FjaGVOYW1lOiBzdHJpbmcsXG4gICAgbGlzdE5hbWU6IHN0cmluZyxcbiAgICB2YWx1ZXM6IHN0cmluZ1tdIHwgVWludDhBcnJheVtdLFxuICAgIHRydW5jYXRlQmFja1RvU2l6ZT86IG51bWJlcixcbiAgICB0dGw/OiBDb2xsZWN0aW9uVHRsXG4gICk6IFByb21pc2U8Q2FjaGVMaXN0Q29uY2F0ZW5hdGVGcm9udC5SZXNwb25zZT47XG4gIGxpc3RQb3BCYWNrKFxuICAgIGNhY2hlTmFtZTogc3RyaW5nLFxuICAgIGxpc3ROYW1lOiBzdHJpbmdcbiAgKTogUHJvbWlzZTxDYWNoZUxpc3RQb3BCYWNrLlJlc3BvbnNlPjtcbiAgbGlzdFBvcEZyb250KFxuICAgIGNhY2hlTmFtZTogc3RyaW5nLFxuICAgIGxpc3ROYW1lOiBzdHJpbmdcbiAgKTogUHJvbWlzZTxDYWNoZUxpc3RQb3BGcm9udC5SZXNwb25zZT47XG4gIGxpc3RSZW1vdmVWYWx1ZShcbiAgICBjYWNoZU5hbWU6IHN0cmluZyxcbiAgICBsaXN0TmFtZTogc3RyaW5nLFxuICAgIHZhbHVlOiBzdHJpbmcgfCBVaW50OEFycmF5XG4gICk6IFByb21pc2U8Q2FjaGVMaXN0UmVtb3ZlVmFsdWUuUmVzcG9uc2U+O1xuICBsaXN0UmV0YWluKFxuICAgIGNhY2hlTmFtZTogc3RyaW5nLFxuICAgIGxpc3ROYW1lOiBzdHJpbmcsXG4gICAgc3RhcnRJbmRleD86IG51bWJlcixcbiAgICBlbmRJbmRleD86IG51bWJlcixcbiAgICB0dGw/OiBDb2xsZWN0aW9uVHRsXG4gICk6IFByb21pc2U8Q2FjaGVMaXN0UmV0YWluLlJlc3BvbnNlPjtcbiAgZGljdGlvbmFyeVNldEZpZWxkKFxuICAgIGNhY2hlTmFtZTogc3RyaW5nLFxuICAgIGRpY3Rpb25hcnlOYW1lOiBzdHJpbmcsXG4gICAgZmllbGQ6IHN0cmluZyB8IFVpbnQ4QXJyYXksXG4gICAgdmFsdWU6IHN0cmluZyB8IFVpbnQ4QXJyYXksXG4gICAgdHRsPzogQ29sbGVjdGlvblR0bFxuICApOiBQcm9taXNlPENhY2hlRGljdGlvbmFyeVNldEZpZWxkLlJlc3BvbnNlPjtcbiAgZGljdGlvbmFyeVNldEZpZWxkcyhcbiAgICBjYWNoZU5hbWU6IHN0cmluZyxcbiAgICBkaWN0aW9uYXJ5TmFtZTogc3RyaW5nLFxuICAgIGVsZW1lbnRzOlxuICAgICAgfCBNYXA8c3RyaW5nIHwgVWludDhBcnJheSwgc3RyaW5nIHwgVWludDhBcnJheT5cbiAgICAgIHwgUmVjb3JkPHN0cmluZywgc3RyaW5nIHwgVWludDhBcnJheT5cbiAgICAgIHwgQXJyYXk8W3N0cmluZywgc3RyaW5nIHwgVWludDhBcnJheV0+LFxuICAgIHR0bD86IENvbGxlY3Rpb25UdGxcbiAgKTogUHJvbWlzZTxDYWNoZURpY3Rpb25hcnlTZXRGaWVsZHMuUmVzcG9uc2U+O1xuICBkaWN0aW9uYXJ5R2V0RmllbGQoXG4gICAgY2FjaGVOYW1lOiBzdHJpbmcsXG4gICAgZGljdGlvbmFyeU5hbWU6IHN0cmluZyxcbiAgICBmaWVsZDogc3RyaW5nIHwgVWludDhBcnJheVxuICApOiBQcm9taXNlPENhY2hlRGljdGlvbmFyeUdldEZpZWxkLlJlc3BvbnNlPjtcbiAgZGljdGlvbmFyeUdldEZpZWxkcyhcbiAgICBjYWNoZU5hbWU6IHN0cmluZyxcbiAgICBkaWN0aW9uYXJ5TmFtZTogc3RyaW5nLFxuICAgIGZpZWxkczogc3RyaW5nW10gfCBVaW50OEFycmF5W11cbiAgKTogUHJvbWlzZTxDYWNoZURpY3Rpb25hcnlHZXRGaWVsZHMuUmVzcG9uc2U+O1xuICBkaWN0aW9uYXJ5RmV0Y2goXG4gICAgY2FjaGVOYW1lOiBzdHJpbmcsXG4gICAgZGljdGlvbmFyeU5hbWU6IHN0cmluZ1xuICApOiBQcm9taXNlPENhY2hlRGljdGlvbmFyeUZldGNoLlJlc3BvbnNlPjtcbiAgZGljdGlvbmFyeUluY3JlbWVudChcbiAgICBjYWNoZU5hbWU6IHN0cmluZyxcbiAgICBkaWN0aW9uYXJ5TmFtZTogc3RyaW5nLFxuICAgIGZpZWxkOiBzdHJpbmcgfCBVaW50OEFycmF5LFxuICAgIGFtb3VudD86IG51bWJlcixcbiAgICB0dGw/OiBDb2xsZWN0aW9uVHRsXG4gICk6IFByb21pc2U8Q2FjaGVEaWN0aW9uYXJ5SW5jcmVtZW50LlJlc3BvbnNlPjtcbiAgZGljdGlvbmFyeVJlbW92ZUZpZWxkKFxuICAgIGNhY2hlTmFtZTogc3RyaW5nLFxuICAgIGRpY3Rpb25hcnlOYW1lOiBzdHJpbmcsXG4gICAgZmllbGQ6IHN0cmluZyB8IFVpbnQ4QXJyYXlcbiAgKTogUHJvbWlzZTxDYWNoZURpY3Rpb25hcnlSZW1vdmVGaWVsZC5SZXNwb25zZT47XG4gIGRpY3Rpb25hcnlSZW1vdmVGaWVsZHMoXG4gICAgY2FjaGVOYW1lOiBzdHJpbmcsXG4gICAgZGljdGlvbmFyeU5hbWU6IHN0cmluZyxcbiAgICBmaWVsZHM6IHN0cmluZ1tdIHwgVWludDhBcnJheVtdXG4gICk6IFByb21pc2U8Q2FjaGVEaWN0aW9uYXJ5UmVtb3ZlRmllbGRzLlJlc3BvbnNlPjtcbiAgZGljdGlvbmFyeUxlbmd0aChcbiAgICBjYWNoZU5hbWU6IHN0cmluZyxcbiAgICBkaWN0aW9uYXJ5TmFtZTogc3RyaW5nXG4gICk6IFByb21pc2U8Q2FjaGVEaWN0aW9uYXJ5TGVuZ3RoLlJlc3BvbnNlPjtcbiAgc29ydGVkU2V0RmV0Y2hCeVJhbmsoXG4gICAgY2FjaGVOYW1lOiBzdHJpbmcsXG4gICAgc29ydGVkU2V0TmFtZTogc3RyaW5nLFxuICAgIG9yZGVyPzogU29ydGVkU2V0T3JkZXIsXG4gICAgc3RhcnRSYW5rPzogbnVtYmVyLFxuICAgIGVuZFJhbms/OiBudW1iZXJcbiAgKTogUHJvbWlzZTxDYWNoZVNvcnRlZFNldEZldGNoLlJlc3BvbnNlPjtcbiAgc29ydGVkU2V0RmV0Y2hCeVNjb3JlKFxuICAgIGNhY2hlTmFtZTogc3RyaW5nLFxuICAgIHNvcnRlZFNldE5hbWU6IHN0cmluZyxcbiAgICBvcmRlcj86IFNvcnRlZFNldE9yZGVyLFxuICAgIG1pblNjb3JlPzogbnVtYmVyLFxuICAgIG1heFNjb3JlPzogbnVtYmVyLFxuICAgIG9mZnNldD86IG51bWJlcixcbiAgICBjb3VudD86IG51bWJlclxuICApOiBQcm9taXNlPENhY2hlU29ydGVkU2V0RmV0Y2guUmVzcG9uc2U+O1xuICBzb3J0ZWRTZXRQdXRFbGVtZW50KFxuICAgIGNhY2hlTmFtZTogc3RyaW5nLFxuICAgIHNvcnRlZFNldE5hbWU6IHN0cmluZyxcbiAgICB2YWx1ZTogc3RyaW5nIHwgVWludDhBcnJheSxcbiAgICBzY29yZTogbnVtYmVyLFxuICAgIHR0bD86IENvbGxlY3Rpb25UdGxcbiAgKTogUHJvbWlzZTxDYWNoZVNvcnRlZFNldFB1dEVsZW1lbnQuUmVzcG9uc2U+O1xuICBzb3J0ZWRTZXRQdXRFbGVtZW50cyhcbiAgICBjYWNoZU5hbWU6IHN0cmluZyxcbiAgICBzb3J0ZWRTZXROYW1lOiBzdHJpbmcsXG4gICAgZWxlbWVudHM6XG4gICAgICB8IE1hcDxzdHJpbmcgfCBVaW50OEFycmF5LCBudW1iZXI+XG4gICAgICB8IFJlY29yZDxzdHJpbmcsIG51bWJlcj5cbiAgICAgIHwgQXJyYXk8W3N0cmluZywgbnVtYmVyXT4sXG4gICAgdHRsPzogQ29sbGVjdGlvblR0bFxuICApOiBQcm9taXNlPENhY2hlU29ydGVkU2V0UHV0RWxlbWVudHMuUmVzcG9uc2U+O1xuICBzb3J0ZWRTZXRHZXRSYW5rKFxuICAgIGNhY2hlTmFtZTogc3RyaW5nLFxuICAgIHNvcnRlZFNldE5hbWU6IHN0cmluZyxcbiAgICB2YWx1ZTogc3RyaW5nIHwgVWludDhBcnJheSxcbiAgICBvcmRlcj86IFNvcnRlZFNldE9yZGVyXG4gICk6IFByb21pc2U8Q2FjaGVTb3J0ZWRTZXRHZXRSYW5rLlJlc3BvbnNlPjtcbiAgc29ydGVkU2V0R2V0U2NvcmUoXG4gICAgY2FjaGVOYW1lOiBzdHJpbmcsXG4gICAgc29ydGVkU2V0TmFtZTogc3RyaW5nLFxuICAgIHZhbHVlOiBzdHJpbmcgfCBVaW50OEFycmF5XG4gICk6IFByb21pc2U8Q2FjaGVTb3J0ZWRTZXRHZXRTY29yZS5SZXNwb25zZT47XG4gIHNvcnRlZFNldEdldFNjb3JlcyhcbiAgICBjYWNoZU5hbWU6IHN0cmluZyxcbiAgICBzb3J0ZWRTZXROYW1lOiBzdHJpbmcsXG4gICAgdmFsdWVzOiBzdHJpbmdbXSB8IFVpbnQ4QXJyYXlbXVxuICApOiBQcm9taXNlPENhY2hlU29ydGVkU2V0R2V0U2NvcmVzLlJlc3BvbnNlPjtcbiAgc29ydGVkU2V0SW5jcmVtZW50U2NvcmUoXG4gICAgY2FjaGVOYW1lOiBzdHJpbmcsXG4gICAgc29ydGVkU2V0TmFtZTogc3RyaW5nLFxuICAgIHZhbHVlOiBzdHJpbmcgfCBVaW50OEFycmF5LFxuICAgIGFtb3VudD86IG51bWJlcixcbiAgICB0dGw/OiBDb2xsZWN0aW9uVHRsXG4gICk6IFByb21pc2U8Q2FjaGVTb3J0ZWRTZXRJbmNyZW1lbnRTY29yZS5SZXNwb25zZT47XG4gIHNvcnRlZFNldFJlbW92ZUVsZW1lbnQoXG4gICAgY2FjaGVOYW1lOiBzdHJpbmcsXG4gICAgc29ydGVkU2V0TmFtZTogc3RyaW5nLFxuICAgIHZhbHVlOiBzdHJpbmcgfCBVaW50OEFycmF5XG4gICk6IFByb21pc2U8Q2FjaGVTb3J0ZWRTZXRSZW1vdmVFbGVtZW50LlJlc3BvbnNlPjtcbiAgc29ydGVkU2V0UmVtb3ZlRWxlbWVudHMoXG4gICAgY2FjaGVOYW1lOiBzdHJpbmcsXG4gICAgc29ydGVkU2V0TmFtZTogc3RyaW5nLFxuICAgIHZhbHVlczogc3RyaW5nW10gfCBVaW50OEFycmF5W11cbiAgKTogUHJvbWlzZTxDYWNoZVNvcnRlZFNldFJlbW92ZUVsZW1lbnRzLlJlc3BvbnNlPjtcbiAgc29ydGVkU2V0TGVuZ3RoKFxuICAgIGNhY2hlTmFtZTogc3RyaW5nLFxuICAgIHNvcnRlZFNldE5hbWU6IHN0cmluZ1xuICApOiBQcm9taXNlPENhY2hlU29ydGVkU2V0TGVuZ3RoLlJlc3BvbnNlPjtcbiAgc29ydGVkU2V0TGVuZ3RoQnlTY29yZShcbiAgICBjYWNoZU5hbWU6IHN0cmluZyxcbiAgICBzb3J0ZWRTZXROYW1lOiBzdHJpbmcsXG4gICAgbWluU2NvcmU/OiBudW1iZXIsXG4gICAgbWF4U2NvcmU/OiBudW1iZXJcbiAgKTogUHJvbWlzZTxDYWNoZVNvcnRlZFNldExlbmd0aEJ5U2NvcmUuUmVzcG9uc2U+O1xuICBzb3J0ZWRTZXRVbmlvblN0b3JlKFxuICAgIGNhY2hlTmFtZTogc3RyaW5nLFxuICAgIHNvcnRlZFNldE5hbWU6IHN0cmluZyxcbiAgICBzb3VyY2VzOiBTb3J0ZWRTZXRTb3VyY2VbXSxcbiAgICBhZ2dyZWdhdGU/OiBTb3J0ZWRTZXRBZ2dyZWdhdGUsXG4gICAgdHRsPzogQ29sbGVjdGlvblR0bFxuICApOiBQcm9taXNlPENhY2hlU29ydGVkU2V0VW5pb25TdG9yZS5SZXNwb25zZT47XG4gIGl0ZW1HZXRUeXBlKFxuICAgIGNhY2hlTmFtZTogc3RyaW5nLFxuICAgIGtleTogc3RyaW5nIHwgVWludDhBcnJheVxuICApOiBQcm9taXNlPENhY2hlSXRlbUdldFR5cGUuUmVzcG9uc2U+O1xuICBpdGVtR2V0VHRsKFxuICAgIGNhY2hlTmFtZTogc3RyaW5nLFxuICAgIGtleTogc3RyaW5nIHwgVWludDhBcnJheVxuICApOiBQcm9taXNlPENhY2hlSXRlbUdldFR0bC5SZXNwb25zZT47XG4gIGtleUV4aXN0cyhcbiAgICBjYWNoZU5hbWU6IHN0cmluZyxcbiAgICBrZXk6IHN0cmluZyB8IFVpbnQ4QXJyYXlcbiAgKTogUHJvbWlzZTxDYWNoZUtleUV4aXN0cy5SZXNwb25zZT47XG4gIGtleXNFeGlzdChcbiAgICBjYWNoZU5hbWU6IHN0cmluZyxcbiAgICBrZXlzOiBzdHJpbmdbXSB8IFVpbnQ4QXJyYXlbXVxuICApOiBQcm9taXNlPENhY2hlS2V5c0V4aXN0LlJlc3BvbnNlPjtcbiAgdXBkYXRlVHRsKFxuICAgIGNhY2hlTmFtZTogc3RyaW5nLFxuICAgIGtleTogc3RyaW5nIHwgVWludDhBcnJheSxcbiAgICB0dGxNaWxsaXNlY29uZHM6IG51bWJlclxuICApOiBQcm9taXNlPENhY2hlVXBkYXRlVHRsLlJlc3BvbnNlPjtcbiAgaW5jcmVhc2VUdGwoXG4gICAgY2FjaGVOYW1lOiBzdHJpbmcsXG4gICAga2V5OiBzdHJpbmcgfCBVaW50OEFycmF5LFxuICAgIHR0bE1pbGxpc2Vjb25kczogbnVtYmVyXG4gICk6IFByb21pc2U8Q2FjaGVJbmNyZWFzZVR0bC5SZXNwb25zZT47XG4gIGRlY3JlYXNlVHRsKFxuICAgIGNhY2hlTmFtZTogc3RyaW5nLFxuICAgIGtleTogc3RyaW5nIHwgVWludDhBcnJheSxcbiAgICB0dGxNaWxsaXNlY29uZHM6IG51bWJlclxuICApOiBQcm9taXNlPENhY2hlRGVjcmVhc2VUdGwuUmVzcG9uc2U+O1xuICBjbG9zZSgpOiB2b2lkO1xufVxuIl19
|
3
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiSURhdGFDbGllbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvaW50ZXJuYWwvY2xpZW50cy9jYWNoZS9JRGF0YUNsaWVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQ2FjaGVEZWxldGUsXG4gIENhY2hlR2V0LFxuICBDYWNoZUluY3JlbWVudCxcbiAgQ2FjaGVTZXQsXG4gIENhY2hlU2V0SWZOb3RFeGlzdHMsXG4gIENhY2hlU2V0RmV0Y2gsXG4gIENhY2hlU2V0QWRkRWxlbWVudHMsXG4gIENhY2hlU2V0Q29udGFpbnNFbGVtZW50LFxuICBDYWNoZVNldENvbnRhaW5zRWxlbWVudHMsXG4gIENhY2hlU2V0UmVtb3ZlRWxlbWVudHMsXG4gIENhY2hlTGlzdEZldGNoLFxuICBDYWNoZUxpc3RMZW5ndGgsXG4gIENhY2hlTGlzdFB1c2hGcm9udCxcbiAgQ2FjaGVMaXN0UHVzaEJhY2ssXG4gIENhY2hlTGlzdENvbmNhdGVuYXRlQmFjayxcbiAgQ2FjaGVMaXN0Q29uY2F0ZW5hdGVGcm9udCxcbiAgQ2FjaGVMaXN0UG9wQmFjayxcbiAgQ2FjaGVMaXN0UG9wRnJvbnQsXG4gIENhY2hlTGlzdFJlbW92ZVZhbHVlLFxuICBDYWNoZUxpc3RSZXRhaW4sXG4gIENhY2hlRGljdGlvbmFyeVNldEZpZWxkLFxuICBDYWNoZURpY3Rpb25hcnlTZXRGaWVsZHMsXG4gIENhY2hlRGljdGlvbmFyeUdldEZpZWxkLFxuICBDYWNoZURpY3Rpb25hcnlGZXRjaCxcbiAgQ2FjaGVEaWN0aW9uYXJ5SW5jcmVtZW50LFxuICBDYWNoZURpY3Rpb25hcnlSZW1vdmVGaWVsZCxcbiAgQ2FjaGVEaWN0aW9uYXJ5UmVtb3ZlRmllbGRzLFxuICBDYWNoZVNvcnRlZFNldEZldGNoLFxuICBDYWNoZVNvcnRlZFNldFB1dEVsZW1lbnQsXG4gIENhY2hlU29ydGVkU2V0UHV0RWxlbWVudHMsXG4gIENhY2hlU29ydGVkU2V0R2V0UmFuayxcbiAgQ2FjaGVTb3J0ZWRTZXRHZXRTY29yZSxcbiAgQ2FjaGVTb3J0ZWRTZXRHZXRTY29yZXMsXG4gIENhY2hlU29ydGVkU2V0SW5jcmVtZW50U2NvcmUsXG4gIENhY2hlU29ydGVkU2V0UmVtb3ZlRWxlbWVudCxcbiAgQ2FjaGVTb3J0ZWRTZXRMZW5ndGgsXG4gIENhY2hlU29ydGVkU2V0TGVuZ3RoQnlTY29yZSxcbiAgQ29sbGVjdGlvblR0bCxcbiAgU29ydGVkU2V0T3JkZXIsXG4gIENhY2hlSXRlbUdldFR5cGUsXG4gIENhY2hlSXRlbUdldFR0bCxcbiAgQ2FjaGVLZXlFeGlzdHMsXG4gIENhY2hlS2V5c0V4aXN0LFxuICBDYWNoZVVwZGF0ZVR0bCxcbiAgQ2FjaGVJbmNyZWFzZVR0bCxcbiAgQ2FjaGVEZWNyZWFzZVR0bCxcbiAgQ2FjaGVEaWN0aW9uYXJ5TGVuZ3RoLFxuICBDYWNoZURpY3Rpb25hcnlHZXRGaWVsZHMsXG4gIENhY2hlU2V0QmF0Y2gsXG4gIENhY2hlR2V0QmF0Y2gsXG4gIENhY2hlU2V0SWZBYnNlbnQsXG4gIENhY2hlU2V0SWZQcmVzZW50LFxuICBDYWNoZVNldElmRXF1YWwsXG4gIENhY2hlU2V0SWZOb3RFcXVhbCxcbiAgQ2FjaGVTZXRJZlByZXNlbnRBbmROb3RFcXVhbCxcbiAgQ2FjaGVTZXRJZkFic2VudE9yRXF1YWwsXG4gIENhY2hlU2V0U2FtcGxlLFxuICBDYWNoZVNvcnRlZFNldFJlbW92ZUVsZW1lbnRzLFxuICBDYWNoZVNldFBvcCxcbiAgQ2FjaGVTZXRMZW5ndGgsXG4gIENhY2hlU29ydGVkU2V0VW5pb25TdG9yZSxcbiAgQ2FjaGVHZXRXaXRoSGFzaCxcbiAgQ2FjaGVTZXRXaXRoSGFzaCxcbiAgQ2FjaGVTZXRJZlByZXNlbnRBbmRIYXNoRXF1YWwsXG4gIENhY2hlU2V0SWZQcmVzZW50QW5kSGFzaE5vdEVxdWFsLFxuICBDYWNoZVNldElmQWJzZW50T3JIYXNoRXF1YWwsXG4gIENhY2hlU2V0SWZBYnNlbnRPckhhc2hOb3RFcXVhbCxcbn0gZnJvbSAnLi4vLi4vLi4vaW5kZXgnO1xuaW1wb3J0IHtcbiAgR2V0QmF0Y2hDYWxsT3B0aW9ucyxcbiAgR2V0Q2FsbE9wdGlvbnMsXG4gIFNldEJhdGNoQ2FsbE9wdGlvbnMsXG4gIFNldEJhdGNoSXRlbSxcbiAgU2V0Q2FsbE9wdGlvbnMsXG4gIFNldElmQWJzZW50Q2FsbE9wdGlvbnMsXG4gIFNvcnRlZFNldEFnZ3JlZ2F0ZSxcbiAgU29ydGVkU2V0U291cmNlLFxufSBmcm9tICcuLi8uLi8uLi91dGlscyc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgSURhdGFDbGllbnQge1xuICBnZXQoXG4gICAgY2FjaGVOYW1lOiBzdHJpbmcsXG4gICAga2V5OiBzdHJpbmcgfCBVaW50OEFycmF5LFxuICAgIG9wdGlvbnM/OiBHZXRDYWxsT3B0aW9uc1xuICApOiBQcm9taXNlPENhY2hlR2V0LlJlc3BvbnNlPjtcbiAgZ2V0V2l0aEhhc2goXG4gICAgY2FjaGVOYW1lOiBzdHJpbmcsXG4gICAga2V5OiBzdHJpbmcgfCBVaW50OEFycmF5LFxuICAgIG9wdGlvbnM/OiBHZXRDYWxsT3B0aW9uc1xuICApOiBQcm9taXNlPENhY2hlR2V0V2l0aEhhc2guUmVzcG9uc2U+O1xuICBzZXQoXG4gICAgY2FjaGVOYW1lOiBzdHJpbmcsXG4gICAga2V5OiBzdHJpbmcgfCBVaW50OEFycmF5LFxuICAgIHZhbHVlOiBzdHJpbmcgfCBVaW50OEFycmF5LFxuICAgIG9wdGlvbnM/OiBTZXRDYWxsT3B0aW9uc1xuICApOiBQcm9taXNlPENhY2hlU2V0LlJlc3BvbnNlPjtcbiAgc2V0V2l0aEhhc2goXG4gICAgY2FjaGVOYW1lOiBzdHJpbmcsXG4gICAga2V5OiBzdHJpbmcgfCBVaW50OEFycmF5LFxuICAgIHZhbHVlOiBzdHJpbmcgfCBVaW50OEFycmF5LFxuICAgIG9wdGlvbnM/OiBTZXRDYWxsT3B0aW9uc1xuICApOiBQcm9taXNlPENhY2hlU2V0V2l0aEhhc2guUmVzcG9uc2U+O1xuICBkZWxldGUoXG4gICAgY2FjaGVOYW1lOiBzdHJpbmcsXG4gICAga2V5OiBzdHJpbmcgfCBVaW50OEFycmF5XG4gICk6IFByb21pc2U8Q2FjaGVEZWxldGUuUmVzcG9uc2U+O1xuICBpbmNyZW1lbnQoXG4gICAgY2FjaGVOYW1lOiBzdHJpbmcsXG4gICAgZmllbGQ6IHN0cmluZyB8IFVpbnQ4QXJyYXksXG4gICAgYW1vdW50OiBudW1iZXIsXG4gICAgdHRsPzogbnVtYmVyXG4gICk6IFByb21pc2U8Q2FjaGVJbmNyZW1lbnQuUmVzcG9uc2U+O1xuICBzZXRJZk5vdEV4aXN0cyhcbiAgICBjYWNoZU5hbWU6IHN0cmluZyxcbiAgICBrZXk6IHN0cmluZyB8IFVpbnQ4QXJyYXksXG4gICAgZmllbGQ6IHN0cmluZyB8IFVpbnQ4QXJyYXksXG4gICAgdHRsPzogbnVtYmVyXG4gICk6IFByb21pc2U8Q2FjaGVTZXRJZk5vdEV4aXN0cy5SZXNwb25zZT47XG4gIHNldElmQWJzZW50KFxuICAgIGNhY2hlTmFtZTogc3RyaW5nLFxuICAgIGtleTogc3RyaW5nIHwgVWludDhBcnJheSxcbiAgICBmaWVsZDogc3RyaW5nIHwgVWludDhBcnJheSxcbiAgICBvcHRpb25zPzogU2V0SWZBYnNlbnRDYWxsT3B0aW9uc1xuICApOiBQcm9taXNlPENhY2hlU2V0SWZBYnNlbnQuUmVzcG9uc2U+O1xuICBzZXRJZlByZXNlbnQoXG4gICAgY2FjaGVOYW1lOiBzdHJpbmcsXG4gICAga2V5OiBzdHJpbmcgfCBVaW50OEFycmF5LFxuICAgIGZpZWxkOiBzdHJpbmcgfCBVaW50OEFycmF5LFxuICAgIHR0bD86IG51bWJlclxuICApOiBQcm9taXNlPENhY2hlU2V0SWZQcmVzZW50LlJlc3BvbnNlPjtcbiAgc2V0SWZFcXVhbChcbiAgICBjYWNoZU5hbWU6IHN0cmluZyxcbiAgICBrZXk6IHN0cmluZyB8IFVpbnQ4QXJyYXksXG4gICAgZmllbGQ6IHN0cmluZyB8IFVpbnQ4QXJyYXksXG4gICAgZXF1YWw6IHN0cmluZyB8IFVpbnQ4QXJyYXksXG4gICAgdHRsPzogbnVtYmVyXG4gICk6IFByb21pc2U8Q2FjaGVTZXRJZkVxdWFsLlJlc3BvbnNlPjtcbiAgc2V0SWZOb3RFcXVhbChcbiAgICBjYWNoZU5hbWU6IHN0cmluZyxcbiAgICBrZXk6IHN0cmluZyB8IFVpbnQ4QXJyYXksXG4gICAgZmllbGQ6IHN0cmluZyB8IFVpbnQ4QXJyYXksXG4gICAgbm90RXF1YWw6IHN0cmluZyB8IFVpbnQ4QXJyYXksXG4gICAgdHRsPzogbnVtYmVyXG4gICk6IFByb21pc2U8Q2FjaGVTZXRJZk5vdEVxdWFsLlJlc3BvbnNlPjtcbiAgc2V0SWZQcmVzZW50QW5kTm90RXF1YWwoXG4gICAgY2FjaGVOYW1lOiBzdHJpbmcsXG4gICAga2V5OiBzdHJpbmcgfCBVaW50OEFycmF5LFxuICAgIGZpZWxkOiBzdHJpbmcgfCBVaW50OEFycmF5LFxuICAgIG5vdEVxdWFsOiBzdHJpbmcgfCBVaW50OEFycmF5LFxuICAgIHR0bD86IG51bWJlclxuICApOiBQcm9taXNlPENhY2hlU2V0SWZQcmVzZW50QW5kTm90RXF1YWwuUmVzcG9uc2U+O1xuICBzZXRJZkFic2VudE9yRXF1YWwoXG4gICAgY2FjaGVOYW1lOiBzdHJpbmcsXG4gICAga2V5OiBzdHJpbmcgfCBVaW50OEFycmF5LFxuICAgIGZpZWxkOiBzdHJpbmcgfCBVaW50OEFycmF5LFxuICAgIGVxdWFsOiBzdHJpbmcgfCBVaW50OEFycmF5LFxuICAgIHR0bD86IG51bWJlclxuICApOiBQcm9taXNlPENhY2hlU2V0SWZBYnNlbnRPckVxdWFsLlJlc3BvbnNlPjtcbiAgc2V0SWZQcmVzZW50QW5kSGFzaEVxdWFsKFxuICAgIGNhY2hlTmFtZTogc3RyaW5nLFxuICAgIGtleTogc3RyaW5nIHwgVWludDhBcnJheSxcbiAgICB2YWx1ZTogc3RyaW5nIHwgVWludDhBcnJheSxcbiAgICBoYXNoRXF1YWw6IFVpbnQ4QXJyYXksXG4gICAgdHRsPzogbnVtYmVyXG4gICk6IFByb21pc2U8Q2FjaGVTZXRJZlByZXNlbnRBbmRIYXNoRXF1YWwuUmVzcG9uc2U+O1xuICBzZXRJZlByZXNlbnRBbmRIYXNoTm90RXF1YWwoXG4gICAgY2FjaGVOYW1lOiBzdHJpbmcsXG4gICAga2V5OiBzdHJpbmcgfCBVaW50OEFycmF5LFxuICAgIHZhbHVlOiBzdHJpbmcgfCBVaW50OEFycmF5LFxuICAgIGhhc2hOb3RFcXVhbDogVWludDhBcnJheSxcbiAgICB0dGw/OiBudW1iZXJcbiAgKTogUHJvbWlzZTxDYWNoZVNldElmUHJlc2VudEFuZEhhc2hOb3RFcXVhbC5SZXNwb25zZT47XG4gIHNldElmQWJzZW50T3JIYXNoRXF1YWwoXG4gICAgY2FjaGVOYW1lOiBzdHJpbmcsXG4gICAga2V5OiBzdHJpbmcgfCBVaW50OEFycmF5LFxuICAgIHZhbHVlOiBzdHJpbmcgfCBVaW50OEFycmF5LFxuICAgIGhhc2hFcXVhbDogVWludDhBcnJheSxcbiAgICB0dGw/OiBudW1iZXJcbiAgKTogUHJvbWlzZTxDYWNoZVNldElmQWJzZW50T3JIYXNoRXF1YWwuUmVzcG9uc2U+O1xuICBzZXRJZkFic2VudE9ySGFzaE5vdEVxdWFsKFxuICAgIGNhY2hlTmFtZTogc3RyaW5nLFxuICAgIGtleTogc3RyaW5nIHwgVWludDhBcnJheSxcbiAgICB2YWx1ZTogc3RyaW5nIHwgVWludDhBcnJheSxcbiAgICBoYXNoTm90RXF1YWw6IFVpbnQ4QXJyYXksXG4gICAgdHRsPzogbnVtYmVyXG4gICk6IFByb21pc2U8Q2FjaGVTZXRJZkFic2VudE9ySGFzaE5vdEVxdWFsLlJlc3BvbnNlPjtcbiAgZ2V0QmF0Y2goXG4gICAgY2FjaGVOYW1lOiBzdHJpbmcsXG4gICAga2V5czogQXJyYXk8c3RyaW5nIHwgVWludDhBcnJheT4sXG4gICAgb3B0aW9ucz86IEdldEJhdGNoQ2FsbE9wdGlvbnNcbiAgKTogUHJvbWlzZTxDYWNoZUdldEJhdGNoLlJlc3BvbnNlPjtcbiAgc2V0QmF0Y2goXG4gICAgY2FjaGVOYW1lOiBzdHJpbmcsXG4gICAgaXRlbXM6XG4gICAgICB8IFJlY29yZDxzdHJpbmcsIHN0cmluZyB8IFVpbnQ4QXJyYXk+XG4gICAgICB8IE1hcDxzdHJpbmcgfCBVaW50OEFycmF5LCBzdHJpbmcgfCBVaW50OEFycmF5PlxuICAgICAgfCBBcnJheTxTZXRCYXRjaEl0ZW0+LFxuICAgIG9wdGlvbnM/OiBTZXRCYXRjaENhbGxPcHRpb25zXG4gICk6IFByb21pc2U8Q2FjaGVTZXRCYXRjaC5SZXNwb25zZT47XG4gIHNldEZldGNoKGNhY2hlTmFtZTogc3RyaW5nLCBzZXROYW1lOiBzdHJpbmcpOiBQcm9taXNlPENhY2hlU2V0RmV0Y2guUmVzcG9uc2U+O1xuICBzZXRBZGRFbGVtZW50cyhcbiAgICBjYWNoZU5hbWU6IHN0cmluZyxcbiAgICBzZXROYW1lOiBzdHJpbmcsXG4gICAgZWxlbWVudHM6IHN0cmluZ1tdIHwgVWludDhBcnJheVtdLFxuICAgIHR0bD86IENvbGxlY3Rpb25UdGxcbiAgKTogUHJvbWlzZTxDYWNoZVNldEFkZEVsZW1lbnRzLlJlc3BvbnNlPjtcbiAgc2V0Q29udGFpbnNFbGVtZW50KFxuICAgIGNhY2hlTmFtZTogc3RyaW5nLFxuICAgIHNldE5hbWU6IHN0cmluZyxcbiAgICBlbGVtZW50OiBzdHJpbmcgfCBVaW50OEFycmF5XG4gICk6IFByb21pc2U8Q2FjaGVTZXRDb250YWluc0VsZW1lbnQuUmVzcG9uc2U+O1xuICBzZXRDb250YWluc0VsZW1lbnRzKFxuICAgIGNhY2hlTmFtZTogc3RyaW5nLFxuICAgIHNldE5hbWU6IHN0cmluZyxcbiAgICBlbGVtZW50czogc3RyaW5nW10gfCBVaW50OEFycmF5W11cbiAgKTogUHJvbWlzZTxDYWNoZVNldENvbnRhaW5zRWxlbWVudHMuUmVzcG9uc2U+O1xuICBzZXRSZW1vdmVFbGVtZW50cyhcbiAgICBjYWNoZU5hbWU6IHN0cmluZyxcbiAgICBzZXROYW1lOiBzdHJpbmcsXG4gICAgZWxlbWVudHM6IHN0cmluZ1tdIHwgVWludDhBcnJheVtdXG4gICk6IFByb21pc2U8Q2FjaGVTZXRSZW1vdmVFbGVtZW50cy5SZXNwb25zZT47XG4gIHNldFNhbXBsZShcbiAgICBjYWNoZU5hbWU6IHN0cmluZyxcbiAgICBzZXROYW1lOiBzdHJpbmcsXG4gICAgbGltaXQ6IG51bWJlclxuICApOiBQcm9taXNlPENhY2hlU2V0U2FtcGxlLlJlc3BvbnNlPjtcbiAgc2V0UG9wKFxuICAgIGNhY2hlTmFtZTogc3RyaW5nLFxuICAgIHNldE5hbWU6IHN0cmluZyxcbiAgICBjb3VudDogbnVtYmVyXG4gICk6IFByb21pc2U8Q2FjaGVTZXRQb3AuUmVzcG9uc2U+O1xuICBzZXRMZW5ndGgoXG4gICAgY2FjaGVOYW1lOiBzdHJpbmcsXG4gICAgc2V0TmFtZTogc3RyaW5nXG4gICk6IFByb21pc2U8Q2FjaGVTZXRMZW5ndGguUmVzcG9uc2U+O1xuICBsaXN0RmV0Y2goXG4gICAgY2FjaGVOYW1lOiBzdHJpbmcsXG4gICAgbGlzdE5hbWU6IHN0cmluZyxcbiAgICBzdGFydEluZGV4PzogbnVtYmVyLFxuICAgIGVuZEluZGV4PzogbnVtYmVyXG4gICk6IFByb21pc2U8Q2FjaGVMaXN0RmV0Y2guUmVzcG9uc2U+O1xuICBsaXN0TGVuZ3RoKFxuICAgIGNhY2hlTmFtZTogc3RyaW5nLFxuICAgIGxpc3ROYW1lOiBzdHJpbmdcbiAgKTogUHJvbWlzZTxDYWNoZUxpc3RMZW5ndGguUmVzcG9uc2U+O1xuICBsaXN0UHVzaEZyb250KFxuICAgIGNhY2hlTmFtZTogc3RyaW5nLFxuICAgIGxpc3ROYW1lOiBzdHJpbmcsXG4gICAgdmFsdWU6IHN0cmluZyB8IFVpbnQ4QXJyYXksXG4gICAgdHJ1bmNhdGVCYWNrVG9TaXplPzogbnVtYmVyLFxuICAgIHR0bD86IENvbGxlY3Rpb25UdGxcbiAgKTogUHJvbWlzZTxDYWNoZUxpc3RQdXNoRnJvbnQuUmVzcG9uc2U+O1xuICBsaXN0UHVzaEJhY2soXG4gICAgY2FjaGVOYW1lOiBzdHJpbmcsXG4gICAgbGlzdE5hbWU6IHN0cmluZyxcbiAgICB2YWx1ZTogc3RyaW5nIHwgVWludDhBcnJheSxcbiAgICB0cnVuY2F0ZUZyb250VG9TaXplPzogbnVtYmVyLFxuICAgIHR0bD86IENvbGxlY3Rpb25UdGxcbiAgKTogUHJvbWlzZTxDYWNoZUxpc3RQdXNoQmFjay5SZXNwb25zZT47XG4gIGxpc3RDb25jYXRlbmF0ZUJhY2soXG4gICAgY2FjaGVOYW1lOiBzdHJpbmcsXG4gICAgbGlzdE5hbWU6IHN0cmluZyxcbiAgICB2YWx1ZXM6IHN0cmluZ1tdIHwgVWludDhBcnJheVtdLFxuICAgIHRydW5jYXRlRnJvbnRUb1NpemU/OiBudW1iZXIsXG4gICAgdHRsPzogQ29sbGVjdGlvblR0bFxuICApOiBQcm9taXNlPENhY2hlTGlzdENvbmNhdGVuYXRlQmFjay5SZXNwb25zZT47XG4gIGxpc3RDb25jYXRlbmF0ZUZyb250KFxuICAgIGNhY2hlTmFtZTogc3RyaW5nLFxuICAgIGxpc3ROYW1lOiBzdHJpbmcsXG4gICAgdmFsdWVzOiBzdHJpbmdbXSB8IFVpbnQ4QXJyYXlbXSxcbiAgICB0cnVuY2F0ZUJhY2tUb1NpemU/OiBudW1iZXIsXG4gICAgdHRsPzogQ29sbGVjdGlvblR0bFxuICApOiBQcm9taXNlPENhY2hlTGlzdENvbmNhdGVuYXRlRnJvbnQuUmVzcG9uc2U+O1xuICBsaXN0UG9wQmFjayhcbiAgICBjYWNoZU5hbWU6IHN0cmluZyxcbiAgICBsaXN0TmFtZTogc3RyaW5nXG4gICk6IFByb21pc2U8Q2FjaGVMaXN0UG9wQmFjay5SZXNwb25zZT47XG4gIGxpc3RQb3BGcm9udChcbiAgICBjYWNoZU5hbWU6IHN0cmluZyxcbiAgICBsaXN0TmFtZTogc3RyaW5nXG4gICk6IFByb21pc2U8Q2FjaGVMaXN0UG9wRnJvbnQuUmVzcG9uc2U+O1xuICBsaXN0UmVtb3ZlVmFsdWUoXG4gICAgY2FjaGVOYW1lOiBzdHJpbmcsXG4gICAgbGlzdE5hbWU6IHN0cmluZyxcbiAgICB2YWx1ZTogc3RyaW5nIHwgVWludDhBcnJheVxuICApOiBQcm9taXNlPENhY2hlTGlzdFJlbW92ZVZhbHVlLlJlc3BvbnNlPjtcbiAgbGlzdFJldGFpbihcbiAgICBjYWNoZU5hbWU6IHN0cmluZyxcbiAgICBsaXN0TmFtZTogc3RyaW5nLFxuICAgIHN0YXJ0SW5kZXg/OiBudW1iZXIsXG4gICAgZW5kSW5kZXg/OiBudW1iZXIsXG4gICAgdHRsPzogQ29sbGVjdGlvblR0bFxuICApOiBQcm9taXNlPENhY2hlTGlzdFJldGFpbi5SZXNwb25zZT47XG4gIGRpY3Rpb25hcnlTZXRGaWVsZChcbiAgICBjYWNoZU5hbWU6IHN0cmluZyxcbiAgICBkaWN0aW9uYXJ5TmFtZTogc3RyaW5nLFxuICAgIGZpZWxkOiBzdHJpbmcgfCBVaW50OEFycmF5LFxuICAgIHZhbHVlOiBzdHJpbmcgfCBVaW50OEFycmF5LFxuICAgIHR0bD86IENvbGxlY3Rpb25UdGxcbiAgKTogUHJvbWlzZTxDYWNoZURpY3Rpb25hcnlTZXRGaWVsZC5SZXNwb25zZT47XG4gIGRpY3Rpb25hcnlTZXRGaWVsZHMoXG4gICAgY2FjaGVOYW1lOiBzdHJpbmcsXG4gICAgZGljdGlvbmFyeU5hbWU6IHN0cmluZyxcbiAgICBlbGVtZW50czpcbiAgICAgIHwgTWFwPHN0cmluZyB8IFVpbnQ4QXJyYXksIHN0cmluZyB8IFVpbnQ4QXJyYXk+XG4gICAgICB8IFJlY29yZDxzdHJpbmcsIHN0cmluZyB8IFVpbnQ4QXJyYXk+XG4gICAgICB8IEFycmF5PFtzdHJpbmcsIHN0cmluZyB8IFVpbnQ4QXJyYXldPixcbiAgICB0dGw/OiBDb2xsZWN0aW9uVHRsXG4gICk6IFByb21pc2U8Q2FjaGVEaWN0aW9uYXJ5U2V0RmllbGRzLlJlc3BvbnNlPjtcbiAgZGljdGlvbmFyeUdldEZpZWxkKFxuICAgIGNhY2hlTmFtZTogc3RyaW5nLFxuICAgIGRpY3Rpb25hcnlOYW1lOiBzdHJpbmcsXG4gICAgZmllbGQ6IHN0cmluZyB8IFVpbnQ4QXJyYXlcbiAgKTogUHJvbWlzZTxDYWNoZURpY3Rpb25hcnlHZXRGaWVsZC5SZXNwb25zZT47XG4gIGRpY3Rpb25hcnlHZXRGaWVsZHMoXG4gICAgY2FjaGVOYW1lOiBzdHJpbmcsXG4gICAgZGljdGlvbmFyeU5hbWU6IHN0cmluZyxcbiAgICBmaWVsZHM6IHN0cmluZ1tdIHwgVWludDhBcnJheVtdXG4gICk6IFByb21pc2U8Q2FjaGVEaWN0aW9uYXJ5R2V0RmllbGRzLlJlc3BvbnNlPjtcbiAgZGljdGlvbmFyeUZldGNoKFxuICAgIGNhY2hlTmFtZTogc3RyaW5nLFxuICAgIGRpY3Rpb25hcnlOYW1lOiBzdHJpbmdcbiAgKTogUHJvbWlzZTxDYWNoZURpY3Rpb25hcnlGZXRjaC5SZXNwb25zZT47XG4gIGRpY3Rpb25hcnlJbmNyZW1lbnQoXG4gICAgY2FjaGVOYW1lOiBzdHJpbmcsXG4gICAgZGljdGlvbmFyeU5hbWU6IHN0cmluZyxcbiAgICBmaWVsZDogc3RyaW5nIHwgVWludDhBcnJheSxcbiAgICBhbW91bnQ/OiBudW1iZXIsXG4gICAgdHRsPzogQ29sbGVjdGlvblR0bFxuICApOiBQcm9taXNlPENhY2hlRGljdGlvbmFyeUluY3JlbWVudC5SZXNwb25zZT47XG4gIGRpY3Rpb25hcnlSZW1vdmVGaWVsZChcbiAgICBjYWNoZU5hbWU6IHN0cmluZyxcbiAgICBkaWN0aW9uYXJ5TmFtZTogc3RyaW5nLFxuICAgIGZpZWxkOiBzdHJpbmcgfCBVaW50OEFycmF5XG4gICk6IFByb21pc2U8Q2FjaGVEaWN0aW9uYXJ5UmVtb3ZlRmllbGQuUmVzcG9uc2U+O1xuICBkaWN0aW9uYXJ5UmVtb3ZlRmllbGRzKFxuICAgIGNhY2hlTmFtZTogc3RyaW5nLFxuICAgIGRpY3Rpb25hcnlOYW1lOiBzdHJpbmcsXG4gICAgZmllbGRzOiBzdHJpbmdbXSB8IFVpbnQ4QXJyYXlbXVxuICApOiBQcm9taXNlPENhY2hlRGljdGlvbmFyeVJlbW92ZUZpZWxkcy5SZXNwb25zZT47XG4gIGRpY3Rpb25hcnlMZW5ndGgoXG4gICAgY2FjaGVOYW1lOiBzdHJpbmcsXG4gICAgZGljdGlvbmFyeU5hbWU6IHN0cmluZ1xuICApOiBQcm9taXNlPENhY2hlRGljdGlvbmFyeUxlbmd0aC5SZXNwb25zZT47XG4gIHNvcnRlZFNldEZldGNoQnlSYW5rKFxuICAgIGNhY2hlTmFtZTogc3RyaW5nLFxuICAgIHNvcnRlZFNldE5hbWU6IHN0cmluZyxcbiAgICBvcmRlcj86IFNvcnRlZFNldE9yZGVyLFxuICAgIHN0YXJ0UmFuaz86IG51bWJlcixcbiAgICBlbmRSYW5rPzogbnVtYmVyXG4gICk6IFByb21pc2U8Q2FjaGVTb3J0ZWRTZXRGZXRjaC5SZXNwb25zZT47XG4gIHNvcnRlZFNldEZldGNoQnlTY29yZShcbiAgICBjYWNoZU5hbWU6IHN0cmluZyxcbiAgICBzb3J0ZWRTZXROYW1lOiBzdHJpbmcsXG4gICAgb3JkZXI/OiBTb3J0ZWRTZXRPcmRlcixcbiAgICBtaW5TY29yZT86IG51bWJlcixcbiAgICBtYXhTY29yZT86IG51bWJlcixcbiAgICBvZmZzZXQ/OiBudW1iZXIsXG4gICAgY291bnQ/OiBudW1iZXJcbiAgKTogUHJvbWlzZTxDYWNoZVNvcnRlZFNldEZldGNoLlJlc3BvbnNlPjtcbiAgc29ydGVkU2V0UHV0RWxlbWVudChcbiAgICBjYWNoZU5hbWU6IHN0cmluZyxcbiAgICBzb3J0ZWRTZXROYW1lOiBzdHJpbmcsXG4gICAgdmFsdWU6IHN0cmluZyB8IFVpbnQ4QXJyYXksXG4gICAgc2NvcmU6IG51bWJlcixcbiAgICB0dGw/OiBDb2xsZWN0aW9uVHRsXG4gICk6IFByb21pc2U8Q2FjaGVTb3J0ZWRTZXRQdXRFbGVtZW50LlJlc3BvbnNlPjtcbiAgc29ydGVkU2V0UHV0RWxlbWVudHMoXG4gICAgY2FjaGVOYW1lOiBzdHJpbmcsXG4gICAgc29ydGVkU2V0TmFtZTogc3RyaW5nLFxuICAgIGVsZW1lbnRzOlxuICAgICAgfCBNYXA8c3RyaW5nIHwgVWludDhBcnJheSwgbnVtYmVyPlxuICAgICAgfCBSZWNvcmQ8c3RyaW5nLCBudW1iZXI+XG4gICAgICB8IEFycmF5PFtzdHJpbmcsIG51bWJlcl0+LFxuICAgIHR0bD86IENvbGxlY3Rpb25UdGxcbiAgKTogUHJvbWlzZTxDYWNoZVNvcnRlZFNldFB1dEVsZW1lbnRzLlJlc3BvbnNlPjtcbiAgc29ydGVkU2V0R2V0UmFuayhcbiAgICBjYWNoZU5hbWU6IHN0cmluZyxcbiAgICBzb3J0ZWRTZXROYW1lOiBzdHJpbmcsXG4gICAgdmFsdWU6IHN0cmluZyB8IFVpbnQ4QXJyYXksXG4gICAgb3JkZXI/OiBTb3J0ZWRTZXRPcmRlclxuICApOiBQcm9taXNlPENhY2hlU29ydGVkU2V0R2V0UmFuay5SZXNwb25zZT47XG4gIHNvcnRlZFNldEdldFNjb3JlKFxuICAgIGNhY2hlTmFtZTogc3RyaW5nLFxuICAgIHNvcnRlZFNldE5hbWU6IHN0cmluZyxcbiAgICB2YWx1ZTogc3RyaW5nIHwgVWludDhBcnJheVxuICApOiBQcm9taXNlPENhY2hlU29ydGVkU2V0R2V0U2NvcmUuUmVzcG9uc2U+O1xuICBzb3J0ZWRTZXRHZXRTY29yZXMoXG4gICAgY2FjaGVOYW1lOiBzdHJpbmcsXG4gICAgc29ydGVkU2V0TmFtZTogc3RyaW5nLFxuICAgIHZhbHVlczogc3RyaW5nW10gfCBVaW50OEFycmF5W11cbiAgKTogUHJvbWlzZTxDYWNoZVNvcnRlZFNldEdldFNjb3Jlcy5SZXNwb25zZT47XG4gIHNvcnRlZFNldEluY3JlbWVudFNjb3JlKFxuICAgIGNhY2hlTmFtZTogc3RyaW5nLFxuICAgIHNvcnRlZFNldE5hbWU6IHN0cmluZyxcbiAgICB2YWx1ZTogc3RyaW5nIHwgVWludDhBcnJheSxcbiAgICBhbW91bnQ/OiBudW1iZXIsXG4gICAgdHRsPzogQ29sbGVjdGlvblR0bFxuICApOiBQcm9taXNlPENhY2hlU29ydGVkU2V0SW5jcmVtZW50U2NvcmUuUmVzcG9uc2U+O1xuICBzb3J0ZWRTZXRSZW1vdmVFbGVtZW50KFxuICAgIGNhY2hlTmFtZTogc3RyaW5nLFxuICAgIHNvcnRlZFNldE5hbWU6IHN0cmluZyxcbiAgICB2YWx1ZTogc3RyaW5nIHwgVWludDhBcnJheVxuICApOiBQcm9taXNlPENhY2hlU29ydGVkU2V0UmVtb3ZlRWxlbWVudC5SZXNwb25zZT47XG4gIHNvcnRlZFNldFJlbW92ZUVsZW1lbnRzKFxuICAgIGNhY2hlTmFtZTogc3RyaW5nLFxuICAgIHNvcnRlZFNldE5hbWU6IHN0cmluZyxcbiAgICB2YWx1ZXM6IHN0cmluZ1tdIHwgVWludDhBcnJheVtdXG4gICk6IFByb21pc2U8Q2FjaGVTb3J0ZWRTZXRSZW1vdmVFbGVtZW50cy5SZXNwb25zZT47XG4gIHNvcnRlZFNldExlbmd0aChcbiAgICBjYWNoZU5hbWU6IHN0cmluZyxcbiAgICBzb3J0ZWRTZXROYW1lOiBzdHJpbmdcbiAgKTogUHJvbWlzZTxDYWNoZVNvcnRlZFNldExlbmd0aC5SZXNwb25zZT47XG4gIHNvcnRlZFNldExlbmd0aEJ5U2NvcmUoXG4gICAgY2FjaGVOYW1lOiBzdHJpbmcsXG4gICAgc29ydGVkU2V0TmFtZTogc3RyaW5nLFxuICAgIG1pblNjb3JlPzogbnVtYmVyLFxuICAgIG1heFNjb3JlPzogbnVtYmVyXG4gICk6IFByb21pc2U8Q2FjaGVTb3J0ZWRTZXRMZW5ndGhCeVNjb3JlLlJlc3BvbnNlPjtcbiAgc29ydGVkU2V0VW5pb25TdG9yZShcbiAgICBjYWNoZU5hbWU6IHN0cmluZyxcbiAgICBzb3J0ZWRTZXROYW1lOiBzdHJpbmcsXG4gICAgc291cmNlczogU29ydGVkU2V0U291cmNlW10sXG4gICAgYWdncmVnYXRlPzogU29ydGVkU2V0QWdncmVnYXRlLFxuICAgIHR0bD86IENvbGxlY3Rpb25UdGxcbiAgKTogUHJvbWlzZTxDYWNoZVNvcnRlZFNldFVuaW9uU3RvcmUuUmVzcG9uc2U+O1xuICBpdGVtR2V0VHlwZShcbiAgICBjYWNoZU5hbWU6IHN0cmluZyxcbiAgICBrZXk6IHN0cmluZyB8IFVpbnQ4QXJyYXlcbiAgKTogUHJvbWlzZTxDYWNoZUl0ZW1HZXRUeXBlLlJlc3BvbnNlPjtcbiAgaXRlbUdldFR0bChcbiAgICBjYWNoZU5hbWU6IHN0cmluZyxcbiAgICBrZXk6IHN0cmluZyB8IFVpbnQ4QXJyYXlcbiAgKTogUHJvbWlzZTxDYWNoZUl0ZW1HZXRUdGwuUmVzcG9uc2U+O1xuICBrZXlFeGlzdHMoXG4gICAgY2FjaGVOYW1lOiBzdHJpbmcsXG4gICAga2V5OiBzdHJpbmcgfCBVaW50OEFycmF5XG4gICk6IFByb21pc2U8Q2FjaGVLZXlFeGlzdHMuUmVzcG9uc2U+O1xuICBrZXlzRXhpc3QoXG4gICAgY2FjaGVOYW1lOiBzdHJpbmcsXG4gICAga2V5czogc3RyaW5nW10gfCBVaW50OEFycmF5W11cbiAgKTogUHJvbWlzZTxDYWNoZUtleXNFeGlzdC5SZXNwb25zZT47XG4gIHVwZGF0ZVR0bChcbiAgICBjYWNoZU5hbWU6IHN0cmluZyxcbiAgICBrZXk6IHN0cmluZyB8IFVpbnQ4QXJyYXksXG4gICAgdHRsTWlsbGlzZWNvbmRzOiBudW1iZXJcbiAgKTogUHJvbWlzZTxDYWNoZVVwZGF0ZVR0bC5SZXNwb25zZT47XG4gIGluY3JlYXNlVHRsKFxuICAgIGNhY2hlTmFtZTogc3RyaW5nLFxuICAgIGtleTogc3RyaW5nIHwgVWludDhBcnJheSxcbiAgICB0dGxNaWxsaXNlY29uZHM6IG51bWJlclxuICApOiBQcm9taXNlPENhY2hlSW5jcmVhc2VUdGwuUmVzcG9uc2U+O1xuICBkZWNyZWFzZVR0bChcbiAgICBjYWNoZU5hbWU6IHN0cmluZyxcbiAgICBrZXk6IHN0cmluZyB8IFVpbnQ4QXJyYXksXG4gICAgdHRsTWlsbGlzZWNvbmRzOiBudW1iZXJcbiAgKTogUHJvbWlzZTxDYWNoZURlY3JlYXNlVHRsLlJlc3BvbnNlPjtcbiAgY2xvc2UoKTogdm9pZDtcbn1cbiJdfQ==
|
@@ -1,7 +1,8 @@
|
|
1
|
-
import { CacheDelete, CacheGet, CacheIncrement, CacheSet, CacheSetIfNotExists, CacheSetIfAbsent, CacheSetIfPresent, CacheSetIfEqual, CacheSetIfNotEqual, CacheSetIfPresentAndNotEqual, CacheSetIfAbsentOrEqual, CacheSetFetch, CacheSetAddElements, CacheSetAddElement, CacheSetContainsElement, CacheSetContainsElements, CacheSetRemoveElements, CacheSetRemoveElement, CacheListFetch, CacheListLength, CacheListPushFront, CacheListPushBack, CacheListConcatenateBack, CacheListConcatenateFront, CacheListPopBack, CacheListPopFront, CacheListRemoveValue, CacheListRetain, CacheDictionarySetField, CacheDictionarySetFields, CacheDictionaryGetField, CacheDictionaryFetch, CacheDictionaryIncrement, CacheDictionaryRemoveField, CacheDictionaryRemoveFields, CacheSortedSetFetch, CacheSortedSetPutElement, CacheSortedSetPutElements, CacheSortedSetGetRank, CacheSortedSetGetScore, CacheSortedSetGetScores, CacheSortedSetIncrementScore, CacheSortedSetRemoveElement, CacheSortedSetLength, CacheSortedSetLengthByScore, CacheItemGetType, CacheItemGetTtl, CacheKeyExists, CacheKeysExist, CacheUpdateTtl, CacheIncreaseTtl, CacheDecreaseTtl, ICacheClient, CacheSortedSetRemoveElements, CacheDictionaryGetFields, CacheDictionaryLength, CacheGetBatch, CacheSetBatch, CacheSetSample, CacheSetPop, CacheSetLength, CacheSortedSetUnionStore } from '../../../index';
|
1
|
+
import { CacheDelete, CacheGet, CacheIncrement, CacheSet, CacheSetIfNotExists, CacheSetIfAbsent, CacheSetIfPresent, CacheSetIfEqual, CacheSetIfNotEqual, CacheSetIfPresentAndNotEqual, CacheSetIfAbsentOrEqual, CacheSetFetch, CacheSetAddElements, CacheSetAddElement, CacheSetContainsElement, CacheSetContainsElements, CacheSetRemoveElements, CacheSetRemoveElement, CacheListFetch, CacheListLength, CacheListPushFront, CacheListPushBack, CacheListConcatenateBack, CacheListConcatenateFront, CacheListPopBack, CacheListPopFront, CacheListRemoveValue, CacheListRetain, CacheDictionarySetField, CacheDictionarySetFields, CacheDictionaryGetField, CacheDictionaryFetch, CacheDictionaryIncrement, CacheDictionaryRemoveField, CacheDictionaryRemoveFields, CacheSortedSetFetch, CacheSortedSetPutElement, CacheSortedSetPutElements, CacheSortedSetGetRank, CacheSortedSetGetScore, CacheSortedSetGetScores, CacheSortedSetIncrementScore, CacheSortedSetRemoveElement, CacheSortedSetLength, CacheSortedSetLengthByScore, CacheItemGetType, CacheItemGetTtl, CacheKeyExists, CacheKeysExist, CacheUpdateTtl, CacheIncreaseTtl, CacheDecreaseTtl, ICacheClient, CacheSortedSetRemoveElements, CacheDictionaryGetFields, CacheDictionaryLength, CacheGetBatch, CacheSetBatch, CacheSetSample, CacheSetPop, CacheSetLength, CacheSortedSetUnionStore, CacheGetWithHash, CacheSetWithHash, CacheSetIfAbsentOrHashEqual, CacheSetIfAbsentOrHashNotEqual, CacheSetIfPresentAndHashEqual, CacheSetIfPresentAndHashNotEqual } from '../../../index';
|
2
2
|
import { ScalarCallOptions, ListFetchCallOptions, ListRetainCallOptions, BackTruncatableCallOptions, FrontTruncatableCallOptions, CollectionCallOptions, SortedSetFetchByRankCallOptions, SortedSetFetchByScoreCallOptions, SortedSetLengthByScoreCallOptions, SetBatchItem, SortedSetSource, SortedSetUnionStoreCallOptions } from '../../../utils';
|
3
3
|
import { IMomentoCache } from '../../../clients/IMomentoCache';
|
4
4
|
export type SetOptions = ScalarCallOptions;
|
5
|
+
export type SetWithHashOptions = ScalarCallOptions;
|
5
6
|
export type SetIfNotExistsOptions = ScalarCallOptions;
|
6
7
|
export type SetIfAbsentOptions = ScalarCallOptions;
|
7
8
|
export type SetIfPresentOptions = ScalarCallOptions;
|
@@ -9,6 +10,10 @@ export type SetIfEqualOptions = ScalarCallOptions;
|
|
9
10
|
export type SetIfNotEqualOptions = ScalarCallOptions;
|
10
11
|
export type SetIfPresentAndNotEqualOptions = ScalarCallOptions;
|
11
12
|
export type SetIfAbsentOrEqualOptions = ScalarCallOptions;
|
13
|
+
export type SetIfPresentAndHashEqualOptions = ScalarCallOptions;
|
14
|
+
export type SetIfPresentAndHashNotEqualOptions = ScalarCallOptions;
|
15
|
+
export type SetIfAbsentOrHashEqualOptions = ScalarCallOptions;
|
16
|
+
export type SetIfAbsentOrHashNotEqualOptions = ScalarCallOptions;
|
12
17
|
export type SetBatchOptions = ScalarCallOptions;
|
13
18
|
export type ListConcatenateBackOptions = FrontTruncatableCallOptions;
|
14
19
|
export type ListConcatenateFrontOptions = BackTruncatableCallOptions;
|
@@ -32,7 +37,9 @@ export declare class MomentoCache implements IMomentoCache {
|
|
32
37
|
private readonly cacheName;
|
33
38
|
constructor(cacheClient: ICacheClient, cacheName: string);
|
34
39
|
get(key: string | Uint8Array): Promise<CacheGet.Response>;
|
40
|
+
getWithHash(key: string | Uint8Array): Promise<CacheGetWithHash.Response>;
|
35
41
|
set(key: string | Uint8Array, value: string | Uint8Array, options?: SetOptions): Promise<CacheSet.Response>;
|
42
|
+
setWithHash(key: string | Uint8Array, value: string | Uint8Array, options?: SetWithHashOptions): Promise<CacheSetWithHash.Response>;
|
36
43
|
delete(key: string | Uint8Array): Promise<CacheDelete.Response>;
|
37
44
|
increment(field: string | Uint8Array, amount: number, options?: IncrementOptions): Promise<CacheIncrement.Response>;
|
38
45
|
setIfNotExists(key: string | Uint8Array, field: string | Uint8Array, options?: SetIfNotExistsOptions): Promise<CacheSetIfNotExists.Response>;
|
@@ -42,6 +49,10 @@ export declare class MomentoCache implements IMomentoCache {
|
|
42
49
|
setIfNotEqual(key: string | Uint8Array, value: string | Uint8Array, notEqual: string | Uint8Array, options?: SetIfNotEqualOptions): Promise<CacheSetIfNotEqual.Response>;
|
43
50
|
setIfPresentAndNotEqual(key: string | Uint8Array, value: string | Uint8Array, notEqual: string | Uint8Array, options?: SetIfPresentAndNotEqualOptions): Promise<CacheSetIfPresentAndNotEqual.Response>;
|
44
51
|
setIfAbsentOrEqual(key: string | Uint8Array, value: string | Uint8Array, equal: string | Uint8Array, options?: SetIfAbsentOrEqualOptions): Promise<CacheSetIfAbsentOrEqual.Response>;
|
52
|
+
setIfPresentAndHashEqual(key: string | Uint8Array, value: string | Uint8Array, hashEqual: Uint8Array, options?: SetIfPresentAndHashEqualOptions): Promise<CacheSetIfPresentAndHashEqual.Response>;
|
53
|
+
setIfPresentAndHashNotEqual(key: string | Uint8Array, value: string | Uint8Array, hashNotEqual: Uint8Array, options?: SetIfPresentAndHashNotEqualOptions): Promise<CacheSetIfPresentAndHashNotEqual.Response>;
|
54
|
+
setIfAbsentOrHashEqual(key: string | Uint8Array, value: string | Uint8Array, hashEqual: Uint8Array, options?: SetIfAbsentOrHashEqualOptions): Promise<CacheSetIfAbsentOrHashEqual.Response>;
|
55
|
+
setIfAbsentOrHashNotEqual(key: string | Uint8Array, value: string | Uint8Array, hashNotEqual: Uint8Array, options?: SetIfAbsentOrHashNotEqualOptions): Promise<CacheSetIfAbsentOrHashNotEqual.Response>;
|
45
56
|
getBatch(keys: string[] | Uint8Array[]): Promise<CacheGetBatch.Response>;
|
46
57
|
setBatch(items: Record<string, string | Uint8Array> | Map<string | Uint8Array, string | Uint8Array> | Array<SetBatchItem>, options?: SetBatchOptions): Promise<CacheSetBatch.Response>;
|
47
58
|
setFetch(setName: string): Promise<CacheSetFetch.Response>;
|
@@ -9,9 +9,15 @@ class MomentoCache {
|
|
9
9
|
get(key) {
|
10
10
|
return this.cacheClient.get(this.cacheName, key);
|
11
11
|
}
|
12
|
+
getWithHash(key) {
|
13
|
+
return this.cacheClient.getWithHash(this.cacheName, key);
|
14
|
+
}
|
12
15
|
set(key, value, options) {
|
13
16
|
return this.cacheClient.set(this.cacheName, key, value, options);
|
14
17
|
}
|
18
|
+
setWithHash(key, value, options) {
|
19
|
+
return this.cacheClient.setWithHash(this.cacheName, key, value, options);
|
20
|
+
}
|
15
21
|
delete(key) {
|
16
22
|
return this.cacheClient.delete(this.cacheName, key);
|
17
23
|
}
|
@@ -39,6 +45,18 @@ class MomentoCache {
|
|
39
45
|
setIfAbsentOrEqual(key, value, equal, options) {
|
40
46
|
return this.cacheClient.setIfAbsentOrEqual(this.cacheName, key, value, equal, options);
|
41
47
|
}
|
48
|
+
setIfPresentAndHashEqual(key, value, hashEqual, options) {
|
49
|
+
return this.cacheClient.setIfPresentAndHashEqual(this.cacheName, key, value, hashEqual, options);
|
50
|
+
}
|
51
|
+
setIfPresentAndHashNotEqual(key, value, hashNotEqual, options) {
|
52
|
+
return this.cacheClient.setIfPresentAndHashNotEqual(this.cacheName, key, value, hashNotEqual, options);
|
53
|
+
}
|
54
|
+
setIfAbsentOrHashEqual(key, value, hashEqual, options) {
|
55
|
+
return this.cacheClient.setIfAbsentOrHashEqual(this.cacheName, key, value, hashEqual, options);
|
56
|
+
}
|
57
|
+
setIfAbsentOrHashNotEqual(key, value, hashNotEqual, options) {
|
58
|
+
return this.cacheClient.setIfAbsentOrHashNotEqual(this.cacheName, key, value, hashNotEqual, options);
|
59
|
+
}
|
42
60
|
getBatch(keys) {
|
43
61
|
return this.cacheClient.getBatch(this.cacheName, keys);
|
44
62
|
}
|
@@ -197,4 +215,4 @@ class MomentoCache {
|
|
197
215
|
}
|
198
216
|
}
|
199
217
|
exports.MomentoCache = MomentoCache;
|
200
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9tZW50by1jYWNoZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9pbnRlcm5hbC9jbGllbnRzL2NhY2hlL21vbWVudG8tY2FjaGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBNEdBLE1BQWEsWUFBWTtJQUd2QixZQUFZLFdBQXlCLEVBQUUsU0FBaUI7UUFDdEQsSUFBSSxDQUFDLFdBQVcsR0FBRyxXQUFXLENBQUM7UUFDL0IsSUFBSSxDQUFDLFNBQVMsR0FBRyxTQUFTLENBQUM7SUFDN0IsQ0FBQztJQUVELEdBQUcsQ0FBQyxHQUF3QjtRQUMxQixPQUFPLElBQUksQ0FBQyxXQUFXLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxTQUFTLEVBQUUsR0FBRyxDQUFDLENBQUM7SUFDbkQsQ0FBQztJQUNELEdBQUcsQ0FDRCxHQUF3QixFQUN4QixLQUEwQixFQUMxQixPQUFvQjtRQUVwQixPQUFPLElBQUksQ0FBQyxXQUFXLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxTQUFTLEVBQUUsR0FBRyxFQUFFLEtBQUssRUFBRSxPQUFPLENBQUMsQ0FBQztJQUNuRSxDQUFDO0lBQ0QsTUFBTSxDQUFDLEdBQXdCO1FBQzdCLE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLFNBQVMsRUFBRSxHQUFHLENBQUMsQ0FBQztJQUN0RCxDQUFDO0lBQ0QsU0FBUyxDQUNQLEtBQTBCLEVBQzFCLE1BQWMsRUFDZCxPQUEwQjtRQUUxQixPQUFPLElBQUksQ0FBQyxXQUFXLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxTQUFTLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxPQUFPLENBQUMsQ0FBQztJQUM1RSxDQUFDO0lBQ0QsY0FBYyxDQUNaLEdBQXdCLEVBQ3hCLEtBQTBCLEVBQzFCLE9BQStCO1FBRS9CLE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLFNBQVMs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LENBQUMsV0FBVyxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsU0FBUyxFQUFFLEdBQUcsQ0FBQyxDQUFDO0lBQzFELENBQUM7SUFDRCxTQUFTLENBQUMsR0FBd0I7UUFDaEMsT0FBTyxJQUFJLENBQUMsV0FBVyxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsU0FBUyxFQUFFLEdBQUcsQ0FBQyxDQUFDO0lBQ3pELENBQUM7SUFDRCxTQUFTLENBQUMsSUFBNkI7UUFDckMsT0FBTyxJQUFJLENBQUMsV0FBVyxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsU0FBUyxFQUFFLElBQUksQ0FBQyxDQUFDO0lBQzFELENBQUM7SUFDRCxTQUFTLENBQ1AsR0FBd0IsRUFDeEIsZUFBdUI7UUFFdkIsT0FBTyxJQUFJLENBQUMsV0FBVyxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsU0FBUyxFQUFFLEdBQUcsRUFBRSxlQUFlLENBQUMsQ0FBQztJQUMxRSxDQUFDO0lBQ0QsV0FBVyxDQUNULEdBQXdCLEVBQ3hCLGVBQXVCO1FBRXZCLE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLFNBQVMsRUFBRSxHQUFHLEVBQUUsZUFBZSxDQUFDLENBQUM7SUFDNUUsQ0FBQztJQUNELFdBQVcsQ0FDVCxHQUF3QixFQUN4QixlQUF1QjtRQUV2QixPQUFPLElBQUksQ0FBQyxXQUFXLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxTQUFTLEVBQUUsR0FBRyxFQUFFLGVBQWUsQ0FBQyxDQUFDO0lBQzVFLENBQUM7SUFDRCxLQUFLO1FBQ0gsSUFBSSxDQUFDLFdBQVcsQ0FBQyxLQUFLLEVBQUUsQ0FBQztJQUMzQixDQUFDO0NBQ0Y7QUFoaEJELG9DQWdoQkMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBDYWNoZURlbGV0ZSxcbiAgQ2FjaGVHZXQsXG4gIENhY2hlSW5jcmVtZW50LFxuICBDYWNoZVNldCxcbiAgQ2FjaGVTZXRJZk5vdEV4aXN0cyxcbiAgQ2FjaGVTZXRJZkFic2VudCxcbiAgQ2FjaGVTZXRJZlByZXNlbnQsXG4gIENhY2hlU2V0SWZFcXVhbCxcbiAgQ2FjaGVTZXRJZk5vdEVxdWFsLFxuICBDYWNoZVNldElmUHJlc2VudEFuZE5vdEVxdWFsLFxuICBDYWNoZVNldElmQWJzZW50T3JFcXVhbCxcbiAgQ2FjaGVTZXRGZXRjaCxcbiAgQ2FjaGVTZXRBZGRFbGVtZW50cyxcbiAgQ2FjaGVTZXRBZGRFbGVtZW50LFxuICBDYWNoZVNldENvbnRhaW5zRWxlbWVudCxcbiAgQ2FjaGVTZXRDb250YWluc0VsZW1lbnRzLFxuICBDYWNoZVNldFJlbW92ZUVsZW1lbnRzLFxuICBDYWNoZVNldFJlbW92ZUVsZW1lbnQsXG4gIENhY2hlTGlzdEZldGNoLFxuICBDYWNoZUxpc3RMZW5ndGgsXG4gIENhY2hlTGlzdFB1c2hGcm9udCxcbiAgQ2FjaGVMaXN0UHVzaEJhY2ssXG4gIENhY2hlTGlzdENvbmNhdGVuYXRlQmFjayxcbiAgQ2FjaGVMaXN0Q29uY2F0ZW5hdGVGcm9udCxcbiAgQ2FjaGVMaXN0UG9wQmFjayxcbiAgQ2FjaGVMaXN0UG9wRnJvbnQsXG4gIENhY2hlTGlzdFJlbW92ZVZhbHVlLFxuICBDYWNoZUxpc3RSZXRhaW4sXG4gIENhY2hlRGljdGlvbmFyeVNldEZpZWxkLFxuICBDYWNoZURpY3Rpb25hcnlTZXRGaWVsZHMsXG4gIENhY2hlRGljdGlvbmFyeUdldEZpZWxkLFxuICBDYWNoZURpY3Rpb25hcnlGZXRjaCxcbiAgQ2FjaGVEaWN0aW9uYXJ5SW5jcmVtZW50LFxuICBDYWNoZURpY3Rpb25hcnlSZW1vdmVGaWVsZCxcbiAgQ2FjaGVEaWN0aW9uYXJ5UmVtb3ZlRmllbGRzLFxuICBDYWNoZVNvcnRlZFNldEZldGNoLFxuICBDYWNoZVNvcnRlZFNldFB1dEVsZW1lbnQsXG4gIENhY2hlU29ydGVkU2V0UHV0RWxlbWVudHMsXG4gIENhY2hlU29ydGVkU2V0R2V0UmFuayxcbiAgQ2FjaGVTb3J0ZWRTZXRHZXRTY29yZSxcbiAgQ2FjaGVTb3J0ZWRTZXRHZXRTY29yZXMsXG4gIENhY2hlU29ydGVkU2V0SW5jcmVtZW50U2NvcmUsXG4gIENhY2hlU29ydGVkU2V0UmVtb3ZlRWxlbWVudCxcbiAgQ2FjaGVTb3J0ZWRTZXRMZW5ndGgsXG4gIENhY2hlU29ydGVkU2V0TGVuZ3RoQnlTY29yZSxcbiAgQ2FjaGVJdGVtR2V0VHlwZSxcbiAgQ2FjaGVJdGVtR2V0VHRsLFxuICBDYWNoZUtleUV4aXN0cyxcbiAgQ2FjaGVLZXlzRXhpc3QsXG4gIENhY2hlVXBkYXRlVHRsLFxuICBDYWNoZUluY3JlYXNlVHRsLFxuICBDYWNoZURlY3JlYXNlVHRsLFxuICBJQ2FjaGVDbGllbnQsXG4gIENhY2hlU29ydGVkU2V0UmVtb3ZlRWxlbWVudHMsXG4gIENhY2hlRGljdGlvbmFyeUdldEZpZWxkcyxcbiAgQ2FjaGVEaWN0aW9uYXJ5TGVuZ3RoLFxuICBDYWNoZUdldEJhdGNoLFxuICBDYWNoZVNldEJhdGNoLFxuICBDYWNoZVNldFNhbXBsZSxcbiAgQ2FjaGVTZXRQb3AsXG4gIENhY2hlU2V0TGVuZ3RoLFxuICBDYWNoZVNvcnRlZFNldFVuaW9uU3RvcmUsXG59IGZyb20gJy4uLy4uLy4uL2luZGV4JztcbmltcG9ydCB7XG4gIFNjYWxhckNhbGxPcHRpb25zLFxuICBMaXN0RmV0Y2hDYWxsT3B0aW9ucyxcbiAgTGlzdFJldGFpbkNhbGxPcHRpb25zLFxuICBCYWNrVHJ1bmNhdGFibGVDYWxsT3B0aW9ucyxcbiAgRnJvbnRUcnVuY2F0YWJsZUNhbGxPcHRpb25zLFxuICBDb2xsZWN0aW9uQ2FsbE9wdGlvbnMsXG4gIFNvcnRlZFNldEZldGNoQnlSYW5rQ2FsbE9wdGlvbnMsXG4gIFNvcnRlZFNldEZldGNoQnlTY29yZUNhbGxPcHRpb25zLFxuICBTb3J0ZWRTZXRMZW5ndGhCeVNjb3JlQ2FsbE9wdGlvbnMsXG4gIFNldEJhdGNoSXRlbSxcbiAgU29ydGVkU2V0U291cmNlLFxuICBTb3J0ZWRTZXRVbmlvblN0b3JlQ2FsbE9wdGlvbnMsXG59IGZyb20gJy4uLy4uLy4uL3V0aWxzJztcbmltcG9ydCB7SU1vbWVudG9DYWNoZX0gZnJvbSAnLi4vLi4vLi4vY2xpZW50cy9JTW9tZW50b0NhY2hlJztcblxuLy8gVHlwZSBhbGlhc2VzIHRvIGRpZmZlcmVudGlhdGUgdGhlIGRpZmZlcmVudCBtZXRob2RzJyBvcHRpb25hbCBhcmd1bWVudHMuXG5leHBvcnQgdHlwZSBTZXRPcHRpb25zID0gU2NhbGFyQ2FsbE9wdGlvbnM7XG5leHBvcnQgdHlwZSBTZXRJZk5vdEV4aXN0c09wdGlvbnMgPSBTY2FsYXJDYWxsT3B0aW9ucztcbmV4cG9ydCB0eXBlIFNldElmQWJzZW50T3B0aW9ucyA9IFNjYWxhckNhbGxPcHRpb25zO1xuZXhwb3J0IHR5cGUgU2V0SWZQcmVzZW50T3B0aW9ucyA9IFNjYWxhckNhbGxPcHRpb25zO1xuZXhwb3J0IHR5cGUgU2V0SWZFcXVhbE9wdGlvbnMgPSBTY2FsYXJDYWxsT3B0aW9ucztcbmV4cG9ydCB0eXBlIFNldElmTm90RXF1YWxPcHRpb25zID0gU2NhbGFyQ2FsbE9wdGlvbnM7XG5leHBvcnQgdHlwZSBTZXRJZlByZXNlbnRBbmROb3RFcXVhbE9wdGlvbnMgPSBTY2FsYXJDYWxsT3B0aW9ucztcbmV4cG9ydCB0eXBlIFNldElmQWJzZW50T3JFcXVhbE9wdGlvbnMgPSBTY2FsYXJDYWxsT3B0aW9ucztcbmV4cG9ydCB0eXBlIFNldEJhdGNoT3B0aW9ucyA9IFNjYWxhckNhbGxPcHRpb25zO1xuZXhwb3J0IHR5cGUgTGlzdENvbmNhdGVuYXRlQmFja09wdGlvbnMgPSBGcm9udFRydW5jYXRhYmxlQ2FsbE9wdGlvbnM7XG5leHBvcnQgdHlwZSBMaXN0Q29uY2F0ZW5hdGVGcm9udE9wdGlvbnMgPSBCYWNrVHJ1bmNhdGFibGVDYWxsT3B0aW9ucztcbmV4cG9ydCB0eXBlIExpc3RQdXNoQmFja09wdGlvbnMgPSBGcm9udFRydW5jYXRhYmxlQ2FsbE9wdGlvbnM7XG5leHBvcnQgdHlwZSBMaXN0UHVzaEZyb250T3B0aW9ucyA9IEJhY2tUcnVuY2F0YWJsZUNhbGxPcHRpb25zO1xuZXhwb3J0IHR5cGUgU2V0QWRkRWxlbWVudE9wdGlvbnMgPSBDb2xsZWN0aW9uQ2FsbE9wdGlvbnM7XG5leHBvcnQgdHlwZSBTZXRBZGRFbGVtZW50c09wdGlvbnMgPSBDb2xsZWN0aW9uQ2FsbE9wdGlvbnM7XG5leHBvcnQgdHlwZSBEaWN0aW9uYXJ5U2V0RmllbGRPcHRpb25zID0gQ29sbGVjdGlvbkNhbGxPcHRpb25zO1xuZXhwb3J0IHR5cGUgRGljdGlvbmFyeVNldEZpZWxkc09wdGlvbnMgPSBDb2xsZWN0aW9uQ2FsbE9wdGlvbnM7XG5leHBvcnQgdHlwZSBEaWN0aW9uYXJ5SW5jcmVtZW50T3B0aW9ucyA9IENvbGxlY3Rpb25DYWxsT3B0aW9ucztcbmV4cG9ydCB0eXBlIEluY3JlbWVudE9wdGlvbnMgPSBTY2FsYXJDYWxsT3B0aW9ucztcbmV4cG9ydCB0eXBlIFNvcnRlZFNldFB1dEVsZW1lbnRPcHRpb25zID0gQ29sbGVjdGlvbkNhbGxPcHRpb25zO1xuZXhwb3J0IHR5cGUgU29ydGVkU2V0UHV0RWxlbWVudHNPcHRpb25zID0gQ29sbGVjdGlvbkNhbGxPcHRpb25zO1xuZXhwb3J0IHR5cGUgU29ydGVkU2V0RmV0Y2hCeVJhbmtPcHRpb25zID0gU29ydGVkU2V0RmV0Y2hCeVJhbmtDYWxsT3B0aW9ucztcbmV4cG9ydCB0eXBlIFNvcnRlZFNldEZldGNoQnlTY29yZU9wdGlvbnMgPSBTb3J0ZWRTZXRGZXRjaEJ5U2NvcmVDYWxsT3B0aW9ucztcbmV4cG9ydCB0eXBlIFNvcnRlZFNldEluY3JlbWVudE9wdGlvbnMgPSBDb2xsZWN0aW9uQ2FsbE9wdGlvbnM7XG5leHBvcnQgdHlwZSBTb3J0ZWRTZXRMZW5ndGhCeVNjb3JlT3B0aW9ucyA9IFNvcnRlZFNldExlbmd0aEJ5U2NvcmVDYWxsT3B0aW9ucztcbmV4cG9ydCB0eXBlIFNvcnRlZFNldFVuaW9uU3RvcmVPcHRpb25zID0gU29ydGVkU2V0VW5pb25TdG9yZUNhbGxPcHRpb25zO1xuXG5leHBvcnQgY2xhc3MgTW9tZW50b0NhY2hlIGltcGxlbWVudHMgSU1vbWVudG9DYWNoZSB7XG4gIHByaXZhdGUgcmVhZG9ubHkgY2FjaGVDbGllbnQ6IElDYWNoZUNsaWVudDtcbiAgcHJpdmF0ZSByZWFkb25seSBjYWNoZU5hbWU6IHN0cmluZztcbiAgY29uc3RydWN0b3IoY2FjaGVDbGllbnQ6IElDYWNoZUNsaWVudCwgY2FjaGVOYW1lOiBzdHJpbmcpIHtcbiAgICB0aGlzLmNhY2hlQ2xpZW50ID0gY2FjaGVDbGllbnQ7XG4gICAgdGhpcy5jYWNoZU5hbWUgPSBjYWNoZU5hbWU7XG4gIH1cblxuICBnZXQoa2V5OiBzdHJpbmcgfCBVaW50OEFycmF5KTogUHJvbWlzZTxDYWNoZUdldC5SZXNwb25zZT4ge1xuICAgIHJldHVybiB0aGlzLmNhY2hlQ2xpZW50LmdldCh0aGlzLmNhY2hlTmFtZSwga2V5KTtcbiAgfVxuICBzZXQoXG4gICAga2V5OiBzdHJpbmcgfCBVaW50OEFycmF5LFxuICAgIHZhbHVlOiBzdHJpbmcgfCBVaW50OEFycmF5LFxuICAgIG9wdGlvbnM/OiBTZXRPcHRpb25zXG4gICk6IFByb21pc2U8Q2FjaGVTZXQuUmVzcG9uc2U+IHtcbiAgICByZXR1cm4gdGhpcy5jYWNoZUNsaWVudC5zZXQodGhpcy5jYWNoZU5hbWUsIGtleSwgdmFsdWUsIG9wdGlvbnMpO1xuICB9XG4gIGRlbGV0ZShrZXk6IHN0cmluZyB8IFVpbnQ4QXJyYXkpOiBQcm9taXNlPENhY2hlRGVsZXRlLlJlc3BvbnNlPiB7XG4gICAgcmV0dXJuIHRoaXMuY2FjaGVDbGllbnQuZGVsZXRlKHRoaXMuY2FjaGVOYW1lLCBrZXkpO1xuICB9XG4gIGluY3JlbWVudChcbiAgICBmaWVsZDogc3RyaW5nIHwgVWludDhBcnJheSxcbiAgICBhbW91bnQ6IG51bWJlcixcbiAgICBvcHRpb25zPzogSW5jcmVtZW50T3B0aW9uc1xuICApOiBQcm9taXNlPENhY2hlSW5jcmVtZW50LlJlc3BvbnNlPiB7XG4gICAgcmV0dXJuIHRoaXMuY2FjaGVDbGllbnQuaW5jcmVtZW50KHRoaXMuY2FjaGVOYW1lLCBmaWVsZCwgYW1vdW50LCBvcHRpb25zKTtcbiAgfVxuICBzZXRJZk5vdEV4aXN0cyhcbiAgICBrZXk6IHN0cmluZyB8IFVpbnQ4QXJyYXksXG4gICAgZmllbGQ6IHN0cmluZyB8IFVpbnQ4QXJyYXksXG4gICAgb3B0aW9ucz86IFNldElmTm90RXhpc3RzT3B0aW9uc1xuICApOiBQcm9taXNlPENhY2hlU2V0SWZOb3RFeGlzdHMuUmVzcG9uc2U+IHtcbiAgICByZXR1cm4gdGhpcy5jYWNoZUNsaWVudC5zZXRJZk5vdEV4aXN0cyh0aGlzLmNhY2hlTmFtZSwga2V5LCBmaWVsZCwgb3B0aW9ucyk7XG4gIH1cbiAgc2V0SWZBYnNlbnQoXG4gICAga2V5OiBzdHJpbmcgfCBVaW50OEFycmF5LFxuICAgIGZpZWxkOiBzdHJpbmcgfCBVaW50OEFycmF5LFxuICAgIG9wdGlvbnM/OiBTZXRJZkFic2VudE9wdGlvbnNcbiAgKTogUHJvbWlzZTxDYWNoZVNldElmQWJzZW50LlJlc3BvbnNlPiB7XG4gICAgcmV0dXJuIHRoaXMuY2FjaGVDbGllbnQuc2V0SWZBYnNlbnQodGhpcy5jYWNoZU5hbWUsIGtleSwgZmllbGQsIG9wdGlvbnMpO1xuICB9XG4gIHNldElmUHJlc2VudChcbiAgICBrZXk6IHN0cmluZyB8IFVpbnQ4QXJyYXksXG4gICAgdmFsdWU6IHN0cmluZyB8IFVpbnQ4QXJyYXksXG4gICAgb3B0aW9ucz86IFNldElmUHJlc2VudE9wdGlvbnNcbiAgKTogUHJvbWlzZTxDYWNoZVNldElmUHJlc2VudC5SZXNwb25zZT4ge1xuICAgIHJldHVybiB0aGlzLmNhY2hlQ2xpZW50LnNldElmUHJlc2VudCh0aGlzLmNhY2hlTmFtZSwga2V5LCB2YWx1ZSwgb3B0aW9ucyk7XG4gIH1cbiAgc2V0SWZFcXVhbChcbiAgICBrZXk6IHN0cmluZyB8IFVpbnQ4QXJyYXksXG4gICAgdmFsdWU6IHN0cmluZyB8IFVpbnQ4QXJyYXksXG4gICAgZXF1YWw6IHN0cmluZyB8IFVpbnQ4QXJyYXksXG4gICAgb3B0aW9ucz86IFNldElmRXF1YWxPcHRpb25zXG4gICk6IFByb21pc2U8Q2FjaGVTZXRJZkVxdWFsLlJlc3BvbnNlPiB7XG4gICAgcmV0dXJuIHRoaXMuY2FjaGVDbGllbnQuc2V0SWZFcXVhbChcbiAgICAgIHRoaXMuY2FjaGVOYW1lLFxuICAgICAga2V5LFxuICAgICAgdmFsdWUsXG4gICAgICBlcXVhbCxcbiAgICAgIG9wdGlvbnNcbiAgICApO1xuICB9XG4gIHNldElmTm90RXF1YWwoXG4gICAga2V5OiBzdHJpbmcgfCBVaW50OEFycmF5LFxuICAgIHZhbHVlOiBzdHJpbmcgfCBVaW50OEFycmF5LFxuICAgIG5vdEVxdWFsOiBzdHJpbmcgfCBVaW50OEFycmF5LFxuICAgIG9wdGlvbnM/OiBTZXRJZk5vdEVxdWFsT3B0aW9uc1xuICApOiBQcm9taXNlPENhY2hlU2V0SWZOb3RFcXVhbC5SZXNwb25zZT4ge1xuICAgIHJldHVybiB0aGlzLmNhY2hlQ2xpZW50LnNldElmTm90RXF1YWwoXG4gICAgICB0aGlzLmNhY2hlTmFtZSxcbiAgICAgIGtleSxcbiAgICAgIHZhbHVlLFxuICAgICAgbm90RXF1YWwsXG4gICAgICBvcHRpb25zXG4gICAgKTtcbiAgfVxuICBzZXRJZlByZXNlbnRBbmROb3RFcXVhbChcbiAgICBrZXk6IHN0cmluZyB8IFVpbnQ4QXJyYXksXG4gICAgdmFsdWU6IHN0cmluZyB8IFVpbnQ4QXJyYXksXG4gICAgbm90RXF1YWw6IHN0cmluZyB8IFVpbnQ4QXJyYXksXG4gICAgb3B0aW9ucz86IFNldElmUHJlc2VudEFuZE5vdEVxdWFsT3B0aW9uc1xuICApOiBQcm9taXNlPENhY2hlU2V0SWZQcmVzZW50QW5kTm90RXF1YWwuUmVzcG9uc2U+IHtcbiAgICByZXR1cm4gdGhpcy5jYWNoZUNsaWVudC5zZXRJZlByZXNlbnRBbmROb3RFcXVhbChcbiAgICAgIHRoaXMuY2FjaGVOYW1lLFxuICAgICAga2V5LFxuICAgICAgdmFsdWUsXG4gICAgICBub3RFcXVhbCxcbiAgICAgIG9wdGlvbnNcbiAgICApO1xuICB9XG4gIHNldElmQWJzZW50T3JFcXVhbChcbiAgICBrZXk6IHN0cmluZyB8IFVpbnQ4QXJyYXksXG4gICAgdmFsdWU6IHN0cmluZyB8IFVpbnQ4QXJyYXksXG4gICAgZXF1YWw6IHN0cmluZyB8IFVpbnQ4QXJyYXksXG4gICAgb3B0aW9ucz86IFNldElmQWJzZW50T3JFcXVhbE9wdGlvbnNcbiAgKTogUHJvbWlzZTxDYWNoZVNldElmQWJzZW50T3JFcXVhbC5SZXNwb25zZT4ge1xuICAgIHJldHVybiB0aGlzLmNhY2hlQ2xpZW50LnNldElmQWJzZW50T3JFcXVhbChcbiAgICAgIHRoaXMuY2FjaGVOYW1lLFxuICAgICAga2V5LFxuICAgICAgdmFsdWUsXG4gICAgICBlcXVhbCxcbiAgICAgIG9wdGlvbnNcbiAgICApO1xuICB9XG4gIGdldEJhdGNoKGtleXM6IHN0cmluZ1tdIHwgVWludDhBcnJheVtdKTogUHJvbWlzZTxDYWNoZUdldEJhdGNoLlJlc3BvbnNlPiB7XG4gICAgcmV0dXJuIHRoaXMuY2FjaGVDbGllbnQuZ2V0QmF0Y2godGhpcy5jYWNoZU5hbWUsIGtleXMpO1xuICB9XG4gIHNldEJhdGNoKFxuICAgIGl0ZW1zOlxuICAgICAgfCBSZWNvcmQ8c3RyaW5nLCBzdHJpbmcgfCBVaW50OEFycmF5PlxuICAgICAgfCBNYXA8c3RyaW5nIHwgVWludDhBcnJheSwgc3RyaW5nIHwgVWludDhBcnJheT5cbiAgICAgIHwgQXJyYXk8U2V0QmF0Y2hJdGVtPixcbiAgICBvcHRpb25zPzogU2V0QmF0Y2hPcHRpb25zXG4gICk6IFByb21pc2U8Q2FjaGVTZXRCYXRjaC5SZXNwb25zZT4ge1xuICAgIHJldHVybiB0aGlzLmNhY2hlQ2xpZW50LnNldEJhdGNoKHRoaXMuY2FjaGVOYW1lLCBpdGVtcywgb3B0aW9ucyk7XG4gIH1cbiAgc2V0RmV0Y2goc2V0TmFtZTogc3RyaW5nKTogUHJvbWlzZTxDYWNoZVNldEZldGNoLlJlc3BvbnNlPiB7XG4gICAgcmV0dXJuIHRoaXMuY2FjaGVDbGllbnQuc2V0RmV0Y2godGhpcy5jYWNoZU5hbWUsIHNldE5hbWUpO1xuICB9XG4gIHNldEFkZEVsZW1lbnQoXG4gICAgc2V0TmFtZTogc3RyaW5nLFxuICAgIGVsZW1lbnQ6IHN0cmluZyB8IFVpbnQ4QXJyYXksXG4gICAgb3B0aW9ucz86IFNldEFkZEVsZW1lbnRPcHRpb25zXG4gICk6IFByb21pc2U8Q2FjaGVTZXRBZGRFbGVtZW50LlJlc3BvbnNlPiB7XG4gICAgcmV0dXJuIHRoaXMuY2FjaGVDbGllbnQuc2V0QWRkRWxlbWVudChcbiAgICAgIHRoaXMuY2FjaGVOYW1lLFxuICAgICAgc2V0TmFtZSxcbiAgICAgIGVsZW1lbnQsXG4gICAgICBvcHRpb25zXG4gICAgKTtcbiAgfVxuICBzZXRBZGRFbGVtZW50cyhcbiAgICBzZXROYW1lOiBzdHJpbmcsXG4gICAgZWxlbWVudHM6IHN0cmluZ1tdIHwgVWludDhBcnJheVtdLFxuICAgIG9wdGlvbnM/OiBTZXRBZGRFbGVtZW50c09wdGlvbnNcbiAgKTogUHJvbWlzZTxDYWNoZVNldEFkZEVsZW1lbnRzLlJlc3BvbnNlPiB7XG4gICAgcmV0dXJuIHRoaXMuY2FjaGVDbGllbnQuc2V0QWRkRWxlbWVudHMoXG4gICAgICB0aGlzLmNhY2hlTmFtZSxcbiAgICAgIHNldE5hbWUsXG4gICAgICBlbGVtZW50cyxcbiAgICAgIG9wdGlvbnNcbiAgICApO1xuICB9XG4gIHNldENvbnRhaW5zRWxlbWVudChcbiAgICBzZXROYW1lOiBzdHJpbmcsXG4gICAgZWxlbWVudDogc3RyaW5nIHwgVWludDhBcnJheVxuICApOiBQcm9taXNlPENhY2hlU2V0Q29udGFpbnNFbGVtZW50LlJlc3BvbnNlPiB7XG4gICAgcmV0dXJuIHRoaXMuY2FjaGVDbGllbnQuc2V0Q29udGFpbnNFbGVtZW50KFxuICAgICAgdGhpcy5jYWNoZU5hbWUsXG4gICAgICBzZXROYW1lLFxuICAgICAgZWxlbWVudFxuICAgICk7XG4gIH1cbiAgc2V0Q29udGFpbnNFbGVtZW50cyhcbiAgICBzZXROYW1lOiBzdHJpbmcsXG4gICAgZWxlbWVudHM6IHN0cmluZ1tdIHwgVWludDhBcnJheVtdXG4gICk6IFByb21pc2U8Q2FjaGVTZXRDb250YWluc0VsZW1lbnRzLlJlc3BvbnNlPiB7XG4gICAgcmV0dXJuIHRoaXMuY2FjaGVDbGllbnQuc2V0Q29udGFpbnNFbGVtZW50cyhcbiAgICAgIHRoaXMuY2FjaGVOYW1lLFxuICAgICAgc2V0TmFtZSxcbiAgICAgIGVsZW1lbnRzXG4gICAgKTtcbiAgfVxuICBzZXRSZW1vdmVFbGVtZW50KFxuICAgIHNldE5hbWU6IHN0cmluZyxcbiAgICBlbGVtZW50OiBzdHJpbmcgfCBVaW50OEFycmF5XG4gICk6IFByb21pc2U8Q2FjaGVTZXRSZW1vdmVFbGVtZW50LlJlc3BvbnNlPiB7XG4gICAgcmV0dXJuIHRoaXMuY2FjaGVDbGllbnQuc2V0UmVtb3ZlRWxlbWVudCh0aGlzLmNhY2hlTmFtZSwgc2V0TmFtZSwgZWxlbWVudCk7XG4gIH1cbiAgc2V0UmVtb3ZlRWxlbWVudHMoXG4gICAgc2V0TmFtZTogc3RyaW5nLFxuICAgIGVsZW1lbnRzOiBzdHJpbmdbXSB8IFVpbnQ4QXJyYXlbXVxuICApOiBQcm9taXNlPENhY2hlU2V0UmVtb3ZlRWxlbWVudHMuUmVzcG9uc2U+IHtcbiAgICByZXR1cm4gdGhpcy5jYWNoZUNsaWVudC5zZXRSZW1vdmVFbGVtZW50cyhcbiAgICAgIHRoaXMuY2FjaGVOYW1lLFxuICAgICAgc2V0TmFtZSxcbiAgICAgIGVsZW1lbnRzXG4gICAgKTtcbiAgfVxuICBzZXRTYW1wbGUoc2V0TmFtZTogc3RyaW5nLCBsaW1pdDogbnVtYmVyKTogUHJvbWlzZTxDYWNoZVNldFNhbXBsZS5SZXNwb25zZT4ge1xuICAgIHJldHVybiB0aGlzLmNhY2hlQ2xpZW50LnNldFNhbXBsZSh0aGlzLmNhY2hlTmFtZSwgc2V0TmFtZSwgbGltaXQpO1xuICB9XG4gIHNldFBvcChzZXROYW1lOiBzdHJpbmcsIGNvdW50OiBudW1iZXIpOiBQcm9taXNlPENhY2hlU2V0UG9wLlJlc3BvbnNlPiB7XG4gICAgcmV0dXJuIHRoaXMuY2FjaGVDbGllbnQuc2V0UG9wKHRoaXMuY2FjaGVOYW1lLCBzZXROYW1lLCBjb3VudCk7XG4gIH1cbiAgc2V0TGVuZ3RoKHNldE5hbWU6IHN0cmluZyk6IFByb21pc2U8Q2FjaGVTZXRMZW5ndGguUmVzcG9uc2U+IHtcbiAgICByZXR1cm4gdGhpcy5jYWNoZUNsaWVudC5zZXRMZW5ndGgodGhpcy5jYWNoZU5hbWUsIHNldE5hbWUpO1xuICB9XG4gIGxpc3RGZXRjaChcbiAgICBsaXN0TmFtZTogc3RyaW5nLFxuICAgIG9wdGlvbnM/OiBMaXN0RmV0Y2hDYWxsT3B0aW9uc1xuICApOiBQcm9taXNlPENhY2hlTGlzdEZldGNoLlJlc3BvbnNlPiB7XG4gICAgcmV0dXJuIHRoaXMuY2FjaGVDbGllbnQubGlzdEZldGNoKHRoaXMuY2FjaGVOYW1lLCBsaXN0TmFtZSwgb3B0aW9ucyk7XG4gIH1cbiAgbGlzdExlbmd0aChsaXN0TmFtZTogc3RyaW5nKTogUHJvbWlzZTxDYWNoZUxpc3RMZW5ndGguUmVzcG9uc2U+IHtcbiAgICByZXR1cm4gdGhpcy5jYWNoZUNsaWVudC5saXN0TGVuZ3RoKHRoaXMuY2FjaGVOYW1lLCBsaXN0TmFtZSk7XG4gIH1cbiAgbGlzdFB1c2hGcm9udChcbiAgICBsaXN0TmFtZTogc3RyaW5nLFxuICAgIHZhbHVlOiBzdHJpbmcgfCBVaW50OEFycmF5LFxuICAgIG9wdGlvbnM/OiBMaXN0UHVzaEZyb250T3B0aW9uc1xuICApOiBQcm9taXNlPENhY2hlTGlzdFB1c2hGcm9udC5SZXNwb25zZT4ge1xuICAgIHJldHVybiB0aGlzLmNhY2hlQ2xpZW50Lmxpc3RQdXNoRnJvbnQoXG4gICAgICB0aGlzLmNhY2hlTmFtZSxcbiAgICAgIGxpc3ROYW1lLFxuICAgICAgdmFsdWUsXG4gICAgICBvcHRpb25zXG4gICAgKTtcbiAgfVxuICBsaXN0UHVzaEJhY2soXG4gICAgbGlzdE5hbWU6IHN0cmluZyxcbiAgICB2YWx1ZTogc3RyaW5nIHwgVWludDhBcnJheSxcbiAgICBvcHRpb25zPzogTGlzdFB1c2hCYWNrT3B0aW9uc1xuICApOiBQcm9taXNlPENhY2hlTGlzdFB1c2hCYWNrLlJlc3BvbnNlPiB7XG4gICAgcmV0dXJuIHRoaXMuY2FjaGVDbGllbnQubGlzdFB1c2hCYWNrKFxuICAgICAgdGhpcy5jYWNoZU5hbWUsXG4gICAgICBsaXN0TmFtZSxcbiAgICAgIHZhbHVlLFxuICAgICAgb3B0aW9uc1xuICAgICk7XG4gIH1cbiAgbGlzdENvbmNhdGVuYXRlQmFjayhcbiAgICBsaXN0TmFtZTogc3RyaW5nLFxuICAgIHZhbHVlczogc3RyaW5nW10gfCBVaW50OEFycmF5W10sXG4gICAgb3B0aW9ucz86IExpc3RDb25jYXRlbmF0ZUJhY2tPcHRpb25zXG4gICk6IFByb21pc2U8Q2FjaGVMaXN0Q29uY2F0ZW5hdGVCYWNrLlJlc3BvbnNlPiB7XG4gICAgcmV0dXJuIHRoaXMuY2FjaGVDbGllbnQubGlzdENvbmNhdGVuYXRlQmFjayhcbiAgICAgIHRoaXMuY2FjaGVOYW1lLFxuICAgICAgbGlzdE5hbWUsXG4gICAgICB2YWx1ZXMsXG4gICAgICBvcHRpb25zXG4gICAgKTtcbiAgfVxuICBsaXN0Q29uY2F0ZW5hdGVGcm9udChcbiAgICBsaXN0TmFtZTogc3RyaW5nLFxuICAgIHZhbHVlczogc3RyaW5nW10gfCBVaW50OEFycmF5W10sXG4gICAgb3B0aW9ucz86IExpc3RDb25jYXRlbmF0ZUZyb250T3B0aW9uc1xuICApOiBQcm9taXNlPENhY2hlTGlzdENvbmNhdGVuYXRlRnJvbnQuUmVzcG9uc2U+IHtcbiAgICByZXR1cm4gdGhpcy5jYWNoZUNsaWVudC5saXN0Q29uY2F0ZW5hdGVGcm9udChcbiAgICAgIHRoaXMuY2FjaGVOYW1lLFxuICAgICAgbGlzdE5hbWUsXG4gICAgICB2YWx1ZXMsXG4gICAgICBvcHRpb25zXG4gICAgKTtcbiAgfVxuICBsaXN0UG9wQmFjayhsaXN0TmFtZTogc3RyaW5nKTogUHJvbWlzZTxDYWNoZUxpc3RQb3BCYWNrLlJlc3BvbnNlPiB7XG4gICAgcmV0dXJuIHRoaXMuY2FjaGVDbGllbnQubGlzdFBvcEJhY2sodGhpcy5jYWNoZU5hbWUsIGxpc3ROYW1lKTtcbiAgfVxuICBsaXN0UG9wRnJvbnQobGlzdE5hbWU6IHN0cmluZyk6IFByb21pc2U8Q2FjaGVMaXN0UG9wRnJvbnQuUmVzcG9uc2U+IHtcbiAgICByZXR1cm4gdGhpcy5jYWNoZUNsaWVudC5saXN0UG9wRnJvbnQodGhpcy5jYWNoZU5hbWUsIGxpc3ROYW1lKTtcbiAgfVxuICBsaXN0UmVtb3ZlVmFsdWUoXG4gICAgbGlzdE5hbWU6IHN0cmluZyxcbiAgICB2YWx1ZTogc3RyaW5nIHwgVWludDhBcnJheVxuICApOiBQcm9taXNlPENhY2hlTGlzdFJlbW92ZVZhbHVlLlJlc3BvbnNlPiB7XG4gICAgcmV0dXJuIHRoaXMuY2FjaGVDbGllbnQubGlzdFJlbW92ZVZhbHVlKHRoaXMuY2FjaGVOYW1lLCBsaXN0TmFtZSwgdmFsdWUpO1xuICB9XG4gIGxpc3RSZXRhaW4oXG4gICAgbGlzdE5hbWU6IHN0cmluZyxcbiAgICBvcHRpb25zPzogTGlzdFJldGFpbkNhbGxPcHRpb25zXG4gICk6IFByb21pc2U8Q2FjaGVMaXN0UmV0YWluLlJlc3BvbnNlPiB7XG4gICAgcmV0dXJuIHRoaXMuY2FjaGVDbGllbnQubGlzdFJldGFpbih0aGlzLmNhY2hlTmFtZSwgbGlzdE5hbWUsIG9wdGlvbnMpO1xuICB9XG4gIGRpY3Rpb25hcnlTZXRGaWVsZChcbiAgICBkaWN0aW9uYXJ5TmFtZTogc3RyaW5nLFxuICAgIGZpZWxkOiBzdHJpbmcgfCBVaW50OEFycmF5LFxuICAgIHZhbHVlOiBzdHJpbmcgfCBVaW50OEFycmF5LFxuICAgIG9wdGlvbnM/OiBEaWN0aW9uYXJ5U2V0RmllbGRPcHRpb25zXG4gICk6IFByb21pc2U8Q2FjaGVEaWN0aW9uYXJ5U2V0RmllbGQuUmVzcG9uc2U+IHtcbiAgICByZXR1cm4gdGhpcy5jYWNoZUNsaWVudC5kaWN0aW9uYXJ5U2V0RmllbGQoXG4gICAgICB0aGlzLmNhY2hlTmFtZSxcbiAgICAgIGRpY3Rpb25hcnlOYW1lLFxuICAgICAgZmllbGQsXG4gICAgICB2YWx1ZSxcbiAgICAgIG9wdGlvbnNcbiAgICApO1xuICB9XG4gIGRpY3Rpb25hcnlTZXRGaWVsZHMoXG4gICAgZGljdGlvbmFyeU5hbWU6IHN0cmluZyxcbiAgICBlbGVtZW50czpcbiAgICAgIHwgTWFwPHN0cmluZyB8IFVpbnQ4QXJyYXksIHN0cmluZyB8IFVpbnQ4QXJyYXk+XG4gICAgICB8IFJlY29yZDxzdHJpbmcsIHN0cmluZyB8IFVpbnQ4QXJyYXk+LFxuICAgIG9wdGlvbnM/OiBEaWN0aW9uYXJ5U2V0RmllbGRzT3B0aW9uc1xuICApOiBQcm9taXNlPENhY2hlRGljdGlvbmFyeVNldEZpZWxkcy5SZXNwb25zZT4ge1xuICAgIHJldHVybiB0aGlzLmNhY2hlQ2xpZW50LmRpY3Rpb25hcnlTZXRGaWVsZHMoXG4gICAgICB0aGlzLmNhY2hlTmFtZSxcbiAgICAgIGRpY3Rpb25hcnlOYW1lLFxuICAgICAgZWxlbWVudHMsXG4gICAgICBvcHRpb25zXG4gICAgKTtcbiAgfVxuICBkaWN0aW9uYXJ5R2V0RmllbGQoXG4gICAgZGljdGlvbmFyeU5hbWU6IHN0cmluZyxcbiAgICBmaWVsZDogc3RyaW5nIHwgVWludDhBcnJheVxuICApOiBQcm9taXNlPENhY2hlRGljdGlvbmFyeUdldEZpZWxkLlJlc3BvbnNlPiB7XG4gICAgcmV0dXJuIHRoaXMuY2FjaGVDbGllbnQuZGljdGlvbmFyeUdldEZpZWxkKFxuICAgICAgdGhpcy5jYWNoZU5hbWUsXG4gICAgICBkaWN0aW9uYXJ5TmFtZSxcbiAgICAgIGZpZWxkXG4gICAgKTtcbiAgfVxuICBkaWN0aW9uYXJ5R2V0RmllbGRzKFxuICAgIGRpY3Rpb25hcnlOYW1lOiBzdHJpbmcsXG4gICAgZmllbGRzOiBzdHJpbmdbXSB8IFVpbnQ4QXJyYXlbXVxuICApOiBQcm9taXNlPENhY2hlRGljdGlvbmFyeUdldEZpZWxkcy5SZXNwb25zZT4ge1xuICAgIHJldHVybiB0aGlzLmNhY2hlQ2xpZW50LmRpY3Rpb25hcnlHZXRGaWVsZHMoXG4gICAgICB0aGlzLmNhY2hlTmFtZSxcbiAgICAgIGRpY3Rpb25hcnlOYW1lLFxuICAgICAgZmllbGRzXG4gICAgKTtcbiAgfVxuICBkaWN0aW9uYXJ5RmV0Y2goXG4gICAgZGljdGlvbmFyeU5hbWU6IHN0cmluZ1xuICApOiBQcm9taXNlPENhY2hlRGljdGlvbmFyeUZldGNoLlJlc3BvbnNlPiB7XG4gICAgcmV0dXJuIHRoaXMuY2FjaGVDbGllbnQuZGljdGlvbmFyeUZldGNoKHRoaXMuY2FjaGVOYW1lLCBkaWN0aW9uYXJ5TmFtZSk7XG4gIH1cbiAgZGljdGlvbmFyeUluY3JlbWVudChcbiAgICBkaWN0aW9uYXJ5TmFtZTogc3RyaW5nLFxuICAgIGZpZWxkOiBzdHJpbmcgfCBVaW50OEFycmF5LFxuICAgIGFtb3VudD86IG51bWJlcixcbiAgICBvcHRpb25zPzogRGljdGlvbmFyeUluY3JlbWVudE9wdGlvbnNcbiAgKTogUHJvbWlzZTxDYWNoZURpY3Rpb25hcnlJbmNyZW1lbnQuUmVzcG9uc2U+IHtcbiAgICByZXR1cm4gdGhpcy5jYWNoZUNsaWVudC5kaWN0aW9uYXJ5SW5jcmVtZW50KFxuICAgICAgdGhpcy5jYWNoZU5hbWUsXG4gICAgICBkaWN0aW9uYXJ5TmFtZSxcbiAgICAgIGZpZWxkLFxuICAgICAgYW1vdW50LFxuICAgICAgb3B0aW9uc1xuICAgICk7XG4gIH1cbiAgZGljdGlvbmFyeVJlbW92ZUZpZWxkKFxuICAgIGRpY3Rpb25hcnlOYW1lOiBzdHJpbmcsXG4gICAgZmllbGQ6IHN0cmluZyB8IFVpbnQ4QXJyYXlcbiAgKTogUHJvbWlzZTxDYWNoZURpY3Rpb25hcnlSZW1vdmVGaWVsZC5SZXNwb25zZT4ge1xuICAgIHJldHVybiB0aGlzLmNhY2hlQ2xpZW50LmRpY3Rpb25hcnlSZW1vdmVGaWVsZChcbiAgICAgIHRoaXMuY2FjaGVOYW1lLFxuICAgICAgZGljdGlvbmFyeU5hbWUsXG4gICAgICBmaWVsZFxuICAgICk7XG4gIH1cbiAgZGljdGlvbmFyeVJlbW92ZUZpZWxkcyhcbiAgICBkaWN0aW9uYXJ5TmFtZTogc3RyaW5nLFxuICAgIGZpZWxkczogc3RyaW5nW10gfCBVaW50OEFycmF5W11cbiAgKTogUHJvbWlzZTxDYWNoZURpY3Rpb25hcnlSZW1vdmVGaWVsZHMuUmVzcG9uc2U+IHtcbiAgICByZXR1cm4gdGhpcy5jYWNoZUNsaWVudC5kaWN0aW9uYXJ5UmVtb3ZlRmllbGRzKFxuICAgICAgdGhpcy5jYWNoZU5hbWUsXG4gICAgICBkaWN0aW9uYXJ5TmFtZSxcbiAgICAgIGZpZWxkc1xuICAgICk7XG4gIH1cblxuICBkaWN0aW9uYXJ5TGVuZ3RoKFxuICAgIGRpY3Rpb25hcnlOYW1lOiBzdHJpbmdcbiAgKTogUHJvbWlzZTxDYWNoZURpY3Rpb25hcnlMZW5ndGguUmVzcG9uc2U+IHtcbiAgICByZXR1cm4gdGhpcy5jYWNoZUNsaWVudC5kaWN0aW9uYXJ5TGVuZ3RoKHRoaXMuY2FjaGVOYW1lLCBkaWN0aW9uYXJ5TmFtZSk7XG4gIH1cblxuICBzb3J0ZWRTZXRGZXRjaEJ5UmFuayhcbiAgICBzb3J0ZWRTZXROYW1lOiBzdHJpbmcsXG4gICAgb3B0aW9ucz86IFNvcnRlZFNldEZldGNoQnlSYW5rT3B0aW9uc1xuICApOiBQcm9taXNlPENhY2hlU29ydGVkU2V0RmV0Y2guUmVzcG9uc2U+IHtcbiAgICByZXR1cm4gdGhpcy5jYWNoZUNsaWVudC5zb3J0ZWRTZXRGZXRjaEJ5UmFuayhcbiAgICAgIHRoaXMuY2FjaGVOYW1lLFxuICAgICAgc29ydGVkU2V0TmFtZSxcbiAgICAgIG9wdGlvbnNcbiAgICApO1xuICB9XG4gIHNvcnRlZFNldEZldGNoQnlTY29yZShcbiAgICBzb3J0ZWRTZXROYW1lOiBzdHJpbmcsXG4gICAgb3B0aW9ucz86IFNvcnRlZFNldEZldGNoQnlTY29yZU9wdGlvbnNcbiAgKTogUHJvbWlzZTxDYWNoZVNvcnRlZFNldEZldGNoLlJlc3BvbnNlPiB7XG4gICAgcmV0dXJuIHRoaXMuY2FjaGVDbGllbnQuc29ydGVkU2V0RmV0Y2hCeVNjb3JlKFxuICAgICAgdGhpcy5jYWNoZU5hbWUsXG4gICAgICBzb3J0ZWRTZXROYW1lLFxuICAgICAgb3B0aW9uc1xuICAgICk7XG4gIH1cbiAgc29ydGVkU2V0UHV0RWxlbWVudChcbiAgICBzb3J0ZWRTZXROYW1lOiBzdHJpbmcsXG4gICAgdmFsdWU6IHN0cmluZyB8IFVpbnQ4QXJyYXksXG4gICAgc2NvcmU6IG51bWJlcixcbiAgICBvcHRpb25zPzogU29ydGVkU2V0UHV0RWxlbWVudE9wdGlvbnNcbiAgKTogUHJvbWlzZTxDYWNoZVNvcnRlZFNldFB1dEVsZW1lbnQuUmVzcG9uc2U+IHtcbiAgICByZXR1cm4gdGhpcy5jYWNoZUNsaWVudC5zb3J0ZWRTZXRQdXRFbGVtZW50KFxuICAgICAgdGhpcy5jYWNoZU5hbWUsXG4gICAgICBzb3J0ZWRTZXROYW1lLFxuICAgICAgdmFsdWUsXG4gICAgICBzY29yZSxcbiAgICAgIG9wdGlvbnNcbiAgICApO1xuICB9XG4gIHNvcnRlZFNldFB1dEVsZW1lbnRzKFxuICAgIHNvcnRlZFNldE5hbWU6IHN0cmluZyxcbiAgICBlbGVtZW50czogTWFwPHN0cmluZyB8IFVpbnQ4QXJyYXksIG51bWJlcj4gfCBSZWNvcmQ8c3RyaW5nLCBudW1iZXI+LFxuICAgIG9wdGlvbnM/OiBTb3J0ZWRTZXRQdXRFbGVtZW50c09wdGlvbnNcbiAgKTogUHJvbWlzZTxDYWNoZVNvcnRlZFNldFB1dEVsZW1lbnRzLlJlc3BvbnNlPiB7XG4gICAgcmV0dXJuIHRoaXMuY2FjaGVDbGllbnQuc29ydGVkU2V0UHV0RWxlbWVudHMoXG4gICAgICB0aGlzLmNhY2hlTmFtZSxcbiAgICAgIHNvcnRlZFNldE5hbWUsXG4gICAgICBlbGVtZW50cyxcbiAgICAgIG9wdGlvbnNcbiAgICApO1xuICB9XG4gIHNvcnRlZFNldEdldFJhbmsoXG4gICAgc29ydGVkU2V0TmFtZTogc3RyaW5nLFxuICAgIHZhbHVlOiBzdHJpbmcgfCBVaW50OEFycmF5XG4gICk6IFByb21pc2U8Q2FjaGVTb3J0ZWRTZXRHZXRSYW5rLlJlc3BvbnNlPiB7XG4gICAgcmV0dXJuIHRoaXMuY2FjaGVDbGllbnQuc29ydGVkU2V0R2V0UmFuayhcbiAgICAgIHRoaXMuY2FjaGVOYW1lLFxuICAgICAgc29ydGVkU2V0TmFtZSxcbiAgICAgIHZhbHVlXG4gICAgKTtcbiAgfVxuICBzb3J0ZWRTZXRHZXRTY29yZShcbiAgICBzb3J0ZWRTZXROYW1lOiBzdHJpbmcsXG4gICAgdmFsdWU6IHN0cmluZyB8IFVpbnQ4QXJyYXlcbiAgKTogUHJvbWlzZTxDYWNoZVNvcnRlZFNldEdldFNjb3JlLlJlc3BvbnNlPiB7XG4gICAgcmV0dXJuIHRoaXMuY2FjaGVDbGllbnQuc29ydGVkU2V0R2V0U2NvcmUoXG4gICAgICB0aGlzLmNhY2hlTmFtZSxcbiAgICAgIHNvcnRlZFNldE5hbWUsXG4gICAgICB2YWx1ZVxuICAgICk7XG4gIH1cbiAgc29ydGVkU2V0R2V0U2NvcmVzKFxuICAgIHNvcnRlZFNldE5hbWU6IHN0cmluZyxcbiAgICB2YWx1ZXM6IHN0cmluZ1tdIHwgVWludDhBcnJheVtdXG4gICk6IFByb21pc2U8Q2FjaGVTb3J0ZWRTZXRHZXRTY29yZXMuUmVzcG9uc2U+IHtcbiAgICByZXR1cm4gdGhpcy5jYWNoZUNsaWVudC5zb3J0ZWRTZXRHZXRTY29yZXMoXG4gICAgICB0aGlzLmNhY2hlTmFtZSxcbiAgICAgIHNvcnRlZFNldE5hbWUsXG4gICAgICB2YWx1ZXNcbiAgICApO1xuICB9XG4gIHNvcnRlZFNldEluY3JlbWVudFNjb3JlKFxuICAgIHNvcnRlZFNldE5hbWU6IHN0cmluZyxcbiAgICB2YWx1ZTogc3RyaW5nIHwgVWludDhBcnJheSxcbiAgICBhbW91bnQ/OiBudW1iZXIsXG4gICAgb3B0aW9ucz86IFNvcnRlZFNldEluY3JlbWVudE9wdGlvbnNcbiAgKTogUHJvbWlzZTxDYWNoZVNvcnRlZFNldEluY3JlbWVudFNjb3JlLlJlc3BvbnNlPiB7XG4gICAgcmV0dXJuIHRoaXMuY2FjaGVDbGllbnQuc29ydGVkU2V0SW5jcmVtZW50U2NvcmUoXG4gICAgICB0aGlzLmNhY2hlTmFtZSxcbiAgICAgIHNvcnRlZFNldE5hbWUsXG4gICAgICB2YWx1ZSxcbiAgICAgIGFtb3VudCxcbiAgICAgIG9wdGlvbnNcbiAgICApO1xuICB9XG4gIHNvcnRlZFNldFJlbW92ZUVsZW1lbnQoXG4gICAgc29ydGVkU2V0TmFtZTogc3RyaW5nLFxuICAgIHZhbHVlOiBzdHJpbmcgfCBVaW50OEFycmF5XG4gICk6IFByb21pc2U8Q2FjaGVTb3J0ZWRTZXRSZW1vdmVFbGVtZW50LlJlc3BvbnNlPiB7XG4gICAgcmV0dXJuIHRoaXMuY2FjaGVDbGllbnQuc29ydGVkU2V0UmVtb3ZlRWxlbWVudChcbiAgICAgIHRoaXMuY2FjaGVOYW1lLFxuICAgICAgc29ydGVkU2V0TmFtZSxcbiAgICAgIHZhbHVlXG4gICAgKTtcbiAgfVxuICBzb3J0ZWRTZXRSZW1vdmVFbGVtZW50cyhcbiAgICBzb3J0ZWRTZXROYW1lOiBzdHJpbmcsXG4gICAgdmFsdWVzOiBzdHJpbmdbXSB8IFVpbnQ4QXJyYXlbXVxuICApOiBQcm9taXNlPENhY2hlU29ydGVkU2V0UmVtb3ZlRWxlbWVudHMuUmVzcG9uc2U+IHtcbiAgICByZXR1cm4gdGhpcy5jYWNoZUNsaWVudC5zb3J0ZWRTZXRSZW1vdmVFbGVtZW50cyhcbiAgICAgIHRoaXMuY2FjaGVOYW1lLFxuICAgICAgc29ydGVkU2V0TmFtZSxcbiAgICAgIHZhbHVlc1xuICAgICk7XG4gIH1cbiAgc29ydGVkU2V0TGVuZ3RoKFxuICAgIHNvcnRlZFNldE5hbWU6IHN0cmluZ1xuICApOiBQcm9taXNlPENhY2hlU29ydGVkU2V0TGVuZ3RoLlJlc3BvbnNlPiB7XG4gICAgcmV0dXJuIHRoaXMuY2FjaGVDbGllbnQuc29ydGVkU2V0TGVuZ3RoKHRoaXMuY2FjaGVOYW1lLCBzb3J0ZWRTZXROYW1lKTtcbiAgfVxuICBzb3J0ZWRTZXRMZW5ndGhCeVNjb3JlKFxuICAgIHNvcnRlZFNldE5hbWU6IHN0cmluZyxcbiAgICBvcHRpb25zPzogU29ydGVkU2V0TGVuZ3RoQnlTY29yZU9wdGlvbnNcbiAgKTogUHJvbWlzZTxDYWNoZVNvcnRlZFNldExlbmd0aEJ5U2NvcmUuUmVzcG9uc2U+IHtcbiAgICByZXR1cm4gdGhpcy5jYWNoZUNsaWVudC5zb3J0ZWRTZXRMZW5ndGhCeVNjb3JlKFxuICAgICAgdGhpcy5jYWNoZU5hbWUsXG4gICAgICBzb3J0ZWRTZXROYW1lLFxuICAgICAgb3B0aW9uc1xuICAgICk7XG4gIH1cbiAgc29ydGVkU2V0VW5pb25TdG9yZShcbiAgICBzb3J0ZWRTZXROYW1lOiBzdHJpbmcsXG4gICAgc291cmNlczogU29ydGVkU2V0U291cmNlW10sXG4gICAgb3B0aW9ucz86IFNvcnRlZFNldFVuaW9uU3RvcmVPcHRpb25zXG4gICk6IFByb21pc2U8Q2FjaGVTb3J0ZWRTZXRVbmlvblN0b3JlLlJlc3BvbnNlPiB7XG4gICAgcmV0dXJuIHRoaXMuY2FjaGVDbGllbnQuc29ydGVkU2V0VW5pb25TdG9yZShcbiAgICAgIHRoaXMuY2FjaGVOYW1lLFxuICAgICAgc29ydGVkU2V0TmFtZSxcbiAgICAgIHNvdXJjZXMsXG4gICAgICBvcHRpb25zXG4gICAgKTtcbiAgfVxuICBpdGVtR2V0VHlwZShrZXk6IHN0cmluZyB8IFVpbnQ4QXJyYXkpOiBQcm9taXNlPENhY2hlSXRlbUdldFR5cGUuUmVzcG9uc2U+IHtcbiAgICByZXR1cm4gdGhpcy5jYWNoZUNsaWVudC5pdGVtR2V0VHlwZSh0aGlzLmNhY2hlTmFtZSwga2V5KTtcbiAgfVxuICBpdGVtR2V0VHRsKGtleTogc3RyaW5nIHwgVWludDhBcnJheSk6IFByb21pc2U8Q2FjaGVJdGVtR2V0VHRsLlJlc3BvbnNlPiB7XG4gICAgcmV0dXJuIHRoaXMuY2FjaGVDbGllbnQuaXRlbUdldFR0bCh0aGlzLmNhY2hlTmFtZSwga2V5KTtcbiAgfVxuICBrZXlFeGlzdHMoa2V5OiBzdHJpbmcgfCBVaW50OEFycmF5KTogUHJvbWlzZTxDYWNoZUtleUV4aXN0cy5SZXNwb25zZT4ge1xuICAgIHJldHVybiB0aGlzLmNhY2hlQ2xpZW50LmtleUV4aXN0cyh0aGlzLmNhY2hlTmFtZSwga2V5KTtcbiAgfVxuICBrZXlzRXhpc3Qoa2V5czogc3RyaW5nW10gfCBVaW50OEFycmF5W10pOiBQcm9taXNlPENhY2hlS2V5c0V4aXN0LlJlc3BvbnNlPiB7XG4gICAgcmV0dXJuIHRoaXMuY2FjaGVDbGllbnQua2V5c0V4aXN0KHRoaXMuY2FjaGVOYW1lLCBrZXlzKTtcbiAgfVxuICB1cGRhdGVUdGwoXG4gICAga2V5OiBzdHJpbmcgfCBVaW50OEFycmF5LFxuICAgIHR0bE1pbGxpc2Vjb25kczogbnVtYmVyXG4gICk6IFByb21pc2U8Q2FjaGVVcGRhdGVUdGwuUmVzcG9uc2U+IHtcbiAgICByZXR1cm4gdGhpcy5jYWNoZUNsaWVudC51cGRhdGVUdGwodGhpcy5jYWNoZU5hbWUsIGtleSwgdHRsTWlsbGlzZWNvbmRzKTtcbiAgfVxuICBpbmNyZWFzZVR0bChcbiAgICBrZXk6IHN0cmluZyB8IFVpbnQ4QXJyYXksXG4gICAgdHRsTWlsbGlzZWNvbmRzOiBudW1iZXJcbiAgKTogUHJvbWlzZTxDYWNoZUluY3JlYXNlVHRsLlJlc3BvbnNlPiB7XG4gICAgcmV0dXJuIHRoaXMuY2FjaGVDbGllbnQuaW5jcmVhc2VUdGwodGhpcy5jYWNoZU5hbWUsIGtleSwgdHRsTWlsbGlzZWNvbmRzKTtcbiAgfVxuICBkZWNyZWFzZVR0bChcbiAgICBrZXk6IHN0cmluZyB8IFVpbnQ4QXJyYXksXG4gICAgdHRsTWlsbGlzZWNvbmRzOiBudW1iZXJcbiAgKTogUHJvbWlzZTxDYWNoZURlY3JlYXNlVHRsLlJlc3BvbnNlPiB7XG4gICAgcmV0dXJuIHRoaXMuY2FjaGVDbGllbnQuZGVjcmVhc2VUdGwodGhpcy5jYWNoZU5hbWUsIGtleSwgdHRsTWlsbGlzZWNvbmRzKTtcbiAgfVxuICBjbG9zZSgpIHtcbiAgICB0aGlzLmNhY2hlQ2xpZW50LmNsb3NlKCk7XG4gIH1cbn1cbiJdfQ==
|
218
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9tZW50by1jYWNoZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9pbnRlcm5hbC9jbGllbnRzL2NhY2hlL21vbWVudG8tY2FjaGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBdUhBLE1BQWEsWUFBWTtJQUd2QixZQUFZLFdBQXlCLEVBQUUsU0FBaUI7UUFDdEQsSUFBSSxDQUFDLFdBQVcsR0FBRyxXQUFXLENBQUM7UUFDL0IsSUFBSSxDQUFDLFNBQVMsR0FBRyxTQUFTLENBQUM7SUFDN0IsQ0FBQztJQUVELEdBQUcsQ0FBQyxHQUF3QjtRQUMxQixPQUFPLElBQUksQ0FBQyxXQUFXLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxTQUFTLEVBQUUsR0FBRyxDQUFDLENBQUM7SUFDbkQsQ0FBQztJQUNELFdBQVcsQ0FBQyxHQUF3QjtRQUNsQyxPQUFPLElBQUksQ0FBQyxXQUFXLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxTQUFTLEVBQUUsR0FBRyxDQUFDLENBQUM7SUFDM0QsQ0FBQztJQUNELEdBQUcsQ0FDRCxHQUF3QixFQUN4QixLQUEwQixFQUMxQixPQUFvQjtRQUVwQixPQUFPLElBQUksQ0FBQyxXQUFXLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxTQUFTLEVBQUUsR0FBRyxFQUFFLEtBQUssRUFBRSxPQUFPLENBQUMsQ0FBQztJQUNuRSxDQUFDO0lBQ0QsV0FBVyxDQUNULEdBQXdCLEVBQ3hCLEtBQTBCLEVBQzFCLE9BQTRCO1FBRTVCLE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLFNBQVMsRUFBRSxHQUFHLEVBQUUsS0FBSyxFQUFFLE9BQU8sQ0FBQyxDQUFDO0lBQzNFLENBQUM7SUFDRCxNQUFNLENBQUMsR0FBd0I7UUFDN0IsT0FBTyxJQUFJLENBQUMsV0FBVyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsU0FBUyxFQUFFLEdBQUcsQ0FBQyxDQUFDO0lB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ZUluY3JlbWVudCxcbiAgQ2FjaGVTZXQsXG4gIENhY2hlU2V0SWZOb3RFeGlzdHMsXG4gIENhY2hlU2V0SWZBYnNlbnQsXG4gIENhY2hlU2V0SWZQcmVzZW50LFxuICBDYWNoZVNldElmRXF1YWwsXG4gIENhY2hlU2V0SWZOb3RFcXVhbCxcbiAgQ2FjaGVTZXRJZlByZXNlbnRBbmROb3RFcXVhbCxcbiAgQ2FjaGVTZXRJZkFic2VudE9yRXF1YWwsXG4gIENhY2hlU2V0RmV0Y2gsXG4gIENhY2hlU2V0QWRkRWxlbWVudHMsXG4gIENhY2hlU2V0QWRkRWxlbWVudCxcbiAgQ2FjaGVTZXRDb250YWluc0VsZW1lbnQsXG4gIENhY2hlU2V0Q29udGFpbnNFbGVtZW50cyxcbiAgQ2FjaGVTZXRSZW1vdmVFbGVtZW50cyxcbiAgQ2FjaGVTZXRSZW1vdmVFbGVtZW50LFxuICBDYWNoZUxpc3RGZXRjaCxcbiAgQ2FjaGVMaXN0TGVuZ3RoLFxuICBDYWNoZUxpc3RQdXNoRnJvbnQsXG4gIENhY2hlTGlzdFB1c2hCYWNrLFxuICBDYWNoZUxpc3RDb25jYXRlbmF0ZUJhY2ssXG4gIENhY2hlTGlzdENvbmNhdGVuYXRlRnJvbnQsXG4gIENhY2hlTGlzdFBvcEJhY2ssXG4gIENhY2hlTGlzdFBvcEZyb250LFxuICBDYWNoZUxpc3RSZW1vdmVWYWx1ZSxcbiAgQ2FjaGVMaXN0UmV0YWluLFxuICBDYWNoZURpY3Rpb25hcnlTZXRGaWVsZCxcbiAgQ2FjaGVEaWN0aW9uYXJ5U2V0RmllbGRzLFxuICBDYWNoZURpY3Rpb25hcnlHZXRGaWVsZCxcbiAgQ2FjaGVEaWN0aW9uYXJ5RmV0Y2gsXG4gIENhY2hlRGljdGlvbmFyeUluY3JlbWVudCxcbiAgQ2FjaGVEaWN0aW9uYXJ5UmVtb3ZlRmllbGQsXG4gIENhY2hlRGljdGlvbmFyeVJlbW92ZUZpZWxkcyxcbiAgQ2FjaGVTb3J0ZWRTZXRGZXRjaCxcbiAgQ2FjaGVTb3J0ZWRTZXRQdXRFbGVtZW50LFxuICBDYWNoZVNvcnRlZFNldFB1dEVsZW1lbnRzLFxuICBDYWNoZVNvcnRlZFNldEdldFJhbmssXG4gIENhY2hlU29ydGVkU2V0R2V0U2NvcmUsXG4gIENhY2hlU29ydGVkU2V0R2V0U2NvcmVzLFxuICBDYWNoZVNvcnRlZFNldEluY3JlbWVudFNjb3JlLFxuICBDYWNoZVNvcnRlZFNldFJlbW92ZUVsZW1lbnQsXG4gIENhY2hlU29ydGVkU2V0TGVuZ3RoLFxuICBDYWNoZVNvcnRlZFNldExlbmd0aEJ5U2NvcmUsXG4gIENhY2hlSXRlbUdldFR5cGUsXG4gIENhY2hlSXRlbUdldFR0bCxcbiAgQ2FjaGVLZXlFeGlzdHMsXG4gIENhY2hlS2V5c0V4aXN0LFxuICBDYWNoZVVwZGF0ZVR0bCxcbiAgQ2FjaGVJbmNyZWFzZVR0bCxcbiAgQ2FjaGVEZWNyZWFzZVR0bCxcbiAgSUNhY2hlQ2xpZW50LFxuICBDYWNoZVNvcnRlZFNldFJlbW92ZUVsZW1lbnRzLFxuICBDYWNoZURpY3Rpb25hcnlHZXRGaWVsZHMsXG4gIENhY2hlRGljdGlvbmFyeUxlbmd0aCxcbiAgQ2FjaGVHZXRCYXRjaCxcbiAgQ2FjaGVTZXRCYXRjaCxcbiAgQ2FjaGVTZXRTYW1wbGUsXG4gIENhY2hlU2V0UG9wLFxuICBDYWNoZVNldExlbmd0aCxcbiAgQ2FjaGVTb3J0ZWRTZXRVbmlvblN0b3JlLFxuICBDYWNoZUdldFdpdGhIYXNoLFxuICBDYWNoZVNldFdpdGhIYXNoLFxuICBDYWNoZVNldElmQWJzZW50T3JIYXNoRXF1YWwsXG4gIENhY2hlU2V0SWZBYnNlbnRPckhhc2hOb3RFcXVhbCxcbiAgQ2FjaGVTZXRJZlByZXNlbnRBbmRIYXNoRXF1YWwsXG4gIENhY2hlU2V0SWZQcmVzZW50QW5kSGFzaE5vdEVxdWFsLFxufSBmcm9tICcuLi8uLi8uLi9pbmRleCc7XG5pbXBvcnQge1xuICBTY2FsYXJDYWxsT3B0aW9ucyxcbiAgTGlzdEZldGNoQ2FsbE9wdGlvbnMsXG4gIExpc3RSZXRhaW5DYWxsT3B0aW9ucyxcbiAgQmFja1RydW5jYXRhYmxlQ2FsbE9wdGlvbnMsXG4gIEZyb250VHJ1bmNhdGFibGVDYWxsT3B0aW9ucyxcbiAgQ29sbGVjdGlvbkNhbGxPcHRpb25zLFxuICBTb3J0ZWRTZXRGZXRjaEJ5UmFua0NhbGxPcHRpb25zLFxuICBTb3J0ZWRTZXRGZXRjaEJ5U2NvcmVDYWxsT3B0aW9ucyxcbiAgU29ydGVkU2V0TGVuZ3RoQnlTY29yZUNhbGxPcHRpb25zLFxuICBTZXRCYXRjaEl0ZW0sXG4gIFNvcnRlZFNldFNvdXJjZSxcbiAgU29ydGVkU2V0VW5pb25TdG9yZUNhbGxPcHRpb25zLFxufSBmcm9tICcuLi8uLi8uLi91dGlscyc7XG5pbXBvcnQge0lNb21lbnRvQ2FjaGV9IGZyb20gJy4uLy4uLy4uL2NsaWVudHMvSU1vbWVudG9DYWNoZSc7XG5cbi8vIFR5cGUgYWxpYXNlcyB0byBkaWZmZXJlbnRpYXRlIHRoZSBkaWZmZXJlbnQgbWV0aG9kcycgb3B0aW9uYWwgYXJndW1lbnRzLlxuZXhwb3J0IHR5cGUgU2V0T3B0aW9ucyA9IFNjYWxhckNhbGxPcHRpb25zO1xuZXhwb3J0IHR5cGUgU2V0V2l0aEhhc2hPcHRpb25zID0gU2NhbGFyQ2FsbE9wdGlvbnM7XG5leHBvcnQgdHlwZSBTZXRJZk5vdEV4aXN0c09wdGlvbnMgPSBTY2FsYXJDYWxsT3B0aW9ucztcbmV4cG9ydCB0eXBlIFNldElmQWJzZW50T3B0aW9ucyA9IFNjYWxhckNhbGxPcHRpb25zO1xuZXhwb3J0IHR5cGUgU2V0SWZQcmVzZW50T3B0aW9ucyA9IFNjYWxhckNhbGxPcHRpb25zO1xuZXhwb3J0IHR5cGUgU2V0SWZFcXVhbE9wdGlvbnMgPSBTY2FsYXJDYWxsT3B0aW9ucztcbmV4cG9ydCB0eXBlIFNldElmTm90RXF1YWxPcHRpb25zID0gU2NhbGFyQ2FsbE9wdGlvbnM7XG5leHBvcnQgdHlwZSBTZXRJZlByZXNlbnRBbmROb3RFcXVhbE9wdGlvbnMgPSBTY2FsYXJDYWxsT3B0aW9ucztcbmV4cG9ydCB0eXBlIFNldElmQWJzZW50T3JFcXVhbE9wdGlvbnMgPSBTY2FsYXJDYWxsT3B0aW9ucztcbmV4cG9ydCB0eXBlIFNldElmUHJlc2VudEFuZEhhc2hFcXVhbE9wdGlvbnMgPSBTY2FsYXJDYWxsT3B0aW9ucztcbmV4cG9ydCB0eXBlIFNldElmUHJlc2VudEFuZEhhc2hOb3RFcXVhbE9wdGlvbnMgPSBTY2FsYXJDYWxsT3B0aW9ucztcbmV4cG9ydCB0eXBlIFNldElmQWJzZW50T3JIYXNoRXF1YWxPcHRpb25zID0gU2NhbGFyQ2FsbE9wdGlvbnM7XG5leHBvcnQgdHlwZSBTZXRJZkFic2VudE9ySGFzaE5vdEVxdWFsT3B0aW9ucyA9IFNjYWxhckNhbGxPcHRpb25zO1xuZXhwb3J0IHR5cGUgU2V0QmF0Y2hPcHRpb25zID0gU2NhbGFyQ2FsbE9wdGlvbnM7XG5leHBvcnQgdHlwZSBMaXN0Q29uY2F0ZW5hdGVCYWNrT3B0aW9ucyA9IEZyb250VHJ1bmNhdGFibGVDYWxsT3B0aW9ucztcbmV4cG9ydCB0eXBlIExpc3RDb25jYXRlbmF0ZUZyb250T3B0aW9ucyA9IEJhY2tUcnVuY2F0YWJsZUNhbGxPcHRpb25zO1xuZXhwb3J0IHR5cGUgTGlzdFB1c2hCYWNrT3B0aW9ucyA9IEZyb250VHJ1bmNhdGFibGVDYWxsT3B0aW9ucztcbmV4cG9ydCB0eXBlIExpc3RQdXNoRnJvbnRPcHRpb25zID0gQmFja1RydW5jYXRhYmxlQ2FsbE9wdGlvbnM7XG5leHBvcnQgdHlwZSBTZXRBZGRFbGVtZW50T3B0aW9ucyA9IENvbGxlY3Rpb25DYWxsT3B0aW9ucztcbmV4cG9ydCB0eXBlIFNldEFkZEVsZW1lbnRzT3B0aW9ucyA9IENvbGxlY3Rpb25DYWxsT3B0aW9ucztcbmV4cG9ydCB0eXBlIERpY3Rpb25hcnlTZXRGaWVsZE9wdGlvbnMgPSBDb2xsZWN0aW9uQ2FsbE9wdGlvbnM7XG5leHBvcnQgdHlwZSBEaWN0aW9uYXJ5U2V0RmllbGRzT3B0aW9ucyA9IENvbGxlY3Rpb25DYWxsT3B0aW9ucztcbmV4cG9ydCB0eXBlIERpY3Rpb25hcnlJbmNyZW1lbnRPcHRpb25zID0gQ29sbGVjdGlvbkNhbGxPcHRpb25zO1xuZXhwb3J0IHR5cGUgSW5jcmVtZW50T3B0aW9ucyA9IFNjYWxhckNhbGxPcHRpb25zO1xuZXhwb3J0IHR5cGUgU29ydGVkU2V0UHV0RWxlbWVudE9wdGlvbnMgPSBDb2xsZWN0aW9uQ2FsbE9wdGlvbnM7XG5leHBvcnQgdHlwZSBTb3J0ZWRTZXRQdXRFbGVtZW50c09wdGlvbnMgPSBDb2xsZWN0aW9uQ2FsbE9wdGlvbnM7XG5leHBvcnQgdHlwZSBTb3J0ZWRTZXRGZXRjaEJ5UmFua09wdGlvbnMgPSBTb3J0ZWRTZXRGZXRjaEJ5UmFua0NhbGxPcHRpb25zO1xuZXhwb3J0IHR5cGUgU29ydGVkU2V0RmV0Y2hCeVNjb3JlT3B0aW9ucyA9IFNvcnRlZFNldEZldGNoQnlTY29yZUNhbGxPcHRpb25zO1xuZXhwb3J0IHR5cGUgU29ydGVkU2V0SW5jcmVtZW50T3B0aW9ucyA9IENvbGxlY3Rpb25DYWxsT3B0aW9ucztcbmV4cG9ydCB0eXBlIFNvcnRlZFNldExlbmd0aEJ5U2NvcmVPcHRpb25zID0gU29ydGVkU2V0TGVuZ3RoQnlTY29yZUNhbGxPcHRpb25zO1xuZXhwb3J0IHR5cGUgU29ydGVkU2V0VW5pb25TdG9yZU9wdGlvbnMgPSBTb3J0ZWRTZXRVbmlvblN0b3JlQ2FsbE9wdGlvbnM7XG5cbmV4cG9ydCBjbGFzcyBNb21lbnRvQ2FjaGUgaW1wbGVtZW50cyBJTW9tZW50b0NhY2hlIHtcbiAgcHJpdmF0ZSByZWFkb25seSBjYWNoZUNsaWVudDogSUNhY2hlQ2xpZW50O1xuICBwcml2YXRlIHJlYWRvbmx5IGNhY2hlTmFtZTogc3RyaW5nO1xuICBjb25zdHJ1Y3RvcihjYWNoZUNsaWVudDogSUNhY2hlQ2xpZW50LCBjYWNoZU5hbWU6IHN0cmluZykge1xuICAgIHRoaXMuY2FjaGVDbGllbnQgPSBjYWNoZUNsaWVudDtcbiAgICB0aGlzLmNhY2hlTmFtZSA9IGNhY2hlTmFtZTtcbiAgfVxuXG4gIGdldChrZXk6IHN0cmluZyB8IFVpbnQ4QXJyYXkpOiBQcm9taXNlPENhY2hlR2V0LlJlc3BvbnNlPiB7XG4gICAgcmV0dXJuIHRoaXMuY2FjaGVDbGllbnQuZ2V0KHRoaXMuY2FjaGVOYW1lLCBrZXkpO1xuICB9XG4gIGdldFdpdGhIYXNoKGtleTogc3RyaW5nIHwgVWludDhBcnJheSk6IFByb21pc2U8Q2FjaGVHZXRXaXRoSGFzaC5SZXNwb25zZT4ge1xuICAgIHJldHVybiB0aGlzLmNhY2hlQ2xpZW50LmdldFdpdGhIYXNoKHRoaXMuY2FjaGVOYW1lLCBrZXkpO1xuICB9XG4gIHNldChcbiAgICBrZXk6IHN0cmluZyB8IFVpbnQ4QXJyYXksXG4gICAgdmFsdWU6IHN0cmluZyB8IFVpbnQ4QXJyYXksXG4gICAgb3B0aW9ucz86IFNldE9wdGlvbnNcbiAgKTogUHJvbWlzZTxDYWNoZVNldC5SZXNwb25zZT4ge1xuICAgIHJldHVybiB0aGlzLmNhY2hlQ2xpZW50LnNldCh0aGlzLmNhY2hlTmFtZSwga2V5LCB2YWx1ZSwgb3B0aW9ucyk7XG4gIH1cbiAgc2V0V2l0aEhhc2goXG4gICAga2V5OiBzdHJpbmcgfCBVaW50OEFycmF5LFxuICAgIHZhbHVlOiBzdHJpbmcgfCBVaW50OEFycmF5LFxuICAgIG9wdGlvbnM/OiBTZXRXaXRoSGFzaE9wdGlvbnNcbiAgKTogUHJvbWlzZTxDYWNoZVNldFdpdGhIYXNoLlJlc3BvbnNlPiB7XG4gICAgcmV0dXJuIHRoaXMuY2FjaGVDbGllbnQuc2V0V2l0aEhhc2godGhpcy5jYWNoZU5hbWUsIGtleSwgdmFsdWUsIG9wdGlvbnMpO1xuICB9XG4gIGRlbGV0ZShrZXk6IHN0cmluZyB8IFVpbnQ4QXJyYXkpOiBQcm9taXNlPENhY2hlRGVsZXRlLlJlc3BvbnNlPiB7XG4gICAgcmV0dXJuIHRoaXMuY2FjaGVDbGllbnQuZGVsZXRlKHRoaXMuY2FjaGVOYW1lLCBrZXkpO1xuICB9XG4gIGluY3JlbWVudChcbiAgICBmaWVsZDogc3RyaW5nIHwgVWludDhBcnJheSxcbiAgICBhbW91bnQ6IG51bWJlcixcbiAgICBvcHRpb25zPzogSW5jcmVtZW50T3B0aW9uc1xuICApOiBQcm9taXNlPENhY2hlSW5jcmVtZW50LlJlc3BvbnNlPiB7XG4gICAgcmV0dXJuIHRoaXMuY2FjaGVDbGllbnQuaW5jcmVtZW50KHRoaXMuY2FjaGVOYW1lLCBmaWVsZCwgYW1vdW50LCBvcHRpb25zKTtcbiAgfVxuICBzZXRJZk5vdEV4aXN0cyhcbiAgICBrZXk6IHN0cmluZyB8IFVpbnQ4QXJyYXksXG4gICAgZmllbGQ6IHN0cmluZyB8IFVpbnQ4QXJyYXksXG4gICAgb3B0aW9ucz86IFNldElmTm90RXhpc3RzT3B0aW9uc1xuICApOiBQcm9taXNlPENhY2hlU2V0SWZOb3RFeGlzdHMuUmVzcG9uc2U+IHtcbiAgICByZXR1cm4gdGhpcy5jYWNoZUNsaWVudC5zZXRJZk5vdEV4aXN0cyh0aGlzLmNhY2hlTmFtZSwga2V5LCBmaWVsZCwgb3B0aW9ucyk7XG4gIH1cbiAgc2V0SWZBYnNlbnQoXG4gICAga2V5OiBzdHJpbmcgfCBVaW50OEFycmF5LFxuICAgIGZpZWxkOiBzdHJpbmcgfCBVaW50OEFycmF5LFxuICAgIG9wdGlvbnM/OiBTZXRJZkFic2VudE9wdGlvbnNcbiAgKTogUHJvbWlzZTxDYWNoZVNldElmQWJzZW50LlJlc3BvbnNlPiB7XG4gICAgcmV0dXJuIHRoaXMuY2FjaGVDbGllbnQuc2V0SWZBYnNlbnQodGhpcy5jYWNoZU5hbWUsIGtleSwgZmllbGQsIG9wdGlvbnMpO1xuICB9XG4gIHNldElmUHJlc2VudChcbiAgICBrZXk6IHN0cmluZyB8IFVpbnQ4QXJyYXksXG4gICAgdmFsdWU6IHN0cmluZyB8IFVpbnQ4QXJyYXksXG4gICAgb3B0aW9ucz86IFNldElmUHJlc2VudE9wdGlvbnNcbiAgKTogUHJvbWlzZTxDYWNoZVNldElmUHJlc2VudC5SZXNwb25zZT4ge1xuICAgIHJldHVybiB0aGlzLmNhY2hlQ2xpZW50LnNldElmUHJlc2VudCh0aGlzLmNhY2hlTmFtZSwga2V5LCB2YWx1ZSwgb3B0aW9ucyk7XG4gIH1cbiAgc2V0SWZFcXVhbChcbiAgICBrZXk6IHN0cmluZyB8IFVpbnQ4QXJyYXksXG4gICAgdmFsdWU6IHN0cmluZyB8IFVpbnQ4QXJyYXksXG4gICAgZXF1YWw6IHN0cmluZyB8IFVpbnQ4QXJyYXksXG4gICAgb3B0aW9ucz86IFNldElmRXF1YWxPcHRpb25zXG4gICk6IFByb21pc2U8Q2FjaGVTZXRJZkVxdWFsLlJlc3BvbnNlPiB7XG4gICAgcmV0dXJuIHRoaXMuY2FjaGVDbGllbnQuc2V0SWZFcXVhbChcbiAgICAgIHRoaXMuY2FjaGVOYW1lLFxuICAgICAga2V5LFxuICAgICAgdmFsdWUsXG4gICAgICBlcXVhbCxcbiAgICAgIG9wdGlvbnNcbiAgICApO1xuICB9XG4gIHNldElmTm90RXF1YWwoXG4gICAga2V5OiBzdHJpbmcgfCBVaW50OEFycmF5LFxuICAgIHZhbHVlOiBzdHJpbmcgfCBVaW50OEFycmF5LFxuICAgIG5vdEVxdWFsOiBzdHJpbmcgfCBVaW50OEFycmF5LFxuICAgIG9wdGlvbnM/OiBTZXRJZk5vdEVxdWFsT3B0aW9uc1xuICApOiBQcm9taXNlPENhY2hlU2V0SWZOb3RFcXVhbC5SZXNwb25zZT4ge1xuICAgIHJldHVybiB0aGlzLmNhY2hlQ2xpZW50LnNldElmTm90RXF1YWwoXG4gICAgICB0aGlzLmNhY2hlTmFtZSxcbiAgICAgIGtleSxcbiAgICAgIHZhbHVlLFxuICAgICAgbm90RXF1YWwsXG4gICAgICBvcHRpb25zXG4gICAgKTtcbiAgfVxuICBzZXRJZlByZXNlbnRBbmROb3RFcXVhbChcbiAgICBrZXk6IHN0cmluZyB8IFVpbnQ4QXJyYXksXG4gICAgdmFsdWU6IHN0cmluZyB8IFVpbnQ4QXJyYXksXG4gICAgbm90RXF1YWw6IHN0cmluZyB8IFVpbnQ4QXJyYXksXG4gICAgb3B0aW9ucz86IFNldElmUHJlc2VudEFuZE5vdEVxdWFsT3B0aW9uc1xuICApOiBQcm9taXNlPENhY2hlU2V0SWZQcmVzZW50QW5kTm90RXF1YWwuUmVzcG9uc2U+IHtcbiAgICByZXR1cm4gdGhpcy5jYWNoZUNsaWVudC5zZXRJZlByZXNlbnRBbmROb3RFcXVhbChcbiAgICAgIHRoaXMuY2FjaGVOYW1lLFxuICAgICAga2V5LFxuICAgICAgdmFsdWUsXG4gICAgICBub3RFcXVhbCxcbiAgICAgIG9wdGlvbnNcbiAgICApO1xuICB9XG4gIHNldElmQWJzZW50T3JFcXVhbChcbiAgICBrZXk6IHN0cmluZyB8IFVpbnQ4QXJyYXksXG4gICAgdmFsdWU6IHN0cmluZyB8IFVpbnQ4QXJyYXksXG4gICAgZXF1YWw6IHN0cmluZyB8IFVpbnQ4QXJyYXksXG4gICAgb3B0aW9ucz86IFNldElmQWJzZW50T3JFcXVhbE9wdGlvbnNcbiAgKTogUHJvbWlzZTxDYWNoZVNldElmQWJzZW50T3JFcXVhbC5SZXNwb25zZT4ge1xuICAgIHJldHVybiB0aGlzLmNhY2hlQ2xpZW50LnNldElmQWJzZW50T3JFcXVhbChcbiAgICAgIHRoaXMuY2FjaGVOYW1lLFxuICAgICAga2V5LFxuICAgICAgdmFsdWUsXG4gICAgICBlcXVhbCxcbiAgICAgIG9wdGlvbnNcbiAgICApO1xuICB9XG4gIHNldElmUHJlc2VudEFuZEhhc2hFcXVhbChcbiAgICBrZXk6IHN0cmluZyB8IFVpbnQ4QXJyYXksXG4gICAgdmFsdWU6IHN0cmluZyB8IFVpbnQ4QXJyYXksXG4gICAgaGFzaEVxdWFsOiBVaW50OEFycmF5LFxuICAgIG9wdGlvbnM/OiBTZXRJZlByZXNlbnRBbmRIYXNoRXF1YWxPcHRpb25zXG4gICk6IFByb21pc2U8Q2FjaGVTZXRJZlByZXNlbnRBbmRIYXNoRXF1YWwuUmVzcG9uc2U+IHtcbiAgICByZXR1cm4gdGhpcy5jYWNoZUNsaWVudC5zZXRJZlByZXNlbnRBbmRIYXNoRXF1YWwoXG4gICAgICB0aGlzLmNhY2hlTmFtZSxcbiAgICAgIGtleSxcbiAgICAgIHZhbHVlLFxuICAgICAgaGFzaEVxdWFsLFxuICAgICAgb3B0aW9uc1xuICAgICk7XG4gIH1cbiAgc2V0SWZQcmVzZW50QW5kSGFzaE5vdEVxdWFsKFxuICAgIGtleTogc3RyaW5nIHwgVWludDhBcnJheSxcbiAgICB2YWx1ZTogc3RyaW5nIHwgVWludDhBcnJheSxcbiAgICBoYXNoTm90RXF1YWw6IFVpbnQ4QXJyYXksXG4gICAgb3B0aW9ucz86IFNldElmUHJlc2VudEFuZEhhc2hOb3RFcXVhbE9wdGlvbnNcbiAgKTogUHJvbWlzZTxDYWNoZVNldElmUHJlc2VudEFuZEhhc2hOb3RFcXVhbC5SZXNwb25zZT4ge1xuICAgIHJldHVybiB0aGlzLmNhY2hlQ2xpZW50LnNldElmUHJlc2VudEFuZEhhc2hOb3RFcXVhbChcbiAgICAgIHRoaXMuY2FjaGVOYW1lLFxuICAgICAga2V5LFxuICAgICAgdmFsdWUsXG4gICAgICBoYXNoTm90RXF1YWwsXG4gICAgICBvcHRpb25zXG4gICAgKTtcbiAgfVxuICBzZXRJZkFic2VudE9ySGFzaEVxdWFsKFxuICAgIGtleTogc3RyaW5nIHwgVWludDhBcnJheSxcbiAgICB2YWx1ZTogc3RyaW5nIHwgVWludDhBcnJheSxcbiAgICBoYXNoRXF1YWw6IFVpbnQ4QXJyYXksXG4gICAgb3B0aW9ucz86IFNldElmQWJzZW50T3JIYXNoRXF1YWxPcHRpb25zXG4gICk6IFByb21pc2U8Q2FjaGVTZXRJZkFic2VudE9ySGFzaEVxdWFsLlJlc3BvbnNlPiB7XG4gICAgcmV0dXJuIHRoaXMuY2FjaGVDbGllbnQuc2V0SWZBYnNlbnRPckhhc2hFcXVhbChcbiAgICAgIHRoaXMuY2FjaGVOYW1lLFxuICAgICAga2V5LFxuICAgICAgdmFsdWUsXG4gICAgICBoYXNoRXF1YWwsXG4gICAgICBvcHRpb25zXG4gICAgKTtcbiAgfVxuICBzZXRJZkFic2VudE9ySGFzaE5vdEVxdWFsKFxuICAgIGtleTogc3RyaW5nIHwgVWludDhBcnJheSxcbiAgICB2YWx1ZTogc3RyaW5nIHwgVWludDhBcnJheSxcbiAgICBoYXNoTm90RXF1YWw6IFVpbnQ4QXJyYXksXG4gICAgb3B0aW9ucz86IFNldElmQWJzZW50T3JIYXNoTm90RXF1YWxPcHRpb25zXG4gICk6IFByb21pc2U8Q2FjaGVTZXRJZkFic2VudE9ySGFzaE5vdEVxdWFsLlJlc3BvbnNlPiB7XG4gICAgcmV0dXJuIHRoaXMuY2FjaGVDbGllbnQuc2V0SWZBYnNlbnRPckhhc2hOb3RFcXVhbChcbiAgICAgIHRoaXMuY2FjaGVOYW1lLFxuICAgICAga2V5LFxuICAgICAgdmFsdWUsXG4gICAgICBoYXNoTm90RXF1YWwsXG4gICAgICBvcHRpb25zXG4gICAgKTtcbiAgfVxuICBnZXRCYXRjaChrZXlzOiBzdHJpbmdbXSB8IFVpbnQ4QXJyYXlbXSk6IFByb21pc2U8Q2FjaGVHZXRCYXRjaC5SZXNwb25zZT4ge1xuICAgIHJldHVybiB0aGlzLmNhY2hlQ2xpZW50LmdldEJhdGNoKHRoaXMuY2FjaGVOYW1lLCBrZXlzKTtcbiAgfVxuICBzZXRCYXRjaChcbiAgICBpdGVtczpcbiAgICAgIHwgUmVjb3JkPHN0cmluZywgc3RyaW5nIHwgVWludDhBcnJheT5cbiAgICAgIHwgTWFwPHN0cmluZyB8IFVpbnQ4QXJyYXksIHN0cmluZyB8IFVpbnQ4QXJyYXk+XG4gICAgICB8IEFycmF5PFNldEJhdGNoSXRlbT4sXG4gICAgb3B0aW9ucz86IFNldEJhdGNoT3B0aW9uc1xuICApOiBQcm9taXNlPENhY2hlU2V0QmF0Y2guUmVzcG9uc2U+IHtcbiAgICByZXR1cm4gdGhpcy5jYWNoZUNsaWVudC5zZXRCYXRjaCh0aGlzLmNhY2hlTmFtZSwgaXRlbXMsIG9wdGlvbnMpO1xuICB9XG4gIHNldEZldGNoKHNldE5hbWU6IHN0cmluZyk6IFByb21pc2U8Q2FjaGVTZXRGZXRjaC5SZXNwb25zZT4ge1xuICAgIHJldHVybiB0aGlzLmNhY2hlQ2xpZW50LnNldEZldGNoKHRoaXMuY2FjaGVOYW1lLCBzZXROYW1lKTtcbiAgfVxuICBzZXRBZGRFbGVtZW50KFxuICAgIHNldE5hbWU6IHN0cmluZyxcbiAgICBlbGVtZW50OiBzdHJpbmcgfCBVaW50OEFycmF5LFxuICAgIG9wdGlvbnM/OiBTZXRBZGRFbGVtZW50T3B0aW9uc1xuICApOiBQcm9taXNlPENhY2hlU2V0QWRkRWxlbWVudC5SZXNwb25zZT4ge1xuICAgIHJldHVybiB0aGlzLmNhY2hlQ2xpZW50LnNldEFkZEVsZW1lbnQoXG4gICAgICB0aGlzLmNhY2hlTmFtZSxcbiAgICAgIHNldE5hbWUsXG4gICAgICBlbGVtZW50LFxuICAgICAgb3B0aW9uc1xuICAgICk7XG4gIH1cbiAgc2V0QWRkRWxlbWVudHMoXG4gICAgc2V0TmFtZTogc3RyaW5nLFxuICAgIGVsZW1lbnRzOiBzdHJpbmdbXSB8IFVpbnQ4QXJyYXlbXSxcbiAgICBvcHRpb25zPzogU2V0QWRkRWxlbWVudHNPcHRpb25zXG4gICk6IFByb21pc2U8Q2FjaGVTZXRBZGRFbGVtZW50cy5SZXNwb25zZT4ge1xuICAgIHJldHVybiB0aGlzLmNhY2hlQ2xpZW50LnNldEFkZEVsZW1lbnRzKFxuICAgICAgdGhpcy5jYWNoZU5hbWUsXG4gICAgICBzZXROYW1lLFxuICAgICAgZWxlbWVudHMsXG4gICAgICBvcHRpb25zXG4gICAgKTtcbiAgfVxuICBzZXRDb250YWluc0VsZW1lbnQoXG4gICAgc2V0TmFtZTogc3RyaW5nLFxuICAgIGVsZW1lbnQ6IHN0cmluZyB8IFVpbnQ4QXJyYXlcbiAgKTogUHJvbWlzZTxDYWNoZVNldENvbnRhaW5zRWxlbWVudC5SZXNwb25zZT4ge1xuICAgIHJldHVybiB0aGlzLmNhY2hlQ2xpZW50LnNldENvbnRhaW5zRWxlbWVudChcbiAgICAgIHRoaXMuY2FjaGVOYW1lLFxuICAgICAgc2V0TmFtZSxcbiAgICAgIGVsZW1lbnRcbiAgICApO1xuICB9XG4gIHNldENvbnRhaW5zRWxlbWVudHMoXG4gICAgc2V0TmFtZTogc3RyaW5nLFxuICAgIGVsZW1lbnRzOiBzdHJpbmdbXSB8IFVpbnQ4QXJyYXlbXVxuICApOiBQcm9taXNlPENhY2hlU2V0Q29udGFpbnNFbGVtZW50cy5SZXNwb25zZT4ge1xuICAgIHJldHVybiB0aGlzLmNhY2hlQ2xpZW50LnNldENvbnRhaW5zRWxlbWVudHMoXG4gICAgICB0aGlzLmNhY2hlTmFtZSxcbiAgICAgIHNldE5hbWUsXG4gICAgICBlbGVtZW50c1xuICAgICk7XG4gIH1cbiAgc2V0UmVtb3ZlRWxlbWVudChcbiAgICBzZXROYW1lOiBzdHJpbmcsXG4gICAgZWxlbWVudDogc3RyaW5nIHwgVWludDhBcnJheVxuICApOiBQcm9taXNlPENhY2hlU2V0UmVtb3ZlRWxlbWVudC5SZXNwb25zZT4ge1xuICAgIHJldHVybiB0aGlzLmNhY2hlQ2xpZW50LnNldFJlbW92ZUVsZW1lbnQodGhpcy5jYWNoZU5hbWUsIHNldE5hbWUsIGVsZW1lbnQpO1xuICB9XG4gIHNldFJlbW92ZUVsZW1lbnRzKFxuICAgIHNldE5hbWU6IHN0cmluZyxcbiAgICBlbGVtZW50czogc3RyaW5nW10gfCBVaW50OEFycmF5W11cbiAgKTogUHJvbWlzZTxDYWNoZVNldFJlbW92ZUVsZW1lbnRzLlJlc3BvbnNlPiB7XG4gICAgcmV0dXJuIHRoaXMuY2FjaGVDbGllbnQuc2V0UmVtb3ZlRWxlbWVudHMoXG4gICAgICB0aGlzLmNhY2hlTmFtZSxcbiAgICAgIHNldE5hbWUsXG4gICAgICBlbGVtZW50c1xuICAgICk7XG4gIH1cbiAgc2V0U2FtcGxlKHNldE5hbWU6IHN0cmluZywgbGltaXQ6IG51bWJlcik6IFByb21pc2U8Q2FjaGVTZXRTYW1wbGUuUmVzcG9uc2U+IHtcbiAgICByZXR1cm4gdGhpcy5jYWNoZUNsaWVudC5zZXRTYW1wbGUodGhpcy5jYWNoZU5hbWUsIHNldE5hbWUsIGxpbWl0KTtcbiAgfVxuICBzZXRQb3Aoc2V0TmFtZTogc3RyaW5nLCBjb3VudDogbnVtYmVyKTogUHJvbWlzZTxDYWNoZVNldFBvcC5SZXNwb25zZT4ge1xuICAgIHJldHVybiB0aGlzLmNhY2hlQ2xpZW50LnNldFBvcCh0aGlzLmNhY2hlTmFtZSwgc2V0TmFtZSwgY291bnQpO1xuICB9XG4gIHNldExlbmd0aChzZXROYW1lOiBzdHJpbmcpOiBQcm9taXNlPENhY2hlU2V0TGVuZ3RoLlJlc3BvbnNlPiB7XG4gICAgcmV0dXJuIHRoaXMuY2FjaGVDbGllbnQuc2V0TGVuZ3RoKHRoaXMuY2FjaGVOYW1lLCBzZXROYW1lKTtcbiAgfVxuICBsaXN0RmV0Y2goXG4gICAgbGlzdE5hbWU6IHN0cmluZyxcbiAgICBvcHRpb25zPzogTGlzdEZldGNoQ2FsbE9wdGlvbnNcbiAgKTogUHJvbWlzZTxDYWNoZUxpc3RGZXRjaC5SZXNwb25zZT4ge1xuICAgIHJldHVybiB0aGlzLmNhY2hlQ2xpZW50Lmxpc3RGZXRjaCh0aGlzLmNhY2hlTmFtZSwgbGlzdE5hbWUsIG9wdGlvbnMpO1xuICB9XG4gIGxpc3RMZW5ndGgobGlzdE5hbWU6IHN0cmluZyk6IFByb21pc2U8Q2FjaGVMaXN0TGVuZ3RoLlJlc3BvbnNlPiB7XG4gICAgcmV0dXJuIHRoaXMuY2FjaGVDbGllbnQubGlzdExlbmd0aCh0aGlzLmNhY2hlTmFtZSwgbGlzdE5hbWUpO1xuICB9XG4gIGxpc3RQdXNoRnJvbnQoXG4gICAgbGlzdE5hbWU6IHN0cmluZyxcbiAgICB2YWx1ZTogc3RyaW5nIHwgVWludDhBcnJheSxcbiAgICBvcHRpb25zPzogTGlzdFB1c2hGcm9udE9wdGlvbnNcbiAgKTogUHJvbWlzZTxDYWNoZUxpc3RQdXNoRnJvbnQuUmVzcG9uc2U+IHtcbiAgICByZXR1cm4gdGhpcy5jYWNoZUNsaWVudC5saXN0UHVzaEZyb250KFxuICAgICAgdGhpcy5jYWNoZU5hbWUsXG4gICAgICBsaXN0TmFtZSxcbiAgICAgIHZhbHVlLFxuICAgICAgb3B0aW9uc1xuICAgICk7XG4gIH1cbiAgbGlzdFB1c2hCYWNrKFxuICAgIGxpc3ROYW1lOiBzdHJpbmcsXG4gICAgdmFsdWU6IHN0cmluZyB8IFVpbnQ4QXJyYXksXG4gICAgb3B0aW9ucz86IExpc3RQdXNoQmFja09wdGlvbnNcbiAgKTogUHJvbWlzZTxDYWNoZUxpc3RQdXNoQmFjay5SZXNwb25zZT4ge1xuICAgIHJldHVybiB0aGlzLmNhY2hlQ2xpZW50Lmxpc3RQdXNoQmFjayhcbiAgICAgIHRoaXMuY2FjaGVOYW1lLFxuICAgICAgbGlzdE5hbWUsXG4gICAgICB2YWx1ZSxcbiAgICAgIG9wdGlvbnNcbiAgICApO1xuICB9XG4gIGxpc3RDb25jYXRlbmF0ZUJhY2soXG4gICAgbGlzdE5hbWU6IHN0cmluZyxcbiAgICB2YWx1ZXM6IHN0cmluZ1tdIHwgVWludDhBcnJheVtdLFxuICAgIG9wdGlvbnM/OiBMaXN0Q29uY2F0ZW5hdGVCYWNrT3B0aW9uc1xuICApOiBQcm9taXNlPENhY2hlTGlzdENvbmNhdGVuYXRlQmFjay5SZXNwb25zZT4ge1xuICAgIHJldHVybiB0aGlzLmNhY2hlQ2xpZW50Lmxpc3RDb25jYXRlbmF0ZUJhY2soXG4gICAgICB0aGlzLmNhY2hlTmFtZSxcbiAgICAgIGxpc3ROYW1lLFxuICAgICAgdmFsdWVzLFxuICAgICAgb3B0aW9uc1xuICAgICk7XG4gIH1cbiAgbGlzdENvbmNhdGVuYXRlRnJvbnQoXG4gICAgbGlzdE5hbWU6IHN0cmluZyxcbiAgICB2YWx1ZXM6IHN0cmluZ1tdIHwgVWludDhBcnJheVtdLFxuICAgIG9wdGlvbnM/OiBMaXN0Q29uY2F0ZW5hdGVGcm9udE9wdGlvbnNcbiAgKTogUHJvbWlzZTxDYWNoZUxpc3RDb25jYXRlbmF0ZUZyb250LlJlc3BvbnNlPiB7XG4gICAgcmV0dXJuIHRoaXMuY2FjaGVDbGllbnQubGlzdENvbmNhdGVuYXRlRnJvbnQoXG4gICAgICB0aGlzLmNhY2hlTmFtZSxcbiAgICAgIGxpc3ROYW1lLFxuICAgICAgdmFsdWVzLFxuICAgICAgb3B0aW9uc1xuICAgICk7XG4gIH1cbiAgbGlzdFBvcEJhY2sobGlzdE5hbWU6IHN0cmluZyk6IFByb21pc2U8Q2FjaGVMaXN0UG9wQmFjay5SZXNwb25zZT4ge1xuICAgIHJldHVybiB0aGlzLmNhY2hlQ2xpZW50Lmxpc3RQb3BCYWNrKHRoaXMuY2FjaGVOYW1lLCBsaXN0TmFtZSk7XG4gIH1cbiAgbGlzdFBvcEZyb250KGxpc3ROYW1lOiBzdHJpbmcpOiBQcm9taXNlPENhY2hlTGlzdFBvcEZyb250LlJlc3BvbnNlPiB7XG4gICAgcmV0dXJuIHRoaXMuY2FjaGVDbGllbnQubGlzdFBvcEZyb250KHRoaXMuY2FjaGVOYW1lLCBsaXN0TmFtZSk7XG4gIH1cbiAgbGlzdFJlbW92ZVZhbHVlKFxuICAgIGxpc3ROYW1lOiBzdHJpbmcsXG4gICAgdmFsdWU6IHN0cmluZyB8IFVpbnQ4QXJyYXlcbiAgKTogUHJvbWlzZTxDYWNoZUxpc3RSZW1vdmVWYWx1ZS5SZXNwb25zZT4ge1xuICAgIHJldHVybiB0aGlzLmNhY2hlQ2xpZW50Lmxpc3RSZW1vdmVWYWx1ZSh0aGlzLmNhY2hlTmFtZSwgbGlzdE5hbWUsIHZhbHVlKTtcbiAgfVxuICBsaXN0UmV0YWluKFxuICAgIGxpc3ROYW1lOiBzdHJpbmcsXG4gICAgb3B0aW9ucz86IExpc3RSZXRhaW5DYWxsT3B0aW9uc1xuICApOiBQcm9taXNlPENhY2hlTGlzdFJldGFpbi5SZXNwb25zZT4ge1xuICAgIHJldHVybiB0aGlzLmNhY2hlQ2xpZW50Lmxpc3RSZXRhaW4odGhpcy5jYWNoZU5hbWUsIGxpc3ROYW1lLCBvcHRpb25zKTtcbiAgfVxuICBkaWN0aW9uYXJ5U2V0RmllbGQoXG4gICAgZGljdGlvbmFyeU5hbWU6IHN0cmluZyxcbiAgICBmaWVsZDogc3RyaW5nIHwgVWludDhBcnJheSxcbiAgICB2YWx1ZTogc3RyaW5nIHwgVWludDhBcnJheSxcbiAgICBvcHRpb25zPzogRGljdGlvbmFyeVNldEZpZWxkT3B0aW9uc1xuICApOiBQcm9taXNlPENhY2hlRGljdGlvbmFyeVNldEZpZWxkLlJlc3BvbnNlPiB7XG4gICAgcmV0dXJuIHRoaXMuY2FjaGVDbGllbnQuZGljdGlvbmFyeVNldEZpZWxkKFxuICAgICAgdGhpcy5jYWNoZU5hbWUsXG4gICAgICBkaWN0aW9uYXJ5TmFtZSxcbiAgICAgIGZpZWxkLFxuICAgICAgdmFsdWUsXG4gICAgICBvcHRpb25zXG4gICAgKTtcbiAgfVxuICBkaWN0aW9uYXJ5U2V0RmllbGRzKFxuICAgIGRpY3Rpb25hcnlOYW1lOiBzdHJpbmcsXG4gICAgZWxlbWVudHM6XG4gICAgICB8IE1hcDxzdHJpbmcgfCBVaW50OEFycmF5LCBzdHJpbmcgfCBVaW50OEFycmF5PlxuICAgICAgfCBSZWNvcmQ8c3RyaW5nLCBzdHJpbmcgfCBVaW50OEFycmF5PixcbiAgICBvcHRpb25zPzogRGljdGlvbmFyeVNldEZpZWxkc09wdGlvbnNcbiAgKTogUHJvbWlzZTxDYWNoZURpY3Rpb25hcnlTZXRGaWVsZHMuUmVzcG9uc2U+IHtcbiAgICByZXR1cm4gdGhpcy5jYWNoZUNsaWVudC5kaWN0aW9uYXJ5U2V0RmllbGRzKFxuICAgICAgdGhpcy5jYWNoZU5hbWUsXG4gICAgICBkaWN0aW9uYXJ5TmFtZSxcbiAgICAgIGVsZW1lbnRzLFxuICAgICAgb3B0aW9uc1xuICAgICk7XG4gIH1cbiAgZGljdGlvbmFyeUdldEZpZWxkKFxuICAgIGRpY3Rpb25hcnlOYW1lOiBzdHJpbmcsXG4gICAgZmllbGQ6IHN0cmluZyB8IFVpbnQ4QXJyYXlcbiAgKTogUHJvbWlzZTxDYWNoZURpY3Rpb25hcnlHZXRGaWVsZC5SZXNwb25zZT4ge1xuICAgIHJldHVybiB0aGlzLmNhY2hlQ2xpZW50LmRpY3Rpb25hcnlHZXRGaWVsZChcbiAgICAgIHRoaXMuY2FjaGVOYW1lLFxuICAgICAgZGljdGlvbmFyeU5hbWUsXG4gICAgICBmaWVsZFxuICAgICk7XG4gIH1cbiAgZGljdGlvbmFyeUdldEZpZWxkcyhcbiAgICBkaWN0aW9uYXJ5TmFtZTogc3RyaW5nLFxuICAgIGZpZWxkczogc3RyaW5nW10gfCBVaW50OEFycmF5W11cbiAgKTogUHJvbWlzZTxDYWNoZURpY3Rpb25hcnlHZXRGaWVsZHMuUmVzcG9uc2U+IHtcbiAgICByZXR1cm4gdGhpcy5jYWNoZUNsaWVudC5kaWN0aW9uYXJ5R2V0RmllbGRzKFxuICAgICAgdGhpcy5jYWNoZU5hbWUsXG4gICAgICBkaWN0aW9uYXJ5TmFtZSxcbiAgICAgIGZpZWxkc1xuICAgICk7XG4gIH1cbiAgZGljdGlvbmFyeUZldGNoKFxuICAgIGRpY3Rpb25hcnlOYW1lOiBzdHJpbmdcbiAgKTogUHJvbWlzZTxDYWNoZURpY3Rpb25hcnlGZXRjaC5SZXNwb25zZT4ge1xuICAgIHJldHVybiB0aGlzLmNhY2hlQ2xpZW50LmRpY3Rpb25hcnlGZXRjaCh0aGlzLmNhY2hlTmFtZSwgZGljdGlvbmFyeU5hbWUpO1xuICB9XG4gIGRpY3Rpb25hcnlJbmNyZW1lbnQoXG4gICAgZGljdGlvbmFyeU5hbWU6IHN0cmluZyxcbiAgICBmaWVsZDogc3RyaW5nIHwgVWludDhBcnJheSxcbiAgICBhbW91bnQ/OiBudW1iZXIsXG4gICAgb3B0aW9ucz86IERpY3Rpb25hcnlJbmNyZW1lbnRPcHRpb25zXG4gICk6IFByb21pc2U8Q2FjaGVEaWN0aW9uYXJ5SW5jcmVtZW50LlJlc3BvbnNlPiB7XG4gICAgcmV0dXJuIHRoaXMuY2FjaGVDbGllbnQuZGljdGlvbmFyeUluY3JlbWVudChcbiAgICAgIHRoaXMuY2FjaGVOYW1lLFxuICAgICAgZGljdGlvbmFyeU5hbWUsXG4gICAgICBmaWVsZCxcbiAgICAgIGFtb3VudCxcbiAgICAgIG9wdGlvbnNcbiAgICApO1xuICB9XG4gIGRpY3Rpb25hcnlSZW1vdmVGaWVsZChcbiAgICBkaWN0aW9uYXJ5TmFtZTogc3RyaW5nLFxuICAgIGZpZWxkOiBzdHJpbmcgfCBVaW50OEFycmF5XG4gICk6IFByb21pc2U8Q2FjaGVEaWN0aW9uYXJ5UmVtb3ZlRmllbGQuUmVzcG9uc2U+IHtcbiAgICByZXR1cm4gdGhpcy5jYWNoZUNsaWVudC5kaWN0aW9uYXJ5UmVtb3ZlRmllbGQoXG4gICAgICB0aGlzLmNhY2hlTmFtZSxcbiAgICAgIGRpY3Rpb25hcnlOYW1lLFxuICAgICAgZmllbGRcbiAgICApO1xuICB9XG4gIGRpY3Rpb25hcnlSZW1vdmVGaWVsZHMoXG4gICAgZGljdGlvbmFyeU5hbWU6IHN0cmluZyxcbiAgICBmaWVsZHM6IHN0cmluZ1tdIHwgVWludDhBcnJheVtdXG4gICk6IFByb21pc2U8Q2FjaGVEaWN0aW9uYXJ5UmVtb3ZlRmllbGRzLlJlc3BvbnNlPiB7XG4gICAgcmV0dXJuIHRoaXMuY2FjaGVDbGllbnQuZGljdGlvbmFyeVJlbW92ZUZpZWxkcyhcbiAgICAgIHRoaXMuY2FjaGVOYW1lLFxuICAgICAgZGljdGlvbmFyeU5hbWUsXG4gICAgICBmaWVsZHNcbiAgICApO1xuICB9XG5cbiAgZGljdGlvbmFyeUxlbmd0aChcbiAgICBkaWN0aW9uYXJ5TmFtZTogc3RyaW5nXG4gICk6IFByb21pc2U8Q2FjaGVEaWN0aW9uYXJ5TGVuZ3RoLlJlc3BvbnNlPiB7XG4gICAgcmV0dXJuIHRoaXMuY2FjaGVDbGllbnQuZGljdGlvbmFyeUxlbmd0aCh0aGlzLmNhY2hlTmFtZSwgZGljdGlvbmFyeU5hbWUpO1xuICB9XG5cbiAgc29ydGVkU2V0RmV0Y2hCeVJhbmsoXG4gICAgc29ydGVkU2V0TmFtZTogc3RyaW5nLFxuICAgIG9wdGlvbnM/OiBTb3J0ZWRTZXRGZXRjaEJ5UmFua09wdGlvbnNcbiAgKTogUHJvbWlzZTxDYWNoZVNvcnRlZFNldEZldGNoLlJlc3BvbnNlPiB7XG4gICAgcmV0dXJuIHRoaXMuY2FjaGVDbGllbnQuc29ydGVkU2V0RmV0Y2hCeVJhbmsoXG4gICAgICB0aGlzLmNhY2hlTmFtZSxcbiAgICAgIHNvcnRlZFNldE5hbWUsXG4gICAgICBvcHRpb25zXG4gICAgKTtcbiAgfVxuICBzb3J0ZWRTZXRGZXRjaEJ5U2NvcmUoXG4gICAgc29ydGVkU2V0TmFtZTogc3RyaW5nLFxuICAgIG9wdGlvbnM/OiBTb3J0ZWRTZXRGZXRjaEJ5U2NvcmVPcHRpb25zXG4gICk6IFByb21pc2U8Q2FjaGVTb3J0ZWRTZXRGZXRjaC5SZXNwb25zZT4ge1xuICAgIHJldHVybiB0aGlzLmNhY2hlQ2xpZW50LnNvcnRlZFNldEZldGNoQnlTY29yZShcbiAgICAgIHRoaXMuY2FjaGVOYW1lLFxuICAgICAgc29ydGVkU2V0TmFtZSxcbiAgICAgIG9wdGlvbnNcbiAgICApO1xuICB9XG4gIHNvcnRlZFNldFB1dEVsZW1lbnQoXG4gICAgc29ydGVkU2V0TmFtZTogc3RyaW5nLFxuICAgIHZhbHVlOiBzdHJpbmcgfCBVaW50OEFycmF5LFxuICAgIHNjb3JlOiBudW1iZXIsXG4gICAgb3B0aW9ucz86IFNvcnRlZFNldFB1dEVsZW1lbnRPcHRpb25zXG4gICk6IFByb21pc2U8Q2FjaGVTb3J0ZWRTZXRQdXRFbGVtZW50LlJlc3BvbnNlPiB7XG4gICAgcmV0dXJuIHRoaXMuY2FjaGVDbGllbnQuc29ydGVkU2V0UHV0RWxlbWVudChcbiAgICAgIHRoaXMuY2FjaGVOYW1lLFxuICAgICAgc29ydGVkU2V0TmFtZSxcbiAgICAgIHZhbHVlLFxuICAgICAgc2NvcmUsXG4gICAgICBvcHRpb25zXG4gICAgKTtcbiAgfVxuICBzb3J0ZWRTZXRQdXRFbGVtZW50cyhcbiAgICBzb3J0ZWRTZXROYW1lOiBzdHJpbmcsXG4gICAgZWxlbWVudHM6IE1hcDxzdHJpbmcgfCBVaW50OEFycmF5LCBudW1iZXI+IHwgUmVjb3JkPHN0cmluZywgbnVtYmVyPixcbiAgICBvcHRpb25zPzogU29ydGVkU2V0UHV0RWxlbWVudHNPcHRpb25zXG4gICk6IFByb21pc2U8Q2FjaGVTb3J0ZWRTZXRQdXRFbGVtZW50cy5SZXNwb25zZT4ge1xuICAgIHJldHVybiB0aGlzLmNhY2hlQ2xpZW50LnNvcnRlZFNldFB1dEVsZW1lbnRzKFxuICAgICAgdGhpcy5jYWNoZU5hbWUsXG4gICAgICBzb3J0ZWRTZXROYW1lLFxuICAgICAgZWxlbWVudHMsXG4gICAgICBvcHRpb25zXG4gICAgKTtcbiAgfVxuICBzb3J0ZWRTZXRHZXRSYW5rKFxuICAgIHNvcnRlZFNldE5hbWU6IHN0cmluZyxcbiAgICB2YWx1ZTogc3RyaW5nIHwgVWludDhBcnJheVxuICApOiBQcm9taXNlPENhY2hlU29ydGVkU2V0R2V0UmFuay5SZXNwb25zZT4ge1xuICAgIHJldHVybiB0aGlzLmNhY2hlQ2xpZW50LnNvcnRlZFNldEdldFJhbmsoXG4gICAgICB0aGlzLmNhY2hlTmFtZSxcbiAgICAgIHNvcnRlZFNldE5hbWUsXG4gICAgICB2YWx1ZVxuICAgICk7XG4gIH1cbiAgc29ydGVkU2V0R2V0U2NvcmUoXG4gICAgc29ydGVkU2V0TmFtZTogc3RyaW5nLFxuICAgIHZhbHVlOiBzdHJpbmcgfCBVaW50OEFycmF5XG4gICk6IFByb21pc2U8Q2FjaGVTb3J0ZWRTZXRHZXRTY29yZS5SZXNwb25zZT4ge1xuICAgIHJldHVybiB0aGlzLmNhY2hlQ2xpZW50LnNvcnRlZFNldEdldFNjb3JlKFxuICAgICAgdGhpcy5jYWNoZU5hbWUsXG4gICAgICBzb3J0ZWRTZXROYW1lLFxuICAgICAgdmFsdWVcbiAgICApO1xuICB9XG4gIHNvcnRlZFNldEdldFNjb3JlcyhcbiAgICBzb3J0ZWRTZXROYW1lOiBzdHJpbmcsXG4gICAgdmFsdWVzOiBzdHJpbmdbXSB8IFVpbnQ4QXJyYXlbXVxuICApOiBQcm9taXNlPENhY2hlU29ydGVkU2V0R2V0U2NvcmVzLlJlc3BvbnNlPiB7XG4gICAgcmV0dXJuIHRoaXMuY2FjaGVDbGllbnQuc29ydGVkU2V0R2V0U2NvcmVzKFxuICAgICAgdGhpcy5jYWNoZU5hbWUsXG4gICAgICBzb3J0ZWRTZXROYW1lLFxuICAgICAgdmFsdWVzXG4gICAgKTtcbiAgfVxuICBzb3J0ZWRTZXRJbmNyZW1lbnRTY29yZShcbiAgICBzb3J0ZWRTZXROYW1lOiBzdHJpbmcsXG4gICAgdmFsdWU6IHN0cmluZyB8IFVpbnQ4QXJyYXksXG4gICAgYW1vdW50PzogbnVtYmVyLFxuICAgIG9wdGlvbnM/OiBTb3J0ZWRTZXRJbmNyZW1lbnRPcHRpb25zXG4gICk6IFByb21pc2U8Q2FjaGVTb3J0ZWRTZXRJbmNyZW1lbnRTY29yZS5SZXNwb25zZT4ge1xuICAgIHJldHVybiB0aGlzLmNhY2hlQ2xpZW50LnNvcnRlZFNldEluY3JlbWVudFNjb3JlKFxuICAgICAgdGhpcy5jYWNoZU5hbWUsXG4gICAgICBzb3J0ZWRTZXROYW1lLFxuICAgICAgdmFsdWUsXG4gICAgICBhbW91bnQsXG4gICAgICBvcHRpb25zXG4gICAgKTtcbiAgfVxuICBzb3J0ZWRTZXRSZW1vdmVFbGVtZW50KFxuICAgIHNvcnRlZFNldE5hbWU6IHN0cmluZyxcbiAgICB2YWx1ZTogc3RyaW5nIHwgVWludDhBcnJheVxuICApOiBQcm9taXNlPENhY2hlU29ydGVkU2V0UmVtb3ZlRWxlbWVudC5SZXNwb25zZT4ge1xuICAgIHJldHVybiB0aGlzLmNhY2hlQ2xpZW50LnNvcnRlZFNldFJlbW92ZUVsZW1lbnQoXG4gICAgICB0aGlzLmNhY2hlTmFtZSxcbiAgICAgIHNvcnRlZFNldE5hbWUsXG4gICAgICB2YWx1ZVxuICAgICk7XG4gIH1cbiAgc29ydGVkU2V0UmVtb3ZlRWxlbWVudHMoXG4gICAgc29ydGVkU2V0TmFtZTogc3RyaW5nLFxuICAgIHZhbHVlczogc3RyaW5nW10gfCBVaW50OEFycmF5W11cbiAgKTogUHJvbWlzZTxDYWNoZVNvcnRlZFNldFJlbW92ZUVsZW1lbnRzLlJlc3BvbnNlPiB7XG4gICAgcmV0dXJuIHRoaXMuY2FjaGVDbGllbnQuc29ydGVkU2V0UmVtb3ZlRWxlbWVudHMoXG4gICAgICB0aGlzLmNhY2hlTmFtZSxcbiAgICAgIHNvcnRlZFNldE5hbWUsXG4gICAgICB2YWx1ZXNcbiAgICApO1xuICB9XG4gIHNvcnRlZFNldExlbmd0aChcbiAgICBzb3J0ZWRTZXROYW1lOiBzdHJpbmdcbiAgKTogUHJvbWlzZTxDYWNoZVNvcnRlZFNldExlbmd0aC5SZXNwb25zZT4ge1xuICAgIHJldHVybiB0aGlzLmNhY2hlQ2xpZW50LnNvcnRlZFNldExlbmd0aCh0aGlzLmNhY2hlTmFtZSwgc29ydGVkU2V0TmFtZSk7XG4gIH1cbiAgc29ydGVkU2V0TGVuZ3RoQnlTY29yZShcbiAgICBzb3J0ZWRTZXROYW1lOiBzdHJpbmcsXG4gICAgb3B0aW9ucz86IFNvcnRlZFNldExlbmd0aEJ5U2NvcmVPcHRpb25zXG4gICk6IFByb21pc2U8Q2FjaGVTb3J0ZWRTZXRMZW5ndGhCeVNjb3JlLlJlc3BvbnNlPiB7XG4gICAgcmV0dXJuIHRoaXMuY2FjaGVDbGllbnQuc29ydGVkU2V0TGVuZ3RoQnlTY29yZShcbiAgICAgIHRoaXMuY2FjaGVOYW1lLFxuICAgICAgc29ydGVkU2V0TmFtZSxcbiAgICAgIG9wdGlvbnNcbiAgICApO1xuICB9XG4gIHNvcnRlZFNldFVuaW9uU3RvcmUoXG4gICAgc29ydGVkU2V0TmFtZTogc3RyaW5nLFxuICAgIHNvdXJjZXM6IFNvcnRlZFNldFNvdXJjZVtdLFxuICAgIG9wdGlvbnM/OiBTb3J0ZWRTZXRVbmlvblN0b3JlT3B0aW9uc1xuICApOiBQcm9taXNlPENhY2hlU29ydGVkU2V0VW5pb25TdG9yZS5SZXNwb25zZT4ge1xuICAgIHJldHVybiB0aGlzLmNhY2hlQ2xpZW50LnNvcnRlZFNldFVuaW9uU3RvcmUoXG4gICAgICB0aGlzLmNhY2hlTmFtZSxcbiAgICAgIHNvcnRlZFNldE5hbWUsXG4gICAgICBzb3VyY2VzLFxuICAgICAgb3B0aW9uc1xuICAgICk7XG4gIH1cbiAgaXRlbUdldFR5cGUoa2V5OiBzdHJpbmcgfCBVaW50OEFycmF5KTogUHJvbWlzZTxDYWNoZUl0ZW1HZXRUeXBlLlJlc3BvbnNlPiB7XG4gICAgcmV0dXJuIHRoaXMuY2FjaGVDbGllbnQuaXRlbUdldFR5cGUodGhpcy5jYWNoZU5hbWUsIGtleSk7XG4gIH1cbiAgaXRlbUdldFR0bChrZXk6IHN0cmluZyB8IFVpbnQ4QXJyYXkpOiBQcm9taXNlPENhY2hlSXRlbUdldFR0bC5SZXNwb25zZT4ge1xuICAgIHJldHVybiB0aGlzLmNhY2hlQ2xpZW50Lml0ZW1HZXRUdGwodGhpcy5jYWNoZU5hbWUsIGtleSk7XG4gIH1cbiAga2V5RXhpc3RzKGtleTogc3RyaW5nIHwgVWludDhBcnJheSk6IFByb21pc2U8Q2FjaGVLZXlFeGlzdHMuUmVzcG9uc2U+IHtcbiAgICByZXR1cm4gdGhpcy5jYWNoZUNsaWVudC5rZXlFeGlzdHModGhpcy5jYWNoZU5hbWUsIGtleSk7XG4gIH1cbiAga2V5c0V4aXN0KGtleXM6IHN0cmluZ1tdIHwgVWludDhBcnJheVtdKTogUHJvbWlzZTxDYWNoZUtleXNFeGlzdC5SZXNwb25zZT4ge1xuICAgIHJldHVybiB0aGlzLmNhY2hlQ2xpZW50LmtleXNFeGlzdCh0aGlzLmNhY2hlTmFtZSwga2V5cyk7XG4gIH1cbiAgdXBkYXRlVHRsKFxuICAgIGtleTogc3RyaW5nIHwgVWludDhBcnJheSxcbiAgICB0dGxNaWxsaXNlY29uZHM6IG51bWJlclxuICApOiBQcm9taXNlPENhY2hlVXBkYXRlVHRsLlJlc3BvbnNlPiB7XG4gICAgcmV0dXJuIHRoaXMuY2FjaGVDbGllbnQudXBkYXRlVHRsKHRoaXMuY2FjaGVOYW1lLCBrZXksIHR0bE1pbGxpc2Vjb25kcyk7XG4gIH1cbiAgaW5jcmVhc2VUdGwoXG4gICAga2V5OiBzdHJpbmcgfCBVaW50OEFycmF5LFxuICAgIHR0bE1pbGxpc2Vjb25kczogbnVtYmVyXG4gICk6IFByb21pc2U8Q2FjaGVJbmNyZWFzZVR0bC5SZXNwb25zZT4ge1xuICAgIHJldHVybiB0aGlzLmNhY2hlQ2xpZW50LmluY3JlYXNlVHRsKHRoaXMuY2FjaGVOYW1lLCBrZXksIHR0bE1pbGxpc2Vjb25kcyk7XG4gIH1cbiAgZGVjcmVhc2VUdGwoXG4gICAga2V5OiBzdHJpbmcgfCBVaW50OEFycmF5LFxuICAgIHR0bE1pbGxpc2Vjb25kczogbnVtYmVyXG4gICk6IFByb21pc2U8Q2FjaGVEZWNyZWFzZVR0bC5SZXNwb25zZT4ge1xuICAgIHJldHVybiB0aGlzLmNhY2hlQ2xpZW50LmRlY3JlYXNlVHRsKHRoaXMuY2FjaGVOYW1lLCBrZXksIHR0bE1pbGxpc2Vjb25kcyk7XG4gIH1cbiAgY2xvc2UoKSB7XG4gICAgdGhpcy5jYWNoZUNsaWVudC5jbG9zZSgpO1xuICB9XG59XG4iXX0=
|
@@ -0,0 +1,76 @@
|
|
1
|
+
import { SdkError } from '../../errors';
|
2
|
+
import { BaseResponseError, BaseResponseMiss, ResponseBase } from './response-base';
|
3
|
+
import { CacheGetWithHashResponse } from './enums';
|
4
|
+
interface IResponse {
|
5
|
+
value(): string | undefined;
|
6
|
+
hash(): string | undefined;
|
7
|
+
readonly type: CacheGetWithHashResponse;
|
8
|
+
}
|
9
|
+
/**
|
10
|
+
* Indicates that the requested data was successfully retrieved from the cache. Provides
|
11
|
+
* `value*` and `hash*` accessors to retrieve the data in the appropriate format.
|
12
|
+
*/
|
13
|
+
export declare class Hit extends ResponseBase implements IResponse {
|
14
|
+
readonly type: CacheGetWithHashResponse.Hit;
|
15
|
+
private readonly _value;
|
16
|
+
private readonly _hash;
|
17
|
+
constructor(value: Uint8Array, hash: Uint8Array);
|
18
|
+
/**
|
19
|
+
* Returns the data as a utf-8 string, decoded from the underlying byte array.
|
20
|
+
* @returns string
|
21
|
+
*/
|
22
|
+
value(): string;
|
23
|
+
/**
|
24
|
+
* Returns the hash of the data as a utf-8 string, decoded from the underlying byte array.
|
25
|
+
* @returns string
|
26
|
+
*/
|
27
|
+
hash(): string;
|
28
|
+
/**
|
29
|
+
* Returns the data as a utf-8 string, decoded from the underlying byte array.
|
30
|
+
* @returns string
|
31
|
+
*/
|
32
|
+
valueString(): string;
|
33
|
+
/**
|
34
|
+
* Returns the data as a byte array.
|
35
|
+
* @returns {Uint8Array}
|
36
|
+
*/
|
37
|
+
valueUint8Array(): Uint8Array;
|
38
|
+
/**
|
39
|
+
* Returns the hash of the data as a utf-8 string, decoded from the underlying byte array.
|
40
|
+
* @returns string
|
41
|
+
*/
|
42
|
+
hashString(): string;
|
43
|
+
/**
|
44
|
+
* Returns the hash of the data as a byte array.
|
45
|
+
* @returns {Uint8Array}
|
46
|
+
*/
|
47
|
+
hashUint8Array(): Uint8Array;
|
48
|
+
toString(): string;
|
49
|
+
}
|
50
|
+
/**
|
51
|
+
* Indicates that the requested data was not available in the cache.
|
52
|
+
*/
|
53
|
+
export declare class Miss extends BaseResponseMiss implements IResponse {
|
54
|
+
readonly type: CacheGetWithHashResponse.Miss;
|
55
|
+
constructor();
|
56
|
+
value(): undefined;
|
57
|
+
hash(): undefined;
|
58
|
+
}
|
59
|
+
/**
|
60
|
+
* Indicates that an error occurred during the cache get request.
|
61
|
+
*
|
62
|
+
* This response object includes the following fields that you can use to determine
|
63
|
+
* how you would like to handle the error:
|
64
|
+
*
|
65
|
+
* - `errorCode()` - a unique Momento error code indicating the type of error that occurred.
|
66
|
+
* - `message()` - a human-readable description of the error
|
67
|
+
* - `innerException()` - the original error that caused the failure; can be re-thrown.
|
68
|
+
*/
|
69
|
+
export declare class Error extends BaseResponseError implements IResponse {
|
70
|
+
readonly type: CacheGetWithHashResponse.Error;
|
71
|
+
constructor(_innerException: SdkError);
|
72
|
+
value(): undefined;
|
73
|
+
hash(): undefined;
|
74
|
+
}
|
75
|
+
export type Response = Hit | Miss | Error;
|
76
|
+
export {};
|
@@ -0,0 +1,107 @@
|
|
1
|
+
"use strict";
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
3
|
+
exports.Error = exports.Miss = exports.Hit = void 0;
|
4
|
+
const response_base_1 = require("./response-base");
|
5
|
+
const utils_1 = require("../../internal/utils");
|
6
|
+
const enums_1 = require("./enums");
|
7
|
+
const TEXT_DECODER = new TextDecoder();
|
8
|
+
/**
|
9
|
+
* Indicates that the requested data was successfully retrieved from the cache. Provides
|
10
|
+
* `value*` and `hash*` accessors to retrieve the data in the appropriate format.
|
11
|
+
*/
|
12
|
+
class Hit extends response_base_1.ResponseBase {
|
13
|
+
constructor(value, hash) {
|
14
|
+
super();
|
15
|
+
this.type = enums_1.CacheGetWithHashResponse.Hit;
|
16
|
+
this._value = value;
|
17
|
+
this._hash = hash;
|
18
|
+
}
|
19
|
+
/**
|
20
|
+
* Returns the data as a utf-8 string, decoded from the underlying byte array.
|
21
|
+
* @returns string
|
22
|
+
*/
|
23
|
+
value() {
|
24
|
+
return TEXT_DECODER.decode(this._value);
|
25
|
+
}
|
26
|
+
/**
|
27
|
+
* Returns the hash of the data as a utf-8 string, decoded from the underlying byte array.
|
28
|
+
* @returns string
|
29
|
+
*/
|
30
|
+
hash() {
|
31
|
+
return TEXT_DECODER.decode(this._hash);
|
32
|
+
}
|
33
|
+
/**
|
34
|
+
* Returns the data as a utf-8 string, decoded from the underlying byte array.
|
35
|
+
* @returns string
|
36
|
+
*/
|
37
|
+
valueString() {
|
38
|
+
return TEXT_DECODER.decode(this._value);
|
39
|
+
}
|
40
|
+
/**
|
41
|
+
* Returns the data as a byte array.
|
42
|
+
* @returns {Uint8Array}
|
43
|
+
*/
|
44
|
+
valueUint8Array() {
|
45
|
+
return this._value;
|
46
|
+
}
|
47
|
+
/**
|
48
|
+
* Returns the hash of the data as a utf-8 string, decoded from the underlying byte array.
|
49
|
+
* @returns string
|
50
|
+
*/
|
51
|
+
hashString() {
|
52
|
+
return TEXT_DECODER.decode(this._hash);
|
53
|
+
}
|
54
|
+
/**
|
55
|
+
* Returns the hash of the data as a byte array.
|
56
|
+
* @returns {Uint8Array}
|
57
|
+
*/
|
58
|
+
hashUint8Array() {
|
59
|
+
return this._hash;
|
60
|
+
}
|
61
|
+
toString() {
|
62
|
+
const displayValue = (0, utils_1.truncateString)(this.valueString());
|
63
|
+
const displayHash = (0, utils_1.truncateString)(this.hashString());
|
64
|
+
return `${super.toString()}: value=${displayValue}, hash=${displayHash}`;
|
65
|
+
}
|
66
|
+
}
|
67
|
+
exports.Hit = Hit;
|
68
|
+
/**
|
69
|
+
* Indicates that the requested data was not available in the cache.
|
70
|
+
*/
|
71
|
+
class Miss extends response_base_1.BaseResponseMiss {
|
72
|
+
constructor() {
|
73
|
+
super();
|
74
|
+
this.type = enums_1.CacheGetWithHashResponse.Miss;
|
75
|
+
}
|
76
|
+
value() {
|
77
|
+
return undefined;
|
78
|
+
}
|
79
|
+
hash() {
|
80
|
+
return undefined;
|
81
|
+
}
|
82
|
+
}
|
83
|
+
exports.Miss = Miss;
|
84
|
+
/**
|
85
|
+
* Indicates that an error occurred during the cache get request.
|
86
|
+
*
|
87
|
+
* This response object includes the following fields that you can use to determine
|
88
|
+
* how you would like to handle the error:
|
89
|
+
*
|
90
|
+
* - `errorCode()` - a unique Momento error code indicating the type of error that occurred.
|
91
|
+
* - `message()` - a human-readable description of the error
|
92
|
+
* - `innerException()` - the original error that caused the failure; can be re-thrown.
|
93
|
+
*/
|
94
|
+
class Error extends response_base_1.BaseResponseError {
|
95
|
+
constructor(_innerException) {
|
96
|
+
super(_innerException);
|
97
|
+
this.type = enums_1.CacheGetWithHashResponse.Error;
|
98
|
+
}
|
99
|
+
value() {
|
100
|
+
return undefined;
|
101
|
+
}
|
102
|
+
hash() {
|
103
|
+
return undefined;
|
104
|
+
}
|
105
|
+
}
|
106
|
+
exports.Error = Error;
|
107
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FjaGUtZ2V0LXdpdGgtaGFzaC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9tZXNzYWdlcy9yZXNwb25zZXMvY2FjaGUtZ2V0LXdpdGgtaGFzaC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFDQSxtREFJeUI7QUFDekIsZ0RBQW9EO0FBQ3BELG1DQUFpRDtBQUVqRCxNQUFNLFlBQVksR0FBRyxJQUFJLFdBQVcsRUFBRSxDQUFDO0FBUXZDOzs7R0FHRztBQUNILE1BQWEsR0FBSSxTQUFRLDRCQUFZO0lBSW5DLFlBQVksS0FBaUIsRUFBRSxJQUFnQjtRQUM3QyxLQUFLLEVBQUUsQ0FBQztRQUpELFNBQUksR0FBaUMsZ0NBQXdCLENBQUMsR0FBRyxDQUFDO1FBS3pFLElBQUksQ0FBQyxNQUFNLEdBQUcsS0FBSyxDQUFDO1FBQ3BCLElBQUksQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDO0lBQ3BCLENBQUM7SUFFRDs7O09BR0c7SUFDSSxLQUFLO1FBQ1YsT0FBTyxZQUFZLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUMxQyxDQUFDO0lBQ0Q7OztPQUdHO0lBQ0ksSUFBSTtRQUNULE9BQU8sWUFBWSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDekMsQ0FBQztJQUVEOzs7T0FHRztJQUNJLFdBQVc7UUFDaEIsT0FBTyxZQUFZLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUMxQyxDQUFDO0lBRUQ7OztPQUdHO0lBQ0ksZUFBZTtRQUNwQixPQUFPLElBQUksQ0FBQyxNQUFNLENBQUM7SUFDckIsQ0FBQztJQUVEOzs7T0FHRztJQUNJLFVBQVU7UUFDZixPQUFPLFlBQVksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ3pDLENBQUM7SUFFRDs7O09BR0c7SUFDSSxjQUFjO1FBQ25CLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQztJQUNwQixDQUFDO0lBRWUsUUFBUTtRQUN0QixNQUFNLFlBQVksR0FBRyxJQUFBLHNCQUFjLEVBQUMsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDLENBQUM7UUFDeEQsTUFBTSxXQUFXLEdBQUcsSUFBQSxzQkFBYyxFQUFDLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQyxDQUFDO1FBQ3RELE9BQU8sR0FBRyxLQUFLLENBQUMsUUFBUSxFQUFFLFdBQVcsWUFBWSxVQUFVLFdBQVcsRUFBRSxDQUFDO0lBQzNFLENBQUM7Q0FDRjtBQTlERCxrQkE4REM7QUFFRDs7R0FFRztBQUNILE1BQWEsSUFBSyxTQUFRLGdDQUFnQjtJQUd4QztRQUNFLEtBQUssRUFBRSxDQUFDO1FBSEQsU0FBSSxHQUFrQyxnQ0FBd0IsQ0FBQyxJQUFJLENBQUM7SUFJN0UsQ0FBQztJQUVELEtBQUs7UUFDSCxPQUFPLFNBQVMsQ0FBQztJQUNuQixDQUFDO0lBRUQsSUFBSTtRQUNGLE9BQU8sU0FBUyxDQUFDO0lBQ25CLENBQUM7Q0FDRjtBQWRELG9CQWNDO0FBRUQ7Ozs7Ozs7OztHQVNHO0FBQ0gsTUFBYSxLQUFNLFNBQVEsaUNBQWlCO0lBRzFDLFlBQVksZUFBeUI7UUFDbkMsS0FBSyxDQUFDLGVBQWUsQ0FBQyxDQUFDO1FBSGhCLFNBQUksR0FDWCxnQ0FBd0IsQ0FBQyxLQUFLLENBQUM7SUFHakMsQ0FBQztJQUVELEtBQUs7UUFDSCxPQUFPLFNBQVMsQ0FBQztJQUNuQixDQUFDO0lBRUQsSUFBSTtRQUNGLE9BQU8sU0FBUyxDQUFDO0lBQ25CLENBQUM7Q0FDRjtBQWRELHNCQWNDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtTZGtFcnJvcn0gZnJvbSAnLi4vLi4vZXJyb3JzJztcbmltcG9ydCB7XG4gIEJhc2VSZXNwb25zZUVycm9yLFxuICBCYXNlUmVzcG9uc2VNaXNzLFxuICBSZXNwb25zZUJhc2UsXG59IGZyb20gJy4vcmVzcG9uc2UtYmFzZSc7XG5pbXBvcnQge3RydW5jYXRlU3RyaW5nfSBmcm9tICcuLi8uLi9pbnRlcm5hbC91dGlscyc7XG5pbXBvcnQge0NhY2hlR2V0V2l0aEhhc2hSZXNwb25zZX0gZnJvbSAnLi9lbnVtcyc7XG5cbmNvbnN0IFRFWFRfREVDT0RFUiA9IG5ldyBUZXh0RGVjb2RlcigpO1xuXG5pbnRlcmZhY2UgSVJlc3BvbnNlIHtcbiAgdmFsdWUoKTogc3RyaW5nIHwgdW5kZWZpbmVkO1xuICBoYXNoKCk6IHN0cmluZyB8IHVuZGVmaW5lZDtcbiAgcmVhZG9ubHkgdHlwZTogQ2FjaGVHZXRXaXRoSGFzaFJlc3BvbnNlO1xufVxuXG4vKipcbiAqIEluZGljYXRlcyB0aGF0IHRoZSByZXF1ZXN0ZWQgZGF0YSB3YXMgc3VjY2Vzc2Z1bGx5IHJldHJpZXZlZCBmcm9tIHRoZSBjYWNoZS4gIFByb3ZpZGVzXG4gKiBgdmFsdWUqYCBhbmQgYGhhc2gqYCBhY2Nlc3NvcnMgdG8gcmV0cmlldmUgdGhlIGRhdGEgaW4gdGhlIGFwcHJvcHJpYXRlIGZvcm1hdC5cbiAqL1xuZXhwb3J0IGNsYXNzIEhpdCBleHRlbmRzIFJlc3BvbnNlQmFzZSBpbXBsZW1lbnRzIElSZXNwb25zZSB7XG4gIHJlYWRvbmx5IHR5cGU6IENhY2hlR2V0V2l0aEhhc2hSZXNwb25zZS5IaXQgPSBDYWNoZUdldFdpdGhIYXNoUmVzcG9uc2UuSGl0O1xuICBwcml2YXRlIHJlYWRvbmx5IF92YWx1ZTogVWludDhBcnJheTtcbiAgcHJpdmF0ZSByZWFkb25seSBfaGFzaDogVWludDhBcnJheTtcbiAgY29uc3RydWN0b3IodmFsdWU6IFVpbnQ4QXJyYXksIGhhc2g6IFVpbnQ4QXJyYXkpIHtcbiAgICBzdXBlcigpO1xuICAgIHRoaXMuX3ZhbHVlID0gdmFsdWU7XG4gICAgdGhpcy5faGFzaCA9IGhhc2g7XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJucyB0aGUgZGF0YSBhcyBhIHV0Zi04IHN0cmluZywgZGVjb2RlZCBmcm9tIHRoZSB1bmRlcmx5aW5nIGJ5dGUgYXJyYXkuXG4gICAqIEByZXR1cm5zIHN0cmluZ1xuICAgKi9cbiAgcHVibGljIHZhbHVlKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIFRFWFRfREVDT0RFUi5kZWNvZGUodGhpcy5fdmFsdWUpO1xuICB9XG4gIC8qKlxuICAgKiBSZXR1cm5zIHRoZSBoYXNoIG9mIHRoZSBkYXRhIGFzIGEgdXRmLTggc3RyaW5nLCBkZWNvZGVkIGZyb20gdGhlIHVuZGVybHlpbmcgYnl0ZSBhcnJheS5cbiAgICogQHJldHVybnMgc3RyaW5nXG4gICAqL1xuICBwdWJsaWMgaGFzaCgpOiBzdHJpbmcge1xuICAgIHJldHVybiBURVhUX0RFQ09ERVIuZGVjb2RlKHRoaXMuX2hhc2gpO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybnMgdGhlIGRhdGEgYXMgYSB1dGYtOCBzdHJpbmcsIGRlY29kZWQgZnJvbSB0aGUgdW5kZXJseWluZyBieXRlIGFycmF5LlxuICAgKiBAcmV0dXJucyBzdHJpbmdcbiAgICovXG4gIHB1YmxpYyB2YWx1ZVN0cmluZygpOiBzdHJpbmcge1xuICAgIHJldHVybiBURVhUX0RFQ09ERVIuZGVjb2RlKHRoaXMuX3ZhbHVlKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm5zIHRoZSBkYXRhIGFzIGEgYnl0ZSBhcnJheS5cbiAgICogQHJldHVybnMge1VpbnQ4QXJyYXl9XG4gICAqL1xuICBwdWJsaWMgdmFsdWVVaW50OEFycmF5KCk6IFVpbnQ4QXJyYXkge1xuICAgIHJldHVybiB0aGlzLl92YWx1ZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm5zIHRoZSBoYXNoIG9mIHRoZSBkYXRhIGFzIGEgdXRmLTggc3RyaW5nLCBkZWNvZGVkIGZyb20gdGhlIHVuZGVybHlpbmcgYnl0ZSBhcnJheS5cbiAgICogQHJldHVybnMgc3RyaW5nXG4gICAqL1xuICBwdWJsaWMgaGFzaFN0cmluZygpOiBzdHJpbmcge1xuICAgIHJldHVybiBURVhUX0RFQ09ERVIuZGVjb2RlKHRoaXMuX2hhc2gpO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybnMgdGhlIGhhc2ggb2YgdGhlIGRhdGEgYXMgYSBieXRlIGFycmF5LlxuICAgKiBAcmV0dXJucyB7VWludDhBcnJheX1cbiAgICovXG4gIHB1YmxpYyBoYXNoVWludDhBcnJheSgpOiBVaW50OEFycmF5IHtcbiAgICByZXR1cm4gdGhpcy5faGFzaDtcbiAgfVxuXG4gIHB1YmxpYyBvdmVycmlkZSB0b1N0cmluZygpOiBzdHJpbmcge1xuICAgIGNvbnN0IGRpc3BsYXlWYWx1ZSA9IHRydW5jYXRlU3RyaW5nKHRoaXMudmFsdWVTdHJpbmcoKSk7XG4gICAgY29uc3QgZGlzcGxheUhhc2ggPSB0cnVuY2F0ZVN0cmluZyh0aGlzLmhhc2hTdHJpbmcoKSk7XG4gICAgcmV0dXJuIGAke3N1cGVyLnRvU3RyaW5nKCl9OiB2YWx1ZT0ke2Rpc3BsYXlWYWx1ZX0sIGhhc2g9JHtkaXNwbGF5SGFzaH1gO1xuICB9XG59XG5cbi8qKlxuICogSW5kaWNhdGVzIHRoYXQgdGhlIHJlcXVlc3RlZCBkYXRhIHdhcyBub3QgYXZhaWxhYmxlIGluIHRoZSBjYWNoZS5cbiAqL1xuZXhwb3J0IGNsYXNzIE1pc3MgZXh0ZW5kcyBCYXNlUmVzcG9uc2VNaXNzIGltcGxlbWVudHMgSVJlc3BvbnNlIHtcbiAgcmVhZG9ubHkgdHlwZTogQ2FjaGVHZXRXaXRoSGFzaFJlc3BvbnNlLk1pc3MgPSBDYWNoZUdldFdpdGhIYXNoUmVzcG9uc2UuTWlzcztcblxuICBjb25zdHJ1Y3RvcigpIHtcbiAgICBzdXBlcigpO1xuICB9XG5cbiAgdmFsdWUoKTogdW5kZWZpbmVkIHtcbiAgICByZXR1cm4gdW5kZWZpbmVkO1xuICB9XG5cbiAgaGFzaCgpOiB1bmRlZmluZWQge1xuICAgIHJldHVybiB1bmRlZmluZWQ7XG4gIH1cbn1cblxuLyoqXG4gKiBJbmRpY2F0ZXMgdGhhdCBhbiBlcnJvciBvY2N1cnJlZCBkdXJpbmcgdGhlIGNhY2hlIGdldCByZXF1ZXN0LlxuICpcbiAqIFRoaXMgcmVzcG9uc2Ugb2JqZWN0IGluY2x1ZGVzIHRoZSBmb2xsb3dpbmcgZmllbGRzIHRoYXQgeW91IGNhbiB1c2UgdG8gZGV0ZXJtaW5lXG4gKiBob3cgeW91IHdvdWxkIGxpa2UgdG8gaGFuZGxlIHRoZSBlcnJvcjpcbiAqXG4gKiAtIGBlcnJvckNvZGUoKWAgLSBhIHVuaXF1ZSBNb21lbnRvIGVycm9yIGNvZGUgaW5kaWNhdGluZyB0aGUgdHlwZSBvZiBlcnJvciB0aGF0IG9jY3VycmVkLlxuICogLSBgbWVzc2FnZSgpYCAtIGEgaHVtYW4tcmVhZGFibGUgZGVzY3JpcHRpb24gb2YgdGhlIGVycm9yXG4gKiAtIGBpbm5lckV4Y2VwdGlvbigpYCAtIHRoZSBvcmlnaW5hbCBlcnJvciB0aGF0IGNhdXNlZCB0aGUgZmFpbHVyZTsgY2FuIGJlIHJlLXRocm93bi5cbiAqL1xuZXhwb3J0IGNsYXNzIEVycm9yIGV4dGVuZHMgQmFzZVJlc3BvbnNlRXJyb3IgaW1wbGVtZW50cyBJUmVzcG9uc2Uge1xuICByZWFkb25seSB0eXBlOiBDYWNoZUdldFdpdGhIYXNoUmVzcG9uc2UuRXJyb3IgPVxuICAgIENhY2hlR2V0V2l0aEhhc2hSZXNwb25zZS5FcnJvcjtcbiAgY29uc3RydWN0b3IoX2lubmVyRXhjZXB0aW9uOiBTZGtFcnJvcikge1xuICAgIHN1cGVyKF9pbm5lckV4Y2VwdGlvbik7XG4gIH1cblxuICB2YWx1ZSgpOiB1bmRlZmluZWQge1xuICAgIHJldHVybiB1bmRlZmluZWQ7XG4gIH1cblxuICBoYXNoKCk6IHVuZGVmaW5lZCB7XG4gICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgfVxufVxuXG5leHBvcnQgdHlwZSBSZXNwb25zZSA9IEhpdCB8IE1pc3MgfCBFcnJvcjtcbiJdfQ==
|
@@ -0,0 +1,47 @@
|
|
1
|
+
import { SdkError } from '../../errors';
|
2
|
+
import { BaseResponseError, ResponseBase } from './response-base';
|
3
|
+
import { CacheSetIfAbsentOrHashEqualResponse } from './enums';
|
4
|
+
interface IResponse {
|
5
|
+
readonly type: CacheSetIfAbsentOrHashEqualResponse;
|
6
|
+
}
|
7
|
+
/**
|
8
|
+
* Indicates either the key does not exist and the value was set or, the key exists
|
9
|
+
* and hash value of the stored item is equal to the hash value supplied and the value was set.
|
10
|
+
*/
|
11
|
+
export declare class Stored extends ResponseBase implements IResponse {
|
12
|
+
readonly type: CacheSetIfAbsentOrHashEqualResponse.Stored;
|
13
|
+
private readonly _hash;
|
14
|
+
constructor(hash: Uint8Array);
|
15
|
+
/**
|
16
|
+
* Returns the hash of the data as a utf-8 string, decoded from the underlying byte array.
|
17
|
+
* @returns string
|
18
|
+
*/
|
19
|
+
hashString(): string;
|
20
|
+
/**
|
21
|
+
* Returns the hash of the data as a byte array.
|
22
|
+
* @returns {Uint8Array}
|
23
|
+
*/
|
24
|
+
hashUint8Array(): Uint8Array;
|
25
|
+
}
|
26
|
+
/**
|
27
|
+
* Indicates the key exists but the hash value is not equal to the hash value supplied and no value was set.
|
28
|
+
*/
|
29
|
+
export declare class NotStored extends ResponseBase implements IResponse {
|
30
|
+
readonly type: CacheSetIfAbsentOrHashEqualResponse.NotStored;
|
31
|
+
}
|
32
|
+
/**
|
33
|
+
* Indicates that an error occurred during the CacheSetIfAbsentOrHashEqual request.
|
34
|
+
*
|
35
|
+
* This response object includes the following fields that you can use to determine
|
36
|
+
* how you would like to handle the error:
|
37
|
+
*
|
38
|
+
* - `errorCode()` - a unique Momento error code indicating the type of error that occurred.
|
39
|
+
* - `message()` - a human-readable description of the error
|
40
|
+
* - `innerException()` - the original error that caused the failure; can be re-thrown.
|
41
|
+
*/
|
42
|
+
export declare class Error extends BaseResponseError implements IResponse {
|
43
|
+
constructor(_innerException: SdkError);
|
44
|
+
readonly type: CacheSetIfAbsentOrHashEqualResponse.Error;
|
45
|
+
}
|
46
|
+
export type Response = Stored | NotStored | Error;
|
47
|
+
export {};
|