@jigx/core-sdk 1.0.0 → 1.2.0-rc

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.
Files changed (41) hide show
  1. package/README.md +2 -0
  2. package/dist/action/ja.generate-pdf.d.ts +17 -1
  3. package/dist/action/ja.generate-pdf.d.ts.map +1 -1
  4. package/dist/action/ja.generate-pdf.js +4 -1
  5. package/dist/action/ja.in-background.d.ts +3 -2
  6. package/dist/action/ja.in-background.d.ts.map +1 -1
  7. package/dist/action/ja.in-background.js +1 -1
  8. package/dist/assets/example-extraction-cache.json +3 -3
  9. package/dist/assets/extracted-core-sdk-examples.yaml +18 -0
  10. package/dist/assets/extracted-core-sdk-types.yaml +58 -0
  11. package/dist/assets/type-extraction-cache.json +3 -3
  12. package/docs/array-fields.md +371 -0
  13. package/docs/conditional-logic.md +178 -0
  14. package/docs/convention-naming.md +102 -0
  15. package/docs/date-field.md +92 -0
  16. package/docs/dropdown-fields.md +879 -0
  17. package/docs/field-state.md +131 -0
  18. package/docs/field-types-overview.md +132 -0
  19. package/docs/formatting.md +421 -0
  20. package/docs/icons.md +142 -0
  21. package/docs/index.md +23 -0
  22. package/docs/jsonata-expressions.md +200 -0
  23. package/docs/media-fields.md +107 -0
  24. package/docs/overview.md +467 -0
  25. package/docs/pattern-build-deploy.md +91 -0
  26. package/docs/pattern-datasources.md +459 -0
  27. package/docs/pattern-forms.md +528 -0
  28. package/docs/pattern-global-actions.md +92 -0
  29. package/docs/pattern-javascript-functions.md +452 -0
  30. package/docs/pattern-navigation.md +304 -0
  31. package/docs/pattern-pdf-generation.md +391 -0
  32. package/docs/pattern-rest-acumatica.md +660 -0
  33. package/docs/pattern-sync-progress.md +96 -0
  34. package/docs/pattern-sync.md +653 -0
  35. package/docs/pattern-tabs-form.md +293 -0
  36. package/docs/recipe-index.md +64 -0
  37. package/docs/runtime-variables.md +127 -0
  38. package/docs/sections.md +81 -0
  39. package/docs/validation-patterns.md +150 -0
  40. package/package.json +5 -4
  41. package/CHANGELOG.md +0 -95
package/README.md CHANGED
@@ -2,6 +2,8 @@
2
2
 
3
3
  TypeScript fluent API for building Jigx mobile applications declaratively. Uses builder pattern throughout to provide type-safe application construction that compiles to Jigx's YAML configuration format.
4
4
 
5
+ > Looking for the CLI workflow (`jigx create`, `jigx build`, `jigx deploy`)? See [`@jigx/sdk-tools`](../sdk-tools/README.md).
6
+
5
7
  See [DESIGN.md](./DESIGN.md) for architecture details.
6
8
 
7
9
  ## Features
@@ -1,10 +1,26 @@
1
1
  import { type Expression } from '../abstract/index.js';
2
2
  import { ActionBaseBuilder, type ActionBaseInput } from './ja.abstract.js';
3
+ export type PdfPageSize = 'letter' | 'legal' | 'tabloid' | 'a4' | 'a3';
4
+ export type PdfPageOrientation = 'portrait' | 'landscape';
5
+ export type PdfPageMargin = 'none' | number | {
6
+ readonly top?: number;
7
+ readonly right?: number;
8
+ readonly bottom?: number;
9
+ readonly left?: number;
10
+ };
11
+ export interface PdfPageOptions {
12
+ readonly size?: PdfPageSize;
13
+ readonly orientation?: PdfPageOrientation;
14
+ readonly width?: number;
15
+ readonly height?: number;
16
+ readonly margin?: PdfPageMargin;
17
+ }
3
18
  export interface GeneratePdfActionInput extends ActionBaseInput {
4
19
  readonly fileName: string | Expression;
5
20
  readonly html: string | Expression;
21
+ readonly page?: PdfPageOptions;
6
22
  }
7
23
  export declare class JaGeneratePdfBuilder<TInput extends GeneratePdfActionInput = GeneratePdfActionInput> extends ActionBaseBuilder<GeneratePdfActionInput> {
8
24
  constructor(options: TInput);
9
25
  }
10
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiamEuZ2VuZXJhdGUtcGRmLmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvYWN0aW9uL2phLmdlbmVyYXRlLXBkZi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQWUsS0FBSyxVQUFVLEVBQXdCLE1BQU0sc0JBQXNCLENBQUE7QUFDekYsT0FBTyxFQUFFLGlCQUFpQixFQUFFLEtBQUssZUFBZSxFQUFFLE1BQU0sa0JBQWtCLENBQUE7QUFLMUUsTUFBTSxXQUFXLHNCQUF1QixTQUFRLGVBQWU7SUFFN0QsUUFBUSxDQUFDLFFBQVEsRUFBRSxNQUFNLEdBQUcsVUFBVSxDQUFBO0lBRXRDLFFBQVEsQ0FBQyxJQUFJLEVBQUUsTUFBTSxHQUFHLFVBQVUsQ0FBQTtDQUNuQztBQU1ELHFCQUFhLG9CQUFvQixDQUMvQixNQUFNLFNBQVMsc0JBQXNCLEdBQUcsc0JBQXNCLENBQzlELFNBQVEsaUJBQWlCLENBQUMsc0JBQXNCLENBQUM7SUFDakQsWUFBWSxPQUFPLEVBQUUsTUFBTSxFQU0xQjtDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQUNUSU9OX1RZUEUsIHR5cGUgRXhwcmVzc2lvbiwgdG9TdHJpbmdPckV4cHJlc3Npb24gfSBmcm9tICcuLi9hYnN0cmFjdC9pbmRleC5qcydcbmltcG9ydCB7IEFjdGlvbkJhc2VCdWlsZGVyLCB0eXBlIEFjdGlvbkJhc2VJbnB1dCB9IGZyb20gJy4vamEuYWJzdHJhY3QuanMnXG5cbi8qKlxuICogSW5wdXQgaW50ZXJmYWNlIGZvciBnZW5lcmF0ZS1wZGYgaW4tYmFja2dyb3VuZCBhY3Rpb24uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgR2VuZXJhdGVQZGZBY3Rpb25JbnB1dCBleHRlbmRzIEFjdGlvbkJhc2VJbnB1dCB7XG4gIC8qKiBQREYgZmlsZSBuYW1lICh3aXRob3V0IC5wZGYgZXh0ZW5zaW9uKSAqL1xuICByZWFkb25seSBmaWxlTmFtZTogc3RyaW5nIHwgRXhwcmVzc2lvblxuICAvKiogSFRNTCBjb250ZW50IHRvIGNvbnZlcnQgdG8gUERGICovXG4gIHJlYWRvbmx5IGh0bWw6IHN0cmluZyB8IEV4cHJlc3Npb25cbn1cblxuLyoqXG4gKiBDb252ZXJ0cyBIVE1MIHRvIFBERiBkb2N1bWVudHMgcHJvZ3JhbW1hdGljYWxseS5cbiAqIEBhbGlhcyBhY3Rpb24uZ2VuZXJhdGUtcGRmXG4gKi9cbmV4cG9ydCBjbGFzcyBKYUdlbmVyYXRlUGRmQnVpbGRlcjxcbiAgVElucHV0IGV4dGVuZHMgR2VuZXJhdGVQZGZBY3Rpb25JbnB1dCA9IEdlbmVyYXRlUGRmQWN0aW9uSW5wdXQsXG4+IGV4dGVuZHMgQWN0aW9uQmFzZUJ1aWxkZXI8R2VuZXJhdGVQZGZBY3Rpb25JbnB1dD4ge1xuICBjb25zdHJ1Y3RvcihvcHRpb25zOiBUSW5wdXQpIHtcbiAgICBzdXBlcihBQ1RJT05fVFlQRS5HRU5FUkFURV9QREYsIG9wdGlvbnMpXG5cbiAgICAvLyBQcm9jZXNzIHJlcXVpcmVkIHByb3BlcnRpZXNcbiAgICB0aGlzLl9jb25maWcuZmlsZU5hbWUgPSB0b1N0cmluZ09yRXhwcmVzc2lvbihvcHRpb25zLmZpbGVOYW1lKVxuICAgIHRoaXMuX2NvbmZpZy5odG1sID0gdG9TdHJpbmdPckV4cHJlc3Npb24ob3B0aW9ucy5odG1sKVxuICB9XG59XG4iXX0=
26
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiamEuZ2VuZXJhdGUtcGRmLmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvYWN0aW9uL2phLmdlbmVyYXRlLXBkZi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQWUsS0FBSyxVQUFVLEVBQXdCLE1BQU0sc0JBQXNCLENBQUE7QUFDekYsT0FBTyxFQUFFLGlCQUFpQixFQUFFLEtBQUssZUFBZSxFQUFFLE1BQU0sa0JBQWtCLENBQUE7QUFHMUUsTUFBTSxNQUFNLFdBQVcsR0FBRyxRQUFRLEdBQUcsT0FBTyxHQUFHLFNBQVMsR0FBRyxJQUFJLEdBQUcsSUFBSSxDQUFBO0FBR3RFLE1BQU0sTUFBTSxrQkFBa0IsR0FBRyxVQUFVLEdBQUcsV0FBVyxDQUFBO0FBU3pELE1BQU0sTUFBTSxhQUFhLEdBQ3JCLE1BQU0sR0FDTixNQUFNLEdBQ047SUFDRSxRQUFRLENBQUMsR0FBRyxDQUFDLEVBQUUsTUFBTSxDQUFBO0lBQ3JCLFFBQVEsQ0FBQyxLQUFLLENBQUMsRUFBRSxNQUFNLENBQUE7SUFDdkIsUUFBUSxDQUFDLE1BQU0sQ0FBQyxFQUFFLE1BQU0sQ0FBQTtJQUN4QixRQUFRLENBQUMsSUFBSSxDQUFDLEVBQUUsTUFBTSxDQUFBO0NBQ3ZCLENBQUE7QUFlTCxNQUFNLFdBQVcsY0FBYztJQUU3QixRQUFRLENBQUMsSUFBSSxDQUFDLEVBQUUsV0FBVyxDQUFBO0lBRTNCLFFBQVEsQ0FBQyxXQUFXLENBQUMsRUFBRSxrQkFBa0IsQ0FBQTtJQUV6QyxRQUFRLENBQUMsS0FBSyxDQUFDLEVBQUUsTUFBTSxDQUFBO0lBRXZCLFFBQVEsQ0FBQyxNQUFNLENBQUMsRUFBRSxNQUFNLENBQUE7SUFFeEIsUUFBUSxDQUFDLE1BQU0sQ0FBQyxFQUFFLGFBQWEsQ0FBQTtDQUNoQztBQUtELE1BQU0sV0FBVyxzQkFBdUIsU0FBUSxlQUFlO0lBRTdELFFBQVEsQ0FBQyxRQUFRLEVBQUUsTUFBTSxHQUFHLFVBQVUsQ0FBQTtJQUV0QyxRQUFRLENBQUMsSUFBSSxFQUFFLE1BQU0sR0FBRyxVQUFVLENBQUE7SUFFbEMsUUFBUSxDQUFDLElBQUksQ0FBQyxFQUFFLGNBQWMsQ0FBQTtDQUMvQjtBQU1ELHFCQUFhLG9CQUFvQixDQUMvQixNQUFNLFNBQVMsc0JBQXNCLEdBQUcsc0JBQXNCLENBQzlELFNBQVEsaUJBQWlCLENBQUMsc0JBQXNCLENBQUM7SUFDakQsWUFBWSxPQUFPLEVBQUUsTUFBTSxFQVMxQjtDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQUNUSU9OX1RZUEUsIHR5cGUgRXhwcmVzc2lvbiwgdG9TdHJpbmdPckV4cHJlc3Npb24gfSBmcm9tICcuLi9hYnN0cmFjdC9pbmRleC5qcydcbmltcG9ydCB7IEFjdGlvbkJhc2VCdWlsZGVyLCB0eXBlIEFjdGlvbkJhc2VJbnB1dCB9IGZyb20gJy4vamEuYWJzdHJhY3QuanMnXG5cbi8qKiBOYW1lZCBQREYgcGFwZXIgc2l6ZXMuICovXG5leHBvcnQgdHlwZSBQZGZQYWdlU2l6ZSA9ICdsZXR0ZXInIHwgJ2xlZ2FsJyB8ICd0YWJsb2lkJyB8ICdhNCcgfCAnYTMnXG5cbi8qKiBQREYgcGFnZSBvcmllbnRhdGlvbi4gKi9cbmV4cG9ydCB0eXBlIFBkZlBhZ2VPcmllbnRhdGlvbiA9ICdwb3J0cmFpdCcgfCAnbGFuZHNjYXBlJ1xuXG4vKipcbiAqIFBERiBwYWdlIG1hcmdpbiBzcGVjaWZpY2F0aW9uLlxuICpcbiAqIC0gYCdub25lJ2Ag4oCUIHplcm8gbWFyZ2lucyBvbiBhbGwgc2lkZXMgKGRlZmF1bHQpLlxuICogLSBgbnVtYmVyYCDigJQgdW5pZm9ybSBtYXJnaW4gaW4gUERGIHBvaW50cyBvbiBhbGwgc2lkZXMgKDcycHQgPSAxaW4pLlxuICogLSBvYmplY3Qg4oCUIGluZGVwZW5kZW50IHBlci1zaWRlIG1hcmdpbnMgaW4gUERGIHBvaW50czsgb21pdHRlZCBzaWRlcyBkZWZhdWx0IHRvIDAuXG4gKi9cbmV4cG9ydCB0eXBlIFBkZlBhZ2VNYXJnaW4gPVxuICB8ICdub25lJ1xuICB8IG51bWJlclxuICB8IHtcbiAgICAgIHJlYWRvbmx5IHRvcD86IG51bWJlclxuICAgICAgcmVhZG9ubHkgcmlnaHQ/OiBudW1iZXJcbiAgICAgIHJlYWRvbmx5IGJvdHRvbT86IG51bWJlclxuICAgICAgcmVhZG9ubHkgbGVmdD86IG51bWJlclxuICAgIH1cblxuLyoqXG4gKiBQREYgcGFnZSBjb25maWd1cmF0aW9uLlxuICpcbiAqIFRoZSBydW50aW1lIGNvbnN0cnVjdHMgdGhlIHBoeXNpY2FsIHBhZ2UgYm91bmRzIGZyb20gdGhlc2UgdmFsdWVzIGJlZm9yZSB0aGVcbiAqIEhUTUwgaXMgcmVuZGVyZWQuIENTUyBgQHBhZ2VgIHJ1bGVzIGRvIG5vdCBjb250cm9sIHRoZSBQREYgcGFnZSBzaXplIOKAlCB0b1xuICogYXZvaWQgb3ZlcmZsb3csIG1hdGNoIHRoZSBib2R5IGRpbWVuc2lvbnMgdG8gdGhlIGNvbmZpZ3VyZWQgc2l6ZSBpbiBwb2ludHMuXG4gKlxuICogV2hlbiBgd2lkdGhgIGFuZCBgaGVpZ2h0YCBhcmUgYm90aCBwcm92aWRlZCB0aGV5IG92ZXJyaWRlIGBzaXplYC9gb3JpZW50YXRpb25gLlxuICpcbiAqIEBzZWUgUGRmUGFnZVNpemVcbiAqIEBzZWUgUGRmUGFnZU9yaWVudGF0aW9uXG4gKiBAc2VlIFBkZlBhZ2VNYXJnaW5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBQZGZQYWdlT3B0aW9ucyB7XG4gIC8qKiBOYW1lZCBwYXBlciBzaXplLiBEZWZhdWx0OiBgJ2xldHRlcidgLiAqL1xuICByZWFkb25seSBzaXplPzogUGRmUGFnZVNpemVcbiAgLyoqIFBhZ2Ugb3JpZW50YXRpb24uIERlZmF1bHQ6IGAncG9ydHJhaXQnYC4gKi9cbiAgcmVhZG9ubHkgb3JpZW50YXRpb24/OiBQZGZQYWdlT3JpZW50YXRpb25cbiAgLyoqIEN1c3RvbSBwYWdlIHdpZHRoIGluIFBERiBwb2ludHMgKDcycHQgPSAxaW4pLiBXaGVuIHNldCB3aXRoIGBoZWlnaHRgLCBvdmVycmlkZXMgYHNpemVgL2BvcmllbnRhdGlvbmAuICovXG4gIHJlYWRvbmx5IHdpZHRoPzogbnVtYmVyXG4gIC8qKiBDdXN0b20gcGFnZSBoZWlnaHQgaW4gUERGIHBvaW50cyAoNzJwdCA9IDFpbikuIFdoZW4gc2V0IHdpdGggYHdpZHRoYCwgb3ZlcnJpZGVzIGBzaXplYC9gb3JpZW50YXRpb25gLiAqL1xuICByZWFkb25seSBoZWlnaHQ/OiBudW1iZXJcbiAgLyoqIFBhZ2UgbWFyZ2lucy4gRGVmYXVsdDogYCdub25lJ2AuICovXG4gIHJlYWRvbmx5IG1hcmdpbj86IFBkZlBhZ2VNYXJnaW5cbn1cblxuLyoqXG4gKiBJbnB1dCBpbnRlcmZhY2UgZm9yIGdlbmVyYXRlLXBkZiBpbi1iYWNrZ3JvdW5kIGFjdGlvbi5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBHZW5lcmF0ZVBkZkFjdGlvbklucHV0IGV4dGVuZHMgQWN0aW9uQmFzZUlucHV0IHtcbiAgLyoqIFBERiBmaWxlIG5hbWUgKHdpdGhvdXQgLnBkZiBleHRlbnNpb24pICovXG4gIHJlYWRvbmx5IGZpbGVOYW1lOiBzdHJpbmcgfCBFeHByZXNzaW9uXG4gIC8qKiBIVE1MIGNvbnRlbnQgdG8gY29udmVydCB0byBQREYgKi9cbiAgcmVhZG9ubHkgaHRtbDogc3RyaW5nIHwgRXhwcmVzc2lvblxuICAvKiogT3B0aW9uYWwgcGFnZSBzaXplLCBvcmllbnRhdGlvbiwgYW5kIG1hcmdpbnMuIERlZmF1bHRzIHRvIGxldHRlciBwb3J0cmFpdCB3aXRoIG5vIG1hcmdpbnMuICovXG4gIHJlYWRvbmx5IHBhZ2U/OiBQZGZQYWdlT3B0aW9uc1xufVxuXG4vKipcbiAqIENvbnZlcnRzIEhUTUwgdG8gUERGIGRvY3VtZW50cyBwcm9ncmFtbWF0aWNhbGx5LlxuICogQGFsaWFzIGFjdGlvbi5nZW5lcmF0ZS1wZGZcbiAqL1xuZXhwb3J0IGNsYXNzIEphR2VuZXJhdGVQZGZCdWlsZGVyPFxuICBUSW5wdXQgZXh0ZW5kcyBHZW5lcmF0ZVBkZkFjdGlvbklucHV0ID0gR2VuZXJhdGVQZGZBY3Rpb25JbnB1dCxcbj4gZXh0ZW5kcyBBY3Rpb25CYXNlQnVpbGRlcjxHZW5lcmF0ZVBkZkFjdGlvbklucHV0PiB7XG4gIGNvbnN0cnVjdG9yKG9wdGlvbnM6IFRJbnB1dCkge1xuICAgIHN1cGVyKEFDVElPTl9UWVBFLkdFTkVSQVRFX1BERiwgb3B0aW9ucylcblxuICAgIHRoaXMuX2NvbmZpZy5maWxlTmFtZSA9IHRvU3RyaW5nT3JFeHByZXNzaW9uKG9wdGlvbnMuZmlsZU5hbWUpXG4gICAgdGhpcy5fY29uZmlnLmh0bWwgPSB0b1N0cmluZ09yRXhwcmVzc2lvbihvcHRpb25zLmh0bWwpXG5cbiAgICBpZiAob3B0aW9ucy5wYWdlICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIHRoaXMuX2NvbmZpZy5wYWdlID0gb3B0aW9ucy5wYWdlXG4gICAgfVxuICB9XG59XG4iXX0=
@@ -1 +1 @@
1
- {"version":3,"file":"ja.generate-pdf.d.ts","sourceRoot":"","sources":["../../src/action/ja.generate-pdf.ts"],"names":[],"mappings":"AAAA,OAAO,EAAe,KAAK,UAAU,EAAwB,MAAM,sBAAsB,CAAA;AACzF,OAAO,EAAE,iBAAiB,EAAE,KAAK,eAAe,EAAE,MAAM,kBAAkB,CAAA;AAK1E,MAAM,WAAW,sBAAuB,SAAQ,eAAe;IAE7D,QAAQ,CAAC,QAAQ,EAAE,MAAM,GAAG,UAAU,CAAA;IAEtC,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,UAAU,CAAA;CACnC;AAMD,qBAAa,oBAAoB,CAC/B,MAAM,SAAS,sBAAsB,GAAG,sBAAsB,CAC9D,SAAQ,iBAAiB,CAAC,sBAAsB,CAAC;IACjD,YAAY,OAAO,EAAE,MAAM,EAM1B;CACF","sourcesContent":["import { ACTION_TYPE, type Expression, toStringOrExpression } from '../abstract/index.js'\nimport { ActionBaseBuilder, type ActionBaseInput } from './ja.abstract.js'\n\n/**\n * Input interface for generate-pdf in-background action.\n */\nexport interface GeneratePdfActionInput extends ActionBaseInput {\n /** PDF file name (without .pdf extension) */\n readonly fileName: string | Expression\n /** HTML content to convert to PDF */\n readonly html: string | Expression\n}\n\n/**\n * Converts HTML to PDF documents programmatically.\n * @alias action.generate-pdf\n */\nexport class JaGeneratePdfBuilder<\n TInput extends GeneratePdfActionInput = GeneratePdfActionInput,\n> extends ActionBaseBuilder<GeneratePdfActionInput> {\n constructor(options: TInput) {\n super(ACTION_TYPE.GENERATE_PDF, options)\n\n // Process required properties\n this._config.fileName = toStringOrExpression(options.fileName)\n this._config.html = toStringOrExpression(options.html)\n }\n}\n"]}
1
+ {"version":3,"file":"ja.generate-pdf.d.ts","sourceRoot":"","sources":["../../src/action/ja.generate-pdf.ts"],"names":[],"mappings":"AAAA,OAAO,EAAe,KAAK,UAAU,EAAwB,MAAM,sBAAsB,CAAA;AACzF,OAAO,EAAE,iBAAiB,EAAE,KAAK,eAAe,EAAE,MAAM,kBAAkB,CAAA;AAG1E,MAAM,MAAM,WAAW,GAAG,QAAQ,GAAG,OAAO,GAAG,SAAS,GAAG,IAAI,GAAG,IAAI,CAAA;AAGtE,MAAM,MAAM,kBAAkB,GAAG,UAAU,GAAG,WAAW,CAAA;AASzD,MAAM,MAAM,aAAa,GACrB,MAAM,GACN,MAAM,GACN;IACE,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,CAAA;IACrB,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAA;IACvB,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAA;IACxB,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAA;CACvB,CAAA;AAeL,MAAM,WAAW,cAAc;IAE7B,QAAQ,CAAC,IAAI,CAAC,EAAE,WAAW,CAAA;IAE3B,QAAQ,CAAC,WAAW,CAAC,EAAE,kBAAkB,CAAA;IAEzC,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAA;IAEvB,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAA;IAExB,QAAQ,CAAC,MAAM,CAAC,EAAE,aAAa,CAAA;CAChC;AAKD,MAAM,WAAW,sBAAuB,SAAQ,eAAe;IAE7D,QAAQ,CAAC,QAAQ,EAAE,MAAM,GAAG,UAAU,CAAA;IAEtC,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,UAAU,CAAA;IAElC,QAAQ,CAAC,IAAI,CAAC,EAAE,cAAc,CAAA;CAC/B;AAMD,qBAAa,oBAAoB,CAC/B,MAAM,SAAS,sBAAsB,GAAG,sBAAsB,CAC9D,SAAQ,iBAAiB,CAAC,sBAAsB,CAAC;IACjD,YAAY,OAAO,EAAE,MAAM,EAS1B;CACF","sourcesContent":["import { ACTION_TYPE, type Expression, toStringOrExpression } from '../abstract/index.js'\nimport { ActionBaseBuilder, type ActionBaseInput } from './ja.abstract.js'\n\n/** Named PDF paper sizes. */\nexport type PdfPageSize = 'letter' | 'legal' | 'tabloid' | 'a4' | 'a3'\n\n/** PDF page orientation. */\nexport type PdfPageOrientation = 'portrait' | 'landscape'\n\n/**\n * PDF page margin specification.\n *\n * - `'none'` — zero margins on all sides (default).\n * - `number` — uniform margin in PDF points on all sides (72pt = 1in).\n * - object — independent per-side margins in PDF points; omitted sides default to 0.\n */\nexport type PdfPageMargin =\n | 'none'\n | number\n | {\n readonly top?: number\n readonly right?: number\n readonly bottom?: number\n readonly left?: number\n }\n\n/**\n * PDF page configuration.\n *\n * The runtime constructs the physical page bounds from these values before the\n * HTML is rendered. CSS `@page` rules do not control the PDF page size — to\n * avoid overflow, match the body dimensions to the configured size in points.\n *\n * When `width` and `height` are both provided they override `size`/`orientation`.\n *\n * @see PdfPageSize\n * @see PdfPageOrientation\n * @see PdfPageMargin\n */\nexport interface PdfPageOptions {\n /** Named paper size. Default: `'letter'`. */\n readonly size?: PdfPageSize\n /** Page orientation. Default: `'portrait'`. */\n readonly orientation?: PdfPageOrientation\n /** Custom page width in PDF points (72pt = 1in). When set with `height`, overrides `size`/`orientation`. */\n readonly width?: number\n /** Custom page height in PDF points (72pt = 1in). When set with `width`, overrides `size`/`orientation`. */\n readonly height?: number\n /** Page margins. Default: `'none'`. */\n readonly margin?: PdfPageMargin\n}\n\n/**\n * Input interface for generate-pdf in-background action.\n */\nexport interface GeneratePdfActionInput extends ActionBaseInput {\n /** PDF file name (without .pdf extension) */\n readonly fileName: string | Expression\n /** HTML content to convert to PDF */\n readonly html: string | Expression\n /** Optional page size, orientation, and margins. Defaults to letter portrait with no margins. */\n readonly page?: PdfPageOptions\n}\n\n/**\n * Converts HTML to PDF documents programmatically.\n * @alias action.generate-pdf\n */\nexport class JaGeneratePdfBuilder<\n TInput extends GeneratePdfActionInput = GeneratePdfActionInput,\n> extends ActionBaseBuilder<GeneratePdfActionInput> {\n constructor(options: TInput) {\n super(ACTION_TYPE.GENERATE_PDF, options)\n\n this._config.fileName = toStringOrExpression(options.fileName)\n this._config.html = toStringOrExpression(options.html)\n\n if (options.page !== undefined) {\n this._config.page = options.page\n }\n }\n}\n"]}
@@ -5,6 +5,9 @@ export class JaGeneratePdfBuilder extends ActionBaseBuilder {
5
5
  super(ACTION_TYPE.GENERATE_PDF, options);
6
6
  this._config.fileName = toStringOrExpression(options.fileName);
7
7
  this._config.html = toStringOrExpression(options.html);
8
+ if (options.page !== undefined) {
9
+ this._config.page = options.page;
10
+ }
8
11
  }
9
12
  }
10
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiamEuZ2VuZXJhdGUtcGRmLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2FjdGlvbi9qYS5nZW5lcmF0ZS1wZGYudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFdBQVcsRUFBbUIsb0JBQW9CLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQTtBQUN6RixPQUFPLEVBQUUsaUJBQWlCLEVBQXdCLE1BQU0sa0JBQWtCLENBQUE7QUFnQjFFLE1BQU0sT0FBTyxvQkFFWCxTQUFRLGlCQUF5QztJQUNqRCxZQUFZLE9BQWUsRUFBRTtRQUMzQixLQUFLLENBQUMsV0FBVyxDQUFDLFlBQVksRUFBRSxPQUFPLENBQUMsQ0FBQTtRQUd4QyxJQUFJLENBQUMsT0FBTyxDQUFDLFFBQVEsR0FBRyxvQkFBb0IsQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLENBQUE7UUFDOUQsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLEdBQUcsb0JBQW9CLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFBO0lBQUEsQ0FDdkQ7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFDVElPTl9UWVBFLCB0eXBlIEV4cHJlc3Npb24sIHRvU3RyaW5nT3JFeHByZXNzaW9uIH0gZnJvbSAnLi4vYWJzdHJhY3QvaW5kZXguanMnXG5pbXBvcnQgeyBBY3Rpb25CYXNlQnVpbGRlciwgdHlwZSBBY3Rpb25CYXNlSW5wdXQgfSBmcm9tICcuL2phLmFic3RyYWN0LmpzJ1xuXG4vKipcbiAqIElucHV0IGludGVyZmFjZSBmb3IgZ2VuZXJhdGUtcGRmIGluLWJhY2tncm91bmQgYWN0aW9uLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEdlbmVyYXRlUGRmQWN0aW9uSW5wdXQgZXh0ZW5kcyBBY3Rpb25CYXNlSW5wdXQge1xuICAvKiogUERGIGZpbGUgbmFtZSAod2l0aG91dCAucGRmIGV4dGVuc2lvbikgKi9cbiAgcmVhZG9ubHkgZmlsZU5hbWU6IHN0cmluZyB8IEV4cHJlc3Npb25cbiAgLyoqIEhUTUwgY29udGVudCB0byBjb252ZXJ0IHRvIFBERiAqL1xuICByZWFkb25seSBodG1sOiBzdHJpbmcgfCBFeHByZXNzaW9uXG59XG5cbi8qKlxuICogQ29udmVydHMgSFRNTCB0byBQREYgZG9jdW1lbnRzIHByb2dyYW1tYXRpY2FsbHkuXG4gKiBAYWxpYXMgYWN0aW9uLmdlbmVyYXRlLXBkZlxuICovXG5leHBvcnQgY2xhc3MgSmFHZW5lcmF0ZVBkZkJ1aWxkZXI8XG4gIFRJbnB1dCBleHRlbmRzIEdlbmVyYXRlUGRmQWN0aW9uSW5wdXQgPSBHZW5lcmF0ZVBkZkFjdGlvbklucHV0LFxuPiBleHRlbmRzIEFjdGlvbkJhc2VCdWlsZGVyPEdlbmVyYXRlUGRmQWN0aW9uSW5wdXQ+IHtcbiAgY29uc3RydWN0b3Iob3B0aW9uczogVElucHV0KSB7XG4gICAgc3VwZXIoQUNUSU9OX1RZUEUuR0VORVJBVEVfUERGLCBvcHRpb25zKVxuXG4gICAgLy8gUHJvY2VzcyByZXF1aXJlZCBwcm9wZXJ0aWVzXG4gICAgdGhpcy5fY29uZmlnLmZpbGVOYW1lID0gdG9TdHJpbmdPckV4cHJlc3Npb24ob3B0aW9ucy5maWxlTmFtZSlcbiAgICB0aGlzLl9jb25maWcuaHRtbCA9IHRvU3RyaW5nT3JFeHByZXNzaW9uKG9wdGlvbnMuaHRtbClcbiAgfVxufVxuIl19
13
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiamEuZ2VuZXJhdGUtcGRmLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2FjdGlvbi9qYS5nZW5lcmF0ZS1wZGYudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFdBQVcsRUFBbUIsb0JBQW9CLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQTtBQUN6RixPQUFPLEVBQUUsaUJBQWlCLEVBQXdCLE1BQU0sa0JBQWtCLENBQUE7QUFtRTFFLE1BQU0sT0FBTyxvQkFFWCxTQUFRLGlCQUF5QztJQUNqRCxZQUFZLE9BQWUsRUFBRTtRQUMzQixLQUFLLENBQUMsV0FBVyxDQUFDLFlBQVksRUFBRSxPQUFPLENBQUMsQ0FBQTtRQUV4QyxJQUFJLENBQUMsT0FBTyxDQUFDLFFBQVEsR0FBRyxvQkFBb0IsQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLENBQUE7UUFDOUQsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLEdBQUcsb0JBQW9CLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFBO1FBRXRELElBQUksT0FBTyxDQUFDLElBQUksS0FBSyxTQUFTLEVBQUUsQ0FBQztZQUMvQixJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksR0FBRyxPQUFPLENBQUMsSUFBSSxDQUFBO1FBQ2xDLENBQUM7SUFBQSxDQUNGO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBQ1RJT05fVFlQRSwgdHlwZSBFeHByZXNzaW9uLCB0b1N0cmluZ09yRXhwcmVzc2lvbiB9IGZyb20gJy4uL2Fic3RyYWN0L2luZGV4LmpzJ1xuaW1wb3J0IHsgQWN0aW9uQmFzZUJ1aWxkZXIsIHR5cGUgQWN0aW9uQmFzZUlucHV0IH0gZnJvbSAnLi9qYS5hYnN0cmFjdC5qcydcblxuLyoqIE5hbWVkIFBERiBwYXBlciBzaXplcy4gKi9cbmV4cG9ydCB0eXBlIFBkZlBhZ2VTaXplID0gJ2xldHRlcicgfCAnbGVnYWwnIHwgJ3RhYmxvaWQnIHwgJ2E0JyB8ICdhMydcblxuLyoqIFBERiBwYWdlIG9yaWVudGF0aW9uLiAqL1xuZXhwb3J0IHR5cGUgUGRmUGFnZU9yaWVudGF0aW9uID0gJ3BvcnRyYWl0JyB8ICdsYW5kc2NhcGUnXG5cbi8qKlxuICogUERGIHBhZ2UgbWFyZ2luIHNwZWNpZmljYXRpb24uXG4gKlxuICogLSBgJ25vbmUnYCDigJQgemVybyBtYXJnaW5zIG9uIGFsbCBzaWRlcyAoZGVmYXVsdCkuXG4gKiAtIGBudW1iZXJgIOKAlCB1bmlmb3JtIG1hcmdpbiBpbiBQREYgcG9pbnRzIG9uIGFsbCBzaWRlcyAoNzJwdCA9IDFpbikuXG4gKiAtIG9iamVjdCDigJQgaW5kZXBlbmRlbnQgcGVyLXNpZGUgbWFyZ2lucyBpbiBQREYgcG9pbnRzOyBvbWl0dGVkIHNpZGVzIGRlZmF1bHQgdG8gMC5cbiAqL1xuZXhwb3J0IHR5cGUgUGRmUGFnZU1hcmdpbiA9XG4gIHwgJ25vbmUnXG4gIHwgbnVtYmVyXG4gIHwge1xuICAgICAgcmVhZG9ubHkgdG9wPzogbnVtYmVyXG4gICAgICByZWFkb25seSByaWdodD86IG51bWJlclxuICAgICAgcmVhZG9ubHkgYm90dG9tPzogbnVtYmVyXG4gICAgICByZWFkb25seSBsZWZ0PzogbnVtYmVyXG4gICAgfVxuXG4vKipcbiAqIFBERiBwYWdlIGNvbmZpZ3VyYXRpb24uXG4gKlxuICogVGhlIHJ1bnRpbWUgY29uc3RydWN0cyB0aGUgcGh5c2ljYWwgcGFnZSBib3VuZHMgZnJvbSB0aGVzZSB2YWx1ZXMgYmVmb3JlIHRoZVxuICogSFRNTCBpcyByZW5kZXJlZC4gQ1NTIGBAcGFnZWAgcnVsZXMgZG8gbm90IGNvbnRyb2wgdGhlIFBERiBwYWdlIHNpemUg4oCUIHRvXG4gKiBhdm9pZCBvdmVyZmxvdywgbWF0Y2ggdGhlIGJvZHkgZGltZW5zaW9ucyB0byB0aGUgY29uZmlndXJlZCBzaXplIGluIHBvaW50cy5cbiAqXG4gKiBXaGVuIGB3aWR0aGAgYW5kIGBoZWlnaHRgIGFyZSBib3RoIHByb3ZpZGVkIHRoZXkgb3ZlcnJpZGUgYHNpemVgL2BvcmllbnRhdGlvbmAuXG4gKlxuICogQHNlZSBQZGZQYWdlU2l6ZVxuICogQHNlZSBQZGZQYWdlT3JpZW50YXRpb25cbiAqIEBzZWUgUGRmUGFnZU1hcmdpblxuICovXG5leHBvcnQgaW50ZXJmYWNlIFBkZlBhZ2VPcHRpb25zIHtcbiAgLyoqIE5hbWVkIHBhcGVyIHNpemUuIERlZmF1bHQ6IGAnbGV0dGVyJ2AuICovXG4gIHJlYWRvbmx5IHNpemU/OiBQZGZQYWdlU2l6ZVxuICAvKiogUGFnZSBvcmllbnRhdGlvbi4gRGVmYXVsdDogYCdwb3J0cmFpdCdgLiAqL1xuICByZWFkb25seSBvcmllbnRhdGlvbj86IFBkZlBhZ2VPcmllbnRhdGlvblxuICAvKiogQ3VzdG9tIHBhZ2Ugd2lkdGggaW4gUERGIHBvaW50cyAoNzJwdCA9IDFpbikuIFdoZW4gc2V0IHdpdGggYGhlaWdodGAsIG92ZXJyaWRlcyBgc2l6ZWAvYG9yaWVudGF0aW9uYC4gKi9cbiAgcmVhZG9ubHkgd2lkdGg/OiBudW1iZXJcbiAgLyoqIEN1c3RvbSBwYWdlIGhlaWdodCBpbiBQREYgcG9pbnRzICg3MnB0ID0gMWluKS4gV2hlbiBzZXQgd2l0aCBgd2lkdGhgLCBvdmVycmlkZXMgYHNpemVgL2BvcmllbnRhdGlvbmAuICovXG4gIHJlYWRvbmx5IGhlaWdodD86IG51bWJlclxuICAvKiogUGFnZSBtYXJnaW5zLiBEZWZhdWx0OiBgJ25vbmUnYC4gKi9cbiAgcmVhZG9ubHkgbWFyZ2luPzogUGRmUGFnZU1hcmdpblxufVxuXG4vKipcbiAqIElucHV0IGludGVyZmFjZSBmb3IgZ2VuZXJhdGUtcGRmIGluLWJhY2tncm91bmQgYWN0aW9uLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEdlbmVyYXRlUGRmQWN0aW9uSW5wdXQgZXh0ZW5kcyBBY3Rpb25CYXNlSW5wdXQge1xuICAvKiogUERGIGZpbGUgbmFtZSAod2l0aG91dCAucGRmIGV4dGVuc2lvbikgKi9cbiAgcmVhZG9ubHkgZmlsZU5hbWU6IHN0cmluZyB8IEV4cHJlc3Npb25cbiAgLyoqIEhUTUwgY29udGVudCB0byBjb252ZXJ0IHRvIFBERiAqL1xuICByZWFkb25seSBodG1sOiBzdHJpbmcgfCBFeHByZXNzaW9uXG4gIC8qKiBPcHRpb25hbCBwYWdlIHNpemUsIG9yaWVudGF0aW9uLCBhbmQgbWFyZ2lucy4gRGVmYXVsdHMgdG8gbGV0dGVyIHBvcnRyYWl0IHdpdGggbm8gbWFyZ2lucy4gKi9cbiAgcmVhZG9ubHkgcGFnZT86IFBkZlBhZ2VPcHRpb25zXG59XG5cbi8qKlxuICogQ29udmVydHMgSFRNTCB0byBQREYgZG9jdW1lbnRzIHByb2dyYW1tYXRpY2FsbHkuXG4gKiBAYWxpYXMgYWN0aW9uLmdlbmVyYXRlLXBkZlxuICovXG5leHBvcnQgY2xhc3MgSmFHZW5lcmF0ZVBkZkJ1aWxkZXI8XG4gIFRJbnB1dCBleHRlbmRzIEdlbmVyYXRlUGRmQWN0aW9uSW5wdXQgPSBHZW5lcmF0ZVBkZkFjdGlvbklucHV0LFxuPiBleHRlbmRzIEFjdGlvbkJhc2VCdWlsZGVyPEdlbmVyYXRlUGRmQWN0aW9uSW5wdXQ+IHtcbiAgY29uc3RydWN0b3Iob3B0aW9uczogVElucHV0KSB7XG4gICAgc3VwZXIoQUNUSU9OX1RZUEUuR0VORVJBVEVfUERGLCBvcHRpb25zKVxuXG4gICAgdGhpcy5fY29uZmlnLmZpbGVOYW1lID0gdG9TdHJpbmdPckV4cHJlc3Npb24ob3B0aW9ucy5maWxlTmFtZSlcbiAgICB0aGlzLl9jb25maWcuaHRtbCA9IHRvU3RyaW5nT3JFeHByZXNzaW9uKG9wdGlvbnMuaHRtbClcblxuICAgIGlmIChvcHRpb25zLnBhZ2UgIT09IHVuZGVmaW5lZCkge1xuICAgICAgdGhpcy5fY29uZmlnLnBhZ2UgPSBvcHRpb25zLnBhZ2VcbiAgICB9XG4gIH1cbn1cbiJdfQ==
@@ -12,7 +12,7 @@ import { JaExecuteEntitiesBuilder, type ExecuteEntitiesInput } from './ja.execut
12
12
  import { JaExecuteEntityBuilder, type ExecuteEntityInput } from './ja.execute-entity.js';
