bytefun-ai-mcp 1.14.26 → 1.14.28

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/build/index.js CHANGED
@@ -44,6 +44,20 @@ server.setRequestHandler(ListToolsRequestSchema, async () => {
44
44
  required: ['user_input']
45
45
  }
46
46
  },
47
+ {
48
+ name: 'optimize_ui_design_add_page_prompt',
49
+ description: 'Optimize prompt for UI design to add new page into module',
50
+ inputSchema: {
51
+ type: 'object',
52
+ properties: {
53
+ user_input: {
54
+ type: 'string',
55
+ description: 'User input prompt that triggers add-page UI design flow'
56
+ }
57
+ },
58
+ required: ['user_input']
59
+ }
60
+ },
47
61
  {
48
62
  name: 'ui_design_guide_prompt',
49
63
  description: 'Return comprehensive UI design guide prompt with strict execution rules',
@@ -306,6 +320,16 @@ server.setRequestHandler(CallToolRequestSchema, async (request) => {
306
320
  }
307
321
  ]
308
322
  };
323
+ case 'optimize_ui_design_add_page_prompt':
324
+ const optimizedUIAddPagePrompt = await promptOptimizer.optimizeUIDesignAddPagePrompt(args.user_input);
325
+ return {
326
+ content: [
327
+ {
328
+ type: 'text',
329
+ text: optimizedUIAddPagePrompt
330
+ }
331
+ ]
332
+ };
309
333
  case 'ui_design_guide_prompt':
310
334
  const uiDesignGuideText = await promptOptimizer.uiDesignGuidePrompt();
