@sumaris-net/ngx-components 1.23.42 → 1.23.43
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/bundles/sumaris-net.ngx-components.umd.js +24 -20
- package/bundles/sumaris-net.ngx-components.umd.js.map +1 -1
- package/bundles/sumaris-net.ngx-components.umd.min.js +2 -2
- package/bundles/sumaris-net.ngx-components.umd.min.js.map +1 -1
- package/esm2015/src/app/core/graphql/graphql.utils.js +2 -3
- package/esm2015/src/app/shared/file/file.service.js +2 -3
- package/esm2015/src/app/shared/graph/graph-colors.js +5 -1
- package/esm2015/src/app/shared/services/memory-entity-service.class.js +2 -2
- package/esm2015/src/app/vendor.js +6 -1
- package/fesm2015/sumaris-net.ngx-components.js +23 -20
- package/fesm2015/sumaris-net.ngx-components.js.map +1 -1
- package/package.json +1 -1
- package/src/app/shared/graph/graph-colors.d.ts +2 -1
- package/src/app/vendor.d.ts +2 -0
- package/sumaris-net.ngx-components.metadata.json +1 -1
|
@@ -1,11 +1,10 @@
|
|
|
1
1
|
import { __awaiter } from "tslib";
|
|
2
2
|
import { ApolloLink } from '@apollo/client/core';
|
|
3
|
-
import * as uuidv4Imported from 'uuid/v4';
|
|
4
|
-
const uuidv4 = uuidv4Imported;
|
|
5
3
|
import { EventEmitter } from '@angular/core';
|
|
6
4
|
import { debounceTime, filter, switchMap } from 'rxjs/operators';
|
|
7
5
|
import { BehaviorSubject } from 'rxjs';
|
|
8
6
|
import { getMainDefinition } from '@apollo/client/utilities';
|
|
7
|
+
import { uuidv4 } from '../../vendor';
|
|
9
8
|
const _global = typeof global !== 'undefined' ? global : (typeof window !== 'undefined' ? window : {});
|
|
10
9
|
export const NativeWebSocket = _global.WebSocket || _global.MozWebSocket;
|
|
11
10
|
/**
|
|
@@ -104,4 +103,4 @@ export function restoreTrackedQueries(opts) {
|
|
|
104
103
|
return Promise.all(promises);
|
|
105
104
|
});
|
|
106
105
|
}
|
|
107
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ3JhcGhxbC51dGlscy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvY29yZS9ncmFwaHFsL2dyYXBocWwudXRpbHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBZSxVQUFVLEVBQXNCLE1BQU0scUJBQXFCLENBQUM7QUFDbEYsT0FBTyxLQUFLLGNBQWMsTUFBTSxTQUFTLENBQUM7QUFDMUMsTUFBTSxNQUFNLEdBQUcsY0FBYyxDQUFDO0FBQzlCLE9BQU8sRUFBQyxZQUFZLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDM0MsT0FBTyxFQUFDLFlBQVksRUFBRSxNQUFNLEVBQUUsU0FBUyxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFDL0QsT0FBTyxFQUFDLGVBQWUsRUFBYSxNQUFNLE1BQU0sQ0FBQztBQUNqRCxPQUFPLEVBQUMsaUJBQWlCLEVBQUMsTUFBTSwwQkFBMEIsQ0FBQztBQUszRCxNQUFNLE9BQU8sR0FBRyxPQUFPLE1BQU0sS0FBSyxXQUFXLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLE1BQU0sS0FBSyxXQUFXLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUM7QUFDdkcsTUFBTSxDQUFDLE1BQU0sZUFBZSxHQUFHLE9BQU8sQ0FBQyxTQUFTLElBQUksT0FBTyxDQUFDLFlBQVksQ0FBQztBQUV6RTs7O0dBR0c7QUFDSCxNQUFNLENBQUMsTUFBTSxZQUFZLEdBQUcsVUFBUyxHQUFXLEVBQUUsU0FBNkI7SUFDN0UsT0FBTyxJQUFJLGVBQWUsQ0FBQyxHQUFHLENBQUEsZ0JBQWdCLENBQUMsQ0FBQztBQUNsRCxDQUFRLENBQUM7QUFDVCxZQUFZLENBQUMsTUFBTSxHQUFHLGVBQWUsQ0FBQyxNQUFNLENBQUM7QUFDN0MsWUFBWSxDQUFDLE9BQU8sR0FBRyxlQUFlLENBQUMsT0FBTyxDQUFDO0FBQy9D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QUVELE9BQU8sYUFBYSxDQUFDO0lBQ3ZCLENBQUMsQ0FBQyxDQUFDO0FBQ0wsQ0FBQztBQUVELE1BQU0sVUFBZ0IscUJBQXFCLENBQUMsSUFJM0M7O1FBRUMsTUFBTSxJQUFJLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLElBQUksQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLDJCQUEyQixDQUFDLENBQW1CLENBQUM7UUFFbkcsSUFBSSxDQUFDLElBQUk7WUFBRSxPQUFPO1FBQ2xCLElBQUksSUFBSSxDQUFDLEtBQUs7WUFBRSxPQUFPLENBQUMsS0FBSyxDQUFDLGlEQUFpRCxFQUFFLElBQUksQ0FBQyxDQUFDO1FBRXZGLE1BQU0sUUFBUSxHQUFHLENBQUMsSUFBSSxJQUFJLEVBQUUsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxZQUFZLENBQUMsRUFBRTtZQUMvQyxNQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLFlBQVksQ0FBQyxXQUFXLENBQUMsQ0FBQztZQUNyRCxNQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLFlBQVksQ0FBQyxTQUFTLENBQUMsQ0FBQztZQUNqRCxNQUFNLFNBQVMsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLFlBQVksQ0FBQyxhQUFhLENBQUMsQ0FBQztZQUN6RCxPQUFPLElBQUksQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDO2dCQUM5QixPQUFPO2dCQUNQLFFBQVEsRUFBRSxLQUFLO2dCQUNmLGtCQUFrQixFQUFFLE9BQU8sQ0FBQyxrQkFBa0I7Z0JBQzlDLGlEQUFpRDtnQkFDakQsU0FBUzthQUNWLENBQUMsQ0FBQztRQUNMLENBQUMsQ0FBQyxDQUFDO1FBRUgsT0FBTyxPQUFPLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQy9CLENBQUM7Q0FBQSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7QXBvbGxvQ2xpZW50LCBBcG9sbG9MaW5rLCBOZXh0TGluaywgT3BlcmF0aW9ufSBmcm9tICdAYXBvbGxvL2NsaWVudC9jb3JlJztcbmltcG9ydCAqIGFzIHV1aWR2NEltcG9ydGVkIGZyb20gJ3V1aWQvdjQnO1xuY29uc3QgdXVpZHY0ID0gdXVpZHY0SW1wb3J0ZWQ7XG5pbXBvcnQge0V2ZW50RW1pdHRlcn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge2RlYm91bmNlVGltZSwgZmlsdGVyLCBzd2l0Y2hNYXB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7QmVoYXZpb3JTdWJqZWN0LCBPYnNlcnZhYmxlfSBmcm9tICdyeGpzJztcbmltcG9ydCB7Z2V0TWFpbkRlZmluaXRpb259IGZyb20gJ0BhcG9sbG8vY2xpZW50L3V0aWxpdGllcyc7XG5pbXBvcnQge1BlcnNpc3RlbnRTdG9yYWdlfSBmcm9tICdhcG9sbG8zLWNhY2hlLXBlcnNpc3QnO1xuaW1wb3J0IHtDb25uZWN0aW9uVHlwZX0gZnJvbSAnLi4vc2VydmljZXMvbmV0d29yay5zZXJ2aWNlJztcblxuZGVjbGFyZSBsZXQgd2luZG93OiBhbnk7XG5jb25zdCBfZ2xvYmFsID0gdHlwZW9mIGdsb2JhbCAhPT0gJ3VuZGVmaW5lZCcgPyBnbG9iYWwgOiAodHlwZW9mIHdpbmRvdyAhPT0gJ3VuZGVmaW5lZCcgPyB3aW5kb3cgOiB7fSk7XG5leHBvcnQgY29uc3QgTmF0aXZlV2ViU29ja2V0ID0gX2dsb2JhbC5XZWJTb2NrZXQgfHwgX2dsb2JhbC5Nb3pXZWJTb2NrZXQ7XG5cbi8qKlxuICogQXBwV2ViU29ja2V0IGNsYXNzLlxuICogV2l0aCBhIGhhY2sgb24gZGVmYXVsdCBXZWJzb2NrZXQsIHRvIGF2b2lkIHRoZSB1c2Ugb2YgcHJvdG9jb2xcbiAqL1xuZXhwb3J0IGNvbnN0IEFwcFdlYlNvY2tldCA9IGZ1bmN0aW9uKHVybDogc3RyaW5nLCBwcm90b2NvbHM/OiBzdHJpbmcgfCBzdHJpbmdbXSkge1xuICByZXR1cm4gbmV3IE5hdGl2ZVdlYlNvY2tldCh1cmwvKm5vIHByb3RvY29scyovKTtcbn0gYXMgYW55O1xuQXBwV2ViU29ja2V0LkNMT1NFRCA9IE5hdGl2ZVdlYlNvY2tldC5DTE9TRUQ7XG5BcHBXZWJTb2NrZXQuQ0xPU0lORyA9IE5hdGl2ZVdlYlNvY2tldC5DTE9TSU5HO1xuQXBwV2ViU29ja2V0LkNPTk5FQ1RJTkcgPSBOYXRpdmVXZWJTb2NrZXQuQ09OTkVDVElORztcbkFwcFdlYlNvY2tldC5PUEVOID0gTmF0aXZlV2ViU29ja2V0Lk9QRU47XG5cbmV4cG9ydCBmdW5jdGlvbiBpc011dGF0aW9uT3BlcmF0aW9uKG9wZXJhdGlvbjogT3BlcmF0aW9uKSB7XG4gIGNvbnN0IGRlZiA9IGdldE1haW5EZWZpbml0aW9uKG9wZXJhdGlvbi5xdWVyeSk7XG4gIHJldHVybiBkZWYua2luZCA9PT0gJ09wZXJhdGlvbkRlZmluaXRpb24nICYmIGRlZi5vcGVyYXRpb24gPT09ICdtdXRhdGlvbic7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBpc1N1YnNjcmlwdGlvbk9wZXJhdGlvbihvcGVyYXRpb246IE9wZXJhdGlvbikge1xuICBjb25zdCBkZWYgPSBnZXRNYWluRGVmaW5pdGlvbihvcGVyYXRpb24ucXVlcnkpO1xuICByZXR1cm4gZGVmLmtpbmQgPT09ICdPcGVyYXRpb25EZWZpbml0aW9uJyAmJiBkZWYub3BlcmF0aW9uID09PSAnc3Vic2NyaXB0aW9uJztcbn1cblxuXG5leHBvcnQgaW50ZXJmYWNlIFRyYWNrZWRRdWVyeSB7XG4gIGlkOiBzdHJpbmc7XG4gIG5hbWU6IHN0cmluZztcbiAgcXVlcnlKU09OOiBzdHJpbmc7XG4gIHZhcmlhYmxlc0pTT046IHN0cmluZztcbiAgY29udGV4dEpTT046IHN0cmluZztcbn1cblxuZXhwb3J0IGNvbnN0IFRSQUNLRURfUVVFUklFU19TVE9SQUdFX0tFWSA9ICdhcG9sbG8tdHJhY2tlci1wZXJzaXN0JztcblxuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZVRyYWNrZXJMaW5rKG9wdHM6IHtcbiAgc3RvcmFnZT86IFBlcnNpc3RlbnRTdG9yYWdlPHN0cmluZz47XG4gIG9uTmV0d29ya1N0YXR1c0NoYW5nZTogT2JzZXJ2YWJsZTxDb25uZWN0aW9uVHlwZT47XG4gIGRlYm91bmNlPzogbnVtYmVyO1xuICBkZWJ1Zz86IGJvb2xlYW47XG4gIH0pOiBBcG9sbG9MaW5rIHtcblxuICBjb25zdCB0cmFja2VkUXVlcmllc1VwZGF0ZWQgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG4gIGNvbnN0IHRyYWNrZWRRdWVyaWVzQnlJZDoge1tpZDogc3RyaW5nXTogVHJhY2tlZFF1ZXJ5fSA9IHt9O1xuXG4gIGNvbnN0IG5ldHdvcmtTdGF0dXNTdWJqZWN0ID0gbmV3IEJlaGF2aW9yU3ViamVjdDxzdHJpbmc+KCdub25lJyk7XG4gIG9wdHMub25OZXR3b3JrU3RhdHVzQ2hhbmdlLnN1YnNjcmliZSh0eXBlID0+IG5ldHdvcmtTdGF0dXNTdWJqZWN0Lm5leHQodHlwZSkpO1xuXG4gIC8vIFNhdmUgcGVuZGluZyBhbmQgdHJhY2tlZCBxdWVyaWVzIGluIHN0b3JhZ2VcbiAgdHJhY2tlZFF1ZXJpZXNVcGRhdGVkLnBpcGUoXG4gICAgZGVib3VuY2VUaW1lKG9wdHMuZGVib3VuY2UgfHwgMTAwMCksXG4gICAgc3dpdGNoTWFwKCgpID0+IG5ldHdvcmtTdGF0dXNTdWJqZWN0KSxcbiAgICAvLyBDb250aW51ZSBpZiBvZmZsaW5lXG4gICAgZmlsdGVyKCh0eXBlKSA9PiB0eXBlID09PSAnbm9uZScgJiYgISFvcHRzLnN0b3JhZ2UpXG4gICkuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgIGNvbnN0IHRyYWNrZWRRdWVyaWVzID0gT2JqZWN0LmdldE93blByb3BlcnR5TmFtZXModHJhY2tlZFF1ZXJpZXNCeUlkKVxuICAgICAgICAubWFwKGtleSA9PiB0cmFja2VkUXVlcmllc0J5SWRba2V5XSlcbiAgICAgICAgLmZpbHRlcih2YWx1ZSA9PiB2YWx1ZSAhPT0gdW5kZWZpbmVkKTtcbiAgICAgIGlmIChvcHRzLmRlYnVnKSBjb25zb2xlLmRlYnVnKCdbYXBvbGxvLXRyYWNrZXItbGlua10gU2F2aW5nIHRyYWNrZWQgcXVlcmllcyB0byBzdG9yYWdlJywgdHJhY2tlZFF1ZXJpZXMpO1xuICAgICAgcmV0dXJuIG9wdHMuc3RvcmFnZS5zZXRJdGVtKFRSQUNLRURfUVVFUklFU19TVE9SQUdFX0tFWSwgSlNPTi5zdHJpbmdpZnkodHJhY2tlZFF1ZXJpZXMpKTtcbiAgICB9KTtcblxuICByZXR1cm4gbmV3IEFwb2xsb0xpbmsoKG9wZXJhdGlvbjogT3BlcmF0aW9uLCBmb3J3YXJkOiBOZXh0TGluaykgPT4ge1xuICAgIGNvbnN0IGNvbnRleHQgPSBvcGVyYXRpb24uZ2V0Q29udGV4dCgpO1xuXG4gICAgLy8gU2tpcCBpZiBub3QgdHJhY2tlZFxuICAgIGlmICghY29udGV4dCB8fCAhY29udGV4dC50cmFja2VkKSByZXR1cm4gZm9yd2FyZChvcGVyYXRpb24pO1xuXG4gICAgY29uc3QgaWQgPSBjb250ZXh0LnNlcmlhbGl6YXRpb25LZXkgfHwgdXVpZHY0KCk7XG4gICAgY29uc29sZS5kZWJ1ZyhgW2Fwb2xsby10cmFja2VyLWxpbmtdIFdhdGNoaW5nIHRyYWNrZWQgcXVlcnkgeyR7b3BlcmF0aW9uLm9wZXJhdGlvbk5hbWV9IyR7aWR9fWApO1xuXG4gICAgLy8gQ2xlYW4gY29udGV4dCwgYmVmb3JlIGNhbGxpbmcgSlNPTi5zdHJpbmdpZnkgKHJlbW92ZSB1bnVzZWQgYXR0cmlidXRlcylcbiAgICBjb25zdCBjbGVhbkNvbnRleHQgPSB7IC4uLmNvbnRleHQsIC4uLntvcHRpbWlzdGljUmVzcG9uc2U6IG51bGwsIGNhY2hlOiBudWxsfSB9O1xuXG4gICAgY29uc3QgdHJhY2tlZFF1ZXJ5OiBUcmFja2VkUXVlcnkgPSB7XG4gICAgICBpZCxcbiAgICAgIG5hbWU6IG9wZXJhdGlvbi5vcGVyYXRpb25OYW1lLFxuICAgICAgcXVlcnlKU09OOiBKU09OLnN0cmluZ2lmeShvcGVyYXRpb24ucXVlcnkpLFxuICAgICAgdmFyaWFibGVzSlNPTjogSlNPTi5zdHJpbmdpZnkob3BlcmF0aW9uLnZhcmlhYmxlcyksXG4gICAgICBjb250ZXh0SlNPTjogSlNPTi5zdHJpbmdpZnkoY2xlYW5Db250ZXh0KVxuICAgIH07XG5cbiAgICAvLyBBZGQgdG8gbWFwXG4gICAgdHJhY2tlZFF1ZXJpZXNCeUlkW2lkXSA9IHRyYWNrZWRRdWVyeTtcbiAgICB0cmFja2VkUXVlcmllc1VwZGF0ZWQuZW1pdCgpO1xuXG4gICAgY29uc3QgbmV4dE9wZXJhdGlvbiA9IGZvcndhcmQob3BlcmF0aW9uKVxuICAgICAgLm1hcChkYXRhID0+IHtcbiAgICAgICAgY29uc29sZS5kZWJ1ZyhgW2Fwb2xsby10cmFja2VyLWxpbmtdIFF1ZXJ5IHske29wZXJhdGlvbi5vcGVyYXRpb25OYW1lfSMke2lkfX0gc3VjY2VlZCFgLCBkYXRhKTtcbiAgICAgICAgZGVsZXRlIHRyYWNrZWRRdWVyaWVzQnlJZFtpZF07XG4gICAgICAgIHRyYWNrZWRRdWVyaWVzVXBkYXRlZC5lbWl0KHRyYWNrZWRRdWVyaWVzQnlJZCk7IC8vIHVwZGF0ZVxuXG4gICAgICAgIHJldHVybiBkYXRhO1xuICAgICAgfSk7XG5cbiAgICAvLyBJZiBvZmZsaW5lLCByZXR1cm4gdGhlIG9wdGltaXN0aWMgcmVzcG9uc2VcbiAgICBpZiAobmV0d29ya1N0YXR1c1N1YmplY3QuZ2V0VmFsdWUoKSA9PT0gJ25vbmUnKSB7XG4gICAgICBpZiAoY29udGV4dC5vcHRpbWlzdGljUmVzcG9uc2UpIHtcbiAgICAgICAgY29uc29sZS5kZWJ1ZyhgW2Fwb2xsby10cmFja2VyLWxpbmtdIFF1ZXJ5IHske29wZXJhdGlvbi5vcGVyYXRpb25OYW1lfSMke2lkfX0gaGFzIG9wdGltaXN0aWMgcmVzcG9uc2U6IGAsIGNvbnRleHQub3B0aW1pc3RpY1Jlc3BvbnNlKTtcbiAgICAgIH1cbiAgICAgIGVsc2Uge1xuICAgICAgICBjb25zb2xlLndhcm4oYFthcG9sbG8tdHJhY2tlci1saW5rXSBRdWVyeSB7JHtvcGVyYXRpb24ub3BlcmF0aW9uTmFtZX0jJHtpZH19IG1pc3NpbmcgJ2NvbnRleHQub3B0aW1pc3RpY1Jlc3BvbnNlJzogd2FpdGluZyBuZXR3b3JrIFVQIGJlZm9yZSB0byBjb250aW51ZS4uLmApO1xuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiBuZXh0T3BlcmF0aW9uO1xuICB9KTtcbn1cblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIHJlc3RvcmVUcmFja2VkUXVlcmllcyhvcHRzOiB7XG4gIGFwb2xsb0NsaWVudDogQXBvbGxvQ2xpZW50PGFueT47XG4gIHN0b3JhZ2U6IFBlcnNpc3RlbnRTdG9yYWdlPGFueT47XG4gIGRlYnVnPzogYm9vbGVhbjtcbn0pIHtcblxuICBjb25zdCBsaXN0ID0gSlNPTi5wYXJzZShhd2FpdCBvcHRzLnN0b3JhZ2UuZ2V0SXRlbShUUkFDS0VEX1FVRVJJRVNfU1RPUkFHRV9LRVkpKSBhcyBUcmFja2VkUXVlcnlbXTtcblxuICBpZiAoIWxpc3QpIHJldHVybjtcbiAgaWYgKG9wdHMuZGVidWcpIGNvbnNvbGUuZGVidWcoJ1thcG9sbG8tdHJhY2tlci1saW5rXSBSZXN0b3JpbmcgdHJhY2tlZCBxdWVyaWVzJywgbGlzdCk7XG5cbiAgY29uc3QgcHJvbWlzZXMgPSAobGlzdCB8fCBbXSkubWFwKHRyYWNrZWRRdWVyeSA9PiB7XG4gICAgY29uc3QgY29udGV4dCA9IEpTT04ucGFyc2UodHJhY2tlZFF1ZXJ5LmNvbnRleHRKU09OKTtcbiAgICBjb25zdCBxdWVyeSA9IEpTT04ucGFyc2UodHJhY2tlZFF1ZXJ5LnF1ZXJ5SlNPTik7XG4gICAgY29uc3QgdmFyaWFibGVzID0gSlNPTi5wYXJzZSh0cmFja2VkUXVlcnkudmFyaWFibGVzSlNPTik7XG4gICAgcmV0dXJuIG9wdHMuYXBvbGxvQ2xpZW50Lm11dGF0ZSh7XG4gICAgICBjb250ZXh0LFxuICAgICAgbXV0YXRpb246IHF1ZXJ5LFxuICAgICAgb3B0aW1pc3RpY1Jlc3BvbnNlOiBjb250ZXh0Lm9wdGltaXN0aWNSZXNwb25zZSxcbiAgICAgIC8vdXBkYXRlOiB1cGRhdGVIYW5kbGVyQnlOYW1lW3RyYWNrZWRRdWVyeS5uYW1lXSxcbiAgICAgIHZhcmlhYmxlcyxcbiAgICB9KTtcbiAgfSk7XG5cbiAgcmV0dXJuIFByb21pc2UuYWxsKHByb21pc2VzKTtcbn1cbiJdfQ==
|
|
106
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ3JhcGhxbC51dGlscy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvY29yZS9ncmFwaHFsL2dyYXBocWwudXRpbHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBZSxVQUFVLEVBQXNCLE1BQU0scUJBQXFCLENBQUM7QUFDbEYsT0FBTyxFQUFDLFlBQVksRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBQUMsWUFBWSxFQUFFLE1BQU0sRUFBRSxTQUFTLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUMvRCxPQUFPLEVBQUMsZUFBZSxFQUFhLE1BQU0sTUFBTSxDQUFDO0FBQ2pELE9BQU8sRUFBQyxpQkFBaUIsRUFBQyxNQUFNLDBCQUEwQixDQUFDO0FBRzNELE9BQU8sRUFBQyxNQUFNLEVBQUMsTUFBTSxjQUFjLENBQUM7QUFHcEMsTUFBTSxPQUFPLEdBQUcsT0FBTyxNQUFNLEtBQUssV0FBVyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxNQUFNLEtBQUssV0FBVyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDO0FBQ3ZHLE1BQU0sQ0FBQyxNQUFNLGVBQWUsR0FBRyxPQUFPLENBQUMsU0FBUyxJQUFJLE9BQU8sQ0FBQyxZQUFZLENBQUM7QUFFekU7OztHQUdHO0FBQ0gsTUFBTSxDQUFDLE1BQU0sWUFBWSxHQUFHLFVBQVMsR0FBVyxFQUFFLFNBQTZCO0lBQzdFLE9BQU8sSUFBSSxlQUFlLENBQUMsR0FBRyxDQUFBLGdCQUFnQixDQUFDLENBQUM7QUFDbEQsQ0FBUSxDQUFDO0FBQ1QsWUFBWSxDQUFDLE1BQU0sR0FBRyxlQUFlLENBQUMsTUFBTSxDQUFDO0FBQzdDLFlBQVksQ0FBQyxPQUFPLEdBQUcsZUFBZSxDQUFDLE9BQU8sQ0FBQztBQUMvQyxZQUFZLENBQUMsVUFBVSxHQUFHLGVBQWUs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QUFDLENBQUMsQ0FBQztBQUNMLENBQUM7QUFFRCxNQUFNLFVBQWdCLHFCQUFxQixDQUFDLElBSTNDOztRQUVDLE1BQU0sSUFBSSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxJQUFJLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQywyQkFBMkIsQ0FBQyxDQUFtQixDQUFDO1FBRW5HLElBQUksQ0FBQyxJQUFJO1lBQUUsT0FBTztRQUNsQixJQUFJLElBQUksQ0FBQyxLQUFLO1lBQUUsT0FBTyxDQUFDLEtBQUssQ0FBQyxpREFBaUQsRUFBRSxJQUFJLENBQUMsQ0FBQztRQUV2RixNQUFNLFFBQVEsR0FBRyxDQUFDLElBQUksSUFBSSxFQUFFLENBQUMsQ0FBQyxHQUFHLENBQUMsWUFBWSxDQUFDLEVBQUU7WUFDL0MsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxZQUFZLENBQUMsV0FBVyxDQUFDLENBQUM7WUFDckQsTUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxZQUFZLENBQUMsU0FBUyxDQUFDLENBQUM7WUFDakQsTUFBTSxTQUFTLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxZQUFZLENBQUMsYUFBYSxDQUFDLENBQUM7WUFDekQsT0FBTyxJQUFJLENBQUMsWUFBWSxDQUFDLE1BQU0sQ0FBQztnQkFDOUIsT0FBTztnQkFDUCxRQUFRLEVBQUUsS0FBSztnQkFDZixrQkFBa0IsRUFBRSxPQUFPLENBQUMsa0JBQWtCO2dCQUM5QyxpREFBaUQ7Z0JBQ2pELFNBQVM7YUFDVixDQUFDLENBQUM7UUFDTCxDQUFDLENBQUMsQ0FBQztRQUVILE9BQU8sT0FBTyxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUMvQixDQUFDO0NBQUEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0Fwb2xsb0NsaWVudCwgQXBvbGxvTGluaywgTmV4dExpbmssIE9wZXJhdGlvbn0gZnJvbSAnQGFwb2xsby9jbGllbnQvY29yZSc7XG5pbXBvcnQge0V2ZW50RW1pdHRlcn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge2RlYm91bmNlVGltZSwgZmlsdGVyLCBzd2l0Y2hNYXB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7QmVoYXZpb3JTdWJqZWN0LCBPYnNlcnZhYmxlfSBmcm9tICdyeGpzJztcbmltcG9ydCB7Z2V0TWFpbkRlZmluaXRpb259IGZyb20gJ0BhcG9sbG8vY2xpZW50L3V0aWxpdGllcyc7XG5pbXBvcnQge1BlcnNpc3RlbnRTdG9yYWdlfSBmcm9tICdhcG9sbG8zLWNhY2hlLXBlcnNpc3QnO1xuaW1wb3J0IHtDb25uZWN0aW9uVHlwZX0gZnJvbSAnLi4vc2VydmljZXMvbmV0d29yay5zZXJ2aWNlJztcbmltcG9ydCB7dXVpZHY0fSBmcm9tICcuLi8uLi92ZW5kb3InO1xuXG5kZWNsYXJlIGxldCB3aW5kb3c6IGFueTtcbmNvbnN0IF9nbG9iYWwgPSB0eXBlb2YgZ2xvYmFsICE9PSAndW5kZWZpbmVkJyA/IGdsb2JhbCA6ICh0eXBlb2Ygd2luZG93ICE9PSAndW5kZWZpbmVkJyA/IHdpbmRvdyA6IHt9KTtcbmV4cG9ydCBjb25zdCBOYXRpdmVXZWJTb2NrZXQgPSBfZ2xvYmFsLldlYlNvY2tldCB8fCBfZ2xvYmFsLk1veldlYlNvY2tldDtcblxuLyoqXG4gKiBBcHBXZWJTb2NrZXQgY2xhc3MuXG4gKiBXaXRoIGEgaGFjayBvbiBkZWZhdWx0IFdlYnNvY2tldCwgdG8gYXZvaWQgdGhlIHVzZSBvZiBwcm90b2NvbFxuICovXG5leHBvcnQgY29uc3QgQXBwV2ViU29ja2V0ID0gZnVuY3Rpb24odXJsOiBzdHJpbmcsIHByb3RvY29scz86IHN0cmluZyB8IHN0cmluZ1tdKSB7XG4gIHJldHVybiBuZXcgTmF0aXZlV2ViU29ja2V0KHVybC8qbm8gcHJvdG9jb2xzKi8pO1xufSBhcyBhbnk7XG5BcHBXZWJTb2NrZXQuQ0xPU0VEID0gTmF0aXZlV2ViU29ja2V0LkNMT1NFRDtcbkFwcFdlYlNvY2tldC5DTE9TSU5HID0gTmF0aXZlV2ViU29ja2V0LkNMT1NJTkc7XG5BcHBXZWJTb2NrZXQuQ09OTkVDVElORyA9IE5hdGl2ZVdlYlNvY2tldC5DT05ORUNUSU5HO1xuQXBwV2ViU29ja2V0Lk9QRU4gPSBOYXRpdmVXZWJTb2NrZXQuT1BFTjtcblxuZXhwb3J0IGZ1bmN0aW9uIGlzTXV0YXRpb25PcGVyYXRpb24ob3BlcmF0aW9uOiBPcGVyYXRpb24pIHtcbiAgY29uc3QgZGVmID0gZ2V0TWFpbkRlZmluaXRpb24ob3BlcmF0aW9uLnF1ZXJ5KTtcbiAgcmV0dXJuIGRlZi5raW5kID09PSAnT3BlcmF0aW9uRGVmaW5pdGlvbicgJiYgZGVmLm9wZXJhdGlvbiA9PT0gJ211dGF0aW9uJztcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGlzU3Vic2NyaXB0aW9uT3BlcmF0aW9uKG9wZXJhdGlvbjogT3BlcmF0aW9uKSB7XG4gIGNvbnN0IGRlZiA9IGdldE1haW5EZWZpbml0aW9uKG9wZXJhdGlvbi5xdWVyeSk7XG4gIHJldHVybiBkZWYua2luZCA9PT0gJ09wZXJhdGlvbkRlZmluaXRpb24nICYmIGRlZi5vcGVyYXRpb24gPT09ICdzdWJzY3JpcHRpb24nO1xufVxuXG5cbmV4cG9ydCBpbnRlcmZhY2UgVHJhY2tlZFF1ZXJ5IHtcbiAgaWQ6IHN0cmluZztcbiAgbmFtZTogc3RyaW5nO1xuICBxdWVyeUpTT046IHN0cmluZztcbiAgdmFyaWFibGVzSlNPTjogc3RyaW5nO1xuICBjb250ZXh0SlNPTjogc3RyaW5nO1xufVxuXG5leHBvcnQgY29uc3QgVFJBQ0tFRF9RVUVSSUVTX1NUT1JBR0VfS0VZID0gJ2Fwb2xsby10cmFja2VyLXBlcnNpc3QnO1xuXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlVHJhY2tlckxpbmsob3B0czoge1xuICBzdG9yYWdlPzogUGVyc2lzdGVudFN0b3JhZ2U8c3RyaW5nPjtcbiAgb25OZXR3b3JrU3RhdHVzQ2hhbmdlOiBPYnNlcnZhYmxlPENvbm5lY3Rpb25UeXBlPjtcbiAgZGVib3VuY2U/OiBudW1iZXI7XG4gIGRlYnVnPzogYm9vbGVhbjtcbiAgfSk6IEFwb2xsb0xpbmsge1xuXG4gIGNvbnN0IHRyYWNrZWRRdWVyaWVzVXBkYXRlZCA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcbiAgY29uc3QgdHJhY2tlZFF1ZXJpZXNCeUlkOiB7W2lkOiBzdHJpbmddOiBUcmFja2VkUXVlcnl9ID0ge307XG5cbiAgY29uc3QgbmV0d29ya1N0YXR1c1N1YmplY3QgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PHN0cmluZz4oJ25vbmUnKTtcbiAgb3B0cy5vbk5ldHdvcmtTdGF0dXNDaGFuZ2Uuc3Vic2NyaWJlKHR5cGUgPT4gbmV0d29ya1N0YXR1c1N1YmplY3QubmV4dCh0eXBlKSk7XG5cbiAgLy8gU2F2ZSBwZW5kaW5nIGFuZCB0cmFja2VkIHF1ZXJpZXMgaW4gc3RvcmFnZVxuICB0cmFja2VkUXVlcmllc1VwZGF0ZWQucGlwZShcbiAgICBkZWJvdW5jZVRpbWUob3B0cy5kZWJvdW5jZSB8fCAxMDAwKSxcbiAgICBzd2l0Y2hNYXAoKCkgPT4gbmV0d29ya1N0YXR1c1N1YmplY3QpLFxuICAgIC8vIENvbnRpbnVlIGlmIG9mZmxpbmVcbiAgICBmaWx0ZXIoKHR5cGUpID0+IHR5cGUgPT09ICdub25lJyAmJiAhIW9wdHMuc3RvcmFnZSlcbiAgKS5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgY29uc3QgdHJhY2tlZFF1ZXJpZXMgPSBPYmplY3QuZ2V0T3duUHJvcGVydHlOYW1lcyh0cmFja2VkUXVlcmllc0J5SWQpXG4gICAgICAgIC5tYXAoa2V5ID0+IHRyYWNrZWRRdWVyaWVzQnlJZFtrZXldKVxuICAgICAgICAuZmlsdGVyKHZhbHVlID0+IHZhbHVlICE9PSB1bmRlZmluZWQpO1xuICAgICAgaWYgKG9wdHMuZGVidWcpIGNvbnNvbGUuZGVidWcoJ1thcG9sbG8tdHJhY2tlci1saW5rXSBTYXZpbmcgdHJhY2tlZCBxdWVyaWVzIHRvIHN0b3JhZ2UnLCB0cmFja2VkUXVlcmllcyk7XG4gICAgICByZXR1cm4gb3B0cy5zdG9yYWdlLnNldEl0ZW0oVFJBQ0tFRF9RVUVSSUVTX1NUT1JBR0VfS0VZLCBKU09OLnN0cmluZ2lmeSh0cmFja2VkUXVlcmllcykpO1xuICAgIH0pO1xuXG4gIHJldHVybiBuZXcgQXBvbGxvTGluaygob3BlcmF0aW9uOiBPcGVyYXRpb24sIGZvcndhcmQ6IE5leHRMaW5rKSA9PiB7XG4gICAgY29uc3QgY29udGV4dCA9IG9wZXJhdGlvbi5nZXRDb250ZXh0KCk7XG5cbiAgICAvLyBTa2lwIGlmIG5vdCB0cmFja2VkXG4gICAgaWYgKCFjb250ZXh0IHx8ICFjb250ZXh0LnRyYWNrZWQpIHJldHVybiBmb3J3YXJkKG9wZXJhdGlvbik7XG5cbiAgICBjb25zdCBpZCA9IGNvbnRleHQuc2VyaWFsaXphdGlvbktleSB8fCB1dWlkdjQoKTtcbiAgICBjb25zb2xlLmRlYnVnKGBbYXBvbGxvLXRyYWNrZXItbGlua10gV2F0Y2hpbmcgdHJhY2tlZCBxdWVyeSB7JHtvcGVyYXRpb24ub3BlcmF0aW9uTmFtZX0jJHtpZH19YCk7XG5cbiAgICAvLyBDbGVhbiBjb250ZXh0LCBiZWZvcmUgY2FsbGluZyBKU09OLnN0cmluZ2lmeSAocmVtb3ZlIHVudXNlZCBhdHRyaWJ1dGVzKVxuICAgIGNvbnN0IGNsZWFuQ29udGV4dCA9IHsgLi4uY29udGV4dCwgLi4ue29wdGltaXN0aWNSZXNwb25zZTogbnVsbCwgY2FjaGU6IG51bGx9IH07XG5cbiAgICBjb25zdCB0cmFja2VkUXVlcnk6IFRyYWNrZWRRdWVyeSA9IHtcbiAgICAgIGlkLFxuICAgICAgbmFtZTogb3BlcmF0aW9uLm9wZXJhdGlvbk5hbWUsXG4gICAgICBxdWVyeUpTT046IEpTT04uc3RyaW5naWZ5KG9wZXJhdGlvbi5xdWVyeSksXG4gICAgICB2YXJpYWJsZXNKU09OOiBKU09OLnN0cmluZ2lmeShvcGVyYXRpb24udmFyaWFibGVzKSxcbiAgICAgIGNvbnRleHRKU09OOiBKU09OLnN0cmluZ2lmeShjbGVhbkNvbnRleHQpXG4gICAgfTtcblxuICAgIC8vIEFkZCB0byBtYXBcbiAgICB0cmFja2VkUXVlcmllc0J5SWRbaWRdID0gdHJhY2tlZFF1ZXJ5O1xuICAgIHRyYWNrZWRRdWVyaWVzVXBkYXRlZC5lbWl0KCk7XG5cbiAgICBjb25zdCBuZXh0T3BlcmF0aW9uID0gZm9yd2FyZChvcGVyYXRpb24pXG4gICAgICAubWFwKGRhdGEgPT4ge1xuICAgICAgICBjb25zb2xlLmRlYnVnKGBbYXBvbGxvLXRyYWNrZXItbGlua10gUXVlcnkgeyR7b3BlcmF0aW9uLm9wZXJhdGlvbk5hbWV9IyR7aWR9fSBzdWNjZWVkIWAsIGRhdGEpO1xuICAgICAgICBkZWxldGUgdHJhY2tlZFF1ZXJpZXNCeUlkW2lkXTtcbiAgICAgICAgdHJhY2tlZFF1ZXJpZXNVcGRhdGVkLmVtaXQodHJhY2tlZFF1ZXJpZXNCeUlkKTsgLy8gdXBkYXRlXG5cbiAgICAgICAgcmV0dXJuIGRhdGE7XG4gICAgICB9KTtcblxuICAgIC8vIElmIG9mZmxpbmUsIHJldHVybiB0aGUgb3B0aW1pc3RpYyByZXNwb25zZVxuICAgIGlmIChuZXR3b3JrU3RhdHVzU3ViamVjdC5nZXRWYWx1ZSgpID09PSAnbm9uZScpIHtcbiAgICAgIGlmIChjb250ZXh0Lm9wdGltaXN0aWNSZXNwb25zZSkge1xuICAgICAgICBjb25zb2xlLmRlYnVnKGBbYXBvbGxvLXRyYWNrZXItbGlua10gUXVlcnkgeyR7b3BlcmF0aW9uLm9wZXJhdGlvbk5hbWV9IyR7aWR9fSBoYXMgb3B0aW1pc3RpYyByZXNwb25zZTogYCwgY29udGV4dC5vcHRpbWlzdGljUmVzcG9uc2UpO1xuICAgICAgfVxuICAgICAgZWxzZSB7XG4gICAgICAgIGNvbnNvbGUud2FybihgW2Fwb2xsby10cmFja2VyLWxpbmtdIFF1ZXJ5IHske29wZXJhdGlvbi5vcGVyYXRpb25OYW1lfSMke2lkfX0gbWlzc2luZyAnY29udGV4dC5vcHRpbWlzdGljUmVzcG9uc2UnOiB3YWl0aW5nIG5ldHdvcmsgVVAgYmVmb3JlIHRvIGNvbnRpbnVlLi4uYCk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIG5leHRPcGVyYXRpb247XG4gIH0pO1xufVxuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gcmVzdG9yZVRyYWNrZWRRdWVyaWVzKG9wdHM6IHtcbiAgYXBvbGxvQ2xpZW50OiBBcG9sbG9DbGllbnQ8YW55PjtcbiAgc3RvcmFnZTogUGVyc2lzdGVudFN0b3JhZ2U8YW55PjtcbiAgZGVidWc/OiBib29sZWFuO1xufSkge1xuXG4gIGNvbnN0IGxpc3QgPSBKU09OLnBhcnNlKGF3YWl0IG9wdHMuc3RvcmFnZS5nZXRJdGVtKFRSQUNLRURfUVVFUklFU19TVE9SQUdFX0tFWSkpIGFzIFRyYWNrZWRRdWVyeVtdO1xuXG4gIGlmICghbGlzdCkgcmV0dXJuO1xuICBpZiAob3B0cy5kZWJ1ZykgY29uc29sZS5kZWJ1ZygnW2Fwb2xsby10cmFja2VyLWxpbmtdIFJlc3RvcmluZyB0cmFja2VkIHF1ZXJpZXMnLCBsaXN0KTtcblxuICBjb25zdCBwcm9taXNlcyA9IChsaXN0IHx8IFtdKS5tYXAodHJhY2tlZFF1ZXJ5ID0+IHtcbiAgICBjb25zdCBjb250ZXh0ID0gSlNPTi5wYXJzZSh0cmFja2VkUXVlcnkuY29udGV4dEpTT04pO1xuICAgIGNvbnN0IHF1ZXJ5ID0gSlNPTi5wYXJzZSh0cmFja2VkUXVlcnkucXVlcnlKU09OKTtcbiAgICBjb25zdCB2YXJpYWJsZXMgPSBKU09OLnBhcnNlKHRyYWNrZWRRdWVyeS52YXJpYWJsZXNKU09OKTtcbiAgICByZXR1cm4gb3B0cy5hcG9sbG9DbGllbnQubXV0YXRlKHtcbiAgICAgIGNvbnRleHQsXG4gICAgICBtdXRhdGlvbjogcXVlcnksXG4gICAgICBvcHRpbWlzdGljUmVzcG9uc2U6IGNvbnRleHQub3B0aW1pc3RpY1Jlc3BvbnNlLFxuICAgICAgLy91cGRhdGU6IHVwZGF0ZUhhbmRsZXJCeU5hbWVbdHJhY2tlZFF1ZXJ5Lm5hbWVdLFxuICAgICAgdmFyaWFibGVzLFxuICAgIH0pO1xuICB9KTtcblxuICByZXR1cm4gUHJvbWlzZS5hbGwocHJvbWlzZXMpO1xufVxuIl19
|
|
@@ -1,16 +1,15 @@
|
|
|
1
1
|
import { __awaiter } from "tslib";
|
|
2
2
|
import { Inject, Injectable } from '@angular/core';
|
|
3
3
|
import { Platform } from '@ionic/angular';
|
|
4
|
-
import * as uuidv4Imported from 'uuid/v4';
|
|
5
4
|
import { ImagesUtils } from './images.utils';
|
|
6
5
|
import { chainPromises, firstNotNilPromise } from '../observables';
|
|
7
6
|
import { HttpClient } from '@angular/common/http';
|
|
8
7
|
import { ENVIRONMENT } from '../../../environments/environment.class';
|
|
8
|
+
import { uuidv4 } from '../../vendor';
|
|
9
9
|
import * as i0 from "@angular/core";
|
|
10
10
|
import * as i1 from "@ionic/angular";
|
|
11
11
|
import * as i2 from "@angular/common/http";
|
|
12
12
|
import * as i3 from "../../../environments/environment.class";
|
|
13
|
-
const uuidv4 = uuidv4Imported;
|
|
14
13
|
export class FileService {
|
|
15
14
|
constructor(platform,
|
|
16
15
|
//private transfer: FileTransfer,
|
|
@@ -118,4 +117,4 @@ FileService.ctorParameters = () => [
|
|
|
118
117
|
{ type: HttpClient },
|
|
119
118
|
{ type: undefined, decorators: [{ type: Inject, args: [ENVIRONMENT,] }] }
|
|
120
119
|
];
|
|
121
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsZS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2FwcC9zaGFyZWQvZmlsZS9maWxlLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBQyxNQUFNLEVBQUUsVUFBVSxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQ2pELE9BQU8sRUFBQyxRQUFRLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUN4QyxPQUFPLEtBQUssY0FBYyxNQUFNLFNBQVMsQ0FBQztBQUMxQyxPQUFPLEVBQUMsV0FBVyxFQUFxQixNQUFNLGdCQUFnQixDQUFDO0FBQy9ELE9BQU8sRUFBQyxhQUFhLEVBQUUsa0JBQWtCLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUNqRSxPQUFPLEVBQUMsVUFBVSxFQUFDLE1BQU0sc0JBQXNCLENBQUM7QUFDaEQsT0FBTyxFQUFDLFdBQVcsRUFBQyxNQUFNLHlDQUF5QyxDQUFDOzs7OztBQUVwRSxNQUFNLE1BQU0sR0FBRyxjQUFjLENBQUM7QUFTOUIsTUFBTSxPQUFPLFdBQVc7SUFhdEIsWUFDVSxRQUFrQjtJQUMxQixpQ0FBaUM7SUFDakMsaUNBQWlDO0lBQ3pCLElBQWdCLEVBQ08sV0FBVztRQUpsQyxhQUFRLEdBQVIsUUFBUSxDQUFVO1FBR2xCLFNBQUksR0FBSixJQUFJLENBQVk7UUFDTyxnQkFBVyxHQUFYLFdBQVcsQ0FBQTtRQWZwQyxhQUFRLEdBQUcsS0FBSyxDQUFDO1FBaUJ2QixJQUFJLENBQUMsTUFBTSxHQUFHLENBQUMsV0FBVyxDQUFDLFVBQVUsQ0FBQztRQUV0QyxRQUFRLENBQUMsS0FBSyxFQUFFLENBQUMsSUFBSSxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDO0lBQzVDLENBQUM7SUFoQkQsSUFBSSxnQkFBZ0I7UUFDbEIsT0FBTyxLQUFLLENBQUM7UUFDYixnQ0FBZ0M7UUFDaEMsbUNBQW1DO0lB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Q0FBQyxvQkFBb0IsQ0FBQyxPQUFPLEVBQUUsSUFBSSxDQUFDLENBQUM7Z0JBQ3RFLElBQUksS0FBSztvQkFBRSxPQUFPLENBQUMsS0FBSyxDQUFDLDBCQUEwQixPQUFPLFVBQVUsVUFBVSxZQUFZLElBQUksQ0FBQyxHQUFHLEVBQUUsR0FBRyxHQUFHLElBQUksQ0FBQyxDQUFDO2dCQUNoSCxPQUFPLE9BQU8sQ0FBQzthQUNoQjtZQUVELG9CQUFvQjtZQUNwQixPQUFPLE9BQU8sQ0FBQztRQUNqQixDQUFDO0tBQUE7SUFFRCw2QkFBNkI7SUFFbkIsS0FBSztRQUViLHFCQUFxQjtRQUNyQixJQUFJLElBQUksQ0FBQyxnQkFBZ0IsRUFBRTtZQUN6QixpRkFBaUY7WUFDakYsZ0dBQWdHO1lBQ2hHLG1FQUFtRTtZQUVuRSxnRUFBZ0U7WUFDaEUscUJBQXFCO1lBQ3JCLGtFQUFrRTtZQUNsRSwrREFBK0Q7WUFDL0QsT0FBTztZQUNQLG9CQUFvQjtZQUNwQiw2SUFBNkk7WUFDN0ksc0RBQXNEO1lBQ3RELFFBQVE7U0FDVDtRQUVELElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDO0lBQ3ZCLENBQUM7Ozs7WUF4SEYsVUFBVSxTQUFDO2dCQUNWLFVBQVUsRUFBRSxNQUFNO2dCQUNsQixJQUFJLEVBQUU7b0JBQ0osUUFBUTtvQkFDUixVQUFVO2lCQUNYO2FBQ0Y7OztZQWZPLFFBQVE7WUFJUixVQUFVOzRDQThCYixNQUFNLFNBQUMsV0FBVyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7SW5qZWN0LCBJbmplY3RhYmxlfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7UGxhdGZvcm19IGZyb20gJ0Bpb25pYy9hbmd1bGFyJztcbmltcG9ydCAqIGFzIHV1aWR2NEltcG9ydGVkIGZyb20gJ3V1aWQvdjQnO1xuaW1wb3J0IHtJbWFnZXNVdGlscywgSW1hZ2VSZXNpemVPcHRpb25zfSBmcm9tICcuL2ltYWdlcy51dGlscyc7XG5pbXBvcnQge2NoYWluUHJvbWlzZXMsIGZpcnN0Tm90TmlsUHJvbWlzZX0gZnJvbSAnLi4vb2JzZXJ2YWJsZXMnO1xuaW1wb3J0IHtIdHRwQ2xpZW50fSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XG5pbXBvcnQge0VOVklST05NRU5UfSBmcm9tICcuLi8uLi8uLi9lbnZpcm9ubWVudHMvZW52aXJvbm1lbnQuY2xhc3MnO1xuXG5jb25zdCB1dWlkdjQgPSB1dWlkdjRJbXBvcnRlZDtcblxuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCcsXG4gIGRlcHM6IFtcbiAgICBQbGF0Zm9ybSxcbiAgICBIdHRwQ2xpZW50XG4gIF1cbn0pXG5leHBvcnQgY2xhc3MgRmlsZVNlcnZpY2Uge1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgX2RlYnVnOiBib29sZWFuO1xuICBwcml2YXRlIF9zdGFydGVkID0gZmFsc2U7XG5cbiAgcHJpdmF0ZSBfaW1hZ2VEaXJlY3Rvcnk6IHN0cmluZztcblxuICBnZXQgY2FuVXNlRmlsZVN5c3RlbSgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gICAgLy8gRklYTUU6IHNlZW1zIG5vdCB3b3JraW5nIHdlbGxcbiAgICAvL3JldHVybiAhIXRoaXMuZmlsZS5kYXRhRGlyZWN0b3J5O1xuICB9XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBwbGF0Zm9ybTogUGxhdGZvcm0sXG4gICAgLy9wcml2YXRlIHRyYW5zZmVyOiBGaWxlVHJhbnNmZXIsXG4gICAgLy9AT3B0aW9uYWwoKSBwcml2YXRlIGZpbGU6IEZpbGUsXG4gICAgcHJpdmF0ZSBodHRwOiBIdHRwQ2xpZW50LFxuICAgIEBJbmplY3QoRU5WSVJPTk1FTlQpIHByb3RlY3RlZCBlbnZpcm9ubWVudCkge1xuXG4gICAgdGhpcy5fZGVidWcgPSAhZW52aXJvbm1lbnQucHJvZHVjdGlvbjtcblxuICAgIHBsYXRmb3JtLnJlYWR5KCkudGhlbigoKSA9PiB0aGlzLnN0YXJ0KCkpO1xuICB9XG5cbiAgZ2V0SW1hZ2VzKHNvdXJjZXM6IHN0cmluZ1tdLCBvcHRzPzogSW1hZ2VSZXNpemVPcHRpb25zICYge1xuICAgIG91dHB1dFR5cGU/OiAnZmlsZVVybCcgfCAnZGF0YVVybCc7XG4gIH0pOiBQcm9taXNlPHN0cmluZ1tdPiB7XG4gICAgaWYgKCF0aGlzLl9zdGFydGVkKSB0aHJvdyBuZXcgRXJyb3IoJ1BsYXRmb3JtIG11c3QgYmUgc3RhcnRlZCBmaXJzdCEnKTtcblxuICAgIC8vY29uc3QgZmlsZVRyYW5zZmVyID0gdGhpcy5jYW5Vc2VGaWxlU3lzdGVtID8gdGhpcy50cmFuc2Zlci5jcmVhdGUoKSA6IHVuZGVmaW5lZDtcbiAgICAvL2NvbnN0IGpvYnNGYWN0b3JpZXMgPSAoc291cmNlcyB8fCBbXSkubWFwKHNvdXJjZSA9PiAoKSA9PiB0aGlzLmdldEltYWdlKHNvdXJjZSwgey4uLm9wdHMsIGZpbGVUcmFuc2Zlcn0pKTtcblxuICAgIGNvbnN0IGpvYnNGYWN0b3JpZXMgPSAoc291cmNlcyB8fCBbXSkubWFwKHNvdXJjZSA9PiAoKSA9PiB0aGlzLmdldEltYWdlKHNvdXJjZSwgey4uLm9wdHN9KSk7XG4gICAgcmV0dXJuIGNoYWluUHJvbWlzZXM8c3RyaW5nPihqb2JzRmFjdG9yaWVzKTtcbiAgfVxuXG4gIGFzeW5jIGdldEltYWdlKGZpbGVVcmw6IHN0cmluZywgb3B0cz86IEltYWdlUmVzaXplT3B0aW9ucyAmIHtcbiAgICBvdXRwdXRUeXBlPzogJ2ZpbGVVcmwnIHwgJ2RhdGFVcmwnO1xuICAgIH0pOiBQcm9taXNlPHN0cmluZz4ge1xuXG4gICAgbGV0IG91dHB1dFR5cGUgPSBvcHRzICYmIG9wdHMub3V0cHV0VHlwZSB8fCAodGhpcy5jYW5Vc2VGaWxlU3lzdGVtID8gJ2ZpbGVVcmwnIDogJ2RhdGFVcmwnKTtcblxuICAgIGNvbnN0IGRlYnVnID0gdGhpcy5fZGVidWcgLyomJiAoIW9wdHMgfHwgIW9wdHMuZmlsZVRyYW5zZmVyKSovO1xuICAgIGNvbnN0IG5vdyA9IGRlYnVnICYmIERhdGUubm93KCk7XG4gICAgaWYgKGRlYnVnKSBjb25zb2xlLmRlYnVnKGBbZmlsZV0gRmV0Y2hpbmcgaW1hZ2UgeyR7ZmlsZVVybH19IGludG8gJHtvdXRwdXRUeXBlfS4uLmApO1xuXG4gICAgLy8gUmVhZCB0aGUgZmlsZW5hbWVcbiAgICBjb25zdCBsYXN0U2xhc2hJbmRleCA9IGZpbGVVcmwubGFzdEluZGV4T2YoJy8nKTtcbiAgICBpZiAobGFzdFNsYXNoSW5kZXggPT09IC0xKSB0aHJvdyBuZXcgRXJyb3IoJ0ludmFsaWQgVVJMOiAnICsgZmlsZVVybCk7XG4gICAgY29uc3QgZmlsZU5hbWUgPSBsYXN0U2xhc2hJbmRleCA8IChmaWxlVXJsLmxlbmd0aCAtIDEpICYmIGZpbGVVcmwuc3Vic3RyaW5nKGxhc3RTbGFzaEluZGV4ICsgMSkgfHwgdXVpZHY0KCk7XG5cblxuICAgIC8vIERvd25sb2FkIGludG8gdGhlIGZpbGUgc3lzdGVtXG4gICAgaWYgKG91dHB1dFR5cGUgPT09ICdmaWxlVXJsJyAmJiB0aGlzLmNhblVzZUZpbGVTeXN0ZW0pIHtcbiAgICAgIGNvbnNvbGUud2FybihgV0FSTjogW2ZpbGVdIERvd25sb2FkaW5nIGltYWdlIHske2ZpbGVVcmx9fSBpbiBsb2NhbCBmaWxlc3lzdGVtLi4uYCk7XG4gICAgICBjb25zdCB0YXJnZXRGaWxlUGF0aCA9IHRoaXMuX2ltYWdlRGlyZWN0b3J5ICsgZmlsZU5hbWU7XG4gICAgICB0cnkge1xuICAgICAgICBjb25zdCBibG9iOiBCbG9iID0gYXdhaXQgZmlyc3ROb3ROaWxQcm9taXNlKHRoaXMuaHR0cC5nZXQoZmlsZVVybCwge1xuICAgICAgICAgIG9ic2VydmU6ICdib2R5JyxcbiAgICAgICAgICByZXNwb25zZVR5cGU6ICdibG9iJyxcbiAgICAgICAgICByZXBvcnRQcm9ncmVzczogZmFsc2VcbiAgICAgICAgfSkpO1xuICAgICAgICBjb25zb2xlLmRlYnVnKCdbZmlsZV0gR2V0dGluZyBibG9iIDonICsgYmxvYi50eXBlKTtcblxuICAgICAgICAvL2F3YWl0IHRoaXMuZmlsZS53cml0ZUZpbGUodGhpcy5faW1hZ2VEaXJlY3RvcnksIGZpbGVOYW1lLCBibG9iLCB7cmVwbGFjZTogdHJ1ZX0pO1xuXG4gICAgICAgIC8vY29uc3QgZmlsZVRyYW5zZmVyID0gKG9wdHMgJiYgb3B0cy5maWxlVHJhbnNmZXIpIHx8IHRoaXMudHJhbnNmZXIuY3JlYXRlKCk7XG4gICAgICAgIC8vYXdhaXQgZmlsZVRyYW5zZmVyLmRvd25sb2FkKHNvdXJjZSwgdGFyZ2V0RmlsZVBhdGgpO1xuICAgICAgICBpZiAoZGVidWcpIGNvbnNvbGUuZGVidWcoYFtmaWxlXSBGZXRjaGluZyBpbWFnZSB7JHtmaWxlVXJsfX0gaW50byAke291dHB1dFR5cGV9IFtPS10gaW4gJHtEYXRlLm5vdygpIC0gbm93fW1zYCk7XG4gICAgICAgIHJldHVybiB0YXJnZXRGaWxlUGF0aDtcbiAgICAgIH1cbiAgICAgIGNhdGNoIChlcnIpIHtcbiAgICAgICAgY29uc29sZS5lcnJvcihgW2ZpbGVdIEVycm9yIHdoaWxlIGRvd25sb2FkICR7ZmlsZVVybH06ICR7ZXJyICYmIGVyci5tZXNzYWdlIHx8IGVycn1gKTtcblxuICAgICAgICAvLyBDb250aW51ZSAoZmFsbGJhY2sgdG8gZGF0YSBVcmwpXG4gICAgICAgIG91dHB1dFR5cGUgPSAnZGF0YVVybCc7XG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYgKG91dHB1dFR5cGUgPT09ICdkYXRhVXJsJykge1xuICAgICAgLy8gR2V0IGFzIGRhdGEgdXJsIChlLmcuICdkYXRhOmltYWdlL3BuZzouLi4nKVxuICAgICAgY29uc3QgZGF0YVVybCA9IGF3YWl0IEltYWdlc1V0aWxzLnJlYWRBbmRSZXNpemVGcm9tVXJsKGZpbGVVcmwsIG9wdHMpO1xuICAgICAgaWYgKGRlYnVnKSBjb25zb2xlLmRlYnVnKGBbZmlsZV0gRmV0Y2hpbmcgaW1hZ2UgeyR7ZmlsZVVybH19IGludG8gJHtvdXRwdXRUeXBlfSBbT0tdIGluICR7RGF0ZS5ub3coKSAtIG5vd31tc2ApO1xuICAgICAgcmV0dXJuIGRhdGFVcmw7XG4gICAgfVxuXG4gICAgLy8gS2VlcCBvcmlnaW5hbCBVUkxcbiAgICByZXR1cm4gZmlsZVVybDtcbiAgfVxuXG4gIC8qIC0tIHByb3RlY3RlZCBtZXRob2RzIC0tICovXG5cbiAgcHJvdGVjdGVkIHN0YXJ0KCkge1xuXG4gICAgLy8gRmlsZSBzeXN0ZW0gZXhpc3RzXG4gICAgaWYgKHRoaXMuY2FuVXNlRmlsZVN5c3RlbSkge1xuICAgICAgLy9jb25zb2xlLmluZm8oXCJbZmlsZV0gQXBwbGljYXRpb24gZGlyZWN0b3J5OiBcIiwgdGhpcy5maWxlLmFwcGxpY2F0aW9uRGlyZWN0b3J5KTtcbiAgICAgIC8vY29uc29sZS5pbmZvKFwiW2ZpbGVdIEFwcGxpY2F0aW9uIHN0b3JhZ2UgZGlyZWN0b3J5OiBcIiwgdGhpcy5maWxlLmFwcGxpY2F0aW9uU3RvcmFnZURpcmVjdG9yeSk7XG4gICAgICAvL2NvbnNvbGUuaW5mbyhcIltmaWxlXSBEYXRhIGRpcmVjdG9yeTogXCIsIHRoaXMuZmlsZS5kYXRhRGlyZWN0b3J5KTtcblxuICAgICAgLy8gdGhpcy5maWxlLmNyZWF0ZURpcih0aGlzLmZpbGUuZGF0YURpcmVjdG9yeSwgJ2ltYWdlcycsIGZhbHNlKVxuICAgICAgLy8gICAudGhlbigoZGlyKSA9PiB7XG4gICAgICAvLyAgICAgdGhpcy5faW1hZ2VEaXJlY3RvcnkgPSB0aGlzLmZpbGUuZGF0YURpcmVjdG9yeSArICdpbWFnZXMvJztcbiAgICAgIC8vICAgICBjb25zb2xlLmluZm8oXCJbZmlsZV0gSW1hZ2VzIGRpcmVjdG9yeTogXCIsIGRpci5mdWxsUGF0aCk7XG4gICAgICAvLyAgIH0pXG4gICAgICAvLyAgIC5jYXRjaChlcnIgPT4ge1xuICAgICAgLy8gICAgIGNvbnNvbGUuZXJyb3IoXCJbZmlsZV0gQ2Fubm90IGNyZWF0ZSB0aGUgaW1hZ2VzIGRpcmVjdG9yeTogXCIgKyAodGhpcy5maWxlLmRhdGFEaXJlY3RvcnkgKyAnaW1hZ2VzLyA6ICcgKyAoZXJyICYmIGVyci5tZXNzYWdlIHx8IGVycikpKTtcbiAgICAgIC8vICAgICB0aGlzLl9pbWFnZURpcmVjdG9yeSA9IHRoaXMuZmlsZS5kYXRhRGlyZWN0b3J5O1xuICAgICAgLy8gICB9KTtcbiAgICB9XG5cbiAgICB0aGlzLl9zdGFydGVkID0gdHJ1ZTtcbiAgfVxuXG59XG4iXX0=
|
|
120
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsZS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2FwcC9zaGFyZWQvZmlsZS9maWxlLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBQyxNQUFNLEVBQUUsVUFBVSxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQ2pELE9BQU8sRUFBQyxRQUFRLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUN4QyxPQUFPLEVBQUMsV0FBVyxFQUFxQixNQUFNLGdCQUFnQixDQUFDO0FBQy9ELE9BQU8sRUFBQyxhQUFhLEVBQUUsa0JBQWtCLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUNqRSxPQUFPLEVBQUMsVUFBVSxFQUFDLE1BQU0sc0JBQXNCLENBQUM7QUFDaEQsT0FBTyxFQUFDLFdBQVcsRUFBQyxNQUFNLHlDQUF5QyxDQUFDO0FBQ3BFLE9BQU8sRUFBQyxNQUFNLEVBQUMsTUFBTSxjQUFjLENBQUM7Ozs7O0FBU3BDLE1BQU0sT0FBTyxXQUFXO0lBYXRCLFlBQ1UsUUFBa0I7SUFDMUIsaUNBQWlDO0lBQ2pDLGlDQUFpQztJQUN6QixJQUFnQixFQUNPLFdBQVc7UUFKbEMsYUFBUSxHQUFSLFFBQVEsQ0FBVTtRQUdsQixTQUFJLEdBQUosSUFBSSxDQUFZO1FBQ08sZ0JBQVcsR0FBWCxXQUFXLENBQUE7UUFmcEMsYUFBUSxHQUFHLEtBQUssQ0FBQztRQWlCdkIsSUFBSSxDQUFDLE1BQU0sR0FBRyxDQUFDLFdBQVcsQ0FBQyxVQUFVLENBQUM7UUFFdEMsUUFBUSxDQUFDLEtBQUssRUFBRSxDQUFDLElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQztJQUM1QyxDQUFDO0lBaEJELElBQUksZ0JBQWdCO1FBQ2xCLE9BQU8sS0FBSyxDQUFDO1FBQ2IsZ0NBQWdDO1FBQ2hDLG1DQUFtQztJQUNyQyxDQUFDO0lBY0QsU0FBUyxDQUFDLE9B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LElBQUksQ0FBQyxDQUFDO2dCQUN0RSxJQUFJLEtBQUs7b0JBQUUsT0FBTyxDQUFDLEtBQUssQ0FBQywwQkFBMEIsT0FBTyxVQUFVLFVBQVUsWUFBWSxJQUFJLENBQUMsR0FBRyxFQUFFLEdBQUcsR0FBRyxJQUFJLENBQUMsQ0FBQztnQkFDaEgsT0FBTyxPQUFPLENBQUM7YUFDaEI7WUFFRCxvQkFBb0I7WUFDcEIsT0FBTyxPQUFPLENBQUM7UUFDakIsQ0FBQztLQUFBO0lBRUQsNkJBQTZCO0lBRW5CLEtBQUs7UUFFYixxQkFBcUI7UUFDckIsSUFBSSxJQUFJLENBQUMsZ0JBQWdCLEVBQUU7WUFDekIsaUZBQWlGO1lBQ2pGLGdHQUFnRztZQUNoRyxtRUFBbUU7WUFFbkUsZ0VBQWdFO1lBQ2hFLHFCQUFxQjtZQUNyQixrRUFBa0U7WUFDbEUsK0RBQStEO1lBQy9ELE9BQU87WUFDUCxvQkFBb0I7WUFDcEIsNklBQTZJO1lBQzdJLHNEQUFzRDtZQUN0RCxRQUFRO1NBQ1Q7UUFFRCxJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQztJQUN2QixDQUFDOzs7O1lBeEhGLFVBQVUsU0FBQztnQkFDVixVQUFVLEVBQUUsTUFBTTtnQkFDbEIsSUFBSSxFQUFFO29CQUNKLFFBQVE7b0JBQ1IsVUFBVTtpQkFDWDthQUNGOzs7WUFiTyxRQUFRO1lBR1IsVUFBVTs0Q0E2QmIsTUFBTSxTQUFDLFdBQVciLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0luamVjdCwgSW5qZWN0YWJsZX0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1BsYXRmb3JtfSBmcm9tICdAaW9uaWMvYW5ndWxhcic7XG5pbXBvcnQge0ltYWdlc1V0aWxzLCBJbWFnZVJlc2l6ZU9wdGlvbnN9IGZyb20gJy4vaW1hZ2VzLnV0aWxzJztcbmltcG9ydCB7Y2hhaW5Qcm9taXNlcywgZmlyc3ROb3ROaWxQcm9taXNlfSBmcm9tICcuLi9vYnNlcnZhYmxlcyc7XG5pbXBvcnQge0h0dHBDbGllbnR9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcbmltcG9ydCB7RU5WSVJPTk1FTlR9IGZyb20gJy4uLy4uLy4uL2Vudmlyb25tZW50cy9lbnZpcm9ubWVudC5jbGFzcyc7XG5pbXBvcnQge3V1aWR2NH0gZnJvbSAnLi4vLi4vdmVuZG9yJztcblxuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCcsXG4gIGRlcHM6IFtcbiAgICBQbGF0Zm9ybSxcbiAgICBIdHRwQ2xpZW50XG4gIF1cbn0pXG5leHBvcnQgY2xhc3MgRmlsZVNlcnZpY2Uge1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgX2RlYnVnOiBib29sZWFuO1xuICBwcml2YXRlIF9zdGFydGVkID0gZmFsc2U7XG5cbiAgcHJpdmF0ZSBfaW1hZ2VEaXJlY3Rvcnk6IHN0cmluZztcblxuICBnZXQgY2FuVXNlRmlsZVN5c3RlbSgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gICAgLy8gRklYTUU6IHNlZW1zIG5vdCB3b3JraW5nIHdlbGxcbiAgICAvL3JldHVybiAhIXRoaXMuZmlsZS5kYXRhRGlyZWN0b3J5O1xuICB9XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBwbGF0Zm9ybTogUGxhdGZvcm0sXG4gICAgLy9wcml2YXRlIHRyYW5zZmVyOiBGaWxlVHJhbnNmZXIsXG4gICAgLy9AT3B0aW9uYWwoKSBwcml2YXRlIGZpbGU6IEZpbGUsXG4gICAgcHJpdmF0ZSBodHRwOiBIdHRwQ2xpZW50LFxuICAgIEBJbmplY3QoRU5WSVJPTk1FTlQpIHByb3RlY3RlZCBlbnZpcm9ubWVudCkge1xuXG4gICAgdGhpcy5fZGVidWcgPSAhZW52aXJvbm1lbnQucHJvZHVjdGlvbjtcblxuICAgIHBsYXRmb3JtLnJlYWR5KCkudGhlbigoKSA9PiB0aGlzLnN0YXJ0KCkpO1xuICB9XG5cbiAgZ2V0SW1hZ2VzKHNvdXJjZXM6IHN0cmluZ1tdLCBvcHRzPzogSW1hZ2VSZXNpemVPcHRpb25zICYge1xuICAgIG91dHB1dFR5cGU/OiAnZmlsZVVybCcgfCAnZGF0YVVybCc7XG4gIH0pOiBQcm9taXNlPHN0cmluZ1tdPiB7XG4gICAgaWYgKCF0aGlzLl9zdGFydGVkKSB0aHJvdyBuZXcgRXJyb3IoJ1BsYXRmb3JtIG11c3QgYmUgc3RhcnRlZCBmaXJzdCEnKTtcblxuICAgIC8vY29uc3QgZmlsZVRyYW5zZmVyID0gdGhpcy5jYW5Vc2VGaWxlU3lzdGVtID8gdGhpcy50cmFuc2Zlci5jcmVhdGUoKSA6IHVuZGVmaW5lZDtcbiAgICAvL2NvbnN0IGpvYnNGYWN0b3JpZXMgPSAoc291cmNlcyB8fCBbXSkubWFwKHNvdXJjZSA9PiAoKSA9PiB0aGlzLmdldEltYWdlKHNvdXJjZSwgey4uLm9wdHMsIGZpbGVUcmFuc2Zlcn0pKTtcblxuICAgIGNvbnN0IGpvYnNGYWN0b3JpZXMgPSAoc291cmNlcyB8fCBbXSkubWFwKHNvdXJjZSA9PiAoKSA9PiB0aGlzLmdldEltYWdlKHNvdXJjZSwgey4uLm9wdHN9KSk7XG4gICAgcmV0dXJuIGNoYWluUHJvbWlzZXM8c3RyaW5nPihqb2JzRmFjdG9yaWVzKTtcbiAgfVxuXG4gIGFzeW5jIGdldEltYWdlKGZpbGVVcmw6IHN0cmluZywgb3B0cz86IEltYWdlUmVzaXplT3B0aW9ucyAmIHtcbiAgICBvdXRwdXRUeXBlPzogJ2ZpbGVVcmwnIHwgJ2RhdGFVcmwnO1xuICAgIH0pOiBQcm9taXNlPHN0cmluZz4ge1xuXG4gICAgbGV0IG91dHB1dFR5cGUgPSBvcHRzICYmIG9wdHMub3V0cHV0VHlwZSB8fCAodGhpcy5jYW5Vc2VGaWxlU3lzdGVtID8gJ2ZpbGVVcmwnIDogJ2RhdGFVcmwnKTtcblxuICAgIGNvbnN0IGRlYnVnID0gdGhpcy5fZGVidWcgLyomJiAoIW9wdHMgfHwgIW9wdHMuZmlsZVRyYW5zZmVyKSovO1xuICAgIGNvbnN0IG5vdyA9IGRlYnVnICYmIERhdGUubm93KCk7XG4gICAgaWYgKGRlYnVnKSBjb25zb2xlLmRlYnVnKGBbZmlsZV0gRmV0Y2hpbmcgaW1hZ2UgeyR7ZmlsZVVybH19IGludG8gJHtvdXRwdXRUeXBlfS4uLmApO1xuXG4gICAgLy8gUmVhZCB0aGUgZmlsZW5hbWVcbiAgICBjb25zdCBsYXN0U2xhc2hJbmRleCA9IGZpbGVVcmwubGFzdEluZGV4T2YoJy8nKTtcbiAgICBpZiAobGFzdFNsYXNoSW5kZXggPT09IC0xKSB0aHJvdyBuZXcgRXJyb3IoJ0ludmFsaWQgVVJMOiAnICsgZmlsZVVybCk7XG4gICAgY29uc3QgZmlsZU5hbWUgPSBsYXN0U2xhc2hJbmRleCA8IChmaWxlVXJsLmxlbmd0aCAtIDEpICYmIGZpbGVVcmwuc3Vic3RyaW5nKGxhc3RTbGFzaEluZGV4ICsgMSkgfHwgdXVpZHY0KCk7XG5cblxuICAgIC8vIERvd25sb2FkIGludG8gdGhlIGZpbGUgc3lzdGVtXG4gICAgaWYgKG91dHB1dFR5cGUgPT09ICdmaWxlVXJsJyAmJiB0aGlzLmNhblVzZUZpbGVTeXN0ZW0pIHtcbiAgICAgIGNvbnNvbGUud2FybihgV0FSTjogW2ZpbGVdIERvd25sb2FkaW5nIGltYWdlIHske2ZpbGVVcmx9fSBpbiBsb2NhbCBmaWxlc3lzdGVtLi4uYCk7XG4gICAgICBjb25zdCB0YXJnZXRGaWxlUGF0aCA9IHRoaXMuX2ltYWdlRGlyZWN0b3J5ICsgZmlsZU5hbWU7XG4gICAgICB0cnkge1xuICAgICAgICBjb25zdCBibG9iOiBCbG9iID0gYXdhaXQgZmlyc3ROb3ROaWxQcm9taXNlKHRoaXMuaHR0cC5nZXQoZmlsZVVybCwge1xuICAgICAgICAgIG9ic2VydmU6ICdib2R5JyxcbiAgICAgICAgICByZXNwb25zZVR5cGU6ICdibG9iJyxcbiAgICAgICAgICByZXBvcnRQcm9ncmVzczogZmFsc2VcbiAgICAgICAgfSkpO1xuICAgICAgICBjb25zb2xlLmRlYnVnKCdbZmlsZV0gR2V0dGluZyBibG9iIDonICsgYmxvYi50eXBlKTtcblxuICAgICAgICAvL2F3YWl0IHRoaXMuZmlsZS53cml0ZUZpbGUodGhpcy5faW1hZ2VEaXJlY3RvcnksIGZpbGVOYW1lLCBibG9iLCB7cmVwbGFjZTogdHJ1ZX0pO1xuXG4gICAgICAgIC8vY29uc3QgZmlsZVRyYW5zZmVyID0gKG9wdHMgJiYgb3B0cy5maWxlVHJhbnNmZXIpIHx8IHRoaXMudHJhbnNmZXIuY3JlYXRlKCk7XG4gICAgICAgIC8vYXdhaXQgZmlsZVRyYW5zZmVyLmRvd25sb2FkKHNvdXJjZSwgdGFyZ2V0RmlsZVBhdGgpO1xuICAgICAgICBpZiAoZGVidWcpIGNvbnNvbGUuZGVidWcoYFtmaWxlXSBGZXRjaGluZyBpbWFnZSB7JHtmaWxlVXJsfX0gaW50byAke291dHB1dFR5cGV9IFtPS10gaW4gJHtEYXRlLm5vdygpIC0gbm93fW1zYCk7XG4gICAgICAgIHJldHVybiB0YXJnZXRGaWxlUGF0aDtcbiAgICAgIH1cbiAgICAgIGNhdGNoIChlcnIpIHtcbiAgICAgICAgY29uc29sZS5lcnJvcihgW2ZpbGVdIEVycm9yIHdoaWxlIGRvd25sb2FkICR7ZmlsZVVybH06ICR7ZXJyICYmIGVyci5tZXNzYWdlIHx8IGVycn1gKTtcblxuICAgICAgICAvLyBDb250aW51ZSAoZmFsbGJhY2sgdG8gZGF0YSBVcmwpXG4gICAgICAgIG91dHB1dFR5cGUgPSAnZGF0YVVybCc7XG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYgKG91dHB1dFR5cGUgPT09ICdkYXRhVXJsJykge1xuICAgICAgLy8gR2V0IGFzIGRhdGEgdXJsIChlLmcuICdkYXRhOmltYWdlL3BuZzouLi4nKVxuICAgICAgY29uc3QgZGF0YVVybCA9IGF3YWl0IEltYWdlc1V0aWxzLnJlYWRBbmRSZXNpemVGcm9tVXJsKGZpbGVVcmwsIG9wdHMpO1xuICAgICAgaWYgKGRlYnVnKSBjb25zb2xlLmRlYnVnKGBbZmlsZV0gRmV0Y2hpbmcgaW1hZ2UgeyR7ZmlsZVVybH19IGludG8gJHtvdXRwdXRUeXBlfSBbT0tdIGluICR7RGF0ZS5ub3coKSAtIG5vd31tc2ApO1xuICAgICAgcmV0dXJuIGRhdGFVcmw7XG4gICAgfVxuXG4gICAgLy8gS2VlcCBvcmlnaW5hbCBVUkxcbiAgICByZXR1cm4gZmlsZVVybDtcbiAgfVxuXG4gIC8qIC0tIHByb3RlY3RlZCBtZXRob2RzIC0tICovXG5cbiAgcHJvdGVjdGVkIHN0YXJ0KCkge1xuXG4gICAgLy8gRmlsZSBzeXN0ZW0gZXhpc3RzXG4gICAgaWYgKHRoaXMuY2FuVXNlRmlsZVN5c3RlbSkge1xuICAgICAgLy9jb25zb2xlLmluZm8oXCJbZmlsZV0gQXBwbGljYXRpb24gZGlyZWN0b3J5OiBcIiwgdGhpcy5maWxlLmFwcGxpY2F0aW9uRGlyZWN0b3J5KTtcbiAgICAgIC8vY29uc29sZS5pbmZvKFwiW2ZpbGVdIEFwcGxpY2F0aW9uIHN0b3JhZ2UgZGlyZWN0b3J5OiBcIiwgdGhpcy5maWxlLmFwcGxpY2F0aW9uU3RvcmFnZURpcmVjdG9yeSk7XG4gICAgICAvL2NvbnNvbGUuaW5mbyhcIltmaWxlXSBEYXRhIGRpcmVjdG9yeTogXCIsIHRoaXMuZmlsZS5kYXRhRGlyZWN0b3J5KTtcblxuICAgICAgLy8gdGhpcy5maWxlLmNyZWF0ZURpcih0aGlzLmZpbGUuZGF0YURpcmVjdG9yeSwgJ2ltYWdlcycsIGZhbHNlKVxuICAgICAgLy8gICAudGhlbigoZGlyKSA9PiB7XG4gICAgICAvLyAgICAgdGhpcy5faW1hZ2VEaXJlY3RvcnkgPSB0aGlzLmZpbGUuZGF0YURpcmVjdG9yeSArICdpbWFnZXMvJztcbiAgICAgIC8vICAgICBjb25zb2xlLmluZm8oXCJbZmlsZV0gSW1hZ2VzIGRpcmVjdG9yeTogXCIsIGRpci5mdWxsUGF0aCk7XG4gICAgICAvLyAgIH0pXG4gICAgICAvLyAgIC5jYXRjaChlcnIgPT4ge1xuICAgICAgLy8gICAgIGNvbnNvbGUuZXJyb3IoXCJbZmlsZV0gQ2Fubm90IGNyZWF0ZSB0aGUgaW1hZ2VzIGRpcmVjdG9yeTogXCIgKyAodGhpcy5maWxlLmRhdGFEaXJlY3RvcnkgKyAnaW1hZ2VzLyA6ICcgKyAoZXJyICYmIGVyci5tZXNzYWdlIHx8IGVycikpKTtcbiAgICAgIC8vICAgICB0aGlzLl9pbWFnZURpcmVjdG9yeSA9IHRoaXMuZmlsZS5kYXRhRGlyZWN0b3J5O1xuICAgICAgLy8gICB9KTtcbiAgICB9XG5cbiAgICB0aGlzLl9zdGFydGVkID0gdHJ1ZTtcbiAgfVxuXG59XG4iXX0=
|
|
@@ -44,6 +44,10 @@ export class Color {
|
|
|
44
44
|
return null;
|
|
45
45
|
return new Color([+parts[0], +parts[1], +parts[2]], parts.length === 4 && +parts[3] || 1, 'custom');
|
|
46
46
|
}
|
|
47
|
+
static parseHexa(hexColor) {
|
|
48
|
+
const split = /^#?([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})$/i.exec(hexColor);
|
|
49
|
+
return new Color(split ? split.slice(1, 4).map(i => parseInt(i, 16)) : [0, 0, 0]);
|
|
50
|
+
}
|
|
47
51
|
get name() {
|
|
48
52
|
return this._name;
|
|
49
53
|
}
|
|
@@ -253,4 +257,4 @@ function linearColorGradient(count, options) {
|
|
|
253
257
|
return result;
|
|
254
258
|
}
|
|
255
259
|
export { ɵ0 };
|
|
256
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ3JhcGgtY29sb3JzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2FwcC9zaGFyZWQvZ3JhcGgvZ3JhcGgtY29sb3JzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBQyxLQUFLLEVBQUUsUUFBUSxFQUFDLE1BQU0sY0FBYyxDQUFDO0FBUzdDOztHQUVHO0FBQ0gsTUFBTSxXQUFXLEdBQUc7SUFDbEIsS0FBSyxFQUFFLENBQUMsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLENBQUM7SUFDdEIsT0FBTyxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFHLENBQUM7SUFDdEIsU0FBUyxFQUFFLENBQUMsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLENBQUM7SUFDMUIsUUFBUSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFHLENBQUM7SUFDdkIsTUFBTSxFQUFFLENBQUMsR0FBRyxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUM7SUFDckIsS0FBSyxFQUFFLENBQUMsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLENBQUM7SUFDdEIsTUFBTSxFQUFFLENBQUMsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLENBQUM7SUFDdkIsSUFBSSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUM7SUFDbEIsR0FBRyxFQUFFLENBQUMsR0FBRyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUM7SUFDaEIsS0FBSyxFQUFFLENBQUMsQ0FBQyxFQUFFLEdBQUcsRUFBRSxDQUFDLENBQUM7SUFDbEIsSUFBSSxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxHQUFHLENBQUM7Q0FDbEIsQ0FBQztBQUVGLDhCQUE4QjtBQUM5QixNQUFNLFNBQVMsR0FBNkIsRUFBRSxDQUFDO0FBRy9DOztHQUVHO0FBQ0gsV0FBVztBQUNYLE1BQU0sT0FBTyxLQUFLO0lBNEJoQixZQUNVLFNB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ZXNDb250ZW50IjpbImltcG9ydCB7UHJlZGVmaW5lZENvbG9yc30gZnJvbSAnQGlvbmljL2NvcmUnO1xuaW1wb3J0IHtpc05pbCwgaXNOb3ROaWx9IGZyb20gJy4uL2Z1bmN0aW9ucyc7XG5cbmV4cG9ydCBkZWNsYXJlIHR5cGUgQ29sb3JOYW1lID0gUHJlZGVmaW5lZENvbG9ycyB8XG4gICd3aGl0ZSdcbiAgfCAncmVkJ1xuICB8ICdncmVlbidcbiAgfCAnYmx1ZSc7XG5cblxuLyoqXG4gKiBEZWZpbmUgaGVyZSB0aGVtZSBjb2xvcnNcbiAqL1xuY29uc3QgcmdiQXJyYXlNYXAgPSB7XG4gIHdoaXRlOiBbMjU1LCAyNTUsIDI1NV0sXG4gIHByaW1hcnk6IFsyMCwgNjcsIDE0NV0sIC8vIG9rXG4gIHNlY29uZGFyeTogWzExNywgMTk2LCAyNTNdLCAvLyBva1xuICB0ZXJ0aWFyeTogWzkxLCA5NCwgMjQ0XSwgLy8gb2tcbiAgZGFuZ2VyOiBbMjQ1LCA2MSwgNjFdLCAvLyBva1xuICBsaWdodDogWzI0NCwgMjQ1LCAyNDhdLCAvLyBva1xuICBtZWRpdW06IFsxNTIsIDE1NCwgMTYyXSwgLy8gb2tcbiAgZGFyazogWzM0LCAzNiwgNDBdLCAvLyBva1xuICByZWQ6IFsyNTUsIDAsIDBdLFxuICBncmVlbjogWzAsIDI1NSwgMF0sXG4gIGJsdWU6IFswLCAwLCAyNTVdXG59O1xuXG4vLyBGaWxsIGEgbWFwIG9mIENvbG9yIG9iamVjdHNcbmNvbnN0IGNvbG9yc01hcDogeyBba2V5OiBzdHJpbmddOiBDb2xvciB9ID0ge307XG5cblxuLyoqXG4gKiBVc2VmdWwgY2xhc3MgZm9yIGNvbG9yIGNvbnZlcnNpb25cbiAqL1xuLy8gQGR5bmFtaWNcbmV4cG9ydCBjbGFzcyBDb2xvciB7XG5cbiAgLy8gSGVscGVyIG1ldGhvZCwgdG8gcmV0cmlldmUgYSBjb2xvclxuICBzdGF0aWMgZ2V0KG5hbWU6IENvbG9yTmFtZSk6IENvbG9yIHtcbiAgICByZXR1cm4gY29sb3JzTWFwW25hbWVdIGFzIENvbG9yO1xuICB9XG5cbiAgc3RhdGljIHBhcnNlUmdiYShyZ2JhOiBzdHJpbmcpOiBDb2xvcnxudWxse1xuICAgICAgaWYgKCFyZ2JhIHx8ICghcmdiYS5zdGFydHNXaXRoKCdyZ2IoJykgJiYgIXJnYmEuc3RhcnRzV2l0aCgncmdiYSgnKSkpIHJldHVybiBudWxsO1xuXG4gICAgICAvLyBQYXJzZSBwYXJ0c1xuICAgICAgY29uc3QgcGFydHMgPSByZ2JhXG4gICAgICAgIC5yZXBsYWNlKCdyZ2IoJywgJycpXG4gICAgICAgIC5yZXBsYWNlKCdyZ2JhKCcsICcnKVxuICAgICAgICAucmVwbGFjZSgnKScsICcnKVxuICAgICAgICAuc3BsaXQoJywnKTtcblxuICAgICAgaWYgKHBhcnRzLmxlbmd0aCAhPT0gMyAmJiBwYXJ0cy5sZW5ndGggIT09IDQpIHJldHVybiBudWxsO1xuXG4gICAgICByZXR1cm4gbmV3IENvbG9yKFsrcGFydHNbMF0sICtwYXJ0c1sxXSwgK3BhcnRzWzJdXSxcbiAgICAgICAgcGFydHMubGVuZ3RoID09PSA0ICYmICtwYXJ0c1szXSB8fCAxLFxuICAgICAgICAnY3VzdG9tJyk7XG4gIH1cblxuICBzdGF0aWMgdHJhbnNwYXJlbnQgPSBmdW5jdGlvbigpIHtcbiAgICByZXR1cm4gbmV3IENvbG9yKFswLDAsMF0sIDAsICd0cmFuc2x1Y2VudCcpO1xuICB9O1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgX3JnYkFycmF5OiBudW1iZXJbXSxcbiAgICBwcml2YXRlIF9vcGFjaXR5PzogbnVtYmVyLFxuICAgIHByaXZhdGUgX25hbWU6IHN0cmluZyA9ICdjdXN0b20nXG4gICkge1xuICB9XG4gIGdldCBuYW1lKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuX25hbWU7XG4gIH1cbiAgZ2V0IG9wYWNpdHkoKTogbnVtYmVye1xuICAgIHJldHVybiBpc05vdE5pbCh0aGlzLl9vcGFjaXR5KSA/IHRoaXMuX29wYWNpdHkgOiAxO1xuICB9XG4gIGdldCByZ2IoKTogbnVtYmVyW10ge1xuICAgIHJldHVybiB0aGlzLl9yZ2JBcnJheTtcbiAgfVxuXG4gIGdldCByKCk6IG51bWJlciB7XG4gICAgcmV0dXJuIHRoaXMuX3JnYkFycmF5WzBdO1xuICB9XG5cbiAgZ2V0IGcoKTogbnVtYmVyIHtcbiAgICByZXR1cm4gdGhpcy5fcmdiQXJyYXlbMV07XG4gIH1cblxuICBnZXQgYigpOiBudW1iZXIge1xuICAgIHJldHVybiB0aGlzLl9yZ2JBcnJheVsyXTtcbiAgfVxuXG4gIHJnYmEob3BhY2l0eT86IG51bWJlcik6IHN0cmluZyB7XG4gICAgb3BhY2l0eSA9IGlzTm90TmlsKG9wYWNpdHkpID8gb3BhY2l0eSA6IHRoaXMuX29wYWNpdHk7XG4gICAgaWYgKGlzTmlsKG9wYWNpdHkpIHx8IG9wYWNpdHkgPCAwIHx8IG9wYWNpdHkgPiAxKSB7XG4gICAgICByZXR1cm4gJ3JnYignICsgdGhpcy5fcmdiQXJyYXkuam9pbignLCcpICsgJyknO1xuICAgIH1cbiAgICByZXR1cm4gJ3JnYmEoJyArIHRoaXMuX3JnYkFycmF5LmpvaW4oJywnKSArICcsJyArIG9wYWNpdHkgKyAnKSc7XG4gIH1cblxufVxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgQ29sb3JHcmFkaWVudE9wdGlvbnMge1xuICBvcGFjaXR5PzogbnVtYmVyO1xuICBzdGFydENvbG9yPzogbnVtYmVyW107XG4gIG1haW5Db2xvcj86IG51bWJlcltdO1xuICBtYWluQ29sb3JJbmRleD86IG51bWJlcjtcbiAgZW5kQ29sb3I/OiBudW1iZXJbXTtcbiAgZm9ybWF0PzogJ3JnYid8J2hleCd8J2FycmF5Jztcbn1cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIENvbG9yU2NhbGVPcHRpb25zIGV4dGVuZHMgQ29sb3JHcmFkaWVudE9wdGlvbnN7XG4gIG1pbj86IG51bWJlcjtcbiAgbWF4PzogbnVtYmVyO1xuICB1cHBlck1heD86IGJvb2xlYW47XG59XG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBDb2xvclNjYWxlTGVnZW5kSXRlbSB7XG4gIGxhYmVsOiBzdHJpbmc7XG4gIGNvbG9yOiBzdHJpbmc7XG59XG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBDb2xvclNjYWxlTGVnZW5kIHtcbiAgaXRlbXM6IENvbG9yU2NhbGVMZWdlbmRJdGVtW107XG59XG5cbi8qKlxuICogSGVscGVyIGNsYXNzIGZvciBjb2xvcnMgc2NhbGVcbiAqL1xuLy8gQGR5bmFtaWNcbmV4cG9ydCBjbGFzcyBDb2xvclNjYWxlIHtcblxuICBzdGF0aWMgY3VzdG9tID0gKGNvdW50OiBudW1iZXIsIG9wdGlvbnM/OiBDb2xvclNjYWxlT3B0aW9ucykgPT4ge1xuICAgIG9wdGlvbnMgPSBvcHRpb25zIHx8IHt9O1xuICAgIHJldHVybiBuZXcgQ29sb3JTY2FsZShcbiAgICAgIGxpbmVhckNvbG9yR3JhZGllbnRXaXRoSW50ZXJtZWRpYXRlKGNvdW50LCB7XG4gICAgICAgIG9wYWNpdHk6IG9wdGlvbnMub3BhY2l0eSxcbiAgICAgICAgc3RhcnRDb2xvcjogb3B0aW9ucy5zdGFydENvbG9yIHx8IHVuZGVmaW5lZCxcbiAgICAgICAgbWFpbkNvbG9yOiBvcHRpb25zLm1haW5Db2xvciB8fCB1bmRlZmluZWQsXG4gICAgICAgIG1haW5Db2xvckluZGV4OiBpc05vdE5pbChvcHRpb25zLm1haW5Db2xvckluZGV4KSA/IG9wdGlvbnMubWFpbkNvbG9ySW5kZXggOiB1bmRlZmluZWQsXG4gICAgICAgIGVuZENvbG9yOiBvcHRpb25zLmVuZENvbG9yIHx8IHVuZGVmaW5lZCxcbiAgICAgICAgZm9ybWF0OiBvcHRpb25zLmZvcm1hdFxuICAgICAgfSkgYXMgc3RyaW5nW10sXG4gICAgICBvcHRpb25zXG4gICAgKTtcbiAgfTtcblxuICBzdGF0aWMgZGVmYXVsdCgpIHtcbiAgICByZXR1cm4gQ29sb3JTY2FsZS5jdXN0b20oMjUpO1xuICB9XG5cbiAgLyoqXG4gICAqIENyZWF0ZSBhIGFycmF5IHdpdGggdGhlIGdpdmVuIGNvbG9yXG4gICAqKi9cbiAgc3RhdGljIGZpeChsZW5ndGg/OiBudW1iZXIsIGNvbG9yTmFtZT86IENvbG9yTmFtZSk6IGFueVtdIHtcbiAgICByZXR1cm4gQXJyYXkuYXBwbHkobnVsbCwgQXJyYXkobGVuZ3RoIHx8IDI1KSlcbiAgICAgIC5tYXAoU3RyaW5nLnByb3RvdHlwZS52YWx1ZU9mLCBDb2xvci5nZXQoY29sb3JOYW1lIHx8ICdwcmltYXJ5JykucmdiYSgwLjUpKTtcbiAgfVxuXG4gIHByaXZhdGUgX21pbjogbnVtYmVyO1xuICBwcml2YXRlIF9tYXg6IG51bWJlcjtcbiAgcHJpdmF0ZSBfcmFuZ2VTaXplOiBudW1iZXI7XG4gIHByaXZhdGUgX2xlZ2VuZEl0ZW1zOiBDb2xvclNjYWxlTGVnZW5kSXRlbVtdO1xuXG4gIGdldCBtaW4oKTogbnVtYmVyIHtcbiAgICByZXR1cm4gdGhpcy5fbWluO1xuICB9XG4gIGdldCBtYXgoKTogbnVtYmVyIHtcbiAgICByZXR1cm4gdGhpcy5fbWF4O1xuICB9XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBjb2xvckFycmF5OiBzdHJpbmdbXSwgb3B0aW9ucz86IENvbG9yU2NhbGVPcHRpb25zKSB7XG4gICAgb3B0aW9ucyA9IG9wdGlvbnMgfHwge307XG4gICAgLy8gcmVzZXJ2ZWQgbGFzdCBjb2xvcnMgZm9yIHZhbHVlID4gbWF4XG4gICAgY29uc3QgbmJJbnRlcnZhbEJlZm9yZVVwcGVyID0gIW9wdGlvbnMudXBwZXJNYXggPyBjb2xvckFycmF5Lmxlbmd0aCA6IChjb2xvckFycmF5Lmxlbmd0aCAtIDEpO1xuICAgIHRoaXMuX21pbiA9IG9wdGlvbnMubWluIHx8IDA7XG4gICAgdGhpcy5fbWF4ID0gb3B0aW9ucy5tYXggfHwgbmJJbnRlcnZhbEJlZm9yZVVwcGVyO1xuICAgIHRoaXMuX3JhbmdlU2l6ZSA9IE1hdGgucm91bmQoKHRoaXMuX21heCAtIHRoaXMuX21pbikgLyBuYkludGVydmFsQmVmb3JlVXBwZXIpO1xuICAgIHRoaXMuX2xlZ2VuZEl0ZW1zID0gdGhpcy5jb21wdXRlTGVnZW5kKCk7XG4gIH1cblxuICBnZXQgbGVnZW5kKCk6IENvbG9yU2NhbGVMZWdlbmQge1xuICAgIHJldHVybiB7XG4gICAgICBpdGVtczogdGhpcy5fbGVnZW5kSXRlbXNcbiAgICB9O1xuICB9XG5cbiAgZ2V0VmFsdWVDb2xvcih2YWx1ZTogbnVtYmVyKTogc3RyaW5nIHtcbiAgICBjb25zdCBpbmRleCA9IE1hdGguZmxvb3IodmFsdWUgKiAodGhpcy5jb2xvckFycmF5Lmxlbmd0aCAtIDEpIC8gdGhpcy5fbWF4KTtcbiAgICByZXR1cm4gdGhpcy5jb2xvckFycmF5W2luZGV4XTtcbiAgfVxuXG4gIHByb3RlY3RlZCBjb21wdXRlTGVnZW5kKCk6IENvbG9yU2NhbGVMZWdlbmRJdGVtW10ge1xuICAgIHJldHVybiB0aGlzLmNvbG9yQXJyYXkubWFwKChjb2xvciwgaW5kZXgpID0+IHtcbiAgICAgIGNvbnN0IHN0YXJ0ID0gaW5kZXggKiB0aGlzLl9yYW5nZVNpemU7XG4gICAgICBjb25zdCBlbmQgPSBzdGFydCArIHRoaXMuX3JhbmdlU2l6ZTtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIGNvbG9yLFxuICAgICAgICBsYWJlbDogKGVuZCA8IHRoaXMuX21heCkgPyBgJHtzdGFydC50b0xvY2FsZVN0cmluZygpfSAtICR7ZW5kLnRvTG9jYWxlU3RyaW5nKCl9YCA6IGAgPj0gJHtzdGFydH1gXG4gICAgICB9O1xuICAgIH0pO1xuICB9XG59XG5cblxuLy8gRmlsbCBjb2xvcnNNYXBcbk9iamVjdC5nZXRPd25Qcm9wZXJ0eU5hbWVzKHJnYkFycmF5TWFwKVxuICAuZm9yRWFjaCgoa2V5KSA9PiB7XG4gICAgY29sb3JzTWFwW2tleV0gPSBuZXcgQ29sb3IocmdiQXJyYXlNYXBba2V5XSwgMSwga2V5KTtcbiAgfSk7XG5cbi8vIEludGVybmFsIGZ1bmN0aW9uXG5mdW5jdGlvbiBzdGF0ZTJzaWRlKHN0YXRlKSB7XG4gIHN3aXRjaCAoc3RhdGUpIHtcbiAgICBjYXNlIDA6XG4gICAgICByZXR1cm4gMDtcbiAgICBjYXNlIDE6XG4gICAgICByZXR1cm4gLTE7XG4gICAgY2FzZSAyOlxuICAgICAgcmV0dXJuIDA7XG4gICAgY2FzZSAzOlxuICAgICAgcmV0dXJuIDE7XG4gIH1cbn1cblxuXG5jb25zdCBTQ0FMRV9PUFRJT05TX0RFRkFVTFQgPSB7XG4gIHN0YXJ0Q29sb3I6IHJnYkFycmF5TWFwLnJlZCxcbiAgc3RhcnRTdGF0ZXM6IFswLCAyLCAzXSwgLy8gUj1rZWVwLCBWPWtlZXAsIEI9aW5jcmVhc2VcbiAgc3RhcnRTdGVwc0ZuOiAoZGVmYXVsdFN0YXRlU2l6ZTogbnVtYmVyKSA9PiBbXG4gICAgICBNYXRoLnJvdW5kKChyZ2JBcnJheU1hcC5yZWRbMF0gLSA1MCkgLyBkZWZhdWx0U3RhdGVTaXplKSxcbiAgICAgIE1hdGgucm91bmQoKDI1NSAtIHJnYkFycmF5TWFwLnJlZFsxXSkgLyBkZWZhdWx0U3RhdGVTaXplKSxcbiAgICAgIE1hdGgucm91bmQoKDI1NSAtIHJnYkFycmF5TWFwLnJlZFsyXSkgLyBkZWZhdWx0U3RhdGVTaXplKVxuICAgIF1cbn07XG5cbi8qKlxuICogSW50ZXJuYWwgZnVuY3Rpb24sIHRoYXQgY3JlYXRlIGEgY29sb3JzIHNjYWxlLCB1c2luZyBpdGVyYXRpb25cbiAqXG4gKiBAcGFyYW0gY291bnRcbiAqIEBwYXJhbSBvcGFjaXR5XG4gKiBAcGFyYW0gc3RhcnRDb2xvclxuICogQHBhcmFtIHN0YXJ0U3RhdGVcbiAqIEByZXR1cm5zXG4gKi9cbmZ1bmN0aW9uIGxpbmVhckNvbG9yR3JhZGllbnRXaXRoSW50ZXJtZWRpYXRlKGNvdW50OiBudW1iZXIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvcHRpb25zPzogQ29sb3JHcmFkaWVudE9wdGlvbnMpOiBhbnlbXSB7XG4gIG9wdGlvbnMgPSBvcHRpb25zIHx8IHt9O1xuXG4gIC8vIEZyb20gWzAsMV1cbiAgb3B0aW9ucy5vcGFjaXR5ID0gKG9wdGlvbnMub3BhY2l0eSA+IDAgJiYgb3B0aW9ucy5vcGFjaXR5IDwgMSkgPyBvcHRpb25zLm9wYWNpdHkgOiAxO1xuICBvcHRpb25zLnN0YXJ0Q29sb3IgPSBvcHRpb25zLnN0YXJ0Q29sb3IgfHwgWzI1NSwgMjU1LCAxOTBdOyAvLyBkZWZhdWx0IHN0YXJ0ID0gY3JlbWVcbiAgb3B0aW9ucy5tYWluQ29sb3JJbmRleCA9IG9wdGlvbnMubWFpbkNvbG9ySW5kZXggJiYgb3B0aW9ucy5tYWluQ29sb3JJbmRleCA8IGNvdW50IC0gMSA/IG9wdGlvbnMubWFpbkNvbG9ySW5kZXggOiBjb3VudCAtIDE7XG4gIG9wdGlvbnMuZW5kQ29sb3IgPSBvcHRpb25zLmVuZENvbG9yIHx8IFsyNTUsIDAsIDBdOyAvLyBkZWZhdWx0IG1haW4gPSByZWRcbiAgb3B0aW9ucy5mb3JtYXQgPSBvcHRpb25zLmZvcm1hdCB8fCAncmdiJztcblxuICBpZiAoIW9wdGlvbnMubWFpbkNvbG9yKSB7XG4gICAgcmV0dXJuIGxpbmVhckNvbG9yR3JhZGllbnQoY291bnQsIHtcbiAgICAgIG9wYWNpdHk6IG9wdGlvbnMub3BhY2l0eSxcbiAgICAgIHN0YXJ0Q29sb3I6IG9wdGlvbnMuc3RhcnRDb2xvcixcbiAgICAgIGVuZENvbG9yOiBvcHRpb25zLmVuZENvbG9yLFxuICAgICAgZm9ybWF0OiBvcHRpb25zLmZvcm1hdFxuICAgIH0pO1xuICB9XG5cbiAgZWxzZSB7XG4gICAgLy8gU3RlcCAxOiBzdGFydENvbG9yIC0+IG1haW5Db2xvclxuICAgIGNvbnN0IHJlc3VsdCA9IGxpbmVhckNvbG9yR3JhZGllbnQob3B0aW9ucy5tYWluQ29sb3JJbmRleCArIDEsIHtcbiAgICAgIG9wYWNpdHk6IG9wdGlvbnMub3BhY2l0eSxcbiAgICAgIHN0YXJ0Q29sb3I6IG9wdGlvbnMuc3RhcnRDb2xvcixcbiAgICAgIGVuZENvbG9yOiBvcHRpb25zLm1haW5Db2xvcixcbiAgICAgIGZvcm1hdDogb3B0aW9ucy5mb3JtYXRcbiAgICB9KTtcblxuICAgIC8vIFN0ZXAgMjogbWFpbkNvbG9yIC0+IGVuZENvbG9yXG4gICAgaWYgKG9wdGlvbnMubWFpbkNvbG9ySW5kZXggPCBjb3VudCAtIDEpIHtcbiAgICAgIHJldHVybiByZXN1bHQuY29uY2F0KFxuICAgICAgICBsaW5lYXJDb2xvckdyYWRpZW50KGNvdW50IC0gb3B0aW9ucy5tYWluQ29sb3JJbmRleCwge1xuICAgICAgICAgIG9wYWNpdHk6IG9wdGlvbnMub3BhY2l0eSxcbiAgICAgICAgICBzdGFydENvbG9yOiBvcHRpb25zLm1haW5Db2xvcixcbiAgICAgICAgICBlbmRDb2xvcjogb3B0aW9ucy5lbmRDb2xvcixcbiAgICAgICAgICBmb3JtYXQ6IG9wdGlvbnMuZm9ybWF0XG4gICAgICAgIH0pKTtcbiAgICB9XG4gICAgZWxzZSB7XG4gICAgICByZXR1cm4gcmVzdWx0O1xuICAgIH1cbiAgfVxufVxuXG5mdW5jdGlvbiBsaW5lYXJDb2xvckdyYWRpZW50KGNvdW50OiBudW1iZXIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9wdGlvbnM/OiBDb2xvckdyYWRpZW50T3B0aW9ucyk6IGFueVtdIHtcblxuICBvcHRpb25zID0gb3B0aW9ucyB8fCB7fTtcblxuICAvLyBGcm9tIFswLDFdXG4gIG9wdGlvbnMub3BhY2l0eSA9IChvcHRpb25zLm9wYWNpdHkgPiAwICYmIG9wdGlvbnMub3BhY2l0eSA8IDEpID8gb3B0aW9ucy5vcGFjaXR5IDogMTtcbiAgb3B0aW9ucy5zdGFydENvbG9yID0gb3B0aW9ucy5zdGFydENvbG9yIHx8IFsyNTUsIDI1NSwgMjU1XTsgLy8gZGVmYXVsdCBzdGFydCA9IHdoaXRlXG4gIG9wdGlvbnMuZW5kQ29sb3IgPSBvcHRpb25zLmVuZENvbG9yIHx8IFsyNTUsIDAsIDBdOyAvLyBkZWZhdWx0IGVuZCA9IHJlZFxuICBvcHRpb25zLmZvcm1hdCA9IG9wdGlvbnMuZm9ybWF0IHx8ICdyZ2InO1xuXG4gIGNvbnN0IHJlc3VsdDogbnVtYmVyW11bXSA9IFtdO1xuICBjb25zdCBjb2xvciA9IG9wdGlvbnMuc3RhcnRDb2xvci5zbGljZSgpOyAvLyBjb3B5IHRoZSBzdGFydCBjb2xvclxuICBjb25zdCBkZWx0YSA9IFtcbiAgICBNYXRoLnJvdW5kKChvcHRpb25zLmVuZENvbG9yWzBdIC0gb3B0aW9ucy5zdGFydENvbG9yWzBdKSAvIGNvdW50KSxcbiAgICBNYXRoLnJvdW5kKChvcHRpb25zLmVuZENvbG9yWzFdIC0gb3B0aW9ucy5zdGFydENvbG9yWzFdKSAvIGNvdW50KSxcbiAgICBNYXRoLnJvdW5kKChvcHRpb25zLmVuZENvbG9yWzJdIC0gb3B0aW9ucy5zdGFydENvbG9yWzJdKSAvIGNvdW50KVxuICBdO1xuXG4gIGZvciAobGV0IGkgPSAwOyBpIDwgY291bnQgLSAxOyBpKyspIHtcbiAgICBmb3IgKGxldCBqID0gMDsgaiA8IDM7IGorKykge1xuICAgICAgY29sb3Jbal0gKz0gZGVsdGFbal07XG4gICAgfVxuICAgIHJlc3VsdC5wdXNoKGNvbG9yLnNsaWNlKCkpO1xuICB9XG5cbiAgLy8gRm9yY2UgbGFzdCBjb2xvciA9IGVuZCBjb2xvclxuICByZXN1bHQucHVzaChvcHRpb25zLmVuZENvbG9yLnNsaWNlKCkpO1xuXG4gIC8vIE91dHB1dCBhcyBhcnJheVxuICBpZiAob3B0aW9ucy5mb3JtYXQgPT09ICdhcnJheScpIHtcbiAgICByZXR1cm4gcmVzdWx0O1xuICB9XG5cbiAgLy8gT3V0cHV0IGFzIHJnYihyLGcsYikgc3RyaW5nXG4gIGlmIChvcHRpb25zLmZvcm1hdCA9PT0gJ3JnYicpIHtcbiAgICBpZiAob3B0aW9ucy5vcGFjaXR5ID49IDEpIHtcbiAgICAgIHJldHVybiByZXN1bHQubWFwKGNvbG9yID0+ICdyZ2IoJyArIGNvbG9yLmpvaW4oJywnKSArICcpJyk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiByZXN1bHQubWFwKGNvbG9yID0+ICdyZ2JhKCcgKyBjb2xvci5jb25jYXQob3B0aW9ucy5vcGFjaXR5KS5qb2luKCcsJykgKyAnKScpO1xuICAgIH1cbiAgfVxuXG4gIC8vIE91dHB1dCBhcyBoZXhcbiAgLy8gVE9ET1xuICAvLyByZXR1cm4gcmVzdWx0Lm1hcChjb2xvciA9PiB7XG4gIC8vICAgcmV0dXJuIFwicmdiKFwiICsgY29sb3Iuam9pbignLCcpICsgXCIpXCI7XG4gIC8vIH0pO1xuICByZXR1cm4gcmVzdWx0O1xufVxuIl19
|
|
260
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ3JhcGgtY29sb3JzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2FwcC9zaGFyZWQvZ3JhcGgvZ3JhcGgtY29sb3JzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBQyxLQUFLLEVBQUUsUUFBUSxFQUFDLE1BQU0sY0FBYyxDQUFDO0FBUzdDOztHQUVHO0FBQ0gsTUFBTSxXQUFXLEdBQUc7SUFDbEIsS0FBSyxFQUFFLENBQUMsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLENBQUM7SUFDdEIsT0FBTyxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFHLENBQUM7SUFDdEIsU0FBUyxFQUFFLENBQUMsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLENBQUM7SUFDMUIsUUFBUSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFHLENBQUM7SUFDdkIsTUFBTSxFQUFFLENBQUMsR0FBRyxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUM7SUFDckIsS0FBSyxFQUFFLENBQUMsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLENBQUM7SUFDdEIsTUFBTSxFQUFFLENBQUMsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLENBQUM7SUFDdkIsSUFBSSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUM7SUFDbEIsR0FBRyxFQUFFLENBQUMsR0FBRyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUM7SUFDaEIsS0FBSyxFQUFFLENBQUMsQ0FBQyxFQUFFLEdBQUcsRUFBRSxDQUFDLENBQUM7SUFDbEIsSUFBSSxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxHQUFHLENBQUM7Q0FDbEIsQ0FBQztBQUVGLDhCQUE4QjtBQUM5QixNQUFNLFNBQVMsR0FBNkIsRUFBRSxDQUFDO0FBRy9DOztHQUVHO0FBQ0gsV0FBVztBQUNYLE1BQU0sT0FBTyxLQUFLO0lBaUNoQixZQUNVLFNBQW1CLEVBQ25CLFFBQWlCLEVBQ2pCLFFBQWdCLFFBQVE7UUFGeEIsY0FBUyxHQUFULFNBQVMsQ0FBVTtRQUNuQixhQUFRLEdBQVIsUUFBUSxDQUFTO1FBQ2pCLFVBQUssR0FBTCxLQUFLLENBQW1CO0lBRWxDLENBQUM7SUFwQ0QscUNBQXFDO0lBQ3JDLE1BQU0sQ0FBQyxHQUFHLENBQUMsSUFBZTtRQUN4QixPQUFPLFNBQVMsQ0FBQyxJQUFJLENBQVUsQ0FBQztJQUNsQyxDQUFDO0lBRUQsTUFBTSxDQUFDLFNBQVMsQ0FBQyxJQUFZO1FBQ3pCLElBQUksQ0FBQyxJQUFJLElBQUksQ0FBQyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1lBQUUsT0FBTyxJQUFJLENBQUM7UUFFbEYsY0FBYztRQUNkLE1BQU0sS0FBSyxHQUFHLElBQUk7YUFDZixPQUFPLENBQUMsTUFBTSxFQUFFLEVBQUUsQ0FBQzthQUNuQixPQUFPLENBQUMsT0FBTyxFQUFFLEVBQUUsQ0FBQzthQUNwQixPQUFPLENBQUMsR0FBRyxFQUFFLEVBQUUsQ0FBQzthQUNoQixLQUFLLENBQUMsR0FBRyxDQUFDLENBQUM7UUFFZCxJQUFJLEtBQUssQ0FBQyxNQUFNLEtBQUssQ0FBQyxJQUFJLEtBQUssQ0FBQyxNQUFNLEtBQUssQ0FBQztZQUFFLE9BQU8sSUFBSSxDQUFDO1FBRTFELE9BQU8sSUFBSSxLQUFLLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUNoRCxLQUFLLENBQUMsTUFBTSxLQUFLLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEVBQ3BDLFFBQVEsQ0FBQyxDQUFDO0lBQ2hCLENBQUM7SUFFRCxNQUFNLENBQUMsU0FBUyxDQUFDLFFBQWdCO1FBQy9CLE1BQU0sS0FBSyxHQUFHLDJDQUEyQyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUN6RSxPQUFPLElBQUksS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsUUFBUSxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUNwRixDQUFDO0lBWUQsSUFBSSxJQUFJO1FBQ04sT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDO0lBQ3BCLENBQUM7SUFDRCxJQUFJLE9BQU87UUFDVCxPQUFPLFFBQVEsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUNyRCxDQUFDO0lBQ0QsSUFBSSxHQUFHO1FBQ0wsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDO0lBQ3hCLENBQUM7SUFFRCxJQUFJLENBQUM7UUFDSCxPQUFPLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDM0IsQ0FBQztJQUVELElBQUksQ0FBQztRQUNILE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUMzQixDQUFDO0lBRUQsSUFBSSxDQUFDO1FBQ0gsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQzNCLENBQUM7SUFFRCxJQUFJLENBQUMsT0FBZ0I7UUFDbkIsT0FBTyxHQUFHLFFBQVEsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDO1FBQ3RELElBQUksS0FBSyxDQUFDLE9BQU8sQ0FBQyxJQUFJLE9BQU8sR0FBRyxDQUFDLElBQUksT0FBTyxHQUFHLENBQUMsRUFBRTtZQUNoRCxPQUFPLE1BQU0sR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsR0FBRyxHQUFHLENBQUM7U0FDaEQ7UUFDRCxPQUFPLE9BQU8sR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsR0FBRyxHQUFHLEdBQUcsT0FBTyxHQUFHLEdBQUcsQ0FBQztJQUNsRSxDQUFDOztBQXRDTSxpQkFBVyxHQUFHO0lBQ25CLE9BQU8sSUFBSSxLQUFLLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxhQUFhLENBQUMsQ0FBQztBQUM5QyxDQUFDLENBQUM7QUFnRUo7O0dBRUc7QUFDSCxXQUFXO0FBQ1gsTUFBTSxPQUFPLFVBQVU7SUF5Q3JCLFlBQW9CLFVBQW9CLEVBQUUsT0FBMkI7UUFBakQsZUFBVSxHQUFWLFVBQVUsQ0FBVTtRQUN0QyxPQUFPLEdBQUcsT0FBTyxJQUFJLEVBQUUsQ0FBQztRQUN4Qix1Q0FBdUM7UUFDdkMsTUFBTSxxQkFBcUIsR0FBRyxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQztRQUM5RixJQUFJLENBQUMsSUFBSSxHQUFHLE9BQU8sQ0FBQyxHQUFHLElBQUksQ0FBQyxDQUFDO1FBQzdCLElBQUksQ0FBQyxJQUFJLEdBQUcsT0FBTyxDQUFDLEdBQUcsSUFBSSxxQkFBcUIsQ0FBQztRQUNqRCxJQUFJLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxxQkFBcUIsQ0FBQyxDQUFDO1FBQzlFLElBQUksQ0FBQyxZQUFZLEdBQUcsSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDO0lBQzNDLENBQUM7SUFoQ0QsTUFBTSxDQUFDLE9BQU87UUFDWixPQUFPLFVBQVUsQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLENBQUM7SUFDL0IsQ0FBQztJQUVEOztRQUVJO0lBQ0osTUFBTSxDQUFDLEdBQUcsQ0FBQyxNQUFlLEVBQUUsU0FBcUI7UUFDL0MsT0FBTyxLQUFLLENBQUMsS0FBSyxDQUFDLElBQUksRUFBRSxLQUFLLENBQUMsTUFBTSxJQUFJLEVBQUUsQ0FBQyxDQUFDO2FBQzFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDLE9BQU8sRUFBRSxLQUFLLENBQUMsR0FBRyxDQUFDLFNBQVMsSUFBSSxTQUFTLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztJQUNoRixDQUFDO0lBT0QsSUFBSSxHQUFHO1FBQ0wsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDO0lBQ25CLENBQUM7SUFDRCxJQUFJLEdBQUc7UUFDTCxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUM7SUFDbkIsQ0FBQztJQVlELElBQUksTUFBTTtRQUNSLE9BQU87WUFDTCxLQUFLLEVBQUUsSUFBSSxDQUFDLFlBQVk7U0FDekIsQ0FBQztJQUNKLENBQUM7SUFFRCxhQUFhLENBQUMsS0FBYTtRQUN6QixNQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssR0FBRyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUMzRSxPQUFPLElBQUksQ0FBQyxVQUFVLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDaEMsQ0FBQztJQUVTLGFBQWE7UUFDckIsT0FBTyxJQUFJLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEtBQUssRUFBRSxLQUFLLEVBQUUsRUFBRTtZQUMxQyxNQUFNLEtBQUssR0FBRyxLQUFLLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQztZQUN0QyxNQUFNLEdBQUcsR0FBRyxLQUFLLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQztZQUNwQyxPQUFPO2dCQUNMLEtBQUs7Z0JBQ0wsS0FBSyxFQUFFLENBQUMsR0FBRyxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxLQUFLLENBQUMsY0FBYyxFQUFFLE1BQU0sR0FBRyxDQUFDLGNBQWMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLE9BQU8sS0FBSyxFQUFFO2FBQ2xHLENBQUM7UUFDSixDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7O0FBckVNLGlCQUFNLEdBQUcsQ0FBQyxLQUFhLEVBQUUsT0FBMkIsRUFBRSxFQUFFO0lBQzdELE9BQU8sR0FBRyxPQUFPLElBQUksRUFBRSxDQUFDO0lBQ3hCLE9BQU8sSUFBSSxVQUFVLENBQ25CLG1DQUFtQyxDQUFDLEtBQUssRUFBRTtRQUN6QyxPQUFPLEVBQUUsT0FBTyxDQUFDLE9BQU87UUFDeEIsVUFBVSxFQUFFLE9BQU8sQ0FBQyxVQUFVLElBQUksU0FBUztRQUMzQyxTQUFTLEVBQUUsT0FBTyxDQUFDLFNBQVMsSUFBSSxTQUFTO1FBQ3pDLGNBQWMsRUFBRSxRQUFRLENBQUMsT0FBTyxDQUFDLGNBQWMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsY0FBYyxDQUFDLENBQUMsQ0FBQyxTQUFTO1FBQ3JGLFFBQVEsRUFBRSxPQUFPLENBQUMsUUFBUSxJQUFJLFNBQVM7UUFDdkMsTUFBTSxFQUFFLE9BQU8sQ0FBQyxNQUFNO0tBQ3ZCLENBQWEsRUFDZCxPQUFPLENBQ1IsQ0FBQztBQUNKLENBQUMsQ0FBQztBQTRESixpQkFBaUI7QUFDakIsTUFBTSxDQUFDLG1CQUFtQixDQUFDLFdBQVcsQ0FBQztLQUNwQyxPQUFPLENBQUMsQ0FBQyxHQUFHLEVBQUUsRUFBRTtJQUNmLFNBQVMsQ0FBQyxHQUFHLENBQUMsR0FBRyxJQUFJLEtBQUssQ0FBQyxXQUFXLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxDQUFDO0FBQ3ZELENBQUMsQ0FBQyxDQUFDO0FBRUwsb0JBQW9CO0FBQ3BCLFNBQVMsVUFBVSxDQUFDLEtBQUs7SUFDdkIsUUFBUSxLQUFLLEVBQUU7UUFDYixLQUFLLENBQUM7WUFDSixPQUFPLENBQUMsQ0FBQztRQUNYLEtBQUssQ0FBQztZQUNKLE9BQU8sQ0FBQyxDQUFDLENBQUM7UUFDWixLQUFLLENBQUM7WUFDSixPQUFPLENBQUMsQ0FBQztRQUNYLEtBQUssQ0FBQztZQUNKLE9BQU8sQ0FBQyxDQUFDO0tBQ1o7QUFDSCxDQUFDO1dBTWUsQ0FBQyxnQkFBd0IsRUFBRSxFQUFFLENBQUM7SUFDeEMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLFdBQVcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEdBQUcsRUFBRSxDQUFDLEdBQUcsZ0JBQWdCLENBQUM7SUFDeEQsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLEdBQUcsR0FBRyxXQUFXLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsZ0JBQWdCLENBQUM7SUFDekQsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLEdBQUcsR0FBRyxXQUFXLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsZ0JBQWdCLENBQUM7Q0FDMUQ7QUFQTCxNQUFNLHFCQUFxQixHQUFHO0lBQzVCLFVBQVUsRUFBRSxXQUFXLENBQUMsR0FBRztJQUMzQixXQUFXLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQztJQUN0QixZQUFZLElBSVQ7Q0FDSixDQUFDO0FBRUY7Ozs7Ozs7O0dBUUc7QUFDSCxTQUFTLG1DQUFtQyxDQUFDLEtBQWEsRUFDYixPQUE4QjtJQUN6RSxPQUFPLEdBQUcsT0FBTyxJQUFJLEVBQUUsQ0FBQztJQUV4QixhQUFhO0lBQ2IsT0FBTyxDQUFDLE9BQU8sR0FBRyxDQUFDLE9BQU8sQ0FBQyxPQUFPLEdBQUcsQ0FBQyxJQUFJLE9BQU8sQ0FBQyxPQUFPLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUNyRixPQUFPLENBQUMsVUFBVSxHQUFHLE9BQU8sQ0FBQyxVQUFVLElBQUksQ0FBQyxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsQ0FBQyxDQUFDLENBQUMsd0JBQXdCO0lBQ3BGLE9BQU8sQ0FBQyxjQUFjLEdBQUcsT0FBTyxDQUFDLGNBQWMsSUFBSSxPQUFPLENBQUMsY0FBYyxHQUFHLEtBQUssR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxjQUFjLENBQUMsQ0FBQyxDQUFDLEtBQUssR0FBRyxDQUFDLENBQUM7SUFDM0gsT0FBTyxDQUFDLFFBQVEsR0FBRyxPQUFPLENBQUMsUUFBUSxJQUFJLENBQUMsR0FBRyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLHFCQUFxQjtJQUN6RSxPQUFPLENBQUMsTUFBTSxHQUFHLE9BQU8sQ0FBQyxNQUFNLElBQUksS0FBSyxDQUFDO0lBRXpDLElBQUksQ0FBQyxPQUFPLENBQUMsU0FBUyxFQUFFO1FBQ3RCLE9BQU8sbUJBQW1CLENBQUMsS0FBSyxFQUFFO1lBQ2hDLE9BQU8sRUFBRSxPQUFPLENBQUMsT0FBTztZQUN4QixVQUFVLEVBQUUsT0FBTyxDQUFDLFVBQVU7WUFDOUIsUUFBUSxFQUFFLE9BQU8sQ0FBQyxRQUFRO1lBQzFCLE1BQU0sRUFBRSxPQUFPLENBQUMsTUFBTTtTQUN2QixDQUFDLENBQUM7S0FDSjtTQUVJO1FBQ0gsa0NBQWtDO1FBQ2xDLE1BQU0sTUFBTSxHQUFHLG1CQUFtQixDQUFDLE9BQU8sQ0FBQyxjQUFjLEdBQUcsQ0FBQyxFQUFFO1lBQzdELE9BQU8sRUFBRSxPQUFPLENBQUMsT0FBTztZQUN4QixVQUFVLEVBQUUsT0FBTyxDQUFDLFVBQVU7WUFDOUIsUUFBUSxFQUFFLE9BQU8sQ0FBQyxTQUFTO1lBQzNCLE1BQU0sRUFBRSxPQUFPLENBQUMsTUFBTTtTQUN2QixDQUFDLENBQUM7UUFFSCxnQ0FBZ0M7UUFDaEMsSUFBSSxPQUFPLENBQUMsY0FBYyxHQUFHLEtBQUssR0FBRyxDQUFDLEVBQUU7WUFDdEMsT0FBTyxNQUFNLENBQUMsTUFBTSxDQUNsQixtQkFBbUIsQ0FBQyxLQUFLLEdBQUcsT0FBTyxDQUFDLGNBQWMsRUFBRTtnQkFDbEQsT0FBTyxFQUFFLE9BQU8sQ0FBQyxPQUFPO2dCQUN4QixVQUFVLEVBQUUsT0FBTyxDQUFDLFNBQVM7Z0JBQzdCLFFBQVEsRUFBRSxPQUFPLENBQUMsUUFBUTtnQkFDMUIsTUFBTSxFQUFFLE9BQU8sQ0FBQyxNQUFNO2FBQ3ZCLENBQUMsQ0FBQyxDQUFDO1NBQ1A7YUFDSTtZQUNILE9BQU8sTUFBTSxDQUFDO1NBQ2Y7S0FDRjtBQUNILENBQUM7QUFFRCxTQUFTLG1CQUFtQixDQUFDLEtBQWEsRUFDYixPQUE4QjtJQUV6RCxPQUFPLEdBQUcsT0FBTyxJQUFJLEVBQUUsQ0FBQztJQUV4QixhQUFhO0lBQ2IsT0FBTyxDQUFDLE9BQU8sR0FBRyxDQUFDLE9BQU8sQ0FBQyxPQUFPLEdBQUcsQ0FBQyxJQUFJLE9BQU8sQ0FBQyxPQUFPLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUNyRixPQUFPLENBQUMsVUFBVSxHQUFHLE9BQU8sQ0FBQyxVQUFVLElBQUksQ0FBQyxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsQ0FBQyxDQUFDLENBQUMsd0JBQXdCO0lBQ3BGLE9BQU8sQ0FBQyxRQUFRLEdBQUcsT0FBTyxDQUFDLFFBQVEsSUFBSSxDQUFDLEdBQUcsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxvQkFBb0I7SUFDeEUsT0FBTyxDQUFDLE1BQU0sR0FBRyxPQUFPLENBQUMsTUFBTSxJQUFJLEtBQUssQ0FBQztJQUV6QyxNQUFNLE1BQU0sR0FBZSxFQUFFLENBQUM7SUFDOUIsTUFBTSxLQUFLLEdBQUcsT0FBTyxDQUFDLFVBQVUsQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDLHVCQUF1QjtJQUNqRSxNQUFNLEtBQUssR0FBRztRQUNaLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxHQUFHLE9BQU8sQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxLQUFLLENBQUM7UUFDakUsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLEdBQUcsT0FBTyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLEtBQUssQ0FBQztRQUNqRSxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsR0FBRyxPQUFPLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsS0FBSyxDQUFDO0tBQ2xFLENBQUM7SUFFRixLQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsS0FBSyxHQUFHLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRTtRQUNsQyxLQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFO1lBQzFCLEtBQUssQ0FBQyxDQUFDLENBQUMsSUFBSSxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUM7U0FDdEI7UUFDRCxNQUFNLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDO0tBQzVCO0lBRUQsK0JBQStCO0lBQy9CLE1BQU0sQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDO0lBRXRDLGtCQUFrQjtJQUNsQixJQUFJLE9BQU8sQ0FBQyxNQUFNLEtBQUssT0FBTyxFQUFFO1FBQzlCLE9BQU8sTUFBTSxDQUFDO0tBQ2Y7SUFFRCw4QkFBOEI7SUFDOUIsSUFBSSxPQUFPLENBQUMsTUFBTSxLQUFLLEtBQUssRUFBRTtRQUM1QixJQUFJLE9BQU8sQ0FBQyxPQUFPLElBQUksQ0FBQyxFQUFFO1lBQ3hCLE9BQU8sTUFBTSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLE1BQU0sR0FBRyxLQUFLLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxHQUFHLEdBQUcsQ0FBQyxDQUFDO1NBQzVEO2FBQU07WUFDTCxPQUFPLE1BQU0sQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxPQUFPLEdBQUcsS0FBSyxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxHQUFHLEdBQUcsQ0FBQyxDQUFDO1NBQ3JGO0tBQ0Y7SUFFRCxnQkFBZ0I7SUFDaEIsT0FBTztJQUNQLCtCQUErQjtJQUMvQiwyQ0FBMkM7SUFDM0MsTUFBTTtJQUNOLE9BQU8sTUFBTSxDQUFDO0FBQ2hCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1ByZWRlZmluZWRDb2xvcnN9IGZyb20gJ0Bpb25pYy9jb3JlJztcbmltcG9ydCB7aXNOaWwsIGlzTm90TmlsfSBmcm9tICcuLi9mdW5jdGlvbnMnO1xuXG5leHBvcnQgZGVjbGFyZSB0eXBlIENvbG9yTmFtZSA9IFByZWRlZmluZWRDb2xvcnMgfFxuICAnd2hpdGUnXG4gIHwgJ3JlZCdcbiAgfCAnZ3JlZW4nXG4gIHwgJ2JsdWUnO1xuXG5cbi8qKlxuICogRGVmaW5lIGhlcmUgdGhlbWUgY29sb3JzXG4gKi9cbmNvbnN0IHJnYkFycmF5TWFwID0ge1xuICB3aGl0ZTogWzI1NSwgMjU1LCAyNTVdLFxuICBwcmltYXJ5OiBbMjAsIDY3LCAxNDVdLCAvLyBva1xuICBzZWNvbmRhcnk6IFsxMTcsIDE5NiwgMjUzXSwgLy8gb2tcbiAgdGVydGlhcnk6IFs5MSwgOTQsIDI0NF0sIC8vIG9rXG4gIGRhbmdlcjogWzI0NSwgNjEsIDYxXSwgLy8gb2tcbiAgbGlnaHQ6IFsyNDQsIDI0NSwgMjQ4XSwgLy8gb2tcbiAgbWVkaXVtOiBbMTUyLCAxNTQsIDE2Ml0sIC8vIG9rXG4gIGRhcms6IFszNCwgMzYsIDQwXSwgLy8gb2tcbiAgcmVkOiBbMjU1LCAwLCAwXSxcbiAgZ3JlZW46IFswLCAyNTUsIDBdLFxuICBibHVlOiBbMCwgMCwgMjU1XVxufTtcblxuLy8gRmlsbCBhIG1hcCBvZiBDb2xvciBvYmplY3RzXG5jb25zdCBjb2xvcnNNYXA6IHsgW2tleTogc3RyaW5nXTogQ29sb3IgfSA9IHt9O1xuXG5cbi8qKlxuICogVXNlZnVsIGNsYXNzIGZvciBjb2xvciBjb252ZXJzaW9uXG4gKi9cbi8vIEBkeW5hbWljXG5leHBvcnQgY2xhc3MgQ29sb3Ige1xuXG4gIC8vIEhlbHBlciBtZXRob2QsIHRvIHJldHJpZXZlIGEgY29sb3JcbiAgc3RhdGljIGdldChuYW1lOiBDb2xvck5hbWUpOiBDb2xvciB7XG4gICAgcmV0dXJuIGNvbG9yc01hcFtuYW1lXSBhcyBDb2xvcjtcbiAgfVxuXG4gIHN0YXRpYyBwYXJzZVJnYmEocmdiYTogc3RyaW5nKTogQ29sb3J8bnVsbHtcbiAgICAgIGlmICghcmdiYSB8fCAoIXJnYmEuc3RhcnRzV2l0aCgncmdiKCcpICYmICFyZ2JhLnN0YXJ0c1dpdGgoJ3JnYmEoJykpKSByZXR1cm4gbnVsbDtcblxuICAgICAgLy8gUGFyc2UgcGFydHNcbiAgICAgIGNvbnN0IHBhcnRzID0gcmdiYVxuICAgICAgICAucmVwbGFjZSgncmdiKCcsICcnKVxuICAgICAgICAucmVwbGFjZSgncmdiYSgnLCAnJylcbiAgICAgICAgLnJlcGxhY2UoJyknLCAnJylcbiAgICAgICAgLnNwbGl0KCcsJyk7XG5cbiAgICAgIGlmIChwYXJ0cy5sZW5ndGggIT09IDMgJiYgcGFydHMubGVuZ3RoICE9PSA0KSByZXR1cm4gbnVsbDtcblxuICAgICAgcmV0dXJuIG5ldyBDb2xvcihbK3BhcnRzWzBdLCArcGFydHNbMV0sICtwYXJ0c1syXV0sXG4gICAgICAgIHBhcnRzLmxlbmd0aCA9PT0gNCAmJiArcGFydHNbM10gfHwgMSxcbiAgICAgICAgJ2N1c3RvbScpO1xuICB9XG5cbiAgc3RhdGljIHBhcnNlSGV4YShoZXhDb2xvcjogc3RyaW5nKTogQ29sb3Ige1xuICAgIGNvbnN0IHNwbGl0ID0gL14jPyhbYS1mXFxkXXsyfSkoW2EtZlxcZF17Mn0pKFthLWZcXGRdezJ9KSQvaS5leGVjKGhleENvbG9yKTtcbiAgICByZXR1cm4gbmV3IENvbG9yKHNwbGl0ID8gc3BsaXQuc2xpY2UoMSwgNCkubWFwKGkgPT4gcGFyc2VJbnQoaSwgMTYpKSA6IFswLCAwLCAwXSk7XG4gIH1cblxuICBzdGF0aWMgdHJhbnNwYXJlbnQgPSBmdW5jdGlvbigpIHtcbiAgICByZXR1cm4gbmV3IENvbG9yKFswLDAsMF0sIDAsICd0cmFuc2x1Y2VudCcpO1xuICB9O1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgX3JnYkFycmF5OiBudW1iZXJbXSxcbiAgICBwcml2YXRlIF9vcGFjaXR5PzogbnVtYmVyLFxuICAgIHByaXZhdGUgX25hbWU6IHN0cmluZyA9ICdjdXN0b20nXG4gICkge1xuICB9XG4gIGdldCBuYW1lKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuX25hbWU7XG4gIH1cbiAgZ2V0IG9wYWNpdHkoKTogbnVtYmVye1xuICAgIHJldHVybiBpc05vdE5pbCh0aGlzLl9vcGFjaXR5KSA/IHRoaXMuX29wYWNpdHkgOiAxO1xuICB9XG4gIGdldCByZ2IoKTogbnVtYmVyW10ge1xuICAgIHJldHVybiB0aGlzLl9yZ2JBcnJheTtcbiAgfVxuXG4gIGdldCByKCk6IG51bWJlciB7XG4gICAgcmV0dXJuIHRoaXMuX3JnYkFycmF5WzBdO1xuICB9XG5cbiAgZ2V0IGcoKTogbnVtYmVyIHtcbiAgICByZXR1cm4gdGhpcy5fcmdiQXJyYXlbMV07XG4gIH1cblxuICBnZXQgYigpOiBudW1iZXIge1xuICAgIHJldHVybiB0aGlzLl9yZ2JBcnJheVsyXTtcbiAgfVxuXG4gIHJnYmEob3BhY2l0eT86IG51bWJlcik6IHN0cmluZyB7XG4gICAgb3BhY2l0eSA9IGlzTm90TmlsKG9wYWNpdHkpID8gb3BhY2l0eSA6IHRoaXMuX29wYWNpdHk7XG4gICAgaWYgKGlzTmlsKG9wYWNpdHkpIHx8IG9wYWNpdHkgPCAwIHx8IG9wYWNpdHkgPiAxKSB7XG4gICAgICByZXR1cm4gJ3JnYignICsgdGhpcy5fcmdiQXJyYXkuam9pbignLCcpICsgJyknO1xuICAgIH1cbiAgICByZXR1cm4gJ3JnYmEoJyArIHRoaXMuX3JnYkFycmF5LmpvaW4oJywnKSArICcsJyArIG9wYWNpdHkgKyAnKSc7XG4gIH1cblxufVxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgQ29sb3JHcmFkaWVudE9wdGlvbnMge1xuICBvcGFjaXR5PzogbnVtYmVyO1xuICBzdGFydENvbG9yPzogbnVtYmVyW107XG4gIG1haW5Db2xvcj86IG51bWJlcltdO1xuICBtYWluQ29sb3JJbmRleD86IG51bWJlcjtcbiAgZW5kQ29sb3I/OiBudW1iZXJbXTtcbiAgZm9ybWF0PzogJ3JnYid8J2hleCd8J2FycmF5Jztcbn1cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIENvbG9yU2NhbGVPcHRpb25zIGV4dGVuZHMgQ29sb3JHcmFkaWVudE9wdGlvbnN7XG4gIG1pbj86IG51bWJlcjtcbiAgbWF4PzogbnVtYmVyO1xuICB1cHBlck1heD86IGJvb2xlYW47XG59XG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBDb2xvclNjYWxlTGVnZW5kSXRlbSB7XG4gIGxhYmVsOiBzdHJpbmc7XG4gIGNvbG9yOiBzdHJpbmc7XG59XG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBDb2xvclNjYWxlTGVnZW5kIHtcbiAgaXRlbXM6IENvbG9yU2NhbGVMZWdlbmRJdGVtW107XG59XG5cbi8qKlxuICogSGVscGVyIGNsYXNzIGZvciBjb2xvcnMgc2NhbGVcbiAqL1xuLy8gQGR5bmFtaWNcbmV4cG9ydCBjbGFzcyBDb2xvclNjYWxlIHtcblxuICBzdGF0aWMgY3VzdG9tID0gKGNvdW50OiBudW1iZXIsIG9wdGlvbnM/OiBDb2xvclNjYWxlT3B0aW9ucykgPT4ge1xuICAgIG9wdGlvbnMgPSBvcHRpb25zIHx8IHt9O1xuICAgIHJldHVybiBuZXcgQ29sb3JTY2FsZShcbiAgICAgIGxpbmVhckNvbG9yR3JhZGllbnRXaXRoSW50ZXJtZWRpYXRlKGNvdW50LCB7XG4gICAgICAgIG9wYWNpdHk6IG9wdGlvbnMub3BhY2l0eSxcbiAgICAgICAgc3RhcnRDb2xvcjogb3B0aW9ucy5zdGFydENvbG9yIHx8IHVuZGVmaW5lZCxcbiAgICAgICAgbWFpbkNvbG9yOiBvcHRpb25zLm1haW5Db2xvciB8fCB1bmRlZmluZWQsXG4gICAgICAgIG1haW5Db2xvckluZGV4OiBpc05vdE5pbChvcHRpb25zLm1haW5Db2xvckluZGV4KSA/IG9wdGlvbnMubWFpbkNvbG9ySW5kZXggOiB1bmRlZmluZWQsXG4gICAgICAgIGVuZENvbG9yOiBvcHRpb25zLmVuZENvbG9yIHx8IHVuZGVmaW5lZCxcbiAgICAgICAgZm9ybWF0OiBvcHRpb25zLmZvcm1hdFxuICAgICAgfSkgYXMgc3RyaW5nW10sXG4gICAgICBvcHRpb25zXG4gICAgKTtcbiAgfTtcblxuICBzdGF0aWMgZGVmYXVsdCgpIHtcbiAgICByZXR1cm4gQ29sb3JTY2FsZS5jdXN0b20oMjUpO1xuICB9XG5cbiAgLyoqXG4gICAqIENyZWF0ZSBhIGFycmF5IHdpdGggdGhlIGdpdmVuIGNvbG9yXG4gICAqKi9cbiAgc3RhdGljIGZpeChsZW5ndGg/OiBudW1iZXIsIGNvbG9yTmFtZT86IENvbG9yTmFtZSk6IGFueVtdIHtcbiAgICByZXR1cm4gQXJyYXkuYXBwbHkobnVsbCwgQXJyYXkobGVuZ3RoIHx8IDI1KSlcbiAgICAgIC5tYXAoU3RyaW5nLnByb3RvdHlwZS52YWx1ZU9mLCBDb2xvci5nZXQoY29sb3JOYW1lIHx8ICdwcmltYXJ5JykucmdiYSgwLjUpKTtcbiAgfVxuXG4gIHByaXZhdGUgX21pbjogbnVtYmVyO1xuICBwcml2YXRlIF9tYXg6IG51bWJlcjtcbiAgcHJpdmF0ZSBfcmFuZ2VTaXplOiBudW1iZXI7XG4gIHByaXZhdGUgX2xlZ2VuZEl0ZW1zOiBDb2xvclNjYWxlTGVnZW5kSXRlbVtdO1xuXG4gIGdldCBtaW4oKTogbnVtYmVyIHtcbiAgICByZXR1cm4gdGhpcy5fbWluO1xuICB9XG4gIGdldCBtYXgoKTogbnVtYmVyIHtcbiAgICByZXR1cm4gdGhpcy5fbWF4O1xuICB9XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBjb2xvckFycmF5OiBzdHJpbmdbXSwgb3B0aW9ucz86IENvbG9yU2NhbGVPcHRpb25zKSB7XG4gICAgb3B0aW9ucyA9IG9wdGlvbnMgfHwge307XG4gICAgLy8gcmVzZXJ2ZWQgbGFzdCBjb2xvcnMgZm9yIHZhbHVlID4gbWF4XG4gICAgY29uc3QgbmJJbnRlcnZhbEJlZm9yZVVwcGVyID0gIW9wdGlvbnMudXBwZXJNYXggPyBjb2xvckFycmF5Lmxlbmd0aCA6IChjb2xvckFycmF5Lmxlbmd0aCAtIDEpO1xuICAgIHRoaXMuX21pbiA9IG9wdGlvbnMubWluIHx8IDA7XG4gICAgdGhpcy5fbWF4ID0gb3B0aW9ucy5tYXggfHwgbmJJbnRlcnZhbEJlZm9yZVVwcGVyO1xuICAgIHRoaXMuX3JhbmdlU2l6ZSA9IE1hdGgucm91bmQoKHRoaXMuX21heCAtIHRoaXMuX21pbikgLyBuYkludGVydmFsQmVmb3JlVXBwZXIpO1xuICAgIHRoaXMuX2xlZ2VuZEl0ZW1zID0gdGhpcy5jb21wdXRlTGVnZW5kKCk7XG4gIH1cblxuICBnZXQgbGVnZW5kKCk6IENvbG9yU2NhbGVMZWdlbmQge1xuICAgIHJldHVybiB7XG4gICAgICBpdGVtczogdGhpcy5fbGVnZW5kSXRlbXNcbiAgICB9O1xuICB9XG5cbiAgZ2V0VmFsdWVDb2xvcih2YWx1ZTogbnVtYmVyKTogc3RyaW5nfG51bWJlcltdIHtcbiAgICBjb25zdCBpbmRleCA9IE1hdGguZmxvb3IodmFsdWUgKiAodGhpcy5jb2xvckFycmF5Lmxlbmd0aCAtIDEpIC8gdGhpcy5fbWF4KTtcbiAgICByZXR1cm4gdGhpcy5jb2xvckFycmF5W2luZGV4XTtcbiAgfVxuXG4gIHByb3RlY3RlZCBjb21wdXRlTGVnZW5kKCk6IENvbG9yU2NhbGVMZWdlbmRJdGVtW10ge1xuICAgIHJldHVybiB0aGlzLmNvbG9yQXJyYXkubWFwKChjb2xvciwgaW5kZXgpID0+IHtcbiAgICAgIGNvbnN0IHN0YXJ0ID0gaW5kZXggKiB0aGlzLl9yYW5nZVNpemU7XG4gICAgICBjb25zdCBlbmQgPSBzdGFydCArIHRoaXMuX3JhbmdlU2l6ZTtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIGNvbG9yLFxuICAgICAgICBsYWJlbDogKGVuZCA8IHRoaXMuX21heCkgPyBgJHtzdGFydC50b0xvY2FsZVN0cmluZygpfSAtICR7ZW5kLnRvTG9jYWxlU3RyaW5nKCl9YCA6IGAgPj0gJHtzdGFydH1gXG4gICAgICB9O1xuICAgIH0pO1xuICB9XG59XG5cblxuLy8gRmlsbCBjb2xvcnNNYXBcbk9iamVjdC5nZXRPd25Qcm9wZXJ0eU5hbWVzKHJnYkFycmF5TWFwKVxuICAuZm9yRWFjaCgoa2V5KSA9PiB7XG4gICAgY29sb3JzTWFwW2tleV0gPSBuZXcgQ29sb3IocmdiQXJyYXlNYXBba2V5XSwgMSwga2V5KTtcbiAgfSk7XG5cbi8vIEludGVybmFsIGZ1bmN0aW9uXG5mdW5jdGlvbiBzdGF0ZTJzaWRlKHN0YXRlKSB7XG4gIHN3aXRjaCAoc3RhdGUpIHtcbiAgICBjYXNlIDA6XG4gICAgICByZXR1cm4gMDtcbiAgICBjYXNlIDE6XG4gICAgICByZXR1cm4gLTE7XG4gICAgY2FzZSAyOlxuICAgICAgcmV0dXJuIDA7XG4gICAgY2FzZSAzOlxuICAgICAgcmV0dXJuIDE7XG4gIH1cbn1cblxuXG5jb25zdCBTQ0FMRV9PUFRJT05TX0RFRkFVTFQgPSB7XG4gIHN0YXJ0Q29sb3I6IHJnYkFycmF5TWFwLnJlZCxcbiAgc3RhcnRTdGF0ZXM6IFswLCAyLCAzXSwgLy8gUj1rZWVwLCBWPWtlZXAsIEI9aW5jcmVhc2VcbiAgc3RhcnRTdGVwc0ZuOiAoZGVmYXVsdFN0YXRlU2l6ZTogbnVtYmVyKSA9PiBbXG4gICAgICBNYXRoLnJvdW5kKChyZ2JBcnJheU1hcC5yZWRbMF0gLSA1MCkgLyBkZWZhdWx0U3RhdGVTaXplKSxcbiAgICAgIE1hdGgucm91bmQoKDI1NSAtIHJnYkFycmF5TWFwLnJlZFsxXSkgLyBkZWZhdWx0U3RhdGVTaXplKSxcbiAgICAgIE1hdGgucm91bmQoKDI1NSAtIHJnYkFycmF5TWFwLnJlZFsyXSkgLyBkZWZhdWx0U3RhdGVTaXplKVxuICAgIF1cbn07XG5cbi8qKlxuICogSW50ZXJuYWwgZnVuY3Rpb24sIHRoYXQgY3JlYXRlIGEgY29sb3JzIHNjYWxlLCB1c2luZyBpdGVyYXRpb25cbiAqXG4gKiBAcGFyYW0gY291bnRcbiAqIEBwYXJhbSBvcGFjaXR5XG4gKiBAcGFyYW0gc3RhcnRDb2xvclxuICogQHBhcmFtIHN0YXJ0U3RhdGVcbiAqIEByZXR1cm5zXG4gKi9cbmZ1bmN0aW9uIGxpbmVhckNvbG9yR3JhZGllbnRXaXRoSW50ZXJtZWRpYXRlKGNvdW50OiBudW1iZXIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvcHRpb25zPzogQ29sb3JHcmFkaWVudE9wdGlvbnMpOiBhbnlbXSB7XG4gIG9wdGlvbnMgPSBvcHRpb25zIHx8IHt9O1xuXG4gIC8vIEZyb20gWzAsMV1cbiAgb3B0aW9ucy5vcGFjaXR5ID0gKG9wdGlvbnMub3BhY2l0eSA+IDAgJiYgb3B0aW9ucy5vcGFjaXR5IDwgMSkgPyBvcHRpb25zLm9wYWNpdHkgOiAxO1xuICBvcHRpb25zLnN0YXJ0Q29sb3IgPSBvcHRpb25zLnN0YXJ0Q29sb3IgfHwgWzI1NSwgMjU1LCAxOTBdOyAvLyBkZWZhdWx0IHN0YXJ0ID0gY3JlbWVcbiAgb3B0aW9ucy5tYWluQ29sb3JJbmRleCA9IG9wdGlvbnMubWFpbkNvbG9ySW5kZXggJiYgb3B0aW9ucy5tYWluQ29sb3JJbmRleCA8IGNvdW50IC0gMSA/IG9wdGlvbnMubWFpbkNvbG9ySW5kZXggOiBjb3VudCAtIDE7XG4gIG9wdGlvbnMuZW5kQ29sb3IgPSBvcHRpb25zLmVuZENvbG9yIHx8IFsyNTUsIDAsIDBdOyAvLyBkZWZhdWx0IG1haW4gPSByZWRcbiAgb3B0aW9ucy5mb3JtYXQgPSBvcHRpb25zLmZvcm1hdCB8fCAncmdiJztcblxuICBpZiAoIW9wdGlvbnMubWFpbkNvbG9yKSB7XG4gICAgcmV0dXJuIGxpbmVhckNvbG9yR3JhZGllbnQoY291bnQsIHtcbiAgICAgIG9wYWNpdHk6IG9wdGlvbnMub3BhY2l0eSxcbiAgICAgIHN0YXJ0Q29sb3I6IG9wdGlvbnMuc3RhcnRDb2xvcixcbiAgICAgIGVuZENvbG9yOiBvcHRpb25zLmVuZENvbG9yLFxuICAgICAgZm9ybWF0OiBvcHRpb25zLmZvcm1hdFxuICAgIH0pO1xuICB9XG5cbiAgZWxzZSB7XG4gICAgLy8gU3RlcCAxOiBzdGFydENvbG9yIC0+IG1haW5Db2xvclxuICAgIGNvbnN0IHJlc3VsdCA9IGxpbmVhckNvbG9yR3JhZGllbnQob3B0aW9ucy5tYWluQ29sb3JJbmRleCArIDEsIHtcbiAgICAgIG9wYWNpdHk6IG9wdGlvbnMub3BhY2l0eSxcbiAgICAgIHN0YXJ0Q29sb3I6IG9wdGlvbnMuc3RhcnRDb2xvcixcbiAgICAgIGVuZENvbG9yOiBvcHRpb25zLm1haW5Db2xvcixcbiAgICAgIGZvcm1hdDogb3B0aW9ucy5mb3JtYXRcbiAgICB9KTtcblxuICAgIC8vIFN0ZXAgMjogbWFpbkNvbG9yIC0+IGVuZENvbG9yXG4gICAgaWYgKG9wdGlvbnMubWFpbkNvbG9ySW5kZXggPCBjb3VudCAtIDEpIHtcbiAgICAgIHJldHVybiByZXN1bHQuY29uY2F0KFxuICAgICAgICBsaW5lYXJDb2xvckdyYWRpZW50KGNvdW50IC0gb3B0aW9ucy5tYWluQ29sb3JJbmRleCwge1xuICAgICAgICAgIG9wYWNpdHk6IG9wdGlvbnMub3BhY2l0eSxcbiAgICAgICAgICBzdGFydENvbG9yOiBvcHRpb25zLm1haW5Db2xvcixcbiAgICAgICAgICBlbmRDb2xvcjogb3B0aW9ucy5lbmRDb2xvcixcbiAgICAgICAgICBmb3JtYXQ6IG9wdGlvbnMuZm9ybWF0XG4gICAgICAgIH0pKTtcbiAgICB9XG4gICAgZWxzZSB7XG4gICAgICByZXR1cm4gcmVzdWx0O1xuICAgIH1cbiAgfVxufVxuXG5mdW5jdGlvbiBsaW5lYXJDb2xvckdyYWRpZW50KGNvdW50OiBudW1iZXIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9wdGlvbnM/OiBDb2xvckdyYWRpZW50T3B0aW9ucyk6IGFueVtdIHtcblxuICBvcHRpb25zID0gb3B0aW9ucyB8fCB7fTtcblxuICAvLyBGcm9tIFswLDFdXG4gIG9wdGlvbnMub3BhY2l0eSA9IChvcHRpb25zLm9wYWNpdHkgPiAwICYmIG9wdGlvbnMub3BhY2l0eSA8IDEpID8gb3B0aW9ucy5vcGFjaXR5IDogMTtcbiAgb3B0aW9ucy5zdGFydENvbG9yID0gb3B0aW9ucy5zdGFydENvbG9yIHx8IFsyNTUsIDI1NSwgMjU1XTsgLy8gZGVmYXVsdCBzdGFydCA9IHdoaXRlXG4gIG9wdGlvbnMuZW5kQ29sb3IgPSBvcHRpb25zLmVuZENvbG9yIHx8IFsyNTUsIDAsIDBdOyAvLyBkZWZhdWx0IGVuZCA9IHJlZFxuICBvcHRpb25zLmZvcm1hdCA9IG9wdGlvbnMuZm9ybWF0IHx8ICdyZ2InO1xuXG4gIGNvbnN0IHJlc3VsdDogbnVtYmVyW11bXSA9IFtdO1xuICBjb25zdCBjb2xvciA9IG9wdGlvbnMuc3RhcnRDb2xvci5zbGljZSgpOyAvLyBjb3B5IHRoZSBzdGFydCBjb2xvclxuICBjb25zdCBkZWx0YSA9IFtcbiAgICBNYXRoLnJvdW5kKChvcHRpb25zLmVuZENvbG9yWzBdIC0gb3B0aW9ucy5zdGFydENvbG9yWzBdKSAvIGNvdW50KSxcbiAgICBNYXRoLnJvdW5kKChvcHRpb25zLmVuZENvbG9yWzFdIC0gb3B0aW9ucy5zdGFydENvbG9yWzFdKSAvIGNvdW50KSxcbiAgICBNYXRoLnJvdW5kKChvcHRpb25zLmVuZENvbG9yWzJdIC0gb3B0aW9ucy5zdGFydENvbG9yWzJdKSAvIGNvdW50KVxuICBdO1xuXG4gIGZvciAobGV0IGkgPSAwOyBpIDwgY291bnQgLSAxOyBpKyspIHtcbiAgICBmb3IgKGxldCBqID0gMDsgaiA8IDM7IGorKykge1xuICAgICAgY29sb3Jbal0gKz0gZGVsdGFbal07XG4gICAgfVxuICAgIHJlc3VsdC5wdXNoKGNvbG9yLnNsaWNlKCkpO1xuICB9XG5cbiAgLy8gRm9yY2UgbGFzdCBjb2xvciA9IGVuZCBjb2xvclxuICByZXN1bHQucHVzaChvcHRpb25zLmVuZENvbG9yLnNsaWNlKCkpO1xuXG4gIC8vIE91dHB1dCBhcyBhcnJheVxuICBpZiAob3B0aW9ucy5mb3JtYXQgPT09ICdhcnJheScpIHtcbiAgICByZXR1cm4gcmVzdWx0O1xuICB9XG5cbiAgLy8gT3V0cHV0IGFzIHJnYihyLGcsYikgc3RyaW5nXG4gIGlmIChvcHRpb25zLmZvcm1hdCA9PT0gJ3JnYicpIHtcbiAgICBpZiAob3B0aW9ucy5vcGFjaXR5ID49IDEpIHtcbiAgICAgIHJldHVybiByZXN1bHQubWFwKGNvbG9yID0+ICdyZ2IoJyArIGNvbG9yLmpvaW4oJywnKSArICcpJyk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiByZXN1bHQubWFwKGNvbG9yID0+ICdyZ2JhKCcgKyBjb2xvci5jb25jYXQob3B0aW9ucy5vcGFjaXR5KS5qb2luKCcsJykgKyAnKScpO1xuICAgIH1cbiAgfVxuXG4gIC8vIE91dHB1dCBhcyBoZXhcbiAgLy8gVE9ET1xuICAvLyByZXR1cm4gcmVzdWx0Lm1hcChjb2xvciA9PiB7XG4gIC8vICAgcmV0dXJuIFwicmdiKFwiICsgY29sb3Iuam9pbignLCcpICsgXCIpXCI7XG4gIC8vIH0pO1xuICByZXR1cm4gcmVzdWx0O1xufVxuIl19
|
|
@@ -166,7 +166,7 @@ export class InMemoryEntitiesService extends StartableObservableService {
|
|
|
166
166
|
data = data.slice();
|
|
167
167
|
}
|
|
168
168
|
const res = { data, total };
|
|
169
|
-
const nextOffset = (offset || 0) + size;
|
|
169
|
+
const nextOffset = size > 0 ? (offset || 0) + size : total;
|
|
170
170
|
if (nextOffset < total) {
|
|
171
171
|
res.fetchMore = () => this.loadAll(nextOffset, size, sortBy, sortDirection, filter, opts)
|
|
172
172
|
.then(res => {
|
|
@@ -339,4 +339,4 @@ InMemoryEntitiesService.ctorParameters = () => [
|
|
|
339
339
|
{ type: Function },
|
|
340
340
|
{ type: undefined }
|
|
341
341
|
];
|
|
342
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVtb3J5LWVudGl0eS1zZXJ2aWNlLmNsYXNzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2FwcC9zaGFyZWQvc2VydmljZXMvbWVtb3J5LWVudGl0eS1zZXJ2aWNlLmNsYXNzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUMsZUFBZSxFQUFFLEtBQUssRUFBYSxNQUFNLE1BQU0sQ0FBQztBQUN4RCxPQUFPLEVBQUMsTUFBTSxFQUFFLEdBQUcsRUFBRSxRQUFRLEVBQUUsU0FBUyxFQUFFLEdBQUcsRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBQ3JFLE9BQU8sRUFBQyxZQUFZLEVBQUUsS0FBSyxFQUFFLGVBQWUsRUFBRSxRQUFRLEVBQUMsTUFBTSxjQUFjLENBQUM7QUFHNUUsT0FBTyxFQUFDLFNBQVMsRUFBWSxNQUFNLGVBQWUsQ0FBQztBQUNuRCxPQUFPLEVBQUMsV0FBVyxFQUFVLE1BQU0sd0NBQXdDLENBQUM7QUFDNUUsT0FBTyxFQUFDLFlBQVksRUFBRSxpQkFBaUIsRUFBQyxNQUFNLHdDQUF3QyxDQUFDO0FBQ3ZGLE9BQU8sRUFBQyxpQkFBaUIsRUFBOEIsTUFBTSxnQkFBZ0IsQ0FBQztBQUU5RSxPQUFPLEVBQUMsMEJBQTBCLEVBQUMsTUFBTSxzQ0FBc0MsQ0FBQztBQWNoRixXQUFXO0FBRVgsa0VBQWtFO0FBQ2xFLE1BQU0sT0FBTyx1QkFLWCxTQUFRLDBCQUFvQztJQWtDNUMsWUFDWSxRQUFvQixFQUNwQixVQUFzQixFQUNoQyxPQUE4QztRQUU5QyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUM7UUFKRixhQUFRLEdBQVIsUUFBUSxDQUFZO1FBQ3BCLGVBQVUsR0FBVixVQUFVLENBQVk7UUFqQ2xDLFVBQUssR0FBRyxLQUFLLENBQUM7UUFFTixnQkFBVyxHQUFRLElBQUksQ0FBQztRQUV2QixpQkFBWSxHQUFHLElBQUksZUFBZSxDQUFVLEtBQUssQ0FBQyxDQUFDO1FBRTND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QUksRUFBRSxLQUFLLEVBQUMsQ0FBQztRQUN2QixDQUFDLENBQUMsQ0FDSCxDQUFDO0lBQ0osQ0FBQztJQUVlLGVBQWUsQ0FBQyxJQUFxQjs7WUFDbkQsSUFBSSxJQUFJLENBQUMsTUFBTSxFQUFHO2dCQUNoQixPQUFPLGlCQUFpQixDQUFDLElBQUksQ0FBQyxhQUFhLGtCQUN6QyxJQUFJLEVBQUUsQ0FBQSxJQUFJLGFBQUosSUFBSSx1QkFBSixJQUFJLENBQUUsSUFBSSxLQUFJLEtBQUssQ0FBQyxJQUFJLENBQUMsV0FBVyxFQUFFLElBQUksQ0FBQyxXQUFXLENBQUMsRUFDN0QsU0FBUyxFQUFFLEtBQUssSUFDYixJQUFJLEVBQ1AsQ0FBQzthQUNKO1FBQ0gsQ0FBQztLQUFBO0lBRVMsWUFBWTtRQUNwQixJQUFJLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxLQUFLLEVBQUU7WUFDN0IsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7U0FDL0I7SUFDSCxDQUFDO0lBRVMsV0FBVztRQUNuQixJQUFJLElBQUksQ0FBQyxhQUFhLENBQUMsS0FBSyxFQUFFO1lBQzVCLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1NBQ2hDO0lBQ0gsQ0FBQzs7O1lBM1pGLFNBQVMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0JlaGF2aW9yU3ViamVjdCwgbWVyZ2UsIE9ic2VydmFibGV9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHtmaWx0ZXIsIG1hcCwgbWVyZ2VNYXAsIHRha2VVbnRpbCwgdGFwfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQge2lzRW1wdHlBcnJheSwgaXNOaWwsIGlzTm90RW1wdHlBcnJheSwgaXNOb3ROaWx9IGZyb20gJy4uL2Z1bmN0aW9ucyc7XG5pbXBvcnQge0VudGl0aWVzU2VydmljZUxvYWRPcHRpb25zLCBFbnRpdGllc1NlcnZpY2VXYXRjaE9wdGlvbnMsIEZpbHRlckZuLCBGaWx0ZXJGbkZhY3RvcnksIElFbnRpdGllc1NlcnZpY2UsIExvYWRSZXN1bHR9IGZyb20gJy4vZW50aXR5LXNlcnZpY2UuY2xhc3MnO1xuaW1wb3J0IHtTb3J0RGlyZWN0aW9ufSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9zb3J0JztcbmltcG9ydCB7RGlyZWN0aXZlLCBPbkRlc3Ryb3l9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtFbnRpdHlVdGlscywgSUVudGl0eX0gZnJvbSAnLi4vLi4vY29yZS9zZXJ2aWNlcy9tb2RlbC9lbnRpdHkubW9kZWwnO1xuaW1wb3J0IHtFbnRpdHlGaWx0ZXIsIEVudGl0eUZpbHRlclV0aWxzfSBmcm9tICcuLi8uLi9jb3JlL3NlcnZpY2VzL21vZGVsL2ZpbHRlci5tb2RlbCc7XG5pbXBvcnQge2ZpcnN0RmFsc2VQcm9taXNlLCBmaXJzdE5vdE5pbCwgV2FpdEZvck9wdGlvbnN9IGZyb20gJy4uL29ic2VydmFibGVzJztcbmltcG9ydCB7U3RhcnRhYmxlU2VydmljZX0gZnJvbSAnLi9zdGFydGFibGUtc2VydmljZS5jbGFzcyc7XG5pbXBvcnQge1N0YXJ0YWJsZU9ic2VydmFibGVTZXJ2aWNlfSBmcm9tICcuL3N0YXJ0YWJsZS1vYnNlcnZhYmxlLXNlcnZpY2UuY2xhc3MnO1xuXG5leHBvcnQgaW50ZXJmYWNlIEluTWVtb3J5RW50aXRpZXNTZXJ2aWNlT3B0aW9uczxULCBGPiB7XG4gIG9uU29ydD86IChkYXRhOiBUW10sIHNvcnRCeT86IHN0cmluZywgc29ydERpcmVjdGlvbj86IFNvcnREaXJlY3Rpb24pID0+IFRbXTtcbiAgb25Mb2FkPzogKGRhdGE6IFRbXSkgPT4gVFtdIHwgUHJvbWlzZTxUW10+O1xuICBvblNhdmU/OiAoZGF0YTogVFtdKSA9PiBUW10gfCBQcm9taXNlPFRbXT47XG4gIGVxdWFscz86IChkMTogVCwgZDI6IFQpID0+IGJvb2xlYW47XG5cbiAgZmlsdGVyRm5GYWN0b3J5PzogRmlsdGVyRm5GYWN0b3J5PFQsIEY+O1xuICBmaWx0ZXJGbj86IEZpbHRlckZuPFQ+O1xuXG4gIHNvcnRCeVJlcGxhY2VtZW50PzogeyBba2V5OiBzdHJpbmddOiBzdHJpbmcgfTtcbn1cblxuLy8gQGR5bmFtaWNcbkBEaXJlY3RpdmUoKVxuLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9kaXJlY3RpdmUtY2xhc3Mtc3VmZml4XG5leHBvcnQgY2xhc3MgSW5NZW1vcnlFbnRpdGllc1NlcnZpY2U8XG4gIFQgZXh0ZW5kcyBJRW50aXR5PFQsIElEPixcbiAgRiA9IGFueSxcbiAgSUQgPSBudW1iZXIsXG4gIE8gZXh0ZW5kcyBFbnRpdGllc1NlcnZpY2VXYXRjaE9wdGlvbnMgPSBFbnRpdGllc1NlcnZpY2VXYXRjaE9wdGlvbnM+XG4gIGV4dGVuZHMgU3RhcnRhYmxlT2JzZXJ2YWJsZVNlcnZpY2U8VFtdLCBUW10+XG4gIGltcGxlbWVudHMgSUVudGl0aWVzU2VydmljZTxULCBGLCBPPiwgT25EZXN0cm95IHtcblxuICBkZWJ1ZyA9IGZhbHNlO1xuXG4gIHByaXZhdGUgX2hpZGRlbkRhdGE6IFRbXSA9IG51bGw7XG5cbiAgcmVhZG9ubHkgZGlydHlTdWJqZWN0ID0gbmV3IEJlaGF2aW9yU3ViamVjdDxib29sZWFuPihmYWxzZSk7XG5cbiAgcHJpdmF0ZSByZWFkb25seSBzYXZpbmdTdWJqZWN0ID0gbmV3IEJlaGF2aW9yU3ViamVjdDxib29sZWFuPihmYWxzZSk7XG4gIHByaXZhdGUgcmVhZG9ubHkgX3NvcnRGbjogKGRhdGE6IFRbXSwgc29ydEJ5Pzogc3RyaW5nLCBzb3J0RGlyZWN0aW9uPzogU29ydERpcmVjdGlvbikgPT4gVFtdO1xuICBwcml2YXRlIHJlYWRvbmx5IF9vbkxvYWQ6IChkYXRhOiBUW10pID0+IFRbXSB8IFByb21pc2U8VFtdPjtcbiAgcHJpdmF0ZSByZWFkb25seSBfb25TYXZlRm46IChkYXRhOiBUW10pID0+IFRbXSB8IFByb21pc2U8VFtdPjtcbiAgcHJpdmF0ZSByZWFkb25seSBfZXF1YWxzRm46IChkMTogVCwgZDI6IFQpID0+IGJvb2xlYW47XG4gIHByaXZhdGUgcmVhZG9ubHkgX2ZpbHRlckZuRmFjdG9yeTogRmlsdGVyRm5GYWN0b3J5PFQsIEY+O1xuICBwcml2YXRlIHJlYWRvbmx5IF9zb3J0QnlSZXBsYWNlbWVudDogeyBba2V5OiBzdHJpbmddOiBzdHJpbmcgfTtcblxuXG4gIHNldCB2YWx1ZShkYXRhOiBUW10pIHtcbiAgICB0aGlzLnNldFZhbHVlKGRhdGEpO1xuICB9XG5cbiAgZ2V0IHZhbHVlKCk6IFRbXSB7XG4gICAgcmV0dXJuIHRoaXMuZGF0YVN1YmplY3QuZ2V0VmFsdWUoKTtcbiAgfVxuXG4gIGdldCBzYXZpbmcoKTogYm9vbGVhbntcbiAgICByZXR1cm4gdGhpcy5zYXZpbmdTdWJqZWN0LnZhbHVlO1xuICB9XG5cbiAgZ2V0IGRpcnR5KCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLmRpcnR5U3ViamVjdC52YWx1ZTtcbiAgfVxuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByb3RlY3RlZCBkYXRhVHlwZTogbmV3KCkgPT4gVCxcbiAgICBwcm90ZWN0ZWQgZmlsdGVyVHlwZTogbmV3KCkgPT4gRixcbiAgICBvcHRpb25zPzogSW5NZW1vcnlFbnRpdGllc1NlcnZpY2VPcHRpb25zPFQsIEY+XG4gICkge1xuICAgIHN1cGVyKG51bGwpO1xuICAgIG9wdGlvbnMgPSB7XG4gICAgICBvblNvcnQ6IHRoaXMuc29ydCxcbiAgICAgIC4uLm9wdGlvbnNcbiAgICB9O1xuXG4gICAgdGhpcy5fc29ydEZuID0gb3B0aW9ucy5vblNvcnQ7XG4gICAgdGhpcy5fb25Mb2FkID0gb3B0aW9ucy5vbkxvYWQ7XG4gICAgdGhpcy5fb25TYXZlRm4gPSBvcHRpb25zLm9uU2F2ZTtcbiAgICB0aGlzLl9lcXVhbHNGbiA9IG9wdGlvbnMuZXF1YWxzO1xuICAgIHRoaXMuX2ZpbHRlckZuRmFjdG9yeSA9IG9wdGlvbnMuZmlsdGVyRm5GYWN0b3J5IHx8ICgoZikgPT4ge1xuICAgICAgY29uc3QgZmlsdGVyID0gdGhpcy5hc0ZpbHRlcihmKSBhcyBGO1xuICAgICAgaWYgKGZpbHRlciBpbnN0YW5jZW9mIEVudGl0eUZpbHRlcikge1xuICAgICAgICByZXR1cm4gZmlsdGVyLmFzRmlsdGVyRm4oKTtcbiAgICAgIH1cbiAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgfSk7XG4gICAgdGhpcy5fc3RhcnRCeVJlYWR5RnVuY3Rpb24gPSBmYWxzZTsgLy8gTmVlZCBzZXRWYWx1ZSgpIHRvIGJlIGNhbGxlZCwgdG8gc3RhcnQgdGhlIHNlcnZpY2VcblxuICAgIHRoaXMuX3NvcnRCeVJlcGxhY2VtZW50ID0ge1xuICAgICAgLi4ub3B0aW9ucy5zb3J0QnlSZXBsYWNlbWVudFxuICAgIH07XG4gIH1cblxuICBwcm90ZWN0ZWQgYXN5bmMgbmdPblN0YXJ0KGRhdGE/OiBUW10pOiBQcm9taXNlPFRbXT4ge1xuICAgIGlmICghZGF0YSkgdGhyb3cgbmV3IEVycm9yKCdNaXNzaW5nIHJlcXVpcmVkIGRhdGEsIHRvIHN0YXJ0IHRoaXMgc2VydmljZScpO1xuICAgIGlmICh0aGlzLmRlYnVnKSBjb25zb2xlLmRlYnVnKCdbbWVtb3J5LWRhdGEtc2VydmljZV0gU3RhcnRpbmcuLi4nKTtcbiAgICB0aGlzLl9oaWRkZW5EYXRhID0gW107XG4gICAgdGhpcy5tYXJrQXNTYXZlZCgpO1xuICAgIHRoaXMubWFya0FzUHJpc3RpbmUoKTtcbiAgICByZXR1cm4gZGF0YTtcbiAgfVxuXG4gIHByb3RlY3RlZCBhc3luYyBuZ09uU3RvcCgpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBpZiAodGhpcy5kZWJ1ZykgY29uc29sZS5kZWJ1ZygnW21lbW9yeS1kYXRhLXNlcnZpY2VdIFN0b3BwaW5nLi4uJyk7XG4gICAgdGhpcy5kYXRhU3ViamVjdC5jb21wbGV0ZSgpO1xuICAgIHRoaXMuZGF0YVN1YmplY3QudW5zdWJzY3JpYmUoKTtcbiAgICB0aGlzLl9oaWRkZW5EYXRhID0gbnVsbDtcbiAgICB0aGlzLm1hcmtBc1NhdmVkKCk7XG4gICAgdGhpcy5tYXJrQXNQcmlzdGluZSgpO1xuICB9XG5cbiAgbmdPbkRlc3Ryb3koKSB7XG4gICAgdGhpcy5zdG9wKCk7XG4gIH1cblxuICBzZXRWYWx1ZShkYXRhOiBUW10pIHtcbiAgICAvLyBJZiBzZXJ2aWNlIGFscmVhZHkgc3RhcnRlZFxuICAgIGlmICh0aGlzLnN0YXJ0ZWQpIHtcbiAgICAgIC8vIFVwZGF0ZSB0aGUgZGF0YSwgaWYgY2hhbmdlZFxuICAgICAgaWYgKHRoaXMuZGF0YVN1YmplY3QudmFsdWUgIT09IGRhdGEpIHtcbiAgICAgICAgdGhpcy5faGlkZGVuRGF0YSA9IFtdO1xuICAgICAgICB0aGlzLmRhdGFTdWJqZWN0Lm5leHQoZGF0YSk7XG4gICAgICB9XG5cbiAgICAgIC8vIFJlc2V0IGRpcnR5IGFuZCBzYXZpbmcgc3RhdGVcbiAgICAgIC8vIChGaXggT2JzQmlvIGlzc3VlIG9uIHNhbXBsZXMgdGFibGUgOiBzdGlsbCBkaXJ0eSBhZnRlciBzZXR0aW5nIHRoZSBzYW1lIHZhbHVlIGFnYWluKVxuICAgICAgdGhpcy5tYXJrQXNTYXZlZCgpO1xuICAgICAgdGhpcy5tYXJrQXNQcmlzdGluZSgpO1xuICAgIH1cbiAgICAvLyBJZiBzZXJ2aWNlIG5vdCBzdGFydGVkIHlldCwgdGhlbiBzdGFydCBpdCwgdXNpbmcgZ2l2ZW4gZGF0YVxuICAgIGVsc2Uge1xuICAgICAgdGhpcy5zdGFydChkYXRhKTtcbiAgICB9XG4gIH1cblxuICBhc3luYyBsb2FkQWxsKFxuICAgIG9mZnNldDogbnVtYmVyLFxuICAgIHNpemU6IG51bWJlcixcbiAgICBzb3J0Qnk/OiBzdHJpbmcsXG4gICAgc29ydERpcmVjdGlvbj86IFNvcnREaXJlY3Rpb24sXG4gICAgZmlsdGVyPzogRixcbiAgICBvcHRzPzogRW50aXRpZXNTZXJ2aWNlTG9hZE9wdGlvbnNcbiAgKTogUHJvbWlzZTxMb2FkUmVzdWx0PFQ+PiB7XG5cbiAgICBvZmZzZXQgPSBvZmZzZXQgPj0gMCA/IG9mZnNldCA6IDA7XG4gICAgc2l6ZSA9IHNpemUgPj0gMCA/IHNpemUgOiAtMTtcblxuICAgIGNvbnN0IG9yaWdpbmFsRGF0YSA9IHRoaXMuZGF0YVN1YmplY3QudmFsdWU7XG4gICAgaWYgKGlzTmlsKG9yaWdpbmFsRGF0YSkpIHtcbiAgICAgIGNvbnNvbGUud2FybignW21lbW9yeS1kYXRhLXNlcnZpY2VdIENhbm5vdCBsb2FkIGFsbDogbm8gdmFsdWUgc2V0LiBXaWxsIHJldHVybiBlbXB0eSByZXN1bHQnKTtcbiAgICB9XG5cbiAgICB0cnkge1xuICAgICAgLy8gV2FpdCBzZXJ2aWNlIGlzIHJlYWR5XG4gICAgICBhd2FpdCB0aGlzLnJlYWR5KCk7XG5cbiAgICAgIC8vIFdhaXQgd2hpbGUgYnVzeSAoZS5nLiB3aGVuIHNhdmluZywgb3IgZGVsZXRpbmcpXG4gICAgICBhd2FpdCB0aGlzLndhaXRJZGxlKHtzdG9wRXJyb3I6IGZhbHNlIC8qYXZvaWQgZXJyb3Igd2hlbiBzdG9wcGVkKi99KTtcbiAgICB9XG4gICAgY2F0Y2ggKGVycikge1xuICAgICAgLy8gU2hvdWxkIGJlIGEgc3RvcCBlcnJvcjogbG9nIGFuZCBjb250aW51ZVxuICAgICAgaWYgKCF0aGlzLnN0b3BwZWQpIGNvbnNvbGUuZXJyb3IoJ1VuZXhwZWN0ZWQgZXJyb3IsIHdoaWxlIHdhaXRpbmcgOicsIGVycik7XG4gICAgfVxuXG4gICAgLy8gTWFrZSBzdXJlIHNlcnZpY2UgaXMgbm90IHN0b3BwZWRcbiAgICBpZiAodGhpcy5zdG9wcGVkKSByZXR1cm4gdW5kZWZpbmVkO1xuXG4gICAgY29uc3QgZXhjbHVkZWREYXRhQnlGaWx0ZXI6IFRbXSA9IFtdO1xuICAgIGxldCBleGNsdWRlZERhdGFCeVBhZ2luYXRpb246IFRbXTtcblxuICAgIHRyeSB7XG4gICAgICBpZiAoaXNFbXB0eUFycmF5KG9yaWdpbmFsRGF0YSkpIHtcbiAgICAgICAgcmV0dXJuIHtkYXRhOiBbXSwgdG90YWw6IDB9O1xuICAgICAgfVxuXG4gICAgICAvLyBBcHBseSBzb3J0XG4gICAgICBsZXQgZGF0YSA9IHRoaXMuX3NvcnRGbihvcmlnaW5hbERhdGEsIHNvcnRCeSwgc29ydERpcmVjdGlvbikgO1xuXG4gICAgICBpZiAodGhpcy5fb25Mb2FkKSB7XG4gICAgICAgIGRhdGEgPSBhd2FpdCB0aGlzLl9vbkxvYWQoZGF0YSk7XG4gICAgICB9XG5cbiAgICAgIC8vIEFwcGx5IGZpbHRlciAod2lsbCB1cGRhdGUgaGlkZGVuRGF0YSlcbiAgICAgIGRhdGEgPSB0aGlzLmZpbHRlcihkYXRhLCBmaWx0ZXIsIGV4Y2x1ZGVkRGF0YUJ5RmlsdGVyKTtcblxuICAgICAgLy8gQ29tcHV0ZSB0aGUgdG90YWwgbGVuZ3RoXG4gICAgICBjb25zdCB0b3RhbCA9IGRhdGEubGVuZ3RoO1xuXG4gICAgICAvLyBJZiBwYWdlIHNpemU9MCAoZS5nLiBvbmx5IG5lZWQgdG90YWwpXG4gICAgICBpZiAoc2l6ZSA9PT0gMCkge1xuICAgICAgICBleGNsdWRlZERhdGFCeVBhZ2luYXRpb24gPSBkYXRhO1xuICAgICAgICByZXR1cm4ge2RhdGE6IFtdLCB0b3RhbH07XG4gICAgICB9XG5cbiAgICAgIC8vIFNsaWNlIGluIGEgcGFnZSAodXNpbmcgb2Zmc2V0IGFuZCBzaXplKVxuICAgICAgaWYgKG9mZnNldCA+IDApIHtcblxuICAgICAgICAvLyBPZmZzZXQgYWZ0ZXIgdGhlIGVuZDogbm8gcmVzdWx0XG4gICAgICAgIGlmIChvZmZzZXQgPj0gZGF0YS5sZW5ndGgpIHtcbiAgICAgICAgICBleGNsdWRlZERhdGFCeVBhZ2luYXRpb24gPSBkYXRhO1xuICAgICAgICAgIGRhdGEgPSBbXTtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICBleGNsdWRlZERhdGFCeVBhZ2luYXRpb24gPSAoc2l6ZSA+IDAgJiYgKChvZmZzZXQgKyBzaXplKSA8IGRhdGEubGVuZ3RoKSlcbiAgICAgICAgICAgIC8vIFNsaWNlIHVzaW5nIGxpbWl0IHRvIHNpemVcbiAgICAgICAgICAgID8gZGF0YS5zbGljZSgwLCBvZmZzZXQgLTEpLmNvbmNhdChkYXRhLnNsaWNlKG9mZnNldCArIHNpemUpKVxuICAgICAgICAgICAgLy8gU2xpY2Ugd2l0aG91dCBsaW1pdFxuICAgICAgICAgICAgOiBkYXRhLnNsaWNlKDAsIG9mZnNldC0xKTtcblxuICAgICAgICAgIGRhdGEgPSAoc2l6ZSA+IDAgJiYgKChvZmZzZXQgKyBzaXplKSA8IGRhdGEubGVuZ3RoKSlcbiAgICAgICAgICAgIC8vIFNsaWNlIHVzaW5nIGxpbWl0IHRvIHNpemVcbiAgICAgICAgICAgID8gZGF0YS5zbGljZShvZmZzZXQsIG9mZnNldCArIHNpemUpXG4gICAgICAgICAgICAvLyBTbGljZSB3aXRob3V0IGxpbWl0XG4gICAgICAgICAgICA6IGRhdGEuc2xpY2Uob2Zmc2V0KTtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICAvLyBBcHBseSBhIGxpbWl0XG4gICAgICBlbHNlIGlmIChzaXplID4gMCl7XG4gICAgICAgIGV4Y2x1ZGVkRGF0YUJ5UGFnaW5hdGlvbiA9IGRhdGEuc2xpY2Uoc2l6ZSk7XG4gICAgICAgIGRhdGEgPSBkYXRhLnNsaWNlKDAsIHNpemUpO1xuICAgICAgfVxuXG4gICAgICAvLyBObyBsaW1pdDpcbiAgICAgIGVsc2UgaWYgKHNpemUgPT09IC0xKXtcbiAgICAgICAgLy8gS2VlcCBhbGwgZGF0YVxuICAgICAgfVxuXG4gICAgICAvLyAvIVxcIElmIGFscmVhZHkgb2JzZXJ2ZWQsIHRoZW4gYWx3YXlzIGNyZWF0ZSBhIGNvcHkgb2YgdGhlIG9yaWdpbmFsIGFycmF5XG4gICAgICAvLyBCZWNhdXNlIGRhdGFzb3VyY2Ugd2lsbCBvbmx5IHVwZGF0ZSBpZiB0aGUgYXJyYXkgY2hhbmdlZFxuICAgICAgaWYgKGRhdGEgPT09IG9yaWdpbmFsRGF0YSkge1xuICAgICAgICBkYXRhID0gZGF0YS5zbGljZSgpO1xuICAgICAgfVxuXG4gICAgICBjb25zdCByZXM6IExvYWRSZXN1bHQ8VD4gPSB7ZGF0YSwgdG90YWx9O1xuXG4gICAgICBjb25zdCBuZXh0T2Zmc2V0ID0gKG9mZnNldCB8fCAwKSArIHNpemU7XG4gICAgICBpZiAobmV4dE9mZnNldCA8IHRvdGFsKSB7XG4gICAgICAgIHJlcy5mZXRjaE1vcmUgPSAoKSA9PiB0aGlzLmxvYWRBbGwobmV4dE9mZnNldCwgc2l6ZSwgc29ydEJ5LCBzb3J0RGlyZWN0aW9uLCBmaWx0ZXIsIG9wdHMpXG4gICAgICAgICAgLnRoZW4ocmVzID0+IHtcbiAgICAgICAgICAgIC8vIFVwZGF0ZSBoaWRkZW4gZGF0YSAocmVtb3ZlIG5ldyBmZXRjaGVkIGl0ZW0pXG4gICAgICAgICAgICBpZiAocmVzLmRhdGE/Lmxlbmd0aCkge1xuICAgICAgICAgICAgICB0aGlzLl9oaWRkZW5EYXRhID0gdGhpcy5faGlkZGVuRGF0YT8uZmlsdGVyKGl0ZW0gPT4gIXJlcy5kYXRhLmluY2x1ZGVzKGl0ZW0pKVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIHJlcztcbiAgICAgICAgICB9KTtcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIHJlcztcbiAgICB9XG4gICAgZmluYWxseSB7XG4gICAgICAvLyBSZW1lbWJlciBoaWRkZW4gZGF0YVxuICAgICAgaWYgKG9mZnNldCA9PT0gMCkge1xuICAgICAgICB0aGlzLl9oaWRkZW5EYXRhID0gIWV4Y2x1ZGVkRGF0YUJ5UGFnaW5hdGlvbiA/IGV4Y2x1ZGVkRGF0YUJ5RmlsdGVyIDogZXhjbHVkZWREYXRhQnlGaWx0ZXIuY29uY2F0KC4uLmV4Y2x1ZGVkRGF0YUJ5UGFnaW5hdGlvbik7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgd2F0Y2hBbGwoXG4gICAgb2Zmc2V0OiBudW1iZXIsXG4gICAgc2l6ZTogbnVtYmVyLFxuICAgIHNvcnRCeT86IHN0cmluZyxcbiAgICBzb3J0RGlyZWN0aW9uPzogU29ydERpcmVjdGlvbixcbiAgICBmaWx0ZXJEYXRhPzogRixcbiAgICBvcHRpb25zPzogYW55XG4gICk6IE9ic2VydmFibGU8TG9hZFJlc3VsdDxUPj4ge1xuXG4gICAgb2Zmc2V0ID0gb2Zmc2V0ID49IDAgPyBvZmZzZXQgOiAwO1xuICAgIHNpemUgPSBzaXplID49IDAgPyBzaXplIDogLTE7XG5cbiAgICByZXR1cm4gdGhpcy5kYXRhU3ViamVjdFxuICAgICAgLnBpcGUoXG4gICAgICAgIHRha2VVbnRpbCh0aGlzLnN0b3BTdWJqZWN0KSxcbiAgICAgICAgLy8gV2FybiBpZiB3YWl0aW5nIHZhbHVlIHRvIGJlIHNldFxuICAgICAgICB0YXAoKGRhdGEpID0+IHRoaXMuZGVidWcgJiYgIWRhdGEgJiYgY29uc29sZS5kZWJ1ZygnW21lbW9yeS1kYXRhLXNlcnZpY2VdIFdhaXRpbmcgdmFsdWUgdG8gYmUgc2V0Li4uJykpLFxuICAgICAgICBmaWx0ZXIoaXNOb3ROaWwpLFxuICAgICAgICBtZXJnZU1hcChfID0+IHRoaXMubG9hZEFsbChvZmZzZXQsIHNpemUsIHNvcnRCeSwgc29ydERpcmVjdGlvbiwgZmlsdGVyRGF0YSwgb3B0aW9ucykpLFxuICAgICAgICBmaWx0ZXIoaXNOb3ROaWwpIC8vIFNraXAgbm8gcmVzdWx0IChlLmcuIHdoZW4gc3RvcHBlZClcbiAgICAgICk7XG4gIH1cblxuICBhc3luYyBzYXZlQWxsKGRhdGE6IFRbXSwgb3B0aW9ucz86IGFueSk6IFByb21pc2U8VFtdPiB7XG4gICAgaWYgKCF0aGlzLmRhdGFTdWJqZWN0LnZhbHVlKSB0aHJvdyBuZXcgRXJyb3IoJ1ttZW1vcnktc2VydmljZV0gQ291bGQgbm90IHNhdmUsIGJlY2F1c2UgdmFsdWUgbm90IHNldCcpO1xuXG4gICAgdGhpcy5tYXJrQXNTYXZpbmcoKTtcblxuICAgIHRyeSB7XG5cbiAgICAgIC8vIFJlc3RvcmUgaGlkZGVuIGRhdGFcbiAgICAgIGlmIChpc05vdEVtcHR5QXJyYXkodGhpcy5faGlkZGVuRGF0YSkpXG4gICAgICAgIGRhdGEgPSBkYXRhLmNvbmNhdCguLi50aGlzLl9oaWRkZW5EYXRhKTtcblxuICAgICAgaWYgKHRoaXMuX29uU2F2ZUZuKSB7XG4gICAgICAgIGNvbnN0IHJlcyA9IHRoaXMuX29uU2F2ZUZuKGRhdGEpO1xuICAgICAgICBkYXRhID0gKChyZXMgaW5zdGFuY2VvZiBQcm9taXNlKSkgPyBhd2FpdCByZXMgOiByZXM7XG4gICAgICB9XG5cbiAgICAgIHRoaXMuZGF0YVN1YmplY3QubmV4dChkYXRhKTtcbiAgICAgIHRoaXMubWFya0FzRGlydHkoKTtcbiAgICAgIHJldHVybiBkYXRhO1xuICAgIH1cbiAgICBmaW5hbGx5IHtcbiAgICAgIHRoaXMubWFya0FzU2F2ZWQoKTtcbiAgICB9XG4gIH1cblxuICBhc3luYyBkZWxldGVBbGwoZGF0YVRvUmVtb3ZlOiBUW10sIG9wdGlvbnM/OiBhbnkpOiBQcm9taXNlPGFueT4ge1xuICAgIGxldCBkYXRhID0gdGhpcy5kYXRhU3ViamVjdC52YWx1ZTtcbiAgICBpZiAoIWRhdGEpIHRocm93IG5ldyBFcnJvcignW21lbW9yeS1zZXJ2aWNlXSBDb3VsZCBub3QgZGVsZXRlLCBiZWNhdXNlIHZhbHVlIG5vdCBzZXQnKTtcblxuICAgIHRoaXMubWFya0FzU2F2aW5nKCk7XG5cbiAgICB0cnkge1xuICAgICAgLy8gUmVtb3ZlIGRlbGV0ZWQgaXRlbSwgZnJvbSBkYXRhXG4gICAgICBjb25zdCB1cGRhdGVkRGF0YSA9IGRhdGEuZmlsdGVyKGVudGl0eSA9PiB7XG4gICAgICAgIGNvbnN0IHJlbW92ZWQgPSBkYXRhVG9SZW1vdmUuZmluZEluZGV4KGVudGl0eVRvUmVtb3ZlID0+IHRoaXMuZXF1YWxzKGVudGl0eVRvUmVtb3ZlLCBlbnRpdHkpKSAhPT0gLTE7XG4gICAgICAgIHJldHVybiAhcmVtb3ZlZDtcbiAgICAgIH0pO1xuICAgICAgY29uc3QgZGVsZXRlQ291bnQgPSBkYXRhLmxlbmd0aCAtIHVwZGF0ZWREYXRhLmxlbmd0aDtcbiAgICAgIGlmIChkZWxldGVDb3VudCA+IDApIHtcbiAgICAgICAgZGF0YSA9IHVwZGF0ZWREYXRhO1xuICAgICAgICB0aGlzLmRhdGFTdWJqZWN0Lm5leHQoZGF0YSk7XG4gICAgICAgIHRoaXMubWFya0FzRGlydHkoKTtcbiAgICAgIH1cbiAgICB9XG4gICAgZmluYWxseSB7XG4gICAgICB0aGlzLm1hcmtBc1NhdmVkKCk7XG4gICAgfVxuICB9XG5cbiAgc29ydChkYXRhOiBUW10sIHNvcnRCeT86IHN0cmluZywgc29ydERpcmVjdGlvbj86IFNvcnREaXJlY3Rpb24pOiBUW10ge1xuICAgIC8vIE1ha2Ugc3VyZSB0byBmaWxsIHNvcnRCeSBCRUZPUkUgY2hlY2tpbmcgaW4gdGhlIHJlcGxhY2VtZW50IG1hcFxuICAgIHNvcnRCeSA9IHNvcnRCeSB8fCAnaWQnO1xuICAgIC8vIFJlcGxhY2Ugc29ydEJ5LCB1c2luZyB0aGUgcmVwbGFjZW1lbnQgbWFwXG4gICAgc29ydEJ5ID0gdGhpcy5fc29ydEJ5UmVwbGFjZW1lbnRbc29ydEJ5XSB8fCBzb3J0Qnk7XG5cbiAgICAvLyBFeGVjdXRlIHRoZSBzb3J0XG4gICAgcmV0dXJuIEVudGl0eVV0aWxzLnNvcnQoZGF0YSwgc29ydEJ5LCBzb3J0RGlyZWN0aW9uKTtcbiAgfVxuXG4gIGFzRmlsdGVyKHNvdXJjZTogUGFydGlhbDxGPik6IEYge1xuICAgIHJldHVybiBFbnRpdHlGaWx0ZXJVdGlscy5mcm9tT2JqZWN0KHNvdXJjZSwgdGhpcy5maWx0ZXJUeXBlKTtcbiAgfVxuXG4gIGFkZFNvcnRCeVJlcGxhY2VtZW50KHNvdXJjZTogc3RyaW5nLCB0YXJnZXQ6IHN0cmluZykge1xuICAgIHRoaXMuX3NvcnRCeVJlcGxhY2VtZW50W3NvdXJjZV0gPSB0YXJnZXQ7XG4gIH1cblxuICBlcXVhbHMoZDE6IFQsIGQyOiBUKTogYm9vbGVhbiB7XG4gICAgaWYgKHRoaXMuX2VxdWFsc0ZuKSByZXR1cm4gdGhpcy5fZXF1YWxzRm4oZDEsIGQyKTtcbiAgICByZXR1cm4gZDEgJiYgZDEuZXF1YWxzID8gZDEuZXF1YWxzKGQyKSA6IEVudGl0eVV0aWxzLmVxdWFscyhkMSwgZDIsICdpZCcpO1xuICB9XG5cbiAgLyoqXG4gICAqIENvdW50IGRhdGEgc3RvcmVkIGJ5IHRoZSBzZXJ2aWNlICh3aXRob3V0IGhpZGRlbiBkYXRhKS5cbiAgICogQHBhcmFtIG9wdHNcbiAgICovXG4gIGdldCBjb3VudCgpOiBudW1iZXIge1xuICAgIHJldHVybiAodGhpcy5kYXRhU3ViamVjdC52YWx1ZT8ubGVuZ3RoIHx8IDApO1xuICB9XG5cbiAgZ2V0IGhpZGRlbkNvdW50KCk6IG51bWJlciB7XG4gICAgcmV0dXJuIHRoaXMuX2hpZGRlbkRhdGE/Lmxlbmd0aCB8fCAwO1xuICB9XG5cbiAgYXN5bmMgd2FpdElkbGUob3B0cz86IFdhaXRGb3JPcHRpb25zKSB7XG4gICAgYXdhaXQgdGhpcy53YWl0V2hpbGVTYXZpbmcob3B0cyk7XG4gIH1cblxuICBtYXJrQXNEaXJ0eSgpIHtcbiAgICBpZiAoIXRoaXMuZGlydHlTdWJqZWN0LnZhbHVlKSB7XG4gICAgICB0aGlzLmRpcnR5U3ViamVjdC5uZXh0KHRydWUpO1xuICAgIH1cbiAgfVxuXG4gIG1hcmtBc1ByaXN0aW5lKCkge1xuICAgIGlmICh0aGlzLmRpcnR5U3ViamVjdC52YWx1ZSkge1xuICAgICAgdGhpcy5kaXJ0eVN1YmplY3QubmV4dChmYWxzZSk7XG4gICAgfVxuICB9XG5cbiAgLyogLS0gcHJvdGVjdGVkIG1ldGhvZHMgLS0gKi9cblxuICBwcm90ZWN0ZWQgZmlsdGVyKGRhdGE6IFRbXSwgX2ZpbHRlcjogRiwgaGlkZGVuRGF0YTogVFtdKTogVFtdIHtcblxuICAgIC8vIGlmIGZpbHRlciBpcyBEYXRhRmlsdGVyIGluc3RhbmNlLCB1c2UgaXRzIHRlc3QgZnVuY3Rpb25cbiAgICBjb25zdCBmaWx0ZXJGbiA9IHRoaXMuX2ZpbHRlckZuRmFjdG9yeSAmJiB0aGlzLl9maWx0ZXJGbkZhY3RvcnkoX2ZpbHRlcik7XG4gICAgaWYgKGZpbHRlckZuKSB7XG4gICAgICBjb25zdCBmaWx0ZXJlZERhdGEgPSBbXTtcblxuICAgICAgZGF0YS5mb3JFYWNoKHZhbHVlID0+IHtcbiAgICAgICAgaWYgKGZpbHRlckZuKHZhbHVlKSlcbiAgICAgICAgICBmaWx0ZXJlZERhdGEucHVzaCh2YWx1ZSk7XG4gICAgICAgIGVsc2VcbiAgICAgICAgICBoaWRkZW5EYXRhLnB1c2godmFsdWUpO1xuICAgICAgfSk7XG5cbiAgICAgIHJldHVybiBmaWx0ZXJlZERhdGE7XG4gICAgfVxuXG4gICAgLy8gZGVmYXVsdCwgbm8gZmlsdGVyXG4gICAgcmV0dXJuIGRhdGE7XG4gIH1cblxuICBwcm90ZWN0ZWQgY29ubmVjdCgpOiBPYnNlcnZhYmxlPExvYWRSZXN1bHQ8VD4+IHtcbiAgICByZXR1cm4gdGhpcy5kYXRhU3ViamVjdC5waXBlKFxuICAgICAgbWFwKChkYXRhKSA9PiB7XG4gICAgICAgIGRhdGEgPSBkYXRhIHx8IFtdO1xuICAgICAgICBjb25zdCB0b3RhbCA9IGRhdGEubGVuZ3RoO1xuICAgICAgICByZXR1cm4ge2RhdGEsIHRvdGFsfTtcbiAgICAgIH0pXG4gICAgKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBhc3luYyB3YWl0V2hpbGVTYXZpbmcob3B0cz86IFdhaXRGb3JPcHRpb25zKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgaWYgKHRoaXMuc2F2aW5nKSAge1xuICAgICAgcmV0dXJuIGZpcnN0RmFsc2VQcm9taXNlKHRoaXMuc2F2aW5nU3ViamVjdCwge1xuICAgICAgICBzdG9wOiBvcHRzPy5zdG9wIHx8IG1lcmdlKHRoaXMuc3RvcFN1YmplY3QsIHRoaXMuZGF0YVN1YmplY3QpLCAvLyBTdG9wIGlmIGRlc3Ryb3llZCBvciBuZXcgZGF0YSBSZWNlaXZlZFxuICAgICAgICBzdG9wRXJyb3I6IGZhbHNlLCAvLyBBdm9pZCBlcnJvciB3aGVuIHN0b3BwZWRcbiAgICAgICAgLi4ub3B0c1xuICAgICAgfSk7XG4gICAgfVxuICB9XG5cbiAgcHJvdGVjdGVkIG1hcmtBc1NhdmluZygpIHtcbiAgICBpZiAoIXRoaXMuc2F2aW5nU3ViamVjdC52YWx1ZSkge1xuICAgICAgdGhpcy5zYXZpbmdTdWJqZWN0Lm5leHQodHJ1ZSk7XG4gICAgfVxuICB9XG5cbiAgcHJvdGVjdGVkIG1hcmtBc1NhdmVkKCkge1xuICAgIGlmICh0aGlzLnNhdmluZ1N1YmplY3QudmFsdWUpIHtcbiAgICAgIHRoaXMuc2F2aW5nU3ViamVjdC5uZXh0KGZhbHNlKTtcbiAgICB9XG4gIH1cblxuXG59XG4iXX0=
|
|
342
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVtb3J5LWVudGl0eS1zZXJ2aWNlLmNsYXNzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2FwcC9zaGFyZWQvc2VydmljZXMvbWVtb3J5LWVudGl0eS1zZXJ2aWNlLmNsYXNzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUMsZUFBZSxFQUFFLEtBQUssRUFBYSxNQUFNLE1BQU0sQ0FBQztBQUN4RCxPQUFPLEVBQUMsTUFBTSxFQUFFLEdBQUcsRUFBRSxRQUFRLEVBQUUsU0FBUyxFQUFFLEdBQUcsRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBQ3JFLE9BQU8sRUFBQyxZQUFZLEVBQUUsS0FBSyxFQUFFLGVBQWUsRUFBRSxRQUFRLEVBQUMsTUFBTSxjQUFjLENBQUM7QUFHNUUsT0FBTyxFQUFDLFNBQVMsRUFBWSxNQUFNLGVBQWUsQ0FBQztBQUNuRCxPQUFPLEVBQUMsV0FBVyxFQUFVLE1BQU0sd0NBQXdDLENBQUM7QUFDNUUsT0FBTyxFQUFDLFlBQVksRUFBRSxpQkFBaUIsRUFBQyxNQUFNLHdDQUF3QyxDQUFDO0FBQ3ZGLE9BQU8sRUFBQyxpQkFBaUIsRUFBOEIsTUFBTSxnQkFBZ0IsQ0FBQztBQUU5RSxPQUFPLEVBQUMsMEJBQTBCLEVBQUMsTUFBTSxzQ0FBc0MsQ0FBQztBQWNoRixXQUFXO0FBRVgsa0VBQWtFO0FBQ2xFLE1BQU0sT0FBTyx1QkFLWCxTQUFRLDBCQUFvQztJQWtDNUMsWUFDWSxRQUFvQixFQUNwQixVQUFzQixFQUNoQyxPQUE4QztRQUU5QyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUM7UUFKRixhQUFRLEdBQVIsUUFBUSxDQUFZO1FBQ3BCLGVBQVUsR0FBVixVQUFVLENBQVk7UUFqQ2xDLFVBQUssR0FBRyxLQUFLLENBQUM7UUFFTixnQkFBVyxHQUFRLElBQUksQ0FBQztRQUV2QixpQkFBWSxHQUFHLElBQUksZUFBZSxDQUFVLEtBQUssQ0FBQyxDQUFDO1FBRTND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TSxLQUFLLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQztZQUMxQixPQUFPLEVBQUMsSUFBSSxFQUFFLEtBQUssRUFBQyxDQUFDO1FBQ3ZCLENBQUMsQ0FBQyxDQUNILENBQUM7SUFDSixDQUFDO0lBRWUsZUFBZSxDQUFDLElBQXFCOztZQUNuRCxJQUFJLElBQUksQ0FBQyxNQUFNLEVBQUc7Z0JBQ2hCLE9BQU8saUJBQWlCLENBQUMsSUFBSSxDQUFDLGFBQWEsa0JBQ3pDLElBQUksRUFBRSxDQUFBLElBQUksYUFBSixJQUFJLHVCQUFKLElBQUksQ0FBRSxJQUFJLEtBQUksS0FBSyxDQUFDLElBQUksQ0FBQyxXQUFXLEVBQUUsSUFBSSxDQUFDLFdBQVcsQ0FBQyxFQUM3RCxTQUFTLEVBQUUsS0FBSyxJQUNiLElBQUksRUFDUCxDQUFDO2FBQ0o7UUFDSCxDQUFDO0tBQUE7SUFFUyxZQUFZO1FBQ3BCLElBQUksQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLEtBQUssRUFBRTtZQUM3QixJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztTQUMvQjtJQUNILENBQUM7SUFFUyxXQUFXO1FBQ25CLElBQUksSUFBSSxDQUFDLGFBQWEsQ0FBQyxLQUFLLEVBQUU7WUFDNUIsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7U0FDaEM7SUFDSCxDQUFDOzs7WUEzWkYsU0FBUyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7QmVoYXZpb3JTdWJqZWN0LCBtZXJnZSwgT2JzZXJ2YWJsZX0gZnJvbSAncnhqcyc7XG5pbXBvcnQge2ZpbHRlciwgbWFwLCBtZXJnZU1hcCwgdGFrZVVudGlsLCB0YXB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7aXNFbXB0eUFycmF5LCBpc05pbCwgaXNOb3RFbXB0eUFycmF5LCBpc05vdE5pbH0gZnJvbSAnLi4vZnVuY3Rpb25zJztcbmltcG9ydCB7RW50aXRpZXNTZXJ2aWNlTG9hZE9wdGlvbnMsIEVudGl0aWVzU2VydmljZVdhdGNoT3B0aW9ucywgRmlsdGVyRm4sIEZpbHRlckZuRmFjdG9yeSwgSUVudGl0aWVzU2VydmljZSwgTG9hZFJlc3VsdH0gZnJvbSAnLi9lbnRpdHktc2VydmljZS5jbGFzcyc7XG5pbXBvcnQge1NvcnREaXJlY3Rpb259IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3NvcnQnO1xuaW1wb3J0IHtEaXJlY3RpdmUsIE9uRGVzdHJveX0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge0VudGl0eVV0aWxzLCBJRW50aXR5fSBmcm9tICcuLi8uLi9jb3JlL3NlcnZpY2VzL21vZGVsL2VudGl0eS5tb2RlbCc7XG5pbXBvcnQge0VudGl0eUZpbHRlciwgRW50aXR5RmlsdGVyVXRpbHN9IGZyb20gJy4uLy4uL2NvcmUvc2VydmljZXMvbW9kZWwvZmlsdGVyLm1vZGVsJztcbmltcG9ydCB7Zmlyc3RGYWxzZVByb21pc2UsIGZpcnN0Tm90TmlsLCBXYWl0Rm9yT3B0aW9uc30gZnJvbSAnLi4vb2JzZXJ2YWJsZXMnO1xuaW1wb3J0IHtTdGFydGFibGVTZXJ2aWNlfSBmcm9tICcuL3N0YXJ0YWJsZS1zZXJ2aWNlLmNsYXNzJztcbmltcG9ydCB7U3RhcnRhYmxlT2JzZXJ2YWJsZVNlcnZpY2V9IGZyb20gJy4vc3RhcnRhYmxlLW9ic2VydmFibGUtc2VydmljZS5jbGFzcyc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgSW5NZW1vcnlFbnRpdGllc1NlcnZpY2VPcHRpb25zPFQsIEY+IHtcbiAgb25Tb3J0PzogKGRhdGE6IFRbXSwgc29ydEJ5Pzogc3RyaW5nLCBzb3J0RGlyZWN0aW9uPzogU29ydERpcmVjdGlvbikgPT4gVFtdO1xuICBvbkxvYWQ/OiAoZGF0YTogVFtdKSA9PiBUW10gfCBQcm9taXNlPFRbXT47XG4gIG9uU2F2ZT86IChkYXRhOiBUW10pID0+IFRbXSB8IFByb21pc2U8VFtdPjtcbiAgZXF1YWxzPzogKGQxOiBULCBkMjogVCkgPT4gYm9vbGVhbjtcblxuICBmaWx0ZXJGbkZhY3Rvcnk/OiBGaWx0ZXJGbkZhY3Rvcnk8VCwgRj47XG4gIGZpbHRlckZuPzogRmlsdGVyRm48VD47XG5cbiAgc29ydEJ5UmVwbGFjZW1lbnQ/OiB7IFtrZXk6IHN0cmluZ106IHN0cmluZyB9O1xufVxuXG4vLyBAZHluYW1pY1xuQERpcmVjdGl2ZSgpXG4vLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L2RpcmVjdGl2ZS1jbGFzcy1zdWZmaXhcbmV4cG9ydCBjbGFzcyBJbk1lbW9yeUVudGl0aWVzU2VydmljZTxcbiAgVCBleHRlbmRzIElFbnRpdHk8VCwgSUQ+LFxuICBGID0gYW55LFxuICBJRCA9IG51bWJlcixcbiAgTyBleHRlbmRzIEVudGl0aWVzU2VydmljZVdhdGNoT3B0aW9ucyA9IEVudGl0aWVzU2VydmljZVdhdGNoT3B0aW9ucz5cbiAgZXh0ZW5kcyBTdGFydGFibGVPYnNlcnZhYmxlU2VydmljZTxUW10sIFRbXT5cbiAgaW1wbGVtZW50cyBJRW50aXRpZXNTZXJ2aWNlPFQsIEYsIE8+LCBPbkRlc3Ryb3kge1xuXG4gIGRlYnVnID0gZmFsc2U7XG5cbiAgcHJpdmF0ZSBfaGlkZGVuRGF0YTogVFtdID0gbnVsbDtcblxuICByZWFkb25seSBkaXJ0eVN1YmplY3QgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PGJvb2xlYW4+KGZhbHNlKTtcblxuICBwcml2YXRlIHJlYWRvbmx5IHNhdmluZ1N1YmplY3QgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PGJvb2xlYW4+KGZhbHNlKTtcbiAgcHJpdmF0ZSByZWFkb25seSBfc29ydEZuOiAoZGF0YTogVFtdLCBzb3J0Qnk/OiBzdHJpbmcsIHNvcnREaXJlY3Rpb24/OiBTb3J0RGlyZWN0aW9uKSA9PiBUW107XG4gIHByaXZhdGUgcmVhZG9ubHkgX29uTG9hZDogKGRhdGE6IFRbXSkgPT4gVFtdIHwgUHJvbWlzZTxUW10+O1xuICBwcml2YXRlIHJlYWRvbmx5IF9vblNhdmVGbjogKGRhdGE6IFRbXSkgPT4gVFtdIHwgUHJvbWlzZTxUW10+O1xuICBwcml2YXRlIHJlYWRvbmx5IF9lcXVhbHNGbjogKGQxOiBULCBkMjogVCkgPT4gYm9vbGVhbjtcbiAgcHJpdmF0ZSByZWFkb25seSBfZmlsdGVyRm5GYWN0b3J5OiBGaWx0ZXJGbkZhY3Rvcnk8VCwgRj47XG4gIHByaXZhdGUgcmVhZG9ubHkgX3NvcnRCeVJlcGxhY2VtZW50OiB7IFtrZXk6IHN0cmluZ106IHN0cmluZyB9O1xuXG5cbiAgc2V0IHZhbHVlKGRhdGE6IFRbXSkge1xuICAgIHRoaXMuc2V0VmFsdWUoZGF0YSk7XG4gIH1cblxuICBnZXQgdmFsdWUoKTogVFtdIHtcbiAgICByZXR1cm4gdGhpcy5kYXRhU3ViamVjdC5nZXRWYWx1ZSgpO1xuICB9XG5cbiAgZ2V0IHNhdmluZygpOiBib29sZWFue1xuICAgIHJldHVybiB0aGlzLnNhdmluZ1N1YmplY3QudmFsdWU7XG4gIH1cblxuICBnZXQgZGlydHkoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuZGlydHlTdWJqZWN0LnZhbHVlO1xuICB9XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJvdGVjdGVkIGRhdGFUeXBlOiBuZXcoKSA9PiBULFxuICAgIHByb3RlY3RlZCBmaWx0ZXJUeXBlOiBuZXcoKSA9PiBGLFxuICAgIG9wdGlvbnM/OiBJbk1lbW9yeUVudGl0aWVzU2VydmljZU9wdGlvbnM8VCwgRj5cbiAgKSB7XG4gICAgc3VwZXIobnVsbCk7XG4gICAgb3B0aW9ucyA9IHtcbiAgICAgIG9uU29ydDogdGhpcy5zb3J0LFxuICAgICAgLi4ub3B0aW9uc1xuICAgIH07XG5cbiAgICB0aGlzLl9zb3J0Rm4gPSBvcHRpb25zLm9uU29ydDtcbiAgICB0aGlzLl9vbkxvYWQgPSBvcHRpb25zLm9uTG9hZDtcbiAgICB0aGlzLl9vblNhdmVGbiA9IG9wdGlvbnMub25TYXZlO1xuICAgIHRoaXMuX2VxdWFsc0ZuID0gb3B0aW9ucy5lcXVhbHM7XG4gICAgdGhpcy5fZmlsdGVyRm5GYWN0b3J5ID0gb3B0aW9ucy5maWx0ZXJGbkZhY3RvcnkgfHwgKChmKSA9PiB7XG4gICAgICBjb25zdCBmaWx0ZXIgPSB0aGlzLmFzRmlsdGVyKGYpIGFzIEY7XG4gICAgICBpZiAoZmlsdGVyIGluc3RhbmNlb2YgRW50aXR5RmlsdGVyKSB7XG4gICAgICAgIHJldHVybiBmaWx0ZXIuYXNGaWx0ZXJGbigpO1xuICAgICAgfVxuICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICB9KTtcbiAgICB0aGlzLl9zdGFydEJ5UmVhZHlGdW5jdGlvbiA9IGZhbHNlOyAvLyBOZWVkIHNldFZhbHVlKCkgdG8gYmUgY2FsbGVkLCB0byBzdGFydCB0aGUgc2VydmljZVxuXG4gICAgdGhpcy5fc29ydEJ5UmVwbGFjZW1lbnQgPSB7XG4gICAgICAuLi5vcHRpb25zLnNvcnRCeVJlcGxhY2VtZW50XG4gICAgfTtcbiAgfVxuXG4gIHByb3RlY3RlZCBhc3luYyBuZ09uU3RhcnQoZGF0YT86IFRbXSk6IFByb21pc2U8VFtdPiB7XG4gICAgaWYgKCFkYXRhKSB0aHJvdyBuZXcgRXJyb3IoJ01pc3NpbmcgcmVxdWlyZWQgZGF0YSwgdG8gc3RhcnQgdGhpcyBzZXJ2aWNlJyk7XG4gICAgaWYgKHRoaXMuZGVidWcpIGNvbnNvbGUuZGVidWcoJ1ttZW1vcnktZGF0YS1zZXJ2aWNlXSBTdGFydGluZy4uLicpO1xuICAgIHRoaXMuX2hpZGRlbkRhdGEgPSBbXTtcbiAgICB0aGlzLm1hcmtBc1NhdmVkKCk7XG4gICAgdGhpcy5tYXJrQXNQcmlzdGluZSgpO1xuICAgIHJldHVybiBkYXRhO1xuICB9XG5cbiAgcHJvdGVjdGVkIGFzeW5jIG5nT25TdG9wKCk6IFByb21pc2U8dm9pZD4ge1xuICAgIGlmICh0aGlzLmRlYnVnKSBjb25zb2xlLmRlYnVnKCdbbWVtb3J5LWRhdGEtc2VydmljZV0gU3RvcHBpbmcuLi4nKTtcbiAgICB0aGlzLmRhdGFTdWJqZWN0LmNvbXBsZXRlKCk7XG4gICAgdGhpcy5kYXRhU3ViamVjdC51bnN1YnNjcmliZSgpO1xuICAgIHRoaXMuX2hpZGRlbkRhdGEgPSBudWxsO1xuICAgIHRoaXMubWFya0FzU2F2ZWQoKTtcbiAgICB0aGlzLm1hcmtBc1ByaXN0aW5lKCk7XG4gIH1cblxuICBuZ09uRGVzdHJveSgpIHtcbiAgICB0aGlzLnN0b3AoKTtcbiAgfVxuXG4gIHNldFZhbHVlKGRhdGE6IFRbXSkge1xuICAgIC8vIElmIHNlcnZpY2UgYWxyZWFkeSBzdGFydGVkXG4gICAgaWYgKHRoaXMuc3RhcnRlZCkge1xuICAgICAgLy8gVXBkYXRlIHRoZSBkYXRhLCBpZiBjaGFuZ2VkXG4gICAgICBpZiAodGhpcy5kYXRhU3ViamVjdC52YWx1ZSAhPT0gZGF0YSkge1xuICAgICAgICB0aGlzLl9oaWRkZW5EYXRhID0gW107XG4gICAgICAgIHRoaXMuZGF0YVN1YmplY3QubmV4dChkYXRhKTtcbiAgICAgIH1cblxuICAgICAgLy8gUmVzZXQgZGlydHkgYW5kIHNhdmluZyBzdGF0ZVxuICAgICAgLy8gKEZpeCBPYnNCaW8gaXNzdWUgb24gc2FtcGxlcyB0YWJsZSA6IHN0aWxsIGRpcnR5IGFmdGVyIHNldHRpbmcgdGhlIHNhbWUgdmFsdWUgYWdhaW4pXG4gICAgICB0aGlzLm1hcmtBc1NhdmVkKCk7XG4gICAgICB0aGlzLm1hcmtBc1ByaXN0aW5lKCk7XG4gICAgfVxuICAgIC8vIElmIHNlcnZpY2Ugbm90IHN0YXJ0ZWQgeWV0LCB0aGVuIHN0YXJ0IGl0LCB1c2luZyBnaXZlbiBkYXRhXG4gICAgZWxzZSB7XG4gICAgICB0aGlzLnN0YXJ0KGRhdGEpO1xuICAgIH1cbiAgfVxuXG4gIGFzeW5jIGxvYWRBbGwoXG4gICAgb2Zmc2V0OiBudW1iZXIsXG4gICAgc2l6ZTogbnVtYmVyLFxuICAgIHNvcnRCeT86IHN0cmluZyxcbiAgICBzb3J0RGlyZWN0aW9uPzogU29ydERpcmVjdGlvbixcbiAgICBmaWx0ZXI/OiBGLFxuICAgIG9wdHM/OiBFbnRpdGllc1NlcnZpY2VMb2FkT3B0aW9uc1xuICApOiBQcm9taXNlPExvYWRSZXN1bHQ8VD4+IHtcblxuICAgIG9mZnNldCA9IG9mZnNldCA+PSAwID8gb2Zmc2V0IDogMDtcbiAgICBzaXplID0gc2l6ZSA+PSAwID8gc2l6ZSA6IC0xO1xuXG4gICAgY29uc3Qgb3JpZ2luYWxEYXRhID0gdGhpcy5kYXRhU3ViamVjdC52YWx1ZTtcbiAgICBpZiAoaXNOaWwob3JpZ2luYWxEYXRhKSkge1xuICAgICAgY29uc29sZS53YXJuKCdbbWVtb3J5LWRhdGEtc2VydmljZV0gQ2Fubm90IGxvYWQgYWxsOiBubyB2YWx1ZSBzZXQuIFdpbGwgcmV0dXJuIGVtcHR5IHJlc3VsdCcpO1xuICAgIH1cblxuICAgIHRyeSB7XG4gICAgICAvLyBXYWl0IHNlcnZpY2UgaXMgcmVhZHlcbiAgICAgIGF3YWl0IHRoaXMucmVhZHkoKTtcblxuICAgICAgLy8gV2FpdCB3aGlsZSBidXN5IChlLmcuIHdoZW4gc2F2aW5nLCBvciBkZWxldGluZylcbiAgICAgIGF3YWl0IHRoaXMud2FpdElkbGUoe3N0b3BFcnJvcjogZmFsc2UgLyphdm9pZCBlcnJvciB3aGVuIHN0b3BwZWQqL30pO1xuICAgIH1cbiAgICBjYXRjaCAoZXJyKSB7XG4gICAgICAvLyBTaG91bGQgYmUgYSBzdG9wIGVycm9yOiBsb2cgYW5kIGNvbnRpbnVlXG4gICAgICBpZiAoIXRoaXMuc3RvcHBlZCkgY29uc29sZS5lcnJvcignVW5leHBlY3RlZCBlcnJvciwgd2hpbGUgd2FpdGluZyA6JywgZXJyKTtcbiAgICB9XG5cbiAgICAvLyBNYWtlIHN1cmUgc2VydmljZSBpcyBub3Qgc3RvcHBlZFxuICAgIGlmICh0aGlzLnN0b3BwZWQpIHJldHVybiB1bmRlZmluZWQ7XG5cbiAgICBjb25zdCBleGNsdWRlZERhdGFCeUZpbHRlcjogVFtdID0gW107XG4gICAgbGV0IGV4Y2x1ZGVkRGF0YUJ5UGFnaW5hdGlvbjogVFtdO1xuXG4gICAgdHJ5IHtcbiAgICAgIGlmIChpc0VtcHR5QXJyYXkob3JpZ2luYWxEYXRhKSkge1xuICAgICAgICByZXR1cm4ge2RhdGE6IFtdLCB0b3RhbDogMH07XG4gICAgICB9XG5cbiAgICAgIC8vIEFwcGx5IHNvcnRcbiAgICAgIGxldCBkYXRhID0gdGhpcy5fc29ydEZuKG9yaWdpbmFsRGF0YSwgc29ydEJ5LCBzb3J0RGlyZWN0aW9uKSA7XG5cbiAgICAgIGlmICh0aGlzLl9vbkxvYWQpIHtcbiAgICAgICAgZGF0YSA9IGF3YWl0IHRoaXMuX29uTG9hZChkYXRhKTtcbiAgICAgIH1cblxuICAgICAgLy8gQXBwbHkgZmlsdGVyICh3aWxsIHVwZGF0ZSBoaWRkZW5EYXRhKVxuICAgICAgZGF0YSA9IHRoaXMuZmlsdGVyKGRhdGEsIGZpbHRlciwgZXhjbHVkZWREYXRhQnlGaWx0ZXIpO1xuXG4gICAgICAvLyBDb21wdXRlIHRoZSB0b3RhbCBsZW5ndGhcbiAgICAgIGNvbnN0IHRvdGFsID0gZGF0YS5sZW5ndGg7XG5cbiAgICAgIC8vIElmIHBhZ2Ugc2l6ZT0wIChlLmcuIG9ubHkgbmVlZCB0b3RhbClcbiAgICAgIGlmIChzaXplID09PSAwKSB7XG4gICAgICAgIGV4Y2x1ZGVkRGF0YUJ5UGFnaW5hdGlvbiA9IGRhdGE7XG4gICAgICAgIHJldHVybiB7ZGF0YTogW10sIHRvdGFsfTtcbiAgICAgIH1cblxuICAgICAgLy8gU2xpY2UgaW4gYSBwYWdlICh1c2luZyBvZmZzZXQgYW5kIHNpemUpXG4gICAgICBpZiAob2Zmc2V0ID4gMCkge1xuXG4gICAgICAgIC8vIE9mZnNldCBhZnRlciB0aGUgZW5kOiBubyByZXN1bHRcbiAgICAgICAgaWYgKG9mZnNldCA+PSBkYXRhLmxlbmd0aCkge1xuICAgICAgICAgIGV4Y2x1ZGVkRGF0YUJ5UGFnaW5hdGlvbiA9IGRhdGE7XG4gICAgICAgICAgZGF0YSA9IFtdO1xuICAgICAgICB9XG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgIGV4Y2x1ZGVkRGF0YUJ5UGFnaW5hdGlvbiA9IChzaXplID4gMCAmJiAoKG9mZnNldCArIHNpemUpIDwgZGF0YS5sZW5ndGgpKVxuICAgICAgICAgICAgLy8gU2xpY2UgdXNpbmcgbGltaXQgdG8gc2l6ZVxuICAgICAgICAgICAgPyBkYXRhLnNsaWNlKDAsIG9mZnNldCAtMSkuY29uY2F0KGRhdGEuc2xpY2Uob2Zmc2V0ICsgc2l6ZSkpXG4gICAgICAgICAgICAvLyBTbGljZSB3aXRob3V0IGxpbWl0XG4gICAgICAgICAgICA6IGRhdGEuc2xpY2UoMCwgb2Zmc2V0LTEpO1xuXG4gICAgICAgICAgZGF0YSA9IChzaXplID4gMCAmJiAoKG9mZnNldCArIHNpemUpIDwgZGF0YS5sZW5ndGgpKVxuICAgICAgICAgICAgLy8gU2xpY2UgdXNpbmcgbGltaXQgdG8gc2l6ZVxuICAgICAgICAgICAgPyBkYXRhLnNsaWNlKG9mZnNldCwgb2Zmc2V0ICsgc2l6ZSlcbiAgICAgICAgICAgIC8vIFNsaWNlIHdpdGhvdXQgbGltaXRcbiAgICAgICAgICAgIDogZGF0YS5zbGljZShvZmZzZXQpO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIC8vIEFwcGx5IGEgbGltaXRcbiAgICAgIGVsc2UgaWYgKHNpemUgPiAwKXtcbiAgICAgICAgZXhjbHVkZWREYXRhQnlQYWdpbmF0aW9uID0gZGF0YS5zbGljZShzaXplKTtcbiAgICAgICAgZGF0YSA9IGRhdGEuc2xpY2UoMCwgc2l6ZSk7XG4gICAgICB9XG5cbiAgICAgIC8vIE5vIGxpbWl0OlxuICAgICAgZWxzZSBpZiAoc2l6ZSA9PT0gLTEpe1xuICAgICAgICAvLyBLZWVwIGFsbCBkYXRhXG4gICAgICB9XG5cbiAgICAgIC8vIC8hXFwgSWYgYWxyZWFkeSBvYnNlcnZlZCwgdGhlbiBhbHdheXMgY3JlYXRlIGEgY29weSBvZiB0aGUgb3JpZ2luYWwgYXJyYXlcbiAgICAgIC8vIEJlY2F1c2UgZGF0YXNvdXJjZSB3aWxsIG9ubHkgdXBkYXRlIGlmIHRoZSBhcnJheSBjaGFuZ2VkXG4gICAgICBpZiAoZGF0YSA9PT0gb3JpZ2luYWxEYXRhKSB7XG4gICAgICAgIGRhdGEgPSBkYXRhLnNsaWNlKCk7XG4gICAgICB9XG5cbiAgICAgIGNvbnN0IHJlczogTG9hZFJlc3VsdDxUPiA9IHtkYXRhLCB0b3RhbH07XG5cbiAgICAgIGNvbnN0IG5leHRPZmZzZXQgPSBzaXplID4gMCA/IChvZmZzZXQgfHwgMCkgKyBzaXplIDogdG90YWw7XG4gICAgICBpZiAobmV4dE9mZnNldCA8IHRvdGFsKSB7XG4gICAgICAgIHJlcy5mZXRjaE1vcmUgPSAoKSA9PiB0aGlzLmxvYWRBbGwobmV4dE9mZnNldCwgc2l6ZSwgc29ydEJ5LCBzb3J0RGlyZWN0aW9uLCBmaWx0ZXIsIG9wdHMpXG4gICAgICAgICAgLnRoZW4ocmVzID0+IHtcbiAgICAgICAgICAgIC8vIFVwZGF0ZSBoaWRkZW4gZGF0YSAocmVtb3ZlIG5ldyBmZXRjaGVkIGl0ZW0pXG4gICAgICAgICAgICBpZiAocmVzLmRhdGE/Lmxlbmd0aCkge1xuICAgICAgICAgICAgICB0aGlzLl9oaWRkZW5EYXRhID0gdGhpcy5faGlkZGVuRGF0YT8uZmlsdGVyKGl0ZW0gPT4gIXJlcy5kYXRhLmluY2x1ZGVzKGl0ZW0pKVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIHJlcztcbiAgICAgICAgICB9KTtcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIHJlcztcbiAgICB9XG4gICAgZmluYWxseSB7XG4gICAgICAvLyBSZW1lbWJlciBoaWRkZW4gZGF0YVxuICAgICAgaWYgKG9mZnNldCA9PT0gMCkge1xuICAgICAgICB0aGlzLl9oaWRkZW5EYXRhID0gIWV4Y2x1ZGVkRGF0YUJ5UGFnaW5hdGlvbiA/IGV4Y2x1ZGVkRGF0YUJ5RmlsdGVyIDogZXhjbHVkZWREYXRhQnlGaWx0ZXIuY29uY2F0KC4uLmV4Y2x1ZGVkRGF0YUJ5UGFnaW5hdGlvbik7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgd2F0Y2hBbGwoXG4gICAgb2Zmc2V0OiBudW1iZXIsXG4gICAgc2l6ZTogbnVtYmVyLFxuICAgIHNvcnRCeT86IHN0cmluZyxcbiAgICBzb3J0RGlyZWN0aW9uPzogU29ydERpcmVjdGlvbixcbiAgICBmaWx0ZXJEYXRhPzogRixcbiAgICBvcHRpb25zPzogYW55XG4gICk6IE9ic2VydmFibGU8TG9hZFJlc3VsdDxUPj4ge1xuXG4gICAgb2Zmc2V0ID0gb2Zmc2V0ID49IDAgPyBvZmZzZXQgOiAwO1xuICAgIHNpemUgPSBzaXplID49IDAgPyBzaXplIDogLTE7XG5cbiAgICByZXR1cm4gdGhpcy5kYXRhU3ViamVjdFxuICAgICAgLnBpcGUoXG4gICAgICAgIHRha2VVbnRpbCh0aGlzLnN0b3BTdWJqZWN0KSxcbiAgICAgICAgLy8gV2FybiBpZiB3YWl0aW5nIHZhbHVlIHRvIGJlIHNldFxuICAgICAgICB0YXAoKGRhdGEpID0+IHRoaXMuZGVidWcgJiYgIWRhdGEgJiYgY29uc29sZS5kZWJ1ZygnW21lbW9yeS1kYXRhLXNlcnZpY2VdIFdhaXRpbmcgdmFsdWUgdG8gYmUgc2V0Li4uJykpLFxuICAgICAgICBmaWx0ZXIoaXNOb3ROaWwpLFxuICAgICAgICBtZXJnZU1hcChfID0+IHRoaXMubG9hZEFsbChvZmZzZXQsIHNpemUsIHNvcnRCeSwgc29ydERpcmVjdGlvbiwgZmlsdGVyRGF0YSwgb3B0aW9ucykpLFxuICAgICAgICBmaWx0ZXIoaXNOb3ROaWwpIC8vIFNraXAgbm8gcmVzdWx0IChlLmcuIHdoZW4gc3RvcHBlZClcbiAgICAgICk7XG4gIH1cblxuICBhc3luYyBzYXZlQWxsKGRhdGE6IFRbXSwgb3B0aW9ucz86IGFueSk6IFByb21pc2U8VFtdPiB7XG4gICAgaWYgKCF0aGlzLmRhdGFTdWJqZWN0LnZhbHVlKSB0aHJvdyBuZXcgRXJyb3IoJ1ttZW1vcnktc2VydmljZV0gQ291bGQgbm90IHNhdmUsIGJlY2F1c2UgdmFsdWUgbm90IHNldCcpO1xuXG4gICAgdGhpcy5tYXJrQXNTYXZpbmcoKTtcblxuICAgIHRyeSB7XG5cbiAgICAgIC8vIFJlc3RvcmUgaGlkZGVuIGRhdGFcbiAgICAgIGlmIChpc05vdEVtcHR5QXJyYXkodGhpcy5faGlkZGVuRGF0YSkpXG4gICAgICAgIGRhdGEgPSBkYXRhLmNvbmNhdCguLi50aGlzLl9oaWRkZW5EYXRhKTtcblxuICAgICAgaWYgKHRoaXMuX29uU2F2ZUZuKSB7XG4gICAgICAgIGNvbnN0IHJlcyA9IHRoaXMuX29uU2F2ZUZuKGRhdGEpO1xuICAgICAgICBkYXRhID0gKChyZXMgaW5zdGFuY2VvZiBQcm9taXNlKSkgPyBhd2FpdCByZXMgOiByZXM7XG4gICAgICB9XG5cbiAgICAgIHRoaXMuZGF0YVN1YmplY3QubmV4dChkYXRhKTtcbiAgICAgIHRoaXMubWFya0FzRGlydHkoKTtcbiAgICAgIHJldHVybiBkYXRhO1xuICAgIH1cbiAgICBmaW5hbGx5IHtcbiAgICAgIHRoaXMubWFya0FzU2F2ZWQoKTtcbiAgICB9XG4gIH1cblxuICBhc3luYyBkZWxldGVBbGwoZGF0YVRvUmVtb3ZlOiBUW10sIG9wdGlvbnM/OiBhbnkpOiBQcm9taXNlPGFueT4ge1xuICAgIGxldCBkYXRhID0gdGhpcy5kYXRhU3ViamVjdC52YWx1ZTtcbiAgICBpZiAoIWRhdGEpIHRocm93IG5ldyBFcnJvcignW21lbW9yeS1zZXJ2aWNlXSBDb3VsZCBub3QgZGVsZXRlLCBiZWNhdXNlIHZhbHVlIG5vdCBzZXQnKTtcblxuICAgIHRoaXMubWFya0FzU2F2aW5nKCk7XG5cbiAgICB0cnkge1xuICAgICAgLy8gUmVtb3ZlIGRlbGV0ZWQgaXRlbSwgZnJvbSBkYXRhXG4gICAgICBjb25zdCB1cGRhdGVkRGF0YSA9IGRhdGEuZmlsdGVyKGVudGl0eSA9PiB7XG4gICAgICAgIGNvbnN0IHJlbW92ZWQgPSBkYXRhVG9SZW1vdmUuZmluZEluZGV4KGVudGl0eVRvUmVtb3ZlID0+IHRoaXMuZXF1YWxzKGVudGl0eVRvUmVtb3ZlLCBlbnRpdHkpKSAhPT0gLTE7XG4gICAgICAgIHJldHVybiAhcmVtb3ZlZDtcbiAgICAgIH0pO1xuICAgICAgY29uc3QgZGVsZXRlQ291bnQgPSBkYXRhLmxlbmd0aCAtIHVwZGF0ZWREYXRhLmxlbmd0aDtcbiAgICAgIGlmIChkZWxldGVDb3VudCA+IDApIHtcbiAgICAgICAgZGF0YSA9IHVwZGF0ZWREYXRhO1xuICAgICAgICB0aGlzLmRhdGFTdWJqZWN0Lm5leHQoZGF0YSk7XG4gICAgICAgIHRoaXMubWFya0FzRGlydHkoKTtcbiAgICAgIH1cbiAgICB9XG4gICAgZmluYWxseSB7XG4gICAgICB0aGlzLm1hcmtBc1NhdmVkKCk7XG4gICAgfVxuICB9XG5cbiAgc29ydChkYXRhOiBUW10sIHNvcnRCeT86IHN0cmluZywgc29ydERpcmVjdGlvbj86IFNvcnREaXJlY3Rpb24pOiBUW10ge1xuICAgIC8vIE1ha2Ugc3VyZSB0byBmaWxsIHNvcnRCeSBCRUZPUkUgY2hlY2tpbmcgaW4gdGhlIHJlcGxhY2VtZW50IG1hcFxuICAgIHNvcnRCeSA9IHNvcnRCeSB8fCAnaWQnO1xuICAgIC8vIFJlcGxhY2Ugc29ydEJ5LCB1c2luZyB0aGUgcmVwbGFjZW1lbnQgbWFwXG4gICAgc29ydEJ5ID0gdGhpcy5fc29ydEJ5UmVwbGFjZW1lbnRbc29ydEJ5XSB8fCBzb3J0Qnk7XG5cbiAgICAvLyBFeGVjdXRlIHRoZSBzb3J0XG4gICAgcmV0dXJuIEVudGl0eVV0aWxzLnNvcnQoZGF0YSwgc29ydEJ5LCBzb3J0RGlyZWN0aW9uKTtcbiAgfVxuXG4gIGFzRmlsdGVyKHNvdXJjZTogUGFydGlhbDxGPik6IEYge1xuICAgIHJldHVybiBFbnRpdHlGaWx0ZXJVdGlscy5mcm9tT2JqZWN0KHNvdXJjZSwgdGhpcy5maWx0ZXJUeXBlKTtcbiAgfVxuXG4gIGFkZFNvcnRCeVJlcGxhY2VtZW50KHNvdXJjZTogc3RyaW5nLCB0YXJnZXQ6IHN0cmluZykge1xuICAgIHRoaXMuX3NvcnRCeVJlcGxhY2VtZW50W3NvdXJjZV0gPSB0YXJnZXQ7XG4gIH1cblxuICBlcXVhbHMoZDE6IFQsIGQyOiBUKTogYm9vbGVhbiB7XG4gICAgaWYgKHRoaXMuX2VxdWFsc0ZuKSByZXR1cm4gdGhpcy5fZXF1YWxzRm4oZDEsIGQyKTtcbiAgICByZXR1cm4gZDEgJiYgZDEuZXF1YWxzID8gZDEuZXF1YWxzKGQyKSA6IEVudGl0eVV0aWxzLmVxdWFscyhkMSwgZDIsICdpZCcpO1xuICB9XG5cbiAgLyoqXG4gICAqIENvdW50IGRhdGEgc3RvcmVkIGJ5IHRoZSBzZXJ2aWNlICh3aXRob3V0IGhpZGRlbiBkYXRhKS5cbiAgICogQHBhcmFtIG9wdHNcbiAgICovXG4gIGdldCBjb3VudCgpOiBudW1iZXIge1xuICAgIHJldHVybiAodGhpcy5kYXRhU3ViamVjdC52YWx1ZT8ubGVuZ3RoIHx8IDApO1xuICB9XG5cbiAgZ2V0IGhpZGRlbkNvdW50KCk6IG51bWJlciB7XG4gICAgcmV0dXJuIHRoaXMuX2hpZGRlbkRhdGE/Lmxlbmd0aCB8fCAwO1xuICB9XG5cbiAgYXN5bmMgd2FpdElkbGUob3B0cz86IFdhaXRGb3JPcHRpb25zKSB7XG4gICAgYXdhaXQgdGhpcy53YWl0V2hpbGVTYXZpbmcob3B0cyk7XG4gIH1cblxuICBtYXJrQXNEaXJ0eSgpIHtcbiAgICBpZiAoIXRoaXMuZGlydHlTdWJqZWN0LnZhbHVlKSB7XG4gICAgICB0aGlzLmRpcnR5U3ViamVjdC5uZXh0KHRydWUpO1xuICAgIH1cbiAgfVxuXG4gIG1hcmtBc1ByaXN0aW5lKCkge1xuICAgIGlmICh0aGlzLmRpcnR5U3ViamVjdC52YWx1ZSkge1xuICAgICAgdGhpcy5kaXJ0eVN1YmplY3QubmV4dChmYWxzZSk7XG4gICAgfVxuICB9XG5cbiAgLyogLS0gcHJvdGVjdGVkIG1ldGhvZHMgLS0gKi9cblxuICBwcm90ZWN0ZWQgZmlsdGVyKGRhdGE6IFRbXSwgX2ZpbHRlcjogRiwgaGlkZGVuRGF0YTogVFtdKTogVFtdIHtcblxuICAgIC8vIGlmIGZpbHRlciBpcyBEYXRhRmlsdGVyIGluc3RhbmNlLCB1c2UgaXRzIHRlc3QgZnVuY3Rpb25cbiAgICBjb25zdCBmaWx0ZXJGbiA9IHRoaXMuX2ZpbHRlckZuRmFjdG9yeSAmJiB0aGlzLl9maWx0ZXJGbkZhY3RvcnkoX2ZpbHRlcik7XG4gICAgaWYgKGZpbHRlckZuKSB7XG4gICAgICBjb25zdCBmaWx0ZXJlZERhdGEgPSBbXTtcblxuICAgICAgZGF0YS5mb3JFYWNoKHZhbHVlID0+IHtcbiAgICAgICAgaWYgKGZpbHRlckZuKHZhbHVlKSlcbiAgICAgICAgICBmaWx0ZXJlZERhdGEucHVzaCh2YWx1ZSk7XG4gICAgICAgIGVsc2VcbiAgICAgICAgICBoaWRkZW5EYXRhLnB1c2godmFsdWUpO1xuICAgICAgfSk7XG5cbiAgICAgIHJldHVybiBmaWx0ZXJlZERhdGE7XG4gICAgfVxuXG4gICAgLy8gZGVmYXVsdCwgbm8gZmlsdGVyXG4gICAgcmV0dXJuIGRhdGE7XG4gIH1cblxuICBwcm90ZWN0ZWQgY29ubmVjdCgpOiBPYnNlcnZhYmxlPExvYWRSZXN1bHQ8VD4+IHtcbiAgICByZXR1cm4gdGhpcy5kYXRhU3ViamVjdC5waXBlKFxuICAgICAgbWFwKChkYXRhKSA9PiB7XG4gICAgICAgIGRhdGEgPSBkYXRhIHx8IFtdO1xuICAgICAgICBjb25zdCB0b3RhbCA9IGRhdGEubGVuZ3RoO1xuICAgICAgICByZXR1cm4ge2RhdGEsIHRvdGFsfTtcbiAgICAgIH0pXG4gICAgKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBhc3luYyB3YWl0V2hpbGVTYXZpbmcob3B0cz86IFdhaXRGb3JPcHRpb25zKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgaWYgKHRoaXMuc2F2aW5nKSAge1xuICAgICAgcmV0dXJuIGZpcnN0RmFsc2VQcm9taXNlKHRoaXMuc2F2aW5nU3ViamVjdCwge1xuICAgICAgICBzdG9wOiBvcHRzPy5zdG9wIHx8IG1lcmdlKHRoaXMuc3RvcFN1YmplY3QsIHRoaXMuZGF0YVN1YmplY3QpLCAvLyBTdG9wIGlmIGRlc3Ryb3llZCBvciBuZXcgZGF0YSBSZWNlaXZlZFxuICAgICAgICBzdG9wRXJyb3I6IGZhbHNlLCAvLyBBdm9pZCBlcnJvciB3aGVuIHN0b3BwZWRcbiAgICAgICAgLi4ub3B0c1xuICAgICAgfSk7XG4gICAgfVxuICB9XG5cbiAgcHJvdGVjdGVkIG1hcmtBc1NhdmluZygpIHtcbiAgICBpZiAoIXRoaXMuc2F2aW5nU3ViamVjdC52YWx1ZSkge1xuICAgICAgdGhpcy5zYXZpbmdTdWJqZWN0Lm5leHQodHJ1ZSk7XG4gICAgfVxuICB9XG5cbiAgcHJvdGVjdGVkIG1hcmtBc1NhdmVkKCkge1xuICAgIGlmICh0aGlzLnNhdmluZ1N1YmplY3QudmFsdWUpIHtcbiAgICAgIHRoaXMuc2F2aW5nU3ViamVjdC5uZXh0KGZhbHNlKTtcbiAgICB9XG4gIH1cblxuXG59XG4iXX0=
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import 'tweetnacl';
|
|
2
2
|
import 'tweetnacl-util';
|
|
3
3
|
import 'scrypt-async';
|
|
4
|
+
// Import Hammer JS (need to manage 'tap' events)
|
|
4
5
|
import 'hammerjs';
|
|
5
6
|
// Force moment-timezone to be loaded, otherwise moment().tz() will failed
|
|
6
7
|
import * as momentImported from 'moment';
|
|
@@ -8,4 +9,8 @@ import * as momentTZImported from 'moment-timezone';
|
|
|
8
9
|
const moment = momentImported;
|
|
9
10
|
const tz = momentTZImported;
|
|
10
11
|
export { moment, tz };
|
|
11
|
-
|
|
12
|
+
// Import uuid
|
|
13
|
+
import * as uuidv4Imported from 'uuid/v4';
|
|
14
|
+
const uuidv4 = uuidv4Imported;
|
|
15
|
+
export { uuidv4 };
|
|
16
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmVuZG9yLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2FwcC92ZW5kb3IudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxXQUFXLENBQUM7QUFDbkIsT0FBTyxnQkFBZ0IsQ0FBQztBQUN4QixPQUFPLGNBQWMsQ0FBQztBQUV0QixpREFBaUQ7QUFDakQsT0FBTyxVQUFVLENBQUM7QUFFbEIsMEVBQTBFO0FBQzFFLE9BQU8sS0FBSyxjQUFjLE1BQU0sUUFBUSxDQUFDO0FBRXpDLE9BQU8sS0FBSyxnQkFBZ0IsTUFBTSxpQkFBaUIsQ0FBQztBQUNwRCxNQUFNLE1BQU0sR0FBRyxjQUFjLENBQUM7QUFDOUIsTUFBTSxFQUFFLEdBQUcsZ0JBQWdCLENBQUM7QUFDNUIsT0FBTyxFQUFFLE1BQU0sRUFBRSxFQUFFLEVBQVUsQ0FBQTtBQUU3QixjQUFjO0FBQ2QsT0FBTyxLQUFLLGNBQWMsTUFBTSxTQUFTLENBQUM7QUFDMUMsTUFBTSxNQUFNLEdBQUcsY0FBYyxDQUFDO0FBQzlCLE9BQU8sRUFBQyxNQUFNLEVBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAndHdlZXRuYWNsJztcbmltcG9ydCAndHdlZXRuYWNsLXV0aWwnO1xuaW1wb3J0ICdzY3J5cHQtYXN5bmMnO1xuXG4vLyBJbXBvcnQgSGFtbWVyIEpTIChuZWVkIHRvIG1hbmFnZSAndGFwJyBldmVudHMpXG5pbXBvcnQgJ2hhbW1lcmpzJztcblxuLy8gRm9yY2UgbW9tZW50LXRpbWV6b25lIHRvIGJlIGxvYWRlZCwgb3RoZXJ3aXNlIG1vbWVudCgpLnR6KCkgd2lsbCBmYWlsZWRcbmltcG9ydCAqIGFzIG1vbWVudEltcG9ydGVkIGZyb20gJ21vbWVudCc7XG5pbXBvcnQgeyBNb21lbnQgfSBmcm9tICdtb21lbnQnO1xuaW1wb3J0ICogYXMgbW9tZW50VFpJbXBvcnRlZCBmcm9tICdtb21lbnQtdGltZXpvbmUnO1xuY29uc3QgbW9tZW50ID0gbW9tZW50SW1wb3J0ZWQ7XG5jb25zdCB0eiA9IG1vbWVudFRaSW1wb3J0ZWQ7XG5leHBvcnQgeyBtb21lbnQsIHR6LCBNb21lbnQgfVxuXG4vLyBJbXBvcnQgdXVpZFxuaW1wb3J0ICogYXMgdXVpZHY0SW1wb3J0ZWQgZnJvbSAndXVpZC92NCc7XG5jb25zdCB1dWlkdjQgPSB1dWlkdjRJbXBvcnRlZDtcbmV4cG9ydCB7dXVpZHY0fTtcbiJdfQ==
|