@openzeppelin/wizard 0.10.3 → 0.10.5

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 (51) hide show
  1. package/dist/contract.d.ts +13 -4
  2. package/dist/contract.d.ts.map +1 -1
  3. package/dist/contract.js +34 -11
  4. package/dist/contract.js.map +1 -1
  5. package/dist/environments/hardhat/polkadot/package-lock.json +12683 -0
  6. package/dist/environments/hardhat/polkadot/package.json +17 -0
  7. package/dist/get-versioned-remappings.js +3 -3
  8. package/dist/get-versioned-remappings.js.map +1 -1
  9. package/dist/governor.d.ts +2 -1
  10. package/dist/governor.d.ts.map +1 -1
  11. package/dist/governor.js.map +1 -1
  12. package/dist/index.d.ts +11 -2
  13. package/dist/index.d.ts.map +1 -1
  14. package/dist/index.js +20 -1
  15. package/dist/index.js.map +1 -1
  16. package/dist/options.d.ts +8 -0
  17. package/dist/options.d.ts.map +1 -1
  18. package/dist/options.js +1 -0
  19. package/dist/options.js.map +1 -1
  20. package/dist/print.d.ts.map +1 -1
  21. package/dist/print.js +41 -12
  22. package/dist/print.js.map +1 -1
  23. package/dist/stablecoin.d.ts +1 -0
  24. package/dist/stablecoin.d.ts.map +1 -1
  25. package/dist/stablecoin.js.map +1 -1
  26. package/dist/utils/imports-libraries.d.ts +1 -1
  27. package/dist/utils/imports-libraries.d.ts.map +1 -1
  28. package/dist/utils/imports-libraries.js +3 -3
  29. package/dist/utils/imports-libraries.js.map +1 -1
  30. package/dist/zip-hardhat-polkadot.d.ts +5 -0
  31. package/dist/zip-hardhat-polkadot.d.ts.map +1 -0
  32. package/dist/zip-hardhat-polkadot.js +115 -0
  33. package/dist/zip-hardhat-polkadot.js.map +1 -0
  34. package/dist/zip-hardhat.d.ts +21 -0
  35. package/dist/zip-hardhat.d.ts.map +1 -1
  36. package/dist/zip-hardhat.js +181 -115
  37. package/dist/zip-hardhat.js.map +1 -1
  38. package/package.json +2 -2
  39. package/src/contract.ts +49 -14
  40. package/src/environments/hardhat/polkadot/package-lock.json +12683 -0
  41. package/src/environments/hardhat/polkadot/package.json +17 -0
  42. package/src/get-versioned-remappings.ts +1 -1
  43. package/src/governor.ts +3 -1
  44. package/src/index.ts +13 -2
  45. package/src/options.ts +5 -0
  46. package/src/print.ts +44 -11
  47. package/src/stablecoin.ts +2 -0
  48. package/src/utils/imports-libraries.ts +2 -2
  49. package/src/zip-hardhat-polkadot.ts +86 -0
  50. package/src/zip-hardhat.ts +203 -129
  51. /package/{openzeppelin-contracts-version.d.ts → openzeppelin-contracts-version.json.d.ts} +0 -0