13
13
  import { JaExecuteSqlBuilder, type ExecuteSqlActionInput } from './ja.execute-sql.js';
14
14
  import { JaGenerateFileBuilder, type GenerateFileActionInput } from './ja.generate-file.js';
15
- import { JaGeneratePdfBuilder } from './ja.generate-pdf.js';
15
+ import { JaGeneratePdfBuilder, type PdfPageOptions } from './ja.generate-pdf.js';
16
16
  import { JaGoBackBuilder, type GoBackActionInput } from './ja.go-back.js';
17
17
  import { JaGoToBuilder, type GoToActionInput } from './ja.go-to.js';
18
18
  import { JaInfoModalBuilder, type InfoModalActionInput } from './ja.info-modal.js';
@@ -76,6 +76,7 @@ export declare abstract class JaInBackgroundFactory {
76
76
  readonly fileName: string | Expression;
77
77
  readonly html: string | Expression;
78
78
  readonly instanceId?: string | KegInstanceId;
79
+ readonly page?: PdfPageOptions;
79
80
  }): JaGeneratePdfBuilder;
80
81
  openAppSettings(options?: OpenAppSettingsActionInput): JaOpenAppSettingsBuilder;
81
82
  openMap(options: OpenMapActionInput): JaOpenMapBuilder;
@@ -92,4 +93,4 @@ export declare class JaInBackgroundFactoryOne extends JaInBackgroundFactory {
92
93
  static one(): JaInBackgroundFactoryOne;
93
94
  build(): JaInBackground | undefined;
94
95
  }
