BookSystem/frontend/node_modules/@fast-crud/ui-element/dist/ui-element.mjs

897 lines
56 KiB
JavaScript
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

import { version as P, ElDialog as F, useFormItem as N, TableV2Placeholder as T, ElMessage as I, ElNotification as H, ElMessageBox as E } from "element-plus";
import { useUiRender as _, uiContext as D } from "@fast-crud/ui-interface";
import { computed as L, unref as G, createVNode as w, resolveComponent as k, createTextVNode as O } from "vue";
import { forEach as $, isFunction as x, union as z } from "lodash-es";
import * as W from "@element-plus/icons-vue";
const j = (g, p) => {
const e = g.split("."), a = p.split(".");
for (let n = 0; n < e.length; n++) {
const l = parseInt(e[n]), o = parseInt(a[n]);
if (l > o)
return !0;
if (l < o)
return !1;
}
return !1;
}, U = j(P, "2.10.5"), {
buildBinding: b,
creator: t
} = _();
class A {
constructor(p) {
this.type = "element", this.modelValue = "modelValue", this.switch = t({
activeColor: "active-color",
activeText: "active-text",
activeValue: "active-value",
inactiveColor: "inactive-color",
inactiveText: "inactive-text",
inactiveValue: "inactive-value",
modelValue: "modelValue",
name: "el-switch"
}), this.formWrapper = t({
visible: "modelValue",
customClass: (e) => "class",
titleSlotName: "header",
buildOnClosedBind(e, a) {
return {
onClosed: a
};
},
buildWidthBind(e, a) {
return {
width: a
};
},
buildInitBind(e) {
return {};
},
buildInnerBind() {
return {};
},
name: "fs-form-wrapper"
}), this.messageBox = t({
name: "el-message-box",
instance: void 0,
open: async (e) => this.messageBox.instance(e),
confirm: async (e) => this.messageBox.instance(e)
}), this.message = t({
instance: void 0,
name: "el-message",
open: (e) => {
this.message.instance.open(e);
},
success: (e) => {
this.message.instance.success(e);
},
error: (e) => {
this.message.instance.error(e);
},
warn: (e) => {
this.message.instance.warning(e);
},
info: (e) => {
this.message.instance(e);
}
}), this.notification = t({
instance: void 0,
name: "el-notification",
open: (e) => {
this.notification.instance.open(e);
},
success: (e) => {
this.notification.instance.success(e);
},
error: (e) => {
this.notification.instance.error(e);
},
warn: (e) => {
this.notification.instance.warn(e);
},
info: (e) => {
this.notification.instance.success(e);
}
}), this.icon = t({
name: "",
isComponent: !1
}), this.icons = {
add: "plus",
columnsFilter: "set-up",
compact: "rank",
edit: "edit",
remove: "delete",
search: "search",
refresh: "refresh",
export: "upload",
check: "check",
sort: "sort",
left: "arrow-left",
right: "arrow-right",
close: "close",
arrowLeft: "left",
arrowRight: "right",
more: "more",
plus: "plus",
zoomIn: "zoom-in",
zoomOut: "zoom-out",
refreshLeft: "refresh-left",
refreshRight: "refresh-right",
upload: "upload",
fullScreen: "full-screen",
unFullScreen: "full-screen",
question: "question-filled",
caretUp: "CaretTop",
caretDown: "CaretBottom",
eye: "View",
info: "warning"
}, this.dialog = t({
name: "el-dialog",
visible: "modelValue",
customClass: "class",
titleSlotName: "header",
footerSlotName: "footer",
buildOnClosedBind(e) {
return {
onClosed: e
};
},
footer() {
return {};
},
open(e) {
F.open(e);
},
builder(e) {
return b(this, e, {
props: {
title: e.title,
width: e.width
},
slots: {
footer: e.footer
}
});
}
}), this.buttonGroup = t({
name: "el-button-group"
}), this.col = t({
name: "el-col"
}), this.row = t({
name: "el-row"
}), this.card = t({
name: "el-card"
}), this.checkboxGroup = t({
name: "el-checkbox-group",
modelValue: "modelValue"
}), this.checkbox = t({
name: "el-checkbox",
resolveEvent(e) {
return e;
},
modelValue: "modelValue",
value: "value",
onChange(e) {
return {
"onUpdate:modelValue": e
};
}
}), this.drawer = t({
name: "el-drawer",
visible: "modelValue",
customClass: "class",
width: "size"
}), this.collapseTransition = t({
name: "el-collapse-transition"
}), this.option = t({
name: U ? null : "el-option",
value: "value",
label: "label"
}), this.select = t({
name: "el-select",
modelValue: "modelValue",
clearable: "clearable",
filterable: "filterable",
buildMultiBinding(e) {
return {
multiple: e
};
}
}), this.treeSelect = t({
name: "el-tree-select",
modelValue: "modelValue",
clearable: "select.clearable",
options: "data",
value: "tree.value",
label: "tree.label",
children: "tree.children",
buildOptionKeysNameBinding(e) {
return {
props: {
label: e.label,
value: e.value,
children: e.children
}
};
}
}), this.radio = t({
name: "el-radio",
value: "value",
builder(e) {
return b(this, e, {
props: {
[this.value]: e.value
}
});
}
}), this.radioButton = t({
name: "el-radio-button",
value: "value",
builder(e) {
return b(this, e, {
props: {
[this.value]: e.value
}
});
}
}), this.radioGroup = t({
name: "el-radio-group",
modelValue: "modelValue"
}), this.cascader = t({
name: "el-cascader",
modelValue: "modelValue",
clearable: "clearable",
fieldNames(e) {
return {
props: e
};
}
}), this.form = t({
name: "el-form",
inlineLayout: {
layout: "inline",
inline: !0
},
validateWrap: async (e) => e.validate(),
transformValidateErrors: (e) => {
const a = {};
return $(e, (n, l) => {
a[l] = !0;
}), a;
}
}), this.formItem = t({
name: "el-form-item",
prop: "prop",
label: "label",
rules: "rules",
skipValidationWrapper: "div",
injectFormItemContext() {
const {
formItem: e
} = N();
return {
async onChange() {
await (e == null ? void 0 : e.validate("change"));
},
async onBlur() {
await (e == null ? void 0 : e.validate("blur"));
}
};
},
builder(e) {
return b(this, e, {});
}
}), this.button = t({
name: "el-button",
textType: {
text: !0
},
linkType: {
link: !0,
type: "primary"
},
circle: {
circle: !0
},
colors: (e) => ({
type: e
})
}), this.pagination = t({
name: "el-pagination",
currentPage: "currentPage",
total: "total",
pageCount: null,
onChange({
setCurrentPage: e,
setPageSize: a,
doAfterChange: n
}) {
return {
// element 页码改动回调
onCurrentChange(l) {
e(l), n();
},
onSizeChange(l) {
a(l), n();
}
};
}
}), this.tableColumn = t({
name: "el-table-column",
label: "label",
prop: "prop",
row: "row",
index: "$index"
}), this.tableColumnGroup = t({
name: "el-table-column",
label: "label",
prop: "prop",
row: "row",
index: "$index"
}), this.table = t({
name: "el-table",
data: "data",
renderMode: "slot",
defaultRowKey: "id",
fixedHeaderNeedComputeBodyHeight: !1,
buildMaxHeight: (e) => ({
maxHeight: e
}),
hasMaxHeight: (e) => (e == null ? void 0 : e.maxHeight) != null,
headerDomSelector: "",
vLoading: "loading",
// 没太大用
setSelectedRows({
multiple: e,
selectedRowKeys: a,
tableRef: n,
getRowKey: l
}) {
const o = l(), i = [];
for (const s of a.value)
for (const r of n.data) {
let u = null;
x(o) ? u = o(r) : u = r[o], u === s && i.push(r);
}
if (e)
for (const s of i)
n.toggleRowSelection(s, !0);
else
a.value.length > 0 && n.setCurrentRow(i[0]);
},
buildSelectionCrudOptions(e) {
const {
compute: a
} = e.useCompute();
function n(l) {
const o = e.getRowKey(), i = e.getPageData();
let s = o;
x(o) || (s = (c) => c[o]);
const r = i.map(s), u = e.selectedRowKeys instanceof Function ? e.selectedRowKeys() : e.selectedRowKeys;
u.value || (u.value = []);
const d = u.value.filter((c) => !r.includes(c));
return z(d, l);
}
if (e.multiple)
return {
table: {
onSelectionChange: (o = []) => {
const i = e.getRowKey();
let s = o.map((r) => x(i) ? i(r) : r[i]);
e.crossPage && (s = n(s)), e.onSelectedKeysChanged(s);
}
},
columns: {
$checked: {
form: {
show: !1
},
column: {
type: "selection",
align: "center",
width: "55px",
order: -9999,
reserveSelection: e.crossPage,
columnSetDisabled: !0
//禁止在列设置中选择
}
}
}
};
{
const l = (s) => {
if (s == null) {
e.onSelectedKeysChanged([]);
return;
}
const r = e.getRowKey(), u = [x(r) ? r(s) : s[r]];
e.onSelectedKeysChanged(u);
}, o = e.selectedRowKeys instanceof Function ? e.selectedRowKeys() : e.selectedRowKeys, i = L(() => o.value.length > 0 ? o.value[0] : null);
return {
table: {
highlightCurrentRow: !0,
onCurrentChange: l
},
columns: {
$selected: {
form: {
show: !1
},
column: {
align: "center",
width: "55px",
order: -9999,
component: {
name: "el-radio",
label: a((s) => {
if (s.form) {
const r = e.getRowKey();
return x(r) ? r(s.form) : s.form[r];
}
}),
props: {
modelValue: i
},
slots: {
default() {
return "";
}
}
},
conditionalRender: {
match() {
return !1;
}
}
}
}
}
};
}
},
rebuildRenderScope: (e) => e,
scrollTo(e) {
var a, n;
(n = (a = e.tableRef) == null ? void 0 : a.value) == null || n.setScrollTop(e.top);
},
onChange({
onSortChange: e,
onFilterChange: a,
bubbleUp: n
}) {
return {
onSortChange: (l) => {
const {
column: o,
prop: i,
order: s
} = l;
e && e({
isServerSort: i && o.sortable === "custom",
prop: i,
order: s,
asc: s === "ascending"
}), n((r) => {
r.onSortChange && r.onSortChange(l);
});
},
onFilterChange: (l) => {
a(l), n((o) => {
o.onFilterChange && o.onFilterChange(l);
});
}
};
}
}), this.tableColumnV2 = t({
name: "el-table-column",
label: "label",
prop: "prop",
row: "row",
index: "$index"
}), this.tableColumnGroupV2 = t({
name: "el-table-column",
label: "label",
prop: "prop",
row: "row",
index: "$index"
}), this.tableV2 = t({
name: "el-table-v2",
data: "data",
renderMode: "jsx",
defaultRowKey: "id",
fixedHeaderNeedComputeBodyHeight: !1,
renderMethod: "cellRenderer",
columnsIsFlat: !0,
//构建自定义表头插槽方法element-table-v2需要自己写多级表头
buildMultiHeadersBind(e) {
const a = e.flatColumns;
e.treeColumns;
function n(u, d = 1) {
let c = 0;
for (const v of u)
if (v._parent == null)
c = Math.max(c, d);
else {
const y = n([v._parent], d + 1);
c = Math.max(c, y);
}
return c;
}
let l = 50;
const o = n(a);
o > 1 && (l = l - (o - 1) * 10, l = Math.max(30, l));
const i = o * l;
function s(u) {
const d = [];
for (const c of u)
c.children && c.children.length > 0 ? d.push(...s(c.children)) : d.push(c);
return d;
}
function r(u) {
const d = s(u);
let c = 0;
for (const v of d)
c += v.width;
return c;
}
return {
bind: {
headerHeight: i
},
slots: {
header: ({
cells: u,
columns: d,
headerIndex: c
}) => {
const v = {};
d.forEach((m, h) => {
v[m.key] = {
column: m,
index: h
};
});
const y = [], S = [];
function R(m, h) {
const C = [];
for (const f of m)
if (!f.children || f.children.length == 0)
C.push(w("div", {
class: "custom-header-cell fs-multi-head-text el-table-v2__header-cell-text",
style: {
width: f.width + "px",
height: l * h + "px",
justifyContent: f.align
}
}, [f.title])), S.push(f.key);
else {
const V = r(f.children);
C.push(w("div", {
class: "fs-multi-head-group "
}, [w("div", {
class: "custom-header-cell fs-multi-head-text el-table-v2__header-cell-text",
style: {
width: V + "px",
height: l + "px",
justifyContent: f.align
}
}, [f.title]), w("div", {
class: "fs-multi-head-sub "
}, [R(f.children, h - 1)])]));
}
return C;
}
function K(m, h = 1) {
return m._parent ? (h = h + 1, K(m._parent, h)) : {
parent: m,
deep: h
};
}
return d.forEach((m, h) => {
if ((m == null ? void 0 : m.placeholderSign) === T) {
y.push(u[h]);
return;
}
if (!S.includes(m.key))
if (m._parent) {
const {
parent: C,
deep: f
} = K(m), V = R([C], o);
y.push(...V);
} else
y.push(u[h]);
}), y;
}
}
};
},
rebuildRenderScope: (e) => ({
...e,
index: e.rowIndex,
row: e.rowData
}),
buildMaxHeight: (e) => ({
maxHeight: e
}),
hasMaxHeight: (e) => !1,
headerDomSelector: "",
vLoading: "loading",
// 没太大用
setSelectedRows({
multiple: e,
selectedRowKeys: a,
tableRef: n,
getRowKey: l
}) {
const o = l(), i = [];
for (const s of a.value)
for (const r of n.data)
r[o] === s && i.push(r);
if (e)
for (const s of i)
n.toggleRowSelection(s, !0);
else
a.value.length > 0 && n.setCurrentRow(i[0]);
},
buildSelectionCrudOptions(e) {
const a = (n = []) => {
e.onSelectedKeysChanged(n);
};
return G(e), {
table: {
// checkedRowKeys: req.selectedRowKeys,
// "onUpdate:checkedRowKeys": onSelectionChange
},
columns: {
$checked: {
form: {
show: !1
},
column: {
multiple: !!e.multiple,
align: "center",
width: 80,
order: -9999,
fixed: e.selectionFixed,
columnSetDisabled: !0,
cellRenderer: ({
rowData: n
}) => {
const l = e.selectedRowKeys instanceof Function ? e.selectedRowKeys() : e.selectedRowKeys;
l.value || (l.value = []);
const o = (s) => {
s ? l.value.push(n[e.getRowKey()]) : l.value = l.value.filter((r) => r !== n[e.getRowKey()]), a(l.value);
}, i = l.value.includes(n[e.getRowKey()]);
return w(k("ElCheckbox"), {
onChange: o,
modelValue: i
}, null);
},
headerCellRenderer: (n) => {
const l = e.getPageData() || [], o = e.selectedRowKeys instanceof Function ? e.selectedRowKeys() : e.selectedRowKeys, i = (u) => {
u ? o.value = l.map((d) => d[e.getRowKey()]) : o.value = [];
}, s = l.length > 0 && l.every((u) => o.value.includes(u[e.getRowKey()])), r = l.some((u) => o.value.includes(u[e.getRowKey()]));
return w(k("el-checkbox"), {
onChange: i,
modelValue: s,
indeterminate: r && !s
}, null);
}
}
}
}
};
},
scrollTo(e) {
var a, n;
(n = (a = e.tableRef) == null ? void 0 : a.value) == null || n.scrollToTop(e.top);
},
onChange({
onSortChange: e,
onFilterChange: a,
bubbleUp: n
}) {
return {
onSortChange: (l) => {
const {
column: o,
prop: i,
order: s
} = l;
e && e({
isServerSort: i && o.sortable === "custom",
prop: i,
order: s,
asc: s === "ascending"
}), n((r) => {
r.onSortChange && r.onSortChange(l);
});
},
onFilterChange: (l) => {
a(l), n((o) => {
o.onFilterChange && o.onFilterChange(l);
});
}
};
}
}), this.textArea = t({
name: "el-input",
type: "textarea",
modelValue: "modelValue",
clearable: "clearable"
}), this.tag = t({
name: "el-tag",
type: "type",
colors: ["info", "success", "warning", "danger"]
}), this.inputGroup = t({
name: "el-input-group"
}), this.input = t({
name: "el-input",
clearable: "clearable",
modelValue: "modelValue"
}), this.inputPassword = t({
name: "el-input",
clearable: "clearable",
modelValue: "modelValue",
passwordType: {
showPassword: !0
}
}), this.number = t({
name: "el-input-number",
modelValue: "modelValue",
builder(e) {
return b(this, e, {});
}
}), this.datePicker = t({
name: "el-date-picker",
modelValue: "modelValue",
buildDateType(e) {
return {
name: "el-date-picker",
type: e
};
}
}), this.timePicker = t({
name: "el-time-picker",
modelValue: "modelValue"
}), this.dropdown = t({
name: "el-dropdown",
command(e) {
return {
onCommand(a) {
e(a);
}
};
},
slotName: "dropdown",
renderMode: "slot"
}), this.dropdownMenu = t({
name: "el-dropdown-menu",
command: () => ({})
}), this.dropdownItem = t({
name: "el-dropdown-item",
command: "command"
}), this.imageGroup = t({
name: "fs-box"
}), this.image = t({
name: "el-image",
buildPreviewBind: ({
url: e,
urls: a,
previewUrl: n,
previewUrls: l,
index: o
}) => ({
"preview-src-list": l,
"initial-index": o
}),
fallback: "error"
}), this.progress = t({
name: "el-progress"
}), this.loading = t({
name: "loading",
type: "directive"
}), this.upload = t({
id: "uid",
name: "el-upload",
type: "",
typeImageCard: "picture-card",
typeImage: "picture",
getStatusFromEvent(e) {
return e == null ? void 0 : e.status;
},
getFileListFromEvent(e, a, n) {
return n;
},
status: {
success: "success",
uploading: "uploading"
},
isSuccess(e) {
return e.status === "success";
},
limitAdd: 1
}), this.tabs = t({
name: "el-tabs",
modelValue: "modelValue",
tabChange: "tabChange"
}), this.tabPane = t({
name: "el-tab-pane",
key: "name",
tab: "label"
}), this.collapse = t({
name: "el-collapse",
modelValue: "modelValue",
keyName: "name"
}), this.collapseItem = t({
name: "el-collapse-item",
key: "name",
titleSlotName: "title",
/**
* element collapse只支持title插槽
*/
extraSlotName: "not_support_extra",
builder(e) {
return b(this, e, {
slots: {
[this.titleSlotName]() {
return w("div", {
class: "fsel-collapse-item-title fsel-flex-row space-between"
}, [w("span", {
class: "title-text"
}, [e.titleSlot(), O(" ")]), w("span", {
class: "title-extra"
}, [e.extraSlot()])]);
}
}
});
}
}), this.badge = t({
name: "el-badge",
value: "value",
dot: "isDot",
builder(e) {
return b(this, e, {
props: {
[this.value]: e.value
}
});
}
}), this.tooltip = t({
name: "el-tooltip",
content: "content",
trigger: "default"
}), this.divider = t({
name: "el-divider"
}), this.popover = t({
name: "el-popover",
contentSlotName: "default",
triggerSlotName: "reference",
visible: "visible"
}), p && (this.notification.instance = p.Notification, this.message.instance = p.Message, this.messageBox.instance = p.MessageBox);
}
}
const B = W;
function J(g) {
for (const p in B)
g.component(p, B[p]);
}
function M() {
const g = new A({
Message: I,
Notification: H,
MessageBox: E
});
return D.set(g), g;
}
const q = {
install(g, p = {}) {
return p.setupIcons !== !1 && J(g), M();
},
set: M
};
export {
A as Element,
q as default
};
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidWktZWxlbWVudC5tanMiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9lbGVtZW50LnRzeCIsIi4uLy4uL3NyYy9pY29ucy50cyIsIi4uLy4uL3NyYy9pbmRleC50cyJdLCJzb3VyY2VzQ29udGVudCI6W251bGwsbnVsbCxudWxsXSwibmFtZXMiOlsidmVyc2lvbkdyZWF0ZXJUaGFuIiwidjEiLCJ2MiIsInYxUGFydHMiLCJzcGxpdCIsInYyUGFydHMiLCJpIiwibGVuZ3RoIiwidjFQYXJ0IiwicGFyc2VJbnQiLCJ2MlBhcnQiLCJzZWxlY3RPcHRpb25zUHJvcHNWZXJzaW9uIiwidmVyc2lvbiIsImJ1aWxkQmluZGluZyIsImNyZWF0b3IiLCJ1c2VVaVJlbmRlciIsIkVsZW1lbnQiLCJjb25zdHJ1Y3RvciIsInRhcmdldCIsInR5cGUiLCJtb2RlbFZhbHVlIiwic3dpdGNoIiwiYWN0aXZlQ29sb3IiLCJhY3RpdmVUZXh0IiwiYWN0aXZlVmFsdWUiLCJpbmFjdGl2ZUNvbG9yIiwiaW5hY3RpdmVUZXh0IiwiaW5hY3RpdmVWYWx1ZSIsIm5hbWUiLCJmb3JtV3JhcHBlciIsInZpc2libGUiLCJjdXN0b21DbGFzcyIsImlzIiwidGl0bGVTbG90TmFtZSIsImJ1aWxkT25DbG9zZWRCaW5kIiwib25DbG9zZWQiLCJidWlsZFdpZHRoQmluZCIsIndpZHRoIiwiYnVpbGRJbml0QmluZCIsImJ1aWxkSW5uZXJCaW5kIiwibWVzc2FnZUJveCIsImluc3RhbmNlIiwidW5kZWZpbmVkIiwib3BlbiIsImNvbnRleHQiLCJjb25maXJtIiwibWVzc2FnZSIsInN1Y2Nlc3MiLCJtc2ciLCJlcnJvciIsIndhcm4iLCJ3YXJuaW5nIiwiaW5mbyIsIm5vdGlmaWNhdGlvbiIsImljb24iLCJpc0NvbXBvbmVudCIsImljb25zIiwiYWRkIiwiY29sdW1uc0ZpbHRlciIsImNvbXBhY3QiLCJlZGl0IiwicmVtb3ZlIiwic2VhcmNoIiwicmVmcmVzaCIsImV4cG9ydCIsImNoZWNrIiwic29ydCIsImxlZnQiLCJyaWdodCIsImNsb3NlIiwiYXJyb3dMZWZ0IiwiYXJyb3dSaWdodCIsIm1vcmUiLCJwbHVzIiwiem9vbUluIiwiem9vbU91dCIsInJlZnJlc2hMZWZ0IiwicmVmcmVzaFJpZ2h0IiwidXBsb2FkIiwiZnVsbFNjcmVlbiIsInVuRnVsbFNjcmVlbiIsInF1ZXN0aW9uIiwiY2FyZXRVcCIsImNhcmV0RG93biIsImV5ZSIsImRpYWxvZyIsImZvb3RlclNsb3ROYW1lIiwiZm9vdGVyIiwib3B0cyIsIkVsRGlhbG9nIiwiYnVpbGRlciIsInByb3BzIiwidGl0bGUiLCJzbG90cyIsImJ1dHRvbkdyb3VwIiwiY29sIiwicm93IiwiY2FyZCIsImNoZWNrYm94R3JvdXAiLCJjaGVja2JveCIsInJlc29sdmVFdmVudCIsImUiLCJ2YWx1ZSIsIm9uQ2hhbmdlIiwiY2FsbGJhY2siLCJkcmF3ZXIiLCJjb2xsYXBzZVRyYW5zaXRpb24iLCJvcHRpb24iLCJsYWJlbCIsInNlbGVjdCIsImNsZWFyYWJsZSIsImZpbHRlcmFibGUiLCJidWlsZE11bHRpQmluZGluZyIsIm11bHRpcGxlIiwidHJlZVNlbGVjdCIsIm9wdGlvbnMiLCJjaGlsZHJlbiIsImJ1aWxkT3B0aW9uS2V5c05hbWVCaW5kaW5nIiwicGFyYW0iLCJyYWRpbyIsInJhZGlvQnV0dG9uIiwicmFkaW9Hcm91cCIsImNhc2NhZGVyIiwiZmllbGROYW1lcyIsIm5hbWVzTWFwIiwiZm9ybSIsImlubGluZUxheW91dCIsImxheW91dCIsImlubGluZSIsInZhbGlkYXRlV3JhcCIsImZvcm1SZWYiLCJ2YWxpZGF0ZSIsInRyYW5zZm9ybVZhbGlkYXRlRXJyb3JzIiwiZXJyb3JzIiwiZm9yRWFjaCIsIml0ZW0iLCJrZXkiLCJmb3JtSXRlbSIsInByb3AiLCJydWxlcyIsInNraXBWYWxpZGF0aW9uV3JhcHBlciIsImluamVjdEZvcm1JdGVtQ29udGV4dCIsInVzZUZvcm1JdGVtIiwib25CbHVyIiwiYnV0dG9uIiwidGV4dFR5cGUiLCJ0ZXh0IiwibGlua1R5cGUiLCJsaW5rIiwiY2lyY2xlIiwiY29sb3JzIiwicGFnaW5hdGlvbiIsImN1cnJlbnRQYWdlIiwidG90YWwiLCJwYWdlQ291bnQiLCJzZXRDdXJyZW50UGFnZSIsInNldFBhZ2VTaXplIiwiZG9BZnRlckNoYW5nZSIsIm9uQ3VycmVudENoYW5nZSIsImV2ZW50Iiwib25TaXplQ2hhbmdlIiwidGFibGVDb2x1bW4iLCJpbmRleCIsInRhYmxlQ29sdW1uR3JvdXAiLCJ0YWJsZSIsImRhdGEiLCJyZW5kZXJNb2RlIiwiZGVmYXVsdFJvd0tleSIsImZpeGVkSGVhZGVyTmVlZENvbXB1dGVCb2R5SGVpZ2h0IiwiYnVpbGRNYXhIZWlnaHQiLCJtYXhIZWlnaHQiLCJoYXNNYXhIZWlnaHQiLCJoZWFkZXJEb21TZWxlY3RvciIsInZMb2FkaW5nIiwic2V0U2VsZWN0ZWRSb3dzIiwic2VsZWN0ZWRSb3dLZXlzIiwidGFibGVSZWYiLCJnZXRSb3dLZXkiLCJyb3dLZXkiLCJjdXJTZWxlY3RlZFJvd3MiLCJsaW5lS2V5IiwiaXNGdW5jdGlvbiIsInB1c2giLCJ0b2dnbGVSb3dTZWxlY3Rpb24iLCJzZXRDdXJyZW50Um93IiwiYnVpbGRTZWxlY3Rpb25DcnVkT3B0aW9ucyIsInJlcSIsImNvbXB1dGUiLCJ1c2VDb21wdXRlIiwiZ2V0Q3Jvc3NQYWdlU2VsZWN0ZWQiLCJjdXJTZWxlY3RlZElkcyIsImdldFBhZ2VEYXRhIiwibWFwSWQiLCJjdXJyZW50SWRzIiwibWFwIiwiRnVuY3Rpb24iLCJvdGhlclBhZ2VTZWxlY3RlZCIsImZpbHRlciIsImluY2x1ZGVzIiwidW5pb24iLCJvblNlbGVjdGlvbkNoYW5nZSIsImNoYW5nZWRSb3dzIiwic2VsZWN0ZWRLZXlzIiwiY3Jvc3NQYWdlIiwib25TZWxlY3RlZEtleXNDaGFuZ2VkIiwiY29sdW1ucyIsIiRjaGVja2VkIiwic2hvdyIsImNvbHVtbiIsImFsaWduIiwib3JkZXIiLCJyZXNlcnZlU2VsZWN0aW9uIiwiY29sdW1uU2V0RGlzYWJsZWQiLCJjaGFuZ2VkIiwiY29tcHV0ZWQiLCJoaWdobGlnaHRDdXJyZW50Um93IiwiJHNlbGVjdGVkIiwiY29tcG9uZW50IiwiY3R4IiwiZGVmYXVsdCIsImNvbmRpdGlvbmFsUmVuZGVyIiwibWF0Y2giLCJyZWJ1aWxkUmVuZGVyU2NvcGUiLCJzY29wZSIsInNjcm9sbFRvIiwic2V0U2Nyb2xsVG9wIiwidG9wIiwib25Tb3J0Q2hhbmdlIiwib25GaWx0ZXJDaGFuZ2UiLCJidWJibGVVcCIsImlzU2VydmVyU29ydCIsInNvcnRhYmxlIiwiYXNjIiwiZXZlbnRzIiwiZmlsdGVycyIsInRhYmxlQ29sdW1uVjIiLCJ0YWJsZUNvbHVtbkdyb3VwVjIiLCJ0YWJsZVYyIiwicmVuZGVyTWV0aG9kIiwiY29sdW1uc0lzRmxhdCIsImJ1aWxkTXVsdGlIZWFkZXJzQmluZCIsImZsYXRDb2x1bW5zIiwidHJlZUNvbHVtbnMiLCJkZWVwT2ZDb2x1bW5zIiwiZGVlcCIsIm1heERlZXAiLCJfcGFyZW50IiwiTWF0aCIsIm1heCIsInJlcyIsImxpbmVIZWlnaHQiLCJmaW5kTGVhZiIsInBhcmVudHMiLCJsZWFmcyIsImNvdW50TGVhZldpZHRoIiwibGVhZiIsImJpbmQiLCJoZWFkZXJIZWlnaHQiLCJoZWFkZXIiLCJjZWxscyIsImhlYWRlckluZGV4IiwiZWxDb2x1bW5zTWFwIiwiZ3JvdXBDZWxscyIsInVzZWRMZWFmS2V5cyIsImJ1aWxkSGVhZFRyZWUiLCJfY3JlYXRlVk5vZGUiLCJoZWlnaHQiLCJqdXN0aWZ5Q29udGVudCIsImZpbmRUb3BQYXJlbnQiLCJwYXJlbnQiLCJwbGFjZWhvbGRlclNpZ24iLCJUYWJsZVYyUGxhY2Vob2xkZXIiLCJoZWFkZXJDZWxsIiwicm93SW5kZXgiLCJyb3dEYXRhIiwidW5yZWYiLCJmaXhlZCIsInNlbGVjdGlvbkZpeGVkIiwiY2VsbFJlbmRlcmVyIiwiY2hlY2tlZCIsIl9yZXNvbHZlQ29tcG9uZW50IiwiaGVhZGVyQ2VsbFJlbmRlcmVyIiwiX2RhdGEiLCJhbGxTZWxlY3RlZCIsImV2ZXJ5IiwiY29udGFpbnNDaGVja2VkIiwic29tZSIsInNjcm9sbFRvVG9wIiwidGV4dEFyZWEiLCJ0YWciLCJpbnB1dEdyb3VwIiwiaW5wdXQiLCJpbnB1dFBhc3N3b3JkIiwicGFzc3dvcmRUeXBlIiwic2hvd1Bhc3N3b3JkIiwibnVtYmVyIiwiZGF0ZVBpY2tlciIsImJ1aWxkRGF0ZVR5cGUiLCJ0aW1lUGlja2VyIiwiZHJvcGRvd24iLCJjb21tYW5kIiwib25Db21tYW5kIiwiJGV2ZW50Iiwic2xvdE5hbWUiLCJkcm9wZG93bk1lbnUiLCJkcm9wZG93bkl0ZW0iLCJpbWFnZUdyb3VwIiwiaW1hZ2UiLCJidWlsZFByZXZpZXdCaW5kIiwidXJsIiwidXJscyIsInByZXZpZXdVcmwiLCJwcmV2aWV3VXJscyIsImZhbGxiYWNrIiwicHJvZ3Jlc3MiLCJsb2FkaW5nIiwiaWQiLCJ0eXBlSW1hZ2VDYXJkIiwidHlwZUltYWdlIiwiZ2V0U3RhdHVzRnJvbUV2ZW50Iiwic3RhdHVzIiwiZ2V0RmlsZUxpc3RGcm9tRXZlbnQiLCJyZXNwb25zZSIsImZpbGUiLCJmaWxlTGlzdCIsInVwbG9hZGluZyIsImlzU3VjY2VzcyIsImZpbGVJdGVtIiwibGltaXRBZGQiLCJ0YWJzIiwidGFiQ2hhbmdlIiwidGFiUGFuZSIsInRhYiIsImNvbGxhcHNlIiwia2V5TmFtZSIsImNvbGxhcHNlSXRlbSIsImV4dHJhU2xvdE5hbWUiLCJ0aXRsZVNsb3QiLCJfY3JlYXRlVGV4dFZOb2RlIiwiZXh0cmFTbG90IiwiYmFkZ2UiLCJkb3QiLCJ0b29sdGlwIiwiY29udGVudCIsInRyaWdnZXIiLCJkaXZpZGVyIiwicG9wb3ZlciIsImNvbnRlbnRTbG90TmFtZSIsInRyaWdnZXJTbG90TmFtZSIsIk5vdGlmaWNhdGlvbiIsIk1lc3NhZ2UiLCJNZXNzYWdlQm94IiwiaWNvbnNMaXN0Iiwic2V0dXBJY29ucyIsImFwcCIsInNldCIsImVsZW1lbnRVaSIsIkVsTWVzc2FnZSIsIkVsTm90aWZpY2F0aW9uIiwiRWxNZXNzYWdlQm94IiwidWlDb250ZXh0Il0sIm1hcHBpbmdz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