@@ -2,7 +2,9 @@ export interface Contract {
2
2
  name: string;
3
3
  license: string;
4
4
  parents: Parent[];
5
+ topLevelComments: string[];
5
6
  natspecTags: NatspecTag[];
7
+ libraries: Library[];
6
8
  imports: ImportContract[];
7
9
  functions: ContractFunction[];
8
10
  structs: ContractStruct[];
@@ -21,6 +23,7 @@ export interface Parent {
21
23
  contract: ImportContract;
22
24
  params: Value[];
23
25
  importOnly?: boolean;
26
+ constructionOnly?: boolean;
24
27
  }
25
28
  export interface ImportContract extends ReferencedContract {
26
29
  path: string;
@@ -29,9 +32,9 @@ export interface ReferencedContract {
29
32
  name: string;
30
33
  transpiled?: boolean;
31
34
  }
32
- export interface Using {
35
+ export interface Library {
33
36
  library: ImportContract;
34
- usingFor: string;
37
+ usingFor: Set<string>;
35
38
  }
36
39
  export interface BaseFunction {
37
40
  name: string;
@@ -48,12 +51,12 @@ export interface ContractFunction extends BaseFunction {
48
51
  final: boolean;
49
52
  comments: string[];
50
53
  }
54
+ export type FunctionKind = 'private' | 'internal' | 'public' | 'external';
51
55
  export interface ContractStruct {
52
56
  name: string;
53
57
  comments: string[];
54
58
  variables: string[];
55
59
  }
56
- export type FunctionKind = 'internal' | 'public' | 'private';
57
60
  export type FunctionMutability = (typeof mutabilityRank)[number];
58
61
  declare const mutabilityRank: readonly ["pure", "view", "nonpayable", "payable"];
59
62
  export interface FunctionArgument {
@@ -72,24 +75,30 @@ export declare class ContractBuilder implements Contract {
72
75
  readonly name: string;
73
76
  license: string;
74
77
  upgradeable: boolean;
75
- readonly using: Using[];
78
+ readonly topLevelComments: string[];
76
79
  readonly natspecTags: NatspecTag[];
77
80
  readonly constructorArgs: FunctionArgument[];
78
81
  readonly constructorCode: string[];
79
82
  readonly variableOrErrorMap: Map<string, VariableOrErrorDefinition>;
80
83
  private parentMap;
84
+ private libraryMap;
81
85
  private functionMap;
82
86
  private structMap;
83
87
  constructor(name: string);
84
88
  get parents(): Parent[];
85
89
  get imports(): ImportContract[];
90
+ get libraries(): Library[];
86
91
  get functions(): ContractFunction[];
87
92
  get structs(): ContractStruct[];
88
93
  get variableOrErrorDefinitions(): VariableOrErrorDefinition[];
94
+ private updateParentMap;
89
95
  addParent(contract: ImportContract, params?: Value[]): boolean;
90
96
  addImportOnly(contract: ImportContract): boolean;
97
+ addConstructionOnly(contract: ImportContract, params?: Value[]): boolean;
98
+ addLibrary(library: ImportContract, usingFor: string[]): boolean;
91
99
  addOverride(parent: ReferencedContract, baseFn: BaseFunction, mutability?: FunctionMutability): void;
92
100
  addModifier(modifier: string, baseFn: BaseFunction): void;
101
+ addTopLevelComment(comment: string): void;
93
102
  addNatspecTag(key: string, value: string): void;
94
103
  private addFunction;
95
104
  private addStruct;
@@ -1 +1 @@
1
- {"version":3,"file":"contract.d.ts","sourceRoot":"","sources":["../src/contract.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"contract.d.ts","sourceRoot":"","sources":["../src/contract.ts"],"names":[],"mappings":"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"}
package/dist/contract.js CHANGED
@@ -11,12 +11,13 @@ class ContractBuilder {
11
11
  constructor(name) {
12
12
  this.license = 'MIT';
13
13
  this.upgradeable = false;
14
- this.using = [];
14
+ this.topLevelComments = [];
15
15
  this.natspecTags = [];
16
16
  this.constructorArgs = [];
17
17
  this.constructorCode = [];
18
18
  this.variableOrErrorMap = new Map();
19
19
  this.parentMap = new Map();
20
+ this.libraryMap = new Map();
20
21
  this.functionMap = new Map();
21
22
  this.structMap = new Map();
22
23
  this.name = (0, to_identifier_1.toIdentifier)(name, true);
@@ -37,7 +38,12 @@ class ContractBuilder {
37
38
  });
38
39
  }
39
40
  get imports() {
40
- return [...[...this.parentMap.values()].map(p => p.contract), ...this.using.map(u => u.library)];
41
+ const parents = [...this.parentMap.values()].map(p => p.contract);
42
+ const libraries = [...this.libraryMap.values()].map(l => l.library);
43
+ return [...parents, ...libraries];
44
+ }
45
+ get libraries() {
46
+ return [...this.libraryMap.values()];
41
47
  }
42
48
  get functions() {
43
49
  return [...this.functionMap.values()];
@@ -48,19 +54,33 @@ class ContractBuilder {
48
54
  get variableOrErrorDefinitions() {
49
55
  return [...this.variableOrErrorMap.values()];
50
56
  }
51
- addParent(contract, params = []) {
57
+ updateParentMap(contract, params = [], flags = {}) {
52
58
  const present = this.parentMap.has(contract.name);
53
- this.parentMap.set(contract.name, { contract, params });
59
+ this.parentMap = new Map(this.parentMap).set(contract.name, { contract, params, ...flags });
54
60
  return !present;
55
61
  }
62
+ addParent(contract, params = []) {
63
+ return this.updateParentMap(contract, params);
64
+ }
56
65
  addImportOnly(contract) {
57
- const present = this.parentMap.has(contract.name);
58
- this.parentMap.set(contract.name, {
59
- contract,
60
- params: [],
61
- importOnly: true,
62
- });
63
- return !present;
66
+ return this.updateParentMap(contract, [], { importOnly: true });
67
+ }
68
+ addConstructionOnly(contract, params = []) {
69
+ return this.updateParentMap(contract, params, { constructionOnly: true });
70
+ }
71
+ addLibrary(library, usingFor) {
72
+ let modified = false;
73
+ if (this.libraryMap.has(library.name)) {
74
+ const existing = this.libraryMap.get(library.name);
75
+ const initialSize = existing.usingFor.size;
76
+ usingFor.forEach(type => existing.usingFor.add(type));
77
+ modified = existing.usingFor.size > initialSize;
78
+ }
79
+ else {
80
+ this.libraryMap.set(library.name, { library, usingFor: new Set(usingFor) });
81
+ modified = true;
82
+ }
83
+ return modified;
64
84
  }
65
85
  addOverride(parent, baseFn, mutability) {
66
86
  const fn = this.addFunction(baseFn);
@@ -73,6 +93,9 @@ class ContractBuilder {
73
93
  const fn = this.addFunction(baseFn);
74
94
  fn.modifiers.push(modifier);
75
95
  }
96
+ addTopLevelComment(comment) {
97
+ this.topLevelComments.push(comment);
98
+ }
76
99
  addNatspecTag(key, value) {
77
100
  // eslint-disable-next-line no-useless-escape
78
101
  if (!/^(@custom:)?[a-z][a-z\-]*$/.exec(key))
@@ -1 +1 @@
1
- {"version":3,"file":"contract.js","sourceRoot":"","sources":["../src/contract.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"contract.js","sourceRoot":"","sources":["../src/contract.ts"],"names":[],"mappings":";;;AAAA,yDAAqD;AAmErD,qBAAqB;AACrB,MAAM,cAAc,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,YAAY,EAAE,SAAS,CAAU,CAAC;AAE1E,SAAS,aAAa,CAAC,CAAqB,EAAE,CAAqB;IACjE,OAAO,cAAc,CAAC,IAAI,CAAC,GAAG,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,cAAc,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAE,CAAC;AACzF,CAAC;AAiBD,MAAa,eAAe;IAiB1B,YAAY,IAAY;QAfxB,YAAO,GAAW,KAAK,CAAC;QACxB,gBAAW,GAAG,KAAK,CAAC;QAEX,qBAAgB,GAAa,EAAE,CAAC;QAChC,gBAAW,GAAiB,EAAE,CAAC;QAE/B,oBAAe,GAAuB,EAAE,CAAC;QACzC,oBAAe,GAAa,EAAE,CAAC;QAE/B,uBAAkB,GAA2C,IAAI,GAAG,EAAqC,CAAC;QAC3G,cAAS,GAAwB,IAAI,GAAG,EAAkB,CAAC;QAC3D,eAAU,GAAyB,IAAI,GAAG,EAAmB,CAAC;QAC9D,gBAAW,GAAkC,IAAI,GAAG,EAAE,CAAC;QACvD,cAAS,GAAgC,IAAI,GAAG,EAAE,CAAC;QAGzD,IAAI,CAAC,IAAI,GAAG,IAAA,4BAAY,EAAC,IAAI,EAAE,IAAI,CAAC,CAAC;IACvC,CAAC;IAED,IAAI,OAAO;QACT,OAAO,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,CAAC;aAChC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC;aAC1B,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;YACb,IAAI,CAAC,CAAC,QAAQ,CAAC,IAAI,KAAK,eAAe,EAAE,CAAC;gBACxC,OAAO,CAAC,CAAC,CAAC;YACZ,CAAC;iBAAM,IAAI,CAAC,CAAC,QAAQ,CAAC,IAAI,KAAK,eAAe,EAAE,CAAC;gBAC/C,OAAO,CAAC,CAAC;YACX,CAAC;iBAAM,CAAC;gBACN,OAAO,CAAC,CAAC;YACX,CAAC;QACH,CAAC,CAAC,CAAC;IACP,CAAC;IAED,IAAI,OAAO;QACT,MAAM,OAAO,GAAG,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;QAClE,MAAM,SAAS,GAAG,CAAC,GAAG,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;QACpE,OAAO,CAAC,GAAG,OAAO,EAAE,GAAG,SAAS,CAAC,CAAC;IACpC,CAAC;IAED,IAAI,SAAS;QACX,OAAO,CAAC,GAAG,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE,CAAC,CAAC;IACvC,CAAC;IAED,IAAI,SAAS;QACX,OAAO,CAAC,GAAG,IAAI,CAAC,WAAW,CAAC,MAAM,EAAE,CAAC,CAAC;IACxC,CAAC;IAED,IAAI,OAAO;QACT,OAAO,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,CAAC,CAAC;IACtC,CAAC;IAED,IAAI,0BAA0B;QAC5B,OAAO,CAAC,GAAG,IAAI,CAAC,kBAAkB,CAAC,MAAM,EAAE,CAAC,CAAC;IAC/C,CAAC;IAEO,eAAe,CACrB,QAAwB,EACxB,SAAkB,EAAE,EACpB,QAAkE,EAAE;QAEpE,MAAM,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;QAClD,IAAI,CAAC,SAAS,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE,GAAG,KAAK,EAAE,CAAC,CAAC;QAC5F,OAAO,CAAC,OAAO,CAAC;IAClB,CAAC;IAED,SAAS,CAAC,QAAwB,EAAE,SAAkB,EAAE;QACtD,OAAO,IAAI,CAAC,eAAe,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;IAChD,CAAC;IAED,aAAa,CAAC,QAAwB;QACpC,OAAO,IAAI,CAAC,eAAe,CAAC,QAAQ,EAAE,EAAE,EAAE,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC,CAAC;IAClE,CAAC;IAED,mBAAmB,CAAC,QAAwB,EAAE,SAAkB,EAAE;QAChE,OAAO,IAAI,CAAC,eAAe,CAAC,QAAQ,EAAE,MAAM,EAAE,EAAE,gBAAgB,EAAE,IAAI,EAAE,CAAC,CAAC;IAC5E,CAAC;IAED,UAAU,CAAC,OAAuB,EAAE,QAAkB;QACpD,IAAI,QAAQ,GAAG,KAAK,CAAC;QACrB,IAAI,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;YACtC,MAAM,QAAQ,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,CAAE,CAAC;YACpD,MAAM,WAAW,GAAG,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC;YAC3C,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC;YACtD,QAAQ,GAAG,QAAQ,CAAC,QAAQ,CAAC,IAAI,GAAG,WAAW,CAAC;QAClD,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,OAAO,EAAE,QAAQ,EAAE,IAAI,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;YAC5E,QAAQ,GAAG,IAAI,CAAC;QAClB,CAAC;QAED,OAAO,QAAQ,CAAC;IAClB,CAAC;IAED,WAAW,CAAC,MAA0B,EAAE,MAAoB,EAAE,UAA+B;QAC3F,MAAM,EAAE,GAAG,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;QACpC,EAAE,CAAC,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QACxB,IAAI,UAAU,EAAE,CAAC;YACf,EAAE,CAAC,UAAU,GAAG,aAAa,CAAC,EAAE,CAAC,UAAU,EAAE,UAAU,CAAC,CAAC;QAC3D,CAAC;IACH,CAAC;IAED,WAAW,CAAC,QAAgB,EAAE,MAAoB;QAChD,MAAM,EAAE,GAAG,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;QACpC,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IAC9B,CAAC;IAED,kBAAkB,CAAC,OAAe;QAChC,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IACtC,CAAC;IAED,aAAa,CAAC,GAAW,EAAE,KAAa;QACtC,6CAA6C;QAC7C,IAAI,CAAC,4BAA4B,CAAC,IAAI,CAAC,GAAG,CAAC;YAAE,MAAM,IAAI,KAAK,CAAC,wBAAwB,GAAG,EAAE,CAAC,CAAC;QAC5F,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,KAAK,EAAE,CAAC,CAAC;IACxC,CAAC;IAEO,WAAW,CAAC,MAAoB;QACtC,MAAM,SAAS,GAAG,CAAC,MAAM,CAAC,IAAI,EAAE,GAAG,EAAE,GAAG,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACpF,MAAM,GAAG,GAAG,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;QAC5C,IAAI,GAAG,KAAK,SAAS,EAAE,CAAC;YACtB,OAAO,GAAG,CAAC;QACb,CAAC;aAAM,CAAC;YACN,MAAM,EAAE,GAAqB;gBAC3B,QAAQ,EAAE,IAAI,GAAG,EAAsB;gBACvC,SAAS,EAAE,EAAE;gBACb,IAAI,EAAE,EAAE;gBACR,UAAU,EAAE,YAAY;gBACxB,KAAK,EAAE,KAAK;gBACZ,QAAQ,EAAE,EAAE;gBACZ,GAAG,MAAM;aACV,CAAC;YACF,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC;YACpC,OAAO,EAAE,CAAC;QACZ,CAAC;IACH,CAAC;IAEO,SAAS,CAAC,OAAuB;QACvC,MAAM,GAAG,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QAC7C,IAAI,GAAG,KAAK,SAAS,EAAE,CAAC;YACtB,OAAO,GAAG,CAAC;QACb,CAAC;aAAM,CAAC;YACN,MAAM,MAAM,GAAmB;gBAC7B,GAAG,OAAO;aACX,CAAC;YACF,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;YACzC,OAAO,MAAM,CAAC;QAChB,CAAC;IACH,CAAC;IAED,sBAAsB,CAAC,GAAqB;QAC1C,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACjC,CAAC;IAED,kBAAkB,CAAC,IAAY;QAC7B,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAClC,CAAC;IAED,eAAe,CAAC,IAAY,EAAE,MAAoB,EAAE,UAA+B;QACjF,MAAM,EAAE,GAAG,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;QACpC,IAAI,EAAE,CAAC,KAAK,EAAE,CAAC;YACb,MAAM,IAAI,KAAK,CAAC,YAAY,MAAM,CAAC,IAAI,uBAAuB,CAAC,CAAC;QAClE,CAAC;QACD,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACnB,IAAI,UAAU,EAAE,CAAC;YACf,EAAE,CAAC,UAAU,GAAG,aAAa,CAAC,EAAE,CAAC,UAAU,EAAE,UAAU,CAAC,CAAC;QAC3D,CAAC;IACH,CAAC;IAED,eAAe,CAAC,IAAc,EAAE,MAAoB,EAAE,UAA+B;QACnF,MAAM,EAAE,GAAG,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;QACpC,IAAI,EAAE,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACvB,MAAM,IAAI,KAAK,CAAC,YAAY,MAAM,CAAC,IAAI,sBAAsB,CAAC,CAAC;QACjE,CAAC;QACD,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,CAAC;QACtB,EAAE,CAAC,KAAK,GAAG,IAAI,CAAC;QAChB,IAAI,UAAU,EAAE,CAAC;YACf,EAAE,CAAC,UAAU,GAAG,UAAU,CAAC;QAC7B,CAAC;IACH,CAAC;IAED,mBAAmB,CAAC,QAAkB,EAAE,MAAoB;QAC1D,MAAM,EAAE,GAAG,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;QACpC,IAAI,EAAE,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC3B,MAAM,IAAI,KAAK,CAAC,YAAY,MAAM,CAAC,IAAI,uBAAuB,CAAC,CAAC;QAClE,CAAC;QACD,EAAE,CAAC,QAAQ,GAAG,QAAQ,CAAC;IACzB,CAAC;IAED;;OAEG;IACH,gBAAgB,CAAC,IAAY,EAAE,WAAoB;QACjD,IAAI,WAAW,EAAE,CAAC;YAChB,MAAM,IAAI,KAAK,CAAC,8FAA8F,CAAC,CAAC;QAClH,CAAC;aAAM,CAAC;YACN,OAAO,IAAI,CAAC,6BAA6B,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC;QACtD,CAAC;IACH,CAAC;IAED;;OAEG;IACH,uCAAuC,CAAC,IAAY,EAAE,QAAmB;QACvE,OAAO,IAAI,CAAC,6BAA6B,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,CAAC;IAChE,CAAC;IAEO,6BAA6B,CAAC,yBAAoD;QACxF,MAAM,OAAO,GAAG,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,yBAAyB,CAAC,IAAI,CAAC,CAAC;QAC5E,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,yBAAyB,CAAC,IAAI,EAAE,yBAAyB,CAAC,CAAC;QACvF,OAAO,CAAC,OAAO,CAAC;IAClB,CAAC;IAED,iBAAiB,CAAC,UAA0B,EAAE,IAAY;QACxD,IAAI,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;QACjD,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC;QACtC,CAAC;QACD,MAAM,OAAO,GAAG,MAAM,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;QAChD,IAAI,CAAC,OAAO;YAAE,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC1C,OAAO,CAAC,OAAO,CAAC;IAClB,CAAC;CACF;AA9ND,0CA8NC"}