@1money/component-ui 0.0.75 → 0.0.76
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/es/components/ProForm/ProForm.js +46 -33
- package/es/components/ProForm/ProFormDependency.js +6 -16
- package/es/components/ProForm/ProFormItem.js +5 -7
- package/es/components/ProForm/ProFormList.js +112 -40
- package/es/components/ProForm/core/constants.d.ts +2 -0
- package/es/components/ProForm/core/constants.js +7 -1
- package/es/components/ProForm/core/devWarning.d.ts +3 -0
- package/es/components/ProForm/core/devWarning.js +22 -0
- package/es/components/ProForm/core/formStore.d.ts +10 -2
- package/es/components/ProForm/core/formStore.js +21 -2
- package/es/components/ProForm/core/hooks/useForm.js +246 -103
- package/es/components/ProForm/core/hooks/useFormCore.js +134 -28
- package/es/components/ProForm/core/interface.d.ts +124 -49
- package/es/components/ProForm/core/runRules.d.ts +44 -12
- package/es/components/ProForm/core/runRules.js +584 -133
- package/es/components/ProForm/core/useFormItem.d.ts +6 -7
- package/es/components/ProForm/core/useFormItem.js +44 -22
- package/es/components/ProForm/core/validationError.d.ts +13 -0
- package/es/components/ProForm/core/validationError.js +29 -0
- package/es/components/ProForm/fields/ProFormCheckboxGroup.js +19 -5
- package/es/components/ProForm/fields/ProFormFieldSet.js +51 -12
- package/es/components/ProForm/fields/ProFormRadioGroup.js +8 -3
- package/es/components/ProForm/fields/ProFormSelect.js +13 -7
- package/es/components/ProForm/fields/createProFormField.js +18 -25
- package/es/components/ProForm/hooks/useFieldRequest.js +10 -8
- package/es/components/ProForm/index.d.ts +2 -1
- package/es/components/ProForm/index.js +4 -1
- package/es/components/ProForm/interface.d.ts +31 -40
- package/es/components/ProForm/layouts/QueryFilter.js +24 -16
- package/es/components/ProForm/utils.d.ts +8 -0
- package/es/components/ProForm/utils.js +51 -3
- package/es/components/Table/core/useTableSetup.js +2 -2
- package/es/components/Table/interface.d.ts +1 -1
- package/es/index.css +1 -1
- package/lib/components/ProForm/ProForm.js +45 -32
- package/lib/components/ProForm/ProFormDependency.js +5 -15
- package/lib/components/ProForm/ProFormItem.js +5 -7
- package/lib/components/ProForm/ProFormList.js +110 -38
- package/lib/components/ProForm/core/constants.d.ts +2 -0
- package/lib/components/ProForm/core/constants.js +8 -2
- package/lib/components/ProForm/core/devWarning.d.ts +3 -0
- package/lib/components/ProForm/core/devWarning.js +29 -0
- package/lib/components/ProForm/core/formStore.d.ts +10 -2
- package/lib/components/ProForm/core/formStore.js +23 -2
- package/lib/components/ProForm/core/hooks/useForm.js +242 -99
- package/lib/components/ProForm/core/hooks/useFormCore.js +133 -27
- package/lib/components/ProForm/core/interface.d.ts +124 -49
- package/lib/components/ProForm/core/runRules.d.ts +44 -12
- package/lib/components/ProForm/core/runRules.js +587 -133
- package/lib/components/ProForm/core/useFormItem.d.ts +6 -7
- package/lib/components/ProForm/core/useFormItem.js +43 -21
- package/lib/components/ProForm/core/validationError.d.ts +13 -0
- package/lib/components/ProForm/core/validationError.js +36 -0
- package/lib/components/ProForm/fields/ProFormCheckboxGroup.js +18 -4
- package/lib/components/ProForm/fields/ProFormFieldSet.js +51 -12
- package/lib/components/ProForm/fields/ProFormRadioGroup.js +7 -2
- package/lib/components/ProForm/fields/ProFormSelect.js +13 -7
- package/lib/components/ProForm/fields/createProFormField.js +18 -25
- package/lib/components/ProForm/hooks/useFieldRequest.js +10 -8
- package/lib/components/ProForm/index.d.ts +2 -1
- package/lib/components/ProForm/index.js +10 -1
- package/lib/components/ProForm/interface.d.ts +31 -40
- package/lib/components/ProForm/layouts/QueryFilter.js +24 -16
- package/lib/components/ProForm/utils.d.ts +8 -0
- package/lib/components/ProForm/utils.js +52 -3
- package/lib/components/Table/core/useTableSetup.js +2 -2
- package/lib/components/Table/interface.d.ts +1 -1
- package/lib/index.css +1 -1
- package/package.json +1 -1
- package/scripts/mcp-server/examples.generated.json +42 -36
- package/scripts/mcp-server/index.generated.json +23 -67
|
@@ -128,7 +128,6 @@ var ProFormItemBase = function ProFormItemBase(props) {
|
|
|
128
128
|
label = _mergedProps.label,
|
|
129
129
|
description = _mergedProps.description,
|
|
130
130
|
rules = _mergedProps.rules,
|
|
131
|
-
required = _mergedProps.required,
|
|
132
131
|
feedback = _mergedProps.feedback,
|
|
133
132
|
validateStatus = _mergedProps.validateStatus,
|
|
134
133
|
_mergedProps$classNam = _mergedProps.className,
|
|
@@ -146,23 +145,22 @@ var ProFormItemBase = function ProFormItemBase(props) {
|
|
|
146
145
|
emptyText = _mergedProps$emptyTex === void 0 ? EMPTY_TEXT_DEFAULT : _mergedProps$emptyTex,
|
|
147
146
|
valueEnum = _mergedProps.valueEnum,
|
|
148
147
|
valuePropName = _mergedProps.valuePropName,
|
|
149
|
-
validateDebounce = _mergedProps.validateDebounce
|
|
148
|
+
validateDebounce = _mergedProps.validateDebounce,
|
|
149
|
+
validateTrigger = _mergedProps.validateTrigger;
|
|
150
150
|
var mergedMode = modeProp !== null && modeProp !== void 0 ? modeProp : ctx.mode;
|
|
151
151
|
var isReadonly = mergedMode === 'read';
|
|
152
152
|
var _useFormItem = useFormItem({
|
|
153
153
|
name: name,
|
|
154
154
|
rules: rules,
|
|
155
|
-
required: required,
|
|
156
155
|
validateStatus: validateStatus,
|
|
157
156
|
valuePropName: valuePropName,
|
|
158
|
-
validateDebounce: validateDebounce
|
|
157
|
+
validateDebounce: validateDebounce,
|
|
158
|
+
validateTrigger: validateTrigger
|
|
159
159
|
}),
|
|
160
160
|
fieldError = _useFormItem.fieldError,
|
|
161
161
|
fieldWarning = _useFormItem.fieldWarning,
|
|
162
|
-
isRequired = _useFormItem.isRequired,
|
|
163
162
|
size = _useFormItem.size,
|
|
164
163
|
labelAlign = _useFormItem.labelAlign,
|
|
165
|
-
requiredMark = _useFormItem.requiredMark,
|
|
166
164
|
injectField = _useFormItem.injectField;
|
|
167
165
|
// Register transform / valueType DURING render (idempotent ref writes, like
|
|
168
166
|
// registerField): consumers rendered later in the same pass — e.g. a
|
|
@@ -311,4 +309,4 @@ var ProFormItemBase = function ProFormItemBase(props) {
|
|
|
311
309
|
ProFormItemBase.displayName = 'ProFormItem';
|
|
312
310
|
export var ProFormItem = /*#__PURE__*/memo(ProFormItemBase);
|
|
313
311
|
export default ProFormItem;
|
|
314
|
-
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImNvbXBvbmVudHMvUHJvRm9ybS9Qcm9Gb3JtSXRlbS5qcyIsImNvbXBvbmVudHMvc3JjL2NvbXBvbmVudHMvUHJvRm9ybS9Qcm9Gb3JtSXRlbS50c3giXSwibmFtZXMiOlsianN4IiwiX2pzeCIsImpzeHMiLCJfanN4cyIsIlJlYWN0IiwibWVtbyIsInVzZUVmZmVjdCIsInVzZVJlZiIsIkNvbCIsIlR5cG9ncmFwaHlCb2R5IiwiVHlwb2dyYXBoeUxhYmVsIiwiZGVmYXVsdCIsImNsYXNzbmFtZXMiLCJqb2luQ2xzIiwidXNlRm9ybUl0ZW0iLCJGT1JNX0VSUk9SX0NPTE9SIiwiRk9STV9FUlJPUl9TSVpFIiwiRk9STV9XQVJOSU5HX0NPTE9SIiwiRk9STV9XQVJOSU5HX1NJWkUiLCJGT1JNX0RFU0NSSVBUSU9OX0NPTE9SIiwiRk9STV9ERVNDUklQVElPTl9TSVpFIiwiRk9STV9GRUVEQkFDS19DT0xPUiIsIkZPUk1fRkVFREJBQ0tfU0laRSIsIkZPUk1fTEFCRUxfQ09MT1IiLCJGT1JNX0xBQkVMX1NJWkVTIiwidXNlUHJvRm9ybVN0YWJsZSIsInVzZVByb0Zvcm1TdG9yZSIsInVzZVN0b3JlU2VsZWN0b3IiLCJzaGFsbG93RXF1YWxBcnJheXMiLCJyZXNvbHZlVmFsdWUiLCJERUZBVUxUX0NPTF9TUEFOIiwidmFsdWVFbnVtVG9PcHRpb25zIiwiZm9ybWF0RGF0ZUJ5UGF0dGVybiIsIkRBVEVfRk9STUFUIiwiREFURV9USU1FX0ZPUk1BVCIsIkVNUFRZX1RFWFRfREVGQVVMVCIsInJlbmRlckJ5VmFsdWVUeXBlIiwidmFsdWVUeXBlIiwidmFsdWUiLCJwcm9wcyIsInVuZGVmaW5lZCIsInJlcGVhdCIsIlN0cmluZyIsImxlbmd0aCIsIm51bSIsIk51bWJlciIsImlzTmFOIiwidG9Mb2NhbGVTdHJpbmciLCJ2YWx1ZUVudW0iLCJvcHRpb25zIiwibWF0Y2giLCJmaW5kIiwibyIsImxhYmVsIiwiRGF0ZSIsIlJlYWRvbmx5Q2hpbGRCYXNlIiwiX3JlZiIsIm5hbWUiLCJjb252ZXJ0VmFsdWUiLCJyZWFkb25seVJlbmRlciIsImVtcHR5VGV4dCIsInN0b3JlIiwiX3VzZVN0b3JlU2VsZWN0b3IiLCJzdGF0ZSIsInZhbHVlcyIsIl91c2VTdG9yZVNlbGVjdG9yMiIsIl9zbGljZWRUb0FycmF5IiwicmF3IiwiYWxsVmFsdWVzIiwibm9kZSIsImdldFN0YXRlIiwiY2hpbGRyZW4iLCJyZW5kZXJlZCIsImRpc3BsYXlOYW1lIiwiUmVhZG9ubHlDaGlsZCIsIkNvbnZlcnRWYWx1ZUNoaWxkQmFzZSIsIl9yZWYyIiwiX3JlZjIkdmFsdWVQcm9wTmFtZSIsInZhbHVlUHJvcE5hbWUiLCJjb252ZXJ0ZWQiLCJjbG9uZUVsZW1lbnQiLCJfZGVmaW5lUHJvcGVydHkiLCJDb252ZXJ0VmFsdWVDaGlsZCIsIlByb0Zvcm1JdGVtQmFzZSIsIl9hIiwiY3R4IiwibWVyZ2VkUHJvcHMiLCJmb3JtSXRlbVByb3BzIiwibWVyZ2VkIiwiT2JqZWN0IiwiYXNzaWduIiwiX2kiLCJfT2JqZWN0JGtleXMiLCJrZXlzIiwia2V5IiwiX21lcmdlZFByb3BzIiwiZGVzY3JpcHRpb24iLCJydWxlcyIsInJlcXVpcmVkIiwiZmVlZGJhY2siLCJ2YWxpZGF0ZVN0YXR1cyIsIl9tZXJnZWRQcm9wcyRjbGFzc05hbSIsImNsYXNzTmFtZSIsIl9tZXJnZWRQcm9wcyRwcmVmaXhDbCIsInByZWZpeENscyIsImhpZGRlbiIsInRyYW5zZm9ybSIsImNvbFByb3BzIiwibW9kZVByb3AiLCJtb2RlIiwiX21lcmdlZFByb3BzJGVtcHR5VGV4IiwidmFsaWRhdGVEZWJvdW5jZSIsIm1lcmdlZE1vZGUiLCJpc1JlYWRvbmx5IiwiX3VzZUZvcm1JdGVtIiwiZmllbGRFcnJvciIsImZpZWxkV2FybmluZyIsImlzUmVxdWlyZWQiLCJzaXplIiwibGFiZWxBbGlnbiIsInJlcXVpcmVkTWFyayIsImluamVjdEZpZWxkIiwib3duVHJhbnNmb3JtUmVmIiwib3duVmFsdWVUeXBlUmVmIiwicHJldlRyYW5zZm9ybSIsImN1cnJlbnQiLCJ1bnJlZ2lzdGVyVHJhbnNmb3JtIiwiZm4iLCJyZWdpc3RlclRyYW5zZm9ybSIsInByZXZWYWx1ZVR5cGUiLCJ1bnJlZ2lzdGVyVmFsdWVUeXBlIiwicmVnaXN0ZXJWYWx1ZVR5cGUiLCJ0cmFuc2Zvcm1SZWciLCJ2YWx1ZVR5cGVSZWciLCJ0IiwidiIsImNvbnRyb2xDaGlsZCIsImluamVjdGVkIiwiaXNWYWxpZEVsZW1lbnQiLCJjbGFzc2VzIiwiaXRlbUdhcCIsImxheW91dCIsImdhcFN0eWxlIiwibWFyZ2luQm90dG9tIiwiY29uY2F0Iiwic2hlbGwiLCJzdHlsZSIsImFzIiwiY29sb3IiLCJncmlkIiwiX21lcmdlZCRzcGFuIiwic3BhbiIsInNtIiwibWQiLCJsZyIsIlByb0Zvcm1JdGVtIl0sIm1hcHBpbmdzIjoiOztBQUFBLFNBQVNBLEdBQUcsSUFBSUMsSUFBSSxFQUFFQyxJQUFJLElBQUlDLEtBQUssUUFBUSxtQkFBbUI7QUNBOUQsT0FBT0MsS0FBSyxJQUFJQyxJQUFJLEVBQUVDLFNBQVMsRUFBRUMsTUFBTSxRQUFRLE9BQU87QUFFdEQsU0FBU0MsR0FBRyxRQUFRLFNBQVM7QUFDN0IsU0FBU0MsY0FBYyxFQUFFQyxlQUFlLFFBQVEsZUFBZTtBQUMvRCxTQUFTQyxPQUFPLElBQUlDLFVBQVUsRUFBRUMsT0FBTyxRQUFRLHdCQUF3QjtBQUN2RSxTQUFTQyxXQUFXLFFBQVEsb0JBQW9CO0FBQ2hELFNBQ0VDLGdCQUFnQixFQUNoQkMsZUFBZSxFQUNmQyxrQkFBa0IsRUFDbEJDLGlCQUFpQixFQUNqQkMsc0JBQXNCLEVBQ3RCQyxxQkFBcUIsRUFDckJDLG1CQUFtQixFQUNuQkMsa0JBQWtCLEVBQ2xCQyxnQkFBZ0IsRUFDaEJDLGdCQUFnQixRQUNYLGtCQUFrQjtBQUN6QixTQUFTQyxnQkFBZ0IsRUFBRUMsZUFBZSxRQUFRLFdBQVc7QUFDN0QsU0FBU0MsZ0JBQWdCLEVBQUVDLGtCQUFrQixRQUFRLGtCQUFrQjtBQUN2RSxTQUFTQyxZQUFZLFFBQVEsa0JBQWtCO0FBQy9D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d0gsWUFBQTtNQUFFRSxFQUFFLEdBQWFoRSxPQUFNLENBQXJCZ0UsRUFBRTtNQUFFQyxFQUFFLEdBQVNqRSxPQUFNLENBQWpCaUUsRUFBRTtNQUFFQyxFQUFFLEdBQUtsRSxPQUFNLENBQWJrRSxFQUFFO0lBQzNDLE9BQU96SixJQUFBLENBQUNPLEdBQUcsRUFBQTtNQUFDK0ksSUFBSSxFQUFFQSxJQUFJO01BQUVDLEVBQUUsRUFBRUEsRUFBRTtNQUFFQyxFQUFFLEVBQUVBLEVBQUU7TUFBRUMsRUFBRSxFQUFFQSxFQUFFO01BQUFuRixRQUFBLEVBQUcwRTtJQUFLLENBQUEsQ0FBTztFQUMvRDtFQUVBLE9BQU9BLEtBQUs7QUFDZCxDQUFDO0FBRUQ5RCxlQUFlLENBQUNWLFdBQVcsR0FBRyxhQUFhO0FBRTNDLE9BQU8sSUFBTWtGLFdBQVcsZ0JBQUd0SixJQUFJLENBQUM4RSxlQUFlLENBQUM7QUFFaEQsZUFBZXdFLFdBQVciLCJmaWxlIjoiY29tcG9uZW50cy9Qcm9Gb3JtL1Byb0Zvcm1JdGVtLmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsganN4IGFzIF9qc3gsIGpzeHMgYXMgX2pzeHMgfSBmcm9tIFwicmVhY3QvanN4LXJ1bnRpbWVcIjtcbmltcG9ydCBSZWFjdCwgeyBtZW1vLCB1c2VFZmZlY3QsIHVzZVJlZiB9IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7IENvbCB9IGZyb20gJy4uL0dyaWQnO1xuaW1wb3J0IHsgVHlwb2dyYXBoeUJvZHksIFR5cG9ncmFwaHlMYWJlbCB9IGZyb20gJy4uL1R5cG9ncmFwaHknO1xuaW1wb3J0IHsgZGVmYXVsdCBhcyBjbGFzc25hbWVzLCBqb2luQ2xzIH0gZnJvbSAnLi4vLi4vdXRpbHMvY2xhc3NuYW1lcyc7XG5pbXBvcnQgeyB1c2VGb3JtSXRlbSB9IGZyb20gJy4vY29yZS91c2VGb3JtSXRlbSc7XG5pbXBvcnQgeyBGT1JNX0VSUk9SX0NPTE9SLCBGT1JNX0VSUk9SX1NJWkUsIEZPUk1fV0FSTklOR19DT0xPUiwgRk9STV9XQVJOSU5HX1NJWkUsIEZPUk1fREVTQ1JJUFRJT05fQ09MT1IsIEZPUk1fREVTQ1JJUFRJT05fU0laRSwgRk9STV9GRUVEQkFDS19DT0xPUiwgRk9STV9GRUVEQkFDS19TSVpFLCBGT1JNX0xBQkVMX0NPTE9SLCBGT1JNX0xBQkVMX1NJWkVTLCB9IGZyb20gJy4vY29yZS9jb25zdGFudHMnO1xuaW1wb3J0IHsgdXNlUHJvRm9ybVN0YWJsZSwgdXNlUHJvRm9ybVN0b3JlIH0gZnJvbSAnLi9jb250ZXh0JztcbmltcG9ydCB7IHVzZVN0b3JlU2VsZWN0b3IsIHNoYWxsb3dFcXVhbEFycmF5cyB9IGZyb20gJy4vY29yZS9mb3JtU3RvcmUnO1xuaW1wb3J0IHsgcmVzb2x2ZVZhbHVlIH0gZnJvbSAnLi9jb3JlL3BhdGhVdGlscyc7XG5pbXBvcnQgeyBERUZBVUxUX0NPTF9TUEFOIH0gZnJvbSAnLi9jb25zdGFudHMnO1xuaW1wb3J0IHsgdmFsdWVFbnVtVG9PcHRpb25zLCBmb3JtYXREYXRlQnlQYXR0ZXJuLCBEQVRFX0ZPUk1BVCwgREFURV9USU1FX0ZPUk1BVCB9IGZyb20gJy4vdXRpbHMnO1xuY29uc3QgRU1QVFlfVEVYVF9ERUZBVUxUID0gJy0nO1xuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vLyBSZWFkLW1vZGUgcmVuZGVyaW5nIGZvciBlYWNoIHN1cHBvcnRlZCB2YWx1ZVR5cGVcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuZnVuY3Rpb24gcmVuZGVyQnlWYWx1ZVR5cGUodmFsdWVUeXBlLCB2YWx1ZSwgcHJvcHMpIHtcbiAgICBpZiAodmFsdWUgPT09IG51bGwgfHwgdmFsdWUgPT09IHVuZGVmaW5lZCB8fCB2YWx1ZSA9PT0gJycpXG4gICAgICAgIHJldHVybiBudWxsO1xuICAgIHN3aXRjaCAodmFsdWVUeXBlKSB7XG4gICAgICAgIGNhc2UgJ3Bhc3N3b3JkJzpcbiAgICAgICAgICAgIHJldHVybiAnKicucmVwZWF0KFN0cmluZyh2YWx1ZSkubGVuZ3RoKTtcbiAgICAgICAgY2FzZSAnc3dpdGNoJzpcbiAgICAgICAgICAgIHJldHVybiB2YWx1ZSA/ICdPbicgOiAnT2ZmJztcbiAgICAgICAgY2FzZSAnZGlnaXQnOiB7XG4gICAgICAgICAgICBjb25zdCBudW0gPSBOdW1iZXIodmFsdWUpO1xuICAgICAgICAgICAgaWYgKE51bWJlci5pc05hTihudW0pKVxuICAgICAgICAgICAgICAgIHJldHVybiBTdHJpbmcodmFsdWUpO1xuICAgICAgICAgICAgcmV0dXJuIG51bS50b0xvY2FsZVN0cmluZygpO1xuICAgICAgICB9XG4gICAgICAgIGNhc2UgJ3NlbGVjdCc6XG4gICAgICAgIGNhc2UgJ3JhZGlvJzpcbiAgICAgICAgY2FzZSAndGFnJzoge1xuICAgICAgICAgICAgaWYgKCFwcm9wcy52YWx1ZUVudW0pXG4gICAgICAgICAgICAgICAgcmV0dXJuIFN0cmluZyh2YWx1ZSk7XG4gICAgICAgICAgICBjb25zdCBvcHRpb25zID0gdmFsdWVFbnVtVG9PcHRpb25zKHByb3BzLnZhbHVlRW51bSk7XG4gICAgICAgICAgICBjb25zdCBtYXRjaCA9IG9wdGlvbnMuZmluZCgobykgPT4gU3RyaW5nKG8udmFsdWUpID09PSBTdHJpbmcodmFsdWUpKTtcbiAgICAgICAgICAgIHJldHVybiBtYXRjaCA/IG1hdGNoLmxhYmVsIDogU3RyaW5nKHZhbHVlKTtcbiAgICAgICAgfVxuICAgICAgICBjYXNlICdkYXRlJzpcbiAgICAgICAgICAgIHJldHVybiB2YWx1ZSBpbnN0YW5jZW9mIERhdGUgPyBmb3JtYXREYXRlQnlQYXR0ZXJuKHZhbHVlLCBEQVRFX0ZPUk1BVCkgOiBTdHJpbmcodmFsdWUpO1xuICAgICAgICBjYXNlICdkYXRlVGltZSc6XG4gICAgICAgICAgICByZXR1cm4gdmFsdWUgaW5zdGFuY2VvZiBEYXRlID8gZm9ybWF0RGF0ZUJ5UGF0dGVybih2YWx1ZSwgREFURV9USU1FX0ZPUk1BVCkgOiBTdHJpbmcodmFsdWUpO1xuICAgICAgICBjYXNlICd0ZXh0JzpcbiAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgIHJldHVybiBTdHJpbmcodmFsdWUpO1xuICAgIH1cbn1cbmNvbnN0IFJlYWRvbmx5Q2hpbGRCYXNlID0gKHsgbmFtZSwgdmFsdWVUeXBlLCB2YWx1ZUVudW0sIGNvbnZlcnRWYWx1ZSwgcmVhZG9ubHlSZW5kZXIsIGVtcHR5VGV4dCwgfSkgPT4ge1xuICAgIGNvbnN0IHN0b3JlID0gdXNlUHJvRm9ybVN0b3JlKCk7XG4gICAgLy8gU3Vic2NyaWJlIHBlci1maWVsZDsgb25seSBhIGN1c3RvbSByZWFkb25seVJlbmRlciAod2hpY2ggcmVjZWl2ZXMgQUxMXG4gICAgLy8gdmFsdWVzKSBuZWVkcyB0byB0cmFjayB0aGUgd2hvbGUgdmFsdWVzIG9iamVjdC5cbiAgICBjb25zdCBbcmF3LCBhbGxWYWx1ZXNdID0gdXNlU3RvcmVTZWxlY3RvcihzdG9yZSwgKHN0YXRlKSA9PiBbXG4gICAgICAgIG5hbWUgPyByZXNvbHZlVmFsdWUoc3RhdGUudmFsdWVzLCBuYW1lKSA6IHVuZGVmaW5lZCxcbiAgICAgICAgcmVhZG9ubHlSZW5kZXIgPyBzdGF0ZS52YWx1ZXMgOiB1bmRlZmluZWQsXG4gICAgXSwgc2hhbGxvd0VxdWFsQXJyYXlzKTtcbiAgICBjb25zdCB2YWx1ZSA9IGNvbnZlcnRWYWx1ZSAmJiBuYW1lID8gY29udmVydFZhbHVlKHJhdywgbmFtZSkgOiByYXc7XG4gICAgaWYgKHJlYWRvbmx5UmVuZGVyKSB7XG4gICAgICAgIGNvbnN0IG5vZGUgPSByZWFkb25seVJlbmRlcih2YWx1ZSwgYWxsVmFsdWVzICE9PSBudWxsICYmIGFsbFZhbHVlcyAhPT0gdm9pZCAwID8gYWxsVmFsdWVzIDogc3RvcmUuZ2V0U3RhdGUoKS52YWx1ZXMpO1xuICAgICAgICByZXR1cm4gX2pzeChcInNwYW5cIiwgeyBjaGlsZHJlbjogbm9kZSAhPT0gbnVsbCAmJiBub2RlICE9PSB2b2lkIDAgPyBub2RlIDogZW1wdHlUZXh0IH0pO1xuICAgIH1cbiAgICBpZiAodmFsdWUgPT09IG51bGwgfHwgdmFsdWUgPT09IHVuZGVmaW5lZCB8fCB2YWx1ZSA9PT0gJycpIHtcbiAgICAgICAgcmV0dXJuIF9qc3goXCJzcGFuXCIsIHsgY2hpbGRyZW46IGVtcHR5VGV4dCB9KTtcbiAgICB9XG4gICAgY29uc3QgcmVuZGVyZWQgPSByZW5kZXJCeVZhbHVlVHlwZSh2YWx1ZVR5cGUsIHZhbHVlLCB7IHZhbHVlRW51bSB9KTtcbiAgICByZXR1cm4gX2pzeChcInNwYW5cIiwgeyBjaGlsZHJlbjogcmVuZGVyZWQgIT09IG51bGwgJiYgcmVuZGVyZWQgIT09IHZvaWQgMCA/IHJlbmRlcmVkIDogZW1wdHlUZXh0IH0pO1xufTtcblJlYWRvbmx5Q2hpbGRCYXNlLmRpc3BsYXlOYW1lID0gJ1Byb0Zvcm1JdGVtUmVhZG9ubHknO1xuY29uc3QgUmVhZG9ubHlDaGlsZCA9IG1lbW8oUmVhZG9ubHlDaGlsZEJhc2UpO1xuY29uc3QgQ29udmVydFZhbHVlQ2hpbGRCYXNlID0gKHsgbmFtZSwgY29udmVydFZhbHVlLCB2YWx1ZVByb3BOYW1lID0gJ3ZhbHVlJywgY2hpbGRyZW4sIH0pID0+IHtcbiAgICBjb25zdCBzdG9yZSA9IHVzZVByb0Zvcm1TdG9yZSgpO1xuICAgIGNvbnN0IHJhdyA9IHVzZVN0b3JlU2VsZWN0b3Ioc3RvcmUsIChzdGF0ZSkgPT4gcmVzb2x2ZVZhbHVlKHN0YXRlLnZhbHVlcywgbmFtZSkpO1xuICAgIGNvbnN0IGNvbnZlcnRlZCA9IGNvbnZlcnRWYWx1ZSA/IGNvbnZlcnRWYWx1ZShyYXcsIG5hbWUpIDogcmF3O1xuICAgIHJldHVybiBSZWFjdC5jbG9uZUVsZW1lbnQoY2hpbGRyZW4sIHsgW3ZhbHVlUHJvcE5hbWVdOiBjb252ZXJ0ZWQgfSk7XG59O1xuQ29udmVydFZhbHVlQ2hpbGRCYXNlLmRpc3BsYXlOYW1lID0gJ1Byb0Zvcm1JdGVtQ29udmVydFZhbHVlJztcbmNvbnN0IENvbnZlcnRWYWx1ZUNoaWxkID0gbWVtbyhDb252ZXJ0VmFsdWVDaGlsZEJhc2UpO1xuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vLyBQcm9Gb3JtSXRlbVxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5jb25zdCBQcm9Gb3JtSXRlbUJhc2UgPSAocHJvcHMpID0+IHtcbiAgICB2YXIgX2E7XG4gICAgLy8gU3RhYmxlIHNsaWNlIG9ubHkg4oCUIHZhbHVlL2Vycm9yIHJlYWN0aXZpdHkgbGl2ZXMgaW4gdXNlRm9ybUl0ZW0nc1xuICAgIC8vIHBlci1maWVsZCBzdWJzY3JpcHRpb24sIHNvIHRoaXMgc2hlbGwgbmV2ZXIgcmUtcmVuZGVycyBmb3Igc2libGluZ3MuXG4gICAgY29uc3QgY3R4ID0gdXNlUHJvRm9ybVN0YWJsZSgpO1xuICAgIC8vIEZvcm0tbGV2ZWwgYGZvcm1JdGVtUHJvcHNgIGFjdCBhcyBERUZBVUxUUzsgcHJvcHMgZXhwbGljaXRseSBzZXQgb24gdGhlXG4gICAgLy8gaXRlbSB3aW4uIEpTWCBmcmVxdWVudGx5IHBhc3NlcyBgdW5kZWZpbmVkYCBmb3IgdW5zZXQgcHJvcHMgKGUuZy4gdGhlXG4gICAgLy8gY3JlYXRlUHJvRm9ybUZpZWxkIHBhc3MtdGhyb3VnaCksIHNvIG9ubHkgZGVmaW5lZCB2YWx1ZXMgbWF5IG92ZXJyaWRlLlxuICAgIGxldCBtZXJnZWRQcm9wcyA9IHByb3BzO1xuICAgIGlmIChjdHguZm9ybUl0ZW1Qcm9wcykge1xuICAgICAgICBjb25zdCBtZXJnZWQgPSBPYmplY3QuYXNzaWduKHt9LCBjdHguZm9ybUl0ZW1Qcm9wcyk7XG4gICAgICAgIGZvciAoY29uc3Qga2V5IG9mIE9iamVjdC5rZXlzKHByb3BzKSkge1xuICAgICAgICAgICAgY29uc3QgdmFsdWUgPSBwcm9wc1trZXldO1xuICAgICAgICAgICAgaWYgKHZhbHVlICE9PSB1bmRlZmluZWQpXG4gICAgICAgICAgICAgICAgbWVyZ2VkW2tleV0gPSB2YWx1ZTtcbiAgICAgICAgfVxuICAgICAgICBtZXJnZWRQcm9wcyA9IG1lcmdlZDtcbiAgICB9XG4gICAgY29uc3QgeyBjaGlsZHJlbiwgbmFtZSwgbGFiZWwsIGRlc2NyaXB0aW9uLCBydWxlcywgcmVxdWlyZWQsIGZlZWRiYWNrLCB2YWxpZGF0ZVN0YXR1cywgY2xhc3NOYW1lID0gJycsIHByZWZpeENscyA9ICdmb3JtLWl0ZW0nLCBoaWRkZW4sIHRyYW5zZm9ybSwgY29udmVydFZhbHVlLCB2YWx1ZVR5cGUsIHJlYWRvbmx5UmVuZGVyLCBjb2xQcm9wcywgbW9kZTogbW9kZVByb3AsIGVtcHR5VGV4dCA9IEVNUFRZX1RFWFRfREVGQVVMVCwgdmFsdWVFbnVtLCB2YWx1ZVByb3BOYW1lLCB2YWxpZGF0ZURlYm91bmNlLCB9ID0gbWVyZ2VkUHJvcHM7XG4gICAgY29uc3QgbWVyZ2VkTW9kZSA9IG1vZGVQcm9wICE9PSBudWxsICYmIG1vZGVQcm9wICE9PSB2b2lkIDAgPyBtb2RlUHJvcCA6IGN0eC5tb2RlO1xuICAgIGNvbnN0IGlzUmVhZG9ubHkgPSBtZXJnZWRNb2RlID09PSAncmVhZCc7XG4gICAgY29uc3QgeyBmaWVsZEVycm9yLCBmaWVsZFdhcm5pbmcsIGlzUmVxdWlyZWQsIHNpemUsIGxhYmVsQWxpZ24sIHJlcXVpcmVkTWFyaywgaW5qZWN0RmllbGQsIH0gPSB1c2VGb3JtSXRlbSh7IG5hbWUsIHJ1bGVzLCByZXF1aXJlZCwgdmFsaWRhdGVTdGF0dXMsIHZhbHVlUHJvcE5hbWUsIHZhbGlkYXRlRGVib3VuY2UgfSk7XG4gICAgLy8gUmVnaXN0ZXIgdHJhbnNmb3JtIC8gdmFsdWVUeXBlIERVUklORyByZW5kZXIgKGlkZW1wb3RlbnQgcmVmIHdyaXRlcywgbGlrZVxuICAgIC8vIHJlZ2lzdGVyRmllbGQpOiBjb25zdW1lcnMgcmVuZGVyZWQgbGF0ZXIgaW4gdGhlIHNhbWUgcGFzcyDigJQgZS5nLiBhXG4gICAgLy8gRGVwZW5kZW5jeSByZWFkaW5nIGZvcm1hdHRlZCB2YWx1ZXMg4oCUIG11c3QgYWxyZWFkeSBzZWUgdGhlbS4gRWZmZWN0c1xuICAgIC8vIHdvdWxkIHJlZ2lzdGVyIHRvbyBsYXRlIChhZnRlciB0aGUgd2hvbGUgdHJlZSByZW5kZXJlZCkuXG4gICAgLy9cbiAgICAvLyBFYWNoIGluc3RhbmNlIHRyYWNrcyB0aGUge25hbWUsIHZhbHVlfSBQQUlSIGl0IHJlZ2lzdGVyZWQuIFJlbW92YWwgaXNcbiAgICAvLyBhbHdheXMgcGVyZm9ybWVkIHdpdGggdGhlIHBhaXIncyBvd24gbmFtZSBBTkQgdmFsdWU6IGFuIGl0ZW0gd2l0aG91dCBhXG4gICAgLy8gdHJhbnNmb3JtIG5ldmVyIHRvdWNoZXMgYSBzYW1lLW5hbWUgc2libGluZydzIHJlZ2lzdHJhdGlvbiwgYW4gdW5tb3VudFxuICAgIC8vIGNsZWFudXAgY2FuJ3Qgd2lwZSBhIHN1Y2Nlc3NvcidzICh2YWx1ZS1ndWFyZGVkKSwgYW5kIGEgTkFNRSBjaGFuZ2VcbiAgICAvLyByZW1vdmVzIHRoZSBvbGQgbmFtZSdzIGVudHJ5IHdpdGggdGhlIE9MRCB2YWx1ZSBiZWZvcmUgdGhlIHJlZiBpc1xuICAgIC8vIG92ZXJ3cml0dGVuIChhIGxpdmUgc2luZ2xlLXZhbHVlIHJlZiB3b3VsZCBsZWFrIGl0KS5cbiAgICBjb25zdCBvd25UcmFuc2Zvcm1SZWYgPSB1c2VSZWYobnVsbCk7XG4gICAgY29uc3Qgb3duVmFsdWVUeXBlUmVmID0gdXNlUmVmKG51bGwpO1xuICAgIGNvbnN0IHByZXZUcmFuc2Zvcm0gPSBvd25UcmFuc2Zvcm1SZWYuY3VycmVudDtcbiAgICBpZiAocHJldlRyYW5zZm9ybSAmJiAocHJldlRyYW5zZm9ybS5uYW1lICE9PSBuYW1lIHx8ICF0cmFuc2Zvcm0pKSB7XG4gICAgICAgIGN0eC51bnJlZ2lzdGVyVHJhbnNmb3JtKHByZXZUcmFuc2Zvcm0ubmFtZSwgcHJldlRyYW5zZm9ybS5mbik7XG4gICAgICAgIG93blRyYW5zZm9ybVJlZi5jdXJyZW50ID0gbnVsbDtcbiAgICB9XG4gICAgaWYgKG5hbWUgJiYgdHJhbnNmb3JtKSB7XG4gICAgICAgIGN0eC5yZWdpc3RlclRyYW5zZm9ybShuYW1lLCB0cmFuc2Zvcm0pO1xuICAgICAgICBvd25UcmFuc2Zvcm1SZWYuY3VycmVudCA9IHsgbmFtZSwgZm46IHRyYW5zZm9ybSB9O1xuICAgIH1cbiAgICBjb25zdCBwcmV2VmFsdWVUeXBlID0gb3duVmFsdWVUeXBlUmVmLmN1cnJlbnQ7XG4gICAgaWYgKHByZXZWYWx1ZVR5cGUgJiYgKHByZXZWYWx1ZVR5cGUubmFtZSAhPT0gbmFtZSB8fCAhdmFsdWVUeXBlKSkge1xuICAgICAgICBjdHgudW5yZWdpc3RlclZhbHVlVHlwZShwcmV2VmFsdWVUeXBlLm5hbWUsIHByZXZWYWx1ZVR5cGUudmFsdWVUeXBlKTtcbiAgICAgICAgb3duVmFsdWVUeXBlUmVmLmN1cnJlbnQgPSBudWxsO1xuICAgIH1cbiAgICBpZiAobmFtZSAmJiB2YWx1ZVR5cGUpIHtcbiAgICAgICAgY3R4LnJlZ2lzdGVyVmFsdWVUeXBlKG5hbWUsIHZhbHVlVHlwZSk7XG4gICAgICAgIG93blZhbHVlVHlwZVJlZi5jdXJyZW50ID0geyBuYW1lLCB2YWx1ZVR5cGUgfTtcbiAgICB9XG4gICAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICAgICAgLy8gUkUtUkVHSVNURVIgaW4gdGhlIGJvZHk6IFN0cmljdE1vZGUncyBtb3VudOKGkmNsZWFudXDihpJyZS1ydW4gY3ljbGUgYW5kXG4gICAgICAgIC8vIGtleWVkIHJlbW91bnRzIChvbGQgaW5zdGFuY2UncyBjbGVhbnVwIHJ1bnMgQUZURVIgdGhlIG5ldyByZW5kZXJcbiAgICAgICAgLy8gcmVnaXN0ZXJlZCkgYm90aCBlbmQgd2l0aCBhIGNsZWFudXAgaGF2aW5nIGRlbGV0ZWQgdGhlIGVudHJ5IOKAlCB0aGVcbiAgICAgICAgLy8gZWZmZWN0IGJvZHkgbXVzdCByZXN0b3JlIHRoZSBsYXRlc3QgcmVnaXN0cmF0aW9uLlxuICAgICAgICBjb25zdCB0cmFuc2Zvcm1SZWcgPSBvd25UcmFuc2Zvcm1SZWYuY3VycmVudDtcbiAgICAgICAgaWYgKHRyYW5zZm9ybVJlZylcbiAgICAgICAgICAgIGN0eC5yZWdpc3RlclRyYW5zZm9ybSh0cmFuc2Zvcm1SZWcubmFtZSwgdHJhbnNmb3JtUmVnLmZuKTtcbiAgICAgICAgY29uc3QgdmFsdWVUeXBlUmVnID0gb3duVmFsdWVUeXBlUmVmLmN1cnJlbnQ7XG4gICAgICAgIGlmICh2YWx1ZVR5cGVSZWcpXG4gICAgICAgICAgICBjdHgucmVnaXN0ZXJWYWx1ZVR5cGUodmFsdWVUeXBlUmVnLm5hbWUsIHZhbHVlVHlwZVJlZy52YWx1ZVR5cGUpO1xuICAgICAgICByZXR1cm4gKCkgPT4ge1xuICAgICAgICAgICAgY29uc3QgdCA9IG93blRyYW5zZm9ybVJlZi5jdXJyZW50O1xuICAgICAgICAgICAgaWYgKHQpXG4gICAgICAgICAgICAgICAgY3R4LnVucmVnaXN0ZXJUcmFuc2Zvcm0odC5uYW1lLCB0LmZuKTtcbiAgICAgICAgICAgIGNvbnN0IHYgPSBvd25WYWx1ZVR5cGVSZWYuY3VycmVudDtcbiAgICAgICAgICAgIGlmICh2KVxuICAgICAgICAgICAgICAgIGN0eC51bnJlZ2lzdGVyVmFsdWVUeXBlKHYubmFtZSwgdi52YWx1ZVR5cGUpO1xuICAgICAgICB9O1xuICAgIH0sIFtuYW1lLCBjdHgucmVnaXN0ZXJUcmFuc2Zvcm0sIGN0eC51bnJlZ2lzdGVyVHJhbnNmb3JtLCBjdHgucmVnaXN0ZXJWYWx1ZVR5cGUsIGN0eC51bnJlZ2lzdGVyVmFsdWVUeXBlXSk7XG4gICAgaWYgKGhpZGRlbilcbiAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgbGV0IGNvbnRyb2xDaGlsZDtcbiAgICBpZiAoaXNSZWFkb25seSkge1xuICAgICAgICBjb250cm9sQ2hpbGQgPSAoX2pzeChSZWFkb25seUNoaWxkLCB7IG5hbWU6IG5hbWUsIHZhbHVlVHlwZTogdmFsdWVUeXBlLCB2YWx1ZUVudW06IHZhbHVlRW51bSwgY29udmVydFZhbHVlOiBjb252ZXJ0VmFsdWUsIHJlYWRvbmx5UmVuZGVyOiByZWFkb25seVJlbmRlciwgZW1wdHlUZXh0OiBlbXB0eVRleHQgfSkpO1xuICAgIH1cbiAgICBlbHNlIHtcbiAgICAgICAgLy8gSW5qZWN0IGZpcnN0IHNvIHRoZSByZWFsIGZpZWxkIHJlY2VpdmVzIHZhbHVlL29uQ2hhbmdlL29uQmx1cixcbiAgICAgICAgLy8gdGhlbiBvcHRpb25hbGx5IHdyYXAgaW4gQ29udmVydFZhbHVlQ2hpbGQgdG8gb3ZlcnJpZGUgdGhlIGRpc3BsYXllZCB2YWx1ZS5cbiAgICAgICAgY29uc3QgaW5qZWN0ZWQgPSBpbmplY3RGaWVsZChjaGlsZHJlbik7XG4gICAgICAgIGlmIChjb252ZXJ0VmFsdWUgJiYgbmFtZSAmJiBSZWFjdC5pc1ZhbGlkRWxlbWVudChpbmplY3RlZCkpIHtcbiAgICAgICAgICAgIGNvbnRyb2xDaGlsZCA9IChfanN4KENvbnZlcnRWYWx1ZUNoaWxkLCB7IG5hbWU6IG5hbWUsIGNvbnZlcnRWYWx1ZTogY29udmVydFZhbHVlLCB2YWx1ZVByb3BOYW1lOiB2YWx1ZVByb3BOYW1lLCBjaGlsZHJlbjogaW5qZWN0ZWQgfSkpO1xuICAgICAgICB9XG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgY29udHJvbENoaWxkID0gaW5qZWN0ZWQ7XG4gICAgICAgIH1cbiAgICB9XG4gICAgY29uc3QgY2xhc3NlcyA9IGNsYXNzbmFtZXMocHJlZml4Q2xzKTtcbiAgICAvLyBGb3JtLWxldmVsIGxheW91dC5pdGVtR2FwIG92ZXJyaWRlcyB0aGUgc2l6ZS1jbGFzcyBtYXJnaW4gKGlubGluZSBzdHlsZVxuICAgIC8vIHdpbnMpOyBpdGVtR2FwPTAgaXMgbWVhbmluZ2Z1bC5cbiAgICBjb25zdCBpdGVtR2FwID0gKF9hID0gY3R4LmxheW91dCkgPT09IG51bGwgfHwgX2EgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9hLml0ZW1HYXA7XG4gICAgY29uc3QgZ2FwU3R5bGUgPSBpdGVtR2FwICE9PSB1bmRlZmluZWRcbiAgICAgICAgPyB7IG1hcmdpbkJvdHRvbTogdHlwZW9mIGl0ZW1HYXAgPT09ICdudW1iZXInID8gYCR7aXRlbUdhcH1weGAgOiBpdGVtR2FwIH1cbiAgICAgICAgOiB1bmRlZmluZWQ7XG4gICAgY29uc3Qgc2hlbGwgPSAoX2pzeHMoXCJkaXZcIiwgeyBjbGFzc05hbWU6IGNsYXNzZXModW5kZWZpbmVkLCBqb2luQ2xzKGNsYXNzZXMoc2l6ZSksIGNsYXNzTmFtZSkpLCBzdHlsZTogZ2FwU3R5bGUsIGNoaWxkcmVuOiBbbGFiZWwgJiYgKF9qc3hzKFwiZGl2XCIsIHsgY2xhc3NOYW1lOiBjbGFzc2VzKCdsYWJlbC13cmFwcGVyJywgam9pbkNscyhjbGFzc2VzKCdsYWJlbC13cmFwcGVyLXZlcnRpY2FsJyksIGxhYmVsQWxpZ24gJiYgY2xhc3NlcyhgbGFiZWwtd3JhcHBlci0ke2xhYmVsQWxpZ259YCkpKSwgY2hpbGRyZW46IFtfanN4KFR5cG9ncmFwaHlMYWJlbCwgeyBhczogXCJsYWJlbFwiLCBzaXplOiBGT1JNX0xBQkVMX1NJWkVTW3NpemVdLCBjb2xvcjogRk9STV9MQUJFTF9DT0xPUiwgY2xhc3NOYW1lOiBjbGFzc2VzKCdsYWJlbCcpLCBjaGlsZHJlbjogbGFiZWwgfSksIGRlc2NyaXB0aW9uICYmIChfanN4KFR5cG9ncmFwaHlCb2R5LCB7IGFzOiBcImRpdlwiLCBjbGFzc05hbWU6IGNsYXNzZXMoJ2Rlc2NyaXB0aW9uJyksIHNpemU6IEZPUk1fREVTQ1JJUFRJT05fU0laRSwgY29sb3I6IEZPUk1fREVTQ1JJUFRJT05fQ09MT1IsIGNoaWxkcmVuOiBkZXNjcmlwdGlvbiB9KSldIH0pKSwgX2pzeHMoXCJkaXZcIiwgeyBjbGFzc05hbWU6IGNsYXNzZXMoJ2NvbnRyb2wnKSwgY2hpbGRyZW46IFtjb250cm9sQ2hpbGQsIGZpZWxkRXJyb3IgJiYgKF9qc3goVHlwb2dyYXBoeUJvZHksIHsgYXM6IFwiZGl2XCIsIGNsYXNzTmFtZTogY2xhc3NlcygnZXJyb3InKSwgc2l6ZTogRk9STV9FUlJPUl9TSVpFLCBjb2xvcjogRk9STV9FUlJPUl9DT0xPUiwgY2hpbGRyZW46IGZpZWxkRXJyb3IgfSkpLCAhZmllbGRFcnJvciAmJiBmaWVsZFdhcm5pbmcgJiYgKF9qc3goVHlwb2dyYXBoeUJvZHksIHsgYXM6IFwiZGl2XCIsIGNsYXNzTmFtZTogY2xhc3Nlcygnd2FybmluZycpLCBzaXplOiBGT1JNX1dBUk5JTkdfU0laRSwgY29sb3I6IEZPUk1fV0FSTklOR19DT0xPUiwgY2hpbGRyZW46IGZpZWxkV2FybmluZyB9KSksICFmaWVsZEVycm9yICYmICFmaWVsZFdhcm5pbmcgJiYgZmVlZGJhY2sgJiYgKF9qc3goVHlwb2dyYXBoeUJvZHksIHsgYXM6IFwiZGl2XCIsIGNsYXNzTmFtZTogY2xhc3NlcygnZmVlZGJhY2snKSwgc2l6ZTogRk9STV9GRUVEQkFDS19TSVpFLCBjb2xvcjogRk9STV9GRUVEQkFDS19DT0xPUiwgY2hpbGRyZW46IGZlZWRiYWNrIH0pKV0gfSldIH0pKTtcbiAgICBpZiAoY3R4LmdyaWQpIHtcbiAgICAgICAgY29uc3QgbWVyZ2VkID0gT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LCBjdHguY29sUHJvcHMpLCBjb2xQcm9wcyk7XG4gICAgICAgIGNvbnN0IHsgc3BhbiA9IERFRkFVTFRfQ09MX1NQQU4sIHNtLCBtZCwgbGcgfSA9IG1lcmdlZDtcbiAgICAgICAgcmV0dXJuIF9qc3goQ29sLCB7IHNwYW46IHNwYW4sIHNtOiBzbSwgbWQ6IG1kLCBsZzogbGcsIGNoaWxkcmVuOiBzaGVsbCB9KTtcbiAgICB9XG4gICAgcmV0dXJuIHNoZWxsO1xufTtcblByb0Zvcm1JdGVtQmFzZS5kaXNwbGF5TmFtZSA9ICdQcm9Gb3JtSXRlbSc7XG5leHBvcnQgY29uc3QgUHJvRm9ybUl0ZW0gPSBtZW1vKFByb0Zvcm1JdGVtQmFzZSk7XG5leHBvcnQgZGVmYXVsdCBQcm9Gb3JtSXRlbTsiLG51bGxdLCJzb3VyY2VSb290IjoiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjIn0=
|
|
312
|
+
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImNvbXBvbmVudHMvUHJvRm9ybS9Qcm9Gb3JtSXRlbS5qcyIsImNvbXBvbmVudHMvc3JjL2NvbXBvbmVudHMvUHJvRm9ybS9Qcm9Gb3JtSXRlbS50c3giXSwibmFtZXMiOlsianN4IiwiX2pzeCIsImpzeHMiLCJfanN4cyIsIlJlYWN0IiwibWVtbyIsInVzZUVmZmVjdCIsInVzZVJlZiIsIkNvbCIsIlR5cG9ncmFwaHlCb2R5IiwiVHlwb2dyYXBoeUxhYmVsIiwiZGVmYXVsdCIsImNsYXNzbmFtZXMiLCJqb2luQ2xzIiwidXNlRm9ybUl0ZW0iLCJGT1JNX0VSUk9SX0NPTE9SIiwiRk9STV9FUlJPUl9TSVpFIiwiRk9STV9XQVJOSU5HX0NPTE9SIiwiRk9STV9XQVJOSU5HX1NJWkUiLCJGT1JNX0RFU0NSSVBUSU9OX0NPTE9SIiwiRk9STV9ERVNDUklQVElPTl9TSVpFIiwiRk9STV9GRUVEQkFDS19DT0xPUiIsIkZPUk1fRkVFREJBQ0tfU0laRSIsIkZPUk1fTEFCRUxfQ09MT1IiLCJGT1JNX0xBQkVMX1NJWkVTIiwidXNlUHJvRm9ybVN0YWJsZSIsInVzZVByb0Zvcm1TdG9yZSIsInVzZVN0b3JlU2VsZWN0b3IiLCJzaGFsbG93RXF1YWxBcnJheXMiLCJyZXNvbHZlVmFsdWUiLCJERUZBVUxUX0NPTF9TUEFOIiwidmFsdWVFbnVtVG9PcHRpb25zIiwiZm9ybWF0RGF0ZUJ5UGF0dGVybiIsIkRBVEVfRk9STUFUIiwiREFURV9USU1FX0ZPUk1BVCIsIkVNUFRZX1RFWFRfREVGQVVMVCIsInJlbmRlckJ5VmFsdWVUeXBlIiwidmFsdWVUeXBlIiwidmFsdWUiLCJwcm9wcyIsInVuZGVmaW5lZCIsInJlcGVhdCIsIlN0cmluZyIsImxlbmd0aCIsIm51bSIsIk51bWJlciIsImlzTmFOIiwidG9Mb2NhbGVTdHJpbmciLCJ2YWx1ZUVudW0iLCJvcHRpb25zIiwibWF0Y2giLCJmaW5kIiwibyIsImxhYmVsIiwiRGF0ZSIsIlJlYWRvbmx5Q2hpbGRCYXNlIiwiX3JlZiIsIm5hbWUiLCJjb252ZXJ0VmFsdWUiLCJyZWFkb25seVJlbmRlciIsImVtcHR5VGV4dCIsInN0b3JlIiwiX3VzZVN0b3JlU2VsZWN0b3IiLCJzdGF0ZSIsInZhbHVlcyIsIl91c2VTdG9yZVNlbGVjdG9yMiIsIl9zbGljZWRUb0FycmF5IiwicmF3IiwiYWxsVmFsdWVzIiwibm9kZSIsImdldFN0YXRlIiwiY2hpbGRyZW4iLCJyZW5kZXJlZCIsImRpc3BsYXlOYW1lIiwiUmVhZG9ubHlDaGlsZCIsIkNvbnZlcnRWYWx1ZUNoaWxkQmFzZSIsIl9yZWYyIiwiX3JlZjIkdmFsdWVQcm9wTmFtZSIsInZhbHVlUHJvcE5hbWUiLCJjb252ZXJ0ZWQiLCJjbG9uZUVsZW1lbnQiLCJfZGVmaW5lUHJvcGVydHkiLCJDb252ZXJ0VmFsdWVDaGlsZCIsIlByb0Zvcm1JdGVtQmFzZSIsIl9hIiwiY3R4IiwibWVyZ2VkUHJvcHMiLCJmb3JtSXRlbVByb3BzIiwibWVyZ2VkIiwiT2JqZWN0IiwiYXNzaWduIiwiX2kiLCJfT2JqZWN0JGtleXMiLCJrZXlzIiwia2V5IiwiX21lcmdlZFByb3BzIiwiZGVzY3JpcHRpb24iLCJydWxlcyIsImZlZWRiYWNrIiwidmFsaWRhdGVTdGF0dXMiLCJfbWVyZ2VkUHJvcHMkY2xhc3NOYW0iLCJjbGFzc05hbWUiLCJfbWVyZ2VkUHJvcHMkcHJlZml4Q2wiLCJwcmVmaXhDbHMiLCJoaWRkZW4iLCJ0cmFuc2Zvcm0iLCJjb2xQcm9wcyIsIm1vZGVQcm9wIiwibW9kZSIsIl9tZXJnZWRQcm9wcyRlbXB0eVRleCIsInZhbGlkYXRlRGVib3VuY2UiLCJ2YWxpZGF0ZVRyaWdnZXIiLCJtZXJnZWRNb2RlIiwiaXNSZWFkb25seSIsIl91c2VGb3JtSXRlbSIsImZpZWxkRXJyb3IiLCJmaWVsZFdhcm5pbmciLCJzaXplIiwibGFiZWxBbGlnbiIsImluamVjdEZpZWxkIiwib3duVHJhbnNmb3JtUmVmIiwib3duVmFsdWVUeXBlUmVmIiwicHJldlRyYW5zZm9ybSIsImN1cnJlbnQiLCJ1bnJlZ2lzdGVyVHJhbnNmb3JtIiwiZm4iLCJyZWdpc3RlclRyYW5zZm9ybSIsInByZXZWYWx1ZVR5cGUiLCJ1bnJlZ2lzdGVyVmFsdWVUeXBlIiwicmVnaXN0ZXJWYWx1ZVR5cGUiLCJ0cmFuc2Zvcm1SZWciLCJ2YWx1ZVR5cGVSZWciLCJ0IiwidiIsImNvbnRyb2xDaGlsZCIsImluamVjdGVkIiwiaXNWYWxpZEVsZW1lbnQiLCJjbGFzc2VzIiwiaXRlbUdhcCIsImxheW91dCIsImdhcFN0eWxlIiwibWFyZ2luQm90dG9tIiwiY29uY2F0Iiwic2hlbGwiLCJzdHlsZSIsImFzIiwiY29sb3IiLCJncmlkIiwiX21lcmdlZCRzcGFuIiwic3BhbiIsInNtIiwibWQiLCJsZyIsIlByb0Zvcm1JdGVtIl0sIm1hcHBpbmdzIjoiOztBQUFBLFNBQVNBLEdBQUcsSUFBSUMsSUFBSSxFQUFFQyxJQUFJLElBQUlDLEtBQUssUUFBUSxtQkFBbUI7QUNBOUQsT0FBT0MsS0FBSyxJQUFJQyxJQUFJLEVBQUVDLFNBQVMsRUFBRUMsTUFBTSxRQUFRLE9BQU87QUFFdEQsU0FBU0MsR0FBRyxRQUFRLFNBQVM7QUFDN0IsU0FBU0MsY0FBYyxFQUFFQyxlQUFlLFFBQVEsZUFBZTtBQUMvRCxTQUFTQyxPQUFPLElBQUlDLFVBQVUsRUFBRUMsT0FBTyxRQUFRLHdCQUF3QjtBQUN2RSxTQUFTQyxXQUFXLFFBQVEsb0JBQW9CO0FBQ2hELFNBQ0VDLGdCQUFnQixFQUNoQkMsZUFBZSxFQUNmQyxrQkFBa0IsRUFDbEJDLGlCQUFpQixFQUNqQkMsc0JBQXNCLEVBQ3RCQyxxQkFBcUIsRUFDckJDLG1CQUFtQixFQUNuQkMsa0JBQWtCLEVBQ2xCQyxnQkFBZ0IsRUFDaEJDLGdCQUFnQixRQUNYLGtCQUFrQjtBQUN6QixTQUFTQyxnQkFBZ0IsRUFBRUMsZUFBZSxRQUFRLFdBQVc7QUFDN0QsU0FBU0MsZ0JBQWdCLEVBQUVDLGtCQUFrQixRQUFRLGtCQUFrQjtBQUN2RSxTQUFTQyxZQUFZLFFBQVEsa0JBQWtCO0FBQy9DLFNBQVNDLGdCQUFnQixRQUFRLGFB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QyxFQUFFLEdBQUtoRSxPQUFNLENBQWJnRSxFQUFFO0lBQzNDLE9BQU92SixJQUFBLENBQUNPLEdBQUcsRUFBQTtNQUFDNkksSUFBSSxFQUFFQSxJQUFJO01BQUVDLEVBQUUsRUFBRUEsRUFBRTtNQUFFQyxFQUFFLEVBQUVBLEVBQUU7TUFBRUMsRUFBRSxFQUFFQSxFQUFFO01BQUFqRixRQUFBLEVBQUd3RTtJQUFLLENBQUEsQ0FBTztFQUMvRDtFQUVBLE9BQU9BLEtBQUs7QUFDZCxDQUFDO0FBRUQ1RCxlQUFlLENBQUNWLFdBQVcsR0FBRyxhQUFhO0FBRTNDLE9BQU8sSUFBTWdGLFdBQVcsZ0JBQUdwSixJQUFJLENBQUM4RSxlQUFlLENBQUM7QUFFaEQsZUFBZXNFLFdBQVciLCJmaWxlIjoiY29tcG9uZW50cy9Qcm9Gb3JtL1Byb0Zvcm1JdGVtLmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsganN4IGFzIF9qc3gsIGpzeHMgYXMgX2pzeHMgfSBmcm9tIFwicmVhY3QvanN4LXJ1bnRpbWVcIjtcbmltcG9ydCBSZWFjdCwgeyBtZW1vLCB1c2VFZmZlY3QsIHVzZVJlZiB9IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7IENvbCB9IGZyb20gJy4uL0dyaWQnO1xuaW1wb3J0IHsgVHlwb2dyYXBoeUJvZHksIFR5cG9ncmFwaHlMYWJlbCB9IGZyb20gJy4uL1R5cG9ncmFwaHknO1xuaW1wb3J0IHsgZGVmYXVsdCBhcyBjbGFzc25hbWVzLCBqb2luQ2xzIH0gZnJvbSAnLi4vLi4vdXRpbHMvY2xhc3NuYW1lcyc7XG5pbXBvcnQgeyB1c2VGb3JtSXRlbSB9IGZyb20gJy4vY29yZS91c2VGb3JtSXRlbSc7XG5pbXBvcnQgeyBGT1JNX0VSUk9SX0NPTE9SLCBGT1JNX0VSUk9SX1NJWkUsIEZPUk1fV0FSTklOR19DT0xPUiwgRk9STV9XQVJOSU5HX1NJWkUsIEZPUk1fREVTQ1JJUFRJT05fQ09MT1IsIEZPUk1fREVTQ1JJUFRJT05fU0laRSwgRk9STV9GRUVEQkFDS19DT0xPUiwgRk9STV9GRUVEQkFDS19TSVpFLCBGT1JNX0xBQkVMX0NPTE9SLCBGT1JNX0xBQkVMX1NJWkVTLCB9IGZyb20gJy4vY29yZS9jb25zdGFudHMnO1xuaW1wb3J0IHsgdXNlUHJvRm9ybVN0YWJsZSwgdXNlUHJvRm9ybVN0b3JlIH0gZnJvbSAnLi9jb250ZXh0JztcbmltcG9ydCB7IHVzZVN0b3JlU2VsZWN0b3IsIHNoYWxsb3dFcXVhbEFycmF5cyB9IGZyb20gJy4vY29yZS9mb3JtU3RvcmUnO1xuaW1wb3J0IHsgcmVzb2x2ZVZhbHVlIH0gZnJvbSAnLi9jb3JlL3BhdGhVdGlscyc7XG5pbXBvcnQgeyBERUZBVUxUX0NPTF9TUEFOIH0gZnJvbSAnLi9jb25zdGFudHMnO1xuaW1wb3J0IHsgdmFsdWVFbnVtVG9PcHRpb25zLCBmb3JtYXREYXRlQnlQYXR0ZXJuLCBEQVRFX0ZPUk1BVCwgREFURV9USU1FX0ZPUk1BVCB9IGZyb20gJy4vdXRpbHMnO1xuY29uc3QgRU1QVFlfVEVYVF9ERUZBVUxUID0gJy0nO1xuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vLyBSZWFkLW1vZGUgcmVuZGVyaW5nIGZvciBlYWNoIHN1cHBvcnRlZCB2YWx1ZVR5cGVcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuZnVuY3Rpb24gcmVuZGVyQnlWYWx1ZVR5cGUodmFsdWVUeXBlLCB2YWx1ZSwgcHJvcHMpIHtcbiAgICBpZiAodmFsdWUgPT09IG51bGwgfHwgdmFsdWUgPT09IHVuZGVmaW5lZCB8fCB2YWx1ZSA9PT0gJycpXG4gICAgICAgIHJldHVybiBudWxsO1xuICAgIHN3aXRjaCAodmFsdWVUeXBlKSB7XG4gICAgICAgIGNhc2UgJ3Bhc3N3b3JkJzpcbiAgICAgICAgICAgIHJldHVybiAnKicucmVwZWF0KFN0cmluZyh2YWx1ZSkubGVuZ3RoKTtcbiAgICAgICAgY2FzZSAnc3dpdGNoJzpcbiAgICAgICAgICAgIHJldHVybiB2YWx1ZSA/ICdPbicgOiAnT2ZmJztcbiAgICAgICAgY2FzZSAnZGlnaXQnOiB7XG4gICAgICAgICAgICBjb25zdCBudW0gPSBOdW1iZXIodmFsdWUpO1xuICAgICAgICAgICAgaWYgKE51bWJlci5pc05hTihudW0pKVxuICAgICAgICAgICAgICAgIHJldHVybiBTdHJpbmcodmFsdWUpO1xuICAgICAgICAgICAgcmV0dXJuIG51bS50b0xvY2FsZVN0cmluZygpO1xuICAgICAgICB9XG4gICAgICAgIGNhc2UgJ3NlbGVjdCc6XG4gICAgICAgIGNhc2UgJ3JhZGlvJzpcbiAgICAgICAgY2FzZSAndGFnJzoge1xuICAgICAgICAgICAgaWYgKCFwcm9wcy52YWx1ZUVudW0pXG4gICAgICAgICAgICAgICAgcmV0dXJuIFN0cmluZyh2YWx1ZSk7XG4gICAgICAgICAgICBjb25zdCBvcHRpb25zID0gdmFsdWVFbnVtVG9PcHRpb25zKHByb3BzLnZhbHVlRW51bSk7XG4gICAgICAgICAgICBjb25zdCBtYXRjaCA9IG9wdGlvbnMuZmluZCgobykgPT4gU3RyaW5nKG8udmFsdWUpID09PSBTdHJpbmcodmFsdWUpKTtcbiAgICAgICAgICAgIHJldHVybiBtYXRjaCA/IG1hdGNoLmxhYmVsIDogU3RyaW5nKHZhbHVlKTtcbiAgICAgICAgfVxuICAgICAgICBjYXNlICdkYXRlJzpcbiAgICAgICAgICAgIHJldHVybiB2YWx1ZSBpbnN0YW5jZW9mIERhdGUgPyBmb3JtYXREYXRlQnlQYXR0ZXJuKHZhbHVlLCBEQVRFX0ZPUk1BVCkgOiBTdHJpbmcodmFsdWUpO1xuICAgICAgICBjYXNlICdkYXRlVGltZSc6XG4gICAgICAgICAgICByZXR1cm4gdmFsdWUgaW5zdGFuY2VvZiBEYXRlID8gZm9ybWF0RGF0ZUJ5UGF0dGVybih2YWx1ZSwgREFURV9USU1FX0ZPUk1BVCkgOiBTdHJpbmcodmFsdWUpO1xuICAgICAgICBjYXNlICd0ZXh0JzpcbiAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgIHJldHVybiBTdHJpbmcodmFsdWUpO1xuICAgIH1cbn1cbmNvbnN0IFJlYWRvbmx5Q2hpbGRCYXNlID0gKHsgbmFtZSwgdmFsdWVUeXBlLCB2YWx1ZUVudW0sIGNvbnZlcnRWYWx1ZSwgcmVhZG9ubHlSZW5kZXIsIGVtcHR5VGV4dCwgfSkgPT4ge1xuICAgIGNvbnN0IHN0b3JlID0gdXNlUHJvRm9ybVN0b3JlKCk7XG4gICAgLy8gU3Vic2NyaWJlIHBlci1maWVsZDsgb25seSBhIGN1c3RvbSByZWFkb25seVJlbmRlciAod2hpY2ggcmVjZWl2ZXMgQUxMXG4gICAgLy8gdmFsdWVzKSBuZWVkcyB0byB0cmFjayB0aGUgd2hvbGUgdmFsdWVzIG9iamVjdC5cbiAgICBjb25zdCBbcmF3LCBhbGxWYWx1ZXNdID0gdXNlU3RvcmVTZWxlY3RvcihzdG9yZSwgKHN0YXRlKSA9PiBbXG4gICAgICAgIG5hbWUgPyByZXNvbHZlVmFsdWUoc3RhdGUudmFsdWVzLCBuYW1lKSA6IHVuZGVmaW5lZCxcbiAgICAgICAgcmVhZG9ubHlSZW5kZXIgPyBzdGF0ZS52YWx1ZXMgOiB1bmRlZmluZWQsXG4gICAgXSwgc2hhbGxvd0VxdWFsQXJyYXlzKTtcbiAgICBjb25zdCB2YWx1ZSA9IGNvbnZlcnRWYWx1ZSAmJiBuYW1lID8gY29udmVydFZhbHVlKHJhdywgbmFtZSkgOiByYXc7XG4gICAgaWYgKHJlYWRvbmx5UmVuZGVyKSB7XG4gICAgICAgIGNvbnN0IG5vZGUgPSByZWFkb25seVJlbmRlcih2YWx1ZSwgYWxsVmFsdWVzICE9PSBudWxsICYmIGFsbFZhbHVlcyAhPT0gdm9pZCAwID8gYWxsVmFsdWVzIDogc3RvcmUuZ2V0U3RhdGUoKS52YWx1ZXMpO1xuICAgICAgICByZXR1cm4gX2pzeChcInNwYW5cIiwgeyBjaGlsZHJlbjogbm9kZSAhPT0gbnVsbCAmJiBub2RlICE9PSB2b2lkIDAgPyBub2RlIDogZW1wdHlUZXh0IH0pO1xuICAgIH1cbiAgICBpZiAodmFsdWUgPT09IG51bGwgfHwgdmFsdWUgPT09IHVuZGVmaW5lZCB8fCB2YWx1ZSA9PT0gJycpIHtcbiAgICAgICAgcmV0dXJuIF9qc3goXCJzcGFuXCIsIHsgY2hpbGRyZW46IGVtcHR5VGV4dCB9KTtcbiAgICB9XG4gICAgY29uc3QgcmVuZGVyZWQgPSByZW5kZXJCeVZhbHVlVHlwZSh2YWx1ZVR5cGUsIHZhbHVlLCB7IHZhbHVlRW51bSB9KTtcbiAgICByZXR1cm4gX2pzeChcInNwYW5cIiwgeyBjaGlsZHJlbjogcmVuZGVyZWQgIT09IG51bGwgJiYgcmVuZGVyZWQgIT09IHZvaWQgMCA/IHJlbmRlcmVkIDogZW1wdHlUZXh0IH0pO1xufTtcblJlYWRvbmx5Q2hpbGRCYXNlLmRpc3BsYXlOYW1lID0gJ1Byb0Zvcm1JdGVtUmVhZG9ubHknO1xuY29uc3QgUmVhZG9ubHlDaGlsZCA9IG1lbW8oUmVhZG9ubHlDaGlsZEJhc2UpO1xuY29uc3QgQ29udmVydFZhbHVlQ2hpbGRCYXNlID0gKHsgbmFtZSwgY29udmVydFZhbHVlLCB2YWx1ZVByb3BOYW1lID0gJ3ZhbHVlJywgY2hpbGRyZW4sIH0pID0+IHtcbiAgICBjb25zdCBzdG9yZSA9IHVzZVByb0Zvcm1TdG9yZSgpO1xuICAgIGNvbnN0IHJhdyA9IHVzZVN0b3JlU2VsZWN0b3Ioc3RvcmUsIChzdGF0ZSkgPT4gcmVzb2x2ZVZhbHVlKHN0YXRlLnZhbHVlcywgbmFtZSkpO1xuICAgIGNvbnN0IGNvbnZlcnRlZCA9IGNvbnZlcnRWYWx1ZSA/IGNvbnZlcnRWYWx1ZShyYXcsIG5hbWUpIDogcmF3O1xuICAgIHJldHVybiBSZWFjdC5jbG9uZUVsZW1lbnQoY2hpbGRyZW4sIHsgW3ZhbHVlUHJvcE5hbWVdOiBjb252ZXJ0ZWQgfSk7XG59O1xuQ29udmVydFZhbHVlQ2hpbGRCYXNlLmRpc3BsYXlOYW1lID0gJ1Byb0Zvcm1JdGVtQ29udmVydFZhbHVlJztcbmNvbnN0IENvbnZlcnRWYWx1ZUNoaWxkID0gbWVtbyhDb252ZXJ0VmFsdWVDaGlsZEJhc2UpO1xuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vLyBQcm9Gb3JtSXRlbVxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5jb25zdCBQcm9Gb3JtSXRlbUJhc2UgPSAocHJvcHMpID0+IHtcbiAgICB2YXIgX2E7XG4gICAgLy8gU3RhYmxlIHNsaWNlIG9ubHkg4oCUIHZhbHVlL2Vycm9yIHJlYWN0aXZpdHkgbGl2ZXMgaW4gdXNlRm9ybUl0ZW0nc1xuICAgIC8vIHBlci1maWVsZCBzdWJzY3JpcHRpb24sIHNvIHRoaXMgc2hlbGwgbmV2ZXIgcmUtcmVuZGVycyBmb3Igc2libGluZ3MuXG4gICAgY29uc3QgY3R4ID0gdXNlUHJvRm9ybVN0YWJsZSgpO1xuICAgIC8vIEZvcm0tbGV2ZWwgYGZvcm1JdGVtUHJvcHNgIGFjdCBhcyBERUZBVUxUUzsgcHJvcHMgZXhwbGljaXRseSBzZXQgb24gdGhlXG4gICAgLy8gaXRlbSB3aW4uIEpTWCBmcmVxdWVudGx5IHBhc3NlcyBgdW5kZWZpbmVkYCBmb3IgdW5zZXQgcHJvcHMgKGUuZy4gdGhlXG4gICAgLy8gY3JlYXRlUHJvRm9ybUZpZWxkIHBhc3MtdGhyb3VnaCksIHNvIG9ubHkgZGVmaW5lZCB2YWx1ZXMgbWF5IG92ZXJyaWRlLlxuICAgIGxldCBtZXJnZWRQcm9wcyA9IHByb3BzO1xuICAgIGlmIChjdHguZm9ybUl0ZW1Qcm9wcykge1xuICAgICAgICBjb25zdCBtZXJnZWQgPSBPYmplY3QuYXNzaWduKHt9LCBjdHguZm9ybUl0ZW1Qcm9wcyk7XG4gICAgICAgIGZvciAoY29uc3Qga2V5IG9mIE9iamVjdC5rZXlzKHByb3BzKSkge1xuICAgICAgICAgICAgY29uc3QgdmFsdWUgPSBwcm9wc1trZXldO1xuICAgICAgICAgICAgaWYgKHZhbHVlICE9PSB1bmRlZmluZWQpXG4gICAgICAgICAgICAgICAgbWVyZ2VkW2tleV0gPSB2YWx1ZTtcbiAgICAgICAgfVxuICAgICAgICBtZXJnZWRQcm9wcyA9IG1lcmdlZDtcbiAgICB9XG4gICAgY29uc3QgeyBjaGlsZHJlbiwgbmFtZSwgbGFiZWwsIGRlc2NyaXB0aW9uLCBydWxlcywgZmVlZGJhY2ssIHZhbGlkYXRlU3RhdHVzLCBjbGFzc05hbWUgPSAnJywgcHJlZml4Q2xzID0gJ2Zvcm0taXRlbScsIGhpZGRlbiwgdHJhbnNmb3JtLCBjb252ZXJ0VmFsdWUsIHZhbHVlVHlwZSwgcmVhZG9ubHlSZW5kZXIsIGNvbFByb3BzLCBtb2RlOiBtb2RlUHJvcCwgZW1wdHlUZXh0ID0gRU1QVFlfVEVYVF9ERUZBVUxULCB2YWx1ZUVudW0sIHZhbHVlUHJvcE5hbWUsIHZhbGlkYXRlRGVib3VuY2UsIHZhbGlkYXRlVHJpZ2dlciwgfSA9IG1lcmdlZFByb3BzO1xuICAgIGNvbnN0IG1lcmdlZE1vZGUgPSBtb2RlUHJvcCAhPT0gbnVsbCAmJiBtb2RlUHJvcCAhPT0gdm9pZCAwID8gbW9kZVByb3AgOiBjdHgubW9kZTtcbiAgICBjb25zdCBpc1JlYWRvbmx5ID0gbWVyZ2VkTW9kZSA9PT0gJ3JlYWQnO1xuICAgIGNvbnN0IHsgZmllbGRFcnJvciwgZmllbGRXYXJuaW5nLCBzaXplLCBsYWJlbEFsaWduLCBpbmplY3RGaWVsZCwgfSA9IHVzZUZvcm1JdGVtKHtcbiAgICAgICAgbmFtZSxcbiAgICAgICAgcnVsZXMsXG4gICAgICAgIHZhbGlkYXRlU3RhdHVzLFxuICAgICAgICB2YWx1ZVByb3BOYW1lLFxuICAgICAgICB2YWxpZGF0ZURlYm91bmNlLFxuICAgICAgICB2YWxpZGF0ZVRyaWdnZXIsXG4gICAgfSk7XG4gICAgLy8gUmVnaXN0ZXIgdHJhbnNmb3JtIC8gdmFsdWVUeXBlIERVUklORyByZW5kZXIgKGlkZW1wb3RlbnQgcmVmIHdyaXRlcywgbGlrZVxuICAgIC8vIHJlZ2lzdGVyRmllbGQpOiBjb25zdW1lcnMgcmVuZGVyZWQgbGF0ZXIgaW4gdGhlIHNhbWUgcGFzcyDigJQgZS5nLiBhXG4gICAgLy8gRGVwZW5kZW5jeSByZWFkaW5nIGZvcm1hdHRlZCB2YWx1ZXMg4oCUIG11c3QgYWxyZWFkeSBzZWUgdGhlbS4gRWZmZWN0c1xuICAgIC8vIHdvdWxkIHJlZ2lzdGVyIHRvbyBsYXRlIChhZnRlciB0aGUgd2hvbGUgdHJlZSByZW5kZXJlZCkuXG4gICAgLy9cbiAgICAvLyBFYWNoIGluc3RhbmNlIHRyYWNrcyB0aGUge25hbWUsIHZhbHVlfSBQQUlSIGl0IHJlZ2lzdGVyZWQuIFJlbW92YWwgaXNcbiAgICAvLyBhbHdheXMgcGVyZm9ybWVkIHdpdGggdGhlIHBhaXIncyBvd24gbmFtZSBBTkQgdmFsdWU6IGFuIGl0ZW0gd2l0aG91dCBhXG4gICAgLy8gdHJhbnNmb3JtIG5ldmVyIHRvdWNoZXMgYSBzYW1lLW5hbWUgc2libGluZydzIHJlZ2lzdHJhdGlvbiwgYW4gdW5tb3VudFxuICAgIC8vIGNsZWFudXAgY2FuJ3Qgd2lwZSBhIHN1Y2Nlc3NvcidzICh2YWx1ZS1ndWFyZGVkKSwgYW5kIGEgTkFNRSBjaGFuZ2VcbiAgICAvLyByZW1vdmVzIHRoZSBvbGQgbmFtZSdzIGVudHJ5IHdpdGggdGhlIE9MRCB2YWx1ZSBiZWZvcmUgdGhlIHJlZiBpc1xuICAgIC8vIG92ZXJ3cml0dGVuIChhIGxpdmUgc2luZ2xlLXZhbHVlIHJlZiB3b3VsZCBsZWFrIGl0KS5cbiAgICBjb25zdCBvd25UcmFuc2Zvcm1SZWYgPSB1c2VSZWYobnVsbCk7XG4gICAgY29uc3Qgb3duVmFsdWVUeXBlUmVmID0gdXNlUmVmKG51bGwpO1xuICAgIGNvbnN0IHByZXZUcmFuc2Zvcm0gPSBvd25UcmFuc2Zvcm1SZWYuY3VycmVudDtcbiAgICBpZiAocHJldlRyYW5zZm9ybSAmJiAocHJldlRyYW5zZm9ybS5uYW1lICE9PSBuYW1lIHx8ICF0cmFuc2Zvcm0pKSB7XG4gICAgICAgIGN0eC51bnJlZ2lzdGVyVHJhbnNmb3JtKHByZXZUcmFuc2Zvcm0ubmFtZSwgcHJldlRyYW5zZm9ybS5mbik7XG4gICAgICAgIG93blRyYW5zZm9ybVJlZi5jdXJyZW50ID0gbnVsbDtcbiAgICB9XG4gICAgaWYgKG5hbWUgJiYgdHJhbnNmb3JtKSB7XG4gICAgICAgIGN0eC5yZWdpc3RlclRyYW5zZm9ybShuYW1lLCB0cmFuc2Zvcm0pO1xuICAgICAgICBvd25UcmFuc2Zvcm1SZWYuY3VycmVudCA9IHsgbmFtZSwgZm46IHRyYW5zZm9ybSB9O1xuICAgIH1cbiAgICBjb25zdCBwcmV2VmFsdWVUeXBlID0gb3duVmFsdWVUeXBlUmVmLmN1cnJlbnQ7XG4gICAgaWYgKHByZXZWYWx1ZVR5cGUgJiYgKHByZXZWYWx1ZVR5cGUubmFtZSAhPT0gbmFtZSB8fCAhdmFsdWVUeXBlKSkge1xuICAgICAgICBjdHgudW5yZWdpc3RlclZhbHVlVHlwZShwcmV2VmFsdWVUeXBlLm5hbWUsIHByZXZWYWx1ZVR5cGUudmFsdWVUeXBlKTtcbiAgICAgICAgb3duVmFsdWVUeXBlUmVmLmN1cnJlbnQgPSBudWxsO1xuICAgIH1cbiAgICBpZiAobmFtZSAmJiB2YWx1ZVR5cGUpIHtcbiAgICAgICAgY3R4LnJlZ2lzdGVyVmFsdWVUeXBlKG5hbWUsIHZhbHVlVHlwZSk7XG4gICAgICAgIG93blZhbHVlVHlwZVJlZi5jdXJyZW50ID0geyBuYW1lLCB2YWx1ZVR5cGUgfTtcbiAgICB9XG4gICAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICAgICAgLy8gUkUtUkVHSVNURVIgaW4gdGhlIGJvZHk6IFN0cmljdE1vZGUncyBtb3VudOKGkmNsZWFudXDihpJyZS1ydW4gY3ljbGUgYW5kXG4gICAgICAgIC8vIGtleWVkIHJlbW91bnRzIChvbGQgaW5zdGFuY2UncyBjbGVhbnVwIHJ1bnMgQUZURVIgdGhlIG5ldyByZW5kZXJcbiAgICAgICAgLy8gcmVnaXN0ZXJlZCkgYm90aCBlbmQgd2l0aCBhIGNsZWFudXAgaGF2aW5nIGRlbGV0ZWQgdGhlIGVudHJ5IOKAlCB0aGVcbiAgICAgICAgLy8gZWZmZWN0IGJvZHkgbXVzdCByZXN0b3JlIHRoZSBsYXRlc3QgcmVnaXN0cmF0aW9uLlxuICAgICAgICBjb25zdCB0cmFuc2Zvcm1SZWcgPSBvd25UcmFuc2Zvcm1SZWYuY3VycmVudDtcbiAgICAgICAgaWYgKHRyYW5zZm9ybVJlZylcbiAgICAgICAgICAgIGN0eC5yZWdpc3RlclRyYW5zZm9ybSh0cmFuc2Zvcm1SZWcubmFtZSwgdHJhbnNmb3JtUmVnLmZuKTtcbiAgICAgICAgY29uc3QgdmFsdWVUeXBlUmVnID0gb3duVmFsdWVUeXBlUmVmLmN1cnJlbnQ7XG4gICAgICAgIGlmICh2YWx1ZVR5cGVSZWcpXG4gICAgICAgICAgICBjdHgucmVnaXN0ZXJWYWx1ZVR5cGUodmFsdWVUeXBlUmVnLm5hbWUsIHZhbHVlVHlwZVJlZy52YWx1ZVR5cGUpO1xuICAgICAgICByZXR1cm4gKCkgPT4ge1xuICAgICAgICAgICAgY29uc3QgdCA9IG93blRyYW5zZm9ybVJlZi5jdXJyZW50O1xuICAgICAgICAgICAgaWYgKHQpXG4gICAgICAgICAgICAgICAgY3R4LnVucmVnaXN0ZXJUcmFuc2Zvcm0odC5uYW1lLCB0LmZuKTtcbiAgICAgICAgICAgIGNvbnN0IHYgPSBvd25WYWx1ZVR5cGVSZWYuY3VycmVudDtcbiAgICAgICAgICAgIGlmICh2KVxuICAgICAgICAgICAgICAgIGN0eC51bnJlZ2lzdGVyVmFsdWVUeXBlKHYubmFtZSwgdi52YWx1ZVR5cGUpO1xuICAgICAgICB9O1xuICAgIH0sIFtuYW1lLCBjdHgucmVnaXN0ZXJUcmFuc2Zvcm0sIGN0eC51bnJlZ2lzdGVyVHJhbnNmb3JtLCBjdHgucmVnaXN0ZXJWYWx1ZVR5cGUsIGN0eC51bnJlZ2lzdGVyVmFsdWVUeXBlXSk7XG4gICAgaWYgKGhpZGRlbilcbiAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgbGV0IGNvbnRyb2xDaGlsZDtcbiAgICBpZiAoaXNSZWFkb25seSkge1xuICAgICAgICBjb250cm9sQ2hpbGQgPSAoX2pzeChSZWFkb25seUNoaWxkLCB7IG5hbWU6IG5hbWUsIHZhbHVlVHlwZTogdmFsdWVUeXBlLCB2YWx1ZUVudW06IHZhbHVlRW51bSwgY29udmVydFZhbHVlOiBjb252ZXJ0VmFsdWUsIHJlYWRvbmx5UmVuZGVyOiByZWFkb25seVJlbmRlciwgZW1wdHlUZXh0OiBlbXB0eVRleHQgfSkpO1xuICAgIH1cbiAgICBlbHNlIHtcbiAgICAgICAgLy8gSW5qZWN0IGZpcnN0IHNvIHRoZSByZWFsIGZpZWxkIHJlY2VpdmVzIHZhbHVlL29uQ2hhbmdlL29uQmx1cixcbiAgICAgICAgLy8gdGhlbiBvcHRpb25hbGx5IHdyYXAgaW4gQ29udmVydFZhbHVlQ2hpbGQgdG8gb3ZlcnJpZGUgdGhlIGRpc3BsYXllZCB2YWx1ZS5cbiAgICAgICAgY29uc3QgaW5qZWN0ZWQgPSBpbmplY3RGaWVsZChjaGlsZHJlbik7XG4gICAgICAgIGlmIChjb252ZXJ0VmFsdWUgJiYgbmFtZSAmJiBSZWFjdC5pc1ZhbGlkRWxlbWVudChpbmplY3RlZCkpIHtcbiAgICAgICAgICAgIGNvbnRyb2xDaGlsZCA9IChfanN4KENvbnZlcnRWYWx1ZUNoaWxkLCB7IG5hbWU6IG5hbWUsIGNvbnZlcnRWYWx1ZTogY29udmVydFZhbHVlLCB2YWx1ZVByb3BOYW1lOiB2YWx1ZVByb3BOYW1lLCBjaGlsZHJlbjogaW5qZWN0ZWQgfSkpO1xuICAgICAgICB9XG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgY29udHJvbENoaWxkID0gaW5qZWN0ZWQ7XG4gICAgICAgIH1cbiAgICB9XG4gICAgY29uc3QgY2xhc3NlcyA9IGNsYXNzbmFtZXMocHJlZml4Q2xzKTtcbiAgICAvLyBGb3JtLWxldmVsIGxheW91dC5pdGVtR2FwIG92ZXJyaWRlcyB0aGUgc2l6ZS1jbGFzcyBtYXJnaW4gKGlubGluZSBzdHlsZVxuICAgIC8vIHdpbnMpOyBpdGVtR2FwPTAgaXMgbWVhbmluZ2Z1bC5cbiAgICBjb25zdCBpdGVtR2FwID0gKF9hID0gY3R4LmxheW91dCkgPT09IG51bGwgfHwgX2EgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9hLml0ZW1HYXA7XG4gICAgY29uc3QgZ2FwU3R5bGUgPSBpdGVtR2FwICE9PSB1bmRlZmluZWRcbiAgICAgICAgPyB7IG1hcmdpbkJvdHRvbTogdHlwZW9mIGl0ZW1HYXAgPT09ICdudW1iZXInID8gYCR7aXRlbUdhcH1weGAgOiBpdGVtR2FwIH1cbiAgICAgICAgOiB1bmRlZmluZWQ7XG4gICAgY29uc3Qgc2hlbGwgPSAoX2pzeHMoXCJkaXZcIiwgeyBjbGFzc05hbWU6IGNsYXNzZXModW5kZWZpbmVkLCBqb2luQ2xzKGNsYXNzZXMoc2l6ZSksIGNsYXNzTmFtZSkpLCBzdHlsZTogZ2FwU3R5bGUsIGNoaWxkcmVuOiBbbGFiZWwgJiYgKF9qc3hzKFwiZGl2XCIsIHsgY2xhc3NOYW1lOiBjbGFzc2VzKCdsYWJlbC13cmFwcGVyJywgam9pbkNscyhjbGFzc2VzKCdsYWJlbC13cmFwcGVyLXZlcnRpY2FsJyksIGxhYmVsQWxpZ24gJiYgY2xhc3NlcyhgbGFiZWwtd3JhcHBlci0ke2xhYmVsQWxpZ259YCkpKSwgY2hpbGRyZW46IFtfanN4KFR5cG9ncmFwaHlMYWJlbCwgeyBhczogXCJsYWJlbFwiLCBzaXplOiBGT1JNX0xBQkVMX1NJWkVTW3NpemVdLCBjb2xvcjogRk9STV9MQUJFTF9DT0xPUiwgY2xhc3NOYW1lOiBjbGFzc2VzKCdsYWJlbCcpLCBjaGlsZHJlbjogbGFiZWwgfSksIGRlc2NyaXB0aW9uICYmIChfanN4KFR5cG9ncmFwaHlCb2R5LCB7IGFzOiBcImRpdlwiLCBjbGFzc05hbWU6IGNsYXNzZXMoJ2Rlc2NyaXB0aW9uJyksIHNpemU6IEZPUk1fREVTQ1JJUFRJT05fU0laRSwgY29sb3I6IEZPUk1fREVTQ1JJUFRJT05fQ09MT1IsIGNoaWxkcmVuOiBkZXNjcmlwdGlvbiB9KSldIH0pKSwgX2pzeHMoXCJkaXZcIiwgeyBjbGFzc05hbWU6IGNsYXNzZXMoJ2NvbnRyb2wnKSwgY2hpbGRyZW46IFtjb250cm9sQ2hpbGQsIGZpZWxkRXJyb3IgJiYgKF9qc3goVHlwb2dyYXBoeUJvZHksIHsgYXM6IFwiZGl2XCIsIGNsYXNzTmFtZTogY2xhc3NlcygnZXJyb3InKSwgc2l6ZTogRk9STV9FUlJPUl9TSVpFLCBjb2xvcjogRk9STV9FUlJPUl9DT0xPUiwgY2hpbGRyZW46IGZpZWxkRXJyb3IgfSkpLCAhZmllbGRFcnJvciAmJiBmaWVsZFdhcm5pbmcgJiYgKF9qc3goVHlwb2dyYXBoeUJvZHksIHsgYXM6IFwiZGl2XCIsIGNsYXNzTmFtZTogY2xhc3Nlcygnd2FybmluZycpLCBzaXplOiBGT1JNX1dBUk5JTkdfU0laRSwgY29sb3I6IEZPUk1fV0FSTklOR19DT0xPUiwgY2hpbGRyZW46IGZpZWxkV2FybmluZyB9KSksICFmaWVsZEVycm9yICYmICFmaWVsZFdhcm5pbmcgJiYgZmVlZGJhY2sgJiYgKF9qc3goVHlwb2dyYXBoeUJvZHksIHsgYXM6IFwiZGl2XCIsIGNsYXNzTmFtZTogY2xhc3NlcygnZmVlZGJhY2snKSwgc2l6ZTogRk9STV9GRUVEQkFDS19TSVpFLCBjb2xvcjogRk9STV9GRUVEQkFDS19DT0xPUiwgY2hpbGRyZW46IGZlZWRiYWNrIH0pKV0gfSldIH0pKTtcbiAgICBpZiAoY3R4LmdyaWQpIHtcbiAgICAgICAgY29uc3QgbWVyZ2VkID0gT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LCBjdHguY29sUHJvcHMpLCBjb2xQcm9wcyk7XG4gICAgICAgIGNvbnN0IHsgc3BhbiA9IERFRkFVTFRfQ09MX1NQQU4sIHNtLCBtZCwgbGcgfSA9IG1lcmdlZDtcbiAgICAgICAgcmV0dXJuIF9qc3goQ29sLCB7IHNwYW46IHNwYW4sIHNtOiBzbSwgbWQ6IG1kLCBsZzogbGcsIGNoaWxkcmVuOiBzaGVsbCB9KTtcbiAgICB9XG4gICAgcmV0dXJuIHNoZWxsO1xufTtcblByb0Zvcm1JdGVtQmFzZS5kaXNwbGF5TmFtZSA9ICdQcm9Gb3JtSXRlbSc7XG5leHBvcnQgY29uc3QgUHJvRm9ybUl0ZW0gPSBtZW1vKFByb0Zvcm1JdGVtQmFzZSk7XG5leHBvcnQgZGVmYXVsdCBQcm9Gb3JtSXRlbTsiLG51bGxdLCJzb3VyY2VSb290IjoiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjIn0=
|
|
@@ -4,12 +4,11 @@ import _slicedToArray from "@babel/runtime/helpers/esm/slicedToArray";
|
|
|
4
4
|
import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
|
|
5
5
|
import { memo, useEffect, useMemo, useRef } from 'react';
|
|
6
6
|
import useMemoizedFn from '@1money/hooks/useMemoizedFn';
|
|
7
|
-
import useSafeState from '@1money/hooks/useSafeState';
|
|
8
7
|
import { default as classnames } from '../../utils/classnames';
|
|
9
8
|
import { Button } from '../Button';
|
|
10
9
|
import { TypographyLabel, TypographyBody } from '../Typography';
|
|
11
|
-
import { FormListContext,
|
|
12
|
-
import { useStoreSelector } from './core/formStore';
|
|
10
|
+
import { FormListContext, useProFormStable, useProFormStore } from './context';
|
|
11
|
+
import { useStoreSelector, shallowEqualArrays } from './core/formStore';
|
|
13
12
|
import { CSS_PREFIX, DEFAULT_TEXT, PROFORM_LIST_LABEL_SIZE, PROFORM_LIST_LABEL_COLOR } from './constants';
|
|
14
13
|
import { extractButtonProps, getNestedValue } from './utils';
|
|
15
14
|
var classes = classnames("".concat(CSS_PREFIX, "-list"));
|
|
@@ -20,6 +19,51 @@ var generateKey = function generateKey() {
|
|
|
20
19
|
// Stable empty result for the no-value case — a fresh [] per selector run
|
|
21
20
|
// would never compare equal and loop the subscription.
|
|
22
21
|
var EMPTY_LIST = [];
|
|
22
|
+
// Field meta (errors/warnings/touched/validating) is stored FLAT, keyed by
|
|
23
|
+
// the positional path (`items.1.title`). Row operations shift the VALUES but
|
|
24
|
+
// not those keys — remap them in the same handler so every row keeps its own
|
|
25
|
+
// meta. `mapIndex` returns the new index for an old one, or null to drop it.
|
|
26
|
+
var LIST_META_KEYS = ['errors', 'warnings', 'touched', 'validating'];
|
|
27
|
+
function remapListMeta(store, listName, mapIndex) {
|
|
28
|
+
var state = store.getState();
|
|
29
|
+
var prefix = "".concat(listName, ".");
|
|
30
|
+
var patch = {};
|
|
31
|
+
for (var _i = 0, _LIST_META_KEYS = LIST_META_KEYS; _i < _LIST_META_KEYS.length; _i++) {
|
|
32
|
+
var metaKey = _LIST_META_KEYS[_i];
|
|
33
|
+
var source = state[metaKey];
|
|
34
|
+
var changed = false;
|
|
35
|
+
var next = {};
|
|
36
|
+
for (var _i2 = 0, _Object$keys = Object.keys(source); _i2 < _Object$keys.length; _i2++) {
|
|
37
|
+
var key = _Object$keys[_i2];
|
|
38
|
+
if (!key.startsWith(prefix)) {
|
|
39
|
+
next[key] = source[key];
|
|
40
|
+
continue;
|
|
41
|
+
}
|
|
42
|
+
var rest = key.slice(prefix.length);
|
|
43
|
+
var dotAt = rest.indexOf('.');
|
|
44
|
+
var indexStr = dotAt === -1 ? rest : rest.slice(0, dotAt);
|
|
45
|
+
if (!/^\d+$/.test(indexStr)) {
|
|
46
|
+
next[key] = source[key];
|
|
47
|
+
continue;
|
|
48
|
+
}
|
|
49
|
+
var newIndex = mapIndex(Number(indexStr));
|
|
50
|
+
if (newIndex === null) {
|
|
51
|
+
changed = true; // row removed — drop its meta
|
|
52
|
+
continue;
|
|
53
|
+
}
|
|
54
|
+
if (newIndex === Number(indexStr)) {
|
|
55
|
+
next[key] = source[key];
|
|
56
|
+
continue;
|
|
57
|
+
}
|
|
58
|
+
next["".concat(prefix).concat(newIndex).concat(dotAt === -1 ? '' : rest.slice(dotAt))] = source[key];
|
|
59
|
+
changed = true;
|
|
60
|
+
}
|
|
61
|
+
if (changed) {
|
|
62
|
+
patch[metaKey] = next;
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
if (Object.keys(patch).length > 0) store.setState(patch);
|
|
66
|
+
}
|
|
23
67
|
// Row-level memo boundary: setNestedValue clones ONLY the edited row, so
|
|
24
68
|
// untouched rows keep their record identity and bail out here while a
|
|
25
69
|
// sibling row is being edited.
|
|
@@ -83,7 +127,7 @@ ListRowActionsBase.displayName = 'ProFormListRowActions';
|
|
|
83
127
|
var ListRowActions = /*#__PURE__*/memo(ListRowActionsBase);
|
|
84
128
|
var ProFormListBase = function ProFormListBase(props) {
|
|
85
129
|
var _a, _b;
|
|
86
|
-
var
|
|
130
|
+
var fullName = props.name,
|
|
87
131
|
label = props.label,
|
|
88
132
|
min = props.min,
|
|
89
133
|
max = props.max,
|
|
@@ -99,24 +143,30 @@ var ProFormListBase = function ProFormListBase(props) {
|
|
|
99
143
|
children = props.children,
|
|
100
144
|
onAfterAdd = props.onAfterAdd,
|
|
101
145
|
onAfterRemove = props.onAfterRemove;
|
|
102
|
-
//
|
|
103
|
-
|
|
104
|
-
|
|
146
|
+
// List names are ABSOLUTE paths, like every other field name. A nested
|
|
147
|
+
// list is written with the full row path (`name={`${field.name}.tags`}`),
|
|
148
|
+
// exactly like row fields — the bare parent list name carries no row
|
|
149
|
+
// index, so auto-prefixing with it could never address a row's own
|
|
150
|
+
// sub-list (it would resolve `parent.tags` instead of `parent.0.tags`).
|
|
105
151
|
var _useProFormStable = useProFormStable(),
|
|
106
|
-
setFieldValue = _useProFormStable.setFieldValue
|
|
152
|
+
setFieldValue = _useProFormStable.setFieldValue,
|
|
153
|
+
registerField = _useProFormStable.registerField,
|
|
154
|
+
unregisterField = _useProFormStable.unregisterField,
|
|
155
|
+
retainField = _useProFormStable.retainField,
|
|
156
|
+
releaseField = _useProFormStable.releaseField,
|
|
157
|
+
validateField = _useProFormStable.validateField;
|
|
107
158
|
var store = useProFormStore();
|
|
108
159
|
var initialApplied = useRef(false);
|
|
109
160
|
var keysRef = useRef([]);
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
});
|
|
161
|
+
// Subscribe ONLY to this list's own value and error: typing elsewhere in
|
|
162
|
+
// the form leaves both untouched and this component does not render.
|
|
163
|
+
var _useStoreSelector = useStoreSelector(store, function (state) {
|
|
164
|
+
var raw = fullName.includes('.') ? getNestedValue(state.values, fullName) : state.values[fullName];
|
|
165
|
+
return [Array.isArray(raw) ? raw : EMPTY_LIST, state.errors[fullName]];
|
|
166
|
+
}, shallowEqualArrays),
|
|
167
|
+
_useStoreSelector2 = _slicedToArray(_useStoreSelector, 2),
|
|
168
|
+
list = _useStoreSelector2[0],
|
|
169
|
+
listError = _useStoreSelector2[1];
|
|
120
170
|
// Sync keys with list length
|
|
121
171
|
while (keysRef.current.length < list.length) {
|
|
122
172
|
keysRef.current.push(generateKey());
|
|
@@ -124,33 +174,45 @@ var ProFormListBase = function ProFormListBase(props) {
|
|
|
124
174
|
if (keysRef.current.length > list.length) {
|
|
125
175
|
keysRef.current = keysRef.current.slice(0, list.length);
|
|
126
176
|
}
|
|
127
|
-
//
|
|
177
|
+
// initialValue is MOUNT-ONLY (like form initialValues): the decision is
|
|
178
|
+
// made exactly once. Without the unconditional flag, a list seeded by form
|
|
179
|
+
// initialValues would re-apply initialValue when the user empties it.
|
|
128
180
|
useEffect(function () {
|
|
129
181
|
if (initialApplied.current) return;
|
|
182
|
+
initialApplied.current = true;
|
|
130
183
|
if (list.length !== 0) return;
|
|
131
184
|
if (!Array.isArray(initialValue) || initialValue.length === 0) return;
|
|
132
|
-
initialApplied.current = true;
|
|
133
185
|
setFieldValue(fullName, _toConsumableArray(initialValue));
|
|
134
186
|
keysRef.current = initialValue.map(function () {
|
|
135
187
|
return generateKey();
|
|
136
188
|
});
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
useEffect(function () {
|
|
140
|
-
if (required && list.length > 0 && listError) {
|
|
141
|
-
setListError(null);
|
|
142
|
-
}
|
|
143
|
-
}, [list.length, required, listError, setListError]);
|
|
189
|
+
// Mount-only by design.
|
|
190
|
+
}, []);
|
|
144
191
|
var canAdd = max == null || list.length < max;
|
|
145
192
|
var canRemove = min == null || list.length > min;
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
193
|
+
// `required` participates in REAL validation: the rule is registered with
|
|
194
|
+
// the form (so submit blocks on an empty list) and re-run after every
|
|
195
|
+
// structural mutation below.
|
|
196
|
+
var listRules = useMemo(function () {
|
|
197
|
+
return required ? [{
|
|
198
|
+
required: true,
|
|
199
|
+
message: requiredMessage
|
|
200
|
+
}] : [];
|
|
201
|
+
}, [required, requiredMessage]);
|
|
202
|
+
// Mount-counted lifetime (see useFormItem): the rules are removed only when
|
|
203
|
+
// the LAST same-name holder unmounts. Declared BEFORE the register effect so
|
|
204
|
+
// the registration below is classified as instance-owned.
|
|
205
|
+
useEffect(function () {
|
|
206
|
+
retainField(fullName);
|
|
207
|
+
return function () {
|
|
208
|
+
releaseField(fullName);
|
|
209
|
+
};
|
|
210
|
+
}, [fullName]);
|
|
211
|
+
useEffect(function () {
|
|
212
|
+
if (listRules.length > 0) registerField(fullName, listRules);else unregisterField(fullName);
|
|
213
|
+
});
|
|
214
|
+
var validateListValue = useMemoizedFn(function (nextList) {
|
|
215
|
+
if (listRules.length > 0) validateField(fullName, listRules, nextList);
|
|
154
216
|
});
|
|
155
217
|
var add = useMemoizedFn(function (defaultValue, index) {
|
|
156
218
|
if (!canAdd) return;
|
|
@@ -162,6 +224,10 @@ var ProFormListBase = function ProFormListBase(props) {
|
|
|
162
224
|
newKeys.splice(insertIndex, 0, generateKey());
|
|
163
225
|
keysRef.current = newKeys;
|
|
164
226
|
setFieldValue(fullName, newList);
|
|
227
|
+
remapListMeta(store, fullName, function (i) {
|
|
228
|
+
return i >= insertIndex ? i + 1 : i;
|
|
229
|
+
});
|
|
230
|
+
validateListValue(newList);
|
|
165
231
|
onAfterAdd === null || onAfterAdd === void 0 ? void 0 : onAfterAdd(value, insertIndex);
|
|
166
232
|
});
|
|
167
233
|
var removeAt = useMemoizedFn(function (index) {
|
|
@@ -172,11 +238,12 @@ var ProFormListBase = function ProFormListBase(props) {
|
|
|
172
238
|
newKeys.splice(index, 1);
|
|
173
239
|
keysRef.current = newKeys;
|
|
174
240
|
setFieldValue(fullName, newList);
|
|
241
|
+
remapListMeta(store, fullName, function (i) {
|
|
242
|
+
if (i === index) return null;
|
|
243
|
+
return i > index ? i - 1 : i;
|
|
244
|
+
});
|
|
245
|
+
validateListValue(newList);
|
|
175
246
|
onAfterRemove === null || onAfterRemove === void 0 ? void 0 : onAfterRemove(index);
|
|
176
|
-
// Validate after remove
|
|
177
|
-
if (required && newList.length === 0) {
|
|
178
|
-
setListError(requiredMessage);
|
|
179
|
-
}
|
|
180
247
|
});
|
|
181
248
|
var copy = useMemoizedFn(function (index) {
|
|
182
249
|
if (!canAdd) return;
|
|
@@ -198,6 +265,11 @@ var ProFormListBase = function ProFormListBase(props) {
|
|
|
198
265
|
newKeys.splice(to, 0, movedKey);
|
|
199
266
|
keysRef.current = newKeys;
|
|
200
267
|
setFieldValue(fullName, newList);
|
|
268
|
+
remapListMeta(store, fullName, function (i) {
|
|
269
|
+
if (i === from) return to;
|
|
270
|
+
if (from < to) return i > from && i <= to ? i - 1 : i;
|
|
271
|
+
return i >= to && i < from ? i + 1 : i;
|
|
272
|
+
});
|
|
201
273
|
});
|
|
202
274
|
var getList = useMemoizedFn(function () {
|
|
203
275
|
return list;
|
|
@@ -302,4 +374,4 @@ var ProFormListBase = function ProFormListBase(props) {
|
|
|
302
374
|
ProFormListBase.displayName = 'ProFormList';
|
|
303
375
|
export var ProFormList = /*#__PURE__*/memo(ProFormListBase);
|
|
304
376
|
export default ProFormList;
|
|
305
|
-
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImNvbXBvbmVudHMvUHJvRm9ybS9Qcm9Gb3JtTGlzdC5qcyIsImNvbXBvbmVudHMvc3JjL2NvbXBvbmVudHMvUHJvRm9ybS9Qcm9Gb3JtTGlzdC50c3giXSwibmFtZXMiOlsianN4IiwiX2pzeCIsIkZyYWdtZW50IiwiX0ZyYWdtZW50IiwianN4cyIsIl9qc3hzIiwibWVtbyIsInVzZUVmZmVjdCIsInVzZU1lbW8iLCJ1c2VSZWYiLCJ1c2VNZW1vaXplZEZuIiwidXNlU2FmZVN0YXRlIiwiZGVmYXVsdCIsImNsYXNzbmFtZXMiLCJCdXR0b24iLCJUeXBvZ3JhcGh5TGFiZWwiLCJUeXBvZ3JhcGh5Qm9keSIsIkZvcm1MaXN0Q29udGV4dCIsInVzZUZvcm1MaXN0Q29udGV4dCIsInVzZVByb0Zvcm1TdGFibGUiLCJ1c2VQcm9Gb3JtU3RvcmUiLCJ1c2VTdG9yZVNlbGVjdG9yIiwiQ1NTX1BSRUZJWCIsIkRFRkFVTFRfVEVYVCIsIlBST0ZPUk1fTElTVF9MQUJFTF9TSVpFIiwiUFJPRk9STV9MSVNUX0xBQkVMX0NPTE9SIiwiZXh0cmFjdEJ1dHRvblByb3BzIiwiZ2V0TmVzdGVkVmFsdWUiLCJjbGFzc2VzIiwiY29uY2F0IiwibGlzdEtleUNvdW50ZXIiLCJnZW5lcmF0ZUtleSIsIkVNUFRZX0xJU1QiLCJMaXN0Um93QWN0aW9uc0Jhc2UiLCJfcmVmIiwiaW5kZXgiLCJyZWNvcmQiLCJjYW5BZGQiLCJjYW5SZW1vdmUiLCJjb3B5SWNvblByb3BzIiwiZGVsZXRlSWNvblByb3BzIiwiYWN0aW9uIiwiYWN0aW9uUmVuZGVyIiwiaXRlbVJlbmRlciIsIm9uQ29weSIsIm9uUmVtb3ZlIiwiY29weUJ0blByb3BzIiwiZGVsZXRlQnRuUHJvcHMiLCJkZWZhdWx0RG9tIiwiY29weSIsIk9iamVjdCIsImFzc2lnbiIsInR5cGUiLCJjb2xvciIsInNpemUiLCJyZXN0Iiwib25DbGljayIsImRpc2FibGVkIiwiY2hpbGRyZW4iLCJyZW5kZXJlZEFjdGlvbnMiLCJmaWx0ZXIiLCJCb29sZWFuIiwicm93Tm9kZSIsImNsYXNzTmFtZSIsImxpc3REb20iLCJkaXNwbGF5TmFtZSIsIkxpc3RSb3dBY3Rpb25zIiwiUHJvRm9ybUxpc3RCYXNlIiwicHJvcHMiLCJfYSIsIl9iIiwicmF3TmFtZSIsIm5hbWUiLCJsYWJlbCIsIm1pbiIsIm1heCIsInJlcXVpcmVkIiwiX3Byb3BzJHJlcXVpcmVkTWVzc2FnIiwicmVxdWlyZWRNZXNzYWdlIiwiaW5pdGlhbFZhbHVlIiwiY3JlYXRvckJ1dHRvblByb3BzIiwib25BZnRlckFkZCIsIm9uQWZ0ZXJSZW1vdmUiLCJwYXJlbnRDdHgiLCJmdWxsTmFtZSIsImxpc3ROYW1lIiwiX3VzZVByb0Zvcm1TdGFibGUiLCJzZXRGaWVsZFZhbHVlIiwic3RvcmUiLCJpbml0aWFsQXBwbGllZCIsImtleXNSZWYiLCJfdXNlU2FmZVN0YXRlIiwiX3VzZVNhZmVTdGF0ZTIiLCJfc2xpY2VkVG9BcnJheSIsImxpc3RFcnJvciIsInNldExpc3RFcnJvciIsImxpc3QiLCJzdGF0ZSIsInJhdyIsImluY2x1ZGVzIiwidmFsdWVzIiwiQXJyYXkiLCJpc0FycmF5IiwiY3VycmVudCIsImxlbmd0aCIsInB1c2giLCJzbGljZSIsIl90b0NvbnN1bWFibGVBcnJheSIsIm1hcCIsInZhbGlkYXRlTGlzdCIsImFkZCIsImRlZmF1bHRWYWx1ZSIsInZhbHVlIiwibmV3TGlzdCIsIm5ld0tleXMiLCJpbnNlcnRJbmRleCIsInNwbGljZSIsInJlbW92ZUF0IiwibW92ZSIsImZyb20iLCJ0byIsIl9uZXdMaXN0JHNwbGljZSIsIl9uZXdMaXN0JHNwbGljZTIiLCJtb3ZlZEl0ZW0iLCJfbmV3S2V5cyRzcGxpY2UiLCJfbmV3S2V5cyRzcGxpY2UyIiwibW92ZWRLZXkiLCJnZXRMaXN0IiwicmVtb3ZlIiwiZmllbGRPYmpDYWNoZSIsIk1hcCIsIm1hcHBlZEZpZWxkcyIsIm5leHRDYWNoZSIsImZpZWxkcyIsIl9pdGVtIiwia2V5IiwiZmllbGROYW1lIiwiY2FjaGVkIiwiZ2V0IiwiZmllbGQiLCJzZXQiLCJhY3Rpb25Sb3dzIiwiaGFzQ3JlYXRvciIsImNyZWF0b3JDb25maWciLCJfdHlwZW9mIiwiY3JlYXRvclBvc2l0aW9uIiwicG9zaXRpb24iLCJjcmVhdG9yVGV4dCIsInRleHQiLCJjcmVhdG9yQnV0dG9uIiwiZm9ybUxpc3RDb250ZXh0VmFsdWUiLCJQcm92aWRlciIsImFzIiwiUHJvRm9ybUxpc3QiXSwibWFwcGluZ3MiOiI7OztBQUFBLFNBQVNBLEdBQUcsSUFBSUMsSUFBSSxFQUFFQyxRQUFRLElBQUlDLFNBQVMsRUFBRUMsSUFBSSxJQUFJQyxLQUFLLFFBQVEsbUJBQW1CO0FDQXJGLFNBQVNDLElBQUksRUFBRUMsU0FBUyxFQUFFQyxPQUFPLEVBQUVDLE1BQU0sUUFBUSxPQUFPO0FBRXhELE9BQU9DLGFBQWEsTUFBTSw2QkFBNkI7QUFDdkQsT0FBT0MsWUFBWSxNQUFNLDRCQUE0QjtBQUNyRCxTQUFTQyxPQUFPLElBQUlDLFVBQVUsUUFBUSx3QkFBd0I7QUFDOUQsU0FBU0MsTUFBTSxRQUFRLFdBQVc7QUFDbEMsU0FBU0MsZUFBZSxFQUFFQyxjQUFjLFFBQVEsZUFBZTtBQUMvRCxTQUFTQyxlQUFlLEVBQUVDLGtCQUFrQixFQUFFQyxnQkFBZ0IsRUFBRUMsZUFBZSxRQUFRLFdBQVc7QUFDbEcsU0FBU0MsZ0JBQWdCLFFBQVEsa0JBQWtCO0FBQ25ELFNBQVNDLFVBQVUsRUFBRUMsWUFBWSxFQUFFQyx1QkFBdUIsRUFBRUMsd0JBQXdCLFFBQVEsYUFBYTtBQUN6RyxTQUFTQyxrQkFBa0IsRUFBRUMsY0FBYyxRQUFRLFNBQVM7QUFHNUQsSUFBTUMsT0FBTyxHQUFHZixVQUFVLElBQUFnQixNQUFBLENBQUlQLFVBQVUsVUFBTyxDQUFDO0FBRWhELElBQUlRLGNBQWMsR0FBRyxDQUFDO0FBQ3RCLElBQU1DLFdBQVcsR0FBRyxTQUFkQSxXQUFXQSxDQUFBO0VBQUEsZUFBQUYsTUFBQSxDQUF5QixFQUFFQyxjQUFjO0FBQUEsQ0FBRTtBQUU1RDtBQUNBO0FBQ0EsSUFBTUUsVUFB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QUNjLGVBQWUsRUFBQTtRQUFDZ0QsU0FBUyxFQUFFbkMsT0FBTyxDQUFDLE9BQU8sQ0FBQztRQUFFMEIsSUFBSSxFQUFFOUIsdUJBQXVCO1FBQUU2QixLQUFLLEVBQUU1Qix3QkFBd0I7UUFBQWlDLFFBQUEsRUFBR2U7TUFBSyxDQUFBLENBQW1CLEVBQ2hKd0UsZUFBZSxLQUFLLEtBQUssSUFBSUksYUFBYSxFQUMzQ3BKLElBQUEsQ0FBQSxLQUFBLEVBQUE7UUFBSzhELFNBQVMsRUFBRW5DLE9BQU8sQ0FBQyxTQUFTLENBQUM7UUFBQThCLFFBQUEsRUFBR007TUFBTyxDQUFBLENBQU8sRUFDbkQvRCxJQUFBLENBQUEsS0FBQSxFQUFBO1FBQUs4RCxTQUFTLEVBQUVuQyxPQUFPLENBQUMsU0FBUyxDQUFDO1FBQUE4QixRQUFBLEVBQUdtRjtNQUFVLENBQUEsQ0FBTyxFQUNyREksZUFBZSxLQUFLLFFBQVEsSUFBSUksYUFBYSxFQUM3Q3ZELFNBQVMsSUFBSTdGLElBQUEsQ0FBQ2UsY0FBYyxFQUFBO1FBQUN3SSxFQUFFLEVBQUMsS0FBSztRQUFDbEcsSUFBSSxFQUFDLElBQUk7UUFBQ0QsS0FBSyxFQUFDLFFBQVE7UUFBQUssUUFBQSxFQUFFb0M7TUFBUyxDQUFBLENBQWtCO0lBQUEsQ0FBQTtFQUN4RixDQUFBLENBQ21CO0FBRS9CLENBQUM7QUFFRDNCLGVBQWUsQ0FBQ0YsV0FBVyxHQUFHLGFBQWE7QUFFM0MsT0FBTyxJQUFNd0YsV0FBVyxnQkFBR25KLElBQUksQ0FBQzZELGVBQWUsQ0FBQztBQUVoRCxlQUFlc0YsV0FBVyIsImZpbGUiOiJjb21wb25lbnRzL1Byb0Zvcm0vUHJvRm9ybUxpc3QuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBqc3ggYXMgX2pzeCwgRnJhZ21lbnQgYXMgX0ZyYWdtZW50LCBqc3hzIGFzIF9qc3hzIH0gZnJvbSBcInJlYWN0L2pzeC1ydW50aW1lXCI7XG5pbXBvcnQgeyBtZW1vLCB1c2VFZmZlY3QsIHVzZU1lbW8sIHVzZVJlZiB9IGZyb20gJ3JlYWN0JztcbmltcG9ydCB1c2VNZW1vaXplZEZuIGZyb20gJ0AxbW9uZXkvaG9va3MvdXNlTWVtb2l6ZWRGbic7XG5pbXBvcnQgdXNlU2FmZVN0YXRlIGZyb20gJ0AxbW9uZXkvaG9va3MvdXNlU2FmZVN0YXRlJztcbmltcG9ydCB7IGRlZmF1bHQgYXMgY2xhc3NuYW1lcyB9IGZyb20gJy4uLy4uL3V0aWxzL2NsYXNzbmFtZXMnO1xuaW1wb3J0IHsgQnV0dG9uIH0gZnJvbSAnLi4vQnV0dG9uJztcbmltcG9ydCB7IFR5cG9ncmFwaHlMYWJlbCwgVHlwb2dyYXBoeUJvZHkgfSBmcm9tICcuLi9UeXBvZ3JhcGh5JztcbmltcG9ydCB7IEZvcm1MaXN0Q29udGV4dCwgdXNlRm9ybUxpc3RDb250ZXh0LCB1c2VQcm9Gb3JtU3RhYmxlLCB1c2VQcm9Gb3JtU3RvcmUgfSBmcm9tICcuL2NvbnRleHQnO1xuaW1wb3J0IHsgdXNlU3RvcmVTZWxlY3RvciB9IGZyb20gJy4vY29yZS9mb3JtU3RvcmUnO1xuaW1wb3J0IHsgQ1NTX1BSRUZJWCwgREVGQVVMVF9URVhULCBQUk9GT1JNX0xJU1RfTEFCRUxfU0laRSwgUFJPRk9STV9MSVNUX0xBQkVMX0NPTE9SIH0gZnJvbSAnLi9jb25zdGFudHMnO1xuaW1wb3J0IHsgZXh0cmFjdEJ1dHRvblByb3BzLCBnZXROZXN0ZWRWYWx1ZSB9IGZyb20gJy4vdXRpbHMnO1xuY29uc3QgY2xhc3NlcyA9IGNsYXNzbmFtZXMoYCR7Q1NTX1BSRUZJWH0tbGlzdGApO1xubGV0IGxpc3RLZXlDb3VudGVyID0gMDtcbmNvbnN0IGdlbmVyYXRlS2V5ID0gKCkgPT4gYGxpc3RfJHsrK2xpc3RLZXlDb3VudGVyfWA7XG4vLyBTdGFibGUgZW1wdHkgcmVzdWx0IGZvciB0aGUgbm8tdmFsdWUgY2FzZSDigJQgYSBmcmVzaCBbXSBwZXIgc2VsZWN0b3IgcnVuXG4vLyB3b3VsZCBuZXZlciBjb21wYXJlIGVxdWFsIGFuZCBsb29wIHRoZSBzdWJzY3JpcHRpb24uXG5jb25zdCBFTVBUWV9MSVNUID0gW107XG4vLyBSb3ctbGV2ZWwgbWVtbyBib3VuZGFyeTogc2V0TmVzdGVkVmFsdWUgY2xvbmVzIE9OTFkgdGhlIGVkaXRlZCByb3csIHNvXG4vLyB1bnRvdWNoZWQgcm93cyBrZWVwIHRoZWlyIHJlY29yZCBpZGVudGl0eSBhbmQgYmFpbCBvdXQgaGVyZSB3aGlsZSBhXG4vLyBzaWJsaW5nIHJvdyBpcyBiZWluZyBlZGl0ZWQuXG5jb25zdCBMaXN0Um93QWN0aW9uc0Jhc2UgPSAoeyBpbmRleCwgcmVjb3JkLCBjYW5BZGQsIGNhblJlbW92ZSwgY29weUljb25Qcm9wcywgZGVsZXRlSWNvblByb3BzLCBhY3Rpb24sIGFjdGlvblJlbmRlciwgaXRlbVJlbmRlciwgb25Db3B5LCBvblJlbW92ZSwgfSkgPT4ge1xuICAgIGNvbnN0IGNvcHlCdG5Qcm9wcyA9IGV4dHJhY3RCdXR0b25Qcm9wcyhjb3B5SWNvblByb3BzKTtcbiAgICBjb25zdCBkZWxldGVCdG5Qcm9wcyA9IGV4dHJhY3RCdXR0b25Qcm9wcyhkZWxldGVJY29uUHJvcHMpO1xuICAgIGNvbnN0IGRlZmF1bHREb20gPSB7XG4gICAgICAgIGNvcHk6IGNvcHlJY29uUHJvcHMgIT09IGZhbHNlID8gKF9qc3goQnV0dG9uLCBPYmplY3QuYXNzaWduKHsgdHlwZTogXCJidXR0b25cIiwgY29sb3I6IFwic2Vjb25kYXJ5XCIsIHNpemU6IFwic21hbGxcIiB9LCBjb3B5QnRuUHJvcHMucmVzdCwgeyBvbkNsaWNrOiAoKSA9PiBvbkNvcHkoaW5kZXgpLCBkaXNhYmxlZDogIWNhbkFkZCB8fCBjb3B5QnRuUHJvcHMuZGlzYWJsZWQsIGNoaWxkcmVuOiBERUZBVUxUX1RFWFQuY29weSB9KSwgYGNvcHktJHtpbmRleH1gKSkgOiBudWxsLFxuICAgICAgICBkZWxldGU6IGRlbGV0ZUljb25Qcm9wcyAhPT0gZmFsc2UgPyAoX2pzeChCdXR0b24sIE9iamVjdC5hc3NpZ24oeyB0eXBlOiBcImJ1dHRvblwiLCBjb2xvcjogXCJzZWNvbmRhcnlcIiwgc2l6ZTogXCJzbWFsbFwiIH0sIGRlbGV0ZUJ0blByb3BzLnJlc3QsIHsgb25DbGljazogKCkgPT4gb25SZW1vdmUoaW5kZXgpLCBkaXNhYmxlZDogIWNhblJlbW92ZSB8fCBkZWxldGVCdG5Qcm9wcy5kaXNhYmxlZCwgY2hpbGRyZW46IERFRkFVTFRfVEVYVC5kZWxldGUgfSksIGBkZWxldGUtJHtpbmRleH1gKSkgOiBudWxsLFxuICAgIH07XG4gICAgY29uc3QgcmVuZGVyZWRBY3Rpb25zID0gYWN0aW9uUmVuZGVyXG4gICAgICAgID8gYWN0aW9uUmVuZGVyKHsgaW5kZXgsIHJlY29yZCB9LCBhY3Rpb24sIGRlZmF1bHREb20pXG4gICAgICAgIDogW2RlZmF1bHREb20uY29weSwgZGVmYXVsdERvbS5kZWxldGVdLmZpbHRlcihCb29sZWFuKTtcbiAgICBjb25zdCByb3dOb2RlID0gKF9qc3goXCJkaXZcIiwgeyBjbGFzc05hbWU6IGNsYXNzZXMoJ3Jvdy1hY3Rpb25zJyksIGNoaWxkcmVuOiByZW5kZXJlZEFjdGlvbnMgfSkpO1xuICAgIGlmIChpdGVtUmVuZGVyKSB7XG4gICAgICAgIHJldHVybiBfanN4KF9GcmFnbWVudCwgeyBjaGlsZHJlbjogaXRlbVJlbmRlcih7IGxpc3REb206IHJvd05vZGUsIGFjdGlvbiB9KSB9KTtcbiAgICB9XG4gICAgcmV0dXJuIHJvd05vZGU7XG59O1xuTGlzdFJvd0FjdGlvbnNCYXNlLmRpc3BsYXlOYW1lID0gJ1Byb0Zvcm1MaXN0Um93QWN0aW9ucyc7XG5jb25zdCBMaXN0Um93QWN0aW9ucyA9IG1lbW8oTGlzdFJvd0FjdGlvbnNCYXNlKTtcbmNvbnN0IFByb0Zvcm1MaXN0QmFzZSA9IChwcm9wcykgPT4ge1xuICAgIHZhciBfYSwgX2I7XG4gICAgY29uc3QgeyBuYW1lOiByYXdOYW1lLCBsYWJlbCwgbWluLCBtYXgsIHJlcXVpcmVkLCByZXF1aXJlZE1lc3NhZ2UgPSAnVGhpcyBsaXN0IGNhbm5vdCBiZSBlbXB0eScsIGluaXRpYWxWYWx1ZSwgY29weUljb25Qcm9wcywgZGVsZXRlSWNvblByb3BzLCBjcmVhdG9yQnV0dG9uUHJvcHMsIGl0ZW1SZW5kZXIsIGFjdGlvblJlbmRlciwgY2hpbGRyZW4sIG9uQWZ0ZXJBZGQsIG9uQWZ0ZXJSZW1vdmUsIH0gPSBwcm9wcztcbiAgICAvLyDilIDilIAgTmVzdGVkIGxpc3Q6IHByZXBlbmQgcGFyZW50IGxpc3QgbmFtZSDilIDilIBcbiAgICBjb25zdCBwYXJlbnRDdHggPSB1c2VGb3JtTGlzdENvbnRleHQoKTtcbiAgICBjb25zdCBmdWxsTmFtZSA9IHBhcmVudEN0eC5saXN0TmFtZSA/IGAke3BhcmVudEN0eC5saXN0TmFtZX0uJHtyYXdOYW1lfWAgOiByYXdOYW1lO1xuICAgIGNvbnN0IHsgc2V0RmllbGRWYWx1ZSB9ID0gdXNlUHJvRm9ybVN0YWJsZSgpO1xuICAgIGNvbnN0IHN0b3JlID0gdXNlUHJvRm9ybVN0b3JlKCk7XG4gICAgY29uc3QgaW5pdGlhbEFwcGxpZWQgPSB1c2VSZWYoZmFsc2UpO1xuICAgIGNvbnN0IGtleXNSZWYgPSB1c2VSZWYoW10pO1xuICAgIGNvbnN0IFtsaXN0RXJyb3IsIHNldExpc3RFcnJvcl0gPSB1c2VTYWZlU3RhdGUobnVsbCk7XG4gICAgLy8gU3Vic2NyaWJlIE9OTFkgdG8gdGhpcyBsaXN0J3Mgb3duIHZhbHVlOiB0eXBpbmcgZWxzZXdoZXJlIGluIHRoZSBmb3JtXG4gICAgLy8gbGVhdmVzIHRoZSBhcnJheSBpZGVudGl0eSB1bnRvdWNoZWQgYW5kIHRoaXMgY29tcG9uZW50IGRvZXMgbm90IHJlbmRlci5cbiAgICBjb25zdCBsaXN0ID0gdXNlU3RvcmVTZWxlY3RvcihzdG9yZSwgKHN0YXRlKSA9PiB7XG4gICAgICAgIGNvbnN0IHJhdyA9IGZ1bGxOYW1lLmluY2x1ZGVzKCcuJylcbiAgICAgICAgICAgID8gZ2V0TmVzdGVkVmFsdWUoc3RhdGUudmFsdWVzLCBmdWxsTmFtZSlcbiAgICAgICAgICAgIDogc3RhdGUudmFsdWVzW2Z1bGxOYW1lXTtcbiAgICAgICAgcmV0dXJuIEFycmF5LmlzQXJyYXkocmF3KSA/IHJhdyA6IEVNUFRZX0xJU1Q7XG4gICAgfSk7XG4gICAgLy8gU3luYyBrZXlzIHdpdGggbGlzdCBsZW5ndGhcbiAgICB3aGlsZSAoa2V5c1JlZi5jdXJyZW50Lmxlbmd0aCA8IGxpc3QubGVuZ3RoKSB7XG4gICAgICAgIGtleXNSZWYuY3VycmVudC5wdXNoKGdlbmVyYXRlS2V5KCkpO1xuICAgIH1cbiAgICBpZiAoa2V5c1JlZi5jdXJyZW50Lmxlbmd0aCA+IGxpc3QubGVuZ3RoKSB7XG4gICAgICAgIGtleXNSZWYuY3VycmVudCA9IGtleXNSZWYuY3VycmVudC5zbGljZSgwLCBsaXN0Lmxlbmd0aCk7XG4gICAgfVxuICAgIC8vIEFwcGx5IGluaXRpYWwgdmFsdWUgb25jZVxuICAgIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgICAgIGlmIChpbml0aWFsQXBwbGllZC5jdXJyZW50KVxuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICBpZiAobGlzdC5sZW5ndGggIT09IDApXG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIGlmICghQXJyYXkuaXNBcnJheShpbml0aWFsVmFsdWUpIHx8IGluaXRpYWxWYWx1ZS5sZW5ndGggPT09IDApXG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIGluaXRpYWxBcHBsaWVkLmN1cnJlbnQgPSB0cnVlO1xuICAgICAgICBzZXRGaWVsZFZhbHVlKGZ1bGxOYW1lLCBbLi4uaW5pdGlhbFZhbHVlXSk7XG4gICAgICAgIGtleXNSZWYuY3VycmVudCA9IGluaXRpYWxWYWx1ZS5tYXAoKCkgPT4gZ2VuZXJhdGVLZXkoKSk7XG4gICAgfSwgW2xpc3QubGVuZ3RoLCBpbml0aWFsVmFsdWUsIGZ1bGxOYW1lLCBzZXRGaWVsZFZhbHVlXSk7XG4gICAgLy8gQ2xlYXIgZXJyb3Igd2hlbiBsaXN0IGJlY29tZXMgbm9uLWVtcHR5XG4gICAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICAgICAgaWYgKHJlcXVpcmVkICYmIGxpc3QubGVuZ3RoID4gMCAmJiBsaXN0RXJyb3IpIHtcbiAgICAgICAgICAgIHNldExpc3RFcnJvcihudWxsKTtcbiAgICAgICAgfVxuICAgIH0sIFtsaXN0Lmxlbmd0aCwgcmVxdWlyZWQsIGxpc3RFcnJvciwgc2V0TGlzdEVycm9yXSk7XG4gICAgY29uc3QgY2FuQWRkID0gbWF4ID09IG51bGwgfHwgbGlzdC5sZW5ndGggPCBtYXg7XG4gICAgY29uc3QgY2FuUmVtb3ZlID0gbWluID09IG51bGwgfHwgbGlzdC5sZW5ndGggPiBtaW47XG4gICAgY29uc3QgdmFsaWRhdGVMaXN0ID0gdXNlTWVtb2l6ZWRGbigoKSA9PiB7XG4gICAgICAgIGlmICghcmVxdWlyZWQpXG4gICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgaWYgKGxpc3QubGVuZ3RoID09PSAwKSB7XG4gICAgICAgICAgICBzZXRMaXN0RXJyb3IocmVxdWlyZWRNZXNzYWdlKTtcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfVxuICAgICAgICBzZXRMaXN0RXJyb3IobnVsbCk7XG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgIH0pO1xuICAgIGNvbnN0IGFkZCA9IHVzZU1lbW9pemVkRm4oKGRlZmF1bHRWYWx1ZSwgaW5kZXgpID0+IHtcbiAgICAgICAgaWYgKCFjYW5BZGQpXG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIGNvbnN0IHZhbHVlID0gZGVmYXVsdFZhbHVlICE9PSBudWxsICYmIGRlZmF1bHRWYWx1ZSAhPT0gdm9pZCAwID8gZGVmYXVsdFZhbHVlIDoge307XG4gICAgICAgIGNvbnN0IG5ld0xpc3QgPSBbLi4ubGlzdF07XG4gICAgICAgIGNvbnN0IG5ld0tleXMgPSBbLi4ua2V5c1JlZi5jdXJyZW50XTtcbiAgICAgICAgY29uc3QgaW5zZXJ0SW5kZXggPSB0eXBlb2YgaW5kZXggPT09ICdudW1iZXInID8gaW5kZXggOiBuZXdMaXN0Lmxlbmd0aDtcbiAgICAgICAgbmV3TGlzdC5zcGxpY2UoaW5zZXJ0SW5kZXgsIDAsIHZhbHVlKTtcbiAgICAgICAgbmV3S2V5cy5zcGxpY2UoaW5zZXJ0SW5kZXgsIDAsIGdlbmVyYXRlS2V5KCkpO1xuICAgICAgICBrZXlzUmVmLmN1cnJlbnQgPSBuZXdLZXlzO1xuICAgICAgICBzZXRGaWVsZFZhbHVlKGZ1bGxOYW1lLCBuZXdMaXN0KTtcbiAgICAgICAgb25BZnRlckFkZCA9PT0gbnVsbCB8fCBvbkFmdGVyQWRkID09PSB2b2lkIDAgPyB2b2lkIDAgOiBvbkFmdGVyQWRkKHZhbHVlLCBpbnNlcnRJbmRleCk7XG4gICAgfSk7XG4gICAgY29uc3QgcmVtb3ZlQXQgPSB1c2VNZW1vaXplZEZuKChpbmRleCkgPT4ge1xuICAgICAgICBpZiAoIWNhblJlbW92ZSlcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgY29uc3QgbmV3TGlzdCA9IFsuLi5saXN0XTtcbiAgICAgICAgY29uc3QgbmV3S2V5cyA9IFsuLi5rZXlzUmVmLmN1cnJlbnRdO1xuICAgICAgICBuZXdMaXN0LnNwbGljZShpbmRleCwgMSk7XG4gICAgICAgIG5ld0tleXMuc3BsaWNlKGluZGV4LCAxKTtcbiAgICAgICAga2V5c1JlZi5jdXJyZW50ID0gbmV3S2V5cztcbiAgICAgICAgc2V0RmllbGRWYWx1ZShmdWxsTmFtZSwgbmV3TGlzdCk7XG4gICAgICAgIG9uQWZ0ZXJSZW1vdmUgPT09IG51bGwgfHwgb25BZnRlclJlbW92ZSA9PT0gdm9pZCAwID8gdm9pZCAwIDogb25BZnRlclJlbW92ZShpbmRleCk7XG4gICAgICAgIC8vIFZhbGlkYXRlIGFmdGVyIHJlbW92ZVxuICAgICAgICBpZiAocmVxdWlyZWQgJiYgbmV3TGlzdC5sZW5ndGggPT09IDApIHtcbiAgICAgICAgICAgIHNldExpc3RFcnJvcihyZXF1aXJlZE1lc3NhZ2UpO1xuICAgICAgICB9XG4gICAgfSk7XG4gICAgY29uc3QgY29weSA9IHVzZU1lbW9pemVkRm4oKGluZGV4KSA9PiB7XG4gICAgICAgIGlmICghY2FuQWRkKVxuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICBjb25zdCB2YWx1ZSA9IGxpc3RbaW5kZXhdID8gT2JqZWN0LmFzc2lnbih7fSwgbGlzdFtpbmRleF0pIDoge307XG4gICAgICAgIGFkZCh2YWx1ZSwgaW5kZXggKyAxKTtcbiAgICB9KTtcbiAgICBjb25zdCBtb3ZlID0gdXNlTWVtb2l6ZWRGbigoZnJvbSwgdG8pID0+IHtcbiAgICAgICAgaWYgKGZyb20gPT09IHRvKVxuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICBpZiAoZnJvbSA8IDAgfHwgZnJvbSA+PSBsaXN0Lmxlbmd0aCB8fCB0byA8IDAgfHwgdG8gPj0gbGlzdC5sZW5ndGgpXG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIGNvbnN0IG5ld0xpc3QgPSBbLi4ubGlzdF07XG4gICAgICAgIGNvbnN0IG5ld0tleXMgPSBbLi4ua2V5c1JlZi5jdXJyZW50XTtcbiAgICAgICAgY29uc3QgW21vdmVkSXRlbV0gPSBuZXdMaXN0LnNwbGljZShmcm9tLCAxKTtcbiAgICAgICAgY29uc3QgW21vdmVkS2V5XSA9IG5ld0tleXMuc3BsaWNlKGZyb20sIDEpO1xuICAgICAgICBuZXdMaXN0LnNwbGljZSh0bywgMCwgbW92ZWRJdGVtKTtcbiAgICAgICAgbmV3S2V5cy5zcGxpY2UodG8sIDAsIG1vdmVkS2V5KTtcbiAgICAgICAga2V5c1JlZi5jdXJyZW50ID0gbmV3S2V5cztcbiAgICAgICAgc2V0RmllbGRWYWx1ZShmdWxsTmFtZSwgbmV3TGlzdCk7XG4gICAgfSk7XG4gICAgY29uc3QgZ2V0TGlzdCA9IHVzZU1lbW9pemVkRm4oKCkgPT4gbGlzdCk7XG4gICAgY29uc3QgYWN0aW9uID0gdXNlTWVtbygoKSA9PiAoeyBhZGQsIHJlbW92ZTogcmVtb3ZlQXQsIG1vdmUsIGNvcHksIGdldExpc3QgfSksIFthZGQsIHJlbW92ZUF0LCBtb3ZlLCBjb3B5LCBnZXRMaXN0XSk7XG4gICAgLy8gUGVyLWtleSBjYWNoZSBrZWVwcyBlYWNoIHJvdydzIGZpZWxkIG9iamVjdCBpZGVudGl0eSBzdGFibGUgYWNyb3NzIGxpc3RcbiAgICAvLyBjb21taXRzIChlLmcuIHR5cGluZyBpbiBhIHNpYmxpbmcgcm93KSwgc28gbWVtb2l6ZWQgcm93IGNvbnRlbnQgc2Vlc1xuICAgIC8vIHNoYWxsb3ctZXF1YWwgcHJvcHMgYW5kIGJhaWxzIG91dC5cbiAgICBjb25zdCBmaWVsZE9iakNhY2hlID0gdXNlUmVmKG5ldyBNYXAoKSk7XG4gICAgY29uc3QgbWFwcGVkRmllbGRzID0gdXNlTWVtbygoKSA9PiB7XG4gICAgICAgIGNvbnN0IG5leHRDYWNoZSA9IG5ldyBNYXAoKTtcbiAgICAgICAgY29uc3QgZmllbGRzID0gbGlzdC5tYXAoKF9pdGVtLCBpbmRleCkgPT4ge1xuICAgICAgICAgICAgY29uc3Qga2V5ID0ga2V5c1JlZi5jdXJyZW50W2luZGV4XSB8fCBgZmFsbGJhY2tfJHtpbmRleH1gO1xuICAgICAgICAgICAgY29uc3QgZmllbGROYW1lID0gYCR7ZnVsbE5hbWV9LiR7aW5kZXh9YDtcbiAgICAgICAgICAgIGNvbnN0IGNhY2hlZCA9IGZpZWxkT2JqQ2FjaGUuY3VycmVudC5nZXQoa2V5KTtcbiAgICAgICAgICAgIGNvbnN0IGZpZWxkID0gY2FjaGVkICYmIGNhY2hlZC5uYW1lID09PSBmaWVsZE5hbWUgPyBjYWNoZWQgOiB7IG5hbWU6IGZpZWxkTmFtZSwga2V5IH07XG4gICAgICAgICAgICBuZXh0Q2FjaGUuc2V0KGtleSwgZmllbGQpO1xuICAgICAgICAgICAgcmV0dXJuIGZpZWxkO1xuICAgICAgICB9KTtcbiAgICAgICAgZmllbGRPYmpDYWNoZS5jdXJyZW50ID0gbmV4dENhY2hlO1xuICAgICAgICByZXR1cm4gZmllbGRzO1xuICAgIH0sIFtsaXN0LCBmdWxsTmFtZV0pO1xuICAgIC8vIE1lbW9pemVkIHNvIHRoZSByb3cgZmFjdG9yeSBpcyByZS1pbnZva2VkIG9ubHkgd2hlbiB0aGUgbGlzdCBpdHNlbGYgKG9yXG4gICAgLy8gdGhlIGNvbnN1bWVyLXByb3ZpZGVkIGNoaWxkcmVuKSBjaGFuZ2VzIOKAlCBuZXZlciBmb3IgdW5yZWxhdGVkIGNvbW1pdHMuXG4gICAgY29uc3QgbGlzdERvbSA9IHVzZU1lbW8oKCkgPT4gKHR5cGVvZiBjaGlsZHJlbiA9PT0gJ2Z1bmN0aW9uJyA/IGNoaWxkcmVuKG1hcHBlZEZpZWxkcywgYWN0aW9uKSA6IGNoaWxkcmVuKSwgW2NoaWxkcmVuLCBtYXBwZWRGaWVsZHMsIGFjdGlvbl0pO1xuICAgIC8vIEFjdGlvbiBidXR0b25zIHBlciByb3cg4oCUIExpc3RSb3dBY3Rpb25zIGlzIHRoZSBtZW1vIGJvdW5kYXJ5XG4gICAgY29uc3QgYWN0aW9uUm93cyA9IGxpc3QubWFwKChyZWNvcmQsIGluZGV4KSA9PiAoX2pzeChMaXN0Um93QWN0aW9ucywgeyBpbmRleDogaW5kZXgsIHJlY29yZDogcmVjb3JkLCBjYW5BZGQ6IGNhbkFkZCwgY2FuUmVtb3ZlOiBjYW5SZW1vdmUsIGNvcHlJY29uUHJvcHM6IGNvcHlJY29uUHJvcHMsIGRlbGV0ZUljb25Qcm9wczogZGVsZXRlSWNvblByb3BzLCBhY3Rpb246IGFjdGlvbiwgYWN0aW9uUmVuZGVyOiBhY3Rpb25SZW5kZXIsIGl0ZW1SZW5kZXI6IGl0ZW1SZW5kZXIsIG9uQ29weTogY29weSwgb25SZW1vdmU6IHJlbW92ZUF0IH0sIGtleXNSZWYuY3VycmVudFtpbmRleF0gfHwgaW5kZXgpKSk7XG4gICAgLy8gQ3JlYXRvciBidXR0b25cbiAgICBjb25zdCBoYXNDcmVhdG9yID0gY3JlYXRvckJ1dHRvblByb3BzICE9PSBmYWxzZTtcbiAgICBjb25zdCBjcmVhdG9yQ29uZmlnID0gaGFzQ3JlYXRvciAmJiB0eXBlb2YgY3JlYXRvckJ1dHRvblByb3BzID09PSAnb2JqZWN0JyA/IGNyZWF0b3JCdXR0b25Qcm9wcyA6IHt9O1xuICAgIGNvbnN0IGNyZWF0b3JQb3NpdGlvbiA9IChfYSA9IGNyZWF0b3JDb25maWcgPT09IG51bGwgfHwgY3JlYXRvckNvbmZpZyA9PT0gdm9pZCAwID8gdm9pZCAwIDogY3JlYXRvckNvbmZpZy5wb3NpdGlvbikgIT09IG51bGwgJiYgX2EgIT09IHZvaWQgMCA/IF9hIDogJ2JvdHRvbSc7XG4gICAgY29uc3QgY3JlYXRvclRleHQgPSAoX2IgPSBjcmVhdG9yQ29uZmlnID09PSBudWxsIHx8IGNyZWF0b3JDb25maWcgPT09IHZvaWQgMCA/IHZvaWQgMCA6IGNyZWF0b3JDb25maWcudGV4dCkgIT09IG51bGwgJiYgX2IgIT09IHZvaWQgMCA/IF9iIDogREVGQVVMVF9URVhULmFkZDtcbiAgICBjb25zdCBjcmVhdG9yQnV0dG9uID0gaGFzQ3JlYXRvciA/IChfanN4KEJ1dHRvbiwgeyB0eXBlOiBcImJ1dHRvblwiLCBjb2xvcjogXCJzZWNvbmRhcnlcIiwgb25DbGljazogKCkgPT4ge1xuICAgICAgICAgICAgaWYgKGNyZWF0b3JQb3NpdGlvbiA9PT0gJ3RvcCcpIHtcbiAgICAgICAgICAgICAgICBhZGQoe30sIDApO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgYWRkKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0sIGRpc2FibGVkOiAhY2FuQWRkLCBjaGlsZHJlbjogY3JlYXRvclRleHQgfSkpIDogbnVsbDtcbiAgICBjb25zdCBmb3JtTGlzdENvbnRleHRWYWx1ZSA9IHVzZU1lbW8oKCkgPT4gKHsgbGlzdE5hbWU6IGZ1bGxOYW1lIH0pLCBbZnVsbE5hbWVdKTtcbiAgICByZXR1cm4gKF9qc3goRm9ybUxpc3RDb250ZXh0LlByb3ZpZGVyLCB7IHZhbHVlOiBmb3JtTGlzdENvbnRleHRWYWx1ZSwgY2hpbGRyZW46IF9qc3hzKFwiZGl2XCIsIHsgY2xhc3NOYW1lOiBjbGFzc2VzKCksIGNoaWxkcmVuOiBbbGFiZWwgJiYgX2pzeChUeXBvZ3JhcGh5TGFiZWwsIHsgY2xhc3NOYW1lOiBjbGFzc2VzKCdsYWJlbCcpLCBzaXplOiBQUk9GT1JNX0xJU1RfTEFCRUxfU0laRSwgY29sb3I6IFBST0ZPUk1fTElTVF9MQUJFTF9DT0xPUiwgY2hpbGRyZW46IGxhYmVsIH0pLCBjcmVhdG9yUG9zaXRpb24gPT09ICd0b3AnICYmIGNyZWF0b3JCdXR0b24sIF9qc3goXCJkaXZcIiwgeyBjbGFzc05hbWU6IGNsYXNzZXMoJ2NvbnRlbnQnKSwgY2hpbGRyZW46IGxpc3REb20gfSksIF9qc3goXCJkaXZcIiwgeyBjbGFzc05hbWU6IGNsYXNzZXMoJ2FjdGlvbnMnKSwgY2hpbGRyZW46IGFjdGlvblJvd3MgfSksIGNyZWF0b3JQb3NpdGlvbiA9PT0gJ2JvdHRvbScgJiYgY3JlYXRvckJ1dHRvbiwgbGlzdEVycm9yICYmIF9qc3goVHlwb2dyYXBoeUJvZHksIHsgYXM6IFwiZGl2XCIsIHNpemU6IFwic21cIiwgY29sb3I6IFwiZGFuZ2VyXCIsIGNoaWxkcmVuOiBsaXN0RXJyb3IgfSldIH0pIH0pKTtcbn07XG5Qcm9Gb3JtTGlzdEJhc2UuZGlzcGxheU5hbWUgPSAnUHJvRm9ybUxpc3QnO1xuZXhwb3J0IGNvbnN0IFByb0Zvcm1MaXN0ID0gbWVtbyhQcm9Gb3JtTGlzdEJhc2UpO1xuZXhwb3J0IGRlZmF1bHQgUHJvRm9ybUxpc3Q7IixudWxsXSwic291cmNlUm9vdCI6Ii4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYyJ9
|
|
377
|
+
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImNvbXBvbmVudHMvUHJvRm9ybS9Qcm9Gb3JtTGlzdC5qcyIsImNvbXBvbmVudHMvc3JjL2NvbXBvbmVudHMvUHJvRm9ybS9Qcm9Gb3JtTGlzdC50c3giXSwibmFtZXMiOlsianN4IiwiX2pzeCIsIkZyYWdtZW50IiwiX0ZyYWdtZW50IiwianN4cyIsIl9qc3hzIiwibWVtbyIsInVzZUVmZmVjdCIsInVzZU1lbW8iLCJ1c2VSZWYiLCJ1c2VNZW1vaXplZEZuIiwiZGVmYXVsdCIsImNsYXNzbmFtZXMiLCJCdXR0b24iLCJUeXBvZ3JhcGh5TGFiZWwiLCJUeXBvZ3JhcGh5Qm9keSIsIkZvcm1MaXN0Q29udGV4dCIsInVzZVByb0Zvcm1TdGFibGUiLCJ1c2VQcm9Gb3JtU3RvcmUiLCJ1c2VTdG9yZVNlbGVjdG9yIiwic2hhbGxvd0VxdWFsQXJyYXlzIiwiQ1NTX1BSRUZJWCIsIkRFRkFVTFRfVEVYVCIsIlBST0ZPUk1fTElTVF9MQUJFTF9TSVpFIiwiUFJPRk9STV9MSVNUX0xBQkVMX0NPTE9SIiwiZXh0cmFjdEJ1dHRvblByb3BzIiwiZ2V0TmVzdGVkVmFsdWUiLCJjbGFzc2VzIiwiY29uY2F0IiwibGlzdEtleUNvdW50ZXIiLCJnZW5lcmF0ZUtleSIsIkVNUFRZX0xJU1QiLCJMSVNUX01FVEFfS0VZUyIsInJlbWFwTGlzdE1ldGEiLCJzdG9yZSIsImxpc3ROYW1lIiwibWFwSW5kZXgiLCJzdGF0ZSIsImdldFN0YXRlIiwicHJlZml4IiwicGF0Y2giLCJfaSIsIl9MSVNUX01FVEFfS0VZUyIsImxlbmd0aCIsIm1ldGFLZXkiLCJzb3VyY2UiLCJjaGFuZ2VkIiwibmV4dCIsIl9pMiIsIl9PYmplY3Qka2V5cyIsIk9iamVjdCIsImtleXMiLCJrZXkiLCJzdGFydHNXaXRoIiwicmVzdCIsInNsaWNlIiwiZG90QXQiLCJpbmRleE9mIiwiaW5kZXhTdHIiLCJ0ZXN0IiwibmV3SW5kZXgiLCJOdW1iZXIiLCJzZXRTdGF0ZSIsIkxpc3RSb3dBY3Rpb25zQmFzZSIsIl9yZWYiLCJpbmRleCIsInJlY29yZCIsImNhbkFkZCIsImNhblJlbW92ZSIsImNvcHlJY29uUHJvcHMiLCJkZWxldGVJY29uUHJvcHMiLCJhY3Rpb24iLCJhY3Rpb25SZW5kZXIiLCJpdGVtUmVuZGVyIiwib25Db3B5Iiwib25SZW1vdmUiLCJjb3B5QnRuUHJvcHMiLCJkZWxldGVCdG5Qcm9wcyIsImRlZmF1bHREb20iLCJjb3B5IiwiYXNzaWduIiwidHlwZSIsImNvbG9yIiwic2l6ZSIsIm9uQ2xpY2siLCJkaXNhYmxlZCIsImNoaWxkcmVuIiwicmVuZGVyZWRBY3Rpb25zIiwiZmlsdGVyIiwiQm9vbGVhbiIsInJvd05vZGUiLCJjbGFzc05hbWUiLCJsaXN0RG9tIiwiZGlzcGxheU5hbWUiLCJMaXN0Um93QWN0aW9ucyIsIlByb0Zvcm1MaXN0QmFzZSIsInByb3BzIiwiX2EiLCJfYiIsImZ1bGxOYW1lIiwibmFtZSIsImxhYmVsIiwibWluIiwibWF4IiwicmVxdWlyZWQiLCJfcHJvcHMkcmVxdWlyZWRNZXNzYWciLCJyZXF1aXJlZE1lc3NhZ2UiLCJpbml0aWFsVmFsdWUiLCJjcmVhdG9yQnV0dG9uUHJvcHMiLCJvbkFmdGVyQWRkIiwib25BZnRlclJlbW92ZSIsIl91c2VQcm9Gb3JtU3RhYmxlIiwic2V0RmllbGRWYWx1ZSIsInJlZ2lzdGVyRmllbGQiLCJ1bnJlZ2lzdGVyRmllbGQiLCJyZXRhaW5GaWVsZCIsInJlbGVhc2VGaWVsZCIsInZhbGlkYXRlRmllbGQiLCJpbml0aWFsQXBwbGllZCIsImtleXNSZWYiLCJfdXNlU3RvcmVTZWxlY3RvciIsInJhdyIsImluY2x1ZGVzIiwidmFsdWVzIiwiQXJyYXkiLCJpc0FycmF5IiwiZXJyb3JzIiwiX3VzZVN0b3JlU2VsZWN0b3IyIiwiX3NsaWNlZFRvQXJyYXkiLCJsaXN0IiwibGlzdEVycm9yIiwiY3VycmVudCIsInB1c2giLCJfdG9Db25zdW1hYmxlQXJyYXkiLCJtYXAiLCJsaXN0UnVsZXMiLCJtZXNzYWdlIiwidmFsaWRhdGVMaXN0VmFsdWUiLCJuZXh0TGlzdCIsImFkZCIsImRlZmF1bHRWYWx1ZSIsInZhbHVlIiwibmV3TGlzdCIsIm5ld0tleXMiLCJpbnNlcnRJbmRleCIsInNwbGljZSIsImkiLCJyZW1vdmVBdCIsIm1vdmUiLCJmcm9tIiwidG8iLCJfbmV3TGlzdCRzcGxpY2UiLCJfbmV3TGlzdCRzcGxpY2UyIiwibW92ZWRJdGVtIiwiX25ld0tleXMkc3BsaWNlIiwiX25ld0tleXMkc3BsaWNlMiIsIm1vdmVkS2V5IiwiZ2V0TGlzdCIsInJlbW92ZSIsImZpZWxkT2JqQ2FjaGUiLCJNYXAiLCJtYXBwZWRGaWVsZHMiLCJuZXh0Q2FjaGUiLCJmaWVsZHMiLCJfaXRlbSIsImZpZWxkTmFtZSIsImNhY2hlZCIsImdldCIsImZpZWxkIiwic2V0IiwiYWN0aW9uUm93cyIsImhhc0NyZWF0b3IiLCJjcmVhdG9yQ29uZmlnIiwiX3R5cGVvZiIsImNyZWF0b3JQb3NpdGlvbiIsInBvc2l0aW9uIiwiY3JlYXRvclRleHQiLCJ0ZXh0IiwiY3JlYXRvckJ1dHRvbiIsImZvcm1MaXN0Q29udGV4dFZhbHVlIiwiUHJvdmlkZXIiLCJhcyIsIlByb0Zvcm1MaXN0Il0sIm1hcHBpbmdzIjoiOzs7QUFBQSxTQUFTQSxHQUFHLElBQUlDLElBQUksRUFBRUMsUUFBUSxJQUFJQyxTQUFTLEVBQUVDLElBQUksSUFBSUMsS0FBSyxRQUFRLG1CQUFtQjtBQ0FyRixTQUFTQyxJQUFJLEVBQUVDLFNBQVMsRUFBRUMsT0FBTyxFQUFFQyxNQUFNLFFBQVEsT0FBTztBQUV4RCxPQUFPQyxhQUFhLE1BQU0sNkJBQTZCO0FBQ3ZELFNBQVNDLE9BQU8sSUFBSUMsVUFBVSxRQUFRLHdCQUF3QjtBQUM5RCxTQUFTQyxNQUFNLFFBQVEsV0FBVztBQUNsQyxTQUFTQyxlQUFlLEVBQUVDLGNBQWMsUUFBUSxlQUFlO0FBQy9ELFNBQVNDLGVBQWUsRUFBRUMsZ0JBQWdCLEVBQUVDLGVBQWUsUUFBUSxXQUFXO0FBQzlFLFNBQVNDLGdCQUFnQixFQUFFQyxrQkFBa0IsUUFBUSxrQkFBa0I7QUFF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IiwiZmlsZSI6ImNvbXBvbmVudHMvUHJvRm9ybS9Qcm9Gb3JtTGlzdC5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGpzeCBhcyBfanN4LCBGcmFnbWVudCBhcyBfRnJhZ21lbnQsIGpzeHMgYXMgX2pzeHMgfSBmcm9tIFwicmVhY3QvanN4LXJ1bnRpbWVcIjtcbmltcG9ydCB7IG1lbW8sIHVzZUVmZmVjdCwgdXNlTWVtbywgdXNlUmVmIH0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IHVzZU1lbW9pemVkRm4gZnJvbSAnQDFtb25leS9ob29rcy91c2VNZW1vaXplZEZuJztcbmltcG9ydCB7IGRlZmF1bHQgYXMgY2xhc3NuYW1lcyB9IGZyb20gJy4uLy4uL3V0aWxzL2NsYXNzbmFtZXMnO1xuaW1wb3J0IHsgQnV0dG9uIH0gZnJvbSAnLi4vQnV0dG9uJztcbmltcG9ydCB7IFR5cG9ncmFwaHlMYWJlbCwgVHlwb2dyYXBoeUJvZHkgfSBmcm9tICcuLi9UeXBvZ3JhcGh5JztcbmltcG9ydCB7IEZvcm1MaXN0Q29udGV4dCwgdXNlUHJvRm9ybVN0YWJsZSwgdXNlUHJvRm9ybVN0b3JlIH0gZnJvbSAnLi9jb250ZXh0JztcbmltcG9ydCB7IHVzZVN0b3JlU2VsZWN0b3IsIHNoYWxsb3dFcXVhbEFycmF5cyB9IGZyb20gJy4vY29yZS9mb3JtU3RvcmUnO1xuaW1wb3J0IHsgQ1NTX1BSRUZJWCwgREVGQVVMVF9URVhULCBQUk9GT1JNX0xJU1RfTEFCRUxfU0laRSwgUFJPRk9STV9MSVNUX0xBQkVMX0NPTE9SIH0gZnJvbSAnLi9jb25zdGFudHMnO1xuaW1wb3J0IHsgZXh0cmFjdEJ1dHRvblByb3BzLCBnZXROZXN0ZWRWYWx1ZSB9IGZyb20gJy4vdXRpbHMnO1xuY29uc3QgY2xhc3NlcyA9IGNsYXNzbmFtZXMoYCR7Q1NTX1BSRUZJWH0tbGlzdGApO1xubGV0IGxpc3RLZXlDb3VudGVyID0gMDtcbmNvbnN0IGdlbmVyYXRlS2V5ID0gKCkgPT4gYGxpc3RfJHsrK2xpc3RLZXlDb3VudGVyfWA7XG4vLyBTdGFibGUgZW1wdHkgcmVzdWx0IGZvciB0aGUgbm8tdmFsdWUgY2FzZSDigJQgYSBmcmVzaCBbXSBwZXIgc2VsZWN0b3IgcnVuXG4vLyB3b3VsZCBuZXZlciBjb21wYXJlIGVxdWFsIGFuZCBsb29wIHRoZSBzdWJzY3JpcHRpb24uXG5jb25zdCBFTVBUWV9MSVNUID0gW107XG4vLyBGaWVsZCBtZXRhIChlcnJvcnMvd2FybmluZ3MvdG91Y2hlZC92YWxpZGF0aW5nKSBpcyBzdG9yZWQgRkxBVCwga2V5ZWQgYnlcbi8vIHRoZSBwb3NpdGlvbmFsIHBhdGggKGBpdGVtcy4xLnRpdGxlYCkuIFJvdyBvcGVyYXRpb25zIHNoaWZ0IHRoZSBWQUxVRVMgYnV0XG4vLyBub3QgdGhvc2Uga2V5cyDigJQgcmVtYXAgdGhlbSBpbiB0aGUgc2FtZSBoYW5kbGVyIHNvIGV2ZXJ5IHJvdyBrZWVwcyBpdHMgb3duXG4vLyBtZXRhLiBgbWFwSW5kZXhgIHJldHVybnMgdGhlIG5ldyBpbmRleCBmb3IgYW4gb2xkIG9uZSwgb3IgbnVsbCB0byBkcm9wIGl0LlxuY29uc3QgTElTVF9NRVRBX0tFWVMgPSBbJ2Vycm9ycycsICd3YXJuaW5ncycsICd0b3VjaGVkJywgJ3ZhbGlkYXRpbmcnXTtcbmZ1bmN0aW9uIHJlbWFwTGlzdE1ldGEoc3RvcmUsIGxpc3ROYW1lLCBtYXBJbmRleCkge1xuICAgIGNvbnN0IHN0YXRlID0gc3RvcmUuZ2V0U3RhdGUoKTtcbiAgICBjb25zdCBwcmVmaXggPSBgJHtsaXN0TmFtZX0uYDtcbiAgICBjb25zdCBwYXRjaCA9IHt9O1xuICAgIGZvciAoY29uc3QgbWV0YUtleSBvZiBMSVNUX01FVEFfS0VZUykge1xuICAgICAgICBjb25zdCBzb3VyY2UgPSBzdGF0ZVttZXRhS2V5XTtcbiAgICAgICAgbGV0IGNoYW5nZWQgPSBmYWxzZTtcbiAgICAgICAgY29uc3QgbmV4dCA9IHt9O1xuICAgICAgICBmb3IgKGNvbnN0IGtleSBvZiBPYmplY3Qua2V5cyhzb3VyY2UpKSB7XG4gICAgICAgICAgICBpZiAoIWtleS5zdGFydHNXaXRoKHByZWZpeCkpIHtcbiAgICAgICAgICAgICAgICBuZXh0W2tleV0gPSBzb3VyY2Vba2V5XTtcbiAgICAgICAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNvbnN0IHJlc3QgPSBrZXkuc2xpY2UocHJlZml4Lmxlbmd0aCk7XG4gICAgICAgICAgICBjb25zdCBkb3RBdCA9IHJlc3QuaW5kZXhPZignLicpO1xuICAgICAgICAgICAgY29uc3QgaW5kZXhTdHIgPSBkb3RBdCA9PT0gLTEgPyByZXN0IDogcmVzdC5zbGljZSgwLCBkb3RBdCk7XG4gICAgICAgICAgICBpZiAoIS9eXFxkKyQvLnRlc3QoaW5kZXhTdHIpKSB7XG4gICAgICAgICAgICAgICAgbmV4dFtrZXldID0gc291cmNlW2tleV07XG4gICAgICAgICAgICAgICAgY29udGludWU7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjb25zdCBuZXdJbmRleCA9IG1hcEluZGV4KE51bWJlcihpbmRleFN0cikpO1xuICAgICAgICAgICAgaWYgKG5ld0luZGV4ID09PSBudWxsKSB7XG4gICAgICAgICAgICAgICAgY2hhbmdlZCA9IHRydWU7IC8vIHJvdyByZW1vdmVkIOKAlCBkcm9wIGl0cyBtZXRhXG4gICAgICAgICAgICAgICAgY29udGludWU7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAobmV3SW5kZXggPT09IE51bWJlcihpbmRleFN0cikpIHtcbiAgICAgICAgICAgICAgICBuZXh0W2tleV0gPSBzb3VyY2Vba2V5XTtcbiAgICAgICAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIG5leHRbYCR7cHJlZml4fSR7bmV3SW5kZXh9JHtkb3RBdCA9PT0gLTEgPyAnJyA6IHJlc3Quc2xpY2UoZG90QXQpfWBdID0gc291cmNlW2tleV07XG4gICAgICAgICAgICBjaGFuZ2VkID0gdHJ1ZTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoY2hhbmdlZCkge1xuICAgICAgICAgICAgcGF0Y2hbbWV0YUtleV0gPSBuZXh0O1xuICAgICAgICB9XG4gICAgfVxuICAgIGlmIChPYmplY3Qua2V5cyhwYXRjaCkubGVuZ3RoID4gMClcbiAgICAgICAgc3RvcmUuc2V0U3RhdGUocGF0Y2gpO1xufVxuLy8gUm93LWxldmVsIG1lbW8gYm91bmRhcnk6IHNldE5lc3RlZFZhbHVlIGNsb25lcyBPTkxZIHRoZSBlZGl0ZWQgcm93LCBzb1xuLy8gdW50b3VjaGVkIHJvd3Mga2VlcCB0aGVpciByZWNvcmQgaWRlbnRpdHkgYW5kIGJhaWwgb3V0IGhlcmUgd2hpbGUgYVxuLy8gc2libGluZyByb3cgaXMgYmVpbmcgZWRpdGVkLlxuY29uc3QgTGlzdFJvd0FjdGlvbnNCYXNlID0gKHsgaW5kZXgsIHJlY29yZCwgY2FuQWRkLCBjYW5SZW1vdmUsIGNvcHlJY29uUHJvcHMsIGRlbGV0ZUljb25Qcm9wcywgYWN0aW9uLCBhY3Rpb25SZW5kZXIsIGl0ZW1SZW5kZXIsIG9uQ29weSwgb25SZW1vdmUsIH0pID0+IHtcbiAgICBjb25zdCBjb3B5QnRuUHJvcHMgPSBleHRyYWN0QnV0dG9uUHJvcHMoY29weUljb25Qcm9wcyk7XG4gICAgY29uc3QgZGVsZXRlQnRuUHJvcHMgPSBleHRyYWN0QnV0dG9uUHJvcHMoZGVsZXRlSWNvblByb3BzKTtcbiAgICBjb25zdCBkZWZhdWx0RG9tID0ge1xuICAgICAgICBjb3B5OiBjb3B5SWNvblByb3BzICE9PSBmYWxzZSA/IChfanN4KEJ1dHRvbiwgT2JqZWN0LmFzc2lnbih7IHR5cGU6IFwiYnV0dG9uXCIsIGNvbG9yOiBcInNlY29uZGFyeVwiLCBzaXplOiBcInNtYWxsXCIgfSwgY29weUJ0blByb3BzLnJlc3QsIHsgb25DbGljazogKCkgPT4gb25Db3B5KGluZGV4KSwgZGlzYWJsZWQ6ICFjYW5BZGQgfHwgY29weUJ0blByb3BzLmRpc2FibGVkLCBjaGlsZHJlbjogREVGQVVMVF9URVhULmNvcHkgfSksIGBjb3B5LSR7aW5kZXh9YCkpIDogbnVsbCxcbiAgICAgICAgZGVsZXRlOiBkZWxldGVJY29uUHJvcHMgIT09IGZhbHNlID8gKF9qc3goQnV0dG9uLCBPYmplY3QuYXNzaWduKHsgdHlwZTogXCJidXR0b25cIiwgY29sb3I6IFwic2Vjb25kYXJ5XCIsIHNpemU6IFwic21hbGxcIiB9LCBkZWxldGVCdG5Qcm9wcy5yZXN0LCB7IG9uQ2xpY2s6ICgpID0+IG9uUmVtb3ZlKGluZGV4KSwgZGlzYWJsZWQ6ICFjYW5SZW1vdmUgfHwgZGVsZXRlQnRuUHJvcHMuZGlzYWJsZWQsIGNoaWxkcmVuOiBERUZBVUxUX1RFWFQuZGVsZXRlIH0pLCBgZGVsZXRlLSR7aW5kZXh9YCkpIDogbnVsbCxcbiAgICB9O1xuICAgIGNvbnN0IHJlbmRlcmVkQWN0aW9ucyA9IGFjdGlvblJlbmRlclxuICAgICAgICA/IGFjdGlvblJlbmRlcih7IGluZGV4LCByZWNvcmQgfSwgYWN0aW9uLCBkZWZhdWx0RG9tKVxuICAgICAgICA6IFtkZWZhdWx0RG9tLmNvcHksIGRlZmF1bHREb20uZGVsZXRlXS5maWx0ZXIoQm9vbGVhbik7XG4gICAgY29uc3Qgcm93Tm9kZSA9IChfanN4KFwiZGl2XCIsIHsgY2xhc3NOYW1lOiBjbGFzc2VzKCdyb3ctYWN0aW9ucycpLCBjaGlsZHJlbjogcmVuZGVyZWRBY3Rpb25zIH0pKTtcbiAgICBpZiAoaXRlbVJlbmRlcikge1xuICAgICAgICByZXR1cm4gX2pzeChfRnJhZ21lbnQsIHsgY2hpbGRyZW46IGl0ZW1SZW5kZXIoeyBsaXN0RG9tOiByb3dOb2RlLCBhY3Rpb24gfSkgfSk7XG4gICAgfVxuICAgIHJldHVybiByb3dOb2RlO1xufTtcbkxpc3RSb3dBY3Rpb25zQmFzZS5kaXNwbGF5TmFtZSA9ICdQcm9Gb3JtTGlzdFJvd0FjdGlvbnMnO1xuY29uc3QgTGlzdFJvd0FjdGlvbnMgPSBtZW1vKExpc3RSb3dBY3Rpb25zQmFzZSk7XG5jb25zdCBQcm9Gb3JtTGlzdEJhc2UgPSAocHJvcHMpID0+IHtcbiAgICB2YXIgX2EsIF9iO1xuICAgIGNvbnN0IHsgbmFtZTogZnVsbE5hbWUsIGxhYmVsLCBtaW4sIG1heCwgcmVxdWlyZWQsIHJlcXVpcmVkTWVzc2FnZSA9ICdUaGlzIGxpc3QgY2Fubm90IGJlIGVtcHR5JywgaW5pdGlhbFZhbHVlLCBjb3B5SWNvblByb3BzLCBkZWxldGVJY29uUHJvcHMsIGNyZWF0b3JCdXR0b25Qcm9wcywgaXRlbVJlbmRlciwgYWN0aW9uUmVuZGVyLCBjaGlsZHJlbiwgb25BZnRlckFkZCwgb25BZnRlclJlbW92ZSwgfSA9IHByb3BzO1xuICAgIC8vIExpc3QgbmFtZXMgYXJlIEFCU09MVVRFIHBhdGhzLCBsaWtlIGV2ZXJ5IG90aGVyIGZpZWxkIG5hbWUuIEEgbmVzdGVkXG4gICAgLy8gbGlzdCBpcyB3cml0dGVuIHdpdGggdGhlIGZ1bGwgcm93IHBhdGggKGBuYW1lPXtgJHtmaWVsZC5uYW1lfS50YWdzYH1gKSxcbiAgICAvLyBleGFjdGx5IGxpa2Ugcm93IGZpZWxkcyDigJQgdGhlIGJhcmUgcGFyZW50IGxpc3QgbmFtZSBjYXJyaWVzIG5vIHJvd1xuICAgIC8vIGluZGV4LCBzbyBhdXRvLXByZWZpeGluZyB3aXRoIGl0IGNvdWxkIG5ldmVyIGFkZHJlc3MgYSByb3cncyBvd25cbiAgICAvLyBzdWItbGlzdCAoaXQgd291bGQgcmVzb2x2ZSBgcGFyZW50LnRhZ3NgIGluc3RlYWQgb2YgYHBhcmVudC4wLnRhZ3NgKS5cbiAgICBjb25zdCB7IHNldEZpZWxkVmFsdWUsIHJlZ2lzdGVyRmllbGQsIHVucmVnaXN0ZXJGaWVsZCwgcmV0YWluRmllbGQsIHJlbGVhc2VGaWVsZCwgdmFsaWRhdGVGaWVsZCB9ID0gdXNlUHJvRm9ybVN0YWJsZSgpO1xuICAgIGNvbnN0IHN0b3JlID0gdXNlUHJvRm9ybVN0b3JlKCk7XG4gICAgY29uc3QgaW5pdGlhbEFwcGxpZWQgPSB1c2VSZWYoZmFsc2UpO1xuICAgIGNvbnN0IGtleXNSZWYgPSB1c2VSZWYoW10pO1xuICAgIC8vIFN1YnNjcmliZSBPTkxZIHRvIHRoaXMgbGlzdCdzIG93biB2YWx1ZSBhbmQgZXJyb3I6IHR5cGluZyBlbHNld2hlcmUgaW5cbiAgICAvLyB0aGUgZm9ybSBsZWF2ZXMgYm90aCB1bnRvdWNoZWQgYW5kIHRoaXMgY29tcG9uZW50IGRvZXMgbm90IHJlbmRlci5cbiAgICBjb25zdCBbbGlzdCwgbGlzdEVycm9yXSA9IHVzZVN0b3JlU2VsZWN0b3Ioc3RvcmUsIChzdGF0ZSkgPT4ge1xuICAgICAgICBjb25zdCByYXcgPSBmdWxsTmFtZS5pbmNsdWRlcygnLicpXG4gICAgICAgICAgICA/IGdldE5lc3RlZFZhbHVlKHN0YXRlLnZhbHVlcywgZnVsbE5hbWUpXG4gICAgICAgICAgICA6IHN0YXRlLnZhbHVlc1tmdWxsTmFtZV07XG4gICAgICAgIHJldHVybiBbXG4gICAgICAgICAgICBBcnJheS5pc0FycmF5KHJhdykgPyByYXcgOiBFTVBUWV9MSVNULFxuICAgICAgICAgICAgc3RhdGUuZXJyb3JzW2Z1bGxOYW1lXSxcbiAgICAgICAgXTtcbiAgICB9LCBzaGFsbG93RXF1YWxBcnJheXMpO1xuICAgIC8vIFN5bmMga2V5cyB3aXRoIGxpc3QgbGVuZ3RoXG4gICAgd2hpbGUgKGtleXNSZWYuY3VycmVudC5sZW5ndGggPCBsaXN0Lmxlbmd0aCkge1xuICAgICAgICBrZXlzUmVmLmN1cnJlbnQucHVzaChnZW5lcmF0ZUtleSgpKTtcbiAgICB9XG4gICAgaWYgKGtleXNSZWYuY3VycmVudC5sZW5ndGggPiBsaXN0Lmxlbmd0aCkge1xuICAgICAgICBrZXlzUmVmLmN1cnJlbnQgPSBrZXlzUmVmLmN1cnJlbnQuc2xpY2UoMCwgbGlzdC5sZW5ndGgpO1xuICAgIH1cbiAgICAvLyBpbml0aWFsVmFsdWUgaXMgTU9VTlQtT05MWSAobGlrZSBmb3JtIGluaXRpYWxWYWx1ZXMpOiB0aGUgZGVjaXNpb24gaXNcbiAgICAvLyBtYWRlIGV4YWN0bHkgb25jZS4gV2l0aG91dCB0aGUgdW5jb25kaXRpb25hbCBmbGFnLCBhIGxpc3Qgc2VlZGVkIGJ5IGZvcm1cbiAgICAvLyBpbml0aWFsVmFsdWVzIHdvdWxkIHJlLWFwcGx5IGluaXRpYWxWYWx1ZSB3aGVuIHRoZSB1c2VyIGVtcHRpZXMgaXQuXG4gICAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICAgICAgaWYgKGluaXRpYWxBcHBsaWVkLmN1cnJlbnQpXG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIGluaXRpYWxBcHBsaWVkLmN1cnJlbnQgPSB0cnVlO1xuICAgICAgICBpZiAobGlzdC5sZW5ndGggIT09IDApXG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIGlmICghQXJyYXkuaXNBcnJheShpbml0aWFsVmFsdWUpIHx8IGluaXRpYWxWYWx1ZS5sZW5ndGggPT09IDApXG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIHNldEZpZWxkVmFsdWUoZnVsbE5hbWUsIFsuLi5pbml0aWFsVmFsdWVdKTtcbiAgICAgICAga2V5c1JlZi5jdXJyZW50ID0gaW5pdGlhbFZhbHVlLm1hcCgoKSA9PiBnZW5lcmF0ZUtleSgpKTtcbiAgICAgICAgLy8gTW91bnQtb25seSBieSBkZXNpZ24uXG4gICAgfSwgW10pO1xuICAgIGNvbnN0IGNhbkFkZCA9IG1heCA9PSBudWxsIHx8IGxpc3QubGVuZ3RoIDwgbWF4O1xuICAgIGNvbnN0IGNhblJlbW92ZSA9IG1pbiA9PSBudWxsIHx8IGxpc3QubGVuZ3RoID4gbWluO1xuICAgIC8vIGByZXF1aXJlZGAgcGFydGljaXBhdGVzIGluIFJFQUwgdmFsaWRhdGlvbjogdGhlIHJ1bGUgaXMgcmVnaXN0ZXJlZCB3aXRoXG4gICAgLy8gdGhlIGZvcm0gKHNvIHN1Ym1pdCBibG9ja3Mgb24gYW4gZW1wdHkgbGlzdCkgYW5kIHJlLXJ1biBhZnRlciBldmVyeVxuICAgIC8vIHN0cnVjdHVyYWwgbXV0YXRpb24gYmVsb3cuXG4gICAgY29uc3QgbGlzdFJ1bGVzID0gdXNlTWVtbygoKSA9PiAocmVxdWlyZWQgPyBbeyByZXF1aXJlZDogdHJ1ZSwgbWVzc2FnZTogcmVxdWlyZWRNZXNzYWdlIH1dIDogW10pLCBbcmVxdWlyZWQsIHJlcXVpcmVkTWVzc2FnZV0pO1xuICAgIC8vIE1vdW50LWNvdW50ZWQgbGlmZXRpbWUgKHNlZSB1c2VGb3JtSXRlbSk6IHRoZSBydWxlcyBhcmUgcmVtb3ZlZCBvbmx5IHdoZW5cbiAgICAvLyB0aGUgTEFTVCBzYW1lLW5hbWUgaG9sZGVyIHVubW91bnRzLiBEZWNsYXJlZCBCRUZPUkUgdGhlIHJlZ2lzdGVyIGVmZmVjdCBzb1xuICAgIC8vIHRoZSByZWdpc3RyYXRpb24gYmVsb3cgaXMgY2xhc3NpZmllZCBhcyBpbnN0YW5jZS1vd25lZC5cbiAgICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgICAgICByZXRhaW5GaWVsZChmdWxsTmFtZSk7XG4gICAgICAgIHJldHVybiAoKSA9PiB7XG4gICAgICAgICAgICByZWxlYXNlRmllbGQoZnVsbE5hbWUpO1xuICAgICAgICB9O1xuICAgIH0sIFtmdWxsTmFtZV0pO1xuICAgIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgICAgIGlmIChsaXN0UnVsZXMubGVuZ3RoID4gMClcbiAgICAgICAgICAgIHJlZ2lzdGVyRmllbGQoZnVsbE5hbWUsIGxpc3RSdWxlcyk7XG4gICAgICAgIGVsc2VcbiAgICAgICAgICAgIHVucmVnaXN0ZXJGaWVsZChmdWxsTmFtZSk7XG4gICAgfSk7XG4gICAgY29uc3QgdmFsaWRhdGVMaXN0VmFsdWUgPSB1c2VNZW1vaXplZEZuKChuZXh0TGlzdCkgPT4ge1xuICAgICAgICBpZiAobGlzdFJ1bGVzLmxlbmd0aCA+IDApXG4gICAgICAgICAgICB2YWxpZGF0ZUZpZWxkKGZ1bGxOYW1lLCBsaXN0UnVsZXMsIG5leHRMaXN0KTtcbiAgICB9KTtcbiAgICBjb25zdCBhZGQgPSB1c2VNZW1vaXplZEZuKChkZWZhdWx0VmFsdWUsIGluZGV4KSA9PiB7XG4gICAgICAgIGlmICghY2FuQWRkKVxuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICBjb25zdCB2YWx1ZSA9IGRlZmF1bHRWYWx1ZSAhPT0gbnVsbCAmJiBkZWZhdWx0VmFsdWUgIT09IHZvaWQgMCA/IGRlZmF1bHRWYWx1ZSA6IHt9O1xuICAgICAgICBjb25zdCBuZXdMaXN0ID0gWy4uLmxpc3RdO1xuICAgICAgICBjb25zdCBuZXdLZXlzID0gWy4uLmtleXNSZWYuY3VycmVudF07XG4gICAgICAgIGNvbnN0IGluc2VydEluZGV4ID0gdHlwZW9mIGluZGV4ID09PSAnbnVtYmVyJyA/IGluZGV4IDogbmV3TGlzdC5sZW5ndGg7XG4gICAgICAgIG5ld0xpc3Quc3BsaWNlKGluc2VydEluZGV4LCAwLCB2YWx1ZSk7XG4gICAgICAgIG5ld0tleXMuc3BsaWNlKGluc2VydEluZGV4LCAwLCBnZW5lcmF0ZUtleSgpKTtcbiAgICAgICAga2V5c1JlZi5jdXJyZW50ID0gbmV3S2V5cztcbiAgICAgICAgc2V0RmllbGRWYWx1ZShmdWxsTmFtZSwgbmV3TGlzdCk7XG4gICAgICAgIHJlbWFwTGlzdE1ldGEoc3RvcmUsIGZ1bGxOYW1lLCAoaSkgPT4gKGkgPj0gaW5zZXJ0SW5kZXggPyBpICsgMSA6IGkpKTtcbiAgICAgICAgdmFsaWRhdGVMaXN0VmFsdWUobmV3TGlzdCk7XG4gICAgICAgIG9uQWZ0ZXJBZGQgPT09IG51bGwgfHwgb25BZnRlckFkZCA9PT0gdm9pZCAwID8gdm9pZCAwIDogb25BZnRlckFkZCh2YWx1ZSwgaW5zZXJ0SW5kZXgpO1xuICAgIH0pO1xuICAgIGNvbnN0IHJlbW92ZUF0ID0gdXNlTWVtb2l6ZWRGbigoaW5kZXgpID0+IHtcbiAgICAgICAgaWYgKCFjYW5SZW1vdmUpXG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIGNvbnN0IG5ld0xpc3QgPSBbLi4ubGlzdF07XG4gICAgICAgIGNvbnN0IG5ld0tleXMgPSBbLi4ua2V5c1JlZi5jdXJyZW50XTtcbiAgICAgICAgbmV3TGlzdC5zcGxpY2UoaW5kZXgsIDEpO1xuICAgICAgICBuZXdLZXlzLnNwbGljZShpbmRleCwgMSk7XG4gICAgICAgIGtleXNSZWYuY3VycmVudCA9IG5ld0tleXM7XG4gICAgICAgIHNldEZpZWxkVmFsdWUoZnVsbE5hbWUsIG5ld0xpc3QpO1xuICAgICAgICByZW1hcExpc3RNZXRhKHN0b3JlLCBmdWxsTmFtZSwgKGkpID0+IHtcbiAgICAgICAgICAgIGlmIChpID09PSBpbmRleClcbiAgICAgICAgICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgICAgICAgIHJldHVybiBpID4gaW5kZXggPyBpIC0gMSA6IGk7XG4gICAgICAgIH0pO1xuICAgICAgICB2YWxpZGF0ZUxpc3RWYWx1ZShuZXdMaXN0KTtcbiAgICAgICAgb25BZnRlclJlbW92ZSA9PT0gbnVsbCB8fCBvbkFmdGVyUmVtb3ZlID09PSB2b2lkIDAgPyB2b2lkIDAgOiBvbkFmdGVyUmVtb3ZlKGluZGV4KTtcbiAgICB9KTtcbiAgICBjb25zdCBjb3B5ID0gdXNlTWVtb2l6ZWRGbigoaW5kZXgpID0+IHtcbiAgICAgICAgaWYgKCFjYW5BZGQpXG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIGNvbnN0IHZhbHVlID0gbGlzdFtpbmRleF0gPyBPYmplY3QuYXNzaWduKHt9LCBsaXN0W2luZGV4XSkgOiB7fTtcbiAgICAgICAgYWRkKHZhbHVlLCBpbmRleCArIDEpO1xuICAgIH0pO1xuICAgIGNvbnN0IG1vdmUgPSB1c2VNZW1vaXplZEZuKChmcm9tLCB0bykgPT4ge1xuICAgICAgICBpZiAoZnJvbSA9PT0gdG8pXG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIGlmIChmcm9tIDwgMCB8fCBmcm9tID49IGxpc3QubGVuZ3RoIHx8IHRvIDwgMCB8fCB0byA+PSBsaXN0Lmxlbmd0aClcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgY29uc3QgbmV3TGlzdCA9IFsuLi5saXN0XTtcbiAgICAgICAgY29uc3QgbmV3S2V5cyA9IFsuLi5rZXlzUmVmLmN1cnJlbnRdO1xuICAgICAgICBjb25zdCBbbW92ZWRJdGVtXSA9IG5ld0xpc3Quc3BsaWNlKGZyb20sIDEpO1xuICAgICAgICBjb25zdCBbbW92ZWRLZXldID0gbmV3S2V5cy5zcGxpY2UoZnJvbSwgMSk7XG4gICAgICAgIG5ld0xpc3Quc3BsaWNlKHRvLCAwLCBtb3ZlZEl0ZW0pO1xuICAgICAgICBuZXdLZXlzLnNwbGljZSh0bywgMCwgbW92ZWRLZXkpO1xuICAgICAgICBrZXlzUmVmLmN1cnJlbnQgPSBuZXdLZXlzO1xuICAgICAgICBzZXRGaWVsZFZhbHVlKGZ1bGxOYW1lLCBuZXdMaXN0KTtcbiAgICAgICAgcmVtYXBMaXN0TWV0YShzdG9yZSwgZnVsbE5hbWUsIChpKSA9PiB7XG4gICAgICAgICAgICBpZiAoaSA9PT0gZnJvbSlcbiAgICAgICAgICAgICAgICByZXR1cm4gdG87XG4gICAgICAgICAgICBpZiAoZnJvbSA8IHRvKVxuICAgICAgICAgICAgICAgIHJldHVybiBpID4gZnJvbSAmJiBpIDw9IHRvID8gaSAtIDEgOiBpO1xuICAgICAgICAgICAgcmV0dXJuIGkgPj0gdG8gJiYgaSA8IGZyb20gPyBpICsgMSA6IGk7XG4gICAgICAgIH0pO1xuICAgIH0pO1xuICAgIGNvbnN0IGdldExpc3QgPSB1c2VNZW1vaXplZEZuKCgpID0+IGxpc3QpO1xuICAgIGNvbnN0IGFjdGlvbiA9IHVzZU1lbW8oKCkgPT4gKHsgYWRkLCByZW1vdmU6IHJlbW92ZUF0LCBtb3ZlLCBjb3B5LCBnZXRMaXN0IH0pLCBbYWRkLCByZW1vdmVBdCwgbW92ZSwgY29weSwgZ2V0TGlzdF0pO1xuICAgIC8vIFBlci1rZXkgY2FjaGUga2VlcHMgZWFjaCByb3cncyBmaWVsZCBvYmplY3QgaWRlbnRpdHkgc3RhYmxlIGFjcm9zcyBsaXN0XG4gICAgLy8gY29tbWl0cyAoZS5nLiB0eXBpbmcgaW4gYSBzaWJsaW5nIHJvdyksIHNvIG1lbW9pemVkIHJvdyBjb250ZW50IHNlZXNcbiAgICAvLyBzaGFsbG93LWVxdWFsIHByb3BzIGFuZCBiYWlscyBvdXQuXG4gICAgY29uc3QgZmllbGRPYmpDYWNoZSA9IHVzZVJlZihuZXcgTWFwKCkpO1xuICAgIGNvbnN0IG1hcHBlZEZpZWxkcyA9IHVzZU1lbW8oKCkgPT4ge1xuICAgICAgICBjb25zdCBuZXh0Q2FjaGUgPSBuZXcgTWFwKCk7XG4gICAgICAgIGNvbnN0IGZpZWxkcyA9IGxpc3QubWFwKChfaXRlbSwgaW5kZXgpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IGtleSA9IGtleXNSZWYuY3VycmVudFtpbmRleF0gfHwgYGZhbGxiYWNrXyR7aW5kZXh9YDtcbiAgICAgICAgICAgIGNvbnN0IGZpZWxkTmFtZSA9IGAke2Z1bGxOYW1lfS4ke2luZGV4fWA7XG4gICAgICAgICAgICBjb25zdCBjYWNoZWQgPSBmaWVsZE9iakNhY2hlLmN1cnJlbnQuZ2V0KGtleSk7XG4gICAgICAgICAgICBjb25zdCBmaWVsZCA9IGNhY2hlZCAmJiBjYWNoZWQubmFtZSA9PT0gZmllbGROYW1lID8gY2FjaGVkIDogeyBuYW1lOiBmaWVsZE5hbWUsIGtleSB9O1xuICAgICAgICAgICAgbmV4dENhY2hlLnNldChrZXksIGZpZWxkKTtcbiAgICAgICAgICAgIHJldHVybiBmaWVsZDtcbiAgICAgICAgfSk7XG4gICAgICAgIGZpZWxkT2JqQ2FjaGUuY3VycmVudCA9IG5leHRDYWNoZTtcbiAgICAgICAgcmV0dXJuIGZpZWxkcztcbiAgICB9LCBbbGlzdCwgZnVsbE5hbWVdKTtcbiAgICAvLyBNZW1vaXplZCBzbyB0aGUgcm93IGZhY3RvcnkgaXMgcmUtaW52b2tlZCBvbmx5IHdoZW4gdGhlIGxpc3QgaXRzZWxmIChvclxuICAgIC8vIHRoZSBjb25zdW1lci1wcm92aWRlZCBjaGlsZHJlbikgY2hhbmdlcyDigJQgbmV2ZXIgZm9yIHVucmVsYXRlZCBjb21taXRzLlxuICAgIGNvbnN0IGxpc3REb20gPSB1c2VNZW1vKCgpID0+ICh0eXBlb2YgY2hpbGRyZW4gPT09ICdmdW5jdGlvbicgPyBjaGlsZHJlbihtYXBwZWRGaWVsZHMsIGFjdGlvbikgOiBjaGlsZHJlbiksIFtjaGlsZHJlbiwgbWFwcGVkRmllbGRzLCBhY3Rpb25dKTtcbiAgICAvLyBBY3Rpb24gYnV0dG9ucyBwZXIgcm93IOKAlCBMaXN0Um93QWN0aW9ucyBpcyB0aGUgbWVtbyBib3VuZGFyeVxuICAgIGNvbnN0IGFjdGlvblJvd3MgPSBsaXN0Lm1hcCgocmVjb3JkLCBpbmRleCkgPT4gKF9qc3goTGlzdFJvd0FjdGlvbnMsIHsgaW5kZXg6IGluZGV4LCByZWNvcmQ6IHJlY29yZCwgY2FuQWRkOiBjYW5BZGQsIGNhblJlbW92ZTogY2FuUmVtb3ZlLCBjb3B5SWNvblByb3BzOiBjb3B5SWNvblByb3BzLCBkZWxldGVJY29uUHJvcHM6IGRlbGV0ZUljb25Qcm9wcywgYWN0aW9uOiBhY3Rpb24sIGFjdGlvblJlbmRlcjogYWN0aW9uUmVuZGVyLCBpdGVtUmVuZGVyOiBpdGVtUmVuZGVyLCBvbkNvcHk6IGNvcHksIG9uUmVtb3ZlOiByZW1vdmVBdCB9LCBrZXlzUmVmLmN1cnJlbnRbaW5kZXhdIHx8IGluZGV4KSkpO1xuICAgIC8vIENyZWF0b3IgYnV0dG9uXG4gICAgY29uc3QgaGFzQ3JlYXRvciA9IGNyZWF0b3JCdXR0b25Qcm9wcyAhPT0gZmFsc2U7XG4gICAgY29uc3QgY3JlYXRvckNvbmZpZyA9IGhhc0NyZWF0b3IgJiYgdHlwZW9mIGNyZWF0b3JCdXR0b25Qcm9wcyA9PT0gJ29iamVjdCcgPyBjcmVhdG9yQnV0dG9uUHJvcHMgOiB7fTtcbiAgICBjb25zdCBjcmVhdG9yUG9zaXRpb24gPSAoX2EgPSBjcmVhdG9yQ29uZmlnID09PSBudWxsIHx8IGNyZWF0b3JDb25maWcgPT09IHZvaWQgMCA/IHZvaWQgMCA6IGNyZWF0b3JDb25maWcucG9zaXRpb24pICE9PSBudWxsICYmIF9hICE9PSB2b2lkIDAgPyBfYSA6ICdib3R0b20nO1xuICAgIGNvbnN0IGNyZWF0b3JUZXh0ID0gKF9iID0gY3JlYXRvckNvbmZpZyA9PT0gbnVsbCB8fCBjcmVhdG9yQ29uZmlnID09PSB2b2lkIDAgPyB2b2lkIDAgOiBjcmVhdG9yQ29uZmlnLnRleHQpICE9PSBudWxsICYmIF9iICE9PSB2b2lkIDAgPyBfYiA6IERFRkFVTFRfVEVYVC5hZGQ7XG4gICAgY29uc3QgY3JlYXRvckJ1dHRvbiA9IGhhc0NyZWF0b3IgPyAoX2pzeChCdXR0b24sIHsgdHlwZTogXCJidXR0b25cIiwgY29sb3I6IFwic2Vjb25kYXJ5XCIsIG9uQ2xpY2s6ICgpID0+IHtcbiAgICAgICAgICAgIGlmIChjcmVhdG9yUG9zaXRpb24gPT09ICd0b3AnKSB7XG4gICAgICAgICAgICAgICAgYWRkKHt9LCAwKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgIGFkZCgpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9LCBkaXNhYmxlZDogIWNhbkFkZCwgY2hpbGRyZW46IGNyZWF0b3JUZXh0IH0pKSA6IG51bGw7XG4gICAgY29uc3QgZm9ybUxpc3RDb250ZXh0VmFsdWUgPSB1c2VNZW1vKCgpID0+ICh7IGxpc3ROYW1lOiBmdWxsTmFtZSB9KSwgW2Z1bGxOYW1lXSk7XG4gICAgcmV0dXJuIChfanN4KEZvcm1MaXN0Q29udGV4dC5Qcm92aWRlciwgeyB2YWx1ZTogZm9ybUxpc3RDb250ZXh0VmFsdWUsIGNoaWxkcmVuOiBfanN4cyhcImRpdlwiLCB7IGNsYXNzTmFtZTogY2xhc3NlcygpLCBjaGlsZHJlbjogW2xhYmVsICYmIF9qc3goVHlwb2dyYXBoeUxhYmVsLCB7IGNsYXNzTmFtZTogY2xhc3NlcygnbGFiZWwnKSwgc2l6ZTogUFJPRk9STV9MSVNUX0xBQkVMX1NJWkUsIGNvbG9yOiBQUk9GT1JNX0xJU1RfTEFCRUxfQ09MT1IsIGNoaWxkcmVuOiBsYWJlbCB9KSwgY3JlYXRvclBvc2l0aW9uID09PSAndG9wJyAmJiBjcmVhdG9yQnV0dG9uLCBfanN4KFwiZGl2XCIsIHsgY2xhc3NOYW1lOiBjbGFzc2VzKCdjb250ZW50JyksIGNoaWxkcmVuOiBsaXN0RG9tIH0pLCBfanN4KFwiZGl2XCIsIHsgY2xhc3NOYW1lOiBjbGFzc2VzKCdhY3Rpb25zJyksIGNoaWxkcmVuOiBhY3Rpb25Sb3dzIH0pLCBjcmVhdG9yUG9zaXRpb24gPT09ICdib3R0b20nICYmIGNyZWF0b3JCdXR0b24sIGxpc3RFcnJvciAmJiBfanN4KFR5cG9ncmFwaHlCb2R5LCB7IGFzOiBcImRpdlwiLCBzaXplOiBcInNtXCIsIGNvbG9yOiBcImRhbmdlclwiLCBjaGlsZHJlbjogbGlzdEVycm9yIH0pXSB9KSB9KSk7XG59O1xuUHJvRm9ybUxpc3RCYXNlLmRpc3BsYXlOYW1lID0gJ1Byb0Zvcm1MaXN0JztcbmV4cG9ydCBjb25zdCBQcm9Gb3JtTGlzdCA9IG1lbW8oUHJvRm9ybUxpc3RCYXNlKTtcbmV4cG9ydCBkZWZhdWx0IFByb0Zvcm1MaXN0OyIsbnVsbF0sInNvdXJjZVJvb3QiOiIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMifQ==
|
|
@@ -4,6 +4,8 @@ export declare const FORM_LAYOUTS: readonly ["vertical"];
|
|
|
4
4
|
export declare const LABEL_ALIGNS: readonly ["left", "right"];
|
|
5
5
|
export declare const VALIDATE_STATUSES: readonly ["success", "warning", "error", "validating"];
|
|
6
6
|
export declare const VALIDATE_TRIGGERS: readonly ["onChange", "onBlur"];
|
|
7
|
+
export declare const RULE_CONTEXT_READ_MEMBERS: readonly ["getFieldError", "getFieldWarning", "isFieldTouched", "isFieldValidating"];
|
|
8
|
+
export declare const RULE_CONTEXT_MUTATOR_MEMBERS: readonly ["setFieldValue", "setFieldsValue", "resetFields"];
|
|
7
9
|
export type FormSize = (typeof FORM_SIZES)[number];
|
|
8
10
|
export type FormLayout = (typeof FORM_LAYOUTS)[number];
|
|
9
11
|
export type LabelAlign = (typeof LABEL_ALIGNS)[number];
|