95
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiamEuaW4tYmFja2dyb3VuZC5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2FjdGlvbi9qYS5pbi1iYWNrZ3JvdW5kLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxLQUFLLFVBQVUsRUFBRSxLQUFLLGFBQWEsRUFBRSxNQUFNLHNCQUFzQixDQUFBO0FBQzFFLE9BQU8sRUFBRSxLQUFLLGlCQUFpQixFQUFFLEtBQUssZUFBZSxFQUFFLEtBQUssTUFBTSxFQUFFLE1BQU0sa0JBQWtCLENBQUE7QUFDNUYsT0FBTyxFQUFFLG1CQUFtQixFQUFFLEtBQUsscUJBQXFCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQTtBQUNyRixPQUFPLEVBQUUsbUJBQW1CLEVBQUUsS0FBSyxxQkFBcUIsRUFBRSxNQUFNLHFCQUFxQixDQUFBO0FBQ3JGLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxLQUFLLGtCQUFrQixFQUFFLE1BQU0saUJBQWlCLENBQUE7QUFDM0UsT0FBTyxFQUNMLDJCQUEyQixFQUMzQixLQUFLLDZCQUE2QixFQUNuQyxNQUFNLDhCQUE4QixDQUFBO0FBQ3JDLE9BQU8sRUFDTCx3QkFBd0IsRUFDeEIsS0FBSywwQkFBMEIsRUFDaEMsTUFBTSwyQkFBMkIsQ0FBQTtBQUNsQyxPQUFPLEVBQ0wseUJBQXlCLEVBQ3pCLEtBQUssMkJBQTJCLEVBQ2pDLE1BQU0sNEJBQTRCLENBQUE7QUFDbkMsT0FBTyxFQUFFLHNCQUFzQixFQUFFLEtBQUssd0JBQXdCLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQTtBQUM5RixPQUFPLEVBQUUsb0JBQW9CLEVBQUUsS0FBSyxzQkFBc0IsRUFBRSxNQUFNLHNCQUFzQixDQUFBO0FBQ3hGLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxLQUFLLG9CQUFvQixFQUFFLE1BQU0sMEJBQTBCLENBQUE7QUFDOUYsT0FBTyxFQUFFLHNCQUFzQixFQUFFLEtBQUssa0JBQWtCLEVBQUUsTUFBTSx3QkFBd0IsQ0FB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QStCLEdBQUcsd0JBQXdCLENBSWxGO0lBTUQsT0FBTyxDQUFDLE9BQU8sRUFBRSxrQkFBa0IsR0FBRyxnQkFBZ0IsQ0FJckQ7SUFNRCxXQUFXLENBQUMsT0FBTyxFQUFFLHNCQUFzQixHQUFHLG9CQUFvQixDQUlqRTtJQU1ELEtBQUssQ0FBQyxPQUFPLEVBQUUsZ0JBQWdCLEdBQUcsY0FBYyxDQUkvQztJQU1ELEtBQUssQ0FBQyxPQUFPLEVBQUUsZ0JBQWdCLEdBQUcsY0FBYyxDQUkvQztJQU1ELFNBQVMsQ0FBQyxPQUFPLEdBQUUsb0JBQXlCLEdBQUcsa0JBQWtCLENBSWhFO0lBTUQsb0JBQW9CLENBQUMsT0FBTyxFQUFFLCtCQUErQixHQUFHLDZCQUE2QixDQUk1RjtJQU1ELG1CQUFtQixDQUFDLE9BQU8sQ0FBQyxFQUFFLDhCQUE4QixHQUFHLDRCQUE0QixDQUkxRjtJQU1ELGFBQWEsQ0FBQyxPQUFPLEVBQUUsd0JBQXdCLEdBQUcsc0JBQXNCLENBSXZFO0NBQ0Y7QUFFRCxxQkFBYSx3QkFBeUIsU0FBUSxxQkFBcUI7SUFDakUsT0FBTyxDQUFDLE9BQU8sQ0FBQyxDQUFlO0lBRS9CLE1BQU0sQ0FBQyxHQUFHLElBQUksd0JBQXdCLENBS3JDO0lBRUQsS0FBSyxJQUFJLGNBQWMsR0FBRyxTQUFTLENBRWxDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyB0eXBlIEV4cHJlc3Npb24sIHR5cGUgS2VnSW5zdGFuY2VJZCB9IGZyb20gJy4uL2Fic3RyYWN0L2luZGV4LmpzJ1xuaW1wb3J0IHsgdHlwZSBBY3Rpb25CYXNlQnVpbGRlciwgdHlwZSBBY3Rpb25CYXNlSW5wdXQsIHR5cGUgSmFCYXNlIH0gZnJvbSAnLi9qYS5hYnN0cmFjdC5qcydcbmltcG9ydCB7IEphQWN0aW9uTGlzdEJ1aWxkZXIsIHR5cGUgQWN0aW9uTGlzdEFjdGlvbklucHV0IH0gZnJvbSAnLi9qYS5hY3Rpb24tbGlzdC5qcydcbmltcG9ydCB7IEphQ2xlYXJRdWV1ZUJ1aWxkZXIsIHR5cGUgQ2xlYXJRdWV1ZUFjdGlvbklucHV0IH0gZnJvbSAnLi9qYS5jbGVhci1xdWV1ZS5qcydcbmltcG9ydCB7IEphQ29uZmlybUJ1aWxkZXIsIHR5cGUgQ29uZmlybUFjdGlvbklucHV0IH0gZnJvbSAnLi9qYS5jb25maXJtLmpzJ1xuaW1wb3J0IHtcbiAgSmFEZWxldGVRdWV1ZUNvbW1hbmRCdWlsZGVyLFxuICB0eXBlIERlbGV0ZVF1ZXVlQ29tbWFuZEFjdGlvbklucHV0LFxufSBmcm9tICcuL2phLmRlbGV0ZS1xdWV1ZS1jb21tYW5kLmpzJ1xuaW1wb3J0IHtcbiAgSmFEZWxldGVTeW5jU2NvcGVCdWlsZGVyLFxuICB0eXBlIERlbGV0ZVN5bmNTY29wZUFjdGlvbklucHV0LFxufSBmcm9tICcuL2phLmRlbGV0ZS1zeW5jLXNjb3BlLmpzJ1xuaW1wb3J0IHtcbiAgSmFEZWxldGVTeW5jU3RhdHVzQnVpbGRlcixcbiAgdHlwZSBEZWxldGVTeW5jU3RhdHVzQWN0aW9uSW5wdXQsXG59IGZyb20gJy4vamEuZGVsZXRlLXN5bmMtc3RhdHVzLmpzJ1xuaW1wb3J0IHsgSmFFeGVjdXRlQWN0aW9uQnVpbGRlciwgdHlwZSBFeGVjdXRlQWN0aW9uQWN0aW9uSW5wdXQgfSBmcm9tICcuL2phLmV4ZWN1dGUtYWN0aW9uLmpzJ1xuaW1wb3J0IHsgSmFGaW5kUmVwbGFjZUJ1aWxkZXIsIHR5cGUgRmluZFJlcGxhY2VBY3Rpb25JbnB1dCB9IGZyb20gJy4vamEuZmluZC1yZXBsYWNlLmpzJ1xuaW1wb3J0IHsgSmFFeGVjdXRlRW50aXRpZXNCdWlsZGVyLCB0eXBlIEV4ZWN1dGVFbnRpdGllc0lucHV0IH0gZnJvbSAnLi9qYS5leGVjdXRlLWVudGl0aWVzLmpzJ1xuaW1wb3J0IHsgSmFFeGVjdXRlRW50aXR5QnVpbGRlciwgdHlwZSBFeGVjdXRlRW50aXR5SW5wdXQgfSBmcm9tICcuL2phLmV4ZWN1dGUtZW50aXR5LmpzJ1xuaW1wb3J0IHsgSmFFeGVjdXRlU3FsQnVpbGRlciwgdHlwZSBFeGVjdXRlU3FsQWN0aW9uSW5wdXQgfSBmcm9tICcuL2phLmV4ZWN1dGUtc3FsLmpzJ1xuaW1wb3J0IHsgSmFHZW5lcmF0ZUZpbGVCdWlsZGVyLCB0eXBlIEdlbmVyYXRlRmlsZUFjdGlvbklucHV0IH0gZnJvbSAnLi9qYS5nZW5lcmF0ZS1maWxlLmpzJ1xuaW1wb3J0IHsgSmFHZW5lcmF0ZVBkZkJ1aWxkZXIgfSBmcm9tICcuL2phLmdlbmVyYXRlLXBkZi5qcydcbmltcG9ydCB7IEphR29CYWNrQnVpbGRlciwgdHlwZSBHb0JhY2tBY3Rpb25JbnB1dCB9IGZyb20gJy4vamEuZ28tYmFjay5qcydcbmltcG9ydCB7IEphR29Ub0J1aWxkZXIsIHR5cGUgR29Ub0FjdGlvbklucHV0IH0gZnJvbSAnLi9qYS5nby10by5qcydcbmltcG9ydCB7IEphSW5mb01vZGFsQnVpbGRlciwgdHlwZSBJbmZvTW9kYWxBY3Rpb25JbnB1dCB9IGZyb20gJy4vamEuaW5mby1tb2RhbC5qcydcbmltcG9ydCB7XG4gIEphT3BlbkFwcFNldHRpbmdzQnVpbGRlcixcbiAgdHlwZSBPcGVuQXBwU2V0dGluZ3NBY3Rpb25JbnB1dCxcbn0gZnJvbSAnLi9qYS5vcGVuLWFwcC1zZXR0aW5ncy5qcydcbmltcG9ydCB7IEphT3Blbk1hcEJ1aWxkZXIsIHR5cGUgT3Blbk1hcEFjdGlvbklucHV0IH0gZnJvbSAnLi9qYS5vcGVuLW1hcC5qcydcbmltcG9ydCB7XG4gIEphT3Blbk1lZGlhUGlja2VyQnVpbGRlcixcbiAgdHlwZSBPcGVuTWVkaWFQaWNrZXJBY3Rpb25JbnB1dCxcbn0gZnJvbSAnLi9qYS5vcGVuLW1lZGlhLXBpY2tlci5qcydcbmltcG9ydCB7IEphT3BlblNjYW5uZXJCdWlsZGVyLCB0eXBlIE9wZW5TY2FubmVyQWN0aW9uSW5wdXQgfSBmcm9tICcuL2phLm9wZW4tc2Nhbm5lci5qcydcbmltcG9ydCB7IEphT3BlblVybEJ1aWxkZXIsIHR5cGUgT3BlblVybEFjdGlvbklucHV0IH0gZnJvbSAnLi9qYS5vcGVuLXVybC5qcydcbmltcG9ydCB7IEphUHJpbnRCdWlsZGVyLCB0eXBlIFByaW50QWN0aW9uSW5wdXQgfSBmcm9tICcuL2phLnByaW50LmpzJ1xuaW1wb3J0IHtcbiAgSmFSZXNldEFwcGxpY2F0aW9uU3RhdGVCdWlsZGVyLFxuICB0eXBlIFJlc2V0QXBwbGljYXRpb25TdGF0ZUFjdGlvbklucHV0LFxufSBmcm9tICcuL2phLnJlc2V0LWFwcGxpY2F0aW9uLXN0YXRlLmpzJ1xuaW1wb3J0IHtcbiAgSmFSZXNldENvbXBvbmVudFN0YXRlQnVpbGRlcixcbiAgdHlwZSBSZXNldENvbXBvbmVudFN0YXRlQWN0aW9uSW5wdXQsXG59IGZyb20gJy4vamEucmVzZXQtY29tcG9uZW50LXN0YXRlLmpzJ1xuaW1wb3J0IHtcbiAgSmFSZXNldFNjcmVlblN0YXRlQnVpbGRlcixcbiAgdHlwZSBSZXNldFNjcmVlblN0YXRlQWN0aW9uSW5wdXQsXG59IGZyb20gJy4vamEucmVzZXQtc2NyZWVuLXN0YXRlLmpzJ1xuaW1wb3J0IHsgSmFSZXNldFN0YXRlQnVpbGRlciwgdHlwZSBSZXNldFN0YXRlQWN0aW9uSW5wdXQgfSBmcm9tICcuL2phLnJlc2V0LXN0YXRlLmpzJ1xuaW1wb3J0IHtcbiAgSmFSZXRyeVF1ZXVlQ29tbWFuZEJ1aWxkZXIsXG4gIHR5cGUgUmV0cnlRdWV1ZUNvbW1hbmRBY3Rpb25JbnB1dCxcbn0gZnJvbSAnLi9qYS5yZXRyeS1xdWV1ZS1jb21tYW5kLmpzJ1xuaW1wb3J0IHsgSmFTZXRBY3RpdmVUYWJCdWlsZGVyLCB0eXBlIFNldEFjdGl2ZVRhYkFjdGlvbklucHV0IH0gZnJvbSAnLi9qYS5zZXQtYWN0aXZlLXRhYi5qcydcbmltcG9ydCB7XG4gIEphU2V0QXBwbGljYXRpb25TdGF0ZUJ1aWxkZXIsXG4gIHR5cGUgU2V0QXBwbGljYXRpb25TdGF0ZUFjdGlvbklucHV0LFxufSBmcm9tICcuL2phLnNldC1hcHBsaWNhdGlvbi1zdGF0ZS5qcydcbmltcG9ydCB7IEphU2V0U2NyZWVuU3RhdGVCdWlsZGVyLCB0eXBlIFNldFNjcmVlblN0YXRlQWN0aW9uSW5wdXQgfSBmcm9tICcuL2phLnNldC1zY3JlZW4tc3RhdGUuanMnXG5pbXBvcnQgeyBKYVNoYXJlQnVpbGRlciwgdHlwZSBTaGFyZUFjdGlvbklucHV0IH0gZnJvbSAnLi9qYS5zaGFyZS5qcydcbmltcG9ydCB7IEphU2hvd0FsZXJ0QnVpbGRlciwgdHlwZSBTaG93QWxlcnRBY3Rpb25JbnB1dCB9IGZyb20gJy4vamEuc2hvdy1hbGVydC5qcydcbmltcG9ydCB7XG4gIEphU3RhcnRMb2NhdGlvblNoYXJpbmdCdWlsZGVyLFxuICB0eXBlIFN0YXJ0TG9jYXRpb25TaGFyaW5nQWN0aW9uSW5wdXQsXG59IGZyb20gJy4vamEuc3RhcnQtbG9jYXRpb24tc2hhcmluZy5qcydcbmltcG9ydCB7IEphU3RhcnRTeW5jU2NvcGVCdWlsZGVyLCB0eXBlIFN0YXJ0U3luY1Njb3BlQWN0aW9uSW5wdXQgfSBmcm9tICcuL2phLnN0YXJ0LXN5bmMtc2NvcGUuanMnXG5pbXBvcnQge1xuICBKYVN0b3BMb2NhdGlvblNoYXJpbmdCdWlsZGVyLFxuICB0eXBlIFN0b3BMb2NhdGlvblNoYXJpbmdBY3Rpb25JbnB1dCxcbn0gZnJvbSAnLi9qYS5zdG9wLWxvY2F0aW9uLXNoYXJpbmcuanMnXG5pbXBvcnQgeyBKYVN1Ym1pdEZvcm1CdWlsZGVyLCB0eXBlIFN1Ym1pdEZvcm1BY3Rpb25JbnB1dCB9IGZyb20gJy4vamEuc3VibWl0LWZvcm0uanMnXG5pbXBvcnQgeyBKYVN5bmNFbnRpdGllc0J1aWxkZXIsIHR5cGUgU3luY0VudGl0aWVzQWN0aW9uSW5wdXQgfSBmcm9tICcuL2phLnN5bmMtZW50aXRpZXMuanMnXG5pbXBvcnQgeyBKYVVwZGF0ZVByb2ZpbGVCdWlsZGVyLCB0eXBlIFVwZGF0ZVByb2ZpbGVBY3Rpb25JbnB1dCB9IGZyb20gJy4vamEudXBkYXRlLXByb2ZpbGUuanMnXG5cbi8qKlxuICogYEphSW5CYWNrZ3JvdW5kYCBpcyBhIHR5cGUgdGhhdCByZXByZXNlbnRzIGFsbCBwb3NzaWJsZSBhY3Rpb25zIHRoYXQgY2FuIGJlIGV4ZWN1dGVkIGluIHRoZSBiYWNrZ3JvdW5kXG4gKiBAYWxpYXMgS2VnQWN0aW9uSW5CYWNrZ3JvdW5kXG4gKiBAYWxpYXMga2VnLWFjdGlvbi1pbi1iYWNrZ3JvdW5kXG4gKiBAc2VlICMvZGVmaW5pdGlvbnMva2VnLWFjdGlvbi1pbi1iYWNrZ3JvdW5kXG4gKi9cbi8vIERvIE5PVCBhcmJpdHJhcmlseSBhZGQgY29tcG9uZW50cyBoZXJlLCB0aGlzIGlzIGEgc3BlY2lmaWMsIGRpc2NyZXRlIGxpc3RcbmV4cG9ydCB0eXBlIEphSW5CYWNrZ3JvdW5kID0gSmFCYXNlXG5cbi8qKlxuICogYEFjdGlvbkJ1aWxkZXJgIGlzIGEgdW5pZmllZCB0eXBlIHJlcHJlc2VudGluZyBhbGwgYWN0aW9uIGJ1aWxkZXJzLlxuICpcbiAqIEFmdGVyIFBSICMxMTksIGFjdGlvbiBidWlsZGVycyB3ZXJlIHVuaWZpZWQgLSBzaW5nbGUgYnVpbGRlciBjbGFzc2VzIChlLmcuLCBKYUdvVG9CdWlsZGVyKVxuICogaGFuZGxlIGJvdGggYnV0dG9uIGFuZCBiYWNrZ3JvdW5kIGNvbnRleHRzIHZpYSBmYWN0b3J5IHR5cGUgY29uc3RyYWludHMuXG4gKlxuICogQHNlZSBjcmVhdGVBY3Rpb25JbkJhY2tncm91bmRCdWlsZGVyc0ZhY3RvcnkgZm9yIGJhY2tncm91bmQgY29udGV4dFxuICogQHNlZSBjcmVhdGVBY3Rpb25PbkJ1dHRvbkJ1aWxkZXJzRmFjdG9yeSBmb3IgYnV0dG9uIGNvbnRleHRcbiAqIEBhbGlhcyBKYUluQmFja2dyb3VuZEJ1aWxkZXJzIChkZXByZWNhdGVkIG5hbWUpXG4gKiBAYWxpYXMgS2VnQWN0aW9uSW5CYWNrZ3JvdW5kXG4gKiBAYWxpYXMga2VnLWFjdGlvbi1pbi1iYWNrZ3JvdW5kXG4gKiBAc2VlICMvZGVmaW5pdGlvbnMva2VnLWFjdGlvbi1pbi1iYWNrZ3JvdW5kXG4gKi9cbi8vIERvIE5PVCBhcmJpdHJhcmlseSBhZGQgY29tcG9uZW50cyBoZXJlLCB0aGlzIGlzIGEgc3BlY2lmaWMsIGRpc2NyZXRlIGxpc3RcbmV4cG9ydCB0eXBlIEFjdGlvbkJ1aWxkZXIgPSBBY3Rpb25CYXNlQnVpbGRlcjxBY3Rpb25CYXNlSW5wdXQ+XG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBBY3Rpb25CdWlsZGVyIGluc3RlYWQuIEtlcHQgZm9yIGJhY2t3YXJkIGNvbXBhdGliaWxpdHkuXG4gKi9cbmV4cG9ydCB0eXBlIEphSW5CYWNrZ3JvdW5kQnVpbGRlcnMgPSBBY3Rpb25CdWlsZGVyXG5cbi8qKlxuICogQGRlcHJlY2F0ZWRcbiAqL1xuZXhwb3J0IGFic3RyYWN0IGNsYXNzIEphSW5CYWNrZ3JvdW5kRmFjdG9yeSB7XG4gIHByaXZhdGUgcmVhZG9ubHkgX2JpbmRlcjogKGFjdGlvbjogQWN0aW9uQnVpbGRlcikgPT4gdm9pZFxuXG4gIGNvbnN0cnVjdG9yKGJpbmRlcjogKGFjdGlvbjogQWN0aW9uQnVpbGRlcikgPT4gdm9pZCkge1xuICAgIHRoaXMuX2JpbmRlciA9IGJpbmRlclxuICB9XG5cbiAgZ290byhvcHRpb25zOiBHb1RvQWN0aW9uSW5wdXQpOiBKYUdvVG9CdWlsZGVyIHtcbiAgICBjb25zdCBhY3Rpb24gPSBuZXcgSmFHb1RvQnVpbGRlcihvcHRpb25zKVxuICAgIHRoaXMuX2JpbmRlcihhY3Rpb24pXG4gICAgcmV0dXJuIGFjdGlvblxuICB9XG5cbiAgLyoqXG4gICAqIENyZWF0ZSBhIGdvLWJhY2sgYWN0aW9uIGJ1aWxkZXJcbiAgICogQHBhcmFtIG9wdGlvbnMgLSBDb25maWd1cmF0aW9uIGZvciB0aGUgZ28tYmFjayBhY3Rpb24gKG9wdGlvbmFsKVxuICAgKi9cbiAgZ29CYWNrKG9wdGlvbnM6IEdvQmFja0FjdGlvbklucHV0ID0ge30pOiBKYUdvQmFja0J1aWxkZXIge1xuICAgIGNvbnN0IGFjdGlvbiA9IG5ldyBKYUdvQmFja0J1aWxkZXIob3B0aW9ucylcbiAgICB0aGlzLl9iaW5kZXIoYWN0aW9uKVxuICAgIHJldHVybiBhY3Rpb25cbiAgfVxuXG4gIC8qKlxuICAgKiBDcmVhdGUgYW4gYWN0aW9uLWxpc3QgYnVpbGRlci5cbiAgICogLSBPbWl0IGBjb25jdXJyZW5jeWAgdG8ga2VlcCBZQU1MIGRlZmF1bHQgYmVoYXZpb3IgKHNlcXVlbnRpYWwsIHdpdGhvdXQgYGlzU2VxdWVudGlhbGApLlxuICAgKiAtIFVzZSBgY29uY3VycmVuY3k6ICdzZXF1ZW50aWFsJ2AgdG8gZW1pdCBgaXNTZXF1ZW50aWFsOiB0cnVlYC5cbiAgICogLSBVc2UgYGNvbmN1cnJlbmN5OiAncGFyYWxsZWwnYCB0byBlbWl0IGBpc1NlcXVlbnRpYWw6IGZhbHNlYC5cbiAgICovXG4gIGxpc3Qob3B0aW9ucz86IEFjdGlvbkxpc3RBY3Rpb25JbnB1dCk6IEphQWN0aW9uTGlzdEJ1aWxkZXIge1xuICAgIGNvbnN0IGFjdGlvbiA9IG5ldyBKYUFjdGlvbkxpc3RCdWlsZGVyKHsgLi4ub3B0aW9ucyB9KVxuICAgIHRoaXMuX2JpbmRlcihhY3Rpb24pXG4gICAgcmV0dXJuIGFjdGlvblxuICB9XG5cbiAgLyoqXG4gICAqIENyZWF0ZSBhIHNldC1qaWctc3RhdGUgYWN0aW9uIGJ1aWxkZXJcbiAgICogQGFsaWFzIHNldEppZ1N0YXRlXG4gICAqIEBwYXJhbSBvcHRpb25zIC0gQ29uZmlndXJhdGlvbiBmb3IgdGhlIHNldC1qaWctc3RhdGUgYWN0aW9uXG4gICAqL1xuICBzZXRTY3JlZW5TdGF0ZShvcHRpb25zOiBTZXRTY3JlZW5TdGF0ZUFjdGlvbklucHV0KTogSmFTZXRTY3JlZW5TdGF0ZUJ1aWxkZXIge1xuICAgIGNvbnN0IGFjdGlvbiA9IG5ldyBKYVNldFNjcmVlblN0YXRlQnVpbGRlcihvcHRpb25zKVxuICAgIHRoaXMuX2JpbmRlcihhY3Rpb24pXG4gICAgcmV0dXJuIGFjdGlvblxuICB9XG5cbiAgLyoqXG4gICAqIENyZWF0ZSBhbiBvcGVuLW1lZGlhLXBpY2tlciBhY3Rpb24gYnVpbGRlclxuICAgKiBAcGFyYW0gb3B0aW9ucyAtIENvbmZpZ3VyYXRpb24gZm9yIG1lZGlhIHBpY2tlciBhY3Rpb25cbiAgICovXG4gIG9wZW5NZWRpYVBpY2tlcihvcHRpb25zOiBPcGVuTWVkaWFQaWNrZXJBY3Rpb25JbnB1dCk6IEphT3Blbk1lZGlhUGlja2VyQnVpbGRlciB7XG4gICAgY29uc3QgYWN0aW9uID0gbmV3IEphT3Blbk1lZGlhUGlja2VyQnVpbGRlcihvcHRpb25zKVxuICAgIHRoaXMuX2JpbmRlcihhY3Rpb24pXG4gICAgcmV0dXJuIGFjdGlvblxuICB9XG5cbiAgLyoqXG4gICAqIENyZWF0ZSBhbiBvcGVuLXVybCBhY3Rpb24gYnVpbGRlclxuICAgKiBAcGFyYW0gb3B0aW9ucyAtIE9wZW4gVVJMIGFjdGlvbiBjb25maWd1cmF0aW9uXG4gICAqL1xuICBvcGVuVXJsKG9wdGlvbnM6IE9wZW5VcmxBY3Rpb25JbnB1dCk6IEphT3BlblVybEJ1aWxkZXIge1xuICAgIGNvbnN0IGFjdGlvbiA9IG5ldyBKYU9wZW5VcmxCdWlsZGVyKG9wdGlvbnMpXG4gICAgdGhpcy5fYmluZGVyKGFjdGlvbilcbiAgICByZXR1cm4gYWN0aW9uXG4gIH1cblxuICAvKipcbiAgICogQ3JlYXRlIGEgcmVzZXQtc3RhdGUgYWN0aW9uIGJ1aWxkZXJcbiAgICogQGFsaWFzIHJlc2V0U3RhdGVcbiAgICogQHBhcmFtIG9wdGlvbnNcbiAgICovXG4gIHJlc2V0U3RhdGUob3B0aW9uczogUmVzZXRTdGF0ZUFjdGlvbklucHV0KTogSmFSZXNldFN0YXRlQnVpbGRlciB7XG4gICAgY29uc3QgYWN0aW9uID0gbmV3IEphUmVzZXRTdGF0ZUJ1aWxkZXIob3B0aW9ucylcbiAgICB0aGlzLl9iaW5kZXIoYWN0aW9uKVxuICAgIHJldHVybiBhY3Rpb25cbiAgfVxuXG4gIC8qKlxuICAgKiBDcmVhdGUgYW4gaW5mby1tb2RhbCBhY3Rpb24gYnVpbGRlclxuICAgKiBAcGFyYW0gb3B0aW9ucyAtIENvbmZpZ3VyYXRpb24gZm9yIHRoZSBpbmZvLW1vZGFsIGFjdGlvbiAob3B0aW9uYWwpXG4gICAqL1xuICBpbmZvTW9kYWwob3B0aW9uczogSW5mb01vZGFsQWN0aW9uSW5wdXQgPSB7fSk6IEphSW5mb01vZGFsQnVpbGRlciB7XG4gICAgY29uc3QgYWN0aW9uID0gbmV3IEphSW5mb01vZGFsQnVpbGRlcihvcHRpb25zKVxuICAgIHRoaXMuX2JpbmRlcihhY3Rpb24pXG4gICAgcmV0dXJuIGFjdGlvblxuICB9XG5cbiAgLyoqXG4gICAqIENyZWF0ZSBhbiBleGVjdXRlLWVudGl0eSBhY3Rpb24gYnVpbGRlclxuICAgKi9cbiAgZXhlY3V0ZUVudGl0eShvcHRpb25zOiBFeGVjdXRlRW50aXR5SW5wdXQgPSB7fSk6IEphRXhlY3V0ZUVudGl0eUJ1aWxkZXIge1xuICAgIGNvbnN0IGFjdGlvbiA9IG5ldyBKYUV4ZWN1dGVFbnRpdHlCdWlsZGVyKG9wdGlvbnMpXG4gICAgdGhpcy5fYmluZGVyKGFjdGlvbilcbiAgICByZXR1cm4gYWN0aW9uXG4gIH1cblxuICAvKipcbiAgICogQ3JlYXRlIGEgc3luYy1lbnRpdGllcyBhY3Rpb24gYnVpbGRlclxuICAgKiBAcGFyYW0gb3B0aW9uc1xuICAgKi9cbiAgc3luY0VudGl0aWVzKG9wdGlvbnM6IFN5bmNFbnRpdGllc0FjdGlvbklucHV0KTogSmFTeW5jRW50aXRpZXNCdWlsZGVyIHtcbiAgICBjb25zdCBhY3Rpb24gPSBuZXcgSmFTeW5jRW50aXRpZXNCdWlsZGVyKG9wdGlvbnMpXG4gICAgdGhpcy5fYmluZGVyKGFjdGlvbilcbiAgICByZXR1cm4gYWN0aW9uXG4gIH1cblxuICAvKipcbiAgICogQ3JlYXRlIGEgY29uZmlybSBhY3Rpb24gYnVpbGRlclxuICAgKiBAcGFyYW0gb3B0aW9ucyAtIENvbmZpZ3VyYXRpb24gZm9yIGNvbmZpcm0gYWN0aW9uXG4gICAqL1xuICBjb25maXJtKG9wdGlvbnM6IENvbmZpcm1BY3Rpb25JbnB1dCk6IEphQ29uZmlybUJ1aWxkZXIge1xuICAgIGNvbnN0IGFjdGlvbiA9IG5ldyBKYUNvbmZpcm1CdWlsZGVyKG9wdGlvbnMpXG4gICAgdGhpcy5fYmluZGVyKGFjdGlvbilcbiAgICByZXR1cm4gYWN0aW9uXG4gIH1cblxuICAvKipcbiAgICogQ3JlYXRlIGEgcmVzZXQtY29tcG9uZW50LXN0YXRlIGFjdGlvbiBidWlsZGVyXG4gICAqIEBwYXJhbSBvcHRpb25zIC0gQ29uZmlndXJhdGlvbiBmb3IgcmVzZXQtY29tcG9uZW50LXN0YXRlIGFjdGlvbiAob3B0aW9uYWwpXG4gICAqL1xuICByZXNldENvbXBvbmVudFN0YXRlKG9wdGlvbnM6IFJlc2V0Q29tcG9uZW50U3RhdGVBY3Rpb25JbnB1dCA9IHt9KTogSmFSZXNldENvbXBvbmVudFN0YXRlQnVpbGRlciB7XG4gICAgY29uc3QgYWN0aW9uID0gbmV3IEphUmVzZXRDb21wb25lbnRTdGF0ZUJ1aWxkZXIob3B0aW9ucylcbiAgICB0aGlzLl9iaW5kZXIoYWN0aW9uKVxuICAgIHJldHVybiBhY3Rpb25cbiAgfVxuXG4gIC8qKlxuICAgKiBDcmVhdGUgYSByZXNldC1qaWctc3RhdGUgYWN0aW9uIGJ1aWxkZXJcbiAgICovXG4gIHJlc2V0U2NyZWVuU3RhdGUob3B0aW9uczogUmVzZXRTY3JlZW5TdGF0ZUFjdGlvbklucHV0KTogSmFSZXNldFNjcmVlblN0YXRlQnVpbGRlciB7XG4gICAgY29uc3QgYWN0aW9uID0gbmV3IEphUmVzZXRTY3JlZW5TdGF0ZUJ1aWxkZXIob3B0aW9ucylcbiAgICB0aGlzLl9iaW5kZXIoYWN0aW9uKVxuICAgIHJldHVybiBhY3Rpb25cbiAgfVxuXG4gIC8qKlxuICAgKiBDcmVhdGUgYSByZXNldC1zb2x1dGlvbi1zdGF0ZSBhY3Rpb24gYnVpbGRlclxuICAgKiBAYWxpYXMgcmVzZXRTb2x1dGlvblN0YXRlXG4gICAqIEBwYXJhbSBvcHRpb25zIC0gUmVzZXQgYXBwbGljYXRpb24gc3RhdGUgYWN0aW9uIGNvbmZpZ3VyYXRpb25cbiAgICovXG4gIHJlc2V0QXBwbGljYXRpb25TdGF0ZShvcHRpb25zOiBSZXNldEFwcGxpY2F0aW9uU3RhdGVBY3Rpb25JbnB1dCk6IEphUmVzZXRBcHBsaWNhdGlvblN0YXRlQnVpbGRlciB7XG4gICAgY29uc3QgYWN0aW9uID0gbmV3IEphUmVzZXRBcHBsaWNhdGlvblN0YXRlQnVpbGRlcihvcHRpb25zKVxuICAgIHRoaXMuX2JpbmRlcihhY3Rpb24pXG4gICAgcmV0dXJuIGFjdGlvblxuICB9XG5cbiAgLyoqXG4gICAqIENyZWF0ZSBhIHNldC1zb2x1dGlvbi1zdGF0ZSBhY3Rpb24gYnVpbGRlclxuICAgKiBAYWxpYXMgc2V0U29sdXRpb25TdGF0ZVxuICAgKiBAcGFyYW0gb3B0aW9ucyAtIFNldCBhcHBsaWNhdGlvbiBzdGF0ZSBhY3Rpb24gY29uZmlndXJhdGlvblxuICAgKi9cbiAgc2V0QXBwbGljYXRpb25TdGF0ZShvcHRpb25zOiBTZXRBcHBsaWNhdGlvblN0YXRlQWN0aW9uSW5wdXQpOiBKYVNldEFwcGxpY2F0aW9uU3RhdGVCdWlsZGVyIHtcbiAgICBjb25zdCBhY3Rpb24gPSBuZXcgSmFTZXRBcHBsaWNhdGlvblN0YXRlQnVpbGRlcihvcHRpb25zKVxuICAgIHRoaXMuX2JpbmRlcihhY3Rpb24pXG4gICAgcmV0dXJuIGFjdGlvblxuICB9XG5cbiAgLyoqXG4gICAqIENyZWF0ZSBhIHN1Ym1pdC1mb3JtIGFjdGlvbiBidWlsZGVyXG4gICAqIEBwYXJhbSBvcHRpb25zIC0gU3VibWl0IGZvcm0gY29uZmlndXJhdGlvbiBvcHRpb25zXG4gICAqL1xuICBzdWJtaXRGb3JtKG9wdGlvbnM6IFN1Ym1pdEZvcm1BY3Rpb25JbnB1dCk6IEphU3VibWl0Rm9ybUJ1aWxkZXIge1xuICAgIGNvbnN0IGFjdGlvbiA9IG5ldyBKYVN1Ym1pdEZvcm1CdWlsZGVyKG9wdGlvbnMpXG4gICAgdGhpcy5fYmluZGVyKGFjdGlvbilcbiAgICByZXR1cm4gYWN0aW9uXG4gIH1cblxuICAvKipcbiAgICogQ3JlYXRlIGFuIGV4ZWN1dGUtc3FsIGFjdGlvbiBidWlsZGVyXG4gICAqIEBwYXJhbSBvcHRpb25zIC0gQ29uZmlndXJhdGlvbiBmb3IgZXhlY3V0ZS1zcWwgYWN0aW9uXG4gICAqL1xuICBleGVjdXRlU3FsKG9wdGlvbnM6IEV4ZWN1dGVTcWxBY3Rpb25JbnB1dCk6IEphRXhlY3V0ZVNxbEJ1aWxkZXIge1xuICAgIGNvbnN0IGFjdGlvbiA9IG5ldyBKYUV4ZWN1dGVTcWxCdWlsZGVyKG9wdGlvbnMpXG4gICAgdGhpcy5fYmluZGVyKGFjdGlvbilcbiAgICByZXR1cm4gYWN0aW9uXG4gIH1cblxuICAvKipcbiAgICogQ3JlYXRlIGEgc2V0LWFjdGl2ZS10YWIgYWN0aW9uIGJ1aWxkZXJcbiAgICogQHBhcmFtIG9wdGlvbnMgLSBDb25maWd1cmF0aW9uIGZvciB0aGUgc2V0LWFjdGl2ZS10YWIgYWN0aW9uXG4gICAqL1xuICBzZXRBY3RpdmVUYWIob3B0aW9uczogU2V0QWN0aXZlVGFiQWN0aW9uSW5wdXQpOiBKYVNldEFjdGl2ZVRhYkJ1aWxkZXIge1xuICAgIGNvbnN0IGFjdGlvbiA9IG5ldyBKYVNldEFjdGl2ZVRhYkJ1aWxkZXIob3B0aW9ucylcbiAgICB0aGlzLl9iaW5kZXIoYWN0aW9uKVxuICAgIHJldHVybiBhY3Rpb25cbiAgfVxuXG4gIC8qKlxuICAgKiBDcmVhdGUgYSBjbGVhci1xdWV1ZSBhY3Rpb24gYnVpbGRlclxuICAgKiBAcGFyYW0gb3B0aW9ucyAtIENvbmZpZ3VyYXRpb24gZm9yIGNsZWFyLXF1ZXVlIGFjdGlvblxuICAgKi9cbiAgY2xlYXJRdWV1ZUNvbW1hbmQob3B0aW9uczogQ2xlYXJRdWV1ZUFjdGlvbklucHV0KTogSmFDbGVhclF1ZXVlQnVpbGRlciB7XG4gICAgY29uc3QgYWN0aW9uID0gbmV3IEphQ2xlYXJRdWV1ZUJ1aWxkZXIob3B0aW9ucylcbiAgICB0aGlzLl9iaW5kZXIoYWN0aW9uKVxuICAgIHJldHVybiBhY3Rpb25cbiAgfVxuXG4gIC8qKlxuICAgKiBDcmVhdGUgYSBkZWxldGUtcXVldWUtY29tbWFuZCBhY3Rpb24gYnVpbGRlclxuICAgKiBAcGFyYW0gb3B0aW9ucyAtIENvbmZpZ3VyYXRpb24gZm9yIGRlbGV0ZS1xdWV1ZS1jb21tYW5kIGFjdGlvblxuICAgKi9cbiAgZGVsZXRlUXVldWVDb21tYW5kKG9wdGlvbnM6IERlbGV0ZVF1ZXVlQ29tbWFuZEFjdGlvbklucHV0KTogSmFEZWxldGVRdWV1ZUNvbW1hbmRCdWlsZGVyIHtcbiAgICBjb25zdCBhY3Rpb24gPSBuZXcgSmFEZWxldGVRdWV1ZUNvbW1hbmRCdWlsZGVyKG9wdGlvbnMpXG4gICAgdGhpcy5fYmluZGVyKGFjdGlvbilcbiAgICByZXR1cm4gYWN0aW9uXG4gIH1cblxuICAvKipcbiAgICogQ3JlYXRlIGEgcmV0cnktcXVldWUtY29tbWFuZCBhY3Rpb24gYnVpbGRlclxuICAgKiBAcGFyYW0gb3B0aW9ucyAtIENvbmZpZ3VyYXRpb24gZm9yIHJldHJ5LXF1ZXVlLWNvbW1hbmQgYWN0aW9uXG4gICAqL1xuICByZXRyeVF1ZXVlQ29tbWFuZChvcHRpb25zOiBSZXRyeVF1ZXVlQ29tbWFuZEFjdGlvbklucHV0KTogSmFSZXRyeVF1ZXVlQ29tbWFuZEJ1aWxkZXIge1xuICAgIGNvbnN0IGFjdGlvbiA9IG5ldyBKYVJldHJ5UXVldWVDb21tYW5kQnVpbGRlcihvcHRpb25zKVxuICAgIHRoaXMuX2JpbmRlcihhY3Rpb24pXG4gICAgcmV0dXJuIGFjdGlvblxuICB9XG5cbiAgLyoqXG4gICAqIENyZWF0ZSBhIGRlbGV0ZS1zeW5jLXNjb3BlIGFjdGlvbiBidWlsZGVyXG4gICAqIEBwYXJhbSBvcHRpb25zIC0gQ29uZmlndXJhdGlvbiBmb3IgdGhlIGRlbGV0ZS1zeW5jLXNjb3BlIGFjdGlvblxuICAgKi9cbiAgZGVsZXRlU3luY1Njb3BlKG9wdGlvbnM6IERlbGV0ZVN5bmNTY29wZUFjdGlvbklucHV0KTogSmFEZWxldGVTeW5jU2NvcGVCdWlsZGVyIHtcbiAgICBjb25zdCBhY3Rpb24gPSBuZXcgSmFEZWxldGVTeW5jU2NvcGVCdWlsZGVyKG9wdGlvbnMpXG4gICAgdGhpcy5fYmluZGVyKGFjdGlvbilcbiAgICByZXR1cm4gYWN0aW9uXG4gIH1cblxuICAvKipcbiAgICogQ3JlYXRlIGEgZGVsZXRlLXN5bmMtc3RhdHVzIGFjdGlvbiBidWlsZGVyXG4gICAqIEBwYXJhbSBvcHRpb25zIC0gQ29uZmlndXJhdGlvbiBmb3IgdGhlIGRlbGV0ZS1zeW5jLXN0YXR1cyBhY3Rpb25cbiAgICovXG4gIGRlbGV0ZVN5bmNTdGF0dXMob3B0aW9uczogRGVsZXRlU3luY1N0YXR1c0FjdGlvbklucHV0KTogSmFEZWxldGVTeW5jU3RhdHVzQnVpbGRlciB7XG4gICAgY29uc3QgYWN0aW9uID0gbmV3IEphRGVsZXRlU3luY1N0YXR1c0J1aWxkZXIob3B0aW9ucylcbiAgICB0aGlzLl9iaW5kZXIoYWN0aW9uKVxuICAgIHJldHVybiBhY3Rpb25cbiAgfVxuXG4gIC8qKlxuICAgKiBDcmVhdGUgYSBzdGFydC1zeW5jLXNjb3BlIGFjdGlvbiBidWlsZGVyXG4gICAqIEBwYXJhbSBvcHRpb25zIC0gQ29uZmlndXJhdGlvbiBvcHRpb25zIGZvciB0aGUgYWN0aW9uXG4gICAqL1xuICBzdGFydFN5bmNTY29wZShvcHRpb25zOiBTdGFydFN5bmNTY29wZUFjdGlvbklucHV0KTogSmFTdGFydFN5bmNTY29wZUJ1aWxkZXIge1xuICAgIGNvbnN0IGFjdGlvbiA9IG5ldyBKYVN0YXJ0U3luY1Njb3BlQnVpbGRlcihvcHRpb25zKVxuICAgIHRoaXMuX2JpbmRlcihhY3Rpb24pXG4gICAgcmV0dXJuIGFjdGlvblxuICB9XG5cbiAgLyoqXG4gICAqIENyZWF0ZSBhbiBleGVjdXRlLWFjdGlvbiBhY3Rpb24gYnVpbGRlclxuICAgKiBAcGFyYW0gb3B0aW9ucyAtIENvbmZpZ3VyYXRpb24gb3B0aW9ucyBmb3IgZXhlY3V0ZS1hY3Rpb25cbiAgICovXG4gIGV4ZWN1dGVBY3Rpb24ob3B0aW9uczogRXhlY3V0ZUFjdGlvbkFjdGlvbklucHV0KTogSmFFeGVjdXRlQWN0aW9uQnVpbGRlciB7XG4gICAgY29uc3QgYWN0aW9uID0gbmV3IEphRXhlY3V0ZUFjdGlvbkJ1aWxkZXIob3B0aW9ucylcbiAgICB0aGlzLl9iaW5kZXIoYWN0aW9uKVxuICAgIHJldHVybiBhY3Rpb25cbiAgfVxuXG4gIC8qKlxuICAgKiBDcmVhdGUgYW4gZXhlY3V0ZS1lbnRpdGllcyBhY3Rpb24gYnVpbGRlclxuICAgKiBAcGFyYW0gb3B0aW9ucyAtIENvbmZpZ3VyYXRpb24gZm9yIGV4ZWN1dGUtZW50aXRpZXMgYWN0aW9uXG4gICAqL1xuICBleGVjdXRlRW50aXRpZXMob3B0aW9uczogRXhlY3V0ZUVudGl0aWVzSW5wdXQpOiBKYUV4ZWN1dGVFbnRpdGllc0J1aWxkZXIge1xuICAgIGNvbnN0IGFjdGlvbiA9IG5ldyBKYUV4ZWN1dGVFbnRpdGllc0J1aWxkZXIob3B0aW9ucylcbiAgICB0aGlzLl9iaW5kZXIoYWN0aW9uKVxuICAgIHJldHVybiBhY3Rpb25cbiAgfVxuXG4gIC8qKlxuICAgKiBDcmVhdGUgYSBmaW5kLXJlcGxhY2UgYWN0aW9uIGJ1aWxkZXJcbiAgICogQHBhcmFtIG9wdGlvbnMgLSBDb25maWd1cmF0aW9uIGZvciBmaW5kLXJlcGxhY2UgYWN0aW9uXG4gICAqL1xuICBmaW5kUmVwbGFjZShvcHRpb25zOiBGaW5kUmVwbGFjZUFjdGlvbklucHV0KTogSmFGaW5kUmVwbGFjZUJ1aWxkZXIge1xuICAgIGNvbnN0IGFjdGlvbiA9IG5ldyBKYUZpbmRSZXBsYWNlQnVpbGRlcihvcHRpb25zKVxuICAgIHRoaXMuX2JpbmRlcihhY3Rpb24pXG4gICAgcmV0dXJuIGFjdGlvblxuICB9XG5cbiAgLyoqXG4gICAqIENyZWF0ZSBhIGdlbmVyYXRlLWZpbGUgYWN0aW9uIGJ1aWxkZXJcbiAgICogQHBhcmFtIG9wdGlvbnMgLSBDb25maWd1cmF0aW9uIGZvciBnZW5lcmF0ZS1maWxlIGFjdGlvblxuICAgKi9cbiAgZ2VuZXJhdGVGaWxlKG9wdGlvbnM6IEdlbmVyYXRlRmlsZUFjdGlvbklucHV0KTogSmFHZW5lcmF0ZUZpbGVCdWlsZGVyIHtcbiAgICBjb25zdCBhY3Rpb24gPSBuZXcgSmFHZW5lcmF0ZUZpbGVCdWlsZGVyKG9wdGlvbnMpXG4gICAgdGhpcy5fYmluZGVyKGFjdGlvbilcbiAgICByZXR1cm4gYWN0aW9uXG4gIH1cblxuICAvKipcbiAgICogQ3JlYXRlIGEgZ2VuZXJhdGUtcGRmIGFjdGlvbiBidWlsZGVyXG4gICAqIEBwYXJhbSBvcHRpb25zIC0gT3B0aW9ucyBmb3IgUERGIGdlbmVyYXRpb25cbiAgICogQHBhcmFtIG9wdGlvbnMuZmlsZU5hbWUgLSBQREYgZmlsZSBuYW1lXG4gICAqIEBwYXJhbSBvcHRpb25zLmh0bWwgLSBIVE1MIGNvbnRlbnRcbiAgICogQHBhcmFtIG9wdGlvbnMuaW5zdGFuY2VJZCAtIEluc3RhbmNlIElEIGZvciB0cmFja2luZ1xuICAgKi9cbiAgZ2VuZXJhdGVQZGYob3B0aW9uczoge1xuICAgIHJlYWRvbmx5IGZpbGVOYW1lOiBzdHJpbmcgfCBFeHByZXNzaW9uXG4gICAgcmVhZG9ubHkgaHRtbDogc3RyaW5nIHwgRXhwcmVzc2lvblxuICAgIHJlYWRvbmx5IGluc3RhbmNlSWQ/OiBzdHJpbmcgfCBLZWdJbnN0YW5jZUlkXG4gIH0pOiBKYUdlbmVyYXRlUGRmQnVpbGRlciB7XG4gICAgY29uc3QgYWN0aW9uID0gbmV3IEphR2VuZXJhdGVQZGZCdWlsZGVyKG9wdGlvbnMpXG4gICAgdGhpcy5fYmluZGVyKGFjdGlvbilcbiAgICByZXR1cm4gYWN0aW9uXG4gIH1cblxuICAvKipcbiAgICogQ3JlYXRlIGFuIG9wZW4tYXBwLXNldHRpbmdzIGFjdGlvbiBidWlsZGVyXG4gICAqIEBwYXJhbSBvcHRpb25zIC0gQ29uZmlndXJhdGlvbiBmb3Igb3Blbi1hcHAtc2V0dGluZ3MgYWN0aW9uXG4gICAqL1xuICBvcGVuQXBwU2V0dGluZ3Mob3B0aW9uczogT3BlbkFwcFNldHRpbmdzQWN0aW9uSW5wdXQgPSB7fSk6IEphT3BlbkFwcFNldHRpbmdzQnVpbGRlciB7XG4gICAgY29uc3QgYWN0aW9uID0gbmV3IEphT3BlbkFwcFNldHRpbmdzQnVpbGRlcihvcHRpb25zKVxuICAgIHRoaXMuX2JpbmRlcihhY3Rpb24pXG4gICAgcmV0dXJuIGFjdGlvblxuICB9XG5cbiAgLyoqXG4gICAqIENyZWF0ZSBhbiBvcGVuLW1hcCBhY3Rpb24gYnVpbGRlclxuICAgKiBAcGFyYW0gb3B0aW9ucyAtIENvbmZpZ3VyYXRpb24gZm9yIHRoZSBvcGVuLW1hcCBhY3Rpb25cbiAgICovXG4gIG9wZW5NYXAob3B0aW9uczogT3Blbk1hcEFjdGlvbklucHV0KTogSmFPcGVuTWFwQnVpbGRlciB7XG4gICAgY29uc3QgYWN0aW9uID0gbmV3IEphT3Blbk1hcEJ1aWxkZXIob3B0aW9ucylcbiAgICB0aGlzLl9iaW5kZXIoYWN0aW9uKVxuICAgIHJldHVybiBhY3Rpb25cbiAgfVxuXG4gIC8qKlxuICAgKiBDcmVhdGUgYW4gb3Blbi1zY2FubmVyIGFjdGlvbiBidWlsZGVyXG4gICAqIEBwYXJhbSBvcHRpb25zIC0gT3BlbiBzY2FubmVyIGFjdGlvbiBjb25maWd1cmF0aW9uXG4gICAqL1xuICBvcGVuU2Nhbm5lcihvcHRpb25zOiBPcGVuU2Nhbm5lckFjdGlvbklucHV0KTogSmFPcGVuU2Nhbm5lckJ1aWxkZXIge1xuICAgIGNvbnN0IGFjdGlvbiA9IG5ldyBKYU9wZW5TY2FubmVyQnVpbGRlcihvcHRpb25zKVxuICAgIHRoaXMuX2JpbmRlcihhY3Rpb24pXG4gICAgcmV0dXJuIGFjdGlvblxuICB9XG5cbiAgLyoqXG4gICAqIENyZWF0ZSBhIHByaW50IGFjdGlvbiBidWlsZGVyXG4gICAqIEBwYXJhbSBvcHRpb25zIC0gUHJpbnQgYWN0aW9uIGNvbmZpZ3VyYXRpb25cbiAgICovXG4gIHByaW50KG9wdGlvbnM6IFByaW50QWN0aW9uSW5wdXQpOiBKYVByaW50QnVpbGRlciB7XG4gICAgY29uc3QgYWN0aW9uID0gbmV3IEphUHJpbnRCdWlsZGVyKG9wdGlvbnMpXG4gICAgdGhpcy5fYmluZGVyKGFjdGlvbilcbiAgICByZXR1cm4gYWN0aW9uXG4gIH1cblxuICAvKipcbiAgICogQ3JlYXRlIGEgc2hhcmUgYWN0aW9uIGJ1aWxkZXJcbiAgICogQHBhcmFtIG9wdGlvbnMgLSBDb25maWd1cmF0aW9uIG9wdGlvbnMgZm9yIHRoZSBzaGFyZSBhY3Rpb25cbiAgICovXG4gIHNoYXJlKG9wdGlvbnM6IFNoYXJlQWN0aW9uSW5wdXQpOiBKYVNoYXJlQnVpbGRlciB7XG4gICAgY29uc3QgYWN0aW9uID0gbmV3IEphU2hhcmVCdWlsZGVyKG9wdGlvbnMpXG4gICAgdGhpcy5fYmluZGVyKGFjdGlvbilcbiAgICByZXR1cm4gYWN0aW9uXG4gIH1cblxuICAvKipcbiAgICogQ3JlYXRlIGEgc2hvdy1hbGVydCBhY3Rpb24gYnVpbGRlclxuICAgKiBAcGFyYW0gb3B0aW9ucyAtIENvbmZpZ3VyYXRpb24gZm9yIHRoZSBzaG93LWFsZXJ0IGFjdGlvbiAob3B0aW9uYWwpXG4gICAqL1xuICBzaG93QWxlcnQob3B0aW9uczogU2hvd0FsZXJ0QWN0aW9uSW5wdXQgPSB7fSk6IEphU2hvd0FsZXJ0QnVpbGRlciB7XG4gICAgY29uc3QgYWN0aW9uID0gbmV3IEphU2hvd0FsZXJ0QnVpbGRlcihvcHRpb25zKVxuICAgIHRoaXMuX2JpbmRlcihhY3Rpb24pXG4gICAgcmV0dXJuIGFjdGlvblxuICB9XG5cbiAgLyoqXG4gICAqIENyZWF0ZSBhIHN0YXJ0LWxvY2F0aW9uLXNoYXJpbmcgYWN0aW9uIGJ1aWxkZXJcbiAgICogQHBhcmFtIG9wdGlvbnMgLSBDb25maWd1cmF0aW9uIG9wdGlvbnMgZm9yIHN0YXJ0LWxvY2F0aW9uLXNoYXJpbmcgYWN0aW9uXG4gICAqL1xuICBzdGFydExvY2F0aW9uU2hhcmluZyhvcHRpb25zOiBTdGFydExvY2F0aW9uU2hhcmluZ0FjdGlvbklucHV0KTogSmFTdGFydExvY2F0aW9uU2hhcmluZ0J1aWxkZXIge1xuICAgIGNvbnN0IGFjdGlvbiA9IG5ldyBKYVN0YXJ0TG9jYXRpb25TaGFyaW5nQnVpbGRlcihvcHRpb25zKVxuICAgIHRoaXMuX2JpbmRlcihhY3Rpb24pXG4gICAgcmV0dXJuIGFjdGlvblxuICB9XG5cbiAgLyoqXG4gICAqIENyZWF0ZSBhIHN0b3AtbG9jYXRpb24tc2hhcmluZyBhY3Rpb24gYnVpbGRlclxuICAgKiBAcGFyYW0gb3B0aW9ucyAtIENvbmZpZ3VyYXRpb24gb3B0aW9ucyBmb3Igc3RvcC1sb2NhdGlvbi1zaGFyaW5nIGFjdGlvblxuICAgKi9cbiAgc3RvcExvY2F0aW9uU2hhcmluZyhvcHRpb25zPzogU3RvcExvY2F0aW9uU2hhcmluZ0FjdGlvbklucHV0KTogSmFTdG9wTG9jYXRpb25TaGFyaW5nQnVpbGRlciB7XG4gICAgY29uc3QgYWN0aW9uID0gbmV3IEphU3RvcExvY2F0aW9uU2hhcmluZ0J1aWxkZXIob3B0aW9ucylcbiAgICB0aGlzLl9iaW5kZXIoYWN0aW9uKVxuICAgIHJldHVybiBhY3Rpb25cbiAgfVxuXG4gIC8qKlxuICAgKiBDcmVhdGUgYW4gdXBkYXRlLXByb2ZpbGUgYWN0aW9uIGJ1aWxkZXJcbiAgICogQHBhcmFtIG9wdGlvbnMgLSBDb25maWd1cmF0aW9uIG9wdGlvbnMgZm9yIHRoZSB1cGRhdGUtcHJvZmlsZSBhY3Rpb25cbiAgICovXG4gIHVwZGF0ZVByb2ZpbGUob3B0aW9uczogVXBkYXRlUHJvZmlsZUFjdGlvbklucHV0KTogSmFVcGRhdGVQcm9maWxlQnVpbGRlciB7XG4gICAgY29uc3QgYWN0aW9uID0gbmV3IEphVXBkYXRlUHJvZmlsZUJ1aWxkZXIob3B0aW9ucylcbiAgICB0aGlzLl9iaW5kZXIoYWN0aW9uKVxuICAgIHJldHVybiBhY3Rpb25cbiAgfVxufVxuXG5leHBvcnQgY2xhc3MgSmFJbkJhY2tncm91bmRGYWN0b3J5T25lIGV4dGVuZHMgSmFJbkJhY2tncm91bmRGYWN0b3J5IHtcbiAgcHJpdmF0ZSBfYWN0aW9uPzogQWN0aW9uQnVpbGRlclxuXG4gIHN0YXRpYyBvbmUoKTogSmFJbkJhY2tncm91bmRGYWN0b3J5T25lIHtcbiAgICBjb25zdCBmYWN0b3J5ID0gbmV3IEphSW5CYWNrZ3JvdW5kRmFjdG9yeU9uZSgoYnVpbGRlcjogQWN0aW9uQnVpbGRlcikgPT4ge1xuICAgICAgZmFjdG9yeS5fYWN0aW9uID0gYnVpbGRlclxuICAgIH0pXG4gICAgcmV0dXJuIGZhY3RvcnlcbiAgfVxuXG4gIGJ1aWxkKCk6IEphSW5CYWNrZ3JvdW5kIHwgdW5kZWZpbmVkIHtcbiAgICByZXR1cm4gdGhpcy5fYWN0aW9uPy5idWlsZCgpXG4gIH1cbn1cbiJdfQ==
96
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiamEuaW4tYmFja2dyb3VuZC5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2FjdGlvbi9qYS5pbi1iYWNrZ3JvdW5kLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxLQUFLLFVBQVUsRUFBRSxLQUFLLGFBQWEsRUFBRSxNQUFNLHNCQUFzQixDQUFBO0FBQzFFLE9BQU8sRUFBRSxLQUFLLGlCQUFpQixFQUFFLEtBQUssZUFBZSxFQUFFLEtBQUssTUFBTSxFQUFFLE1BQU0sa0JBQWtCLENBQUE7QUFDNUYsT0FBTyxFQUFFLG1CQUFtQixFQUFFLEtBQUsscUJBQXFCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQTtBQUNyRixPQUFPLEVBQUUsbUJBQW1CLEVBQUUsS0FBSyxxQkFBcUIsRUFBRSxNQUFNLHFCQUFxQixDQUFBO0FBQ3JGLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxLQUFLLGtCQUFrQixFQUFFLE1BQU0saUJBQWlCLENBQUE7QUFDM0UsT0FBTyxFQUNMLDJCQUEyQixFQUMzQixLQUFLLDZCQUE2QixFQUNuQyxNQUFNLDhCQUE4QixDQUFBO0FBQ3JDLE9BQU8sRUFDTCx3QkFBd0IsRUFDeEIsS0FBSywwQkFBMEIsRUFDaEMsTUFBTSwyQkFBMkIsQ0FBQTtBQUNsQyxPQUFPLEVBQ0wseUJBQXlCLEVBQ3pCLEtBQUssMkJBQTJCLEVBQ2pDLE1BQU0sNEJBQTRCLENBQUE7QUFDbkMsT0FBTyxFQUFFLHNCQUFzQixFQUFFLEtBQUssd0JBQXdCLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQTtBQUM5RixPQUFPLEVBQUUsb0JBQW9CLEVBQUUsS0FBSyxzQkFBc0IsRUFBRSxNQUFNLHNCQUFzQixDQUFBO0FBQ3hGLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxLQUFLLG9CQUFvQixFQUFFLE1BQU0sMEJBQTBCLENBQUE7QUFDOUYsT0FBTyxFQUFFLHNCQUFzQixFQUFFLEtBQUssa0JBQWtCLEVBQUUsTUFBTSx3QkFBd0IsQ0FB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QUFBO0tBQy9CLEdBQUcsb0JBQW9CLENBSXZCO0lBTUQsZUFBZSxDQUFDLE9BQU8sR0FBRSwwQkFBK0IsR0FBRyx3QkFBd0IsQ0FJbEY7SUFNRCxPQUFPLENBQUMsT0FBTyxFQUFFLGtCQUFrQixHQUFHLGdCQUFnQixDQUlyRDtJQU1ELFdBQVcsQ0FBQyxPQUFPLEVBQUUsc0JBQXNCLEdBQUcsb0JBQW9CLENBSWpFO0lBTUQsS0FBSyxDQUFDLE9BQU8sRUFBRSxnQkFBZ0IsR0FBRyxjQUFjLENBSS9DO0lBTUQsS0FBSyxDQUFDLE9BQU8sRUFBRSxnQkFBZ0IsR0FBRyxjQUFjLENBSS9DO0lBTUQsU0FBUyxDQUFDLE9BQU8sR0FBRSxvQkFBeUIsR0FBRyxrQkFBa0IsQ0FJaEU7SUFNRCxvQkFBb0IsQ0FBQyxPQUFPLEVBQUUsK0JBQStCLEdBQUcsNkJBQTZCLENBSTVGO0lBTUQsbUJBQW1CLENBQUMsT0FBTyxDQUFDLEVBQUUsOEJBQThCLEdBQUcsNEJBQTRCLENBSTFGO0lBTUQsYUFBYSxDQUFDLE9BQU8sRUFBRSx3QkFBd0IsR0FBRyxzQkFBc0IsQ0FJdkU7Q0FDRjtBQUVELHFCQUFhLHdCQUF5QixTQUFRLHFCQUFxQjtJQUNqRSxPQUFPLENBQUMsT0FBTyxDQUFDLENBQWU7SUFFL0IsTUFBTSxDQUFDLEdBQUcsSUFBSSx3QkFBd0IsQ0FLckM7SUFFRCxLQUFLLElBQUksY0FBYyxHQUFHLFNBQVMsQ0FFbEM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IHR5cGUgRXhwcmVzc2lvbiwgdHlwZSBLZWdJbnN0YW5jZUlkIH0gZnJvbSAnLi4vYWJzdHJhY3QvaW5kZXguanMnXG5pbXBvcnQgeyB0eXBlIEFjdGlvbkJhc2VCdWlsZGVyLCB0eXBlIEFjdGlvbkJhc2VJbnB1dCwgdHlwZSBKYUJhc2UgfSBmcm9tICcuL2phLmFic3RyYWN0LmpzJ1xuaW1wb3J0IHsgSmFBY3Rpb25MaXN0QnVpbGRlciwgdHlwZSBBY3Rpb25MaXN0QWN0aW9uSW5wdXQgfSBmcm9tICcuL2phLmFjdGlvbi1saXN0LmpzJ1xuaW1wb3J0IHsgSmFDbGVhclF1ZXVlQnVpbGRlciwgdHlwZSBDbGVhclF1ZXVlQWN0aW9uSW5wdXQgfSBmcm9tICcuL2phLmNsZWFyLXF1ZXVlLmpzJ1xuaW1wb3J0IHsgSmFDb25maXJtQnVpbGRlciwgdHlwZSBDb25maXJtQWN0aW9uSW5wdXQgfSBmcm9tICcuL2phLmNvbmZpcm0uanMnXG5pbXBvcnQge1xuICBKYURlbGV0ZVF1ZXVlQ29tbWFuZEJ1aWxkZXIsXG4gIHR5cGUgRGVsZXRlUXVldWVDb21tYW5kQWN0aW9uSW5wdXQsXG59IGZyb20gJy4vamEuZGVsZXRlLXF1ZXVlLWNvbW1hbmQuanMnXG5pbXBvcnQge1xuICBKYURlbGV0ZVN5bmNTY29wZUJ1aWxkZXIsXG4gIHR5cGUgRGVsZXRlU3luY1Njb3BlQWN0aW9uSW5wdXQsXG59IGZyb20gJy4vamEuZGVsZXRlLXN5bmMtc2NvcGUuanMnXG5pbXBvcnQge1xuICBKYURlbGV0ZVN5bmNTdGF0dXNCdWlsZGVyLFxuICB0eXBlIERlbGV0ZVN5bmNTdGF0dXNBY3Rpb25JbnB1dCxcbn0gZnJvbSAnLi9qYS5kZWxldGUtc3luYy1zdGF0dXMuanMnXG5pbXBvcnQgeyBKYUV4ZWN1dGVBY3Rpb25CdWlsZGVyLCB0eXBlIEV4ZWN1dGVBY3Rpb25BY3Rpb25JbnB1dCB9IGZyb20gJy4vamEuZXhlY3V0ZS1hY3Rpb24uanMnXG5pbXBvcnQgeyBKYUZpbmRSZXBsYWNlQnVpbGRlciwgdHlwZSBGaW5kUmVwbGFjZUFjdGlvbklucHV0IH0gZnJvbSAnLi9qYS5maW5kLXJlcGxhY2UuanMnXG5pbXBvcnQgeyBKYUV4ZWN1dGVFbnRpdGllc0J1aWxkZXIsIHR5cGUgRXhlY3V0ZUVudGl0aWVzSW5wdXQgfSBmcm9tICcuL2phLmV4ZWN1dGUtZW50aXRpZXMuanMnXG5pbXBvcnQgeyBKYUV4ZWN1dGVFbnRpdHlCdWlsZGVyLCB0eXBlIEV4ZWN1dGVFbnRpdHlJbnB1dCB9IGZyb20gJy4vamEuZXhlY3V0ZS1lbnRpdHkuanMnXG5pbXBvcnQgeyBKYUV4ZWN1dGVTcWxCdWlsZGVyLCB0eXBlIEV4ZWN1dGVTcWxBY3Rpb25JbnB1dCB9IGZyb20gJy4vamEuZXhlY3V0ZS1zcWwuanMnXG5pbXBvcnQgeyBKYUdlbmVyYXRlRmlsZUJ1aWxkZXIsIHR5cGUgR2VuZXJhdGVGaWxlQWN0aW9uSW5wdXQgfSBmcm9tICcuL2phLmdlbmVyYXRlLWZpbGUuanMnXG5pbXBvcnQgeyBKYUdlbmVyYXRlUGRmQnVpbGRlciwgdHlwZSBQZGZQYWdlT3B0aW9ucyB9IGZyb20gJy4vamEuZ2VuZXJhdGUtcGRmLmpzJ1xuaW1wb3J0IHsgSmFHb0JhY2tCdWlsZGVyLCB0eXBlIEdvQmFja0FjdGlvbklucHV0IH0gZnJvbSAnLi9qYS5nby1iYWNrLmpzJ1xuaW1wb3J0IHsgSmFHb1RvQnVpbGRlciwgdHlwZSBHb1RvQWN0aW9uSW5wdXQgfSBmcm9tICcuL2phLmdvLXRvLmpzJ1xuaW1wb3J0IHsgSmFJbmZvTW9kYWxCdWlsZGVyLCB0eXBlIEluZm9Nb2RhbEFjdGlvbklucHV0IH0gZnJvbSAnLi9qYS5pbmZvLW1vZGFsLmpzJ1xuaW1wb3J0IHtcbiAgSmFPcGVuQXBwU2V0dGluZ3NCdWlsZGVyLFxuICB0eXBlIE9wZW5BcHBTZXR0aW5nc0FjdGlvbklucHV0LFxufSBmcm9tICcuL2phLm9wZW4tYXBwLXNldHRpbmdzLmpzJ1xuaW1wb3J0IHsgSmFPcGVuTWFwQnVpbGRlciwgdHlwZSBPcGVuTWFwQWN0aW9uSW5wdXQgfSBmcm9tICcuL2phLm9wZW4tbWFwLmpzJ1xuaW1wb3J0IHtcbiAgSmFPcGVuTWVkaWFQaWNrZXJCdWlsZGVyLFxuICB0eXBlIE9wZW5NZWRpYVBpY2tlckFjdGlvbklucHV0LFxufSBmcm9tICcuL2phLm9wZW4tbWVkaWEtcGlja2VyLmpzJ1xuaW1wb3J0IHsgSmFPcGVuU2Nhbm5lckJ1aWxkZXIsIHR5cGUgT3BlblNjYW5uZXJBY3Rpb25JbnB1dCB9IGZyb20gJy4vamEub3Blbi1zY2FubmVyLmpzJ1xuaW1wb3J0IHsgSmFPcGVuVXJsQnVpbGRlciwgdHlwZSBPcGVuVXJsQWN0aW9uSW5wdXQgfSBmcm9tICcuL2phLm9wZW4tdXJsLmpzJ1xuaW1wb3J0IHsgSmFQcmludEJ1aWxkZXIsIHR5cGUgUHJpbnRBY3Rpb25JbnB1dCB9IGZyb20gJy4vamEucHJpbnQuanMnXG5pbXBvcnQge1xuICBKYVJlc2V0QXBwbGljYXRpb25TdGF0ZUJ1aWxkZXIsXG4gIHR5cGUgUmVzZXRBcHBsaWNhdGlvblN0YXRlQWN0aW9uSW5wdXQsXG59IGZyb20gJy4vamEucmVzZXQtYXBwbGljYXRpb24tc3RhdGUuanMnXG5pbXBvcnQge1xuICBKYVJlc2V0Q29tcG9uZW50U3RhdGVCdWlsZGVyLFxuICB0eXBlIFJlc2V0Q29tcG9uZW50U3RhdGVBY3Rpb25JbnB1dCxcbn0gZnJvbSAnLi9qYS5yZXNldC1jb21wb25lbnQtc3RhdGUuanMnXG5pbXBvcnQge1xuICBKYVJlc2V0U2NyZWVuU3RhdGVCdWlsZGVyLFxuICB0eXBlIFJlc2V0U2NyZWVuU3RhdGVBY3Rpb25JbnB1dCxcbn0gZnJvbSAnLi9qYS5yZXNldC1zY3JlZW4tc3RhdGUuanMnXG5pbXBvcnQgeyBKYVJlc2V0U3RhdGVCdWlsZGVyLCB0eXBlIFJlc2V0U3RhdGVBY3Rpb25JbnB1dCB9IGZyb20gJy4vamEucmVzZXQtc3RhdGUuanMnXG5pbXBvcnQge1xuICBKYVJldHJ5UXVldWVDb21tYW5kQnVpbGRlcixcbiAgdHlwZSBSZXRyeVF1ZXVlQ29tbWFuZEFjdGlvbklucHV0LFxufSBmcm9tICcuL2phLnJldHJ5LXF1ZXVlLWNvbW1hbmQuanMnXG5pbXBvcnQgeyBKYVNldEFjdGl2ZVRhYkJ1aWxkZXIsIHR5cGUgU2V0QWN0aXZlVGFiQWN0aW9uSW5wdXQgfSBmcm9tICcuL2phLnNldC1hY3RpdmUtdGFiLmpzJ1xuaW1wb3J0IHtcbiAgSmFTZXRBcHBsaWNhdGlvblN0YXRlQnVpbGRlcixcbiAgdHlwZSBTZXRBcHBsaWNhdGlvblN0YXRlQWN0aW9uSW5wdXQsXG59IGZyb20gJy4vamEuc2V0LWFwcGxpY2F0aW9uLXN0YXRlLmpzJ1xuaW1wb3J0IHsgSmFTZXRTY3JlZW5TdGF0ZUJ1aWxkZXIsIHR5cGUgU2V0U2NyZWVuU3RhdGVBY3Rpb25JbnB1dCB9IGZyb20gJy4vamEuc2V0LXNjcmVlbi1zdGF0ZS5qcydcbmltcG9ydCB7IEphU2hhcmVCdWlsZGVyLCB0eXBlIFNoYXJlQWN0aW9uSW5wdXQgfSBmcm9tICcuL2phLnNoYXJlLmpzJ1xuaW1wb3J0IHsgSmFTaG93QWxlcnRCdWlsZGVyLCB0eXBlIFNob3dBbGVydEFjdGlvbklucHV0IH0gZnJvbSAnLi9qYS5zaG93LWFsZXJ0LmpzJ1xuaW1wb3J0IHtcbiAgSmFTdGFydExvY2F0aW9uU2hhcmluZ0J1aWxkZXIsXG4gIHR5cGUgU3RhcnRMb2NhdGlvblNoYXJpbmdBY3Rpb25JbnB1dCxcbn0gZnJvbSAnLi9qYS5zdGFydC1sb2NhdGlvbi1zaGFyaW5nLmpzJ1xuaW1wb3J0IHsgSmFTdGFydFN5bmNTY29wZUJ1aWxkZXIsIHR5cGUgU3RhcnRTeW5jU2NvcGVBY3Rpb25JbnB1dCB9IGZyb20gJy4vamEuc3RhcnQtc3luYy1zY29wZS5qcydcbmltcG9ydCB7XG4gIEphU3RvcExvY2F0aW9uU2hhcmluZ0J1aWxkZXIsXG4gIHR5cGUgU3RvcExvY2F0aW9uU2hhcmluZ0FjdGlvbklucHV0LFxufSBmcm9tICcuL2phLnN0b3AtbG9jYXRpb24tc2hhcmluZy5qcydcbmltcG9ydCB7IEphU3VibWl0Rm9ybUJ1aWxkZXIsIHR5cGUgU3VibWl0Rm9ybUFjdGlvbklucHV0IH0gZnJvbSAnLi9qYS5zdWJtaXQtZm9ybS5qcydcbmltcG9ydCB7IEphU3luY0VudGl0aWVzQnVpbGRlciwgdHlwZSBTeW5jRW50aXRpZXNBY3Rpb25JbnB1dCB9IGZyb20gJy4vamEuc3luYy1lbnRpdGllcy5qcydcbmltcG9ydCB7IEphVXBkYXRlUHJvZmlsZUJ1aWxkZXIsIHR5cGUgVXBkYXRlUHJvZmlsZUFjdGlvbklucHV0IH0gZnJvbSAnLi9qYS51cGRhdGUtcHJvZmlsZS5qcydcblxuLyoqXG4gKiBgSmFJbkJhY2tncm91bmRgIGlzIGEgdHlwZSB0aGF0IHJlcHJlc2VudHMgYWxsIHBvc3NpYmxlIGFjdGlvbnMgdGhhdCBjYW4gYmUgZXhlY3V0ZWQgaW4gdGhlIGJhY2tncm91bmRcbiAqIEBhbGlhcyBLZWdBY3Rpb25JbkJhY2tncm91bmRcbiAqIEBhbGlhcyBrZWctYWN0aW9uLWluLWJhY2tncm91bmRcbiAqIEBzZWUgIy9kZWZpbml0aW9ucy9rZWctYWN0aW9uLWluLWJhY2tncm91bmRcbiAqL1xuLy8gRG8gTk9UIGFyYml0cmFyaWx5IGFkZCBjb21wb25lbnRzIGhlcmUsIHRoaXMgaXMgYSBzcGVjaWZpYywgZGlzY3JldGUgbGlzdFxuZXhwb3J0IHR5cGUgSmFJbkJhY2tncm91bmQgPSBKYUJhc2VcblxuLyoqXG4gKiBgQWN0aW9uQnVpbGRlcmAgaXMgYSB1bmlmaWVkIHR5cGUgcmVwcmVzZW50aW5nIGFsbCBhY3Rpb24gYnVpbGRlcnMuXG4gKlxuICogQWZ0ZXIgUFIgIzExOSwgYWN0aW9uIGJ1aWxkZXJzIHdlcmUgdW5pZmllZCAtIHNpbmdsZSBidWlsZGVyIGNsYXNzZXMgKGUuZy4sIEphR29Ub0J1aWxkZXIpXG4gKiBoYW5kbGUgYm90aCBidXR0b24gYW5kIGJhY2tncm91bmQgY29udGV4dHMgdmlhIGZhY3RvcnkgdHlwZSBjb25zdHJhaW50cy5cbiAqXG4gKiBAc2VlIGNyZWF0ZUFjdGlvbkluQmFja2dyb3VuZEJ1aWxkZXJzRmFjdG9yeSBmb3IgYmFja2dyb3VuZCBjb250ZXh0XG4gKiBAc2VlIGNyZWF0ZUFjdGlvbk9uQnV0dG9uQnVpbGRlcnNGYWN0b3J5IGZvciBidXR0b24gY29udGV4dFxuICogQGFsaWFzIEphSW5CYWNrZ3JvdW5kQnVpbGRlcnMgKGRlcHJlY2F0ZWQgbmFtZSlcbiAqIEBhbGlhcyBLZWdBY3Rpb25JbkJhY2tncm91bmRcbiAqIEBhbGlhcyBrZWctYWN0aW9uLWluLWJhY2tncm91bmRcbiAqIEBzZWUgIy9kZWZpbml0aW9ucy9rZWctYWN0aW9uLWluLWJhY2tncm91bmRcbiAqL1xuLy8gRG8gTk9UIGFyYml0cmFyaWx5IGFkZCBjb21wb25lbnRzIGhlcmUsIHRoaXMgaXMgYSBzcGVjaWZpYywgZGlzY3JldGUgbGlzdFxuZXhwb3J0IHR5cGUgQWN0aW9uQnVpbGRlciA9IEFjdGlvbkJhc2VCdWlsZGVyPEFjdGlvbkJhc2VJbnB1dD5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIEFjdGlvbkJ1aWxkZXIgaW5zdGVhZC4gS2VwdCBmb3IgYmFja3dhcmQgY29tcGF0aWJpbGl0eS5cbiAqL1xuZXhwb3J0IHR5cGUgSmFJbkJhY2tncm91bmRCdWlsZGVycyA9IEFjdGlvbkJ1aWxkZXJcblxuLyoqXG4gKiBAZGVwcmVjYXRlZFxuICovXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgSmFJbkJhY2tncm91bmRGYWN0b3J5IHtcbiAgcHJpdmF0ZSByZWFkb25seSBfYmluZGVyOiAoYWN0aW9uOiBBY3Rpb25CdWlsZGVyKSA9PiB2b2lkXG5cbiAgY29uc3RydWN0b3IoYmluZGVyOiAoYWN0aW9uOiBBY3Rpb25CdWlsZGVyKSA9PiB2b2lkKSB7XG4gICAgdGhpcy5fYmluZGVyID0gYmluZGVyXG4gIH1cblxuICBnb3RvKG9wdGlvbnM6IEdvVG9BY3Rpb25JbnB1dCk6IEphR29Ub0J1aWxkZXIge1xuICAgIGNvbnN0IGFjdGlvbiA9IG5ldyBKYUdvVG9CdWlsZGVyKG9wdGlvbnMpXG4gICAgdGhpcy5fYmluZGVyKGFjdGlvbilcbiAgICByZXR1cm4gYWN0aW9uXG4gIH1cblxuICAvKipcbiAgICogQ3JlYXRlIGEgZ28tYmFjayBhY3Rpb24gYnVpbGRlclxuICAgKiBAcGFyYW0gb3B0aW9ucyAtIENvbmZpZ3VyYXRpb24gZm9yIHRoZSBnby1iYWNrIGFjdGlvbiAob3B0aW9uYWwpXG4gICAqL1xuICBnb0JhY2sob3B0aW9uczogR29CYWNrQWN0aW9uSW5wdXQgPSB7fSk6IEphR29CYWNrQnVpbGRlciB7XG4gICAgY29uc3QgYWN0aW9uID0gbmV3IEphR29CYWNrQnVpbGRlcihvcHRpb25zKVxuICAgIHRoaXMuX2JpbmRlcihhY3Rpb24pXG4gICAgcmV0dXJuIGFjdGlvblxuICB9XG5cbiAgLyoqXG4gICAqIENyZWF0ZSBhbiBhY3Rpb24tbGlzdCBidWlsZGVyLlxuICAgKiAtIE9taXQgYGNvbmN1cnJlbmN5YCB0byBrZWVwIFlBTUwgZGVmYXVsdCBiZWhhdmlvciAoc2VxdWVudGlhbCwgd2l0aG91dCBgaXNTZXF1ZW50aWFsYCkuXG4gICAqIC0gVXNlIGBjb25jdXJyZW5jeTogJ3NlcXVlbnRpYWwnYCB0byBlbWl0IGBpc1NlcXVlbnRpYWw6IHRydWVgLlxuICAgKiAtIFVzZSBgY29uY3VycmVuY3k6ICdwYXJhbGxlbCdgIHRvIGVtaXQgYGlzU2VxdWVudGlhbDogZmFsc2VgLlxuICAgKi9cbiAgbGlzdChvcHRpb25zPzogQWN0aW9uTGlzdEFjdGlvbklucHV0KTogSmFBY3Rpb25MaXN0QnVpbGRlciB7XG4gICAgY29uc3QgYWN0aW9uID0gbmV3IEphQWN0aW9uTGlzdEJ1aWxkZXIoeyAuLi5vcHRpb25zIH0pXG4gICAgdGhpcy5fYmluZGVyKGFjdGlvbilcbiAgICByZXR1cm4gYWN0aW9uXG4gIH1cblxuICAvKipcbiAgICogQ3JlYXRlIGEgc2V0LWppZy1zdGF0ZSBhY3Rpb24gYnVpbGRlclxuICAgKiBAYWxpYXMgc2V0SmlnU3RhdGVcbiAgICogQHBhcmFtIG9wdGlvbnMgLSBDb25maWd1cmF0aW9uIGZvciB0aGUgc2V0LWppZy1zdGF0ZSBhY3Rpb25cbiAgICovXG4gIHNldFNjcmVlblN0YXRlKG9wdGlvbnM6IFNldFNjcmVlblN0YXRlQWN0aW9uSW5wdXQpOiBKYVNldFNjcmVlblN0YXRlQnVpbGRlciB7XG4gICAgY29uc3QgYWN0aW9uID0gbmV3IEphU2V0U2NyZWVuU3RhdGVCdWlsZGVyKG9wdGlvbnMpXG4gICAgdGhpcy5fYmluZGVyKGFjdGlvbilcbiAgICByZXR1cm4gYWN0aW9uXG4gIH1cblxuICAvKipcbiAgICogQ3JlYXRlIGFuIG9wZW4tbWVkaWEtcGlja2VyIGFjdGlvbiBidWlsZGVyXG4gICAqIEBwYXJhbSBvcHRpb25zIC0gQ29uZmlndXJhdGlvbiBmb3IgbWVkaWEgcGlja2VyIGFjdGlvblxuICAgKi9cbiAgb3Blbk1lZGlhUGlja2VyKG9wdGlvbnM6IE9wZW5NZWRpYVBpY2tlckFjdGlvbklucHV0KTogSmFPcGVuTWVkaWFQaWNrZXJCdWlsZGVyIHtcbiAgICBjb25zdCBhY3Rpb24gPSBuZXcgSmFPcGVuTWVkaWFQaWNrZXJCdWlsZGVyKG9wdGlvbnMpXG4gICAgdGhpcy5fYmluZGVyKGFjdGlvbilcbiAgICByZXR1cm4gYWN0aW9uXG4gIH1cblxuICAvKipcbiAgICogQ3JlYXRlIGFuIG9wZW4tdXJsIGFjdGlvbiBidWlsZGVyXG4gICAqIEBwYXJhbSBvcHRpb25zIC0gT3BlbiBVUkwgYWN0aW9uIGNvbmZpZ3VyYXRpb25cbiAgICovXG4gIG9wZW5Vcmwob3B0aW9uczogT3BlblVybEFjdGlvbklucHV0KTogSmFPcGVuVXJsQnVpbGRlciB7XG4gICAgY29uc3QgYWN0aW9uID0gbmV3IEphT3BlblVybEJ1aWxkZXIob3B0aW9ucylcbiAgICB0aGlzLl9iaW5kZXIoYWN0aW9uKVxuICAgIHJldHVybiBhY3Rpb25cbiAgfVxuXG4gIC8qKlxuICAgKiBDcmVhdGUgYSByZXNldC1zdGF0ZSBhY3Rpb24gYnVpbGRlclxuICAgKiBAYWxpYXMgcmVzZXRTdGF0ZVxuICAgKiBAcGFyYW0gb3B0aW9uc1xuICAgKi9cbiAgcmVzZXRTdGF0ZShvcHRpb25zOiBSZXNldFN0YXRlQWN0aW9uSW5wdXQpOiBKYVJlc2V0U3RhdGVCdWlsZGVyIHtcbiAgICBjb25zdCBhY3Rpb24gPSBuZXcgSmFSZXNldFN0YXRlQnVpbGRlcihvcHRpb25zKVxuICAgIHRoaXMuX2JpbmRlcihhY3Rpb24pXG4gICAgcmV0dXJuIGFjdGlvblxuICB9XG5cbiAgLyoqXG4gICAqIENyZWF0ZSBhbiBpbmZvLW1vZGFsIGFjdGlvbiBidWlsZGVyXG4gICAqIEBwYXJhbSBvcHRpb25zIC0gQ29uZmlndXJhdGlvbiBmb3IgdGhlIGluZm8tbW9kYWwgYWN0aW9uIChvcHRpb25hbClcbiAgICovXG4gIGluZm9Nb2RhbChvcHRpb25zOiBJbmZvTW9kYWxBY3Rpb25JbnB1dCA9IHt9KTogSmFJbmZvTW9kYWxCdWlsZGVyIHtcbiAgICBjb25zdCBhY3Rpb24gPSBuZXcgSmFJbmZvTW9kYWxCdWlsZGVyKG9wdGlvbnMpXG4gICAgdGhpcy5fYmluZGVyKGFjdGlvbilcbiAgICByZXR1cm4gYWN0aW9uXG4gIH1cblxuICAvKipcbiAgICogQ3JlYXRlIGFuIGV4ZWN1dGUtZW50aXR5IGFjdGlvbiBidWlsZGVyXG4gICAqL1xuICBleGVjdXRlRW50aXR5KG9wdGlvbnM6IEV4ZWN1dGVFbnRpdHlJbnB1dCA9IHt9KTogSmFFeGVjdXRlRW50aXR5QnVpbGRlciB7XG4gICAgY29uc3QgYWN0aW9uID0gbmV3IEphRXhlY3V0ZUVudGl0eUJ1aWxkZXIob3B0aW9ucylcbiAgICB0aGlzLl9iaW5kZXIoYWN0aW9uKVxuICAgIHJldHVybiBhY3Rpb25cbiAgfVxuXG4gIC8qKlxuICAgKiBDcmVhdGUgYSBzeW5jLWVudGl0aWVzIGFjdGlvbiBidWlsZGVyXG4gICAqIEBwYXJhbSBvcHRpb25zXG4gICAqL1xuICBzeW5jRW50aXRpZXMob3B0aW9uczogU3luY0VudGl0aWVzQWN0aW9uSW5wdXQpOiBKYVN5bmNFbnRpdGllc0J1aWxkZXIge1xuICAgIGNvbnN0IGFjdGlvbiA9IG5ldyBKYVN5bmNFbnRpdGllc0J1aWxkZXIob3B0aW9ucylcbiAgICB0aGlzLl9iaW5kZXIoYWN0aW9uKVxuICAgIHJldHVybiBhY3Rpb25cbiAgfVxuXG4gIC8qKlxuICAgKiBDcmVhdGUgYSBjb25maXJtIGFjdGlvbiBidWlsZGVyXG4gICAqIEBwYXJhbSBvcHRpb25zIC0gQ29uZmlndXJhdGlvbiBmb3IgY29uZmlybSBhY3Rpb25cbiAgICovXG4gIGNvbmZpcm0ob3B0aW9uczogQ29uZmlybUFjdGlvbklucHV0KTogSmFDb25maXJtQnVpbGRlciB7XG4gICAgY29uc3QgYWN0aW9uID0gbmV3IEphQ29uZmlybUJ1aWxkZXIob3B0aW9ucylcbiAgICB0aGlzLl9iaW5kZXIoYWN0aW9uKVxuICAgIHJldHVybiBhY3Rpb25cbiAgfVxuXG4gIC8qKlxuICAgKiBDcmVhdGUgYSByZXNldC1jb21wb25lbnQtc3RhdGUgYWN0aW9uIGJ1aWxkZXJcbiAgICogQHBhcmFtIG9wdGlvbnMgLSBDb25maWd1cmF0aW9uIGZvciByZXNldC1jb21wb25lbnQtc3RhdGUgYWN0aW9uIChvcHRpb25hbClcbiAgICovXG4gIHJlc2V0Q29tcG9uZW50U3RhdGUob3B0aW9uczogUmVzZXRDb21wb25lbnRTdGF0ZUFjdGlvbklucHV0ID0ge30pOiBKYVJlc2V0Q29tcG9uZW50U3RhdGVCdWlsZGVyIHtcbiAgICBjb25zdCBhY3Rpb24gPSBuZXcgSmFSZXNldENvbXBvbmVudFN0YXRlQnVpbGRlcihvcHRpb25zKVxuICAgIHRoaXMuX2JpbmRlcihhY3Rpb24pXG4gICAgcmV0dXJuIGFjdGlvblxuICB9XG5cbiAgLyoqXG4gICAqIENyZWF0ZSBhIHJlc2V0LWppZy1zdGF0ZSBhY3Rpb24gYnVpbGRlclxuICAgKi9cbiAgcmVzZXRTY3JlZW5TdGF0ZShvcHRpb25zOiBSZXNldFNjcmVlblN0YXRlQWN0aW9uSW5wdXQpOiBKYVJlc2V0U2NyZWVuU3RhdGVCdWlsZGVyIHtcbiAgICBjb25zdCBhY3Rpb24gPSBuZXcgSmFSZXNldFNjcmVlblN0YXRlQnVpbGRlcihvcHRpb25zKVxuICAgIHRoaXMuX2JpbmRlcihhY3Rpb24pXG4gICAgcmV0dXJuIGFjdGlvblxuICB9XG5cbiAgLyoqXG4gICAqIENyZWF0ZSBhIHJlc2V0LXNvbHV0aW9uLXN0YXRlIGFjdGlvbiBidWlsZGVyXG4gICAqIEBhbGlhcyByZXNldFNvbHV0aW9uU3RhdGVcbiAgICogQHBhcmFtIG9wdGlvbnMgLSBSZXNldCBhcHBsaWNhdGlvbiBzdGF0ZSBhY3Rpb24gY29uZmlndXJhdGlvblxuICAgKi9cbiAgcmVzZXRBcHBsaWNhdGlvblN0YXRlKG9wdGlvbnM6IFJlc2V0QXBwbGljYXRpb25TdGF0ZUFjdGlvbklucHV0KTogSmFSZXNldEFwcGxpY2F0aW9uU3RhdGVCdWlsZGVyIHtcbiAgICBjb25zdCBhY3Rpb24gPSBuZXcgSmFSZXNldEFwcGxpY2F0aW9uU3RhdGVCdWlsZGVyKG9wdGlvbnMpXG4gICAgdGhpcy5fYmluZGVyKGFjdGlvbilcbiAgICByZXR1cm4gYWN0aW9uXG4gIH1cblxuICAvKipcbiAgICogQ3JlYXRlIGEgc2V0LXNvbHV0aW9uLXN0YXRlIGFjdGlvbiBidWlsZGVyXG4gICAqIEBhbGlhcyBzZXRTb2x1dGlvblN0YXRlXG4gICAqIEBwYXJhbSBvcHRpb25zIC0gU2V0IGFwcGxpY2F0aW9uIHN0YXRlIGFjdGlvbiBjb25maWd1cmF0aW9uXG4gICAqL1xuICBzZXRBcHBsaWNhdGlvblN0YXRlKG9wdGlvbnM6IFNldEFwcGxpY2F0aW9uU3RhdGVBY3Rpb25JbnB1dCk6IEphU2V0QXBwbGljYXRpb25TdGF0ZUJ1aWxkZXIge1xuICAgIGNvbnN0IGFjdGlvbiA9IG5ldyBKYVNldEFwcGxpY2F0aW9uU3RhdGVCdWlsZGVyKG9wdGlvbnMpXG4gICAgdGhpcy5fYmluZGVyKGFjdGlvbilcbiAgICByZXR1cm4gYWN0aW9uXG4gIH1cblxuICAvKipcbiAgICogQ3JlYXRlIGEgc3VibWl0LWZvcm0gYWN0aW9uIGJ1aWxkZXJcbiAgICogQHBhcmFtIG9wdGlvbnMgLSBTdWJtaXQgZm9ybSBjb25maWd1cmF0aW9uIG9wdGlvbnNcbiAgICovXG4gIHN1Ym1pdEZvcm0ob3B0aW9uczogU3VibWl0Rm9ybUFjdGlvbklucHV0KTogSmFTdWJtaXRGb3JtQnVpbGRlciB7XG4gICAgY29uc3QgYWN0aW9uID0gbmV3IEphU3VibWl0Rm9ybUJ1aWxkZXIob3B0aW9ucylcbiAgICB0aGlzLl9iaW5kZXIoYWN0aW9uKVxuICAgIHJldHVybiBhY3Rpb25cbiAgfVxuXG4gIC8qKlxuICAgKiBDcmVhdGUgYW4gZXhlY3V0ZS1zcWwgYWN0aW9uIGJ1aWxkZXJcbiAgICogQHBhcmFtIG9wdGlvbnMgLSBDb25maWd1cmF0aW9uIGZvciBleGVjdXRlLXNxbCBhY3Rpb25cbiAgICovXG4gIGV4ZWN1dGVTcWwob3B0aW9uczogRXhlY3V0ZVNxbEFjdGlvbklucHV0KTogSmFFeGVjdXRlU3FsQnVpbGRlciB7XG4gICAgY29uc3QgYWN0aW9uID0gbmV3IEphRXhlY3V0ZVNxbEJ1aWxkZXIob3B0aW9ucylcbiAgICB0aGlzLl9iaW5kZXIoYWN0aW9uKVxuICAgIHJldHVybiBhY3Rpb25cbiAgfVxuXG4gIC8qKlxuICAgKiBDcmVhdGUgYSBzZXQtYWN0aXZlLXRhYiBhY3Rpb24gYnVpbGRlclxuICAgKiBAcGFyYW0gb3B0aW9ucyAtIENvbmZpZ3VyYXRpb24gZm9yIHRoZSBzZXQtYWN0aXZlLXRhYiBhY3Rpb25cbiAgICovXG4gIHNldEFjdGl2ZVRhYihvcHRpb25zOiBTZXRBY3RpdmVUYWJBY3Rpb25JbnB1dCk6IEphU2V0QWN0aXZlVGFiQnVpbGRlciB7XG4gICAgY29uc3QgYWN0aW9uID0gbmV3IEphU2V0QWN0aXZlVGFiQnVpbGRlcihvcHRpb25zKVxuICAgIHRoaXMuX2JpbmRlcihhY3Rpb24pXG4gICAgcmV0dXJuIGFjdGlvblxuICB9XG5cbiAgLyoqXG4gICAqIENyZWF0ZSBhIGNsZWFyLXF1ZXVlIGFjdGlvbiBidWlsZGVyXG4gICAqIEBwYXJhbSBvcHRpb25zIC0gQ29uZmlndXJhdGlvbiBmb3IgY2xlYXItcXVldWUgYWN0aW9uXG4gICAqL1xuICBjbGVhclF1ZXVlQ29tbWFuZChvcHRpb25zOiBDbGVhclF1ZXVlQWN0aW9uSW5wdXQpOiBKYUNsZWFyUXVldWVCdWlsZGVyIHtcbiAgICBjb25zdCBhY3Rpb24gPSBuZXcgSmFDbGVhclF1ZXVlQnVpbGRlcihvcHRpb25zKVxuICAgIHRoaXMuX2JpbmRlcihhY3Rpb24pXG4gICAgcmV0dXJuIGFjdGlvblxuICB9XG5cbiAgLyoqXG4gICAqIENyZWF0ZSBhIGRlbGV0ZS1xdWV1ZS1jb21tYW5kIGFjdGlvbiBidWlsZGVyXG4gICAqIEBwYXJhbSBvcHRpb25zIC0gQ29uZmlndXJhdGlvbiBmb3IgZGVsZXRlLXF1ZXVlLWNvbW1hbmQgYWN0aW9uXG4gICAqL1xuICBkZWxldGVRdWV1ZUNvbW1hbmQob3B0aW9uczogRGVsZXRlUXVldWVDb21tYW5kQWN0aW9uSW5wdXQpOiBKYURlbGV0ZVF1ZXVlQ29tbWFuZEJ1aWxkZXIge1xuICAgIGNvbnN0IGFjdGlvbiA9IG5ldyBKYURlbGV0ZVF1ZXVlQ29tbWFuZEJ1aWxkZXIob3B0aW9ucylcbiAgICB0aGlzLl9iaW5kZXIoYWN0aW9uKVxuICAgIHJldHVybiBhY3Rpb25cbiAgfVxuXG4gIC8qKlxuICAgKiBDcmVhdGUgYSByZXRyeS1xdWV1ZS1jb21tYW5kIGFjdGlvbiBidWlsZGVyXG4gICAqIEBwYXJhbSBvcHRpb25zIC0gQ29uZmlndXJhdGlvbiBmb3IgcmV0cnktcXVldWUtY29tbWFuZCBhY3Rpb25cbiAgICovXG4gIHJldHJ5UXVldWVDb21tYW5kKG9wdGlvbnM6IFJldHJ5UXVldWVDb21tYW5kQWN0aW9uSW5wdXQpOiBKYVJldHJ5UXVldWVDb21tYW5kQnVpbGRlciB7XG4gICAgY29uc3QgYWN0aW9uID0gbmV3IEphUmV0cnlRdWV1ZUNvbW1hbmRCdWlsZGVyKG9wdGlvbnMpXG4gICAgdGhpcy5fYmluZGVyKGFjdGlvbilcbiAgICByZXR1cm4gYWN0aW9uXG4gIH1cblxuICAvKipcbiAgICogQ3JlYXRlIGEgZGVsZXRlLXN5bmMtc2NvcGUgYWN0aW9uIGJ1aWxkZXJcbiAgICogQHBhcmFtIG9wdGlvbnMgLSBDb25maWd1cmF0aW9uIGZvciB0aGUgZGVsZXRlLXN5bmMtc2NvcGUgYWN0aW9uXG4gICAqL1xuICBkZWxldGVTeW5jU2NvcGUob3B0aW9uczogRGVsZXRlU3luY1Njb3BlQWN0aW9uSW5wdXQpOiBKYURlbGV0ZVN5bmNTY29wZUJ1aWxkZXIge1xuICAgIGNvbnN0IGFjdGlvbiA9IG5ldyBKYURlbGV0ZVN5bmNTY29wZUJ1aWxkZXIob3B0aW9ucylcbiAgICB0aGlzLl9iaW5kZXIoYWN0aW9uKVxuICAgIHJldHVybiBhY3Rpb25cbiAgfVxuXG4gIC8qKlxuICAgKiBDcmVhdGUgYSBkZWxldGUtc3luYy1zdGF0dXMgYWN0aW9uIGJ1aWxkZXJcbiAgICogQHBhcmFtIG9wdGlvbnMgLSBDb25maWd1cmF0aW9uIGZvciB0aGUgZGVsZXRlLXN5bmMtc3RhdHVzIGFjdGlvblxuICAgKi9cbiAgZGVsZXRlU3luY1N0YXR1cyhvcHRpb25zOiBEZWxldGVTeW5jU3RhdHVzQWN0aW9uSW5wdXQpOiBKYURlbGV0ZVN5bmNTdGF0dXNCdWlsZGVyIHtcbiAgICBjb25zdCBhY3Rpb24gPSBuZXcgSmFEZWxldGVTeW5jU3RhdHVzQnVpbGRlcihvcHRpb25zKVxuICAgIHRoaXMuX2JpbmRlcihhY3Rpb24pXG4gICAgcmV0dXJuIGFjdGlvblxuICB9XG5cbiAgLyoqXG4gICAqIENyZWF0ZSBhIHN0YXJ0LXN5bmMtc2NvcGUgYWN0aW9uIGJ1aWxkZXJcbiAgICogQHBhcmFtIG9wdGlvbnMgLSBDb25maWd1cmF0aW9uIG9wdGlvbnMgZm9yIHRoZSBhY3Rpb25cbiAgICovXG4gIHN0YXJ0U3luY1Njb3BlKG9wdGlvbnM6IFN0YXJ0U3luY1Njb3BlQWN0aW9uSW5wdXQpOiBKYVN0YXJ0U3luY1Njb3BlQnVpbGRlciB7XG4gICAgY29uc3QgYWN0aW9uID0gbmV3IEphU3RhcnRTeW5jU2NvcGVCdWlsZGVyKG9wdGlvbnMpXG4gICAgdGhpcy5fYmluZGVyKGFjdGlvbilcbiAgICByZXR1cm4gYWN0aW9uXG4gIH1cblxuICAvKipcbiAgICogQ3JlYXRlIGFuIGV4ZWN1dGUtYWN0aW9uIGFjdGlvbiBidWlsZGVyXG4gICAqIEBwYXJhbSBvcHRpb25zIC0gQ29uZmlndXJhdGlvbiBvcHRpb25zIGZvciBleGVjdXRlLWFjdGlvblxuICAgKi9cbiAgZXhlY3V0ZUFjdGlvbihvcHRpb25zOiBFeGVjdXRlQWN0aW9uQWN0aW9uSW5wdXQpOiBKYUV4ZWN1dGVBY3Rpb25CdWlsZGVyIHtcbiAgICBjb25zdCBhY3Rpb24gPSBuZXcgSmFFeGVjdXRlQWN0aW9uQnVpbGRlcihvcHRpb25zKVxuICAgIHRoaXMuX2JpbmRlcihhY3Rpb24pXG4gICAgcmV0dXJuIGFjdGlvblxuICB9XG5cbiAgLyoqXG4gICAqIENyZWF0ZSBhbiBleGVjdXRlLWVudGl0aWVzIGFjdGlvbiBidWlsZGVyXG4gICAqIEBwYXJhbSBvcHRpb25zIC0gQ29uZmlndXJhdGlvbiBmb3IgZXhlY3V0ZS1lbnRpdGllcyBhY3Rpb25cbiAgICovXG4gIGV4ZWN1dGVFbnRpdGllcyhvcHRpb25zOiBFeGVjdXRlRW50aXRpZXNJbnB1dCk6IEphRXhlY3V0ZUVudGl0aWVzQnVpbGRlciB7XG4gICAgY29uc3QgYWN0aW9uID0gbmV3IEphRXhlY3V0ZUVudGl0aWVzQnVpbGRlcihvcHRpb25zKVxuICAgIHRoaXMuX2JpbmRlcihhY3Rpb24pXG4gICAgcmV0dXJuIGFjdGlvblxuICB9XG5cbiAgLyoqXG4gICAqIENyZWF0ZSBhIGZpbmQtcmVwbGFjZSBhY3Rpb24gYnVpbGRlclxuICAgKiBAcGFyYW0gb3B0aW9ucyAtIENvbmZpZ3VyYXRpb24gZm9yIGZpbmQtcmVwbGFjZSBhY3Rpb25cbiAgICovXG4gIGZpbmRSZXBsYWNlKG9wdGlvbnM6IEZpbmRSZXBsYWNlQWN0aW9uSW5wdXQpOiBKYUZpbmRSZXBsYWNlQnVpbGRlciB7XG4gICAgY29uc3QgYWN0aW9uID0gbmV3IEphRmluZFJlcGxhY2VCdWlsZGVyKG9wdGlvbnMpXG4gICAgdGhpcy5fYmluZGVyKGFjdGlvbilcbiAgICByZXR1cm4gYWN0aW9uXG4gIH1cblxuICAvKipcbiAgICogQ3JlYXRlIGEgZ2VuZXJhdGUtZmlsZSBhY3Rpb24gYnVpbGRlclxuICAgKiBAcGFyYW0gb3B0aW9ucyAtIENvbmZpZ3VyYXRpb24gZm9yIGdlbmVyYXRlLWZpbGUgYWN0aW9uXG4gICAqL1xuICBnZW5lcmF0ZUZpbGUob3B0aW9uczogR2VuZXJhdGVGaWxlQWN0aW9uSW5wdXQpOiBKYUdlbmVyYXRlRmlsZUJ1aWxkZXIge1xuICAgIGNvbnN0IGFjdGlvbiA9IG5ldyBKYUdlbmVyYXRlRmlsZUJ1aWxkZXIob3B0aW9ucylcbiAgICB0aGlzLl9iaW5kZXIoYWN0aW9uKVxuICAgIHJldHVybiBhY3Rpb25cbiAgfVxuXG4gIC8qKlxuICAgKiBDcmVhdGUgYSBnZW5lcmF0ZS1wZGYgYWN0aW9uIGJ1aWxkZXJcbiAgICogQHBhcmFtIG9wdGlvbnMgLSBPcHRpb25zIGZvciBQREYgZ2VuZXJhdGlvblxuICAgKiBAcGFyYW0gb3B0aW9ucy5maWxlTmFtZSAtIFBERiBmaWxlIG5hbWVcbiAgICogQHBhcmFtIG9wdGlvbnMuaHRtbCAtIEhUTUwgY29udGVudFxuICAgKiBAcGFyYW0gb3B0aW9ucy5pbnN0YW5jZUlkIC0gSW5zdGFuY2UgSUQgZm9yIHRyYWNraW5nXG4gICAqIEBwYXJhbSBvcHRpb25zLnBhZ2UgLSBPcHRpb25hbCBwYWdlIHNpemUsIG9yaWVudGF0aW9uLCBhbmQgbWFyZ2luc1xuICAgKi9cbiAgZ2VuZXJhdGVQZGYob3B0aW9uczoge1xuICAgIHJlYWRvbmx5IGZpbGVOYW1lOiBzdHJpbmcgfCBFeHByZXNzaW9uXG4gICAgcmVhZG9ubHkgaHRtbDogc3RyaW5nIHwgRXhwcmVzc2lvblxuICAgIHJlYWRvbmx5IGluc3RhbmNlSWQ/OiBzdHJpbmcgfCBLZWdJbnN0YW5jZUlkXG4gICAgcmVhZG9ubHkgcGFnZT86IFBkZlBhZ2VPcHRpb25zXG4gIH0pOiBKYUdlbmVyYXRlUGRmQnVpbGRlciB7XG4gICAgY29uc3QgYWN0aW9uID0gbmV3IEphR2VuZXJhdGVQZGZCdWlsZGVyKG9wdGlvbnMpXG4gICAgdGhpcy5fYmluZGVyKGFjdGlvbilcbiAgICByZXR1cm4gYWN0aW9uXG4gIH1cblxuICAvKipcbiAgICogQ3JlYXRlIGFuIG9wZW4tYXBwLXNldHRpbmdzIGFjdGlvbiBidWlsZGVyXG4gICAqIEBwYXJhbSBvcHRpb25zIC0gQ29uZmlndXJhdGlvbiBmb3Igb3Blbi1hcHAtc2V0dGluZ3MgYWN0aW9uXG4gICAqL1xuICBvcGVuQXBwU2V0dGluZ3Mob3B0aW9uczogT3BlbkFwcFNldHRpbmdzQWN0aW9uSW5wdXQgPSB7fSk6IEphT3BlbkFwcFNldHRpbmdzQnVpbGRlciB7XG4gICAgY29uc3QgYWN0aW9uID0gbmV3IEphT3BlbkFwcFNldHRpbmdzQnVpbGRlcihvcHRpb25zKVxuICAgIHRoaXMuX2JpbmRlcihhY3Rpb24pXG4gICAgcmV0dXJuIGFjdGlvblxuICB9XG5cbiAgLyoqXG4gICAqIENyZWF0ZSBhbiBvcGVuLW1hcCBhY3Rpb24gYnVpbGRlclxuICAgKiBAcGFyYW0gb3B0aW9ucyAtIENvbmZpZ3VyYXRpb24gZm9yIHRoZSBvcGVuLW1hcCBhY3Rpb25cbiAgICovXG4gIG9wZW5NYXAob3B0aW9uczogT3Blbk1hcEFjdGlvbklucHV0KTogSmFPcGVuTWFwQnVpbGRlciB7XG4gICAgY29uc3QgYWN0aW9uID0gbmV3IEphT3Blbk1hcEJ1aWxkZXIob3B0aW9ucylcbiAgICB0aGlzLl9iaW5kZXIoYWN0aW9uKVxuICAgIHJldHVybiBhY3Rpb25cbiAgfVxuXG4gIC8qKlxuICAgKiBDcmVhdGUgYW4gb3Blbi1zY2FubmVyIGFjdGlvbiBidWlsZGVyXG4gICAqIEBwYXJhbSBvcHRpb25zIC0gT3BlbiBzY2FubmVyIGFjdGlvbiBjb25maWd1cmF0aW9uXG4gICAqL1xuICBvcGVuU2Nhbm5lcihvcHRpb25zOiBPcGVuU2Nhbm5lckFjdGlvbklucHV0KTogSmFPcGVuU2Nhbm5lckJ1aWxkZXIge1xuICAgIGNvbnN0IGFjdGlvbiA9IG5ldyBKYU9wZW5TY2FubmVyQnVpbGRlcihvcHRpb25zKVxuICAgIHRoaXMuX2JpbmRlcihhY3Rpb24pXG4gICAgcmV0dXJuIGFjdGlvblxuICB9XG5cbiAgLyoqXG4gICAqIENyZWF0ZSBhIHByaW50IGFjdGlvbiBidWlsZGVyXG4gICAqIEBwYXJhbSBvcHRpb25zIC0gUHJpbnQgYWN0aW9uIGNvbmZpZ3VyYXRpb25cbiAgICovXG4gIHByaW50KG9wdGlvbnM6IFByaW50QWN0aW9uSW5wdXQpOiBKYVByaW50QnVpbGRlciB7XG4gICAgY29uc3QgYWN0aW9uID0gbmV3IEphUHJpbnRCdWlsZGVyKG9wdGlvbnMpXG4gICAgdGhpcy5fYmluZGVyKGFjdGlvbilcbiAgICByZXR1cm4gYWN0aW9uXG4gIH1cblxuICAvKipcbiAgICogQ3JlYXRlIGEgc2hhcmUgYWN0aW9uIGJ1aWxkZXJcbiAgICogQHBhcmFtIG9wdGlvbnMgLSBDb25maWd1cmF0aW9uIG9wdGlvbnMgZm9yIHRoZSBzaGFyZSBhY3Rpb25cbiAgICovXG4gIHNoYXJlKG9wdGlvbnM6IFNoYXJlQWN0aW9uSW5wdXQpOiBKYVNoYXJlQnVpbGRlciB7XG4gICAgY29uc3QgYWN0aW9uID0gbmV3IEphU2hhcmVCdWlsZGVyKG9wdGlvbnMpXG4gICAgdGhpcy5fYmluZGVyKGFjdGlvbilcbiAgICByZXR1cm4gYWN0aW9uXG4gIH1cblxuICAvKipcbiAgICogQ3JlYXRlIGEgc2hvdy1hbGVydCBhY3Rpb24gYnVpbGRlclxuICAgKiBAcGFyYW0gb3B0aW9ucyAtIENvbmZpZ3VyYXRpb24gZm9yIHRoZSBzaG93LWFsZXJ0IGFjdGlvbiAob3B0aW9uYWwpXG4gICAqL1xuICBzaG93QWxlcnQob3B0aW9uczogU2hvd0FsZXJ0QWN0aW9uSW5wdXQgPSB7fSk6IEphU2hvd0FsZXJ0QnVpbGRlciB7XG4gICAgY29uc3QgYWN0aW9uID0gbmV3IEphU2hvd0FsZXJ0QnVpbGRlcihvcHRpb25zKVxuICAgIHRoaXMuX2JpbmRlcihhY3Rpb24pXG4gICAgcmV0dXJuIGFjdGlvblxuICB9XG5cbiAgLyoqXG4gICAqIENyZWF0ZSBhIHN0YXJ0LWxvY2F0aW9uLXNoYXJpbmcgYWN0aW9uIGJ1aWxkZXJcbiAgICogQHBhcmFtIG9wdGlvbnMgLSBDb25maWd1cmF0aW9uIG9wdGlvbnMgZm9yIHN0YXJ0LWxvY2F0aW9uLXNoYXJpbmcgYWN0aW9uXG4gICAqL1xuICBzdGFydExvY2F0aW9uU2hhcmluZyhvcHRpb25zOiBTdGFydExvY2F0aW9uU2hhcmluZ0FjdGlvbklucHV0KTogSmFTdGFydExvY2F0aW9uU2hhcmluZ0J1aWxkZXIge1xuICAgIGNvbnN0IGFjdGlvbiA9IG5ldyBKYVN0YXJ0TG9jYXRpb25TaGFyaW5nQnVpbGRlcihvcHRpb25zKVxuICAgIHRoaXMuX2JpbmRlcihhY3Rpb24pXG4gICAgcmV0dXJuIGFjdGlvblxuICB9XG5cbiAgLyoqXG4gICAqIENyZWF0ZSBhIHN0b3AtbG9jYXRpb24tc2hhcmluZyBhY3Rpb24gYnVpbGRlclxuICAgKiBAcGFyYW0gb3B0aW9ucyAtIENvbmZpZ3VyYXRpb24gb3B0aW9ucyBmb3Igc3RvcC1sb2NhdGlvbi1zaGFyaW5nIGFjdGlvblxuICAgKi9cbiAgc3RvcExvY2F0aW9uU2hhcmluZyhvcHRpb25zPzogU3RvcExvY2F0aW9uU2hhcmluZ0FjdGlvbklucHV0KTogSmFTdG9wTG9jYXRpb25TaGFyaW5nQnVpbGRlciB7XG4gICAgY29uc3QgYWN0aW9uID0gbmV3IEphU3RvcExvY2F0aW9uU2hhcmluZ0J1aWxkZXIob3B0aW9ucylcbiAgICB0aGlzLl9iaW5kZXIoYWN0aW9uKVxuICAgIHJldHVybiBhY3Rpb25cbiAgfVxuXG4gIC8qKlxuICAgKiBDcmVhdGUgYW4gdXBkYXRlLXByb2ZpbGUgYWN0aW9uIGJ1aWxkZXJcbiAgICogQHBhcmFtIG9wdGlvbnMgLSBDb25maWd1cmF0aW9uIG9wdGlvbnMgZm9yIHRoZSB1cGRhdGUtcHJvZmlsZSBhY3Rpb25cbiAgICovXG4gIHVwZGF0ZVByb2ZpbGUob3B0aW9uczogVXBkYXRlUHJvZmlsZUFjdGlvbklucHV0KTogSmFVcGRhdGVQcm9maWxlQnVpbGRlciB7XG4gICAgY29uc3QgYWN0aW9uID0gbmV3IEphVXBkYXRlUHJvZmlsZUJ1aWxkZXIob3B0aW9ucylcbiAgICB0aGlzLl9iaW5kZXIoYWN0aW9uKVxuICAgIHJldHVybiBhY3Rpb25cbiAgfVxufVxuXG5leHBvcnQgY2xhc3MgSmFJbkJhY2tncm91bmRGYWN0b3J5T25lIGV4dGVuZHMgSmFJbkJhY2tncm91bmRGYWN0b3J5IHtcbiAgcHJpdmF0ZSBfYWN0aW9uPzogQWN0aW9uQnVpbGRlclxuXG4gIHN0YXRpYyBvbmUoKTogSmFJbkJhY2tncm91bmRGYWN0b3J5T25lIHtcbiAgICBjb25zdCBmYWN0b3J5ID0gbmV3IEphSW5CYWNrZ3JvdW5kRmFjdG9yeU9uZSgoYnVpbGRlcjogQWN0aW9uQnVpbGRlcikgPT4ge1xuICAgICAgZmFjdG9yeS5fYWN0aW9uID0gYnVpbGRlclxuICAgIH0pXG4gICAgcmV0dXJuIGZhY3RvcnlcbiAgfVxuXG4gIGJ1aWxkKCk6IEphSW5CYWNrZ3JvdW5kIHwgdW5kZWZpbmVkIHtcbiAgICByZXR1cm4gdGhpcy5fYWN0aW9uPy5idWlsZCgpXG4gIH1cbn1cbiJdfQ==
@@ -1 +1 @@
1
- {"version":3,"file":"ja.in-background.d.ts","sourceRoot":"","sources":["../../src/action/ja.in-background.ts"],"names":[],"mappings":"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","sourcesContent":["import { type Expression, type KegInstanceId } from '../abstract/index.js'\nimport { type ActionBaseBuilder, type ActionBaseInput, type JaBase } from './ja.abstract.js'\nimport { JaActionListBuilder, type ActionListActionInput } from './ja.action-list.js'\nimport { JaClearQueueBuilder, type ClearQueueActionInput } from './ja.clear-queue.js'\nimport { JaConfirmBuilder, type ConfirmActionInput } from './ja.confirm.js'\nimport {\n JaDeleteQueueCommandBuilder,\n type DeleteQueueCommandActionInput,\n} from './ja.delete-queue-command.js'\nimport {\n JaDeleteSyncScopeBuilder,\n type DeleteSyncScopeActionInput,\n} from './ja.delete-sync-scope.js'\nimport {\n JaDeleteSyncStatusBuilder,\n type DeleteSyncStatusActionInput,\n} from './ja.delete-sync-status.js'\nimport { JaExecuteActionBuilder, type ExecuteActionActionInput } from './ja.execute-action.js'\nimport { JaFindReplaceBuilder, type FindReplaceActionInput } from './ja.find-replace.js'\nimport { JaExecuteEntitiesBuilder, type ExecuteEntitiesInput } from './ja.execute-entities.js'\nimport { JaExecuteEntityBuilder, type ExecuteEntityInput } from './ja.execute-entity.js'\nimport { JaExecuteSqlBuilder, type ExecuteSqlActionInput } from './ja.execute-sql.js'\nimport { JaGenerateFileBuilder, type GenerateFileActionInput } from './ja.generate-file.js'\nimport { JaGeneratePdfBuilder } from './ja.generate-pdf.js'\nimport { JaGoBackBuilder, type GoBackActionInput } from './ja.go-back.js'\nimport { JaGoToBuilder, type GoToActionInput } from './ja.go-to.js'\nimport { JaInfoModalBuilder, type InfoModalActionInput } from './ja.info-modal.js'\nimport {\n JaOpenAppSettingsBuilder,\n type OpenAppSettingsActionInput,\n} from './ja.open-app-settings.js'\nimport { JaOpenMapBuilder, type OpenMapActionInput } from './ja.open-map.js'\nimport {\n JaOpenMediaPickerBuilder,\n type OpenMediaPickerActionInput,\n} from './ja.open-media-picker.js'\nimport { JaOpenScannerBuilder, type OpenScannerActionInput } from './ja.open-scanner.js'\nimport { JaOpenUrlBuilder, type OpenUrlActionInput } from './ja.open-url.js'\nimport { JaPrintBuilder, type PrintActionInput } from './ja.print.js'\nimport {\n JaResetApplicationStateBuilder,\n type ResetApplicationStateActionInput,\n} from './ja.reset-application-state.js'\nimport {\n JaResetComponentStateBuilder,\n type ResetComponentStateActionInput,\n} from './ja.reset-component-state.js'\nimport {\n JaResetScreenStateBuilder,\n type ResetScreenStateActionInput,\n} from './ja.reset-screen-state.js'\nimport { JaResetStateBuilder, type ResetStateActionInput } from './ja.reset-state.js'\nimport {\n JaRetryQueueCommandBuilder,\n type RetryQueueCommandActionInput,\n} from './ja.retry-queue-command.js'\nimport { JaSetActiveTabBuilder, type SetActiveTabActionInput } from './ja.set-active-tab.js'\nimport {\n JaSetApplicationStateBuilder,\n type SetApplicationStateActionInput,\n} from './ja.set-application-state.js'\nimport { JaSetScreenStateBuilder, type SetScreenStateActionInput } from './ja.set-screen-state.js'\nimport { JaShareBuilder, type ShareActionInput } from './ja.share.js'\nimport { JaShowAlertBuilder, type ShowAlertActionInput } from './ja.show-alert.js'\nimport {\n JaStartLocationSharingBuilder,\n type StartLocationSharingActionInput,\n} from './ja.start-location-sharing.js'\nimport { JaStartSyncScopeBuilder, type StartSyncScopeActionInput } from './ja.start-sync-scope.js'\nimport {\n JaStopLocationSharingBuilder,\n type StopLocationSharingActionInput,\n} from './ja.stop-location-sharing.js'\nimport { JaSubmitFormBuilder, type SubmitFormActionInput } from './ja.submit-form.js'\nimport { JaSyncEntitiesBuilder, type SyncEntitiesActionInput } from './ja.sync-entities.js'\nimport { JaUpdateProfileBuilder, type UpdateProfileActionInput } from './ja.update-profile.js'\n\n/**\n * `JaInBackground` is a type that represents all possible actions that can be executed in the background\n * @alias KegActionInBackground\n * @alias keg-action-in-background\n * @see #/definitions/keg-action-in-background\n */\n// Do NOT arbitrarily add components here, this is a specific, discrete list\nexport type JaInBackground = JaBase\n\n/**\n * `ActionBuilder` is a unified type representing all action builders.\n *\n * After PR #119, action builders were unified - single builder classes (e.g., JaGoToBuilder)\n * handle both button and background contexts via factory type constraints.\n *\n * @see createActionInBackgroundBuildersFactory for background context\n * @see createActionOnButtonBuildersFactory for button context\n * @alias JaInBackgroundBuilders (deprecated name)\n * @alias KegActionInBackground\n * @alias keg-action-in-background\n * @see #/definitions/keg-action-in-background\n */\n// Do NOT arbitrarily add components here, this is a specific, discrete list\nexport type ActionBuilder = ActionBaseBuilder<ActionBaseInput>\n/**\n * @deprecated Use ActionBuilder instead. Kept for backward compatibility.\n */\nexport type JaInBackgroundBuilders = ActionBuilder\n\n/**\n * @deprecated\n */\nexport abstract class JaInBackgroundFactory {\n private readonly _binder: (action: ActionBuilder) => void\n\n constructor(binder: (action: ActionBuilder) => void) {\n this._binder = binder\n }\n\n goto(options: GoToActionInput): JaGoToBuilder {\n const action = new JaGoToBuilder(options)\n this._binder(action)\n return action\n }\n\n /**\n * Create a go-back action builder\n * @param options - Configuration for the go-back action (optional)\n */\n goBack(options: GoBackActionInput = {}): JaGoBackBuilder {\n const action = new JaGoBackBuilder(options)\n this._binder(action)\n return action\n }\n\n /**\n * Create an action-list builder.\n * - Omit `concurrency` to keep YAML default behavior (sequential, without `isSequential`).\n * - Use `concurrency: 'sequential'` to emit `isSequential: true`.\n * - Use `concurrency: 'parallel'` to emit `isSequential: false`.\n */\n list(options?: ActionListActionInput): JaActionListBuilder {\n const action = new JaActionListBuilder({ ...options })\n this._binder(action)\n return action\n }\n\n /**\n * Create a set-jig-state action builder\n * @alias setJigState\n * @param options - Configuration for the set-jig-state action\n */\n setScreenState(options: SetScreenStateActionInput): JaSetScreenStateBuilder {\n const action = new JaSetScreenStateBuilder(options)\n this._binder(action)\n return action\n }\n\n /**\n * Create an open-media-picker action builder\n * @param options - Configuration for media picker action\n */\n openMediaPicker(options: OpenMediaPickerActionInput): JaOpenMediaPickerBuilder {\n const action = new JaOpenMediaPickerBuilder(options)\n this._binder(action)\n return action\n }\n\n /**\n * Create an open-url action builder\n * @param options - Open URL action configuration\n */\n openUrl(options: OpenUrlActionInput): JaOpenUrlBuilder {\n const action = new JaOpenUrlBuilder(options)\n this._binder(action)\n return action\n }\n\n /**\n * Create a reset-state action builder\n * @alias resetState\n * @param options\n */\n resetState(options: ResetStateActionInput): JaResetStateBuilder {\n const action = new JaResetStateBuilder(options)\n this._binder(action)\n return action\n }\n\n /**\n * Create an info-modal action builder\n * @param options - Configuration for the info-modal action (optional)\n */\n infoModal(options: InfoModalActionInput = {}): JaInfoModalBuilder {\n const action = new JaInfoModalBuilder(options)\n this._binder(action)\n return action\n }\n\n /**\n * Create an execute-entity action builder\n */\n executeEntity(options: ExecuteEntityInput = {}): JaExecuteEntityBuilder {\n const action = new JaExecuteEntityBuilder(options)\n this._binder(action)\n return action\n }\n\n /**\n * Create a sync-entities action builder\n * @param options\n */\n syncEntities(options: SyncEntitiesActionInput): JaSyncEntitiesBuilder {\n const action = new JaSyncEntitiesBuilder(options)\n this._binder(action)\n return action\n }\n\n /**\n * Create a confirm action builder\n * @param options - Configuration for confirm action\n */\n confirm(options: ConfirmActionInput): JaConfirmBuilder {\n const action = new JaConfirmBuilder(options)\n this._binder(action)\n return action\n }\n\n /**\n * Create a reset-component-state action builder\n * @param options - Configuration for reset-component-state action (optional)\n */\n resetComponentState(options: ResetComponentStateActionInput = {}): JaResetComponentStateBuilder {\n const action = new JaResetComponentStateBuilder(options)\n this._binder(action)\n return action\n }\n\n /**\n * Create a reset-jig-state action builder\n */\n resetScreenState(options: ResetScreenStateActionInput): JaResetScreenStateBuilder {\n const action = new JaResetScreenStateBuilder(options)\n this._binder(action)\n return action\n }\n\n /**\n * Create a reset-solution-state action builder\n * @alias resetSolutionState\n * @param options - Reset application state action configuration\n */\n resetApplicationState(options: ResetApplicationStateActionInput): JaResetApplicationStateBuilder {\n const action = new JaResetApplicationStateBuilder(options)\n this._binder(action)\n return action\n }\n\n /**\n * Create a set-solution-state action builder\n * @alias setSolutionState\n * @param options - Set application state action configuration\n */\n setApplicationState(options: SetApplicationStateActionInput): JaSetApplicationStateBuilder {\n const action = new JaSetApplicationStateBuilder(options)\n this._binder(action)\n return action\n }\n\n /**\n * Create a submit-form action builder\n * @param options - Submit form configuration options\n */\n submitForm(options: SubmitFormActionInput): JaSubmitFormBuilder {\n const action = new JaSubmitFormBuilder(options)\n this._binder(action)\n return action\n }\n\n /**\n * Create an execute-sql action builder\n * @param options - Configuration for execute-sql action\n */\n executeSql(options: ExecuteSqlActionInput): JaExecuteSqlBuilder {\n const action = new JaExecuteSqlBuilder(options)\n this._binder(action)\n return action\n }\n\n /**\n * Create a set-active-tab action builder\n * @param options - Configuration for the set-active-tab action\n */\n setActiveTab(options: SetActiveTabActionInput): JaSetActiveTabBuilder {\n const action = new JaSetActiveTabBuilder(options)\n this._binder(action)\n return action\n }\n\n /**\n * Create a clear-queue action builder\n * @param options - Configuration for clear-queue action\n */\n clearQueueCommand(options: ClearQueueActionInput): JaClearQueueBuilder {\n const action = new JaClearQueueBuilder(options)\n this._binder(action)\n return action\n }\n\n /**\n * Create a delete-queue-command action builder\n * @param options - Configuration for delete-queue-command action\n */\n deleteQueueCommand(options: DeleteQueueCommandActionInput): JaDeleteQueueCommandBuilder {\n const action = new JaDeleteQueueCommandBuilder(options)\n this._binder(action)\n return action\n }\n\n /**\n * Create a retry-queue-command action builder\n * @param options - Configuration for retry-queue-command action\n */\n retryQueueCommand(options: RetryQueueCommandActionInput): JaRetryQueueCommandBuilder {\n const action = new JaRetryQueueCommandBuilder(options)\n this._binder(action)\n return action\n }\n\n /**\n * Create a delete-sync-scope action builder\n * @param options - Configuration for the delete-sync-scope action\n */\n deleteSyncScope(options: DeleteSyncScopeActionInput): JaDeleteSyncScopeBuilder {\n const action = new JaDeleteSyncScopeBuilder(options)\n this._binder(action)\n return action\n }\n\n /**\n * Create a delete-sync-status action builder\n * @param options - Configuration for the delete-sync-status action\n */\n deleteSyncStatus(options: DeleteSyncStatusActionInput): JaDeleteSyncStatusBuilder {\n const action = new JaDeleteSyncStatusBuilder(options)\n this._binder(action)\n return action\n }\n\n /**\n * Create a start-sync-scope action builder\n * @param options - Configuration options for the action\n */\n startSyncScope(options: StartSyncScopeActionInput): JaStartSyncScopeBuilder {\n const action = new JaStartSyncScopeBuilder(options)\n this._binder(action)\n return action\n }\n\n /**\n * Create an execute-action action builder\n * @param options - Configuration options for execute-action\n */\n executeAction(options: ExecuteActionActionInput): JaExecuteActionBuilder {\n const action = new JaExecuteActionBuilder(options)\n this._binder(action)\n return action\n }\n\n /**\n * Create an execute-entities action builder\n * @param options - Configuration for execute-entities action\n */\n executeEntities(options: ExecuteEntitiesInput): JaExecuteEntitiesBuilder {\n const action = new JaExecuteEntitiesBuilder(options)\n this._binder(action)\n return action\n }\n\n /**\n * Create a find-replace action builder\n * @param options - Configuration for find-replace action\n */\n findReplace(options: FindReplaceActionInput): JaFindReplaceBuilder {\n const action = new JaFindReplaceBuilder(options)\n this._binder(action)\n return action\n }\n\n /**\n * Create a generate-file action builder\n * @param options - Configuration for generate-file action\n */\n generateFile(options: GenerateFileActionInput): JaGenerateFileBuilder {\n const action = new JaGenerateFileBuilder(options)\n this._binder(action)\n return action\n }\n\n /**\n * Create a generate-pdf action builder\n * @param options - Options for PDF generation\n * @param options.fileName - PDF file name\n * @param options.html - HTML content\n * @param options.instanceId - Instance ID for tracking\n */\n generatePdf(options: {\n readonly fileName: string | Expression\n readonly html: string | Expression\n readonly instanceId?: string | KegInstanceId\n }): JaGeneratePdfBuilder {\n const action = new JaGeneratePdfBuilder(options)\n this._binder(action)\n return action\n }\n\n /**\n * Create an open-app-settings action builder\n * @param options - Configuration for open-app-settings action\n */\n openAppSettings(options: OpenAppSettingsActionInput = {}): JaOpenAppSettingsBuilder {\n const action = new JaOpenAppSettingsBuilder(options)\n this._binder(action)\n return action\n }\n\n /**\n * Create an open-map action builder\n * @param options - Configuration for the open-map action\n */\n openMap(options: OpenMapActionInput): JaOpenMapBuilder {\n const action = new JaOpenMapBuilder(options)\n this._binder(action)\n return action\n }\n\n /**\n * Create an open-scanner action builder\n * @param options - Open scanner action configuration\n */\n openScanner(options: OpenScannerActionInput): JaOpenScannerBuilder {\n const action = new JaOpenScannerBuilder(options)\n this._binder(action)\n return action\n }\n\n /**\n * Create a print action builder\n * @param options - Print action configuration\n */\n print(options: PrintActionInput): JaPrintBuilder {\n const action = new JaPrintBuilder(options)\n this._binder(action)\n return action\n }\n\n /**\n * Create a share action builder\n * @param options - Configuration options for the share action\n */\n share(options: ShareActionInput): JaShareBuilder {\n const action = new JaShareBuilder(options)\n this._binder(action)\n return action\n }\n\n /**\n * Create a show-alert action builder\n * @param options - Configuration for the show-alert action (optional)\n */\n showAlert(options: ShowAlertActionInput = {}): JaShowAlertBuilder {\n const action = new JaShowAlertBuilder(options)\n this._binder(action)\n return action\n }\n\n /**\n * Create a start-location-sharing action builder\n * @param options - Configuration options for start-location-sharing action\n */\n startLocationSharing(options: StartLocationSharingActionInput): JaStartLocationSharingBuilder {\n const action = new JaStartLocationSharingBuilder(options)\n this._binder(action)\n return action\n }\n\n /**\n * Create a stop-location-sharing action builder\n * @param options - Configuration options for stop-location-sharing action\n */\n stopLocationSharing(options?: StopLocationSharingActionInput): JaStopLocationSharingBuilder {\n const action = new JaStopLocationSharingBuilder(options)\n this._binder(action)\n return action\n }\n\n /**\n * Create an update-profile action builder\n * @param options - Configuration options for the update-profile action\n */\n updateProfile(options: UpdateProfileActionInput): JaUpdateProfileBuilder {\n const action = new JaUpdateProfileBuilder(options)\n this._binder(action)\n return action\n }\n}\n\nexport class JaInBackgroundFactoryOne extends JaInBackgroundFactory {\n private _action?: ActionBuilder\n\n static one(): JaInBackgroundFactoryOne {\n const factory = new JaInBackgroundFactoryOne((builder: ActionBuilder) => {\n factory._action = builder\n })\n return factory\n }\n\n build(): JaInBackground | undefined {\n return this._action?.build()\n }\n}\n"]}
1
+ {"version":3,"file":"ja.in-background.d.ts","sourceRoot":"","sources":["../../src/action/ja.in-background.ts"],"names":[],"mappings":"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","sourcesContent":["import { type Expression, type KegInstanceId } from '../abstract/index.js'\nimport { type ActionBaseBuilder, type ActionBaseInput, type JaBase } from './ja.abstract.js'\nimport { JaActionListBuilder, type ActionListActionInput } from './ja.action-list.js'\nimport { JaClearQueueBuilder, type ClearQueueActionInput } from './ja.clear-queue.js'\nimport { JaConfirmBuilder, type ConfirmActionInput } from './ja.confirm.js'\nimport {\n JaDeleteQueueCommandBuilder,\n type DeleteQueueCommandActionInput,\n} from './ja.delete-queue-command.js'\nimport {\n JaDeleteSyncScopeBuilder,\n type DeleteSyncScopeActionInput,\n} from './ja.delete-sync-scope.js'\nimport {\n JaDeleteSyncStatusBuilder,\n type DeleteSyncStatusActionInput,\n} from './ja.delete-sync-status.js'\nimport { JaExecuteActionBuilder, type ExecuteActionActionInput } from './ja.execute-action.js'\nimport { JaFindReplaceBuilder, type FindReplaceActionInput } from './ja.find-replace.js'\nimport { JaExecuteEntitiesBuilder, type ExecuteEntitiesInput } from './ja.execute-entities.js'\nimport { JaExecuteEntityBuilder, type ExecuteEntityInput } from './ja.execute-entity.js'\nimport { JaExecuteSqlBuilder, type ExecuteSqlActionInput } from './ja.execute-sql.js'\nimport { JaGenerateFileBuilder, type GenerateFileActionInput } from './ja.generate-file.js'\nimport { JaGeneratePdfBuilder, type PdfPageOptions } from './ja.generate-pdf.js'\nimport { JaGoBackBuilder, type GoBackActionInput } from './ja.go-back.js'\nimport { JaGoToBuilder, type GoToActionInput } from './ja.go-to.js'\nimport { JaInfoModalBuilder, type InfoModalActionInput } from './ja.info-modal.js'\nimport {\n JaOpenAppSettingsBuilder,\n type OpenAppSettingsActionInput,\n} from './ja.open-app-settings.js'\nimport { JaOpenMapBuilder, type OpenMapActionInput } from './ja.open-map.js'\nimport {\n JaOpenMediaPickerBuilder,\n type OpenMediaPickerActionInput,\n} from './ja.open-media-picker.js'\nimport { JaOpenScannerBuilder, type OpenScannerActionInput } from './ja.open-scanner.js'\nimport { JaOpenUrlBuilder, type OpenUrlActionInput } from './ja.open-url.js'\nimport { JaPrintBuilder, type PrintActionInput } from './ja.print.js'\nimport {\n JaResetApplicationStateBuilder,\n type ResetApplicationStateActionInput,\n} from './ja.reset-application-state.js'\nimport {\n JaResetComponentStateBuilder,\n type ResetComponentStateActionInput,\n} from './ja.reset-component-state.js'\nimport {\n JaResetScreenStateBuilder,\n type ResetScreenStateActionInput,\n} from './ja.reset-screen-state.js'\nimport { JaResetStateBuilder, type ResetStateActionInput } from './ja.reset-state.js'\nimport {\n JaRetryQueueCommandBuilder,\n type RetryQueueCommandActionInput,\n} from './ja.retry-queue-command.js'\nimport { JaSetActiveTabBuilder, type SetActiveTabActionInput } from './ja.set-active-tab.js'\nimport {\n JaSetApplicationStateBuilder,\n type SetApplicationStateActionInput,\n} from './ja.set-application-state.js'\nimport { JaSetScreenStateBuilder, type SetScreenStateActionInput } from './ja.set-screen-state.js'\nimport { JaShareBuilder, type ShareActionInput } from './ja.share.js'\nimport { JaShowAlertBuilder, type ShowAlertActionInput } from './ja.show-alert.js'\nimport {\n JaStartLocationSharingBuilder,\n type StartLocationSharingActionInput,\n} from './ja.start-location-sharing.js'\nimport { JaStartSyncScopeBuilder, type StartSyncScopeActionInput } from './ja.start-sync-scope.js'\nimport {\n JaStopLocationSharingBuilder,\n type StopLocationSharingActionInput,\n} from './ja.stop-location-sharing.js'\nimport { JaSubmitFormBuilder, type SubmitFormActionInput } from './ja.submit-form.js'\nimport { JaSyncEntitiesBuilder, type SyncEntitiesActionInput } from './ja.sync-entities.js'\nimport { JaUpdateProfileBuilder, type UpdateProfileActionInput } from './ja.update-profile.js'\n\n/**\n * `JaInBackground` is a type that represents all possible actions that can be executed in the background\n * @alias KegActionInBackground\n * @alias keg-action-in-background\n * @see #/definitions/keg-action-in-background\n */\n// Do NOT arbitrarily add components here, this is a specific, discrete list\nexport type JaInBackground = JaBase\n\n/**\n * `ActionBuilder` is a unified type representing all action builders.\n *\n * After PR #119, action builders were unified - single builder classes (e.g., JaGoToBuilder)\n * handle both button and background contexts via factory type constraints.\n *\n * @see createActionInBackgroundBuildersFactory for background context\n * @see createActionOnButtonBuildersFactory for button context\n * @alias JaInBackgroundBuilders (deprecated name)\n * @alias KegActionInBackground\n * @alias keg-action-in-background\n * @see #/definitions/keg-action-in-background\n */\n// Do NOT arbitrarily add components here, this is a specific, discrete list\nexport type ActionBuilder = ActionBaseBuilder<ActionBaseInput>\n/**\n * @deprecated Use ActionBuilder instead. Kept for backward compatibility.\n */\nexport type JaInBackgroundBuilders = ActionBuilder\n\n/**\n * @deprecated\n */\nexport abstract class JaInBackgroundFactory {\n private readonly _binder: (action: ActionBuilder) => void\n\n constructor(binder: (action: ActionBuilder) => void) {\n this._binder = binder\n }\n\n goto(options: GoToActionInput): JaGoToBuilder {\n const action = new JaGoToBuilder(options)\n this._binder(action)\n return action\n }\n\n /**\n * Create a go-back action builder\n * @param options - Configuration for the go-back action (optional)\n */\n goBack(options: GoBackActionInput = {}): JaGoBackBuilder {\n const action = new JaGoBackBuilder(options)\n this._binder(action)\n return action\n }\n\n /**\n * Create an action-list builder.\n * - Omit `concurrency` to keep YAML default behavior (sequential, without `isSequential`).\n * - Use `concurrency: 'sequential'` to emit `isSequential: true`.\n * - Use `concurrency: 'parallel'` to emit `isSequential: false`.\n */\n list(options?: ActionListActionInput): JaActionListBuilder {\n const action = new JaActionListBuilder({ ...options })\n this._binder(action)\n return action\n }\n\n /**\n * Create a set-jig-state action builder\n * @alias setJigState\n * @param options - Configuration for the set-jig-state action\n */\n setScreenState(options: SetScreenStateActionInput): JaSetScreenStateBuilder {\n const action = new JaSetScreenStateBuilder(options)\n this._binder(action)\n return action\n }\n\n /**\n * Create an open-media-picker action builder\n * @param options - Configuration for media picker action\n */\n openMediaPicker(options: OpenMediaPickerActionInput): JaOpenMediaPickerBuilder {\n const action = new JaOpenMediaPickerBuilder(options)\n this._binder(action)\n return action\n }\n\n /**\n * Create an open-url action builder\n * @param options - Open URL action configuration\n */\n openUrl(options: OpenUrlActionInput): JaOpenUrlBuilder {\n const action = new JaOpenUrlBuilder(options)\n this._binder(action)\n return action\n }\n\n /**\n * Create a reset-state action builder\n * @alias resetState\n * @param options\n */\n resetState(options: ResetStateActionInput): JaResetStateBuilder {\n const action = new JaResetStateBuilder(options)\n this._binder(action)\n return action\n }\n\n /**\n * Create an info-modal action builder\n * @param options - Configuration for the info-modal action (optional)\n */\n infoModal(options: InfoModalActionInput = {}): JaInfoModalBuilder {\n const action = new JaInfoModalBuilder(options)\n this._binder(action)\n return action\n }\n\n /**\n * Create an execute-entity action builder\n */\n executeEntity(options: ExecuteEntityInput = {}): JaExecuteEntityBuilder {\n const action = new JaExecuteEntityBuilder(options)\n this._binder(action)\n return action\n }\n\n /**\n * Create a sync-entities action builder\n * @param options\n */\n syncEntities(options: SyncEntitiesActionInput): JaSyncEntitiesBuilder {\n const action = new JaSyncEntitiesBuilder(options)\n this._binder(action)\n return action\n }\n\n /**\n * Create a confirm action builder\n * @param options - Configuration for confirm action\n */\n confirm(options: ConfirmActionInput): JaConfirmBuilder {\n const action = new JaConfirmBuilder(options)\n this._binder(action)\n return action\n }\n\n /**\n * Create a reset-component-state action builder\n * @param options - Configuration for reset-component-state action (optional)\n */\n resetComponentState(options: ResetComponentStateActionInput = {}): JaResetComponentStateBuilder {\n const action = new JaResetComponentStateBuilder(options)\n this._binder(action)\n return action\n }\n\n /**\n * Create a reset-jig-state action builder\n */\n resetScreenState(options: ResetScreenStateActionInput): JaResetScreenStateBuilder {\n const action = new JaResetScreenStateBuilder(options)\n this._binder(action)\n return action\n }\n\n /**\n * Create a reset-solution-state action builder\n * @alias resetSolutionState\n * @param options - Reset application state action configuration\n */\n resetApplicationState(options: ResetApplicationStateActionInput): JaResetApplicationStateBuilder {\n const action = new JaResetApplicationStateBuilder(options)\n this._binder(action)\n return action\n }\n\n /**\n * Create a set-solution-state action builder\n * @alias setSolutionState\n * @param options - Set application state action configuration\n */\n setApplicationState(options: SetApplicationStateActionInput): JaSetApplicationStateBuilder {\n const action = new JaSetApplicationStateBuilder(options)\n this._binder(action)\n return action\n }\n\n /**\n * Create a submit-form action builder\n * @param options - Submit form configuration options\n */\n submitForm(options: SubmitFormActionInput): JaSubmitFormBuilder {\n const action = new JaSubmitFormBuilder(options)\n this._binder(action)\n return action\n }\n\n /**\n * Create an execute-sql action builder\n * @param options - Configuration for execute-sql action\n */\n executeSql(options: ExecuteSqlActionInput): JaExecuteSqlBuilder {\n const action = new JaExecuteSqlBuilder(options)\n this._binder(action)\n return action\n }\n\n /**\n * Create a set-active-tab action builder\n * @param options - Configuration for the set-active-tab action\n */\n setActiveTab(options: SetActiveTabActionInput): JaSetActiveTabBuilder {\n const action = new JaSetActiveTabBuilder(options)\n this._binder(action)\n return action\n }\n\n /**\n * Create a clear-queue action builder\n * @param options - Configuration for clear-queue action\n */\n clearQueueCommand(options: ClearQueueActionInput): JaClearQueueBuilder {\n const action = new JaClearQueueBuilder(options)\n this._binder(action)\n return action\n }\n\n /**\n * Create a delete-queue-command action builder\n * @param options - Configuration for delete-queue-command action\n */\n deleteQueueCommand(options: DeleteQueueCommandActionInput): JaDeleteQueueCommandBuilder {\n const action = new JaDeleteQueueCommandBuilder(options)\n this._binder(action)\n return action\n }\n\n /**\n * Create a retry-queue-command action builder\n * @param options - Configuration for retry-queue-command action\n */\n retryQueueCommand(options: RetryQueueCommandActionInput): JaRetryQueueCommandBuilder {\n const action = new JaRetryQueueCommandBuilder(options)\n this._binder(action)\n return action\n }\n\n /**\n * Create a delete-sync-scope action builder\n * @param options - Configuration for the delete-sync-scope action\n */\n deleteSyncScope(options: DeleteSyncScopeActionInput): JaDeleteSyncScopeBuilder {\n const action = new JaDeleteSyncScopeBuilder(options)\n this._binder(action)\n return action\n }\n\n /**\n * Create a delete-sync-status action builder\n * @param options - Configuration for the delete-sync-status action\n */\n deleteSyncStatus(options: DeleteSyncStatusActionInput): JaDeleteSyncStatusBuilder {\n const action = new JaDeleteSyncStatusBuilder(options)\n this._binder(action)\n return action\n }\n\n /**\n * Create a start-sync-scope action builder\n * @param options - Configuration options for the action\n */\n startSyncScope(options: StartSyncScopeActionInput): JaStartSyncScopeBuilder {\n const action = new JaStartSyncScopeBuilder(options)\n this._binder(action)\n return action\n }\n\n /**\n * Create an execute-action action builder\n * @param options - Configuration options for execute-action\n */\n executeAction(options: ExecuteActionActionInput): JaExecuteActionBuilder {\n const action = new JaExecuteActionBuilder(options)\n this._binder(action)\n return action\n }\n\n /**\n * Create an execute-entities action builder\n * @param options - Configuration for execute-entities action\n */\n executeEntities(options: ExecuteEntitiesInput): JaExecuteEntitiesBuilder {\n const action = new JaExecuteEntitiesBuilder(options)\n this._binder(action)\n return action\n }\n\n /**\n * Create a find-replace action builder\n * @param options - Configuration for find-replace action\n */\n findReplace(options: FindReplaceActionInput): JaFindReplaceBuilder {\n const action = new JaFindReplaceBuilder(options)\n this._binder(action)\n return action\n }\n\n /**\n * Create a generate-file action builder\n * @param options - Configuration for generate-file action\n */\n generateFile(options: GenerateFileActionInput): JaGenerateFileBuilder {\n const action = new JaGenerateFileBuilder(options)\n this._binder(action)\n return action\n }\n\n /**\n * Create a generate-pdf action builder\n * @param options - Options for PDF generation\n * @param options.fileName - PDF file name\n * @param options.html - HTML content\n * @param options.instanceId - Instance ID for tracking\n * @param options.page - Optional page size, orientation, and margins\n */\n generatePdf(options: {\n readonly fileName: string | Expression\n readonly html: string | Expression\n readonly instanceId?: string | KegInstanceId\n readonly page?: PdfPageOptions\n }): JaGeneratePdfBuilder {\n const action = new JaGeneratePdfBuilder(options)\n this._binder(action)\n return action\n }\n\n /**\n * Create an open-app-settings action builder\n * @param options - Configuration for open-app-settings action\n */\n openAppSettings(options: OpenAppSettingsActionInput = {}): JaOpenAppSettingsBuilder {\n const action = new JaOpenAppSettingsBuilder(options)\n this._binder(action)\n return action\n }\n\n /**\n * Create an open-map action builder\n * @param options - Configuration for the open-map action\n */\n openMap(options: OpenMapActionInput): JaOpenMapBuilder {\n const action = new JaOpenMapBuilder(options)\n this._binder(action)\n return action\n }\n\n /**\n * Create an open-scanner action builder\n * @param options - Open scanner action configuration\n */\n openScanner(options: OpenScannerActionInput): JaOpenScannerBuilder {\n const action = new JaOpenScannerBuilder(options)\n this._binder(action)\n return action\n }\n\n /**\n * Create a print action builder\n * @param options - Print action configuration\n */\n print(options: PrintActionInput): JaPrintBuilder {\n const action = new JaPrintBuilder(options)\n this._binder(action)\n return action\n }\n\n /**\n * Create a share action builder\n * @param options - Configuration options for the share action\n */\n share(options: ShareActionInput): JaShareBuilder {\n const action = new JaShareBuilder(options)\n this._binder(action)\n return action\n }\n\n /**\n * Create a show-alert action builder\n * @param options - Configuration for the show-alert action (optional)\n */\n showAlert(options: ShowAlertActionInput = {}): JaShowAlertBuilder {\n const action = new JaShowAlertBuilder(options)\n this._binder(action)\n return action\n }\n\n /**\n * Create a start-location-sharing action builder\n * @param options - Configuration options for start-location-sharing action\n */\n startLocationSharing(options: StartLocationSharingActionInput): JaStartLocationSharingBuilder {\n const action = new JaStartLocationSharingBuilder(options)\n this._binder(action)\n return action\n }\n\n /**\n * Create a stop-location-sharing action builder\n * @param options - Configuration options for stop-location-sharing action\n */\n stopLocationSharing(options?: StopLocationSharingActionInput): JaStopLocationSharingBuilder {\n const action = new JaStopLocationSharingBuilder(options)\n this._binder(action)\n return action\n }\n\n /**\n * Create an update-profile action builder\n * @param options - Configuration options for the update-profile action\n */\n updateProfile(options: UpdateProfileActionInput): JaUpdateProfileBuilder {\n const action = new JaUpdateProfileBuilder(options)\n this._binder(action)\n return action\n }\n}\n\nexport class JaInBackgroundFactoryOne extends JaInBackgroundFactory {\n private _action?: ActionBuilder\n\n static one(): JaInBackgroundFactoryOne {\n const factory = new JaInBackgroundFactoryOne((builder: ActionBuilder) => {\n factory._action = builder\n })\n return factory\n }\n\n build(): JaInBackground | undefined {\n return this._action?.build()\n }\n}\n"]}
@@ -244,4 +244,4 @@ export class JaInBackgroundFactoryOne extends JaInBackgroundFactory {
244
244
  return this._action?.build();
245
245
  }
