@pulumiverse/gandi 0.0.8

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 (86) hide show
  1. package/LICENSE +202 -0
  2. package/README.md +407 -0
  3. package/config/index.d.ts +1 -0
  4. package/config/index.js +21 -0
  5. package/config/index.js.map +1 -0
  6. package/config/vars.d.ts +16 -0
  7. package/config/vars.js +31 -0
  8. package/config/vars.js.map +1 -0
  9. package/domains/dnssecKey.d.ts +84 -0
  10. package/domains/dnssecKey.js +67 -0
  11. package/domains/dnssecKey.js.map +1 -0
  12. package/domains/domain.d.ts +94 -0
  13. package/domains/domain.js +64 -0
  14. package/domains/domain.js.map +1 -0
  15. package/domains/getDomain.d.ts +38 -0
  16. package/domains/getDomain.js +22 -0
  17. package/domains/getDomain.js.map +1 -0
  18. package/domains/getGlueRecord.d.ts +50 -0
  19. package/domains/getGlueRecord.js +23 -0
  20. package/domains/getGlueRecord.js.map +1 -0
  21. package/domains/glueRecord.d.ts +96 -0
  22. package/domains/glueRecord.js +65 -0
  23. package/domains/glueRecord.js.map +1 -0
  24. package/domains/index.d.ts +6 -0
  25. package/domains/index.js +54 -0
  26. package/domains/index.js.map +1 -0
  27. package/domains/nameservers.d.ts +60 -0
  28. package/domains/nameservers.js +54 -0
  29. package/domains/nameservers.js.map +1 -0
  30. package/email/forwarding.d.ts +60 -0
  31. package/email/forwarding.js +57 -0
  32. package/email/forwarding.js.map +1 -0
  33. package/email/getMailbox.d.ts +46 -0
  34. package/email/getMailbox.js +23 -0
  35. package/email/getMailbox.js.map +1 -0
  36. package/email/index.d.ts +3 -0
  37. package/email/index.js +43 -0
  38. package/email/index.js.map +1 -0
  39. package/email/mailbox.d.ts +96 -0
  40. package/email/mailbox.js +66 -0
  41. package/email/mailbox.js.map +1 -0
  42. package/index.d.ts +8 -0
  43. package/index.js +47 -0
  44. package/index.js.map +1 -0
  45. package/livedns/domain.d.ts +81 -0
  46. package/livedns/domain.js +53 -0
  47. package/livedns/domain.js.map +1 -0
  48. package/livedns/getDomain.d.ts +34 -0
  49. package/livedns/getDomain.js +22 -0
  50. package/livedns/getDomain.js.map +1 -0
  51. package/livedns/getDomainNameserver.d.ts +38 -0
  52. package/livedns/getDomainNameserver.js +22 -0
  53. package/livedns/getDomainNameserver.js.map +1 -0
  54. package/livedns/index.d.ts +4 -0
  55. package/livedns/index.js +44 -0
  56. package/livedns/index.js.map +1 -0
  57. package/livedns/record.d.ts +116 -0
  58. package/livedns/record.js +73 -0
  59. package/livedns/record.js.map +1 -0
  60. package/package.json +30 -0
  61. package/package.json.bak +30 -0
  62. package/provider.d.ts +55 -0
  63. package/provider.js +51 -0
  64. package/provider.js.map +1 -0
  65. package/scripts/install-pulumi-plugin.js +26 -0
  66. package/simplehosting/index.d.ts +2 -0
  67. package/simplehosting/index.js +42 -0
  68. package/simplehosting/index.js.map +1 -0
  69. package/simplehosting/instance.d.ts +96 -0
  70. package/simplehosting/instance.js +69 -0
  71. package/simplehosting/instance.js.map +1 -0
  72. package/simplehosting/vhost.d.ts +92 -0
  73. package/simplehosting/vhost.js +63 -0
  74. package/simplehosting/vhost.js.map +1 -0
  75. package/types/index.d.ts +3 -0
  76. package/types/index.js +11 -0
  77. package/types/index.js.map +1 -0
  78. package/types/input.d.ts +243 -0
  79. package/types/input.js +5 -0
  80. package/types/input.js.map +1 -0
  81. package/types/output.d.ts +242 -0
  82. package/types/output.js +5 -0
  83. package/types/output.js.map +1 -0
  84. package/utilities.d.ts +4 -0
  85. package/utilities.js +57 -0
  86. package/utilities.js.map +1 -0