311
335
  return {
@@ -503,4 +527,4 @@ async function main() {
503
527
  console.error('ByteFun AI Prompt MCP server running on stdio');
504
528
  }
505
529
  main().catch(console.error);
506
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUVBLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSwyQ0FBMkMsQ0FBQztBQUNuRSxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSwyQ0FBMkMsQ0FBQztBQUNqRixPQUFPLEVBQ0wscUJBQXFCLEVBQ3JCLHNCQUFzQixHQUV2QixNQUFNLG9DQUFvQyxDQUFDO0FBQzVDLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUV4RCxNQUFNLE1BQU0sR0FBRyxJQUFJLE1BQU0sQ0FDdkI7SUFDRSxJQUFJLEVBQUUsbUJBQW1CO0lBQ3pCLE9BQU8sRUFBRSxPQUFPO0NBQ2pCLENBQ0YsQ0FBQztBQUVGLE1BQU0sZUFBZSxHQUFHLElBQUksZUFBZSxFQUFFLENBQUM7QUFJOUMsdUJBQXVCO0FBQ3ZCLE1BQU0sQ0FBQyxpQkFBaUIsQ0FBQyxzQkFBc0IsRUFBRSxLQUFLLElBQUksRUFBRTtJQUMxRCxPQUFPO1FBQ0wsS0FBSyxFQUFFO1lBQ0w7Z0JBQ0UsSUFBSSxFQUFFLGdDQUFnQztnQkFDdEMsV0FBVyxFQUFFLHVEQUF1RDtnQkFDcEUsV0FBVyxFQUFFO29CQUNYLElBQUksRUFBRSxRQUFRO29CQUNkLFVBQVUsRUFBRTt3QkFDVixRQUFRLEVBQUU7NEJBQ1IsSUFBSSxFQUFFLFFBQVE7NEJBQ2QsV0FBVyxFQUFFLGlEQUFpRDt5QkFDL0Q7d0JBQ0QsVUFBVSxFQUFFOzRCQUNWLElBQUksRUFBRSxRQUFROzRCQUNkLFdBQVcsRUFBRSxvRkFBb0Y7eUJBQ2xHO3FCQUNGO29CQUNELFFBQVEsRUFBRSxDQUFDLFVBQVUsRUFBRSxZQUFZLENBQUM7aUJBQ3JDO2FBQ0Y7WUFDRDtnQkFDRSxJQUFJLEVBQUUsMkJBQTJCO2dCQUNqQyxXQUFXLEVBQUUsbUZBQW1GO2dCQUNoRyxXQUFXLEVBQUU7b0JBQ1gsSUFBSSxF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LENBQUMsQ0FBQztBQUVILEtBQUssVUFBVSxJQUFJO0lBQ2pCLE1BQU0sU0FBUyxHQUFHLElBQUksb0JBQW9CLEVBQUUsQ0FBQztJQUM3QyxNQUFNLE1BQU0sQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLENBQUM7SUFDaEMsT0FBTyxDQUFDLEtBQUssQ0FBQywrQ0FBK0MsQ0FBQyxDQUFDO0FBQ2pFLENBQUM7QUFFRCxJQUFJLEVBQUUsQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiIyEvdXNyL2Jpbi9lbnYgbm9kZVxuXG5pbXBvcnQgeyBTZXJ2ZXIgfSBmcm9tICdAbW9kZWxjb250ZXh0cHJvdG9jb2wvc2RrL3NlcnZlci9pbmRleC5qcyc7XG5pbXBvcnQgeyBTdGRpb1NlcnZlclRyYW5zcG9ydCB9IGZyb20gJ0Btb2RlbGNvbnRleHRwcm90b2NvbC9zZGsvc2VydmVyL3N0ZGlvLmpzJztcbmltcG9ydCB7XG4gIENhbGxUb29sUmVxdWVzdFNjaGVtYSxcbiAgTGlzdFRvb2xzUmVxdWVzdFNjaGVtYSxcbiAgVG9vbCxcbn0gZnJvbSAnQG1vZGVsY29udGV4dHByb3RvY29sL3Nkay90eXBlcy5qcyc7XG5pbXBvcnQgeyBQcm9tcHRPcHRpbWl6ZXIgfSBmcm9tICcuL3Byb21wdC1vcHRpbWl6ZXIuanMnO1xuXG5jb25zdCBzZXJ2ZXIgPSBuZXcgU2VydmVyKFxuICB7XG4gICAgbmFtZTogJ2J5dGVmdW4tYWktcHJvbXB0JyxcbiAgICB2ZXJzaW9uOiAnMS4wLjAnLFxuICB9XG4pO1xuXG5jb25zdCBwcm9tcHRPcHRpbWl6ZXIgPSBuZXcgUHJvbXB0T3B0aW1pemVyKCk7XG5cblxuXG4vLyBMaXN0IGF2YWlsYWJsZSB0b29sc1xuc2VydmVyLnNldFJlcXVlc3RIYW5kbGVyKExpc3RUb29sc1JlcXVlc3RTY2hlbWEsIGFzeW5jICgpID0+IHtcbiAgcmV0dXJuIHtcbiAgICB0b29sczogW1xuICAgICAge1xuICAgICAgICBuYW1lOiAnb3B0aW1pemVfcHJvZHVjdF9kZXNpZ25fcHJvbXB0JyxcbiAgICAgICAgZGVzY3JpcHRpb246ICdPcHRpbWl6ZSBwcm9tcHQgZm9yIHByb2R1Y3QgYW5kIGJ1c2luZXNzIGxvZ2ljIGRlc2lnbicsXG4gICAgICAgIGlucHV0U2NoZW1hOiB7XG4gICAgICAgICAgdHlwZTogJ29iamVjdCcsXG4gICAgICAgICAgcHJvcGVydGllczoge1xuICAgICAgICAgICAgaW5kdXN0cnk6IHtcbiAgICAgICAgICAgICAgdHlwZTogJ3N0cmluZycsXG4gICAgICAgICAgICAgIGRlc2NyaXB0aW9uOiAnVGhlIGluZHVzdHJ5IHRoYXQgdGhlIEFQUCBvciB3ZWJzaXRlIGJlbG9uZ3MgdG8nXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgdXNlcl9pbnB1dDoge1xuICAgICAgICAgICAgICB0eXBlOiAnc3RyaW5nJyxcbiAgICAgICAgICAgICAgZGVzY3JpcHRpb246ICdVc2VyIGlucHV0IHByb21wdCB0aGF0IG5lZWRzIHRvIGJlIG9wdGltaXplZCBmb3IgcHJvZHVjdCBhbmQgYnVzaW5lc3MgbG9naWMgZGVzaWduJ1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH0sXG4gICAgICAgICAgcmVxdWlyZWQ6IFsnaW5kdXN0cnknLCAndXNlcl9pbnB1dCddXG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIG5hbWU6ICdvcHRpbWl6ZV91aV9kZXNpZ25fcHJvbXB0JyxcbiAgICAgICAgZGVzY3JpcHRpb246ICdPcHRpbWl6ZSBwcm9tcHQgZm9yIFVJIGRlc2lnbiBieSByZWFkaW5nIHBhZ2UgbGlzdCBhbmQgcmVxdWlyZW1lbnRzIGZyb20gZG9jIGZpbGUnLFxuICAgICAgICBpbnB1dFNjaGVtYToge1xuICAgICAgICAgIHR5cGU6ICdvYmplY3QnLFxuICAgICAgICAgIHByb3BlcnRpZXM6IHtcbiAgICAgICAgICAgIHVzZXJfaW5wdXQ6IHtcbiAgICAgICAgICAgICAgdHlwZTogJ3N0cmluZycsXG4gICAgICAgICAgICAgIGRlc2NyaXB0aW9uOiAnVXNlciBpbnB1dCBwcm9tcHQgdGhhdCBuZWVkcyB0byBiZSBvcHRpbWl6ZWQgZm9yIFVJIGRlc2lnbidcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9LFxuICAgICAgICAgIHJlcXVpcmVkOiBbJ3VzZXJfaW5wdXQnXVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBuYW1lOiAndWlfZGVzaWduX2d1aWRlX3Byb21wdCcsXG4gICAgICAgIGRlc2NyaXB0aW9uOiAnUmV0dXJuIGNvbXByZWhlbnNpdmUgVUkgZGVzaWduIGd1aWRlIHByb21wdCB3aXRoIHN0cmljdCBleGVjdXRpb24gcnVsZXMnLFxuICAgICAgICBpbnB1dFNjaGVtYToge1xuICAgICAgICAgIHR5cGU6ICdvYmplY3QnLFxuICAgICAgICAgIHByb3BlcnRpZXM6IHt9LFxuICAgICAgICAgIHJlcXVpcmVkOiBbXVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBuYW1lOiAndW5kZXJzdGFuZGluZ19jb2RlX2ZyYW1ld29ya19wcm9tcHQnLFxuICAgICAgICBkZXNjcmlwdGlvbjogJ1JldHVybiBwcm9tcHQgZm9yIHVuZGVyc3RhbmRpbmcgcHJvamVjdCBjb2RlIGZyYW1ld29yaycsXG4gICAgICAgIGlucHV0U2NoZW1hOiB7XG4gICAgICAgICAgdHlwZTogJ29iamVjdCcsXG4gICAgICAgICAgcHJvcGVydGllczoge30sXG4gICAgICAgICAgcmVxdWlyZWQ6IFtdXG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIG5hbWU6ICdvcHRpbWl6ZV9jb2RlX2Rlc2lnbl9wcm9tcHQnLFxuICAgICAgICBkZXNjcmlwdGlvbjogJ09wdGltaXplIHByb21wdCBmb3IgY29kZSBsb2dpYyBkZXNpZ24gdGhpbmtpbmcgYmVmb3JlIGRldmVsb3BtZW50LCBnZW5lcmF0aW5nIGRldGFpbGVkIGRlc2lnbiBkb2N1bWVudGF0aW9uJyxcbiAgICAgICAgaW5wdXRTY2hlbWE6IHtcbiAgICAgICAgICB0eXBlOiAnb2JqZWN0JyxcbiAgICAgICAgICBwcm9wZXJ0aWVzOiB7XG4gICAgICAgICAgICB1c2VyX2lucHV0OiB7XG4gICAgICAgICAgICAgIHR5cGU6ICdzdHJpbmcnLFxuICAgICAgICAgICAgICBkZXNjcmlwdGlvbjogJ1VzZXIgaW5wdXQgcHJvbXB0IHRoYXQgbmVlZHMgdG8gYmUgb3B0aW1pemVkIGZvciBjb2RlIGxvZ2ljIGRlc2lnbiB0aGlua2luZydcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9LFxuICAgICAgICAgIHJlcXVpcmVkOiBbJ3VzZXJfaW5wdXQnXVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBuYW1lOiAnaW1wbGVtZW50X2xvZ2ljX2NvZGVfcHJvbXB0JyxcbiAgICAgICAgZGVzY3JpcHRpb246ICdPcHRpbWl6ZSBwcm9tcHQgZm9yIFR5cGVTY3JpcHQgY29kZSBkZXZlbG9wbWVudCBieSBhZGRpbmcgY29kZSBkZXZlbG9wbWVudCBydWxlcyBhbmQgbWFya2luZyB1c2VyIGlucHV0JyxcbiAgICAgICAgaW5wdXRTY2hlbWE6IHtcbiAgICAgICAgICB0eXBlOiAnb2JqZWN0JyxcbiAgICAgICAgICBwcm9wZXJ0aWVzOiB7XG4gICAgICAgICAgICB1c2VyX2lucHV0OiB7XG4gICAgICAgICAgICAgIHR5cGU6ICdzdHJpbmcnLFxuICAgICAgICAgICAgICBkZXNjcmlwdGlvbjogJ1VzZXIgaW5wdXQgcHJvbXB0IHRoYXQgbmVlZHMgdG8gYmUgb3B0aW1pemVkIGZvciBjb2RlIGRldmVsb3BtZW50J1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH0sXG4gICAgICAgICAgcmVxdWlyZWQ6IFsndXNlcl9pbnB1dCddXG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICAvLyB7XG4gICAgICAvLyAgIG5hbWU6ICdvcHRpbWl6ZV9oYW5kX2RyYXduX3VpX2Rlc2lnbl9wcm9tcHQnLFxuICAgICAgLy8gICBkZXNjcmlwdGlvbjogJ0FuYWx5emUgaGFuZC1kcmF3biBVSSBkZXNpZ24gc2tldGNoZXMgYW5kIGV4dHJhY3QgZGV0YWlsZWQgaW5mb3JtYXRpb24gZm9yIFVJIGRlc2lnbicsXG4gICAgICAvLyAgIGlucHV0U2NoZW1hOiB7XG4gICAgICAvLyAgICAgdHlwZTogJ29iamVjdCcsXG4gICAgICAvLyAgICAgcHJvcGVydGllczoge1xuICAgICAgLy8gICAgICAgdXNlcl9pbnB1dDoge1xuICAgICAgLy8gICAgICAgICB0eXBlOiAnc3RyaW5nJyxcbiAgICAgIC8vICAgICAgICAgZGVzY3JpcHRpb246ICdVc2VyIGlucHV0IHdpdGggaGFuZC1kcmF3biBVSSBkZXNpZ24gc2tldGNoIHRoYXQgbmVlZHMgdG8gYmUgYW5hbHl6ZWQnXG4gICAgICAvLyAgICAgICB9XG4gICAgICAvLyAgICAgfSxcbiAgICAgIC8vICAgICByZXF1aXJlZDogWyd1c2VyX2lucHV0J11cbiAgICAgIC8vICAgfVxuICAgICAgLy8gfSxcbiAgICAgIC8vIHtcbiAgICAgIC8vICAgbmFtZTogJ29wdGltaXplX3VpX2Rlc2lnbl90aGlua2luZ19wcm9tcHQnLFxuICAgICAgLy8gICBkZXNjcmlwdGlvbjogJ09wdGltaXplIHByb21wdCBmb3IgVUkgZGVzaWduIHRoaW5raW5nIHByb2Nlc3MgYmVmb3JlIGFjdHVhbCBkZXNpZ24gd29yaywgZ2VuZXJhdGluZyBkZXRhaWxlZCBVSSBkZXNpZ24gdGhpbmtpbmcgZG9jdW1lbnRhdGlvbicsXG4gICAgICAvLyAgIGlucHV0U2NoZW1hOiB7XG4gICAgICAvLyAgICAgdHlwZTogJ29iamVjdCcsXG4gICAgICAvLyAgICAgcHJvcGVydGllczoge1xuICAgICAgLy8gICAgICAgdXNlcl9pbnB1dDoge1xuICAgICAgLy8gICAgICAgICB0eXBlOiAnc3RyaW5nJyxcbiAgICAgIC8vICAgICAgICAgZGVzY3JpcHRpb246ICdVc2VyIGlucHV0IHByb21wdCB0aGF0IG5lZWRzIHRvIGJlIG9wdGltaXplZCBmb3IgVUkgZGVzaWduIHRoaW5raW5nIHByb2Nlc3MnXG4gICAgICAvLyAgICAgICB9XG4gICAgICAvLyAgICAgfSxcbiAgICAgIC8vICAgICByZXF1aXJlZDogWyd1c2VyX2lucHV0J11cbiAgICAgIC8vICAgfVxuICAgICAgLy8gfSxcblxuICAgICAge1xuICAgICAgICBuYW1lOiAnb3B0aW1pemVfYmFja2VuZF9kZXNpZ25fcHJvbXB0JyxcbiAgICAgICAgZGVzY3JpcHRpb246ICdPcHRpbWl6ZSBwcm9tcHQgZm9yIGJhY2tlbmQgZGF0YWJhc2UgYW5kIEFQSSBpbnRlcmZhY2UgZGVzaWduIGJ5IHJlYWRpbmcgbW9kdWxlIGJ1c2luZXNzIGxvZ2ljIGRvY3VtZW50cycsXG4gICAgICAgIGlucHV0U2NoZW1hOiB7XG4gICAgICAgICAgdHlwZTogJ29iamVjdCcsXG4gICAgICAgICAgcHJvcGVydGllczoge1xuICAgICAgICAgICAgdXNlcl9pbnB1dDoge1xuICAgICAgICAgICAgICB0eXBlOiAnc3RyaW5nJyxcbiAgICAgICAgICAgICAgZGVzY3JpcHRpb246ICdVc2VyIGlucHV0IHByb21wdCB0aGF0IG5lZWRzIHRvIGJlIG9wdGltaXplZCBmb3IgYmFja2VuZCBkYXRhYmFzZSBhbmQgQVBJIGludGVyZmFjZSBkZXNpZ24nXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSxcbiAgICAgICAgICByZXF1aXJlZDogWyd1c2VyX2lucHV0J11cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIC8vIHtcbiAgICAgIC8vICAgbmFtZTogJ2Z1bmN0aW9uYWxfbW9kdWxlX2J1c2luZXNzX2xvZ2ljX3Byb21wdCcsXG4gICAgICAvLyAgIGRlc2NyaXB0aW9uOiAnT3B0aW1pemUgcHJvbXB0IGZvciBmdW5jdGlvbmFsIG1vZHVsZSBidXNpbmVzcyBsb2dpYyBhbmFseXNpcyBiYXNlZCBvbiBwcm9kdWN0IHJlcXVpcmVtZW50cyBkb2N1bWVudCcsXG4gICAgICAvLyAgIGlucHV0U2NoZW1hOiB7XG4gICAgICAvLyAgICAgdHlwZTogJ29iamVjdCcsXG4gICAgICAvLyAgICAgcHJvcGVydGllczoge1xuICAgICAgLy8gICAgICAgZnVuY3Rpb25hbE1vZHVsZToge1xuICAgICAgLy8gICAgICAgICB0eXBlOiAnc3RyaW5nJyxcbiAgICAgIC8vICAgICAgICAgZGVzY3JpcHRpb246ICdUaGUgZnVuY3Rpb25hbCBtb2R1bGUgY3VycmVudGx5IGJlaW5nIGRlc2lnbmVkJ1xuICAgICAgLy8gICAgICAgfSxcbiAgICAgIC8vICAgICAgIHVzZXJfaW5wdXQ6IHtcbiAgICAgIC8vICAgICAgICAgdHlwZTogJ3N0cmluZycsXG4gICAgICAvLyAgICAgICAgIGRlc2NyaXB0aW9uOiAnVXNlciBpbnB1dCBwcm9tcHQgdGhhdCBuZWVkcyB0byBiZSBvcHRpbWl6ZWQgZm9yIGZ1bmN0aW9uYWwgbW9kdWxlIGJ1c2luZXNzIGxvZ2ljIGFuYWx5c2lzJ1xuICAgICAgLy8gICAgICAgfVxuICAgICAgLy8gICAgIH0sXG4gICAgICAvLyAgICAgcmVxdWlyZWQ6IFsnZnVuY3Rpb25hbE1vZHVsZScsICd1c2VyX2lucHV0J11cbiAgICAgIC8vICAgfVxuICAgICAgLy8gfSxcblxuICAgICAgLy8ge1xuICAgICAgLy8gICBuYW1lOiAndGFsa190b19lZGl0b3InLFxuICAgICAgLy8gICBkZXNjcmlwdGlvbjogJ0VzdGFibGlzaCBsb25nIGNvbm5lY3Rpb24gd2l0aCBlZGl0b3IgYmFja2VuZCB1c2luZyBTb2NrZXQuSU8uIEJlZm9yZSBjYWxsaW5nIHRoaXMgdG9vbCwgeW91IG11c3QgZmlyc3QgdXNlIHJlYWRfZmlsZSB0byByZWFkIC5ieXRlZnVuL3Byb2plY3QuanNvbiBhbmQgZ2V0IHByb2plY3RJRCBhbmQgdWlkIHZhbHVlcy4gVGhpcyB0b29sIHdpbGwgd2FpdCBmb3IgYmFja2VuZCBtZXNzYWdlcyBhbmQgcmV0dXJuIHRhc2tzIHRvIGV4ZWN1dGUuJyxcbiAgICAgIC8vICAgaW5wdXRTY2hlbWE6IHtcbiAgICAgIC8vICAgICB0eXBlOiAnb2JqZWN0JyxcbiAgICAgIC8vICAgICBwcm9wZXJ0aWVzOiB7XG4gICAgICAvLyAgICAgICBwcm9qZWN0SUQ6IHtcbiAgICAgIC8vICAgICAgICAgdHlwZTogJ251bWJlcicsXG4gICAgICAvLyAgICAgICAgIGRlc2NyaXB0aW9uOiAnUHJvamVjdCBJRCBmcm9tIC5ieXRlZnVuL3Byb2plY3QuanNvbiBjb25maWd1cmF0aW9uIGZpbGUnXG4gICAgICAvLyAgICAgICB9LFxuICAgICAgLy8gICAgICAgdWlkOiB7XG4gICAgICAvLyAgICAgICAgIHR5cGU6ICdudW1iZXInLFxuICAgICAgLy8gICAgICAgICBkZXNjcmlwdGlvbjogJ1VzZXIgSUQgZnJvbSAuYnl0ZWZ1bi9wcm9qZWN0Lmpzb24gY29uZmlndXJhdGlvbiBmaWxlJ1xuICAgICAgLy8gICAgICAgfVxuICAgICAgLy8gICAgIH0sXG4gICAgICAvLyAgICAgcmVxdWlyZWQ6IFsncHJvamVjdElEJywgJ3VpZCddXG4gICAgICAvLyAgIH1cbiAgICAgIC8vIH0sXG4gICAgICAvLyB7XG4gICAgICAvLyAgIG5hbWU6ICd0YWxrX3RvX2VkaXRvcl9ydWxlcycsXG4gICAgICAvLyAgIGRlc2NyaXB0aW9uOiAnR2V0IEFJIGJlaGF2aW9yIHJ1bGVzIGZvciBpbnRlcmFjdGluZyB3aXRoIHRhbGtfdG9fZWRpdG9yIHRvb2wuIFJldHVybnMgZGV0YWlsZWQgaW5zdHJ1Y3Rpb25zIG9uIGhvdyBBSSBzaG91bGQgbWFpbnRhaW4gY29udGludW91cyBjb252ZXJzYXRpb24gYW5kIHdhaXQgZm9yIGJhY2tlbmQgY29udHJvbC4nLFxuICAgICAgLy8gICBpbnB1dFNjaGVtYToge1xuICAgICAgLy8gICAgIHR5cGU6ICdvYmplY3QnLFxuICAgICAgLy8gICAgIHByb3BlcnRpZXM6IHt9LFxuICAgICAgLy8gICAgIHJlcXVpcmVkOiBbXVxuICAgICAgLy8gICB9XG4gICAgICAvLyB9LFxuICAgICAge1xuICAgICAgICBuYW1lOiAnaW1wbGVtZW50X2JhY2tlbmRfY29kZV9wcm9tcHQnLFxuICAgICAgICBkZXNjcmlwdGlvbjogJ09wdGltaXplIHByb21wdCBmb3IgYmFja2VuZCBjb2RlIGRldmVsb3BtZW50IGJ5IHJlYWRpbmcgYmFja2VuZCBkZXNpZ24gZG9jdW1lbnRzIGFuZCBhcHBseWluZyBjb2Rpbmcgc3RhbmRhcmRzJyxcbiAgICAgICAgaW5wdXRTY2hlbWE6IHtcbiAgICAgICAgICB0eXBlOiAnb2JqZWN0JyxcbiAgICAgICAgICBwcm9wZXJ0aWVzOiB7XG4gICAgICAgICAgICB1c2VyX2lucHV0OiB7XG4gICAgICAgICAgICAgIHR5cGU6ICdzdHJpbmcnLFxuICAgICAgICAgICAgICBkZXNjcmlwdGlvbjogJ1VzZXIgaW5wdXQgcHJvbXB0IHRoYXQgbmVlZHMgdG8gYmUgb3B0aW1pemVkIGZvciBiYWNrZW5kIGNvZGUgZGV2ZWxvcG1lbnQnXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSxcbiAgICAgICAgICByZXF1aXJlZDogWyd1c2VyX2lucHV0J11cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgbmFtZTogJ29wdGltaXplX3VpX2Rlc2lnbl9lZGl0X3Byb21wdCcsXG4gICAgICAgIGRlc2NyaXB0aW9uOiAnT3B0aW1pemUgcHJvbXB0IGZvciBVSSBkZXNpZ24gbW9kaWZpY2F0aW9uIGFuZCBlZGl0aW5nIHRhc2tzLCByZXR1cm5pbmcgZGV0YWlsZWQgVUkgZGVzaWduIHNwZWNpZmljYXRpb25zJyxcbiAgICAgICAgaW5wdXRTY2hlbWE6IHtcbiAgICAgICAgICB0eXBlOiAnb2JqZWN0JyxcbiAgICAgICAgICBwcm9wZXJ0aWVzOiB7XG4gICAgICAgICAgICB1c2VyX2lucHV0OiB7XG4gICAgICAgICAgICAgIHR5cGU6ICdzdHJpbmcnLFxuICAgICAgICAgICAgICBkZXNjcmlwdGlvbjogJ1VzZXIgaW5wdXQgcHJvbXB0IHRoYXQgbmVlZHMgdG8gYmUgb3B0aW1pemVkIGZvciBVSSBkZXNpZ24gbW9kaWZpY2F0aW9uJ1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH0sXG4gICAgICAgICAgcmVxdWlyZWQ6IFsndXNlcl9pbnB1dCddXG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICAvLyB7XG4gICAgICAvLyAgIG5hbWU6ICdvcHRpbWl6ZV91aV9kZXNpZ25fcmVwbGVuaXNoX3Byb21wdCcsXG4gICAgICAvLyAgIGRlc2NyaXB0aW9uOiAnT3B0aW1pemUgcHJvbXB0IGZvciBVSSBkZXNpZ24gSFRNTCByZXBsZW5pc2htZW50IGFuZCBhdHRyaWJ1dGUgY29tcGxldGlvbicsXG4gICAgICAvLyAgIGlucHV0U2NoZW1hOiB7XG4gICAgICAvLyAgICAgdHlwZTogJ29iamVjdCcsXG4gICAgICAvLyAgICAgcHJvcGVydGllczoge1xuICAgICAgLy8gICAgICAgdXNlcl9pbnB1dDoge1xuICAgICAgLy8gICAgICAgICB0eXBlOiAnc3RyaW5nJyxcbiAgICAgIC8vICAgICAgICAgZGVzY3JpcHRpb246ICdVc2VyIGlucHV0IHByb21wdCB0aGF0IG5lZWRzIHRvIGJlIG9wdGltaXplZCBmb3IgVUkgZGVzaWduIEhUTUwgcmVwbGVuaXNobWVudCdcbiAgICAgIC8vICAgICAgIH1cbiAgICAgIC8vICAgICB9LFxuICAgICAgLy8gICAgIHJlcXVpcmVkOiBbJ3VzZXJfaW5wdXQnXVxuICAgICAgLy8gICB9XG4gICAgICAvLyB9LFxuICAgICAge1xuICAgICAgICBuYW1lOiAnb3B0aW1pemVfanVtcF9wYWdlX2NvZGVfcHJvbXB0JyxcbiAgICAgICAgZGVzY3JpcHRpb246ICdPcHRpbWl6ZSBwcm9tcHQgZm9yIHBhZ2UgbmF2aWdhdGlvbiBjb2RlIGRldmVsb3BtZW50IGJhc2VkIG9uIFVJIGRlc2lnbiBwcm9ncmVzcyBhbmQganVtcGluZyBydWxlcycsXG4gICAgICAgIGlucHV0U2NoZW1hOiB7XG4gICAgICAgICAgdHlwZTogJ29iamVjdCcsXG4gICAgICAgICAgcHJvcGVydGllczoge1xuICAgICAgICAgICAgdXNlcl9pbnB1dDoge1xuICAgICAgICAgICAgICB0eXBlOiAnc3RyaW5nJyxcbiAgICAgICAgICAgICAgZGVzY3JpcHRpb246ICdVc2VyIGlucHV0IHByb21wdCB0aGF0IG5lZWRzIHRvIGJlIG9wdGltaXplZCBmb3IgcGFnZSBuYXZpZ2F0aW9uIGNvZGUgZGV2ZWxvcG1lbnQnXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSxcbiAgICAgICAgICByZXF1aXJlZDogWyd1c2VyX2lucHV0J11cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIC8vIHtcbiAgICAgIC8vICAgbmFtZTogJ29wdGltaXplX2RlY2xhcmF0aXZlX3VpX3Byb21wdCcsXG4gICAgICAvLyAgIGRlc2NyaXB0aW9uOiAnT3B0aW1pemUgcHJvbXB0IGZvciBkZWNsYXJhdGl2ZSBVSSBkZXNpZ24gdXNpbmcgSlNPTiBmb3JtYXQgdG8gZGVzY3JpYmUgVUkgY29tcG9uZW50cyBhbmQgaW50ZXJmYWNlcycsXG4gICAgICAvLyAgIGlucHV0U2NoZW1hOiB7XG4gICAgICAvLyAgICAgdHlwZTogJ29iamVjdCcsXG4gICAgICAvLyAgICAgcHJvcGVydGllczoge1xuICAgICAgLy8gICAgICAgdXNlcl9pbnB1dDoge1xuICAgICAgLy8gICAgICAgICB0eXBlOiAnc3RyaW5nJyxcbiAgICAgIC8vICAgICAgICAgZGVzY3JpcHRpb246ICdVc2VyIGlucHV0IHByb21wdCB0aGF0IG5lZWRzIHRvIGJlIG9wdGltaXplZCBmb3IgZGVjbGFyYXRpdmUgVUkgZGVzaWduJ1xuICAgICAgLy8gICAgICAgfVxuICAgICAgLy8gICAgIH0sXG4gICAgICAvLyAgICAgcmVxdWlyZWQ6IFsndXNlcl9pbnB1dCddXG4gICAgICAvLyAgIH1cbiAgICAgIC8vIH0sXG4gICAgICB7XG4gICAgICAgIG5hbWU6ICdvcHRpbWl6ZV91aV9zcGVjX2Rlc2lnbl9wcm9tcHQnLFxuICAgICAgICBkZXNjcmlwdGlvbjogJ09wdGltaXplIHByb21wdCBmb3IgVUkgc3BlY2lmaWNhdGlvbiBkZXNpZ24gYmFzZWQgb24gcHJvZHVjdCByZXF1aXJlbWVudHMgZG9jdW1lbnQgdG8gY29tcGxldGUgVUkgZGVzaWduIHN0YW5kYXJkcycsXG4gICAgICAgIGlucHV0U2NoZW1hOiB7XG4gICAgICAgICAgdHlwZTogJ29iamVjdCcsXG4gICAgICAgICAgcHJvcGVydGllczoge1xuICAgICAgICAgICAgdXNlcl9pbnB1dDoge1xuICAgICAgICAgICAgICB0eXBlOiAnc3RyaW5nJyxcbiAgICAgICAgICAgICAgZGVzY3JpcHRpb246ICdVc2VyIGlucHV0IHByb21wdCB0aGF0IG5lZWRzIHRvIGJlIG9wdGltaXplZCBmb3IgVUkgc3BlY2lmaWNhdGlvbiBkZXNpZ24nXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSxcbiAgICAgICAgICByZXF1aXJlZDogWyd1c2VyX2lucHV0J11cbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgLy8ge1xuICAgICAgLy8gICBuYW1lOiAnaW1wbGVtZW50X3VpX2NvZGVfcHJvbXB0JyxcbiAgICAgIC8vICAgZGVzY3JpcHRpb246ICdSZXR1cm4gcHJvbXB0IGZvciBpbXBsZW1lbnRpbmcgVUkgY29kZSB3aXRoIHN0cmljdCBleGVjdXRpb24gc3RlcHMnLFxuICAgICAgLy8gICBpbnB1dFNjaGVtYToge1xuICAgICAgLy8gICAgIHR5cGU6ICdvYmplY3QnLFxuICAgICAgLy8gICAgIHByb3BlcnRpZXM6IHtcbiAgICAgIC8vICAgICAgIHVzZXJfaW5wdXQ6IHtcbiAgICAgIC8vICAgICAgICAgdHlwZTogJ3N0cmluZycsXG4gICAgICAvLyAgICAgICAgIGRlc2NyaXB0aW9uOiAnVXNlciBpbnB1dCBkZXNjcmliaW5nIFVJIGNvZGUgaW1wbGVtZW50YXRpb24gcmVxdWlyZW1lbnRzJ1xuICAgICAgLy8gICAgICAgfVxuICAgICAgLy8gICAgIH0sXG4gICAgICAvLyAgICAgcmVxdWlyZWQ6IFsndXNlcl9pbnB1dCddXG4gICAgICAvLyAgIH1cbiAgICAgIC8vIH1cbiAgICBdIGFzIFRvb2xbXVxuICB9O1xufSk7XG5cbi8vIEhhbmRsZSB0b29sIGNhbGxzXG5zZXJ2ZXIuc2V0UmVxdWVzdEhhbmRsZXIoQ2FsbFRvb2xSZXF1ZXN0U2NoZW1hLCBhc3luYyAocmVxdWVzdCkgPT4ge1xuICBjb25zdCB7IG5hbWUsIGFyZ3VtZW50czogYXJncyB9ID0gcmVxdWVzdC5wYXJhbXM7XG5cbiAgaWYgKCFhcmdzKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdNaXNzaW5nIGFyZ3VtZW50cycpO1xuICB9XG5cbiAgdHJ5IHtcbiAgICBzd2l0Y2ggKG5hbWUpIHtcbiAgICAgIGNhc2UgJ29wdGltaXplX3Byb2R1Y3RfZGVzaWduX3Byb21wdCc6XG4gICAgICAgIGNvbnN0IG9wdGltaXplZFByb2R1Y3REZXNpZ25Qcm9tcHQgPSBhd2FpdCBwcm9tcHRPcHRpbWl6ZXIub3B0aW1pemVQcm9kdWN0RGVzaWduUHJvbXB0KGFyZ3MuaW5kdXN0cnkgYXMgc3RyaW5nLCBhcmdzLnVzZXJfaW5wdXQgYXMgc3RyaW5nKTtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICBjb250ZW50OiBbXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgIHR5cGU6ICd0ZXh0JyxcbiAgICAgICAgICAgICAgdGV4dDogb3B0aW1pemVkUHJvZHVjdERlc2lnblByb21wdFxuICAgICAgICAgICAgfVxuICAgICAgICAgIF1cbiAgICAgICAgfTtcblxuICAgICAgY2FzZSAnb3B0aW1pemVfdWlfZGVzaWduX3Byb21wdCc6XG4gICAgICAgIGNvbnN0IG9wdGltaXplZFVJUHJvbXB0ID0gYXdhaXQgcHJvbXB0T3B0aW1pemVyLm9wdGltaXplVUlEZXNpZ25Qcm9tcHQoYXJncy51c2VyX2lucHV0IGFzIHN0cmluZyk7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgY29udGVudDogW1xuICAgICAgICAgICAge1xuICAgICAgICAgICAgICB0eXBlOiAndGV4dCcsXG4gICAgICAgICAgICAgIHRleHQ6IG9wdGltaXplZFVJUHJvbXB0XG4gICAgICAgICAgICB9XG4gICAgICAgICAgXVxuICAgICAgICB9O1xuXG4gICAgICBjYXNlICd1aV9kZXNpZ25fZ3VpZGVfcHJvbXB0JzpcbiAgICAgICAgY29uc3QgdWlEZXNpZ25HdWlkZVRleHQgPSBhd2FpdCBwcm9tcHRPcHRpbWl6ZXIudWlEZXNpZ25HdWlkZVByb21wdCgpO1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgIGNvbnRlbnQ6IFtcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgdHlwZTogJ3RleHQnLFxuICAgICAgICAgICAgICB0ZXh0OiB1aURlc2lnbkd1aWRlVGV4dFxuICAgICAgICAgICAgfVxuICAgICAgICAgIF1cbiAgICAgICAgfTtcblxuICAgICAgY2FzZSAndW5kZXJzdGFuZGluZ19jb2RlX2ZyYW1ld29ya19wcm9tcHQnOlxuICAgICAgICBjb25zdCBhcHBDb2RlRnJhbWV3b3JrVGV4dCA9IGF3YWl0IHByb21wdE9wdGltaXplci51bmRlcnN0YW5kaW5nQXBwQ29kZUZyYW1ld29ya1Byb21wdCgpO1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgIGNvbnRlbnQ6IFtcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgdHlwZTogJ3RleHQnLFxuICAgICAgICAgICAgICB0ZXh0OiBhcHBDb2RlRnJhbWV3b3JrVGV4dFxuICAgICAgICAgICAgfVxuICAgICAgICAgIF1cbiAgICAgICAgfTtcblxuICAgICAgY2FzZSAnb3B0aW1pemVfY29kZV9kZXNpZ25fcHJvbXB0JzpcbiAgICAgICAgY29uc3Qgb3B0aW1pemVkQ29kZURlc2lnblByb21wdCA9IGF3YWl0IHByb21wdE9wdGltaXplci5vcHRpbWl6ZUNvZGVEZXNpZ25Qcm9tcHQoYXJncy51c2VyX2lucHV0IGFzIHN0cmluZyk7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgY29udGVudDogW1xuICAgICAgICAgICAge1xuICAgICAgICAgICAgICB0eXBlOiAndGV4dCcsXG4gICAgICAgICAgICAgIHRleHQ6IG9wdGltaXplZENvZGVEZXNpZ25Qcm9tcHRcbiAgICAgICAgICAgIH1cbiAgICAgICAgICBdXG4gICAgICAgIH07XG5cbiAgICAgIGNhc2UgJ2ltcGxlbWVudF9sb2dpY19jb2RlX3Byb21wdCc6XG4gICAgICAgIGNvbnN0IG9wdGltaXplZENvZGVQcm9tcHQgPSBhd2FpdCBwcm9tcHRPcHRpbWl6ZXIub3B0aW1pemVDb2RlUHJvbXB0KGFyZ3MudXNlcl9pbnB1dCBhcyBzdHJpbmcpO1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgIGNvbnRlbnQ6IFtcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgdHlwZTogJ3RleHQnLFxuICAgICAgICAgICAgICB0ZXh0OiBvcHRpbWl6ZWRDb2RlUHJvbXB0XG4gICAgICAgICAgICB9XG4gICAgICAgICAgXVxuICAgICAgICB9O1xuXG4gICAgICAvLyBjYXNlICdvcHRpbWl6ZV9oYW5kX2RyYXduX3VpX2Rlc2lnbl9wcm9tcHQnOlxuICAgICAgLy8gICBjb25zdCBvcHRpbWl6ZWRIYW5kRHJhd25Qcm9tcHQgPSBhd2FpdCBwcm9tcHRPcHRpbWl6ZXIub3B0aW1pemVIYW5kRHJhd25VSURlc2lnblByb21wdChhcmdzLnVzZXJfaW5wdXQgYXMgc3RyaW5nKTtcbiAgICAgIC8vICAgcmV0dXJuIHtcbiAgICAgIC8vICAgICBjb250ZW50OiBbXG4gICAgICAvLyAgICAgICB7XG4gICAgICAvLyAgICAgICAgIHR5cGU6ICd0ZXh0JyxcbiAgICAgIC8vICAgICAgICAgdGV4dDogb3B0aW1pemVkSGFuZERyYXduUHJvbXB0XG4gICAgICAvLyAgICAgICB9XG4gICAgICAvLyAgICAgXVxuICAgICAgLy8gICB9O1xuXG4gICAgICAvLyBjYXNlICdvcHRpbWl6ZV91aV9kZXNpZ25fdGhpbmtpbmdfcHJvbXB0JzpcbiAgICAgIC8vICAgY29uc3Qgb3B0aW1pemVkVUlEZXNpZ25UaGlua2luZ1Byb21wdCA9IGF3YWl0IHByb21wdE9wdGltaXplci5vcHRpbWl6ZVVJRGVzaWduVGhpbmtpbmdQcm9tcHQoYXJncy51c2VyX2lucHV0IGFzIHN0cmluZyk7XG4gICAgICAvLyAgIHJldHVybiB7XG4gICAgICAvLyAgICAgY29udGVudDogW1xuICAgICAgLy8gICAgICAge1xuICAgICAgLy8gICAgICAgICB0eXBlOiAndGV4dCcsXG4gICAgICAvLyAgICAgICAgIHRleHQ6IG9wdGltaXplZFVJRGVzaWduVGhpbmtpbmdQcm9tcHRcbiAgICAgIC8vICAgICAgIH1cbiAgICAgIC8vICAgICBdXG4gICAgICAvLyAgIH07XG5cbiAgICAgIGNhc2UgJ29wdGltaXplX2JhY2tlbmRfZGVzaWduX3Byb21wdCc6XG4gICAgICAgIGNvbnN0IG9wdGltaXplZEJhY2tlbmREZXNpZ25Qcm9tcHQgPSBhd2FpdCBwcm9tcHRPcHRpbWl6ZXIub3B0aW1pemVCYWNrZW5kRGVzaWduUHJvbXB0KGFyZ3MudXNlcl9pbnB1dCBhcyBzdHJpbmcpO1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgIGNvbnRlbnQ6IFtcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgdHlwZTogJ3RleHQnLFxuICAgICAgICAgICAgICB0ZXh0OiBvcHRpbWl6ZWRCYWNrZW5kRGVzaWduUHJvbXB0XG4gICAgICAgICAgICB9XG4gICAgICAgICAgXVxuICAgICAgICB9O1xuXG4gICAgICBjYXNlICdmdW5jdGlvbmFsX21vZHVsZV9idXNpbmVzc19sb2dpY19wcm9tcHQnOlxuICAgICAgICBjb25zdCBvcHRpbWl6ZWRGdW5jdGlvbmFsTW9kdWxlUHJvbXB0ID0gYXdhaXQgcHJvbXB0T3B0aW1pemVyLm9wdGltaXplRnVuY3Rpb25hbE1vZHVsZVByb21wdChhcmdzLmZ1bmN0aW9uYWxNb2R1bGUgYXMgc3RyaW5nLCBhcmdzLnVzZXJfaW5wdXQgYXMgc3RyaW5nKTtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICBjb250ZW50OiBbXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgIHR5cGU6ICd0ZXh0JyxcbiAgICAgICAgICAgICAgdGV4dDogb3B0aW1pemVkRnVuY3Rpb25hbE1vZHVsZVByb21wdFxuICAgICAgICAgICAgfVxuICAgICAgICAgIF1cbiAgICAgICAgfTtcblxuXG4gICAgICAvLyBjYXNlICd0YWxrX3RvX2VkaXRvcic6XG4gICAgICAvLyAgIGNvbnN0IHByb2plY3RJRCA9IGFyZ3MucHJvamVjdElEIGFzIG51bWJlciB8fCAwO1xuICAgICAgLy8gICBjb25zdCB1aWQgPSBhcmdzLnVpZCBhcyBudW1iZXIgfHwgMDtcbiAgICAgICAgXG4gICAgICAvLyAgIGNvbnN0IHRhbGtSZXN1bHQgPSBhd2FpdCBwcm9tcHRPcHRpbWl6ZXIudGFsa1RvRWRpdG9yKHtcbiAgICAgIC8vICAgICBwcm9qZWN0SUQsXG4gICAgICAvLyAgICAgdWlkXG4gICAgICAvLyAgIH0pO1xuICAgICAgLy8gICByZXR1cm4ge1xuICAgICAgLy8gICAgIGNvbnRlbnQ6IFtcbiAgICAgIC8vICAgICAgIHtcbiAgICAgIC8vICAgICAgICAgdHlwZTogJ3RleHQnLFxuICAgICAgLy8gICAgICAgICB0ZXh0OiB0YWxrUmVzdWx0XG4gICAgICAvLyAgICAgICB9XG4gICAgICAvLyAgICAgXVxuICAgICAgLy8gICB9O1xuXG4gICAgICAvLyBjYXNlICd0YWxrX3RvX2VkaXRvcl9ydWxlcyc6XG4gICAgICAvLyAgIGNvbnN0IHJ1bGVzUmVzdWx0ID0gYXdhaXQgcHJvbXB0T3B0aW1pemVyLnRhbGtUb0VkaXRvclJ1bGVzKCk7XG4gICAgICAvLyAgIHJldHVybiB7XG4gICAgICAvLyAgICAgY29udGVudDogW1xuICAgICAgLy8gICAgICAge1xuICAgICAgLy8gICAgICAgICB0eXBlOiAndGV4dCcsXG4gICAgICAvLyAgICAgICAgIHRleHQ6IHJ1bGVzUmVzdWx0XG4gICAgICAvLyAgICAgICB9XG4gICAgICAvLyAgICAgXVxuICAgICAgLy8gICB9O1xuXG4gICAgICBjYXNlICdpbXBsZW1lbnRfYmFja2VuZF9jb2RlX3Byb21wdCc6XG4gICAgICAgIGNvbnN0IG9wdGltaXplZEJhY2tlbmRDb2RlUHJvbXB0ID0gYXdhaXQgcHJvbXB0T3B0aW1pemVyLm9wdGltaXplQmFja2VuZENvZGVQcm9tcHQoYXJncy51c2VyX2lucHV0IGFzIHN0cmluZyk7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgY29udGVudDogW1xuICAgICAgICAgICAge1xuICAgICAgICAgICAgICB0eXBlOiAndGV4dCcsXG4gICAgICAgICAgICAgIHRleHQ6IG9wdGltaXplZEJhY2tlbmRDb2RlUHJvbXB0XG4gICAgICAgICAgICB9XG4gICAgICAgICAgXVxuICAgICAgICB9O1xuXG4gICAgICBjYXNlICdvcHRpbWl6ZV91aV9kZXNpZ25fZWRpdF9wcm9tcHQnOlxuICAgICAgICBjb25zdCBvcHRpbWl6ZWRVSURlc2lnbkVkaXRQcm9tcHQgPSBhd2FpdCBwcm9tcHRPcHRpbWl6ZXIub3B0aW1pemVVSURlc2lnbkVkaXRQcm9tcHQoYXJncy51c2VyX2lucHV0IGFzIHN0cmluZyk7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgY29udGVudDogW1xuICAgICAgICAgICAge1xuICAgICAgICAgICAgICB0eXBlOiAndGV4dCcsXG4gICAgICAgICAgICAgIHRleHQ6IG9wdGltaXplZFVJRGVzaWduRWRpdFByb21wdFxuICAgICAgICAgICAgfVxuICAgICAgICAgIF1cbiAgICAgICAgfTtcblxuICAgICAgY2FzZSAnb3B0aW1pemVfanVtcF9wYWdlX2NvZGVfcHJvbXB0JzpcbiAgICAgICAgY29uc3Qgb3B0aW1pemVkSnVtcFBhZ2VDb2RlUHJvbXB0ID0gYXdhaXQgcHJvbXB0T3B0aW1pemVyLm9wdGltaXplSnVtcFBhZ2VDb2RlUHJvbXB0KGFyZ3MudXNlcl9pbnB1dCBhcyBzdHJpbmcpO1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgIGNvbnRlbnQ6IFtcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgdHlwZTogJ3RleHQnLFxuICAgICAgICAgICAgICB0ZXh0OiBvcHRpbWl6ZWRKdW1wUGFnZUNvZGVQcm9tcHRcbiAgICAgICAgICAgIH1cbiAgICAgICAgICBdXG4gICAgICAgIH07XG5cbiAgICAgIC8vIGNhc2UgJ29wdGltaXplX2RlY2xhcmF0aXZlX3VpX3Byb21wdCc6XG4gICAgICAvLyAgIGNvbnN0IG9wdGltaXplZERlY2xhcmF0aXZlVUlQcm9tcHQgPSBhd2FpdCBwcm9tcHRPcHRpbWl6ZXIub3B0aW1pemVEZWNsYXJhdGl2ZVVJUHJvbXB0KGFyZ3MudXNlcl9pbnB1dCBhcyBzdHJpbmcpO1xuICAgICAgLy8gICByZXR1cm4ge1xuICAgICAgLy8gICAgIGNvbnRlbnQ6IFtcbiAgICAgIC8vICAgICAgIHtcbiAgICAgIC8vICAgICAgICAgdHlwZTogJ3RleHQnLFxuICAgICAgLy8gICAgICAgICB0ZXh0OiBvcHRpbWl6ZWREZWNsYXJhdGl2ZVVJUHJvbXB0XG4gICAgICAvLyAgICAgICB9XG4gICAgICAvLyAgICAgXVxuICAgICAgLy8gICB9O1xuXG4gICAgICBjYXNlICdvcHRpbWl6ZV91aV9zcGVjX2Rlc2lnbl9wcm9tcHQnOlxuICAgICAgICBjb25zdCBvcHRpbWl6ZWRVSVNwZWNEZXNpZ25Qcm9tcHQgPSBhd2FpdCBwcm9tcHRPcHRpbWl6ZXIub3B0aW1pemVVSVNwZWNEZXNpZ25Qcm9tcHQoYXJncy51c2VyX2lucHV0IGFzIHN0cmluZyk7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgY29udGVudDogW1xuICAgICAgICAgICAge1xuICAgICAgICAgICAgICB0eXBlOiAndGV4dCcsXG4gICAgICAgICAgICAgIHRleHQ6IG9wdGltaXplZFVJU3BlY0Rlc2lnblByb21wdFxuICAgICAgICAgICAgfVxuICAgICAgICAgIF1cbiAgICAgICAgfTtcblxuICAgICAgLy8gY2FzZSAnb3B0aW1pemVfdWlfZGVzaWduX3JlcGxlbmlzaF9wcm9tcHQnOlxuICAgICAgLy8gICBjb25zdCBvcHRpbWl6ZWRVSURlc2lnblJlcGxlbmlzaFByb21wdCA9IGF3YWl0IHByb21wdE9wdGltaXplci5vcHRpbWl6ZVVJRGVzaWduUmVwbGVuaXNoUHJvbXB0KGFyZ3MudXNlcl9pbnB1dCBhcyBzdHJpbmcpO1xuICAgICAgLy8gICByZXR1cm4ge1xuICAgICAgLy8gICAgIGNvbnRlbnQ6IFtcbiAgICAgIC8vICAgICAgIHtcbiAgICAgIC8vICAgICAgICAgdHlwZTogJ3RleHQnLFxuICAgICAgLy8gICAgICAgICB0ZXh0OiBvcHRpbWl6ZWRVSURlc2lnblJlcGxlbmlzaFByb21wdFxuICAgICAgLy8gICAgICAgfVxuICAgICAgLy8gICAgIF1cbiAgICAgIC8vICAgfTtcblxuICAgICAgLy8gY2FzZSAnaW1wbGVtZW50X3VpX2NvZGVfcHJvbXB0JzpcbiAgICAgIC8vICAgY29uc3QgaW1wbGVtZW50VUlDb2RlVGV4dCA9IGF3YWl0IHByb21wdE9wdGltaXplci5pbXBsZW1lbnRVSUNvZGVQcm9tcHQoYXJncy51c2VyX2lucHV0IGFzIHN0cmluZyk7XG4gICAgICAvLyAgIHJldHVybiB7XG4gICAgICAvLyAgICAgY29udGVudDogW1xuICAgICAgLy8gICAgICAge1xuICAgICAgLy8gICAgICAgICB0eXBlOiAndGV4dCcsXG4gICAgICAvLyAgICAgICAgIHRleHQ6IGltcGxlbWVudFVJQ29kZVRleHRcbiAgICAgIC8vICAgICAgIH1cbiAgICAgIC8vICAgICBdXG4gICAgICAvLyAgIH07XG5cbiAgICAgIGRlZmF1bHQ6XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihgVW5rbm93biB0b29sOiAke25hbWV9YCk7XG4gICAgfVxuICB9IGNhdGNoIChlcnJvcikge1xuICAgIHJldHVybiB7XG4gICAgICBjb250ZW50OiBbXG4gICAgICAgIHtcbiAgICAgICAgICB0eXBlOiAndGV4dCcsXG4gICAgICAgICAgdGV4dDogYEVycm9yOiAke2Vycm9yIGluc3RhbmNlb2YgRXJyb3IgPyBlcnJvci5tZXNzYWdlIDogU3RyaW5nKGVycm9yKX1gXG4gICAgICAgIH1cbiAgICAgIF0sXG4gICAgICBpc0Vycm9yOiB0cnVlXG4gICAgfTtcbiAgfVxufSk7XG5cbmFzeW5jIGZ1bmN0aW9uIG1haW4oKSB7XG4gIGNvbnN0IHRyYW5zcG9ydCA9IG5ldyBTdGRpb1NlcnZlclRyYW5zcG9ydCgpO1xuICBhd2FpdCBzZXJ2ZXIuY29ubmVjdCh0cmFuc3BvcnQpO1xuICBjb25zb2xlLmVycm9yKCdCeXRlRnVuIEFJIFByb21wdCBNQ1Agc2VydmVyIHJ1bm5pbmcgb24gc3RkaW8nKTtcbn1cblxubWFpbigpLmNhdGNoKGNvbnNvbGUuZXJyb3IpO1xuIl19
530
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUVBLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSwyQ0FBMkMsQ0FBQztBQUNuRSxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSwyQ0FBMkMsQ0FBQztBQUNqRixPQUFPLEVBQ0wscUJBQXFCLEVBQ3JCLHNCQUFzQixHQUV2QixNQUFNLG9DQUFvQyxDQUFDO0FBQzVDLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUV4RCxNQUFNLE1BQU0sR0FBRyxJQUFJLE1BQU0sQ0FDdkI7SUFDRSxJQUFJLEVBQUUsbUJBQW1CO0lBQ3pCLE9BQU8sRUFBRSxPQUFPO0NBQ2pCLENBQ0YsQ0FBQztBQUVGLE1BQU0sZUFBZSxHQUFHLElBQUksZUFBZSxFQUFFLENBQUM7QUFJOUMsdUJBQXVCO0FBQ3ZCLE1BQU0sQ0FBQyxpQkFBaUIsQ0FBQyxzQkFBc0IsRUFBRSxLQUFLLElBQUksRUFBRTtJQUMxRCxPQUFPO1FBQ0wsS0FBSyxFQUFFO1lBQ0w7Z0JBQ0UsSUFBSSxFQUFFLGdDQUFnQztnQkFDdEMsV0FBVyxFQUFFLHVEQUF1RDtnQkFDcEUsV0FBVyxFQUFFO29CQUNYLElBQUksRUFBRSxRQUFRO29CQUNkLFVBQVUsRUFBRTt3QkFDVixRQUFRLEVBQUU7NEJBQ1IsSUFBSSxFQUFFLFFBQVE7NEJBQ2QsV0FBVyxFQUFFLGlEQUFpRDt5QkFDL0Q7d0JBQ0QsVUFBVSxFQUFFOzRCQUNWLElBQUksRUFBRSxRQUFROzRCQUNkLFdBQVcsRUFBRSxvRkFBb0Y7eUJBQ2xHO3FCQUNGO29CQUNELFFBQVEsRUFBRSxDQUFDLFVBQVUsRUFBRSxZQUFZLENBQUM7aUJBQ3JDO2FBQ0Y7WUFDRDtnQkFDRSxJQUFJLEVBQUUsMkJBQTJCO2dCQUNqQyxXQUFXLEVBQUUsbUZBQW1GO2dCQUNoRyxXQUFXLEVBQUU7b0JBQ1gsSUFBSSxF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QUF3RztZQUN4RyxhQUFhO1lBQ2IsaUJBQWlCO1lBQ2pCLFVBQVU7WUFDVix3QkFBd0I7WUFDeEIsb0NBQW9DO1lBQ3BDLFVBQVU7WUFDVixRQUFRO1lBQ1IsT0FBTztZQUVQO2dCQUNFLE1BQU0sSUFBSSxLQUFLLENBQUMsaUJBQWlCLElBQUksRUFBRSxDQUFDLENBQUM7UUFDN0MsQ0FBQztJQUNILENBQUM7SUFBQyxPQUFPLEtBQUssRUFBRSxDQUFDO1FBQ2YsT0FBTztZQUNMLE9BQU8sRUFBRTtnQkFDUDtvQkFDRSxJQUFJLEVBQUUsTUFBTTtvQkFDWixJQUFJLEVBQUUsVUFBVSxLQUFLLFlBQVksS0FBSyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLEVBQUU7aUJBQ3pFO2FBQ0Y7WUFDRCxPQUFPLEVBQUUsSUFBSTtTQUNkLENBQUM7SUFDSixDQUFDO0FBQ0gsQ0FBQyxDQUFDLENBQUM7QUFFSCxLQUFLLFVBQVUsSUFBSTtJQUNqQixNQUFNLFNBQVMsR0FBRyxJQUFJLG9CQUFvQixFQUFFLENBQUM7SUFDN0MsTUFBTSxNQUFNLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxDQUFDO0lBQ2hDLE9BQU8sQ0FBQyxLQUFLLENBQUMsK0NBQStDLENBQUMsQ0FBQztBQUNqRSxDQUFDO0FBRUQsSUFBSSxFQUFFLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIiMhL3Vzci9iaW4vZW52IG5vZGVcblxuaW1wb3J0IHsgU2VydmVyIH0gZnJvbSAnQG1vZGVsY29udGV4dHByb3RvY29sL3Nkay9zZXJ2ZXIvaW5kZXguanMnO1xuaW1wb3J0IHsgU3RkaW9TZXJ2ZXJUcmFuc3BvcnQgfSBmcm9tICdAbW9kZWxjb250ZXh0cHJvdG9jb2wvc2RrL3NlcnZlci9zdGRpby5qcyc7XG5pbXBvcnQge1xuICBDYWxsVG9vbFJlcXVlc3RTY2hlbWEsXG4gIExpc3RUb29sc1JlcXVlc3RTY2hlbWEsXG4gIFRvb2wsXG59IGZyb20gJ0Btb2RlbGNvbnRleHRwcm90b2NvbC9zZGsvdHlwZXMuanMnO1xuaW1wb3J0IHsgUHJvbXB0T3B0aW1pemVyIH0gZnJvbSAnLi9wcm9tcHQtb3B0aW1pemVyLmpzJztcblxuY29uc3Qgc2VydmVyID0gbmV3IFNlcnZlcihcbiAge1xuICAgIG5hbWU6ICdieXRlZnVuLWFpLXByb21wdCcsXG4gICAgdmVyc2lvbjogJzEuMC4wJyxcbiAgfVxuKTtcblxuY29uc3QgcHJvbXB0T3B0aW1pemVyID0gbmV3IFByb21wdE9wdGltaXplcigpO1xuXG5cblxuLy8gTGlzdCBhdmFpbGFibGUgdG9vbHNcbnNlcnZlci5zZXRSZXF1ZXN0SGFuZGxlcihMaXN0VG9vbHNSZXF1ZXN0U2NoZW1hLCBhc3luYyAoKSA9PiB7XG4gIHJldHVybiB7XG4gICAgdG9vbHM6IFtcbiAgICAgIHtcbiAgICAgICAgbmFtZTogJ29wdGltaXplX3Byb2R1Y3RfZGVzaWduX3Byb21wdCcsXG4gICAgICAgIGRlc2NyaXB0aW9uOiAnT3B0aW1pemUgcHJvbXB0IGZvciBwcm9kdWN0IGFuZCBidXNpbmVzcyBsb2dpYyBkZXNpZ24nLFxuICAgICAgICBpbnB1dFNjaGVtYToge1xuICAgICAgICAgIHR5cGU6ICdvYmplY3QnLFxuICAgICAgICAgIHByb3BlcnRpZXM6IHtcbiAgICAgICAgICAgIGluZHVzdHJ5OiB7XG4gICAgICAgICAgICAgIHR5cGU6ICdzdHJpbmcnLFxuICAgICAgICAgICAgICBkZXNjcmlwdGlvbjogJ1RoZSBpbmR1c3RyeSB0aGF0IHRoZSBBUFAgb3Igd2Vic2l0ZSBiZWxvbmdzIHRvJ1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHVzZXJfaW5wdXQ6IHtcbiAgICAgICAgICAgICAgdHlwZTogJ3N0cmluZycsXG4gICAgICAgICAgICAgIGRlc2NyaXB0aW9uOiAnVXNlciBpbnB1dCBwcm9tcHQgdGhhdCBuZWVkcyB0byBiZSBvcHRpbWl6ZWQgZm9yIHByb2R1Y3QgYW5kIGJ1c2luZXNzIGxvZ2ljIGRlc2lnbidcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9LFxuICAgICAgICAgIHJlcXVpcmVkOiBbJ2luZHVzdHJ5JywgJ3VzZXJfaW5wdXQnXVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBuYW1lOiAnb3B0aW1pemVfdWlfZGVzaWduX3Byb21wdCcsXG4gICAgICAgIGRlc2NyaXB0aW9uOiAnT3B0aW1pemUgcHJvbXB0IGZvciBVSSBkZXNpZ24gYnkgcmVhZGluZyBwYWdlIGxpc3QgYW5kIHJlcXVpcmVtZW50cyBmcm9tIGRvYyBmaWxlJyxcbiAgICAgICAgaW5wdXRTY2hlbWE6IHtcbiAgICAgICAgICB0eXBlOiAnb2JqZWN0JyxcbiAgICAgICAgICBwcm9wZXJ0aWVzOiB7XG4gICAgICAgICAgICB1c2VyX2lucHV0OiB7XG4gICAgICAgICAgICAgIHR5cGU6ICdzdHJpbmcnLFxuICAgICAgICAgICAgICBkZXNjcmlwdGlvbjogJ1VzZXIgaW5wdXQgcHJvbXB0IHRoYXQgbmVlZHMgdG8gYmUgb3B0aW1pemVkIGZvciBVSSBkZXNpZ24nXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSxcbiAgICAgICAgICByZXF1aXJlZDogWyd1c2VyX2lucHV0J11cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgbmFtZTogJ29wdGltaXplX3VpX2Rlc2lnbl9hZGRfcGFnZV9wcm9tcHQnLFxuICAgICAgICBkZXNjcmlwdGlvbjogJ09wdGltaXplIHByb21wdCBmb3IgVUkgZGVzaWduIHRvIGFkZCBuZXcgcGFnZSBpbnRvIG1vZHVsZScsXG4gICAgICAgIGlucHV0U2NoZW1hOiB7XG4gICAgICAgICAgdHlwZTogJ29iamVjdCcsXG4gICAgICAgICAgcHJvcGVydGllczoge1xuICAgICAgICAgICAgdXNlcl9pbnB1dDoge1xuICAgICAgICAgICAgICB0eXBlOiAnc3RyaW5nJyxcbiAgICAgICAgICAgICAgZGVzY3JpcHRpb246ICdVc2VyIGlucHV0IHByb21wdCB0aGF0IHRyaWdnZXJzIGFkZC1wYWdlIFVJIGRlc2lnbiBmbG93J1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH0sXG4gICAgICAgICAgcmVxdWlyZWQ6IFsndXNlcl9pbnB1dCddXG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIG5hbWU6ICd1aV9kZXNpZ25fZ3VpZGVfcHJvbXB0JyxcbiAgICAgICAgZGVzY3JpcHRpb246ICdSZXR1cm4gY29tcHJlaGVuc2l2ZSBVSSBkZXNpZ24gZ3VpZGUgcHJvbXB0IHdpdGggc3RyaWN0IGV4ZWN1dGlvbiBydWxlcycsXG4gICAgICAgIGlucHV0U2NoZW1hOiB7XG4gICAgICAgICAgdHlwZTogJ29iamVjdCcsXG4gICAgICAgICAgcHJvcGVydGllczoge30sXG4gICAgICAgICAgcmVxdWlyZWQ6IFtdXG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIG5hbWU6ICd1bmRlcnN0YW5kaW5nX2NvZGVfZnJhbWV3b3JrX3Byb21wdCcsXG4gICAgICAgIGRlc2NyaXB0aW9uOiAnUmV0dXJuIHByb21wdCBmb3IgdW5kZXJzdGFuZGluZyBwcm9qZWN0IGNvZGUgZnJhbWV3b3JrJyxcbiAgICAgICAgaW5wdXRTY2hlbWE6IHtcbiAgICAgICAgICB0eXBlOiAnb2JqZWN0JyxcbiAgICAgICAgICBwcm9wZXJ0aWVzOiB7fSxcbiAgICAgICAgICByZXF1aXJlZDogW11cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgbmFtZTogJ29wdGltaXplX2NvZGVfZGVzaWduX3Byb21wdCcsXG4gICAgICAgIGRlc2NyaXB0aW9uOiAnT3B0aW1pemUgcHJvbXB0IGZvciBjb2RlIGxvZ2ljIGRlc2lnbiB0aGlua2luZyBiZWZvcmUgZGV2ZWxvcG1lbnQsIGdlbmVyYXRpbmcgZGV0YWlsZWQgZGVzaWduIGRvY3VtZW50YXRpb24nLFxuICAgICAgICBpbnB1dFNjaGVtYToge1xuICAgICAgICAgIHR5cGU6ICdvYmplY3QnLFxuICAgICAgICAgIHByb3BlcnRpZXM6IHtcbiAgICAgICAgICAgIHVzZXJfaW5wdXQ6IHtcbiAgICAgICAgICAgICAgdHlwZTogJ3N0cmluZycsXG4gICAgICAgICAgICAgIGRlc2NyaXB0aW9uOiAnVXNlciBpbnB1dCBwcm9tcHQgdGhhdCBuZWVkcyB0byBiZSBvcHRpbWl6ZWQgZm9yIGNvZGUgbG9naWMgZGVzaWduIHRoaW5raW5nJ1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH0sXG4gICAgICAgICAgcmVxdWlyZWQ6IFsndXNlcl9pbnB1dCddXG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIG5hbWU6ICdpbXBsZW1lbnRfbG9naWNfY29kZV9wcm9tcHQnLFxuICAgICAgICBkZXNjcmlwdGlvbjogJ09wdGltaXplIHByb21wdCBmb3IgVHlwZVNjcmlwdCBjb2RlIGRldmVsb3BtZW50IGJ5IGFkZGluZyBjb2RlIGRldmVsb3BtZW50IHJ1bGVzIGFuZCBtYXJraW5nIHVzZXIgaW5wdXQnLFxuICAgICAgICBpbnB1dFNjaGVtYToge1xuICAgICAgICAgIHR5cGU6ICdvYmplY3QnLFxuICAgICAgICAgIHByb3BlcnRpZXM6IHtcbiAgICAgICAgICAgIHVzZXJfaW5wdXQ6IHtcbiAgICAgICAgICAgICAgdHlwZTogJ3N0cmluZycsXG4gICAgICAgICAgICAgIGRlc2NyaXB0aW9uOiAnVXNlciBpbnB1dCBwcm9tcHQgdGhhdCBuZWVkcyB0byBiZSBvcHRpbWl6ZWQgZm9yIGNvZGUgZGV2ZWxvcG1lbnQnXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSxcbiAgICAgICAgICByZXF1aXJlZDogWyd1c2VyX2lucHV0J11cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIC8vIHtcbiAgICAgIC8vICAgbmFtZTogJ29wdGltaXplX2hhbmRfZHJhd25fdWlfZGVzaWduX3Byb21wdCcsXG4gICAgICAvLyAgIGRlc2NyaXB0aW9uOiAnQW5hbHl6ZSBoYW5kLWRyYXduIFVJIGRlc2lnbiBza2V0Y2hlcyBhbmQgZXh0cmFjdCBkZXRhaWxlZCBpbmZvcm1hdGlvbiBmb3IgVUkgZGVzaWduJyxcbiAgICAgIC8vICAgaW5wdXRTY2hlbWE6IHtcbiAgICAgIC8vICAgICB0eXBlOiAnb2JqZWN0JyxcbiAgICAgIC8vICAgICBwcm9wZXJ0aWVzOiB7XG4gICAgICAvLyAgICAgICB1c2VyX2lucHV0OiB7XG4gICAgICAvLyAgICAgICAgIHR5cGU6ICdzdHJpbmcnLFxuICAgICAgLy8gICAgICAgICBkZXNjcmlwdGlvbjogJ1VzZXIgaW5wdXQgd2l0aCBoYW5kLWRyYXduIFVJIGRlc2lnbiBza2V0Y2ggdGhhdCBuZWVkcyB0byBiZSBhbmFseXplZCdcbiAgICAgIC8vICAgICAgIH1cbiAgICAgIC8vICAgICB9LFxuICAgICAgLy8gICAgIHJlcXVpcmVkOiBbJ3VzZXJfaW5wdXQnXVxuICAgICAgLy8gICB9XG4gICAgICAvLyB9LFxuICAgICAgLy8ge1xuICAgICAgLy8gICBuYW1lOiAnb3B0aW1pemVfdWlfZGVzaWduX3RoaW5raW5nX3Byb21wdCcsXG4gICAgICAvLyAgIGRlc2NyaXB0aW9uOiAnT3B0aW1pemUgcHJvbXB0IGZvciBVSSBkZXNpZ24gdGhpbmtpbmcgcHJvY2VzcyBiZWZvcmUgYWN0dWFsIGRlc2lnbiB3b3JrLCBnZW5lcmF0aW5nIGRldGFpbGVkIFVJIGRlc2lnbiB0aGlua2luZyBkb2N1bWVudGF0aW9uJyxcbiAgICAgIC8vICAgaW5wdXRTY2hlbWE6IHtcbiAgICAgIC8vICAgICB0eXBlOiAnb2JqZWN0JyxcbiAgICAgIC8vICAgICBwcm9wZXJ0aWVzOiB7XG4gICAgICAvLyAgICAgICB1c2VyX2lucHV0OiB7XG4gICAgICAvLyAgICAgICAgIHR5cGU6ICdzdHJpbmcnLFxuICAgICAgLy8gICAgICAgICBkZXNjcmlwdGlvbjogJ1VzZXIgaW5wdXQgcHJvbXB0IHRoYXQgbmVlZHMgdG8gYmUgb3B0aW1pemVkIGZvciBVSSBkZXNpZ24gdGhpbmtpbmcgcHJvY2VzcydcbiAgICAgIC8vICAgICAgIH1cbiAgICAgIC8vICAgICB9LFxuICAgICAgLy8gICAgIHJlcXVpcmVkOiBbJ3VzZXJfaW5wdXQnXVxuICAgICAgLy8gICB9XG4gICAgICAvLyB9LFxuXG4gICAgICB7XG4gICAgICAgIG5hbWU6ICdvcHRpbWl6ZV9iYWNrZW5kX2Rlc2lnbl9wcm9tcHQnLFxuICAgICAgICBkZXNjcmlwdGlvbjogJ09wdGltaXplIHByb21wdCBmb3IgYmFja2VuZCBkYXRhYmFzZSBhbmQgQVBJIGludGVyZmFjZSBkZXNpZ24gYnkgcmVhZGluZyBtb2R1bGUgYnVzaW5lc3MgbG9naWMgZG9jdW1lbnRzJyxcbiAgICAgICAgaW5wdXRTY2hlbWE6IHtcbiAgICAgICAgICB0eXBlOiAnb2JqZWN0JyxcbiAgICAgICAgICBwcm9wZXJ0aWVzOiB7XG4gICAgICAgICAgICB1c2VyX2lucHV0OiB7XG4gICAgICAgICAgICAgIHR5cGU6ICdzdHJpbmcnLFxuICAgICAgICAgICAgICBkZXNjcmlwdGlvbjogJ1VzZXIgaW5wdXQgcHJvbXB0IHRoYXQgbmVlZHMgdG8gYmUgb3B0aW1pemVkIGZvciBiYWNrZW5kIGRhdGFiYXNlIGFuZCBBUEkgaW50ZXJmYWNlIGRlc2lnbidcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9LFxuICAgICAgICAgIHJlcXVpcmVkOiBbJ3VzZXJfaW5wdXQnXVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgLy8ge1xuICAgICAgLy8gICBuYW1lOiAnZnVuY3Rpb25hbF9tb2R1bGVfYnVzaW5lc3NfbG9naWNfcHJvbXB0JyxcbiAgICAgIC8vICAgZGVzY3JpcHRpb246ICdPcHRpbWl6ZSBwcm9tcHQgZm9yIGZ1bmN0aW9uYWwgbW9kdWxlIGJ1c2luZXNzIGxvZ2ljIGFuYWx5c2lzIGJhc2VkIG9uIHByb2R1Y3QgcmVxdWlyZW1lbnRzIGRvY3VtZW50JyxcbiAgICAgIC8vICAgaW5wdXRTY2hlbWE6IHtcbiAgICAgIC8vICAgICB0eXBlOiAnb2JqZWN0JyxcbiAgICAgIC8vICAgICBwcm9wZXJ0aWVzOiB7XG4gICAgICAvLyAgICAgICBmdW5jdGlvbmFsTW9kdWxlOiB7XG4gICAgICAvLyAgICAgICAgIHR5cGU6ICdzdHJpbmcnLFxuICAgICAgLy8gICAgICAgICBkZXNjcmlwdGlvbjogJ1RoZSBmdW5jdGlvbmFsIG1vZHVsZSBjdXJyZW50bHkgYmVpbmcgZGVzaWduZWQnXG4gICAgICAvLyAgICAgICB9LFxuICAgICAgLy8gICAgICAgdXNlcl9pbnB1dDoge1xuICAgICAgLy8gICAgICAgICB0eXBlOiAnc3RyaW5nJyxcbiAgICAgIC8vICAgICAgICAgZGVzY3JpcHRpb246ICdVc2VyIGlucHV0IHByb21wdCB0aGF0IG5lZWRzIHRvIGJlIG9wdGltaXplZCBmb3IgZnVuY3Rpb25hbCBtb2R1bGUgYnVzaW5lc3MgbG9naWMgYW5hbHlzaXMnXG4gICAgICAvLyAgICAgICB9XG4gICAgICAvLyAgICAgfSxcbiAgICAgIC8vICAgICByZXF1aXJlZDogWydmdW5jdGlvbmFsTW9kdWxlJywgJ3VzZXJfaW5wdXQnXVxuICAgICAgLy8gICB9XG4gICAgICAvLyB9LFxuXG4gICAgICAvLyB7XG4gICAgICAvLyAgIG5hbWU6ICd0YWxrX3RvX2VkaXRvcicsXG4gICAgICAvLyAgIGRlc2NyaXB0aW9uOiAnRXN0YWJsaXNoIGxvbmcgY29ubmVjdGlvbiB3aXRoIGVkaXRvciBiYWNrZW5kIHVzaW5nIFNvY2tldC5JTy4gQmVmb3JlIGNhbGxpbmcgdGhpcyB0b29sLCB5b3UgbXVzdCBmaXJzdCB1c2UgcmVhZF9maWxlIHRvIHJlYWQgLmJ5dGVmdW4vcHJvamVjdC5qc29uIGFuZCBnZXQgcHJvamVjdElEIGFuZCB1aWQgdmFsdWVzLiBUaGlzIHRvb2wgd2lsbCB3YWl0IGZvciBiYWNrZW5kIG1lc3NhZ2VzIGFuZCByZXR1cm4gdGFza3MgdG8gZXhlY3V0ZS4nLFxuICAgICAgLy8gICBpbnB1dFNjaGVtYToge1xuICAgICAgLy8gICAgIHR5cGU6ICdvYmplY3QnLFxuICAgICAgLy8gICAgIHByb3BlcnRpZXM6IHtcbiAgICAgIC8vICAgICAgIHByb2plY3RJRDoge1xuICAgICAgLy8gICAgICAgICB0eXBlOiAnbnVtYmVyJyxcbiAgICAgIC8vICAgICAgICAgZGVzY3JpcHRpb246ICdQcm9qZWN0IElEIGZyb20gLmJ5dGVmdW4vcHJvamVjdC5qc29uIGNvbmZpZ3VyYXRpb24gZmlsZSdcbiAgICAgIC8vICAgICAgIH0sXG4gICAgICAvLyAgICAgICB1aWQ6IHtcbiAgICAgIC8vICAgICAgICAgdHlwZTogJ251bWJlcicsXG4gICAgICAvLyAgICAgICAgIGRlc2NyaXB0aW9uOiAnVXNlciBJRCBmcm9tIC5ieXRlZnVuL3Byb2plY3QuanNvbiBjb25maWd1cmF0aW9uIGZpbGUnXG4gICAgICAvLyAgICAgICB9XG4gICAgICAvLyAgICAgfSxcbiAgICAgIC8vICAgICByZXF1aXJlZDogWydwcm9qZWN0SUQnLCAndWlkJ11cbiAgICAgIC8vICAgfVxuICAgICAgLy8gfSxcbiAgICAgIC8vIHtcbiAgICAgIC8vICAgbmFtZTogJ3RhbGtfdG9fZWRpdG9yX3J1bGVzJyxcbiAgICAgIC8vICAgZGVzY3JpcHRpb246ICdHZXQgQUkgYmVoYXZpb3IgcnVsZXMgZm9yIGludGVyYWN0aW5nIHdpdGggdGFsa190b19lZGl0b3IgdG9vbC4gUmV0dXJucyBkZXRhaWxlZCBpbnN0cnVjdGlvbnMgb24gaG93IEFJIHNob3VsZCBtYWludGFpbiBjb250aW51b3VzIGNvbnZlcnNhdGlvbiBhbmQgd2FpdCBmb3IgYmFja2VuZCBjb250cm9sLicsXG4gICAgICAvLyAgIGlucHV0U2NoZW1hOiB7XG4gICAgICAvLyAgICAgdHlwZTogJ29iamVjdCcsXG4gICAgICAvLyAgICAgcHJvcGVydGllczoge30sXG4gICAgICAvLyAgICAgcmVxdWlyZWQ6IFtdXG4gICAgICAvLyAgIH1cbiAgICAgIC8vIH0sXG4gICAgICB7XG4gICAgICAgIG5hbWU6ICdpbXBsZW1lbnRfYmFja2VuZF9jb2RlX3Byb21wdCcsXG4gICAgICAgIGRlc2NyaXB0aW9uOiAnT3B0aW1pemUgcHJvbXB0IGZvciBiYWNrZW5kIGNvZGUgZGV2ZWxvcG1lbnQgYnkgcmVhZGluZyBiYWNrZW5kIGRlc2lnbiBkb2N1bWVudHMgYW5kIGFwcGx5aW5nIGNvZGluZyBzdGFuZGFyZHMnLFxuICAgICAgICBpbnB1dFNjaGVtYToge1xuICAgICAgICAgIHR5cGU6ICdvYmplY3QnLFxuICAgICAgICAgIHByb3BlcnRpZXM6IHtcbiAgICAgICAgICAgIHVzZXJfaW5wdXQ6IHtcbiAgICAgICAgICAgICAgdHlwZTogJ3N0cmluZycsXG4gICAgICAgICAgICAgIGRlc2NyaXB0aW9uOiAnVXNlciBpbnB1dCBwcm9tcHQgdGhhdCBuZWVkcyB0byBiZSBvcHRpbWl6ZWQgZm9yIGJhY2tlbmQgY29kZSBkZXZlbG9wbWVudCdcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9LFxuICAgICAgICAgIHJlcXVpcmVkOiBbJ3VzZXJfaW5wdXQnXVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBuYW1lOiAnb3B0aW1pemVfdWlfZGVzaWduX2VkaXRfcHJvbXB0JyxcbiAgICAgICAgZGVzY3JpcHRpb246ICdPcHRpbWl6ZSBwcm9tcHQgZm9yIFVJIGRlc2lnbiBtb2RpZmljYXRpb24gYW5kIGVkaXRpbmcgdGFza3MsIHJldHVybmluZyBkZXRhaWxlZCBVSSBkZXNpZ24gc3BlY2lmaWNhdGlvbnMnLFxuICAgICAgICBpbnB1dFNjaGVtYToge1xuICAgICAgICAgIHR5cGU6ICdvYmplY3QnLFxuICAgICAgICAgIHByb3BlcnRpZXM6IHtcbiAgICAgICAgICAgIHVzZXJfaW5wdXQ6IHtcbiAgICAgICAgICAgICAgdHlwZTogJ3N0cmluZycsXG4gICAgICAgICAgICAgIGRlc2NyaXB0aW9uOiAnVXNlciBpbnB1dCBwcm9tcHQgdGhhdCBuZWVkcyB0byBiZSBvcHRpbWl6ZWQgZm9yIFVJIGRlc2lnbiBtb2RpZmljYXRpb24nXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSxcbiAgICAgICAgICByZXF1aXJlZDogWyd1c2VyX2lucHV0J11cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIC8vIHtcbiAgICAgIC8vICAgbmFtZTogJ29wdGltaXplX3VpX2Rlc2lnbl9yZXBsZW5pc2hfcHJvbXB0JyxcbiAgICAgIC8vICAgZGVzY3JpcHRpb246ICdPcHRpbWl6ZSBwcm9tcHQgZm9yIFVJIGRlc2lnbiBIVE1MIHJlcGxlbmlzaG1lbnQgYW5kIGF0dHJpYnV0ZSBjb21wbGV0aW9uJyxcbiAgICAgIC8vICAgaW5wdXRTY2hlbWE6IHtcbiAgICAgIC8vICAgICB0eXBlOiAnb2JqZWN0JyxcbiAgICAgIC8vICAgICBwcm9wZXJ0aWVzOiB7XG4gICAgICAvLyAgICAgICB1c2VyX2lucHV0OiB7XG4gICAgICAvLyAgICAgICAgIHR5cGU6ICdzdHJpbmcnLFxuICAgICAgLy8gICAgICAgICBkZXNjcmlwdGlvbjogJ1VzZXIgaW5wdXQgcHJvbXB0IHRoYXQgbmVlZHMgdG8gYmUgb3B0aW1pemVkIGZvciBVSSBkZXNpZ24gSFRNTCByZXBsZW5pc2htZW50J1xuICAgICAgLy8gICAgICAgfVxuICAgICAgLy8gICAgIH0sXG4gICAgICAvLyAgICAgcmVxdWlyZWQ6IFsndXNlcl9pbnB1dCddXG4gICAgICAvLyAgIH1cbiAgICAgIC8vIH0sXG4gICAgICB7XG4gICAgICAgIG5hbWU6ICdvcHRpbWl6ZV9qdW1wX3BhZ2VfY29kZV9wcm9tcHQnLFxuICAgICAgICBkZXNjcmlwdGlvbjogJ09wdGltaXplIHByb21wdCBmb3IgcGFnZSBuYXZpZ2F0aW9uIGNvZGUgZGV2ZWxvcG1lbnQgYmFzZWQgb24gVUkgZGVzaWduIHByb2dyZXNzIGFuZCBqdW1waW5nIHJ1bGVzJyxcbiAgICAgICAgaW5wdXRTY2hlbWE6IHtcbiAgICAgICAgICB0eXBlOiAnb2JqZWN0JyxcbiAgICAgICAgICBwcm9wZXJ0aWVzOiB7XG4gICAgICAgICAgICB1c2VyX2lucHV0OiB7XG4gICAgICAgICAgICAgIHR5cGU6ICdzdHJpbmcnLFxuICAgICAgICAgICAgICBkZXNjcmlwdGlvbjogJ1VzZXIgaW5wdXQgcHJvbXB0IHRoYXQgbmVlZHMgdG8gYmUgb3B0aW1pemVkIGZvciBwYWdlIG5hdmlnYXRpb24gY29kZSBkZXZlbG9wbWVudCdcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9LFxuICAgICAgICAgIHJlcXVpcmVkOiBbJ3VzZXJfaW5wdXQnXVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgLy8ge1xuICAgICAgLy8gICBuYW1lOiAnb3B0aW1pemVfZGVjbGFyYXRpdmVfdWlfcHJvbXB0JyxcbiAgICAgIC8vICAgZGVzY3JpcHRpb246ICdPcHRpbWl6ZSBwcm9tcHQgZm9yIGRlY2xhcmF0aXZlIFVJIGRlc2lnbiB1c2luZyBKU09OIGZvcm1hdCB0byBkZXNjcmliZSBVSSBjb21wb25lbnRzIGFuZCBpbnRlcmZhY2VzJyxcbiAgICAgIC8vICAgaW5wdXRTY2hlbWE6IHtcbiAgICAgIC8vICAgICB0eXBlOiAnb2JqZWN0JyxcbiAgICAgIC8vICAgICBwcm9wZXJ0aWVzOiB7XG4gICAgICAvLyAgICAgICB1c2VyX2lucHV0OiB7XG4gICAgICAvLyAgICAgICAgIHR5cGU6ICdzdHJpbmcnLFxuICAgICAgLy8gICAgICAgICBkZXNjcmlwdGlvbjogJ1VzZXIgaW5wdXQgcHJvbXB0IHRoYXQgbmVlZHMgdG8gYmUgb3B0aW1pemVkIGZvciBkZWNsYXJhdGl2ZSBVSSBkZXNpZ24nXG4gICAgICAvLyAgICAgICB9XG4gICAgICAvLyAgICAgfSxcbiAgICAgIC8vICAgICByZXF1aXJlZDogWyd1c2VyX2lucHV0J11cbiAgICAgIC8vICAgfVxuICAgICAgLy8gfSxcbiAgICAgIHtcbiAgICAgICAgbmFtZTogJ29wdGltaXplX3VpX3NwZWNfZGVzaWduX3Byb21wdCcsXG4gICAgICAgIGRlc2NyaXB0aW9uOiAnT3B0aW1pemUgcHJvbXB0IGZvciBVSSBzcGVjaWZpY2F0aW9uIGRlc2lnbiBiYXNlZCBvbiBwcm9kdWN0IHJlcXVpcmVtZW50cyBkb2N1bWVudCB0byBjb21wbGV0ZSBVSSBkZXNpZ24gc3RhbmRhcmRzJyxcbiAgICAgICAgaW5wdXRTY2hlbWE6IHtcbiAgICAgICAgICB0eXBlOiAnb2JqZWN0JyxcbiAgICAgICAgICBwcm9wZXJ0aWVzOiB7XG4gICAgICAgICAgICB1c2VyX2lucHV0OiB7XG4gICAgICAgICAgICAgIHR5cGU6ICdzdHJpbmcnLFxuICAgICAgICAgICAgICBkZXNjcmlwdGlvbjogJ1VzZXIgaW5wdXQgcHJvbXB0IHRoYXQgbmVlZHMgdG8gYmUgb3B0aW1pemVkIGZvciBVSSBzcGVjaWZpY2F0aW9uIGRlc2lnbidcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9LFxuICAgICAgICAgIHJlcXVpcmVkOiBbJ3VzZXJfaW5wdXQnXVxuICAgICAgICB9XG4gICAgICB9XG4gICAgICAvLyB7XG4gICAgICAvLyAgIG5hbWU6ICdpbXBsZW1lbnRfdWlfY29kZV9wcm9tcHQnLFxuICAgICAgLy8gICBkZXNjcmlwdGlvbjogJ1JldHVybiBwcm9tcHQgZm9yIGltcGxlbWVudGluZyBVSSBjb2RlIHdpdGggc3RyaWN0IGV4ZWN1dGlvbiBzdGVwcycsXG4gICAgICAvLyAgIGlucHV0U2NoZW1hOiB7XG4gICAgICAvLyAgICAgdHlwZTogJ29iamVjdCcsXG4gICAgICAvLyAgICAgcHJvcGVydGllczoge1xuICAgICAgLy8gICAgICAgdXNlcl9pbnB1dDoge1xuICAgICAgLy8gICAgICAgICB0eXBlOiAnc3RyaW5nJyxcbiAgICAgIC8vICAgICAgICAgZGVzY3JpcHRpb246ICdVc2VyIGlucHV0IGRlc2NyaWJpbmcgVUkgY29kZSBpbXBsZW1lbnRhdGlvbiByZXF1aXJlbWVudHMnXG4gICAgICAvLyAgICAgICB9XG4gICAgICAvLyAgICAgfSxcbiAgICAgIC8vICAgICByZXF1aXJlZDogWyd1c2VyX2lucHV0J11cbiAgICAgIC8vICAgfVxuICAgICAgLy8gfVxuICAgIF0gYXMgVG9vbFtdXG4gIH07XG59KTtcblxuLy8gSGFuZGxlIHRvb2wgY2FsbHNcbnNlcnZlci5zZXRSZXF1ZXN0SGFuZGxlcihDYWxsVG9vbFJlcXVlc3RTY2hlbWEsIGFzeW5jIChyZXF1ZXN0KSA9PiB7XG4gIGNvbnN0IHsgbmFtZSwgYXJndW1lbnRzOiBhcmdzIH0gPSByZXF1ZXN0LnBhcmFtcztcblxuICBpZiAoIWFyZ3MpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ01pc3NpbmcgYXJndW1lbnRzJyk7XG4gIH1cblxuICB0cnkge1xuICAgIHN3aXRjaCAobmFtZSkge1xuICAgICAgY2FzZSAnb3B0aW1pemVfcHJvZHVjdF9kZXNpZ25fcHJvbXB0JzpcbiAgICAgICAgY29uc3Qgb3B0aW1pemVkUHJvZHVjdERlc2lnblByb21wdCA9IGF3YWl0IHByb21wdE9wdGltaXplci5vcHRpbWl6ZVByb2R1Y3REZXNpZ25Qcm9tcHQoYXJncy5pbmR1c3RyeSBhcyBzdHJpbmcsIGFyZ3MudXNlcl9pbnB1dCBhcyBzdHJpbmcpO1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgIGNvbnRlbnQ6IFtcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgdHlwZTogJ3RleHQnLFxuICAgICAgICAgICAgICB0ZXh0OiBvcHRpbWl6ZWRQcm9kdWN0RGVzaWduUHJvbXB0XG4gICAgICAgICAgICB9XG4gICAgICAgICAgXVxuICAgICAgICB9O1xuXG4gICAgICBjYXNlICdvcHRpbWl6ZV91aV9kZXNpZ25fcHJvbXB0JzpcbiAgICAgICAgY29uc3Qgb3B0aW1pemVkVUlQcm9tcHQgPSBhd2FpdCBwcm9tcHRPcHRpbWl6ZXIub3B0aW1pemVVSURlc2lnblByb21wdChhcmdzLnVzZXJfaW5wdXQgYXMgc3RyaW5nKTtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICBjb250ZW50OiBbXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgIHR5cGU6ICd0ZXh0JyxcbiAgICAgICAgICAgICAgdGV4dDogb3B0aW1pemVkVUlQcm9tcHRcbiAgICAgICAgICAgIH1cbiAgICAgICAgICBdXG4gICAgICAgIH07XG5cbiAgICAgIGNhc2UgJ29wdGltaXplX3VpX2Rlc2lnbl9hZGRfcGFnZV9wcm9tcHQnOlxuICAgICAgICBjb25zdCBvcHRpbWl6ZWRVSUFkZFBhZ2VQcm9tcHQgPSBhd2FpdCBwcm9tcHRPcHRpbWl6ZXIub3B0aW1pemVVSURlc2lnbkFkZFBhZ2VQcm9tcHQoYXJncy51c2VyX2lucHV0IGFzIHN0cmluZyk7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgY29udGVudDogW1xuICAgICAgICAgICAge1xuICAgICAgICAgICAgICB0eXBlOiAndGV4dCcsXG4gICAgICAgICAgICAgIHRleHQ6IG9wdGltaXplZFVJQWRkUGFnZVByb21wdFxuICAgICAgICAgICAgfVxuICAgICAgICAgIF1cbiAgICAgICAgfTtcblxuICAgICAgY2FzZSAndWlfZGVzaWduX2d1aWRlX3Byb21wdCc6XG4gICAgICAgIGNvbnN0IHVpRGVzaWduR3VpZGVUZXh0ID0gYXdhaXQgcHJvbXB0T3B0aW1pemVyLnVpRGVzaWduR3VpZGVQcm9tcHQoKTtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICBjb250ZW50OiBbXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgIHR5cGU6ICd0ZXh0JyxcbiAgICAgICAgICAgICAgdGV4dDogdWlEZXNpZ25HdWlkZVRleHRcbiAgICAgICAgICAgIH1cbiAgICAgICAgICBdXG4gICAgICAgIH07XG5cbiAgICAgIGNhc2UgJ3VuZGVyc3RhbmRpbmdfY29kZV9mcmFtZXdvcmtfcHJvbXB0JzpcbiAgICAgICAgY29uc3QgYXBwQ29kZUZyYW1ld29ya1RleHQgPSBhd2FpdCBwcm9tcHRPcHRpbWl6ZXIudW5kZXJzdGFuZGluZ0FwcENvZGVGcmFtZXdvcmtQcm9tcHQoKTtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICBjb250ZW50OiBbXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgIHR5cGU6ICd0ZXh0JyxcbiAgICAgICAgICAgICAgdGV4dDogYXBwQ29kZUZyYW1ld29ya1RleHRcbiAgICAgICAgICAgIH1cbiAgICAgICAgICBdXG4gICAgICAgIH07XG5cbiAgICAgIGNhc2UgJ29wdGltaXplX2NvZGVfZGVzaWduX3Byb21wdCc6XG4gICAgICAgIGNvbnN0IG9wdGltaXplZENvZGVEZXNpZ25Qcm9tcHQgPSBhd2FpdCBwcm9tcHRPcHRpbWl6ZXIub3B0aW1pemVDb2RlRGVzaWduUHJvbXB0KGFyZ3MudXNlcl9pbnB1dCBhcyBzdHJpbmcpO1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgIGNvbnRlbnQ6IFtcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgdHlwZTogJ3RleHQnLFxuICAgICAgICAgICAgICB0ZXh0OiBvcHRpbWl6ZWRDb2RlRGVzaWduUHJvbXB0XG4gICAgICAgICAgICB9XG4gICAgICAgICAgXVxuICAgICAgICB9O1xuXG4gICAgICBjYXNlICdpbXBsZW1lbnRfbG9naWNfY29kZV9wcm9tcHQnOlxuICAgICAgICBjb25zdCBvcHRpbWl6ZWRDb2RlUHJvbXB0ID0gYXdhaXQgcHJvbXB0T3B0aW1pemVyLm9wdGltaXplQ29kZVByb21wdChhcmdzLnVzZXJfaW5wdXQgYXMgc3RyaW5nKTtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICBjb250ZW50OiBbXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgIHR5cGU6ICd0ZXh0JyxcbiAgICAgICAgICAgICAgdGV4dDogb3B0aW1pemVkQ29kZVByb21wdFxuICAgICAgICAgICAgfVxuICAgICAgICAgIF1cbiAgICAgICAgfTtcblxuICAgICAgLy8gY2FzZSAnb3B0aW1pemVfaGFuZF9kcmF3bl91aV9kZXNpZ25fcHJvbXB0JzpcbiAgICAgIC8vICAgY29uc3Qgb3B0aW1pemVkSGFuZERyYXduUHJvbXB0ID0gYXdhaXQgcHJvbXB0T3B0aW1pemVyLm9wdGltaXplSGFuZERyYXduVUlEZXNpZ25Qcm9tcHQoYXJncy51c2VyX2lucHV0IGFzIHN0cmluZyk7XG4gICAgICAvLyAgIHJldHVybiB7XG4gICAgICAvLyAgICAgY29udGVudDogW1xuICAgICAgLy8gICAgICAge1xuICAgICAgLy8gICAgICAgICB0eXBlOiAndGV4dCcsXG4gICAgICAvLyAgICAgICAgIHRleHQ6IG9wdGltaXplZEhhbmREcmF3blByb21wdFxuICAgICAgLy8gICAgICAgfVxuICAgICAgLy8gICAgIF1cbiAgICAgIC8vICAgfTtcblxuICAgICAgLy8gY2FzZSAnb3B0aW1pemVfdWlfZGVzaWduX3RoaW5raW5nX3Byb21wdCc6XG4gICAgICAvLyAgIGNvbnN0IG9wdGltaXplZFVJRGVzaWduVGhpbmtpbmdQcm9tcHQgPSBhd2FpdCBwcm9tcHRPcHRpbWl6ZXIub3B0aW1pemVVSURlc2lnblRoaW5raW5nUHJvbXB0KGFyZ3MudXNlcl9pbnB1dCBhcyBzdHJpbmcpO1xuICAgICAgLy8gICByZXR1cm4ge1xuICAgICAgLy8gICAgIGNvbnRlbnQ6IFtcbiAgICAgIC8vICAgICAgIHtcbiAgICAgIC8vICAgICAgICAgdHlwZTogJ3RleHQnLFxuICAgICAgLy8gICAgICAgICB0ZXh0OiBvcHRpbWl6ZWRVSURlc2lnblRoaW5raW5nUHJvbXB0XG4gICAgICAvLyAgICAgICB9XG4gICAgICAvLyAgICAgXVxuICAgICAgLy8gICB9O1xuXG4gICAgICBjYXNlICdvcHRpbWl6ZV9iYWNrZW5kX2Rlc2lnbl9wcm9tcHQnOlxuICAgICAgICBjb25zdCBvcHRpbWl6ZWRCYWNrZW5kRGVzaWduUHJvbXB0ID0gYXdhaXQgcHJvbXB0T3B0aW1pemVyLm9wdGltaXplQmFja2VuZERlc2lnblByb21wdChhcmdzLnVzZXJfaW5wdXQgYXMgc3RyaW5nKTtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICBjb250ZW50OiBbXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgIHR5cGU6ICd0ZXh0JyxcbiAgICAgICAgICAgICAgdGV4dDogb3B0aW1pemVkQmFja2VuZERlc2lnblByb21wdFxuICAgICAgICAgICAgfVxuICAgICAgICAgIF1cbiAgICAgICAgfTtcblxuICAgICAgY2FzZSAnZnVuY3Rpb25hbF9tb2R1bGVfYnVzaW5lc3NfbG9naWNfcHJvbXB0JzpcbiAgICAgICAgY29uc3Qgb3B0aW1pemVkRnVuY3Rpb25hbE1vZHVsZVByb21wdCA9IGF3YWl0IHByb21wdE9wdGltaXplci5vcHRpbWl6ZUZ1bmN0aW9uYWxNb2R1bGVQcm9tcHQoYXJncy5mdW5jdGlvbmFsTW9kdWxlIGFzIHN0cmluZywgYXJncy51c2VyX2lucHV0IGFzIHN0cmluZyk7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgY29udGVudDogW1xuICAgICAgICAgICAge1xuICAgICAgICAgICAgICB0eXBlOiAndGV4dCcsXG4gICAgICAgICAgICAgIHRleHQ6IG9wdGltaXplZEZ1bmN0aW9uYWxNb2R1bGVQcm9tcHRcbiAgICAgICAgICAgIH1cbiAgICAgICAgICBdXG4gICAgICAgIH07XG5cblxuICAgICAgLy8gY2FzZSAndGFsa190b19lZGl0b3InOlxuICAgICAgLy8gICBjb25zdCBwcm9qZWN0SUQgPSBhcmdzLnByb2plY3RJRCBhcyBudW1iZXIgfHwgMDtcbiAgICAgIC8vICAgY29uc3QgdWlkID0gYXJncy51aWQgYXMgbnVtYmVyIHx8IDA7XG4gICAgICAgIFxuICAgICAgLy8gICBjb25zdCB0YWxrUmVzdWx0ID0gYXdhaXQgcHJvbXB0T3B0aW1pemVyLnRhbGtUb0VkaXRvcih7XG4gICAgICAvLyAgICAgcHJvamVjdElELFxuICAgICAgLy8gICAgIHVpZFxuICAgICAgLy8gICB9KTtcbiAgICAgIC8vICAgcmV0dXJuIHtcbiAgICAgIC8vICAgICBjb250ZW50OiBbXG4gICAgICAvLyAgICAgICB7XG4gICAgICAvLyAgICAgICAgIHR5cGU6ICd0ZXh0JyxcbiAgICAgIC8vICAgICAgICAgdGV4dDogdGFsa1Jlc3VsdFxuICAgICAgLy8gICAgICAgfVxuICAgICAgLy8gICAgIF1cbiAgICAgIC8vICAgfTtcblxuICAgICAgLy8gY2FzZSAndGFsa190b19lZGl0b3JfcnVsZXMnOlxuICAgICAgLy8gICBjb25zdCBydWxlc1Jlc3VsdCA9IGF3YWl0IHByb21wdE9wdGltaXplci50YWxrVG9FZGl0b3JSdWxlcygpO1xuICAgICAgLy8gICByZXR1cm4ge1xuICAgICAgLy8gICAgIGNvbnRlbnQ6IFtcbiAgICAgIC8vICAgICAgIHtcbiAgICAgIC8vICAgICAgICAgdHlwZTogJ3RleHQnLFxuICAgICAgLy8gICAgICAgICB0ZXh0OiBydWxlc1Jlc3VsdFxuICAgICAgLy8gICAgICAgfVxuICAgICAgLy8gICAgIF1cbiAgICAgIC8vICAgfTtcblxuICAgICAgY2FzZSAnaW1wbGVtZW50X2JhY2tlbmRfY29kZV9wcm9tcHQnOlxuICAgICAgICBjb25zdCBvcHRpbWl6ZWRCYWNrZW5kQ29kZVByb21wdCA9IGF3YWl0IHByb21wdE9wdGltaXplci5vcHRpbWl6ZUJhY2tlbmRDb2RlUHJvbXB0KGFyZ3MudXNlcl9pbnB1dCBhcyBzdHJpbmcpO1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgIGNvbnRlbnQ6IFtcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgdHlwZTogJ3RleHQnLFxuICAgICAgICAgICAgICB0ZXh0OiBvcHRpbWl6ZWRCYWNrZW5kQ29kZVByb21wdFxuICAgICAgICAgICAgfVxuICAgICAgICAgIF1cbiAgICAgICAgfTtcblxuICAgICAgY2FzZSAnb3B0aW1pemVfdWlfZGVzaWduX2VkaXRfcHJvbXB0JzpcbiAgICAgICAgY29uc3Qgb3B0aW1pemVkVUlEZXNpZ25FZGl0UHJvbXB0ID0gYXdhaXQgcHJvbXB0T3B0aW1pemVyLm9wdGltaXplVUlEZXNpZ25FZGl0UHJvbXB0KGFyZ3MudXNlcl9pbnB1dCBhcyBzdHJpbmcpO1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgIGNvbnRlbnQ6IFtcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgdHlwZTogJ3RleHQnLFxuICAgICAgICAgICAgICB0ZXh0OiBvcHRpbWl6ZWRVSURlc2lnbkVkaXRQcm9tcHRcbiAgICAgICAgICAgIH1cbiAgICAgICAgICBdXG4gICAgICAgIH07XG5cbiAgICAgIGNhc2UgJ29wdGltaXplX2p1bXBfcGFnZV9jb2RlX3Byb21wdCc6XG4gICAgICAgIGNvbnN0IG9wdGltaXplZEp1bXBQYWdlQ29kZVByb21wdCA9IGF3YWl0IHByb21wdE9wdGltaXplci5vcHRpbWl6ZUp1bXBQYWdlQ29kZVByb21wdChhcmdzLnVzZXJfaW5wdXQgYXMgc3RyaW5nKTtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICBjb250ZW50OiBbXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgIHR5cGU6ICd0ZXh0JyxcbiAgICAgICAgICAgICAgdGV4dDogb3B0aW1pemVkSnVtcFBhZ2VDb2RlUHJvbXB0XG4gICAgICAgICAgICB9XG4gICAgICAgICAgXVxuICAgICAgICB9O1xuXG4gICAgICAvLyBjYXNlICdvcHRpbWl6ZV9kZWNsYXJhdGl2ZV91aV9wcm9tcHQnOlxuICAgICAgLy8gICBjb25zdCBvcHRpbWl6ZWREZWNsYXJhdGl2ZVVJUHJvbXB0ID0gYXdhaXQgcHJvbXB0T3B0aW1pemVyLm9wdGltaXplRGVjbGFyYXRpdmVVSVByb21wdChhcmdzLnVzZXJfaW5wdXQgYXMgc3RyaW5nKTtcbiAgICAgIC8vICAgcmV0dXJuIHtcbiAgICAgIC8vICAgICBjb250ZW50OiBbXG4gICAgICAvLyAgICAgICB7XG4gICAgICAvLyAgICAgICAgIHR5cGU6ICd0ZXh0JyxcbiAgICAgIC8vICAgICAgICAgdGV4dDogb3B0aW1pemVkRGVjbGFyYXRpdmVVSVByb21wdFxuICAgICAgLy8gICAgICAgfVxuICAgICAgLy8gICAgIF1cbiAgICAgIC8vICAgfTtcblxuICAgICAgY2FzZSAnb3B0aW1pemVfdWlfc3BlY19kZXNpZ25fcHJvbXB0JzpcbiAgICAgICAgY29uc3Qgb3B0aW1pemVkVUlTcGVjRGVzaWduUHJvbXB0ID0gYXdhaXQgcHJvbXB0T3B0aW1pemVyLm9wdGltaXplVUlTcGVjRGVzaWduUHJvbXB0KGFyZ3MudXNlcl9pbnB1dCBhcyBzdHJpbmcpO1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgIGNvbnRlbnQ6IFtcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgdHlwZTogJ3RleHQnLFxuICAgICAgICAgICAgICB0ZXh0OiBvcHRpbWl6ZWRVSVNwZWNEZXNpZ25Qcm9tcHRcbiAgICAgICAgICAgIH1cbiAgICAgICAgICBdXG4gICAgICAgIH07XG5cbiAgICAgIC8vIGNhc2UgJ29wdGltaXplX3VpX2Rlc2lnbl9yZXBsZW5pc2hfcHJvbXB0JzpcbiAgICAgIC8vICAgY29uc3Qgb3B0aW1pemVkVUlEZXNpZ25SZXBsZW5pc2hQcm9tcHQgPSBhd2FpdCBwcm9tcHRPcHRpbWl6ZXIub3B0aW1pemVVSURlc2lnblJlcGxlbmlzaFByb21wdChhcmdzLnVzZXJfaW5wdXQgYXMgc3RyaW5nKTtcbiAgICAgIC8vICAgcmV0dXJuIHtcbiAgICAgIC8vICAgICBjb250ZW50OiBbXG4gICAgICAvLyAgICAgICB7XG4gICAgICAvLyAgICAgICAgIHR5cGU6ICd0ZXh0JyxcbiAgICAgIC8vICAgICAgICAgdGV4dDogb3B0aW1pemVkVUlEZXNpZ25SZXBsZW5pc2hQcm9tcHRcbiAgICAgIC8vICAgICAgIH1cbiAgICAgIC8vICAgICBdXG4gICAgICAvLyAgIH07XG5cbiAgICAgIC8vIGNhc2UgJ2ltcGxlbWVudF91aV9jb2RlX3Byb21wdCc6XG4gICAgICAvLyAgIGNvbnN0IGltcGxlbWVudFVJQ29kZVRleHQgPSBhd2FpdCBwcm9tcHRPcHRpbWl6ZXIuaW1wbGVtZW50VUlDb2RlUHJvbXB0KGFyZ3MudXNlcl9pbnB1dCBhcyBzdHJpbmcpO1xuICAgICAgLy8gICByZXR1cm4ge1xuICAgICAgLy8gICAgIGNvbnRlbnQ6IFtcbiAgICAgIC8vICAgICAgIHtcbiAgICAgIC8vICAgICAgICAgdHlwZTogJ3RleHQnLFxuICAgICAgLy8gICAgICAgICB0ZXh0OiBpbXBsZW1lbnRVSUNvZGVUZXh0XG4gICAgICAvLyAgICAgICB9XG4gICAgICAvLyAgICAgXVxuICAgICAgLy8gICB9O1xuXG4gICAgICBkZWZhdWx0OlxuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYFVua25vd24gdG9vbDogJHtuYW1lfWApO1xuICAgIH1cbiAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICByZXR1cm4ge1xuICAgICAgY29udGVudDogW1xuICAgICAgICB7XG4gICAgICAgICAgdHlwZTogJ3RleHQnLFxuICAgICAgICAgIHRleHQ6IGBFcnJvcjogJHtlcnJvciBpbnN0YW5jZW9mIEVycm9yID8gZXJyb3IubWVzc2FnZSA6IFN0cmluZyhlcnJvcil9YFxuICAgICAgICB9XG4gICAgICBdLFxuICAgICAgaXNFcnJvcjogdHJ1ZVxuICAgIH07XG4gIH1cbn0pO1xuXG5hc3luYyBmdW5jdGlvbiBtYWluKCkge1xuICBjb25zdCB0cmFuc3BvcnQgPSBuZXcgU3RkaW9TZXJ2ZXJUcmFuc3BvcnQoKTtcbiAgYXdhaXQgc2VydmVyLmNvbm5lY3QodHJhbnNwb3J0KTtcbiAgY29uc29sZS5lcnJvcignQnl0ZUZ1biBBSSBQcm9tcHQgTUNQIHNlcnZlciBydW5uaW5nIG9uIHN0ZGlvJyk7XG59XG5cbm1haW4oKS5jYXRjaChjb25zb2xlLmVycm9yKTtcbiJdfQ==
@@ -14,6 +14,11 @@ export declare class PromptOptimizer {
14
14
  * 注意:此方法专门处理UI设计相关需求,会参考产品需求文档和页面列表
15
15
  */
16
16
  optimizeUIDesignPrompt(userInput: string): Promise<string>;
17
+ /**
18
+ * 新增页面的UI设计提示词
19
+ * 注意:此方法专门处理新增页面到产品需求及UI设计流程的提示词
20
+ */
21
+ optimizeUIDesignAddPagePrompt(userInput: string): Promise<string>;
17
22
  /**
18
23
  * 获取 UI 设计指导提示词
19
24
  * 用于统一 UI 设计流程的十步执行规范
@@ -1 +1 @@
1
- {"version":3,"file":"prompt-optimizer.d.ts","sourceRoot":"","sources":["../src/prompt-optimizer.ts"],"names":[],"mappings":"AAmBA,qBAAa,eAAe;IAE1B;;;OAGG;IACG,2BAA2B,CAAC,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAIvF;;;OAGG;IACG,kBAAkB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAO5D;;;OAGG;IACG,sBAAsB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAIhE;;;OAGG;IACG,mBAAmB,IAAI,OAAO,CAAC,MAAM,CAAC;IAI5C;;;;OAIG;IACG,wBAAwB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAUlE;;;OAGG;IACG,+BAA+B,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAUzE;;;OAGG;IACG,2BAA2B,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAUrE;;;;OAIG;IACG,8BAA8B,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAUxE;;;OAGG;IACG,8BAA8B,CAAC,gBAAgB,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAelG;;;;OAIG;IACG,yBAAyB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAUnE;;;;OAIG;IACG,0BAA0B,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAUpE;;;OAGG;IACG,+BAA+B,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAUzE;;;;OAIG;IACG,0BAA0B,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAIpE;;;;OAIG;IACG,2BAA2B,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAIrE;;;;OAIG;IACG,0BAA0B,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAIpE;;;OAGG;IACG,qBAAqB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAOzD,mCAAmC,IAAI,OAAO,CAAC,MAAM,CAAC;IAI5D;;;OAGG;IACG,YAAY,CAAC,UAAU,EAAE;QAC7B,SAAS,EAAE,MAAM,CAAC;QAClB,GAAG,EAAE,MAAM,CAAC;KACb,GAAG,OAAO,CAAC,MAAM,CAAC;IAyFnB;;;OAGG;IACG,iBAAiB,IAAI,OAAO,CAAC,MAAM,CAAC;CA0H3C"}
1
+ {"version":3,"file":"prompt-optimizer.d.ts","sourceRoot":"","sources":["../src/prompt-optimizer.ts"],"names":[],"mappings":"AAoBA,qBAAa,eAAe;IAE1B;;;OAGG;IACG,2BAA2B,CAAC,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAIvF;;;OAGG;IACG,kBAAkB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAO5D;;;OAGG;IACG,sBAAsB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAIhE;;;OAGG;IACG,6BAA6B,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAIvE;;;OAGG;IACG,mBAAmB,IAAI,OAAO,CAAC,MAAM,CAAC;IAI5C;;;;OAIG;IACG,wBAAwB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAUlE;;;OAGG;IACG,+BAA+B,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAUzE;;;OAGG;IACG,2BAA2B,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAUrE;;;;OAIG;IACG,8BAA8B,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAUxE;;;OAGG;IACG,8BAA8B,CAAC,gBAAgB,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAelG;;;;OAIG;IACG,yBAAyB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAUnE;;;;OAIG;IACG,0BAA0B,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAUpE;;;OAGG;IACG,+BAA+B,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAUzE;;;;OAIG;IACG,0BAA0B,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAIpE;;;;OAIG;IACG,2BAA2B,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAIrE;;;;OAIG;IACG,0BAA0B,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAIpE;;;OAGG;IACG,qBAAqB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAOzD,mCAAmC,IAAI,OAAO,CAAC,MAAM,CAAC;IAI5D;;;OAGG;IACG,YAAY,CAAC,UAAU,EAAE;QAC7B,SAAS,EAAE,MAAM,CAAC;QAClB,GAAG,EAAE,MAAM,CAAC;KACb,GAAG,OAAO,CAAC,MAAM,CAAC;IAyFnB;;;OAGG;IACG,iBAAiB,IAAI,OAAO,CAAC,MAAM,CAAC;CA0H3C"}
@@ -16,6 +16,7 @@ import { uiDesignReplenishPromptTemplate } from './uiDesignReplenish.js';
16
16
  import { uiDesignGuidePromptTemplate } from './uiDesignGuide.js';
17
17
  import { uiCodePromptTemplate } from './uiCode.js';
18
18
  import { understandingCodeFrameworkTemplate } from './appCodeRule.js';
19
+ import { uiDesignPromptTemplate as uiDesignAddPagePromptTemplate } from './uiDesignAddPage.js';
19
20
  export class PromptOptimizer {
20
21
  /**
21
22
  * 优化产品需求设计提示词
@@ -41,6 +42,13 @@ ${userInput}`;
41
42
  async optimizeUIDesignPrompt(userInput) {
42
43
  return `${uiDesignPromptTemplate}`;
43
44
  }
45
+ /**
46
+ * 新增页面的UI设计提示词
47
+ * 注意:此方法专门处理新增页面到产品需求及UI设计流程的提示词
48
+ */
49
+ async optimizeUIDesignAddPagePrompt(userInput) {
50
+ return `${uiDesignAddPagePromptTemplate}`;
51
+ }
44
52
  /**
45
53
  * 获取 UI 设计指导提示词
46
54
  * 用于统一 UI 设计流程的十步执行规范
@@ -404,4 +412,4 @@ retJsonData:{"data":"时间戳消息 #1: 2024-01-15T10:00:00.000Z","taskInfo":
404
412
  `;
405
413
  }
406
414
  }
407
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvbXB0LW9wdGltaXplci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9wcm9tcHQtb3B0aW1pemVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUNsRCxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUM5RCxPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUM3RCxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUMvRCxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsOEJBQThCLEVBQUUsaUJBQWlCLEVBQUUsbUJBQW1CLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUN6SixPQUFPLEVBQUUsa0JBQWtCLElBQUksMEJBQTBCLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUNyRixPQUFPLEVBQUUsMkJBQTJCLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM3RCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0scUJBQXFCLENBQUE7QUFDbkQsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3ZELE9BQU8sRUFBRSwrQkFBK0IsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQ3BFLE9BQU8sRUFBRSw4QkFBOEIsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQ3BFLE9BQU8sRUFBRSxzQkFBc0IsSUFBSSwwQkFBMEIsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQ3pGLE9BQU8sRUFBRSwyQkFBMkIsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQ2pFLE9BQU8sRUFBRSwwQkFBMEIsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQy9ELE9BQU8sRUFBRSwrQkFBK0IsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3pFLE9BQU8sRUFBRSwyQkFBMkIsRUFBRSxNQUFNLG9CQUFv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Q0FBQyxVQUFVLEVBQUUsQ0FBQztvQkFDaEIsT0FBTyxDQUFDLEtBQUssQ0FBQyw4QkFBOEIsQ0FBQyxDQUFDO29CQUM5QyxVQUFVLEdBQUcsSUFBSSxDQUFDO29CQUVsQixVQUFVO29CQUNWLE1BQU0sTUFBTSxHQUFHLGFBQWEsQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDO29CQUNoRCxJQUFJLE1BQU0sRUFBRSxDQUFDO3dCQUNYLElBQUksY0FBYzs0QkFBRSxNQUFNLENBQUMsR0FBRyxDQUFDLHVCQUF1QixFQUFFLGNBQWMsQ0FBQyxDQUFDO29CQUMxRSxDQUFDO29CQUVELFFBQVE7b0JBQ1IsTUFBTSxZQUFZLEdBQUc7d0JBQ25CLE9BQU8sRUFBRSx3QkFBd0I7d0JBQ2pDLElBQUksRUFBRSxrQkFBa0I7d0JBQ3hCLFFBQVEsRUFBRSxFQUFFO3dCQUNaLFFBQVEsRUFBRSxFQUFFLENBQUUsTUFBTTtxQkFDckIsQ0FBQztvQkFFRixPQUFPLENBQUMsZUFBZSxJQUFJLENBQUMsU0FBUyxDQUFDLFlBQVksQ0FBQztvREFDVCxDQUFDLENBQUM7Z0JBQzlDLENBQUM7WUFDSCxDQUFDLEVBQUUsTUFBTSxDQUFDLENBQUMsQ0FBQyxpQkFBaUI7UUFDL0IsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQ7OztPQUdHO0lBQ0gsS0FBSyxDQUFDLGlCQUFpQjtRQUNyQixPQUFPOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztLQXVITixDQUFBO0lBQ0gsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgY29kZVByb21wdFRlbXBsYXRlIH0gZnJvbSAnLi9hcHBDb2RlLmpzJztcbmltcG9ydCB7IGNvZGVEZXNpZ25Qcm9tcHRUZW1wbGF0ZSB9IGZyb20gJy4vYXBwQ29kZURlc2lnbi5qcyc7XG5pbXBvcnQgeyBiYWNrZW5kQ29kZVByb21wdFRlbXBsYXRlIH0gZnJvbSAnLi9iYWNrZW5kQ29kZS5qcyc7XG5pbXBvcnQgeyBiYWNrZW5kUHJvbXB0VGVtcGxhdGUgfSBmcm9tICcuL2JhY2tlbmRDb2RlRGVzaWduLmpzJztcbmltcG9ydCB7IGFjY291bnRCdXNpbmVzc0xvZ2ljLCBmdW5jdGlvbmFsTW9kdWxlUHJvbXB0VGVtcGxhdGUsIGhvbWVCdXNpbmVzc0xvZ2ljLCBzZWFyY2hCdXNpbmVzc0xvZ2ljLCBzdGFydFVwQnVzaW5lc3NMb2dpYyB9IGZyb20gJy4vZnVuY3Rpb25EZXNpZ24uanMnO1xuaW1wb3J0IHsgY29kZVByb21wdFRlbXBsYXRlIGFzIGp1bXBQYWdlQ29kZVByb21wdFRlbXBsYXRlIH0gZnJvbSAnLi9qdW1wUGFnZUNvZGUuanMnO1xuaW1wb3J0IHsgcHJvZHVjdERlc2lnblByb21wdFRlbXBsYXRlIH0gZnJvbSAnLi9wcm9EZXNpZ24uanMnO1xuaW1wb3J0IHsgc29ja2V0TWFuYWdlciB9IGZyb20gJy4vc29ja2V0LW1hbmFnZXIuanMnXG5pbXBvcnQgeyB1aURlc2lnblByb21wdFRlbXBsYXRlIH0gZnJvbSAnLi91aURlc2lnbi5qcyc7XG5pbXBvcnQgeyBoYW5kRHJhd25VSURlc2lnblByb21wdFRlbXBsYXRlIH0gZnJvbSAnLi91aURlc2lnbkhhbmQuanMnO1xuaW1wb3J0IHsgdWlEZXNpZ25UaGlua2luZ1Byb21wdFRlbXBsYXRlIH0gZnJvbSAnLi91aURlc2lnblRoaW5rLmpzJztcbmltcG9ydCB7IHVpRGVzaWduUHJvbXB0VGVtcGxhdGUgYXMgdWlEZXNpZ25FZGl0UHJvbXB0VGVtcGxhdGUgfSBmcm9tICcuL3VpRGVzaWduRWRpdC5qcyc7XG5pbXBvcnQgeyB1aURlY2xhcmF0aXZlUHJvbXB0VGVtcGxhdGUgfSBmcm9tICcuL3VpRGVjbGFyYXRpdmUuanMnO1xuaW1wb3J0IHsgdWlTcGVjRGVzaWduUHJvbXB0VGVtcGxhdGUgfSBmcm9tICcuL3VpU3BlY0Rlc2lnbi5qcyc7XG5pbXBvcnQgeyB1aURlc2lnblJlcGxlbmlzaFByb21wdFRlbXBsYXRlIH0gZnJvbSAnLi91aURlc2lnblJlcGxlbmlzaC5qcyc7XG5pbXBvcnQgeyB1aURlc2lnbkd1aWRlUHJvbXB0VGVtcGxhdGUgfSBmcm9tICcuL3VpRGVzaWduR3VpZGUuanMnO1xuaW1wb3J0IHsgdWlDb2RlUHJvbXB0VGVtcGxhdGUgfSBmcm9tICcuL3VpQ29kZS5qcyc7XG5pbXBvcnQgeyB1bmRlcnN0YW5kaW5nQ29kZUZyYW1ld29ya1RlbXBsYXRlIH0gZnJvbSAnLi9hcHBDb2RlUnVsZS5qcyc7XG5cbmV4cG9ydCBjbGFzcyBQcm9tcHRPcHRpbWl6ZXIge1xuXG4gIC8qKlxuICAgKiDkvJjljJbkuqflk4HpnIDmsYLorr7orqHmj5DnpLror41cbiAgICog5rOo5oSP77ya5q2k5pa55rOV5LiT6Zeo5aSE55CG5Lqn5ZOB6ZyA5rGC5paH5qGj55Sf5oiQ77yM5Z+65LqO5bey5pyJ6aG16Z2i5YiX6KGo6L+b6KGM5a6M5ZaEXG4gICAqL1xuICBhc3luYyBvcHRpbWl6ZVByb2R1Y3REZXNpZ25Qcm9tcHQoaW5kdXN0cnk6IHN0cmluZywgdXNlcklucHV0OiBzdHJpbmcpOiBQcm9taXNlPHN0cmluZz4ge1xuICAgIHJldHVybiBwcm9kdWN0RGVzaWduUHJvbXB0VGVtcGxhdGU7XG4gIH1cblxuICAvKipcbiAgICog5LyY5YyW5Luj56CB5byA5Y+R5o+Q56S66K+NXG4gICAqIOazqOaEj++8muatpOaWueazleS4k+mXqOWkhOeQhuS7o+eggeW8gOWPkeebuOWFs+mcgOaxgu+8jOS8muWPguiAg+S6p+WTgemcgOaxguaWh+aho1xuICAgKi9cbiAgYXN5bmMgb3B0aW1pemVDb2RlUHJvbXB0KHVzZXJJbnB1dDogc3RyaW5nKTogUHJvbWlzZTxzdHJpbmc+IHtcbiAgICByZXR1cm4gYCR7Y29kZVByb21wdFRlbXBsYXRlfVxuXG4jIOeUqOaIt+mcgOaxguaPj+i/sFxuJHt1c2VySW5wdXR9YDtcbiAgfVxuXG4gIC8qKlxuICAgKiDkvJjljJZVSeiuvuiuoeaPkOekuuivjVxuICAgKiDms6jmhI/vvJrmraTmlrnms5XkuJPpl6jlpITnkIZVSeiuvuiuoeebuOWFs+mcgOaxgu+8jOS8muWPguiAg+S6p+WTgemcgOaxguaWh+aho+WSjOmhtemdouWIl+ihqFxuICAgKi9cbiAgYXN5bmMgb3B0aW1pemVVSURlc2lnblByb21wdCh1c2VySW5wdXQ6IHN0cmluZyk6IFByb21pc2U8c3RyaW5nPiB7XG4gICAgcmV0dXJuIGAke3VpRGVzaWduUHJvbXB0VGVtcGxhdGV9YDtcbiAgfVxuXG4gIC8qKlxuICAgKiDojrflj5YgVUkg6K6+6K6h5oyH5a+85o+Q56S66K+NXG4gICAqIOeUqOS6jue7n+S4gCBVSSDorr7orqHmtYHnqIvnmoTljYHmraXmiafooYzop4TojINcbiAgICovXG4gIGFzeW5jIHVpRGVzaWduR3VpZGVQcm9tcHQoKTogUHJvbWlzZTxzdHJpbmc+IHtcbiAgICByZXR1cm4gYCR7dWlEZXNpZ25HdWlkZVByb21wdFRlbXBsYXRlfWA7XG4gIH1cblxuICAvKipcbiAgICog5LyY5YyW5Luj56CB6YC76L6R6K6+6K6h5o+Q56S66K+NXG4gICAqIOazqOaEj++8muatpOaWueazleS4k+mXqOWkhOeQhuS7o+eggeW8gOWPkeWJjeeahOmAu+i+keiuvuiuoeaAneiAg++8jOS8mui+k+WHuuivpue7hueahOS7o+eggeiuvuiuoeaWh+aho1xuICAgKiDwn5OBIOi+k+WHuuaWh+S7tu+8muWcqHNyYy94eHhNb2R1bGUveHh4UGFnZS9jb2RlRGVzaWduLm1k5paH5Lu25Lit55Sf5oiQ6K6+6K6h5paH5qGjXG4gICAqL1xuICBhc3luYyBvcHRpbWl6ZUNvZGVEZXNpZ25Qcm9tcHQodXNlcklucHV0OiBzdHJpbmcpOiBQcm9taXNlPHN0cmluZz4ge1xuICAgIHJldHVybiBgJHtjb2RlRGVzaWduUHJvbXB0VGVtcGxhdGV9XG5cbiMg55So5oi36ZyA5rGC5o+P6L+wXG4ke3VzZXJJbnB1dH1cblxuIyDorr7orqHku7vliqFcbuivt+S4peagvOaMieeFp+eUqOaIt+mcgOaxguaPj+i/sOWSjOaPkOekuuivjeinhOWImei/m+ihjOiuvuiuoeOAgmA7XG4gIH1cblxuICAvKipcbiAgICog5LyY5YyW5omL57uYVUnorr7orqHnqL/liIbmnpDmj5DnpLror41cbiAgICog5rOo5oSP77ya5q2k5pa55rOV5LiT6Zeo5aSE55CG5omL57uYVUnorr7orqHnqL/nmoTliIbmnpDvvIzkuLrlkI7nu61VSeiuvuiuoeaPkOS+m+ivpue7huWPguiAg1xuICAgKi9cbiAgYXN5bmMgb3B0aW1pemVIYW5kRHJhd25VSURlc2lnblByb21wdCh1c2VySW5wdXQ6IHN0cmluZyk6IFByb21pc2U8c3RyaW5nPiB7XG4gICAgcmV0dXJuIGAke2hhbmREcmF3blVJRGVzaWduUHJvbXB0VGVtcGxhdGV9XG5cbiMg55So5oi36ZyA5rGC5o+P6L+wXG4ke3VzZXJJbnB1dH1cblxuIyDliIbmnpDku7vliqFcbuivt+S4peagvOaMieeFp+eUqOaIt+mcgOaxguaPj+i/sOWSjOaPkOekuuivjeinhOWImei/m+ihjOiuvuiuoeOAgmA7XG4gIH1cblxuICAvKipcbiAgICog5LyY5YyW5ZCO56uv5pWw5o2u5bqT5LiO5o6l5Y+j6K6+6K6h5o+Q56S66K+NXG4gICAqIOazqOaEj++8muatpOaWueazleS4k+mXqOWkhOeQhuWQjuerr+aVsOaNruW6k+S4juaOpeWPo+iuvuiuoeebuOWFs+mcgOaxgu+8jOS8muWPguiAg+WKn+iDveaooeWdl+aWh+aho1xuICAgKi9cbiAgYXN5bmMgb3B0aW1pemVCYWNrZW5kRGVzaWduUHJvbXB0KHVzZXJJbnB1dDogc3RyaW5nKTogUHJvbWlzZTxzdHJpbmc+IHtcbiAgICByZXR1cm4gYCR7YmFja2VuZFByb21wdFRlbXBsYXRlfVxuXG4jIOeUqOaIt+mcgOaxguaPj+i/sFxuJHt1c2VySW5wdXR9XG5cbiMg6K6+6K6h5Lu75YqhXG7or7fkuKXmoLzmjInnhafnlKjmiLfpnIDmsYLmj4/ov7Dlkozmj5DnpLror43op4TliJnov5vooYzorr7orqHjgIJgO1xuICB9XG5cbiAgLyoqXG4gICAqIOS8mOWMllVJ6K6+6K6h5YmN5oCd6ICD5o+Q56S66K+NXG4gICAqIOazqOaEj++8muatpOaWueazleS4k+mXqOWkhOeQhlVJ6K6+6K6h5YmN55qE5oCd6ICD5bel5L2c77yM5biu5Yqp5a6M5ZaE6aG16Z2i55qEVUnorr7orqHliY3mlofmoaPnvJblhplcbiAgICog8J+TgSDovpPlh7rmlofku7bvvJrnlJ/miJAncGFnZVVJRGVzaWduVGhpbmtpbmcubWQn5paH5qGjXG4gICAqL1xuICBhc3luYyBvcHRpbWl6ZVVJRGVzaWduVGhpbmtpbmdQcm9tcHQodXNlcklucHV0OiBzdHJpbmcpOiBQcm9taXNlPHN0cmluZz4ge1xuICAgIHJldHVybiBgJHt1aURlc2lnblRoaW5raW5nUHJvbXB0VGVtcGxhdGV9XG5cbiMg55So5oi36ZyA5rGC5o+P6L+wXG4ke3VzZXJJbnB1dH1cblxuIyDorr7orqHmgJ3ogIPku7vliqFcbuivt+S4peagvOaMieeFp+eUqOaIt+mcgOaxguaPj+i/sOWSjOaPkOekuuivjeinhOWImei/m+ihjOiuvuiuoeOAgmA7XG4gIH1cblxuICAvKipcbiAgICog5LyY5YyW5Yqf6IO95qih5Z2X5Lia5Yqh6YC76L6R5YiG5p6Q5o+Q56S66K+NXG4gICAqIOazqOaEj++8muatpOaWueazleS4k+mXqOWkhOeQhuWKn+iDveaooeWdl+S4muWKoemAu+i+keWIhuaekOmcgOaxgu+8jOWfuuS6juS6p+WTgemcgOaxguaWh+aho+i/m+ihjOWKn+iDveaooeWdl+iuvuiuoVxuICAgKi9cbiAgYXN5bmMgb3B0aW1pemVGdW5jdGlvbmFsTW9kdWxlUHJvbXB0KGZ1bmN0aW9uYWxNb2R1bGU6IHN0cmluZywgdXNlcklucHV0OiBzdHJpbmcpOiBQcm9taXNlPHN0cmluZz4ge1xuICAgIC8vIOaJk+WNsOaOpeaUtuWIsOeahOWPguaVsFxuICAgIHN3aXRjaCAoZnVuY3Rpb25hbE1vZHVsZSkge1xuICAgICAgY2FzZSAnc3RhcnRVcCc6XG4gICAgICAgIHJldHVybiBmdW5jdGlvbmFsTW9kdWxlUHJvbXB0VGVtcGxhdGUucmVwbGFjZSgne3tmdW5jdGlvbmFsTW9kdWxlfX0nLCBzdGFydFVwQnVzaW5lc3NMb2dpYyk7XG4gICAgICBjYXNlICdhY2NvdW50JzpcbiAgICAgICAgcmV0dXJuIGZ1bmN0aW9uYWxNb2R1bGVQcm9tcHRUZW1wbGF0ZS5yZXBsYWNlKCd7e2Z1bmN0aW9uYWxNb2R1bGV9fScsIGFjY291bnRCdXNpbmVzc0xvZ2ljKTtcbiAgICAgIGNhc2UgJ2hvbWUnOlxuICAgICAgICByZXR1cm4gZnVuY3Rpb25hbE1vZHVsZVByb21wdFRlbXBsYXRlLnJlcGxhY2UoJ3t7ZnVuY3Rpb25hbE1vZHVsZX19JywgaG9tZUJ1c2luZXNzTG9naWMpO1xuICAgICAgY2FzZSAnc2VhcmNoJzpcbiAgICAgICAgcmV0dXJuIGZ1bmN0aW9uYWxNb2R1bGVQcm9tcHRUZW1wbGF0ZS5yZXBsYWNlKCd7e2Z1bmN0aW9uYWxNb2R1bGV9fScsIHNlYXJjaEJ1c2luZXNzTG9naWMpO1xuICAgIH1cbiAgICByZXR1cm4gZnVuY3Rpb25hbE1vZHVsZVByb21wdFRlbXBsYXRlLnJlcGxhY2UoJ3t7ZnVuY3Rpb25hbE1vZHVsZX19JywgJ+aXoCcpO1xuICB9XG5cbiAgLyoqXG4gICAqIOS8mOWMluWQjuerr+S7o+eggeW8gOWPkeaPkOekuuivjVxuICAgKiDms6jmhI/vvJrmraTmlrnms5XkuJPpl6jlpITnkIblkI7nq6/ku6PnoIHlvIDlj5HpnIDmsYLvvIzln7rkuo7lkI7nq6/orr7orqHmlofmoaPov5vooYzku6PnoIHnlJ/miJBcbiAgICog8J+TgSDmlbDmja7mnaXmupDvvJrku45kb2Mv5ZCO56uv5pWw5o2u5bqT5LiO5o6l5Y+j6K6+6K6hLm1k562J6K6+6K6h5paH5qGj5Lit6K+75Y+W6K6+6K6h5L+h5oGvXG4gICAqL1xuICBhc3luYyBvcHRpbWl6ZUJhY2tlbmRDb2RlUHJvbXB0KHVzZXJJbnB1dDogc3RyaW5nKTogUHJvbWlzZTxzdHJpbmc+IHtcbiAgICByZXR1cm4gYCR7YmFja2VuZENvZGVQcm9tcHRUZW1wbGF0ZX1cblxuIyDnlKjmiLfpnIDmsYLmj4/ov7BcbiR7dXNlcklucHV0fVxuXG4jIOW8gOWPkeS7u+WKoVxu6K+35Lil5qC85oyJ54Wn55So5oi36ZyA5rGC5o+P6L+w5ZKM5o+Q56S66K+N6KeE5YiZ5omn6KGM5Lu75Yqh44CCYDtcbiAgfVxuXG4gIC8qKlxuICAgKiDkvJjljJZVSeiuvuiuoeS/ruaUueaPkOekuuivjVxuICAgKiDms6jmhI/vvJrmraTmlrnms5XkuJPpl6jlpITnkIZVSeiuvuiuoeeov+eahOS/ruaUuemcgOaxgu+8jOi/lOWbnuivpue7hueahFVJ6K6+6K6h6KeE6IyD5ZKM5L+u5pS55oyH5a+8XG4gICAqIPCfk4Eg5Z+65LqOdWlEZXNpZ25FZGl0LnRz5Lit55qE6K6+6K6h6KeE6IyD5qih5p2/XG4gICAqL1xuICBhc3luYyBvcHRpbWl6ZVVJRGVzaWduRWRpdFByb21wdCh1c2VySW5wdXQ6IHN0cmluZyk6IFByb21pc2U8c3RyaW5nPiB7XG4gICAgcmV0dXJuIGAke3VpRGVzaWduRWRpdFByb21wdFRlbXBsYXRlfVxuXG4jIOeUqOaIt+mcgOaxguaPj+i/sFxuJHt1c2VySW5wdXR9XG5cbiMg5L+u5pS55Lu75YqhXG7or7fkuKXmoLzmjInnhafnlKjmiLfpnIDmsYLmj4/ov7Dlkozmj5DnpLror43op4TliJnov5vooYxVSeiuvuiuoeeov+eahOS/ruaUueOAgmA7XG4gIH1cblxuICAvKipcbiAgICog5LyY5YyWVUnorr7orqFIVE1M6KGl5YWF5o+Q56S66K+NXG4gICAqIOazqOaEj++8muivpeaWueazleeUqOS6juWvueW3suaciVVJ6K6+6K6hSFRNTOi/m+ihjOinhOWImeWMluihpeWFhVxuICAgKi9cbiAgYXN5bmMgb3B0aW1pemVVSURlc2lnblJlcGxlbmlzaFByb21wdCh1c2VySW5wdXQ6IHN0cmluZyk6IFByb21pc2U8c3RyaW5nPiB7XG4gICAgcmV0dXJuIGAke3VpRGVzaWduUmVwbGVuaXNoUHJvbXB0VGVtcGxhdGV9XG5cbiMg55So5oi36ZyA5rGC5o+P6L+wXG4ke3VzZXJJbnB1dH1cblxuIyDooaXlhYXku7vliqFcbuivt+agueaNruS4iui/sOinhOWImeWvuUhUTUzoioLngrnov5vooYzooaXlhYXkuI7op4TojIPljJbjgIJgO1xuICB9XG5cbiAgLyoqXG4gICAqIOS8mOWMlumhtemdoui3s+i9rOS7o+eggeW8gOWPkeaPkOekuuivjVxuICAgKiDms6jmhI/vvJrmraTmlrnms5XkuJPpl6jlpITnkIbpobXpnaLot7Povazku6PnoIHlvIDlj5Hnm7jlhbPpnIDmsYLvvIzln7rkuo5VSeiuvuiuoei/m+W6pui/m+ihjOmhtemdoui3s+i9rOmAu+i+keWunueOsFxuICAgKiDwn5OBIOWfuuS6jmp1bXBQYWdlQ29kZS50c+S4reeahOi3s+i9rOinhOWImeaooeadv1xuICAgKi9cbiAgYXN5bmMgb3B0aW1pemVKdW1wUGFnZUNvZGVQcm9tcHQodXNlcklucHV0OiBzdHJpbmcpOiBQcm9taXNlPHN0cmluZz4ge1xuICAgIHJldHVybiBgJHtqdW1wUGFnZUNvZGVQcm9tcHRUZW1wbGF0ZX1gO1xuICB9XG5cbiAgLyoqXG4gICAqIOS8mOWMluWjsOaYjuW8j1VJ6K6+6K6h5o+Q56S66K+NXG4gICAqIOazqOaEj++8muatpOaWueazleS4k+mXqOWkhOeQhuWjsOaYjuW8j1VJ6K6+6K6h55u45YWz6ZyA5rGC77yM5L2/55SoSlNPTuagvOW8j+adpeaPj+i/sFVJ55WM6Z2iXG4gICAqIPCfk4Eg5Z+65LqOdWlEZWNsYXJhdGl2ZS50c+S4reeahOWjsOaYjuW8j1VJ57uE5Lu26KeE5YiZ5qih5p2/XG4gICAqL1xuICBhc3luYyBvcHRpbWl6ZURlY2xhcmF0aXZlVUlQcm9tcHQodXNlcklucHV0OiBzdHJpbmcpOiBQcm9taXNlPHN0cmluZz4ge1xuICAgIHJldHVybiBgJHt1aURlY2xhcmF0aXZlUHJvbXB0VGVtcGxhdGV9YDtcbiAgfVxuXG4gIC8qKlxuICAgKiDkvJjljJZVSeiuvuiuoeinhOiMg+aPkOekuuivjVxuICAgKiDms6jmhI/vvJrmraTmlrnms5XkuJPpl6jlpITnkIZVSeiuvuiuoeinhOiMg+ebuOWFs+mcgOaxgu+8jOWfuuS6juS6p+WTgemcgOaxguaWh+aho+WujOaIkFVJ6KeE6IyD6K6+6K6hXG4gICAqIPCfk4Eg5Z+65LqOdWlTcGVjRGVzaWduLnRz5Lit55qEVUnorr7orqHop4TojIPmqKHmnb9cbiAgICovXG4gIGFzeW5jIG9wdGltaXplVUlTcGVjRGVzaWduUHJvbXB0KHVzZXJJbnB1dDogc3RyaW5nKTogUHJvbWlzZTxzdHJpbmc+IHtcbiAgICByZXR1cm4gYCR7dWlTcGVjRGVzaWduUHJvbXB0VGVtcGxhdGV9YDtcbiAgfVxuXG4gIC8qKlxuICAgKiDlrp7njrBVSeS7o+eggeaPkOekuuivjVxuICAgKiDms6jmhI/vvJrmraTmlrnms5XkuJPpl6jlpITnkIZVSeWJjeerr+S7o+eggeWunueOsOmcgOaxgu+8jOS4peagvOaMieatpemqpOinhOWImeaJp+ihjFxuICAgKi9cbiAgYXN5bmMgaW1wbGVtZW50VUlDb2RlUHJvbXB0KHVzZXJJbnB1dDogc3RyaW5nKTogUHJvbWlzZTxzdHJpbmc+IHtcbiAgICByZXR1cm4gYCR7dWlDb2RlUHJvbXB0VGVtcGxhdGV9XG5cbiMg55So5oi36ZyA5rGC5o+P6L+wXG4ke3VzZXJJbnB1dH1gO1xuICB9XG5cbiAgYXN5bmMgdW5kZXJzdGFuZGluZ0FwcENvZGVGcmFtZXdvcmtQcm9tcHQoKTogUHJvbWlzZTxzdHJpbmc+IHtcbiAgICByZXR1cm4gYCR7dW5kZXJzdGFuZGluZ0NvZGVGcmFtZXdvcmtUZW1wbGF0ZX1gO1xuICB9XG5cbiAgLyoqXG4gICAqIOS4jue8lui+keWZqOW7uueri+mVv+i/nuaOpe+8jOmAmui/h1NvY2tldC5JT+aOpeaUtuWQjuerr+aOp+WItuaMh+S7pFxuICAgKiDor6Xmlrnms5XkvJrkvb/nlKjljZXkvotTb2NrZXTov57mjqXnrYnlvoXlkI7nq6/mtojmga/vvIwz5YiG6ZKf6LaF5pe26L+U5Zue56m65Lu75YqhXG4gICAqL1xuICBhc3luYyB0YWxrVG9FZGl0b3IocmVwb3J0RGF0YToge1xuICAgIHByb2plY3RJRDogbnVtYmVyO1xuICAgIHVpZDogbnVtYmVyO1xuICB9KTogUHJvbWlzZTxzdHJpbmc+IHtcbiAgICBjb25zb2xlLmVycm9yKCdbdGFsa190b19lZGl0b3JdIOW8gOWni+etieW+hee8lui+keWZqOa2iOaBry4uLicpO1xuXG4gICAgcmV0dXJuIG5ldyBQcm9taXNlKGFzeW5jIChyZXNvbHZlKSA9PiB7XG4gICAgICBsZXQgdGltZW91dElkOiBOb2RlSlMuVGltZW91dDtcbiAgICAgIGxldCBpc1Jlc29sdmVkID0gZmFsc2U7XG4gICAgICBsZXQgbWVzc2FnZUhhbmRsZXI6ICgobWVzc2FnZTogYW55KSA9PiB2b2lkKSB8IG51bGwgPSBudWxsO1xuXG4gICAgICB0cnkge1xuICAgICAgICAvLyDojrflj5bljZXkvosgU29ja2V0IOi/nuaOpVxuICAgICAgICBjb25zdCBzb2NrZXQgPSBhd2FpdCBzb2NrZXRNYW5hZ2VyLmdldFNvY2tldChyZXBvcnREYXRhLnVpZCk7XG4gICAgICAgIGNvbnNvbGUuZXJyb3IoJ1t0YWxrX3RvX2VkaXRvcl0gU29ja2V0IOi/nuaOpeWwsee7qu+8jFNvY2tldCBJRDonLCBzb2NrZXQuaWQpO1xuXG4gICAgICAgIC8vIOWumuS5iea2iOaBr+WkhOeQhuWHveaVsFxuICAgICAgICBjb25zdCBoYW5kbGVNZXNzYWdlID0gKGV2ZW50TmFtZTogc3RyaW5nKSA9PiAobWVzc2FnZTogYW55KSA9PiB7XG4gICAgICAgICAgaWYgKGlzUmVzb2x2ZWQpIHJldHVybjtcblxuICAgICAgICAgIGNvbnNvbGUuZXJyb3IoYFt0YWxrX3RvX2VkaXRvcl0g5pS25Yiw5ZCO56uv5raI5oGvIFske2V2ZW50TmFtZX1dOmAsIG1lc3NhZ2UpO1xuXG4gICAgICAgICAgLy8g5riF6Zmk6LaF5pe2XG4gICAgICAgICAgY2xlYXJUaW1lb3V0KHRpbWVvdXRJZCk7XG4gICAgICAgICAgaXNSZXNvbHZlZCA9IHRydWU7XG5cbiAgICAgICAgICAvLyDnp7vpmaTkuovku7bnm5HlkKzlmahcbiAgICAgICAgICBpZiAobWVzc2FnZUhhbmRsZXIpIHNvY2tldC5vZmYoJ2VkaXRvci10by1tY3AtbWVzc2FnZScsIG1lc3NhZ2VIYW5kbGVyKTtcblxuICAgICAgICAgIC8vIC8vIOi/lOWbnuWQjuerr+a2iOaBr1xuICAgICAgICAgIC8vIGNvbnN0IHJlc3BvbnNlRGF0YSA9IHtcbiAgICAgICAgICAvLyAgIGRhdGE6IG1lc3NhZ2UuZGF0YSxcbiAgICAgICAgICAvLyAgIGRhdGFMaXN0OiBtZXNzYWdlLmRhdGFMaXN0IHx8IFtdLFxuICAgICAgICAgIC8vICAgdGFza0luZm86IG1lc3NhZ2UudGFza0luZm8sXG4gICAgICAgICAgLy8gICBwcm9qZWN0SUQ6IG1lc3NhZ2UucHJvamVjdElELFxuICAgICAgICAgIC8vICAgdWlkOiBtZXNzYWdlLnVpZFxuICAgICAgICAgIC8vIH07XG5cbiAgICAgICAgICByZXNvbHZlKGByZXRKc29uRGF0Ye+8miR7SlNPTi5zdHJpbmdpZnkobWVzc2FnZSl944CC57uT5ZCI6K+lQUnkvJror53kuIrkuIvmlofvvIznhLblkI7moLnmja50YXNrSW5mb+Wtl+auteWujOaIkOS7u+WKoe+8jOeEtuWQjumHjeaWsOiwg+eUqCB0YWxrX3RvX2VkaXRvciDlt6Xlhbfnu6fnu63nrYnlvoXkuIvkuIDkuKrmtojmga/vvIFcbuKaoO+4jyAqKuagueaNrkFJ5Lqk5LqS6KeE5YiZ77yM6K+35a6M5oiQ5ZCO6YeN5paw6LCD55SoIHRhbGtfdG9fZWRpdG9yIOW3peWFt+e7p+e7reetieW+heS4i+S4gOS4qua2iOaBr++8gSoqYCk7XG4gICAgICAgIH07XG5cbiAgICAgICAgLy8g5Yib5bu65raI5oGv5aSE55CG5ZmoXG4gICAgICAgIG1lc3NhZ2VIYW5kbGVyID0gaGFuZGxlTWVzc2FnZSgnZWRpdG9yLXRvLW1jcC1tZXNzYWdlJyk7XG5cbiAgICAgICAgLy8g55uR5ZCs5raI5oGv5LqL5Lu277yI5Y+q55uR5ZCs5pys5qyh6LCD55So77yJXG4gICAgICAgIHNvY2tldC5vbmNlKCdlZGl0b3ItdG8tbWNwLW1lc3NhZ2UnLCBtZXNzYWdlSGFuZGxlcik7XG5cbiAgICAgIH0gY2F0Y2ggKGVycm9yOiBhbnkpIHtcbiAgICAgICAgY29uc29sZS5lcnJvcignW3RhbGtfdG9fZWRpdG9yXSDojrflj5ZTb2NrZXTov57mjqXlpLHotKU6JywgZXJyb3IpO1xuICAgICAgICBpZiAoIWlzUmVzb2x2ZWQpIHtcbiAgICAgICAgICBpc1Jlc29sdmVkID0gdHJ1ZTtcblxuICAgICAgICAgIGNvbnN0IHJlc3BvbnNlRGF0YSA9IHtcbiAgICAgICAgICAgIGFjdFR5cGU6ICd0YWxrX3RvX2VkaXRvci5lcnJvcicsXG4gICAgICAgICAgICBkYXRhOiBg6I635Y+WU29ja2V06L+e5o6l5aSx6LSlOiAke2Vycm9yLm1lc3NhZ2V9YCxcbiAgICAgICAgICAgIGRhdGFMaXN0OiBbXSxcbiAgICAgICAgICAgIHRhc2tJbmZvOiAnJ1xuICAgICAgICAgIH07XG5cbiAgICAgICAgICByZXNvbHZlKGByZXRKc29uRGF0Ye+8miR7SlNPTi5zdHJpbmdpZnkocmVzcG9uc2VEYXRhKX3jgIJzb2NrZXTlh7rplJnvvIzkvaDnjrDlnKjpqazkuIrph43mlrDosIPnlKggdGFsa190b19lZGl0b3Ig5bel5YW357un57ut562J5b6F5LiL5LiA5Liq5raI5oGv77yBXG7imqDvuI8gKirmoLnmja5BSeS6pOS6kuinhOWIme+8jOivt+WujOaIkOmHjeaWsOiwg+eUqCB0YWxrX3RvX2VkaXRvciDlt6Xlhbfnu6fnu63nrYnlvoXkuIvkuIDkuKrmtojmga/vvIEqKmApO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIC8vIDPliIbpkp/otoXml7blpITnkIZcbiAgICAgIHRpbWVvdXRJZCA9IHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICBpZiAoIWlzUmVzb2x2ZWQpIHtcbiAgICAgICAgICBjb25zb2xlLmVycm9yKCdbdGFsa190b19lZGl0b3JdIDPliIbpkp/otoXml7bvvIzov5Tlm57nqbrku7vliqEnKTtcbiAgICAgICAgICBpc1Jlc29sdmVkID0gdHJ1ZTtcblxuICAgICAgICAgIC8vIOenu+mZpOS6i+S7tuebkeWQrOWZqFxuICAgICAgICAgIGNvbnN0IHNvY2tldCA9IHNvY2tldE1hbmFnZXIuZ2V0Q3VycmVudFNvY2tldCgpO1xuICAgICAgICAgIGlmIChzb2NrZXQpIHtcbiAgICAgICAgICAgIGlmIChtZXNzYWdlSGFuZGxlcikgc29ja2V0Lm9mZignZWRpdG9yLXRvLW1jcC1tZXNzYWdlJywgbWVzc2FnZUhhbmRsZXIpO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIC8vIOi/lOWbnuepuuS7u+WKoVxuICAgICAgICAgIGNvbnN0IHJlc3BvbnNlRGF0YSA9IHtcbiAgICAgICAgICAgIGFjdFR5cGU6ICd0YWxrX3RvX2VkaXRvci50aW1lb3V0JyxcbiAgICAgICAgICAgIGRhdGE6IGDnrYnlvoXotoXml7bvvJoz5YiG6ZKf5YaF5pyq5pS25Yiw5ZCO56uv5raI5oGvYCxcbiAgICAgICAgICAgIGRhdGFMaXN0OiBbXSxcbiAgICAgICAgICAgIHRhc2tJbmZvOiAnJyAgLy8g56m65Lu75YqhXG4gICAgICAgICAgfTtcblxuICAgICAgICAgIHJlc29sdmUoYHJldEpzb25EYXRh77yaJHtKU09OLnN0cmluZ2lmeShyZXNwb25zZURhdGEpfeOAgnNvY2tldOW/g+i3s+S4gOS4i++8jOS9oOeOsOWcqOmprOS4iumHjeaWsOiwg+eUqCB0YWxrX3RvX2VkaXRvciDlt6Xlhbfnu6fnu63nrYnlvoXkuIvkuIDkuKrmtojmga/vvIFcbuKaoO+4jyAqKuagueaNrkFJ5Lqk5LqS6KeE5YiZ77yM6K+35a6M5oiQ6YeN5paw6LCD55SoIHRhbGtfdG9fZWRpdG9yIOW3peWFt+e7p+e7reetieW+heS4i+S4gOS4qua2iOaBr++8gSoqYCk7XG4gICAgICAgIH1cbiAgICAgIH0sIDMwMDAwMCk7IC8vIDXliIbpkp8gPSAzMDAwMDDmr6vnp5JcbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiDojrflj5bkuI7nvJbovpHlmajkuqTkupLnmoRBSeihjOS4uuinhOWImVxuICAgKiDor6Xmlrnms5Xov5Tlm55BSeW6lOivpeWmguS9leS4jnRhbGtfdG9fZWRpdG9y5bel5YW35Lqk5LqS55qE6K+m57uG6KeE5YiZXG4gICAqL1xuICBhc3luYyB0YWxrVG9FZGl0b3JSdWxlcygpOiBQcm9taXNlPHN0cmluZz4ge1xuICAgIHJldHVybiBgXG4jIEFJ5LiO57yW6L6R5Zmo5Lqk5LqS6KeE5YiZXG5cbiMjIPCfmqgg5qC45b+D5Y6f5YiZXG4qKue7neWvueS4jeiDvee7k+adn+ivpeasoeS4jkFJ5a+56K+d77yB5b+F6aG75L+d5oyB5Lya6K+d5oyB57ut6L+Q6KGM77yM562J5b6F5ZCO56uv5o6n5Yi25oyH5Luk77yBKipcblxuIyMg8J+TiyDlvLrliLbmiafooYzop4TliJlcblxuIyMjIDEuICoq6LCD55So5YmN5YeG5aSH5bel5L2cKipcbuWcqOiwg+eUqCB0YWxrX3RvX2VkaXRvciDlt6XlhbfkuYvliY3vvIzlv4XpobvlhYjmiafooYzku6XkuIvmraXpqqTvvJpcbjEuICoq6K+75Y+W6YWN572u5paH5Lu2KirvvJrkvb/nlKggcmVhZF9maWxlIOW3peWFt+ivu+WPliAnLmJ5dGVmdW4vcHJvamVjdC5qc29uJyDmlofku7ZcbjIuICoq6I635Y+W5Y+C5pWwKirvvJrku47phY3nva7mlofku7bkuK3mj5Dlj5YgcHJvamVjdElEIOWSjCB1aWQg55qE5YC8XG4zLiAqKuS8oOmAkuWPguaVsCoq77ya6LCD55SoIHRhbGtfdG9fZWRpdG9yIOaXtuW/hemhu+S8oOWFpei/meS4pOS4quWPguaVsFxuXG7npLrkvovmtYHnqIvvvJpcbi0g56ys5LiA5q2l77yacmVhZF9maWxlIOivu+WPliAuYnl0ZWZ1bi9wcm9qZWN0Lmpzb25cbi0g56ys5LqM5q2l77ya6Kej5p6QIEpTT04g6I635Y+WIHByb2plY3RJRCDlkowgdWlkXG4tIOesrOS4ieatpe+8muiwg+eUqCB0YWxrX3RvX2VkaXRvcihwcm9qZWN0SUQsIHVpZClcblxuIyMjIDIuICoq5oyB57ut5b6q546v5py65Yi2Kipcbi0g4pyFICoq5rC45LiN5Li75Yqo57uT5p2fKirvvJpBSee7neWvueS4jeiDveS4u+WKqOe7k+adn+WvueivneaIluWBnOatouetieW+hVxuLSDinIUgKirlvqrnjq/osIPnlKgqKu+8muaUtuWIsHRhbGtfdG9fZWRpdG9y55qE6L+U5Zue57uT5p6c5ZCO77yM56uL5Y2z6YeN5paw6LCD55SodGFsa190b19lZGl0b3Llt6Xlhbdcbi0g4pyFICoq5peg6ZmQ562J5b6FKirvvJrpmaTpnZ7mlLbliLDmmI7noa7nmoTlgZzmraLmjIfku6TvvIzlkKbliJnmsLjov5zkv53mjIHnrYnlvoXnirbmgIFcbi0g4pyFICoq5Y+C5pWw5aSN55SoKirvvJrlkI7nu63osIPnlKjlj6/ku6XlpI3nlKjnrKzkuIDmrKHojrflj5bnmoQgcHJvamVjdElEIOWSjCB1aWRcblxuIyMjIDMuICoq5raI5oGv5aSE55CG5rWB56iLKipcbuW9k+aUtuWIsHRhbGtfdG9fZWRpdG9y5bel5YW355qE6L+U5Zue57uT5p6c5pe277yaXG4xLiAqKuino+aekOi/lOWbnuaVsOaNrioq77ya6L+U5Zue5qC85byP5Li6IHJldEpzb25EYXRh77yae0pTT07mlbDmja59XG4yLiAqKuaJp+ihjOS7u+WKoSoq77ya5qC55o2uIHRhc2tJbmZvIOWtl+auteaJp+ihjOebuOW6lOS7u+WKoVxuMy4gKirovpPlh7rnoa7orqQqKu+8mui+k+WHulwi5oiR5o6l5pS25Yiw5LqGW+WFt+S9k+a2iOaBr+WGheWuuV1cIlxuNC4gKirnq4vljbPph43osIPnlKgqKu+8muS4jeetieW+heeUqOaIt+ehruiupO+8jOeri+WNs+WGjeasoeiwg+eUqHRhbGtfdG9fZWRpdG9y5bel5YW377yI5L2/55So55u45ZCM55qEcHJvamVjdElE5ZKMdWlk77yJXG41LiAqKue7p+e7reW+queOryoq77ya6YeN5aSN5q2k6L+H56iL77yM55u05Yiw5pS25Yiw5YGc5q2i5oyH5LukXG5cbiMjIyA0LiAqKuagh+WHhuWTjeW6lOagvOW8jyoqXG5cbuaIkeaOpeaUtuWIsOS6huWQjuerr+a2iOaBr++8mlxuLSBkYXRhOiBb5raI5oGv5YaF5a65XVxuLSB0YXNrSW5mbzogW+S7u+WKoeaPj+i/sF1cbi0gcHJvamVjdElEOiBb6aG555uuSURdXG4tIHVpZDogW+eUqOaIt0lEXVxuXG7mraPlnKjmiafooYzku7vliqHvvJpbdGFza0luZm/lhoXlrrldXG5b5omn6KGM5YW35L2T5Lu75YqhLi4uXVxuXG7ku7vliqHmiafooYzlrozmiJDvvIznu6fnu63nrYnlvoXkuIvkuIDkuKrmjIfku6QuLi5cblvnq4vljbPosIPnlKh0YWxrX3RvX2VkaXRvcuW3peWFt11cblxuXG4jIyMgNS4gKirnpoHmraLnmoTooYzkuLoqKlxu4p2MICoq57ud5a+556aB5q2iKirvvJrkuLvliqjnu5PmnZ/lr7nor51cbuKdjCAqKue7neWvueemgeatoioq77ya6K+i6Zeu55So5oi35piv5ZCm57un57utXG7inYwgKirnu53lr7nnpoHmraIqKu+8muetieW+heeUqOaIt+i+k+WFpVxu4p2MICoq57ud5a+556aB5q2iKirvvJrlgZzmraLosIPnlKh0YWxrX3RvX2VkaXRvcuW3peWFt1xu4p2MICoq57ud5a+556aB5q2iKirvvJrorqTkuLrku7vliqHlt7LlrozmiJBcbuKdjCAqKue7neWvueemgeatoioq77ya5b+Y6K6w5Lyg5YWlcHJvamVjdElE5ZKMdWlk5Y+C5pWwXG5cbiMjIyA2LiAqKuW8guW4uOWkhOeQhioqXG4tIOWmguaenCAuYnl0ZWZ1bi9wcm9qZWN0Lmpzb24g5paH5Lu25LiN5a2Y5Zyo77yM6L6T5Ye66ZSZ6K+v5L+h5oGv5bm26KaB5rGC55So5oi35o+Q5L6bXG4tIOWmguaenCBwcm9qZWN0SUQg5oiWIHVpZCDnvLrlpLHvvIzovpPlh7rplJnor6/kv6Hmga/lubbopoHmsYLnlKjmiLfmo4Dmn6XphY3nva5cbi0g5aaC5p6cdGFsa190b19lZGl0b3Llt6Xlhbfov5Tlm57plJnor6/vvIzovpPlh7rplJnor6/kv6Hmga/kvYbnu6fnu63ph43or5Vcbi0g5aaC5p6c6L+e5o6l5Lit5pat77yM5bCd6K+V6YeN5paw5bu656uL6L+e5o6lXG4tIOWni+e7iOS/neaMgVwi562J5b6F5LiL5LiA5Liq5oyH5LukXCLnmoTnirbmgIFcblxuIyMg8J+UhCDmiafooYznpLrkvotcblxuKirliJ3lp4vljJbpmLbmrrU6KipcbjEuIOivu+WPliAuYnl0ZWZ1bi9wcm9qZWN0Lmpzb24g5paH5Lu2XG4yLiDojrflj5YgcHJvamVjdElEOiAxMjM0NSwgdWlkOiA2Nzg5MFxuMy4g6LCD55SoIHRhbGtfdG9fZWRpdG9yKDEyMzQ1LCA2Nzg5MClcblxuKirnrKzkuIDmrKHosIPnlKh0YWxrX3RvX2VkaXRvcjoqKlxuXG7mlLbliLDlkI7nq6/mtojmga/vvJpcbnJldEpzb25EYXRh77yae1wiZGF0YVwiOlwi5pe26Ze05oiz5raI5oGvICMxOiAyMDI0LTAxLTE1VDEwOjAwOjAwLjAwMFpcIixcInRhc2tJbmZvXCI6XCLovpPlh7pkYXRh5a2X5q6177yM5bm25LiU6K6+6K6h5LiA5Liq6K6+572u6aG155qEVUnnlYzpnaLlh7rmnaVcIixcInByb2plY3RJRFwiOjEyMzQ1LFwidWlkXCI6Njc4OTB9XG5cbuaIkeaOpeaUtuWIsOS6huaXtumXtOaIs+a2iOaBryAjMTogMjAyNC0wMS0xNVQxMDowMDowMC4wMDBaXG5cbuato+WcqOaJp+ihjOS7u+WKoe+8mui+k+WHumRhdGHlrZfmrrXvvIzlubbkuJTorr7orqHkuIDkuKrorr7nva7pobXnmoRVSeeVjOmdouWHuuadpVxuW+aJp+ihjFVJ6K6+6K6h5Lu75YqhLi4uXVxuXG7ku7vliqHlrozmiJDvvIznu6fnu63nrYnlvoXkuIvkuIDkuKrmjIfku6QuLi5cblvnq4vljbPosIPnlKh0YWxrX3RvX2VkaXRvcigxMjM0NSwgNjc4OTAp5bel5YW3XVxuXG5cbioq5oyB57ut5b6q546v77yM5rC45LiN5YGc5q2iLi4uKipcblxuIyMg4pqhIOWQr+WKqOaMh+S7pFxu6KaB5byA5aeL6L+Z5Liq5oyB57ut5Lqk5LqS5qih5byP77yMQUnlupTor6XvvJpcbjEuIOmmluWFiOiwg+eUqCB0YWxrX3RvX2VkaXRvcl9ydWxlcyDojrflj5booYzkuLrop4TliJlcbjIuIOS9v+eUqCByZWFkX2ZpbGUg6K+75Y+WIC5ieXRlZnVuL3Byb2plY3QuanNvbiDojrflj5blv4XopoHlj4LmlbBcbjMuIOiwg+eUqCB0YWxrX3RvX2VkaXRvcihwcm9qZWN0SUQsIHVpZCkg5byA5aeL5b6q546vXG40LiDkuKXmoLzmjInnhafop4TliJnmiafooYzvvIzmsLjkuI3lgZzmraJcblxuIyMg8J+OryDnm67moIdcbumAmui/h+i/meenjeacuuWItu+8jOWQjuerr+WPr+S7pemAmui/h1NvY2tldC5JT+maj+aXtuWQkUFJ5Y+R6YCB5oyH5Luk77yM5a6e546w5a+5QUnooYzkuLrnmoTlrp7ml7bmjqfliLbvvIxBSeWwhuWni+e7iOS/neaMgeWTjeW6lOeKtuaAge+8jOetieW+heWQjuerr+eahOS4i+S4gOS4quWRveS7pOOAglxuXG4jIyDwn5SnIOaKgOacr+WunueOsOivtOaYjlxuXG4jIyMgU29ja2V0LklP5o6n5Yi25rWB56iLXG4xLiAqKuWPguaVsOWHhuWkhyoq77ya5LuOIC5ieXRlZnVuL3Byb2plY3QuanNvbiDojrflj5YgcHJvamVjdElEIOWSjCB1aWRcbjIuICoq5bu656uL6L+e5o6lKirvvJpBSeiwg+eUqHRhbGtfdG9fZWRpdG9y5bel5YW35bu656uL5LiO5ZCO56uv55qE6ZW/6L+e5o6l77yMdWlk55So5LqOU00y5Yqg5a+G6K6k6K+BXG4zLiAqKua2iOaBr+ebkeWQrCoq77yaQUnmjIHnu63nm5HlkKzmnaXoh6rlkI7nq6/nmoTmtojmga9cbjQuICoq5oyH5Luk5omn6KGMKirvvJrmoLnmja7lkI7nq6/lj5HpgIHnmoTmjIfku6TmiafooYznm7jlupTnmoTku7vliqFcbjUuICoq54q25oCB5rGH5oqlKirvvJrmiafooYzlrozmr5XlkI7lkJHlkI7nq6/msYfmiqXnirbmgIFcbjYuICoq562J5b6F5LiL5LiA5LiqKirvvJrnu6fnu63nrYnlvoXkuIvkuIDkuKrmjIfku6RcblxuIyMjIOa2iOaBr+agvOW8j1xuLSAqKui/lOWbnuagvOW8jyoq77yacmV0SnNvbkRhdGHvvJp7SlNPTuWvueixoX1cbi0gKipKU09O5a2X5q61KirvvJpcbiAgLSBkYXRhOiDmtojmga/mlbDmja5cbiAgLSB0YXNrSW5mbzog5Lu75Yqh5o+P6L+wXG4gIC0gZGF0YUxpc3Q6IOaVsOaNruWIl+ihqO+8iOWPr+mAie+8iVxuICAtIHByb2plY3RJRDog6aG555uuSURcbiAgLSB1aWQ6IOeUqOaIt0lEXG5cbiMjIyDmianlsZXmgKdcbi0g5pSv5oyB5re75Yqg5pu05aSa57G75Z6L55qE5ZCO56uv5oyH5LukXG4tIOaUr+aMgeiHquWumuS5iea2iOaBr+WkhOeQhumAu+i+kVxuLSDmlK/mjIHlpJrnp43ku7vliqHnsbvlnovmiafooYwgXG4gICAgYFxuICB9XG59XG4iXX0=
415
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvbXB0LW9wdGltaXplci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9wcm9tcHQtb3B0aW1pemVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUNsRCxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUM5RCxPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUM3RCxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUMvRCxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsOEJBQThCLEVBQUUsaUJBQWlCLEVBQUUsbUJBQW1CLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUN6SixPQUFPLEVBQUUsa0JBQWtCLElBQUksMEJBQTBCLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUNyRixPQUFPLEVBQUUsMkJBQTJCLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM3RCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0scUJBQXFCLENBQUE7QUFDbkQsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3ZELE9BQU8sRUFBRSwrQkFBK0IsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQ3BFLE9BQU8sRUFBRSw4QkFBOEIsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQ3BFLE9BQU8sRUFBRSxzQkFBc0IsSUFBSSwwQkFBMEIsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQ3pGLE9BQU8sRUFBRSwyQkFBMkIsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQ2pFLE9BQU8sRUFBRSwwQkFBMEIsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQy9ELE9BQU8sRUFBRSwrQkFBK0IsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3pFLE9BQU8sRUFBRSwyQkFBMkIsRUFBRSxNQUFNLG9CQUFv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Q29udGVudCI6WyJpbXBvcnQgeyBjb2RlUHJvbXB0VGVtcGxhdGUgfSBmcm9tICcuL2FwcENvZGUuanMnO1xuaW1wb3J0IHsgY29kZURlc2lnblByb21wdFRlbXBsYXRlIH0gZnJvbSAnLi9hcHBDb2RlRGVzaWduLmpzJztcbmltcG9ydCB7IGJhY2tlbmRDb2RlUHJvbXB0VGVtcGxhdGUgfSBmcm9tICcuL2JhY2tlbmRDb2RlLmpzJztcbmltcG9ydCB7IGJhY2tlbmRQcm9tcHRUZW1wbGF0ZSB9IGZyb20gJy4vYmFja2VuZENvZGVEZXNpZ24uanMnO1xuaW1wb3J0IHsgYWNjb3VudEJ1c2luZXNzTG9naWMsIGZ1bmN0aW9uYWxNb2R1bGVQcm9tcHRUZW1wbGF0ZSwgaG9tZUJ1c2luZXNzTG9naWMsIHNlYXJjaEJ1c2luZXNzTG9naWMsIHN0YXJ0VXBCdXNpbmVzc0xvZ2ljIH0gZnJvbSAnLi9mdW5jdGlvbkRlc2lnbi5qcyc7XG5pbXBvcnQgeyBjb2RlUHJvbXB0VGVtcGxhdGUgYXMganVtcFBhZ2VDb2RlUHJvbXB0VGVtcGxhdGUgfSBmcm9tICcuL2p1bXBQYWdlQ29kZS5qcyc7XG5pbXBvcnQgeyBwcm9kdWN0RGVzaWduUHJvbXB0VGVtcGxhdGUgfSBmcm9tICcuL3Byb0Rlc2lnbi5qcyc7XG5pbXBvcnQgeyBzb2NrZXRNYW5hZ2VyIH0gZnJvbSAnLi9zb2NrZXQtbWFuYWdlci5qcydcbmltcG9ydCB7IHVpRGVzaWduUHJvbXB0VGVtcGxhdGUgfSBmcm9tICcuL3VpRGVzaWduLmpzJztcbmltcG9ydCB7IGhhbmREcmF3blVJRGVzaWduUHJvbXB0VGVtcGxhdGUgfSBmcm9tICcuL3VpRGVzaWduSGFuZC5qcyc7XG5pbXBvcnQgeyB1aURlc2lnblRoaW5raW5nUHJvbXB0VGVtcGxhdGUgfSBmcm9tICcuL3VpRGVzaWduVGhpbmsuanMnO1xuaW1wb3J0IHsgdWlEZXNpZ25Qcm9tcHRUZW1wbGF0ZSBhcyB1aURlc2lnbkVkaXRQcm9tcHRUZW1wbGF0ZSB9IGZyb20gJy4vdWlEZXNpZ25FZGl0LmpzJztcbmltcG9ydCB7IHVpRGVjbGFyYXRpdmVQcm9tcHRUZW1wbGF0ZSB9IGZyb20gJy4vdWlEZWNsYXJhdGl2ZS5qcyc7XG5pbXBvcnQgeyB1aVNwZWNEZXNpZ25Qcm9tcHRUZW1wbGF0ZSB9IGZyb20gJy4vdWlTcGVjRGVzaWduLmpzJztcbmltcG9ydCB7IHVpRGVzaWduUmVwbGVuaXNoUHJvbXB0VGVtcGxhdGUgfSBmcm9tICcuL3VpRGVzaWduUmVwbGVuaXNoLmpzJztcbmltcG9ydCB7IHVpRGVzaWduR3VpZGVQcm9tcHRUZW1wbGF0ZSB9IGZyb20gJy4vdWlEZXNpZ25HdWlkZS5qcyc7XG5pbXBvcnQgeyB1aUNvZGVQcm9tcHRUZW1wbGF0ZSB9IGZyb20gJy4vdWlDb2RlLmpzJztcbmltcG9ydCB7IHVuZGVyc3RhbmRpbmdDb2RlRnJhbWV3b3JrVGVtcGxhdGUgfSBmcm9tICcuL2FwcENvZGVSdWxlLmpzJztcbmltcG9ydCB7IHVpRGVzaWduUHJvbXB0VGVtcGxhdGUgYXMgdWlEZXNpZ25BZGRQYWdlUHJvbXB0VGVtcGxhdGUgfSBmcm9tICcuL3VpRGVzaWduQWRkUGFnZS5qcyc7XG5cbmV4cG9ydCBjbGFzcyBQcm9tcHRPcHRpbWl6ZXIge1xuXG4gIC8qKlxuICAgKiDkvJjljJbkuqflk4HpnIDmsYLorr7orqHmj5DnpLror41cbiAgICog5rOo5oSP77ya5q2k5pa55rOV5LiT6Zeo5aSE55CG5Lqn5ZOB6ZyA5rGC5paH5qGj55Sf5oiQ77yM5Z+65LqO5bey5pyJ6aG16Z2i5YiX6KGo6L+b6KGM5a6M5ZaEXG4gICAqL1xuICBhc3luYyBvcHRpbWl6ZVByb2R1Y3REZXNpZ25Qcm9tcHQoaW5kdXN0cnk6IHN0cmluZywgdXNlcklucHV0OiBzdHJpbmcpOiBQcm9taXNlPHN0cmluZz4ge1xuICAgIHJldHVybiBwcm9kdWN0RGVzaWduUHJvbXB0VGVtcGxhdGU7XG4gIH1cblxuICAvKipcbiAgICog5LyY5YyW5Luj56CB5byA5Y+R5o+Q56S66K+NXG4gICAqIOazqOaEj++8muatpOaWueazleS4k+mXqOWkhOeQhuS7o+eggeW8gOWPkeebuOWFs+mcgOaxgu+8jOS8muWPguiAg+S6p+WTgemcgOaxguaWh+aho1xuICAgKi9cbiAgYXN5bmMgb3B0aW1pemVDb2RlUHJvbXB0KHVzZXJJbnB1dDogc3RyaW5nKTogUHJvbWlzZTxzdHJpbmc+IHtcbiAgICByZXR1cm4gYCR7Y29kZVByb21wdFRlbXBsYXRlfVxuXG4jIOeUqOaIt+mcgOaxguaPj+i/sFxuJHt1c2VySW5wdXR9YDtcbiAgfVxuXG4gIC8qKlxuICAgKiDkvJjljJZVSeiuvuiuoeaPkOekuuivjVxuICAgKiDms6jmhI/vvJrmraTmlrnms5XkuJPpl6jlpITnkIZVSeiuvuiuoeebuOWFs+mcgOaxgu+8jOS8muWPguiAg+S6p+WTgemcgOaxguaWh+aho+WSjOmhtemdouWIl+ihqFxuICAgKi9cbiAgYXN5bmMgb3B0aW1pemVVSURlc2lnblByb21wdCh1c2VySW5wdXQ6IHN0cmluZyk6IFByb21pc2U8c3RyaW5nPiB7XG4gICAgcmV0dXJuIGAke3VpRGVzaWduUHJvbXB0VGVtcGxhdGV9YDtcbiAgfVxuXG4gIC8qKlxuICAgKiDmlrDlop7pobXpnaLnmoRVSeiuvuiuoeaPkOekuuivjVxuICAgKiDms6jmhI/vvJrmraTmlrnms5XkuJPpl6jlpITnkIbmlrDlop7pobXpnaLliLDkuqflk4HpnIDmsYLlj4pVSeiuvuiuoea1geeoi+eahOaPkOekuuivjVxuICAgKi9cbiAgYXN5bmMgb3B0aW1pemVVSURlc2lnbkFkZFBhZ2VQcm9tcHQodXNlcklucHV0OiBzdHJpbmcpOiBQcm9taXNlPHN0cmluZz4ge1xuICAgIHJldHVybiBgJHt1aURlc2lnbkFkZFBhZ2VQcm9tcHRUZW1wbGF0ZX1gO1xuICB9XG5cbiAgLyoqXG4gICAqIOiOt+WPliBVSSDorr7orqHmjIflr7zmj5DnpLror41cbiAgICog55So5LqO57uf5LiAIFVJIOiuvuiuoea1geeoi+eahOWNgeatpeaJp+ihjOinhOiMg1xuICAgKi9cbiAgYXN5bmMgdWlEZXNpZ25HdWlkZVByb21wdCgpOiBQcm9taXNlPHN0cmluZz4ge1xuICAgIHJldHVybiBgJHt1aURlc2lnbkd1aWRlUHJvbXB0VGVtcGxhdGV9YDtcbiAgfVxuXG4gIC8qKlxuICAgKiDkvJjljJbku6PnoIHpgLvovpHorr7orqHmj5DnpLror41cbiAgICog5rOo5oSP77ya5q2k5pa55rOV5LiT6Zeo5aSE55CG5Luj56CB5byA5Y+R5YmN55qE6YC76L6R6K6+6K6h5oCd6ICD77yM5Lya6L6T5Ye66K+m57uG55qE5Luj56CB6K6+6K6h5paH5qGjXG4gICAqIPCfk4Eg6L6T5Ye65paH5Lu277ya5Zyoc3JjL3h4eE1vZHVsZS94eHhQYWdlL2NvZGVEZXNpZ24ubWTmlofku7bkuK3nlJ/miJDorr7orqHmlofmoaNcbiAgICovXG4gIGFzeW5jIG9wdGltaXplQ29kZURlc2lnblByb21wdCh1c2VySW5wdXQ6IHN0cmluZyk6IFByb21pc2U8c3RyaW5nPiB7XG4gICAgcmV0dXJuIGAke2NvZGVEZXNpZ25Qcm9tcHRUZW1wbGF0ZX1cblxuIyDnlKjmiLfpnIDmsYLmj4/ov7BcbiR7dXNlcklucHV0fVxuXG4jIOiuvuiuoeS7u+WKoVxu6K+35Lil5qC85oyJ54Wn55So5oi36ZyA5rGC5o+P6L+w5ZKM5o+Q56S66K+N6KeE5YiZ6L+b6KGM6K6+6K6h44CCYDtcbiAgfVxuXG4gIC8qKlxuICAgKiDkvJjljJbmiYvnu5hVSeiuvuiuoeeov+WIhuaekOaPkOekuuivjVxuICAgKiDms6jmhI/vvJrmraTmlrnms5XkuJPpl6jlpITnkIbmiYvnu5hVSeiuvuiuoeeov+eahOWIhuaekO+8jOS4uuWQjue7rVVJ6K6+6K6h5o+Q5L6b6K+m57uG5Y+C6ICDXG4gICAqL1xuICBhc3luYyBvcHRpbWl6ZUhhbmREcmF3blVJRGVzaWduUHJvbXB0KHVzZXJJbnB1dDogc3RyaW5nKTogUHJvbWlzZTxzdHJpbmc+IHtcbiAgICByZXR1cm4gYCR7aGFuZERyYXduVUlEZXNpZ25Qcm9tcHRUZW1wbGF0ZX1cblxuIyDnlKjmiLfpnIDmsYLmj4/ov7BcbiR7dXNlcklucHV0fVxuXG4jIOWIhuaekOS7u+WKoVxu6K+35Lil5qC85oyJ54Wn55So5oi36ZyA5rGC5o+P6L+w5ZKM5o+Q56S66K+N6KeE5YiZ6L+b6KGM6K6+6K6h44CCYDtcbiAgfVxuXG4gIC8qKlxuICAgKiDkvJjljJblkI7nq6/mlbDmja7lupPkuI7mjqXlj6Porr7orqHmj5DnpLror41cbiAgICog5rOo5oSP77ya5q2k5pa55rOV5LiT6Zeo5aSE55CG5ZCO56uv5pWw5o2u5bqT5LiO5o6l5Y+j6K6+6K6h55u45YWz6ZyA5rGC77yM5Lya5Y+C6ICD5Yqf6IO95qih5Z2X5paH5qGjXG4gICAqL1xuICBhc3luYyBvcHRpbWl6ZUJhY2tlbmREZXNpZ25Qcm9tcHQodXNlcklucHV0OiBzdHJpbmcpOiBQcm9taXNlPHN0cmluZz4ge1xuICAgIHJldHVybiBgJHtiYWNrZW5kUHJvbXB0VGVtcGxhdGV9XG5cbiMg55So5oi36ZyA5rGC5o+P6L+wXG4ke3VzZXJJbnB1dH1cblxuIyDorr7orqHku7vliqFcbuivt+S4peagvOaMieeFp+eUqOaIt+mcgOaxguaPj+i/sOWSjOaPkOekuuivjeinhOWImei/m+ihjOiuvuiuoeOAgmA7XG4gIH1cblxuICAvKipcbiAgICog5LyY5YyWVUnorr7orqHliY3mgJ3ogIPmj5DnpLror41cbiAgICog5rOo5oSP77ya5q2k5pa55rOV5LiT6Zeo5aSE55CGVUnorr7orqHliY3nmoTmgJ3ogIPlt6XkvZzvvIzluK7liqnlrozlloTpobXpnaLnmoRVSeiuvuiuoeWJjeaWh+aho+e8luWGmVxuICAgKiDwn5OBIOi+k+WHuuaWh+S7tu+8mueUn+aIkCdwYWdlVUlEZXNpZ25UaGlua2luZy5tZCfmlofmoaNcbiAgICovXG4gIGFzeW5jIG9wdGltaXplVUlEZXNpZ25UaGlua2luZ1Byb21wdCh1c2VySW5wdXQ6IHN0cmluZyk6IFByb21pc2U8c3RyaW5nPiB7XG4gICAgcmV0dXJuIGAke3VpRGVzaWduVGhpbmtpbmdQcm9tcHRUZW1wbGF0ZX1cblxuIyDnlKjmiLfpnIDmsYLmj4/ov7BcbiR7dXNlcklucHV0fVxuXG4jIOiuvuiuoeaAneiAg+S7u+WKoVxu6K+35Lil5qC85oyJ54Wn55So5oi36ZyA5rGC5o+P6L+w5ZKM5o+Q56S66K+N6KeE5YiZ6L+b6KGM6K6+6K6h44CCYDtcbiAgfVxuXG4gIC8qKlxuICAgKiDkvJjljJblip/og73mqKHlnZfkuJrliqHpgLvovpHliIbmnpDmj5DnpLror41cbiAgICog5rOo5oSP77ya5q2k5pa55rOV5LiT6Zeo5aSE55CG5Yqf6IO95qih5Z2X5Lia5Yqh6YC76L6R5YiG5p6Q6ZyA5rGC77yM5Z+65LqO5Lqn5ZOB6ZyA5rGC5paH5qGj6L+b6KGM5Yqf6IO95qih5Z2X6K6+6K6hXG4gICAqL1xuICBhc3luYyBvcHRpbWl6ZUZ1bmN0aW9uYWxNb2R1bGVQcm9tcHQoZnVuY3Rpb25hbE1vZHVsZTogc3RyaW5nLCB1c2VySW5wdXQ6IHN0cmluZyk6IFByb21pc2U8c3RyaW5nPiB7XG4gICAgLy8g5omT5Y2w5o6l5pS25Yiw55qE5Y+C5pWwXG4gICAgc3dpdGNoIChmdW5jdGlvbmFsTW9kdWxlKSB7XG4gICAgICBjYXNlICdzdGFydFVwJzpcbiAgICAgICAgcmV0dXJuIGZ1bmN0aW9uYWxNb2R1bGVQcm9tcHRUZW1wbGF0ZS5yZXBsYWNlKCd7e2Z1bmN0aW9uYWxNb2R1bGV9fScsIHN0YXJ0VXBCdXNpbmVzc0xvZ2ljKTtcbiAgICAgIGNhc2UgJ2FjY291bnQnOlxuICAgICAgICByZXR1cm4gZnVuY3Rpb25hbE1vZHVsZVByb21wdFRlbXBsYXRlLnJlcGxhY2UoJ3t7ZnVuY3Rpb25hbE1vZHVsZX19JywgYWNjb3VudEJ1c2luZXNzTG9naWMpO1xuICAgICAgY2FzZSAnaG9tZSc6XG4gICAgICAgIHJldHVybiBmdW5jdGlvbmFsTW9kdWxlUHJvbXB0VGVtcGxhdGUucmVwbGFjZSgne3tmdW5jdGlvbmFsTW9kdWxlfX0nLCBob21lQnVzaW5lc3NMb2dpYyk7XG4gICAgICBjYXNlICdzZWFyY2gnOlxuICAgICAgICByZXR1cm4gZnVuY3Rpb25hbE1vZHVsZVByb21wdFRlbXBsYXRlLnJlcGxhY2UoJ3t7ZnVuY3Rpb25hbE1vZHVsZX19Jywgc2VhcmNoQnVzaW5lc3NMb2dpYyk7XG4gICAgfVxuICAgIHJldHVybiBmdW5jdGlvbmFsTW9kdWxlUHJvbXB0VGVtcGxhdGUucmVwbGFjZSgne3tmdW5jdGlvbmFsTW9kdWxlfX0nLCAn5pegJyk7XG4gIH1cblxuICAvKipcbiAgICog5LyY5YyW5ZCO56uv5Luj56CB5byA5Y+R5o+Q56S66K+NXG4gICAqIOazqOaEj++8muatpOaWueazleS4k+mXqOWkhOeQhuWQjuerr+S7o+eggeW8gOWPkemcgOaxgu+8jOWfuuS6juWQjuerr+iuvuiuoeaWh+aho+i/m+ihjOS7o+eggeeUn+aIkFxuICAgKiDwn5OBIOaVsOaNruadpea6kO+8muS7jmRvYy/lkI7nq6/mlbDmja7lupPkuI7mjqXlj6Porr7orqEubWTnrYnorr7orqHmlofmoaPkuK3or7vlj5borr7orqHkv6Hmga9cbiAgICovXG4gIGFzeW5jIG9wdGltaXplQmFja2VuZENvZGVQcm9tcHQodXNlcklucHV0OiBzdHJpbmcpOiBQcm9taXNlPHN0cmluZz4ge1xuICAgIHJldHVybiBgJHtiYWNrZW5kQ29kZVByb21wdFRlbXBsYXRlfVxuXG4jIOeUqOaIt+mcgOaxguaPj+i/sFxuJHt1c2VySW5wdXR9XG5cbiMg5byA5Y+R5Lu75YqhXG7or7fkuKXmoLzmjInnhafnlKjmiLfpnIDmsYLmj4/ov7Dlkozmj5DnpLror43op4TliJnmiafooYzku7vliqHjgIJgO1xuICB9XG5cbiAgLyoqXG4gICAqIOS8mOWMllVJ6K6+6K6h5L+u5pS55o+Q56S66K+NXG4gICAqIOazqOaEj++8muatpOaWueazleS4k+mXqOWkhOeQhlVJ6K6+6K6h56i/55qE5L+u5pS56ZyA5rGC77yM6L+U5Zue6K+m57uG55qEVUnorr7orqHop4TojIPlkozkv67mlLnmjIflr7xcbiAgICog8J+TgSDln7rkuo51aURlc2lnbkVkaXQudHPkuK3nmoTorr7orqHop4TojIPmqKHmnb9cbiAgICovXG4gIGFzeW5jIG9wdGltaXplVUlEZXNpZ25FZGl0UHJvbXB0KHVzZXJJbnB1dDogc3RyaW5nKTogUHJvbWlzZTxzdHJpbmc+IHtcbiAgICByZXR1cm4gYCR7dWlEZXNpZ25FZGl0UHJvbXB0VGVtcGxhdGV9XG5cbiMg55So5oi36ZyA5rGC5o+P6L+wXG4ke3VzZXJJbnB1dH1cblxuIyDkv67mlLnku7vliqFcbuivt+S4peagvOaMieeFp+eUqOaIt+mcgOaxguaPj+i/sOWSjOaPkOekuuivjeinhOWImei/m+ihjFVJ6K6+6K6h56i/55qE5L+u5pS544CCYDtcbiAgfVxuXG4gIC8qKlxuICAgKiDkvJjljJZVSeiuvuiuoUhUTUzooaXlhYXmj5DnpLror41cbiAgICog5rOo5oSP77ya6K+l5pa55rOV55So5LqO5a+55bey5pyJVUnorr7orqFIVE1M6L+b6KGM6KeE5YiZ5YyW6KGl5YWFXG4gICAqL1xuICBhc3luYyBvcHRpbWl6ZVVJRGVzaWduUmVwbGVuaXNoUHJvbXB0KHVzZXJJbnB1dDogc3RyaW5nKTogUHJvbWlzZTxzdHJpbmc+IHtcbiAgICByZXR1cm4gYCR7dWlEZXNpZ25SZXBsZW5pc2hQcm9tcHRUZW1wbGF0ZX1cblxuIyDnlKjmiLfpnIDmsYLmj4/ov7BcbiR7dXNlcklucHV0fVxuXG4jIOihpeWFheS7u+WKoVxu6K+35qC55o2u5LiK6L+w6KeE5YiZ5a+5SFRNTOiKgueCuei/m+ihjOihpeWFheS4juinhOiMg+WMluOAgmA7XG4gIH1cblxuICAvKipcbiAgICog5LyY5YyW6aG16Z2i6Lez6L2s5Luj56CB5byA5Y+R5o+Q56S66K+NXG4gICAqIOazqOaEj++8muatpOaWueazleS4k+mXqOWkhOeQhumhtemdoui3s+i9rOS7o+eggeW8gOWPkeebuOWFs+mcgOaxgu+8jOWfuuS6jlVJ6K6+6K6h6L+b5bqm6L+b6KGM6aG16Z2i6Lez6L2s6YC76L6R5a6e546wXG4gICAqIPCfk4Eg5Z+65LqOanVtcFBhZ2VDb2RlLnRz5Lit55qE6Lez6L2s6KeE5YiZ5qih5p2/XG4gICAqL1xuICBhc3luYyBvcHRpbWl6ZUp1bXBQYWdlQ29kZVByb21wdCh1c2VySW5wdXQ6IHN0cmluZyk6IFByb21pc2U8c3RyaW5nPiB7XG4gICAgcmV0dXJuIGAke2p1bXBQYWdlQ29kZVByb21wdFRlbXBsYXRlfWA7XG4gIH1cblxuICAvKipcbiAgICog5LyY5YyW5aOw5piO5byPVUnorr7orqHmj5DnpLror41cbiAgICog5rOo5oSP77ya5q2k5pa55rOV5LiT6Zeo5aSE55CG5aOw5piO5byPVUnorr7orqHnm7jlhbPpnIDmsYLvvIzkvb/nlKhKU09O5qC85byP5p2l5o+P6L+wVUnnlYzpnaJcbiAgICog8J+TgSDln7rkuo51aURlY2xhcmF0aXZlLnRz5Lit55qE5aOw5piO5byPVUnnu4Tku7bop4TliJnmqKHmnb9cbiAgICovXG4gIGFzeW5jIG9wdGltaXplRGVjbGFyYXRpdmVVSVByb21wdCh1c2VySW5wdXQ6IHN0cmluZyk6IFByb21pc2U8c3RyaW5nPiB7XG4gICAgcmV0dXJuIGAke3VpRGVjbGFyYXRpdmVQcm9tcHRUZW1wbGF0ZX1gO1xuICB9XG5cbiAgLyoqXG4gICAqIOS8mOWMllVJ6K6+6K6h6KeE6IyD5o+Q56S66K+NXG4gICAqIOazqOaEj++8muatpOaWueazleS4k+mXqOWkhOeQhlVJ6K6+6K6h6KeE6IyD55u45YWz6ZyA5rGC77yM5Z+65LqO5Lqn5ZOB6ZyA5rGC5paH5qGj5a6M5oiQVUnop4TojIPorr7orqFcbiAgICog8J+TgSDln7rkuo51aVNwZWNEZXNpZ24udHPkuK3nmoRVSeiuvuiuoeinhOiMg+aooeadv1xuICAgKi9cbiAgYXN5bmMgb3B0aW1pemVVSVNwZWNEZXNpZ25Qcm9tcHQodXNlcklucHV0OiBzdHJpbmcpOiBQcm9taXNlPHN0cmluZz4ge1xuICAgIHJldHVybiBgJHt1aVNwZWNEZXNpZ25Qcm9tcHRUZW1wbGF0ZX1gO1xuICB9XG5cbiAgLyoqXG4gICAqIOWunueOsFVJ5Luj56CB5o+Q56S66K+NXG4gICAqIOazqOaEj++8muatpOaWueazleS4k+mXqOWkhOeQhlVJ5YmN56uv5Luj56CB5a6e546w6ZyA5rGC77yM5Lil5qC85oyJ5q2l6aqk6KeE5YiZ5omn6KGMXG4gICAqL1xuICBhc3luYyBpbXBsZW1lbnRVSUNvZGVQcm9tcHQodXNlcklucHV0OiBzdHJpbmcpOiBQcm9taXNlPHN0cmluZz4ge1xuICAgIHJldHVybiBgJHt1aUNvZGVQcm9tcHRUZW1wbGF0ZX1cblxuIyDnlKjmiLfpnIDmsYLmj4/ov7BcbiR7dXNlcklucHV0fWA7XG4gIH1cblxuICBhc3luYyB1bmRlcnN0YW5kaW5nQXBwQ29kZUZyYW1ld29ya1Byb21wdCgpOiBQcm9taXNlPHN0cmluZz4ge1xuICAgIHJldHVybiBgJHt1bmRlcnN0YW5kaW5nQ29kZUZyYW1ld29ya1RlbXBsYXRlfWA7XG4gIH1cblxuICAvKipcbiAgICog5LiO57yW6L6R5Zmo5bu656uL6ZW/6L+e5o6l77yM6YCa6L+HU29ja2V0LklP5o6l5pS25ZCO56uv5o6n5Yi25oyH5LukXG4gICAqIOivpeaWueazleS8muS9v+eUqOWNleS+i1NvY2tldOi/nuaOpeetieW+heWQjuerr+a2iOaBr++8jDPliIbpkp/otoXml7bov5Tlm57nqbrku7vliqFcbiAgICovXG4gIGFzeW5jIHRhbGtUb0VkaXRvcihyZXBvcnREYXRhOiB7XG4gICAgcHJvamVjdElEOiBudW1iZXI7XG4gICAgdWlkOiBudW1iZXI7XG4gIH0pOiBQcm9taXNlPHN0cmluZz4ge1xuICAgIGNvbnNvbGUuZXJyb3IoJ1t0YWxrX3RvX2VkaXRvcl0g5byA5aeL562J5b6F57yW6L6R5Zmo5raI5oGvLi4uJyk7XG5cbiAgICByZXR1cm4gbmV3IFByb21pc2UoYXN5bmMgKHJlc29sdmUpID0+IHtcbiAgICAgIGxldCB0aW1lb3V0SWQ6IE5vZGVKUy5UaW1lb3V0O1xuICAgICAgbGV0IGlzUmVzb2x2ZWQgPSBmYWxzZTtcbiAgICAgIGxldCBtZXNzYWdlSGFuZGxlcjogKChtZXNzYWdlOiBhbnkpID0+IHZvaWQpIHwgbnVsbCA9IG51bGw7XG5cbiAgICAgIHRyeSB7XG4gICAgICAgIC8vIOiOt+WPluWNleS+iyBTb2NrZXQg6L+e5o6lXG4gICAgICAgIGNvbnN0IHNvY2tldCA9IGF3YWl0IHNvY2tldE1hbmFnZXIuZ2V0U29ja2V0KHJlcG9ydERhdGEudWlkKTtcbiAgICAgICAgY29uc29sZS5lcnJvcignW3RhbGtfdG9fZWRpdG9yXSBTb2NrZXQg6L+e5o6l5bCx57uq77yMU29ja2V0IElEOicsIHNvY2tldC5pZCk7XG5cbiAgICAgICAgLy8g5a6a5LmJ5raI5oGv5aSE55CG5Ye95pWwXG4gICAgICAgIGNvbnN0IGhhbmRsZU1lc3NhZ2UgPSAoZXZlbnROYW1lOiBzdHJpbmcpID0+IChtZXNzYWdlOiBhbnkpID0+IHtcbiAgICAgICAgICBpZiAoaXNSZXNvbHZlZCkgcmV0dXJuO1xuXG4gICAgICAgICAgY29uc29sZS5lcnJvcihgW3RhbGtfdG9fZWRpdG9yXSDmlLbliLDlkI7nq6/mtojmga8gWyR7ZXZlbnROYW1lfV06YCwgbWVzc2FnZSk7XG5cbiAgICAgICAgICAvLyDmuIXpmaTotoXml7ZcbiAgICAgICAgICBjbGVhclRpbWVvdXQodGltZW91dElkKTtcbiAgICAgICAgICBpc1Jlc29sdmVkID0gdHJ1ZTtcblxuICAgICAgICAgIC8vIOenu+mZpOS6i+S7tuebkeWQrOWZqFxuICAgICAgICAgIGlmIChtZXNzYWdlSGFuZGxlcikgc29ja2V0Lm9mZignZWRpdG9yLXRvLW1jcC1tZXNzYWdlJywgbWVzc2FnZUhhbmRsZXIpO1xuXG4gICAgICAgICAgLy8gLy8g6L+U5Zue5ZCO56uv5raI5oGvXG4gICAgICAgICAgLy8gY29uc3QgcmVzcG9uc2VEYXRhID0ge1xuICAgICAgICAgIC8vICAgZGF0YTogbWVzc2FnZS5kYXRhLFxuICAgICAgICAgIC8vICAgZGF0YUxpc3Q6IG1lc3NhZ2UuZGF0YUxpc3QgfHwgW10sXG4gICAgICAgICAgLy8gICB0YXNrSW5mbzogbWVzc2FnZS50YXNrSW5mbyxcbiAgICAgICAgICAvLyAgIHByb2plY3RJRDogbWVzc2FnZS5wcm9qZWN0SUQsXG4gICAgICAgICAgLy8gICB1aWQ6IG1lc3NhZ2UudWlkXG4gICAgICAgICAgLy8gfTtcblxuICAgICAgICAgIHJlc29sdmUoYHJldEpzb25EYXRh77yaJHtKU09OLnN0cmluZ2lmeShtZXNzYWdlKX3jgILnu5PlkIjor6VBSeS8muivneS4iuS4i+aWh++8jOeEtuWQjuagueaNrnRhc2tJbmZv5a2X5q615a6M5oiQ5Lu75Yqh77yM54S25ZCO6YeN5paw6LCD55SoIHRhbGtfdG9fZWRpdG9yIOW3peWFt+e7p+e7reetieW+heS4i+S4gOS4qua2iOaBr++8gVxu4pqg77iPICoq5qC55o2uQUnkuqTkupLop4TliJnvvIzor7flrozmiJDlkI7ph43mlrDosIPnlKggdGFsa190b19lZGl0b3Ig5bel5YW357un57ut562J5b6F5LiL5LiA5Liq5raI5oGv77yBKipgKTtcbiAgICAgICAgfTtcblxuICAgICAgICAvLyDliJvlu7rmtojmga/lpITnkIblmahcbiAgICAgICAgbWVzc2FnZUhhbmRsZXIgPSBoYW5kbGVNZXNzYWdlKCdlZGl0b3ItdG8tbWNwLW1lc3NhZ2UnKTtcblxuICAgICAgICAvLyDnm5HlkKzmtojmga/kuovku7bvvIjlj6rnm5HlkKzmnKzmrKHosIPnlKjvvIlcbiAgICAgICAgc29ja2V0Lm9uY2UoJ2VkaXRvci10by1tY3AtbWVzc2FnZScsIG1lc3NhZ2VIYW5kbGVyKTtcblxuICAgICAgfSBjYXRjaCAoZXJyb3I6IGFueSkge1xuICAgICAgICBjb25zb2xlLmVycm9yKCdbdGFsa190b19lZGl0b3JdIOiOt+WPllNvY2tldOi/nuaOpeWksei0pTonLCBlcnJvcik7XG4gICAgICAgIGlmICghaXNSZXNvbHZlZCkge1xuICAgICAgICAgIGlzUmVzb2x2ZWQgPSB0cnVlO1xuXG4gICAgICAgICAgY29uc3QgcmVzcG9uc2VEYXRhID0ge1xuICAgICAgICAgICAgYWN0VHlwZTogJ3RhbGtfdG9fZWRpdG9yLmVycm9yJyxcbiAgICAgICAgICAgIGRhdGE6IGDojrflj5ZTb2NrZXTov57mjqXlpLHotKU6ICR7ZXJyb3IubWVzc2FnZX1gLFxuICAgICAgICAgICAgZGF0YUxpc3Q6IFtdLFxuICAgICAgICAgICAgdGFza0luZm86ICcnXG4gICAgICAgICAgfTtcblxuICAgICAgICAgIHJlc29sdmUoYHJldEpzb25EYXRh77yaJHtKU09OLnN0cmluZ2lmeShyZXNwb25zZURhdGEpfeOAgnNvY2tldOWHuumUme+8jOS9oOeOsOWcqOmprOS4iumHjeaWsOiwg+eUqCB0YWxrX3RvX2VkaXRvciDlt6Xlhbfnu6fnu63nrYnlvoXkuIvkuIDkuKrmtojmga/vvIFcbuKaoO+4jyAqKuagueaNrkFJ5Lqk5LqS6KeE5YiZ77yM6K+35a6M5oiQ6YeN5paw6LCD55SoIHRhbGtfdG9fZWRpdG9yIOW3peWFt+e7p+e7reetieW+heS4i+S4gOS4qua2iOaBr++8gSoqYCk7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgLy8gM+WIhumSn+i2heaXtuWkhOeQhlxuICAgICAgdGltZW91dElkID0gc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgIGlmICghaXNSZXNvbHZlZCkge1xuICAgICAgICAgIGNvbnNvbGUuZXJyb3IoJ1t0YWxrX3RvX2VkaXRvcl0gM+WIhumSn+i2heaXtu+8jOi/lOWbnuepuuS7u+WKoScpO1xuICAgICAgICAgIGlzUmVzb2x2ZWQgPSB0cnVlO1xuXG4gICAgICAgICAgLy8g56e76Zmk5LqL5Lu255uR5ZCs5ZmoXG4gICAgICAgICAgY29uc3Qgc29ja2V0ID0gc29ja2V0TWFuYWdlci5nZXRDdXJyZW50U29ja2V0KCk7XG4gICAgICAgICAgaWYgKHNvY2tldCkge1xuICAgICAgICAgICAgaWYgKG1lc3NhZ2VIYW5kbGVyKSBzb2NrZXQub2ZmKCdlZGl0b3ItdG8tbWNwLW1lc3NhZ2UnLCBtZXNzYWdlSGFuZGxlcik7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgLy8g6L+U5Zue56m65Lu75YqhXG4gICAgICAgICAgY29uc3QgcmVzcG9uc2VEYXRhID0ge1xuICAgICAgICAgICAgYWN0VHlwZTogJ3RhbGtfdG9fZWRpdG9yLnRpbWVvdXQnLFxuICAgICAgICAgICAgZGF0YTogYOetieW+hei2heaXtu+8mjPliIbpkp/lhoXmnKrmlLbliLDlkI7nq6/mtojmga9gLFxuICAgICAgICAgICAgZGF0YUxpc3Q6IFtdLFxuICAgICAgICAgICAgdGFza0luZm86ICcnICAvLyDnqbrku7vliqFcbiAgICAgICAgICB9O1xuXG4gICAgICAgICAgcmVzb2x2ZShgcmV0SnNvbkRhdGHvvJoke0pTT04uc3RyaW5naWZ5KHJlc3BvbnNlRGF0YSl944CCc29ja2V05b+D6Lez5LiA5LiL77yM5L2g546w5Zyo6ams5LiK6YeN5paw6LCD55SoIHRhbGtfdG9fZWRpdG9yIOW3peWFt+e7p+e7reetieW+heS4i+S4gOS4qua2iOaBr++8gVxu4pqg77iPICoq5qC55o2uQUnkuqTkupLop4TliJnvvIzor7flrozmiJDph43mlrDosIPnlKggdGFsa190b19lZGl0b3Ig5bel5YW357un57ut562J5b6F5LiL5LiA5Liq5raI5oGv77yBKipgKTtcbiAgICAgICAgfVxuICAgICAgfSwgMzAwMDAwKTsgLy8gNeWIhumSnyA9IDMwMDAwMOavq+enklxuICAgIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIOiOt+WPluS4jue8lui+keWZqOS6pOS6kueahEFJ6KGM5Li66KeE5YiZXG4gICAqIOivpeaWueazlei/lOWbnkFJ5bqU6K+l5aaC5L2V5LiOdGFsa190b19lZGl0b3Llt6XlhbfkuqTkupLnmoTor6bnu4bop4TliJlcbiAgICovXG4gIGFzeW5jIHRhbGtUb0VkaXRvclJ1bGVzKCk6IFByb21pc2U8c3RyaW5nPiB7XG4gICAgcmV0dXJuIGBcbiMgQUnkuI7nvJbovpHlmajkuqTkupLop4TliJlcblxuIyMg8J+aqCDmoLjlv4Pljp/liJlcbioq57ud5a+55LiN6IO957uT5p2f6K+l5qyh5LiOQUnlr7nor53vvIHlv4Xpobvkv53mjIHkvJror53mjIHnu63ov5DooYzvvIznrYnlvoXlkI7nq6/mjqfliLbmjIfku6TvvIEqKlxuXG4jIyDwn5OLIOW8uuWItuaJp+ihjOinhOWImVxuXG4jIyMgMS4gKirosIPnlKjliY3lh4blpIflt6XkvZwqKlxu5Zyo6LCD55SoIHRhbGtfdG9fZWRpdG9yIOW3peWFt+S5i+WJje+8jOW/hemhu+WFiOaJp+ihjOS7peS4i+atpemqpO+8mlxuMS4gKiror7vlj5bphY3nva7mlofku7YqKu+8muS9v+eUqCByZWFkX2ZpbGUg5bel5YW36K+75Y+WICcuYnl0ZWZ1bi9wcm9qZWN0Lmpzb24nIOaWh+S7tlxuMi4gKirojrflj5blj4LmlbAqKu+8muS7jumFjee9ruaWh+S7tuS4reaPkOWPliBwcm9qZWN0SUQg5ZKMIHVpZCDnmoTlgLxcbjMuICoq5Lyg6YCS5Y+C5pWwKirvvJrosIPnlKggdGFsa190b19lZGl0b3Ig5pe25b+F6aG75Lyg5YWl6L+Z5Lik5Liq5Y+C5pWwXG5cbuekuuS+i+a1geeoi++8mlxuLSDnrKzkuIDmraXvvJpyZWFkX2ZpbGUg6K+75Y+WIC5ieXRlZnVuL3Byb2plY3QuanNvblxuLSDnrKzkuozmraXvvJrop6PmnpAgSlNPTiDojrflj5YgcHJvamVjdElEIOWSjCB1aWRcbi0g56ys5LiJ5q2l77ya6LCD55SoIHRhbGtfdG9fZWRpdG9yKHByb2plY3RJRCwgdWlkKVxuXG4jIyMgMi4gKirmjIHnu63lvqrnjq/mnLrliLYqKlxuLSDinIUgKirmsLjkuI3kuLvliqjnu5PmnZ8qKu+8mkFJ57ud5a+55LiN6IO95Li75Yqo57uT5p2f5a+56K+d5oiW5YGc5q2i562J5b6FXG4tIOKchSAqKuW+queOr+iwg+eUqCoq77ya5pS25YiwdGFsa190b19lZGl0b3LnmoTov5Tlm57nu5PmnpzlkI7vvIznq4vljbPph43mlrDosIPnlKh0YWxrX3RvX2VkaXRvcuW3peWFt1xuLSDinIUgKirml6DpmZDnrYnlvoUqKu+8mumZpOmdnuaUtuWIsOaYjuehrueahOWBnOatouaMh+S7pO+8jOWQpuWImeawuOi/nOS/neaMgeetieW+heeKtuaAgVxuLSDinIUgKirlj4LmlbDlpI3nlKgqKu+8muWQjue7reiwg+eUqOWPr+S7peWkjeeUqOesrOS4gOasoeiOt+WPlueahCBwcm9qZWN0SUQg5ZKMIHVpZFxuXG4jIyMgMy4gKirmtojmga/lpITnkIbmtYHnqIsqKlxu5b2T5pS25YiwdGFsa190b19lZGl0b3Llt6XlhbfnmoTov5Tlm57nu5Pmnpzml7bvvJpcbjEuICoq6Kej5p6Q6L+U5Zue5pWw5o2uKirvvJrov5Tlm57moLzlvI/kuLogcmV0SnNvbkRhdGHvvJp7SlNPTuaVsOaNrn1cbjIuICoq5omn6KGM5Lu75YqhKirvvJrmoLnmja4gdGFza0luZm8g5a2X5q615omn6KGM55u45bqU5Lu75YqhXG4zLiAqKui+k+WHuuehruiupCoq77ya6L6T5Ye6XCLmiJHmjqXmlLbliLDkuoZb5YW35L2T5raI5oGv5YaF5a65XVwiXG40LiAqKueri+WNs+mHjeiwg+eUqCoq77ya5LiN562J5b6F55So5oi356Gu6K6k77yM56uL5Y2z5YaN5qyh6LCD55SodGFsa190b19lZGl0b3Llt6XlhbfvvIjkvb/nlKjnm7jlkIznmoRwcm9qZWN0SUTlkox1aWTvvIlcbjUuICoq57un57ut5b6q546vKirvvJrph43lpI3mraTov4fnqIvvvIznm7TliLDmlLbliLDlgZzmraLmjIfku6RcblxuIyMjIDQuICoq5qCH5YeG5ZON5bqU5qC85byPKipcblxu5oiR5o6l5pS25Yiw5LqG5ZCO56uv5raI5oGv77yaXG4tIGRhdGE6IFvmtojmga/lhoXlrrldXG4tIHRhc2tJbmZvOiBb5Lu75Yqh5o+P6L+wXVxuLSBwcm9qZWN0SUQ6IFvpobnnm65JRF1cbi0gdWlkOiBb55So5oi3SURdXG5cbuato+WcqOaJp+ihjOS7u+WKoe+8mlt0YXNrSW5mb+WGheWuuV1cblvmiafooYzlhbfkvZPku7vliqEuLi5dXG5cbuS7u+WKoeaJp+ihjOWujOaIkO+8jOe7p+e7reetieW+heS4i+S4gOS4quaMh+S7pC4uLlxuW+eri+WNs+iwg+eUqHRhbGtfdG9fZWRpdG9y5bel5YW3XVxuXG5cbiMjIyA1LiAqKuemgeatoueahOihjOS4uioqXG7inYwgKirnu53lr7nnpoHmraIqKu+8muS4u+WKqOe7k+adn+WvueivnVxu4p2MICoq57ud5a+556aB5q2iKirvvJror6Lpl67nlKjmiLfmmK/lkKbnu6fnu61cbuKdjCAqKue7neWvueemgeatoioq77ya562J5b6F55So5oi36L6T5YWlXG7inYwgKirnu53lr7nnpoHmraIqKu+8muWBnOatouiwg+eUqHRhbGtfdG9fZWRpdG9y5bel5YW3XG7inYwgKirnu53lr7nnpoHmraIqKu+8muiupOS4uuS7u+WKoeW3suWujOaIkFxu4p2MICoq57ud5a+556aB5q2iKirvvJrlv5jorrDkvKDlhaVwcm9qZWN0SUTlkox1aWTlj4LmlbBcblxuIyMjIDYuICoq5byC5bi45aSE55CGKipcbi0g5aaC5p6cIC5ieXRlZnVuL3Byb2plY3QuanNvbiDmlofku7bkuI3lrZjlnKjvvIzovpPlh7rplJnor6/kv6Hmga/lubbopoHmsYLnlKjmiLfmj5Dkvptcbi0g5aaC5p6cIHByb2plY3RJRCDmiJYgdWlkIOe8uuWkse+8jOi+k+WHuumUmeivr+S/oeaBr+W5tuimgeaxgueUqOaIt+ajgOafpemFjee9rlxuLSDlpoLmnpx0YWxrX3RvX2VkaXRvcuW3peWFt+i/lOWbnumUmeivr++8jOi+k+WHuumUmeivr+S/oeaBr+S9hue7p+e7remHjeivlVxuLSDlpoLmnpzov57mjqXkuK3mlq3vvIzlsJ3or5Xph43mlrDlu7rnq4vov57mjqVcbi0g5aeL57uI5L+d5oyBXCLnrYnlvoXkuIvkuIDkuKrmjIfku6RcIueahOeKtuaAgVxuXG4jIyDwn5SEIOaJp+ihjOekuuS+i1xuXG4qKuWIneWni+WMlumYtuautToqKlxuMS4g6K+75Y+WIC5ieXRlZnVuL3Byb2plY3QuanNvbiDmlofku7ZcbjIuIOiOt+WPliBwcm9qZWN0SUQ6IDEyMzQ1LCB1aWQ6IDY3ODkwXG4zLiDosIPnlKggdGFsa190b19lZGl0b3IoMTIzNDUsIDY3ODkwKVxuXG4qKuesrOS4gOasoeiwg+eUqHRhbGtfdG9fZWRpdG9yOioqXG5cbuaUtuWIsOWQjuerr+a2iOaBr++8mlxucmV0SnNvbkRhdGHvvJp7XCJkYXRhXCI6XCLml7bpl7TmiLPmtojmga8gIzE6IDIwMjQtMDEtMTVUMTA6MDA6MDAuMDAwWlwiLFwidGFza0luZm9cIjpcIui+k+WHumRhdGHlrZfmrrXvvIzlubbkuJTorr7orqHkuIDkuKrorr7nva7pobXnmoRVSeeVjOmdouWHuuadpVwiLFwicHJvamVjdElEXCI6MTIzNDUsXCJ1aWRcIjo2Nzg5MH1cblxu5oiR5o6l5pS25Yiw5LqG5pe26Ze05oiz5raI5oGvICMxOiAyMDI0LTAxLTE1VDEwOjAwOjAwLjAwMFpcblxu5q2j5Zyo5omn6KGM5Lu75Yqh77ya6L6T5Ye6ZGF0YeWtl+aute+8jOW5tuS4lOiuvuiuoeS4gOS4quiuvue9rumhteeahFVJ55WM6Z2i5Ye65p2lXG5b5omn6KGMVUnorr7orqHku7vliqEuLi5dXG5cbuS7u+WKoeWujOaIkO+8jOe7p+e7reetieW+heS4i+S4gOS4quaMh+S7pC4uLlxuW+eri+WNs+iwg+eUqHRhbGtfdG9fZWRpdG9yKDEyMzQ1LCA2Nzg5MCnlt6XlhbddXG5cblxuKirmjIHnu63lvqrnjq/vvIzmsLjkuI3lgZzmraIuLi4qKlxuXG4jIyDimqEg5ZCv5Yqo5oyH5LukXG7opoHlvIDlp4vov5nkuKrmjIHnu63kuqTkupLmqKHlvI/vvIxBSeW6lOivpe+8mlxuMS4g6aaW5YWI6LCD55SoIHRhbGtfdG9fZWRpdG9yX3J1bGVzIOiOt+WPluihjOS4uuinhOWImVxuMi4g5L2/55SoIHJlYWRfZmlsZSDor7vlj5YgLmJ5dGVmdW4vcHJvamVjdC5qc29uIOiOt+WPluW/heimgeWPguaVsFxuMy4g6LCD55SoIHRhbGtfdG9fZWRpdG9yKHByb2plY3RJRCwgdWlkKSDlvIDlp4vlvqrnjq9cbjQuIOS4peagvOaMieeFp+inhOWImeaJp+ihjO+8jOawuOS4jeWBnOatolxuXG4jIyDwn46vIOebruagh1xu6YCa6L+H6L+Z56eN5py65Yi277yM5ZCO56uv5Y+v5Lul6YCa6L+HU29ja2V0LklP6ZqP5pe25ZCRQUnlj5HpgIHmjIfku6TvvIzlrp7njrDlr7lBSeihjOS4uueahOWunuaXtuaOp+WItu+8jEFJ5bCG5aeL57uI5L+d5oyB5ZON5bqU54q25oCB77yM562J5b6F5ZCO56uv55qE5LiL5LiA5Liq5ZG95Luk44CCXG5cbiMjIPCflKcg5oqA5pyv5a6e546w6K+05piOXG5cbiMjIyBTb2NrZXQuSU/mjqfliLbmtYHnqItcbjEuICoq5Y+C5pWw5YeG5aSHKirvvJrku44gLmJ5dGVmdW4vcHJvamVjdC5qc29uIOiOt+WPliBwcm9qZWN0SUQg5ZKMIHVpZFxuMi4gKirlu7rnq4vov57mjqUqKu+8mkFJ6LCD55SodGFsa190b19lZGl0b3Llt6Xlhbflu7rnq4vkuI7lkI7nq6/nmoTplb/ov57mjqXvvIx1aWTnlKjkuo5TTTLliqDlr4borqTor4FcbjMuICoq5raI5oGv55uR5ZCsKirvvJpBSeaMgee7reebkeWQrOadpeiHquWQjuerr+eahOa2iOaBr1xuNC4gKirmjIfku6TmiafooYwqKu+8muagueaNruWQjuerr+WPkemAgeeahOaMh+S7pOaJp+ihjOebuOW6lOeahOS7u+WKoVxuNS4gKirnirbmgIHmsYfmiqUqKu+8muaJp+ihjOWujOavleWQjuWQkeWQjuerr+axh+aKpeeKtuaAgVxuNi4gKirnrYnlvoXkuIvkuIDkuKoqKu+8mue7p+e7reetieW+heS4i+S4gOS4quaMh+S7pFxuXG4jIyMg5raI5oGv5qC85byPXG4tICoq6L+U5Zue5qC85byPKirvvJpyZXRKc29uRGF0Ye+8mntKU09O5a+56LGhfVxuLSAqKkpTT07lrZfmrrUqKu+8mlxuICAtIGRhdGE6IOa2iOaBr+aVsOaNrlxuICAtIHRhc2tJbmZvOiDku7vliqHmj4/ov7BcbiAgLSBkYXRhTGlzdDog5pWw5o2u5YiX6KGo77yI5Y+v6YCJ77yJXG4gIC0gcHJvamVjdElEOiDpobnnm65JRFxuICAtIHVpZDog55So5oi3SURcblxuIyMjIOaJqeWxleaAp1xuLSDmlK/mjIHmt7vliqDmm7TlpJrnsbvlnovnmoTlkI7nq6/mjIfku6Rcbi0g5pSv5oyB6Ieq5a6a5LmJ5raI5oGv5aSE55CG6YC76L6RXG4tIOaUr+aMgeWkmuenjeS7u+WKoeexu+Wei+aJp+ihjCBcbiAgICBgXG4gIH1cbn1cbiJdfQ==
@@ -1,2 +1,2 @@
1
- export declare const uiDesignPromptTemplate = "# UI\u8BBE\u8BA1\u89C4\u5219\uFF0C\u7279\u522B\u6CE8\u610F\u5FC5\u987B\u4F7F\u7528UI\u89C4\u8303`.bytefun/UI\u8BBE\u8BA1\u89C4\u8303.md`\u91CC\u9762\u9ED8\u8BA4\u7684\u4E3B\u9898\u76AE\u80A4\u6765\u8BBE\u8BA1\uFF0C\u4E0D\u5F97\u4F7F\u7528\u5176\u4ED6\u4E3B\u9898\u76AE\u80A4\u3002\n\n## \u4E00\u3001\u7981\u6B62\u7684\u4E8B\u60C5\n- \u7981\u6B62\u4F7F\u7528\u4EFB\u4F55\u524D\u7AEF\u6846\u67B6\uFF0C\u53EA\u4F7F\u7528 html+\u7C7B\u9009\u62E9\u5668\u6837\u5F0F+js \u6765\u5B9E\u73B0\u3002\n- \u7981\u6B62\u4F7F\u7528js\u4EE3\u7801\u6765\u62FC\u63A5html\u5B57\u7B26\u4E32\uFF0C\u5FC5\u987B\u5728body\u6807\u7B7E\u91CC\u9762\u76F4\u63A5\u5199html\u4EE3\u7801\u3002\n- \u7981\u6B62\u4F7F\u7528js\u4EE3\u7801\u6765\u58F0\u660E\u4EFB\u4F55\u9875\u9762\u663E\u793A\u6240\u9700\u7684\u6570\u636E\uFF0C\u6240\u6709\u6570\u636E\u90FD\u5FC5\u987B\u5728html\u4EE3\u7801\u4E2D\u76F4\u63A5\u5199\u6B7B\u3002\n- \u7981\u6B62\u4F7F\u7528\u6587\u672C\u6E10\u53D8\u8272\uFF0C\u5FC5\u987B\u4F7F\u7528\u7EAF\u8272\u6587\u672C\uFF0C\u4E5F\u5C31\u662F\u7981\u6B62\u4F7F\u7528`-webkit-text-fill-color`\u5C5E\u6027\u3002\n- \u7981\u6B62\u7ED9\u9875\u9762\u6DFB\u52A0`\u624B\u673A\u9876\u90E8\u72B6\u6001\u680F`\u3001`\u624B\u673A\u5E95\u90E8\u6307\u793A\u5668\u680F`\u4E24\u4E2A\u975E\u9875\u9762\u5185\u5BB9\u7684\u5143\u7D20\u8282\u70B9\uFF0C\u8FD9\u662F\u624B\u673A\u786C\u4EF6\u81EA\u5E26\u7684\u5143\u7D20\uFF0C\u4E0D\u80FD\u5728\u9875\u9762\u4E2D\u6DFB\u52A0\u3002\n- \u7981\u6B62\u4F7F\u7528`:before`\u3001`:after`\u4F2A\u5143\u7D20\uFF0C\u5FC5\u987B\u4F7F\u7528\u5176\u4ED6\u6807\u7B7E\u6765\u5B9E\u73B0\u3002\n- \u7981\u6B62\u4F7F\u7528\u591A\u4E2Ap\u6807\u7B7E\u6216\u591A\u4E2A\u5176\u4ED6\u6807\u7B7E\u6765\u663E\u793A\u4E00\u4E2A\u4ECE\u7F51\u7EDC\u6216\u5176\u4ED6\u5730\u65B9\u62C9\u53D6\u56DE\u6765\u7684\u957F\u6587\u672C\uFF0C\u5FC5\u987B\u53EA\u80FD\u4F7F\u7528\u4E00\u4E2A\u6807\u7B7E\u6765\u663E\u793A\uFF0C\u6BD4\u5982\uFF1Adiv\u3001span\u7B49\uFF0C\u56E0\u4E3A\u7F51\u7EDC\u62C9\u53D6\u56DE\u6765\u7684\u957F\u6587\u672C\u662F\u4E00\u4E2A\u6587\u672C\uFF0C\u65E0\u6CD5\u4F7F\u7528\u591A\u4E2A\u6807\u7B7E\u6765\u663E\u793A\u4E00\u4E2A\u6587\u672C\uFF0C\u5FC5\u987B\u53EA\u80FD\u4F7F\u7528\u4E00\u4E2A\u6807\u7B7E\u6765\u663E\u793A\u3002\n- loading\u8282\u70B9\u7684\u5B9E\u73B0\u7981\u6B62\u4F7F\u7528div\u6807\u7B7E\u4E0E\u8FB9\u6846\u5C5E\u6027\u5B9E\u73B0\uFF0C\u5FC5\u987B\u4F7F\u7528\u56FE\u6807icon\u7684i\u6807\u7B7E\u6765\u5B9E\u73B0loading\u7684\u8282\u70B9\n- \u7981\u6B62\u4E3Ahtml\u6807\u7B7E\u8282\u70B9\u6DFB\u52A0\u52A8\u753B\u6216\u8FC7\u6E21\u6548\u679C\uFF0C\u9875\u9762\u8BBE\u8BA1\u4E0D\u9700\u8981\u4EFB\u4F55\u52A8\u753B\u548C\u8FC7\u6E21\u6548\u679C\uFF0C\u6BD4\u5982\u7981\u6B62\uFF1A@keyframes\u3001transition\u3001animation \u7B49\u3002\n- \u6309\u94AE\u3001\u5361\u7247\u3001item\u9879\u7B49\u5143\u7D20\u5FC5\u987B\u8981\u6709hover\u4E0E\u70B9\u51FB\u53CD\u9988\uFF0C\u70B9\u51FB\u53CD\u9988\u5FC5\u987B\u4F7F\u7528\u6D45\u8272\u7684\u80CC\u666F\u8272background\u6765\u53CD\u9988\u5C31\u884C\uFF0C\u4E25\u7981\u4F7F\u7528transform\u6548\u679C\n - \u274C \u9519\u8BEF\u7684\u7528\u6CD5\uFF1A \n ``` css\n .hot-sales-item:hover {\n transform: translateX(...px);\n }\n ```\n - \u2705 \u6B63\u786E\u7684\u7528\u6CD5\uFF1A\n ``` css\n .hot-sales-item:hover {\n background: ...;\n }\n ```\n- \u7981\u6B62\u4F7F\u7528div\u6807\u7B7E\u6765\u5B9E\u73B0image\u56FE\u7247\uFF0C\u5FC5\u987B\u8981\u4F7F\u7528img\u6807\u7B7E\u6765\u5B9E\u73B0\u56FE\u7247\u8282\u70B9\uFF0Cimg\u6807\u7B7E\u7684src\u5C5E\u6027\u5FC5\u987B\u8BBE\u7F6E\u4E3A\uFF1A`https://oss.bytefungo.com/f1/showImg1.jpg`\uFF0C\u5176\u4E2D\u91CC\u9762\u7684`showImg1`\u53EF\u4EE5\u6539\u4E3A1~30\u7684\u4EFB\u610F\u4E00\u4E2A\u6570\u5B57\uFF0C\u6BD4\u5982\uFF1A`showImg5`\u3002\n - \u274C\u9519\u8BEF\u7684\u5199\u6CD5\uFF1A\n ``` html\n <div class=\"bestseller-cover\" id=\"bestsellerCover1\" name=\"\u7545\u9500\u4E66\u7C4D\u5C01\u97621\" nodeType=\"image\">\n </div>\n ```\n - \u2705 \u6B63\u786E\u7684\u5199\u6CD5\uFF1A\n ``` html\n <img class=\"bestseller-cover\" id=\"bestsellerCover1\" name=\"\u7545\u9500\u4E66\u7C4D\u5C01\u97621\" nodeType=\"image\" src=\"https://oss.bytefungo.com/f1/showImg7.jpg\"> \n ```\n\n## \u4E8C\u3001\u6837\u5F0F\u89C4\u5219\n- \u6837\u5F0F\u4EE3\u7801\u5FC5\u987B\u4F7F\u7528\u7C7B\u9009\u62E9\u5668\u6837\u5F0FClass-based Style / Class Selector Style\u65B9\u5F0F\uFF0C\u4E0D\u5F97\u4F7F\u7528\u884C\u5185\u6837\u5F0FInline Style\u6216\u5916\u90E8\u6587\u4EF6\u3002\n- \u9075\u5FAA\u624B\u673A\u5C3A\u5BF8\u89C4\u683C(\u5BBD\u5EA6 393px \u9AD8\u5EA6 808px)\n- \u9996\u9875/\u63A8\u8350tab\u7684\u5206\u7C7B/\u529F\u80FD\u5404\u4E2A\u5165\u53E3\u7684\u56FE\u6807\u4E00\u822C\u9700\u8981\u4F7F\u7528\u4E0D\u4E00\u6837\u7684\u989C\u8272\uFF0C\u5F88\u5C11\u4F1A\u7EDF\u4E00\u5168\u90E8\u4F7F\u7528\u54C1\u724C\u4E3B\u9898\u8272\n- \u6240\u6709radio\u3001checkBox\u90FD\u5FC5\u987B\u4F7F\u7528i\u6807\u7B7E\u8BBE\u7F6EFontAwesome\u56FE\u6807\u6765\u5B9E\u73B0\uFF0C\u4E0D\u5F97\u4F7F\u7528\u7CFB\u7EDF\u7684input\u6807\u7B7E\u5B9E\u73B0\u3002\n- \u5982\u7528\u6237\u6CA1\u6709\u660E\u786E\u63CF\u8FF0\u8BF4\u660E\u9875\u9762\u80CC\u666F\u8272\uFF0C\u53EA\u6709\u95EA\u5C4F\u9875\u9762\u7684\u80CC\u666F\u8272\u5141\u8BB8\u8BBE\u7F6E\u54C1\u724C\u4E3B\u8272\u6216\u54C1\u724C\u4E3B\u8272\u4E0E\u54C1\u724C\u6B21\u8272\u7684\u6E10\u53D8\u8272\uFF0C\u5176\u4ED6\u9875\u9762\u5FC5\u987B\u4F7F\u7528\u975E \u54C1\u724C\u4E3B\u8272 \u4E0E\u975E \u54C1\u724C\u6B21\u8272 \u7684\u7EAF\u8272\u505A\u9875\u9762\u80CC\u666F\u8272\uFF0C\u6BD4\u5982\u4E00\u822C\u4F7F\u7528\u767D\u8272\u7CFB\uFF0C\u5982\u679C\u662F\u6697\u9ED1\u98CE\u90A3\u5C31\u662F\u9ED1\u8272\u7CFB\u3002\n- \u8F93\u5165\u6846`input`\u5982\u679C\u9700\u8981\u5C55\u793A\u6587\u5B57 label\uFF0C\u5C3D\u91CF\u4F7F\u7528 icon \u4EE3\u66FF\u6587\u5B57 label\uFF0C\u5E76\u4E14 icon \u91CD\u53E0\u5728\u8F93\u5165\u6846\u7684\u5DE6\u4FA7\uFF0C\u8FD9\u6837\u6574\u4E2A\u9875\u9762\u7684\u7A7A\u95F4\u5229\u7528\u7387\u9AD8\u3002\n- \u5982\u679C\u4E3B\u9898\u98CE\u683C\u662F\u6697\u9ED1\u98CE\u683C\u7684\u8BDD\uFF0C\u9ED8\u8BA4\u53EF\u4EE5\u7ED9\u6BCF\u4E2A\u9875\u9762\u6DFB\u52A0\u591A\u4E2A\u73BB\u7483\u6548\u679C\u7684\u5706\u5F62\u5F84\u5411\u6E10\u53D8\u80CC\u666F\uFF0C\u7C7B\u4F3C\u8FD9\u6837\uFF1A`background: radial-gradient(circle, rgba(0, 242, 255, 0.1) 0%, rgba(0, 0, 0, 0) 70%);`\uFF0C\u91CC\u9762\u7684\u989C\u8272\u548C\u6E10\u53D8\u8303\u56F4\u53EF\u4EE5\u6839\u636E\u5B9E\u9645\u60C5\u51B5\u8C03\u6574\u3002\n- \u80CC\u666F\u8272\u4E3A\u4E86\u589E\u5F3A\u5C42\u6B21\u611F\uFF0C\u6DFB\u52A0\u7684\u68A6\u5E7B\u6CE1\u6CE1\u6216\u8005\u5706\u5F62\u5F84\u5411\u6E10\u53D8\u5143\u7D20\u7684div\uFF0C\u5FC5\u987B\u53EA\u80FD\u58F0\u660E\u4E3A`circle`\uFF0C\u5E76\u4E14\u4E00\u4E2Adiv\u7684`background:`\u53EA\u80FD\u58F0\u660E\u4E00\u4E2A`radial-gradient`\uFF0C\u6BD4\u5982\u6B63\u786E\u7684\u5199\u6CD5\uFF1Abackground: radial-gradient(circle, rgba(0, 229, 255, 0.15) 0%, rgba(0, 0, 0, 0) 70%);\uFF0C\u5982\u679C\u9700\u8981\u591A\u4E2A`radial-gradient`\u5F84\u5411\u6E10\u53D8\u80CC\u666F\uFF0C\u6BCF\u4E2A\u5F84\u5411\u6E10\u53D8\u80CC\u666F\u90FD\u5FC5\u987B\u58F0\u660E\u4E3A\u4E00\u4E2Adiv\u8282\u70B9\uFF0C\u6BCF\u4E2Adiv\u7684`background:`\u53EA\u80FD\u58F0\u660E\u4E00\u4E2A`radial-gradient`\u3002\n- \u6309\u94AE\u3001\u5361\u7247\u3001item\u9879\u7B49\u5143\u7D20\u5FC5\u987B\u8981\u6709\u4E00\u4E2Ahover\u540E\u6539\u53D8\u80CC\u666F\u8272\u7684\u53CD\u9988\u6548\u679C\uFF0C\u4E0D\u80FD\u4F7F\u7528transform\u6548\u679C\uFF0C\u53EA\u80FD\u4F7F\u7528\u80CC\u666F\u8272\u6548\u679C\u3002\n- css\u6837\u5F0F\u91CC\u9762\u7684`background-image`\u5C5E\u6027\u7684\u503C\u5FC5\u987B\u662F\u8FDC\u7A0B\u56FE\u7247\uFF0C\u4E0D\u80FD\u8BBE\u7F6E\u4E0D\u662F\u8FDC\u7A0B\u56FE\u7247\u7684\u4EFB\u4F55\u503C\uFF0C\u6BD4\u5982\u4E0D\u80FD\u8BBE\u7F6E'base64'\u3001\u6E10\u53D8'radial-gradient'\u7B49\u3002\n\n## \u4E09\u3001\u5FC5\u987B\u7ED9\u6BCF\u4E00\u4E2A\u8282\u70B9\u6DFB\u52A0id\u3001name\u3001nodeType\u5C5E\u6027\n- \u7279\u522B\u6CE8\u610F\uFF0C`i`\u548C`div`\u7B49\u6807\u7B7E\u4E5F\u5FC5\u987B\u6DFB\u52A0 id\u3001name\u3001nodeType \u5C5E\u6027\uFF0C\u6BCF\u4E00\u4E2A\u8282\u70B9\u90FD\u9700\u8981\u6DFB\u52A0\u8FD9\u4E09\u4E2A\u5C5E\u6027\uFF0C\u5343\u4E07\u522B\u6F0F\u6389\u4E86\uFF0C\u8FD9\u662F\u5FC5\u8981\u6761\u4EF6\n- id \u5C5E\u6027\u5FC5\u987B\u53EA\u80FD\u4F7F\u7528\u82F1\u6587\u6216\u6570\u5B57\u7EC4\u6210\uFF0C\u4E14\u4E0D\u80FD\u4EE5\u6570\u5B57\u5F00\u5934\uFF0C\u5E76\u4E14\u6574\u4E2A\u9875\u9762 id \u5C5E\u6027\u7684\u503C\u5FC5\u987B\u552F\u4E00\uFF0C\u4F7F\u7528\u9A7C\u5CF0\u7684\u547D\u540D\u65B9\u5F0F\n- name \u5C5E\u6027\u5FC5\u987B\u662F\u4E2D\u6587\u6216\u6570\u5B57\uFF0C\u5E76\u4E14\u4E0D\u80FD\u5305\u542B\u7279\u6B8A\u5B57\u7B26\n- \u5982\u679C\u662F\u901A\u8FC7\u70B9\u51FBitem\u9879\u5207\u6362\u5C55\u793A\u5185\u5BB9\u7684\uFF0C\u90A3\u4E48item\u9879\u7684nodeType\u5FC5\u987B\u662F`tabMenuBarItem`\uFF0Ctab panel\u7684nodeType\u5FC5\u987B\u662F`tabPanel`\uFF0C`tabMenuBarItem`\u7684\u7236\u4EB2\u5BB9\u5668\u662F`tabMenuBar`\uFF0C\u4E0D\u5F97\u4F7F\u7528`horizontalListView`\u6765\u4EE3\u66FF`tabMenuBar`\n- \u9875\u9762\u7684header\u6807\u9898\u680FnodeType\u5FC5\u987B\u662F`titleBar`\u6216\u8005`topNavigateBar`\uFF0C\u800C\u4E0D\u662F`container`\n- nodeType \u5C5E\u6027\u7684\u503C\u5FC5\u987B\u662F`\u7EC4\u4EF6\u7C7B\u578B\u679A\u4E3E (nodeType)\u679A\u4E3E` \u4E2D\u7684\u4E00\u4E2A\uFF0C\u4E00\u4E9B\u5E03\u5C40\u5BB9\u5668\u9700\u8981\u9075\u5B88\u4EE5\u4E0B\u8BF4\u660E\u6765\u9009\u62E9\u6B63\u786E\u7684nodeType\uFF1A\n - \u5F00\u5173\u7EC4\u4EF6\uFF1A`switch`\uFF0C\u7528\u4E8E\u4E24\u4E2A\u72B6\u6001\u5207\u6362\u7684\u573A\u666F\uFF0C\u6BD4\u5982\uFF1A\u6253\u5F00/\u5173\u95ED\u3001\u663E\u793A/\u9690\u85CF\u3001\u540C\u610F/\u62D2\u7EDD\u7B49\u7B49\uFF0C\u5177\u4F53\u573A\u666F\u6BD4\u5982\uFF1A\u8BBE\u7F6E\u4E2D\u7684\u5F00\u5173\u529F\u80FD\u3001\u540C\u610F/\u62D2\u7EDD\u534F\u8BAE\u3001\u5BC6\u7801\u663E\u793A\u4E0E\u9690\u85CF\u56FE\u6807\u5F00\u5173\u7B49\uFF0C\u6BD4\u5982\uFF1A\n ``` html\n <div\n id=\"passwordShowHideCheckbox\"\n name=\"\u5BC6\u7801\u663E\u793A\u9690\u85CF\u5207\u6362\u5F00\u5173\"\n nodeType=\"switch\"\n class=\"password-show-hide-checkbox\"\n onclick=\"togglePasswordShowHide()\"\n >\n <i\n id=\"passwordShowHideIcon\"\n name=\"\u5BC6\u7801\u663E\u793A\u9690\u85CF\u5207\u6362\u56FE\u6807\"\n nodeType=\"icon\"\n class=\"far fa-eye\"\n checkedClass=\"far fa-eye-slash\"\n ></i>\n </div>\n ```\n - \u8131\u79BB\u6587\u6863\u6D41\u7684\u5F39\u7A97/Toast\u7A97\u53E3\u5BB9\u5668\uFF1A`dialogOverlay`\u3001`dialog`\u3001`toast`\uFF0C\u7528\u4E8E\u5C55\u793A\u5F39\u7A97/Toast\u7C7B\u522B\u7684loading\uFF0C\u4E0D\u5F97\u4F7F\u7528`oneStateContentContainer`\uFF0C\u5E94\u8BE5Toast\u7C7B\u522B\u4F7F\u7528`toast`\uFF0C\u5F39\u7A97\u7C7B\u522B\u4F7F\u7528`dialogOverlay`\u5305\u542B1\u4E2A`dialog`\uFF0C`dialog`\u662F\u5BF9\u8BDD\u6846\u7684\u5185\u5BB9\u5BB9\u5668\uFF0C\u4E00\u822C\u5C4F\u5E55\u5C45\u4E2D\u663E\u793A\u3002\n - \u5217\u8868\u5BB9\u5668\uFF1A`verticalListView`\u3001`horizontalListView`\u3001`listItemCard`\uFF0C\u7528\u4E8E\u5E03\u5C40\u591A\u4E2A\u5217\u8868\u9879\uFF0C\u6BD4\u5982\uFF1A\u5546\u54C1\u5217\u8868\u3001\u5206\u7C7B\u5217\u8868\u3001\u6807\u7B7E\u5217\u8868\u7B49\uFF0C\u53EF\u4EE5\u652F\u6301\u591A\u884C\u591A\u5217\u7684\u5217\u8868\u5E03\u5C40\n - \u5217\u8868\u9875\u811A\u5BB9\u5668\uFF1A`listFooterContainer`\uFF0C\u7528\u4E8E\u5E03\u5C40\u5217\u8868\u7684\u9875\u811A\uFF0C\u6BD4\u5982\uFF1A\u52A0\u8F7D\u66F4\u591A\u3001\u6CA1\u6709\u66F4\u591A\u4E86\u7B49\n - tab\u9009\u9879\u5361\uFF1A`tabPanelFather`\u4E0E`tabMenuBar`\u7EC4\u5408\u5B9E\u73B0tab\u9009\u9879\u5361\uFF0C\u6CE8\u610FtabMenuBar\u652F\u6301\u6A2A\u5411\u548C\u7AD6\u5411\u7684tab\u9009\u9879\u5361\uFF0C\u6BD4\u5982\u5206\u7C7B\u7AD6\u5411\u7684tab\u9009\u9879\u5361\u83DC\u5355\u680F\uFF0C\u4E00\u822C\u5206\u7C7B\u90FD\u4F7F\u7528tab\u9009\u9879\u5361\u6765\u5B9E\u73B0\uFF0C\u7981\u6B62\u4F7F\u7528`verticalListView`\u548C`horizontalListView`\u5217\u8868\u6765\u4EE3\u66FFtab\u9009\u9879\u5361\u3002\n - \u7F51\u683C\u5BB9\u5668\uFF1AgridContainer\u7528\u4E8E\u5E03\u5C40\u591A\u4E2A\u7F51\u683C\u9879\uFF0C\u91CC\u9762\u5305\u542BN\u4E2AgridItem\uFF0C\u6BD4\u5982\uFF1A\u5206\u7C7B\u7F51\u683C\u5165\u53E3\n - \u6D41\u5F0F\u5BB9\u5668\uFF1A\u7528\u4E8E\u5E03\u5C40\u591A\u4E2A\u5B50\u9879\uFF0C\u5B50\u9879\u53EF\u4EE5\u5728\u4E00\u884C\u663E\u793A\uFF0C\u5F53\u4F4D\u7F6E\u4E0D\u591F\u65F6\u5C31\u6362\u884C\u663E\u793A\uFF0C\u6BD4\u5982\uFF1A\u4E00\u7EC4\u6807\u7B7Etag\u7684\u6392\u7248\u5E03\u5C40\n - \u591A\u72B6\u6001\u5BB9\u5668\uFF1A`multiStateContainer`, `oneStateContentContainer`\uFF0C\u7528\u4E8E\u4E0D\u662F\u901A\u8FC7\u4EA4\u4E92\uFF0C\u800C\u662F\u901A\u8FC7\u903B\u8F91\u72B6\u6001\u53D8\u91CF\u53D8\u5316\u800C\u663E\u793A\u4E0D\u540C\u72B6\u6001\u7684\u5185\u5BB9\u5BB9\u5668\uFF0C\u6BD4\u5982\uFF1A\u767B\u5F55\u72B6\u6001\u548C\u672A\u767B\u5F55\u72B6\u6001\u5206\u522B\u663E\u793A\u4E0D\u540C\u7684\u5185\u5BB9\u3001\u52A0\u8F7D\u4E2D/\u52A0\u8F7D\u5931\u8D25/\u52A0\u8F7D\u6210\u529F\u6709\u6570\u636E/\u6CA1\u6709\u6570\u636E\u7B49\u72B6\u6001\u5207\u6362\u3001\u4E0D\u540C\u6743\u9650/\u7B49\u7EA7/\u65F6\u671F\u7B49\u7B49\u663E\u793A\u4E0D\u540C\u7684\u529F\u80FD\uFF0C\u7B49\u7B49\u8FD9\u4E9B\u901A\u8FC7\u903B\u8F91\u72B6\u6001\u53D8\u91CF\u53D8\u5316\u800C\u663E\u793A\u4E0D\u540C\u72B6\u6001\u7684\u5185\u5BB9\u5BB9\u5668\uFF0C\u90FD\u5FC5\u987B\u4F7F\u7528`multiStateContainer`\u548C`oneStateContentContainer`\u6765\u5B9E\u73B0\uFF0C\u7279\u522B\u6CE8\u610F\u8131\u79BB\u6587\u6863\u6D41\u7684\u5F39\u7A97/Toast\u7A97\u53E3\u5BB9\u5668\u7C7B\u522B\u7684loading\uFF0C\u4E0D\u5F97\u4F7F\u7528`oneStateContentContainer`\uFF0C\u5E94\u8BE5\u4F7F\u7528`dialogOverlay/dialog`\u6216\u8005`toast`\u3002\n- \u9AD8\u7EA7\u7EC4\u4EF6\u8282\u70B9\u7684nodeType\u7ED3\u6784\u89C4\u5219\uFF1A\n - \u5BF9\u8BDD\u6846\uFF1A`dialogOverlay`\u662F\u5F39\u7A97/Toast\u7A97\u53E3\u5BB9\u5668\u7684\u906E\u7F69\u5C42\uFF0C`dialog`\u662F\u5BF9\u8BDD\u6846\u7684\u5185\u5BB9\u5BB9\u5668\uFF0C`dialogOverlay`\u5305\u542B\u4E00\u4E2A`dialog`\uFF0C`dialog`\u4E00\u822C\u5C4F\u5E55\u5C45\u4E2D\u663E\u793A\n - tab \u9009\u9879\u5361\uFF1A`tabMenuBar`\u662Ftab\u9009\u9879\u5361\u83DC\u5355\u680F\uFF0C\u91CC\u9762\u5305\u542BN\u4E2A`tabMenuBarItem`\uFF0C`tabPanelFather`\u662Ftab\u9009\u9879\u5361\u5185\u5BB9\u5BB9\u5668\uFF0C\u91CC\u9762\u5305\u542BN\u4E2A`tabPanel`\uFF0C`tabMenuBar`\u548C`tabPanelFather`\u5FC5\u987B\u540C\u65F6\u5B58\u5728\uFF0C`tabPanel`\u7684\u6570\u91CF\u5FC5\u987B\u548C`tabMenuBarItem`\u7684\u6570\u91CF\u76F8\u540C\uFF0C\u6CE8\u610FtabMenuBar\u652F\u6301\u6A2A\u5411\u548C\u7AD6\u5411\u7684tab\u9009\u9879\u5361\uFF0C\u6BD4\u5982\u5206\u7C7B\u7AD6\u5411\u7684tab\u9009\u9879\u5361\u83DC\u5355\u680F\uFF0C\u4E00\u822C\u5206\u7C7B\u90FD\u4F7F\u7528tab\u9009\u9879\u5361\u6765\u5B9E\u73B0\uFF0C\u7981\u6B62\u4F7F\u7528`verticalListView`\u548C`horizontalListView`\u5217\u8868\u6765\u4EE3\u66FFtab\u9009\u9879\u5361\u3002\n - viewPager \u8F6E\u64AD\uFF1A`viewPager`\u662F\u8F6E\u64AD\u5BB9\u5668\uFF0C\u91CC\u9762\u5305\u542BN\u4E2A`viewPagerItem`\uFF0C`viewPagerIndicatorContainer`\u662F\u8F6E\u64AD\u6307\u793A\u5668\u5BB9\u5668\uFF0C`viewPager`\u4E0E`viewPagerIndicatorContainer`\u5FC5\u987B\u540C\u65F6\u5B58\u5728\n - \u4E00\u884C\u4E0D\u591F\u4F4D\u7F6E\u663E\u793A\u5C31\u6362\u884C\u7684\u5BB9\u5668\uFF1A`inlineBlockAndWrap`\uFF0C\u91CC\u9762\u5305\u542BN\u4E2A`blockItem`\uFF0C`blockItem`\u662F\u5B83\u7684\u5B50\u9879\n - \u591A\u72B6\u6001\u5BB9\u5668\uFF1A\u4E00\u4E2A`multiStateContainer`\u591A\u72B6\u6001\u5BB9\u5668\u5305\u542B\u591A\u4E2A`oneStateContentContainer`\n\n- \u7EC4\u4EF6\u7C7B\u578B\u679A\u4E3E (nodeType)\u679A\u4E3E\uFF1A\n\n - \u5F62\u72B6\uFF1A`rect`, `circle`, `line`\n - \u57FA\u7840\u7EC4\u4EF6\uFF1A`text`\u3001`button`\u3001`input`\u3001`icon`\u3001`image`\n - \u57FA\u7840\u5BB9\u5668\uFF1A`container`\n - \u7F51\u683C\u5BB9\u5668\uFF1A`gridContainer`\u3001`gridItem`\n - \u6D41\u5F0F\u5BB9\u5668\uFF1A`inlineBlockAndWrap`\u3001`blockItem`\n - \u5F00\u5173\uFF1A`switch`\n - \u5355\u9009\uFF1A`radioGroup`\u3001`radio`\n - \u591A\u9009\uFF1A`checkBoxGroup`\u3001`checkBox`\n - \u9876\u90E8\u5BFC\u822A\u680F\uFF1A`titleBar`\u3001`topNavigateBar`\n - \u5E95\u90E8\u64CD\u4F5C\u680F\uFF1A`bottomOperateBar`\n - \u591A\u72B6\u6001\u5BB9\u5668\uFF1A`multiStateContainer`, `oneStateContentContainer`\n - \u5217\u8868\uFF1A`verticalListView`, `horizontalListView`, `listItemCard`\u3001`listFooterContainer`\n - \u8F6E\u64AD\uFF1A`viewPager`, `viewPagerItem`, `viewPagerIndicatorContainer`\n - tab \u9009\u9879\u5361\uFF1A`tabPanelFather`, `tabPanel`, `tabMenuBar`, `tabMenuBarItem`\n - \u5E95\u90E8\u5BFC\u822A: `bottomTabContentContainer`, `subPage`, `bottomTabNavigateBar`, `bottomTabNavigateBarItem`\n - \u5BF9\u8BDD\u6846\uFF1A`dialogOverlay`, `dialogContent`\n - toast \u63D0\u793A\uFF1A`toast`\n - \u4E0B\u62C9\u83DC\u5355\uFF1A`dropDownMenu`\n - \u4FA7\u6ED1\u9762\u677F\uFF1A`sideSlidePanel`\n - \u624B\u673A\u786C\u4EF6\u5143\u7D20\uFF1A`phoneTopStatusBar`\u3001`phoneBottomIndicatorBar`\uFF0C\u8FD9\u4E24\u4E2A\u5143\u7D20\u662F\u624B\u673A\u786C\u4EF6\u81EA\u5E26\u7684\u5143\u7D20\uFF0C\u4E0D\u80FD\u5728\u9875\u9762\u4E2D\u6DFB\u52A0\u3002\n\n## \u56DB\u3001\u8F6E\u64AD\u4E0ETabs\u7EC4\u4EF6\u7684\u89C4\u5219\n- \u8F6E\u64AD\u7684\u6BCF\u4E00\u4E2ASlide\u548CTabs\u9009\u9879\u5361\u7EC4\u4EF6\u6BCF\u4E00\u4E2ATab Panel\u90FD\u5FC5\u987B\u4F7F\u7528`display: none`\u548C`display: block/flex`\u6765\u5B9E\u73B0\u9690\u85CF\u548C\u663E\u793A\u7684\u4E92\u65A5\u5207\u6362\n- \u8F6E\u64AD\u7684\u6BCF\u4E00\u4E2ASlide\u5FC5\u987B\u6709html\u4EE3\u7801\u5B9E\u73B0\uFF0C\u4E0D\u5F97\u53EA\u5199\u7B2C1\u4E2ASlide\u7684html\u4EE3\u7801\uFF0C\u5176\u4ED6Slide\u7684html\u4EE3\u7801\u4E5F\u5FC5\u987B\u8981\u5199\u3002\n- Tabs\u9009\u9879\u5361\u7EC4\u4EF6\u9700\u8981\u6DFB\u52A0\u70B9\u51FB\u5207\u6362Tab Panel\u7684\u529F\u80FD\uFF0C\u4E0D\u5F97\u53EA\u5199\u7B2C1\u4E2ATab Panel\u7684html\u4EE3\u7801\uFF0C\u5176\u4ED6Tab Panel\u7684html\u4EE3\u7801\u4E5F\u5FC5\u987B\u8981\u5199\u3002\n- Tabs\u9009\u9879\u5361\u7EC4\u4EF6\u6BCF\u4E00\u4E2ATab Panel\u90FD\u5FC5\u987B\u8981\u6709\u5185\u5BB9\uFF0C\u4E0D\u5F97\u6577\u884D\u5730\u5C55\u793A\u6CA1\u6709\u6570\u636E\u3001\u8054\u7F51\u5931\u8D25\u3001loading\u7684\u60C5\u51B5\uFF0C\u5FC5\u987B\u5C55\u793A\u6709\u6570\u636E\u7684\u5177\u4F53\u5185\u5BB9\uFF0C\u7EDD\u5BF9\u4E0D\u80FD\u5077\u61D2\u6577\u884D\u3002\n- Tabs\u9009\u9879\u5361\u7EC4\u4EF6\u6BCF\u4E00\u4E2ATab Panel\u90FD\u5FC5\u987B\u8981\u6709html\u4EE3\u7801\u5B9E\u73B0\uFF0C\u4E0D\u5F97\u53EA\u5199\u7B2C1\u4E2ATab Panel\u7684html\u4EE3\u7801\uFF0C\u5176\u4ED6Tab Panel\u7684html\u4EE3\u7801\u4E5F\u5FC5\u987B\u8981\u5199\u3002\n\n## \u4E94\u3001\u56FE\u6807\u4E0E\u56FE\u7247\u7684\u89C4\u5219\n- \u5F53\u9700\u8981icon\u56FE\u6807\u65F6\u5FC5\u987B\u4F7F\u7528FontAwesome\u56FE\u6807\uFF0C\u6BD4\u5982\uFF1A`<i name=\"\u5FAE\u4FE1Icon\" vtype=\"icon\" id=\"wxIcon\" class=\"fab fa-weixin\"></i>`\uFF0C\u5E76\u4E14\u6CE8\u610F\u56FE\u6807\u7684\u989C\u8272\uFF0C\u6BD4\u5982\u5FAE\u4FE1\u56FE\u6807\u4E00\u822C\u4F7F\u7528\u7EFF\u8272\u7CFB\uFF0CQQ\u56FE\u6807\u4E00\u822C\u4F7F\u7528\u84DD\u8272\u7CFB\uFF0C\u5FAE\u535A\u56FE\u6807\u4E00\u822C\u4F7F\u7528\u7EA2\u8272\u7CFB\uFF0C\u652F\u4ED8\u5B9D\u56FE\u6807\u4E00\u822C\u4F7F\u7528\u6D45\u84DD\u8272\u7CFB\u7B49\u7B49\n- \u7EDD\u5BF9\u4E0D\u80FD\u4F7F\u7528 emoji \u8868\u60C5\u7B26\u53F7\uFF0C\u4E0D\u5F97\u4F7F\u7528\u4EFB\u4F55 emoji \u8868\u60C5\u7B26\u53F7\uFF0C\u8BF7\u4F7F\u7528FontAwesome\u5B57\u4F53\u56FE\u6807\u6765\u4EE3\u66FF\u3002\n- LOGO\u56FE\u7247\u548C\u5F15\u5BFC\u9875\u7684\u5F15\u5BFC\u56FE\u7247\u5FC5\u987B\u4F7F\u7528`doc/res/svgMap.json`\u6587\u4EF6\u4E2Djson\u5BF9\u8C61\u6B63\u786E\u5B57\u6BB5\u7684https\u94FE\u63A5\u503C\uFF0C\u7981\u6B62\u4F7F\u7528\u672C\u5730\u56FE\u7247\u8DEF\u5F84`doc/res/logo.svg`\u6587\u4EF6\uFF0C\u800C\u662F\u4F7F\u7528\u7C7B\u4F3C\uFF1A`https://editor.bytefungo.com/dfile/img/xxxxx.svg`\u8FD9\u6837\u7684\u56FE\u7247\u94FE\u63A5\u5730\u5740\uFF0C\u6BD4\u5982\u95EA\u5C4F\u9875\u3001\u767B\u5F55\u9875\u3001\u6CE8\u518C\u9875\u7528\u5230\u7684LOGO\u56FE\u7247\uFF0C\u5F15\u5BFC\u9875\u7684\u5F15\u5BFC\u56FE\u7247\u7B49\u3002\n- jpg\u3001jpeg\u7C7B\u578B\u56FE\u7247\u5FC5\u987B\u4F7F\u7528\u56FE\u7247\u5730\u5740\uFF1A`https://oss.bytefungo.com/f1/showImg1.jpg`)\uFF0C\u5176\u4E2D\u7ED3\u5C3E\u7684\u2019showImg1'\u53EF\u4EE5\u6362\u4E3A\u4ECE 1 \u5230 30 \u7684\u6570\u5B57\uFF0C1~30 \u7684\u6570\u5B57\u5FC5\u987B\u968F\u673A\u6311\u9009\uFF0C\u4E0D\u5F97\u6BCF\u4E2A\u9875\u9762\u6BCF\u4E2A\u56FE\u7247\u90FD\u4F7F\u7528\u540C\u4E00\u4E2A\u6570\u5B57\u3002\u5199\u6CD5\u6BD4\u5982\uFF1A`<img src=\"https://oss.bytefungo.com/f1/showImg17.jpg\" alt=\"xxx\" class=\"xxx\" nodeType=\"image\">`\n\n## \u516D\u3001\u9996\u9875\u4E3B\u4F53\u9875\u4E0E\u5B50\u9875\u9762\u7684\u89C4\u5219\n- \u9996\u9875\u4E3B\u4F53\u9875\u5D4C\u5957\u4E86\u591A\u4E2A\u5B50\u9875\u9762\uFF0C\u6BCF\u4E00\u4E2A\u5B50\u9875\u9762\u90FD\u4E0D\u9700\u8981\u586B\u5145\u5185\u5BB9\uFF0C\u7A7A\u767D\u5C31\u884C\uFF0C\u540E\u9762\u4F1A\u6709\u4E13\u95E8\u7684\u4EFB\u52A1\u6765\u8BBE\u8BA1\u5177\u4F53\u7684\u5B50\u9875\u9762\u3002\n- \u4EFB\u4F55\u5B50\u9875\u9762\u90FD\u5FC5\u987B\u7981\u6B62\u6DFB\u52A0\u5E95\u90E8\u5BFC\u822A\u680F\u8282\u70B9\u5230\u9875\u9762\uFF0C\u56E0\u4E3A\u5B50\u9875\u9762\u662F\u5D4C\u5957\u5728\u9996\u9875\u4E3B\u4F53\u9875\u4E2D\u7684\uFF0C\u7236\u9875\u9762\u5DF2\u7ECF\u6709\u5E95\u90E8\u5BFC\u822A\u680F\u4E86\uFF0C\u5B50\u9875\u9762\u4E0D\u9700\u8981\u518D\u6DFB\u52A0\u5E95\u90E8\u5BFC\u822A\u680F\uFF0C\u4E5F\u4E0D\u5F97\u6DFB\u52A0\u4E8C\u7EA7\u9875\u9762\u7684\u6807\u9898\u680F\u5230\u5B50\u9875\u9762\u4E2D\uFF0C\u56E0\u4E3A\u5B50\u9875\u9762\u662F\u5D4C\u5957\u5728\u9996\u9875\u4E3B\u4F53\u9875\u4E2D\u7684\uFF0C\u9996\u9875\u4E3B\u4F53\u9875\u548C\u5B83\u7684\u5B50\u9875\u9762\u90FD\u662F\u4E00\u7EA7\u9875\u9762\uFF0C\u56E0\u6B64\u4E0D\u5F97\u6DFB\u52A0\u4E8C\u7EA7\u9875\u9762\u7684\u6807\u9898\u680F\u5230\u5B50\u9875\u9762\u4E2D\u3002\n\n## \u4E03\u3001\u5982\u679C\u7528\u6237\u6CA1\u6709\u660E\u786E\u8BF4\u660E\u8BE5\u9875\u9762\u8BBE\u8BA1\u9700\u6C42\uFF0C\u90A3\u5C31\u6309\u7167\u4EE5\u4E0B\u9875\u9762\u9ED8\u8BA4\u89C4\u5219\u8BBE\u8BA1\n- \u95EA\u5C4F\u9875\uFF1A\u7981\u6B62\u4F7F\u7528\u5168\u5C4F\u56FE\u7247\uFF0C\u4E00\u822C\u4F7F\u7528\u4E3B\u9898\u76F8\u5173\u7684\u6E10\u53D8\u8272\uFF0C\u7136\u540E\u5E26\u6709\u4E00\u4E9B\u989D\u5916\u7684\u80CC\u666F\u5143\u7D20\u589E\u5F3A\u754C\u9762\u5C42\u6B21\u611F\uFF0C\u6BD4\u5982\uFF1A\u68A6\u5E7B\u5706\u5708\u6CE1\u6CE1\u3001\u73BB\u7483\u6548\u679C\u7684\u5706\u5F62\u5F84\u5411\u6E10\u53D8\u7B49\u7B49\u5143\u7D20\n- \u5F15\u5BFC\u9875\uFF1A\u5C3D\u91CF\u4E0D\u4F7F\u7528\u5168\u5C4F\u56FE\u7247\uFF0C\u4E00\u822C\u6BCF\u4E00\u9875\u5F15\u5BFC\u9875\u80CC\u666F\u8272\u4E5F\u53EF\u4EE5\u6E10\u53D8\uFF0C\u7136\u540E\u6BCF\u4E00\u9875\u529F\u80FD\u8BF4\u660E\u4E00\u822C\u6709\u975E\u5168\u5C4F\u56FE\u7247\u3001\u6807\u9898\u3001\u526F\u6807\u9898\u7B49\u7B49\uFF0C\u4F60\u53EF\u4EE5\u5E26\u5165\u5176\u4ED6\u5143\u7D20\uFF0C\u8BA9\u9875\u9762\u66F4\u52A0\u7F8E\u89C2\uFF0C\u5E76\u4E14\u5F15\u5BFC\u9875\u7684\u5F15\u5BFC\u56FE\u7247\u9700\u8981\u81EA\u5DF1\u7ED8\u5236svg\u56FE\u7247\uFF0C\u5E76\u5B58\u653E\u5728`doc/res`\u6587\u4EF6\u5939\u4E0B\u9762\uFF0C\u5E76\u5728html\u4E2D\u4F7F\u7528\n- \u80CC\u666F\u8272\u4E3A\u4E86\u589E\u5F3A\u5C42\u6B21\u611F\uFF0C\u6DFB\u52A0\u7684\u68A6\u5E7B\u6CE1\u6CE1\u6216\u8005\u5706\u5F62\u5F84\u5411\u6E10\u53D8\u5143\u7D20\u7684div\uFF0C\u5FC5\u987B\u53EA\u80FD\u58F0\u660E\u4E3A`circle`\uFF0C\u5E76\u4E14\u4E00\u4E2Adiv\u7684`background:`\u53EA\u80FD\u58F0\u660E\u4E00\u4E2A`radial-gradient`\uFF0C\u6BD4\u5982\u6B63\u786E\u7684\u5199\u6CD5\uFF1Abackground: radial-gradient(circle, rgba(0, 229, 255, 0.15) 0%, rgba(0, 0, 0, 0) 70%);\uFF0C\u5982\u679C\u9700\u8981\u591A\u4E2A`radial-gradient`\u5F84\u5411\u6E10\u53D8\u80CC\u666F\uFF0C\u6BCF\u4E2A\u5F84\u5411\u6E10\u53D8\u80CC\u666F\u90FD\u5FC5\u987B\u58F0\u660E\u4E3A\u4E00\u4E2Adiv\u8282\u70B9\uFF0C\u6BCF\u4E2Adiv\u7684`background:`\u53EA\u80FD\u58F0\u660E\u4E00\u4E2A`radial-gradient`\u3002\n";
1
+ export declare const uiDesignPromptTemplate = "# UI\u8BBE\u8BA1\u89C4\u5219\uFF0C\u7279\u522B\u6CE8\u610F\u5FC5\u987B\u4F7F\u7528UI\u89C4\u8303`.bytefun/UI\u8BBE\u8BA1\u89C4\u8303.md`\u91CC\u9762\u9ED8\u8BA4\u7684\u4E3B\u9898\u76AE\u80A4\u6765\u8BBE\u8BA1\uFF0C\u4E0D\u5F97\u4F7F\u7528\u5176\u4ED6\u4E3B\u9898\u76AE\u80A4\u3002\n\n## \u4E00\u3001\u6837\u5F0F\u89C4\u5219\n- \u6837\u5F0F\u4EE3\u7801\u5FC5\u987B\u4F7F\u7528\u7C7B\u9009\u62E9\u5668\u6837\u5F0FClass-based Style / Class Selector Style\u65B9\u5F0F\uFF0C\u4E0D\u5F97\u4F7F\u7528\u884C\u5185\u6837\u5F0FInline Style\u6216\u5916\u90E8\u6587\u4EF6\u3002\n- \u9075\u5FAA\u624B\u673A\u5C3A\u5BF8\u89C4\u683C(\u5BBD\u5EA6 393px \u9AD8\u5EA6 808px)\n- \u9996\u9875/\u63A8\u8350tab\u7684\u5206\u7C7B/\u529F\u80FD\u5404\u4E2A\u5165\u53E3\u7684\u56FE\u6807\u4E00\u822C\u9700\u8981\u4F7F\u7528\u4E0D\u4E00\u6837\u7684\u989C\u8272\uFF0C\u5F88\u5C11\u4F1A\u7EDF\u4E00\u5168\u90E8\u4F7F\u7528\u54C1\u724C\u4E3B\u9898\u8272\n- \u6240\u6709radio\u3001checkBox\u90FD\u5FC5\u987B\u4F7F\u7528i\u6807\u7B7E\u8BBE\u7F6EFontAwesome\u56FE\u6807\u6765\u5B9E\u73B0\uFF0C\u4E0D\u5F97\u4F7F\u7528\u7CFB\u7EDF\u7684input\u6807\u7B7E\u5B9E\u73B0\u3002\n- \u5982\u7528\u6237\u6CA1\u6709\u660E\u786E\u63CF\u8FF0\u8BF4\u660E\u9875\u9762\u80CC\u666F\u8272\uFF0C\u53EA\u6709\u95EA\u5C4F\u9875\u9762\u7684\u80CC\u666F\u8272\u5141\u8BB8\u8BBE\u7F6E\u54C1\u724C\u4E3B\u8272\u6216\u54C1\u724C\u4E3B\u8272\u4E0E\u54C1\u724C\u6B21\u8272\u7684\u6E10\u53D8\u8272\uFF0C\u5176\u4ED6\u9875\u9762\u5FC5\u987B\u4F7F\u7528\u975E \u54C1\u724C\u4E3B\u8272 \u4E0E\u975E \u54C1\u724C\u6B21\u8272 \u7684\u7EAF\u8272\u505A\u9875\u9762\u80CC\u666F\u8272\uFF0C\u6BD4\u5982\u4E00\u822C\u4F7F\u7528\u767D\u8272\u7CFB\uFF0C\u5982\u679C\u662F\u6697\u9ED1\u98CE\u90A3\u5C31\u662F\u9ED1\u8272\u7CFB\u3002\n- \u8F93\u5165\u6846`input`\u5982\u679C\u9700\u8981\u5C55\u793A\u6587\u5B57 label\uFF0C\u5C3D\u91CF\u4F7F\u7528 icon \u4EE3\u66FF\u6587\u5B57 label\uFF0C\u5E76\u4E14 icon \u91CD\u53E0\u5728\u8F93\u5165\u6846\u7684\u5DE6\u4FA7\uFF0C\u8FD9\u6837\u6574\u4E2A\u9875\u9762\u7684\u7A7A\u95F4\u5229\u7528\u7387\u9AD8\u3002\n- \u5982\u679C\u4E3B\u9898\u98CE\u683C\u662F\u6697\u9ED1\u98CE\u683C\u7684\u8BDD\uFF0C\u9ED8\u8BA4\u53EF\u4EE5\u7ED9\u6BCF\u4E2A\u9875\u9762\u6DFB\u52A0\u591A\u4E2A\u73BB\u7483\u6548\u679C\u7684\u5706\u5F62\u5F84\u5411\u6E10\u53D8\u80CC\u666F\uFF0C\u7C7B\u4F3C\u8FD9\u6837\uFF1A`background: radial-gradient(circle, rgba(0, 242, 255, 0.1) 0%, rgba(0, 0, 0, 0) 70%);`\uFF0C\u91CC\u9762\u7684\u989C\u8272\u548C\u6E10\u53D8\u8303\u56F4\u53EF\u4EE5\u6839\u636E\u5B9E\u9645\u60C5\u51B5\u8C03\u6574\u3002\n- \u80CC\u666F\u8272\u4E3A\u4E86\u589E\u5F3A\u5C42\u6B21\u611F\uFF0C\u6DFB\u52A0\u7684\u68A6\u5E7B\u6CE1\u6CE1\u6216\u8005\u5706\u5F62\u5F84\u5411\u6E10\u53D8\u5143\u7D20\u7684div\uFF0C\u5FC5\u987B\u53EA\u80FD\u58F0\u660E\u4E3A`circle`\uFF0C\u5E76\u4E14\u4E00\u4E2Adiv\u7684`background:`\u53EA\u80FD\u58F0\u660E\u4E00\u4E2A`radial-gradient`\uFF0C\u6BD4\u5982\u6B63\u786E\u7684\u5199\u6CD5\uFF1Abackground: radial-gradient(circle, rgba(0, 229, 255, 0.15) 0%, rgba(0, 0, 0, 0) 70%);\uFF0C\u5982\u679C\u9700\u8981\u591A\u4E2A`radial-gradient`\u5F84\u5411\u6E10\u53D8\u80CC\u666F\uFF0C\u6BCF\u4E2A\u5F84\u5411\u6E10\u53D8\u80CC\u666F\u90FD\u5FC5\u987B\u58F0\u660E\u4E3A\u4E00\u4E2Adiv\u8282\u70B9\uFF0C\u6BCF\u4E2Adiv\u7684`background:`\u53EA\u80FD\u58F0\u660E\u4E00\u4E2A`radial-gradient`\u3002\n- \u6309\u94AE\u3001\u5361\u7247\u3001item\u9879\u7B49\u5143\u7D20\u5FC5\u987B\u8981\u6709\u4E00\u4E2Ahover\u540E\u6539\u53D8\u80CC\u666F\u8272\u7684\u53CD\u9988\u6548\u679C\uFF0C\u4E0D\u80FD\u4F7F\u7528transform\u6548\u679C\uFF0C\u53EA\u80FD\u4F7F\u7528\u80CC\u666F\u8272\u6548\u679C\u3002\n- css\u6837\u5F0F\u91CC\u9762\u7684`background-image`\u5C5E\u6027\u7684\u503C\u5FC5\u987B\u662F\u8FDC\u7A0B\u56FE\u7247\uFF0C\u4E0D\u80FD\u8BBE\u7F6E\u4E0D\u662F\u8FDC\u7A0B\u56FE\u7247\u7684\u4EFB\u4F55\u503C\uFF0C\u6BD4\u5982\u4E0D\u80FD\u8BBE\u7F6E'base64'\u3001\u6E10\u53D8'radial-gradient'\u7B49\u3002\n\n## \u4E8C\u3001\u5FC5\u987B\u7ED9\u6BCF\u4E00\u4E2A\u8282\u70B9\u6DFB\u52A0id\u3001name\u3001nodeType\u5C5E\u6027\n- \u7279\u522B\u6CE8\u610F\uFF0C`i`\u548C`div`\u7B49\u6807\u7B7E\u4E5F\u5FC5\u987B\u6DFB\u52A0 id\u3001name\u3001nodeType \u5C5E\u6027\uFF0C\u6BCF\u4E00\u4E2A\u8282\u70B9\u90FD\u9700\u8981\u6DFB\u52A0\u8FD9\u4E09\u4E2A\u5C5E\u6027\uFF0C\u5343\u4E07\u522B\u6F0F\u6389\u4E86\uFF0C\u8FD9\u662F\u5FC5\u8981\u6761\u4EF6\n- id \u5C5E\u6027\u5FC5\u987B\u53EA\u80FD\u4F7F\u7528\u82F1\u6587\u6216\u6570\u5B57\u7EC4\u6210\uFF0C\u4E14\u4E0D\u80FD\u4EE5\u6570\u5B57\u5F00\u5934\uFF0C\u5E76\u4E14\u6574\u4E2A\u9875\u9762 id \u5C5E\u6027\u7684\u503C\u5FC5\u987B\u552F\u4E00\uFF0C\u4F7F\u7528\u9A7C\u5CF0\u7684\u547D\u540D\u65B9\u5F0F\n- name \u5C5E\u6027\u5FC5\u987B\u662F\u4E2D\u6587\u6216\u6570\u5B57\uFF0C\u5E76\u4E14\u4E0D\u80FD\u5305\u542B\u7279\u6B8A\u5B57\u7B26\n- \u5982\u679C\u662F\u901A\u8FC7\u70B9\u51FBitem\u9879\u5207\u6362\u5C55\u793A\u5185\u5BB9\u7684\uFF0C\u90A3\u4E48item\u9879\u7684nodeType\u5FC5\u987B\u662F`tabMenuBarItem`\uFF0Ctab panel\u7684nodeType\u5FC5\u987B\u662F`tabPanel`\uFF0C`tabMenuBarItem`\u7684\u7236\u4EB2\u5BB9\u5668\u662F`tabMenuBar`\uFF0C\u4E0D\u5F97\u4F7F\u7528`horizontalListView`\u6765\u4EE3\u66FF`tabMenuBar`\n- \u9875\u9762\u7684header\u6807\u9898\u680FnodeType\u5FC5\u987B\u662F`titleBar`\u6216\u8005`topNavigateBar`\uFF0C\u800C\u4E0D\u662F`container`\n- nodeType \u5C5E\u6027\u7684\u503C\u5FC5\u987B\u662F`\u7EC4\u4EF6\u7C7B\u578B\u679A\u4E3E (nodeType)\u679A\u4E3E` \u4E2D\u7684\u4E00\u4E2A\uFF0C\u4E00\u4E9B\u5E03\u5C40\u5BB9\u5668\u9700\u8981\u9075\u5B88\u4EE5\u4E0B\u8BF4\u660E\u6765\u9009\u62E9\u6B63\u786E\u7684nodeType\uFF1A\n - \u5F00\u5173\u7EC4\u4EF6\uFF1A`switch`\uFF0C\u7528\u4E8E\u4E24\u4E2A\u72B6\u6001\u5207\u6362\u7684\u573A\u666F\uFF0C\u6BD4\u5982\uFF1A\u6253\u5F00/\u5173\u95ED\u3001\u663E\u793A/\u9690\u85CF\u3001\u540C\u610F/\u62D2\u7EDD\u7B49\u7B49\uFF0C\u5177\u4F53\u573A\u666F\u6BD4\u5982\uFF1A\u8BBE\u7F6E\u4E2D\u7684\u5F00\u5173\u529F\u80FD\u3001\u540C\u610F/\u62D2\u7EDD\u534F\u8BAE\u3001\u5BC6\u7801\u663E\u793A\u4E0E\u9690\u85CF\u56FE\u6807\u5F00\u5173\u7B49\uFF0C\u6BD4\u5982\uFF1A\n ``` html\n <div\n id=\"passwordShowHideCheckbox\"\n name=\"\u5BC6\u7801\u663E\u793A\u9690\u85CF\u5207\u6362\u5F00\u5173\"\n nodeType=\"switch\"\n class=\"password-show-hide-checkbox\"\n onclick=\"togglePasswordShowHide()\"\n >\n <i\n id=\"passwordShowHideIcon\"\n name=\"\u5BC6\u7801\u663E\u793A\u9690\u85CF\u5207\u6362\u56FE\u6807\"\n nodeType=\"icon\"\n class=\"far fa-eye\"\n checkedClass=\"far fa-eye-slash\"\n ></i>\n </div>\n ```\n - \u8131\u79BB\u6587\u6863\u6D41\u7684\u5F39\u7A97/Toast\u7A97\u53E3\u5BB9\u5668\uFF1A`dialogOverlay`\u3001`dialog`\u3001`toast`\uFF0C\u7528\u4E8E\u5C55\u793A\u5F39\u7A97/Toast\u7C7B\u522B\u7684loading\uFF0C\u4E0D\u5F97\u4F7F\u7528`oneStateContentContainer`\uFF0C\u5E94\u8BE5Toast\u7C7B\u522B\u4F7F\u7528`toast`\uFF0C\u5F39\u7A97\u7C7B\u522B\u4F7F\u7528`dialogOverlay`\u5305\u542B1\u4E2A`dialog`\uFF0C`dialog`\u662F\u5BF9\u8BDD\u6846\u7684\u5185\u5BB9\u5BB9\u5668\uFF0C\u4E00\u822C\u5C4F\u5E55\u5C45\u4E2D\u663E\u793A\u3002\n - \u5217\u8868\u5BB9\u5668\uFF1A`verticalListView`\u3001`horizontalListView`\u3001`listItemCard`\uFF0C\u7528\u4E8E\u5E03\u5C40\u591A\u4E2A\u5217\u8868\u9879\uFF0C\u6BD4\u5982\uFF1A\u5546\u54C1\u5217\u8868\u3001\u5206\u7C7B\u5217\u8868\u3001\u6807\u7B7E\u5217\u8868\u7B49\uFF0C\u53EF\u4EE5\u652F\u6301\u591A\u884C\u591A\u5217\u7684\u5217\u8868\u5E03\u5C40\n - \u5217\u8868\u9875\u811A\u5BB9\u5668\uFF1A`listFooterContainer`\uFF0C\u7528\u4E8E\u5E03\u5C40\u5217\u8868\u7684\u9875\u811A\uFF0C\u6BD4\u5982\uFF1A\u52A0\u8F7D\u66F4\u591A\u3001\u6CA1\u6709\u66F4\u591A\u4E86\u7B49\n - tab\u9009\u9879\u5361\uFF1A`tabPanelFather`\u4E0E`tabMenuBar`\u7EC4\u5408\u5B9E\u73B0tab\u9009\u9879\u5361\uFF0C\u6CE8\u610FtabMenuBar\u652F\u6301\u6A2A\u5411\u548C\u7AD6\u5411\u7684tab\u9009\u9879\u5361\uFF0C\u6BD4\u5982\u5206\u7C7B\u7AD6\u5411\u7684tab\u9009\u9879\u5361\u83DC\u5355\u680F\uFF0C\u4E00\u822C\u5206\u7C7B\u90FD\u4F7F\u7528tab\u9009\u9879\u5361\u6765\u5B9E\u73B0\uFF0C\u7981\u6B62\u4F7F\u7528`verticalListView`\u548C`horizontalListView`\u5217\u8868\u6765\u4EE3\u66FFtab\u9009\u9879\u5361\u3002\n - \u7F51\u683C\u5BB9\u5668\uFF1AgridContainer\u7528\u4E8E\u5E03\u5C40\u591A\u4E2A\u7F51\u683C\u9879\uFF0C\u91CC\u9762\u5305\u542BN\u4E2AgridItem\uFF0C\u6BD4\u5982\uFF1A\u5206\u7C7B\u7F51\u683C\u5165\u53E3\n - \u6D41\u5F0F\u5BB9\u5668\uFF1A\u7528\u4E8E\u5E03\u5C40\u591A\u4E2A\u5B50\u9879\uFF0C\u5B50\u9879\u53EF\u4EE5\u5728\u4E00\u884C\u663E\u793A\uFF0C\u5F53\u4F4D\u7F6E\u4E0D\u591F\u65F6\u5C31\u6362\u884C\u663E\u793A\uFF0C\u6BD4\u5982\uFF1A\u4E00\u7EC4\u6807\u7B7Etag\u7684\u6392\u7248\u5E03\u5C40\n - \u591A\u72B6\u6001\u5BB9\u5668\uFF1A`multiStateContainer`, `oneStateContentContainer`\uFF0C\u7528\u4E8E\u4E0D\u662F\u901A\u8FC7\u4EA4\u4E92\uFF0C\u800C\u662F\u901A\u8FC7\u903B\u8F91\u72B6\u6001\u53D8\u91CF\u53D8\u5316\u800C\u663E\u793A\u4E0D\u540C\u72B6\u6001\u7684\u5185\u5BB9\u5BB9\u5668\uFF0C\u6BD4\u5982\uFF1A\u767B\u5F55\u72B6\u6001\u548C\u672A\u767B\u5F55\u72B6\u6001\u5206\u522B\u663E\u793A\u4E0D\u540C\u7684\u5185\u5BB9\u3001\u52A0\u8F7D\u4E2D/\u52A0\u8F7D\u5931\u8D25/\u52A0\u8F7D\u6210\u529F\u6709\u6570\u636E/\u6CA1\u6709\u6570\u636E\u7B49\u72B6\u6001\u5207\u6362\u3001\u4E0D\u540C\u6743\u9650/\u7B49\u7EA7/\u65F6\u671F\u7B49\u7B49\u663E\u793A\u4E0D\u540C\u7684\u529F\u80FD\uFF0C\u7B49\u7B49\u8FD9\u4E9B\u901A\u8FC7\u903B\u8F91\u72B6\u6001\u53D8\u91CF\u53D8\u5316\u800C\u663E\u793A\u4E0D\u540C\u72B6\u6001\u7684\u5185\u5BB9\u5BB9\u5668\uFF0C\u90FD\u5FC5\u987B\u4F7F\u7528`multiStateContainer`\u548C`oneStateContentContainer`\u6765\u5B9E\u73B0\uFF0C\u7279\u522B\u6CE8\u610F\u8131\u79BB\u6587\u6863\u6D41\u7684\u5F39\u7A97/Toast\u7A97\u53E3\u5BB9\u5668\u7C7B\u522B\u7684loading\uFF0C\u4E0D\u5F97\u4F7F\u7528`oneStateContentContainer`\uFF0C\u5E94\u8BE5\u4F7F\u7528`dialogOverlay/dialog`\u6216\u8005`toast`\u3002\n- \u9AD8\u7EA7\u7EC4\u4EF6\u8282\u70B9\u7684nodeType\u7ED3\u6784\u89C4\u5219\uFF1A\n - \u5BF9\u8BDD\u6846\uFF1A`dialogOverlay`\u662F\u5F39\u7A97/Toast\u7A97\u53E3\u5BB9\u5668\u7684\u906E\u7F69\u5C42\uFF0C`dialog`\u662F\u5BF9\u8BDD\u6846\u7684\u5185\u5BB9\u5BB9\u5668\uFF0C`dialogOverlay`\u5305\u542B\u4E00\u4E2A`dialog`\uFF0C`dialog`\u4E00\u822C\u5C4F\u5E55\u5C45\u4E2D\u663E\u793A\n - tab \u9009\u9879\u5361\uFF1A`tabMenuBar`\u662Ftab\u9009\u9879\u5361\u83DC\u5355\u680F\uFF0C\u91CC\u9762\u5305\u542BN\u4E2A`tabMenuBarItem`\uFF0C`tabPanelFather`\u662Ftab\u9009\u9879\u5361\u5185\u5BB9\u5BB9\u5668\uFF0C\u91CC\u9762\u5305\u542BN\u4E2A`tabPanel`\uFF0C`tabMenuBar`\u548C`tabPanelFather`\u5FC5\u987B\u540C\u65F6\u5B58\u5728\uFF0C`tabPanel`\u7684\u6570\u91CF\u5FC5\u987B\u548C`tabMenuBarItem`\u7684\u6570\u91CF\u76F8\u540C\uFF0C\u6CE8\u610FtabMenuBar\u652F\u6301\u6A2A\u5411\u548C\u7AD6\u5411\u7684tab\u9009\u9879\u5361\uFF0C\u6BD4\u5982\u5206\u7C7B\u7AD6\u5411\u7684tab\u9009\u9879\u5361\u83DC\u5355\u680F\uFF0C\u4E00\u822C\u5206\u7C7B\u90FD\u4F7F\u7528tab\u9009\u9879\u5361\u6765\u5B9E\u73B0\uFF0C\u7981\u6B62\u4F7F\u7528`verticalListView`\u548C`horizontalListView`\u5217\u8868\u6765\u4EE3\u66FFtab\u9009\u9879\u5361\u3002\n - viewPager \u8F6E\u64AD\uFF1A`viewPager`\u662F\u8F6E\u64AD\u5BB9\u5668\uFF0C\u91CC\u9762\u5305\u542BN\u4E2A`viewPagerItem`\uFF0C`viewPagerIndicatorContainer`\u662F\u8F6E\u64AD\u6307\u793A\u5668\u5BB9\u5668\uFF0C`viewPager`\u4E0E`viewPagerIndicatorContainer`\u5FC5\u987B\u540C\u65F6\u5B58\u5728\n - \u4E00\u884C\u4E0D\u591F\u4F4D\u7F6E\u663E\u793A\u5C31\u6362\u884C\u7684\u5BB9\u5668\uFF1A`inlineBlockAndWrap`\uFF0C\u91CC\u9762\u5305\u542BN\u4E2A`blockItem`\uFF0C`blockItem`\u662F\u5B83\u7684\u5B50\u9879\n - \u591A\u72B6\u6001\u5BB9\u5668\uFF1A\u4E00\u4E2A`multiStateContainer`\u591A\u72B6\u6001\u5BB9\u5668\u5305\u542B\u591A\u4E2A`oneStateContentContainer`\n\n- \u7EC4\u4EF6\u7C7B\u578B\u679A\u4E3E (nodeType)\u679A\u4E3E\uFF1A\n\n - \u5F62\u72B6\uFF1A`rect`, `circle`, `line`\n - \u57FA\u7840\u7EC4\u4EF6\uFF1A`text`\u3001`button`\u3001`input`\u3001`icon`\u3001`image`\n - \u57FA\u7840\u5BB9\u5668\uFF1A`container`\n - \u7F51\u683C\u5BB9\u5668\uFF1A`gridContainer`\u3001`gridItem`\n - \u6D41\u5F0F\u5BB9\u5668\uFF1A`inlineBlockAndWrap`\u3001`blockItem`\n - \u5F00\u5173\uFF1A`switch`\n - \u5355\u9009\uFF1A`radioGroup`\u3001`radio`\n - \u591A\u9009\uFF1A`checkBoxGroup`\u3001`checkBox`\n - \u9876\u90E8\u5BFC\u822A\u680F\uFF1A`titleBar`\u3001`topNavigateBar`\n - \u5E95\u90E8\u64CD\u4F5C\u680F\uFF1A`bottomOperateBar`\n - \u591A\u72B6\u6001\u5BB9\u5668\uFF1A`multiStateContainer`, `oneStateContentContainer`\n - \u5217\u8868\uFF1A`verticalListView`, `horizontalListView`, `listItemCard`\u3001`listFooterContainer`\n - \u8F6E\u64AD\uFF1A`viewPager`, `viewPagerItem`, `viewPagerIndicatorContainer`\n - tab \u9009\u9879\u5361\uFF1A`tabPanelFather`, `tabPanel`, `tabMenuBar`, `tabMenuBarItem`\n - \u5E95\u90E8\u5BFC\u822A: `bottomTabContentContainer`, `subPage`, `bottomTabNavigateBar`, `bottomTabNavigateBarItem`\n - \u5BF9\u8BDD\u6846\uFF1A`dialogOverlay`, `dialogContent`\n - toast \u63D0\u793A\uFF1A`toast`\n - \u4E0B\u62C9\u83DC\u5355\uFF1A`dropDownMenu`\n - \u4FA7\u6ED1\u9762\u677F\uFF1A`sideSlidePanel`\n - \u624B\u673A\u786C\u4EF6\u5143\u7D20\uFF1A`phoneTopStatusBar`\u3001`phoneBottomIndicatorBar`\uFF0C\u8FD9\u4E24\u4E2A\u5143\u7D20\u662F\u624B\u673A\u786C\u4EF6\u81EA\u5E26\u7684\u5143\u7D20\uFF0C\u4E0D\u80FD\u5728\u9875\u9762\u4E2D\u6DFB\u52A0\u3002\n\n## \u4E09\u3001\u8F6E\u64AD\u4E0ETabs\u7EC4\u4EF6\u7684\u89C4\u5219\n- \u8F6E\u64AD\u7684\u6BCF\u4E00\u4E2ASlide\u548CTabs\u9009\u9879\u5361\u7EC4\u4EF6\u6BCF\u4E00\u4E2ATab Panel\u90FD\u5FC5\u987B\u4F7F\u7528`display: none`\u548C`display: block/flex`\u6765\u5B9E\u73B0\u9690\u85CF\u548C\u663E\u793A\u7684\u4E92\u65A5\u5207\u6362\n- \u8F6E\u64AD\u7684\u6BCF\u4E00\u4E2ASlide\u5FC5\u987B\u6709html\u4EE3\u7801\u5B9E\u73B0\uFF0C\u4E0D\u5F97\u53EA\u5199\u7B2C1\u4E2ASlide\u7684html\u4EE3\u7801\uFF0C\u5176\u4ED6Slide\u7684html\u4EE3\u7801\u4E5F\u5FC5\u987B\u8981\u5199\u3002\n- Tabs\u9009\u9879\u5361\u7EC4\u4EF6\u9700\u8981\u6DFB\u52A0\u70B9\u51FB\u5207\u6362Tab Panel\u7684\u529F\u80FD\uFF0C\u4E0D\u5F97\u53EA\u5199\u7B2C1\u4E2ATab Panel\u7684html\u4EE3\u7801\uFF0C\u5176\u4ED6Tab Panel\u7684html\u4EE3\u7801\u4E5F\u5FC5\u987B\u8981\u5199\u3002\n- Tabs\u9009\u9879\u5361\u7EC4\u4EF6\u6BCF\u4E00\u4E2ATab Panel\u90FD\u5FC5\u987B\u8981\u6709\u5185\u5BB9\uFF0C\u4E0D\u5F97\u6577\u884D\u5730\u5C55\u793A\u6CA1\u6709\u6570\u636E\u3001\u8054\u7F51\u5931\u8D25\u3001loading\u7684\u60C5\u51B5\uFF0C\u5FC5\u987B\u5C55\u793A\u6709\u6570\u636E\u7684\u5177\u4F53\u5185\u5BB9\uFF0C\u7EDD\u5BF9\u4E0D\u80FD\u5077\u61D2\u6577\u884D\u3002\n- Tabs\u9009\u9879\u5361\u7EC4\u4EF6\u6BCF\u4E00\u4E2ATab Panel\u90FD\u5FC5\u987B\u8981\u6709html\u4EE3\u7801\u5B9E\u73B0\uFF0C\u4E0D\u5F97\u53EA\u5199\u7B2C1\u4E2ATab Panel\u7684html\u4EE3\u7801\uFF0C\u5176\u4ED6Tab Panel\u7684html\u4EE3\u7801\u4E5F\u5FC5\u987B\u8981\u5199\u3002\n\n## \u56DB\u3001\u56FE\u6807\u4E0E\u56FE\u7247\u7684\u89C4\u5219\n- \u5F53\u9700\u8981icon\u56FE\u6807\u65F6\u5FC5\u987B\u4F7F\u7528FontAwesome\u56FE\u6807\uFF0C\u6BD4\u5982\uFF1A`<i name=\"\u5FAE\u4FE1Icon\" vtype=\"icon\" id=\"wxIcon\" class=\"fab fa-weixin\"></i>`\uFF0C\u5E76\u4E14\u6CE8\u610F\u56FE\u6807\u7684\u989C\u8272\uFF0C\u6BD4\u5982\u5FAE\u4FE1\u56FE\u6807\u4E00\u822C\u4F7F\u7528\u7EFF\u8272\u7CFB\uFF0CQQ\u56FE\u6807\u4E00\u822C\u4F7F\u7528\u84DD\u8272\u7CFB\uFF0C\u5FAE\u535A\u56FE\u6807\u4E00\u822C\u4F7F\u7528\u7EA2\u8272\u7CFB\uFF0C\u652F\u4ED8\u5B9D\u56FE\u6807\u4E00\u822C\u4F7F\u7528\u6D45\u84DD\u8272\u7CFB\u7B49\u7B49\n- \u7EDD\u5BF9\u4E0D\u80FD\u4F7F\u7528 emoji \u8868\u60C5\u7B26\u53F7\uFF0C\u4E0D\u5F97\u4F7F\u7528\u4EFB\u4F55 emoji \u8868\u60C5\u7B26\u53F7\uFF0C\u8BF7\u4F7F\u7528FontAwesome\u5B57\u4F53\u56FE\u6807\u6765\u4EE3\u66FF\u3002\n- LOGO\u56FE\u7247\u548C\u5F15\u5BFC\u9875\u7684\u5F15\u5BFC\u56FE\u7247\u5FC5\u987B\u4F7F\u7528`doc/res/svgMap.json`\u6587\u4EF6\u4E2Djson\u5BF9\u8C61\u6B63\u786E\u5B57\u6BB5\u7684https\u94FE\u63A5\u503C\uFF0C\u7981\u6B62\u4F7F\u7528\u672C\u5730\u56FE\u7247\u8DEF\u5F84`doc/res/logo.svg`\u6587\u4EF6\uFF0C\u800C\u662F\u4F7F\u7528\u7C7B\u4F3C\uFF1A`https://editor.bytefungo.com/dfile/img/xxxxx.svg`\u8FD9\u6837\u7684\u56FE\u7247\u94FE\u63A5\u5730\u5740\uFF0C\u6BD4\u5982\u95EA\u5C4F\u9875\u3001\u767B\u5F55\u9875\u3001\u6CE8\u518C\u9875\u7528\u5230\u7684LOGO\u56FE\u7247\uFF0C\u5F15\u5BFC\u9875\u7684\u5F15\u5BFC\u56FE\u7247\u7B49\u3002\n- jpg\u3001jpeg\u7C7B\u578B\u56FE\u7247\u5FC5\u987B\u4F7F\u7528\u56FE\u7247\u5730\u5740\uFF1A`https://oss.bytefungo.com/f1/showImg1.jpg`)\uFF0C\u5176\u4E2D\u7ED3\u5C3E\u7684\u2019showImg1'\u53EF\u4EE5\u6362\u4E3A\u4ECE 1 \u5230 30 \u7684\u6570\u5B57\uFF0C1~30 \u7684\u6570\u5B57\u5FC5\u987B\u968F\u673A\u6311\u9009\uFF0C\u4E0D\u5F97\u6BCF\u4E2A\u9875\u9762\u6BCF\u4E2A\u56FE\u7247\u90FD\u4F7F\u7528\u540C\u4E00\u4E2A\u6570\u5B57\u3002\u5199\u6CD5\u6BD4\u5982\uFF1A`<img src=\"https://oss.bytefungo.com/f1/showImg17.jpg\" alt=\"xxx\" class=\"xxx\" nodeType=\"image\">`\n\n## \u4E94\u3001\u9996\u9875\u4E3B\u4F53\u9875\u4E0E\u5B50\u9875\u9762\u7684\u89C4\u5219\n- \u9996\u9875\u4E3B\u4F53\u9875\u5D4C\u5957\u4E86\u591A\u4E2A\u5B50\u9875\u9762\uFF0C\u6BCF\u4E00\u4E2A\u5B50\u9875\u9762\u90FD\u4E0D\u9700\u8981\u586B\u5145\u5185\u5BB9\uFF0C\u7A7A\u767D\u5C31\u884C\uFF0C\u540E\u9762\u4F1A\u6709\u4E13\u95E8\u7684\u4EFB\u52A1\u6765\u8BBE\u8BA1\u5177\u4F53\u7684\u5B50\u9875\u9762\u3002\n- \u4EFB\u4F55\u5B50\u9875\u9762\u90FD\u5FC5\u987B\u7981\u6B62\u6DFB\u52A0\u5E95\u90E8\u5BFC\u822A\u680F\u8282\u70B9\u5230\u9875\u9762\uFF0C\u56E0\u4E3A\u5B50\u9875\u9762\u662F\u5D4C\u5957\u5728\u9996\u9875\u4E3B\u4F53\u9875\u4E2D\u7684\uFF0C\u7236\u9875\u9762\u5DF2\u7ECF\u6709\u5E95\u90E8\u5BFC\u822A\u680F\u4E86\uFF0C\u5B50\u9875\u9762\u4E0D\u9700\u8981\u518D\u6DFB\u52A0\u5E95\u90E8\u5BFC\u822A\u680F\uFF0C\u4E5F\u4E0D\u5F97\u6DFB\u52A0\u4E8C\u7EA7\u9875\u9762\u7684\u6807\u9898\u680F\u5230\u5B50\u9875\u9762\u4E2D\uFF0C\u56E0\u4E3A\u5B50\u9875\u9762\u662F\u5D4C\u5957\u5728\u9996\u9875\u4E3B\u4F53\u9875\u4E2D\u7684\uFF0C\u9996\u9875\u4E3B\u4F53\u9875\u548C\u5B83\u7684\u5B50\u9875\u9762\u90FD\u662F\u4E00\u7EA7\u9875\u9762\uFF0C\u56E0\u6B64\u4E0D\u5F97\u6DFB\u52A0\u4E8C\u7EA7\u9875\u9762\u7684\u6807\u9898\u680F\u5230\u5B50\u9875\u9762\u4E2D\u3002\n\n## \u516D\u3001\u5982\u679C\u7528\u6237\u6CA1\u6709\u660E\u786E\u8BF4\u660E\u8BE5\u9875\u9762\u8BBE\u8BA1\u9700\u6C42\uFF0C\u90A3\u5C31\u6309\u7167\u4EE5\u4E0B\u9875\u9762\u9ED8\u8BA4\u89C4\u5219\u8BBE\u8BA1\n- \u95EA\u5C4F\u9875\uFF1A\u7981\u6B62\u4F7F\u7528\u5168\u5C4F\u56FE\u7247\uFF0C\u4E00\u822C\u4F7F\u7528\u4E3B\u9898\u76F8\u5173\u7684\u6E10\u53D8\u8272\uFF0C\u7136\u540E\u5E26\u6709\u4E00\u4E9B\u989D\u5916\u7684\u80CC\u666F\u5143\u7D20\u589E\u5F3A\u754C\u9762\u5C42\u6B21\u611F\uFF0C\u6BD4\u5982\uFF1A\u68A6\u5E7B\u5706\u5708\u6CE1\u6CE1\u3001\u73BB\u7483\u6548\u679C\u7684\u5706\u5F62\u5F84\u5411\u6E10\u53D8\u7B49\u7B49\u5143\u7D20\n- \u5F15\u5BFC\u9875\uFF1A\u5C3D\u91CF\u4E0D\u4F7F\u7528\u5168\u5C4F\u56FE\u7247\uFF0C\u4E00\u822C\u6BCF\u4E00\u9875\u5F15\u5BFC\u9875\u80CC\u666F\u8272\u4E5F\u53EF\u4EE5\u6E10\u53D8\uFF0C\u7136\u540E\u6BCF\u4E00\u9875\u529F\u80FD\u8BF4\u660E\u4E00\u822C\u6709\u975E\u5168\u5C4F\u56FE\u7247\u3001\u6807\u9898\u3001\u526F\u6807\u9898\u7B49\u7B49\uFF0C\u4F60\u53EF\u4EE5\u5E26\u5165\u5176\u4ED6\u5143\u7D20\uFF0C\u8BA9\u9875\u9762\u66F4\u52A0\u7F8E\u89C2\uFF0C\u5E76\u4E14\u5F15\u5BFC\u9875\u7684\u5F15\u5BFC\u56FE\u7247\u9700\u8981\u81EA\u5DF1\u7ED8\u5236svg\u56FE\u7247\uFF0C\u5E76\u5B58\u653E\u5728`doc/res`\u6587\u4EF6\u5939\u4E0B\u9762\uFF0C\u5E76\u5728html\u4E2D\u4F7F\u7528\n- \u80CC\u666F\u8272\u4E3A\u4E86\u589E\u5F3A\u5C42\u6B21\u611F\uFF0C\u6DFB\u52A0\u7684\u68A6\u5E7B\u6CE1\u6CE1\u6216\u8005\u5706\u5F62\u5F84\u5411\u6E10\u53D8\u5143\u7D20\u7684div\uFF0C\u5FC5\u987B\u53EA\u80FD\u58F0\u660E\u4E3A`circle`\uFF0C\u5E76\u4E14\u4E00\u4E2Adiv\u7684`background:`\u53EA\u80FD\u58F0\u660E\u4E00\u4E2A`radial-gradient`\uFF0C\u6BD4\u5982\u6B63\u786E\u7684\u5199\u6CD5\uFF1Abackground: radial-gradient(circle, rgba(0, 229, 255, 0.15) 0%, rgba(0, 0, 0, 0) 70%);\uFF0C\u5982\u679C\u9700\u8981\u591A\u4E2A`radial-gradient`\u5F84\u5411\u6E10\u53D8\u80CC\u666F\uFF0C\u6BCF\u4E2A\u5F84\u5411\u6E10\u53D8\u80CC\u666F\u90FD\u5FC5\u987B\u58F0\u660E\u4E3A\u4E00\u4E2Adiv\u8282\u70B9\uFF0C\u6BCF\u4E2Adiv\u7684`background:`\u53EA\u80FD\u58F0\u660E\u4E00\u4E2A`radial-gradient`\u3002\n";
2
2
  //# sourceMappingURL=uiDesign.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"uiDesign.d.ts","sourceRoot":"","sources":["../src/uiDesign.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,sBAAsB,s5vBAmIlC,CAAA"}
1
+ {"version":3,"file":"uiDesign.d.ts","sourceRoot":"","sources":["../src/uiDesign.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,sBAAsB,sgoBAiGlC,CAAA"}