246
246
  }
247
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiamEuaW4tYmFja2dyb3VuZC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9hY3Rpb24vamEuaW4tYmFja2dyb3VuZC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxPQUFPLEVBQUUsbUJBQW1CLEVBQThCLE1BQU0scUJBQXFCLENBQUE7QUFDckYsT0FBTyxFQUFFLG1CQUFtQixFQUE4QixNQUFNLHFCQUFxQixDQUFBO0FBQ3JGLE9BQU8sRUFBRSxnQkFBZ0IsRUFBMkIsTUFBTSxpQkFBaUIsQ0FBQTtBQUMzRSxPQUFPLEVBQ0wsMkJBQTJCLEdBRTVCLE1BQU0sOEJBQThCLENBQUE7QUFDckMsT0FBTyxFQUNMLHdCQUF3QixHQUV6QixNQUFNLDJCQUEyQixDQUFBO0FBQ2xDLE9BQU8sRUFDTCx5QkFBeUIsR0FFMUIsTUFBTSw0QkFBNEIsQ0FBQTtBQUNuQyxPQUFPLEVBQUUsc0JBQXNCLEVBQWlDLE1BQU0sd0JBQXdCLENBQUE7QUFDOUYsT0FBTyxFQUFFLG9CQUFvQixFQUErQixNQUFNLHNCQUFzQixDQUFBO0FBQ3hGLE9BQU8sRUFBRSx3QkFBd0IsRUFBNkIsTUFBTSwwQkFBMEIsQ0FBQTtBQUM5RixPQUFPLEVBQUUsc0JBQXNCLEVBQTJCLE1BQU0sd0JBQXdCLENBQUE7QUFDeEYsT0FBTyxFQUFFLG1CQUFtQixFQUE4QixNQUFNLHFCQUFxQixDQUFBO0FBQ3JGLE9BQU8sRUFBRSxxQkFBcUIsRUFBZ0MsTUFBTSx1QkFBdUIsQ0FBQTtBQUMzRixPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQTtBQUMzRCxPQUFPLEVBQUUsZUFBZSxFQUEwQixNQUFNLGlCQUFpQixDQUFBO0FBQ3pFLE9BQU8sRUFBRSxhQUFhLEVBQXdCLE1BQU0sZUFBZSxDQUFBO0FBQ25FLE9BQU8sRUFBRSxrQkFBa0IsRUFBNkIsTUFBTSxvQkFBb0IsQ0FBQTtBQUNsRixPQUFPLEVBQ0wsd0JBQXdCLEdBRXpCLE1BQU0sMkJBQTJC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QUksQ0FBQyxPQUFPLEVBQUUsS0FBSyxFQUFFLENBQUE7SUFBQSxDQUM3QjtDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgdHlwZSBFeHByZXNzaW9uLCB0eXBlIEtlZ0luc3RhbmNlSWQgfSBmcm9tICcuLi9hYnN0cmFjdC9pbmRleC5qcydcbmltcG9ydCB7IHR5cGUgQWN0aW9uQmFzZUJ1aWxkZXIsIHR5cGUgQWN0aW9uQmFzZUlucHV0LCB0eXBlIEphQmFzZSB9IGZyb20gJy4vamEuYWJzdHJhY3QuanMnXG5pbXBvcnQgeyBKYUFjdGlvbkxpc3RCdWlsZGVyLCB0eXBlIEFjdGlvbkxpc3RBY3Rpb25JbnB1dCB9IGZyb20gJy4vamEuYWN0aW9uLWxpc3QuanMnXG5pbXBvcnQgeyBKYUNsZWFyUXVldWVCdWlsZGVyLCB0eXBlIENsZWFyUXVldWVBY3Rpb25JbnB1dCB9IGZyb20gJy4vamEuY2xlYXItcXVldWUuanMnXG5pbXBvcnQgeyBKYUNvbmZpcm1CdWlsZGVyLCB0eXBlIENvbmZpcm1BY3Rpb25JbnB1dCB9IGZyb20gJy4vamEuY29uZmlybS5qcydcbmltcG9ydCB7XG4gIEphRGVsZXRlUXVldWVDb21tYW5kQnVpbGRlcixcbiAgdHlwZSBEZWxldGVRdWV1ZUNvbW1hbmRBY3Rpb25JbnB1dCxcbn0gZnJvbSAnLi9qYS5kZWxldGUtcXVldWUtY29tbWFuZC5qcydcbmltcG9ydCB7XG4gIEphRGVsZXRlU3luY1Njb3BlQnVpbGRlcixcbiAgdHlwZSBEZWxldGVTeW5jU2NvcGVBY3Rpb25JbnB1dCxcbn0gZnJvbSAnLi9qYS5kZWxldGUtc3luYy1zY29wZS5qcydcbmltcG9ydCB7XG4gIEphRGVsZXRlU3luY1N0YXR1c0J1aWxkZXIsXG4gIHR5cGUgRGVsZXRlU3luY1N0YXR1c0FjdGlvbklucHV0LFxufSBmcm9tICcuL2phLmRlbGV0ZS1zeW5jLXN0YXR1cy5qcydcbmltcG9ydCB7IEphRXhlY3V0ZUFjdGlvbkJ1aWxkZXIsIHR5cGUgRXhlY3V0ZUFjdGlvbkFjdGlvbklucHV0IH0gZnJvbSAnLi9qYS5leGVjdXRlLWFjdGlvbi5qcydcbmltcG9ydCB7IEphRmluZFJlcGxhY2VCdWlsZGVyLCB0eXBlIEZpbmRSZXBsYWNlQWN0aW9uSW5wdXQgfSBmcm9tICcuL2phLmZpbmQtcmVwbGFjZS5qcydcbmltcG9ydCB7IEphRXhlY3V0ZUVudGl0aWVzQnVpbGRlciwgdHlwZSBFeGVjdXRlRW50aXRpZXNJbnB1dCB9IGZyb20gJy4vamEuZXhlY3V0ZS1lbnRpdGllcy5qcydcbmltcG9ydCB7IEphRXhlY3V0ZUVudGl0eUJ1aWxkZXIsIHR5cGUgRXhlY3V0ZUVudGl0eUlucHV0IH0gZnJvbSAnLi9qYS5leGVjdXRlLWVudGl0eS5qcydcbmltcG9ydCB7IEphRXhlY3V0ZVNxbEJ1aWxkZXIsIHR5cGUgRXhlY3V0ZVNxbEFjdGlvbklucHV0IH0gZnJvbSAnLi9qYS5leGVjdXRlLXNxbC5qcydcbmltcG9ydCB7IEphR2VuZXJhdGVGaWxlQnVpbGRlciwgdHlwZSBHZW5lcmF0ZUZpbGVBY3Rpb25JbnB1dCB9IGZyb20gJy4vamEuZ2VuZXJhdGUtZmlsZS5qcydcbmltcG9ydCB7IEphR2VuZXJhdGVQZGZCdWlsZGVyIH0gZnJvbSAnLi9qYS5nZW5lcmF0ZS1wZGYuanMnXG5pbXBvcnQgeyBKYUdvQmFja0J1aWxkZXIsIHR5cGUgR29CYWNrQWN0aW9uSW5wdXQgfSBmcm9tICcuL2phLmdvLWJhY2suanMnXG5pbXBvcnQgeyBKYUdvVG9CdWlsZGVyLCB0eXBlIEdvVG9BY3Rpb25JbnB1dCB9IGZyb20gJy4vamEuZ28tdG8uanMnXG5pbXBvcnQgeyBKYUluZm9Nb2RhbEJ1aWxkZXIsIHR5cGUgSW5mb01vZGFsQWN0aW9uSW5wdXQgfSBmcm9tICcuL2phLmluZm8tbW9kYWwuanMnXG5pbXBvcnQge1xuICBKYU9wZW5BcHBTZXR0aW5nc0J1aWxkZXIsXG4gIHR5cGUgT3BlbkFwcFNldHRpbmdzQWN0aW9uSW5wdXQsXG59IGZyb20gJy4vamEub3Blbi1hcHAtc2V0dGluZ3MuanMnXG5pbXBvcnQgeyBKYU9wZW5NYXBCdWlsZGVyLCB0eXBlIE9wZW5NYXBBY3Rpb25JbnB1dCB9IGZyb20gJy4vamEub3Blbi1tYXAuanMnXG5pbXBvcnQge1xuICBKYU9wZW5NZWRpYVBpY2tlckJ1aWxkZXIsXG4gIHR5cGUgT3Blbk1lZGlhUGlja2VyQWN0aW9uSW5wdXQsXG59IGZyb20gJy4vamEub3Blbi1tZWRpYS1waWNrZXIuanMnXG5pbXBvcnQgeyBKYU9wZW5TY2FubmVyQnVpbGRlciwgdHlwZSBPcGVuU2Nhbm5lckFjdGlvbklucHV0IH0gZnJvbSAnLi9qYS5vcGVuLXNjYW5uZXIuanMnXG5pbXBvcnQgeyBKYU9wZW5VcmxCdWlsZGVyLCB0eXBlIE9wZW5VcmxBY3Rpb25JbnB1dCB9IGZyb20gJy4vamEub3Blbi11cmwuanMnXG5pbXBvcnQgeyBKYVByaW50QnVpbGRlciwgdHlwZSBQcmludEFjdGlvbklucHV0IH0gZnJvbSAnLi9qYS5wcmludC5qcydcbmltcG9ydCB7XG4gIEphUmVzZXRBcHBsaWNhdGlvblN0YXRlQnVpbGRlcixcbiAgdHlwZSBSZXNldEFwcGxpY2F0aW9uU3RhdGVBY3Rpb25JbnB1dCxcbn0gZnJvbSAnLi9qYS5yZXNldC1hcHBsaWNhdGlvbi1zdGF0ZS5qcydcbmltcG9ydCB7XG4gIEphUmVzZXRDb21wb25lbnRTdGF0ZUJ1aWxkZXIsXG4gIHR5cGUgUmVzZXRDb21wb25lbnRTdGF0ZUFjdGlvbklucHV0LFxufSBmcm9tICcuL2phLnJlc2V0LWNvbXBvbmVudC1zdGF0ZS5qcydcbmltcG9ydCB7XG4gIEphUmVzZXRTY3JlZW5TdGF0ZUJ1aWxkZXIsXG4gIHR5cGUgUmVzZXRTY3JlZW5TdGF0ZUFjdGlvbklucHV0LFxufSBmcm9tICcuL2phLnJlc2V0LXNjcmVlbi1zdGF0ZS5qcydcbmltcG9ydCB7IEphUmVzZXRTdGF0ZUJ1aWxkZXIsIHR5cGUgUmVzZXRTdGF0ZUFjdGlvbklucHV0IH0gZnJvbSAnLi9qYS5yZXNldC1zdGF0ZS5qcydcbmltcG9ydCB7XG4gIEphUmV0cnlRdWV1ZUNvbW1hbmRCdWlsZGVyLFxuICB0eXBlIFJldHJ5UXVldWVDb21tYW5kQWN0aW9uSW5wdXQsXG59IGZyb20gJy4vamEucmV0cnktcXVldWUtY29tbWFuZC5qcydcbmltcG9ydCB7IEphU2V0QWN0aXZlVGFiQnVpbGRlciwgdHlwZSBTZXRBY3RpdmVUYWJBY3Rpb25JbnB1dCB9IGZyb20gJy4vamEuc2V0LWFjdGl2ZS10YWIuanMnXG5pbXBvcnQge1xuICBKYVNldEFwcGxpY2F0aW9uU3RhdGVCdWlsZGVyLFxuICB0eXBlIFNldEFwcGxpY2F0aW9uU3RhdGVBY3Rpb25JbnB1dCxcbn0gZnJvbSAnLi9qYS5zZXQtYXBwbGljYXRpb24tc3RhdGUuanMnXG5pbXBvcnQgeyBKYVNldFNjcmVlblN0YXRlQnVpbGRlciwgdHlwZSBTZXRTY3JlZW5TdGF0ZUFjdGlvbklucHV0IH0gZnJvbSAnLi9qYS5zZXQtc2NyZWVuLXN0YXRlLmpzJ1xuaW1wb3J0IHsgSmFTaGFyZUJ1aWxkZXIsIHR5cGUgU2hhcmVBY3Rpb25JbnB1dCB9IGZyb20gJy4vamEuc2hhcmUuanMnXG5pbXBvcnQgeyBKYVNob3dBbGVydEJ1aWxkZXIsIHR5cGUgU2hvd0FsZXJ0QWN0aW9uSW5wdXQgfSBmcm9tICcuL2phLnNob3ctYWxlcnQuanMnXG5pbXBvcnQge1xuICBKYVN0YXJ0TG9jYXRpb25TaGFyaW5nQnVpbGRlcixcbiAgdHlwZSBTdGFydExvY2F0aW9uU2hhcmluZ0FjdGlvbklucHV0LFxufSBmcm9tICcuL2phLnN0YXJ0LWxvY2F0aW9uLXNoYXJpbmcuanMnXG5pbXBvcnQgeyBKYVN0YXJ0U3luY1Njb3BlQnVpbGRlciwgdHlwZSBTdGFydFN5bmNTY29wZUFjdGlvbklucHV0IH0gZnJvbSAnLi9qYS5zdGFydC1zeW5jLXNjb3BlLmpzJ1xuaW1wb3J0IHtcbiAgSmFTdG9wTG9jYXRpb25TaGFyaW5nQnVpbGRlcixcbiAgdHlwZSBTdG9wTG9jYXRpb25TaGFyaW5nQWN0aW9uSW5wdXQsXG59IGZyb20gJy4vamEuc3RvcC1sb2NhdGlvbi1zaGFyaW5nLmpzJ1xuaW1wb3J0IHsgSmFTdWJtaXRGb3JtQnVpbGRlciwgdHlwZSBTdWJtaXRGb3JtQWN0aW9uSW5wdXQgfSBmcm9tICcuL2phLnN1Ym1pdC1mb3JtLmpzJ1xuaW1wb3J0IHsgSmFTeW5jRW50aXRpZXNCdWlsZGVyLCB0eXBlIFN5bmNFbnRpdGllc0FjdGlvbklucHV0IH0gZnJvbSAnLi9qYS5zeW5jLWVudGl0aWVzLmpzJ1xuaW1wb3J0IHsgSmFVcGRhdGVQcm9maWxlQnVpbGRlciwgdHlwZSBVcGRhdGVQcm9maWxlQWN0aW9uSW5wdXQgfSBmcm9tICcuL2phLnVwZGF0ZS1wcm9maWxlLmpzJ1xuXG4vKipcbiAqIGBKYUluQmFja2dyb3VuZGAgaXMgYSB0eXBlIHRoYXQgcmVwcmVzZW50cyBhbGwgcG9zc2libGUgYWN0aW9ucyB0aGF0IGNhbiBiZSBleGVjdXRlZCBpbiB0aGUgYmFja2dyb3VuZFxuICogQGFsaWFzIEtlZ0FjdGlvbkluQmFja2dyb3VuZFxuICogQGFsaWFzIGtlZy1hY3Rpb24taW4tYmFja2dyb3VuZFxuICogQHNlZSAjL2RlZmluaXRpb25zL2tlZy1hY3Rpb24taW4tYmFja2dyb3VuZFxuICovXG4vLyBEbyBOT1QgYXJiaXRyYXJpbHkgYWRkIGNvbXBvbmVudHMgaGVyZSwgdGhpcyBpcyBhIHNwZWNpZmljLCBkaXNjcmV0ZSBsaXN0XG5leHBvcnQgdHlwZSBKYUluQmFja2dyb3VuZCA9IEphQmFzZVxuXG4vKipcbiAqIGBBY3Rpb25CdWlsZGVyYCBpcyBhIHVuaWZpZWQgdHlwZSByZXByZXNlbnRpbmcgYWxsIGFjdGlvbiBidWlsZGVycy5cbiAqXG4gKiBBZnRlciBQUiAjMTE5LCBhY3Rpb24gYnVpbGRlcnMgd2VyZSB1bmlmaWVkIC0gc2luZ2xlIGJ1aWxkZXIgY2xhc3NlcyAoZS5nLiwgSmFHb1RvQnVpbGRlcilcbiAqIGhhbmRsZSBib3RoIGJ1dHRvbiBhbmQgYmFja2dyb3VuZCBjb250ZXh0cyB2aWEgZmFjdG9yeSB0eXBlIGNvbnN0cmFpbnRzLlxuICpcbiAqIEBzZWUgY3JlYXRlQWN0aW9uSW5CYWNrZ3JvdW5kQnVpbGRlcnNGYWN0b3J5IGZvciBiYWNrZ3JvdW5kIGNvbnRleHRcbiAqIEBzZWUgY3JlYXRlQWN0aW9uT25CdXR0b25CdWlsZGVyc0ZhY3RvcnkgZm9yIGJ1dHRvbiBjb250ZXh0XG4gKiBAYWxpYXMgSmFJbkJhY2tncm91bmRCdWlsZGVycyAoZGVwcmVjYXRlZCBuYW1lKVxuICogQGFsaWFzIEtlZ0FjdGlvbkluQmFja2dyb3VuZFxuICogQGFsaWFzIGtlZy1hY3Rpb24taW4tYmFja2dyb3VuZFxuICogQHNlZSAjL2RlZmluaXRpb25zL2tlZy1hY3Rpb24taW4tYmFja2dyb3VuZFxuICovXG4vLyBEbyBOT1QgYXJiaXRyYXJpbHkgYWRkIGNvbXBvbmVudHMgaGVyZSwgdGhpcyBpcyBhIHNwZWNpZmljLCBkaXNjcmV0ZSBsaXN0XG5leHBvcnQgdHlwZSBBY3Rpb25CdWlsZGVyID0gQWN0aW9uQmFzZUJ1aWxkZXI8QWN0aW9uQmFzZUlucHV0PlxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgQWN0aW9uQnVpbGRlciBpbnN0ZWFkLiBLZXB0IGZvciBiYWNrd2FyZCBjb21wYXRpYmlsaXR5LlxuICovXG5leHBvcnQgdHlwZSBKYUluQmFja2dyb3VuZEJ1aWxkZXJzID0gQWN0aW9uQnVpbGRlclxuXG4vKipcbiAqIEBkZXByZWNhdGVkXG4gKi9cbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBKYUluQmFja2dyb3VuZEZhY3Rvcnkge1xuICBwcml2YXRlIHJlYWRvbmx5IF9iaW5kZXI6IChhY3Rpb246IEFjdGlvbkJ1aWxkZXIpID0+IHZvaWRcblxuICBjb25zdHJ1Y3RvcihiaW5kZXI6IChhY3Rpb246IEFjdGlvbkJ1aWxkZXIpID0+IHZvaWQpIHtcbiAgICB0aGlzLl9iaW5kZXIgPSBiaW5kZXJcbiAgfVxuXG4gIGdvdG8ob3B0aW9uczogR29Ub0FjdGlvbklucHV0KTogSmFHb1RvQnVpbGRlciB7XG4gICAgY29uc3QgYWN0aW9uID0gbmV3IEphR29Ub0J1aWxkZXIob3B0aW9ucylcbiAgICB0aGlzLl9iaW5kZXIoYWN0aW9uKVxuICAgIHJldHVybiBhY3Rpb25cbiAgfVxuXG4gIC8qKlxuICAgKiBDcmVhdGUgYSBnby1iYWNrIGFjdGlvbiBidWlsZGVyXG4gICAqIEBwYXJhbSBvcHRpb25zIC0gQ29uZmlndXJhdGlvbiBmb3IgdGhlIGdvLWJhY2sgYWN0aW9uIChvcHRpb25hbClcbiAgICovXG4gIGdvQmFjayhvcHRpb25zOiBHb0JhY2tBY3Rpb25JbnB1dCA9IHt9KTogSmFHb0JhY2tCdWlsZGVyIHtcbiAgICBjb25zdCBhY3Rpb24gPSBuZXcgSmFHb0JhY2tCdWlsZGVyKG9wdGlvbnMpXG4gICAgdGhpcy5fYmluZGVyKGFjdGlvbilcbiAgICByZXR1cm4gYWN0aW9uXG4gIH1cblxuICAvKipcbiAgICogQ3JlYXRlIGFuIGFjdGlvbi1saXN0IGJ1aWxkZXIuXG4gICAqIC0gT21pdCBgY29uY3VycmVuY3lgIHRvIGtlZXAgWUFNTCBkZWZhdWx0IGJlaGF2aW9yIChzZXF1ZW50aWFsLCB3aXRob3V0IGBpc1NlcXVlbnRpYWxgKS5cbiAgICogLSBVc2UgYGNvbmN1cnJlbmN5OiAnc2VxdWVudGlhbCdgIHRvIGVtaXQgYGlzU2VxdWVudGlhbDogdHJ1ZWAuXG4gICAqIC0gVXNlIGBjb25jdXJyZW5jeTogJ3BhcmFsbGVsJ2AgdG8gZW1pdCBgaXNTZXF1ZW50aWFsOiBmYWxzZWAuXG4gICAqL1xuICBsaXN0KG9wdGlvbnM/OiBBY3Rpb25MaXN0QWN0aW9uSW5wdXQpOiBKYUFjdGlvbkxpc3RCdWlsZGVyIHtcbiAgICBjb25zdCBhY3Rpb24gPSBuZXcgSmFBY3Rpb25MaXN0QnVpbGRlcih7IC4uLm9wdGlvbnMgfSlcbiAgICB0aGlzLl9iaW5kZXIoYWN0aW9uKVxuICAgIHJldHVybiBhY3Rpb25cbiAgfVxuXG4gIC8qKlxuICAgKiBDcmVhdGUgYSBzZXQtamlnLXN0YXRlIGFjdGlvbiBidWlsZGVyXG4gICAqIEBhbGlhcyBzZXRKaWdTdGF0ZVxuICAgKiBAcGFyYW0gb3B0aW9ucyAtIENvbmZpZ3VyYXRpb24gZm9yIHRoZSBzZXQtamlnLXN0YXRlIGFjdGlvblxuICAgKi9cbiAgc2V0U2NyZWVuU3RhdGUob3B0aW9uczogU2V0U2NyZWVuU3RhdGVBY3Rpb25JbnB1dCk6IEphU2V0U2NyZWVuU3RhdGVCdWlsZGVyIHtcbiAgICBjb25zdCBhY3Rpb24gPSBuZXcgSmFTZXRTY3JlZW5TdGF0ZUJ1aWxkZXIob3B0aW9ucylcbiAgICB0aGlzLl9iaW5kZXIoYWN0aW9uKVxuICAgIHJldHVybiBhY3Rpb25cbiAgfVxuXG4gIC8qKlxuICAgKiBDcmVhdGUgYW4gb3Blbi1tZWRpYS1waWNrZXIgYWN0aW9uIGJ1aWxkZXJcbiAgICogQHBhcmFtIG9wdGlvbnMgLSBDb25maWd1cmF0aW9uIGZvciBtZWRpYSBwaWNrZXIgYWN0aW9uXG4gICAqL1xuICBvcGVuTWVkaWFQaWNrZXIob3B0aW9uczogT3Blbk1lZGlhUGlja2VyQWN0aW9uSW5wdXQpOiBKYU9wZW5NZWRpYVBpY2tlckJ1aWxkZXIge1xuICAgIGNvbnN0IGFjdGlvbiA9IG5ldyBKYU9wZW5NZWRpYVBpY2tlckJ1aWxkZXIob3B0aW9ucylcbiAgICB0aGlzLl9iaW5kZXIoYWN0aW9uKVxuICAgIHJldHVybiBhY3Rpb25cbiAgfVxuXG4gIC8qKlxuICAgKiBDcmVhdGUgYW4gb3Blbi11cmwgYWN0aW9uIGJ1aWxkZXJcbiAgICogQHBhcmFtIG9wdGlvbnMgLSBPcGVuIFVSTCBhY3Rpb24gY29uZmlndXJhdGlvblxuICAgKi9cbiAgb3BlblVybChvcHRpb25zOiBPcGVuVXJsQWN0aW9uSW5wdXQpOiBKYU9wZW5VcmxCdWlsZGVyIHtcbiAgICBjb25zdCBhY3Rpb24gPSBuZXcgSmFPcGVuVXJsQnVpbGRlcihvcHRpb25zKVxuICAgIHRoaXMuX2JpbmRlcihhY3Rpb24pXG4gICAgcmV0dXJuIGFjdGlvblxuICB9XG5cbiAgLyoqXG4gICAqIENyZWF0ZSBhIHJlc2V0LXN0YXRlIGFjdGlvbiBidWlsZGVyXG4gICAqIEBhbGlhcyByZXNldFN0YXRlXG4gICAqIEBwYXJhbSBvcHRpb25zXG4gICAqL1xuICByZXNldFN0YXRlKG9wdGlvbnM6IFJlc2V0U3RhdGVBY3Rpb25JbnB1dCk6IEphUmVzZXRTdGF0ZUJ1aWxkZXIge1xuICAgIGNvbnN0IGFjdGlvbiA9IG5ldyBKYVJlc2V0U3RhdGVCdWlsZGVyKG9wdGlvbnMpXG4gICAgdGhpcy5fYmluZGVyKGFjdGlvbilcbiAgICByZXR1cm4gYWN0aW9uXG4gIH1cblxuICAvKipcbiAgICogQ3JlYXRlIGFuIGluZm8tbW9kYWwgYWN0aW9uIGJ1aWxkZXJcbiAgICogQHBhcmFtIG9wdGlvbnMgLSBDb25maWd1cmF0aW9uIGZvciB0aGUgaW5mby1tb2RhbCBhY3Rpb24gKG9wdGlvbmFsKVxuICAgKi9cbiAgaW5mb01vZGFsKG9wdGlvbnM6IEluZm9Nb2RhbEFjdGlvbklucHV0ID0ge30pOiBKYUluZm9Nb2RhbEJ1aWxkZXIge1xuICAgIGNvbnN0IGFjdGlvbiA9IG5ldyBKYUluZm9Nb2RhbEJ1aWxkZXIob3B0aW9ucylcbiAgICB0aGlzLl9iaW5kZXIoYWN0aW9uKVxuICAgIHJldHVybiBhY3Rpb25cbiAgfVxuXG4gIC8qKlxuICAgKiBDcmVhdGUgYW4gZXhlY3V0ZS1lbnRpdHkgYWN0aW9uIGJ1aWxkZXJcbiAgICovXG4gIGV4ZWN1dGVFbnRpdHkob3B0aW9uczogRXhlY3V0ZUVudGl0eUlucHV0ID0ge30pOiBKYUV4ZWN1dGVFbnRpdHlCdWlsZGVyIHtcbiAgICBjb25zdCBhY3Rpb24gPSBuZXcgSmFFeGVjdXRlRW50aXR5QnVpbGRlcihvcHRpb25zKVxuICAgIHRoaXMuX2JpbmRlcihhY3Rpb24pXG4gICAgcmV0dXJuIGFjdGlvblxuICB9XG5cbiAgLyoqXG4gICAqIENyZWF0ZSBhIHN5bmMtZW50aXRpZXMgYWN0aW9uIGJ1aWxkZXJcbiAgICogQHBhcmFtIG9wdGlvbnNcbiAgICovXG4gIHN5bmNFbnRpdGllcyhvcHRpb25zOiBTeW5jRW50aXRpZXNBY3Rpb25JbnB1dCk6IEphU3luY0VudGl0aWVzQnVpbGRlciB7XG4gICAgY29uc3QgYWN0aW9uID0gbmV3IEphU3luY0VudGl0aWVzQnVpbGRlcihvcHRpb25zKVxuICAgIHRoaXMuX2JpbmRlcihhY3Rpb24pXG4gICAgcmV0dXJuIGFjdGlvblxuICB9XG5cbiAgLyoqXG4gICAqIENyZWF0ZSBhIGNvbmZpcm0gYWN0aW9uIGJ1aWxkZXJcbiAgICogQHBhcmFtIG9wdGlvbnMgLSBDb25maWd1cmF0aW9uIGZvciBjb25maXJtIGFjdGlvblxuICAgKi9cbiAgY29uZmlybShvcHRpb25zOiBDb25maXJtQWN0aW9uSW5wdXQpOiBKYUNvbmZpcm1CdWlsZGVyIHtcbiAgICBjb25zdCBhY3Rpb24gPSBuZXcgSmFDb25maXJtQnVpbGRlcihvcHRpb25zKVxuICAgIHRoaXMuX2JpbmRlcihhY3Rpb24pXG4gICAgcmV0dXJuIGFjdGlvblxuICB9XG5cbiAgLyoqXG4gICAqIENyZWF0ZSBhIHJlc2V0LWNvbXBvbmVudC1zdGF0ZSBhY3Rpb24gYnVpbGRlclxuICAgKiBAcGFyYW0gb3B0aW9ucyAtIENvbmZpZ3VyYXRpb24gZm9yIHJlc2V0LWNvbXBvbmVudC1zdGF0ZSBhY3Rpb24gKG9wdGlvbmFsKVxuICAgKi9cbiAgcmVzZXRDb21wb25lbnRTdGF0ZShvcHRpb25zOiBSZXNldENvbXBvbmVudFN0YXRlQWN0aW9uSW5wdXQgPSB7fSk6IEphUmVzZXRDb21wb25lbnRTdGF0ZUJ1aWxkZXIge1xuICAgIGNvbnN0IGFjdGlvbiA9IG5ldyBKYVJlc2V0Q29tcG9uZW50U3RhdGVCdWlsZGVyKG9wdGlvbnMpXG4gICAgdGhpcy5fYmluZGVyKGFjdGlvbilcbiAgICByZXR1cm4gYWN0aW9uXG4gIH1cblxuICAvKipcbiAgICogQ3JlYXRlIGEgcmVzZXQtamlnLXN0YXRlIGFjdGlvbiBidWlsZGVyXG4gICAqL1xuICByZXNldFNjcmVlblN0YXRlKG9wdGlvbnM6IFJlc2V0U2NyZWVuU3RhdGVBY3Rpb25JbnB1dCk6IEphUmVzZXRTY3JlZW5TdGF0ZUJ1aWxkZXIge1xuICAgIGNvbnN0IGFjdGlvbiA9IG5ldyBKYVJlc2V0U2NyZWVuU3RhdGVCdWlsZGVyKG9wdGlvbnMpXG4gICAgdGhpcy5fYmluZGVyKGFjdGlvbilcbiAgICByZXR1cm4gYWN0aW9uXG4gIH1cblxuICAvKipcbiAgICogQ3JlYXRlIGEgcmVzZXQtc29sdXRpb24tc3RhdGUgYWN0aW9uIGJ1aWxkZXJcbiAgICogQGFsaWFzIHJlc2V0U29sdXRpb25TdGF0ZVxuICAgKiBAcGFyYW0gb3B0aW9ucyAtIFJlc2V0IGFwcGxpY2F0aW9uIHN0YXRlIGFjdGlvbiBjb25maWd1cmF0aW9uXG4gICAqL1xuICByZXNldEFwcGxpY2F0aW9uU3RhdGUob3B0aW9uczogUmVzZXRBcHBsaWNhdGlvblN0YXRlQWN0aW9uSW5wdXQpOiBKYVJlc2V0QXBwbGljYXRpb25TdGF0ZUJ1aWxkZXIge1xuICAgIGNvbnN0IGFjdGlvbiA9IG5ldyBKYVJlc2V0QXBwbGljYXRpb25TdGF0ZUJ1aWxkZXIob3B0aW9ucylcbiAgICB0aGlzLl9iaW5kZXIoYWN0aW9uKVxuICAgIHJldHVybiBhY3Rpb25cbiAgfVxuXG4gIC8qKlxuICAgKiBDcmVhdGUgYSBzZXQtc29sdXRpb24tc3RhdGUgYWN0aW9uIGJ1aWxkZXJcbiAgICogQGFsaWFzIHNldFNvbHV0aW9uU3RhdGVcbiAgICogQHBhcmFtIG9wdGlvbnMgLSBTZXQgYXBwbGljYXRpb24gc3RhdGUgYWN0aW9uIGNvbmZpZ3VyYXRpb25cbiAgICovXG4gIHNldEFwcGxpY2F0aW9uU3RhdGUob3B0aW9uczogU2V0QXBwbGljYXRpb25TdGF0ZUFjdGlvbklucHV0KTogSmFTZXRBcHBsaWNhdGlvblN0YXRlQnVpbGRlciB7XG4gICAgY29uc3QgYWN0aW9uID0gbmV3IEphU2V0QXBwbGljYXRpb25TdGF0ZUJ1aWxkZXIob3B0aW9ucylcbiAgICB0aGlzLl9iaW5kZXIoYWN0aW9uKVxuICAgIHJldHVybiBhY3Rpb25cbiAgfVxuXG4gIC8qKlxuICAgKiBDcmVhdGUgYSBzdWJtaXQtZm9ybSBhY3Rpb24gYnVpbGRlclxuICAgKiBAcGFyYW0gb3B0aW9ucyAtIFN1Ym1pdCBmb3JtIGNvbmZpZ3VyYXRpb24gb3B0aW9uc1xuICAgKi9cbiAgc3VibWl0Rm9ybShvcHRpb25zOiBTdWJtaXRGb3JtQWN0aW9uSW5wdXQpOiBKYVN1Ym1pdEZvcm1CdWlsZGVyIHtcbiAgICBjb25zdCBhY3Rpb24gPSBuZXcgSmFTdWJtaXRGb3JtQnVpbGRlcihvcHRpb25zKVxuICAgIHRoaXMuX2JpbmRlcihhY3Rpb24pXG4gICAgcmV0dXJuIGFjdGlvblxuICB9XG5cbiAgLyoqXG4gICAqIENyZWF0ZSBhbiBleGVjdXRlLXNxbCBhY3Rpb24gYnVpbGRlclxuICAgKiBAcGFyYW0gb3B0aW9ucyAtIENvbmZpZ3VyYXRpb24gZm9yIGV4ZWN1dGUtc3FsIGFjdGlvblxuICAgKi9cbiAgZXhlY3V0ZVNxbChvcHRpb25zOiBFeGVjdXRlU3FsQWN0aW9uSW5wdXQpOiBKYUV4ZWN1dGVTcWxCdWlsZGVyIHtcbiAgICBjb25zdCBhY3Rpb24gPSBuZXcgSmFFeGVjdXRlU3FsQnVpbGRlcihvcHRpb25zKVxuICAgIHRoaXMuX2JpbmRlcihhY3Rpb24pXG4gICAgcmV0dXJuIGFjdGlvblxuICB9XG5cbiAgLyoqXG4gICAqIENyZWF0ZSBhIHNldC1hY3RpdmUtdGFiIGFjdGlvbiBidWlsZGVyXG4gICAqIEBwYXJhbSBvcHRpb25zIC0gQ29uZmlndXJhdGlvbiBmb3IgdGhlIHNldC1hY3RpdmUtdGFiIGFjdGlvblxuICAgKi9cbiAgc2V0QWN0aXZlVGFiKG9wdGlvbnM6IFNldEFjdGl2ZVRhYkFjdGlvbklucHV0KTogSmFTZXRBY3RpdmVUYWJCdWlsZGVyIHtcbiAgICBjb25zdCBhY3Rpb24gPSBuZXcgSmFTZXRBY3RpdmVUYWJCdWlsZGVyKG9wdGlvbnMpXG4gICAgdGhpcy5fYmluZGVyKGFjdGlvbilcbiAgICByZXR1cm4gYWN0aW9uXG4gIH1cblxuICAvKipcbiAgICogQ3JlYXRlIGEgY2xlYXItcXVldWUgYWN0aW9uIGJ1aWxkZXJcbiAgICogQHBhcmFtIG9wdGlvbnMgLSBDb25maWd1cmF0aW9uIGZvciBjbGVhci1xdWV1ZSBhY3Rpb25cbiAgICovXG4gIGNsZWFyUXVldWVDb21tYW5kKG9wdGlvbnM6IENsZWFyUXVldWVBY3Rpb25JbnB1dCk6IEphQ2xlYXJRdWV1ZUJ1aWxkZXIge1xuICAgIGNvbnN0IGFjdGlvbiA9IG5ldyBKYUNsZWFyUXVldWVCdWlsZGVyKG9wdGlvbnMpXG4gICAgdGhpcy5fYmluZGVyKGFjdGlvbilcbiAgICByZXR1cm4gYWN0aW9uXG4gIH1cblxuICAvKipcbiAgICogQ3JlYXRlIGEgZGVsZXRlLXF1ZXVlLWNvbW1hbmQgYWN0aW9uIGJ1aWxkZXJcbiAgICogQHBhcmFtIG9wdGlvbnMgLSBDb25maWd1cmF0aW9uIGZvciBkZWxldGUtcXVldWUtY29tbWFuZCBhY3Rpb25cbiAgICovXG4gIGRlbGV0ZVF1ZXVlQ29tbWFuZChvcHRpb25zOiBEZWxldGVRdWV1ZUNvbW1hbmRBY3Rpb25JbnB1dCk6IEphRGVsZXRlUXVldWVDb21tYW5kQnVpbGRlciB7XG4gICAgY29uc3QgYWN0aW9uID0gbmV3IEphRGVsZXRlUXVldWVDb21tYW5kQnVpbGRlcihvcHRpb25zKVxuICAgIHRoaXMuX2JpbmRlcihhY3Rpb24pXG4gICAgcmV0dXJuIGFjdGlvblxuICB9XG5cbiAgLyoqXG4gICAqIENyZWF0ZSBhIHJldHJ5LXF1ZXVlLWNvbW1hbmQgYWN0aW9uIGJ1aWxkZXJcbiAgICogQHBhcmFtIG9wdGlvbnMgLSBDb25maWd1cmF0aW9uIGZvciByZXRyeS1xdWV1ZS1jb21tYW5kIGFjdGlvblxuICAgKi9cbiAgcmV0cnlRdWV1ZUNvbW1hbmQob3B0aW9uczogUmV0cnlRdWV1ZUNvbW1hbmRBY3Rpb25JbnB1dCk6IEphUmV0cnlRdWV1ZUNvbW1hbmRCdWlsZGVyIHtcbiAgICBjb25zdCBhY3Rpb24gPSBuZXcgSmFSZXRyeVF1ZXVlQ29tbWFuZEJ1aWxkZXIob3B0aW9ucylcbiAgICB0aGlzLl9iaW5kZXIoYWN0aW9uKVxuICAgIHJldHVybiBhY3Rpb25cbiAgfVxuXG4gIC8qKlxuICAgKiBDcmVhdGUgYSBkZWxldGUtc3luYy1zY29wZSBhY3Rpb24gYnVpbGRlclxuICAgKiBAcGFyYW0gb3B0aW9ucyAtIENvbmZpZ3VyYXRpb24gZm9yIHRoZSBkZWxldGUtc3luYy1zY29wZSBhY3Rpb25cbiAgICovXG4gIGRlbGV0ZVN5bmNTY29wZShvcHRpb25zOiBEZWxldGVTeW5jU2NvcGVBY3Rpb25JbnB1dCk6IEphRGVsZXRlU3luY1Njb3BlQnVpbGRlciB7XG4gICAgY29uc3QgYWN0aW9uID0gbmV3IEphRGVsZXRlU3luY1Njb3BlQnVpbGRlcihvcHRpb25zKVxuICAgIHRoaXMuX2JpbmRlcihhY3Rpb24pXG4gICAgcmV0dXJuIGFjdGlvblxuICB9XG5cbiAgLyoqXG4gICAqIENyZWF0ZSBhIGRlbGV0ZS1zeW5jLXN0YXR1cyBhY3Rpb24gYnVpbGRlclxuICAgKiBAcGFyYW0gb3B0aW9ucyAtIENvbmZpZ3VyYXRpb24gZm9yIHRoZSBkZWxldGUtc3luYy1zdGF0dXMgYWN0aW9uXG4gICAqL1xuICBkZWxldGVTeW5jU3RhdHVzKG9wdGlvbnM6IERlbGV0ZVN5bmNTdGF0dXNBY3Rpb25JbnB1dCk6IEphRGVsZXRlU3luY1N0YXR1c0J1aWxkZXIge1xuICAgIGNvbnN0IGFjdGlvbiA9IG5ldyBKYURlbGV0ZVN5bmNTdGF0dXNCdWlsZGVyKG9wdGlvbnMpXG4gICAgdGhpcy5fYmluZGVyKGFjdGlvbilcbiAgICByZXR1cm4gYWN0aW9uXG4gIH1cblxuICAvKipcbiAgICogQ3JlYXRlIGEgc3RhcnQtc3luYy1zY29wZSBhY3Rpb24gYnVpbGRlclxuICAgKiBAcGFyYW0gb3B0aW9ucyAtIENvbmZpZ3VyYXRpb24gb3B0aW9ucyBmb3IgdGhlIGFjdGlvblxuICAgKi9cbiAgc3RhcnRTeW5jU2NvcGUob3B0aW9uczogU3RhcnRTeW5jU2NvcGVBY3Rpb25JbnB1dCk6IEphU3RhcnRTeW5jU2NvcGVCdWlsZGVyIHtcbiAgICBjb25zdCBhY3Rpb24gPSBuZXcgSmFTdGFydFN5bmNTY29wZUJ1aWxkZXIob3B0aW9ucylcbiAgICB0aGlzLl9iaW5kZXIoYWN0aW9uKVxuICAgIHJldHVybiBhY3Rpb25cbiAgfVxuXG4gIC8qKlxuICAgKiBDcmVhdGUgYW4gZXhlY3V0ZS1hY3Rpb24gYWN0aW9uIGJ1aWxkZXJcbiAgICogQHBhcmFtIG9wdGlvbnMgLSBDb25maWd1cmF0aW9uIG9wdGlvbnMgZm9yIGV4ZWN1dGUtYWN0aW9uXG4gICAqL1xuICBleGVjdXRlQWN0aW9uKG9wdGlvbnM6IEV4ZWN1dGVBY3Rpb25BY3Rpb25JbnB1dCk6IEphRXhlY3V0ZUFjdGlvbkJ1aWxkZXIge1xuICAgIGNvbnN0IGFjdGlvbiA9IG5ldyBKYUV4ZWN1dGVBY3Rpb25CdWlsZGVyKG9wdGlvbnMpXG4gICAgdGhpcy5fYmluZGVyKGFjdGlvbilcbiAgICByZXR1cm4gYWN0aW9uXG4gIH1cblxuICAvKipcbiAgICogQ3JlYXRlIGFuIGV4ZWN1dGUtZW50aXRpZXMgYWN0aW9uIGJ1aWxkZXJcbiAgICogQHBhcmFtIG9wdGlvbnMgLSBDb25maWd1cmF0aW9uIGZvciBleGVjdXRlLWVudGl0aWVzIGFjdGlvblxuICAgKi9cbiAgZXhlY3V0ZUVudGl0aWVzKG9wdGlvbnM6IEV4ZWN1dGVFbnRpdGllc0lucHV0KTogSmFFeGVjdXRlRW50aXRpZXNCdWlsZGVyIHtcbiAgICBjb25zdCBhY3Rpb24gPSBuZXcgSmFFeGVjdXRlRW50aXRpZXNCdWlsZGVyKG9wdGlvbnMpXG4gICAgdGhpcy5fYmluZGVyKGFjdGlvbilcbiAgICByZXR1cm4gYWN0aW9uXG4gIH1cblxuICAvKipcbiAgICogQ3JlYXRlIGEgZmluZC1yZXBsYWNlIGFjdGlvbiBidWlsZGVyXG4gICAqIEBwYXJhbSBvcHRpb25zIC0gQ29uZmlndXJhdGlvbiBmb3IgZmluZC1yZXBsYWNlIGFjdGlvblxuICAgKi9cbiAgZmluZFJlcGxhY2Uob3B0aW9uczogRmluZFJlcGxhY2VBY3Rpb25JbnB1dCk6IEphRmluZFJlcGxhY2VCdWlsZGVyIHtcbiAgICBjb25zdCBhY3Rpb24gPSBuZXcgSmFGaW5kUmVwbGFjZUJ1aWxkZXIob3B0aW9ucylcbiAgICB0aGlzLl9iaW5kZXIoYWN0aW9uKVxuICAgIHJldHVybiBhY3Rpb25cbiAgfVxuXG4gIC8qKlxuICAgKiBDcmVhdGUgYSBnZW5lcmF0ZS1maWxlIGFjdGlvbiBidWlsZGVyXG4gICAqIEBwYXJhbSBvcHRpb25zIC0gQ29uZmlndXJhdGlvbiBmb3IgZ2VuZXJhdGUtZmlsZSBhY3Rpb25cbiAgICovXG4gIGdlbmVyYXRlRmlsZShvcHRpb25zOiBHZW5lcmF0ZUZpbGVBY3Rpb25JbnB1dCk6IEphR2VuZXJhdGVGaWxlQnVpbGRlciB7XG4gICAgY29uc3QgYWN0aW9uID0gbmV3IEphR2VuZXJhdGVGaWxlQnVpbGRlcihvcHRpb25zKVxuICAgIHRoaXMuX2JpbmRlcihhY3Rpb24pXG4gICAgcmV0dXJuIGFjdGlvblxuICB9XG5cbiAgLyoqXG4gICAqIENyZWF0ZSBhIGdlbmVyYXRlLXBkZiBhY3Rpb24gYnVpbGRlclxuICAgKiBAcGFyYW0gb3B0aW9ucyAtIE9wdGlvbnMgZm9yIFBERiBnZW5lcmF0aW9uXG4gICAqIEBwYXJhbSBvcHRpb25zLmZpbGVOYW1lIC0gUERGIGZpbGUgbmFtZVxuICAgKiBAcGFyYW0gb3B0aW9ucy5odG1sIC0gSFRNTCBjb250ZW50XG4gICAqIEBwYXJhbSBvcHRpb25zLmluc3RhbmNlSWQgLSBJbnN0YW5jZSBJRCBmb3IgdHJhY2tpbmdcbiAgICovXG4gIGdlbmVyYXRlUGRmKG9wdGlvbnM6IHtcbiAgICByZWFkb25seSBmaWxlTmFtZTogc3RyaW5nIHwgRXhwcmVzc2lvblxuICAgIHJlYWRvbmx5IGh0bWw6IHN0cmluZyB8IEV4cHJlc3Npb25cbiAgICByZWFkb25seSBpbnN0YW5jZUlkPzogc3RyaW5nIHwgS2VnSW5zdGFuY2VJZFxuICB9KTogSmFHZW5lcmF0ZVBkZkJ1aWxkZXIge1xuICAgIGNvbnN0IGFjdGlvbiA9IG5ldyBKYUdlbmVyYXRlUGRmQnVpbGRlcihvcHRpb25zKVxuICAgIHRoaXMuX2JpbmRlcihhY3Rpb24pXG4gICAgcmV0dXJuIGFjdGlvblxuICB9XG5cbiAgLyoqXG4gICAqIENyZWF0ZSBhbiBvcGVuLWFwcC1zZXR0aW5ncyBhY3Rpb24gYnVpbGRlclxuICAgKiBAcGFyYW0gb3B0aW9ucyAtIENvbmZpZ3VyYXRpb24gZm9yIG9wZW4tYXBwLXNldHRpbmdzIGFjdGlvblxuICAgKi9cbiAgb3BlbkFwcFNldHRpbmdzKG9wdGlvbnM6IE9wZW5BcHBTZXR0aW5nc0FjdGlvbklucHV0ID0ge30pOiBKYU9wZW5BcHBTZXR0aW5nc0J1aWxkZXIge1xuICAgIGNvbnN0IGFjdGlvbiA9IG5ldyBKYU9wZW5BcHBTZXR0aW5nc0J1aWxkZXIob3B0aW9ucylcbiAgICB0aGlzLl9iaW5kZXIoYWN0aW9uKVxuICAgIHJldHVybiBhY3Rpb25cbiAgfVxuXG4gIC8qKlxuICAgKiBDcmVhdGUgYW4gb3Blbi1tYXAgYWN0aW9uIGJ1aWxkZXJcbiAgICogQHBhcmFtIG9wdGlvbnMgLSBDb25maWd1cmF0aW9uIGZvciB0aGUgb3Blbi1tYXAgYWN0aW9uXG4gICAqL1xuICBvcGVuTWFwKG9wdGlvbnM6IE9wZW5NYXBBY3Rpb25JbnB1dCk6IEphT3Blbk1hcEJ1aWxkZXIge1xuICAgIGNvbnN0IGFjdGlvbiA9IG5ldyBKYU9wZW5NYXBCdWlsZGVyKG9wdGlvbnMpXG4gICAgdGhpcy5fYmluZGVyKGFjdGlvbilcbiAgICByZXR1cm4gYWN0aW9uXG4gIH1cblxuICAvKipcbiAgICogQ3JlYXRlIGFuIG9wZW4tc2Nhbm5lciBhY3Rpb24gYnVpbGRlclxuICAgKiBAcGFyYW0gb3B0aW9ucyAtIE9wZW4gc2Nhbm5lciBhY3Rpb24gY29uZmlndXJhdGlvblxuICAgKi9cbiAgb3BlblNjYW5uZXIob3B0aW9uczogT3BlblNjYW5uZXJBY3Rpb25JbnB1dCk6IEphT3BlblNjYW5uZXJCdWlsZGVyIHtcbiAgICBjb25zdCBhY3Rpb24gPSBuZXcgSmFPcGVuU2Nhbm5lckJ1aWxkZXIob3B0aW9ucylcbiAgICB0aGlzLl9iaW5kZXIoYWN0aW9uKVxuICAgIHJldHVybiBhY3Rpb25cbiAgfVxuXG4gIC8qKlxuICAgKiBDcmVhdGUgYSBwcmludCBhY3Rpb24gYnVpbGRlclxuICAgKiBAcGFyYW0gb3B0aW9ucyAtIFByaW50IGFjdGlvbiBjb25maWd1cmF0aW9uXG4gICAqL1xuICBwcmludChvcHRpb25zOiBQcmludEFjdGlvbklucHV0KTogSmFQcmludEJ1aWxkZXIge1xuICAgIGNvbnN0IGFjdGlvbiA9IG5ldyBKYVByaW50QnVpbGRlcihvcHRpb25zKVxuICAgIHRoaXMuX2JpbmRlcihhY3Rpb24pXG4gICAgcmV0dXJuIGFjdGlvblxuICB9XG5cbiAgLyoqXG4gICAqIENyZWF0ZSBhIHNoYXJlIGFjdGlvbiBidWlsZGVyXG4gICAqIEBwYXJhbSBvcHRpb25zIC0gQ29uZmlndXJhdGlvbiBvcHRpb25zIGZvciB0aGUgc2hhcmUgYWN0aW9uXG4gICAqL1xuICBzaGFyZShvcHRpb25zOiBTaGFyZUFjdGlvbklucHV0KTogSmFTaGFyZUJ1aWxkZXIge1xuICAgIGNvbnN0IGFjdGlvbiA9IG5ldyBKYVNoYXJlQnVpbGRlcihvcHRpb25zKVxuICAgIHRoaXMuX2JpbmRlcihhY3Rpb24pXG4gICAgcmV0dXJuIGFjdGlvblxuICB9XG5cbiAgLyoqXG4gICAqIENyZWF0ZSBhIHNob3ctYWxlcnQgYWN0aW9uIGJ1aWxkZXJcbiAgICogQHBhcmFtIG9wdGlvbnMgLSBDb25maWd1cmF0aW9uIGZvciB0aGUgc2hvdy1hbGVydCBhY3Rpb24gKG9wdGlvbmFsKVxuICAgKi9cbiAgc2hvd0FsZXJ0KG9wdGlvbnM6IFNob3dBbGVydEFjdGlvbklucHV0ID0ge30pOiBKYVNob3dBbGVydEJ1aWxkZXIge1xuICAgIGNvbnN0IGFjdGlvbiA9IG5ldyBKYVNob3dBbGVydEJ1aWxkZXIob3B0aW9ucylcbiAgICB0aGlzLl9iaW5kZXIoYWN0aW9uKVxuICAgIHJldHVybiBhY3Rpb25cbiAgfVxuXG4gIC8qKlxuICAgKiBDcmVhdGUgYSBzdGFydC1sb2NhdGlvbi1zaGFyaW5nIGFjdGlvbiBidWlsZGVyXG4gICAqIEBwYXJhbSBvcHRpb25zIC0gQ29uZmlndXJhdGlvbiBvcHRpb25zIGZvciBzdGFydC1sb2NhdGlvbi1zaGFyaW5nIGFjdGlvblxuICAgKi9cbiAgc3RhcnRMb2NhdGlvblNoYXJpbmcob3B0aW9uczogU3RhcnRMb2NhdGlvblNoYXJpbmdBY3Rpb25JbnB1dCk6IEphU3RhcnRMb2NhdGlvblNoYXJpbmdCdWlsZGVyIHtcbiAgICBjb25zdCBhY3Rpb24gPSBuZXcgSmFTdGFydExvY2F0aW9uU2hhcmluZ0J1aWxkZXIob3B0aW9ucylcbiAgICB0aGlzLl9iaW5kZXIoYWN0aW9uKVxuICAgIHJldHVybiBhY3Rpb25cbiAgfVxuXG4gIC8qKlxuICAgKiBDcmVhdGUgYSBzdG9wLWxvY2F0aW9uLXNoYXJpbmcgYWN0aW9uIGJ1aWxkZXJcbiAgICogQHBhcmFtIG9wdGlvbnMgLSBDb25maWd1cmF0aW9uIG9wdGlvbnMgZm9yIHN0b3AtbG9jYXRpb24tc2hhcmluZyBhY3Rpb25cbiAgICovXG4gIHN0b3BMb2NhdGlvblNoYXJpbmcob3B0aW9ucz86IFN0b3BMb2NhdGlvblNoYXJpbmdBY3Rpb25JbnB1dCk6IEphU3RvcExvY2F0aW9uU2hhcmluZ0J1aWxkZXIge1xuICAgIGNvbnN0IGFjdGlvbiA9IG5ldyBKYVN0b3BMb2NhdGlvblNoYXJpbmdCdWlsZGVyKG9wdGlvbnMpXG4gICAgdGhpcy5fYmluZGVyKGFjdGlvbilcbiAgICByZXR1cm4gYWN0aW9uXG4gIH1cblxuICAvKipcbiAgICogQ3JlYXRlIGFuIHVwZGF0ZS1wcm9maWxlIGFjdGlvbiBidWlsZGVyXG4gICAqIEBwYXJhbSBvcHRpb25zIC0gQ29uZmlndXJhdGlvbiBvcHRpb25zIGZvciB0aGUgdXBkYXRlLXByb2ZpbGUgYWN0aW9uXG4gICAqL1xuICB1cGRhdGVQcm9maWxlKG9wdGlvbnM6IFVwZGF0ZVByb2ZpbGVBY3Rpb25JbnB1dCk6IEphVXBkYXRlUHJvZmlsZUJ1aWxkZXIge1xuICAgIGNvbnN0IGFjdGlvbiA9IG5ldyBKYVVwZGF0ZVByb2ZpbGVCdWlsZGVyKG9wdGlvbnMpXG4gICAgdGhpcy5fYmluZGVyKGFjdGlvbilcbiAgICByZXR1cm4gYWN0aW9uXG4gIH1cbn1cblxuZXhwb3J0IGNsYXNzIEphSW5CYWNrZ3JvdW5kRmFjdG9yeU9uZSBleHRlbmRzIEphSW5CYWNrZ3JvdW5kRmFjdG9yeSB7XG4gIHByaXZhdGUgX2FjdGlvbj86IEFjdGlvbkJ1aWxkZXJcblxuICBzdGF0aWMgb25lKCk6IEphSW5CYWNrZ3JvdW5kRmFjdG9yeU9uZSB7XG4gICAgY29uc3QgZmFjdG9yeSA9IG5ldyBKYUluQmFja2dyb3VuZEZhY3RvcnlPbmUoKGJ1aWxkZXI6IEFjdGlvbkJ1aWxkZXIpID0+IHtcbiAgICAgIGZhY3RvcnkuX2FjdGlvbiA9IGJ1aWxkZXJcbiAgICB9KVxuICAgIHJldHVybiBmYWN0b3J5XG4gIH1cblxuICBidWlsZCgpOiBKYUluQmFja2dyb3VuZCB8IHVuZGVmaW5lZCB7XG4gICAgcmV0dXJuIHRoaXMuX2FjdGlvbj8uYnVpbGQoKVxuICB9XG59XG4iXX0=
247
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiamEuaW4tYmFja2dyb3VuZC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9hY3Rpb24vamEuaW4tYmFja2dyb3VuZC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxPQUFPLEVBQUUsbUJBQW1CLEVBQThCLE1BQU0scUJBQXFCLENBQUE7QUFDckYsT0FBTyxFQUFFLG1CQUFtQixFQUE4QixNQUFNLHFCQUFxQixDQUFBO0FBQ3JGLE9BQU8sRUFBRSxnQkFBZ0IsRUFBMkIsTUFBTSxpQkFBaUIsQ0FBQTtBQUMzRSxPQUFPLEVBQ0wsMkJBQTJCLEdBRTVCLE1BQU0sOEJBQThCLENBQUE7QUFDckMsT0FBTyxFQUNMLHdCQUF3QixHQUV6QixNQUFNLDJCQUEyQixDQUFBO0FBQ2xDLE9BQU8sRUFDTCx5QkFBeUIsR0FFMUIsTUFBTSw0QkFBNEIsQ0FBQTtBQUNuQyxPQUFPLEVBQUUsc0JBQXNCLEVBQWlDLE1BQU0sd0JBQXdCLENBQUE7QUFDOUYsT0FBTyxFQUFFLG9CQUFvQixFQUErQixNQUFNLHNCQUFzQixDQUFBO0FBQ3hGLE9BQU8sRUFBRSx3QkFBd0IsRUFBNkIsTUFBTSwwQkFBMEIsQ0FBQTtBQUM5RixPQUFPLEVBQUUsc0JBQXNCLEVBQTJCLE1BQU0sd0JBQXdCLENBQUE7QUFDeEYsT0FBTyxFQUFFLG1CQUFtQixFQUE4QixNQUFNLHFCQUFxQixDQUFBO0FBQ3JGLE9BQU8sRUFBRSxxQkFBcUIsRUFBZ0MsTUFBTSx1QkFBdUIsQ0FBQTtBQUMzRixPQUFPLEVBQUUsb0JBQW9CLEVBQXVCLE1BQU0sc0JBQXNCLENBQUE7QUFDaEYsT0FBTyxFQUFFLGVBQWUsRUFBMEIsTUFBTSxpQkFBaUIsQ0FBQTtBQUN6RSxPQUFPLEVBQUUsYUFBYSxFQUF3QixNQUFNLGVBQWUsQ0FBQTtBQUNuRSxPQUFPLEVBQUUsa0JBQWtCLEVBQTZCLE1BQU0sb0JBQW9CLENBQUE7QUFDbEYsT0FBTyxFQUNMLHdCQUF3QixHQUV6QixNQUFNLDJCQUEy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QUFJLENBQUMsT0FBTyxFQUFFLEtBQUssRUFBRSxDQUFBO0lBQUEsQ0FDN0I7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IHR5cGUgRXhwcmVzc2lvbiwgdHlwZSBLZWdJbnN0YW5jZUlkIH0gZnJvbSAnLi4vYWJzdHJhY3QvaW5kZXguanMnXG5pbXBvcnQgeyB0eXBlIEFjdGlvbkJhc2VCdWlsZGVyLCB0eXBlIEFjdGlvbkJhc2VJbnB1dCwgdHlwZSBKYUJhc2UgfSBmcm9tICcuL2phLmFic3RyYWN0LmpzJ1xuaW1wb3J0IHsgSmFBY3Rpb25MaXN0QnVpbGRlciwgdHlwZSBBY3Rpb25MaXN0QWN0aW9uSW5wdXQgfSBmcm9tICcuL2phLmFjdGlvbi1saXN0LmpzJ1xuaW1wb3J0IHsgSmFDbGVhclF1ZXVlQnVpbGRlciwgdHlwZSBDbGVhclF1ZXVlQWN0aW9uSW5wdXQgfSBmcm9tICcuL2phLmNsZWFyLXF1ZXVlLmpzJ1xuaW1wb3J0IHsgSmFDb25maXJtQnVpbGRlciwgdHlwZSBDb25maXJtQWN0aW9uSW5wdXQgfSBmcm9tICcuL2phLmNvbmZpcm0uanMnXG5pbXBvcnQge1xuICBKYURlbGV0ZVF1ZXVlQ29tbWFuZEJ1aWxkZXIsXG4gIHR5cGUgRGVsZXRlUXVldWVDb21tYW5kQWN0aW9uSW5wdXQsXG59IGZyb20gJy4vamEuZGVsZXRlLXF1ZXVlLWNvbW1hbmQuanMnXG5pbXBvcnQge1xuICBKYURlbGV0ZVN5bmNTY29wZUJ1aWxkZXIsXG4gIHR5cGUgRGVsZXRlU3luY1Njb3BlQWN0aW9uSW5wdXQsXG59IGZyb20gJy4vamEuZGVsZXRlLXN5bmMtc2NvcGUuanMnXG5pbXBvcnQge1xuICBKYURlbGV0ZVN5bmNTdGF0dXNCdWlsZGVyLFxuICB0eXBlIERlbGV0ZVN5bmNTdGF0dXNBY3Rpb25JbnB1dCxcbn0gZnJvbSAnLi9qYS5kZWxldGUtc3luYy1zdGF0dXMuanMnXG5pbXBvcnQgeyBKYUV4ZWN1dGVBY3Rpb25CdWlsZGVyLCB0eXBlIEV4ZWN1dGVBY3Rpb25BY3Rpb25JbnB1dCB9IGZyb20gJy4vamEuZXhlY3V0ZS1hY3Rpb24uanMnXG5pbXBvcnQgeyBKYUZpbmRSZXBsYWNlQnVpbGRlciwgdHlwZSBGaW5kUmVwbGFjZUFjdGlvbklucHV0IH0gZnJvbSAnLi9qYS5maW5kLXJlcGxhY2UuanMnXG5pbXBvcnQgeyBKYUV4ZWN1dGVFbnRpdGllc0J1aWxkZXIsIHR5cGUgRXhlY3V0ZUVudGl0aWVzSW5wdXQgfSBmcm9tICcuL2phLmV4ZWN1dGUtZW50aXRpZXMuanMnXG5pbXBvcnQgeyBKYUV4ZWN1dGVFbnRpdHlCdWlsZGVyLCB0eXBlIEV4ZWN1dGVFbnRpdHlJbnB1dCB9IGZyb20gJy4vamEuZXhlY3V0ZS1lbnRpdHkuanMnXG5pbXBvcnQgeyBKYUV4ZWN1dGVTcWxCdWlsZGVyLCB0eXBlIEV4ZWN1dGVTcWxBY3Rpb25JbnB1dCB9IGZyb20gJy4vamEuZXhlY3V0ZS1zcWwuanMnXG5pbXBvcnQgeyBKYUdlbmVyYXRlRmlsZUJ1aWxkZXIsIHR5cGUgR2VuZXJhdGVGaWxlQWN0aW9uSW5wdXQgfSBmcm9tICcuL2phLmdlbmVyYXRlLWZpbGUuanMnXG5pbXBvcnQgeyBKYUdlbmVyYXRlUGRmQnVpbGRlciwgdHlwZSBQZGZQYWdlT3B0aW9ucyB9IGZyb20gJy4vamEuZ2VuZXJhdGUtcGRmLmpzJ1xuaW1wb3J0IHsgSmFHb0JhY2tCdWlsZGVyLCB0eXBlIEdvQmFja0FjdGlvbklucHV0IH0gZnJvbSAnLi9qYS5nby1iYWNrLmpzJ1xuaW1wb3J0IHsgSmFHb1RvQnVpbGRlciwgdHlwZSBHb1RvQWN0aW9uSW5wdXQgfSBmcm9tICcuL2phLmdvLXRvLmpzJ1xuaW1wb3J0IHsgSmFJbmZvTW9kYWxCdWlsZGVyLCB0eXBlIEluZm9Nb2RhbEFjdGlvbklucHV0IH0gZnJvbSAnLi9qYS5pbmZvLW1vZGFsLmpzJ1xuaW1wb3J0IHtcbiAgSmFPcGVuQXBwU2V0dGluZ3NCdWlsZGVyLFxuICB0eXBlIE9wZW5BcHBTZXR0aW5nc0FjdGlvbklucHV0LFxufSBmcm9tICcuL2phLm9wZW4tYXBwLXNldHRpbmdzLmpzJ1xuaW1wb3J0IHsgSmFPcGVuTWFwQnVpbGRlciwgdHlwZSBPcGVuTWFwQWN0aW9uSW5wdXQgfSBmcm9tICcuL2phLm9wZW4tbWFwLmpzJ1xuaW1wb3J0IHtcbiAgSmFPcGVuTWVkaWFQaWNrZXJCdWlsZGVyLFxuICB0eXBlIE9wZW5NZWRpYVBpY2tlckFjdGlvbklucHV0LFxufSBmcm9tICcuL2phLm9wZW4tbWVkaWEtcGlja2VyLmpzJ1xuaW1wb3J0IHsgSmFPcGVuU2Nhbm5lckJ1aWxkZXIsIHR5cGUgT3BlblNjYW5uZXJBY3Rpb25JbnB1dCB9IGZyb20gJy4vamEub3Blbi1zY2FubmVyLmpzJ1xuaW1wb3J0IHsgSmFPcGVuVXJsQnVpbGRlciwgdHlwZSBPcGVuVXJsQWN0aW9uSW5wdXQgfSBmcm9tICcuL2phLm9wZW4tdXJsLmpzJ1xuaW1wb3J0IHsgSmFQcmludEJ1aWxkZXIsIHR5cGUgUHJpbnRBY3Rpb25JbnB1dCB9IGZyb20gJy4vamEucHJpbnQuanMnXG5pbXBvcnQge1xuICBKYVJlc2V0QXBwbGljYXRpb25TdGF0ZUJ1aWxkZXIsXG4gIHR5cGUgUmVzZXRBcHBsaWNhdGlvblN0YXRlQWN0aW9uSW5wdXQsXG59IGZyb20gJy4vamEucmVzZXQtYXBwbGljYXRpb24tc3RhdGUuanMnXG5pbXBvcnQge1xuICBKYVJlc2V0Q29tcG9uZW50U3RhdGVCdWlsZGVyLFxuICB0eXBlIFJlc2V0Q29tcG9uZW50U3RhdGVBY3Rpb25JbnB1dCxcbn0gZnJvbSAnLi9qYS5yZXNldC1jb21wb25lbnQtc3RhdGUuanMnXG5pbXBvcnQge1xuICBKYVJlc2V0U2NyZWVuU3RhdGVCdWlsZGVyLFxuICB0eXBlIFJlc2V0U2NyZWVuU3RhdGVBY3Rpb25JbnB1dCxcbn0gZnJvbSAnLi9qYS5yZXNldC1zY3JlZW4tc3RhdGUuanMnXG5pbXBvcnQgeyBKYVJlc2V0U3RhdGVCdWlsZGVyLCB0eXBlIFJlc2V0U3RhdGVBY3Rpb25JbnB1dCB9IGZyb20gJy4vamEucmVzZXQtc3RhdGUuanMnXG5pbXBvcnQge1xuICBKYVJldHJ5UXVldWVDb21tYW5kQnVpbGRlcixcbiAgdHlwZSBSZXRyeVF1ZXVlQ29tbWFuZEFjdGlvbklucHV0LFxufSBmcm9tICcuL2phLnJldHJ5LXF1ZXVlLWNvbW1hbmQuanMnXG5pbXBvcnQgeyBKYVNldEFjdGl2ZVRhYkJ1aWxkZXIsIHR5cGUgU2V0QWN0aXZlVGFiQWN0aW9uSW5wdXQgfSBmcm9tICcuL2phLnNldC1hY3RpdmUtdGFiLmpzJ1xuaW1wb3J0IHtcbiAgSmFTZXRBcHBsaWNhdGlvblN0YXRlQnVpbGRlcixcbiAgdHlwZSBTZXRBcHBsaWNhdGlvblN0YXRlQWN0aW9uSW5wdXQsXG59IGZyb20gJy4vamEuc2V0LWFwcGxpY2F0aW9uLXN0YXRlLmpzJ1xuaW1wb3J0IHsgSmFTZXRTY3JlZW5TdGF0ZUJ1aWxkZXIsIHR5cGUgU2V0U2NyZWVuU3RhdGVBY3Rpb25JbnB1dCB9IGZyb20gJy4vamEuc2V0LXNjcmVlbi1zdGF0ZS5qcydcbmltcG9ydCB7IEphU2hhcmVCdWlsZGVyLCB0eXBlIFNoYXJlQWN0aW9uSW5wdXQgfSBmcm9tICcuL2phLnNoYXJlLmpzJ1xuaW1wb3J0IHsgSmFTaG93QWxlcnRCdWlsZGVyLCB0eXBlIFNob3dBbGVydEFjdGlvbklucHV0IH0gZnJvbSAnLi9qYS5zaG93LWFsZXJ0LmpzJ1xuaW1wb3J0IHtcbiAgSmFTdGFydExvY2F0aW9uU2hhcmluZ0J1aWxkZXIsXG4gIHR5cGUgU3RhcnRMb2NhdGlvblNoYXJpbmdBY3Rpb25JbnB1dCxcbn0gZnJvbSAnLi9qYS5zdGFydC1sb2NhdGlvbi1zaGFyaW5nLmpzJ1xuaW1wb3J0IHsgSmFTdGFydFN5bmNTY29wZUJ1aWxkZXIsIHR5cGUgU3RhcnRTeW5jU2NvcGVBY3Rpb25JbnB1dCB9IGZyb20gJy4vamEuc3RhcnQtc3luYy1zY29wZS5qcydcbmltcG9ydCB7XG4gIEphU3RvcExvY2F0aW9uU2hhcmluZ0J1aWxkZXIsXG4gIHR5cGUgU3RvcExvY2F0aW9uU2hhcmluZ0FjdGlvbklucHV0LFxufSBmcm9tICcuL2phLnN0b3AtbG9jYXRpb24tc2hhcmluZy5qcydcbmltcG9ydCB7IEphU3VibWl0Rm9ybUJ1aWxkZXIsIHR5cGUgU3VibWl0Rm9ybUFjdGlvbklucHV0IH0gZnJvbSAnLi9qYS5zdWJtaXQtZm9ybS5qcydcbmltcG9ydCB7IEphU3luY0VudGl0aWVzQnVpbGRlciwgdHlwZSBTeW5jRW50aXRpZXNBY3Rpb25JbnB1dCB9IGZyb20gJy4vamEuc3luYy1lbnRpdGllcy5qcydcbmltcG9ydCB7IEphVXBkYXRlUHJvZmlsZUJ1aWxkZXIsIHR5cGUgVXBkYXRlUHJvZmlsZUFjdGlvbklucHV0IH0gZnJvbSAnLi9qYS51cGRhdGUtcHJvZmlsZS5qcydcblxuLyoqXG4gKiBgSmFJbkJhY2tncm91bmRgIGlzIGEgdHlwZSB0aGF0IHJlcHJlc2VudHMgYWxsIHBvc3NpYmxlIGFjdGlvbnMgdGhhdCBjYW4gYmUgZXhlY3V0ZWQgaW4gdGhlIGJhY2tncm91bmRcbiAqIEBhbGlhcyBLZWdBY3Rpb25JbkJhY2tncm91bmRcbiAqIEBhbGlhcyBrZWctYWN0aW9uLWluLWJhY2tncm91bmRcbiAqIEBzZWUgIy9kZWZpbml0aW9ucy9rZWctYWN0aW9uLWluLWJhY2tncm91bmRcbiAqL1xuLy8gRG8gTk9UIGFyYml0cmFyaWx5IGFkZCBjb21wb25lbnRzIGhlcmUsIHRoaXMgaXMgYSBzcGVjaWZpYywgZGlzY3JldGUgbGlzdFxuZXhwb3J0IHR5cGUgSmFJbkJhY2tncm91bmQgPSBKYUJhc2VcblxuLyoqXG4gKiBgQWN0aW9uQnVpbGRlcmAgaXMgYSB1bmlmaWVkIHR5cGUgcmVwcmVzZW50aW5nIGFsbCBhY3Rpb24gYnVpbGRlcnMuXG4gKlxuICogQWZ0ZXIgUFIgIzExOSwgYWN0aW9uIGJ1aWxkZXJzIHdlcmUgdW5pZmllZCAtIHNpbmdsZSBidWlsZGVyIGNsYXNzZXMgKGUuZy4sIEphR29Ub0J1aWxkZXIpXG4gKiBoYW5kbGUgYm90aCBidXR0b24gYW5kIGJhY2tncm91bmQgY29udGV4dHMgdmlhIGZhY3RvcnkgdHlwZSBjb25zdHJhaW50cy5cbiAqXG4gKiBAc2VlIGNyZWF0ZUFjdGlvbkluQmFja2dyb3VuZEJ1aWxkZXJzRmFjdG9yeSBmb3IgYmFja2dyb3VuZCBjb250ZXh0XG4gKiBAc2VlIGNyZWF0ZUFjdGlvbk9uQnV0dG9uQnVpbGRlcnNGYWN0b3J5IGZvciBidXR0b24gY29udGV4dFxuICogQGFsaWFzIEphSW5CYWNrZ3JvdW5kQnVpbGRlcnMgKGRlcHJlY2F0ZWQgbmFtZSlcbiAqIEBhbGlhcyBLZWdBY3Rpb25JbkJhY2tncm91bmRcbiAqIEBhbGlhcyBrZWctYWN0aW9uLWluLWJhY2tncm91bmRcbiAqIEBzZWUgIy9kZWZpbml0aW9ucy9rZWctYWN0aW9uLWluLWJhY2tncm91bmRcbiAqL1xuLy8gRG8gTk9UIGFyYml0cmFyaWx5IGFkZCBjb21wb25lbnRzIGhlcmUsIHRoaXMgaXMgYSBzcGVjaWZpYywgZGlzY3JldGUgbGlzdFxuZXhwb3J0IHR5cGUgQWN0aW9uQnVpbGRlciA9IEFjdGlvbkJhc2VCdWlsZGVyPEFjdGlvbkJhc2VJbnB1dD5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIEFjdGlvbkJ1aWxkZXIgaW5zdGVhZC4gS2VwdCBmb3IgYmFja3dhcmQgY29tcGF0aWJpbGl0eS5cbiAqL1xuZXhwb3J0IHR5cGUgSmFJbkJhY2tncm91bmRCdWlsZGVycyA9IEFjdGlvbkJ1aWxkZXJcblxuLyoqXG4gKiBAZGVwcmVjYXRlZFxuICovXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgSmFJbkJhY2tncm91bmRGYWN0b3J5IHtcbiAgcHJpdmF0ZSByZWFkb25seSBfYmluZGVyOiAoYWN0aW9uOiBBY3Rpb25CdWlsZGVyKSA9PiB2b2lkXG5cbiAgY29uc3RydWN0b3IoYmluZGVyOiAoYWN0aW9uOiBBY3Rpb25CdWlsZGVyKSA9PiB2b2lkKSB7XG4gICAgdGhpcy5fYmluZGVyID0gYmluZGVyXG4gIH1cblxuICBnb3RvKG9wdGlvbnM6IEdvVG9BY3Rpb25JbnB1dCk6IEphR29Ub0J1aWxkZXIge1xuICAgIGNvbnN0IGFjdGlvbiA9IG5ldyBKYUdvVG9CdWlsZGVyKG9wdGlvbnMpXG4gICAgdGhpcy5fYmluZGVyKGFjdGlvbilcbiAgICByZXR1cm4gYWN0aW9uXG4gIH1cblxuICAvKipcbiAgICogQ3JlYXRlIGEgZ28tYmFjayBhY3Rpb24gYnVpbGRlclxuICAgKiBAcGFyYW0gb3B0aW9ucyAtIENvbmZpZ3VyYXRpb24gZm9yIHRoZSBnby1iYWNrIGFjdGlvbiAob3B0aW9uYWwpXG4gICAqL1xuICBnb0JhY2sob3B0aW9uczogR29CYWNrQWN0aW9uSW5wdXQgPSB7fSk6IEphR29CYWNrQnVpbGRlciB7XG4gICAgY29uc3QgYWN0aW9uID0gbmV3IEphR29CYWNrQnVpbGRlcihvcHRpb25zKVxuICAgIHRoaXMuX2JpbmRlcihhY3Rpb24pXG4gICAgcmV0dXJuIGFjdGlvblxuICB9XG5cbiAgLyoqXG4gICAqIENyZWF0ZSBhbiBhY3Rpb24tbGlzdCBidWlsZGVyLlxuICAgKiAtIE9taXQgYGNvbmN1cnJlbmN5YCB0byBrZWVwIFlBTUwgZGVmYXVsdCBiZWhhdmlvciAoc2VxdWVudGlhbCwgd2l0aG91dCBgaXNTZXF1ZW50aWFsYCkuXG4gICAqIC0gVXNlIGBjb25jdXJyZW5jeTogJ3NlcXVlbnRpYWwnYCB0byBlbWl0IGBpc1NlcXVlbnRpYWw6IHRydWVgLlxuICAgKiAtIFVzZSBgY29uY3VycmVuY3k6ICdwYXJhbGxlbCdgIHRvIGVtaXQgYGlzU2VxdWVudGlhbDogZmFsc2VgLlxuICAgKi9cbiAgbGlzdChvcHRpb25zPzogQWN0aW9uTGlzdEFjdGlvbklucHV0KTogSmFBY3Rpb25MaXN0QnVpbGRlciB7XG4gICAgY29uc3QgYWN0aW9uID0gbmV3IEphQWN0aW9uTGlzdEJ1aWxkZXIoeyAuLi5vcHRpb25zIH0pXG4gICAgdGhpcy5fYmluZGVyKGFjdGlvbilcbiAgICByZXR1cm4gYWN0aW9uXG4gIH1cblxuICAvKipcbiAgICogQ3JlYXRlIGEgc2V0LWppZy1zdGF0ZSBhY3Rpb24gYnVpbGRlclxuICAgKiBAYWxpYXMgc2V0SmlnU3RhdGVcbiAgICogQHBhcmFtIG9wdGlvbnMgLSBDb25maWd1cmF0aW9uIGZvciB0aGUgc2V0LWppZy1zdGF0ZSBhY3Rpb25cbiAgICovXG4gIHNldFNjcmVlblN0YXRlKG9wdGlvbnM6IFNldFNjcmVlblN0YXRlQWN0aW9uSW5wdXQpOiBKYVNldFNjcmVlblN0YXRlQnVpbGRlciB7XG4gICAgY29uc3QgYWN0aW9uID0gbmV3IEphU2V0U2NyZWVuU3RhdGVCdWlsZGVyKG9wdGlvbnMpXG4gICAgdGhpcy5fYmluZGVyKGFjdGlvbilcbiAgICByZXR1cm4gYWN0aW9uXG4gIH1cblxuICAvKipcbiAgICogQ3JlYXRlIGFuIG9wZW4tbWVkaWEtcGlja2VyIGFjdGlvbiBidWlsZGVyXG4gICAqIEBwYXJhbSBvcHRpb25zIC0gQ29uZmlndXJhdGlvbiBmb3IgbWVkaWEgcGlja2VyIGFjdGlvblxuICAgKi9cbiAgb3Blbk1lZGlhUGlja2VyKG9wdGlvbnM6IE9wZW5NZWRpYVBpY2tlckFjdGlvbklucHV0KTogSmFPcGVuTWVkaWFQaWNrZXJCdWlsZGVyIHtcbiAgICBjb25zdCBhY3Rpb24gPSBuZXcgSmFPcGVuTWVkaWFQaWNrZXJCdWlsZGVyKG9wdGlvbnMpXG4gICAgdGhpcy5fYmluZGVyKGFjdGlvbilcbiAgICByZXR1cm4gYWN0aW9uXG4gIH1cblxuICAvKipcbiAgICogQ3JlYXRlIGFuIG9wZW4tdXJsIGFjdGlvbiBidWlsZGVyXG4gICAqIEBwYXJhbSBvcHRpb25zIC0gT3BlbiBVUkwgYWN0aW9uIGNvbmZpZ3VyYXRpb25cbiAgICovXG4gIG9wZW5Vcmwob3B0aW9uczogT3BlblVybEFjdGlvbklucHV0KTogSmFPcGVuVXJsQnVpbGRlciB7XG4gICAgY29uc3QgYWN0aW9uID0gbmV3IEphT3BlblVybEJ1aWxkZXIob3B0aW9ucylcbiAgICB0aGlzLl9iaW5kZXIoYWN0aW9uKVxuICAgIHJldHVybiBhY3Rpb25cbiAgfVxuXG4gIC8qKlxuICAgKiBDcmVhdGUgYSByZXNldC1zdGF0ZSBhY3Rpb24gYnVpbGRlclxuICAgKiBAYWxpYXMgcmVzZXRTdGF0ZVxuICAgKiBAcGFyYW0gb3B0aW9uc1xuICAgKi9cbiAgcmVzZXRTdGF0ZShvcHRpb25zOiBSZXNldFN0YXRlQWN0aW9uSW5wdXQpOiBKYVJlc2V0U3RhdGVCdWlsZGVyIHtcbiAgICBjb25zdCBhY3Rpb24gPSBuZXcgSmFSZXNldFN0YXRlQnVpbGRlcihvcHRpb25zKVxuICAgIHRoaXMuX2JpbmRlcihhY3Rpb24pXG4gICAgcmV0dXJuIGFjdGlvblxuICB9XG5cbiAgLyoqXG4gICAqIENyZWF0ZSBhbiBpbmZvLW1vZGFsIGFjdGlvbiBidWlsZGVyXG4gICAqIEBwYXJhbSBvcHRpb25zIC0gQ29uZmlndXJhdGlvbiBmb3IgdGhlIGluZm8tbW9kYWwgYWN0aW9uIChvcHRpb25hbClcbiAgICovXG4gIGluZm9Nb2RhbChvcHRpb25zOiBJbmZvTW9kYWxBY3Rpb25JbnB1dCA9IHt9KTogSmFJbmZvTW9kYWxCdWlsZGVyIHtcbiAgICBjb25zdCBhY3Rpb24gPSBuZXcgSmFJbmZvTW9kYWxCdWlsZGVyKG9wdGlvbnMpXG4gICAgdGhpcy5fYmluZGVyKGFjdGlvbilcbiAgICByZXR1cm4gYWN0aW9uXG4gIH1cblxuICAvKipcbiAgICogQ3JlYXRlIGFuIGV4ZWN1dGUtZW50aXR5IGFjdGlvbiBidWlsZGVyXG4gICAqL1xuICBleGVjdXRlRW50aXR5KG9wdGlvbnM6IEV4ZWN1dGVFbnRpdHlJbnB1dCA9IHt9KTogSmFFeGVjdXRlRW50aXR5QnVpbGRlciB7XG4gICAgY29uc3QgYWN0aW9uID0gbmV3IEphRXhlY3V0ZUVudGl0eUJ1aWxkZXIob3B0aW9ucylcbiAgICB0aGlzLl9iaW5kZXIoYWN0aW9uKVxuICAgIHJldHVybiBhY3Rpb25cbiAgfVxuXG4gIC8qKlxuICAgKiBDcmVhdGUgYSBzeW5jLWVudGl0aWVzIGFjdGlvbiBidWlsZGVyXG4gICAqIEBwYXJhbSBvcHRpb25zXG4gICAqL1xuICBzeW5jRW50aXRpZXMob3B0aW9uczogU3luY0VudGl0aWVzQWN0aW9uSW5wdXQpOiBKYVN5bmNFbnRpdGllc0J1aWxkZXIge1xuICAgIGNvbnN0IGFjdGlvbiA9IG5ldyBKYVN5bmNFbnRpdGllc0J1aWxkZXIob3B0aW9ucylcbiAgICB0aGlzLl9iaW5kZXIoYWN0aW9uKVxuICAgIHJldHVybiBhY3Rpb25cbiAgfVxuXG4gIC8qKlxuICAgKiBDcmVhdGUgYSBjb25maXJtIGFjdGlvbiBidWlsZGVyXG4gICAqIEBwYXJhbSBvcHRpb25zIC0gQ29uZmlndXJhdGlvbiBmb3IgY29uZmlybSBhY3Rpb25cbiAgICovXG4gIGNvbmZpcm0ob3B0aW9uczogQ29uZmlybUFjdGlvbklucHV0KTogSmFDb25maXJtQnVpbGRlciB7XG4gICAgY29uc3QgYWN0aW9uID0gbmV3IEphQ29uZmlybUJ1aWxkZXIob3B0aW9ucylcbiAgICB0aGlzLl9iaW5kZXIoYWN0aW9uKVxuICAgIHJldHVybiBhY3Rpb25cbiAgfVxuXG4gIC8qKlxuICAgKiBDcmVhdGUgYSByZXNldC1jb21wb25lbnQtc3RhdGUgYWN0aW9uIGJ1aWxkZXJcbiAgICogQHBhcmFtIG9wdGlvbnMgLSBDb25maWd1cmF0aW9uIGZvciByZXNldC1jb21wb25lbnQtc3RhdGUgYWN0aW9uIChvcHRpb25hbClcbiAgICovXG4gIHJlc2V0Q29tcG9uZW50U3RhdGUob3B0aW9uczogUmVzZXRDb21wb25lbnRTdGF0ZUFjdGlvbklucHV0ID0ge30pOiBKYVJlc2V0Q29tcG9uZW50U3RhdGVCdWlsZGVyIHtcbiAgICBjb25zdCBhY3Rpb24gPSBuZXcgSmFSZXNldENvbXBvbmVudFN0YXRlQnVpbGRlcihvcHRpb25zKVxuICAgIHRoaXMuX2JpbmRlcihhY3Rpb24pXG4gICAgcmV0dXJuIGFjdGlvblxuICB9XG5cbiAgLyoqXG4gICAqIENyZWF0ZSBhIHJlc2V0LWppZy1zdGF0ZSBhY3Rpb24gYnVpbGRlclxuICAgKi9cbiAgcmVzZXRTY3JlZW5TdGF0ZShvcHRpb25zOiBSZXNldFNjcmVlblN0YXRlQWN0aW9uSW5wdXQpOiBKYVJlc2V0U2NyZWVuU3RhdGVCdWlsZGVyIHtcbiAgICBjb25zdCBhY3Rpb24gPSBuZXcgSmFSZXNldFNjcmVlblN0YXRlQnVpbGRlcihvcHRpb25zKVxuICAgIHRoaXMuX2JpbmRlcihhY3Rpb24pXG4gICAgcmV0dXJuIGFjdGlvblxuICB9XG5cbiAgLyoqXG4gICAqIENyZWF0ZSBhIHJlc2V0LXNvbHV0aW9uLXN0YXRlIGFjdGlvbiBidWlsZGVyXG4gICAqIEBhbGlhcyByZXNldFNvbHV0aW9uU3RhdGVcbiAgICogQHBhcmFtIG9wdGlvbnMgLSBSZXNldCBhcHBsaWNhdGlvbiBzdGF0ZSBhY3Rpb24gY29uZmlndXJhdGlvblxuICAgKi9cbiAgcmVzZXRBcHBsaWNhdGlvblN0YXRlKG9wdGlvbnM6IFJlc2V0QXBwbGljYXRpb25TdGF0ZUFjdGlvbklucHV0KTogSmFSZXNldEFwcGxpY2F0aW9uU3RhdGVCdWlsZGVyIHtcbiAgICBjb25zdCBhY3Rpb24gPSBuZXcgSmFSZXNldEFwcGxpY2F0aW9uU3RhdGVCdWlsZGVyKG9wdGlvbnMpXG4gICAgdGhpcy5fYmluZGVyKGFjdGlvbilcbiAgICByZXR1cm4gYWN0aW9uXG4gIH1cblxuICAvKipcbiAgICogQ3JlYXRlIGEgc2V0LXNvbHV0aW9uLXN0YXRlIGFjdGlvbiBidWlsZGVyXG4gICAqIEBhbGlhcyBzZXRTb2x1dGlvblN0YXRlXG4gICAqIEBwYXJhbSBvcHRpb25zIC0gU2V0IGFwcGxpY2F0aW9uIHN0YXRlIGFjdGlvbiBjb25maWd1cmF0aW9uXG4gICAqL1xuICBzZXRBcHBsaWNhdGlvblN0YXRlKG9wdGlvbnM6IFNldEFwcGxpY2F0aW9uU3RhdGVBY3Rpb25JbnB1dCk6IEphU2V0QXBwbGljYXRpb25TdGF0ZUJ1aWxkZXIge1xuICAgIGNvbnN0IGFjdGlvbiA9IG5ldyBKYVNldEFwcGxpY2F0aW9uU3RhdGVCdWlsZGVyKG9wdGlvbnMpXG4gICAgdGhpcy5fYmluZGVyKGFjdGlvbilcbiAgICByZXR1cm4gYWN0aW9uXG4gIH1cblxuICAvKipcbiAgICogQ3JlYXRlIGEgc3VibWl0LWZvcm0gYWN0aW9uIGJ1aWxkZXJcbiAgICogQHBhcmFtIG9wdGlvbnMgLSBTdWJtaXQgZm9ybSBjb25maWd1cmF0aW9uIG9wdGlvbnNcbiAgICovXG4gIHN1Ym1pdEZvcm0ob3B0aW9uczogU3VibWl0Rm9ybUFjdGlvbklucHV0KTogSmFTdWJtaXRGb3JtQnVpbGRlciB7XG4gICAgY29uc3QgYWN0aW9uID0gbmV3IEphU3VibWl0Rm9ybUJ1aWxkZXIob3B0aW9ucylcbiAgICB0aGlzLl9iaW5kZXIoYWN0aW9uKVxuICAgIHJldHVybiBhY3Rpb25cbiAgfVxuXG4gIC8qKlxuICAgKiBDcmVhdGUgYW4gZXhlY3V0ZS1zcWwgYWN0aW9uIGJ1aWxkZXJcbiAgICogQHBhcmFtIG9wdGlvbnMgLSBDb25maWd1cmF0aW9uIGZvciBleGVjdXRlLXNxbCBhY3Rpb25cbiAgICovXG4gIGV4ZWN1dGVTcWwob3B0aW9uczogRXhlY3V0ZVNxbEFjdGlvbklucHV0KTogSmFFeGVjdXRlU3FsQnVpbGRlciB7XG4gICAgY29uc3QgYWN0aW9uID0gbmV3IEphRXhlY3V0ZVNxbEJ1aWxkZXIob3B0aW9ucylcbiAgICB0aGlzLl9iaW5kZXIoYWN0aW9uKVxuICAgIHJldHVybiBhY3Rpb25cbiAgfVxuXG4gIC8qKlxuICAgKiBDcmVhdGUgYSBzZXQtYWN0aXZlLXRhYiBhY3Rpb24gYnVpbGRlclxuICAgKiBAcGFyYW0gb3B0aW9ucyAtIENvbmZpZ3VyYXRpb24gZm9yIHRoZSBzZXQtYWN0aXZlLXRhYiBhY3Rpb25cbiAgICovXG4gIHNldEFjdGl2ZVRhYihvcHRpb25zOiBTZXRBY3RpdmVUYWJBY3Rpb25JbnB1dCk6IEphU2V0QWN0aXZlVGFiQnVpbGRlciB7XG4gICAgY29uc3QgYWN0aW9uID0gbmV3IEphU2V0QWN0aXZlVGFiQnVpbGRlcihvcHRpb25zKVxuICAgIHRoaXMuX2JpbmRlcihhY3Rpb24pXG4gICAgcmV0dXJuIGFjdGlvblxuICB9XG5cbiAgLyoqXG4gICAqIENyZWF0ZSBhIGNsZWFyLXF1ZXVlIGFjdGlvbiBidWlsZGVyXG4gICAqIEBwYXJhbSBvcHRpb25zIC0gQ29uZmlndXJhdGlvbiBmb3IgY2xlYXItcXVldWUgYWN0aW9uXG4gICAqL1xuICBjbGVhclF1ZXVlQ29tbWFuZChvcHRpb25zOiBDbGVhclF1ZXVlQWN0aW9uSW5wdXQpOiBKYUNsZWFyUXVldWVCdWlsZGVyIHtcbiAgICBjb25zdCBhY3Rpb24gPSBuZXcgSmFDbGVhclF1ZXVlQnVpbGRlcihvcHRpb25zKVxuICAgIHRoaXMuX2JpbmRlcihhY3Rpb24pXG4gICAgcmV0dXJuIGFjdGlvblxuICB9XG5cbiAgLyoqXG4gICAqIENyZWF0ZSBhIGRlbGV0ZS1xdWV1ZS1jb21tYW5kIGFjdGlvbiBidWlsZGVyXG4gICAqIEBwYXJhbSBvcHRpb25zIC0gQ29uZmlndXJhdGlvbiBmb3IgZGVsZXRlLXF1ZXVlLWNvbW1hbmQgYWN0aW9uXG4gICAqL1xuICBkZWxldGVRdWV1ZUNvbW1hbmQob3B0aW9uczogRGVsZXRlUXVldWVDb21tYW5kQWN0aW9uSW5wdXQpOiBKYURlbGV0ZVF1ZXVlQ29tbWFuZEJ1aWxkZXIge1xuICAgIGNvbnN0IGFjdGlvbiA9IG5ldyBKYURlbGV0ZVF1ZXVlQ29tbWFuZEJ1aWxkZXIob3B0aW9ucylcbiAgICB0aGlzLl9iaW5kZXIoYWN0aW9uKVxuICAgIHJldHVybiBhY3Rpb25cbiAgfVxuXG4gIC8qKlxuICAgKiBDcmVhdGUgYSByZXRyeS1xdWV1ZS1jb21tYW5kIGFjdGlvbiBidWlsZGVyXG4gICAqIEBwYXJhbSBvcHRpb25zIC0gQ29uZmlndXJhdGlvbiBmb3IgcmV0cnktcXVldWUtY29tbWFuZCBhY3Rpb25cbiAgICovXG4gIHJldHJ5UXVldWVDb21tYW5kKG9wdGlvbnM6IFJldHJ5UXVldWVDb21tYW5kQWN0aW9uSW5wdXQpOiBKYVJldHJ5UXVldWVDb21tYW5kQnVpbGRlciB7XG4gICAgY29uc3QgYWN0aW9uID0gbmV3IEphUmV0cnlRdWV1ZUNvbW1hbmRCdWlsZGVyKG9wdGlvbnMpXG4gICAgdGhpcy5fYmluZGVyKGFjdGlvbilcbiAgICByZXR1cm4gYWN0aW9uXG4gIH1cblxuICAvKipcbiAgICogQ3JlYXRlIGEgZGVsZXRlLXN5bmMtc2NvcGUgYWN0aW9uIGJ1aWxkZXJcbiAgICogQHBhcmFtIG9wdGlvbnMgLSBDb25maWd1cmF0aW9uIGZvciB0aGUgZGVsZXRlLXN5bmMtc2NvcGUgYWN0aW9uXG4gICAqL1xuICBkZWxldGVTeW5jU2NvcGUob3B0aW9uczogRGVsZXRlU3luY1Njb3BlQWN0aW9uSW5wdXQpOiBKYURlbGV0ZVN5bmNTY29wZUJ1aWxkZXIge1xuICAgIGNvbnN0IGFjdGlvbiA9IG5ldyBKYURlbGV0ZVN5bmNTY29wZUJ1aWxkZXIob3B0aW9ucylcbiAgICB0aGlzLl9iaW5kZXIoYWN0aW9uKVxuICAgIHJldHVybiBhY3Rpb25cbiAgfVxuXG4gIC8qKlxuICAgKiBDcmVhdGUgYSBkZWxldGUtc3luYy1zdGF0dXMgYWN0aW9uIGJ1aWxkZXJcbiAgICogQHBhcmFtIG9wdGlvbnMgLSBDb25maWd1cmF0aW9uIGZvciB0aGUgZGVsZXRlLXN5bmMtc3RhdHVzIGFjdGlvblxuICAgKi9cbiAgZGVsZXRlU3luY1N0YXR1cyhvcHRpb25zOiBEZWxldGVTeW5jU3RhdHVzQWN0aW9uSW5wdXQpOiBKYURlbGV0ZVN5bmNTdGF0dXNCdWlsZGVyIHtcbiAgICBjb25zdCBhY3Rpb24gPSBuZXcgSmFEZWxldGVTeW5jU3RhdHVzQnVpbGRlcihvcHRpb25zKVxuICAgIHRoaXMuX2JpbmRlcihhY3Rpb24pXG4gICAgcmV0dXJuIGFjdGlvblxuICB9XG5cbiAgLyoqXG4gICAqIENyZWF0ZSBhIHN0YXJ0LXN5bmMtc2NvcGUgYWN0aW9uIGJ1aWxkZXJcbiAgICogQHBhcmFtIG9wdGlvbnMgLSBDb25maWd1cmF0aW9uIG9wdGlvbnMgZm9yIHRoZSBhY3Rpb25cbiAgICovXG4gIHN0YXJ0U3luY1Njb3BlKG9wdGlvbnM6IFN0YXJ0U3luY1Njb3BlQWN0aW9uSW5wdXQpOiBKYVN0YXJ0U3luY1Njb3BlQnVpbGRlciB7XG4gICAgY29uc3QgYWN0aW9uID0gbmV3IEphU3RhcnRTeW5jU2NvcGVCdWlsZGVyKG9wdGlvbnMpXG4gICAgdGhpcy5fYmluZGVyKGFjdGlvbilcbiAgICByZXR1cm4gYWN0aW9uXG4gIH1cblxuICAvKipcbiAgICogQ3JlYXRlIGFuIGV4ZWN1dGUtYWN0aW9uIGFjdGlvbiBidWlsZGVyXG4gICAqIEBwYXJhbSBvcHRpb25zIC0gQ29uZmlndXJhdGlvbiBvcHRpb25zIGZvciBleGVjdXRlLWFjdGlvblxuICAgKi9cbiAgZXhlY3V0ZUFjdGlvbihvcHRpb25zOiBFeGVjdXRlQWN0aW9uQWN0aW9uSW5wdXQpOiBKYUV4ZWN1dGVBY3Rpb25CdWlsZGVyIHtcbiAgICBjb25zdCBhY3Rpb24gPSBuZXcgSmFFeGVjdXRlQWN0aW9uQnVpbGRlcihvcHRpb25zKVxuICAgIHRoaXMuX2JpbmRlcihhY3Rpb24pXG4gICAgcmV0dXJuIGFjdGlvblxuICB9XG5cbiAgLyoqXG4gICAqIENyZWF0ZSBhbiBleGVjdXRlLWVudGl0aWVzIGFjdGlvbiBidWlsZGVyXG4gICAqIEBwYXJhbSBvcHRpb25zIC0gQ29uZmlndXJhdGlvbiBmb3IgZXhlY3V0ZS1lbnRpdGllcyBhY3Rpb25cbiAgICovXG4gIGV4ZWN1dGVFbnRpdGllcyhvcHRpb25zOiBFeGVjdXRlRW50aXRpZXNJbnB1dCk6IEphRXhlY3V0ZUVudGl0aWVzQnVpbGRlciB7XG4gICAgY29uc3QgYWN0aW9uID0gbmV3IEphRXhlY3V0ZUVudGl0aWVzQnVpbGRlcihvcHRpb25zKVxuICAgIHRoaXMuX2JpbmRlcihhY3Rpb24pXG4gICAgcmV0dXJuIGFjdGlvblxuICB9XG5cbiAgLyoqXG4gICAqIENyZWF0ZSBhIGZpbmQtcmVwbGFjZSBhY3Rpb24gYnVpbGRlclxuICAgKiBAcGFyYW0gb3B0aW9ucyAtIENvbmZpZ3VyYXRpb24gZm9yIGZpbmQtcmVwbGFjZSBhY3Rpb25cbiAgICovXG4gIGZpbmRSZXBsYWNlKG9wdGlvbnM6IEZpbmRSZXBsYWNlQWN0aW9uSW5wdXQpOiBKYUZpbmRSZXBsYWNlQnVpbGRlciB7XG4gICAgY29uc3QgYWN0aW9uID0gbmV3IEphRmluZFJlcGxhY2VCdWlsZGVyKG9wdGlvbnMpXG4gICAgdGhpcy5fYmluZGVyKGFjdGlvbilcbiAgICByZXR1cm4gYWN0aW9uXG4gIH1cblxuICAvKipcbiAgICogQ3JlYXRlIGEgZ2VuZXJhdGUtZmlsZSBhY3Rpb24gYnVpbGRlclxuICAgKiBAcGFyYW0gb3B0aW9ucyAtIENvbmZpZ3VyYXRpb24gZm9yIGdlbmVyYXRlLWZpbGUgYWN0aW9uXG4gICAqL1xuICBnZW5lcmF0ZUZpbGUob3B0aW9uczogR2VuZXJhdGVGaWxlQWN0aW9uSW5wdXQpOiBKYUdlbmVyYXRlRmlsZUJ1aWxkZXIge1xuICAgIGNvbnN0IGFjdGlvbiA9IG5ldyBKYUdlbmVyYXRlRmlsZUJ1aWxkZXIob3B0aW9ucylcbiAgICB0aGlzLl9iaW5kZXIoYWN0aW9uKVxuICAgIHJldHVybiBhY3Rpb25cbiAgfVxuXG4gIC8qKlxuICAgKiBDcmVhdGUgYSBnZW5lcmF0ZS1wZGYgYWN0aW9uIGJ1aWxkZXJcbiAgICogQHBhcmFtIG9wdGlvbnMgLSBPcHRpb25zIGZvciBQREYgZ2VuZXJhdGlvblxuICAgKiBAcGFyYW0gb3B0aW9ucy5maWxlTmFtZSAtIFBERiBmaWxlIG5hbWVcbiAgICogQHBhcmFtIG9wdGlvbnMuaHRtbCAtIEhUTUwgY29udGVudFxuICAgKiBAcGFyYW0gb3B0aW9ucy5pbnN0YW5jZUlkIC0gSW5zdGFuY2UgSUQgZm9yIHRyYWNraW5nXG4gICAqIEBwYXJhbSBvcHRpb25zLnBhZ2UgLSBPcHRpb25hbCBwYWdlIHNpemUsIG9yaWVudGF0aW9uLCBhbmQgbWFyZ2luc1xuICAgKi9cbiAgZ2VuZXJhdGVQZGYob3B0aW9uczoge1xuICAgIHJlYWRvbmx5IGZpbGVOYW1lOiBzdHJpbmcgfCBFeHByZXNzaW9uXG4gICAgcmVhZG9ubHkgaHRtbDogc3RyaW5nIHwgRXhwcmVzc2lvblxuICAgIHJlYWRvbmx5IGluc3RhbmNlSWQ/OiBzdHJpbmcgfCBLZWdJbnN0YW5jZUlkXG4gICAgcmVhZG9ubHkgcGFnZT86IFBkZlBhZ2VPcHRpb25zXG4gIH0pOiBKYUdlbmVyYXRlUGRmQnVpbGRlciB7XG4gICAgY29uc3QgYWN0aW9uID0gbmV3IEphR2VuZXJhdGVQZGZCdWlsZGVyKG9wdGlvbnMpXG4gICAgdGhpcy5fYmluZGVyKGFjdGlvbilcbiAgICByZXR1cm4gYWN0aW9uXG4gIH1cblxuICAvKipcbiAgICogQ3JlYXRlIGFuIG9wZW4tYXBwLXNldHRpbmdzIGFjdGlvbiBidWlsZGVyXG4gICAqIEBwYXJhbSBvcHRpb25zIC0gQ29uZmlndXJhdGlvbiBmb3Igb3Blbi1hcHAtc2V0dGluZ3MgYWN0aW9uXG4gICAqL1xuICBvcGVuQXBwU2V0dGluZ3Mob3B0aW9uczogT3BlbkFwcFNldHRpbmdzQWN0aW9uSW5wdXQgPSB7fSk6IEphT3BlbkFwcFNldHRpbmdzQnVpbGRlciB7XG4gICAgY29uc3QgYWN0aW9uID0gbmV3IEphT3BlbkFwcFNldHRpbmdzQnVpbGRlcihvcHRpb25zKVxuICAgIHRoaXMuX2JpbmRlcihhY3Rpb24pXG4gICAgcmV0dXJuIGFjdGlvblxuICB9XG5cbiAgLyoqXG4gICAqIENyZWF0ZSBhbiBvcGVuLW1hcCBhY3Rpb24gYnVpbGRlclxuICAgKiBAcGFyYW0gb3B0aW9ucyAtIENvbmZpZ3VyYXRpb24gZm9yIHRoZSBvcGVuLW1hcCBhY3Rpb25cbiAgICovXG4gIG9wZW5NYXAob3B0aW9uczogT3Blbk1hcEFjdGlvbklucHV0KTogSmFPcGVuTWFwQnVpbGRlciB7XG4gICAgY29uc3QgYWN0aW9uID0gbmV3IEphT3Blbk1hcEJ1aWxkZXIob3B0aW9ucylcbiAgICB0aGlzLl9iaW5kZXIoYWN0aW9uKVxuICAgIHJldHVybiBhY3Rpb25cbiAgfVxuXG4gIC8qKlxuICAgKiBDcmVhdGUgYW4gb3Blbi1zY2FubmVyIGFjdGlvbiBidWlsZGVyXG4gICAqIEBwYXJhbSBvcHRpb25zIC0gT3BlbiBzY2FubmVyIGFjdGlvbiBjb25maWd1cmF0aW9uXG4gICAqL1xuICBvcGVuU2Nhbm5lcihvcHRpb25zOiBPcGVuU2Nhbm5lckFjdGlvbklucHV0KTogSmFPcGVuU2Nhbm5lckJ1aWxkZXIge1xuICAgIGNvbnN0IGFjdGlvbiA9IG5ldyBKYU9wZW5TY2FubmVyQnVpbGRlcihvcHRpb25zKVxuICAgIHRoaXMuX2JpbmRlcihhY3Rpb24pXG4gICAgcmV0dXJuIGFjdGlvblxuICB9XG5cbiAgLyoqXG4gICAqIENyZWF0ZSBhIHByaW50IGFjdGlvbiBidWlsZGVyXG4gICAqIEBwYXJhbSBvcHRpb25zIC0gUHJpbnQgYWN0aW9uIGNvbmZpZ3VyYXRpb25cbiAgICovXG4gIHByaW50KG9wdGlvbnM6IFByaW50QWN0aW9uSW5wdXQpOiBKYVByaW50QnVpbGRlciB7XG4gICAgY29uc3QgYWN0aW9uID0gbmV3IEphUHJpbnRCdWlsZGVyKG9wdGlvbnMpXG4gICAgdGhpcy5fYmluZGVyKGFjdGlvbilcbiAgICByZXR1cm4gYWN0aW9uXG4gIH1cblxuICAvKipcbiAgICogQ3JlYXRlIGEgc2hhcmUgYWN0aW9uIGJ1aWxkZXJcbiAgICogQHBhcmFtIG9wdGlvbnMgLSBDb25maWd1cmF0aW9uIG9wdGlvbnMgZm9yIHRoZSBzaGFyZSBhY3Rpb25cbiAgICovXG4gIHNoYXJlKG9wdGlvbnM6IFNoYXJlQWN0aW9uSW5wdXQpOiBKYVNoYXJlQnVpbGRlciB7XG4gICAgY29uc3QgYWN0aW9uID0gbmV3IEphU2hhcmVCdWlsZGVyKG9wdGlvbnMpXG4gICAgdGhpcy5fYmluZGVyKGFjdGlvbilcbiAgICByZXR1cm4gYWN0aW9uXG4gIH1cblxuICAvKipcbiAgICogQ3JlYXRlIGEgc2hvdy1hbGVydCBhY3Rpb24gYnVpbGRlclxuICAgKiBAcGFyYW0gb3B0aW9ucyAtIENvbmZpZ3VyYXRpb24gZm9yIHRoZSBzaG93LWFsZXJ0IGFjdGlvbiAob3B0aW9uYWwpXG4gICAqL1xuICBzaG93QWxlcnQob3B0aW9uczogU2hvd0FsZXJ0QWN0aW9uSW5wdXQgPSB7fSk6IEphU2hvd0FsZXJ0QnVpbGRlciB7XG4gICAgY29uc3QgYWN0aW9uID0gbmV3IEphU2hvd0FsZXJ0QnVpbGRlcihvcHRpb25zKVxuICAgIHRoaXMuX2JpbmRlcihhY3Rpb24pXG4gICAgcmV0dXJuIGFjdGlvblxuICB9XG5cbiAgLyoqXG4gICAqIENyZWF0ZSBhIHN0YXJ0LWxvY2F0aW9uLXNoYXJpbmcgYWN0aW9uIGJ1aWxkZXJcbiAgICogQHBhcmFtIG9wdGlvbnMgLSBDb25maWd1cmF0aW9uIG9wdGlvbnMgZm9yIHN0YXJ0LWxvY2F0aW9uLXNoYXJpbmcgYWN0aW9uXG4gICAqL1xuICBzdGFydExvY2F0aW9uU2hhcmluZyhvcHRpb25zOiBTdGFydExvY2F0aW9uU2hhcmluZ0FjdGlvbklucHV0KTogSmFTdGFydExvY2F0aW9uU2hhcmluZ0J1aWxkZXIge1xuICAgIGNvbnN0IGFjdGlvbiA9IG5ldyBKYVN0YXJ0TG9jYXRpb25TaGFyaW5nQnVpbGRlcihvcHRpb25zKVxuICAgIHRoaXMuX2JpbmRlcihhY3Rpb24pXG4gICAgcmV0dXJuIGFjdGlvblxuICB9XG5cbiAgLyoqXG4gICAqIENyZWF0ZSBhIHN0b3AtbG9jYXRpb24tc2hhcmluZyBhY3Rpb24gYnVpbGRlclxuICAgKiBAcGFyYW0gb3B0aW9ucyAtIENvbmZpZ3VyYXRpb24gb3B0aW9ucyBmb3Igc3RvcC1sb2NhdGlvbi1zaGFyaW5nIGFjdGlvblxuICAgKi9cbiAgc3RvcExvY2F0aW9uU2hhcmluZyhvcHRpb25zPzogU3RvcExvY2F0aW9uU2hhcmluZ0FjdGlvbklucHV0KTogSmFTdG9wTG9jYXRpb25TaGFyaW5nQnVpbGRlciB7XG4gICAgY29uc3QgYWN0aW9uID0gbmV3IEphU3RvcExvY2F0aW9uU2hhcmluZ0J1aWxkZXIob3B0aW9ucylcbiAgICB0aGlzLl9iaW5kZXIoYWN0aW9uKVxuICAgIHJldHVybiBhY3Rpb25cbiAgfVxuXG4gIC8qKlxuICAgKiBDcmVhdGUgYW4gdXBkYXRlLXByb2ZpbGUgYWN0aW9uIGJ1aWxkZXJcbiAgICogQHBhcmFtIG9wdGlvbnMgLSBDb25maWd1cmF0aW9uIG9wdGlvbnMgZm9yIHRoZSB1cGRhdGUtcHJvZmlsZSBhY3Rpb25cbiAgICovXG4gIHVwZGF0ZVByb2ZpbGUob3B0aW9uczogVXBkYXRlUHJvZmlsZUFjdGlvbklucHV0KTogSmFVcGRhdGVQcm9maWxlQnVpbGRlciB7XG4gICAgY29uc3QgYWN0aW9uID0gbmV3IEphVXBkYXRlUHJvZmlsZUJ1aWxkZXIob3B0aW9ucylcbiAgICB0aGlzLl9iaW5kZXIoYWN0aW9uKVxuICAgIHJldHVybiBhY3Rpb25cbiAgfVxufVxuXG5leHBvcnQgY2xhc3MgSmFJbkJhY2tncm91bmRGYWN0b3J5T25lIGV4dGVuZHMgSmFJbkJhY2tncm91bmRGYWN0b3J5IHtcbiAgcHJpdmF0ZSBfYWN0aW9uPzogQWN0aW9uQnVpbGRlclxuXG4gIHN0YXRpYyBvbmUoKTogSmFJbkJhY2tncm91bmRGYWN0b3J5T25lIHtcbiAgICBjb25zdCBmYWN0b3J5ID0gbmV3IEphSW5CYWNrZ3JvdW5kRmFjdG9yeU9uZSgoYnVpbGRlcjogQWN0aW9uQnVpbGRlcikgPT4ge1xuICAgICAgZmFjdG9yeS5fYWN0aW9uID0gYnVpbGRlclxuICAgIH0pXG4gICAgcmV0dXJuIGZhY3RvcnlcbiAgfVxuXG4gIGJ1aWxkKCk6IEphSW5CYWNrZ3JvdW5kIHwgdW5kZWZpbmVkIHtcbiAgICByZXR1cm4gdGhpcy5fYWN0aW9uPy5idWlsZCgpXG4gIH1cbn1cbiJdfQ==
@@ -1,9 +1,9 @@
1
1
  {
2
2
  "version": "2.0.0",
3
- "sourceHash": "2fa59225706df4ca55223db15a249a58",
4
- "timestamp": 1776261749204,
3
+ "sourceHash": "5242d28580a381ef302b7e6b74371775",
4
+ "timestamp": 1778854905277,
5
5
  "stats": {
6
6
  "inputFiles": 423,
7
- "extractionTimeMs": 118
7
+ "extractionTimeMs": 462
8
8
  }
9
9
  }
@@ -12676,6 +12676,24 @@
12676
12676
  html: '=@ctx.datasources.certificateTemplate.html',
12677
12677
  when: '=@ctx.jig.inputs.recipient.qualified',
12678
12678
  })
12679
+ - id: generate-pdf-example-14
12680
+ name: Page Configuration
12681
+ category: action
12682
+ tags:
12683
+ - action
12684
+ - background
12685
+ - generate-pdf
12686
+ - page
12687
+ - size
12688
+ - orientation
12689
+ - margin
12690
+ description: Generate PDF with explicit page size, orientation, and margin
12691
+ code: |-
12692
+ const generate = backgroundActions.generatePdf({
12693
+ fileName: 'configured.pdf',
12694
+ html: '<h1>Configured</h1>',
12695
+ page: { size: 'a4', orientation: 'landscape', margin: 36 },
12696
+ })
12679
12697
  - id: go-back.button-example-1
12680
12698
  name: Go Back Button (button)
12681
12699
  category: action