@atlasauth/angular 0.5.0 → 0.5.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +9 -0
- package/dist/esm2022/lib/components/attempt-flow.component.mjs +22 -4
- package/dist/esm2022/lib/components/flow-controller.mjs +18 -2
- package/dist/esm2022/lib/i18n.mjs +3 -1
- package/dist/fesm2022/atlasauth-angular.mjs +40 -4
- package/dist/fesm2022/atlasauth-angular.mjs.map +1 -1
- package/dist/lib/components/attempt-flow.component.d.ts +2 -0
- package/dist/lib/components/flow-controller.d.ts +7 -0
- package/package.json +3 -3
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,14 @@
|
|
|
1
1
|
# @atlasauth/angular changelog
|
|
2
2
|
|
|
3
|
+
## 0.5.1
|
|
4
|
+
- **Fixed: email-code sign-in on instances without password sign-in.** After the email step the sign-in form now
|
|
5
|
+
sends the code itself (`prepare_first_factor`), shows "We sent a code to …" with the code field and a
|
|
6
|
+
"Resend code" action, and completes with `attempt_first_factor { strategy: "email_code", code }`. A password field
|
|
7
|
+
is drawn only when the server offers `password`; when it is offered, password stays the default and the emailed
|
|
8
|
+
code is one click away. If the automatic send is refused (a 429, or the app can't send email), the step shows the
|
|
9
|
+
server's error and a button to try again.
|
|
10
|
+
- `AtlasFlowController` sends the code automatically when `planFirstFactor(firstFactors()).autoSend` is `email_code`. `<atlas-attempt-flow>` shows the "code sent to" line and turns "Email me a code" into "Resend code" once sent. New catalog keys: `signIn.codeSentTo`, `signIn.resendCode`.
|
|
11
|
+
|
|
3
12
|
## 0.5.0
|
|
4
13
|
Requires `@atlasauth/js` 0.9.0.
|
|
5
14
|
- **Server errors render in the app's language.** `<atlas-sign-in>` / `<atlas-sign-up>` (the attempt flow and
|
|
@@ -80,7 +80,15 @@ export class AttemptFlowComponent {
|
|
|
80
80
|
return this.firstFactors ?? step.strategies;
|
|
81
81
|
}
|
|
82
82
|
showEmailCodeOption() {
|
|
83
|
-
|
|
83
|
+
// Before the code is sent: the choice (or the retry of a failed automatic
|
|
84
|
+
// send). After: "Resend code".
|
|
85
|
+
return this.offered().includes('email_code');
|
|
86
|
+
}
|
|
87
|
+
/** The "we sent a code to …" line on the code step. */
|
|
88
|
+
codeSentText() {
|
|
89
|
+
if (this.step().kind !== 'collect_first_factor' || this.preparedFactor !== 'email_code')
|
|
90
|
+
return null;
|
|
91
|
+
return this.t('signIn.codeSentTo', { email: this.attempt?.identifier ?? '' });
|
|
84
92
|
}
|
|
85
93
|
showSubmit() {
|
|
86
94
|
const kind = this.step().kind;
|
|
@@ -145,6 +153,9 @@ export class AttemptFlowComponent {
|
|
|
145
153
|
}
|
|
146
154
|
|
|
147
155
|
<form (submit)="onSubmit($event)">
|
|
156
|
+
@if (codeSentText(); as sentText) {
|
|
157
|
+
<p class="atlas-text" data-atlas-code-sent="">{{ sentText }}</p>
|
|
158
|
+
}
|
|
148
159
|
@for (f of fields(); track $index) {
|
|
149
160
|
@if (f.kind === 'input') {
|
|
150
161
|
<label class="atlas-field">
|
|
@@ -180,9 +191,11 @@ export class AttemptFlowComponent {
|
|
|
180
191
|
[class]="cls('formButtonSecondary', 'atlas-button-secondary')"
|
|
181
192
|
[disabled]="busy"
|
|
182
193
|
type="button"
|
|
194
|
+
[attr.data-strategy]="preparedFactor === 'email_code' ? null : 'email_code'"
|
|
195
|
+
[attr.data-atlas-resend]="preparedFactor === 'email_code' ? '' : null"
|
|
183
196
|
(click)="chooseFactor.emit('email_code')"
|
|
184
197
|
>
|
|
185
|
-
{{ t('signIn.useEmailCode') }}
|
|
198
|
+
{{ t(preparedFactor === 'email_code' ? 'signIn.resendCode' : 'signIn.useEmailCode') }}
|
|
186
199
|
</button>
|
|
187
200
|
}
|
|
188
201
|
</form>
|
|
@@ -205,6 +218,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
|
|
|
205
218
|
}
|
|
206
219
|
|
|
207
220
|
<form (submit)="onSubmit($event)">
|
|
221
|
+
@if (codeSentText(); as sentText) {
|
|
222
|
+
<p class="atlas-text" data-atlas-code-sent="">{{ sentText }}</p>
|
|
223
|
+
}
|
|
208
224
|
@for (f of fields(); track $index) {
|
|
209
225
|
@if (f.kind === 'input') {
|
|
210
226
|
<label class="atlas-field">
|
|
@@ -240,9 +256,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
|
|
|
240
256
|
[class]="cls('formButtonSecondary', 'atlas-button-secondary')"
|
|
241
257
|
[disabled]="busy"
|
|
242
258
|
type="button"
|
|
259
|
+
[attr.data-strategy]="preparedFactor === 'email_code' ? null : 'email_code'"
|
|
260
|
+
[attr.data-atlas-resend]="preparedFactor === 'email_code' ? '' : null"
|
|
243
261
|
(click)="chooseFactor.emit('email_code')"
|
|
244
262
|
>
|
|
245
|
-
{{ t('signIn.useEmailCode') }}
|
|
263
|
+
{{ t(preparedFactor === 'email_code' ? 'signIn.resendCode' : 'signIn.useEmailCode') }}
|
|
246
264
|
</button>
|
|
247
265
|
}
|
|
248
266
|
</form>
|
|
@@ -272,4 +290,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
|
|
|
272
290
|
function msg(labelKey) {
|
|
273
291
|
return { kind: 'message', name: '', labelKey, type: 'text' };
|
|
274
292
|
}
|
|
275
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXR0ZW1wdC1mbG93LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9saWIvY29tcG9uZW50cy9hdHRlbXB0LWZsb3cuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCx1QkFBdUIsRUFDdkIsU0FBUyxFQUNULFlBQVksRUFDWixLQUFLLEVBQ0wsTUFBTSxFQUNOLE1BQU0sR0FDUCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQ0wscUJBQXFCLEVBQ3JCLFFBQVEsR0FJVCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDaEQsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0sc0NBQXNDLENBQUM7QUFDakYsT0FBTyxFQUFFLFFBQVEsRUFBbUIsTUFBTSxlQUFlLENBQUM7QUFDMUQsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLFNBQVMsQ0FBQzs7QUFlcEM7Ozs7Ozs7OztHQVNHO0FBMkRILE1BQU0sT0FBTyxvQkFBb0I7SUFDZCxLQUFLLEdBQUcsTUFBTSxDQUFDLFlBQVksQ0FBQyxDQUFDO0lBRXJDLE9BQU8sR0FBdUIsSUFBSSxDQUFDO0lBQ25DLElBQUksR0FBRyxLQUFLLENBQUM7SUFDYixNQUFNLEdBQWlCLEVBQUUsQ0FBQztJQUMxQixRQUFRLEdBQUcsY0FBYyxDQUFDO0lBQ25DOzs7O09BSUc7SUFDTSxPQUFPLEdBQTZCLElBQUksQ0FBQztJQUNsRDs7OztPQUlHO0lBQ00sWUFBWSxHQUFvQixJQUFJLENBQUM7SUFDOUMscUdBQXFHO0lBQzVGLGNBQWMsR0FBa0IsSUFBSSxDQUFDO0lBRTlDLG1FQUFtRTtJQUN6RCxVQUFVLEdBQUcsSUFBSSxZQUFZLEVBQTBCLENBQUM7SUFDbEUsNkZBQTZGO0lBQ25GLFlBQVksR0FBRyxJQUFJLFlBQVksRUFBZ0IsQ0FBQztJQUVoRCxNQUFNLEdBQTJC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QkFBb0I7NEZBQXBCLG9CQUFvQiw2VEFyRHJCOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FtRFQsNERBcERTLHlCQUF5Qjs7NEZBc0R4QixvQkFBb0I7a0JBMURoQyxTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSxvQkFBb0I7b0JBQzlCLFVBQVUsRUFBRSxJQUFJO29CQUNoQixlQUFlLEVBQUUsdUJBQXVCLENBQUMsTUFBTTtvQkFDL0MsT0FBTyxFQUFFLENBQUMseUJBQXlCLENBQUM7b0JBQ3BDLFFBQVEsRUFBRTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBbURUO2lCQUNGOzhCQUlVLE9BQU87c0JBQWYsS0FBSztnQkFDRyxJQUFJO3NCQUFaLEtBQUs7Z0JBQ0csTUFBTTtzQkFBZCxLQUFLO2dCQUNHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBTUcsT0FBTztzQkFBZixLQUFLO2dCQU1HLFlBQVk7c0JBQXBCLEtBQUs7Z0JBRUcsY0FBYztzQkFBdEIsS0FBSztnQkFHSSxVQUFVO3NCQUFuQixNQUFNO2dCQUVHLFlBQVk7c0JBQXJCLE1BQU07O0FBK0dULGtGQUFrRjtBQUNsRixTQUFTLEdBQUcsQ0FBQyxRQUFnQjtJQUMzQixPQUFPLEVBQUUsSUFBSSxFQUFFLFNBQVMsRUFBRSxJQUFJLEVBQUUsRUFBRSxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUUsTUFBTSxFQUFFLENBQUM7QUFDL0QsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBDb21wb25lbnQsXG4gIEV2ZW50RW1pdHRlcixcbiAgSW5wdXQsXG4gIE91dHB1dCxcbiAgaW5qZWN0LFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7XG4gIGxvY2FsaXplZEVycm9yTWVzc2FnZSxcbiAgbmV4dFN0ZXAsXG4gIHR5cGUgQXR0ZW1wdFZpZXcsXG4gIHR5cGUgQ2FwdGNoYUNvbnRyb2xsZXIsXG4gIHR5cGUgRmllbGRFcnJvcixcbn0gZnJvbSAnQGF0bGFzYXV0aC9qcyc7XG5pbXBvcnQgeyBBdGxhc1NlcnZpY2UgfSBmcm9tICcuLi9hdGxhcy5zZXJ2aWNlJztcbmltcG9ydCB7IEF0bGFzQ2FwdGNoYVNsb3REaXJlY3RpdmUgfSBmcm9tICcuLi9kaXJlY3RpdmVzL2NhcHRjaGEtc2xvdC5kaXJlY3RpdmUnO1xuaW1wb3J0IHsgY2xhc3NGb3IsIHR5cGUgRWxlbWVudEtleSB9IGZyb20gJy4uL2FwcGVhcmFuY2UnO1xuaW1wb3J0IHsgdHJhbnNsYXRlIH0gZnJvbSAnLi4vaTE4bic7XG5cbi8qKlxuICogT25lIHJlbmRlcmVkIHJvdyBvZiB0aGUgZmxvdy4gQSB1bmlmb3JtIHNoYXBlIChyYXRoZXIgdGhhbiBhIGRpc2NyaW1pbmF0ZWRcbiAqIHVuaW9uKSBzbyB0aGUgdGVtcGxhdGUgYWNjZXNzZXMgb25seSBmaWVsZHMgdGhhdCBhbHdheXMgZXhpc3Qg4oCUIG5vIHJlbGlhbmNlIG9uXG4gKiB0ZW1wbGF0ZSBjb250cm9sLWZsb3cgbmFycm93aW5nIG9mIGEgbG9vcCB2YXJpYWJsZSwgd2hpY2ggdmFyaWVzIGJ5IEFuZ3VsYXJcbiAqIG1pbm9yLiBGb3IgYSBgbWVzc2FnZWAgcm93LCBgbGFiZWxLZXlgIGNhcnJpZXMgdGhlIG1lc3NhZ2UncyBpMThuIGtleS5cbiAqL1xuaW50ZXJmYWNlIFN0ZXBGaWVsZCB7XG4gIGtpbmQ6ICdpbnB1dCcgfCAnbWVzc2FnZSc7XG4gIG5hbWU6IHN0cmluZztcbiAgbGFiZWxLZXk6IHN0cmluZztcbiAgdHlwZTogc3RyaW5nO1xufVxuXG4vKipcbiAqIFRoZSBzZXJ2ZXItZHJpdmVuIGZsb3cgc2hlbGwsIHNoYXJlZCBieSBgPGF0bGFzLXNpZ24taW4+YCBhbmRcbiAqIGA8YXRsYXMtc2lnbi11cD5gLiBUaGUgQW5ndWxhciBwZWVyIG9mIFJlYWN0J3MgaW50ZXJuYWwgYEF0dGVtcHRGbG93YC5cbiAqXG4gKiBJdCBjb250YWlucyBOTyBkZWNpc2lvbiBhYm91dCB3aGF0IGNvbWVzIG5leHQ6IGl0IHJlbmRlcnMgd2hhdGV2ZXIgYHN0YXR1c2BcbiAqIHRoZSBzZXJ2ZXIgcmV0dXJuZWQsIG1hcHBlZCB0aHJvdWdoIGBuZXh0U3RlcGAgZnJvbSBgQGF0bGFzYXV0aC9qc2AgKHRoZSBzYW1lXG4gKiBleGhhdXN0aXZlIG1hcHBpbmcgdGhlIFJlYWN0IFNESyB1c2VzKSwgc28gYWRkaW5nIGEgc3RlcCBpcyBhIHNlcnZlciBjaGFuZ2VcbiAqIGFuZCBhbiBvdXQtb2YtZGF0ZSBjbGllbnQgZGVncmFkZXMgdG8gYSB2aXNpYmxlIFwicGxlYXNlIHVwZGF0ZVwiIG1lc3NhZ2UgcmF0aGVyXG4gKiB0aGFuIGEgYmxhbmsgc2NyZWVuLlxuICovXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdhdGxhcy1hdHRlbXB0LWZsb3cnLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgaW1wb3J0czogW0F0bGFzQ2FwdGNoYVNsb3REaXJlY3RpdmVdLFxuICB0ZW1wbGF0ZTogYFxuICAgIDxkaXYgW2NsYXNzXT1cImNscygnY2FyZCcsICdhdGxhcy1jYXJkJylcIj5cbiAgICAgIDxoMSBbY2xhc3NdPVwiY2xzKCdoZWFkZXJUaXRsZScsICdhdGxhcy10aXRsZScpXCI+e3sgdCh0aXRsZUtleSkgfX08L2gxPlxuXG4gICAgICBAZm9yIChlcnJvciBvZiBmb3JtRXJyb3JzKCk7IHRyYWNrIGVycm9yLmNvZGUpIHtcbiAgICAgICAgPHAgW2NsYXNzXT1cImNscygnZm9ybUZpZWxkRXJyb3InLCAnYXRsYXMtZXJyb3InKVwiIHJvbGU9XCJhbGVydFwiPnt7IGVycm9yVGV4dChlcnJvcikgfX08L3A+XG4gICAgICB9XG5cbiAgICAgIDxmb3JtIChzdWJtaXQpPVwib25TdWJtaXQoJGV2ZW50KVwiPlxuICAgICAgICBAZm9yIChmIG9mIGZpZWxkcygpOyB0cmFjayAkaW5kZXgpIHtcbiAgICAgICAgICBAaWYgKGYua2luZCA9PT0gJ2lucHV0Jykge1xuICAgICAgICAgICAgPGxhYmVsIGNsYXNzPVwiYXRsYXMtZmllbGRcIj5cbiAgICAgICAgICAgICAgPHNwYW4+e3sgdChmLmxhYmVsS2V5KSB9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgPGlucHV0XG4gICAgICAgICAgICAgICAgW2NsYXNzXT1cImNscygnZm9ybUZpZWxkSW5wdXQnLCAnYXRsYXMtaW5wdXQnKVwiXG4gICAgICAgICAgICAgICAgW3R5cGVdPVwiZi50eXBlXCJcbiAgICAgICAgICAgICAgICBbYXR0ci5uYW1lXT1cImYubmFtZVwiXG4gICAgICAgICAgICAgICAgW3ZhbHVlXT1cInZhbHVlc1tmLm5hbWVdID8/ICcnXCJcbiAgICAgICAgICAgICAgICAoaW5wdXQpPVwic2V0VmFsdWUoZi5uYW1lLCAkYW55KCRldmVudC50YXJnZXQpLnZhbHVlKVwiXG4gICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgIEBmb3IgKGVycm9yIG9mIGZpZWxkRXJyb3JzRm9yKGYubmFtZSk7IHRyYWNrIGVycm9yLmNvZGUpIHtcbiAgICAgICAgICAgICAgICA8c3BhbiBbY2xhc3NdPVwiY2xzKCdmb3JtRmllbGRFcnJvcicsICdhdGxhcy1lcnJvcicpXCI+e3sgZXJyb3JUZXh0KGVycm9yKSB9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgPC9sYWJlbD5cbiAgICAgICAgICB9IEBlbHNlIHtcbiAgICAgICAgICAgIDxwPnt7IHQoZi5sYWJlbEtleSkgfX08L3A+XG4gICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGlmIChzaG93Q2FwdGNoYSgpKSB7XG4gICAgICAgICAgPGRpdiBjbGFzcz1cImF0bGFzLWNhcHRjaGFcIiBkYXRhLWF0bGFzLWNhcHRjaGE9XCJcIiBbYXRsYXNDYXB0Y2hhU2xvdF09XCJjYXB0Y2hhXCI+PC9kaXY+XG4gICAgICAgIH1cblxuICAgICAgICBAaWYgKHNob3dTdWJtaXQoKSkge1xuICAgICAgICAgIDxidXR0b24gW2NsYXNzXT1cImNscygnZm9ybUJ1dHRvblByaW1hcnknLCAnYXRsYXMtYnV0dG9uJylcIiBbZGlzYWJsZWRdPVwiYnVzeVwiIHR5cGU9XCJzdWJtaXRcIj5cbiAgICAgICAgICAgIHt7IHQoJ3NpZ25Jbi5zdWJtaXQnKSB9fVxuICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICB9XG5cbiAgICAgICAgQGlmIChzaG93RW1haWxDb2RlT3B0aW9uKCkpIHtcbiAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICBbY2xhc3NdPVwiY2xzKCdmb3JtQnV0dG9uU2Vjb25kYXJ5JywgJ2F0bGFzLWJ1dHRvbi1zZWNvbmRhcnknKVwiXG4gICAgICAgICAgICBbZGlzYWJsZWRdPVwiYnVzeVwiXG4gICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgIChjbGljayk9XCJjaG9vc2VGYWN0b3IuZW1pdCgnZW1haWxfY29kZScpXCJcbiAgICAgICAgICA+XG4gICAgICAgICAgICB7eyB0KCdzaWduSW4udXNlRW1haWxDb2RlJykgfX1cbiAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgfVxuICAgICAgPC9mb3JtPlxuICAgIDwvZGl2PlxuICBgLFxufSlcbmV4cG9ydCBjbGFzcyBBdHRlbXB0Rmxvd0NvbXBvbmVudCB7XG4gIHByaXZhdGUgcmVhZG9ubHkgYXRsYXMgPSBpbmplY3QoQXRsYXNTZXJ2aWNlKTtcblxuICBASW5wdXQoKSBhdHRlbXB0OiBBdHRlbXB0VmlldyB8IG51bGwgPSBudWxsO1xuICBASW5wdXQoKSBidXN5ID0gZmFsc2U7XG4gIEBJbnB1dCgpIGVycm9yczogRmllbGRFcnJvcltdID0gW107XG4gIEBJbnB1dCgpIHRpdGxlS2V5ID0gJ3NpZ25Jbi50aXRsZSc7XG4gIC8qKlxuICAgKiBUaGUgc2lnbi1pbiBjYXB0Y2hhLCBkcmF3biBhYm92ZSB0aGUgc3VibWl0IGJ1dHRvbiBvbiB0aGUgaWRlbnRpZmllciBzdGVwXG4gICAqIChhbiBhbHdheXMtb24gc2lnbi1pbiBjYXB0Y2hhKSBhbmQgb24gdGhlIGNoYWxsZW5nZSBzdGVwIHRoZSBzZXJ2ZXIgZGVtYW5kc1xuICAgKiB3aXRoIGBuZWVkc19jYXB0Y2hhYC4gTnVsbCB3aGVuIHRoZSBmbG93IGRyYXdzIG5vbmUuXG4gICAqL1xuICBASW5wdXQoKSBjYXB0Y2hhOiBDYXB0Y2hhQ29udHJvbGxlciB8IG51bGwgPSBudWxsO1xuICAvKipcbiAgICogVGhlIGZpcnN0IGZhY3RvcnMgdG8gb2ZmZXIgb24gdGhlIGBuZWVkc19maXJzdF9mYWN0b3JgIHN0ZXAg4oCUIHBhc3NcbiAgICogYEF0bGFzRmxvd0NvbnRyb2xsZXIuZmlyc3RGYWN0b3JzKClgLCB3aGljaCBkcm9wcyBlbWFpbCBjb2RlIC8gbGluayB3aGlsZSB0aGVcbiAgICogYXBwIGNhbm5vdCBkZWxpdmVyIGVtYWlsLiBOdWxsIHVzZXMgdGhlIHNlcnZlcidzIGxpc3QgYXMtaXMuXG4gICAqL1xuICBASW5wdXQoKSBmaXJzdEZhY3RvcnM6IHN0cmluZ1tdIHwgbnVsbCA9IG51bGw7XG4gIC8qKiBUaGUgZmlyc3QgZmFjdG9yIGFscmVhZHkgc2VudCAoYEF0bGFzRmxvd0NvbnRyb2xsZXIucHJlcGFyZWRGYWN0b3IoKWApOiBpdHMgY29kZSBpcyBjb2xsZWN0ZWQuICovXG4gIEBJbnB1dCgpIHByZXBhcmVkRmFjdG9yOiBzdHJpbmcgfCBudWxsID0gbnVsbDtcblxuICAvKiogRW1pdHMgdGhlIGNvbGxlY3RlZCBmaWVsZCB2YWx1ZXMgd2hlbiB0aGUgZm9ybSBpcyBzdWJtaXR0ZWQuICovXG4gIEBPdXRwdXQoKSBzdWJtaXRGbG93ID0gbmV3IEV2ZW50RW1pdHRlcjxSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+PigpO1xuICAvKiogRW1pdHMgd2hlbiB0aGUgdXNlciBwaWNrcyBhIGZpcnN0IGZhY3RvciB0aGUgc2VydmVyIG11c3Qgc2VuZCBmaXJzdCAoYW4gZW1haWxlZCBjb2RlKS4gKi9cbiAgQE91dHB1dCgpIGNob29zZUZhY3RvciA9IG5ldyBFdmVudEVtaXR0ZXI8J2VtYWlsX2NvZGUnPigpO1xuXG4gIHByb3RlY3RlZCB2YWx1ZXM6IFJlY29yZDxzdHJpbmcsIHN0cmluZz4gPSB7fTtcblxuICBwcm90ZWN0ZWQgdChrZXk6IHN0cmluZywgdmFycz86IFJlY29yZDxzdHJpbmcsIHN0cmluZz4pOiBzdHJpbmcge1xuICAgIHJldHVybiB0cmFuc2xhdGUodGhpcy5hdGxhcy5sb2NhbGl6YXRpb24sIGtleSwgdmFycyk7XG4gIH1cblxuICAvKiogQSBzZXJ2ZXIgZXJyb3IgaW4gdGhlIGFwcCdzIGxhbmd1YWdlIChgZXJyb3IuPHJlYXNvbj5gLCBlbHNlIHRoZSBzZXJ2ZXIncyBtZXNzYWdlKS4gKi9cbiAgcHJvdGVjdGVkIGVycm9yVGV4dChlcnJvcjogRmllbGRFcnJvcik6IHN0cmluZyB7XG4gICAgLy8gYGVycm9yTG9jYWxpemF0aW9uYCBpcyByZWFkIGRlZmVuc2l2ZWx5OiBhIHN0YW5kLWluIHNlcnZpY2UgbWF5IGxhY2sgaXQuXG4gICAgY29uc3QgbGF5ZXIgPSAodGhpcy5hdGxhcyBhcyB7IGVycm9yTG9jYWxpemF0aW9uPzogUmVjb3JkPHN0cmluZywgc3RyaW5nPiB9KS5lcnJvckxvY2FsaXphdGlvbjtcbiAgICByZXR1cm4gbG9jYWxpemVkRXJyb3JNZXNzYWdlKGVycm9yLCBsYXllciA/PyB0aGlzLmF0bGFzLmxvY2FsaXphdGlvbiwgdGhpcy5hdGxhcy5sb2NhbGl6YXRpb24pO1xuICB9XG5cbiAgcHJvdGVjdGVkIGNscyhrZXk6IEVsZW1lbnRLZXksIGJhc2U6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgcmV0dXJuIGNsYXNzRm9yKGtleSwgdGhpcy5hdGxhcy5hcHBlYXJhbmNlLCBiYXNlKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBzZXRWYWx1ZShuYW1lOiBzdHJpbmcsIHZhbHVlOiBzdHJpbmcpOiB2b2lkIHtcbiAgICB0aGlzLnZhbHVlcyA9IHsgLi4udGhpcy52YWx1ZXMsIFtuYW1lXTogdmFsdWUgfTtcbiAgfVxuXG4gIHByb3RlY3RlZCBvblN1Ym1pdChldmVudDogRXZlbnQpOiB2b2lkIHtcbiAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgIHRoaXMuc3VibWl0Rmxvdy5lbWl0KHRoaXMudmFsdWVzKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBmb3JtRXJyb3JzKCk6IEZpZWxkRXJyb3JbXSB7XG4gICAgcmV0dXJuIHRoaXMuZXJyb3JzLmZpbHRlcigoZXJyb3IpID0+ICFlcnJvci5wYXJhbSk7XG4gIH1cblxuICBwcm90ZWN0ZWQgZmllbGRFcnJvcnNGb3IobmFtZTogc3RyaW5nKTogRmllbGRFcnJvcltdIHtcbiAgICByZXR1cm4gdGhpcy5lcnJvcnMuZmlsdGVyKChlcnJvcikgPT4gZXJyb3IucGFyYW0gPT09IG5hbWUpO1xuICB9XG5cbiAgcHJpdmF0ZSBzdGVwKCkge1xuICAgIHJldHVybiB0aGlzLmF0dGVtcHQgPyBuZXh0U3RlcCh0aGlzLmF0dGVtcHQpIDogKHsga2luZDogJ2NvbGxlY3RfaWRlbnRpZmllcicgfSBhcyBjb25zdCk7XG4gIH1cblxuICBwcm90ZWN0ZWQgc2hvd0NhcHRjaGEoKTogYm9vbGVhbiB7XG4gICAgY29uc3Qga2luZCA9IHRoaXMuc3RlcCgpLmtpbmQ7XG4gICAgcmV0dXJuICEhdGhpcy5jYXB0Y2hhICYmIChraW5kID09PSAnY29sbGVjdF9pZGVudGlmaWVyJyB8fCBraW5kID09PSAnY29sbGVjdF9jYXB0Y2hhJyk7XG4gIH1cblxuICAvKiogVGhlIGZpcnN0IGZhY3RvcnMgb24gb2ZmZXIgYXQgYSBgbmVlZHNfZmlyc3RfZmFjdG9yYCBzdGVwIChlbXB0eSBvbiBhbnkgb3RoZXIpLiAqL1xuICBwcml2YXRlIG9mZmVyZWQoKTogc3RyaW5nW10ge1xuICAgIGNvbnN0IHN0ZXAgPSB0aGlzLnN0ZXAoKTtcbiAgICBpZiAoc3RlcC5raW5kICE9PSAnY29sbGVjdF9maXJzdF9mYWN0b3InKSByZXR1cm4gW107XG4gICAgcmV0dXJuIHRoaXMuZmlyc3RGYWN0b3JzID8/IHN0ZXAuc3RyYXRlZ2llcztcbiAgfVxuXG4gIHByb3RlY3RlZCBzaG93RW1haWxDb2RlT3B0aW9uKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLnByZXBhcmVkRmFjdG9yICE9PSAnZW1haWxfY29kZScgJiYgdGhpcy5vZmZlcmVkKCkuaW5jbHVkZXMoJ2VtYWlsX2NvZGUnKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBzaG93U3VibWl0KCk6IGJvb2xlYW4ge1xuICAgIGNvbnN0IGtpbmQgPSB0aGlzLnN0ZXAoKS5raW5kO1xuICAgIC8vIE5vdGhpbmcgdG8gc3VibWl0IG9uIGEgZmlyc3QtZmFjdG9yIHN0ZXAgdGhhdCBvbmx5IG9mZmVycyBhbiBlbWFpbGVkIGNvZGVcbiAgICAvLyB1bnRpbCB0aGF0IGNvZGUgaXMgc2VudC5cbiAgICBpZiAoa2luZCA9PT0gJ2NvbGxlY3RfZmlyc3RfZmFjdG9yJykgcmV0dXJuIHRoaXMuZmllbGRzKCkubGVuZ3RoID4gMDtcbiAgICByZXR1cm4ga2luZCAhPT0gJ2RvbmUnICYmIGtpbmQgIT09ICdhd2FpdF9vYXV0aCc7XG4gIH1cblxuICBwcm90ZWN0ZWQgZmllbGRzKCk6IFN0ZXBGaWVsZFtdIHtcbiAgICBjb25zdCBzdGVwID0gdGhpcy5zdGVwKCk7XG4gICAgc3dpdGNoIChzdGVwLmtpbmQpIHtcbiAgICAgIGNhc2UgJ2NvbGxlY3RfaWRlbnRpZmllcic6XG4gICAgICAgIHJldHVybiBbeyBraW5kOiAnaW5wdXQnLCBuYW1lOiAnaWRlbnRpZmllcicsIGxhYmVsS2V5OiAnc2lnbkluLmlkZW50aWZpZXJMYWJlbCcsIHR5cGU6ICdlbWFpbCcgfV07XG4gICAgICBjYXNlICdjb2xsZWN0X2ZpcnN0X2ZhY3Rvcic6IHtcbiAgICAgICAgaWYgKHRoaXMucHJlcGFyZWRGYWN0b3IgPT09ICdlbWFpbF9jb2RlJykge1xuICAgICAgICAgIHJldHVybiBbeyBraW5kOiAnaW5wdXQnLCBuYW1lOiAnY29kZScsIGxhYmVsS2V5OiAnc2lnbkluLmVtYWlsQ29kZUxhYmVsJywgdHlwZTogJ3RleHQnIH1dO1xuICAgICAgICB9XG4gICAgICAgIC8vIFRoZSBwYXNzd29yZCBmaWVsZCB1bmxlc3MgdGhlIG9ubHkgb2ZmZXIgaXMgYW4gZW1haWxlZCBjb2RlIChjaG9zZW5cbiAgICAgICAgLy8gd2l0aCB0aGUgYnV0dG9uIGJlbG93IHRoZSBmb3JtKS5cbiAgICAgICAgY29uc3Qgb2ZmZXJlZCA9IHRoaXMub2ZmZXJlZCgpO1xuICAgICAgICByZXR1cm4gb2ZmZXJlZC5pbmNsdWRlcygnZW1haWxfY29kZScpICYmICFvZmZlcmVkLmluY2x1ZGVzKCdwYXNzd29yZCcpXG4gICAgICAgICAgPyBbXVxuICAgICAgICAgIDogW3sga2luZDogJ2lucHV0JywgbmFtZTogJ3Bhc3N3b3JkJywgbGFiZWxLZXk6ICdzaWduSW4ucGFzc3dvcmRMYWJlbCcsIHR5cGU6ICdwYXNzd29yZCcgfV07XG4gICAgICB9XG4gICAgICBjYXNlICdjb2xsZWN0X3NlY29uZF9mYWN0b3InOlxuICAgICAgICByZXR1cm4gW3sga2luZDogJ2lucHV0JywgbmFtZTogJ2NvZGUnLCBsYWJlbEtleTogJ21mYS5jb2RlTGFiZWwnLCB0eXBlOiAndGV4dCcgfV07XG4gICAgICBjYXNlICdlbnJvbGxfc2Vjb25kX2ZhY3Rvcic6XG4gICAgICAgIC8vIFR3byBjb25zZWN1dGl2ZSBjb2RlcyAowqc1LjYpOiBhIHBob25lIHdpdGggYSBmYXN0IGNsb2NrIGZhaWxzIGhlcmVcbiAgICAgICAgLy8gcmF0aGVyIHRoYW4gb24gZXZlcnkgc2lnbi1pbiBhZnRlcndhcmRzLlxuICAgICAgICByZXR1cm4gW1xuICAgICAgICAgIHsga2luZDogJ2lucHV0JywgbmFtZTogJ2NvZGUnLCBsYWJlbEtleTogJ21mYS5lbnJvbGxGaXJzdENvZGVMYWJlbCcsIHR5cGU6ICd0ZXh0JyB9LFxuICAgICAgICAgIHsga2luZDogJ2lucHV0JywgbmFtZTogJ3NlY29uZENvZGUnLCBsYWJlbEtleTogJ21mYS5lbnJvbGxTZWNvbmRDb2RlTGFiZWwnLCB0eXBlOiAndGV4dCcgfSxcbiAgICAgICAgXTtcbiAgICAgIGNhc2UgJ2NvbGxlY3RfZW1haWxfY29kZSc6XG4gICAgICAgIHJldHVybiBbeyBraW5kOiAnaW5wdXQnLCBuYW1lOiAnY29kZScsIGxhYmVsS2V5OiAnc2lnbkluLmVtYWlsQ29kZUxhYmVsJywgdHlwZTogJ3RleHQnIH1dO1xuICAgICAgY2FzZSAnY29sbGVjdF9uZXdfcGFzc3dvcmQnOlxuICAgICAgICByZXR1cm4gW3sga2luZDogJ2lucHV0JywgbmFtZTogJ3Bhc3N3b3JkJywgbGFiZWxLZXk6ICdyZXNldC5uZXdQYXNzd29yZExhYmVsJywgdHlwZTogJ3Bhc3N3b3JkJyB9XTtcbiAgICAgIGNhc2UgJ2NvbGxlY3RfY2FwdGNoYSc6XG4gICAgICAgIC8vIMKnNSB0aGUgc2VydmVyIHdpdGhoZWxkIHRoZSBhdHRlbXB0IHVudGlsIGEgY2FwdGNoYSBjbGVhcnMuIFNvbHZpbmcgdGhlXG4gICAgICAgIC8vIHdpZGdldCByZXN1Ym1pdHMgdGhlIGlkZW50aWZpZXIgb24gaXRzIG93bjsgdGhlIGJ1dHRvbiByZXRyaWVzLlxuICAgICAgICByZXR1cm4gW21zZygnY2FwdGNoYS5wcm9tcHQnKV07XG4gICAgICBjYXNlICdhd2FpdF9vYXV0aCc6XG4gICAgICAgIHJldHVybiBbbXNnKCdzaWduSW4ubWFnaWNMaW5rU2VudCcpXTtcbiAgICAgIGNhc2UgJ2RvbmUnOlxuICAgICAgICByZXR1cm4gW21zZygnc2lnbkluLmNoZWNrT3RoZXJUYWInKV07XG4gICAgICBjYXNlICdyZXN0YXJ0JzpcbiAgICAgICAgcmV0dXJuIFttc2coJ2Vycm9yLmdlbmVyaWMnKV07XG4gICAgICBkZWZhdWx0OlxuICAgICAgICAvLyBBIHN0YXR1cyB0aGlzIFNESyB2ZXJzaW9uIGRvZXMgbm90IGtub3cuIEFuIGhvbmVzdCBtZXNzYWdlIGJlYXRzIGFcbiAgICAgICAgLy8gYmxhbmsgbG9naW4gYm94IHRoZSB1c2VyIGNhbm5vdCBhY3Qgb24uXG4gICAgICAgIHJldHVybiBbbXNnKCdlcnJvci5nZW5lcmljJyldO1xuICAgIH1cbiAgfVxufVxuXG4vKiogQSByZWFkLW9ubHkgbWVzc2FnZSByb3c6IGBsYWJlbEtleWAgaG9sZHMgdGhlIGkxOG4ga2V5IG9mIHRoZSB0ZXh0IHRvIHNob3cuICovXG5mdW5jdGlvbiBtc2cobGFiZWxLZXk6IHN0cmluZyk6IFN0ZXBGaWVsZCB7XG4gIHJldHVybiB7IGtpbmQ6ICdtZXNzYWdlJywgbmFtZTogJycsIGxhYmVsS2V5LCB0eXBlOiAndGV4dCcgfTtcbn1cbiJdfQ==
|
|
293
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXR0ZW1wdC1mbG93LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9saWIvY29tcG9uZW50cy9hdHRlbXB0LWZsb3cuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCx1QkFBdUIsRUFDdkIsU0FBUyxFQUNULFlBQVksRUFDWixLQUFLLEVBQ0wsTUFBTSxFQUNOLE1BQU0sR0FDUCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQ0wscUJBQXFCLEVBQ3JCLFFBQVEsR0FJVCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDaEQsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0sc0NBQXNDLENBQUM7QUFDakYsT0FBTyxFQUFFLFFBQVEsRUFBbUIsTUFBTSxlQUFlLENBQUM7QUFDMUQsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLFNBQVMsQ0FBQzs7QUFlcEM7Ozs7Ozs7OztHQVNHO0FBZ0VILE1BQU0sT0FBTyxvQkFBb0I7SUFDZCxLQUFLLEdBQUcsTUFBTSxDQUFDLFlBQVksQ0FBQyxDQUFDO0lBRXJDLE9BQU8sR0FBdUIsSUFBSSxDQUFDO0lBQ25DLElBQUksR0FBRyxLQUFLLENBQUM7SUFDYixNQUFNLEdBQWlCLEVBQUUsQ0FBQztJQUMxQixRQUFRLEdBQUcsY0FBYyxDQUFDO0lBQ25DOzs7O09BSUc7SUFDTSxPQUFPLEdBQTZCLElBQUksQ0FBQztJQUNsRDs7OztPQUlHO0lBQ00sWUFBWSxHQUFvQixJQUFJLENBQUM7SUFDOUMscUdBQXFHO0lBQzVGLGNBQWMsR0FBa0IsSUFBSSxDQUFDO0lBRTlDLG1FQUFtRTtJQUN6RCxVQUFVLEdBQUcsSUFBSSxZQUFZLEVBQTBCLENBQUM7SUFDbEUsNkZBQTZGO0lBQ25GLFlBQVksR0FBRyxJQUFJLFlBQVksRUFBZ0IsQ0FBQztJQUVoRCxNQUFNLEdBQTJC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LEVBQUUsQ0FBQztBQUMvRCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIENvbXBvbmVudCxcbiAgRXZlbnRFbWl0dGVyLFxuICBJbnB1dCxcbiAgT3V0cHV0LFxuICBpbmplY3QsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtcbiAgbG9jYWxpemVkRXJyb3JNZXNzYWdlLFxuICBuZXh0U3RlcCxcbiAgdHlwZSBBdHRlbXB0VmlldyxcbiAgdHlwZSBDYXB0Y2hhQ29udHJvbGxlcixcbiAgdHlwZSBGaWVsZEVycm9yLFxufSBmcm9tICdAYXRsYXNhdXRoL2pzJztcbmltcG9ydCB7IEF0bGFzU2VydmljZSB9IGZyb20gJy4uL2F0bGFzLnNlcnZpY2UnO1xuaW1wb3J0IHsgQXRsYXNDYXB0Y2hhU2xvdERpcmVjdGl2ZSB9IGZyb20gJy4uL2RpcmVjdGl2ZXMvY2FwdGNoYS1zbG90LmRpcmVjdGl2ZSc7XG5pbXBvcnQgeyBjbGFzc0ZvciwgdHlwZSBFbGVtZW50S2V5IH0gZnJvbSAnLi4vYXBwZWFyYW5jZSc7XG5pbXBvcnQgeyB0cmFuc2xhdGUgfSBmcm9tICcuLi9pMThuJztcblxuLyoqXG4gKiBPbmUgcmVuZGVyZWQgcm93IG9mIHRoZSBmbG93LiBBIHVuaWZvcm0gc2hhcGUgKHJhdGhlciB0aGFuIGEgZGlzY3JpbWluYXRlZFxuICogdW5pb24pIHNvIHRoZSB0ZW1wbGF0ZSBhY2Nlc3NlcyBvbmx5IGZpZWxkcyB0aGF0IGFsd2F5cyBleGlzdCDigJQgbm8gcmVsaWFuY2Ugb25cbiAqIHRlbXBsYXRlIGNvbnRyb2wtZmxvdyBuYXJyb3dpbmcgb2YgYSBsb29wIHZhcmlhYmxlLCB3aGljaCB2YXJpZXMgYnkgQW5ndWxhclxuICogbWlub3IuIEZvciBhIGBtZXNzYWdlYCByb3csIGBsYWJlbEtleWAgY2FycmllcyB0aGUgbWVzc2FnZSdzIGkxOG4ga2V5LlxuICovXG5pbnRlcmZhY2UgU3RlcEZpZWxkIHtcbiAga2luZDogJ2lucHV0JyB8ICdtZXNzYWdlJztcbiAgbmFtZTogc3RyaW5nO1xuICBsYWJlbEtleTogc3RyaW5nO1xuICB0eXBlOiBzdHJpbmc7XG59XG5cbi8qKlxuICogVGhlIHNlcnZlci1kcml2ZW4gZmxvdyBzaGVsbCwgc2hhcmVkIGJ5IGA8YXRsYXMtc2lnbi1pbj5gIGFuZFxuICogYDxhdGxhcy1zaWduLXVwPmAuIFRoZSBBbmd1bGFyIHBlZXIgb2YgUmVhY3QncyBpbnRlcm5hbCBgQXR0ZW1wdEZsb3dgLlxuICpcbiAqIEl0IGNvbnRhaW5zIE5PIGRlY2lzaW9uIGFib3V0IHdoYXQgY29tZXMgbmV4dDogaXQgcmVuZGVycyB3aGF0ZXZlciBgc3RhdHVzYFxuICogdGhlIHNlcnZlciByZXR1cm5lZCwgbWFwcGVkIHRocm91Z2ggYG5leHRTdGVwYCBmcm9tIGBAYXRsYXNhdXRoL2pzYCAodGhlIHNhbWVcbiAqIGV4aGF1c3RpdmUgbWFwcGluZyB0aGUgUmVhY3QgU0RLIHVzZXMpLCBzbyBhZGRpbmcgYSBzdGVwIGlzIGEgc2VydmVyIGNoYW5nZVxuICogYW5kIGFuIG91dC1vZi1kYXRlIGNsaWVudCBkZWdyYWRlcyB0byBhIHZpc2libGUgXCJwbGVhc2UgdXBkYXRlXCIgbWVzc2FnZSByYXRoZXJcbiAqIHRoYW4gYSBibGFuayBzY3JlZW4uXG4gKi9cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2F0bGFzLWF0dGVtcHQtZmxvdycsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICBpbXBvcnRzOiBbQXRsYXNDYXB0Y2hhU2xvdERpcmVjdGl2ZV0sXG4gIHRlbXBsYXRlOiBgXG4gICAgPGRpdiBbY2xhc3NdPVwiY2xzKCdjYXJkJywgJ2F0bGFzLWNhcmQnKVwiPlxuICAgICAgPGgxIFtjbGFzc109XCJjbHMoJ2hlYWRlclRpdGxlJywgJ2F0bGFzLXRpdGxlJylcIj57eyB0KHRpdGxlS2V5KSB9fTwvaDE+XG5cbiAgICAgIEBmb3IgKGVycm9yIG9mIGZvcm1FcnJvcnMoKTsgdHJhY2sgZXJyb3IuY29kZSkge1xuICAgICAgICA8cCBbY2xhc3NdPVwiY2xzKCdmb3JtRmllbGRFcnJvcicsICdhdGxhcy1lcnJvcicpXCIgcm9sZT1cImFsZXJ0XCI+e3sgZXJyb3JUZXh0KGVycm9yKSB9fTwvcD5cbiAgICAgIH1cblxuICAgICAgPGZvcm0gKHN1Ym1pdCk9XCJvblN1Ym1pdCgkZXZlbnQpXCI+XG4gICAgICAgIEBpZiAoY29kZVNlbnRUZXh0KCk7IGFzIHNlbnRUZXh0KSB7XG4gICAgICAgICAgPHAgY2xhc3M9XCJhdGxhcy10ZXh0XCIgZGF0YS1hdGxhcy1jb2RlLXNlbnQ9XCJcIj57eyBzZW50VGV4dCB9fTwvcD5cbiAgICAgICAgfVxuICAgICAgICBAZm9yIChmIG9mIGZpZWxkcygpOyB0cmFjayAkaW5kZXgpIHtcbiAgICAgICAgICBAaWYgKGYua2luZCA9PT0gJ2lucHV0Jykge1xuICAgICAgICAgICAgPGxhYmVsIGNsYXNzPVwiYXRsYXMtZmllbGRcIj5cbiAgICAgICAgICAgICAgPHNwYW4+e3sgdChmLmxhYmVsS2V5KSB9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgPGlucHV0XG4gICAgICAgICAgICAgICAgW2NsYXNzXT1cImNscygnZm9ybUZpZWxkSW5wdXQnLCAnYXRsYXMtaW5wdXQnKVwiXG4gICAgICAgICAgICAgICAgW3R5cGVdPVwiZi50eXBlXCJcbiAgICAgICAgICAgICAgICBbYXR0ci5uYW1lXT1cImYubmFtZVwiXG4gICAgICAgICAgICAgICAgW3ZhbHVlXT1cInZhbHVlc1tmLm5hbWVdID8/ICcnXCJcbiAgICAgICAgICAgICAgICAoaW5wdXQpPVwic2V0VmFsdWUoZi5uYW1lLCAkYW55KCRldmVudC50YXJnZXQpLnZhbHVlKVwiXG4gICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgIEBmb3IgKGVycm9yIG9mIGZpZWxkRXJyb3JzRm9yKGYubmFtZSk7IHRyYWNrIGVycm9yLmNvZGUpIHtcbiAgICAgICAgICAgICAgICA8c3BhbiBbY2xhc3NdPVwiY2xzKCdmb3JtRmllbGRFcnJvcicsICdhdGxhcy1lcnJvcicpXCI+e3sgZXJyb3JUZXh0KGVycm9yKSB9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgPC9sYWJlbD5cbiAgICAgICAgICB9IEBlbHNlIHtcbiAgICAgICAgICAgIDxwPnt7IHQoZi5sYWJlbEtleSkgfX08L3A+XG4gICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGlmIChzaG93Q2FwdGNoYSgpKSB7XG4gICAgICAgICAgPGRpdiBjbGFzcz1cImF0bGFzLWNhcHRjaGFcIiBkYXRhLWF0bGFzLWNhcHRjaGE9XCJcIiBbYXRsYXNDYXB0Y2hhU2xvdF09XCJjYXB0Y2hhXCI+PC9kaXY+XG4gICAgICAgIH1cblxuICAgICAgICBAaWYgKHNob3dTdWJtaXQoKSkge1xuICAgICAgICAgIDxidXR0b24gW2NsYXNzXT1cImNscygnZm9ybUJ1dHRvblByaW1hcnknLCAnYXRsYXMtYnV0dG9uJylcIiBbZGlzYWJsZWRdPVwiYnVzeVwiIHR5cGU9XCJzdWJtaXRcIj5cbiAgICAgICAgICAgIHt7IHQoJ3NpZ25Jbi5zdWJtaXQnKSB9fVxuICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICB9XG5cbiAgICAgICAgQGlmIChzaG93RW1haWxDb2RlT3B0aW9uKCkpIHtcbiAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICBbY2xhc3NdPVwiY2xzKCdmb3JtQnV0dG9uU2Vjb25kYXJ5JywgJ2F0bGFzLWJ1dHRvbi1zZWNvbmRhcnknKVwiXG4gICAgICAgICAgICBbZGlzYWJsZWRdPVwiYnVzeVwiXG4gICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgIFthdHRyLmRhdGEtc3RyYXRlZ3ldPVwicHJlcGFyZWRGYWN0b3IgPT09ICdlbWFpbF9jb2RlJyA/IG51bGwgOiAnZW1haWxfY29kZSdcIlxuICAgICAgICAgICAgW2F0dHIuZGF0YS1hdGxhcy1yZXNlbmRdPVwicHJlcGFyZWRGYWN0b3IgPT09ICdlbWFpbF9jb2RlJyA/ICcnIDogbnVsbFwiXG4gICAgICAgICAgICAoY2xpY2spPVwiY2hvb3NlRmFjdG9yLmVtaXQoJ2VtYWlsX2NvZGUnKVwiXG4gICAgICAgICAgPlxuICAgICAgICAgICAge3sgdChwcmVwYXJlZEZhY3RvciA9PT0gJ2VtYWlsX2NvZGUnID8gJ3NpZ25Jbi5yZXNlbmRDb2RlJyA6ICdzaWduSW4udXNlRW1haWxDb2RlJykgfX1cbiAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgfVxuICAgICAgPC9mb3JtPlxuICAgIDwvZGl2PlxuICBgLFxufSlcbmV4cG9ydCBjbGFzcyBBdHRlbXB0Rmxvd0NvbXBvbmVudCB7XG4gIHByaXZhdGUgcmVhZG9ubHkgYXRsYXMgPSBpbmplY3QoQXRsYXNTZXJ2aWNlKTtcblxuICBASW5wdXQoKSBhdHRlbXB0OiBBdHRlbXB0VmlldyB8IG51bGwgPSBudWxsO1xuICBASW5wdXQoKSBidXN5ID0gZmFsc2U7XG4gIEBJbnB1dCgpIGVycm9yczogRmllbGRFcnJvcltdID0gW107XG4gIEBJbnB1dCgpIHRpdGxlS2V5ID0gJ3NpZ25Jbi50aXRsZSc7XG4gIC8qKlxuICAgKiBUaGUgc2lnbi1pbiBjYXB0Y2hhLCBkcmF3biBhYm92ZSB0aGUgc3VibWl0IGJ1dHRvbiBvbiB0aGUgaWRlbnRpZmllciBzdGVwXG4gICAqIChhbiBhbHdheXMtb24gc2lnbi1pbiBjYXB0Y2hhKSBhbmQgb24gdGhlIGNoYWxsZW5nZSBzdGVwIHRoZSBzZXJ2ZXIgZGVtYW5kc1xuICAgKiB3aXRoIGBuZWVkc19jYXB0Y2hhYC4gTnVsbCB3aGVuIHRoZSBmbG93IGRyYXdzIG5vbmUuXG4gICAqL1xuICBASW5wdXQoKSBjYXB0Y2hhOiBDYXB0Y2hhQ29udHJvbGxlciB8IG51bGwgPSBudWxsO1xuICAvKipcbiAgICogVGhlIGZpcnN0IGZhY3RvcnMgdG8gb2ZmZXIgb24gdGhlIGBuZWVkc19maXJzdF9mYWN0b3JgIHN0ZXAg4oCUIHBhc3NcbiAgICogYEF0bGFzRmxvd0NvbnRyb2xsZXIuZmlyc3RGYWN0b3JzKClgLCB3aGljaCBkcm9wcyBlbWFpbCBjb2RlIC8gbGluayB3aGlsZSB0aGVcbiAgICogYXBwIGNhbm5vdCBkZWxpdmVyIGVtYWlsLiBOdWxsIHVzZXMgdGhlIHNlcnZlcidzIGxpc3QgYXMtaXMuXG4gICAqL1xuICBASW5wdXQoKSBmaXJzdEZhY3RvcnM6IHN0cmluZ1tdIHwgbnVsbCA9IG51bGw7XG4gIC8qKiBUaGUgZmlyc3QgZmFjdG9yIGFscmVhZHkgc2VudCAoYEF0bGFzRmxvd0NvbnRyb2xsZXIucHJlcGFyZWRGYWN0b3IoKWApOiBpdHMgY29kZSBpcyBjb2xsZWN0ZWQuICovXG4gIEBJbnB1dCgpIHByZXBhcmVkRmFjdG9yOiBzdHJpbmcgfCBudWxsID0gbnVsbDtcblxuICAvKiogRW1pdHMgdGhlIGNvbGxlY3RlZCBmaWVsZCB2YWx1ZXMgd2hlbiB0aGUgZm9ybSBpcyBzdWJtaXR0ZWQuICovXG4gIEBPdXRwdXQoKSBzdWJtaXRGbG93ID0gbmV3IEV2ZW50RW1pdHRlcjxSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+PigpO1xuICAvKiogRW1pdHMgd2hlbiB0aGUgdXNlciBwaWNrcyBhIGZpcnN0IGZhY3RvciB0aGUgc2VydmVyIG11c3Qgc2VuZCBmaXJzdCAoYW4gZW1haWxlZCBjb2RlKS4gKi9cbiAgQE91dHB1dCgpIGNob29zZUZhY3RvciA9IG5ldyBFdmVudEVtaXR0ZXI8J2VtYWlsX2NvZGUnPigpO1xuXG4gIHByb3RlY3RlZCB2YWx1ZXM6IFJlY29yZDxzdHJpbmcsIHN0cmluZz4gPSB7fTtcblxuICBwcm90ZWN0ZWQgdChrZXk6IHN0cmluZywgdmFycz86IFJlY29yZDxzdHJpbmcsIHN0cmluZz4pOiBzdHJpbmcge1xuICAgIHJldHVybiB0cmFuc2xhdGUodGhpcy5hdGxhcy5sb2NhbGl6YXRpb24sIGtleSwgdmFycyk7XG4gIH1cblxuICAvKiogQSBzZXJ2ZXIgZXJyb3IgaW4gdGhlIGFwcCdzIGxhbmd1YWdlIChgZXJyb3IuPHJlYXNvbj5gLCBlbHNlIHRoZSBzZXJ2ZXIncyBtZXNzYWdlKS4gKi9cbiAgcHJvdGVjdGVkIGVycm9yVGV4dChlcnJvcjogRmllbGRFcnJvcik6IHN0cmluZyB7XG4gICAgLy8gYGVycm9yTG9jYWxpemF0aW9uYCBpcyByZWFkIGRlZmVuc2l2ZWx5OiBhIHN0YW5kLWluIHNlcnZpY2UgbWF5IGxhY2sgaXQuXG4gICAgY29uc3QgbGF5ZXIgPSAodGhpcy5hdGxhcyBhcyB7IGVycm9yTG9jYWxpemF0aW9uPzogUmVjb3JkPHN0cmluZywgc3RyaW5nPiB9KS5lcnJvckxvY2FsaXphdGlvbjtcbiAgICByZXR1cm4gbG9jYWxpemVkRXJyb3JNZXNzYWdlKGVycm9yLCBsYXllciA/PyB0aGlzLmF0bGFzLmxvY2FsaXphdGlvbiwgdGhpcy5hdGxhcy5sb2NhbGl6YXRpb24pO1xuICB9XG5cbiAgcHJvdGVjdGVkIGNscyhrZXk6IEVsZW1lbnRLZXksIGJhc2U6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgcmV0dXJuIGNsYXNzRm9yKGtleSwgdGhpcy5hdGxhcy5hcHBlYXJhbmNlLCBiYXNlKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBzZXRWYWx1ZShuYW1lOiBzdHJpbmcsIHZhbHVlOiBzdHJpbmcpOiB2b2lkIHtcbiAgICB0aGlzLnZhbHVlcyA9IHsgLi4udGhpcy52YWx1ZXMsIFtuYW1lXTogdmFsdWUgfTtcbiAgfVxuXG4gIHByb3RlY3RlZCBvblN1Ym1pdChldmVudDogRXZlbnQpOiB2b2lkIHtcbiAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgIHRoaXMuc3VibWl0Rmxvdy5lbWl0KHRoaXMudmFsdWVzKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBmb3JtRXJyb3JzKCk6IEZpZWxkRXJyb3JbXSB7XG4gICAgcmV0dXJuIHRoaXMuZXJyb3JzLmZpbHRlcigoZXJyb3IpID0+ICFlcnJvci5wYXJhbSk7XG4gIH1cblxuICBwcm90ZWN0ZWQgZmllbGRFcnJvcnNGb3IobmFtZTogc3RyaW5nKTogRmllbGRFcnJvcltdIHtcbiAgICByZXR1cm4gdGhpcy5lcnJvcnMuZmlsdGVyKChlcnJvcikgPT4gZXJyb3IucGFyYW0gPT09IG5hbWUpO1xuICB9XG5cbiAgcHJpdmF0ZSBzdGVwKCkge1xuICAgIHJldHVybiB0aGlzLmF0dGVtcHQgPyBuZXh0U3RlcCh0aGlzLmF0dGVtcHQpIDogKHsga2luZDogJ2NvbGxlY3RfaWRlbnRpZmllcicgfSBhcyBjb25zdCk7XG4gIH1cblxuICBwcm90ZWN0ZWQgc2hvd0NhcHRjaGEoKTogYm9vbGVhbiB7XG4gICAgY29uc3Qga2luZCA9IHRoaXMuc3RlcCgpLmtpbmQ7XG4gICAgcmV0dXJuICEhdGhpcy5jYXB0Y2hhICYmIChraW5kID09PSAnY29sbGVjdF9pZGVudGlmaWVyJyB8fCBraW5kID09PSAnY29sbGVjdF9jYXB0Y2hhJyk7XG4gIH1cblxuICAvKiogVGhlIGZpcnN0IGZhY3RvcnMgb24gb2ZmZXIgYXQgYSBgbmVlZHNfZmlyc3RfZmFjdG9yYCBzdGVwIChlbXB0eSBvbiBhbnkgb3RoZXIpLiAqL1xuICBwcml2YXRlIG9mZmVyZWQoKTogc3RyaW5nW10ge1xuICAgIGNvbnN0IHN0ZXAgPSB0aGlzLnN0ZXAoKTtcbiAgICBpZiAoc3RlcC5raW5kICE9PSAnY29sbGVjdF9maXJzdF9mYWN0b3InKSByZXR1cm4gW107XG4gICAgcmV0dXJuIHRoaXMuZmlyc3RGYWN0b3JzID8/IHN0ZXAuc3RyYXRlZ2llcztcbiAgfVxuXG4gIHByb3RlY3RlZCBzaG93RW1haWxDb2RlT3B0aW9uKCk6IGJvb2xlYW4ge1xuICAgIC8vIEJlZm9yZSB0aGUgY29kZSBpcyBzZW50OiB0aGUgY2hvaWNlIChvciB0aGUgcmV0cnkgb2YgYSBmYWlsZWQgYXV0b21hdGljXG4gICAgLy8gc2VuZCkuIEFmdGVyOiBcIlJlc2VuZCBjb2RlXCIuXG4gICAgcmV0dXJuIHRoaXMub2ZmZXJlZCgpLmluY2x1ZGVzKCdlbWFpbF9jb2RlJyk7XG4gIH1cblxuICAvKiogVGhlIFwid2Ugc2VudCBhIGNvZGUgdG8g4oCmXCIgbGluZSBvbiB0aGUgY29kZSBzdGVwLiAqL1xuICBwcm90ZWN0ZWQgY29kZVNlbnRUZXh0KCk6IHN0cmluZyB8IG51bGwge1xuICAgIGlmICh0aGlzLnN0ZXAoKS5raW5kICE9PSAnY29sbGVjdF9maXJzdF9mYWN0b3InIHx8IHRoaXMucHJlcGFyZWRGYWN0b3IgIT09ICdlbWFpbF9jb2RlJykgcmV0dXJuIG51bGw7XG4gICAgcmV0dXJuIHRoaXMudCgnc2lnbkluLmNvZGVTZW50VG8nLCB7IGVtYWlsOiB0aGlzLmF0dGVtcHQ/LmlkZW50aWZpZXIgPz8gJycgfSk7XG4gIH1cblxuICBwcm90ZWN0ZWQgc2hvd1N1Ym1pdCgpOiBib29sZWFuIHtcbiAgICBjb25zdCBraW5kID0gdGhpcy5zdGVwKCkua2luZDtcbiAgICAvLyBOb3RoaW5nIHRvIHN1Ym1pdCBvbiBhIGZpcnN0LWZhY3RvciBzdGVwIHRoYXQgb25seSBvZmZlcnMgYW4gZW1haWxlZCBjb2RlXG4gICAgLy8gdW50aWwgdGhhdCBjb2RlIGlzIHNlbnQuXG4gICAgaWYgKGtpbmQgPT09ICdjb2xsZWN0X2ZpcnN0X2ZhY3RvcicpIHJldHVybiB0aGlzLmZpZWxkcygpLmxlbmd0aCA+IDA7XG4gICAgcmV0dXJuIGtpbmQgIT09ICdkb25lJyAmJiBraW5kICE9PSAnYXdhaXRfb2F1dGgnO1xuICB9XG5cbiAgcHJvdGVjdGVkIGZpZWxkcygpOiBTdGVwRmllbGRbXSB7XG4gICAgY29uc3Qgc3RlcCA9IHRoaXMuc3RlcCgpO1xuICAgIHN3aXRjaCAoc3RlcC5raW5kKSB7XG4gICAgICBjYXNlICdjb2xsZWN0X2lkZW50aWZpZXInOlxuICAgICAgICByZXR1cm4gW3sga2luZDogJ2lucHV0JywgbmFtZTogJ2lkZW50aWZpZXInLCBsYWJlbEtleTogJ3NpZ25Jbi5pZGVudGlmaWVyTGFiZWwnLCB0eXBlOiAnZW1haWwnIH1dO1xuICAgICAgY2FzZSAnY29sbGVjdF9maXJzdF9mYWN0b3InOiB7XG4gICAgICAgIGlmICh0aGlzLnByZXBhcmVkRmFjdG9yID09PSAnZW1haWxfY29kZScpIHtcbiAgICAgICAgICByZXR1cm4gW3sga2luZDogJ2lucHV0JywgbmFtZTogJ2NvZGUnLCBsYWJlbEtleTogJ3NpZ25Jbi5lbWFpbENvZGVMYWJlbCcsIHR5cGU6ICd0ZXh0JyB9XTtcbiAgICAgICAgfVxuICAgICAgICAvLyBUaGUgcGFzc3dvcmQgZmllbGQgdW5sZXNzIHRoZSBvbmx5IG9mZmVyIGlzIGFuIGVtYWlsZWQgY29kZSAoY2hvc2VuXG4gICAgICAgIC8vIHdpdGggdGhlIGJ1dHRvbiBiZWxvdyB0aGUgZm9ybSkuXG4gICAgICAgIGNvbnN0IG9mZmVyZWQgPSB0aGlzLm9mZmVyZWQoKTtcbiAgICAgICAgcmV0dXJuIG9mZmVyZWQuaW5jbHVkZXMoJ2VtYWlsX2NvZGUnKSAmJiAhb2ZmZXJlZC5pbmNsdWRlcygncGFzc3dvcmQnKVxuICAgICAgICAgID8gW11cbiAgICAgICAgICA6IFt7IGtpbmQ6ICdpbnB1dCcsIG5hbWU6ICdwYXNzd29yZCcsIGxhYmVsS2V5OiAnc2lnbkluLnBhc3N3b3JkTGFiZWwnLCB0eXBlOiAncGFzc3dvcmQnIH1dO1xuICAgICAgfVxuICAgICAgY2FzZSAnY29sbGVjdF9zZWNvbmRfZmFjdG9yJzpcbiAgICAgICAgcmV0dXJuIFt7IGtpbmQ6ICdpbnB1dCcsIG5hbWU6ICdjb2RlJywgbGFiZWxLZXk6ICdtZmEuY29kZUxhYmVsJywgdHlwZTogJ3RleHQnIH1dO1xuICAgICAgY2FzZSAnZW5yb2xsX3NlY29uZF9mYWN0b3InOlxuICAgICAgICAvLyBUd28gY29uc2VjdXRpdmUgY29kZXMgKMKnNS42KTogYSBwaG9uZSB3aXRoIGEgZmFzdCBjbG9jayBmYWlscyBoZXJlXG4gICAgICAgIC8vIHJhdGhlciB0aGFuIG9uIGV2ZXJ5IHNpZ24taW4gYWZ0ZXJ3YXJkcy5cbiAgICAgICAgcmV0dXJuIFtcbiAgICAgICAgICB7IGtpbmQ6ICdpbnB1dCcsIG5hbWU6ICdjb2RlJywgbGFiZWxLZXk6ICdtZmEuZW5yb2xsRmlyc3RDb2RlTGFiZWwnLCB0eXBlOiAndGV4dCcgfSxcbiAgICAgICAgICB7IGtpbmQ6ICdpbnB1dCcsIG5hbWU6ICdzZWNvbmRDb2RlJywgbGFiZWxLZXk6ICdtZmEuZW5yb2xsU2Vjb25kQ29kZUxhYmVsJywgdHlwZTogJ3RleHQnIH0sXG4gICAgICAgIF07XG4gICAgICBjYXNlICdjb2xsZWN0X2VtYWlsX2NvZGUnOlxuICAgICAgICByZXR1cm4gW3sga2luZDogJ2lucHV0JywgbmFtZTogJ2NvZGUnLCBsYWJlbEtleTogJ3NpZ25Jbi5lbWFpbENvZGVMYWJlbCcsIHR5cGU6ICd0ZXh0JyB9XTtcbiAgICAgIGNhc2UgJ2NvbGxlY3RfbmV3X3Bhc3N3b3JkJzpcbiAgICAgICAgcmV0dXJuIFt7IGtpbmQ6ICdpbnB1dCcsIG5hbWU6ICdwYXNzd29yZCcsIGxhYmVsS2V5OiAncmVzZXQubmV3UGFzc3dvcmRMYWJlbCcsIHR5cGU6ICdwYXNzd29yZCcgfV07XG4gICAgICBjYXNlICdjb2xsZWN0X2NhcHRjaGEnOlxuICAgICAgICAvLyDCpzUgdGhlIHNlcnZlciB3aXRoaGVsZCB0aGUgYXR0ZW1wdCB1bnRpbCBhIGNhcHRjaGEgY2xlYXJzLiBTb2x2aW5nIHRoZVxuICAgICAgICAvLyB3aWRnZXQgcmVzdWJtaXRzIHRoZSBpZGVudGlmaWVyIG9uIGl0cyBvd247IHRoZSBidXR0b24gcmV0cmllcy5cbiAgICAgICAgcmV0dXJuIFttc2coJ2NhcHRjaGEucHJvbXB0JyldO1xuICAgICAgY2FzZSAnYXdhaXRfb2F1dGgnOlxuICAgICAgICByZXR1cm4gW21zZygnc2lnbkluLm1hZ2ljTGlua1NlbnQnKV07XG4gICAgICBjYXNlICdkb25lJzpcbiAgICAgICAgcmV0dXJuIFttc2coJ3NpZ25Jbi5jaGVja090aGVyVGFiJyldO1xuICAgICAgY2FzZSAncmVzdGFydCc6XG4gICAgICAgIHJldHVybiBbbXNnKCdlcnJvci5nZW5lcmljJyldO1xuICAgICAgZGVmYXVsdDpcbiAgICAgICAgLy8gQSBzdGF0dXMgdGhpcyBTREsgdmVyc2lvbiBkb2VzIG5vdCBrbm93LiBBbiBob25lc3QgbWVzc2FnZSBiZWF0cyBhXG4gICAgICAgIC8vIGJsYW5rIGxvZ2luIGJveCB0aGUgdXNlciBjYW5ub3QgYWN0IG9uLlxuICAgICAgICByZXR1cm4gW21zZygnZXJyb3IuZ2VuZXJpYycpXTtcbiAgICB9XG4gIH1cbn1cblxuLyoqIEEgcmVhZC1vbmx5IG1lc3NhZ2Ugcm93OiBgbGFiZWxLZXlgIGhvbGRzIHRoZSBpMThuIGtleSBvZiB0aGUgdGV4dCB0byBzaG93LiAqL1xuZnVuY3Rpb24gbXNnKGxhYmVsS2V5OiBzdHJpbmcpOiBTdGVwRmllbGQge1xuICByZXR1cm4geyBraW5kOiAnbWVzc2FnZScsIG5hbWU6ICcnLCBsYWJlbEtleSwgdHlwZTogJ3RleHQnIH07XG59XG4iXX0=
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { signal } from '@angular/core';
|
|
2
|
-
import { advanceWithCaptcha, createCaptchaController, createSignUp, fetchInstanceSettings, flowNeedsCaptcha, signInCaptchaOptions, flowFromPending, initialFlow, nextStep, offeredFirstFactors, pollAttempt, prepareFactor, shouldKeepPolling, } from '@atlasauth/js';
|
|
2
|
+
import { advanceWithCaptcha, createCaptchaController, createSignUp, fetchInstanceSettings, flowNeedsCaptcha, signInCaptchaOptions, flowFromPending, initialFlow, nextStep, offeredFirstFactors, pollAttempt, prepareFactor, planFirstFactor, shouldKeepPolling, } from '@atlasauth/js';
|
|
3
3
|
import { EN_US, translate } from '../i18n';
|
|
4
4
|
/**
|
|
5
5
|
* The server-driven sign-in / sign-up engine, shared by `<atlas-sign-in>` and
|
|
@@ -118,6 +118,22 @@ export class AtlasFlowController {
|
|
|
118
118
|
if (next.attempt?.status !== 'needs_first_factor')
|
|
119
119
|
this.preparedFactor.set(null);
|
|
120
120
|
this.syncCaptcha();
|
|
121
|
+
this.autoSend();
|
|
122
|
+
}
|
|
123
|
+
autoSentFor = null;
|
|
124
|
+
/**
|
|
125
|
+
* With no password on offer, email the code as soon as the server asks for a
|
|
126
|
+
* first factor — once per attempt, so a failed send waits for the user's retry
|
|
127
|
+
* (the "Email me a code" button) instead of looping.
|
|
128
|
+
*/
|
|
129
|
+
autoSend() {
|
|
130
|
+
const id = this.state().attempt?.id ?? null;
|
|
131
|
+
if (!id || this.autoSentFor === id || this.preparedFactor())
|
|
132
|
+
return;
|
|
133
|
+
if (planFirstFactor(this.firstFactors()).autoSend !== 'email_code')
|
|
134
|
+
return;
|
|
135
|
+
this.autoSentFor = id;
|
|
136
|
+
void this.prepare('email_code');
|
|
121
137
|
}
|
|
122
138
|
/**
|
|
123
139
|
* Advance the flow with the values the user typed. On completion, exchange the
|
|
@@ -208,4 +224,4 @@ export class AtlasFlowController {
|
|
|
208
224
|
this.signUpCaptcha.destroy();
|
|
209
225
|
}
|
|
210
226
|
}
|
|
211
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmxvdy1jb250cm9sbGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2xpYi9jb21wb25lbnRzL2Zsb3ctY29udHJvbGxlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQWtCLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN2RCxPQUFPLEVBRUwsa0JBQWtCLEVBQ2xCLHVCQUF1QixFQUN2QixZQUFZLEVBQ1oscUJBQXFCLEVBQ3JCLGdCQUFnQixFQUNoQixvQkFBb0IsRUFDcEIsZUFBZSxFQUNmLFdBQVcsRUFDWCxRQUFRLEVBQ1IsbUJBQW1CLEVBQ25CLFdBQVcsRUFDWCxhQUFhLEVBQ2IsaUJBQWlCLEdBSWxCLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFFLE1BQU0sU0FBUyxDQUFDO0FBRTNDOzs7Ozs7Ozs7Ozs7O0dBYUc7QUFDSCxNQUFNLE9BQU8sbUJBQW1CO0lBMEJYO0lBQ0E7SUFHQTtJQTdCVixLQUFLLENBQTRCO0lBQzFDOzs7O09BSUc7SUFDTSxRQUFRLEdBQUcsTUFBTSxDQUEwQixJQUFJLENBQUMsQ0FBQztJQUMxRCx5RUFBeUU7SUFDaEUsT0FBTyxHQUFzQix1QkFBdUIsRUFBRSxDQUFDO0lBQ2hFLHFEQUFxRDtJQUM1QyxhQUFhLEdBQXNCLHVCQUF1QixFQUFFLENBQUM7SUFDdEUsd0VBQXdFO0lBQy9ELFlBQVksR0FBRyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDdEMsOEVBQThFO0lBQ3JFLGtCQUFrQixHQUFHLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUM1Qzs7OztPQUlHO0lBQ00sY0FBYyxHQUFHLE1BQU0sQ0FBc0IsSUFBSSxDQUFDLENBQUM7SUFDcEQsU0FBUyxHQUEwQyxJQUFJLENBQUM7SUFDeEQsVUFBVSxHQUFHLEVBQUUsQ0FBQztJQUV4QixZQUNtQixNQUFrQixFQUNsQixNQUEyQixFQUM1QyxP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QVcsRUFBRSxDQUFDO1lBQ3JCLENBQUMsQ0FBQyxFQUFFLENBQUM7UUFDUCxDQUFDLEVBQUUsS0FBSyxDQUFDLENBQUM7SUFDWixDQUFDO0lBRU8sV0FBVztRQUNqQixJQUFJLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQztZQUNuQixhQUFhLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1lBQzlCLElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDO1FBQ3hCLENBQUM7SUFDSCxDQUFDO0lBRUQsZ0dBQWdHO0lBQ2hHLE9BQU87UUFDTCxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7UUFDbkIsSUFBSSxDQUFDLE9BQU8sQ0FBQyxPQUFPLEVBQUUsQ0FBQztRQUN2QixJQUFJLENBQUMsYUFBYSxDQUFDLE9BQU8sRUFBRSxDQUFDO0lBQy9CLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFdyaXRhYmxlU2lnbmFsLCBzaWduYWwgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7XG4gIEZhcGlDbGllbnQsXG4gIGFkdmFuY2VXaXRoQ2FwdGNoYSxcbiAgY3JlYXRlQ2FwdGNoYUNvbnRyb2xsZXIsXG4gIGNyZWF0ZVNpZ25VcCxcbiAgZmV0Y2hJbnN0YW5jZVNldHRpbmdzLFxuICBmbG93TmVlZHNDYXB0Y2hhLFxuICBzaWduSW5DYXB0Y2hhT3B0aW9ucyxcbiAgZmxvd0Zyb21QZW5kaW5nLFxuICBpbml0aWFsRmxvdyxcbiAgbmV4dFN0ZXAsXG4gIG9mZmVyZWRGaXJzdEZhY3RvcnMsXG4gIHBvbGxBdHRlbXB0LFxuICBwcmVwYXJlRmFjdG9yLFxuICBzaG91bGRLZWVwUG9sbGluZyxcbiAgdHlwZSBDYXB0Y2hhQ29udHJvbGxlcixcbiAgdHlwZSBGbG93U3RhdGUsXG4gIHR5cGUgSW5zdGFuY2VTZXR0aW5ncyxcbn0gZnJvbSAnQGF0bGFzYXV0aC9qcyc7XG5pbXBvcnQgeyBFTl9VUywgdHJhbnNsYXRlIH0gZnJvbSAnLi4vaTE4bic7XG5cbi8qKlxuICogVGhlIHNlcnZlci1kcml2ZW4gc2lnbi1pbiAvIHNpZ24tdXAgZW5naW5lLCBzaGFyZWQgYnkgYDxhdGxhcy1zaWduLWluPmAgYW5kXG4gKiBgPGF0bGFzLXNpZ24tdXA+YCDigJQgdGhlIEFuZ3VsYXIgY291bnRlcnBhcnQgb2YgUmVhY3QncyBgdXNlRmxvd2AgaG9vay5cbiAqXG4gKiBJdCBvd25zIG5vIGRlY2lzaW9uIGFib3V0IHdoYXQgY29tZXMgbmV4dDogZXZlcnkgc3RhdHVzIGNvbWVzIGJhY2sgZnJvbSB0aGVcbiAqIHNlcnZlciB2aWEgYGFkdmFuY2VgLCBhbmQgdGhpcyBjb250cm9sbGVyIG9ubHkgcG9zdHMgd2hhdGV2ZXIgdGhlIGN1cnJlbnQgc3RlcFxuICogbmVlZHMgYW5kIHJlLXJlbmRlcnMgdGhlIHJldHVybmVkIHN0YXR1cy4gU3RhdGUgbGl2ZXMgaW4gYSBzaWduYWwgc28gdGVtcGxhdGVzXG4gKiB1cGRhdGUgd2hldGhlciB0aGUgYXBwIHJ1bnMgem9uZWQgb3Igem9uZWxlc3MuXG4gKlxuICogYDxhdGxhcy1zaWduLXVwPmAgc3RhcnRzIHRoZSBhdHRlbXB0IHdpdGgge0BsaW5rIGNyZWF0ZX1cbiAqIChgUE9TVCAvdjEvY2xpZW50L3NpZ25fdXBzYCk7IHRoZSBlbWFpbGVkLWNvZGUgc3RlcCB0aGVuIHJ1bnMgdGhyb3VnaCB0aGUgc2FtZVxuICoge0BsaW5rIHN1Ym1pdH0uIEJvdGggZmxvd3MgZHJhdyB0aGUgaW5zdGFuY2UncyBjYXB0Y2hhIChmcm9tXG4gKiB7QGxpbmsgbG9hZFNldHRpbmdzfSkgd2hlbiBpdCBpcyByZXF1aXJlZC5cbiAqL1xuZXhwb3J0IGNsYXNzIEF0bGFzRmxvd0NvbnRyb2xsZXIge1xuICByZWFkb25seSBzdGF0ZTogV3JpdGFibGVTaWduYWw8Rmxvd1N0YXRlPjtcbiAgLyoqXG4gICAqIFRoZSBpbnN0YW5jZSdzIHB1YmxpYyBzaWduLWluIC8gc2lnbi11cCBzZXR0aW5ncyAoY2FwdGNoYSwgc2lnbi11cCBmaWVsZHMsXG4gICAqIGxlZ2FsIGNvbnNlbnQpIGZyb20gYEdFVCAvdjEvYXBwZWFyYW5jZWA7IG51bGwgdW50aWwge0BsaW5rIGxvYWRTZXR0aW5nc31cbiAgICogcmVzb2x2ZXMsIG9yIHdoZW4gdGhlIHNlcnZlciBjb3VsZCBub3QgYmUgcmVhY2hlZC5cbiAgICovXG4gIHJlYWRvbmx5IHNldHRpbmdzID0gc2lnbmFsPEluc3RhbmNlU2V0dGluZ3MgfCBudWxsPihudWxsKTtcbiAgLyoqIFRoZSBzaWduLWluIGNhcHRjaGEgKGlkZW50aWZpZXIgc3RlcCAvIGBuZWVkc19jYXB0Y2hhYCBjaGFsbGVuZ2UpLiAqL1xuICByZWFkb25seSBjYXB0Y2hhOiBDYXB0Y2hhQ29udHJvbGxlciA9IGNyZWF0ZUNhcHRjaGFDb250cm9sbGVyKCk7XG4gIC8qKiBUaGUgc2lnbi11cCBjYXB0Y2hhICh0aGUgY3JlYXRlLWFjY291bnQgc3RlcCkuICovXG4gIHJlYWRvbmx5IHNpZ25VcENhcHRjaGE6IENhcHRjaGFDb250cm9sbGVyID0gY3JlYXRlQ2FwdGNoYUNvbnRyb2xsZXIoKTtcbiAgLyoqIFdoZXRoZXIge0BsaW5rIGNhcHRjaGF9IGN1cnJlbnRseSBkcmF3cyBhIHdpZGdldCAoZm9yIHRlbXBsYXRlcykuICovXG4gIHJlYWRvbmx5IGNhcHRjaGFEcmF3biA9IHNpZ25hbChmYWxzZSk7XG4gIC8qKiBXaGV0aGVyIHtAbGluayBzaWduVXBDYXB0Y2hhfSBjdXJyZW50bHkgZHJhd3MgYSB3aWRnZXQgKGZvciB0ZW1wbGF0ZXMpLiAqL1xuICByZWFkb25seSBzaWduVXBDYXB0Y2hhRHJhd24gPSBzaWduYWwoZmFsc2UpO1xuICAvKipcbiAgICogVGhlIGZpcnN0IGZhY3RvciB0aGUgc2VydmVyIHdhcyBhc2tlZCB0byBzZW5kICh7QGxpbmsgcHJlcGFyZX0pIG9uIHRoZVxuICAgKiBjdXJyZW50IGBuZWVkc19maXJzdF9mYWN0b3JgIHN0ZXAg4oCUIHRoZSBmb3JtIHRoZW4gY29sbGVjdHMgaXRzIGNvZGUuIE51bGxcbiAgICogb3RoZXJ3aXNlLlxuICAgKi9cbiAgcmVhZG9ubHkgcHJlcGFyZWRGYWN0b3IgPSBzaWduYWw8J2VtYWlsX2NvZGUnIHwgbnVsbD4obnVsbCk7XG4gIHByaXZhdGUgcG9sbFRpbWVyOiBSZXR1cm5UeXBlPHR5cGVvZiBzZXRJbnRlcnZhbD4gfCBudWxsID0gbnVsbDtcbiAgcHJpdmF0ZSBpZGVudGlmaWVyID0gJyc7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSByZWFkb25seSBjbGllbnQ6IEZhcGlDbGllbnQsXG4gICAgcHJpdmF0ZSByZWFkb25seSByZWxvYWQ6ICgpID0+IFByb21pc2U8dm9pZD4sXG4gICAgcGVuZGluZzogeyBpZDogc3RyaW5nOyBzdGF0dXM6IHN0cmluZyB9IHwgbnVsbCxcbiAgICAvKiogUmVzb2x2ZXMgdGhlIGNhcHRjaGEgbWVzc2FnZXMnIGNhdGFsb2cga2V5cy4gRGVmYXVsdHMgdG8gZW4tVVMuICovXG4gICAgcHJpdmF0ZSByZWFkb25seSB0OiAoa2V5OiBzdHJpbmcpID0+IHN0cmluZyA9IChrZXkpID0+IHRyYW5zbGF0ZShFTl9VUywga2V5KSxcbiAgKSB7XG4gICAgLy8gU2VlZGVkIGZyb20gYSByZWRpcmVjdCB0aGF0IGNhbWUgYmFjayBtaWQtZmxvdyAoZS5nLiBPQXV0aCBuZWVkaW5nIGEgc2Vjb25kXG4gICAgLy8gZmFjdG9yKSBzbyB0aGUgdXNlciByZXN1bWVzIGF0IHRoZSBkZW1hbmRlZCBzdGVwIGluc3RlYWQgb2Ygc3RhcnRpbmcgb3Zlci5cbiAgICB0aGlzLnN0YXRlID0gc2lnbmFsPEZsb3dTdGF0ZT4ocGVuZGluZyA/IGZsb3dGcm9tUGVuZGluZyhwZW5kaW5nKSA6IGluaXRpYWxGbG93KTtcbiAgICB0aGlzLnN5bmNDYXB0Y2hhKCk7XG4gIH1cblxuICAvKiogRmV0Y2ggdGhlIGluc3RhbmNlJ3MgcHVibGljIHNldHRpbmdzIGFuZCBkcmF3IHdoYXRldmVyIGNhcHRjaGEgdGhleSByZXF1aXJlLiAqL1xuICBhc3luYyBsb2FkU2V0dGluZ3MoKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgY29uc3QgbG9hZGVkID0gYXdhaXQgZmV0Y2hJbnN0YW5jZVNldHRpbmdzKHRoaXMuY2xpZW50KTtcbiAgICBpZiAobG9hZGVkKSB7XG4gICAgICB0aGlzLnNldHRpbmdzLnNldChsb2FkZWQpO1xuICAgICAgdGhpcy5zeW5jQ2FwdGNoYSgpO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBUaGUgZmlyc3QgZmFjdG9ycyB0byBvZmZlciBvbiBhIGBuZWVkc19maXJzdF9mYWN0b3JgIHN0ZXA6IHRoZSBzZXJ2ZXIncyBsaXN0XG4gICAqIHdpdGhvdXQgZW1haWwgY29kZSAvIGxpbmsgd2hpbGUgdGhlIGFwcCBjYW5ub3QgZGVsaXZlciBlbWFpbFxuICAgKiAoYHNldHRpbmdzLmVtYWlsRGVsaXZlcnkuYXZhaWxhYmxlID09PSBmYWxzZWApLiBFbXB0eSBvbiBhbnkgb3RoZXIgc3RlcC5cbiAgICovXG4gIGZpcnN0RmFjdG9ycygpOiBzdHJpbmdbXSB7XG4gICAgY29uc3QgYXR0ZW1wdCA9IHRoaXMuc3RhdGUoKS5hdHRlbXB0O1xuICAgIGNvbnN0IHN0ZXAgPSBhdHRlbXB0ID8gbmV4dFN0ZXAoYXR0ZW1wdCkgOiBudWxsO1xuICAgIHJldHVybiBzdGVwPy5raW5kID09PSAnY29sbGVjdF9maXJzdF9mYWN0b3InXG4gICAgICA/IG9mZmVyZWRGaXJzdEZhY3RvcnMoc3RlcC5zdHJhdGVnaWVzLCB0aGlzLnNldHRpbmdzKCk/LmVtYWlsRGVsaXZlcnkpXG4gICAgICA6IFtdO1xuICB9XG5cbiAgLyoqXG4gICAqIFRydWUgd2hlbiBlbWFpbCArIHBhc3N3b3JkIHNpZ24tdXAgY2Fubm90IGNvbXBsZXRlIGJlY2F1c2UgdGhlIGFwcCBjYW5ub3RcbiAgICogc2VuZCB0aGUgdmVyaWZpY2F0aW9uIGVtYWlsIChgc2V0dGluZ3MuZW1haWxEZWxpdmVyeS5wYXNzd29yZFNpZ25VcCA9PT0gZmFsc2VgKTpcbiAgICogYDxhdGxhcy1zaWduLXVwPmAgc2hvd3MgdGhlIFwiY2FuJ3Qgc2VuZCBlbWFpbFwiIG5vdGljZSBpbnN0ZWFkIG9mIHRoZSBmb3JtLlxuICAgKi9cbiAgc2lnblVwRW1haWxVbmF2YWlsYWJsZSgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5zZXR0aW5ncygpPy5lbWFpbERlbGl2ZXJ5LnBhc3N3b3JkU2lnblVwID09PSBmYWxzZTtcbiAgfVxuXG4gIC8qKiBGYWxzZSB3aGVuIGEgcGFzc3dvcmQgcmVzZXQgZW1haWwgY2Fubm90IGJlIGRlbGl2ZXJlZCDigJQgaGlkZSBcIkZvcmdvdCBwYXNzd29yZD9cIi4gKi9cbiAgcGFzc3dvcmRSZXNldEF2YWlsYWJsZSgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5zZXR0aW5ncygpPy5lbWFpbERlbGl2ZXJ5LnBhc3N3b3JkUmVzZXQgIT09IGZhbHNlO1xuICB9XG5cbiAgLyoqXG4gICAqIEFzayB0aGUgc2VydmVyIHRvIGVtYWlsIGEgc2lnbi1pbiBjb2RlIGZvciB0aGUgY3VycmVudCBgbmVlZHNfZmlyc3RfZmFjdG9yYFxuICAgKiBzdGVwIChgUE9TVCDigKYvcHJlcGFyZV9maXJzdF9mYWN0b3JgKTsgdGhlIGZvcm0gdGhlbiBjb2xsZWN0cyB0aGUgY29kZSwgd2hpY2hcbiAgICoge0BsaW5rIHN1Ym1pdH0gcG9zdHMgYXMgdGhlIGBlbWFpbF9jb2RlYCBzdHJhdGVneS5cbiAgICovXG4gIGFzeW5jIHByZXBhcmUoc3RyYXRlZ3k6ICdlbWFpbF9jb2RlJyk6IFByb21pc2U8dm9pZD4ge1xuICAgIGlmICghdGhpcy5maXJzdEZhY3RvcnMoKS5pbmNsdWRlcyhzdHJhdGVneSkpIHJldHVybjtcbiAgICB0aGlzLnN0YXRlLnVwZGF0ZSgoY3VycmVudCkgPT4gKHsgLi4uY3VycmVudCwgYnVzeTogdHJ1ZSwgZXJyb3JzOiBbXSB9KSk7XG4gICAgY29uc3QgbmV4dCA9IGF3YWl0IHByZXBhcmVGYWN0b3IodGhpcy5jbGllbnQsIHRoaXMuc3RhdGUoKSwgc3RyYXRlZ3kpO1xuICAgIHRoaXMuc2V0U3RhdGUobmV4dCk7XG4gICAgaWYgKCFuZXh0LmVycm9ycy5sZW5ndGgpIHRoaXMucHJlcGFyZWRGYWN0b3Iuc2V0KHN0cmF0ZWd5KTtcbiAgfVxuXG4gIC8qKiBLZWVwIGJvdGggY2FwdGNoYXMgaW4gc3RlcCB3aXRoIHRoZSBzZXR0aW5ncyBhbmQgdGhlIGZsb3cncyBjdXJyZW50IHN0ZXAuICovXG4gIHByaXZhdGUgc3luY0NhcHRjaGEoKTogdm9pZCB7XG4gICAgY29uc3Qgc2V0dGluZ3MgPSB0aGlzLnNldHRpbmdzKCk7XG4gICAgY29uc3Qgc3RhdGUgPSB0aGlzLnN0YXRlKCk7XG4gICAgdGhpcy5jYXB0Y2hhLmNvbmZpZ3VyZShcbiAgICAgIHNpZ25JbkNhcHRjaGFPcHRpb25zKHNldHRpbmdzPy5jYXB0Y2hhRmxvd3Muc2lnbkluLCBzdGF0ZSwgKCkgPT4gdm9pZCB0aGlzLnN1Ym1pdCh7fSkpLFxuICAgICk7XG4gICAgY29uc3Qgc2lnblVwRmxvdyA9IHNldHRpbmdzPy5jYXB0Y2hhRmxvd3Muc2lnblVwO1xuICAgIHRoaXMuc2lnblVwQ2FwdGNoYS5jb25maWd1cmUoe1xuICAgICAgZmxvdzogc2lnblVwRmxvdyxcbiAgICAgIGFjdGl2ZTogIXN0YXRlLmF0dGVtcHQgJiYgZmxvd05lZWRzQ2FwdGNoYShzaWduVXBGbG93KSxcbiAgICB9KTtcbiAgICB0aGlzLmNhcHRjaGFEcmF3bi5zZXQodGhpcy5jYXB0Y2hhLm5lZWRlZCk7XG4gICAgdGhpcy5zaWduVXBDYXB0Y2hhRHJhd24uc2V0KHRoaXMuc2lnblVwQ2FwdGNoYS5uZWVkZWQpO1xuICB9XG5cbiAgcHJpdmF0ZSBzZXRTdGF0ZShuZXh0OiBGbG93U3RhdGUpOiB2b2lkIHtcbiAgICB0aGlzLnN0YXRlLnNldChuZXh0KTtcbiAgICAvLyBBIHByZXBhcmVkIGZhY3RvciBiZWxvbmdzIHRvIHRoZSBmaXJzdC1mYWN0b3Igc3RlcCBpdCB3YXMgc2VudCBmb3IuXG4gICAgaWYgKG5leHQuYXR0ZW1wdD8uc3RhdHVzICE9PSAnbmVlZHNfZmlyc3RfZmFjdG9yJykgdGhpcy5wcmVwYXJlZEZhY3Rvci5zZXQobnVsbCk7XG4gICAgdGhpcy5zeW5jQ2FwdGNoYSgpO1xuICB9XG5cbiAgLyoqXG4gICAqIEFkdmFuY2UgdGhlIGZsb3cgd2l0aCB0aGUgdmFsdWVzIHRoZSB1c2VyIHR5cGVkLiBPbiBjb21wbGV0aW9uLCBleGNoYW5nZSB0aGVcbiAgICogb25lLXRpbWUgdGlja2V0IGZvciBjb29raWVzIG92ZXIgYSBzYW1lLW9yaWdpbiByZXF1ZXN0IChGQVBJIGlzIGNyb3NzLW9yaWdpblxuICAgKiBhbmQgY2Fubm90IHNldCB0aGUgY29va2llIG9uIGl0cyBvd24gcmVzcG9uc2UpLCB0aGVuIHJlLWJvb3Qgc28gdGhlIHJlc3Qgb2ZcbiAgICogdGhlIGFwcCBzZWVzIGEgc2lnbmVkLWluIHVzZXIuXG4gICAqL1xuICBhc3luYyBzdWJtaXQodmFsdWVzOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+KTogUHJvbWlzZTx2b2lkPiB7XG4gICAgdGhpcy5zdGF0ZS51cGRhdGUoKGN1cnJlbnQpID0+ICh7IC4uLmN1cnJlbnQsIGJ1c3k6IHRydWUsIGVycm9yczogW10gfSkpO1xuXG4gICAgY29uc3Qgb3V0ID0gYXdhaXQgYWR2YW5jZVdpdGhDYXB0Y2hhKHRoaXMuY2xpZW50LCB0aGlzLnN0YXRlKCksIHZhbHVlcywge1xuICAgICAgY2FwdGNoYTogdGhpcy5jYXB0Y2hhLFxuICAgICAgaWRlbnRpZmllcjogdGhpcy5pZGVudGlmaWVyLFxuICAgICAgdDogdGhpcy50LFxuICAgIH0pO1xuICAgIHRoaXMuaWRlbnRpZmllciA9IG91dC5pZGVudGlmaWVyO1xuICAgIGF3YWl0IHRoaXMuZmluaXNoKG91dC5zdGF0ZSk7XG4gIH1cblxuICAvKipcbiAgICogQ3JlYXRlIGFuIGFjY291bnQgKGBQT1NUIC92MS9jbGllbnQvc2lnbl91cHNgKSBmcm9tIGEgY3JlYXRlLWFjY291bnQgZm9ybSdzXG4gICAqIHZhbHVlcyDigJQgZW1haWwsIHBhc3N3b3JkIGFuZCBhbnkgY29uZmlndXJlZCBzaWduLXVwIGZpZWxkcyDigJQgY2FycnlpbmcgdGhlXG4gICAqIHNpZ24tdXAgY2FwdGNoYSdzIHRva2VuIHdoZW4gdGhlIGluc3RhbmNlIHJlcXVpcmVzIG9uZS4gVGhlIGVtYWlsZWQgY29kZSBpc1xuICAgKiB0aGVuIHBvc3RlZCB3aXRoIHtAbGluayBzdWJtaXR9LlxuICAgKi9cbiAgYXN5bmMgY3JlYXRlKHZhbHVlczogUmVjb3JkPHN0cmluZywgc3RyaW5nPiwgY29uc2VudCA9IHRydWUpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICB0aGlzLnN0YXRlLnVwZGF0ZSgoY3VycmVudCkgPT4gKHsgLi4uY3VycmVudCwgYnVzeTogdHJ1ZSwgZXJyb3JzOiBbXSB9KSk7XG4gICAgY29uc3QgbmV4dCA9IGF3YWl0IGNyZWF0ZVNpZ25VcCh0aGlzLmNsaWVudCwgdmFsdWVzLCB7XG4gICAgICBjb25zZW50LFxuICAgICAgY2FwdGNoYTogdGhpcy5zaWduVXBDYXB0Y2hhLFxuICAgICAgdDogdGhpcy50LFxuICAgIH0pO1xuICAgIGF3YWl0IHRoaXMuZmluaXNoKG5leHQpO1xuICB9XG5cbiAgcHJpdmF0ZSBhc3luYyBmaW5pc2gobmV4dDogRmxvd1N0YXRlKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgdGhpcy5zZXRTdGF0ZShuZXh0KTtcblxuICAgIGlmIChuZXh0LmF0dGVtcHQ/LnN0YXR1cyA9PT0gJ2NvbXBsZXRlJykge1xuICAgICAgaWYgKG5leHQudGlja2V0KSB7XG4gICAgICAgIGF3YWl0IHRoaXMuY2xpZW50LnBvc3QoJy92MS9jbGllbnQvdGlja2V0cy9leGNoYW5nZScsIHtcbiAgICAgICAgICBhdHRlbXB0X2lkOiAobmV4dC5hdHRlbXB0IGFzIHsgaWQ/OiBzdHJpbmcgfSkuaWQsXG4gICAgICAgICAgdGlja2V0OiBuZXh0LnRpY2tldCxcbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgICBhd2FpdCB0aGlzLnJlbG9hZCgpO1xuICAgIH0gZWxzZSB7XG4gICAgICAvLyBBIG1hZ2ljLWxpbmsgc3RlcCBtYXkgbm93IGJlIHBvbGxhYmxlIChhIGxpbmsgb3BlbmVkIG9uIGFub3RoZXIgZGV2aWNlKS5cbiAgICAgIHRoaXMuc3luY1BvbGxpbmcoKTtcbiAgICB9XG4gIH1cblxuICAvKiogU3RhcnQvc3RvcCB0aGUgwqc1LjMgbWFnaWMtbGluayBwb2xsIHRvIG1hdGNoIHRoZSBjdXJyZW50IHN0YXRlLiAqL1xuICBzeW5jUG9sbGluZygpOiB2b2lkIHtcbiAgICBpZiAoc2hvdWxkS2VlcFBvbGxpbmcodGhpcy5zdGF0ZSgpKSkge1xuICAgICAgdGhpcy5zdGFydFBvbGxpbmcoKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5zdG9wUG9sbGluZygpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgc3RhcnRQb2xsaW5nKCk6IHZvaWQge1xuICAgIGlmICh0aGlzLnBvbGxUaW1lcikgcmV0dXJuO1xuICAgIHRoaXMucG9sbFRpbWVyID0gc2V0SW50ZXJ2YWwoKCkgPT4ge1xuICAgICAgdm9pZCAoYXN5bmMgKCkgPT4ge1xuICAgICAgICBjb25zdCB7IHN0YXRlOiBuZXh0LCB0aWNrZXQgfSA9IGF3YWl0IHBvbGxBdHRlbXB0KHRoaXMuY2xpZW50LCB0aGlzLnN0YXRlKCkpO1xuICAgICAgICB0aGlzLnNldFN0YXRlKG5leHQpO1xuICAgICAgICBpZiAoIXRpY2tldCB8fCAhbmV4dC5hdHRlbXB0KSByZXR1cm47XG5cbiAgICAgICAgLy8gVGhlIHRpY2tldCBpcyBleGNoYW5nZWQgYnkgYSBub3JtYWwgcmVxdWVzdCwgc28gbm8gc2Vzc2lvbiB0b2tlbiBldmVyXG4gICAgICAgIC8vIGFwcGVhcnMgaW4gYSBVUkwuXG4gICAgICAgIGF3YWl0IHRoaXMuY2xpZW50LnBvc3QoJy92MS9jbGllbnQvdGlja2V0cy9leGNoYW5nZScsIHtcbiAgICAgICAgICBhdHRlbXB0X2lkOiAobmV4dC5hdHRlbXB0IGFzIHsgaWQ/OiBzdHJpbmcgfSkuaWQsXG4gICAgICAgICAgdGlja2V0LFxuICAgICAgICB9KTtcbiAgICAgICAgYXdhaXQgdGhpcy5yZWxvYWQoKTtcbiAgICAgICAgdGhpcy5zdG9wUG9sbGluZygpO1xuICAgICAgfSkoKTtcbiAgICB9LCAyXzAwMCk7XG4gIH1cblxuICBwcml2YXRlIHN0b3BQb2xsaW5nKCk6IHZvaWQge1xuICAgIGlmICh0aGlzLnBvbGxUaW1lcikge1xuICAgICAgY2xlYXJJbnRlcnZhbCh0aGlzLnBvbGxUaW1lcik7XG4gICAgICB0aGlzLnBvbGxUaW1lciA9IG51bGw7XG4gICAgfVxuICB9XG5cbiAgLyoqIFJlbGVhc2UgdGhlIHBvbGwgdGltZXIgYW5kIHRoZSBjYXB0Y2hhIHdpZGdldHMg4oCUIGNhbGwgZnJvbSB0aGUgY29tcG9uZW50J3MgYG5nT25EZXN0cm95YC4gKi9cbiAgZGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLnN0b3BQb2xsaW5nKCk7XG4gICAgdGhpcy5jYXB0Y2hhLmRlc3Ryb3koKTtcbiAgICB0aGlzLnNpZ25VcENhcHRjaGEuZGVzdHJveSgpO1xuICB9XG59XG4iXX0=
|
|
227
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmxvdy1jb250cm9sbGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2xpYi9jb21wb25lbnRzL2Zsb3ctY29udHJvbGxlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQWtCLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN2RCxPQUFPLEVBRUwsa0JBQWtCLEVBQ2xCLHVCQUF1QixFQUN2QixZQUFZLEVBQ1oscUJBQXFCLEVBQ3JCLGdCQUFnQixFQUNoQixvQkFBb0IsRUFDcEIsZUFBZSxFQUNmLFdBQVcsRUFDWCxRQUFRLEVBQ1IsbUJBQW1CLEVBQ25CLFdBQVcsRUFDWCxhQUFhLEVBQ2IsZUFBZSxFQUNmLGlCQUFpQixHQUlsQixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsS0FBSyxFQUFFLFNBQVMsRUFBRSxNQUFNLFNBQVMsQ0FBQztBQUUzQzs7Ozs7Ozs7Ozs7OztHQWFHO0FBQ0gsTUFBTSxPQUFPLG1CQUFtQjtJQTBCWDtJQUNBO0lBR0E7SUE3QlYsS0FBSyxDQUE0QjtJQUMxQzs7OztPQUlHO0lBQ00sUUFBUSxHQUFHLE1BQU0sQ0FBMEIsSUFBSSxDQUFDLENBQUM7SUFDMUQseUVBQXlFO0lBQ2hFLE9BQU8sR0FBc0IsdUJBQXVCLEVBQUUsQ0FBQztJQUNoRSxxREFBcUQ7SUFDNUMsYUFBYSxHQUFzQix1QkFBdUIsRUFBRSxDQUFDO0lBQ3RFLHdFQUF3RTtJQUMvRCxZQUFZLEdBQUcsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ3RDLDhFQUE4RTtJQUNyRSxrQkFBa0IsR0FBRyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDNUM7Ozs7T0FJRztJQUNNLGNBQWMsR0FBRyxNQUFNLENBQXNCLElBQUksQ0FBQyxDQUFDO0lBQ3BELFNBQVMsR0FBMEMsSUFBSSxDQUFDO0lBQ3hELFVBQVUsR0FBRyxFQUFFLENBQUM7SUFFeEIsWUFDbUIsTUFBa0IsRUFDbEIsTUFB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Q2YsTUFBTSxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUUsTUFBTSxFQUFFLEdBQUcsTUFBTSxXQUFXLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQztnQkFDN0UsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQztnQkFDcEIsSUFBSSxDQUFDLE1BQU0sSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPO29CQUFFLE9BQU87Z0JBRXJDLHdFQUF3RTtnQkFDeEUsb0JBQW9CO2dCQUNwQixNQUFNLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLDZCQUE2QixFQUFFO29CQUNwRCxVQUFVLEVBQUcsSUFBSSxDQUFDLE9BQTJCLENBQUMsRUFBRTtvQkFDaEQsTUFBTTtpQkFDUCxDQUFDLENBQUM7Z0JBQ0gsTUFBTSxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUM7Z0JBQ3BCLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQztZQUNyQixDQUFDLENBQUMsRUFBRSxDQUFDO1FBQ1AsQ0FBQyxFQUFFLEtBQUssQ0FBQyxDQUFDO0lBQ1osQ0FBQztJQUVPLFdBQVc7UUFDakIsSUFBSSxJQUFJLENBQUMsU0FBUyxFQUFFLENBQUM7WUFDbkIsYUFBYSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQztZQUM5QixJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQztRQUN4QixDQUFDO0lBQ0gsQ0FBQztJQUVELGdHQUFnRztJQUNoRyxPQUFPO1FBQ0wsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO1FBQ25CLElBQUksQ0FBQyxPQUFPLENBQUMsT0FBTyxFQUFFLENBQUM7UUFDdkIsSUFBSSxDQUFDLGFBQWEsQ0FBQyxPQUFPLEVBQUUsQ0FBQztJQUMvQixDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBXcml0YWJsZVNpZ25hbCwgc2lnbmFsIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1xuICBGYXBpQ2xpZW50LFxuICBhZHZhbmNlV2l0aENhcHRjaGEsXG4gIGNyZWF0ZUNhcHRjaGFDb250cm9sbGVyLFxuICBjcmVhdGVTaWduVXAsXG4gIGZldGNoSW5zdGFuY2VTZXR0aW5ncyxcbiAgZmxvd05lZWRzQ2FwdGNoYSxcbiAgc2lnbkluQ2FwdGNoYU9wdGlvbnMsXG4gIGZsb3dGcm9tUGVuZGluZyxcbiAgaW5pdGlhbEZsb3csXG4gIG5leHRTdGVwLFxuICBvZmZlcmVkRmlyc3RGYWN0b3JzLFxuICBwb2xsQXR0ZW1wdCxcbiAgcHJlcGFyZUZhY3RvcixcbiAgcGxhbkZpcnN0RmFjdG9yLFxuICBzaG91bGRLZWVwUG9sbGluZyxcbiAgdHlwZSBDYXB0Y2hhQ29udHJvbGxlcixcbiAgdHlwZSBGbG93U3RhdGUsXG4gIHR5cGUgSW5zdGFuY2VTZXR0aW5ncyxcbn0gZnJvbSAnQGF0bGFzYXV0aC9qcyc7XG5pbXBvcnQgeyBFTl9VUywgdHJhbnNsYXRlIH0gZnJvbSAnLi4vaTE4bic7XG5cbi8qKlxuICogVGhlIHNlcnZlci1kcml2ZW4gc2lnbi1pbiAvIHNpZ24tdXAgZW5naW5lLCBzaGFyZWQgYnkgYDxhdGxhcy1zaWduLWluPmAgYW5kXG4gKiBgPGF0bGFzLXNpZ24tdXA+YCDigJQgdGhlIEFuZ3VsYXIgY291bnRlcnBhcnQgb2YgUmVhY3QncyBgdXNlRmxvd2AgaG9vay5cbiAqXG4gKiBJdCBvd25zIG5vIGRlY2lzaW9uIGFib3V0IHdoYXQgY29tZXMgbmV4dDogZXZlcnkgc3RhdHVzIGNvbWVzIGJhY2sgZnJvbSB0aGVcbiAqIHNlcnZlciB2aWEgYGFkdmFuY2VgLCBhbmQgdGhpcyBjb250cm9sbGVyIG9ubHkgcG9zdHMgd2hhdGV2ZXIgdGhlIGN1cnJlbnQgc3RlcFxuICogbmVlZHMgYW5kIHJlLXJlbmRlcnMgdGhlIHJldHVybmVkIHN0YXR1cy4gU3RhdGUgbGl2ZXMgaW4gYSBzaWduYWwgc28gdGVtcGxhdGVzXG4gKiB1cGRhdGUgd2hldGhlciB0aGUgYXBwIHJ1bnMgem9uZWQgb3Igem9uZWxlc3MuXG4gKlxuICogYDxhdGxhcy1zaWduLXVwPmAgc3RhcnRzIHRoZSBhdHRlbXB0IHdpdGgge0BsaW5rIGNyZWF0ZX1cbiAqIChgUE9TVCAvdjEvY2xpZW50L3NpZ25fdXBzYCk7IHRoZSBlbWFpbGVkLWNvZGUgc3RlcCB0aGVuIHJ1bnMgdGhyb3VnaCB0aGUgc2FtZVxuICoge0BsaW5rIHN1Ym1pdH0uIEJvdGggZmxvd3MgZHJhdyB0aGUgaW5zdGFuY2UncyBjYXB0Y2hhIChmcm9tXG4gKiB7QGxpbmsgbG9hZFNldHRpbmdzfSkgd2hlbiBpdCBpcyByZXF1aXJlZC5cbiAqL1xuZXhwb3J0IGNsYXNzIEF0bGFzRmxvd0NvbnRyb2xsZXIge1xuICByZWFkb25seSBzdGF0ZTogV3JpdGFibGVTaWduYWw8Rmxvd1N0YXRlPjtcbiAgLyoqXG4gICAqIFRoZSBpbnN0YW5jZSdzIHB1YmxpYyBzaWduLWluIC8gc2lnbi11cCBzZXR0aW5ncyAoY2FwdGNoYSwgc2lnbi11cCBmaWVsZHMsXG4gICAqIGxlZ2FsIGNvbnNlbnQpIGZyb20gYEdFVCAvdjEvYXBwZWFyYW5jZWA7IG51bGwgdW50aWwge0BsaW5rIGxvYWRTZXR0aW5nc31cbiAgICogcmVzb2x2ZXMsIG9yIHdoZW4gdGhlIHNlcnZlciBjb3VsZCBub3QgYmUgcmVhY2hlZC5cbiAgICovXG4gIHJlYWRvbmx5IHNldHRpbmdzID0gc2lnbmFsPEluc3RhbmNlU2V0dGluZ3MgfCBudWxsPihudWxsKTtcbiAgLyoqIFRoZSBzaWduLWluIGNhcHRjaGEgKGlkZW50aWZpZXIgc3RlcCAvIGBuZWVkc19jYXB0Y2hhYCBjaGFsbGVuZ2UpLiAqL1xuICByZWFkb25seSBjYXB0Y2hhOiBDYXB0Y2hhQ29udHJvbGxlciA9IGNyZWF0ZUNhcHRjaGFDb250cm9sbGVyKCk7XG4gIC8qKiBUaGUgc2lnbi11cCBjYXB0Y2hhICh0aGUgY3JlYXRlLWFjY291bnQgc3RlcCkuICovXG4gIHJlYWRvbmx5IHNpZ25VcENhcHRjaGE6IENhcHRjaGFDb250cm9sbGVyID0gY3JlYXRlQ2FwdGNoYUNvbnRyb2xsZXIoKTtcbiAgLyoqIFdoZXRoZXIge0BsaW5rIGNhcHRjaGF9IGN1cnJlbnRseSBkcmF3cyBhIHdpZGdldCAoZm9yIHRlbXBsYXRlcykuICovXG4gIHJlYWRvbmx5IGNhcHRjaGFEcmF3biA9IHNpZ25hbChmYWxzZSk7XG4gIC8qKiBXaGV0aGVyIHtAbGluayBzaWduVXBDYXB0Y2hhfSBjdXJyZW50bHkgZHJhd3MgYSB3aWRnZXQgKGZvciB0ZW1wbGF0ZXMpLiAqL1xuICByZWFkb25seSBzaWduVXBDYXB0Y2hhRHJhd24gPSBzaWduYWwoZmFsc2UpO1xuICAvKipcbiAgICogVGhlIGZpcnN0IGZhY3RvciB0aGUgc2VydmVyIHdhcyBhc2tlZCB0byBzZW5kICh7QGxpbmsgcHJlcGFyZX0pIG9uIHRoZVxuICAgKiBjdXJyZW50IGBuZWVkc19maXJzdF9mYWN0b3JgIHN0ZXAg4oCUIHRoZSBmb3JtIHRoZW4gY29sbGVjdHMgaXRzIGNvZGUuIE51bGxcbiAgICogb3RoZXJ3aXNlLlxuICAgKi9cbiAgcmVhZG9ubHkgcHJlcGFyZWRGYWN0b3IgPSBzaWduYWw8J2VtYWlsX2NvZGUnIHwgbnVsbD4obnVsbCk7XG4gIHByaXZhdGUgcG9sbFRpbWVyOiBSZXR1cm5UeXBlPHR5cGVvZiBzZXRJbnRlcnZhbD4gfCBudWxsID0gbnVsbDtcbiAgcHJpdmF0ZSBpZGVudGlmaWVyID0gJyc7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSByZWFkb25seSBjbGllbnQ6IEZhcGlDbGllbnQsXG4gICAgcHJpdmF0ZSByZWFkb25seSByZWxvYWQ6ICgpID0+IFByb21pc2U8dm9pZD4sXG4gICAgcGVuZGluZzogeyBpZDogc3RyaW5nOyBzdGF0dXM6IHN0cmluZyB9IHwgbnVsbCxcbiAgICAvKiogUmVzb2x2ZXMgdGhlIGNhcHRjaGEgbWVzc2FnZXMnIGNhdGFsb2cga2V5cy4gRGVmYXVsdHMgdG8gZW4tVVMuICovXG4gICAgcHJpdmF0ZSByZWFkb25seSB0OiAoa2V5OiBzdHJpbmcpID0+IHN0cmluZyA9IChrZXkpID0+IHRyYW5zbGF0ZShFTl9VUywga2V5KSxcbiAgKSB7XG4gICAgLy8gU2VlZGVkIGZyb20gYSByZWRpcmVjdCB0aGF0IGNhbWUgYmFjayBtaWQtZmxvdyAoZS5nLiBPQXV0aCBuZWVkaW5nIGEgc2Vjb25kXG4gICAgLy8gZmFjdG9yKSBzbyB0aGUgdXNlciByZXN1bWVzIGF0IHRoZSBkZW1hbmRlZCBzdGVwIGluc3RlYWQgb2Ygc3RhcnRpbmcgb3Zlci5cbiAgICB0aGlzLnN0YXRlID0gc2lnbmFsPEZsb3dTdGF0ZT4ocGVuZGluZyA/IGZsb3dGcm9tUGVuZGluZyhwZW5kaW5nKSA6IGluaXRpYWxGbG93KTtcbiAgICB0aGlzLnN5bmNDYXB0Y2hhKCk7XG4gIH1cblxuICAvKiogRmV0Y2ggdGhlIGluc3RhbmNlJ3MgcHVibGljIHNldHRpbmdzIGFuZCBkcmF3IHdoYXRldmVyIGNhcHRjaGEgdGhleSByZXF1aXJlLiAqL1xuICBhc3luYyBsb2FkU2V0dGluZ3MoKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgY29uc3QgbG9hZGVkID0gYXdhaXQgZmV0Y2hJbnN0YW5jZVNldHRpbmdzKHRoaXMuY2xpZW50KTtcbiAgICBpZiAobG9hZGVkKSB7XG4gICAgICB0aGlzLnNldHRpbmdzLnNldChsb2FkZWQpO1xuICAgICAgdGhpcy5zeW5jQ2FwdGNoYSgpO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBUaGUgZmlyc3QgZmFjdG9ycyB0byBvZmZlciBvbiBhIGBuZWVkc19maXJzdF9mYWN0b3JgIHN0ZXA6IHRoZSBzZXJ2ZXIncyBsaXN0XG4gICAqIHdpdGhvdXQgZW1haWwgY29kZSAvIGxpbmsgd2hpbGUgdGhlIGFwcCBjYW5ub3QgZGVsaXZlciBlbWFpbFxuICAgKiAoYHNldHRpbmdzLmVtYWlsRGVsaXZlcnkuYXZhaWxhYmxlID09PSBmYWxzZWApLiBFbXB0eSBvbiBhbnkgb3RoZXIgc3RlcC5cbiAgICovXG4gIGZpcnN0RmFjdG9ycygpOiBzdHJpbmdbXSB7XG4gICAgY29uc3QgYXR0ZW1wdCA9IHRoaXMuc3RhdGUoKS5hdHRlbXB0O1xuICAgIGNvbnN0IHN0ZXAgPSBhdHRlbXB0ID8gbmV4dFN0ZXAoYXR0ZW1wdCkgOiBudWxsO1xuICAgIHJldHVybiBzdGVwPy5raW5kID09PSAnY29sbGVjdF9maXJzdF9mYWN0b3InXG4gICAgICA/IG9mZmVyZWRGaXJzdEZhY3RvcnMoc3RlcC5zdHJhdGVnaWVzLCB0aGlzLnNldHRpbmdzKCk/LmVtYWlsRGVsaXZlcnkpXG4gICAgICA6IFtdO1xuICB9XG5cbiAgLyoqXG4gICAqIFRydWUgd2hlbiBlbWFpbCArIHBhc3N3b3JkIHNpZ24tdXAgY2Fubm90IGNvbXBsZXRlIGJlY2F1c2UgdGhlIGFwcCBjYW5ub3RcbiAgICogc2VuZCB0aGUgdmVyaWZpY2F0aW9uIGVtYWlsIChgc2V0dGluZ3MuZW1haWxEZWxpdmVyeS5wYXNzd29yZFNpZ25VcCA9PT0gZmFsc2VgKTpcbiAgICogYDxhdGxhcy1zaWduLXVwPmAgc2hvd3MgdGhlIFwiY2FuJ3Qgc2VuZCBlbWFpbFwiIG5vdGljZSBpbnN0ZWFkIG9mIHRoZSBmb3JtLlxuICAgKi9cbiAgc2lnblVwRW1haWxVbmF2YWlsYWJsZSgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5zZXR0aW5ncygpPy5lbWFpbERlbGl2ZXJ5LnBhc3N3b3JkU2lnblVwID09PSBmYWxzZTtcbiAgfVxuXG4gIC8qKiBGYWxzZSB3aGVuIGEgcGFzc3dvcmQgcmVzZXQgZW1haWwgY2Fubm90IGJlIGRlbGl2ZXJlZCDigJQgaGlkZSBcIkZvcmdvdCBwYXNzd29yZD9cIi4gKi9cbiAgcGFzc3dvcmRSZXNldEF2YWlsYWJsZSgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5zZXR0aW5ncygpPy5lbWFpbERlbGl2ZXJ5LnBhc3N3b3JkUmVzZXQgIT09IGZhbHNlO1xuICB9XG5cbiAgLyoqXG4gICAqIEFzayB0aGUgc2VydmVyIHRvIGVtYWlsIGEgc2lnbi1pbiBjb2RlIGZvciB0aGUgY3VycmVudCBgbmVlZHNfZmlyc3RfZmFjdG9yYFxuICAgKiBzdGVwIChgUE9TVCDigKYvcHJlcGFyZV9maXJzdF9mYWN0b3JgKTsgdGhlIGZvcm0gdGhlbiBjb2xsZWN0cyB0aGUgY29kZSwgd2hpY2hcbiAgICoge0BsaW5rIHN1Ym1pdH0gcG9zdHMgYXMgdGhlIGBlbWFpbF9jb2RlYCBzdHJhdGVneS5cbiAgICovXG4gIGFzeW5jIHByZXBhcmUoc3RyYXRlZ3k6ICdlbWFpbF9jb2RlJyk6IFByb21pc2U8dm9pZD4ge1xuICAgIGlmICghdGhpcy5maXJzdEZhY3RvcnMoKS5pbmNsdWRlcyhzdHJhdGVneSkpIHJldHVybjtcbiAgICB0aGlzLnN0YXRlLnVwZGF0ZSgoY3VycmVudCkgPT4gKHsgLi4uY3VycmVudCwgYnVzeTogdHJ1ZSwgZXJyb3JzOiBbXSB9KSk7XG4gICAgY29uc3QgbmV4dCA9IGF3YWl0IHByZXBhcmVGYWN0b3IodGhpcy5jbGllbnQsIHRoaXMuc3RhdGUoKSwgc3RyYXRlZ3kpO1xuICAgIHRoaXMuc2V0U3RhdGUobmV4dCk7XG4gICAgaWYgKCFuZXh0LmVycm9ycy5sZW5ndGgpIHRoaXMucHJlcGFyZWRGYWN0b3Iuc2V0KHN0cmF0ZWd5KTtcbiAgfVxuXG4gIC8qKiBLZWVwIGJvdGggY2FwdGNoYXMgaW4gc3RlcCB3aXRoIHRoZSBzZXR0aW5ncyBhbmQgdGhlIGZsb3cncyBjdXJyZW50IHN0ZXAuICovXG4gIHByaXZhdGUgc3luY0NhcHRjaGEoKTogdm9pZCB7XG4gICAgY29uc3Qgc2V0dGluZ3MgPSB0aGlzLnNldHRpbmdzKCk7XG4gICAgY29uc3Qgc3RhdGUgPSB0aGlzLnN0YXRlKCk7XG4gICAgdGhpcy5jYXB0Y2hhLmNvbmZpZ3VyZShcbiAgICAgIHNpZ25JbkNhcHRjaGFPcHRpb25zKHNldHRpbmdzPy5jYXB0Y2hhRmxvd3Muc2lnbkluLCBzdGF0ZSwgKCkgPT4gdm9pZCB0aGlzLnN1Ym1pdCh7fSkpLFxuICAgICk7XG4gICAgY29uc3Qgc2lnblVwRmxvdyA9IHNldHRpbmdzPy5jYXB0Y2hhRmxvd3Muc2lnblVwO1xuICAgIHRoaXMuc2lnblVwQ2FwdGNoYS5jb25maWd1cmUoe1xuICAgICAgZmxvdzogc2lnblVwRmxvdyxcbiAgICAgIGFjdGl2ZTogIXN0YXRlLmF0dGVtcHQgJiYgZmxvd05lZWRzQ2FwdGNoYShzaWduVXBGbG93KSxcbiAgICB9KTtcbiAgICB0aGlzLmNhcHRjaGFEcmF3bi5zZXQodGhpcy5jYXB0Y2hhLm5lZWRlZCk7XG4gICAgdGhpcy5zaWduVXBDYXB0Y2hhRHJhd24uc2V0KHRoaXMuc2lnblVwQ2FwdGNoYS5uZWVkZWQpO1xuICB9XG5cbiAgcHJpdmF0ZSBzZXRTdGF0ZShuZXh0OiBGbG93U3RhdGUpOiB2b2lkIHtcbiAgICB0aGlzLnN0YXRlLnNldChuZXh0KTtcbiAgICAvLyBBIHByZXBhcmVkIGZhY3RvciBiZWxvbmdzIHRvIHRoZSBmaXJzdC1mYWN0b3Igc3RlcCBpdCB3YXMgc2VudCBmb3IuXG4gICAgaWYgKG5leHQuYXR0ZW1wdD8uc3RhdHVzICE9PSAnbmVlZHNfZmlyc3RfZmFjdG9yJykgdGhpcy5wcmVwYXJlZEZhY3Rvci5zZXQobnVsbCk7XG4gICAgdGhpcy5zeW5jQ2FwdGNoYSgpO1xuICAgIHRoaXMuYXV0b1NlbmQoKTtcbiAgfVxuXG4gIHByaXZhdGUgYXV0b1NlbnRGb3I6IHN0cmluZyB8IG51bGwgPSBudWxsO1xuICAvKipcbiAgICogV2l0aCBubyBwYXNzd29yZCBvbiBvZmZlciwgZW1haWwgdGhlIGNvZGUgYXMgc29vbiBhcyB0aGUgc2VydmVyIGFza3MgZm9yIGFcbiAgICogZmlyc3QgZmFjdG9yIOKAlCBvbmNlIHBlciBhdHRlbXB0LCBzbyBhIGZhaWxlZCBzZW5kIHdhaXRzIGZvciB0aGUgdXNlcidzIHJldHJ5XG4gICAqICh0aGUgXCJFbWFpbCBtZSBhIGNvZGVcIiBidXR0b24pIGluc3RlYWQgb2YgbG9vcGluZy5cbiAgICovXG4gIHByaXZhdGUgYXV0b1NlbmQoKTogdm9pZCB7XG4gICAgY29uc3QgaWQgPSB0aGlzLnN0YXRlKCkuYXR0ZW1wdD8uaWQgPz8gbnVsbDtcbiAgICBpZiAoIWlkIHx8IHRoaXMuYXV0b1NlbnRGb3IgPT09IGlkIHx8IHRoaXMucHJlcGFyZWRGYWN0b3IoKSkgcmV0dXJuO1xuICAgIGlmIChwbGFuRmlyc3RGYWN0b3IodGhpcy5maXJzdEZhY3RvcnMoKSkuYXV0b1NlbmQgIT09ICdlbWFpbF9jb2RlJykgcmV0dXJuO1xuICAgIHRoaXMuYXV0b1NlbnRGb3IgPSBpZDtcbiAgICB2b2lkIHRoaXMucHJlcGFyZSgnZW1haWxfY29kZScpO1xuICB9XG5cbiAgLyoqXG4gICAqIEFkdmFuY2UgdGhlIGZsb3cgd2l0aCB0aGUgdmFsdWVzIHRoZSB1c2VyIHR5cGVkLiBPbiBjb21wbGV0aW9uLCBleGNoYW5nZSB0aGVcbiAgICogb25lLXRpbWUgdGlja2V0IGZvciBjb29raWVzIG92ZXIgYSBzYW1lLW9yaWdpbiByZXF1ZXN0IChGQVBJIGlzIGNyb3NzLW9yaWdpblxuICAgKiBhbmQgY2Fubm90IHNldCB0aGUgY29va2llIG9uIGl0cyBvd24gcmVzcG9uc2UpLCB0aGVuIHJlLWJvb3Qgc28gdGhlIHJlc3Qgb2ZcbiAgICogdGhlIGFwcCBzZWVzIGEgc2lnbmVkLWluIHVzZXIuXG4gICAqL1xuICBhc3luYyBzdWJtaXQodmFsdWVzOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+KTogUHJvbWlzZTx2b2lkPiB7XG4gICAgdGhpcy5zdGF0ZS51cGRhdGUoKGN1cnJlbnQpID0+ICh7IC4uLmN1cnJlbnQsIGJ1c3k6IHRydWUsIGVycm9yczogW10gfSkpO1xuXG4gICAgY29uc3Qgb3V0ID0gYXdhaXQgYWR2YW5jZVdpdGhDYXB0Y2hhKHRoaXMuY2xpZW50LCB0aGlzLnN0YXRlKCksIHZhbHVlcywge1xuICAgICAgY2FwdGNoYTogdGhpcy5jYXB0Y2hhLFxuICAgICAgaWRlbnRpZmllcjogdGhpcy5pZGVudGlmaWVyLFxuICAgICAgdDogdGhpcy50LFxuICAgIH0pO1xuICAgIHRoaXMuaWRlbnRpZmllciA9IG91dC5pZGVudGlmaWVyO1xuICAgIGF3YWl0IHRoaXMuZmluaXNoKG91dC5zdGF0ZSk7XG4gIH1cblxuICAvKipcbiAgICogQ3JlYXRlIGFuIGFjY291bnQgKGBQT1NUIC92MS9jbGllbnQvc2lnbl91cHNgKSBmcm9tIGEgY3JlYXRlLWFjY291bnQgZm9ybSdzXG4gICAqIHZhbHVlcyDigJQgZW1haWwsIHBhc3N3b3JkIGFuZCBhbnkgY29uZmlndXJlZCBzaWduLXVwIGZpZWxkcyDigJQgY2FycnlpbmcgdGhlXG4gICAqIHNpZ24tdXAgY2FwdGNoYSdzIHRva2VuIHdoZW4gdGhlIGluc3RhbmNlIHJlcXVpcmVzIG9uZS4gVGhlIGVtYWlsZWQgY29kZSBpc1xuICAgKiB0aGVuIHBvc3RlZCB3aXRoIHtAbGluayBzdWJtaXR9LlxuICAgKi9cbiAgYXN5bmMgY3JlYXRlKHZhbHVlczogUmVjb3JkPHN0cmluZywgc3RyaW5nPiwgY29uc2VudCA9IHRydWUpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICB0aGlzLnN0YXRlLnVwZGF0ZSgoY3VycmVudCkgPT4gKHsgLi4uY3VycmVudCwgYnVzeTogdHJ1ZSwgZXJyb3JzOiBbXSB9KSk7XG4gICAgY29uc3QgbmV4dCA9IGF3YWl0IGNyZWF0ZVNpZ25VcCh0aGlzLmNsaWVudCwgdmFsdWVzLCB7XG4gICAgICBjb25zZW50LFxuICAgICAgY2FwdGNoYTogdGhpcy5zaWduVXBDYXB0Y2hhLFxuICAgICAgdDogdGhpcy50LFxuICAgIH0pO1xuICAgIGF3YWl0IHRoaXMuZmluaXNoKG5leHQpO1xuICB9XG5cbiAgcHJpdmF0ZSBhc3luYyBmaW5pc2gobmV4dDogRmxvd1N0YXRlKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgdGhpcy5zZXRTdGF0ZShuZXh0KTtcblxuICAgIGlmIChuZXh0LmF0dGVtcHQ/LnN0YXR1cyA9PT0gJ2NvbXBsZXRlJykge1xuICAgICAgaWYgKG5leHQudGlja2V0KSB7XG4gICAgICAgIGF3YWl0IHRoaXMuY2xpZW50LnBvc3QoJy92MS9jbGllbnQvdGlja2V0cy9leGNoYW5nZScsIHtcbiAgICAgICAgICBhdHRlbXB0X2lkOiAobmV4dC5hdHRlbXB0IGFzIHsgaWQ/OiBzdHJpbmcgfSkuaWQsXG4gICAgICAgICAgdGlja2V0OiBuZXh0LnRpY2tldCxcbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgICBhd2FpdCB0aGlzLnJlbG9hZCgpO1xuICAgIH0gZWxzZSB7XG4gICAgICAvLyBBIG1hZ2ljLWxpbmsgc3RlcCBtYXkgbm93IGJlIHBvbGxhYmxlIChhIGxpbmsgb3BlbmVkIG9uIGFub3RoZXIgZGV2aWNlKS5cbiAgICAgIHRoaXMuc3luY1BvbGxpbmcoKTtcbiAgICB9XG4gIH1cblxuICAvKiogU3RhcnQvc3RvcCB0aGUgwqc1LjMgbWFnaWMtbGluayBwb2xsIHRvIG1hdGNoIHRoZSBjdXJyZW50IHN0YXRlLiAqL1xuICBzeW5jUG9sbGluZygpOiB2b2lkIHtcbiAgICBpZiAoc2hvdWxkS2VlcFBvbGxpbmcodGhpcy5zdGF0ZSgpKSkge1xuICAgICAgdGhpcy5zdGFydFBvbGxpbmcoKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5zdG9wUG9sbGluZygpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgc3RhcnRQb2xsaW5nKCk6IHZvaWQge1xuICAgIGlmICh0aGlzLnBvbGxUaW1lcikgcmV0dXJuO1xuICAgIHRoaXMucG9sbFRpbWVyID0gc2V0SW50ZXJ2YWwoKCkgPT4ge1xuICAgICAgdm9pZCAoYXN5bmMgKCkgPT4ge1xuICAgICAgICBjb25zdCB7IHN0YXRlOiBuZXh0LCB0aWNrZXQgfSA9IGF3YWl0IHBvbGxBdHRlbXB0KHRoaXMuY2xpZW50LCB0aGlzLnN0YXRlKCkpO1xuICAgICAgICB0aGlzLnNldFN0YXRlKG5leHQpO1xuICAgICAgICBpZiAoIXRpY2tldCB8fCAhbmV4dC5hdHRlbXB0KSByZXR1cm47XG5cbiAgICAgICAgLy8gVGhlIHRpY2tldCBpcyBleGNoYW5nZWQgYnkgYSBub3JtYWwgcmVxdWVzdCwgc28gbm8gc2Vzc2lvbiB0b2tlbiBldmVyXG4gICAgICAgIC8vIGFwcGVhcnMgaW4gYSBVUkwuXG4gICAgICAgIGF3YWl0IHRoaXMuY2xpZW50LnBvc3QoJy92MS9jbGllbnQvdGlja2V0cy9leGNoYW5nZScsIHtcbiAgICAgICAgICBhdHRlbXB0X2lkOiAobmV4dC5hdHRlbXB0IGFzIHsgaWQ/OiBzdHJpbmcgfSkuaWQsXG4gICAgICAgICAgdGlja2V0LFxuICAgICAgICB9KTtcbiAgICAgICAgYXdhaXQgdGhpcy5yZWxvYWQoKTtcbiAgICAgICAgdGhpcy5zdG9wUG9sbGluZygpO1xuICAgICAgfSkoKTtcbiAgICB9LCAyXzAwMCk7XG4gIH1cblxuICBwcml2YXRlIHN0b3BQb2xsaW5nKCk6IHZvaWQge1xuICAgIGlmICh0aGlzLnBvbGxUaW1lcikge1xuICAgICAgY2xlYXJJbnRlcnZhbCh0aGlzLnBvbGxUaW1lcik7XG4gICAgICB0aGlzLnBvbGxUaW1lciA9IG51bGw7XG4gICAgfVxuICB9XG5cbiAgLyoqIFJlbGVhc2UgdGhlIHBvbGwgdGltZXIgYW5kIHRoZSBjYXB0Y2hhIHdpZGdldHMg4oCUIGNhbGwgZnJvbSB0aGUgY29tcG9uZW50J3MgYG5nT25EZXN0cm95YC4gKi9cbiAgZGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLnN0b3BQb2xsaW5nKCk7XG4gICAgdGhpcy5jYXB0Y2hhLmRlc3Ryb3koKTtcbiAgICB0aGlzLnNpZ25VcENhcHRjaGEuZGVzdHJveSgpO1xuICB9XG59XG4iXX0=
|
|
@@ -22,6 +22,8 @@ export const EN_US = {
|
|
|
22
22
|
'signIn.socialButton': 'Continue with {provider}',
|
|
23
23
|
'signIn.emailCodeLabel': 'Verification code',
|
|
24
24
|
'signIn.useEmailCode': 'Email me a code',
|
|
25
|
+
'signIn.codeSentTo': 'We sent a code to {email}. Enter it below.',
|
|
26
|
+
'signIn.resendCode': 'Resend code',
|
|
25
27
|
'signIn.magicLinkSent': 'Check your email for a sign-in link.',
|
|
26
28
|
'signIn.checkOtherTab': 'You can close this tab — you are signed in where you started.',
|
|
27
29
|
'signUp.title': 'Create your account',
|
|
@@ -130,4 +132,4 @@ export function translate(catalog, key, variables = {}) {
|
|
|
130
132
|
export function withFallback(locale) {
|
|
131
133
|
return { ...EN_US, ...locale };
|
|
132
134
|
}
|
|
133
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaTE4bi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9saWIvaTE4bi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7OztHQVVHO0FBSUgsTUFBTSxDQUFDLE1BQU0sS0FBSyxHQUFZO0lBQzVCLGNBQWMsRUFBRSxTQUFTO0lBQ3pCLGlCQUFpQixFQUFFLDhCQUE4QjtJQUNqRCx3QkFBd0IsRUFBRSxlQUFlO0lBQ3pDLHNCQUFzQixFQUFFLFVBQVU7SUFDbEMsZUFBZSxFQUFFLFVBQVU7SUFDM0IsdUJBQXVCLEVBQUUsa0JBQWtCO0lBQzNDLGtCQUFrQixFQUFFLGFBQWE7SUFDakMsbUJBQW1CLEVBQUUsU0FBUztJQUM5QixrQkFBa0IsRUFBRSxJQUFJO0lBQ3hCLHFCQUFxQixFQUFFLDBCQUEwQjtJQUNqRCx1QkFBdUIsRUFBRSxtQkFBbUI7SUFDNUMscUJBQXFCLEVBQUUsaUJBQWlCO0lBQ3hDLHNCQUFzQixFQUFFLHNDQUFzQztJQUM5RCxzQkFBc0IsRUFBRSwrREFBK0Q7SUFFdkYsY0FBYyxFQUFFLHFCQUFxQjtJQUNyQyxlQUFlLEVBQUUsVUFBVTtJQUMzQixvQkFBb0IsRUFBRSwwQkFBMEI7SUFDaEQsbUJBQW1CLEVBQUUsU0FBUztJQUM5QixtQkFBbUIsRUFBRSxlQUFlO0lBQ3BDLHNCQUFzQixFQUFFLFVBQVU7SUFDbEMsc0JBQXNCLEVBQUUsb0JBQW9CO0lBQzVDLDBCQUEwQixFQUFFLFNBQVM7SUFDckMscUJBQXFCLEVBQUUsZ0JBQWdCO0lBQ3ZDLHNCQUFzQixFQUFFLGdDQUFnQztJQUN4RCxjQUFjLEVBQUUsa0JBQWtCO0lBQ2xDLGdCQUFnQixFQUFFLGdCQUFnQjtJQUNsQyxZQUFZLEVBQUUsS0FBSztJQUNuQixrREFBa0Q7SUFDbEQseUJBQXlCLEVBQ3ZCLDJGQUEyRjtJQUU3RixnQkFBZ0IsRUFBRSwwQ0FBMEM7SUFDNUQsa0JBQWtCLEVBQUUscURBQXFEO0lBQ3pFLGdCQUFnQixFQUFF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Q2hCLEdBQVcsRUFDWCxZQUFvQyxFQUFFO0lBRXRDLE1BQU0sUUFBUSxHQUFHLE9BQU8sQ0FBQyxHQUFHLENBQUMsSUFBSSxLQUFLLENBQUMsR0FBRyxDQUFDLElBQUksR0FBRyxDQUFDO0lBQ25ELE9BQU8sUUFBUSxDQUFDLE9BQU8sQ0FBQyxZQUFZLEVBQUUsQ0FBQyxLQUFLLEVBQUUsSUFBWSxFQUFFLEVBQUUsQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLElBQUksS0FBSyxDQUFDLENBQUM7QUFDM0YsQ0FBQztBQUVELGtGQUFrRjtBQUNsRixNQUFNLFVBQVUsWUFBWSxDQUFDLE1BQWU7SUFDMUMsT0FBTyxFQUFFLEdBQUcsS0FBSyxFQUFFLEdBQUcsTUFBTSxFQUFFLENBQUM7QUFDakMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogwqcxMC4zOiBcIkV2ZXJ5IHN0cmluZyBwYXNzZXMgdGhyb3VnaCBhbiBpMThuIGNhdGFsb2c7IGVuLVVTIHNoaXBzLCBjYXRhbG9nXG4gKiBmb3JtYXQgZG9jdW1lbnRlZCBmb3IgY29tbXVuaXR5IGxvY2FsZXMuXCJcbiAqXG4gKiBBIGZsYXQga2V5LXRvLXN0cmluZyBtYXAgcmF0aGVyIHRoYW4gbmVzdGVkIG9iamVjdHMsIGJlY2F1c2UgbmVzdGluZyBsb29rc1xuICogdGlkaWVyIGFuZCBtYWtlcyBhIG1pc3Npbmcga2V5IGEgcnVudGltZSBjcmFzaCBvbiBgdW5kZWZpbmVkLm9mLmEuY2hhaW5gXG4gKiByYXRoZXIgdGhhbiBhIHZpc2libGUgZmFsbGJhY2suXG4gKlxuICogQSBtaXNzaW5nIGtleSByZW5kZXJzIHRoZSBLRVksIG5vdCBhbiBlbXB0eSBzdHJpbmcuIEEgYmxhbmsgYnV0dG9uIGlzIGEgYnVnXG4gKiBub2JvZHkgY2FuIHJlcG9ydDsgYSBidXR0b24gcmVhZGluZyBgc2lnbkluLnN1Ym1pdGAgaXMgb25lIGFueW9uZSBjYW4uXG4gKi9cblxuZXhwb3J0IHR5cGUgQ2F0YWxvZyA9IFJlY29yZDxzdHJpbmcsIHN0cmluZz47XG5cbmV4cG9ydCBjb25zdCBFTl9VUzogQ2F0YWxvZyA9IHtcbiAgJ3NpZ25Jbi50aXRsZSc6ICdTaWduIGluJyxcbiAgJ3NpZ25Jbi5zdWJ0aXRsZSc6ICd0byBjb250aW51ZSB0byB7YXBwbGljYXRpb259JyxcbiAgJ3NpZ25Jbi5pZGVudGlmaWVyTGFiZWwnOiAnRW1haWwgYWRkcmVzcycsXG4gICdzaWduSW4ucGFzc3dvcmRMYWJlbCc6ICdQYXNzd29yZCcsXG4gICdzaWduSW4uc3VibWl0JzogJ0NvbnRpbnVlJyxcbiAgJ3NpZ25Jbi5mb3Jnb3RQYXNzd29yZCc6ICdGb3Jnb3QgcGFzc3dvcmQ/JyxcbiAgJ3NpZ25Jbi5ub0FjY291bnQnOiAnTm8gYWNjb3VudD8nLFxuICAnc2lnbkluLnNpZ25VcExpbmsnOiAnU2lnbiB1cCcsXG4gICdzaWduSW4ub3JEaXZpZGVyJzogJ29yJyxcbiAgJ3NpZ25Jbi5zb2NpYWxCdXR0b24nOiAnQ29udGludWUgd2l0aCB7cHJvdmlkZXJ9JyxcbiAgJ3NpZ25Jbi5lbWFpbENvZGVMYWJlbCc6ICdWZXJpZmljYXRpb24gY29kZScsXG4gICdzaWduSW4udXNlRW1haWxDb2RlJzogJ0VtYWlsIG1lIGEgY29kZScsXG4gICdzaWduSW4ubWFnaWNMaW5rU2VudCc6ICdDaGVjayB5b3VyIGVtYWlsIGZvciBhIHNpZ24taW4gbGluay4nLFxuICAnc2lnbkluLmNoZWNrT3RoZXJUYWInOiAnWW91IGNhbiBjbG9zZSB0aGlzIHRhYiDigJQgeW91IGFyZSBzaWduZWQgaW4gd2hlcmUgeW91IHN0YXJ0ZWQuJyxcblxuICAnc2lnblVwLnRpdGxlJzogJ0NyZWF0ZSB5b3VyIGFjY291bnQnLFxuICAnc2lnblVwLnN1Ym1pdCc6ICdDb250aW51ZScsXG4gICdzaWduVXAuaGF2ZUFjY291bnQnOiAnQWxyZWFkeSBoYXZlIGFuIGFjY291bnQ/JyxcbiAgJ3NpZ25VcC5zaWduSW5MaW5rJzogJ1NpZ24gaW4nLFxuICAnc2lnblVwLmVtYWlsTGFiZWwnOiAnRW1haWwgYWRkcmVzcycsXG4gICdzaWduVXAucGFzc3dvcmRMYWJlbCc6ICdQYXNzd29yZCcsXG4gICdzaWduVXAub3B0aW9uYWxGaWVsZCc6ICd7bGFiZWx9IChvcHRpb25hbCknLFxuICAnc2lnblVwLnNlbGVjdFBsYWNlaG9sZGVyJzogJ1NlbGVjdOKApicsXG4gICdzaWduVXAuY29uc2VudEFncmVlJzogJ0kgYWdyZWUgdG8gdGhlJyxcbiAgJ3NpZ25VcC5jb25zZW50Tm90aWNlJzogJ0J5IGNvbnRpbnVpbmcgeW91IGFncmVlIHRvIHRoZScsXG4gICdzaWduVXAudGVybXMnOiAnVGVybXMgb2YgU2VydmljZScsXG4gICdzaWduVXAucHJpdmFjeSc6ICdQcml2YWN5IFBvbGljeScsXG4gICdzaWduVXAuYW5kJzogJ2FuZCcsXG4gIC8vID0gRU1BSUxfVU5BVkFJTEFCTEVfTUVTU0FHRSBmcm9tIEBhdGxhc2F1dGgvanMuXG4gICdzaWduVXAuZW1haWxVbmF2YWlsYWJsZSc6XG4gICAgXCJUaGlzIGFwcCBjYW4ndCBzZW5kIGVtYWlsIHJpZ2h0IG5vdy4gVHJ5IGFub3RoZXIgc2lnbi1pbiBtZXRob2Qgb3IgY29udGFjdCB0aGUgYXBwIG93bmVyLlwiLFxuXG4gICdjYXB0Y2hhLnByb21wdCc6ICdDb21wbGV0ZSB0aGUgc2VjdXJpdHkgY2hlY2sgdG8gY29udGludWUuJyxcbiAgJ2NhcHRjaGEucmVxdWlyZWQnOiAnUGxlYXNlIGNvbXBsZXRlIHRoZSBzZWN1cml0eSBjaGVjaywgdGhlbiB0cnkgYWdhaW4uJyxcbiAgJ2NhcHRjaGEuZmFpbGVkJzogXCJUaGUgc2VjdXJpdHkgY2hlY2sgZGlkbid0IHBhc3MuIFBsZWFzZSB0cnkgYWdhaW4uXCIsXG5cbiAgJ21mYS50aXRsZSc6ICdUd28tc3RlcCB2ZXJpZmljYXRpb24nLFxuICAnbWZhLnN1YnRpdGxlJzogJ0VudGVyIHRoZSBjb2RlIGZyb20geW91ciBhdXRoZW50aWNhdG9yIGFwcC4nLFxuICAnbWZhLmNvZGVMYWJlbCc6ICdDb2RlJyxcbiAgJ21mYS5lbnJvbGxGaXJzdENvZGVMYWJlbCc6ICdDb2RlIGZyb20geW91ciBhdXRoZW50aWNhdG9yIGFwcCcsXG4gICdtZmEuZW5yb2xsU2Vjb25kQ29kZUxhYmVsJzogJ1RoZSBuZXh0IGNvZGUgaXQgc2hvd3MnLFxuICAnbWZhLnVzZVBhc3NrZXknOiAnVXNlIGEgcGFzc2tleSBpbnN0ZWFkJyxcbiAgJ21mYS51c2VCYWNrdXBDb2RlJzogJ1VzZSBhIHJlY292ZXJ5IGNvZGUnLFxuICAnbWZhLnN1Ym1pdCc6ICdWZXJpZnknLFxuXG4gICdyZXNldC50aXRsZSc6ICdSZXNldCB5b3VyIHBhc3N3b3JkJyxcbiAgJ3Jlc2V0LnN1Ym1pdCc6ICdTZW5kIHJlc2V0IGNvZGUnLFxuICAncmVzZXQubmV3UGFzc3dvcmRMYWJlbCc6ICdOZXcgcGFzc3dvcmQnLFxuXG4gICd1c2VyQnV0dG9uLm1hbmFnZUFjY291bnQnOiAnTWFuYWdlIGFjY291bnQnLFxuICAndXNlckJ1dHRvbi5zaWduT3V0JzogJ1NpZ24gb3V0JyxcbiAgJ3VzZXJCdXR0b24uc2lnbk91dEFsbCc6ICdTaWduIG91dCBvZiBhbGwgZGV2aWNlcycsXG5cbiAgJ3VzZXJQcm9maWxlLnRpdGxlJzogJ0FjY291bnQnLFxuICAndXNlclByb2ZpbGUucHJvZmlsZVNlY3Rpb24nOiAnUHJvZmlsZScsXG4gICd1c2VyUHJvZmlsZS5lbWFpbHNTZWN0aW9uJzogJ0VtYWlsIGFkZHJlc3NlcycsXG4gICd1c2VyUHJvZmlsZS5zZWN1cml0eVNlY3Rpb24nOiAnU2VjdXJpdHknLFxuICAndXNlclByb2ZpbGUuZGV2aWNlc1NlY3Rpb24nOiAnQWN0aXZlIGRldmljZXMnLFxuICAndXNlclByb2ZpbGUuZGFuZ2VyU2VjdGlvbic6ICdEYW5nZXIgem9uZScsXG4gICd1c2VyUHJvZmlsZS5hZGRFbWFpbCc6ICdBZGQgYW4gZW1haWwgYWRkcmVzcycsXG4gICd1c2VyUHJvZmlsZS5tYWtlUHJpbWFyeSc6ICdNYWtlIHByaW1hcnknLFxuICAndXNlclByb2ZpbGUudW52ZXJpZmllZCc6ICdVbnZlcmlmaWVkJyxcbiAgJ3VzZXJQcm9maWxlLnJldm9rZURldmljZSc6ICdTaWduIG91dCcsXG4gICd1c2VyUHJvZmlsZS5kZWxldGVBY2NvdW50JzogJ0RlbGV0ZSBhY2NvdW50JyxcblxuICAnb3JnYW5pemF0aW9uLnN3aXRjaGVyJzogJ1N3aXRjaCBvcmdhbml6YXRpb24nLFxuICAnb3JnYW5pemF0aW9uLnBlcnNvbmFsJzogJ1BlcnNvbmFsIGFjY291bnQnLFxuICAnb3JnYW5pemF0aW9uLm1lbWJlcnMnOiAnTWVtYmVycycsXG4gICdvcmdhbml6YXRpb24uaW52aXRlJzogJ0ludml0ZSBtZW1iZXInLFxuICAnb3JnYW5pemF0aW9uLnJvbGVMYWJlbCc6ICdSb2xlJyxcblxuICAnZXJyb3IuZ2VuZXJpYyc6ICdTb21ldGhpbmcgd2VudCB3cm9uZy4gUGxlYXNlIHRyeSBhZ2Fpbi4nLFxuICAnZXJyb3IubmV0d29yayc6ICdXZSBjb3VsZCBub3QgcmVhY2ggdGhlIHNlcnZlci4gQ2hlY2sgeW91ciBjb25uZWN0aW9uLicsXG5cbiAgLy8gU2VydmVyIGVycm9ycywgYnkgdGhlIHN0YWJsZSBgcmVhc29uYCB0aGUgRnJvbnRlbmQgQVBJIHNlbmRzLiBTaG93biBpbnN0ZWFkXG4gIC8vIG9mIHRoZSBzZXJ2ZXIncyBgbWVzc2FnZWAgKHNlZSBgbG9jYWxpemVkRXJyb3JNZXNzYWdlYCBpbiBAYXRsYXNhdXRoL2pzKS5cbiAgJ2Vycm9yLmZvcm1fcGFzc3dvcmRfaW5jb3JyZWN0JzogJ1Rob3NlIGNyZWRlbnRpYWxzIGFyZSBpbmNvcnJlY3QuJyxcbiAgJ2Vycm9yLmZvcm1fY29kZV9pbmNvcnJlY3QnOiAnVGhhdCBjb2RlIGlzIGluY29ycmVjdC4nLFxuICAnZXJyb3IuZm9ybV9jb2RlX2FscmVhZHlfdXNlZCc6ICdUaGF0IGNvZGUgaGFzIGFscmVhZHkgYmVlbiB1c2VkLiBXYWl0IGZvciBhIG5ldyBvbmUuJyxcbiAgJ2Vycm9yLmZvcm1fY29kZV9leHBpcmVkJzogJ1RoYXQgY29kZSBoYXMgZXhwaXJlZC4gUmVxdWVzdCBhIG5ldyBvbmUuJyxcbiAgJ2Vycm9yLmZvcm1fY29kZV9tYXhfYXR0ZW1wdHMnOiAnVG9vIG1hbnkgaW5jb3JyZWN0IGNvZGVzLiBSZXF1ZXN0IGEgbmV3IGNvZGUuJyxcbiAgJ2Vycm9yLmZvcm1fbGlua19pbnZhbGlkJzogJ1RoYXQgc2lnbi1pbiBsaW5rIGlzIGludmFsaWQgb3IgaGFzIGFscmVhZHkgYmVlbiB1c2VkLicsXG4gICdlcnJvci5mb3JtX2lkZW50aWZpZXJfbm90X2ZvdW5kJzogXCJXZSBjb3VsZG4ndCBmaW5kIGFuIGFjY291bnQgd2l0aCB0aG9zZSBkZXRhaWxzLlwiLFxuICAnZXJyb3IuZm9ybV9pZGVudGlmaWVyX2V4aXN0cyc6IFwiVGhlcmUncyBhbHJlYWR5IGFuIGFjY291bnQgZm9yIHRoaXMgZW1haWwuIFNpZ24gaW4gd2l0aCB7bWV0aG9kc30uXCIsXG4gICdlcnJvci5mb3JtX3Bhc3N3b3JkX3B3bmVkJzogJ1RoaXMgcGFzc3dvcmQgaGFzIGFwcGVhcmVkIGluIGEga25vd24gZGF0YSBicmVhY2guIFBsZWFzZSBjaG9vc2UgYSBkaWZmZXJlbnQgb25lLicsXG4gICdlcnJvci5mb3JtX3Bhc3N3b3JkX3Rvb19zaG9ydCc6ICdQYXNzd29yZCBtdXN0IGJlIGF0IGxlYXN0IHttaW5fbGVuZ3RofSBjaGFyYWN0ZXJzLicsXG4gICdlcnJvci5mb3JtX3Bhc3N3b3JkX3Rvb19sb25nJzogJ1Bhc3N3b3JkIG11c3QgYmUgYXQgbW9zdCB7bWF4X2xlbmd0aH0gY2hhcmFjdGVycy4nLFxuICAnZXJyb3IuZm9ybV9wYXNzd29yZF9yZXF1aXJlc191cHBlcmNhc2UnOiAnUGFzc3dvcmQgbXVzdCBjb250YWluIGFuIHVwcGVyY2FzZSBsZXR0ZXIuJyxcbiAgJ2Vycm9yLmZvcm1fcGFzc3dvcmRfcmVxdWlyZXNfbG93ZXJjYXNlJzogJ1Bhc3N3b3JkIG11c3QgY29udGFpbiBhIGxvd2VyY2FzZSBsZXR0ZXIuJyxcbiAgJ2Vycm9yLmZvcm1fcGFzc3dvcmRfcmVxdWlyZXNfbnVtYmVyJzogJ1Bhc3N3b3JkIG11c3QgY29udGFpbiBhIG51bWJlci4nLFxuICAnZXJyb3IuZm9ybV9wYXNzd29yZF9yZXF1aXJlc19zeW1ib2wnOiAnUGFzc3dvcmQgbXVzdCBjb250YWluIGEgc3ltYm9sLicsXG4gICdlcnJvci5mb3JtX3Bhc3N3b3JkX25vdF9hbGxvd2VkJzogJ1RoYXQgcGFzc3dvcmQgaXMgbm90IGFsbG93ZWQuIENob29zZSBhIGRpZmZlcmVudCBvbmUuJyxcbiAgJ2Vycm9yLmZvcm1fcGFzc3dvcmRfY29udGFpbnNfaWRlbnRpZmllcic6ICdQYXNzd29yZCBtdXN0IG5vdCBjb250YWluIHlvdXIgZW1haWwgb3IgdXNlcm5hbWUuJyxcbiAgJ2Vycm9yLmZvcm1fcGFzc3dvcmRfc2FtZV9hc19jdXJyZW50JzogJ1lvdXIgbmV3IHBhc3N3b3JkIG11c3QgYmUgZGlmZmVyZW50IGZyb20geW91ciBjdXJyZW50IG9uZS4nLFxuICAnZXJyb3IuZm9ybV9wYXNzd29yZF9yZXVzZWQnOiAnWW91ciBuZXcgcGFzc3dvcmQgbXVzdCBub3QgbWF0Y2ggYW55IG9mIHlvdXIgbGFzdCB7aGlzdG9yeV9jb3VudH0gcGFzc3dvcmRzLicsXG4gICdlcnJvci5wYXNzd29yZF9leHBpcmVkJzogJ1lvdXIgcGFzc3dvcmQgaGFzIGV4cGlyZWQuIFJlc2V0IGl0IHRvIGNvbnRpbnVlLicsXG4gICdlcnJvci5lbWFpbF9ub3RfdmVyaWZpZWQnOiAnWW91ciBlbWFpbCBhZGRyZXNzIGlzIG5vdCB2ZXJpZmllZCB5ZXQuIFZlcmlmeSBpdCBiZWZvcmUgc2lnbmluZyBpbiB3aXRoIHlvdXIgcGFzc3dvcmQuJyxcbiAgJ2Vycm9yLnNpZ25faW5fdG9rZW5faW52YWxpZCc6ICdUaGF0IHNpZ24taW4gdG9rZW4gaXMgaW52YWxpZCBvciBoYXMgZXhwaXJlZC4nLFxuICAnZXJyb3IudG9vX21hbnlfYXR0ZW1wdHMnOiAnVG9vIG1hbnkgZmFpbGVkIGF0dGVtcHRzLiBUcnkgYWdhaW4gbGF0ZXIuJyxcbiAgJ2Vycm9yLnRvb19tYW55X3JlcXVlc3RzJzogJ1RvbyBtYW55IHJlcXVlc3RzLiBQbGVhc2UgdHJ5IGFnYWluIGxhdGVyLicsXG4gICdlcnJvci5jYXB0Y2hhX3JlcXVpcmVkJzogJ1BsZWFzZSBjb21wbGV0ZSB0aGUgc2VjdXJpdHkgY2hlY2ssIHRoZW4gdHJ5IGFnYWluLicsXG4gICdlcnJvci5jYXB0Y2hhX2ZhaWxlZCc6IFwiVGhlIHNlY3VyaXR5IGNoZWNrIGRpZG4ndCBwYXNzLiBQbGVhc2UgdHJ5IGFnYWluLlwiLFxuICAnZXJyb3IuY2FwdGNoYV91bmF2YWlsYWJsZSc6ICdUaGUgc2VjdXJpdHkgY2hlY2sgaXMgdW5hdmFpbGFibGUgcmlnaHQgbm93LiBQbGVhc2UgdHJ5IGFnYWluIGxhdGVyLicsXG4gICdlcnJvci5lbWFpbF9kZWxpdmVyeV91bmF2YWlsYWJsZSc6IFwiVGhpcyBhcHAgY2FuJ3Qgc2VuZCBlbWFpbCByaWdodCBub3cuIFRyeSBhbm90aGVyIHNpZ24taW4gbWV0aG9kIG9yIGNvbnRhY3QgdGhlIGFwcCBvd25lci5cIixcbiAgJ2Vycm9yLnN0cmF0ZWd5X2Rpc2FibGVkJzogJ1RoaXMgc2lnbi1pbiBtZXRob2QgaXMgbm90IGF2YWlsYWJsZSBmb3IgdGhpcyBhcHAuJyxcbiAgJ2Vycm9yLnNpZ25fdXBfcmVzdHJpY3RlZCc6ICdTaWduLXVwIG9uIHRoaXMgYXBwIGlzIGJ5IGludml0YXRpb24gb25seS4nLFxuICAnZXJyb3Iud2FpdGxpc3RlZCc6IFwiWW91J3JlIG9uIHRoZSB3YWl0bGlzdC4gV2UnbGwgZW1haWwgeW91IHdoZW4gYSBwbGFjZSBvcGVucyB1cC5cIixcbiAgJ2Vycm9yLmlkZW50aWZpZXJfbm90X2FsbG93ZWQnOiAnVGhpcyBlbWFpbCBvciBwaG9uZSBudW1iZXIgaXMgbm90IGFsbG93ZWQgb24gdGhpcyBhcHAuJyxcbiAgJ2Vycm9yLmRpc3Bvc2FibGVfZW1haWxfYmxvY2tlZCc6ICdTaWduLXVwIHdpdGggYSBkaXNwb3NhYmxlIG9yIHRlbXBvcmFyeSBlbWFpbCBhZGRyZXNzIGlzIG5vdCBhbGxvd2VkLicsXG4gICdlcnJvci5zc29fcmVxdWlyZWQnOiAnVGhpcyBvcmdhbml6YXRpb24gcmVxdWlyZXMgc2lnbmluZyBpbiB0aHJvdWdoIHNpbmdsZSBzaWduLW9uLicsXG4gICdlcnJvci5zaWduX2luc19kaXNhYmxlZCc6ICdTaWduLWlucyBhcmUgdGVtcG9yYXJpbHkgZGlzYWJsZWQuJyxcbiAgJ2Vycm9yLnNpZ25fdXBzX2Rpc2FibGVkJzogJ1NpZ24tdXBzIGFyZSB0ZW1wb3JhcmlseSBkaXNhYmxlZC4nLFxuICAnZXJyb3IuaGlnaF9yaXNrX2Jsb2NrZWQnOiAnVGhpcyBzaWduLWluIHdhcyBibG9ja2VkIGJlY2F1c2UgaXQgbG9va2VkIHVudXN1YWwuJyxcbiAgJ2Vycm9yLnNtc19yZWdpb25fYmxvY2tlZCc6ICdUZXh0IG1lc3NhZ2VzIGFyZSBub3QgYXZhaWxhYmxlIGZvciB0aGlzIHBob25lIG51bWJlci4nLFxufTtcblxuLyoqXG4gKiBMb29rIHVwIGEga2V5IGFuZCBpbnRlcnBvbGF0ZSBge3BsYWNlaG9sZGVyc31gLlxuICpcbiAqIEFuIHVua25vd24gcGxhY2Vob2xkZXIgaXMgbGVmdCB2aXNpYmxlIGZvciB0aGUgc2FtZSByZWFzb24gYSBtaXNzaW5nIGtleSBpczpcbiAqIGBDb250aW51ZSB3aXRoIHtwcm92aWRlcn1gIGluIHRoZSBVSSBpcyBhIGJ1ZyByZXBvcnQgd2FpdGluZyB0byBiZSBmaWxlZCxcbiAqIHdoZXJlYXMgYENvbnRpbnVlIHdpdGggYCBpcyBvbmUgbm9ib2R5IG5vdGljZXMgdW50aWwgYSBjdXN0b21lciBkb2VzLlxuICovXG5leHBvcnQgZnVuY3Rpb24gdHJhbnNsYXRlKFxuICBjYXRhbG9nOiBDYXRhbG9nLFxuICBrZXk6IHN0cmluZyxcbiAgdmFyaWFibGVzOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+ID0ge30sXG4pOiBzdHJpbmcge1xuICBjb25zdCB0ZW1wbGF0ZSA9IGNhdGFsb2dba2V5XSA/PyBFTl9VU1trZXldID8/IGtleTtcbiAgcmV0dXJuIHRlbXBsYXRlLnJlcGxhY2UoL1xceyhcXHcrKVxcfS9nLCAobWF0Y2gsIG5hbWU6IHN0cmluZykgPT4gdmFyaWFibGVzW25hbWVdID8/IG1hdGNoKTtcbn1cblxuLyoqIE1lcmdlIGEgY29tbXVuaXR5IGxvY2FsZSBvdmVyIGVuLVVTIHNvIGEgcGFydGlhbCB0cmFuc2xhdGlvbiBzdGlsbCByZW5kZXJzLiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHdpdGhGYWxsYmFjayhsb2NhbGU6IENhdGFsb2cpOiBDYXRhbG9nIHtcbiAgcmV0dXJuIHsgLi4uRU5fVVMsIC4uLmxvY2FsZSB9O1xufVxuIl19
|
|
135
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaTE4bi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9saWIvaTE4bi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7OztHQVVHO0FBSUgsTUFBTSxDQUFDLE1BQU0sS0FBSyxHQUFZO0lBQzVCLGNBQWMsRUFBRSxTQUFTO0lBQ3pCLGlCQUFpQixFQUFFLDhCQUE4QjtJQUNqRCx3QkFBd0IsRUFBRSxlQUFlO0lBQ3pDLHNCQUFzQixFQUFFLFVBQVU7SUFDbEMsZUFBZSxFQUFFLFVBQVU7SUFDM0IsdUJBQXVCLEVBQUUsa0JBQWtCO0lBQzNDLGtCQUFrQixFQUFFLGFBQWE7SUFDakMsbUJBQW1CLEVBQUUsU0FBUztJQUM5QixrQkFBa0IsRUFBRSxJQUFJO0lBQ3hCLHFCQUFxQixFQUFFLDBCQUEwQjtJQUNqRCx1QkFBdUIsRUFBRSxtQkFBbUI7SUFDNUMscUJBQXFCLEVBQUUsaUJBQWlCO0lBQ3hDLG1CQUFtQixFQUFFLDRDQUE0QztJQUNqRSxtQkFBbUIsRUFBRSxhQUFhO0lBQ2xDLHNCQUFzQixFQUFFLHNDQUFzQztJQUM5RCxzQkFBc0IsRUFBRSwrREFBK0Q7SUFFdkYsY0FBYyxFQUFFLHFCQUFxQjtJQUNyQyxlQUFlLEVBQUUsVUFBVTtJQUMzQixvQkFBb0IsRUFBRSwwQkFBMEI7SUFDaEQsbUJBQW1CLEVBQUUsU0FBUztJQUM5QixtQkFBbUIsRUFBRSxlQUFlO0lBQ3BDLHNCQUFzQixFQUFFLFVBQVU7SUFDbEMsc0JBQXNCLEVBQUUsb0JBQW9CO0lBQzVDLDBCQUEwQixFQUFFLFNBQVM7SUFDckMscUJBQXFCLEVBQUUsZ0JBQWdCO0lBQ3ZDLHNCQUFzQixFQUFFLGdDQUFnQztJQUN4RCxjQUFjLEVBQUUsa0JBQWtCO0lBQ2xDLGdCQUFnQixFQUFFLGdCQUFnQjtJQUNsQyxZQUFZLEVBQUUsS0FBSztJQUNuQixrREFBa0Q7SUFDbEQseUJBQXlCLEVBQ3ZCLDJGQUEyRjtJQUU3RixnQkFBZ0IsRUFBRSww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QUVGOzs7Ozs7R0FNRztBQUNILE1BQU0sVUFBVSxTQUFTLENBQ3ZCLE9BQWdCLEVBQ2hCLEdBQVcsRUFDWCxZQUFvQyxFQUFFO0lBRXRDLE1BQU0sUUFBUSxHQUFHLE9BQU8sQ0FBQyxHQUFHLENBQUMsSUFBSSxLQUFLLENBQUMsR0FBRyxDQUFDLElBQUksR0FBRyxDQUFDO0lBQ25ELE9BQU8sUUFBUSxDQUFDLE9BQU8sQ0FBQyxZQUFZLEVBQUUsQ0FBQyxLQUFLLEVBQUUsSUFBWSxFQUFFLEVBQUUsQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLElBQUksS0FBSyxDQUFDLENBQUM7QUFDM0YsQ0FBQztBQUVELGtGQUFrRjtBQUNsRixNQUFNLFVBQVUsWUFBWSxDQUFDLE1BQWU7SUFDMUMsT0FBTyxFQUFFLEdBQUcsS0FBSyxFQUFFLEdBQUcsTUFBTSxFQUFFLENBQUM7QUFDakMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogwqcxMC4zOiBcIkV2ZXJ5IHN0cmluZyBwYXNzZXMgdGhyb3VnaCBhbiBpMThuIGNhdGFsb2c7IGVuLVVTIHNoaXBzLCBjYXRhbG9nXG4gKiBmb3JtYXQgZG9jdW1lbnRlZCBmb3IgY29tbXVuaXR5IGxvY2FsZXMuXCJcbiAqXG4gKiBBIGZsYXQga2V5LXRvLXN0cmluZyBtYXAgcmF0aGVyIHRoYW4gbmVzdGVkIG9iamVjdHMsIGJlY2F1c2UgbmVzdGluZyBsb29rc1xuICogdGlkaWVyIGFuZCBtYWtlcyBhIG1pc3Npbmcga2V5IGEgcnVudGltZSBjcmFzaCBvbiBgdW5kZWZpbmVkLm9mLmEuY2hhaW5gXG4gKiByYXRoZXIgdGhhbiBhIHZpc2libGUgZmFsbGJhY2suXG4gKlxuICogQSBtaXNzaW5nIGtleSByZW5kZXJzIHRoZSBLRVksIG5vdCBhbiBlbXB0eSBzdHJpbmcuIEEgYmxhbmsgYnV0dG9uIGlzIGEgYnVnXG4gKiBub2JvZHkgY2FuIHJlcG9ydDsgYSBidXR0b24gcmVhZGluZyBgc2lnbkluLnN1Ym1pdGAgaXMgb25lIGFueW9uZSBjYW4uXG4gKi9cblxuZXhwb3J0IHR5cGUgQ2F0YWxvZyA9IFJlY29yZDxzdHJpbmcsIHN0cmluZz47XG5cbmV4cG9ydCBjb25zdCBFTl9VUzogQ2F0YWxvZyA9IHtcbiAgJ3NpZ25Jbi50aXRsZSc6ICdTaWduIGluJyxcbiAgJ3NpZ25Jbi5zdWJ0aXRsZSc6ICd0byBjb250aW51ZSB0byB7YXBwbGljYXRpb259JyxcbiAgJ3NpZ25Jbi5pZGVudGlmaWVyTGFiZWwnOiAnRW1haWwgYWRkcmVzcycsXG4gICdzaWduSW4ucGFzc3dvcmRMYWJlbCc6ICdQYXNzd29yZCcsXG4gICdzaWduSW4uc3VibWl0JzogJ0NvbnRpbnVlJyxcbiAgJ3NpZ25Jbi5mb3Jnb3RQYXNzd29yZCc6ICdGb3Jnb3QgcGFzc3dvcmQ/JyxcbiAgJ3NpZ25Jbi5ub0FjY291bnQnOiAnTm8gYWNjb3VudD8nLFxuICAnc2lnbkluLnNpZ25VcExpbmsnOiAnU2lnbiB1cCcsXG4gICdzaWduSW4ub3JEaXZpZGVyJzogJ29yJyxcbiAgJ3NpZ25Jbi5zb2NpYWxCdXR0b24nOiAnQ29udGludWUgd2l0aCB7cHJvdmlkZXJ9JyxcbiAgJ3NpZ25Jbi5lbWFpbENvZGVMYWJlbCc6ICdWZXJpZmljYXRpb24gY29kZScsXG4gICdzaWduSW4udXNlRW1haWxDb2RlJzogJ0VtYWlsIG1lIGEgY29kZScsXG4gICdzaWduSW4uY29kZVNlbnRUbyc6ICdXZSBzZW50IGEgY29kZSB0byB7ZW1haWx9LiBFbnRlciBpdCBiZWxvdy4nLFxuICAnc2lnbkluLnJlc2VuZENvZGUnOiAnUmVzZW5kIGNvZGUnLFxuICAnc2lnbkluLm1hZ2ljTGlua1NlbnQnOiAnQ2hlY2sgeW91ciBlbWFpbCBmb3IgYSBzaWduLWluIGxpbmsuJyxcbiAgJ3NpZ25Jbi5jaGVja090aGVyVGFiJzogJ1lvdSBjYW4gY2xvc2UgdGhpcyB0YWIg4oCUIHlvdSBhcmUgc2lnbmVkIGluIHdoZXJlIHlvdSBzdGFydGVkLicsXG5cbiAgJ3NpZ25VcC50aXRsZSc6ICdDcmVhdGUgeW91ciBhY2NvdW50JyxcbiAgJ3NpZ25VcC5zdWJtaXQnOiAnQ29udGludWUnLFxuICAnc2lnblVwLmhhdmVBY2NvdW50JzogJ0FscmVhZHkgaGF2ZSBhbiBhY2NvdW50PycsXG4gICdzaWduVXAuc2lnbkluTGluayc6ICdTaWduIGluJyxcbiAgJ3NpZ25VcC5lbWFpbExhYmVsJzogJ0VtYWlsIGFkZHJlc3MnLFxuICAnc2lnblVwLnBhc3N3b3JkTGFiZWwnOiAnUGFzc3dvcmQnLFxuICAnc2lnblVwLm9wdGlvbmFsRmllbGQnOiAne2xhYmVsfSAob3B0aW9uYWwpJyxcbiAgJ3NpZ25VcC5zZWxlY3RQbGFjZWhvbGRlcic6ICdTZWxlY3TigKYnLFxuICAnc2lnblVwLmNvbnNlbnRBZ3JlZSc6ICdJIGFncmVlIHRvIHRoZScsXG4gICdzaWduVXAuY29uc2VudE5vdGljZSc6ICdCeSBjb250aW51aW5nIHlvdSBhZ3JlZSB0byB0aGUnLFxuICAnc2lnblVwLnRlcm1zJzogJ1Rlcm1zIG9mIFNlcnZpY2UnLFxuICAnc2lnblVwLnByaXZhY3knOiAnUHJpdmFjeSBQb2xpY3knLFxuICAnc2lnblVwLmFuZCc6ICdhbmQnLFxuICAvLyA9IEVNQUlMX1VOQVZBSUxBQkxFX01FU1NBR0UgZnJvbSBAYXRsYXNhdXRoL2pzLlxuICAnc2lnblVwLmVtYWlsVW5hdmFpbGFibGUnOlxuICAgIFwiVGhpcyBhcHAgY2FuJ3Qgc2VuZCBlbWFpbCByaWdodCBub3cuIFRyeSBhbm90aGVyIHNpZ24taW4gbWV0aG9kIG9yIGNvbnRhY3QgdGhlIGFwcCBvd25lci5cIixcblxuICAnY2FwdGNoYS5wcm9tcHQnOiAnQ29tcGxldGUgdGhlIHNlY3VyaXR5IGNoZWNrIHRvIGNvbnRpbnVlLicsXG4gICdjYXB0Y2hhLnJlcXVpcmVkJzogJ1BsZWFzZSBjb21wbGV0ZSB0aGUgc2VjdXJpdHkgY2hlY2ssIHRoZW4gdHJ5IGFnYWluLicsXG4gICdjYXB0Y2hhLmZhaWxlZCc6IFwiVGhlIHNlY3VyaXR5IGNoZWNrIGRpZG4ndCBwYXNzLiBQbGVhc2UgdHJ5IGFnYWluLlwiLFxuXG4gICdtZmEudGl0bGUnOiAnVHdvLXN0ZXAgdmVyaWZpY2F0aW9uJyxcbiAgJ21mYS5zdWJ0aXRsZSc6ICdFbnRlciB0aGUgY29kZSBmcm9tIHlvdXIgYXV0aGVudGljYXRvciBhcHAuJyxcbiAgJ21mYS5jb2RlTGFiZWwnOiAnQ29kZScsXG4gICdtZmEuZW5yb2xsRmlyc3RDb2RlTGFiZWwnOiAnQ29kZSBmcm9tIHlvdXIgYXV0aGVudGljYXRvciBhcHAnLFxuICAnbWZhLmVucm9sbFNlY29uZENvZGVMYWJlbCc6ICdUaGUgbmV4dCBjb2RlIGl0IHNob3dzJyxcbiAgJ21mYS51c2VQYXNza2V5JzogJ1VzZSBhIHBhc3NrZXkgaW5zdGVhZCcsXG4gICdtZmEudXNlQmFja3VwQ29kZSc6ICdVc2UgYSByZWNvdmVyeSBjb2RlJyxcbiAgJ21mYS5zdWJtaXQnOiAnVmVyaWZ5JyxcblxuICAncmVzZXQudGl0bGUnOiAnUmVzZXQgeW91ciBwYXNzd29yZCcsXG4gICdyZXNldC5zdWJtaXQnOiAnU2VuZCByZXNldCBjb2RlJyxcbiAgJ3Jlc2V0Lm5ld1Bhc3N3b3JkTGFiZWwnOiAnTmV3IHBhc3N3b3JkJyxcblxuICAndXNlckJ1dHRvbi5tYW5hZ2VBY2NvdW50JzogJ01hbmFnZSBhY2NvdW50JyxcbiAgJ3VzZXJCdXR0b24uc2lnbk91dCc6ICdTaWduIG91dCcsXG4gICd1c2VyQnV0dG9uLnNpZ25PdXRBbGwnOiAnU2lnbiBvdXQgb2YgYWxsIGRldmljZXMnLFxuXG4gICd1c2VyUHJvZmlsZS50aXRsZSc6ICdBY2NvdW50JyxcbiAgJ3VzZXJQcm9maWxlLnByb2ZpbGVTZWN0aW9uJzogJ1Byb2ZpbGUnLFxuICAndXNlclByb2ZpbGUuZW1haWxzU2VjdGlvbic6ICdFbWFpbCBhZGRyZXNzZXMnLFxuICAndXNlclByb2ZpbGUuc2VjdXJpdHlTZWN0aW9uJzogJ1NlY3VyaXR5JyxcbiAgJ3VzZXJQcm9maWxlLmRldmljZXNTZWN0aW9uJzogJ0FjdGl2ZSBkZXZpY2VzJyxcbiAgJ3VzZXJQcm9maWxlLmRhbmdlclNlY3Rpb24nOiAnRGFuZ2VyIHpvbmUnLFxuICAndXNlclByb2ZpbGUuYWRkRW1haWwnOiAnQWRkIGFuIGVtYWlsIGFkZHJlc3MnLFxuICAndXNlclByb2ZpbGUubWFrZVByaW1hcnknOiAnTWFrZSBwcmltYXJ5JyxcbiAgJ3VzZXJQcm9maWxlLnVudmVyaWZpZWQnOiAnVW52ZXJpZmllZCcsXG4gICd1c2VyUHJvZmlsZS5yZXZva2VEZXZpY2UnOiAnU2lnbiBvdXQnLFxuICAndXNlclByb2ZpbGUuZGVsZXRlQWNjb3VudCc6ICdEZWxldGUgYWNjb3VudCcsXG5cbiAgJ29yZ2FuaXphdGlvbi5zd2l0Y2hlcic6ICdTd2l0Y2ggb3JnYW5pemF0aW9uJyxcbiAgJ29yZ2FuaXphdGlvbi5wZXJzb25hbCc6ICdQZXJzb25hbCBhY2NvdW50JyxcbiAgJ29yZ2FuaXphdGlvbi5tZW1iZXJzJzogJ01lbWJlcnMnLFxuICAnb3JnYW5pemF0aW9uLmludml0ZSc6ICdJbnZpdGUgbWVtYmVyJyxcbiAgJ29yZ2FuaXphdGlvbi5yb2xlTGFiZWwnOiAnUm9sZScsXG5cbiAgJ2Vycm9yLmdlbmVyaWMnOiAnU29tZXRoaW5nIHdlbnQgd3JvbmcuIFBsZWFzZSB0cnkgYWdhaW4uJyxcbiAgJ2Vycm9yLm5ldHdvcmsnOiAnV2UgY291bGQgbm90IHJlYWNoIHRoZSBzZXJ2ZXIuIENoZWNrIHlvdXIgY29ubmVjdGlvbi4nLFxuXG4gIC8vIFNlcnZlciBlcnJvcnMsIGJ5IHRoZSBzdGFibGUgYHJlYXNvbmAgdGhlIEZyb250ZW5kIEFQSSBzZW5kcy4gU2hvd24gaW5zdGVhZFxuICAvLyBvZiB0aGUgc2VydmVyJ3MgYG1lc3NhZ2VgIChzZWUgYGxvY2FsaXplZEVycm9yTWVzc2FnZWAgaW4gQGF0bGFzYXV0aC9qcykuXG4gICdlcnJvci5mb3JtX3Bhc3N3b3JkX2luY29ycmVjdCc6ICdUaG9zZSBjcmVkZW50aWFscyBhcmUgaW5jb3JyZWN0LicsXG4gICdlcnJvci5mb3JtX2NvZGVfaW5jb3JyZWN0JzogJ1RoYXQgY29kZSBpcyBpbmNvcnJlY3QuJyxcbiAgJ2Vycm9yLmZvcm1fY29kZV9hbHJlYWR5X3VzZWQnOiAnVGhhdCBjb2RlIGhhcyBhbHJlYWR5IGJlZW4gdXNlZC4gV2FpdCBmb3IgYSBuZXcgb25lLicsXG4gICdlcnJvci5mb3JtX2NvZGVfZXhwaXJlZCc6ICdUaGF0IGNvZGUgaGFzIGV4cGlyZWQuIFJlcXVlc3QgYSBuZXcgb25lLicsXG4gICdlcnJvci5mb3JtX2NvZGVfbWF4X2F0dGVtcHRzJzogJ1RvbyBtYW55IGluY29ycmVjdCBjb2Rlcy4gUmVxdWVzdCBhIG5ldyBjb2RlLicsXG4gICdlcnJvci5mb3JtX2xpbmtfaW52YWxpZCc6ICdUaGF0IHNpZ24taW4gbGluayBpcyBpbnZhbGlkIG9yIGhhcyBhbHJlYWR5IGJlZW4gdXNlZC4nLFxuICAnZXJyb3IuZm9ybV9pZGVudGlmaWVyX25vdF9mb3VuZCc6IFwiV2UgY291bGRuJ3QgZmluZCBhbiBhY2NvdW50IHdpdGggdGhvc2UgZGV0YWlscy5cIixcbiAgJ2Vycm9yLmZvcm1faWRlbnRpZmllcl9leGlzdHMnOiBcIlRoZXJlJ3MgYWxyZWFkeSBhbiBhY2NvdW50IGZvciB0aGlzIGVtYWlsLiBTaWduIGluIHdpdGgge21ldGhvZHN9LlwiLFxuICAnZXJyb3IuZm9ybV9wYXNzd29yZF9wd25lZCc6ICdUaGlzIHBhc3N3b3JkIGhhcyBhcHBlYXJlZCBpbiBhIGtub3duIGRhdGEgYnJlYWNoLiBQbGVhc2UgY2hvb3NlIGEgZGlmZmVyZW50IG9uZS4nLFxuICAnZXJyb3IuZm9ybV9wYXNzd29yZF90b29fc2hvcnQnOiAnUGFzc3dvcmQgbXVzdCBiZSBhdCBsZWFzdCB7bWluX2xlbmd0aH0gY2hhcmFjdGVycy4nLFxuICAnZXJyb3IuZm9ybV9wYXNzd29yZF90b29fbG9uZyc6ICdQYXNzd29yZCBtdXN0IGJlIGF0IG1vc3Qge21heF9sZW5ndGh9IGNoYXJhY3RlcnMuJyxcbiAgJ2Vycm9yLmZvcm1fcGFzc3dvcmRfcmVxdWlyZXNfdXBwZXJjYXNlJzogJ1Bhc3N3b3JkIG11c3QgY29udGFpbiBhbiB1cHBlcmNhc2UgbGV0dGVyLicsXG4gICdlcnJvci5mb3JtX3Bhc3N3b3JkX3JlcXVpcmVzX2xvd2VyY2FzZSc6ICdQYXNzd29yZCBtdXN0IGNvbnRhaW4gYSBsb3dlcmNhc2UgbGV0dGVyLicsXG4gICdlcnJvci5mb3JtX3Bhc3N3b3JkX3JlcXVpcmVzX251bWJlcic6ICdQYXNzd29yZCBtdXN0IGNvbnRhaW4gYSBudW1iZXIuJyxcbiAgJ2Vycm9yLmZvcm1fcGFzc3dvcmRfcmVxdWlyZXNfc3ltYm9sJzogJ1Bhc3N3b3JkIG11c3QgY29udGFpbiBhIHN5bWJvbC4nLFxuICAnZXJyb3IuZm9ybV9wYXNzd29yZF9ub3RfYWxsb3dlZCc6ICdUaGF0IHBhc3N3b3JkIGlzIG5vdCBhbGxvd2VkLiBDaG9vc2UgYSBkaWZmZXJlbnQgb25lLicsXG4gICdlcnJvci5mb3JtX3Bhc3N3b3JkX2NvbnRhaW5zX2lkZW50aWZpZXInOiAnUGFzc3dvcmQgbXVzdCBub3QgY29udGFpbiB5b3VyIGVtYWlsIG9yIHVzZXJuYW1lLicsXG4gICdlcnJvci5mb3JtX3Bhc3N3b3JkX3NhbWVfYXNfY3VycmVudCc6ICdZb3VyIG5ldyBwYXNzd29yZCBtdXN0IGJlIGRpZmZlcmVudCBmcm9tIHlvdXIgY3VycmVudCBvbmUuJyxcbiAgJ2Vycm9yLmZvcm1fcGFzc3dvcmRfcmV1c2VkJzogJ1lvdXIgbmV3IHBhc3N3b3JkIG11c3Qgbm90IG1hdGNoIGFueSBvZiB5b3VyIGxhc3Qge2hpc3RvcnlfY291bnR9IHBhc3N3b3Jkcy4nLFxuICAnZXJyb3IucGFzc3dvcmRfZXhwaXJlZCc6ICdZb3VyIHBhc3N3b3JkIGhhcyBleHBpcmVkLiBSZXNldCBpdCB0byBjb250aW51ZS4nLFxuICAnZXJyb3IuZW1haWxfbm90X3ZlcmlmaWVkJzogJ1lvdXIgZW1haWwgYWRkcmVzcyBpcyBub3QgdmVyaWZpZWQgeWV0LiBWZXJpZnkgaXQgYmVmb3JlIHNpZ25pbmcgaW4gd2l0aCB5b3VyIHBhc3N3b3JkLicsXG4gICdlcnJvci5zaWduX2luX3Rva2VuX2ludmFsaWQnOiAnVGhhdCBzaWduLWluIHRva2VuIGlzIGludmFsaWQgb3IgaGFzIGV4cGlyZWQuJyxcbiAgJ2Vycm9yLnRvb19tYW55X2F0dGVtcHRzJzogJ1RvbyBtYW55IGZhaWxlZCBhdHRlbXB0cy4gVHJ5IGFnYWluIGxhdGVyLicsXG4gICdlcnJvci50b29fbWFueV9yZXF1ZXN0cyc6ICdUb28gbWFueSByZXF1ZXN0cy4gUGxlYXNlIHRyeSBhZ2FpbiBsYXRlci4nLFxuICAnZXJyb3IuY2FwdGNoYV9yZXF1aXJlZCc6ICdQbGVhc2UgY29tcGxldGUgdGhlIHNlY3VyaXR5IGNoZWNrLCB0aGVuIHRyeSBhZ2Fpbi4nLFxuICAnZXJyb3IuY2FwdGNoYV9mYWlsZWQnOiBcIlRoZSBzZWN1cml0eSBjaGVjayBkaWRuJ3QgcGFzcy4gUGxlYXNlIHRyeSBhZ2Fpbi5cIixcbiAgJ2Vycm9yLmNhcHRjaGFfdW5hdmFpbGFibGUnOiAnVGhlIHNlY3VyaXR5IGNoZWNrIGlzIHVuYXZhaWxhYmxlIHJpZ2h0IG5vdy4gUGxlYXNlIHRyeSBhZ2FpbiBsYXRlci4nLFxuICAnZXJyb3IuZW1haWxfZGVsaXZlcnlfdW5hdmFpbGFibGUnOiBcIlRoaXMgYXBwIGNhbid0IHNlbmQgZW1haWwgcmlnaHQgbm93LiBUcnkgYW5vdGhlciBzaWduLWluIG1ldGhvZCBvciBjb250YWN0IHRoZSBhcHAgb3duZXIuXCIsXG4gICdlcnJvci5zdHJhdGVneV9kaXNhYmxlZCc6ICdUaGlzIHNpZ24taW4gbWV0aG9kIGlzIG5vdCBhdmFpbGFibGUgZm9yIHRoaXMgYXBwLicsXG4gICdlcnJvci5zaWduX3VwX3Jlc3RyaWN0ZWQnOiAnU2lnbi11cCBvbiB0aGlzIGFwcCBpcyBieSBpbnZpdGF0aW9uIG9ubHkuJyxcbiAgJ2Vycm9yLndhaXRsaXN0ZWQnOiBcIllvdSdyZSBvbiB0aGUgd2FpdGxpc3QuIFdlJ2xsIGVtYWlsIHlvdSB3aGVuIGEgcGxhY2Ugb3BlbnMgdXAuXCIsXG4gICdlcnJvci5pZGVudGlmaWVyX25vdF9hbGxvd2VkJzogJ1RoaXMgZW1haWwgb3IgcGhvbmUgbnVtYmVyIGlzIG5vdCBhbGxvd2VkIG9uIHRoaXMgYXBwLicsXG4gICdlcnJvci5kaXNwb3NhYmxlX2VtYWlsX2Jsb2NrZWQnOiAnU2lnbi11cCB3aXRoIGEgZGlzcG9zYWJsZSBvciB0ZW1wb3JhcnkgZW1haWwgYWRkcmVzcyBpcyBub3QgYWxsb3dlZC4nLFxuICAnZXJyb3Iuc3NvX3JlcXVpcmVkJzogJ1RoaXMgb3JnYW5pemF0aW9uIHJlcXVpcmVzIHNpZ25pbmcgaW4gdGhyb3VnaCBzaW5nbGUgc2lnbi1vbi4nLFxuICAnZXJyb3Iuc2lnbl9pbnNfZGlzYWJsZWQnOiAnU2lnbi1pbnMgYXJlIHRlbXBvcmFyaWx5IGRpc2FibGVkLicsXG4gICdlcnJvci5zaWduX3Vwc19kaXNhYmxlZCc6ICdTaWduLXVwcyBhcmUgdGVtcG9yYXJpbHkgZGlzYWJsZWQuJyxcbiAgJ2Vycm9yLmhpZ2hfcmlza19ibG9ja2VkJzogJ1RoaXMgc2lnbi1pbiB3YXMgYmxvY2tlZCBiZWNhdXNlIGl0IGxvb2tlZCB1bnVzdWFsLicsXG4gICdlcnJvci5zbXNfcmVnaW9uX2Jsb2NrZWQnOiAnVGV4dCBtZXNzYWdlcyBhcmUgbm90IGF2YWlsYWJsZSBmb3IgdGhpcyBwaG9uZSBudW1iZXIuJyxcbn07XG5cbi8qKlxuICogTG9vayB1cCBhIGtleSBhbmQgaW50ZXJwb2xhdGUgYHtwbGFjZWhvbGRlcnN9YC5cbiAqXG4gKiBBbiB1bmtub3duIHBsYWNlaG9sZGVyIGlzIGxlZnQgdmlzaWJsZSBmb3IgdGhlIHNhbWUgcmVhc29uIGEgbWlzc2luZyBrZXkgaXM6XG4gKiBgQ29udGludWUgd2l0aCB7cHJvdmlkZXJ9YCBpbiB0aGUgVUkgaXMgYSBidWcgcmVwb3J0IHdhaXRpbmcgdG8gYmUgZmlsZWQsXG4gKiB3aGVyZWFzIGBDb250aW51ZSB3aXRoIGAgaXMgb25lIG5vYm9keSBub3RpY2VzIHVudGlsIGEgY3VzdG9tZXIgZG9lcy5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHRyYW5zbGF0ZShcbiAgY2F0YWxvZzogQ2F0YWxvZyxcbiAga2V5OiBzdHJpbmcsXG4gIHZhcmlhYmxlczogUmVjb3JkPHN0cmluZywgc3RyaW5nPiA9IHt9LFxuKTogc3RyaW5nIHtcbiAgY29uc3QgdGVtcGxhdGUgPSBjYXRhbG9nW2tleV0gPz8gRU5fVVNba2V5XSA/PyBrZXk7XG4gIHJldHVybiB0ZW1wbGF0ZS5yZXBsYWNlKC9cXHsoXFx3KylcXH0vZywgKG1hdGNoLCBuYW1lOiBzdHJpbmcpID0+IHZhcmlhYmxlc1tuYW1lXSA/PyBtYXRjaCk7XG59XG5cbi8qKiBNZXJnZSBhIGNvbW11bml0eSBsb2NhbGUgb3ZlciBlbi1VUyBzbyBhIHBhcnRpYWwgdHJhbnNsYXRpb24gc3RpbGwgcmVuZGVycy4gKi9cbmV4cG9ydCBmdW5jdGlvbiB3aXRoRmFsbGJhY2sobG9jYWxlOiBDYXRhbG9nKTogQ2F0YWxvZyB7XG4gIHJldHVybiB7IC4uLkVOX1VTLCAuLi5sb2NhbGUgfTtcbn1cbiJdfQ==
|
|
@@ -4,7 +4,7 @@ import { isPlatformBrowser, DOCUMENT } from '@angular/common';
|
|
|
4
4
|
import { toSignal } from '@angular/core/rxjs-interop';
|
|
5
5
|
import { BehaviorSubject, combineLatest, firstValueFrom } from 'rxjs';
|
|
6
6
|
import { map, distinctUntilChanged, filter, take } from 'rxjs/operators';
|
|
7
|
-
import { TokenCache, resolveFrontendApi, catalogLocale, FapiClient, SignOutGuard, localizedErrorMessage, getProviderToken, readRedirectResult, completeOAuthPopupLanding, mapOAuthPopupPayload, stripRedirectParams, closeOAuthPopupAfterSignIn, readExpiry, msUntilRefresh, nextStep, createCaptchaController, flowFromPending, initialFlow, fetchInstanceSettings, offeredFirstFactors, prepareFactor, signInCaptchaOptions, flowNeedsCaptcha, advanceWithCaptcha, createSignUp, shouldKeepPolling, pollAttempt } from '@atlasauth/js';
|
|
7
|
+
import { TokenCache, resolveFrontendApi, catalogLocale, FapiClient, SignOutGuard, localizedErrorMessage, getProviderToken, readRedirectResult, completeOAuthPopupLanding, mapOAuthPopupPayload, stripRedirectParams, closeOAuthPopupAfterSignIn, readExpiry, msUntilRefresh, nextStep, createCaptchaController, flowFromPending, initialFlow, fetchInstanceSettings, offeredFirstFactors, prepareFactor, signInCaptchaOptions, flowNeedsCaptcha, planFirstFactor, advanceWithCaptcha, createSignUp, shouldKeepPolling, pollAttempt } from '@atlasauth/js';
|
|
8
8
|
export { FapiClient, SignOutError, advance, flowFromPending, getProviderToken, initialFlow, pollAttempt, prepareFactor, requestForStep, shouldKeepPolling } from '@atlasauth/js';
|
|
9
9
|
import { evaluate } from '@atlasauth/authz';
|
|
10
10
|
export { evaluate, hasFromClaims } from '@atlasauth/authz';
|
|
@@ -168,6 +168,8 @@ const EN_US = {
|
|
|
168
168
|
'signIn.socialButton': 'Continue with {provider}',
|
|
169
169
|
'signIn.emailCodeLabel': 'Verification code',
|
|
170
170
|
'signIn.useEmailCode': 'Email me a code',
|
|
171
|
+
'signIn.codeSentTo': 'We sent a code to {email}. Enter it below.',
|
|
172
|
+
'signIn.resendCode': 'Resend code',
|
|
171
173
|
'signIn.magicLinkSent': 'Check your email for a sign-in link.',
|
|
172
174
|
'signIn.checkOtherTab': 'You can close this tab — you are signed in where you started.',
|
|
173
175
|
'signUp.title': 'Create your account',
|
|
@@ -1079,7 +1081,15 @@ class AttemptFlowComponent {
|
|
|
1079
1081
|
return this.firstFactors ?? step.strategies;
|
|
1080
1082
|
}
|
|
1081
1083
|
showEmailCodeOption() {
|
|
1082
|
-
|
|
1084
|
+
// Before the code is sent: the choice (or the retry of a failed automatic
|
|
1085
|
+
// send). After: "Resend code".
|
|
1086
|
+
return this.offered().includes('email_code');
|
|
1087
|
+
}
|
|
1088
|
+
/** The "we sent a code to …" line on the code step. */
|
|
1089
|
+
codeSentText() {
|
|
1090
|
+
if (this.step().kind !== 'collect_first_factor' || this.preparedFactor !== 'email_code')
|
|
1091
|
+
return null;
|
|
1092
|
+
return this.t('signIn.codeSentTo', { email: this.attempt?.identifier ?? '' });
|
|
1083
1093
|
}
|
|
1084
1094
|
showSubmit() {
|
|
1085
1095
|
const kind = this.step().kind;
|
|
@@ -1144,6 +1154,9 @@ class AttemptFlowComponent {
|
|
|
1144
1154
|
}
|
|
1145
1155
|
|
|
1146
1156
|
<form (submit)="onSubmit($event)">
|
|
1157
|
+
@if (codeSentText(); as sentText) {
|
|
1158
|
+
<p class="atlas-text" data-atlas-code-sent="">{{ sentText }}</p>
|
|
1159
|
+
}
|
|
1147
1160
|
@for (f of fields(); track $index) {
|
|
1148
1161
|
@if (f.kind === 'input') {
|
|
1149
1162
|
<label class="atlas-field">
|
|
@@ -1179,9 +1192,11 @@ class AttemptFlowComponent {
|
|
|
1179
1192
|
[class]="cls('formButtonSecondary', 'atlas-button-secondary')"
|
|
1180
1193
|
[disabled]="busy"
|
|
1181
1194
|
type="button"
|
|
1195
|
+
[attr.data-strategy]="preparedFactor === 'email_code' ? null : 'email_code'"
|
|
1196
|
+
[attr.data-atlas-resend]="preparedFactor === 'email_code' ? '' : null"
|
|
1182
1197
|
(click)="chooseFactor.emit('email_code')"
|
|
1183
1198
|
>
|
|
1184
|
-
{{ t('signIn.useEmailCode') }}
|
|
1199
|
+
{{ t(preparedFactor === 'email_code' ? 'signIn.resendCode' : 'signIn.useEmailCode') }}
|
|
1185
1200
|
</button>
|
|
1186
1201
|
}
|
|
1187
1202
|
</form>
|
|
@@ -1204,6 +1219,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
|
|
|
1204
1219
|
}
|
|
1205
1220
|
|
|
1206
1221
|
<form (submit)="onSubmit($event)">
|
|
1222
|
+
@if (codeSentText(); as sentText) {
|
|
1223
|
+
<p class="atlas-text" data-atlas-code-sent="">{{ sentText }}</p>
|
|
1224
|
+
}
|
|
1207
1225
|
@for (f of fields(); track $index) {
|
|
1208
1226
|
@if (f.kind === 'input') {
|
|
1209
1227
|
<label class="atlas-field">
|
|
@@ -1239,9 +1257,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
|
|
|
1239
1257
|
[class]="cls('formButtonSecondary', 'atlas-button-secondary')"
|
|
1240
1258
|
[disabled]="busy"
|
|
1241
1259
|
type="button"
|
|
1260
|
+
[attr.data-strategy]="preparedFactor === 'email_code' ? null : 'email_code'"
|
|
1261
|
+
[attr.data-atlas-resend]="preparedFactor === 'email_code' ? '' : null"
|
|
1242
1262
|
(click)="chooseFactor.emit('email_code')"
|
|
1243
1263
|
>
|
|
1244
|
-
{{ t('signIn.useEmailCode') }}
|
|
1264
|
+
{{ t(preparedFactor === 'email_code' ? 'signIn.resendCode' : 'signIn.useEmailCode') }}
|
|
1245
1265
|
</button>
|
|
1246
1266
|
}
|
|
1247
1267
|
</form>
|
|
@@ -1389,6 +1409,22 @@ class AtlasFlowController {
|
|
|
1389
1409
|
if (next.attempt?.status !== 'needs_first_factor')
|
|
1390
1410
|
this.preparedFactor.set(null);
|
|
1391
1411
|
this.syncCaptcha();
|
|
1412
|
+
this.autoSend();
|
|
1413
|
+
}
|
|
1414
|
+
autoSentFor = null;
|
|
1415
|
+
/**
|
|
1416
|
+
* With no password on offer, email the code as soon as the server asks for a
|
|
1417
|
+
* first factor — once per attempt, so a failed send waits for the user's retry
|
|
1418
|
+
* (the "Email me a code" button) instead of looping.
|
|
1419
|
+
*/
|
|
1420
|
+
autoSend() {
|
|
1421
|
+
const id = this.state().attempt?.id ?? null;
|
|
1422
|
+
if (!id || this.autoSentFor === id || this.preparedFactor())
|
|
1423
|
+
return;
|
|
1424
|
+
if (planFirstFactor(this.firstFactors()).autoSend !== 'email_code')
|
|
1425
|
+
return;
|
|
1426
|
+
this.autoSentFor = id;
|
|
1427
|
+
void this.prepare('email_code');
|
|
1392
1428
|
}
|
|
1393
1429
|
/**
|
|
1394
1430
|
* Advance the flow with the values the user typed. On completion, exchange the
|