@@ -0,0 +1,243 @@
1
+ import * as pulumi from "@pulumi/pulumi";
2
+ export declare namespace domains {
3
+ interface DomainAdmin {
4
+ /**
5
+ * City for the contact
6
+ */
7
+ city: pulumi.Input<string>;
8
+ /**
9
+ * The two letter country code for the contact
10
+ */
11
+ country: pulumi.Input<string>;
12
+ /**
13
+ * Whether or not to obfuscate contact data in WHOIS
14
+ */
15
+ dataObfuscated?: pulumi.Input<boolean>;
16
+ /**
17
+ * Contact email address
18
+ */
19
+ email: pulumi.Input<string>;
20
+ /**
21
+ * Extra parameters, needed for some jurisdictions
22
+ */
23
+ extraParameters?: pulumi.Input<{
24
+ [key: string]: pulumi.Input<string>;
25
+ }>;
26
+ /**
27
+ * Family name of the contact
28
+ */
29
+ familyName: pulumi.Input<string>;
30
+ /**
31
+ * Given name of the contact
32
+ */
33
+ givenName: pulumi.Input<string>;
34
+ /**
35
+ * Whether or not to obfuscate contact email in WHOIS
36
+ */
37
+ mailObfuscated?: pulumi.Input<boolean>;
38
+ /**
39
+ * The legal name of the organisation. Required for types other than person
40
+ */
41
+ organisation?: pulumi.Input<string>;
42
+ /**
43
+ * Phone number for the contact
44
+ */
45
+ phone: pulumi.Input<string>;
46
+ /**
47
+ * The state code for the contact
48
+ */
49
+ state?: pulumi.Input<string>;
50
+ /**
51
+ * Street Address of the contact
52
+ */
53
+ streetAddr: pulumi.Input<string>;
54
+ /**
55
+ * One of 'person', 'company', 'association', 'public body', or 'reseller'
56
+ */
57
+ type: pulumi.Input<string>;
58
+ /**
59
+ * Postal Code/Zipcode of the contact
60
+ */
61
+ zip: pulumi.Input<string>;
62
+ }
63
+ interface DomainBilling {
64
+ /**
65
+ * City for the contact
66
+ */
67
+ city: pulumi.Input<string>;
68
+ /**
69
+ * The two letter country code for the contact
70
+ */
71
+ country: pulumi.Input<string>;
72
+ /**
73
+ * Whether or not to obfuscate contact data in WHOIS
74
+ */
75
+ dataObfuscated?: pulumi.Input<boolean>;
76
+ /**
77
+ * Contact email address
78
+ */
79
+ email: pulumi.Input<string>;
80
+ /**
81
+ * Extra parameters, needed for some jurisdictions
82
+ */
83
+ extraParameters?: pulumi.Input<{
84
+ [key: string]: pulumi.Input<string>;
85
+ }>;
86
+ /**
87
+ * Family name of the contact
88
+ */
89
+ familyName: pulumi.Input<string>;
90
+ /**
91
+ * Given name of the contact
92
+ */
93
+ givenName: pulumi.Input<string>;
94
+ /**
95
+ * Whether or not to obfuscate contact email in WHOIS
96
+ */
97
+ mailObfuscated?: pulumi.Input<boolean>;
98
+ /**
99
+ * The legal name of the organisation. Required for types other than person
100
+ */
101
+ organisation?: pulumi.Input<string>;
102
+ /**
103
+ * Phone number for the contact
104
+ */
105
+ phone: pulumi.Input<string>;
106
+ /**
107
+ * The state code for the contact
108
+ */
109
+ state?: pulumi.Input<string>;
110
+ /**
111
+ * Street Address of the contact
112
+ */
113
+ streetAddr: pulumi.Input<string>;
114
+ /**
115
+ * One of 'person', 'company', 'association', 'public body', or 'reseller'
116
+ */
117
+ type: pulumi.Input<string>;
118
+ /**
119
+ * Postal Code/Zipcode of the contact
120
+ */
121
+ zip: pulumi.Input<string>;
122
+ }
123
+ interface DomainOwner {
124
+ /**
125
+ * City for the contact
126
+ */
127
+ city: pulumi.Input<string>;
128
+ /**
129
+ * The two letter country code for the contact
130
+ */
131
+ country: pulumi.Input<string>;
132
+ /**
133
+ * Whether or not to obfuscate contact data in WHOIS
134
+ */
135
+ dataObfuscated?: pulumi.Input<boolean>;
136
+ /**
137
+ * Contact email address
138
+ */
139
+ email: pulumi.Input<string>;
140
+ /**
141
+ * Extra parameters, needed for some jurisdictions
142
+ */
143
+ extraParameters?: pulumi.Input<{
144
+ [key: string]: pulumi.Input<string>;
145
+ }>;
146
+ /**
147
+ * Family name of the contact
148
+ */
149
+ familyName: pulumi.Input<string>;
150
+ /**
151
+ * Given name of the contact
152
+ */
153
+ givenName: pulumi.Input<string>;
154
+ /**
155
+ * Whether or not to obfuscate contact email in WHOIS
156
+ */
157
+ mailObfuscated?: pulumi.Input<boolean>;
158
+ /**
159
+ * The legal name of the organisation. Required for types other than person
160
+ */
161
+ organisation?: pulumi.Input<string>;
162
+ /**
163
+ * Phone number for the contact
164
+ */
165
+ phone: pulumi.Input<string>;
166
+ /**
167
+ * The state code for the contact
168
+ */
169
+ state?: pulumi.Input<string>;
170
+ /**
171
+ * Street Address of the contact
172
+ */
173
+ streetAddr: pulumi.Input<string>;
174
+ /**
175
+ * One of 'person', 'company', 'association', 'public body', or 'reseller'
176
+ */
177
+ type: pulumi.Input<string>;
178
+ /**
179
+ * Postal Code/Zipcode of the contact
180
+ */
181
+ zip: pulumi.Input<string>;
182
+ }
183
+ interface DomainTech {
184
+ /**
185
+ * City for the contact
186
+ */
187
+ city: pulumi.Input<string>;
188
+ /**
189
+ * The two letter country code for the contact
190
+ */
191
+ country: pulumi.Input<string>;
192
+ /**
193
+ * Whether or not to obfuscate contact data in WHOIS
194
+ */
195
+ dataObfuscated?: pulumi.Input<boolean>;
196
+ /**
197
+ * Contact email address
198
+ */
199
+ email: pulumi.Input<string>;
200
+ /**
201
+ * Extra parameters, needed for some jurisdictions
202
+ */
203
+ extraParameters?: pulumi.Input<{
204
+ [key: string]: pulumi.Input<string>;
205
+ }>;
206
+ /**
207
+ * Family name of the contact
208
+ */
209
+ familyName: pulumi.Input<string>;
210
+ /**
211
+ * Given name of the contact
212
+ */
213
+ givenName: pulumi.Input<string>;
214
+ /**
215
+ * Whether or not to obfuscate contact email in WHOIS
216
+ */
217
+ mailObfuscated?: pulumi.Input<boolean>;
218
+ /**
219
+ * The legal name of the organisation. Required for types other than person
220
+ */
221
+ organisation?: pulumi.Input<string>;
222
+ /**
223
+ * Phone number for the contact
224
+ */
225
+ phone: pulumi.Input<string>;
226
+ /**
227
+ * The state code for the contact
228
+ */
229
+ state?: pulumi.Input<string>;
230
+ /**
231
+ * Street Address of the contact
232
+ */
233
+ streetAddr: pulumi.Input<string>;
234
+ /**
235
+ * One of 'person', 'company', 'association', 'public body', or 'reseller'
236
+ */
237
+ type: pulumi.Input<string>;
238
+ /**
239
+ * Postal Code/Zipcode of the contact
240
+ */
241
+ zip: pulumi.Input<string>;
242
+ }
243
+ }
package/types/input.js ADDED
@@ -0,0 +1,5 @@
1
+ "use strict";
2
+ // *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. ***
3
+ // *** Do not edit by hand unless you're certain you know what you are doing! ***
4
+ Object.defineProperty(exports, "__esModule", { value: true });
5
+ //# sourceMappingURL=input.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"input.js","sourceRoot":"","sources":["../../types/input.ts"],"names":[],"mappings":";AAAA,wFAAwF;AACxF,iFAAiF"}
@@ -0,0 +1,242 @@
1
+ export declare namespace domains {
2
+ interface DomainAdmin {
3
+ /**
4
+ * City for the contact
5
+ */
6
+ city: string;
7
+ /**
8
+ * The two letter country code for the contact
9
+ */
10
+ country: string;
11
+ /**
12
+ * Whether or not to obfuscate contact data in WHOIS
13
+ */
14
+ dataObfuscated?: boolean;
15
+ /**
16
+ * Contact email address
17
+ */
18
+ email: string;
19
+ /**
20
+ * Extra parameters, needed for some jurisdictions
21
+ */
22
+ extraParameters?: {
23
+ [key: string]: string;
24
+ };
25
+ /**
26
+ * Family name of the contact
27
+ */
28
+ familyName: string;
29
+ /**
30
+ * Given name of the contact
31
+ */
32
+ givenName: string;
33
+ /**
34
+ * Whether or not to obfuscate contact email in WHOIS
35
+ */
36
+ mailObfuscated?: boolean;
37
+ /**
38
+ * The legal name of the organisation. Required for types other than person
39
+ */
40
+ organisation?: string;
41
+ /**
42
+ * Phone number for the contact
43
+ */
44
+ phone: string;
45
+ /**
46
+ * The state code for the contact
47
+ */
48
+ state?: string;
49
+ /**
50
+ * Street Address of the contact
51
+ */
52
+ streetAddr: string;
53
+ /**
54
+ * One of 'person', 'company', 'association', 'public body', or 'reseller'
55
+ */
56
+ type: string;
57
+ /**
58
+ * Postal Code/Zipcode of the contact
59
+ */
60
+ zip: string;
61
+ }
62
+ interface DomainBilling {
63
+ /**
64
+ * City for the contact
65
+ */
66
+ city: string;
67
+ /**
68
+ * The two letter country code for the contact
69
+ */
70
+ country: string;
71
+ /**
72
+ * Whether or not to obfuscate contact data in WHOIS
73
+ */
74
+ dataObfuscated?: boolean;
75
+ /**
76
+ * Contact email address
77
+ */
78
+ email: string;
79
+ /**
80
+ * Extra parameters, needed for some jurisdictions
81
+ */
82
+ extraParameters?: {
83
+ [key: string]: string;
84
+ };
85
+ /**
86
+ * Family name of the contact
87
+ */
88
+ familyName: string;
89
+ /**
90
+ * Given name of the contact
91
+ */
92
+ givenName: string;
93
+ /**
94
+ * Whether or not to obfuscate contact email in WHOIS
95
+ */
96
+ mailObfuscated?: boolean;
97
+ /**
98
+ * The legal name of the organisation. Required for types other than person
99
+ */
100
+ organisation?: string;
101
+ /**
102
+ * Phone number for the contact
103
+ */
104
+ phone: string;
105
+ /**
106
+ * The state code for the contact
107
+ */
108
+ state?: string;
109
+ /**
110
+ * Street Address of the contact
111
+ */
112
+ streetAddr: string;
113
+ /**
114
+ * One of 'person', 'company', 'association', 'public body', or 'reseller'
115
+ */
116
+ type: string;
117
+ /**
118
+ * Postal Code/Zipcode of the contact
119
+ */
120
+ zip: string;
121
+ }
122
+ interface DomainOwner {
123
+ /**
124
+ * City for the contact
125
+ */
126
+ city: string;
127
+ /**
128
+ * The two letter country code for the contact
129
+ */
130
+ country: string;
131
+ /**
132
+ * Whether or not to obfuscate contact data in WHOIS
133
+ */
134
+ dataObfuscated?: boolean;
135
+ /**
136
+ * Contact email address
137
+ */
138
+ email: string;
139
+ /**
140
+ * Extra parameters, needed for some jurisdictions
141
+ */
142
+ extraParameters?: {
143
+ [key: string]: string;
144
+ };
145
+ /**
146
+ * Family name of the contact
147
+ */
148
+ familyName: string;
149
+ /**
150
+ * Given name of the contact
151
+ */
152
+ givenName: string;
153
+ /**
154
+ * Whether or not to obfuscate contact email in WHOIS
155
+ */
156
+ mailObfuscated?: boolean;
157
+ /**
158
+ * The legal name of the organisation. Required for types other than person
159
+ */
160
+ organisation?: string;
161
+ /**
162
+ * Phone number for the contact
163
+ */
164
+ phone: string;
165
+ /**
166
+ * The state code for the contact
167
+ */
168
+ state?: string;
169
+ /**
170
+ * Street Address of the contact
171
+ */
172
+ streetAddr: string;
173
+ /**
174
+ * One of 'person', 'company', 'association', 'public body', or 'reseller'
175
+ */
176
+ type: string;
177
+ /**
178
+ * Postal Code/Zipcode of the contact
179
+ */
180
+ zip: string;
181
+ }
182
+ interface DomainTech {
183
+ /**
184
+ * City for the contact
185
+ */
186
+ city: string;
187
+ /**
188
+ * The two letter country code for the contact
189
+ */
190
+ country: string;
191
+ /**
192
+ * Whether or not to obfuscate contact data in WHOIS
193
+ */
194
+ dataObfuscated?: boolean;
195
+ /**
196
+ * Contact email address
197
+ */
198
+ email: string;
199
+ /**
200
+ * Extra parameters, needed for some jurisdictions
201
+ */
202
+ extraParameters?: {
203
+ [key: string]: string;
204
+ };
205
+ /**
206
+ * Family name of the contact
207
+ */
208
+ familyName: string;
209
+ /**
210
+ * Given name of the contact
211
+ */
212
+ givenName: string;
213
+ /**
214
+ * Whether or not to obfuscate contact email in WHOIS
215
+ */
216
+ mailObfuscated?: boolean;
217
+ /**
218
+ * The legal name of the organisation. Required for types other than person
219
+ */
220
+ organisation?: string;
221
+ /**
222
+ * Phone number for the contact
223
+ */
224
+ phone: string;
225
+ /**
226
+ * The state code for the contact
227
+ */
228
+ state?: string;
229
+ /**
230
+ * Street Address of the contact
231
+ */
232
+ streetAddr: string;
233
+ /**
234
+ * One of 'person', 'company', 'association', 'public body', or 'reseller'
235
+ */
236
+ type: string;
237
+ /**
238
+ * Postal Code/Zipcode of the contact
239
+ */
240
+ zip: string;
241
+ }
242
+ }
@@ -0,0 +1,5 @@
1
+ "use strict";
2
+ // *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. ***
3
+ // *** Do not edit by hand unless you're certain you know what you are doing! ***
4
+ Object.defineProperty(exports, "__esModule", { value: true });
5
+ //# sourceMappingURL=output.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"output.js","sourceRoot":"","sources":["../../types/output.ts"],"names":[],"mappings":";AAAA,wFAAwF;AACxF,iFAAiF"}
package/utilities.d.ts ADDED
@@ -0,0 +1,4 @@
1
+ export declare function getEnv(...vars: string[]): string | undefined;
2
+ export declare function getEnvBoolean(...vars: string[]): boolean | undefined;
3
+ export declare function getEnvNumber(...vars: string[]): number | undefined;
4
+ export declare function getVersion(): string;
package/utilities.js ADDED
@@ -0,0 +1,57 @@
1
+ "use strict";
2
+ // *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. ***
3
+ // *** Do not edit by hand unless you're certain you know what you are doing! ***
4
+ Object.defineProperty(exports, "__esModule", { value: true });
5
+ exports.resourceOptsDefaults = exports.getVersion = exports.getEnvNumber = exports.getEnvBoolean = exports.getEnv = void 0;
6
+ function getEnv(...vars) {
7
+ for (const v of vars) {
8
+ const value = process.env[v];
9
+ if (value) {
10
+ return value;
11
+ }
12
+ }
13
+ return undefined;
14
+ }
15
+ exports.getEnv = getEnv;
16
+ function getEnvBoolean(...vars) {
17
+ const s = getEnv(...vars);
18
+ if (s !== undefined) {
19
+ // NOTE: these values are taken from https://golang.org/src/strconv/atob.go?s=351:391#L1, which is what
20
+ // Terraform uses internally when parsing boolean values.
21
+ if (["1", "t", "T", "true", "TRUE", "True"].find(v => v === s) !== undefined) {
22
+ return true;
23
+ }
24
+ if (["0", "f", "F", "false", "FALSE", "False"].find(v => v === s) !== undefined) {
25
+ return false;
26
+ }
27
+ }
28
+ return undefined;
29
+ }
30
+ exports.getEnvBoolean = getEnvBoolean;
31
+ function getEnvNumber(...vars) {
32
+ const s = getEnv(...vars);
33
+ if (s !== undefined) {
34
+ const f = parseFloat(s);
35
+ if (!isNaN(f)) {
36
+ return f;
37
+ }
38
+ }
39
+ return undefined;
40
+ }
41
+ exports.getEnvNumber = getEnvNumber;
42
+ function getVersion() {
43
+ let version = require('./package.json').version;
44
+ // Node allows for the version to be prefixed by a "v", while semver doesn't.
45
+ // If there is a v, strip it off.
46
+ if (version.indexOf('v') === 0) {
47
+ version = version.slice(1);
48
+ }
49
+ return version;
50
+ }
51
+ exports.getVersion = getVersion;
52
+ /** @internal */
53
+ function resourceOptsDefaults() {
54
+ return { version: getVersion(), pluginDownloadURL: "github://api.github.com/pulumiverse" };
55
+ }
56
+ exports.resourceOptsDefaults = resourceOptsDefaults;
57
+ //# sourceMappingURL=utilities.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utilities.js","sourceRoot":"","sources":["../utilities.ts"],"names":[],"mappings":";AAAA,wFAAwF;AACxF,iFAAiF;;;AAGjF,SAAgB,MAAM,CAAC,GAAG,IAAc;IACpC,KAAK,MAAM,CAAC,IAAI,IAAI,EAAE;QAClB,MAAM,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;QAC7B,IAAI,KAAK,EAAE;YACP,OAAO,KAAK,CAAC;SAChB;KACJ;IACD,OAAO,SAAS,CAAC;AACrB,CAAC;AARD,wBAQC;AAED,SAAgB,aAAa,CAAC,GAAG,IAAc;IAC3C,MAAM,CAAC,GAAG,MAAM,CAAC,GAAG,IAAI,CAAC,CAAC;IAC1B,IAAI,CAAC,KAAK,SAAS,EAAE;QACjB,uGAAuG;QACvG,yDAAyD;QACzD,IAAI,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,KAAK,SAAS,EAAE;YAC1E,OAAO,IAAI,CAAC;SACf;QACD,IAAI,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,KAAK,SAAS,EAAE;YAC7E,OAAO,KAAK,CAAC;SAChB;KACJ;IACD,OAAO,SAAS,CAAC;AACrB,CAAC;AAbD,sCAaC;AAED,SAAgB,YAAY,CAAC,GAAG,IAAc;IAC1C,MAAM,CAAC,GAAG,MAAM,CAAC,GAAG,IAAI,CAAC,CAAC;IAC1B,IAAI,CAAC,KAAK,SAAS,EAAE;QACjB,MAAM,CAAC,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC;QACxB,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE;YACX,OAAO,CAAC,CAAC;SACZ;KACJ;IACD,OAAO,SAAS,CAAC;AACrB,CAAC;AATD,oCASC;AAED,SAAgB,UAAU;IACtB,IAAI,OAAO,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAAC,OAAO,CAAC;IAChD,6EAA6E;IAC7E,iCAAiC;IACjC,IAAI,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE;QAC5B,OAAO,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;KAC9B;IACD,OAAO,OAAO,CAAC;AACnB,CAAC;AARD,gCAQC;AAED,gBAAgB;AAChB,SAAgB,oBAAoB;IAChC,OAAO,EAAE,OAAO,EAAE,UAAU,EAAE,EAAE,iBAAiB,EAAE,qCAAqC,EAAE,CAAC;AAC/F,CAAC;AAFD,oDAEC"}