sonamu 0.8.13 → 0.8.15
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/api/sonamu.d.ts.map +1 -1
- package/dist/api/sonamu.js +2 -3
- package/dist/auth/auth-generator.d.ts +8 -0
- package/dist/auth/auth-generator.d.ts.map +1 -1
- package/dist/auth/auth-generator.js +33 -1
- package/dist/auth/better-auth-entities.d.ts.map +1 -1
- package/dist/auth/better-auth-entities.js +12 -2
- package/dist/bin/cli.js +18 -3
- package/dist/cone/cone-generator.js +10 -4
- package/dist/database/knex.d.ts.map +1 -1
- package/dist/database/knex.js +18 -2
- package/dist/database/puri.d.ts +9 -1
- package/dist/database/puri.d.ts.map +1 -1
- package/dist/database/puri.js +42 -1
- package/dist/database/puri.types.d.ts +2 -0
- package/dist/database/puri.types.d.ts.map +1 -1
- package/dist/database/puri.types.js +6 -2
- package/dist/entity/entity-manager.d.ts +149 -1
- package/dist/entity/entity-manager.d.ts.map +1 -1
- package/dist/entity/entity-manager.js +68 -4
- package/dist/migration/__tests__/code-generation.search-text.test.js +435 -0
- package/dist/migration/code-generation.d.ts.map +1 -1
- package/dist/migration/code-generation.js +696 -32
- package/dist/migration/migration-set.js +3 -1
- package/dist/migration/postgresql-schema-reader.d.ts +16 -2
- package/dist/migration/postgresql-schema-reader.d.ts.map +1 -1
- package/dist/migration/postgresql-schema-reader.js +281 -7
- package/dist/stream/sse.js +5 -3
- package/dist/template/__tests__/generated.template.search-text.test.js +99 -0
- package/dist/template/generated.template.test-d.js +24 -0
- package/dist/template/implementations/generated.template.d.ts.map +1 -1
- package/dist/template/implementations/generated.template.js +2 -2
- package/dist/template/implementations/init_types.template.d.ts.map +1 -1
- package/dist/template/implementations/init_types.template.js +11 -3
- package/dist/template/zod-converter.d.ts.map +1 -1
- package/dist/template/zod-converter.js +6 -2
- package/dist/testing/dev-test-routes.d.ts.map +1 -1
- package/dist/testing/dev-test-routes.js +5 -3
- package/dist/testing/fixture-generator.d.ts +13 -0
- package/dist/testing/fixture-generator.d.ts.map +1 -1
- package/dist/testing/fixture-generator.js +105 -8
- package/dist/testing/fixture-manager.d.ts.map +1 -1
- package/dist/testing/fixture-manager.js +19 -2
- package/dist/types/__tests__/entity-json-schema-search-text.test.js +256 -0
- package/dist/types/types.d.ts +494 -1
- package/dist/types/types.d.ts.map +1 -1
- package/dist/types/types.js +117 -13
- package/dist/ui/api.d.ts.map +1 -1
- package/dist/ui/api.js +14 -2
- package/dist/ui/cdd-service.d.ts +16 -14
- package/dist/ui/cdd-service.d.ts.map +1 -1
- package/dist/ui/cdd-service.js +145 -37
- package/dist/ui/cdd-types.d.ts +60 -0
- package/dist/ui/cdd-types.d.ts.map +1 -0
- package/dist/ui/cdd-types.js +3 -0
- package/dist/ui-web/assets/index-D4XFBV-f.css +1 -0
- package/dist/ui-web/assets/{index-CQ_S40bD.js → index-D_19-Pi4.js} +87 -87
- package/dist/ui-web/index.html +2 -2
- package/package.json +8 -4
- package/src/api/sonamu.ts +1 -2
- package/src/auth/auth-generator.ts +38 -0
- package/src/auth/better-auth-entities.ts +18 -1
- package/src/bin/cli.ts +15 -1
- package/src/cone/cone-generator.ts +9 -3
- package/src/database/knex.ts +26 -4
- package/src/database/puri.ts +71 -0
- package/src/database/puri.types.ts +2 -0
- package/src/entity/entity-manager.ts +95 -3
- package/src/migration/__tests__/code-generation.search-text.test.ts +390 -0
- package/src/migration/code-generation.ts +848 -34
- package/src/migration/migration-set.ts +2 -0
- package/src/migration/postgresql-schema-reader.ts +366 -9
- package/src/skills/sonamu/auth-migration.md +80 -0
- package/src/skills/sonamu/cdd.md +148 -28
- package/src/skills/sonamu/cone.md +16 -0
- package/src/skills/sonamu/entity-relations.md +1 -1
- package/src/skills/sonamu/fixture-cli.md +4 -0
- package/src/skills/sonamu/frontend.md +65 -0
- package/src/skills/sonamu/migration.md +3 -1
- package/src/skills/sonamu/model.md +28 -0
- package/src/skills/sonamu/workflow.md +12 -5
- package/src/stream/sse.ts +4 -2
- package/src/template/__tests__/generated.template.search-text.test.ts +89 -0
- package/src/template/generated.template.test-d.ts +46 -0
- package/src/template/implementations/generated.template.ts +4 -1
- package/src/template/implementations/init_types.template.ts +20 -5
- package/src/template/zod-converter.ts +5 -0
- package/src/testing/dev-test-routes.ts +4 -2
- package/src/testing/fixture-generator.ts +157 -9
- package/src/testing/fixture-manager.ts +15 -1
- package/src/types/__tests__/entity-json-schema-search-text.test.ts +179 -0
- package/src/types/types.ts +168 -12
- package/src/ui/api.ts +24 -1
- package/src/ui/cdd-service.ts +195 -55
- package/src/ui/cdd-types.ts +73 -0
- package/dist/ui-web/assets/index-egkMxKos.css +0 -1
|
@@ -144,6 +144,38 @@ import { ENTITY_DEFINITIONS, isValidPluginId } from "./plugins/entity-definition
|
|
|
144
144
|
await entity.save();
|
|
145
145
|
}
|
|
146
146
|
}
|
|
147
|
+
/**
|
|
148
|
+
* 기존 프로젝트의 entity.json에 fixtureCompanions를 소급 추가합니다.
|
|
149
|
+
*
|
|
150
|
+
* betterAuthV1 기준으로 fixtureCompanions가 정의된 entity를 찾아
|
|
151
|
+
* 프로젝트 내 entity.json에 해당 prop의 cone에 fixtureCompanions가
|
|
152
|
+
* 없을 때만 추가합니다. 이미 있으면 스킵합니다.
|
|
153
|
+
*/ export async function addCompanionsToEntities() {
|
|
154
|
+
for (const entityJson of betterAuthV1){
|
|
155
|
+
const idProp = entityJson.props?.find((p)=>p.name === "id");
|
|
156
|
+
if (!idProp?.cone?.fixtureCompanions) continue;
|
|
157
|
+
if (!EntityManager.exists(entityJson.id)) {
|
|
158
|
+
console.log(chalk.yellow(`[SKIP] ${entityJson.id} - not found`));
|
|
159
|
+
continue;
|
|
160
|
+
}
|
|
161
|
+
const entity = EntityManager.get(entityJson.id);
|
|
162
|
+
const existingIdProp = entity.props.find((p)=>p.name === "id");
|
|
163
|
+
if (!existingIdProp) {
|
|
164
|
+
console.log(chalk.yellow(`[SKIP] ${entityJson.id}.id - prop not found`));
|
|
165
|
+
continue;
|
|
166
|
+
}
|
|
167
|
+
if (existingIdProp.cone?.fixtureCompanions) {
|
|
168
|
+
console.log(chalk.dim(`[SKIP] ${entityJson.id}.id - fixtureCompanions already exists`));
|
|
169
|
+
continue;
|
|
170
|
+
}
|
|
171
|
+
existingIdProp.cone = {
|
|
172
|
+
...existingIdProp.cone,
|
|
173
|
+
fixtureCompanions: idProp.cone.fixtureCompanions
|
|
174
|
+
};
|
|
175
|
+
await entity.save();
|
|
176
|
+
console.log(chalk.green(`[UPDATED] ${entityJson.id}.id - fixtureCompanions added`));
|
|
177
|
+
}
|
|
178
|
+
}
|
|
147
179
|
/**
|
|
148
180
|
* better-auth 엔티티들을 Sonamu에 생성/업데이트
|
|
149
181
|
*
|
|
@@ -185,4 +217,4 @@ import { ENTITY_DEFINITIONS, isValidPluginId } from "./plugins/entity-definition
|
|
|
185
217
|
console.log(chalk.bold("\n✅ Done! better-auth entities generated."));
|
|
186
218
|
}
|
|
187
219
|
|
|
188
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9hdXRoL2F1dGgtZ2VuZXJhdG9yLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBjaGFsayBmcm9tIFwiY2hhbGtcIjtcbmltcG9ydCB7IFNvbmFtdSB9IGZyb20gXCIuLi9hcGkvc29uYW11XCI7XG5pbXBvcnQgeyBFbnRpdHlNYW5hZ2VyIH0gZnJvbSBcIi4uL2VudGl0eS9lbnRpdHktbWFuYWdlclwiO1xuaW1wb3J0IHR5cGUgeyBFbnRpdHlJbmRleCwgRW50aXR5SnNvbiwgRW50aXR5UHJvcCB9IGZyb20gXCIuLi90eXBlcy90eXBlc1wiO1xuaW1wb3J0IHsgYmV0dGVyQXV0aFYxIH0gZnJvbSBcIi4vYmV0dGVyLWF1dGgtZW50aXRpZXNcIjtcbmltcG9ydCB7XG4gIHR5cGUgQmV0dGVyQXV0aFBsdWdpbklkLFxuICBFTlRJVFlfREVGSU5JVElPTlMsXG4gIGlzVmFsaWRQbHVnaW5JZCxcbn0gZnJvbSBcIi4vcGx1Z2lucy9lbnRpdHktZGVmaW5pdGlvbnNcIjtcblxuLyoqXG4gKiDriITrnb3rkJwgcHJvcHMg7LC+6riwXG4gKi9cbmZ1bmN0aW9uIGZpbmRNaXNzaW5nUHJvcHMoZXhpc3RpbmdQcm9wczogRW50aXR5UHJvcFtdLCByZXF1aXJlZFByb3BzOiBFbnRpdHlQcm9wW10pOiBFbnRpdHlQcm9wW10ge1xuICBjb25zdCBleGlzdGluZ05hbWVzID0gbmV3IFNldChleGlzdGluZ1Byb3BzLm1hcCgocCkgPT4gcC5uYW1lKSk7XG4gIHJldHVybiByZXF1aXJlZFByb3BzLmZpbHRlcigocCkgPT4gIWV4aXN0aW5nTmFtZXMuaGFzKHAubmFtZSkpO1xufVxuXG4vKipcbiAqIO2DgOyeheydtCDrs4Dqsr3rkJwgcHJvcHMg7LC+6riwICjrj5nsnbwgbmFtZSwg64uk66W4IHR5cGUpXG4gKiBAcmV0dXJucyBb6riw7KG0IHByb3AgaW5kZXgsIOyDiCBwcm9wXVtdXG4gKi9cbmZ1bmN0aW9uIGZpbmRQcm9wc1RvVXBkYXRlKFxuICBleGlzdGluZ1Byb3BzOiBFbnRpdHlQcm9wW10sXG4gIHJlcXVpcmVkUHJvcHM6IEVudGl0eVByb3BbXSxcbik6IHsgaW5kZXg6IG51bWJlcjsgbmV3UHJvcDogRW50aXR5UHJvcCB9W10ge1xuICBjb25zdCByZXN1bHQ6IHsgaW5kZXg6IG51bWJlcjsgbmV3UHJvcDogRW50aXR5UHJvcCB9W10gPSBbXTtcblxuICBmb3IgKGNvbnN0IHJlcXVpcmVkUHJvcCBvZiByZXF1aXJlZFByb3BzKSB7XG4gICAgY29uc3QgZXhpc3RpbmdJbmRleCA9IGV4aXN0aW5nUHJvcHMuZmluZEluZGV4KChwKSA9PiBwLm5hbWUgPT09IHJlcXVpcmVkUHJvcC5uYW1lKTtcbiAgICBpZiAoZXhpc3RpbmdJbmRleCA9PT0gLTEpIGNvbnRpbnVlO1xuXG4gICAgY29uc3QgZXhpc3RpbmdQcm9wID0gZXhpc3RpbmdQcm9wc1tleGlzdGluZ0luZGV4XTtcbiAgICAvLyB0eXBl7J20IOuLpOultOqxsOuCmCBjb25lLmZpeHR1cmVTdHJhdGVneeqwgCDri6TrpbTrqbQg7JeF642w7J207Yq4IOuMgOyDgVxuICAgIGNvbnN0IGNvbmVDaGFuZ2VkID0gcmVxdWlyZWRQcm9wLmNvbmU/LmZpeHR1cmVTdHJhdGVneSAhPT0gZXhpc3RpbmdQcm9wPy5jb25lPy5maXh0dXJlU3RyYXRlZ3k7XG4gICAgaWYgKGV4aXN0aW5nUHJvcD8udHlwZSAhPT0gcmVxdWlyZWRQcm9wLnR5cGUgfHwgY29uZUNoYW5nZWQpIHtcbiAgICAgIHJlc3VsdC5wdXNoKHsgaW5kZXg6IGV4aXN0aW5nSW5kZXgsIG5ld1Byb3A6IHJlcXVpcmVkUHJvcCB9KTtcbiAgICB9XG4gIH1cblxuICByZXR1cm4gcmVzdWx0O1xufVxuXG4vKipcbiAqIOuIhOudveuQnCBpbmRleGVzIOywvuq4sFxuICovXG5mdW5jdGlvbiBmaW5kTWlzc2luZ0luZGV4ZXMoXG4gIGV4aXN0aW5nSW5kZXhlczogRW50aXR5SW5kZXhbXSxcbiAgcmVxdWlyZWRJbmRleGVzOiBFbnRpdHlJbmRleFtdLFxuKTogRW50aXR5SW5kZXhbXSB7XG4gIGNvbnN0IGV4aXN0aW5nTmFtZXMgPSBuZXcgU2V0KGV4aXN0aW5nSW5kZXhlcy5tYXAoKGkpID0+IGkubmFtZSkpO1xuICByZXR1cm4gcmVxdWlyZWRJbmRleGVzLmZpbHRlcigoaSkgPT4gIWV4aXN0aW5nTmFtZXMuaGFzKGkubmFtZSkpO1xufVxuXG4vKipcbiAqIOuIhOudveuQnCBzdWJzZXRzIOywvuq4sFxuICovXG5mdW5jdGlvbiBmaW5kTWlzc2luZ1N1YnNldHMoXG4gIGV4aXN0aW5nU3Vic2V0czogeyBba2V5OiBzdHJpbmddOiBzdHJpbmdbXSB9LFxuICByZXF1aXJlZFN1YnNldHM6IHsgW2tleTogc3RyaW5nXTogc3RyaW5nW10gfSxcbik6IHsgW2tleTogc3RyaW5nXTogc3RyaW5nW10gfSB7XG4gIGNvbnN0IG1pc3Npbmc6IHsgW2tleTogc3RyaW5nXTogc3RyaW5nW10gfSA9IHt9O1xuICBmb3IgKGNvbnN0IFtrZXksIGZpZWxkc10gb2YgT2JqZWN0LmVudHJpZXMocmVxdWlyZWRTdWJzZXRzKSkge1xuICAgIGlmICghZXhpc3RpbmdTdWJzZXRzW2tleV0pIHtcbiAgICAgIG1pc3Npbmdba2V5XSA9IGZpZWxkcztcbiAgICB9XG4gIH1cbiAgcmV0dXJuIG1pc3Npbmc7XG59XG5cbi8qKlxuICog7JeU7Yuw7Yuw66W8IOyDneyEse2VmOqxsOuCmCDsl4XrjbDsnbTtirjtlanri4jri6QuXG4gKi9cbmFzeW5jIGZ1bmN0aW9uIGNyZWF0ZU9yVXBkYXRlRW50aXR5KGVudGl0eUpzb246IEVudGl0eUpzb24pOiBQcm9taXNlPHZvaWQ+IHtcbiAgY29uc3QgZXhpc3RzID0gRW50aXR5TWFuYWdlci5leGlzdHMoZW50aXR5SnNvbi5pZCk7XG5cbiAgaWYgKCFleGlzdHMpIHtcbiAgICAvLyDsg4gg7JeU7Yuw7YuwIOyDneyEsVxuICAgIGF3YWl0IFNvbmFtdS5zeW5jZXIuY3JlYXRlRW50aXR5KHtcbiAgICAgIGVudGl0eUlkOiBlbnRpdHlKc29uLmlkLFxuICAgICAgdGFibGU6IGVudGl0eUpzb24udGFibGUsXG4gICAgICB0aXRsZTogZW50aXR5SnNvbi50aXRsZSA/PyBlbnRpdHlKc29uLmlkLFxuICAgICAgcHJvcHM6IGVudGl0eUpzb24ucHJvcHMgPz8gW10sXG4gICAgICBpbmRleGVzOiBlbnRpdHlKc29uLmluZGV4ZXMgPz8gW10sXG4gICAgICBzdWJzZXRzOiBlbnRpdHlKc29uLnN1YnNldHMgPz8ge30sXG4gICAgICBlbnVtczogZW50aXR5SnNvbi5lbnVtcyA/PyB7fSxcbiAgICB9KTtcblxuICAgIGNvbnN0IGVudGl0eSA9IEVudGl0eU1hbmFnZXIuZ2V0KGVudGl0eUpzb24uaWQpO1xuICAgIGF3YWl0IGVudGl0eS5zYXZlKCk7XG4gICAgY29uc29sZS5sb2coY2hhbGsuZ3JlZW4oYFtDUkVBVEVEXSAke2VudGl0eUpzb24uaWR9YCkpO1xuICAgIHJldHVybjtcbiAgfVxuXG4gIC8vIOq4sOyhtCDsl5Tti7Dti7Ag7JeF642w7J207Yq4XG4gIGNvbnN0IGVudGl0eSA9IEVudGl0eU1hbmFnZXIuZ2V0KGVudGl0eUpzb24uaWQpO1xuICBsZXQgaGFzQ2hhbmdlcyA9IGZhbHNlO1xuXG4gIC8vIOuIhOudveuQnCBwcm9wcyDstpTqsIBcbiAgY29uc3QgbWlzc2luZ1Byb3BzID0gZmluZE1pc3NpbmdQcm9wcyhlbnRpdHkucHJvcHMsIGVudGl0eUpzb24ucHJvcHMgPz8gW10pO1xuICBmb3IgKGNvbnN0IHByb3Agb2YgbWlzc2luZ1Byb3BzKSB7XG4gICAgYXdhaXQgZW50aXR5LmNyZWF0ZVByb3AocHJvcCk7XG4gICAgY29uc29sZS5sb2coY2hhbGsuZ3JlZW4oYFtBREQgUFJPUF0gJHtlbnRpdHlKc29uLmlkfS4ke3Byb3AubmFtZX1gKSk7XG4gICAgaGFzQ2hhbmdlcyA9IHRydWU7XG4gIH1cblxuICAvLyDtg4DsnoXsnbQg67OA6rK965CcIHByb3BzIOyXheuNsOydtO2KuFxuICBjb25zdCBwcm9wc1RvVXBkYXRlID0gZmluZFByb3BzVG9VcGRhdGUoZW50aXR5LnByb3BzLCBlbnRpdHlKc29uLnByb3BzID8/IFtdKTtcbiAgZm9yIChjb25zdCB7IGluZGV4LCBuZXdQcm9wIH0gb2YgcHJvcHNUb1VwZGF0ZSkge1xuICAgIGNvbnN0IG9sZFR5cGUgPSBlbnRpdHkucHJvcHNbaW5kZXhdPy50eXBlO1xuICAgIGF3YWl0IGVudGl0eS5tb2RpZnlQcm9wKG5ld1Byb3AsIGluZGV4KTtcbiAgICBjb25zb2xlLmxvZyhcbiAgICAgIGNoYWxrLnllbGxvdyhgW1VQREFURSBQUk9QXSAke2VudGl0eUpzb24uaWR9LiR7bmV3UHJvcC5uYW1lfTogJHtvbGRUeXBlfSDihpIgJHtuZXdQcm9wLnR5cGV9YCksXG4gICAgKTtcbiAgICBoYXNDaGFuZ2VzID0gdHJ1ZTtcbiAgfVxuXG4gIC8vIOuIhOudveuQnCBpbmRleGVzIOy2lOqwgFxuICBjb25zdCBtaXNzaW5nSW5kZXhlcyA9IGZpbmRNaXNzaW5nSW5kZXhlcyhlbnRpdHkuaW5kZXhlcywgZW50aXR5SnNvbi5pbmRleGVzID8/IFtdKTtcbiAgZm9yIChjb25zdCBpbmRleCBvZiBtaXNzaW5nSW5kZXhlcykge1xuICAgIGVudGl0eS5pbmRleGVzLnB1c2goaW5kZXgpO1xuICAgIGNvbnNvbGUubG9nKGNoYWxrLmdyZWVuKGBbQUREIElOREVYXSAke2VudGl0eUpzb24uaWR9LiR7aW5kZXgubmFtZX1gKSk7XG4gICAgaGFzQ2hhbmdlcyA9IHRydWU7XG4gIH1cblxuICAvLyDriITrnb3rkJwgc3Vic2V0cyDstpTqsIBcbiAgY29uc3QgbWlzc2luZ1N1YnNldHMgPSBmaW5kTWlzc2luZ1N1YnNldHMoXG4gICAgZW50aXR5LnN1YnNldHMsXG4gICAgKGVudGl0eUpzb24uc3Vic2V0cyA/PyB7fSkgYXMgeyBba2V5OiBzdHJpbmddOiBzdHJpbmdbXSB9LFxuICApO1xuICBmb3IgKGNvbnN0IFtrZXksIGZpZWxkc10gb2YgT2JqZWN0LmVudHJpZXMobWlzc2luZ1N1YnNldHMpKSB7XG4gICAgZW50aXR5LnN1YnNldHNba2V5XSA9IGZpZWxkcztcbiAgICBjb25zb2xlLmxvZyhjaGFsay5ncmVlbihgW0FERCBTVUJTRVRdICR7ZW50aXR5SnNvbi5pZH0uJHtrZXl9YCkpO1xuICAgIGhhc0NoYW5nZXMgPSB0cnVlO1xuICB9XG5cbiAgLy8g67OA6rK97IKs7ZWtIOyggOyepVxuICBpZiAoaGFzQ2hhbmdlcykge1xuICAgIGF3YWl0IGVudGl0eS5zYXZlKCk7XG4gICAgY29uc29sZS5sb2coY2hhbGsuYmx1ZShgW1VQREFURURdICR7ZW50aXR5SnNvbi5pZH1gKSk7XG4gIH0gZWxzZSB7XG4gICAgY29uc29sZS5sb2coY2hhbGsuZGltKGBbU0tJUF0gJHtlbnRpdHlKc29uLmlkfSAtIG5vIGNoYW5nZXNgKSk7XG4gIH1cbn1cblxuLyoqXG4gKiDquLDsobQg7JeU7Yuw7Yuw7JeQIHByb3Bz66W8IOy2lOqwgO2VqeuLiOuLpC5cbiAqL1xuYXN5bmMgZnVuY3Rpb24gYWRkUHJvcHNUb0VudGl0eShlbnRpdHlJZDogc3RyaW5nLCBwcm9wczogRW50aXR5UHJvcFtdKTogUHJvbWlzZTx2b2lkPiB7XG4gIGlmICghRW50aXR5TWFuYWdlci5leGlzdHMoZW50aXR5SWQpKSB7XG4gICAgY29uc29sZS5sb2coY2hhbGsueWVsbG93KGBbU0tJUF0gJHtlbnRpdHlJZH0gLSBlbnRpdHkgbm90IGZvdW5kLCBjYW5ub3QgYWRkIHByb3BzYCkpO1xuICAgIHJldHVybjtcbiAgfVxuXG4gIGNvbnN0IGVudGl0eSA9IEVudGl0eU1hbmFnZXIuZ2V0KGVudGl0eUlkKTtcbiAgbGV0IGhhc0NoYW5nZXMgPSBmYWxzZTtcblxuICBjb25zdCBtaXNzaW5nUHJvcHMgPSBmaW5kTWlzc2luZ1Byb3BzKGVudGl0eS5wcm9wcywgcHJvcHMpO1xuICBmb3IgKGNvbnN0IHByb3Agb2YgbWlzc2luZ1Byb3BzKSB7XG4gICAgYXdhaXQgZW50aXR5LmNyZWF0ZVByb3AocHJvcCk7XG4gICAgY29uc29sZS5sb2coY2hhbGsuZ3JlZW4oYFtBREQgUFJPUF0gJHtlbnRpdHlJZH0uJHtwcm9wLm5hbWV9YCkpO1xuICAgIGhhc0NoYW5nZXMgPSB0cnVlO1xuICB9XG5cbiAgaWYgKGhhc0NoYW5nZXMpIHtcbiAgICBhd2FpdCBlbnRpdHkuc2F2ZSgpO1xuICB9XG59XG5cbi8qKlxuICog6riw7KG0IOyXlO2LsO2LsOyXkCBpbmRleGVz66W8IOy2lOqwgO2VqeuLiOuLpC5cbiAqL1xuYXN5bmMgZnVuY3Rpb24gYWRkSW5kZXhlc1RvRW50aXR5KGVudGl0eUlkOiBzdHJpbmcsIGluZGV4ZXM6IEVudGl0eUluZGV4W10pOiBQcm9taXNlPHZvaWQ+IHtcbiAgaWYgKCFFbnRpdHlNYW5hZ2VyLmV4aXN0cyhlbnRpdHlJZCkpIHtcbiAgICBjb25zb2xlLmxvZyhjaGFsay55ZWxsb3coYFtTS0lQXSAke2VudGl0eUlkfSAtIGVudGl0eSBub3QgZm91bmQsIGNhbm5vdCBhZGQgaW5kZXhlc2ApKTtcbiAgICByZXR1cm47XG4gIH1cblxuICBjb25zdCBlbnRpdHkgPSBFbnRpdHlNYW5hZ2VyLmdldChlbnRpdHlJZCk7XG4gIGxldCBoYXNDaGFuZ2VzID0gZmFsc2U7XG5cbiAgY29uc3QgbWlzc2luZ0luZGV4ZXMgPSBmaW5kTWlzc2luZ0luZGV4ZXMoZW50aXR5LmluZGV4ZXMsIGluZGV4ZXMpO1xuICBmb3IgKGNvbnN0IGluZGV4IG9mIG1pc3NpbmdJbmRleGVzKSB7XG4gICAgZW50aXR5LmluZGV4ZXMucHVzaChpbmRleCk7XG4gICAgY29uc29sZS5sb2coY2hhbGsuZ3JlZW4oYFtBREQgSU5ERVhdICR7ZW50aXR5SWR9LiR7aW5kZXgubmFtZX1gKSk7XG4gICAgaGFzQ2hhbmdlcyA9IHRydWU7XG4gIH1cblxuICBpZiAoaGFzQ2hhbmdlcykge1xuICAgIGF3YWl0IGVudGl0eS5zYXZlKCk7XG4gIH1cbn1cblxuZXhwb3J0IGludGVyZmFjZSBHZW5lcmF0ZUJldHRlckF1dGhFbnRpdGllc09wdGlvbnMge1xuICAvKipcbiAgICog7Zmc7ISx7ZmU7ZWgIO2UjOufrOq3uOyduCBJRCDrqqnroZ1cbiAgICog7JiIOiBbXCJwaG9uZS1udW1iZXJcIiwgXCIyZmFcIl1cbiAgICovXG4gIHBsdWdpbnM/OiBCZXR0ZXJBdXRoUGx1Z2luSWRbXTtcbn1cblxuLyoqXG4gKiBiZXR0ZXItYXV0aCDsl5Tti7Dti7Drk6TsnYQgU29uYW117JeQIOyDneyEsS/sl4XrjbDsnbTtirhcbiAqXG4gKiBAcGFyYW0gb3B0aW9ucyDsg53shLEg7Ji17IWYXG4gKiBAcGFyYW0gb3B0aW9ucy5wbHVnaW5zIO2ZnOyEse2ZlO2VoCDtlIzrn6zqt7jsnbggSUQg66qp66GdXG4gKi9cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBnZW5lcmF0ZUJldHRlckF1dGhFbnRpdGllcyhcbiAgb3B0aW9uczogR2VuZXJhdGVCZXR0ZXJBdXRoRW50aXRpZXNPcHRpb25zID0ge30sXG4pOiBQcm9taXNlPHZvaWQ+IHtcbiAgY29uc3QgeyBwbHVnaW5zID0gW10gfSA9IG9wdGlvbnM7XG5cbiAgLy8gMS4g6riw67O4IOyXlO2LsO2LsCDsg53shLEv7JeF642w7J207Yq4XG4gIGNvbnNvbGUubG9nKGNoYWxrLmN5YW4oXCJcXG7wn5OmIFByb2Nlc3NpbmcgY29yZSBlbnRpdGllcy4uLlxcblwiKSk7XG4gIGZvciAoY29uc3QgZW50aXR5SnNvbiBvZiBiZXR0ZXJBdXRoVjEpIHtcbiAgICBhd2FpdCBjcmVhdGVPclVwZGF0ZUVudGl0eShlbnRpdHlKc29uKTtcbiAgfVxuXG4gIC8vIDIuIO2UjOufrOq3uOyduCDsspjrpqxcbiAgaWYgKHBsdWdpbnMubGVuZ3RoID4gMCkge1xuICAgIGNvbnNvbGUubG9nKGNoYWxrLmN5YW4oXCJcXG7wn5SMIFByb2Nlc3NpbmcgcGx1Z2lucy4uLlxcblwiKSk7XG5cbiAgICBmb3IgKGNvbnN0IHBsdWdpbklkIG9mIHBsdWdpbnMpIHtcbiAgICAgIGlmICghaXNWYWxpZFBsdWdpbklkKHBsdWdpbklkKSkge1xuICAgICAgICBjb25zb2xlLmxvZyhjaGFsay5yZWQoYFtFUlJPUl0gVW5rbm93biBwbHVnaW46ICR7cGx1Z2luSWR9YCkpO1xuICAgICAgICBjb250aW51ZTtcbiAgICAgIH1cblxuICAgICAgY29uc3QgZW50aXR5RGVmID0gRU5USVRZX0RFRklOSVRJT05TW3BsdWdpbklkXTtcbiAgICAgIGNvbnNvbGUubG9nKGNoYWxrLm1hZ2VudGEoYFtQTFVHSU5dICR7ZW50aXR5RGVmLm5hbWV9YCkpO1xuXG4gICAgICAvLyDtlIzrn6zqt7jsnbjsnZgg7IOIIOyXlO2LsO2LsCDsg53shLFcbiAgICAgIGZvciAoY29uc3QgZW50aXR5SnNvbiBvZiBlbnRpdHlEZWYuZW50aXRpZXMpIHtcbiAgICAgICAgYXdhaXQgY3JlYXRlT3JVcGRhdGVFbnRpdHkoZW50aXR5SnNvbik7XG4gICAgICB9XG5cbiAgICAgIC8vIOq4sOyhtCDsl5Tti7Dti7Dsl5Ag7ZWE65OcIOy2lOqwgFxuICAgICAgZm9yIChjb25zdCBbZW50aXR5SWQsIHByb3BzXSBvZiBPYmplY3QuZW50cmllcyhlbnRpdHlEZWYuYWRkaXRpb25hbFByb3BzKSkge1xuICAgICAgICBhd2FpdCBhZGRQcm9wc1RvRW50aXR5KGVudGl0eUlkLCBwcm9wcyk7XG4gICAgICB9XG5cbiAgICAgIC8vIOq4sOyhtCDsl5Tti7Dti7Dsl5Ag7J24642x7IqkIOy2lOqwgFxuICAgICAgaWYgKGVudGl0eURlZi5hZGRpdGlvbmFsSW5kZXhlcykge1xuICAgICAgICBmb3IgKGNvbnN0IFtlbnRpdHlJZCwgaW5kZXhlc10gb2YgT2JqZWN0LmVudHJpZXMoZW50aXR5RGVmLmFkZGl0aW9uYWxJbmRleGVzKSkge1xuICAgICAgICAgIGF3YWl0IGFkZEluZGV4ZXNUb0VudGl0eShlbnRpdHlJZCwgaW5kZXhlcyk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBjb25zb2xlLmxvZyhjaGFsay5ib2xkKFwiXFxu4pyFIERvbmUhIGJldHRlci1hdXRoIGVudGl0aWVzIGdlbmVyYXRlZC5cIikpO1xufVxuIl0sIm5hbWVzIjpbImNoYWxrIiwiU29uYW11IiwiRW50aXR5TWFuYWdlciIsImJldHRlckF1dGhWMSIsIkVOVElUWV9ERUZJTklUSU9OUyIsImlzVmFsaWRQbHVnaW5JZCIsImZpbmRNaXNzaW5nUHJvcHMiLCJleGlzdGluZ1Byb3BzIiwicmVxdWlyZWRQcm9wcyIsImV4aXN0aW5nTmFtZXMiLCJTZXQiLCJtYXAiLCJwIiwibmFtZSIsImZpbHRlciIsImhhcyIsImZpbmRQcm9wc1RvVXBkYXRlIiwicmVzdWx0IiwicmVxdWlyZWRQcm9wIiwiZXhpc3RpbmdJbmRleCIsImZpbmRJbmRleCIsImV4aXN0aW5nUHJvcCIsImNvbmVDaGFuZ2VkIiwiY29uZSIsImZpeHR1cmVTdHJhdGVneSIsInR5cGUiLCJwdXNoIiwiaW5kZXgiLCJuZXdQcm9wIiwiZmluZE1pc3NpbmdJbmRleGVzIiwiZXhpc3RpbmdJbmRleGVzIiwicmVxdWlyZWRJbmRleGVzIiwiaSIsImZpbmRNaXNzaW5nU3Vic2V0cyIsImV4aXN0aW5nU3Vic2V0cyIsInJlcXVpcmVkU3Vic2V0cyIsIm1pc3NpbmciLCJrZXkiLCJmaWVsZHMiLCJPYmplY3QiLCJlbnRyaWVzIiwiY3JlYXRlT3JVcGRhdGVFbnRpdHkiLCJlbnRpdHlKc29uIiwiZXhpc3RzIiwiaWQiLCJzeW5jZXIiLCJjcmVhdGVFbnRpdHkiLCJlbnRpdHlJZCIsInRhYmxlIiwidGl0bGUiLCJwcm9wcyIsImluZGV4ZXMiLCJzdWJzZXRzIiwiZW51bXMiLCJlbnRpdHkiLCJnZXQiLCJzYXZlIiwiY29uc29sZSIsImxvZyIsImdyZWVuIiwiaGFzQ2hhbmdlcyIsIm1pc3NpbmdQcm9wcyIsInByb3AiLCJjcmVhdGVQcm9wIiwicHJvcHNUb1VwZGF0ZSIsIm9sZFR5cGUiLCJtb2RpZnlQcm9wIiwieWVsbG93IiwibWlzc2luZ0luZGV4ZXMiLCJtaXNzaW5nU3Vic2V0cyIsImJsdWUiLCJkaW0iLCJhZGRQcm9wc1RvRW50aXR5IiwiYWRkSW5kZXhlc1RvRW50aXR5IiwiZ2VuZXJhdGVCZXR0ZXJBdXRoRW50aXRpZXMiLCJvcHRpb25zIiwicGx1Z2lucyIsImN5YW4iLCJsZW5ndGgiLCJwbHVnaW5JZCIsInJlZCIsImVudGl0eURlZiIsIm1hZ2VudGEiLCJlbnRpdGllcyIsImFkZGl0aW9uYWxQcm9wcyIsImFkZGl0aW9uYWxJbmRleGVzIiwiYm9sZCJdLCJtYXBwaW5ncyI6IkFBQUEsT0FBT0EsV0FBVyxRQUFRO0FBQzFCLFNBQVNDLE1BQU0sUUFBUSxtQkFBZ0I7QUFDdkMsU0FBU0MsYUFBYSxRQUFRLDhCQUEyQjtBQUV6RCxTQUFTQyxZQUFZLFFBQVEsNEJBQXlCO0FBQ3RELFNBRUVDLGtCQUFrQixFQUNsQkMsZUFBZSxRQUNWLHdDQUErQjtBQUV0Qzs7Q0FFQyxHQUNELFNBQVNDLGlCQUFpQkMsYUFBMkIsRUFBRUMsYUFBMkI7SUFDaEYsTUFBTUMsZ0JBQWdCLElBQUlDLElBQUlILGNBQWNJLEdBQUcsQ0FBQyxDQUFDQyxJQUFNQSxFQUFFQyxJQUFJO0lBQzdELE9BQU9MLGNBQWNNLE1BQU0sQ0FBQyxDQUFDRixJQUFNLENBQUNILGNBQWNNLEdBQUcsQ0FBQ0gsRUFBRUMsSUFBSTtBQUM5RDtBQUVBOzs7Q0FHQyxHQUNELFNBQVNHLGtCQUNQVCxhQUEyQixFQUMzQkMsYUFBMkI7SUFFM0IsTUFBTVMsU0FBbUQsRUFBRTtJQUUzRCxLQUFLLE1BQU1DLGdCQUFnQlYsY0FBZTtRQUN4QyxNQUFNVyxnQkFBZ0JaLGNBQWNhLFNBQVMsQ0FBQyxDQUFDUixJQUFNQSxFQUFFQyxJQUFJLEtBQUtLLGFBQWFMLElBQUk7UUFDakYsSUFBSU0sa0JBQWtCLENBQUMsR0FBRztRQUUxQixNQUFNRSxlQUFlZCxhQUFhLENBQUNZLGNBQWM7UUFDakQsK0NBQStDO1FBQy9DLE1BQU1HLGNBQWNKLGFBQWFLLElBQUksRUFBRUMsb0JBQW9CSCxjQUFjRSxNQUFNQztRQUMvRSxJQUFJSCxjQUFjSSxTQUFTUCxhQUFhTyxJQUFJLElBQUlILGFBQWE7WUFDM0RMLE9BQU9TLElBQUksQ0FBQztnQkFBRUMsT0FBT1I7Z0JBQWVTLFNBQVNWO1lBQWE7UUFDNUQ7SUFDRjtJQUVBLE9BQU9EO0FBQ1Q7QUFFQTs7Q0FFQyxHQUNELFNBQVNZLG1CQUNQQyxlQUE4QixFQUM5QkMsZUFBOEI7SUFFOUIsTUFBTXRCLGdCQUFnQixJQUFJQyxJQUFJb0IsZ0JBQWdCbkIsR0FBRyxDQUFDLENBQUNxQixJQUFNQSxFQUFFbkIsSUFBSTtJQUMvRCxPQUFPa0IsZ0JBQWdCakIsTUFBTSxDQUFDLENBQUNrQixJQUFNLENBQUN2QixjQUFjTSxHQUFHLENBQUNpQixFQUFFbkIsSUFBSTtBQUNoRTtBQUVBOztDQUVDLEdBQ0QsU0FBU29CLG1CQUNQQyxlQUE0QyxFQUM1Q0MsZUFBNEM7SUFFNUMsTUFBTUMsVUFBdUMsQ0FBQztJQUM5QyxLQUFLLE1BQU0sQ0FBQ0MsS0FBS0MsT0FBTyxJQUFJQyxPQUFPQyxPQUFPLENBQUNMLGlCQUFrQjtRQUMzRCxJQUFJLENBQUNELGVBQWUsQ0FBQ0csSUFBSSxFQUFFO1lBQ3pCRCxPQUFPLENBQUNDLElBQUksR0FBR0M7UUFDakI7SUFDRjtJQUNBLE9BQU9GO0FBQ1Q7QUFFQTs7Q0FFQyxHQUNELGVBQWVLLHFCQUFxQkMsVUFBc0I7SUFDeEQsTUFBTUMsU0FBU3pDLGNBQWN5QyxNQUFNLENBQUNELFdBQVdFLEVBQUU7SUFFakQsSUFBSSxDQUFDRCxRQUFRO1FBQ1gsV0FBVztRQUNYLE1BQU0xQyxPQUFPNEMsTUFBTSxDQUFDQyxZQUFZLENBQUM7WUFDL0JDLFVBQVVMLFdBQVdFLEVBQUU7WUFDdkJJLE9BQU9OLFdBQVdNLEtBQUs7WUFDdkJDLE9BQU9QLFdBQVdPLEtBQUssSUFBSVAsV0FBV0UsRUFBRTtZQUN4Q00sT0FBT1IsV0FBV1EsS0FBSyxJQUFJLEVBQUU7WUFDN0JDLFNBQVNULFdBQVdTLE9BQU8sSUFBSSxFQUFFO1lBQ2pDQyxTQUFTVixXQUFXVSxPQUFPLElBQUksQ0FBQztZQUNoQ0MsT0FBT1gsV0FBV1csS0FBSyxJQUFJLENBQUM7UUFDOUI7UUFFQSxNQUFNQyxTQUFTcEQsY0FBY3FELEdBQUcsQ0FBQ2IsV0FBV0UsRUFBRTtRQUM5QyxNQUFNVSxPQUFPRSxJQUFJO1FBQ2pCQyxRQUFRQyxHQUFHLENBQUMxRCxNQUFNMkQsS0FBSyxDQUFDLENBQUMsVUFBVSxFQUFFakIsV0FBV0UsRUFBRSxFQUFFO1FBQ3BEO0lBQ0Y7SUFFQSxjQUFjO0lBQ2QsTUFBTVUsU0FBU3BELGNBQWNxRCxHQUFHLENBQUNiLFdBQVdFLEVBQUU7SUFDOUMsSUFBSWdCLGFBQWE7SUFFakIsZUFBZTtJQUNmLE1BQU1DLGVBQWV2RCxpQkFBaUJnRCxPQUFPSixLQUFLLEVBQUVSLFdBQVdRLEtBQUssSUFBSSxFQUFFO0lBQzFFLEtBQUssTUFBTVksUUFBUUQsYUFBYztRQUMvQixNQUFNUCxPQUFPUyxVQUFVLENBQUNEO1FBQ3hCTCxRQUFRQyxHQUFHLENBQUMxRCxNQUFNMkQsS0FBSyxDQUFDLENBQUMsV0FBVyxFQUFFakIsV0FBV0UsRUFBRSxDQUFDLENBQUMsRUFBRWtCLEtBQUtqRCxJQUFJLEVBQUU7UUFDbEUrQyxhQUFhO0lBQ2Y7SUFFQSxxQkFBcUI7SUFDckIsTUFBTUksZ0JBQWdCaEQsa0JBQWtCc0MsT0FBT0osS0FBSyxFQUFFUixXQUFXUSxLQUFLLElBQUksRUFBRTtJQUM1RSxLQUFLLE1BQU0sRUFBRXZCLEtBQUssRUFBRUMsT0FBTyxFQUFFLElBQUlvQyxjQUFlO1FBQzlDLE1BQU1DLFVBQVVYLE9BQU9KLEtBQUssQ0FBQ3ZCLE1BQU0sRUFBRUY7UUFDckMsTUFBTTZCLE9BQU9ZLFVBQVUsQ0FBQ3RDLFNBQVNEO1FBQ2pDOEIsUUFBUUMsR0FBRyxDQUNUMUQsTUFBTW1FLE1BQU0sQ0FBQyxDQUFDLGNBQWMsRUFBRXpCLFdBQVdFLEVBQUUsQ0FBQyxDQUFDLEVBQUVoQixRQUFRZixJQUFJLENBQUMsRUFBRSxFQUFFb0QsUUFBUSxHQUFHLEVBQUVyQyxRQUFRSCxJQUFJLEVBQUU7UUFFN0ZtQyxhQUFhO0lBQ2Y7SUFFQSxpQkFBaUI7SUFDakIsTUFBTVEsaUJBQWlCdkMsbUJBQW1CeUIsT0FBT0gsT0FBTyxFQUFFVCxXQUFXUyxPQUFPLElBQUksRUFBRTtJQUNsRixLQUFLLE1BQU14QixTQUFTeUMsZUFBZ0I7UUFDbENkLE9BQU9ILE9BQU8sQ0FBQ3pCLElBQUksQ0FBQ0M7UUFDcEI4QixRQUFRQyxHQUFHLENBQUMxRCxNQUFNMkQsS0FBSyxDQUFDLENBQUMsWUFBWSxFQUFFakIsV0FBV0UsRUFBRSxDQUFDLENBQUMsRUFBRWpCLE1BQU1kLElBQUksRUFBRTtRQUNwRStDLGFBQWE7SUFDZjtJQUVBLGlCQUFpQjtJQUNqQixNQUFNUyxpQkFBaUJwQyxtQkFDckJxQixPQUFPRixPQUFPLEVBQ2JWLFdBQVdVLE9BQU8sSUFBSSxDQUFDO0lBRTFCLEtBQUssTUFBTSxDQUFDZixLQUFLQyxPQUFPLElBQUlDLE9BQU9DLE9BQU8sQ0FBQzZCLGdCQUFpQjtRQUMxRGYsT0FBT0YsT0FBTyxDQUFDZixJQUFJLEdBQUdDO1FBQ3RCbUIsUUFBUUMsR0FBRyxDQUFDMUQsTUFBTTJELEtBQUssQ0FBQyxDQUFDLGFBQWEsRUFBRWpCLFdBQVdFLEVBQUUsQ0FBQyxDQUFDLEVBQUVQLEtBQUs7UUFDOUR1QixhQUFhO0lBQ2Y7SUFFQSxVQUFVO0lBQ1YsSUFBSUEsWUFBWTtRQUNkLE1BQU1OLE9BQU9FLElBQUk7UUFDakJDLFFBQVFDLEdBQUcsQ0FBQzFELE1BQU1zRSxJQUFJLENBQUMsQ0FBQyxVQUFVLEVBQUU1QixXQUFXRSxFQUFFLEVBQUU7SUFDckQsT0FBTztRQUNMYSxRQUFRQyxHQUFHLENBQUMxRCxNQUFNdUUsR0FBRyxDQUFDLENBQUMsT0FBTyxFQUFFN0IsV0FBV0UsRUFBRSxDQUFDLGFBQWEsQ0FBQztJQUM5RDtBQUNGO0FBRUE7O0NBRUMsR0FDRCxlQUFlNEIsaUJBQWlCekIsUUFBZ0IsRUFBRUcsS0FBbUI7SUFDbkUsSUFBSSxDQUFDaEQsY0FBY3lDLE1BQU0sQ0FBQ0ksV0FBVztRQUNuQ1UsUUFBUUMsR0FBRyxDQUFDMUQsTUFBTW1FLE1BQU0sQ0FBQyxDQUFDLE9BQU8sRUFBRXBCLFNBQVMscUNBQXFDLENBQUM7UUFDbEY7SUFDRjtJQUVBLE1BQU1PLFNBQVNwRCxjQUFjcUQsR0FBRyxDQUFDUjtJQUNqQyxJQUFJYSxhQUFhO0lBRWpCLE1BQU1DLGVBQWV2RCxpQkFBaUJnRCxPQUFPSixLQUFLLEVBQUVBO0lBQ3BELEtBQUssTUFBTVksUUFBUUQsYUFBYztRQUMvQixNQUFNUCxPQUFPUyxVQUFVLENBQUNEO1FBQ3hCTCxRQUFRQyxHQUFHLENBQUMxRCxNQUFNMkQsS0FBSyxDQUFDLENBQUMsV0FBVyxFQUFFWixTQUFTLENBQUMsRUFBRWUsS0FBS2pELElBQUksRUFBRTtRQUM3RCtDLGFBQWE7SUFDZjtJQUVBLElBQUlBLFlBQVk7UUFDZCxNQUFNTixPQUFPRSxJQUFJO0lBQ25CO0FBQ0Y7QUFFQTs7Q0FFQyxHQUNELGVBQWVpQixtQkFBbUIxQixRQUFnQixFQUFFSSxPQUFzQjtJQUN4RSxJQUFJLENBQUNqRCxjQUFjeUMsTUFBTSxDQUFDSSxXQUFXO1FBQ25DVSxRQUFRQyxHQUFHLENBQUMxRCxNQUFNbUUsTUFBTSxDQUFDLENBQUMsT0FBTyxFQUFFcEIsU0FBUyx1Q0FBdUMsQ0FBQztRQUNwRjtJQUNGO0lBRUEsTUFBTU8sU0FBU3BELGNBQWNxRCxHQUFHLENBQUNSO0lBQ2pDLElBQUlhLGFBQWE7SUFFakIsTUFBTVEsaUJBQWlCdkMsbUJBQW1CeUIsT0FBT0gsT0FBTyxFQUFFQTtJQUMxRCxLQUFLLE1BQU14QixTQUFTeUMsZUFBZ0I7UUFDbENkLE9BQU9ILE9BQU8sQ0FBQ3pCLElBQUksQ0FBQ0M7UUFDcEI4QixRQUFRQyxHQUFHLENBQUMxRCxNQUFNMkQsS0FBSyxDQUFDLENBQUMsWUFBWSxFQUFFWixTQUFTLENBQUMsRUFBRXBCLE1BQU1kLElBQUksRUFBRTtRQUMvRCtDLGFBQWE7SUFDZjtJQUVBLElBQUlBLFlBQVk7UUFDZCxNQUFNTixPQUFPRSxJQUFJO0lBQ25CO0FBQ0Y7QUFVQTs7Ozs7Q0FLQyxHQUNELE9BQU8sZUFBZWtCLDJCQUNwQkMsVUFBNkMsQ0FBQyxDQUFDO0lBRS9DLE1BQU0sRUFBRUMsVUFBVSxFQUFFLEVBQUUsR0FBR0Q7SUFFekIsb0JBQW9CO0lBQ3BCbEIsUUFBUUMsR0FBRyxDQUFDMUQsTUFBTTZFLElBQUksQ0FBQztJQUN2QixLQUFLLE1BQU1uQyxjQUFjdkMsYUFBYztRQUNyQyxNQUFNc0MscUJBQXFCQztJQUM3QjtJQUVBLGFBQWE7SUFDYixJQUFJa0MsUUFBUUUsTUFBTSxHQUFHLEdBQUc7UUFDdEJyQixRQUFRQyxHQUFHLENBQUMxRCxNQUFNNkUsSUFBSSxDQUFDO1FBRXZCLEtBQUssTUFBTUUsWUFBWUgsUUFBUztZQUM5QixJQUFJLENBQUN2RSxnQkFBZ0IwRSxXQUFXO2dCQUM5QnRCLFFBQVFDLEdBQUcsQ0FBQzFELE1BQU1nRixHQUFHLENBQUMsQ0FBQyx3QkFBd0IsRUFBRUQsVUFBVTtnQkFDM0Q7WUFDRjtZQUVBLE1BQU1FLFlBQVk3RSxrQkFBa0IsQ0FBQzJFLFNBQVM7WUFDOUN0QixRQUFRQyxHQUFHLENBQUMxRCxNQUFNa0YsT0FBTyxDQUFDLENBQUMsU0FBUyxFQUFFRCxVQUFVcEUsSUFBSSxFQUFFO1lBRXRELGlCQUFpQjtZQUNqQixLQUFLLE1BQU02QixjQUFjdUMsVUFBVUUsUUFBUSxDQUFFO2dCQUMzQyxNQUFNMUMscUJBQXFCQztZQUM3QjtZQUVBLGdCQUFnQjtZQUNoQixLQUFLLE1BQU0sQ0FBQ0ssVUFBVUcsTUFBTSxJQUFJWCxPQUFPQyxPQUFPLENBQUN5QyxVQUFVRyxlQUFlLEVBQUc7Z0JBQ3pFLE1BQU1aLGlCQUFpQnpCLFVBQVVHO1lBQ25DO1lBRUEsaUJBQWlCO1lBQ2pCLElBQUkrQixVQUFVSSxpQkFBaUIsRUFBRTtnQkFDL0IsS0FBSyxNQUFNLENBQUN0QyxVQUFVSSxRQUFRLElBQUlaLE9BQU9DLE9BQU8sQ0FBQ3lDLFVBQVVJLGlCQUFpQixFQUFHO29CQUM3RSxNQUFNWixtQkFBbUIxQixVQUFVSTtnQkFDckM7WUFDRjtRQUNGO0lBQ0Y7SUFFQU0sUUFBUUMsR0FBRyxDQUFDMUQsTUFBTXNGLElBQUksQ0FBQztBQUN6QiJ9
|
|
220
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9hdXRoL2F1dGgtZ2VuZXJhdG9yLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBjaGFsayBmcm9tIFwiY2hhbGtcIjtcbmltcG9ydCB7IFNvbmFtdSB9IGZyb20gXCIuLi9hcGkvc29uYW11XCI7XG5pbXBvcnQgeyBFbnRpdHlNYW5hZ2VyIH0gZnJvbSBcIi4uL2VudGl0eS9lbnRpdHktbWFuYWdlclwiO1xuaW1wb3J0IHR5cGUgeyBFbnRpdHlJbmRleCwgRW50aXR5SnNvbiwgRW50aXR5UHJvcCB9IGZyb20gXCIuLi90eXBlcy90eXBlc1wiO1xuaW1wb3J0IHsgYmV0dGVyQXV0aFYxIH0gZnJvbSBcIi4vYmV0dGVyLWF1dGgtZW50aXRpZXNcIjtcbmltcG9ydCB7XG4gIHR5cGUgQmV0dGVyQXV0aFBsdWdpbklkLFxuICBFTlRJVFlfREVGSU5JVElPTlMsXG4gIGlzVmFsaWRQbHVnaW5JZCxcbn0gZnJvbSBcIi4vcGx1Z2lucy9lbnRpdHktZGVmaW5pdGlvbnNcIjtcblxuLyoqXG4gKiDriITrnb3rkJwgcHJvcHMg7LC+6riwXG4gKi9cbmZ1bmN0aW9uIGZpbmRNaXNzaW5nUHJvcHMoZXhpc3RpbmdQcm9wczogRW50aXR5UHJvcFtdLCByZXF1aXJlZFByb3BzOiBFbnRpdHlQcm9wW10pOiBFbnRpdHlQcm9wW10ge1xuICBjb25zdCBleGlzdGluZ05hbWVzID0gbmV3IFNldChleGlzdGluZ1Byb3BzLm1hcCgocCkgPT4gcC5uYW1lKSk7XG4gIHJldHVybiByZXF1aXJlZFByb3BzLmZpbHRlcigocCkgPT4gIWV4aXN0aW5nTmFtZXMuaGFzKHAubmFtZSkpO1xufVxuXG4vKipcbiAqIO2DgOyeheydtCDrs4Dqsr3rkJwgcHJvcHMg7LC+6riwICjrj5nsnbwgbmFtZSwg64uk66W4IHR5cGUpXG4gKiBAcmV0dXJucyBb6riw7KG0IHByb3AgaW5kZXgsIOyDiCBwcm9wXVtdXG4gKi9cbmZ1bmN0aW9uIGZpbmRQcm9wc1RvVXBkYXRlKFxuICBleGlzdGluZ1Byb3BzOiBFbnRpdHlQcm9wW10sXG4gIHJlcXVpcmVkUHJvcHM6IEVudGl0eVByb3BbXSxcbik6IHsgaW5kZXg6IG51bWJlcjsgbmV3UHJvcDogRW50aXR5UHJvcCB9W10ge1xuICBjb25zdCByZXN1bHQ6IHsgaW5kZXg6IG51bWJlcjsgbmV3UHJvcDogRW50aXR5UHJvcCB9W10gPSBbXTtcblxuICBmb3IgKGNvbnN0IHJlcXVpcmVkUHJvcCBvZiByZXF1aXJlZFByb3BzKSB7XG4gICAgY29uc3QgZXhpc3RpbmdJbmRleCA9IGV4aXN0aW5nUHJvcHMuZmluZEluZGV4KChwKSA9PiBwLm5hbWUgPT09IHJlcXVpcmVkUHJvcC5uYW1lKTtcbiAgICBpZiAoZXhpc3RpbmdJbmRleCA9PT0gLTEpIGNvbnRpbnVlO1xuXG4gICAgY29uc3QgZXhpc3RpbmdQcm9wID0gZXhpc3RpbmdQcm9wc1tleGlzdGluZ0luZGV4XTtcbiAgICAvLyB0eXBl7J20IOuLpOultOqxsOuCmCBjb25lLmZpeHR1cmVTdHJhdGVneeqwgCDri6TrpbTrqbQg7JeF642w7J207Yq4IOuMgOyDgVxuICAgIGNvbnN0IGNvbmVDaGFuZ2VkID0gcmVxdWlyZWRQcm9wLmNvbmU/LmZpeHR1cmVTdHJhdGVneSAhPT0gZXhpc3RpbmdQcm9wPy5jb25lPy5maXh0dXJlU3RyYXRlZ3k7XG4gICAgaWYgKGV4aXN0aW5nUHJvcD8udHlwZSAhPT0gcmVxdWlyZWRQcm9wLnR5cGUgfHwgY29uZUNoYW5nZWQpIHtcbiAgICAgIHJlc3VsdC5wdXNoKHsgaW5kZXg6IGV4aXN0aW5nSW5kZXgsIG5ld1Byb3A6IHJlcXVpcmVkUHJvcCB9KTtcbiAgICB9XG4gIH1cblxuICByZXR1cm4gcmVzdWx0O1xufVxuXG4vKipcbiAqIOuIhOudveuQnCBpbmRleGVzIOywvuq4sFxuICovXG5mdW5jdGlvbiBmaW5kTWlzc2luZ0luZGV4ZXMoXG4gIGV4aXN0aW5nSW5kZXhlczogRW50aXR5SW5kZXhbXSxcbiAgcmVxdWlyZWRJbmRleGVzOiBFbnRpdHlJbmRleFtdLFxuKTogRW50aXR5SW5kZXhbXSB7XG4gIGNvbnN0IGV4aXN0aW5nTmFtZXMgPSBuZXcgU2V0KGV4aXN0aW5nSW5kZXhlcy5tYXAoKGkpID0+IGkubmFtZSkpO1xuICByZXR1cm4gcmVxdWlyZWRJbmRleGVzLmZpbHRlcigoaSkgPT4gIWV4aXN0aW5nTmFtZXMuaGFzKGkubmFtZSkpO1xufVxuXG4vKipcbiAqIOuIhOudveuQnCBzdWJzZXRzIOywvuq4sFxuICovXG5mdW5jdGlvbiBmaW5kTWlzc2luZ1N1YnNldHMoXG4gIGV4aXN0aW5nU3Vic2V0czogeyBba2V5OiBzdHJpbmddOiBzdHJpbmdbXSB9LFxuICByZXF1aXJlZFN1YnNldHM6IHsgW2tleTogc3RyaW5nXTogc3RyaW5nW10gfSxcbik6IHsgW2tleTogc3RyaW5nXTogc3RyaW5nW10gfSB7XG4gIGNvbnN0IG1pc3Npbmc6IHsgW2tleTogc3RyaW5nXTogc3RyaW5nW10gfSA9IHt9O1xuICBmb3IgKGNvbnN0IFtrZXksIGZpZWxkc10gb2YgT2JqZWN0LmVudHJpZXMocmVxdWlyZWRTdWJzZXRzKSkge1xuICAgIGlmICghZXhpc3RpbmdTdWJzZXRzW2tleV0pIHtcbiAgICAgIG1pc3Npbmdba2V5XSA9IGZpZWxkcztcbiAgICB9XG4gIH1cbiAgcmV0dXJuIG1pc3Npbmc7XG59XG5cbi8qKlxuICog7JeU7Yuw7Yuw66W8IOyDneyEse2VmOqxsOuCmCDsl4XrjbDsnbTtirjtlanri4jri6QuXG4gKi9cbmFzeW5jIGZ1bmN0aW9uIGNyZWF0ZU9yVXBkYXRlRW50aXR5KGVudGl0eUpzb246IEVudGl0eUpzb24pOiBQcm9taXNlPHZvaWQ+IHtcbiAgY29uc3QgZXhpc3RzID0gRW50aXR5TWFuYWdlci5leGlzdHMoZW50aXR5SnNvbi5pZCk7XG5cbiAgaWYgKCFleGlzdHMpIHtcbiAgICAvLyDsg4gg7JeU7Yuw7YuwIOyDneyEsVxuICAgIGF3YWl0IFNvbmFtdS5zeW5jZXIuY3JlYXRlRW50aXR5KHtcbiAgICAgIGVudGl0eUlkOiBlbnRpdHlKc29uLmlkLFxuICAgICAgdGFibGU6IGVudGl0eUpzb24udGFibGUsXG4gICAgICB0aXRsZTogZW50aXR5SnNvbi50aXRsZSA/PyBlbnRpdHlKc29uLmlkLFxuICAgICAgcHJvcHM6IGVudGl0eUpzb24ucHJvcHMgPz8gW10sXG4gICAgICBpbmRleGVzOiBlbnRpdHlKc29uLmluZGV4ZXMgPz8gW10sXG4gICAgICBzdWJzZXRzOiBlbnRpdHlKc29uLnN1YnNldHMgPz8ge30sXG4gICAgICBlbnVtczogZW50aXR5SnNvbi5lbnVtcyA/PyB7fSxcbiAgICB9KTtcblxuICAgIGNvbnN0IGVudGl0eSA9IEVudGl0eU1hbmFnZXIuZ2V0KGVudGl0eUpzb24uaWQpO1xuICAgIGF3YWl0IGVudGl0eS5zYXZlKCk7XG4gICAgY29uc29sZS5sb2coY2hhbGsuZ3JlZW4oYFtDUkVBVEVEXSAke2VudGl0eUpzb24uaWR9YCkpO1xuICAgIHJldHVybjtcbiAgfVxuXG4gIC8vIOq4sOyhtCDsl5Tti7Dti7Ag7JeF642w7J207Yq4XG4gIGNvbnN0IGVudGl0eSA9IEVudGl0eU1hbmFnZXIuZ2V0KGVudGl0eUpzb24uaWQpO1xuICBsZXQgaGFzQ2hhbmdlcyA9IGZhbHNlO1xuXG4gIC8vIOuIhOudveuQnCBwcm9wcyDstpTqsIBcbiAgY29uc3QgbWlzc2luZ1Byb3BzID0gZmluZE1pc3NpbmdQcm9wcyhlbnRpdHkucHJvcHMsIGVudGl0eUpzb24ucHJvcHMgPz8gW10pO1xuICBmb3IgKGNvbnN0IHByb3Agb2YgbWlzc2luZ1Byb3BzKSB7XG4gICAgYXdhaXQgZW50aXR5LmNyZWF0ZVByb3AocHJvcCk7XG4gICAgY29uc29sZS5sb2coY2hhbGsuZ3JlZW4oYFtBREQgUFJPUF0gJHtlbnRpdHlKc29uLmlkfS4ke3Byb3AubmFtZX1gKSk7XG4gICAgaGFzQ2hhbmdlcyA9IHRydWU7XG4gIH1cblxuICAvLyDtg4DsnoXsnbQg67OA6rK965CcIHByb3BzIOyXheuNsOydtO2KuFxuICBjb25zdCBwcm9wc1RvVXBkYXRlID0gZmluZFByb3BzVG9VcGRhdGUoZW50aXR5LnByb3BzLCBlbnRpdHlKc29uLnByb3BzID8/IFtdKTtcbiAgZm9yIChjb25zdCB7IGluZGV4LCBuZXdQcm9wIH0gb2YgcHJvcHNUb1VwZGF0ZSkge1xuICAgIGNvbnN0IG9sZFR5cGUgPSBlbnRpdHkucHJvcHNbaW5kZXhdPy50eXBlO1xuICAgIGF3YWl0IGVudGl0eS5tb2RpZnlQcm9wKG5ld1Byb3AsIGluZGV4KTtcbiAgICBjb25zb2xlLmxvZyhcbiAgICAgIGNoYWxrLnllbGxvdyhgW1VQREFURSBQUk9QXSAke2VudGl0eUpzb24uaWR9LiR7bmV3UHJvcC5uYW1lfTogJHtvbGRUeXBlfSDihpIgJHtuZXdQcm9wLnR5cGV9YCksXG4gICAgKTtcbiAgICBoYXNDaGFuZ2VzID0gdHJ1ZTtcbiAgfVxuXG4gIC8vIOuIhOudveuQnCBpbmRleGVzIOy2lOqwgFxuICBjb25zdCBtaXNzaW5nSW5kZXhlcyA9IGZpbmRNaXNzaW5nSW5kZXhlcyhlbnRpdHkuaW5kZXhlcywgZW50aXR5SnNvbi5pbmRleGVzID8/IFtdKTtcbiAgZm9yIChjb25zdCBpbmRleCBvZiBtaXNzaW5nSW5kZXhlcykge1xuICAgIGVudGl0eS5pbmRleGVzLnB1c2goaW5kZXgpO1xuICAgIGNvbnNvbGUubG9nKGNoYWxrLmdyZWVuKGBbQUREIElOREVYXSAke2VudGl0eUpzb24uaWR9LiR7aW5kZXgubmFtZX1gKSk7XG4gICAgaGFzQ2hhbmdlcyA9IHRydWU7XG4gIH1cblxuICAvLyDriITrnb3rkJwgc3Vic2V0cyDstpTqsIBcbiAgY29uc3QgbWlzc2luZ1N1YnNldHMgPSBmaW5kTWlzc2luZ1N1YnNldHMoXG4gICAgZW50aXR5LnN1YnNldHMsXG4gICAgKGVudGl0eUpzb24uc3Vic2V0cyA/PyB7fSkgYXMgeyBba2V5OiBzdHJpbmddOiBzdHJpbmdbXSB9LFxuICApO1xuICBmb3IgKGNvbnN0IFtrZXksIGZpZWxkc10gb2YgT2JqZWN0LmVudHJpZXMobWlzc2luZ1N1YnNldHMpKSB7XG4gICAgZW50aXR5LnN1YnNldHNba2V5XSA9IGZpZWxkcztcbiAgICBjb25zb2xlLmxvZyhjaGFsay5ncmVlbihgW0FERCBTVUJTRVRdICR7ZW50aXR5SnNvbi5pZH0uJHtrZXl9YCkpO1xuICAgIGhhc0NoYW5nZXMgPSB0cnVlO1xuICB9XG5cbiAgLy8g67OA6rK97IKs7ZWtIOyggOyepVxuICBpZiAoaGFzQ2hhbmdlcykge1xuICAgIGF3YWl0IGVudGl0eS5zYXZlKCk7XG4gICAgY29uc29sZS5sb2coY2hhbGsuYmx1ZShgW1VQREFURURdICR7ZW50aXR5SnNvbi5pZH1gKSk7XG4gIH0gZWxzZSB7XG4gICAgY29uc29sZS5sb2coY2hhbGsuZGltKGBbU0tJUF0gJHtlbnRpdHlKc29uLmlkfSAtIG5vIGNoYW5nZXNgKSk7XG4gIH1cbn1cblxuLyoqXG4gKiDquLDsobQg7JeU7Yuw7Yuw7JeQIHByb3Bz66W8IOy2lOqwgO2VqeuLiOuLpC5cbiAqL1xuYXN5bmMgZnVuY3Rpb24gYWRkUHJvcHNUb0VudGl0eShlbnRpdHlJZDogc3RyaW5nLCBwcm9wczogRW50aXR5UHJvcFtdKTogUHJvbWlzZTx2b2lkPiB7XG4gIGlmICghRW50aXR5TWFuYWdlci5leGlzdHMoZW50aXR5SWQpKSB7XG4gICAgY29uc29sZS5sb2coY2hhbGsueWVsbG93KGBbU0tJUF0gJHtlbnRpdHlJZH0gLSBlbnRpdHkgbm90IGZvdW5kLCBjYW5ub3QgYWRkIHByb3BzYCkpO1xuICAgIHJldHVybjtcbiAgfVxuXG4gIGNvbnN0IGVudGl0eSA9IEVudGl0eU1hbmFnZXIuZ2V0KGVudGl0eUlkKTtcbiAgbGV0IGhhc0NoYW5nZXMgPSBmYWxzZTtcblxuICBjb25zdCBtaXNzaW5nUHJvcHMgPSBmaW5kTWlzc2luZ1Byb3BzKGVudGl0eS5wcm9wcywgcHJvcHMpO1xuICBmb3IgKGNvbnN0IHByb3Agb2YgbWlzc2luZ1Byb3BzKSB7XG4gICAgYXdhaXQgZW50aXR5LmNyZWF0ZVByb3AocHJvcCk7XG4gICAgY29uc29sZS5sb2coY2hhbGsuZ3JlZW4oYFtBREQgUFJPUF0gJHtlbnRpdHlJZH0uJHtwcm9wLm5hbWV9YCkpO1xuICAgIGhhc0NoYW5nZXMgPSB0cnVlO1xuICB9XG5cbiAgaWYgKGhhc0NoYW5nZXMpIHtcbiAgICBhd2FpdCBlbnRpdHkuc2F2ZSgpO1xuICB9XG59XG5cbi8qKlxuICog6riw7KG0IOyXlO2LsO2LsOyXkCBpbmRleGVz66W8IOy2lOqwgO2VqeuLiOuLpC5cbiAqL1xuYXN5bmMgZnVuY3Rpb24gYWRkSW5kZXhlc1RvRW50aXR5KGVudGl0eUlkOiBzdHJpbmcsIGluZGV4ZXM6IEVudGl0eUluZGV4W10pOiBQcm9taXNlPHZvaWQ+IHtcbiAgaWYgKCFFbnRpdHlNYW5hZ2VyLmV4aXN0cyhlbnRpdHlJZCkpIHtcbiAgICBjb25zb2xlLmxvZyhjaGFsay55ZWxsb3coYFtTS0lQXSAke2VudGl0eUlkfSAtIGVudGl0eSBub3QgZm91bmQsIGNhbm5vdCBhZGQgaW5kZXhlc2ApKTtcbiAgICByZXR1cm47XG4gIH1cblxuICBjb25zdCBlbnRpdHkgPSBFbnRpdHlNYW5hZ2VyLmdldChlbnRpdHlJZCk7XG4gIGxldCBoYXNDaGFuZ2VzID0gZmFsc2U7XG5cbiAgY29uc3QgbWlzc2luZ0luZGV4ZXMgPSBmaW5kTWlzc2luZ0luZGV4ZXMoZW50aXR5LmluZGV4ZXMsIGluZGV4ZXMpO1xuICBmb3IgKGNvbnN0IGluZGV4IG9mIG1pc3NpbmdJbmRleGVzKSB7XG4gICAgZW50aXR5LmluZGV4ZXMucHVzaChpbmRleCk7XG4gICAgY29uc29sZS5sb2coY2hhbGsuZ3JlZW4oYFtBREQgSU5ERVhdICR7ZW50aXR5SWR9LiR7aW5kZXgubmFtZX1gKSk7XG4gICAgaGFzQ2hhbmdlcyA9IHRydWU7XG4gIH1cblxuICBpZiAoaGFzQ2hhbmdlcykge1xuICAgIGF3YWl0IGVudGl0eS5zYXZlKCk7XG4gIH1cbn1cblxuZXhwb3J0IGludGVyZmFjZSBHZW5lcmF0ZUJldHRlckF1dGhFbnRpdGllc09wdGlvbnMge1xuICAvKipcbiAgICog7Zmc7ISx7ZmU7ZWgIO2UjOufrOq3uOyduCBJRCDrqqnroZ1cbiAgICog7JiIOiBbXCJwaG9uZS1udW1iZXJcIiwgXCIyZmFcIl1cbiAgICovXG4gIHBsdWdpbnM/OiBCZXR0ZXJBdXRoUGx1Z2luSWRbXTtcbn1cblxuLyoqXG4gKiDquLDsobQg7ZSE66Gc7KCd7Yq47J2YIGVudGl0eS5qc29u7JeQIGZpeHR1cmVDb21wYW5pb25z66W8IOyGjOq4iSDstpTqsIDtlanri4jri6QuXG4gKlxuICogYmV0dGVyQXV0aFYxIOq4sOykgOycvOuhnCBmaXh0dXJlQ29tcGFuaW9uc+qwgCDsoJXsnZjrkJwgZW50aXR566W8IOywvuyVhFxuICog7ZSE66Gc7KCd7Yq4IOuCtCBlbnRpdHkuanNvbuyXkCDtlbTri7kgcHJvcOydmCBjb25l7JeQIGZpeHR1cmVDb21wYW5pb25z6rCAXG4gKiDsl4bsnYQg65WM66eMIOy2lOqwgO2VqeuLiOuLpC4g7J2066+4IOyeiOycvOuptCDsiqTtgrXtlanri4jri6QuXG4gKi9cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBhZGRDb21wYW5pb25zVG9FbnRpdGllcygpOiBQcm9taXNlPHZvaWQ+IHtcbiAgZm9yIChjb25zdCBlbnRpdHlKc29uIG9mIGJldHRlckF1dGhWMSkge1xuICAgIGNvbnN0IGlkUHJvcCA9IGVudGl0eUpzb24ucHJvcHM/LmZpbmQoKHApID0+IHAubmFtZSA9PT0gXCJpZFwiKTtcbiAgICBpZiAoIWlkUHJvcD8uY29uZT8uZml4dHVyZUNvbXBhbmlvbnMpIGNvbnRpbnVlO1xuXG4gICAgaWYgKCFFbnRpdHlNYW5hZ2VyLmV4aXN0cyhlbnRpdHlKc29uLmlkKSkge1xuICAgICAgY29uc29sZS5sb2coY2hhbGsueWVsbG93KGBbU0tJUF0gJHtlbnRpdHlKc29uLmlkfSAtIG5vdCBmb3VuZGApKTtcbiAgICAgIGNvbnRpbnVlO1xuICAgIH1cblxuICAgIGNvbnN0IGVudGl0eSA9IEVudGl0eU1hbmFnZXIuZ2V0KGVudGl0eUpzb24uaWQpO1xuICAgIGNvbnN0IGV4aXN0aW5nSWRQcm9wID0gZW50aXR5LnByb3BzLmZpbmQoKHApID0+IHAubmFtZSA9PT0gXCJpZFwiKTtcbiAgICBpZiAoIWV4aXN0aW5nSWRQcm9wKSB7XG4gICAgICBjb25zb2xlLmxvZyhjaGFsay55ZWxsb3coYFtTS0lQXSAke2VudGl0eUpzb24uaWR9LmlkIC0gcHJvcCBub3QgZm91bmRgKSk7XG4gICAgICBjb250aW51ZTtcbiAgICB9XG5cbiAgICBpZiAoZXhpc3RpbmdJZFByb3AuY29uZT8uZml4dHVyZUNvbXBhbmlvbnMpIHtcbiAgICAgIGNvbnNvbGUubG9nKGNoYWxrLmRpbShgW1NLSVBdICR7ZW50aXR5SnNvbi5pZH0uaWQgLSBmaXh0dXJlQ29tcGFuaW9ucyBhbHJlYWR5IGV4aXN0c2ApKTtcbiAgICAgIGNvbnRpbnVlO1xuICAgIH1cblxuICAgIGV4aXN0aW5nSWRQcm9wLmNvbmUgPSB7XG4gICAgICAuLi5leGlzdGluZ0lkUHJvcC5jb25lLFxuICAgICAgZml4dHVyZUNvbXBhbmlvbnM6IGlkUHJvcC5jb25lLmZpeHR1cmVDb21wYW5pb25zLFxuICAgIH07XG4gICAgYXdhaXQgZW50aXR5LnNhdmUoKTtcbiAgICBjb25zb2xlLmxvZyhjaGFsay5ncmVlbihgW1VQREFURURdICR7ZW50aXR5SnNvbi5pZH0uaWQgLSBmaXh0dXJlQ29tcGFuaW9ucyBhZGRlZGApKTtcbiAgfVxufVxuXG4vKipcbiAqIGJldHRlci1hdXRoIOyXlO2LsO2LsOuTpOydhCBTb25hbXXsl5Ag7IOd7ISxL+yXheuNsOydtO2KuFxuICpcbiAqIEBwYXJhbSBvcHRpb25zIOyDneyEsSDsmLXshZhcbiAqIEBwYXJhbSBvcHRpb25zLnBsdWdpbnMg7Zmc7ISx7ZmU7ZWgIO2UjOufrOq3uOyduCBJRCDrqqnroZ1cbiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGdlbmVyYXRlQmV0dGVyQXV0aEVudGl0aWVzKFxuICBvcHRpb25zOiBHZW5lcmF0ZUJldHRlckF1dGhFbnRpdGllc09wdGlvbnMgPSB7fSxcbik6IFByb21pc2U8dm9pZD4ge1xuICBjb25zdCB7IHBsdWdpbnMgPSBbXSB9ID0gb3B0aW9ucztcblxuICAvLyAxLiDquLDrs7gg7JeU7Yuw7YuwIOyDneyEsS/sl4XrjbDsnbTtirhcbiAgY29uc29sZS5sb2coY2hhbGsuY3lhbihcIlxcbvCfk6YgUHJvY2Vzc2luZyBjb3JlIGVudGl0aWVzLi4uXFxuXCIpKTtcbiAgZm9yIChjb25zdCBlbnRpdHlKc29uIG9mIGJldHRlckF1dGhWMSkge1xuICAgIGF3YWl0IGNyZWF0ZU9yVXBkYXRlRW50aXR5KGVudGl0eUpzb24pO1xuICB9XG5cbiAgLy8gMi4g7ZSM65+s6re47J24IOyymOumrFxuICBpZiAocGx1Z2lucy5sZW5ndGggPiAwKSB7XG4gICAgY29uc29sZS5sb2coY2hhbGsuY3lhbihcIlxcbvCflIwgUHJvY2Vzc2luZyBwbHVnaW5zLi4uXFxuXCIpKTtcblxuICAgIGZvciAoY29uc3QgcGx1Z2luSWQgb2YgcGx1Z2lucykge1xuICAgICAgaWYgKCFpc1ZhbGlkUGx1Z2luSWQocGx1Z2luSWQpKSB7XG4gICAgICAgIGNvbnNvbGUubG9nKGNoYWxrLnJlZChgW0VSUk9SXSBVbmtub3duIHBsdWdpbjogJHtwbHVnaW5JZH1gKSk7XG4gICAgICAgIGNvbnRpbnVlO1xuICAgICAgfVxuXG4gICAgICBjb25zdCBlbnRpdHlEZWYgPSBFTlRJVFlfREVGSU5JVElPTlNbcGx1Z2luSWRdO1xuICAgICAgY29uc29sZS5sb2coY2hhbGsubWFnZW50YShgW1BMVUdJTl0gJHtlbnRpdHlEZWYubmFtZX1gKSk7XG5cbiAgICAgIC8vIO2UjOufrOq3uOyduOydmCDsg4gg7JeU7Yuw7YuwIOyDneyEsVxuICAgICAgZm9yIChjb25zdCBlbnRpdHlKc29uIG9mIGVudGl0eURlZi5lbnRpdGllcykge1xuICAgICAgICBhd2FpdCBjcmVhdGVPclVwZGF0ZUVudGl0eShlbnRpdHlKc29uKTtcbiAgICAgIH1cblxuICAgICAgLy8g6riw7KG0IOyXlO2LsO2LsOyXkCDtlYTrk5wg7LaU6rCAXG4gICAgICBmb3IgKGNvbnN0IFtlbnRpdHlJZCwgcHJvcHNdIG9mIE9iamVjdC5lbnRyaWVzKGVudGl0eURlZi5hZGRpdGlvbmFsUHJvcHMpKSB7XG4gICAgICAgIGF3YWl0IGFkZFByb3BzVG9FbnRpdHkoZW50aXR5SWQsIHByb3BzKTtcbiAgICAgIH1cblxuICAgICAgLy8g6riw7KG0IOyXlO2LsO2LsOyXkCDsnbjrjbHsiqQg7LaU6rCAXG4gICAgICBpZiAoZW50aXR5RGVmLmFkZGl0aW9uYWxJbmRleGVzKSB7XG4gICAgICAgIGZvciAoY29uc3QgW2VudGl0eUlkLCBpbmRleGVzXSBvZiBPYmplY3QuZW50cmllcyhlbnRpdHlEZWYuYWRkaXRpb25hbEluZGV4ZXMpKSB7XG4gICAgICAgICAgYXdhaXQgYWRkSW5kZXhlc1RvRW50aXR5KGVudGl0eUlkLCBpbmRleGVzKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIGNvbnNvbGUubG9nKGNoYWxrLmJvbGQoXCJcXG7inIUgRG9uZSEgYmV0dGVyLWF1dGggZW50aXRpZXMgZ2VuZXJhdGVkLlwiKSk7XG59XG4iXSwibmFtZXMiOlsiY2hhbGsiLCJTb25hbXUiLCJFbnRpdHlNYW5hZ2VyIiwiYmV0dGVyQXV0aFYxIiwiRU5USVRZX0RFRklOSVRJT05TIiwiaXNWYWxpZFBsdWdpbklkIiwiZmluZE1pc3NpbmdQcm9wcyIsImV4aXN0aW5nUHJvcHMiLCJyZXF1aXJlZFByb3BzIiwiZXhpc3RpbmdOYW1lcyIsIlNldCIsIm1hcCIsInAiLCJuYW1lIiwiZmlsdGVyIiwiaGFzIiwiZmluZFByb3BzVG9VcGRhdGUiLCJyZXN1bHQiLCJyZXF1aXJlZFByb3AiLCJleGlzdGluZ0luZGV4IiwiZmluZEluZGV4IiwiZXhpc3RpbmdQcm9wIiwiY29uZUNoYW5nZWQiLCJjb25lIiwiZml4dHVyZVN0cmF0ZWd5IiwidHlwZSIsInB1c2giLCJpbmRleCIsIm5ld1Byb3AiLCJmaW5kTWlzc2luZ0luZGV4ZXMiLCJleGlzdGluZ0luZGV4ZXMiLCJyZXF1aXJlZEluZGV4ZXMiLCJpIiwiZmluZE1pc3NpbmdTdWJzZXRzIiwiZXhpc3RpbmdTdWJzZXRzIiwicmVxdWlyZWRTdWJzZXRzIiwibWlzc2luZyIsImtleSIsImZpZWxkcyIsIk9iamVjdCIsImVudHJpZXMiLCJjcmVhdGVPclVwZGF0ZUVudGl0eSIsImVudGl0eUpzb24iLCJleGlzdHMiLCJpZCIsInN5bmNlciIsImNyZWF0ZUVudGl0eSIsImVudGl0eUlkIiwidGFibGUiLCJ0aXRsZSIsInByb3BzIiwiaW5kZXhlcyIsInN1YnNldHMiLCJlbnVtcyIsImVudGl0eSIsImdldCIsInNhdmUiLCJjb25zb2xlIiwibG9nIiwiZ3JlZW4iLCJoYXNDaGFuZ2VzIiwibWlzc2luZ1Byb3BzIiwicHJvcCIsImNyZWF0ZVByb3AiLCJwcm9wc1RvVXBkYXRlIiwib2xkVHlwZSIsIm1vZGlmeVByb3AiLCJ5ZWxsb3ciLCJtaXNzaW5nSW5kZXhlcyIsIm1pc3NpbmdTdWJzZXRzIiwiYmx1ZSIsImRpbSIsImFkZFByb3BzVG9FbnRpdHkiLCJhZGRJbmRleGVzVG9FbnRpdHkiLCJhZGRDb21wYW5pb25zVG9FbnRpdGllcyIsImlkUHJvcCIsImZpbmQiLCJmaXh0dXJlQ29tcGFuaW9ucyIsImV4aXN0aW5nSWRQcm9wIiwiZ2VuZXJhdGVCZXR0ZXJBdXRoRW50aXRpZXMiLCJvcHRpb25zIiwicGx1Z2lucyIsImN5YW4iLCJsZW5ndGgiLCJwbHVnaW5JZCIsInJlZCIsImVudGl0eURlZiIsIm1hZ2VudGEiLCJlbnRpdGllcyIsImFkZGl0aW9uYWxQcm9wcyIsImFkZGl0aW9uYWxJbmRleGVzIiwiYm9sZCJdLCJtYXBwaW5ncyI6IkFBQUEsT0FBT0EsV0FBVyxRQUFRO0FBQzFCLFNBQVNDLE1BQU0sUUFBUSxtQkFBZ0I7QUFDdkMsU0FBU0MsYUFBYSxRQUFRLDhCQUEyQjtBQUV6RCxTQUFTQyxZQUFZLFFBQVEsNEJBQXlCO0FBQ3RELFNBRUVDLGtCQUFrQixFQUNsQkMsZUFBZSxRQUNWLHdDQUErQjtBQUV0Qzs7Q0FFQyxHQUNE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
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"better-auth-entities.d.ts","sourceRoot":"","sources":["../../src/auth/better-auth-entities.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AACrD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAEjD;;;;;;;GAOG;AACH,eAAO,MAAM,YAAY,EAAE,UAAU,
|
|
1
|
+
{"version":3,"file":"better-auth-entities.d.ts","sourceRoot":"","sources":["../../src/auth/better-auth-entities.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AACrD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAEjD;;;;;;;GAOG;AACH,eAAO,MAAM,YAAY,EAAE,UAAU,EAkKpC,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,mBAAmB,EAAE,iBA2CjC,CAAC"}
|
|
@@ -17,7 +17,17 @@
|
|
|
17
17
|
type: "string",
|
|
18
18
|
desc: "ID",
|
|
19
19
|
cone: {
|
|
20
|
-
fixtureStrategy: "sequence"
|
|
20
|
+
fixtureStrategy: "sequence",
|
|
21
|
+
fixtureCompanions: [
|
|
22
|
+
{
|
|
23
|
+
entity: "Account",
|
|
24
|
+
overrides: {
|
|
25
|
+
provider_id: "credential",
|
|
26
|
+
account_id: "{{email}}",
|
|
27
|
+
password: "{{email}}"
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
]
|
|
21
31
|
}
|
|
22
32
|
},
|
|
23
33
|
{
|
|
@@ -417,4 +427,4 @@
|
|
|
417
427
|
}
|
|
418
428
|
};
|
|
419
429
|
|
|
420
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9hdXRoL2JldHRlci1hdXRoLWVudGl0aWVzLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgQmV0dGVyQXV0aE9wdGlvbnMgfSBmcm9tIFwiYmV0dGVyLWF1dGhcIjtcbmltcG9ydCB0eXBlIHsgRW50aXR5SnNvbiB9IGZyb20gXCIuLi90eXBlcy90eXBlc1wiO1xuXG4vKipcbiAqIGJldHRlci1hdXRoIHYxIOyXlO2LsO2LsCDsoJXsnZhcbiAqIGh0dHBzOi8vd3d3LmJldHRlci1hdXRoLmNvbS9cbiAqXG4gKiBTb25hbXUg6rec7LmZOlxuICogLSDthYzsnbTruJTrqoU6IOuzteyImO2YlSAodXNlcnMsIHNlc3Npb25zLCBhY2NvdW50cywgdmVyaWZpY2F0aW9ucylcbiAqIC0g7Lus65+866qFOiBzbmFrZV9jYXNlIChlbWFpbF92ZXJpZmllZCwgY3JlYXRlZF9hdCwgdXNlcl9pZCDrk7EpXG4gKi9cbmV4cG9ydCBjb25zdCBiZXR0ZXJBdXRoVjE6IEVudGl0eUpzb25bXSA9IFtcbiAgLy8gVXNlciDsl5Tti7Dti7BcbiAge1xuICAgIGlkOiBcIlVzZXJcIixcbiAgICB0YWJsZTogXCJ1c2Vyc1wiLFxuICAgIHRpdGxlOiBcIuyCrOyaqeyekFwiLFxuICAgIHByb3BzOiBbXG4gICAgICB7IG5hbWU6IFwiaWRcIiwgdHlwZTogXCJzdHJpbmdcIiwgZGVzYzogXCJJRFwiLCBjb25lOiB7IGZpeHR1cmVTdHJhdGVneTogXCJzZXF1ZW5jZVwiIH0gfSxcbiAgICAgIHsgbmFtZTogXCJuYW1lXCIsIHR5cGU6IFwic3RyaW5nXCIsIGRlc2M6IFwi7J2066aEXCIgfSxcbiAgICAgIHsgbmFtZTogXCJlbWFpbFwiLCB0eXBlOiBcInN0cmluZ1wiLCBkZXNjOiBcIuydtOuplOydvFwiIH0sXG4gICAgICB7IG5hbWU6IFwiZW1haWxfdmVyaWZpZWRcIiwgdHlwZTogXCJib29sZWFuXCIsIGRlc2M6IFwi7J2066mU7J28IOyduOymnSDsl6zrtoBcIiB9LFxuICAgICAgeyBuYW1lOiBcImltYWdlXCIsIHR5cGU6IFwic3RyaW5nXCIsIG51bGxhYmxlOiB0cnVlLCBkZXNjOiBcIu2UhOuhnO2VhCDsnbTrr7jsp4BcIiB9LFxuICAgICAgeyBuYW1lOiBcImNyZWF0ZWRfYXRcIiwgdHlwZTogXCJkYXRlXCIsIGRiRGVmYXVsdDogXCJDVVJSRU5UX1RJTUVTVEFNUFwiLCBkZXNjOiBcIuyDneyEseydvOyLnFwiIH0sXG4gICAgICB7IG5hbWU6IFwidXBkYXRlZF9hdFwiLCB0eXBlOiBcImRhdGVcIiwgZGJEZWZhdWx0OiBcIkNVUlJFTlRfVElNRVNUQU1QXCIsIGRlc2M6IFwi7IiY7KCV7J287IucXCIgfSxcbiAgICBdLFxuICAgIGluZGV4ZXM6IFt7IHR5cGU6IFwidW5pcXVlXCIsIG5hbWU6IFwidXNlcnNfZW1haWxfdW5pcXVlXCIsIGNvbHVtbnM6IFt7IG5hbWU6IFwiZW1haWxcIiB9XSB9XSxcbiAgICBzdWJzZXRzOiB7XG4gICAgICBBOiBbXCJpZFwiLCBcIm5hbWVcIiwgXCJlbWFpbFwiLCBcImVtYWlsX3ZlcmlmaWVkXCIsIFwiaW1hZ2VcIiwgXCJjcmVhdGVkX2F0XCIsIFwidXBkYXRlZF9hdFwiXSxcbiAgICB9LFxuICAgIGVudW1zOiB7IFVzZXJPcmRlckJ5OiB7IFwiaWQtZGVzY1wiOiBcIklE7LWc7Iug7IicXCIgfSwgVXNlclNlYXJjaEZpZWxkOiB7IGlkOiBcIklEXCIgfSB9LFxuICB9LFxuXG4gIC8vIFNlc3Npb24g7JeU7Yuw7YuwXG4gIHtcbiAgICBpZDogXCJTZXNzaW9uXCIsXG4gICAgdGFibGU6IFwic2Vzc2lvbnNcIixcbiAgICB0aXRsZTogXCLshLjshZhcIixcbiAgICBwcm9wczogW1xuICAgICAgeyBuYW1lOiBcImlkXCIsIHR5cGU6IFwic3RyaW5nXCIsIGRlc2M6IFwiSURcIiB9LFxuICAgICAgeyBuYW1lOiBcImV4cGlyZXNfYXRcIiwgdHlwZTogXCJkYXRlXCIsIGRlc2M6IFwi66eM66OM7J287IucXCIgfSxcbiAgICAgIHsgbmFtZTogXCJ0b2tlblwiLCB0eXBlOiBcInN0cmluZ1wiLCBkZXNjOiBcIu2GoO2BsFwiIH0sXG4gICAgICB7IG5hbWU6IFwiY3JlYXRlZF9hdFwiLCB0eXBlOiBcImRhdGVcIiwgZGJEZWZhdWx0OiBcIkNVUlJFTlRfVElNRVNUQU1QXCIsIGRlc2M6IFwi7IOd7ISx7J287IucXCIgfSxcbiAgICAgIHsgbmFtZTogXCJ1cGRhdGVkX2F0XCIsIHR5cGU6IFwiZGF0ZVwiLCBkZXNjOiBcIuyImOygleydvOyLnFwiIH0sXG4gICAgICB7IG5hbWU6IFwiaXBfYWRkcmVzc1wiLCB0eXBlOiBcInN0cmluZ1wiLCBudWxsYWJsZTogdHJ1ZSwgZGVzYzogXCJJUCDso7zshoxcIiB9LFxuICAgICAgeyBuYW1lOiBcInVzZXJfYWdlbnRcIiwgdHlwZTogXCJzdHJpbmdcIiwgbnVsbGFibGU6IHRydWUsIGRlc2M6IFwiVXNlciBBZ2VudFwiIH0sXG4gICAgICB7XG4gICAgICAgIHR5cGU6IFwicmVsYXRpb25cIixcbiAgICAgICAgbmFtZTogXCJ1c2VyXCIsXG4gICAgICAgIHdpdGg6IFwiVXNlclwiLFxuICAgICAgICByZWxhdGlvblR5cGU6IFwiQmVsb25nc1RvT25lXCIsXG4gICAgICAgIG9uRGVsZXRlOiBcIkNBU0NBREVcIixcbiAgICAgICAgZGVzYzogXCLsgqzsmqnsnpBcIixcbiAgICAgIH0sXG4gICAgXSxcbiAgICBpbmRleGVzOiBbXG4gICAgICB7IHR5cGU6IFwidW5pcXVlXCIsIG5hbWU6IFwic2Vzc2lvbnNfdG9rZW5fdW5pcXVlXCIsIGNvbHVtbnM6IFt7IG5hbWU6IFwidG9rZW5cIiB9XSB9LFxuICAgICAgeyB0eXBlOiBcImluZGV4XCIsIG5hbWU6IFwic2Vzc2lvbnNfdXNlcl9pZF9pZHhcIiwgY29sdW1uczogW3sgbmFtZTogXCJ1c2VyX2lkXCIgfV0gfSxcbiAgICBdLFxuICAgIHN1YnNldHM6IHtcbiAgICAgIEE6IFtcbiAgICAgICAgXCJpZFwiLFxuICAgICAgICBcImV4cGlyZXNfYXRcIixcbiAgICAgICAgXCJ0b2tlblwiLFxuICAgICAgICBcImNyZWF0ZWRfYXRcIixcbiAgICAgICAgXCJ1cGRhdGVkX2F0XCIsXG4gICAgICAgIFwiaXBfYWRkcmVzc1wiLFxuICAgICAgICBcInVzZXJfYWdlbnRcIixcbiAgICAgICAgXCJ1c2VyLmlkXCIsXG4gICAgICBdLFxuICAgIH0sXG4gICAgZW51bXM6IHsgU2Vzc2lvbk9yZGVyQnk6IHsgXCJpZC1kZXNjXCI6IFwiSUTstZzsi6DsiJxcIiB9LCBTZXNzaW9uU2VhcmNoRmllbGQ6IHsgaWQ6IFwiSURcIiB9IH0sXG4gIH0sXG5cbiAgLy8gQWNjb3VudCDsl5Tti7Dti7BcbiAge1xuICAgIGlkOiBcIkFjY291bnRcIixcbiAgICB0YWJsZTogXCJhY2NvdW50c1wiLFxuICAgIHRpdGxlOiBcIuqzhOyglVwiLFxuICAgIHByb3BzOiBbXG4gICAgICB7IG5hbWU6IFwiaWRcIiwgdHlwZTogXCJzdHJpbmdcIiwgZGVzYzogXCJJRFwiIH0sXG4gICAgICB7IG5hbWU6IFwiYWNjb3VudF9pZFwiLCB0eXBlOiBcInN0cmluZ1wiLCBkZXNjOiBcIuqzhOyglSBJRFwiIH0sXG4gICAgICB7IG5hbWU6IFwicHJvdmlkZXJfaWRcIiwgdHlwZTogXCJzdHJpbmdcIiwgZGVzYzogXCLsoJzqs7XsnpAgSURcIiB9LFxuICAgICAge1xuICAgICAgICB0eXBlOiBcInJlbGF0aW9uXCIsXG4gICAgICAgIG5hbWU6IFwidXNlclwiLFxuICAgICAgICB3aXRoOiBcIlVzZXJcIixcbiAgICAgICAgcmVsYXRpb25UeXBlOiBcIkJlbG9uZ3NUb09uZVwiLFxuICAgICAgICBvbkRlbGV0ZTogXCJDQVNDQURFXCIsXG4gICAgICAgIGRlc2M6IFwi7IKs7Jqp7J6QXCIsXG4gICAgICB9LFxuICAgICAgeyBuYW1lOiBcImFjY2Vzc190b2tlblwiLCB0eXBlOiBcInN0cmluZ1wiLCBudWxsYWJsZTogdHJ1ZSwgZGVzYzogXCLslaHshLjsiqQg7Yag7YGwXCIgfSxcbiAgICAgIHsgbmFtZTogXCJyZWZyZXNoX3Rva2VuXCIsIHR5cGU6IFwic3RyaW5nXCIsIG51bGxhYmxlOiB0cnVlLCBkZXNjOiBcIuumrO2UhOugiOyLnCDthqDtgbBcIiB9LFxuICAgICAgeyBuYW1lOiBcImlkX3Rva2VuXCIsIHR5cGU6IFwic3RyaW5nXCIsIG51bGxhYmxlOiB0cnVlLCBkZXNjOiBcIklEIO2GoO2BsFwiIH0sXG4gICAgICB7XG4gICAgICAgIG5hbWU6IFwiYWNjZXNzX3Rva2VuX2V4cGlyZXNfYXRcIixcbiAgICAgICAgdHlwZTogXCJkYXRlXCIsXG4gICAgICAgIG51bGxhYmxlOiB0cnVlLFxuICAgICAgICBkZXNjOiBcIuyVoeyEuOyKpCDthqDtgbAg66eM66OM7J287IucXCIsXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBuYW1lOiBcInJlZnJlc2hfdG9rZW5fZXhwaXJlc19hdFwiLFxuICAgICAgICB0eXBlOiBcImRhdGVcIixcbiAgICAgICAgbnVsbGFibGU6IHRydWUsXG4gICAgICAgIGRlc2M6IFwi66as7ZSE66CI7IucIO2GoO2BsCDrp4zro4zsnbzsi5xcIixcbiAgICAgIH0sXG4gICAgICB7IG5hbWU6IFwic2NvcGVcIiwgdHlwZTogXCJzdHJpbmdcIiwgbnVsbGFibGU6IHRydWUsIGRlc2M6IFwi7Iqk7L2U7ZSEXCIgfSxcbiAgICAgIHsgbmFtZTogXCJwYXNzd29yZFwiLCB0eXBlOiBcInN0cmluZ1wiLCBudWxsYWJsZTogdHJ1ZSwgZGVzYzogXCLruYTrsIDrsojtmLhcIiB9LFxuICAgICAgeyBuYW1lOiBcImNyZWF0ZWRfYXRcIiwgdHlwZTogXCJkYXRlXCIsIGRiRGVmYXVsdDogXCJDVVJSRU5UX1RJTUVTVEFNUFwiLCBkZXNjOiBcIuyDneyEseydvOyLnFwiIH0sXG4gICAgICB7IG5hbWU6IFwidXBkYXRlZF9hdFwiLCB0eXBlOiBcImRhdGVcIiwgZGVzYzogXCLsiJjsoJXsnbzsi5xcIiB9LFxuICAgIF0sXG4gICAgaW5kZXhlczogW3sgdHlwZTogXCJpbmRleFwiLCBuYW1lOiBcImFjY291bnRzX3VzZXJfaWRfaWR4XCIsIGNvbHVtbnM6IFt7IG5hbWU6IFwidXNlcl9pZFwiIH1dIH1dLFxuICAgIHN1YnNldHM6IHtcbiAgICAgIEE6IFtcbiAgICAgICAgXCJpZFwiLFxuICAgICAgICBcImFjY291bnRfaWRcIixcbiAgICAgICAgXCJwcm92aWRlcl9pZFwiLFxuICAgICAgICBcInVzZXIuaWRcIixcbiAgICAgICAgXCJhY2Nlc3NfdG9rZW5cIixcbiAgICAgICAgXCJyZWZyZXNoX3Rva2VuXCIsXG4gICAgICAgIFwiaWRfdG9rZW5cIixcbiAgICAgICAgXCJhY2Nlc3NfdG9rZW5fZXhwaXJlc19hdFwiLFxuICAgICAgICBcInJlZnJlc2hfdG9rZW5fZXhwaXJlc19hdFwiLFxuICAgICAgICBcInNjb3BlXCIsXG4gICAgICAgIFwicGFzc3dvcmRcIixcbiAgICAgICAgXCJjcmVhdGVkX2F0XCIsXG4gICAgICAgIFwidXBkYXRlZF9hdFwiLFxuICAgICAgXSxcbiAgICB9LFxuICAgIGVudW1zOiB7IEFjY291bnRPcmRlckJ5OiB7IFwiaWQtZGVzY1wiOiBcIklE7LWc7Iug7IicXCIgfSwgQWNjb3VudFNlYXJjaEZpZWxkOiB7IGlkOiBcIklEXCIgfSB9LFxuICB9LFxuXG4gIC8vIFZlcmlmaWNhdGlvbiDsl5Tti7Dti7BcbiAge1xuICAgIGlkOiBcIlZlcmlmaWNhdGlvblwiLFxuICAgIHRhYmxlOiBcInZlcmlmaWNhdGlvbnNcIixcbiAgICB0aXRsZTogXCLsnbjspp1cIixcbiAgICBwcm9wczogW1xuICAgICAgeyBuYW1lOiBcImlkXCIsIHR5cGU6IFwic3RyaW5nXCIsIGRlc2M6IFwiSURcIiB9LFxuICAgICAgeyBuYW1lOiBcImlkZW50aWZpZXJcIiwgdHlwZTogXCJzdHJpbmdcIiwgZGVzYzogXCLsi53rs4TsnpBcIiB9LFxuICAgICAgeyBuYW1lOiBcInZhbHVlXCIsIHR5cGU6IFwic3RyaW5nXCIsIGRlc2M6IFwi6rCSXCIgfSxcbiAgICAgIHsgbmFtZTogXCJleHBpcmVzX2F0XCIsIHR5cGU6IFwiZGF0ZVwiLCBkZXNjOiBcIuunjOujjOydvOyLnFwiIH0sXG4gICAgICB7IG5hbWU6IFwiY3JlYXRlZF9hdFwiLCB0eXBlOiBcImRhdGVcIiwgZGJEZWZhdWx0OiBcIkNVUlJFTlRfVElNRVNUQU1QXCIsIGRlc2M6IFwi7IOd7ISx7J287IucXCIgfSxcbiAgICAgIHsgbmFtZTogXCJ1cGRhdGVkX2F0XCIsIHR5cGU6IFwiZGF0ZVwiLCBkYkRlZmF1bHQ6IFwiQ1VSUkVOVF9USU1FU1RBTVBcIiwgZGVzYzogXCLsiJjsoJXsnbzsi5xcIiB9LFxuICAgIF0sXG4gICAgaW5kZXhlczogW1xuICAgICAgeyB0eXBlOiBcImluZGV4XCIsIG5hbWU6IFwidmVyaWZpY2F0aW9uc19pZGVudGlmaWVyX2lkeFwiLCBjb2x1bW5zOiBbeyBuYW1lOiBcImlkZW50aWZpZXJcIiB9XSB9LFxuICAgIF0sXG4gICAgc3Vic2V0czoge1xuICAgICAgQTogW1wiaWRcIiwgXCJpZGVudGlmaWVyXCIsIFwidmFsdWVcIiwgXCJleHBpcmVzX2F0XCIsIFwiY3JlYXRlZF9hdFwiLCBcInVwZGF0ZWRfYXRcIl0sXG4gICAgfSxcbiAgICBlbnVtczoge1xuICAgICAgVmVyaWZpY2F0aW9uT3JkZXJCeTogeyBcImlkLWRlc2NcIjogXCJJROy1nOyLoOyInFwiIH0sXG4gICAgICBWZXJpZmljYXRpb25TZWFyY2hGaWVsZDogeyBpZDogXCJJRFwiIH0sXG4gICAgfSxcbiAgfSxcbl07XG5cbi8qKlxuICogYmV0dGVyLWF1dGgg6riw67O4IO2VhOuTnCDrp6TtlZEgKGNhbWVsQ2FzZSDihpIgc25ha2VfY2FzZSlcbiAqIOq4sOuzuCA06rCcIOyXlO2LsO2LsChVc2VyLCBTZXNzaW9uLCBBY2NvdW50LCBWZXJpZmljYXRpb24p7J2YIO2VhOuTnCDrp6TtlZHsnoXri4jri6QuXG4gKi9cbmV4cG9ydCBjb25zdCBCQVNFX0ZJRUxEX01BUFBJTkdTOiBCZXR0ZXJBdXRoT3B0aW9ucyA9IHtcbiAgdXNlcjoge1xuICAgIG1vZGVsTmFtZTogXCJ1c2Vyc1wiLFxuICAgIGZpZWxkczoge1xuICAgICAgZW1haWxWZXJpZmllZDogXCJlbWFpbF92ZXJpZmllZFwiLFxuICAgICAgY3JlYXRlZEF0OiBcImNyZWF0ZWRfYXRcIixcbiAgICAgIHVwZGF0ZWRBdDogXCJ1cGRhdGVkX2F0XCIsXG4gICAgfSxcbiAgfSxcbiAgc2Vzc2lvbjoge1xuICAgIG1vZGVsTmFtZTogXCJzZXNzaW9uc1wiLFxuICAgIGZpZWxkczoge1xuICAgICAgZXhwaXJlc0F0OiBcImV4cGlyZXNfYXRcIixcbiAgICAgIGNyZWF0ZWRBdDogXCJjcmVhdGVkX2F0XCIsXG4gICAgICB1cGRhdGVkQXQ6IFwidXBkYXRlZF9hdFwiLFxuICAgICAgaXBBZGRyZXNzOiBcImlwX2FkZHJlc3NcIixcbiAgICAgIHVzZXJBZ2VudDogXCJ1c2VyX2FnZW50XCIsXG4gICAgICB1c2VySWQ6IFwidXNlcl9pZFwiLFxuICAgIH0sXG4gIH0sXG4gIGFjY291bnQ6IHtcbiAgICBtb2RlbE5hbWU6IFwiYWNjb3VudHNcIixcbiAgICBmaWVsZHM6IHtcbiAgICAgIGFjY291bnRJZDogXCJhY2NvdW50X2lkXCIsXG4gICAgICBwcm92aWRlcklkOiBcInByb3ZpZGVyX2lkXCIsXG4gICAgICB1c2VySWQ6IFwidXNlcl9pZFwiLFxuICAgICAgYWNjZXNzVG9rZW46IFwiYWNjZXNzX3Rva2VuXCIsXG4gICAgICByZWZyZXNoVG9rZW46IFwicmVmcmVzaF90b2tlblwiLFxuICAgICAgaWRUb2tlbjogXCJpZF90b2tlblwiLFxuICAgICAgYWNjZXNzVG9rZW5FeHBpcmVzQXQ6IFwiYWNjZXNzX3Rva2VuX2V4cGlyZXNfYXRcIixcbiAgICAgIHJlZnJlc2hUb2tlbkV4cGlyZXNBdDogXCJyZWZyZXNoX3Rva2VuX2V4cGlyZXNfYXRcIixcbiAgICAgIGNyZWF0ZWRBdDogXCJjcmVhdGVkX2F0XCIsXG4gICAgICB1cGRhdGVkQXQ6IFwidXBkYXRlZF9hdFwiLFxuICAgIH0sXG4gIH0sXG4gIHZlcmlmaWNhdGlvbjoge1xuICAgIG1vZGVsTmFtZTogXCJ2ZXJpZmljYXRpb25zXCIsXG4gICAgZmllbGRzOiB7XG4gICAgICBleHBpcmVzQXQ6IFwiZXhwaXJlc19hdFwiLFxuICAgICAgY3JlYXRlZEF0OiBcImNyZWF0ZWRfYXRcIixcbiAgICAgIHVwZGF0ZWRBdDogXCJ1cGRhdGVkX2F0XCIsXG4gICAgfSxcbiAgfSxcbn07XG4iXSwibmFtZXMiOlsiYmV0dGVyQXV0aFYxIiwiaWQiLCJ0YWJsZSIsInRpdGxlIiwicHJvcHMiLCJuYW1lIiwidHlwZSIsImRlc2MiLCJjb25lIiwiZml4dHVyZVN0cmF0ZWd5IiwibnVsbGFibGUiLCJkYkRlZmF1bHQiLCJpbmRleGVzIiwiY29sdW1ucyIsInN1YnNldHMiLCJBIiwiZW51bXMiLCJVc2VyT3JkZXJCeSIsIlVzZXJTZWFyY2hGaWVsZCIsIndpdGgiLCJyZWxhdGlvblR5cGUiLCJvbkRlbGV0ZSIsIlNlc3Npb25PcmRlckJ5IiwiU2Vzc2lvblNlYXJjaEZpZWxkIiwiQWNjb3VudE9yZGVyQnkiLCJBY2NvdW50U2VhcmNoRmllbGQiLCJWZXJpZmljYXRpb25PcmRlckJ5IiwiVmVyaWZpY2F0aW9uU2VhcmNoRmllbGQiLCJCQVNFX0ZJRUxEX01BUFBJTkdTIiwidXNlciIsIm1vZGVsTmFtZSIsImZpZWxkcyIsImVtYWlsVmVyaWZpZWQiLCJjcmVhdGVkQXQiLCJ1cGRhdGVkQXQiLCJzZXNzaW9uIiwiZXhwaXJlc0F0IiwiaXBBZGRyZXNzIiwidXNlckFnZW50IiwidXNlcklkIiwiYWNjb3VudCIsImFjY291bnRJZCIsInByb3ZpZGVySWQiLCJhY2Nlc3NUb2tlbiIsInJlZnJlc2hUb2tlbiIsImlkVG9rZW4iLCJhY2Nlc3NUb2tlbkV4cGlyZXNBdCIsInJlZnJlc2hUb2tlbkV4cGlyZXNBdCIsInZlcmlmaWNhdGlvbiJdLCJtYXBwaW5ncyI6IkFBR0E7Ozs7Ozs7Q0FPQyxHQUNELE9BQU8sTUFBTUEsZUFBNkI7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
|
|
430
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9hdXRoL2JldHRlci1hdXRoLWVudGl0aWVzLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgQmV0dGVyQXV0aE9wdGlvbnMgfSBmcm9tIFwiYmV0dGVyLWF1dGhcIjtcbmltcG9ydCB0eXBlIHsgRW50aXR5SnNvbiB9IGZyb20gXCIuLi90eXBlcy90eXBlc1wiO1xuXG4vKipcbiAqIGJldHRlci1hdXRoIHYxIOyXlO2LsO2LsCDsoJXsnZhcbiAqIGh0dHBzOi8vd3d3LmJldHRlci1hdXRoLmNvbS9cbiAqXG4gKiBTb25hbXUg6rec7LmZOlxuICogLSDthYzsnbTruJTrqoU6IOuzteyImO2YlSAodXNlcnMsIHNlc3Npb25zLCBhY2NvdW50cywgdmVyaWZpY2F0aW9ucylcbiAqIC0g7Lus65+866qFOiBzbmFrZV9jYXNlIChlbWFpbF92ZXJpZmllZCwgY3JlYXRlZF9hdCwgdXNlcl9pZCDrk7EpXG4gKi9cbmV4cG9ydCBjb25zdCBiZXR0ZXJBdXRoVjE6IEVudGl0eUpzb25bXSA9IFtcbiAgLy8gVXNlciDsl5Tti7Dti7BcbiAge1xuICAgIGlkOiBcIlVzZXJcIixcbiAgICB0YWJsZTogXCJ1c2Vyc1wiLFxuICAgIHRpdGxlOiBcIuyCrOyaqeyekFwiLFxuICAgIHByb3BzOiBbXG4gICAgICB7XG4gICAgICAgIG5hbWU6IFwiaWRcIixcbiAgICAgICAgdHlwZTogXCJzdHJpbmdcIixcbiAgICAgICAgZGVzYzogXCJJRFwiLFxuICAgICAgICBjb25lOiB7XG4gICAgICAgICAgZml4dHVyZVN0cmF0ZWd5OiBcInNlcXVlbmNlXCIsXG4gICAgICAgICAgZml4dHVyZUNvbXBhbmlvbnM6IFtcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgZW50aXR5OiBcIkFjY291bnRcIixcbiAgICAgICAgICAgICAgb3ZlcnJpZGVzOiB7XG4gICAgICAgICAgICAgICAgcHJvdmlkZXJfaWQ6IFwiY3JlZGVudGlhbFwiLFxuICAgICAgICAgICAgICAgIGFjY291bnRfaWQ6IFwie3tlbWFpbH19XCIsXG4gICAgICAgICAgICAgICAgcGFzc3dvcmQ6IFwie3tlbWFpbH19XCIsXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB9LFxuICAgICAgICAgIF0sXG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgICAgeyBuYW1lOiBcIm5hbWVcIiwgdHlwZTogXCJzdHJpbmdcIiwgZGVzYzogXCLsnbTrpoRcIiB9LFxuICAgICAgeyBuYW1lOiBcImVtYWlsXCIsIHR5cGU6IFwic3RyaW5nXCIsIGRlc2M6IFwi7J2066mU7J28XCIgfSxcbiAgICAgIHsgbmFtZTogXCJlbWFpbF92ZXJpZmllZFwiLCB0eXBlOiBcImJvb2xlYW5cIiwgZGVzYzogXCLsnbTrqZTsnbwg7J247KadIOyXrOu2gFwiIH0sXG4gICAgICB7IG5hbWU6IFwiaW1hZ2VcIiwgdHlwZTogXCJzdHJpbmdcIiwgbnVsbGFibGU6IHRydWUsIGRlc2M6IFwi7ZSE66Gc7ZWEIOydtOuvuOyngFwiIH0sXG4gICAgICB7IG5hbWU6IFwiY3JlYXRlZF9hdFwiLCB0eXBlOiBcImRhdGVcIiwgZGJEZWZhdWx0OiBcIkNVUlJFTlRfVElNRVNUQU1QXCIsIGRlc2M6IFwi7IOd7ISx7J287IucXCIgfSxcbiAgICAgIHsgbmFtZTogXCJ1cGRhdGVkX2F0XCIsIHR5cGU6IFwiZGF0ZVwiLCBkYkRlZmF1bHQ6IFwiQ1VSUkVOVF9USU1FU1RBTVBcIiwgZGVzYzogXCLsiJjsoJXsnbzsi5xcIiB9LFxuICAgIF0sXG4gICAgaW5kZXhlczogW3sgdHlwZTogXCJ1bmlxdWVcIiwgbmFtZTogXCJ1c2Vyc19lbWFpbF91bmlxdWVcIiwgY29sdW1uczogW3sgbmFtZTogXCJlbWFpbFwiIH1dIH1dLFxuICAgIHN1YnNldHM6IHtcbiAgICAgIEE6IFtcImlkXCIsIFwibmFtZVwiLCBcImVtYWlsXCIsIFwiZW1haWxfdmVyaWZpZWRcIiwgXCJpbWFnZVwiLCBcImNyZWF0ZWRfYXRcIiwgXCJ1cGRhdGVkX2F0XCJdLFxuICAgIH0sXG4gICAgZW51bXM6IHsgVXNlck9yZGVyQnk6IHsgXCJpZC1kZXNjXCI6IFwiSUTstZzsi6DsiJxcIiB9LCBVc2VyU2VhcmNoRmllbGQ6IHsgaWQ6IFwiSURcIiB9IH0sXG4gIH0sXG5cbiAgLy8gU2Vzc2lvbiDsl5Tti7Dti7BcbiAge1xuICAgIGlkOiBcIlNlc3Npb25cIixcbiAgICB0YWJsZTogXCJzZXNzaW9uc1wiLFxuICAgIHRpdGxlOiBcIuyEuOyFmFwiLFxuICAgIHByb3BzOiBbXG4gICAgICB7IG5hbWU6IFwiaWRcIiwgdHlwZTogXCJzdHJpbmdcIiwgZGVzYzogXCJJRFwiIH0sXG4gICAgICB7IG5hbWU6IFwiZXhwaXJlc19hdFwiLCB0eXBlOiBcImRhdGVcIiwgZGVzYzogXCLrp4zro4zsnbzsi5xcIiB9LFxuICAgICAgeyBuYW1lOiBcInRva2VuXCIsIHR5cGU6IFwic3RyaW5nXCIsIGRlc2M6IFwi7Yag7YGwXCIgfSxcbiAgICAgIHsgbmFtZTogXCJjcmVhdGVkX2F0XCIsIHR5cGU6IFwiZGF0ZVwiLCBkYkRlZmF1bHQ6IFwiQ1VSUkVOVF9USU1FU1RBTVBcIiwgZGVzYzogXCLsg53shLHsnbzsi5xcIiB9LFxuICAgICAgeyBuYW1lOiBcInVwZGF0ZWRfYXRcIiwgdHlwZTogXCJkYXRlXCIsIGRlc2M6IFwi7IiY7KCV7J287IucXCIgfSxcbiAgICAgIHsgbmFtZTogXCJpcF9hZGRyZXNzXCIsIHR5cGU6IFwic3RyaW5nXCIsIG51bGxhYmxlOiB0cnVlLCBkZXNjOiBcIklQIOyjvOyGjFwiIH0sXG4gICAgICB7IG5hbWU6IFwidXNlcl9hZ2VudFwiLCB0eXBlOiBcInN0cmluZ1wiLCBudWxsYWJsZTogdHJ1ZSwgZGVzYzogXCJVc2VyIEFnZW50XCIgfSxcbiAgICAgIHtcbiAgICAgICAgdHlwZTogXCJyZWxhdGlvblwiLFxuICAgICAgICBuYW1lOiBcInVzZXJcIixcbiAgICAgICAgd2l0aDogXCJVc2VyXCIsXG4gICAgICAgIHJlbGF0aW9uVHlwZTogXCJCZWxvbmdzVG9PbmVcIixcbiAgICAgICAgb25EZWxldGU6IFwiQ0FTQ0FERVwiLFxuICAgICAgICBkZXNjOiBcIuyCrOyaqeyekFwiLFxuICAgICAgfSxcbiAgICBdLFxuICAgIGluZGV4ZXM6IFtcbiAgICAgIHsgdHlwZTogXCJ1bmlxdWVcIiwgbmFtZTogXCJzZXNzaW9uc190b2tlbl91bmlxdWVcIiwgY29sdW1uczogW3sgbmFtZTogXCJ0b2tlblwiIH1dIH0sXG4gICAgICB7IHR5cGU6IFwiaW5kZXhcIiwgbmFtZTogXCJzZXNzaW9uc191c2VyX2lkX2lkeFwiLCBjb2x1bW5zOiBbeyBuYW1lOiBcInVzZXJfaWRcIiB9XSB9LFxuICAgIF0sXG4gICAgc3Vic2V0czoge1xuICAgICAgQTogW1xuICAgICAgICBcImlkXCIsXG4gICAgICAgIFwiZXhwaXJlc19hdFwiLFxuICAgICAgICBcInRva2VuXCIsXG4gICAgICAgIFwiY3JlYXRlZF9hdFwiLFxuICAgICAgICBcInVwZGF0ZWRfYXRcIixcbiAgICAgICAgXCJpcF9hZGRyZXNzXCIsXG4gICAgICAgIFwidXNlcl9hZ2VudFwiLFxuICAgICAgICBcInVzZXIuaWRcIixcbiAgICAgIF0sXG4gICAgfSxcbiAgICBlbnVtczogeyBTZXNzaW9uT3JkZXJCeTogeyBcImlkLWRlc2NcIjogXCJJROy1nOyLoOyInFwiIH0sIFNlc3Npb25TZWFyY2hGaWVsZDogeyBpZDogXCJJRFwiIH0gfSxcbiAgfSxcblxuICAvLyBBY2NvdW50IOyXlO2LsO2LsFxuICB7XG4gICAgaWQ6IFwiQWNjb3VudFwiLFxuICAgIHRhYmxlOiBcImFjY291bnRzXCIsXG4gICAgdGl0bGU6IFwi6rOE7KCVXCIsXG4gICAgcHJvcHM6IFtcbiAgICAgIHsgbmFtZTogXCJpZFwiLCB0eXBlOiBcInN0cmluZ1wiLCBkZXNjOiBcIklEXCIgfSxcbiAgICAgIHsgbmFtZTogXCJhY2NvdW50X2lkXCIsIHR5cGU6IFwic3RyaW5nXCIsIGRlc2M6IFwi6rOE7KCVIElEXCIgfSxcbiAgICAgIHsgbmFtZTogXCJwcm92aWRlcl9pZFwiLCB0eXBlOiBcInN0cmluZ1wiLCBkZXNjOiBcIuygnOqzteyekCBJRFwiIH0sXG4gICAgICB7XG4gICAgICAgIHR5cGU6IFwicmVsYXRpb25cIixcbiAgICAgICAgbmFtZTogXCJ1c2VyXCIsXG4gICAgICAgIHdpdGg6IFwiVXNlclwiLFxuICAgICAgICByZWxhdGlvblR5cGU6IFwiQmVsb25nc1RvT25lXCIsXG4gICAgICAgIG9uRGVsZXRlOiBcIkNBU0NBREVcIixcbiAgICAgICAgZGVzYzogXCLsgqzsmqnsnpBcIixcbiAgICAgIH0sXG4gICAgICB7IG5hbWU6IFwiYWNjZXNzX3Rva2VuXCIsIHR5cGU6IFwic3RyaW5nXCIsIG51bGxhYmxlOiB0cnVlLCBkZXNjOiBcIuyVoeyEuOyKpCDthqDtgbBcIiB9LFxuICAgICAgeyBuYW1lOiBcInJlZnJlc2hfdG9rZW5cIiwgdHlwZTogXCJzdHJpbmdcIiwgbnVsbGFibGU6IHRydWUsIGRlc2M6IFwi66as7ZSE66CI7IucIO2GoO2BsFwiIH0sXG4gICAgICB7IG5hbWU6IFwiaWRfdG9rZW5cIiwgdHlwZTogXCJzdHJpbmdcIiwgbnVsbGFibGU6IHRydWUsIGRlc2M6IFwiSUQg7Yag7YGwXCIgfSxcbiAgICAgIHtcbiAgICAgICAgbmFtZTogXCJhY2Nlc3NfdG9rZW5fZXhwaXJlc19hdFwiLFxuICAgICAgICB0eXBlOiBcImRhdGVcIixcbiAgICAgICAgbnVsbGFibGU6IHRydWUsXG4gICAgICAgIGRlc2M6IFwi7JWh7IS47IqkIO2GoO2BsCDrp4zro4zsnbzsi5xcIixcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIG5hbWU6IFwicmVmcmVzaF90b2tlbl9leHBpcmVzX2F0XCIsXG4gICAgICAgIHR5cGU6IFwiZGF0ZVwiLFxuICAgICAgICBudWxsYWJsZTogdHJ1ZSxcbiAgICAgICAgZGVzYzogXCLrpqztlITroIjsi5wg7Yag7YGwIOunjOujjOydvOyLnFwiLFxuICAgICAgfSxcbiAgICAgIHsgbmFtZTogXCJzY29wZVwiLCB0eXBlOiBcInN0cmluZ1wiLCBudWxsYWJsZTogdHJ1ZSwgZGVzYzogXCLsiqTsvZTtlIRcIiB9LFxuICAgICAgeyBuYW1lOiBcInBhc3N3b3JkXCIsIHR5cGU6IFwic3RyaW5nXCIsIG51bGxhYmxlOiB0cnVlLCBkZXNjOiBcIuu5hOuwgOuyiO2YuFwiIH0sXG4gICAgICB7IG5hbWU6IFwiY3JlYXRlZF9hdFwiLCB0eXBlOiBcImRhdGVcIiwgZGJEZWZhdWx0OiBcIkNVUlJFTlRfVElNRVNUQU1QXCIsIGRlc2M6IFwi7IOd7ISx7J287IucXCIgfSxcbiAgICAgIHsgbmFtZTogXCJ1cGRhdGVkX2F0XCIsIHR5cGU6IFwiZGF0ZVwiLCBkZXNjOiBcIuyImOygleydvOyLnFwiIH0sXG4gICAgXSxcbiAgICBpbmRleGVzOiBbeyB0eXBlOiBcImluZGV4XCIsIG5hbWU6IFwiYWNjb3VudHNfdXNlcl9pZF9pZHhcIiwgY29sdW1uczogW3sgbmFtZTogXCJ1c2VyX2lkXCIgfV0gfV0sXG4gICAgc3Vic2V0czoge1xuICAgICAgQTogW1xuICAgICAgICBcImlkXCIsXG4gICAgICAgIFwiYWNjb3VudF9pZFwiLFxuICAgICAgICBcInByb3ZpZGVyX2lkXCIsXG4gICAgICAgIFwidXNlci5pZFwiLFxuICAgICAgICBcImFjY2Vzc190b2tlblwiLFxuICAgICAgICBcInJlZnJlc2hfdG9rZW5cIixcbiAgICAgICAgXCJpZF90b2tlblwiLFxuICAgICAgICBcImFjY2Vzc190b2tlbl9leHBpcmVzX2F0XCIsXG4gICAgICAgIFwicmVmcmVzaF90b2tlbl9leHBpcmVzX2F0XCIsXG4gICAgICAgIFwic2NvcGVcIixcbiAgICAgICAgXCJwYXNzd29yZFwiLFxuICAgICAgICBcImNyZWF0ZWRfYXRcIixcbiAgICAgICAgXCJ1cGRhdGVkX2F0XCIsXG4gICAgICBdLFxuICAgIH0sXG4gICAgZW51bXM6IHsgQWNjb3VudE9yZGVyQnk6IHsgXCJpZC1kZXNjXCI6IFwiSUTstZzsi6DsiJxcIiB9LCBBY2NvdW50U2VhcmNoRmllbGQ6IHsgaWQ6IFwiSURcIiB9IH0sXG4gIH0sXG5cbiAgLy8gVmVyaWZpY2F0aW9uIOyXlO2LsO2LsFxuICB7XG4gICAgaWQ6IFwiVmVyaWZpY2F0aW9uXCIsXG4gICAgdGFibGU6IFwidmVyaWZpY2F0aW9uc1wiLFxuICAgIHRpdGxlOiBcIuyduOymnVwiLFxuICAgIHByb3BzOiBbXG4gICAgICB7IG5hbWU6IFwiaWRcIiwgdHlwZTogXCJzdHJpbmdcIiwgZGVzYzogXCJJRFwiIH0sXG4gICAgICB7IG5hbWU6IFwiaWRlbnRpZmllclwiLCB0eXBlOiBcInN0cmluZ1wiLCBkZXNjOiBcIuyLneuzhOyekFwiIH0sXG4gICAgICB7IG5hbWU6IFwidmFsdWVcIiwgdHlwZTogXCJzdHJpbmdcIiwgZGVzYzogXCLqsJJcIiB9LFxuICAgICAgeyBuYW1lOiBcImV4cGlyZXNfYXRcIiwgdHlwZTogXCJkYXRlXCIsIGRlc2M6IFwi66eM66OM7J287IucXCIgfSxcbiAgICAgIHsgbmFtZTogXCJjcmVhdGVkX2F0XCIsIHR5cGU6IFwiZGF0ZVwiLCBkYkRlZmF1bHQ6IFwiQ1VSUkVOVF9USU1FU1RBTVBcIiwgZGVzYzogXCLsg53shLHsnbzsi5xcIiB9LFxuICAgICAgeyBuYW1lOiBcInVwZGF0ZWRfYXRcIiwgdHlwZTogXCJkYXRlXCIsIGRiRGVmYXVsdDogXCJDVVJSRU5UX1RJTUVTVEFNUFwiLCBkZXNjOiBcIuyImOygleydvOyLnFwiIH0sXG4gICAgXSxcbiAgICBpbmRleGVzOiBbXG4gICAgICB7IHR5cGU6IFwiaW5kZXhcIiwgbmFtZTogXCJ2ZXJpZmljYXRpb25zX2lkZW50aWZpZXJfaWR4XCIsIGNvbHVtbnM6IFt7IG5hbWU6IFwiaWRlbnRpZmllclwiIH1dIH0sXG4gICAgXSxcbiAgICBzdWJzZXRzOiB7XG4gICAgICBBOiBbXCJpZFwiLCBcImlkZW50aWZpZXJcIiwgXCJ2YWx1ZVwiLCBcImV4cGlyZXNfYXRcIiwgXCJjcmVhdGVkX2F0XCIsIFwidXBkYXRlZF9hdFwiXSxcbiAgICB9LFxuICAgIGVudW1zOiB7XG4gICAgICBWZXJpZmljYXRpb25PcmRlckJ5OiB7IFwiaWQtZGVzY1wiOiBcIklE7LWc7Iug7IicXCIgfSxcbiAgICAgIFZlcmlmaWNhdGlvblNlYXJjaEZpZWxkOiB7IGlkOiBcIklEXCIgfSxcbiAgICB9LFxuICB9LFxuXTtcblxuLyoqXG4gKiBiZXR0ZXItYXV0aCDquLDrs7gg7ZWE65OcIOunpO2VkSAoY2FtZWxDYXNlIOKGkiBzbmFrZV9jYXNlKVxuICog6riw67O4IDTqsJwg7JeU7Yuw7YuwKFVzZXIsIFNlc3Npb24sIEFjY291bnQsIFZlcmlmaWNhdGlvbinsnZgg7ZWE65OcIOunpO2VkeyeheuLiOuLpC5cbiAqL1xuZXhwb3J0IGNvbnN0IEJBU0VfRklFTERfTUFQUElOR1M6IEJldHRlckF1dGhPcHRpb25zID0ge1xuICB1c2VyOiB7XG4gICAgbW9kZWxOYW1lOiBcInVzZXJzXCIsXG4gICAgZmllbGRzOiB7XG4gICAgICBlbWFpbFZlcmlmaWVkOiBcImVtYWlsX3ZlcmlmaWVkXCIsXG4gICAgICBjcmVhdGVkQXQ6IFwiY3JlYXRlZF9hdFwiLFxuICAgICAgdXBkYXRlZEF0OiBcInVwZGF0ZWRfYXRcIixcbiAgICB9LFxuICB9LFxuICBzZXNzaW9uOiB7XG4gICAgbW9kZWxOYW1lOiBcInNlc3Npb25zXCIsXG4gICAgZmllbGRzOiB7XG4gICAgICBleHBpcmVzQXQ6IFwiZXhwaXJlc19hdFwiLFxuICAgICAgY3JlYXRlZEF0OiBcImNyZWF0ZWRfYXRcIixcbiAgICAgIHVwZGF0ZWRBdDogXCJ1cGRhdGVkX2F0XCIsXG4gICAgICBpcEFkZHJlc3M6IFwiaXBfYWRkcmVzc1wiLFxuICAgICAgdXNlckFnZW50OiBcInVzZXJfYWdlbnRcIixcbiAgICAgIHVzZXJJZDogXCJ1c2VyX2lkXCIsXG4gICAgfSxcbiAgfSxcbiAgYWNjb3VudDoge1xuICAgIG1vZGVsTmFtZTogXCJhY2NvdW50c1wiLFxuICAgIGZpZWxkczoge1xuICAgICAgYWNjb3VudElkOiBcImFjY291bnRfaWRcIixcbiAgICAgIHByb3ZpZGVySWQ6IFwicHJvdmlkZXJfaWRcIixcbiAgICAgIHVzZXJJZDogXCJ1c2VyX2lkXCIsXG4gICAgICBhY2Nlc3NUb2tlbjogXCJhY2Nlc3NfdG9rZW5cIixcbiAgICAgIHJlZnJlc2hUb2tlbjogXCJyZWZyZXNoX3Rva2VuXCIsXG4gICAgICBpZFRva2VuOiBcImlkX3Rva2VuXCIsXG4gICAgICBhY2Nlc3NUb2tlbkV4cGlyZXNBdDogXCJhY2Nlc3NfdG9rZW5fZXhwaXJlc19hdFwiLFxuICAgICAgcmVmcmVzaFRva2VuRXhwaXJlc0F0OiBcInJlZnJlc2hfdG9rZW5fZXhwaXJlc19hdFwiLFxuICAgICAgY3JlYXRlZEF0OiBcImNyZWF0ZWRfYXRcIixcbiAgICAgIHVwZGF0ZWRBdDogXCJ1cGRhdGVkX2F0XCIsXG4gICAgfSxcbiAgfSxcbiAgdmVyaWZpY2F0aW9uOiB7XG4gICAgbW9kZWxOYW1lOiBcInZlcmlmaWNhdGlvbnNcIixcbiAgICBmaWVsZHM6IHtcbiAgICAgIGV4cGlyZXNBdDogXCJleHBpcmVzX2F0XCIsXG4gICAgICBjcmVhdGVkQXQ6IFwiY3JlYXRlZF9hdFwiLFxuICAgICAgdXBkYXRlZEF0OiBcInVwZGF0ZWRfYXRcIixcbiAgICB9LFxuICB9LFxufTtcbiJdLCJuYW1lcyI6WyJiZXR0ZXJBdXRoVjEiLCJpZCIsInRhYmxlIiwidGl0bGUiLCJwcm9wcyIsIm5hbWUiLCJ0eXBlIiwiZGVzYyIsImNvbmUiLCJmaXh0dXJlU3RyYXRlZ3kiLCJmaXh0dXJlQ29tcGFuaW9ucyIsImVudGl0eSIsIm92ZXJyaWRlcyIsInByb3ZpZGVyX2lkIiwiYWNjb3VudF9pZCIsInBhc3N3b3JkIiwibnVsbGFibGUiLCJkYkRlZmF1bHQiLCJpbmRleGVzIiwiY29sdW1ucyIsInN1YnNldHMiLCJBIiwiZW51bXMiLCJVc2VyT3JkZXJCeSIsIlVzZXJTZWFyY2hGaWVsZCIsIndpdGgiLCJyZWxhdGlvblR5cGUiLCJvbkRlbGV0ZSIsIlNlc3Npb25PcmRlckJ5IiwiU2Vzc2lvblNlYXJjaEZpZWxkIiwiQWNjb3VudE9yZGVyQnkiLCJBY2NvdW50U2VhcmNoRmllbGQiLCJWZXJpZmljYXRpb25PcmRlckJ5IiwiVmVyaWZpY2F0aW9uU2VhcmNoRmllbGQiLCJCQVNFX0ZJRUxEX01BUFBJTkdTIiwidXNlciIsIm1vZGVsTmFtZSIsImZpZWxkcyIsImVtYWlsVmVyaWZpZWQiLCJjcmVhdGVkQXQiLCJ1cGRhdGVkQXQiLCJzZXNzaW9uIiwiZXhwaXJlc0F0IiwiaXBBZGRyZXNzIiwidXNlckFnZW50IiwidXNlcklkIiwiYWNjb3VudCIsImFjY291bnRJZCIsInByb3ZpZGVySWQiLCJhY2Nlc3NUb2tlbiIsInJlZnJlc2hUb2tlbiIsImlkVG9rZW4iLCJhY2Nlc3NUb2tlbkV4cGlyZXNBdCIsInJlZnJlc2hUb2tlbkV4cGlyZXNBdCIsInZlcmlmaWNhdGlvbiJdLCJtYXBwaW5ncyI6IkFBR0E7Ozs7Ozs7Q0FPQyxHQUNELE9BQU8sTUFBTUEsZUFBNkI7SUFDeEMsV0FBVztJQUNYO1FBQ0VDLElBQUk7UUFDSkMsT0FBTztRQUNQQyxPQUFPO1FBQ1BDLE9BQU87WUFDTDtnQkFDRUMsTUFBTTtnQkFDTkMsTUFBTTtnQkFDTkMsTUFBTTtnQkFDTkMsTUFBTTtvQkFDSkMsaUJBQWlCO29CQUNqQkMsbUJBQW1CO3dCQUNqQjs0QkFDRUMsUUFBUTs0QkFDUkMsV0FBVztnQ0FDVEMsYUFBYTtnQ0FDYkMsWUFBWTtnQ0FDWkMsVUFBVTs0QkFDWjt3QkFDRjtxQkFDRDtnQkFDSDtZQUNGO1lBQ0E7Z0JBQUVWLE1BQU07Z0JBQVFDLE1BQU07Z0JBQVVDLE1BQU07WUFBSztZQUMzQztnQkFBRUYsTUFBTTtnQkFBU0MsTUFBTTtnQkFBVUMsTUFBTTtZQUFNO1lBQzdDO2dCQUFFRixNQUFNO2dCQUFrQkMsTUFBTTtnQkFBV0MsTUFBTTtZQUFZO1lBQzdEO2dCQUFFRixNQUFNO2dCQUFTQyxNQUFNO2dCQUFVVSxVQUFVO2dCQUFNVCxNQUFNO1lBQVU7WUFDakU7Z0JBQUVGLE1BQU07Z0JBQWNDLE1B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
|