nsc-react-component 4.3.2 → 4.3.3

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.
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["Spin","React","NscRequest","cls","FormPage","defaultComFuncs","defaultUtil","renderSelfToolButton","getPageData","params","settingSource","url","get","xssFilter","autoPrefix","setFieldDisabled","data","key","disabled","foms","newForms","map","item","obj","_objectSpread","dataIndex","indexOf","props","push","setFieldVisible","visible","editor","setFieldPropsData","propsData","forms","defaultStateValue","formType","pageLoading","selfButton","otherProps","buttonLoading","SettingForm","Component","constructor","arguments","_defineProperty","createRef","res","componentDidMount","getData","componentDidUpdate","prevProps","prevState","snapshot","formCode","setState","published","menuCode","code","isPublished","then","formProps","JSON","parse","selfFormButton","_message","error","showForm","value","editorflag","callBack","_this$pageRef$current","pageRef","current","hideForm","_this$pageRef$current2","render","_this$props","className","funcs","_objectWithoutProperties","_excluded","state","requestObject","_this","deaultFuncs","newData","setButtonLoading","loading","children","codeFormButtons","Array","isArray","child","createElement","style","width","height","spinning","_extends","Utils","ref","editType","type"],"sources":["../../../src/components/page/SettingForm/index.tsx"],"sourcesContent":["import { forwardRef, useEffect, useImperativeHandle, useState } from \"react\";\r\nimport BasePage, { NSCBaseBageProps } from \"../BasePage\";\r\nimport Spin from \"../../base/spin\";\r\nimport \"./index.less\";\r\nimport React from \"react\";\r\nimport NscRequest from \"nsc-request\";\r\nimport cls from \"classnames\";\r\nimport { message } from \"antd\";\r\nimport FormPage from \"../FormPage\";\r\nimport {\r\n defaultComFuncs,\r\n defaultUtil,\r\n renderSelfToolButton,\r\n} from \"../SettingUtil/utils\";\r\n// import { history } from 'umi'\r\n// import { getConfigData } from '../services';\r\n\r\n// const defaulUtil = {\r\n// NscCom,\r\n// NscFile,\r\n// NscRequest,\r\n// NscUtils,\r\n// dayjs,\r\n// createElement: React.createElement,\r\n// } as any;\r\n// const renderSelfToolButton = ({ selfButton, pageRef, funcs, loading }) => {\r\n// if (selfButton.length == 0) {\r\n// return null;\r\n// } else {\r\n// return selfButton.map((item: any, index: number) => {\r\n// return (\r\n// <Button\r\n// key={index}\r\n// type={item.type}\r\n// onClick={() => {\r\n// let eventOption = { pageRef: pageRef, funcs: funcs };\r\n// const func = new Function(\"Utils,eventOption\", item.onClick);\r\n// func(defaulUtil, eventOption);\r\n// }}\r\n// code={item.code}\r\n// loading={loading[item.code] === true ? true : false}\r\n// >\r\n// {item.name}\r\n// </Button>\r\n// );\r\n// });\r\n// }\r\n// };\r\n\r\nconst getPageData = (params: any, settingSource) => {\r\n let url =\r\n settingSource == \"table\"\r\n ? \"/jquick-setting/setting/table/info/\"\r\n : \"/jquick-setting/setting/form/info\";\r\n return NscRequest.get(url, {\r\n params,\r\n xssFilter: false,\r\n autoPrefix: true,\r\n });\r\n};\r\n\r\n//设置表单字段只读\r\nconst setFieldDisabled = (data: Array<any>, key, disabled) => {\r\n const foms = [...data];\r\n let newForms = [] as any;\r\n foms.map((item) => {\r\n let obj = { ...item };\r\n if (item.dataIndex == key || key.indexOf(item.dataIndex) > -1) {\r\n let props = obj.props ? { ...obj.props } : {};\r\n props.disabled = disabled;\r\n obj.props = props;\r\n }\r\n newForms.push(obj);\r\n });\r\n return newForms;\r\n};\r\n//设置表单字段隐藏\r\nconst setFieldVisible = (data: Array<any>, key, visible) => {\r\n const foms = [...data];\r\n let newForms = [] as any;\r\n foms.map((item) => {\r\n let obj = { ...item };\r\n if (item.dataIndex == key || key.indexOf(item.dataIndex) > -1) {\r\n obj.editor = visible;\r\n }\r\n newForms.push(obj);\r\n });\r\n return newForms;\r\n};\r\n\r\nconst setFieldPropsData = (data: Array<any>, key, propsData) => {\r\n const forms = [...data];\r\n let newForms = [] as any;\r\n forms.map((item) => {\r\n let obj = { ...item };\r\n if (item.dataIndex == key) {\r\n let props = obj.props ? { ...obj.props } : {};\r\n props.data = propsData;\r\n obj.props = props;\r\n }\r\n newForms.push(obj);\r\n });\r\n return newForms;\r\n};\r\ninterface IProps {\r\n formCode: string;\r\n className?: any;\r\n menuCode?: string;\r\n funcs?: any;\r\n published?: boolean;\r\n instanceRef?: any;\r\n onCallBacks?: {\r\n treeSelectCallBack?: any; //树点击查询后回调\r\n onQueryCallBack?: any; //查询回调,查询数据后回调\r\n onSumbitCallBack?: any; //保存回调,保存数据成功后回调\r\n onDeleteCallBack?: any; //删除按钮回调,删除数据后执行\r\n onEditorCallBack?: any; //编辑按钮回调,打开弹框后执行\r\n onAddCallBack?: any; //添加按钮回调,打开弹框后执行\r\n onSearchCallBack?: any; //列表查询按钮回调,打开弹框后执行\r\n };\r\n formProps?: any;\r\n children?: any;\r\n [propName: string]: any;\r\n}\r\nconst defaultStateValue = {\r\n formType: \"modal\",\r\n pageLoading: false,\r\n selfButton: [] as any,\r\n props: {} as any,\r\n otherProps: {} as any,\r\n forms: [] as any,\r\n buttonLoading: {} as any,\r\n};\r\nexport default class SettingForm extends React.Component<IProps, any> {\r\n state = {\r\n ...defaultStateValue,\r\n };\r\n pageRef = React.createRef<any>();\r\n\r\n componentDidMount(): void {\r\n this.getData();\r\n }\r\n\r\n componentDidUpdate(\r\n prevProps: Readonly<IProps>,\r\n prevState: Readonly<any>,\r\n snapshot?: any\r\n ): void {\r\n if (prevProps.formCode != this.props.formCode) {\r\n this.setState(\r\n {\r\n ...defaultStateValue,\r\n },\r\n () => {\r\n this.getData();\r\n }\r\n );\r\n }\r\n }\r\n\r\n initData = (res: any) => {};\r\n // 获取数据\r\n getData() {\r\n // 从props中获取tableCode、published、menuCode\r\n this.setState({\r\n pageLoading: true,\r\n });\r\n const {\r\n formCode,\r\n published = true,\r\n menuCode,\r\n settingSource = \"form\",\r\n } = this.props;\r\n // 如果tableCode存在\r\n if (formCode) {\r\n // 定义参数\r\n let params = { code: formCode } as any;\r\n // 如果published为true\r\n if (published) {\r\n // 设置参数isPublished为1\r\n params.isPublished = 1;\r\n }\r\n // 调用getPageData方法获取数据\r\n getPageData({ ...params }, settingSource).then((res: any) => {\r\n if (res.code == 200 && res.data) {\r\n if (settingSource == \"table\") {\r\n let formProps = JSON.parse(res.data.formProps || \"{}\") || {};\r\n this.setState(\r\n {\r\n ...formProps,\r\n },\r\n () => {\r\n this.setState({\r\n pageLoading: false,\r\n });\r\n }\r\n );\r\n } else {\r\n let forms = JSON.parse(res.data.forms || \"[]\") || [];\r\n let selfFormButton = JSON.parse(res.data.selfButton || \"[]\") || [];\r\n let otherProps = JSON.parse(res.data.otherProps || \"{}\") || {};\r\n let formType = res.data.formType;\r\n let props = JSON.parse(res.data.props || \"{}\") || {};\r\n this.setState(\r\n {\r\n formType: this.props.formType || formType,\r\n selfButton: selfFormButton,\r\n props: props,\r\n otherProps: otherProps,\r\n forms: forms,\r\n },\r\n () => {\r\n this.setState({\r\n pageLoading: false,\r\n });\r\n }\r\n );\r\n }\r\n } else if (res.code == 200 && res.data == null) {\r\n message.error(\"未找到配置信息!\");\r\n this.setState({\r\n pageLoading: false,\r\n });\r\n } else {\r\n this.setState({\r\n pageLoading: false,\r\n });\r\n }\r\n });\r\n } else {\r\n this.setState({\r\n pageLoading: false,\r\n });\r\n }\r\n }\r\n // onSearch() {}\r\n\r\n showForm(value: any, editorflag, callBack) {\r\n this.pageRef.current?.showForm(value,editorflag, callBack);\r\n }\r\n hideForm() {\r\n this.pageRef.current?.hideForm();\r\n }\r\n\r\n render() {\r\n const { className, funcs = {}, ...params } = this.props;\r\n const {\r\n pageLoading,\r\n formType,\r\n selfButton,\r\n props = {},\r\n otherProps = {},\r\n forms,\r\n buttonLoading,\r\n } = this.state;\r\n const { requestObject = {} } = otherProps;\r\n let _this = this;\r\n const deaultFuncs = {\r\n setFieldDisabled: (key, disabled) => {\r\n const newData = setFieldDisabled(forms, key, disabled);\r\n this.setState({\r\n forms: newData,\r\n });\r\n },\r\n setFieldVisible: (key, disabled) => {\r\n const newData = setFieldVisible(forms, key, disabled);\r\n this.setState({\r\n forms: newData,\r\n });\r\n },\r\n setFieldPropsData: (key, data) => {\r\n const newData = setFieldPropsData(forms, key, data);\r\n this.setState({\r\n forms: newData,\r\n });\r\n },\r\n setButtonLoading(code, loading) {\r\n _this.setState({\r\n buttonLoading: { ...buttonLoading, [code]: loading },\r\n });\r\n },\r\n ...defaultComFuncs,\r\n };\r\n const { children } = this.props;\r\n\r\n let codeFormButtons = [];\r\n if (Array.isArray(children)) {\r\n children.map((item: any) => {\r\n if (Array.isArray(item)) {\r\n item.map((child) => {\r\n codeFormButtons.push(child);\r\n });\r\n } else {\r\n codeFormButtons.push(item);\r\n }\r\n });\r\n } else if (children) {\r\n codeFormButtons.push(children);\r\n }\r\n return (\r\n <div className={cls(\"nsc-framework-formpage\", className)}>\r\n {pageLoading ? (\r\n <div style={{ width: \"100%\", height: \"100%\" }}>\r\n <Spin spinning={pageLoading}></Spin>\r\n </div>\r\n ) : (\r\n <FormPage\r\n formType={formType}\r\n forms={forms}\r\n requestObject={requestObject}\r\n Utils={defaultUtil}\r\n funcs={{ ...deaultFuncs, ...funcs }}\r\n ref={this.pageRef}\r\n pageRef={this.pageRef}\r\n props={props}\r\n editType={this.props.editType}\r\n {...otherProps}\r\n {...params}\r\n >\r\n {renderSelfToolButton({\r\n selfButton,\r\n pageRef: this.pageRef,\r\n funcs,\r\n loading: this.state.buttonLoading,\r\n type: \"formButton\",\r\n })}\r\n </FormPage>\r\n )}\r\n </div>\r\n );\r\n }\r\n}\r\n"],"mappings":"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"}
1
+ {"version":3,"file":"index.js","names":["Spin","React","NscRequest","cls","FormPage","defaultComFuncs","defaultUtil","renderSelfToolButton","getPageData","params","settingSource","url","get","xssFilter","autoPrefix","setFieldDisabled","data","key","disabled","foms","newForms","map","item","obj","_objectSpread","name","indexOf","props","push","setFieldVisible","visible","show","setFieldPropsData","propsData","forms","dataIndex","defaultStateValue","formType","pageLoading","selfButton","otherProps","buttonLoading","getFormSetting","JSON","parse","selfFormButton","formSetting","SettingForm","Component","constructor","arguments","_defineProperty","createRef","res","componentDidMount","getData","componentDidUpdate","prevProps","prevState","snapshot","formCode","setState","published","menuCode","code","isPublished","then","formProps","_message","error","showForm","value","editorflag","callBack","_this$pageRef$current","pageRef","current","hideForm","_this$pageRef$current2","render","_this$props","className","funcs","_objectWithoutProperties","_excluded","state","requestObject","_this","deaultFuncs","newData","setButtonLoading","loading","children","codeFormButtons","Array","isArray","child","renderForm","createElement","_extends","Utils","ref","editType","type","style","width","height","spinning"],"sources":["../../../src/components/page/SettingForm/index.tsx"],"sourcesContent":["import { forwardRef, useEffect, useImperativeHandle, useState } from \"react\";\r\nimport BasePage, { NSCBaseBageProps } from \"../BasePage\";\r\nimport Spin from \"../../base/spin\";\r\nimport \"./index.less\";\r\nimport React from \"react\";\r\nimport NscRequest from \"nsc-request\";\r\nimport cls from \"classnames\";\r\nimport { message } from \"antd\";\r\nimport FormPage from \"../FormPage\";\r\nimport {\r\n defaultComFuncs,\r\n defaultUtil,\r\n renderSelfToolButton,\r\n} from \"../SettingUtil/utils\";\r\n\r\nexport const getPageData = (params: any, settingSource) => {\r\n let url =\r\n settingSource == \"table\"\r\n ? \"/jquick-setting/setting/table/info/\"\r\n : \"/jquick-setting/setting/form/info\";\r\n return NscRequest.get(url, {\r\n params,\r\n xssFilter: false,\r\n autoPrefix: true,\r\n });\r\n};\r\n\r\n//设置表单字段只读\r\nconst setFieldDisabled = (data: Array<any>, key, disabled) => {\r\n const foms = [...data];\r\n let newForms = [] as any;\r\n foms.map((item) => {\r\n let obj = { ...item };\r\n if (item.name == key || key.indexOf(item.name) > -1) {\r\n let props = obj.props ? { ...obj.props } : {};\r\n props.disabled = disabled;\r\n obj.props = props;\r\n }\r\n newForms.push(obj);\r\n });\r\n return newForms;\r\n};\r\n//设置表单字段隐藏\r\nconst setFieldVisible = (data: Array<any>, key, visible) => {\r\n const foms = [...data];\r\n let newForms = [] as any;\r\n foms.map((item) => {\r\n let obj = { ...item };\r\n if (item.name == key || key.indexOf(item.name) > -1) {\r\n obj.show = visible;\r\n }\r\n newForms.push(obj);\r\n });\r\n return newForms;\r\n};\r\n\r\nconst setFieldPropsData = (data: Array<any>, key, propsData) => {\r\n const forms = [...data];\r\n let newForms = [] as any;\r\n forms.map((item) => {\r\n let obj = { ...item };\r\n if (item.dataIndex == key) {\r\n let props = obj.props ? { ...obj.props } : {};\r\n props.data = propsData;\r\n obj.props = props;\r\n }\r\n newForms.push(obj);\r\n });\r\n return newForms;\r\n};\r\ninterface IProps {\r\n formCode: string;\r\n className?: any;\r\n menuCode?: string;\r\n funcs?: any;\r\n published?: boolean;\r\n instanceRef?: any;\r\n onCallBacks?: {\r\n treeSelectCallBack?: any; //树点击查询后回调\r\n onQueryCallBack?: any; //查询回调,查询数据后回调\r\n onSumbitCallBack?: any; //保存回调,保存数据成功后回调\r\n onDeleteCallBack?: any; //删除按钮回调,删除数据后执行\r\n onEditorCallBack?: any; //编辑按钮回调,打开弹框后执行\r\n onAddCallBack?: any; //添加按钮回调,打开弹框后执行\r\n onSearchCallBack?: any; //列表查询按钮回调,打开弹框后执行\r\n };\r\n formProps?: any;\r\n children?: any;\r\n [propName: string]: any;\r\n}\r\nconst defaultStateValue = {\r\n formType: \"modal\",\r\n pageLoading: false,\r\n selfButton: [] as any,\r\n props: {} as any,\r\n otherProps: {} as any,\r\n forms: [] as any,\r\n buttonLoading: {} as any,\r\n};\r\n\r\nexport const getFormSetting = (data) => {\r\n let forms = JSON.parse(data.forms || \"[]\") || [];\r\n let selfFormButton = JSON.parse(data.selfButton || \"[]\") || [];\r\n let otherProps = JSON.parse(data.otherProps || \"{}\") || {};\r\n let formType = data.formType;\r\n let props = JSON.parse(data.props || \"{}\") || {};\r\n let formSetting = {\r\n formType: formType,\r\n selfButton: selfFormButton,\r\n props: props,\r\n otherProps: otherProps,\r\n forms: forms,\r\n };\r\n return formSetting;\r\n};\r\nexport default class SettingForm extends React.Component<IProps, any> {\r\n state = {\r\n ...defaultStateValue,\r\n };\r\n pageRef = React.createRef<any>();\r\n\r\n componentDidMount(): void {\r\n this.getData();\r\n }\r\n\r\n componentDidUpdate(\r\n prevProps: Readonly<IProps>,\r\n prevState: Readonly<any>,\r\n snapshot?: any\r\n ): void {\r\n if (prevProps.formCode != this.props.formCode) {\r\n this.setState(\r\n {\r\n ...defaultStateValue,\r\n },\r\n () => {\r\n this.getData();\r\n }\r\n );\r\n }\r\n }\r\n\r\n initData = (res: any) => {};\r\n // 获取数据\r\n getData() {\r\n // 从props中获取tableCode、published、menuCode\r\n this.setState({\r\n pageLoading: true,\r\n });\r\n const {\r\n formCode,\r\n published = true,\r\n menuCode,\r\n settingSource = \"form\",\r\n } = this.props;\r\n // 如果tableCode存在\r\n if (formCode) {\r\n // 定义参数\r\n let params = { code: formCode } as any;\r\n // 如果published为true\r\n if (published) {\r\n // 设置参数isPublished为1\r\n params.isPublished = 1;\r\n }\r\n // 调用getPageData方法获取数据\r\n getPageData({ ...params }, settingSource).then((res: any) => {\r\n if (res.code == 200 && res.data) {\r\n if (settingSource == \"table\") {\r\n let formProps = JSON.parse(res.data.formProps || \"{}\") || {};\r\n this.setState(\r\n {\r\n ...formProps,\r\n },\r\n () => {\r\n this.setState({\r\n pageLoading: false,\r\n });\r\n }\r\n );\r\n } else {\r\n const formSetting: any = getFormSetting(res.data) || {};\r\n this.setState(\r\n {\r\n ...formSetting,\r\n formType: this.props.formType || formSetting.formType,\r\n },\r\n () => {\r\n this.setState({\r\n pageLoading: false,\r\n });\r\n }\r\n );\r\n }\r\n } else if (res.code == 200 && res.data == null) {\r\n message.error(\"未找到配置信息!\");\r\n this.setState({\r\n pageLoading: false,\r\n });\r\n } else {\r\n this.setState({\r\n pageLoading: false,\r\n });\r\n }\r\n });\r\n } else {\r\n this.setState({\r\n pageLoading: false,\r\n });\r\n }\r\n }\r\n // onSearch() {}\r\n\r\n showForm(value: any, editorflag, callBack) {\r\n this.pageRef.current?.showForm(value, editorflag, callBack);\r\n }\r\n hideForm() {\r\n this.pageRef.current?.hideForm();\r\n }\r\n\r\n render() {\r\n const { className, funcs = {}, ...params } = this.props;\r\n const {\r\n pageLoading,\r\n formType,\r\n selfButton,\r\n props = {},\r\n otherProps = {},\r\n forms,\r\n buttonLoading,\r\n } = this.state;\r\n const { requestObject = {} } = otherProps;\r\n let _this = this;\r\n const deaultFuncs = {\r\n setFieldDisabled: (key, disabled) => {\r\n const newData = setFieldDisabled(forms, key, disabled);\r\n this.setState({\r\n forms: newData,\r\n });\r\n },\r\n setFieldVisible: (key, disabled) => {\r\n const newData = setFieldVisible(forms, key, disabled);\r\n this.setState({\r\n forms: newData,\r\n });\r\n },\r\n setFieldPropsData: (key, data) => {\r\n const newData = setFieldPropsData(forms, key, data);\r\n this.setState({\r\n forms: newData,\r\n });\r\n },\r\n setButtonLoading(code, loading) {\r\n _this.setState({\r\n buttonLoading: { ...buttonLoading, [code]: loading },\r\n });\r\n },\r\n ...defaultComFuncs,\r\n };\r\n const { children } = this.props;\r\n\r\n let codeFormButtons = [];\r\n if (Array.isArray(children)) {\r\n children.map((item: any) => {\r\n if (Array.isArray(item)) {\r\n item.map((child) => {\r\n codeFormButtons.push(child);\r\n });\r\n } else {\r\n codeFormButtons.push(item);\r\n }\r\n });\r\n } else if (children) {\r\n codeFormButtons.push(children);\r\n }\r\n const renderForm = () => {\r\n return (\r\n <FormPage\r\n formType={formType}\r\n forms={forms}\r\n requestObject={requestObject}\r\n Utils={defaultUtil}\r\n funcs={{ ...deaultFuncs, ...funcs }}\r\n ref={this.pageRef}\r\n pageRef={this.pageRef}\r\n props={props}\r\n editType={this.props.editType}\r\n {...otherProps}\r\n {...params}\r\n >\r\n {renderSelfToolButton({\r\n selfButton,\r\n pageRef: this.pageRef,\r\n funcs,\r\n loading: this.state.buttonLoading,\r\n type: \"formButton\",\r\n })}\r\n </FormPage>\r\n );\r\n };\r\n if (this.props.formType == \"page\") {\r\n return (\r\n <div className={cls(\"nsc-framework-formpage\", className)}>\r\n {pageLoading ? (\r\n <div style={{ width: \"100%\", height: \"100%\" }}>\r\n <Spin spinning={pageLoading}></Spin>\r\n </div>\r\n ) : (\r\n renderForm()\r\n )}\r\n </div>\r\n );\r\n } else {\r\n return renderForm();\r\n }\r\n }\r\n}\r\n"],"mappings":"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"}
@@ -15,7 +15,7 @@ import "./index.less";
15
15
  import React from "react";
16
16
  import NscRequest from "nsc-request";
17
17
  import cls from "classnames";
18
- import { defaultComFuncs, defaultUtil, renderSelfColumnButton, renderSelfToolButton, ModalManager } from "../SettingUtil/utils";
18
+ import { defaultComFuncs, defaultUtil, ModalForm, renderSelfColumnButton, renderSelfToolButton, ModalManager } from "../SettingUtil/utils";
19
19
  const getPageData = params => {
20
20
  return NscRequest.get("/jquick-setting/setting/table/info/", {
21
21
  params,
@@ -433,7 +433,9 @@ export default class SettingTable extends React.Component {
433
433
  type: "formButton"
434
434
  }), codeFormButtons.map(item => {
435
435
  return item;
436
- })));
436
+ })), /*#__PURE__*/React.createElement(ModalForm, {
437
+ ref: this.modalRef
438
+ }));
437
439
  }
438
440
  }
439
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJCYXNlUGFnZSIsIlNwaW4iLCJSZWFjdCIsIk5zY1JlcXVlc3QiLCJjbHMiLCJkZWZhdWx0Q29tRnVuY3MiLCJkZWZhdWx0VXRpbCIsInJlbmRlclNlbGZDb2x1bW5CdXR0b24iLCJyZW5kZXJTZWxmVG9vbEJ1dHRvbiIsIk1vZGFsTWFuYWdlciIsImdldFBhZ2VEYXRhIiwicGFyYW1zIiwiZ2V0IiwieHNzRmlsdGVyIiwiYXV0b1ByZWZpeCIsInNldEZpZWxkRGlzYWJsZWQiLCJkYXRhIiwia2V5IiwiZGlzYWJsZWQiLCJjb2x1bW5zIiwibmV3Q29sdW1ucyIsIm1hcCIsIml0ZW0iLCJvYmoiLCJfb2JqZWN0U3ByZWFkIiwiZGF0YUluZGV4IiwiaW5kZXhPZiIsInByb3BzIiwicHVzaCIsInNldEZpZWxkVmlzaWJsZSIsInZpc2libGUiLCJlZGl0b3IiLCJzZXRGaWVsZFByb3BzRGF0YSIsInByb3BzRGF0YSIsImRlZmF1bHRTdGF0ZVZhbHVlIiwicGFnZVByb3BzIiwidHJlZVByb3BzIiwic3RvcmUiLCJ1cmwiLCJhdXRvTG9hZCIsInRhYmxlUHJvcHMiLCJzZWxmVG9vbEJ1dHRvbiIsInNlbGZDb2x1bW5CdXR0b24iLCJzZWxmRm9ybUJ1dHRvbiIsInBhZ2VMb2FkaW5nIiwiZGVmYXVsdENvbHVtbnMiLCJvdGhlclByb3BzIiwiYnV0dG9uTG9hZGluZyIsImZvcm1QYWdlUHJvcHMiLCJTZXR0aW5nVGFibGUiLCJDb21wb25lbnQiLCJjb25zdHJ1Y3RvciIsImFyZ3VtZW50cyIsIl9kZWZpbmVQcm9wZXJ0eSIsImNyZWF0ZVJlZiIsInJlcyIsInN0YXRlIiwic2hvd1NlYXJjaCIsImRlZmF1bHRTZWFyY2giLCJ0YWJsZURhdGFSZXNvdXJjZSIsImZ1bmMiLCJGdW5jdGlvbiIsInBhZ2VSZWYiLCJzZXRUaW1lb3V0IiwiX3RoaXMkcGFnZVJlZiRjdXJyZW50IiwiX3RoaXMkcGFnZVJlZiRjdXJyZW50MiIsImN1cnJlbnQiLCJ0YWJsZUxvYWQiLCJzZXRTZWFyY2hQYXJhbXMiLCJjb21wb25lbnREaWRNb3VudCIsImdldERhdGEiLCJyZWdpc3RlciIsIm1vZGFsUmVmIiwiY29tcG9uZW50RGlkVXBkYXRlIiwicHJldlByb3BzIiwicHJldlN0YXRlIiwic25hcHNob3QiLCJ0YWJsZUNvZGUiLCJzZXRTdGF0ZSIsInB1Ymxpc2hlZCIsIm1lbnVDb2RlIiwidGFiUGFyYW1zIiwiY29kZSIsImlzUHVibGlzaGVkIiwidGhlbiIsIl9wYWdlX3Byb3BzJHBlcm1pc3NpbyIsInRhYmxlX3Byb3BzIiwiSlNPTiIsInBhcnNlIiwidHJlZV9wcm9wcyIsInBhZ2VfcHJvcHMiLCJvdGhlcl9wcm9wcyIsIm90aGVyUGFyYW1zIiwiZm9ybV9wcm9wcyIsImZvcm1Qcm9wcyIsInBlcm1pc3Npb24iLCJoYXMiLCJVdGlscyIsInBhcmFtRnVuYyIsImNvbnZlclRhYlBhcmFtcyIsInJlcXVlc3RQYXJhbXMiLCJuZXdSZXF1ZXN0UGFyYW1zIiwicXVlcnlQYXJhbXMiLCJhZGRQYXJhbXMiLCJlZGl0b3JQYXJhbXMiLCJjb252ZXJQYXJhbXMiLCJvdGhlciIsIl9vYmplY3RXaXRob3V0UHJvcGVydGllcyIsIl9leGNsdWRlZCIsIm5ld1BhcmFtcyIsImNvbHVtbkJ1dHRvbnMiLCJ0b29sQnV0dG9ucyIsInNlbGZCdXR0b24iLCJfbWVzc2FnZSIsImVycm9yIiwiZ2V0U2VhcmNoVmFsdWVzIiwiX3RoaXMkcGFnZVJlZiRjdXJyZW50MyIsInZhbHVlIiwiY2FsbEJhY2siLCJfdGhpcyRwYWdlUmVmJGN1cnJlbnQ0IiwiX3RoaXMkcGFnZVJlZiRjdXJyZW50NSIsInJlcXVlc3RDb25maWciLCJsZW5ndGgiLCJ1bmRlZmluZWQiLCJ0YWJsZVJlbG9hZCIsIl90aGlzJHBhZ2VSZWYkY3VycmVudDYiLCJnZXRTZWxlY3RlZFJvd0tleXMiLCJfdGhpcyRwYWdlUmVmJGN1cnJlbnQ3IiwiZ2V0U2VsZWN0ZWRSb3dEYXRhcyIsIl90aGlzJHBhZ2VSZWYkY3VycmVudDgiLCJyZXNldFNlbGVjdGVkUm93S2V5cyIsIl90aGlzJHBhZ2VSZWYkY3VycmVudDkiLCJyZW5kZXIiLCJjbGFzc05hbWUiLCJmdW5jcyIsImJhc2VQcm9wcyIsInNldHRpbmdUcmVlUHJvcHMiLCJzZXR0aW5nVGFibGVQcm9wcyIsIl9leGNsdWRlZDIiLCJfdGhpcyIsImRlYXVsdEZ1bmNzIiwibmV3RGF0YSIsInNldEJ1dHRvbkxvYWRpbmciLCJsb2FkaW5nIiwib3BlbkZvcm1Nb2RhbCIsInNob3dNb2RhbCIsImNoaWxkcmVuIiwiY29kZVNlbGZCdXR0b25zIiwiY29kZWNvbHVtbkJ1dHRvbnMiLCJjb2RlRm9ybUJ1dHRvbnMiLCJBcnJheSIsImlzQXJyYXkiLCJjaGlsZCIsIl9jaGlsZCRwcm9wcyIsIl9jaGlsZCRwcm9wczIiLCJfY2hpbGQkcHJvcHMzIiwicGFnZVR5cGUiLCJfaXRlbSRwcm9wcyIsIl9pdGVtJHByb3BzMiIsIl9pdGVtJHByb3BzMyIsImNyZWF0ZUVsZW1lbnQiLCJzdHlsZSIsIndpZHRoIiwiaGVpZ2h0Iiwic3Bpbm5pbmciLCJfZXh0ZW5kcyIsInJlZiIsIm9uSGlkZUZvcm0iLCJfdGhpcyRwYWdlUmVmJGN1cnJlbnQxMCIsImhpZGVGb3JtIiwiaW5pdERhdGEiLCJmb3JtVHlwZSIsInR5cGUiXSwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvY29tcG9uZW50cy9wYWdlL1NldHRpbmdUYWJsZS9pbmRleC50c3giXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgZm9yd2FyZFJlZiwgdXNlRWZmZWN0LCB1c2VJbXBlcmF0aXZlSGFuZGxlLCB1c2VTdGF0ZSB9IGZyb20gXCJyZWFjdFwiO1xyXG5pbXBvcnQgQmFzZVBhZ2UsIHsgTlNDQmFzZUJhZ2VQcm9wcyB9IGZyb20gXCIuLi9CYXNlUGFnZVwiO1xyXG5pbXBvcnQgU3BpbiBmcm9tIFwiLi4vLi4vYmFzZS9zcGluXCI7XHJcbmltcG9ydCBCdXR0b24gZnJvbSBcIi4uLy4uL2Jhc2UvYnV0dG9uXCI7XHJcbmltcG9ydCBcIi4vaW5kZXgubGVzc1wiO1xyXG5pbXBvcnQgUmVhY3QgZnJvbSBcInJlYWN0XCI7XHJcbmltcG9ydCBOc2NSZXF1ZXN0IGZyb20gXCJuc2MtcmVxdWVzdFwiO1xyXG5pbXBvcnQgY2xzIGZyb20gXCJjbGFzc25hbWVzXCI7XHJcbmltcG9ydCB7IG1lc3NhZ2UgfSBmcm9tIFwiYW50ZFwiO1xyXG5pbXBvcnQge1xyXG4gIGRlZmF1bHRDb21GdW5jcyxcclxuICBkZWZhdWx0VXRpbCxcclxuICBNb2RhbEZvcm0sXHJcbiAgcmVuZGVyU2VsZkNvbHVtbkJ1dHRvbixcclxuICByZW5kZXJTZWxmVG9vbEJ1dHRvbixcclxuICBNb2RhbE1hbmFnZXIsXHJcbiAgT3BlblBhcm1zLFxyXG59IGZyb20gXCIuLi9TZXR0aW5nVXRpbC91dGlsc1wiO1xyXG5cclxuY29uc3QgZ2V0UGFnZURhdGEgPSAocGFyYW1zOiBhbnkpID0+IHtcclxuICByZXR1cm4gTnNjUmVxdWVzdC5nZXQoYC9qcXVpY2stc2V0dGluZy9zZXR0aW5nL3RhYmxlL2luZm8vYCwge1xyXG4gICAgcGFyYW1zLFxyXG4gICAgeHNzRmlsdGVyOiBmYWxzZSxcclxuICAgIGF1dG9QcmVmaXg6IHRydWUsXHJcbiAgfSk7XHJcbn07XHJcblxyXG4vL+iuvue9ruihqOWNleWtl+auteWPquivu1xyXG5jb25zdCBzZXRGaWVsZERpc2FibGVkID0gKGRhdGE6IEFycmF5PGFueT4sIGtleSwgZGlzYWJsZWQpID0+IHtcclxuICBjb25zdCBjb2x1bW5zID0gWy4uLmRhdGFdO1xyXG4gIGxldCBuZXdDb2x1bW5zID0gW10gYXMgYW55O1xyXG4gIGNvbHVtbnMubWFwKChpdGVtKSA9PiB7XHJcbiAgICBsZXQgb2JqID0geyAuLi5pdGVtIH07XHJcbiAgICBpZiAoaXRlbS5kYXRhSW5kZXggPT0ga2V5IHx8IGtleS5pbmRleE9mKGl0ZW0uZGF0YUluZGV4KSA+IC0xKSB7XHJcbiAgICAgIGxldCBwcm9wcyA9IG9iai5wcm9wcyA/IHsgLi4ub2JqLnByb3BzIH0gOiB7fTtcclxuICAgICAgcHJvcHMuZGlzYWJsZWQgPSBkaXNhYmxlZDtcclxuICAgICAgb2JqLnByb3BzID0gcHJvcHM7XHJcbiAgICB9XHJcbiAgICBuZXdDb2x1bW5zLnB1c2gob2JqKTtcclxuICB9KTtcclxuICByZXR1cm4gbmV3Q29sdW1ucztcclxufTtcclxuLy/orr7nva7ooajljZXlrZfmrrXpmpDol49cclxuY29uc3Qgc2V0RmllbGRWaXNpYmxlID0gKGRhdGE6IEFycmF5PGFueT4sIGtleSwgdmlzaWJsZSkgPT4ge1xyXG4gIGNvbnN0IGNvbHVtbnMgPSBbLi4uZGF0YV07XHJcbiAgbGV0IG5ld0NvbHVtbnMgPSBbXSBhcyBhbnk7XHJcbiAgY29sdW1ucy5tYXAoKGl0ZW0pID0+IHtcclxuICAgIGxldCBvYmogPSB7IC4uLml0ZW0gfTtcclxuICAgIGlmIChpdGVtLmRhdGFJbmRleCA9PSBrZXkgfHwga2V5LmluZGV4T2YoaXRlbS5kYXRhSW5kZXgpID4gLTEpIHtcclxuICAgICAgb2JqLmVkaXRvciA9IHZpc2libGU7XHJcbiAgICB9XHJcbiAgICBuZXdDb2x1bW5zLnB1c2gob2JqKTtcclxuICB9KTtcclxuICByZXR1cm4gbmV3Q29sdW1ucztcclxufTtcclxuXHJcbmNvbnN0IHNldEZpZWxkUHJvcHNEYXRhID0gKGRhdGE6IEFycmF5PGFueT4sIGtleSwgcHJvcHNEYXRhKSA9PiB7XHJcbiAgY29uc3QgY29sdW1ucyA9IFsuLi5kYXRhXTtcclxuICBsZXQgbmV3Q29sdW1ucyA9IFtdIGFzIGFueTtcclxuICBjb2x1bW5zLm1hcCgoaXRlbSkgPT4ge1xyXG4gICAgbGV0IG9iaiA9IHsgLi4uaXRlbSB9O1xyXG4gICAgaWYgKGl0ZW0uZGF0YUluZGV4ID09IGtleSkge1xyXG4gICAgICBsZXQgcHJvcHMgPSBvYmoucHJvcHMgPyB7IC4uLm9iai5wcm9wcyB9IDoge307XHJcbiAgICAgIHByb3BzLmRhdGEgPSBwcm9wc0RhdGE7XHJcbiAgICAgIG9iai5wcm9wcyA9IHByb3BzO1xyXG4gICAgfVxyXG4gICAgbmV3Q29sdW1ucy5wdXNoKG9iaik7XHJcbiAgfSk7XHJcbiAgcmV0dXJuIG5ld0NvbHVtbnM7XHJcbn07XHJcbmludGVyZmFjZSBJUHJvcHMge1xyXG4gIHRhYmxlQ29kZTogc3RyaW5nO1xyXG4gIGNsYXNzTmFtZT86IGFueTtcclxuICBtZW51Q29kZT86IHN0cmluZztcclxuICBmdW5jcz86IGFueTtcclxuICBwdWJsaXNoZWQ/OiBib29sZWFuO1xyXG4gIGluc3RhbmNlUmVmPzogYW55O1xyXG4gIHRhYlBhcmFtcz86IGFueTtcclxuICBvbkNhbGxCYWNrcz86IHtcclxuICAgIHRyZWVTZWxlY3RDYWxsQmFjaz86IGFueTsgLy/moJHngrnlh7vmn6Xor6LlkI7lm57osINcclxuICAgIG9uUXVlcnlDYWxsQmFjaz86IGFueTsgLy/mn6Xor6Llm57osIPvvIzmn6Xor6LmlbDmja7lkI7lm57osINcclxuICAgIG9uU3VtYml0Q2FsbEJhY2s/OiBhbnk7IC8v5L+d5a2Y5Zue6LCD77yM5L+d5a2Y5pWw5o2u5oiQ5Yqf5ZCO5Zue6LCDXHJcbiAgICBvbkRlbGV0ZUNhbGxCYWNrPzogYW55OyAvL+WIoOmZpOaMiemSruWbnuiwg++8jOWIoOmZpOaVsOaNruWQjuaJp+ihjFxyXG4gICAgb25FZGl0b3JDYWxsQmFjaz86IGFueTsgLy/nvJbovpHmjInpkq7lm57osIPvvIzmiZPlvIDlvLnmoYblkI7miafooYxcclxuICAgIG9uQWRkQ2FsbEJhY2s/OiBhbnk7IC8v5re75Yqg5oyJ6ZKu5Zue6LCD77yM5omT5byA5by55qGG5ZCO5omn6KGMXHJcbiAgICBvblNlYXJjaENhbGxCYWNrPzogYW55OyAvL+WIl+ihqOafpeivouaMiemSruWbnuiwg++8jOaJk+W8gOW8ueahhuWQjuaJp+ihjFxyXG4gIH07XHJcbiAgYmFzZVByb3BzPzogTlNDQmFzZUJhZ2VQcm9wcztcclxuICBhdXRvTG9hZD86IGJvb2xlYW47XHJcbn1cclxuXHJcbmNvbnN0IGRlZmF1bHRTdGF0ZVZhbHVlID0ge1xyXG4gIHBhZ2VQcm9wczoge30gYXMgYW55LFxyXG4gIHRyZWVQcm9wczogeyBzdG9yZTogeyB1cmw6IFwiXCIsIGF1dG9Mb2FkOiBmYWxzZSB9IH0gYXMgYW55LFxyXG4gIHRhYmxlUHJvcHM6IHt9IGFzIGFueSxcclxuICBzZWxmVG9vbEJ1dHRvbjogW10gYXMgYW55LFxyXG4gIHNlbGZDb2x1bW5CdXR0b246IFtdIGFzIGFueSxcclxuICBzZWxmRm9ybUJ1dHRvbjogW10gYXMgYW55LFxyXG4gIHBhZ2VMb2FkaW5nOiB0cnVlLFxyXG4gIGRlZmF1bHRDb2x1bW5zOiBbXSBhcyBhbnksXHJcbiAgb3RoZXJQcm9wczoge30gYXMgYW55LFxyXG4gIGJ1dHRvbkxvYWRpbmc6IHt9IGFzIGFueSxcclxuICBmb3JtUGFnZVByb3BzOiB7fSBhcyBhbnksXHJcbn07XHJcbmV4cG9ydCBkZWZhdWx0IGNsYXNzIFNldHRpbmdUYWJsZSBleHRlbmRzIFJlYWN0LkNvbXBvbmVudDxJUHJvcHMsIGFueT4ge1xyXG4gIHN0YXRlID0ge1xyXG4gICAgLi4uZGVmYXVsdFN0YXRlVmFsdWUsXHJcbiAgfTtcclxuICBwYWdlUmVmID0gUmVhY3QuY3JlYXRlUmVmPGFueT4oKTtcclxuICBtb2RhbFJlZiA9IFJlYWN0LmNyZWF0ZVJlZjxhbnk+KCk7XHJcblxyXG4gIGNvbXBvbmVudERpZE1vdW50KCk6IHZvaWQge1xyXG4gICAgdGhpcy5nZXREYXRhKCk7XHJcbiAgICBNb2RhbE1hbmFnZXIucmVnaXN0ZXIodGhpcy5tb2RhbFJlZik7XHJcbiAgfVxyXG5cclxuICBjb21wb25lbnREaWRVcGRhdGUoXHJcbiAgICBwcmV2UHJvcHM6IFJlYWRvbmx5PElQcm9wcz4sXHJcbiAgICBwcmV2U3RhdGU6IFJlYWRvbmx5PGFueT4sXHJcbiAgICBzbmFwc2hvdD86IGFueVxyXG4gICk6IHZvaWQge1xyXG4gICAgaWYgKHByZXZQcm9wcy50YWJsZUNvZGUgIT0gdGhpcy5wcm9wcy50YWJsZUNvZGUpIHtcclxuICAgICAgdGhpcy5zZXRTdGF0ZShcclxuICAgICAgICB7XHJcbiAgICAgICAgICAuLi5kZWZhdWx0U3RhdGVWYWx1ZSxcclxuICAgICAgICB9LFxyXG4gICAgICAgICgpID0+IHtcclxuICAgICAgICAgIHRoaXMuZ2V0RGF0YSgpO1xyXG4gICAgICAgIH1cclxuICAgICAgKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGluaXREYXRhID0gKHJlczogYW55KSA9PiB7XHJcbiAgICBjb25zdCB7IG90aGVyUHJvcHMsIHBhZ2VQcm9wcyB9ID0gdGhpcy5zdGF0ZTtcclxuICAgIGlmIChcclxuICAgICAgcGFnZVByb3BzLnNob3dTZWFyY2ggIT09IGZhbHNlICYmXHJcbiAgICAgIG90aGVyUHJvcHMuZGVmYXVsdFNlYXJjaCAmJlxyXG4gICAgICBvdGhlclByb3BzLnRhYmxlRGF0YVJlc291cmNlID09IFwidXJsXCJcclxuICAgICkge1xyXG4gICAgICBsZXQgZnVuYyA9IG5ldyBGdW5jdGlvbihcIlV0aWxzLGV2ZW50T3B0aW9uXCIsIG90aGVyUHJvcHMuZGVmYXVsdFNlYXJjaCk7XHJcbiAgICAgIGNvbnN0IHBhcmFtcyA9IGZ1bmMoZGVmYXVsdFV0aWwsIHsgcGFnZVJlZjogdGhpcy5wYWdlUmVmIH0pO1xyXG4gICAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgICB0aGlzLnBhZ2VSZWYuY3VycmVudD8udGFibGVMb2FkKHsgLi4ucGFyYW1zIH0pO1xyXG4gICAgICAgIHRoaXMucGFnZVJlZi5jdXJyZW50Py5zZXRTZWFyY2hQYXJhbXMoeyAuLi5wYXJhbXMgfSk7XHJcbiAgICAgIH0sIDUwKTsgLy/nm7TmjqXorr7nva7vvIxwYWdlUmVm5rKh57uR5a6a77yM5pqC5pe26YCa6L+H5bu26L+f5Ye95pWw6L+b6KGM6Kej5YazXHJcbiAgICB9XHJcbiAgfTtcclxuICAvLyDojrflj5bmlbDmja5cclxuICBnZXREYXRhKCkge1xyXG4gICAgLy8g5LuOcHJvcHPkuK3ojrflj5Z0YWJsZUNvZGXjgIFwdWJsaXNoZWTjgIFtZW51Q29kZVxyXG4gICAgdGhpcy5zZXRTdGF0ZSh7XHJcbiAgICAgIHBhZ2VMb2FkaW5nOiB0cnVlLFxyXG4gICAgfSk7XHJcbiAgICBjb25zdCB7IHRhYmxlQ29kZSwgcHVibGlzaGVkID0gdHJ1ZSwgbWVudUNvZGUsIHRhYlBhcmFtcyB9ID0gdGhpcy5wcm9wcztcclxuICAgIC8vIOWmguaenHRhYmxlQ29kZeWtmOWcqFxyXG4gICAgaWYgKHRhYmxlQ29kZSkge1xyXG4gICAgICAvLyDlrprkuYnlj4LmlbBcclxuICAgICAgbGV0IHBhcmFtcyA9IHsgY29kZTogdGFibGVDb2RlIH0gYXMgYW55O1xyXG4gICAgICAvLyDlpoLmnpxwdWJsaXNoZWTkuLp0cnVlXHJcbiAgICAgIGlmIChwdWJsaXNoZWQpIHtcclxuICAgICAgICAvLyDorr7nva7lj4LmlbBpc1B1Ymxpc2hlZOS4ujFcclxuICAgICAgICBwYXJhbXMuaXNQdWJsaXNoZWQgPSAxO1xyXG4gICAgICB9XHJcbiAgICAgIC8vIOiwg+eUqGdldFBhZ2VEYXRh5pa55rOV6I635Y+W5pWw5o2uXHJcbiAgICAgIGdldFBhZ2VEYXRhKHsgLi4ucGFyYW1zIH0pLnRoZW4oKHJlczogYW55KSA9PiB7XHJcbiAgICAgICAgaWYgKHJlcy5jb2RlID09IDIwMCAmJiByZXMuZGF0YSkge1xyXG4gICAgICAgICAgbGV0IHRhYmxlX3Byb3BzID0gSlNPTi5wYXJzZShyZXMuZGF0YS50YWJsZVByb3BzIHx8IFwie31cIikgfHwge307XHJcbiAgICAgICAgICBsZXQgdHJlZV9wcm9wcyA9IEpTT04ucGFyc2UocmVzLmRhdGEudHJlZVByb3BzIHx8IFwie31cIikgfHwge307XHJcbiAgICAgICAgICBsZXQgcGFnZV9wcm9wcyA9IEpTT04ucGFyc2UocmVzLmRhdGEucGFnZVByb3BzIHx8IFwie31cIikgfHwge307XHJcbiAgICAgICAgICBsZXQgb3RoZXJfcHJvcHMgPSBKU09OLnBhcnNlKHJlcy5kYXRhLm90aGVyUGFyYW1zIHx8IFwie31cIikgfHwge307XHJcbiAgICAgICAgICBsZXQgZm9ybV9wcm9wcyA9IEpTT04ucGFyc2UocmVzLmRhdGEuZm9ybVByb3BzIHx8IFwie31cIikgfHwge307XHJcbiAgICAgICAgICBpZiAocGFnZV9wcm9wcy5wZXJtaXNzaW9uPy5oYXMgPT0gdHJ1ZSkge1xyXG4gICAgICAgICAgICBwYWdlX3Byb3BzLnBlcm1pc3Npb24ubWVudUNvZGUgPSBtZW51Q29kZTtcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIGlmIChwdWJsaXNoZWQgPT0gZmFsc2UpIHtcclxuICAgICAgICAgICAgcGFnZV9wcm9wcy5wZXJtaXNzaW9uID0gZmFsc2U7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICBpZiAoXHJcbiAgICAgICAgICAgIChwYWdlX3Byb3BzLnNob3dTZWFyY2ggIT09IGZhbHNlICYmXHJcbiAgICAgICAgICAgICAgb3RoZXJfcHJvcHMuZGVmYXVsdFNlYXJjaCAmJlxyXG4gICAgICAgICAgICAgIG90aGVyX3Byb3BzPy50YWJsZURhdGFSZXNvdXJjZSA9PSBcInVybFwiKSB8fFxyXG4gICAgICAgICAgICB0aGlzLnByb3BzLmF1dG9Mb2FkID09PSBmYWxzZVxyXG4gICAgICAgICAgKSB7XHJcbiAgICAgICAgICAgIHRhYmxlX3Byb3BzLnN0b3JlLmF1dG9Mb2FkID0gZmFsc2U7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICBpZiAodGFiUGFyYW1zKSB7XHJcbiAgICAgICAgICAgIGNvbnN0IFV0aWxzID0gZGVmYXVsdFV0aWwgfHwge307XHJcbiAgICAgICAgICAgIGxldCBwYXJhbUZ1bmMgPSBuZXcgRnVuY3Rpb24oXCJVdGlsc1wiLCB0YWJQYXJhbXMpO1xyXG4gICAgICAgICAgICBsZXQgY29udmVyVGFiUGFyYW1zID0gcGFyYW1GdW5jKFV0aWxzKTtcclxuICAgICAgICAgICAgaWYgKHBhZ2VfcHJvcHMucmVxdWVzdFBhcmFtcykge1xyXG4gICAgICAgICAgICAgIGxldCB7IHJlcXVlc3RQYXJhbXMgPSB7fSB9ID0gcGFnZV9wcm9wcztcclxuICAgICAgICAgICAgICBsZXQgbmV3UmVxdWVzdFBhcmFtcyA9IHtcclxuICAgICAgICAgICAgICAgIHF1ZXJ5UGFyYW1zOiBudWxsLFxyXG4gICAgICAgICAgICAgICAgYWRkUGFyYW1zOiBudWxsLFxyXG4gICAgICAgICAgICAgICAgZWRpdG9yUGFyYW1zOiBudWxsLFxyXG4gICAgICAgICAgICAgIH07XHJcbiAgICAgICAgICAgICAgZm9yIChsZXQga2V5IGluIG5ld1JlcXVlc3RQYXJhbXMpIHtcclxuICAgICAgICAgICAgICAgIGlmIChyZXF1ZXN0UGFyYW1zW2tleV0pIHtcclxuICAgICAgICAgICAgICAgICAgbGV0IGZ1bmMgPSBuZXcgRnVuY3Rpb24oXCJVdGlsc1wiLCByZXF1ZXN0UGFyYW1zW2tleV0pO1xyXG4gICAgICAgICAgICAgICAgICBsZXQgY29udmVyUGFyYW1zID0gZnVuYyhVdGlscyk7XHJcbiAgICAgICAgICAgICAgICAgIGNvbnN0IHsgZGF0YSwgLi4ub3RoZXIgfSA9IGNvbnZlclBhcmFtcztcclxuICAgICAgICAgICAgICAgICAgbGV0IG5ld1BhcmFtcyA9IHtcclxuICAgICAgICAgICAgICAgICAgICBkYXRhOiB7IC4uLmNvbnZlclRhYlBhcmFtcywgLi4uZGF0YSB9LFxyXG4gICAgICAgICAgICAgICAgICAgIC4uLm90aGVyLFxyXG4gICAgICAgICAgICAgICAgICB9O1xyXG4gICAgICAgICAgICAgICAgICBuZXdSZXF1ZXN0UGFyYW1zW2tleV0gPSBuZXdQYXJhbXM7XHJcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgICBuZXdSZXF1ZXN0UGFyYW1zW2tleV0gPSB7IGRhdGE6IHsgLi4uY29udmVyVGFiUGFyYW1zIH0gfTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgcGFnZV9wcm9wcy5yZXF1ZXN0UGFyYW1zID0geyAuLi5uZXdSZXF1ZXN0UGFyYW1zIH07XHJcbiAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgcGFnZV9wcm9wcy5yZXF1ZXN0UGFyYW1zID0ge1xyXG4gICAgICAgICAgICAgICAgcXVlcnlQYXJhbXM6IHsgZGF0YTogeyAuLi5jb252ZXJUYWJQYXJhbXMgfSB9LFxyXG4gICAgICAgICAgICAgICAgYWRkUGFyYW1zOiB7IGRhdGE6IHsgLi4uY29udmVyVGFiUGFyYW1zIH0gfSxcclxuICAgICAgICAgICAgICAgIGVkaXRvclBhcmFtczogeyBkYXRhOiB7IC4uLmNvbnZlclRhYlBhcmFtcyB9IH0sXHJcbiAgICAgICAgICAgICAgfTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgdGhpcy5zZXRTdGF0ZShcclxuICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgIHBhZ2VQcm9wczoge1xyXG4gICAgICAgICAgICAgICAgLi4ucGFnZV9wcm9wcyxcclxuICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgIHRyZWVQcm9wczoge1xyXG4gICAgICAgICAgICAgICAgLi4udHJlZV9wcm9wcyxcclxuICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgIHRhYmxlUHJvcHM6IHtcclxuICAgICAgICAgICAgICAgIC4uLnRhYmxlX3Byb3BzLFxyXG4gICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAgb3RoZXJQcm9wczogeyAuLi5vdGhlcl9wcm9wcyB9LFxyXG4gICAgICAgICAgICAgIHNlbGZDb2x1bW5CdXR0b246IEpTT04ucGFyc2UocmVzLmRhdGEuY29sdW1uQnV0dG9ucykgfHwgW10sXHJcbiAgICAgICAgICAgICAgc2VsZlRvb2xCdXR0b246IEpTT04ucGFyc2UocmVzLmRhdGEudG9vbEJ1dHRvbnMpIHx8IFtdLFxyXG4gICAgICAgICAgICAgIGRlZmF1bHRDb2x1bW5zOiBwYWdlX3Byb3BzLmNvbHVtbnMsXHJcbiAgICAgICAgICAgICAgZm9ybVBhZ2VQcm9wczogZm9ybV9wcm9wcyxcclxuICAgICAgICAgICAgICBzZWxmRm9ybUJ1dHRvbjogZm9ybV9wcm9wcz8uc2VsZkJ1dHRvbiB8fCBbXSxcclxuICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgKCkgPT4ge1xyXG4gICAgICAgICAgICAgIHRoaXMuc2V0U3RhdGUoe1xyXG4gICAgICAgICAgICAgICAgcGFnZUxvYWRpbmc6IGZhbHNlLFxyXG4gICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICApO1xyXG4gICAgICAgIH0gZWxzZSBpZiAocmVzLmNvZGUgPT0gMjAwICYmIHJlcy5kYXRhID09IG51bGwpIHtcclxuICAgICAgICAgIG1lc3NhZ2UuZXJyb3IoXCLmnKrmib7liLDphY3nva7kv6Hmga/vvIFcIik7XHJcbiAgICAgICAgICB0aGlzLnNldFN0YXRlKHtcclxuICAgICAgICAgICAgcGFnZUxvYWRpbmc6IGZhbHNlLFxyXG4gICAgICAgICAgfSk7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIHRoaXMuc2V0U3RhdGUoe1xyXG4gICAgICAgICAgICBwYWdlTG9hZGluZzogZmFsc2UsXHJcbiAgICAgICAgICB9KTtcclxuICAgICAgICB9XHJcbiAgICAgIH0pO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5zZXRTdGF0ZSh7XHJcbiAgICAgICAgcGFnZUxvYWRpbmc6IGZhbHNlLFxyXG4gICAgICB9KTtcclxuICAgIH1cclxuICB9XHJcbiAgLy8gb25TZWFyY2goKSB7fVxyXG4gIGdldFNlYXJjaFZhbHVlcygpIHtcclxuICAgIGNvbnN0IHZhbHVlID0gdGhpcy5wYWdlUmVmLmN1cnJlbnQ/LmdldFNlYXJjaFZhbHVlcygpO1xyXG4gICAgcmV0dXJuIHZhbHVlO1xyXG4gIH1cclxuICBzZXRTZWFyY2hQYXJhbXMocGFyYW1zLCBjYWxsQmFjaykge1xyXG4gICAgdGhpcy5wYWdlUmVmLmN1cnJlbnQ/LnNldFNlYXJjaFBhcmFtcyhwYXJhbXMpO1xyXG4gIH1cclxuICB0YWJsZUxvYWQocGFyYW1zOiBhbnksIHJlcXVlc3RDb25maWcgPSB7fSkge1xyXG4gICAgdGhpcy5wYWdlUmVmLmN1cnJlbnQ/LnRhYmxlTG9hZChwYXJhbXMsIHJlcXVlc3RDb25maWcpO1xyXG4gIH1cclxuICB0YWJsZVJlbG9hZChwYXJhbXMgPSB7fSwgYXV0b0xvYWQgPSB0cnVlKSB7XHJcbiAgICB0aGlzLnBhZ2VSZWYuY3VycmVudD8udGFibGVSZWxvYWQocGFyYW1zLCBhdXRvTG9hZCk7XHJcbiAgfVxyXG4gIGdldFNlbGVjdGVkUm93S2V5cygpIHtcclxuICAgIHJldHVybiB0aGlzLnBhZ2VSZWYuY3VycmVudD8uZ2V0U2VsZWN0ZWRSb3dLZXlzKCk7XHJcbiAgfVxyXG4gIGdldFNlbGVjdGVkUm93RGF0YXMoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5wYWdlUmVmLmN1cnJlbnQ/LmdldFNlbGVjdGVkUm93RGF0YXMoKTtcclxuICB9XHJcblxyXG4gIHJlc2V0U2VsZWN0ZWRSb3dLZXlzKCkge1xyXG4gICAgcmV0dXJuIHRoaXMucGFnZVJlZi5jdXJyZW50Py5yZXNldFNlbGVjdGVkUm93S2V5cygpO1xyXG4gIH1cclxuICByZW5kZXIoKSB7XHJcbiAgICBjb25zdCB7XHJcbiAgICAgIGNsYXNzTmFtZSxcclxuICAgICAgZnVuY3MgPSB7fSxcclxuICAgICAgYmFzZVByb3BzID0ge30gYXMgTlNDQmFzZUJhZ2VQcm9wcyxcclxuICAgIH0gPSB0aGlzLnByb3BzO1xyXG4gICAgY29uc3Qge1xyXG4gICAgICBwYWdlUHJvcHMsXHJcbiAgICAgIHRyZWVQcm9wcyxcclxuICAgICAgdGFibGVQcm9wcyxcclxuICAgICAgc2VsZlRvb2xCdXR0b24sXHJcbiAgICAgIHNlbGZDb2x1bW5CdXR0b24sXHJcbiAgICAgIHBhZ2VMb2FkaW5nLFxyXG4gICAgICBkZWZhdWx0Q29sdW1ucyxcclxuICAgICAgYnV0dG9uTG9hZGluZyA9IHt9LFxyXG4gICAgICBmb3JtUGFnZVByb3BzID0ge30sXHJcbiAgICAgIHNlbGZGb3JtQnV0dG9uLFxyXG4gICAgfSA9IHRoaXMuc3RhdGU7XHJcbiAgICBjb25zdCB7XHJcbiAgICAgIHRyZWVQcm9wczogc2V0dGluZ1RyZWVQcm9wcyA9IHt9LFxyXG4gICAgICB0YWJsZVByb3BzOiBzZXR0aW5nVGFibGVQcm9wcyA9IHt9LFxyXG4gICAgICAuLi5vdGhlclByb3BzXHJcbiAgICB9ID0gYmFzZVByb3BzO1xyXG4gICAgbGV0IF90aGlzID0gdGhpcztcclxuICAgIGNvbnN0IGRlYXVsdEZ1bmNzID0ge1xyXG4gICAgICBzZXRGaWVsZERpc2FibGVkOiAoa2V5LCBkaXNhYmxlZCkgPT4ge1xyXG4gICAgICAgIGNvbnN0IG5ld0RhdGEgPSBzZXRGaWVsZERpc2FibGVkKHBhZ2VQcm9wcy5jb2x1bW5zLCBrZXksIGRpc2FibGVkKTtcclxuICAgICAgICB0aGlzLnNldFN0YXRlKHtcclxuICAgICAgICAgIHBhZ2VQcm9wczogeyAuLi5wYWdlUHJvcHMsIGNvbHVtbnM6IG5ld0RhdGEgfSxcclxuICAgICAgICB9KTtcclxuICAgICAgfSxcclxuICAgICAgc2V0RmllbGRWaXNpYmxlOiAoa2V5LCBkaXNhYmxlZCkgPT4ge1xyXG4gICAgICAgIGNvbnN0IG5ld0RhdGEgPSBzZXRGaWVsZFZpc2libGUocGFnZVByb3BzLmNvbHVtbnMsIGtleSwgZGlzYWJsZWQpO1xyXG4gICAgICAgIHRoaXMuc2V0U3RhdGUoe1xyXG4gICAgICAgICAgcGFnZVByb3BzOiB7IC4uLnBhZ2VQcm9wcywgY29sdW1uczogbmV3RGF0YSB9LFxyXG4gICAgICAgIH0pO1xyXG4gICAgICB9LFxyXG4gICAgICBzZXRGaWVsZFByb3BzRGF0YTogKGtleSwgZGF0YSkgPT4ge1xyXG4gICAgICAgIGNvbnN0IG5ld0RhdGEgPSBzZXRGaWVsZFByb3BzRGF0YShwYWdlUHJvcHMuY29sdW1ucywga2V5LCBkYXRhKTtcclxuICAgICAgICB0aGlzLnNldFN0YXRlKHtcclxuICAgICAgICAgIHBhZ2VQcm9wczogeyAuLi5wYWdlUHJvcHMsIGNvbHVtbnM6IG5ld0RhdGEgfSxcclxuICAgICAgICB9KTtcclxuICAgICAgfSxcclxuICAgICAgLy8gaGlzdG9yeTogKHBhcmFtcywgdHlwZSkgPT4ge1xyXG4gICAgICAvLyAgIGp1bXBQYWdlKHBhcmFtcywgdHlwZSk7XHJcbiAgICAgIC8vIH0sXHJcbiAgICAgIHNldEJ1dHRvbkxvYWRpbmc6IChjb2RlLCBsb2FkaW5nKSA9PiB7XHJcbiAgICAgICAgX3RoaXMuc2V0U3RhdGUoe1xyXG4gICAgICAgICAgYnV0dG9uTG9hZGluZzogeyAuLi5idXR0b25Mb2FkaW5nLCBbY29kZV06IGxvYWRpbmcgfSxcclxuICAgICAgICB9KTtcclxuICAgICAgfSxcclxuICAgICAgLi4uZGVmYXVsdENvbUZ1bmNzLFxyXG4gICAgICBvcGVuRm9ybU1vZGFsOiAocGFyYW1zOk9wZW5QYXJtcykgPT4ge1xyXG4gICAgICAgIE1vZGFsTWFuYWdlci5zaG93TW9kYWwocGFyYW1zKTtcclxuICAgICAgfSxcclxuICAgICAgLy8gZ2V0Q3VycmVudFByb2plY3Q6ICgpID0+IHtcclxuICAgICAgLy8gICByZXR1cm4gZ2V0UHJvamVjdCgpO1xyXG4gICAgICAvLyB9LFxyXG4gICAgfTtcclxuICAgIGNvbnN0IHsgY2hpbGRyZW4gfSA9IHRoaXMucHJvcHM7XHJcbiAgICBsZXQgY29kZVNlbGZCdXR0b25zID0gW107XHJcbiAgICBsZXQgY29kZWNvbHVtbkJ1dHRvbnMgPSBbXTtcclxuICAgIGxldCBjb2RlRm9ybUJ1dHRvbnMgPSBbXTtcclxuICAgIGlmIChBcnJheS5pc0FycmF5KGNoaWxkcmVuKSkge1xyXG4gICAgICBjaGlsZHJlbi5tYXAoKGl0ZW06IGFueSkgPT4ge1xyXG4gICAgICAgIGlmIChBcnJheS5pc0FycmF5KGl0ZW0pKSB7XHJcbiAgICAgICAgICBpdGVtLm1hcCgoY2hpbGQpID0+IHtcclxuICAgICAgICAgICAgaWYgKGNoaWxkPy5wcm9wcz8ucGFnZVR5cGUgPT0gXCJ0b29sQnV0dG9uXCIpIHtcclxuICAgICAgICAgICAgICBjb2RlU2VsZkJ1dHRvbnMucHVzaChjaGlsZCk7XHJcbiAgICAgICAgICAgIH0gZWxzZSBpZiAoY2hpbGQ/LnByb3BzPy5wYWdlVHlwZSA9PSBcImNvbHVtbkJ1dHRvblwiKSB7XHJcbiAgICAgICAgICAgICAgY29kZWNvbHVtbkJ1dHRvbnMucHVzaChjaGlsZCk7XHJcbiAgICAgICAgICAgIH0gZWxzZSBpZiAoY2hpbGQ/LnByb3BzPy5wYWdlVHlwZSA9PSBcImZvcm1CdXR0b25cIikge1xyXG4gICAgICAgICAgICAgIGNvZGVGb3JtQnV0dG9ucy5wdXNoKGNoaWxkKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfSk7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIGlmIChpdGVtPy5wcm9wcz8ucGFnZVR5cGUgPT0gXCJ0b29sQnV0dG9uXCIpIHtcclxuICAgICAgICAgICAgY29kZVNlbGZCdXR0b25zLnB1c2goaXRlbSk7XHJcbiAgICAgICAgICB9IGVsc2UgaWYgKGl0ZW0/LnByb3BzPy5wYWdlVHlwZSA9PSBcImNvbHVtbkJ1dHRvblwiKSB7XHJcbiAgICAgICAgICAgIGNvZGVjb2x1bW5CdXR0b25zLnB1c2goaXRlbSk7XHJcbiAgICAgICAgICB9IGVsc2UgaWYgKGl0ZW0/LnByb3BzPy5wYWdlVHlwZSA9PSBcImZvcm1CdXR0b25cIikge1xyXG4gICAgICAgICAgICBjb2RlRm9ybUJ1dHRvbnMucHVzaChpdGVtKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgIH0pO1xyXG4gICAgfSBlbHNlIGlmIChjaGlsZHJlbikge1xyXG4gICAgICBjb25zdCB7IHByb3BzIH06IGFueSA9IGNoaWxkcmVuO1xyXG4gICAgICBpZiAocHJvcHM/LnBhZ2VUeXBlID09IFwidG9vbEJ1dHRvblwiKSB7XHJcbiAgICAgICAgY29kZVNlbGZCdXR0b25zLnB1c2goY2hpbGRyZW4pO1xyXG4gICAgICB9IGVsc2UgaWYgKHByb3BzPy5wYWdlVHlwZSA9PSBcImNvbHVtbkJ1dHRvblwiKSB7XHJcbiAgICAgICAgY29kZWNvbHVtbkJ1dHRvbnMucHVzaChjaGlsZHJlbik7XHJcbiAgICAgIH0gZWxzZSBpZiAocHJvcHM/LnBhZ2VUeXBlID09IFwiZm9ybUJ1dHRvblwiKSB7XHJcbiAgICAgICAgY29kZUZvcm1CdXR0b25zLnB1c2goY2hpbGRyZW4pO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICByZXR1cm4gKFxyXG4gICAgICA8ZGl2IGNsYXNzTmFtZT17Y2xzKFwibnNjLWZyYW1ld29yay10YWJsZXBhZ2VcIiwgY2xhc3NOYW1lKX0+XHJcbiAgICAgICAge3BhZ2VMb2FkaW5nID8gKFxyXG4gICAgICAgICAgPGRpdiBzdHlsZT17eyB3aWR0aDogXCIxMDAlXCIsIGhlaWdodDogXCIxMDAlXCIgfX0+XHJcbiAgICAgICAgICAgIDxTcGluIHNwaW5uaW5nPXtwYWdlTG9hZGluZ30+PC9TcGluPlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgKSA6IChcclxuICAgICAgICAgIDxCYXNlUGFnZVxyXG4gICAgICAgICAgICB7Li4ucGFnZVByb3BzfVxyXG4gICAgICAgICAgICB0cmVlUHJvcHM9e3sgLi4udHJlZVByb3BzLCAuLi5zZXR0aW5nVHJlZVByb3BzIH19XHJcbiAgICAgICAgICAgIHRhYmxlUHJvcHM9e3sgLi4udGFibGVQcm9wcywgLi4uc2V0dGluZ1RhYmxlUHJvcHMgfX1cclxuICAgICAgICAgICAgZm9ybVByb3BzPXt7fX1cclxuICAgICAgICAgICAgVXRpbHM9e3sgLi4uZGVmYXVsdFV0aWwgfX1cclxuICAgICAgICAgICAgcmVmPXt0aGlzLnBhZ2VSZWZ9XHJcbiAgICAgICAgICAgIHBhZ2VSZWY9e3RoaXMucGFnZVJlZn1cclxuICAgICAgICAgICAgb25IaWRlRm9ybT17KCkgPT4ge1xyXG4gICAgICAgICAgICAgIHRoaXMuc2V0U3RhdGUoe1xyXG4gICAgICAgICAgICAgICAgcGFnZVByb3BzOiB7IC4uLnBhZ2VQcm9wcywgY29sdW1uczogZGVmYXVsdENvbHVtbnMgfSxcclxuICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgICB0aGlzLnBhZ2VSZWYuY3VycmVudD8uaGlkZUZvcm0oKTtcclxuICAgICAgICAgICAgfX1cclxuICAgICAgICAgICAgZnVuY3M9e3sgLi4uZGVhdWx0RnVuY3MsIC4uLmZ1bmNzIH19XHJcbiAgICAgICAgICAgIGluaXREYXRhPXt0aGlzLmluaXREYXRhfVxyXG4gICAgICAgICAgICBmb3JtUGFnZVByb3BzPXt7XHJcbiAgICAgICAgICAgICAgZm9ybVR5cGU6IGZvcm1QYWdlUHJvcHMuZm9ybVR5cGUgfHwgXCJtb2RhbFwiLFxyXG4gICAgICAgICAgICAgIHByb3BzOiBmb3JtUGFnZVByb3BzPy5wcm9wcyxcclxuICAgICAgICAgICAgfX1cclxuICAgICAgICAgICAgdGFibGVDb2RlPXt0aGlzLnByb3BzLnRhYmxlQ29kZX1cclxuICAgICAgICAgICAgey4uLm90aGVyUHJvcHN9XHJcbiAgICAgICAgICA+XHJcbiAgICAgICAgICAgIHtyZW5kZXJTZWxmVG9vbEJ1dHRvbih7XHJcbiAgICAgICAgICAgICAgc2VsZkJ1dHRvbjogc2VsZlRvb2xCdXR0b24sXHJcbiAgICAgICAgICAgICAgcGFnZVJlZjogdGhpcy5wYWdlUmVmLFxyXG4gICAgICAgICAgICAgIGZ1bmNzOiB7IC4uLmRlYXVsdEZ1bmNzLCAuLi5mdW5jcyB9LFxyXG4gICAgICAgICAgICAgIGxvYWRpbmc6IHRoaXMuc3RhdGUuYnV0dG9uTG9hZGluZyxcclxuICAgICAgICAgICAgfSl9XHJcbiAgICAgICAgICAgIHtjb2RlU2VsZkJ1dHRvbnMubWFwKChpdGVtKSA9PiB7XHJcbiAgICAgICAgICAgICAgcmV0dXJuIGl0ZW07XHJcbiAgICAgICAgICAgIH0pfVxyXG4gICAgICAgICAgICB7cmVuZGVyU2VsZkNvbHVtbkJ1dHRvbih7XHJcbiAgICAgICAgICAgICAgc2VsZkNvbHVtbkJ1dHRvbixcclxuICAgICAgICAgICAgICBwYWdlUmVmOiB0aGlzLnBhZ2VSZWYsXHJcbiAgICAgICAgICAgICAgZnVuY3M6IHsgLi4uZGVhdWx0RnVuY3MsIC4uLmZ1bmNzIH0sXHJcbiAgICAgICAgICAgIH0pfVxyXG4gICAgICAgICAgICB7Y29kZWNvbHVtbkJ1dHRvbnMubWFwKChpdGVtKSA9PiB7XHJcbiAgICAgICAgICAgICAgcmV0dXJuIGl0ZW07XHJcbiAgICAgICAgICAgIH0pfVxyXG4gICAgICAgICAgICB7cmVuZGVyU2VsZlRvb2xCdXR0b24oe1xyXG4gICAgICAgICAgICAgIHNlbGZCdXR0b246IHNlbGZGb3JtQnV0dG9uLFxyXG4gICAgICAgICAgICAgIHBhZ2VSZWY6IHRoaXMucGFnZVJlZixcclxuICAgICAgICAgICAgICBmdW5jczogeyAuLi5kZWF1bHRGdW5jcywgLi4uZnVuY3MgfSxcclxuICAgICAgICAgICAgICBsb2FkaW5nOiB0aGlzLnN0YXRlLmJ1dHRvbkxvYWRpbmcsXHJcbiAgICAgICAgICAgICAgdHlwZTogXCJmb3JtQnV0dG9uXCIsXHJcbiAgICAgICAgICAgIH0pfVxyXG4gICAgICAgICAgICB7Y29kZUZvcm1CdXR0b25zLm1hcCgoaXRlbSkgPT4ge1xyXG4gICAgICAgICAgICAgIHJldHVybiBpdGVtO1xyXG4gICAgICAgICAgICB9KX1cclxuICAgICAgICAgIDwvQmFzZVBhZ2U+XHJcbiAgICAgICAgKX1cclxuICAgICAgICB7LyogPE1vZGFsRm9ybSByZWY9e3RoaXMubW9kYWxSZWZ9IC8+ICovfVxyXG4gICAgICA8L2Rpdj5cclxuICAgICk7XHJcbiAgfVxyXG59XHJcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7QUFDQSxPQUFPQSxRQUFRLE1BQTRCLGFBQWE7QUFDeEQsT0FBT0MsSUFBSSxNQUFNLGlCQUFpQjtBQUVsQyxPQUFPLGNBQWM7QUFDckIsT0FBT0MsS0FBSyxNQUFNLE9BQU87QUFDekIsT0FBT0MsVUFBVSxNQUFNLGFBQWE7QUFDcEMsT0FBT0Ms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
441
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJCYXNlUGFnZSIsIlNwaW4iLCJSZWFjdCIsIk5zY1JlcXVlc3QiLCJjbHMiLCJkZWZhdWx0Q29tRnVuY3MiLCJkZWZhdWx0VXRpbCIsIk1vZGFsRm9ybSIsInJlbmRlclNlbGZDb2x1bW5CdXR0b24iLCJyZW5kZXJTZWxmVG9vbEJ1dHRvbiIsIk1vZGFsTWFuYWdlciIsImdldFBhZ2VEYXRhIiwicGFyYW1zIiwiZ2V0IiwieHNzRmlsdGVyIiwiYXV0b1ByZWZpeCIsInNldEZpZWxkRGlzYWJsZWQiLCJkYXRhIiwia2V5IiwiZGlzYWJsZWQiLCJjb2x1bW5zIiwibmV3Q29sdW1ucyIsIm1hcCIsIml0ZW0iLCJvYmoiLCJfb2JqZWN0U3ByZWFkIiwiZGF0YUluZGV4IiwiaW5kZXhPZiIsInByb3BzIiwicHVzaCIsInNldEZpZWxkVmlzaWJsZSIsInZpc2libGUiLCJlZGl0b3IiLCJzZXRGaWVsZFByb3BzRGF0YSIsInByb3BzRGF0YSIsImRlZmF1bHRTdGF0ZVZhbHVlIiwicGFnZVByb3BzIiwidHJlZVByb3BzIiwic3RvcmUiLCJ1cmwiLCJhdXRvTG9hZCIsInRhYmxlUHJvcHMiLCJzZWxmVG9vbEJ1dHRvbiIsInNlbGZDb2x1bW5CdXR0b24iLCJzZWxmRm9ybUJ1dHRvbiIsInBhZ2VMb2FkaW5nIiwiZGVmYXVsdENvbHVtbnMiLCJvdGhlclByb3BzIiwiYnV0dG9uTG9hZGluZyIsImZvcm1QYWdlUHJvcHMiLCJTZXR0aW5nVGFibGUiLCJDb21wb25lbnQiLCJjb25zdHJ1Y3RvciIsImFyZ3VtZW50cyIsIl9kZWZpbmVQcm9wZXJ0eSIsImNyZWF0ZVJlZiIsInJlcyIsInN0YXRlIiwic2hvd1NlYXJjaCIsImRlZmF1bHRTZWFyY2giLCJ0YWJsZURhdGFSZXNvdXJjZSIsImZ1bmMiLCJGdW5jdGlvbiIsInBhZ2VSZWYiLCJzZXRUaW1lb3V0IiwiX3RoaXMkcGFnZVJlZiRjdXJyZW50IiwiX3RoaXMkcGFnZVJlZiRjdXJyZW50MiIsImN1cnJlbnQiLCJ0YWJsZUxvYWQiLCJzZXRTZWFyY2hQYXJhbXMiLCJjb21wb25lbnREaWRNb3VudCIsImdldERhdGEiLCJyZWdpc3RlciIsIm1vZGFsUmVmIiwiY29tcG9uZW50RGlkVXBkYXRlIiwicHJldlByb3BzIiwicHJldlN0YXRlIiwic25hcHNob3QiLCJ0YWJsZUNvZGUiLCJzZXRTdGF0ZSIsInB1Ymxpc2hlZCIsIm1lbnVDb2RlIiwidGFiUGFyYW1zIiwiY29kZSIsImlzUHVibGlzaGVkIiwidGhlbiIsIl9wYWdlX3Byb3BzJHBlcm1pc3NpbyIsInRhYmxlX3Byb3BzIiwiSlNPTiIsInBhcnNlIiwidHJlZV9wcm9wcyIsInBhZ2VfcHJvcHMiLCJvdGhlcl9wcm9wcyIsIm90aGVyUGFyYW1zIiwiZm9ybV9wcm9wcyIsImZvcm1Qcm9wcyIsInBlcm1pc3Npb24iLCJoYXMiLCJVdGlscyIsInBhcmFtRnVuYyIsImNvbnZlclRhYlBhcmFtcyIsInJlcXVlc3RQYXJhbXMiLCJuZXdSZXF1ZXN0UGFyYW1zIiwicXVlcnlQYXJhbXMiLCJhZGRQYXJhbXMiLCJlZGl0b3JQYXJhbXMiLCJjb252ZXJQYXJhbXMiLCJvdGhlciIsIl9vYmplY3RXaXRob3V0UHJvcGVydGllcyIsIl9leGNsdWRlZCIsIm5ld1BhcmFtcyIsImNvbHVtbkJ1dHRvbnMiLCJ0b29sQnV0dG9ucyIsInNlbGZCdXR0b24iLCJfbWVzc2FnZSIsImVycm9yIiwiZ2V0U2VhcmNoVmFsdWVzIiwiX3RoaXMkcGFnZVJlZiRjdXJyZW50MyIsInZhbHVlIiwiY2FsbEJhY2siLCJfdGhpcyRwYWdlUmVmJGN1cnJlbnQ0IiwiX3RoaXMkcGFnZVJlZiRjdXJyZW50NSIsInJlcXVlc3RDb25maWciLCJsZW5ndGgiLCJ1bmRlZmluZWQiLCJ0YWJsZVJlbG9hZCIsIl90aGlzJHBhZ2VSZWYkY3VycmVudDYiLCJnZXRTZWxlY3RlZFJvd0tleXMiLCJfdGhpcyRwYWdlUmVmJGN1cnJlbnQ3IiwiZ2V0U2VsZWN0ZWRSb3dEYXRhcyIsIl90aGlzJHBhZ2VSZWYkY3VycmVudDgiLCJyZXNldFNlbGVjdGVkUm93S2V5cyIsIl90aGlzJHBhZ2VSZWYkY3VycmVudDkiLCJyZW5kZXIiLCJjbGFzc05hbWUiLCJmdW5jcyIsImJhc2VQcm9wcyIsInNldHRpbmdUcmVlUHJvcHMiLCJzZXR0aW5nVGFibGVQcm9wcyIsIl9leGNsdWRlZDIiLCJfdGhpcyIsImRlYXVsdEZ1bmNzIiwibmV3RGF0YSIsInNldEJ1dHRvbkxvYWRpbmciLCJsb2FkaW5nIiwib3BlbkZvcm1Nb2RhbCIsInNob3dNb2RhbCIsImNoaWxkcmVuIiwiY29kZVNlbGZCdXR0b25zIiwiY29kZWNvbHVtbkJ1dHRvbnMiLCJjb2RlRm9ybUJ1dHRvbnMiLCJBcnJheSIsImlzQXJyYXkiLCJjaGlsZCIsIl9jaGlsZCRwcm9wcyIsIl9jaGlsZCRwcm9wczIiLCJfY2hpbGQkcHJvcHMzIiwicGFnZVR5cGUiLCJfaXRlbSRwcm9wcyIsIl9pdGVtJHByb3BzMiIsIl9pdGVtJHByb3BzMyIsImNyZWF0ZUVsZW1lbnQiLCJzdHlsZSIsIndpZHRoIiwiaGVpZ2h0Iiwic3Bpbm5pbmciLCJfZXh0ZW5kcyIsInJlZiIsIm9uSGlkZUZvcm0iLCJfdGhpcyRwYWdlUmVmJGN1cnJlbnQxMCIsImhpZGVGb3JtIiwiaW5pdERhdGEiLCJmb3JtVHlwZSIsInR5cGUiXSwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvY29tcG9uZW50cy9wYWdlL1NldHRpbmdUYWJsZS9pbmRleC50c3giXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgZm9yd2FyZFJlZiwgdXNlRWZmZWN0LCB1c2VJbXBlcmF0aXZlSGFuZGxlLCB1c2VTdGF0ZSB9IGZyb20gXCJyZWFjdFwiO1xyXG5pbXBvcnQgQmFzZVBhZ2UsIHsgTlNDQmFzZUJhZ2VQcm9wcyB9IGZyb20gXCIuLi9CYXNlUGFnZVwiO1xyXG5pbXBvcnQgU3BpbiBmcm9tIFwiLi4vLi4vYmFzZS9zcGluXCI7XHJcbmltcG9ydCBCdXR0b24gZnJvbSBcIi4uLy4uL2Jhc2UvYnV0dG9uXCI7XHJcbmltcG9ydCBcIi4vaW5kZXgubGVzc1wiO1xyXG5pbXBvcnQgUmVhY3QgZnJvbSBcInJlYWN0XCI7XHJcbmltcG9ydCBOc2NSZXF1ZXN0IGZyb20gXCJuc2MtcmVxdWVzdFwiO1xyXG5pbXBvcnQgY2xzIGZyb20gXCJjbGFzc25hbWVzXCI7XHJcbmltcG9ydCB7IG1lc3NhZ2UgfSBmcm9tIFwiYW50ZFwiO1xyXG5pbXBvcnQge1xyXG4gIGRlZmF1bHRDb21GdW5jcyxcclxuICBkZWZhdWx0VXRpbCxcclxuICBNb2RhbEZvcm0sXHJcbiAgcmVuZGVyU2VsZkNvbHVtbkJ1dHRvbixcclxuICByZW5kZXJTZWxmVG9vbEJ1dHRvbixcclxuICBNb2RhbE1hbmFnZXIsXHJcbiAgT3BlblBhcm1zLFxyXG59IGZyb20gXCIuLi9TZXR0aW5nVXRpbC91dGlsc1wiO1xyXG5cclxuY29uc3QgZ2V0UGFnZURhdGEgPSAocGFyYW1zOiBhbnkpID0+IHtcclxuICByZXR1cm4gTnNjUmVxdWVzdC5nZXQoYC9qcXVpY2stc2V0dGluZy9zZXR0aW5nL3RhYmxlL2luZm8vYCwge1xyXG4gICAgcGFyYW1zLFxyXG4gICAgeHNzRmlsdGVyOiBmYWxzZSxcclxuICAgIGF1dG9QcmVmaXg6IHRydWUsXHJcbiAgfSk7XHJcbn07XHJcblxyXG4vL+iuvue9ruihqOWNleWtl+auteWPquivu1xyXG5jb25zdCBzZXRGaWVsZERpc2FibGVkID0gKGRhdGE6IEFycmF5PGFueT4sIGtleSwgZGlzYWJsZWQpID0+IHtcclxuICBjb25zdCBjb2x1bW5zID0gWy4uLmRhdGFdO1xyXG4gIGxldCBuZXdDb2x1bW5zID0gW10gYXMgYW55O1xyXG4gIGNvbHVtbnMubWFwKChpdGVtKSA9PiB7XHJcbiAgICBsZXQgb2JqID0geyAuLi5pdGVtIH07XHJcbiAgICBpZiAoaXRlbS5kYXRhSW5kZXggPT0ga2V5IHx8IGtleS5pbmRleE9mKGl0ZW0uZGF0YUluZGV4KSA+IC0xKSB7XHJcbiAgICAgIGxldCBwcm9wcyA9IG9iai5wcm9wcyA/IHsgLi4ub2JqLnByb3BzIH0gOiB7fTtcclxuICAgICAgcHJvcHMuZGlzYWJsZWQgPSBkaXNhYmxlZDtcclxuICAgICAgb2JqLnByb3BzID0gcHJvcHM7XHJcbiAgICB9XHJcbiAgICBuZXdDb2x1bW5zLnB1c2gob2JqKTtcclxuICB9KTtcclxuICByZXR1cm4gbmV3Q29sdW1ucztcclxufTtcclxuLy/orr7nva7ooajljZXlrZfmrrXpmpDol49cclxuY29uc3Qgc2V0RmllbGRWaXNpYmxlID0gKGRhdGE6IEFycmF5PGFueT4sIGtleSwgdmlzaWJsZSkgPT4ge1xyXG4gIGNvbnN0IGNvbHVtbnMgPSBbLi4uZGF0YV07XHJcbiAgbGV0IG5ld0NvbHVtbnMgPSBbXSBhcyBhbnk7XHJcbiAgY29sdW1ucy5tYXAoKGl0ZW0pID0+IHtcclxuICAgIGxldCBvYmogPSB7IC4uLml0ZW0gfTtcclxuICAgIGlmIChpdGVtLmRhdGFJbmRleCA9PSBrZXkgfHwga2V5LmluZGV4T2YoaXRlbS5kYXRhSW5kZXgpID4gLTEpIHtcclxuICAgICAgb2JqLmVkaXRvciA9IHZpc2libGU7XHJcbiAgICB9XHJcbiAgICBuZXdDb2x1bW5zLnB1c2gob2JqKTtcclxuICB9KTtcclxuICByZXR1cm4gbmV3Q29sdW1ucztcclxufTtcclxuXHJcbmNvbnN0IHNldEZpZWxkUHJvcHNEYXRhID0gKGRhdGE6IEFycmF5PGFueT4sIGtleSwgcHJvcHNEYXRhKSA9PiB7XHJcbiAgY29uc3QgY29sdW1ucyA9IFsuLi5kYXRhXTtcclxuICBsZXQgbmV3Q29sdW1ucyA9IFtdIGFzIGFueTtcclxuICBjb2x1bW5zLm1hcCgoaXRlbSkgPT4ge1xyXG4gICAgbGV0IG9iaiA9IHsgLi4uaXRlbSB9O1xyXG4gICAgaWYgKGl0ZW0uZGF0YUluZGV4ID09IGtleSkge1xyXG4gICAgICBsZXQgcHJvcHMgPSBvYmoucHJvcHMgPyB7IC4uLm9iai5wcm9wcyB9IDoge307XHJcbiAgICAgIHByb3BzLmRhdGEgPSBwcm9wc0RhdGE7XHJcbiAgICAgIG9iai5wcm9wcyA9IHByb3BzO1xyXG4gICAgfVxyXG4gICAgbmV3Q29sdW1ucy5wdXNoKG9iaik7XHJcbiAgfSk7XHJcbiAgcmV0dXJuIG5ld0NvbHVtbnM7XHJcbn07XHJcbmludGVyZmFjZSBJUHJvcHMge1xyXG4gIHRhYmxlQ29kZTogc3RyaW5nO1xyXG4gIGNsYXNzTmFtZT86IGFueTtcclxuICBtZW51Q29kZT86IHN0cmluZztcclxuICBmdW5jcz86IGFueTtcclxuICBwdWJsaXNoZWQ/OiBib29sZWFuO1xyXG4gIGluc3RhbmNlUmVmPzogYW55O1xyXG4gIHRhYlBhcmFtcz86IGFueTtcclxuICBvbkNhbGxCYWNrcz86IHtcclxuICAgIHRyZWVTZWxlY3RDYWxsQmFjaz86IGFueTsgLy/moJHngrnlh7vmn6Xor6LlkI7lm57osINcclxuICAgIG9uUXVlcnlDYWxsQmFjaz86IGFueTsgLy/mn6Xor6Llm57osIPvvIzmn6Xor6LmlbDmja7lkI7lm57osINcclxuICAgIG9uU3VtYml0Q2FsbEJhY2s/OiBhbnk7IC8v5L+d5a2Y5Zue6LCD77yM5L+d5a2Y5pWw5o2u5oiQ5Yqf5ZCO5Zue6LCDXHJcbiAgICBvbkRlbGV0ZUNhbGxCYWNrPzogYW55OyAvL+WIoOmZpOaMiemSruWbnuiwg++8jOWIoOmZpOaVsOaNruWQjuaJp+ihjFxyXG4gICAgb25FZGl0b3JDYWxsQmFjaz86IGFueTsgLy/nvJbovpHmjInpkq7lm57osIPvvIzmiZPlvIDlvLnmoYblkI7miafooYxcclxuICAgIG9uQWRkQ2FsbEJhY2s/OiBhbnk7IC8v5re75Yqg5oyJ6ZKu5Zue6LCD77yM5omT5byA5by55qGG5ZCO5omn6KGMXHJcbiAgICBvblNlYXJjaENhbGxCYWNrPzogYW55OyAvL+WIl+ihqOafpeivouaMiemSruWbnuiwg++8jOaJk+W8gOW8ueahhuWQjuaJp+ihjFxyXG4gIH07XHJcbiAgYmFzZVByb3BzPzogTlNDQmFzZUJhZ2VQcm9wcztcclxuICBhdXRvTG9hZD86IGJvb2xlYW47XHJcbn1cclxuXHJcbmNvbnN0IGRlZmF1bHRTdGF0ZVZhbHVlID0ge1xyXG4gIHBhZ2VQcm9wczoge30gYXMgYW55LFxyXG4gIHRyZWVQcm9wczogeyBzdG9yZTogeyB1cmw6IFwiXCIsIGF1dG9Mb2FkOiBmYWxzZSB9IH0gYXMgYW55LFxyXG4gIHRhYmxlUHJvcHM6IHt9IGFzIGFueSxcclxuICBzZWxmVG9vbEJ1dHRvbjogW10gYXMgYW55LFxyXG4gIHNlbGZDb2x1bW5CdXR0b246IFtdIGFzIGFueSxcclxuICBzZWxmRm9ybUJ1dHRvbjogW10gYXMgYW55LFxyXG4gIHBhZ2VMb2FkaW5nOiB0cnVlLFxyXG4gIGRlZmF1bHRDb2x1bW5zOiBbXSBhcyBhbnksXHJcbiAgb3RoZXJQcm9wczoge30gYXMgYW55LFxyXG4gIGJ1dHRvbkxvYWRpbmc6IHt9IGFzIGFueSxcclxuICBmb3JtUGFnZVByb3BzOiB7fSBhcyBhbnksXHJcbn07XHJcbmV4cG9ydCBkZWZhdWx0IGNsYXNzIFNldHRpbmdUYWJsZSBleHRlbmRzIFJlYWN0LkNvbXBvbmVudDxJUHJvcHMsIGFueT4ge1xyXG4gIHN0YXRlID0ge1xyXG4gICAgLi4uZGVmYXVsdFN0YXRlVmFsdWUsXHJcbiAgfTtcclxuICBwYWdlUmVmID0gUmVhY3QuY3JlYXRlUmVmPGFueT4oKTtcclxuICBtb2RhbFJlZiA9IFJlYWN0LmNyZWF0ZVJlZjxhbnk+KCk7XHJcblxyXG4gIGNvbXBvbmVudERpZE1vdW50KCk6IHZvaWQge1xyXG4gICAgdGhpcy5nZXREYXRhKCk7XHJcbiAgICBNb2RhbE1hbmFnZXIucmVnaXN0ZXIodGhpcy5tb2RhbFJlZik7XHJcbiAgfVxyXG5cclxuICBjb21wb25lbnREaWRVcGRhdGUoXHJcbiAgICBwcmV2UHJvcHM6IFJlYWRvbmx5PElQcm9wcz4sXHJcbiAgICBwcmV2U3RhdGU6IFJlYWRvbmx5PGFueT4sXHJcbiAgICBzbmFwc2hvdD86IGFueVxyXG4gICk6IHZvaWQge1xyXG4gICAgaWYgKHByZXZQcm9wcy50YWJsZUNvZGUgIT0gdGhpcy5wcm9wcy50YWJsZUNvZGUpIHtcclxuICAgICAgdGhpcy5zZXRTdGF0ZShcclxuICAgICAgICB7XHJcbiAgICAgICAgICAuLi5kZWZhdWx0U3RhdGVWYWx1ZSxcclxuICAgICAgICB9LFxyXG4gICAgICAgICgpID0+IHtcclxuICAgICAgICAgIHRoaXMuZ2V0RGF0YSgpO1xyXG4gICAgICAgIH1cclxuICAgICAgKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGluaXREYXRhID0gKHJlczogYW55KSA9PiB7XHJcbiAgICBjb25zdCB7IG90aGVyUHJvcHMsIHBhZ2VQcm9wcyB9ID0gdGhpcy5zdGF0ZTtcclxuICAgIGlmIChcclxuICAgICAgcGFnZVByb3BzLnNob3dTZWFyY2ggIT09IGZhbHNlICYmXHJcbiAgICAgIG90aGVyUHJvcHMuZGVmYXVsdFNlYXJjaCAmJlxyXG4gICAgICBvdGhlclByb3BzLnRhYmxlRGF0YVJlc291cmNlID09IFwidXJsXCJcclxuICAgICkge1xyXG4gICAgICBsZXQgZnVuYyA9IG5ldyBGdW5jdGlvbihcIlV0aWxzLGV2ZW50T3B0aW9uXCIsIG90aGVyUHJvcHMuZGVmYXVsdFNlYXJjaCk7XHJcbiAgICAgIGNvbnN0IHBhcmFtcyA9IGZ1bmMoZGVmYXVsdFV0aWwsIHsgcGFnZVJlZjogdGhpcy5wYWdlUmVmIH0pO1xyXG4gICAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgICB0aGlzLnBhZ2VSZWYuY3VycmVudD8udGFibGVMb2FkKHsgLi4ucGFyYW1zIH0pO1xyXG4gICAgICAgIHRoaXMucGFnZVJlZi5jdXJyZW50Py5zZXRTZWFyY2hQYXJhbXMoeyAuLi5wYXJhbXMgfSk7XHJcbiAgICAgIH0sIDUwKTsgLy/nm7TmjqXorr7nva7vvIxwYWdlUmVm5rKh57uR5a6a77yM5pqC5pe26YCa6L+H5bu26L+f5Ye95pWw6L+b6KGM6Kej5YazXHJcbiAgICB9XHJcbiAgfTtcclxuICAvLyDojrflj5bmlbDmja5cclxuICBnZXREYXRhKCkge1xyXG4gICAgLy8g5LuOcHJvcHPkuK3ojrflj5Z0YWJsZUNvZGXjgIFwdWJsaXNoZWTjgIFtZW51Q29kZVxyXG4gICAgdGhpcy5zZXRTdGF0ZSh7XHJcbiAgICAgIHBhZ2VMb2FkaW5nOiB0cnVlLFxyXG4gICAgfSk7XHJcbiAgICBjb25zdCB7IHRhYmxlQ29kZSwgcHVibGlzaGVkID0gdHJ1ZSwgbWVudUNvZGUsIHRhYlBhcmFtcyB9ID0gdGhpcy5wcm9wcztcclxuICAgIC8vIOWmguaenHRhYmxlQ29kZeWtmOWcqFxyXG4gICAgaWYgKHRhYmxlQ29kZSkge1xyXG4gICAgICAvLyDlrprkuYnlj4LmlbBcclxuICAgICAgbGV0IHBhcmFtcyA9IHsgY29kZTogdGFibGVDb2RlIH0gYXMgYW55O1xyXG4gICAgICAvLyDlpoLmnpxwdWJsaXNoZWTkuLp0cnVlXHJcbiAgICAgIGlmIChwdWJsaXNoZWQpIHtcclxuICAgICAgICAvLyDorr7nva7lj4LmlbBpc1B1Ymxpc2hlZOS4ujFcclxuICAgICAgICBwYXJhbXMuaXNQdWJsaXNoZWQgPSAxO1xyXG4gICAgICB9XHJcbiAgICAgIC8vIOiwg+eUqGdldFBhZ2VEYXRh5pa55rOV6I635Y+W5pWw5o2uXHJcbiAgICAgIGdldFBhZ2VEYXRhKHsgLi4ucGFyYW1zIH0pLnRoZW4oKHJlczogYW55KSA9PiB7XHJcbiAgICAgICAgaWYgKHJlcy5jb2RlID09IDIwMCAmJiByZXMuZGF0YSkge1xyXG4gICAgICAgICAgbGV0IHRhYmxlX3Byb3BzID0gSlNPTi5wYXJzZShyZXMuZGF0YS50YWJsZVByb3BzIHx8IFwie31cIikgfHwge307XHJcbiAgICAgICAgICBsZXQgdHJlZV9wcm9wcyA9IEpTT04ucGFyc2UocmVzLmRhdGEudHJlZVByb3BzIHx8IFwie31cIikgfHwge307XHJcbiAgICAgICAgICBsZXQgcGFnZV9wcm9wcyA9IEpTT04ucGFyc2UocmVzLmRhdGEucGFnZVByb3BzIHx8IFwie31cIikgfHwge307XHJcbiAgICAgICAgICBsZXQgb3RoZXJfcHJvcHMgPSBKU09OLnBhcnNlKHJlcy5kYXRhLm90aGVyUGFyYW1zIHx8IFwie31cIikgfHwge307XHJcbiAgICAgICAgICBsZXQgZm9ybV9wcm9wcyA9IEpTT04ucGFyc2UocmVzLmRhdGEuZm9ybVByb3BzIHx8IFwie31cIikgfHwge307XHJcbiAgICAgICAgICBpZiAocGFnZV9wcm9wcy5wZXJtaXNzaW9uPy5oYXMgPT0gdHJ1ZSkge1xyXG4gICAgICAgICAgICBwYWdlX3Byb3BzLnBlcm1pc3Npb24ubWVudUNvZGUgPSBtZW51Q29kZTtcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIGlmIChwdWJsaXNoZWQgPT0gZmFsc2UpIHtcclxuICAgICAgICAgICAgcGFnZV9wcm9wcy5wZXJtaXNzaW9uID0gZmFsc2U7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICBpZiAoXHJcbiAgICAgICAgICAgIChwYWdlX3Byb3BzLnNob3dTZWFyY2ggIT09IGZhbHNlICYmXHJcbiAgICAgICAgICAgICAgb3RoZXJfcHJvcHMuZGVmYXVsdFNlYXJjaCAmJlxyXG4gICAgICAgICAgICAgIG90aGVyX3Byb3BzPy50YWJsZURhdGFSZXNvdXJjZSA9PSBcInVybFwiKSB8fFxyXG4gICAgICAgICAgICB0aGlzLnByb3BzLmF1dG9Mb2FkID09PSBmYWxzZVxyXG4gICAgICAgICAgKSB7XHJcbiAgICAgICAgICAgIHRhYmxlX3Byb3BzLnN0b3JlLmF1dG9Mb2FkID0gZmFsc2U7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICBpZiAodGFiUGFyYW1zKSB7XHJcbiAgICAgICAgICAgIGNvbnN0IFV0aWxzID0gZGVmYXVsdFV0aWwgfHwge307XHJcbiAgICAgICAgICAgIGxldCBwYXJhbUZ1bmMgPSBuZXcgRnVuY3Rpb24oXCJVdGlsc1wiLCB0YWJQYXJhbXMpO1xyXG4gICAgICAgICAgICBsZXQgY29udmVyVGFiUGFyYW1zID0gcGFyYW1GdW5jKFV0aWxzKTtcclxuICAgICAgICAgICAgaWYgKHBhZ2VfcHJvcHMucmVxdWVzdFBhcmFtcykge1xyXG4gICAgICAgICAgICAgIGxldCB7IHJlcXVlc3RQYXJhbXMgPSB7fSB9ID0gcGFnZV9wcm9wcztcclxuICAgICAgICAgICAgICBsZXQgbmV3UmVxdWVzdFBhcmFtcyA9IHtcclxuICAgICAgICAgICAgICAgIHF1ZXJ5UGFyYW1zOiBudWxsLFxyXG4gICAgICAgICAgICAgICAgYWRkUGFyYW1zOiBudWxsLFxyXG4gICAgICAgICAgICAgICAgZWRpdG9yUGFyYW1zOiBudWxsLFxyXG4gICAgICAgICAgICAgIH07XHJcbiAgICAgICAgICAgICAgZm9yIChsZXQga2V5IGluIG5ld1JlcXVlc3RQYXJhbXMpIHtcclxuICAgICAgICAgICAgICAgIGlmIChyZXF1ZXN0UGFyYW1zW2tleV0pIHtcclxuICAgICAgICAgICAgICAgICAgbGV0IGZ1bmMgPSBuZXcgRnVuY3Rpb24oXCJVdGlsc1wiLCByZXF1ZXN0UGFyYW1zW2tleV0pO1xyXG4gICAgICAgICAgICAgICAgICBsZXQgY29udmVyUGFyYW1zID0gZnVuYyhVdGlscyk7XHJcbiAgICAgICAgICAgICAgICAgIGNvbnN0IHsgZGF0YSwgLi4ub3RoZXIgfSA9IGNvbnZlclBhcmFtcztcclxuICAgICAgICAgICAgICAgICAgbGV0IG5ld1BhcmFtcyA9IHtcclxuICAgICAgICAgICAgICAgICAgICBkYXRhOiB7IC4uLmNvbnZlclRhYlBhcmFtcywgLi4uZGF0YSB9LFxyXG4gICAgICAgICAgICAgICAgICAgIC4uLm90aGVyLFxyXG4gICAgICAgICAgICAgICAgICB9O1xyXG4gICAgICAgICAgICAgICAgICBuZXdSZXF1ZXN0UGFyYW1zW2tleV0gPSBuZXdQYXJhbXM7XHJcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgICBuZXdSZXF1ZXN0UGFyYW1zW2tleV0gPSB7IGRhdGE6IHsgLi4uY29udmVyVGFiUGFyYW1zIH0gfTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgcGFnZV9wcm9wcy5yZXF1ZXN0UGFyYW1zID0geyAuLi5uZXdSZXF1ZXN0UGFyYW1zIH07XHJcbiAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgcGFnZV9wcm9wcy5yZXF1ZXN0UGFyYW1zID0ge1xyXG4gICAgICAgICAgICAgICAgcXVlcnlQYXJhbXM6IHsgZGF0YTogeyAuLi5jb252ZXJUYWJQYXJhbXMgfSB9LFxyXG4gICAgICAgICAgICAgICAgYWRkUGFyYW1zOiB7IGRhdGE6IHsgLi4uY29udmVyVGFiUGFyYW1zIH0gfSxcclxuICAgICAgICAgICAgICAgIGVkaXRvclBhcmFtczogeyBkYXRhOiB7IC4uLmNvbnZlclRhYlBhcmFtcyB9IH0sXHJcbiAgICAgICAgICAgICAgfTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgdGhpcy5zZXRTdGF0ZShcclxuICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgIHBhZ2VQcm9wczoge1xyXG4gICAgICAgICAgICAgICAgLi4ucGFnZV9wcm9wcyxcclxuICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgIHRyZWVQcm9wczoge1xyXG4gICAgICAgICAgICAgICAgLi4udHJlZV9wcm9wcyxcclxuICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgIHRhYmxlUHJvcHM6IHtcclxuICAgICAgICAgICAgICAgIC4uLnRhYmxlX3Byb3BzLFxyXG4gICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAgb3RoZXJQcm9wczogeyAuLi5vdGhlcl9wcm9wcyB9LFxyXG4gICAgICAgICAgICAgIHNlbGZDb2x1bW5CdXR0b246IEpTT04ucGFyc2UocmVzLmRhdGEuY29sdW1uQnV0dG9ucykgfHwgW10sXHJcbiAgICAgICAgICAgICAgc2VsZlRvb2xCdXR0b246IEpTT04ucGFyc2UocmVzLmRhdGEudG9vbEJ1dHRvbnMpIHx8IFtdLFxyXG4gICAgICAgICAgICAgIGRlZmF1bHRDb2x1bW5zOiBwYWdlX3Byb3BzLmNvbHVtbnMsXHJcbiAgICAgICAgICAgICAgZm9ybVBhZ2VQcm9wczogZm9ybV9wcm9wcyxcclxuICAgICAgICAgICAgICBzZWxmRm9ybUJ1dHRvbjogZm9ybV9wcm9wcz8uc2VsZkJ1dHRvbiB8fCBbXSxcclxuICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgKCkgPT4ge1xyXG4gICAgICAgICAgICAgIHRoaXMuc2V0U3RhdGUoe1xyXG4gICAgICAgICAgICAgICAgcGFnZUxvYWRpbmc6IGZhbHNlLFxyXG4gICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICApO1xyXG4gICAgICAgIH0gZWxzZSBpZiAocmVzLmNvZGUgPT0gMjAwICYmIHJlcy5kYXRhID09IG51bGwpIHtcclxuICAgICAgICAgIG1lc3NhZ2UuZXJyb3IoXCLmnKrmib7liLDphY3nva7kv6Hmga/vvIFcIik7XHJcbiAgICAgICAgICB0aGlzLnNldFN0YXRlKHtcclxuICAgICAgICAgICAgcGFnZUxvYWRpbmc6IGZhbHNlLFxyXG4gICAgICAgICAgfSk7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIHRoaXMuc2V0U3RhdGUoe1xyXG4gICAgICAgICAgICBwYWdlTG9hZGluZzogZmFsc2UsXHJcbiAgICAgICAgICB9KTtcclxuICAgICAgICB9XHJcbiAgICAgIH0pO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5zZXRTdGF0ZSh7XHJcbiAgICAgICAgcGFnZUxvYWRpbmc6IGZhbHNlLFxyXG4gICAgICB9KTtcclxuICAgIH1cclxuICB9XHJcbiAgLy8gb25TZWFyY2goKSB7fVxyXG4gIGdldFNlYXJjaFZhbHVlcygpIHtcclxuICAgIGNvbnN0IHZhbHVlID0gdGhpcy5wYWdlUmVmLmN1cnJlbnQ/LmdldFNlYXJjaFZhbHVlcygpO1xyXG4gICAgcmV0dXJuIHZhbHVlO1xyXG4gIH1cclxuICBzZXRTZWFyY2hQYXJhbXMocGFyYW1zLCBjYWxsQmFjaykge1xyXG4gICAgdGhpcy5wYWdlUmVmLmN1cnJlbnQ/LnNldFNlYXJjaFBhcmFtcyhwYXJhbXMpO1xyXG4gIH1cclxuICB0YWJsZUxvYWQocGFyYW1zOiBhbnksIHJlcXVlc3RDb25maWcgPSB7fSkge1xyXG4gICAgdGhpcy5wYWdlUmVmLmN1cnJlbnQ/LnRhYmxlTG9hZChwYXJhbXMsIHJlcXVlc3RDb25maWcpO1xyXG4gIH1cclxuICB0YWJsZVJlbG9hZChwYXJhbXMgPSB7fSwgYXV0b0xvYWQgPSB0cnVlKSB7XHJcbiAgICB0aGlzLnBhZ2VSZWYuY3VycmVudD8udGFibGVSZWxvYWQocGFyYW1zLCBhdXRvTG9hZCk7XHJcbiAgfVxyXG4gIGdldFNlbGVjdGVkUm93S2V5cygpIHtcclxuICAgIHJldHVybiB0aGlzLnBhZ2VSZWYuY3VycmVudD8uZ2V0U2VsZWN0ZWRSb3dLZXlzKCk7XHJcbiAgfVxyXG4gIGdldFNlbGVjdGVkUm93RGF0YXMoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5wYWdlUmVmLmN1cnJlbnQ/LmdldFNlbGVjdGVkUm93RGF0YXMoKTtcclxuICB9XHJcblxyXG4gIHJlc2V0U2VsZWN0ZWRSb3dLZXlzKCkge1xyXG4gICAgcmV0dXJuIHRoaXMucGFnZVJlZi5jdXJyZW50Py5yZXNldFNlbGVjdGVkUm93S2V5cygpO1xyXG4gIH1cclxuICByZW5kZXIoKSB7XHJcbiAgICBjb25zdCB7XHJcbiAgICAgIGNsYXNzTmFtZSxcclxuICAgICAgZnVuY3MgPSB7fSxcclxuICAgICAgYmFzZVByb3BzID0ge30gYXMgTlNDQmFzZUJhZ2VQcm9wcyxcclxuICAgIH0gPSB0aGlzLnByb3BzO1xyXG4gICAgY29uc3Qge1xyXG4gICAgICBwYWdlUHJvcHMsXHJcbiAgICAgIHRyZWVQcm9wcyxcclxuICAgICAgdGFibGVQcm9wcyxcclxuICAgICAgc2VsZlRvb2xCdXR0b24sXHJcbiAgICAgIHNlbGZDb2x1bW5CdXR0b24sXHJcbiAgICAgIHBhZ2VMb2FkaW5nLFxyXG4gICAgICBkZWZhdWx0Q29sdW1ucyxcclxuICAgICAgYnV0dG9uTG9hZGluZyA9IHt9LFxyXG4gICAgICBmb3JtUGFnZVByb3BzID0ge30sXHJcbiAgICAgIHNlbGZGb3JtQnV0dG9uLFxyXG4gICAgfSA9IHRoaXMuc3RhdGU7XHJcbiAgICBjb25zdCB7XHJcbiAgICAgIHRyZWVQcm9wczogc2V0dGluZ1RyZWVQcm9wcyA9IHt9LFxyXG4gICAgICB0YWJsZVByb3BzOiBzZXR0aW5nVGFibGVQcm9wcyA9IHt9LFxyXG4gICAgICAuLi5vdGhlclByb3BzXHJcbiAgICB9ID0gYmFzZVByb3BzO1xyXG4gICAgbGV0IF90aGlzID0gdGhpcztcclxuICAgIGNvbnN0IGRlYXVsdEZ1bmNzID0ge1xyXG4gICAgICBzZXRGaWVsZERpc2FibGVkOiAoa2V5LCBkaXNhYmxlZCkgPT4ge1xyXG4gICAgICAgIGNvbnN0IG5ld0RhdGEgPSBzZXRGaWVsZERpc2FibGVkKHBhZ2VQcm9wcy5jb2x1bW5zLCBrZXksIGRpc2FibGVkKTtcclxuICAgICAgICB0aGlzLnNldFN0YXRlKHtcclxuICAgICAgICAgIHBhZ2VQcm9wczogeyAuLi5wYWdlUHJvcHMsIGNvbHVtbnM6IG5ld0RhdGEgfSxcclxuICAgICAgICB9KTtcclxuICAgICAgfSxcclxuICAgICAgc2V0RmllbGRWaXNpYmxlOiAoa2V5LCBkaXNhYmxlZCkgPT4ge1xyXG4gICAgICAgIGNvbnN0IG5ld0RhdGEgPSBzZXRGaWVsZFZpc2libGUocGFnZVByb3BzLmNvbHVtbnMsIGtleSwgZGlzYWJsZWQpO1xyXG4gICAgICAgIHRoaXMuc2V0U3RhdGUoe1xyXG4gICAgICAgICAgcGFnZVByb3BzOiB7IC4uLnBhZ2VQcm9wcywgY29sdW1uczogbmV3RGF0YSB9LFxyXG4gICAgICAgIH0pO1xyXG4gICAgICB9LFxyXG4gICAgICBzZXRGaWVsZFByb3BzRGF0YTogKGtleSwgZGF0YSkgPT4ge1xyXG4gICAgICAgIGNvbnN0IG5ld0RhdGEgPSBzZXRGaWVsZFByb3BzRGF0YShwYWdlUHJvcHMuY29sdW1ucywga2V5LCBkYXRhKTtcclxuICAgICAgICB0aGlzLnNldFN0YXRlKHtcclxuICAgICAgICAgIHBhZ2VQcm9wczogeyAuLi5wYWdlUHJvcHMsIGNvbHVtbnM6IG5ld0RhdGEgfSxcclxuICAgICAgICB9KTtcclxuICAgICAgfSxcclxuICAgICAgLy8gaGlzdG9yeTogKHBhcmFtcywgdHlwZSkgPT4ge1xyXG4gICAgICAvLyAgIGp1bXBQYWdlKHBhcmFtcywgdHlwZSk7XHJcbiAgICAgIC8vIH0sXHJcbiAgICAgIHNldEJ1dHRvbkxvYWRpbmc6IChjb2RlLCBsb2FkaW5nKSA9PiB7XHJcbiAgICAgICAgX3RoaXMuc2V0U3RhdGUoe1xyXG4gICAgICAgICAgYnV0dG9uTG9hZGluZzogeyAuLi5idXR0b25Mb2FkaW5nLCBbY29kZV06IGxvYWRpbmcgfSxcclxuICAgICAgICB9KTtcclxuICAgICAgfSxcclxuICAgICAgLi4uZGVmYXVsdENvbUZ1bmNzLFxyXG4gICAgICBvcGVuRm9ybU1vZGFsOiAocGFyYW1zOk9wZW5QYXJtcykgPT4ge1xyXG4gICAgICAgIE1vZGFsTWFuYWdlci5zaG93TW9kYWwocGFyYW1zKTtcclxuICAgICAgfSxcclxuICAgICAgLy8gZ2V0Q3VycmVudFByb2plY3Q6ICgpID0+IHtcclxuICAgICAgLy8gICByZXR1cm4gZ2V0UHJvamVjdCgpO1xyXG4gICAgICAvLyB9LFxyXG4gICAgfTtcclxuICAgIGNvbnN0IHsgY2hpbGRyZW4gfSA9IHRoaXMucHJvcHM7XHJcbiAgICBsZXQgY29kZVNlbGZCdXR0b25zID0gW107XHJcbiAgICBsZXQgY29kZWNvbHVtbkJ1dHRvbnMgPSBbXTtcclxuICAgIGxldCBjb2RlRm9ybUJ1dHRvbnMgPSBbXTtcclxuICAgIGlmIChBcnJheS5pc0FycmF5KGNoaWxkcmVuKSkge1xyXG4gICAgICBjaGlsZHJlbi5tYXAoKGl0ZW06IGFueSkgPT4ge1xyXG4gICAgICAgIGlmIChBcnJheS5pc0FycmF5KGl0ZW0pKSB7XHJcbiAgICAgICAgICBpdGVtLm1hcCgoY2hpbGQpID0+IHtcclxuICAgICAgICAgICAgaWYgKGNoaWxkPy5wcm9wcz8ucGFnZVR5cGUgPT0gXCJ0b29sQnV0dG9uXCIpIHtcclxuICAgICAgICAgICAgICBjb2RlU2VsZkJ1dHRvbnMucHVzaChjaGlsZCk7XHJcbiAgICAgICAgICAgIH0gZWxzZSBpZiAoY2hpbGQ/LnByb3BzPy5wYWdlVHlwZSA9PSBcImNvbHVtbkJ1dHRvblwiKSB7XHJcbiAgICAgICAgICAgICAgY29kZWNvbHVtbkJ1dHRvbnMucHVzaChjaGlsZCk7XHJcbiAgICAgICAgICAgIH0gZWxzZSBpZiAoY2hpbGQ/LnByb3BzPy5wYWdlVHlwZSA9PSBcImZvcm1CdXR0b25cIikge1xyXG4gICAgICAgICAgICAgIGNvZGVGb3JtQnV0dG9ucy5wdXNoKGNoaWxkKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfSk7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIGlmIChpdGVtPy5wcm9wcz8ucGFnZVR5cGUgPT0gXCJ0b29sQnV0dG9uXCIpIHtcclxuICAgICAgICAgICAgY29kZVNlbGZCdXR0b25zLnB1c2goaXRlbSk7XHJcbiAgICAgICAgICB9IGVsc2UgaWYgKGl0ZW0/LnByb3BzPy5wYWdlVHlwZSA9PSBcImNvbHVtbkJ1dHRvblwiKSB7XHJcbiAgICAgICAgICAgIGNvZGVjb2x1bW5CdXR0b25zLnB1c2goaXRlbSk7XHJcbiAgICAgICAgICB9IGVsc2UgaWYgKGl0ZW0/LnByb3BzPy5wYWdlVHlwZSA9PSBcImZvcm1CdXR0b25cIikge1xyXG4gICAgICAgICAgICBjb2RlRm9ybUJ1dHRvbnMucHVzaChpdGVtKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgIH0pO1xyXG4gICAgfSBlbHNlIGlmIChjaGlsZHJlbikge1xyXG4gICAgICBjb25zdCB7IHByb3BzIH06IGFueSA9IGNoaWxkcmVuO1xyXG4gICAgICBpZiAocHJvcHM/LnBhZ2VUeXBlID09IFwidG9vbEJ1dHRvblwiKSB7XHJcbiAgICAgICAgY29kZVNlbGZCdXR0b25zLnB1c2goY2hpbGRyZW4pO1xyXG4gICAgICB9IGVsc2UgaWYgKHByb3BzPy5wYWdlVHlwZSA9PSBcImNvbHVtbkJ1dHRvblwiKSB7XHJcbiAgICAgICAgY29kZWNvbHVtbkJ1dHRvbnMucHVzaChjaGlsZHJlbik7XHJcbiAgICAgIH0gZWxzZSBpZiAocHJvcHM/LnBhZ2VUeXBlID09IFwiZm9ybUJ1dHRvblwiKSB7XHJcbiAgICAgICAgY29kZUZvcm1CdXR0b25zLnB1c2goY2hpbGRyZW4pO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICByZXR1cm4gKFxyXG4gICAgICA8ZGl2IGNsYXNzTmFtZT17Y2xzKFwibnNjLWZyYW1ld29yay10YWJsZXBhZ2VcIiwgY2xhc3NOYW1lKX0+XHJcbiAgICAgICAge3BhZ2VMb2FkaW5nID8gKFxyXG4gICAgICAgICAgPGRpdiBzdHlsZT17eyB3aWR0aDogXCIxMDAlXCIsIGhlaWdodDogXCIxMDAlXCIgfX0+XHJcbiAgICAgICAgICAgIDxTcGluIHNwaW5uaW5nPXtwYWdlTG9hZGluZ30+PC9TcGluPlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgKSA6IChcclxuICAgICAgICAgIDxCYXNlUGFnZVxyXG4gICAgICAgICAgICB7Li4ucGFnZVByb3BzfVxyXG4gICAgICAgICAgICB0cmVlUHJvcHM9e3sgLi4udHJlZVByb3BzLCAuLi5zZXR0aW5nVHJlZVByb3BzIH19XHJcbiAgICAgICAgICAgIHRhYmxlUHJvcHM9e3sgLi4udGFibGVQcm9wcywgLi4uc2V0dGluZ1RhYmxlUHJvcHMgfX1cclxuICAgICAgICAgICAgZm9ybVByb3BzPXt7fX1cclxuICAgICAgICAgICAgVXRpbHM9e3sgLi4uZGVmYXVsdFV0aWwgfX1cclxuICAgICAgICAgICAgcmVmPXt0aGlzLnBhZ2VSZWZ9XHJcbiAgICAgICAgICAgIHBhZ2VSZWY9e3RoaXMucGFnZVJlZn1cclxuICAgICAgICAgICAgb25IaWRlRm9ybT17KCkgPT4ge1xyXG4gICAgICAgICAgICAgIHRoaXMuc2V0U3RhdGUoe1xyXG4gICAgICAgICAgICAgICAgcGFnZVByb3BzOiB7IC4uLnBhZ2VQcm9wcywgY29sdW1uczogZGVmYXVsdENvbHVtbnMgfSxcclxuICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgICB0aGlzLnBhZ2VSZWYuY3VycmVudD8uaGlkZUZvcm0oKTtcclxuICAgICAgICAgICAgfX1cclxuICAgICAgICAgICAgZnVuY3M9e3sgLi4uZGVhdWx0RnVuY3MsIC4uLmZ1bmNzIH19XHJcbiAgICAgICAgICAgIGluaXREYXRhPXt0aGlzLmluaXREYXRhfVxyXG4gICAgICAgICAgICBmb3JtUGFnZVByb3BzPXt7XHJcbiAgICAgICAgICAgICAgZm9ybVR5cGU6IGZvcm1QYWdlUHJvcHMuZm9ybVR5cGUgfHwgXCJtb2RhbFwiLFxyXG4gICAgICAgICAgICAgIHByb3BzOiBmb3JtUGFnZVByb3BzPy5wcm9wcyxcclxuICAgICAgICAgICAgfX1cclxuICAgICAgICAgICAgdGFibGVDb2RlPXt0aGlzLnByb3BzLnRhYmxlQ29kZX1cclxuICAgICAgICAgICAgey4uLm90aGVyUHJvcHN9XHJcbiAgICAgICAgICA+XHJcbiAgICAgICAgICAgIHtyZW5kZXJTZWxmVG9vbEJ1dHRvbih7XHJcbiAgICAgICAgICAgICAgc2VsZkJ1dHRvbjogc2VsZlRvb2xCdXR0b24sXHJcbiAgICAgICAgICAgICAgcGFnZVJlZjogdGhpcy5wYWdlUmVmLFxyXG4gICAgICAgICAgICAgIGZ1bmNzOiB7IC4uLmRlYXVsdEZ1bmNzLCAuLi5mdW5jcyB9LFxyXG4gICAgICAgICAgICAgIGxvYWRpbmc6IHRoaXMuc3RhdGUuYnV0dG9uTG9hZGluZyxcclxuICAgICAgICAgICAgfSl9XHJcbiAgICAgICAgICAgIHtjb2RlU2VsZkJ1dHRvbnMubWFwKChpdGVtKSA9PiB7XHJcbiAgICAgICAgICAgICAgcmV0dXJuIGl0ZW07XHJcbiAgICAgICAgICAgIH0pfVxyXG4gICAgICAgICAgICB7cmVuZGVyU2VsZkNvbHVtbkJ1dHRvbih7XHJcbiAgICAgICAgICAgICAgc2VsZkNvbHVtbkJ1dHRvbixcclxuICAgICAgICAgICAgICBwYWdlUmVmOiB0aGlzLnBhZ2VSZWYsXHJcbiAgICAgICAgICAgICAgZnVuY3M6IHsgLi4uZGVhdWx0RnVuY3MsIC4uLmZ1bmNzIH0sXHJcbiAgICAgICAgICAgIH0pfVxyXG4gICAgICAgICAgICB7Y29kZWNvbHVtbkJ1dHRvbnMubWFwKChpdGVtKSA9PiB7XHJcbiAgICAgICAgICAgICAgcmV0dXJuIGl0ZW07XHJcbiAgICAgICAgICAgIH0pfVxyXG4gICAgICAgICAgICB7cmVuZGVyU2VsZlRvb2xCdXR0b24oe1xyXG4gICAgICAgICAgICAgIHNlbGZCdXR0b246IHNlbGZGb3JtQnV0dG9uLFxyXG4gICAgICAgICAgICAgIHBhZ2VSZWY6IHRoaXMucGFnZVJlZixcclxuICAgICAgICAgICAgICBmdW5jczogeyAuLi5kZWF1bHRGdW5jcywgLi4uZnVuY3MgfSxcclxuICAgICAgICAgICAgICBsb2FkaW5nOiB0aGlzLnN0YXRlLmJ1dHRvbkxvYWRpbmcsXHJcbiAgICAgICAgICAgICAgdHlwZTogXCJmb3JtQnV0dG9uXCIsXHJcbiAgICAgICAgICAgIH0pfVxyXG4gICAgICAgICAgICB7Y29kZUZvcm1CdXR0b25zLm1hcCgoaXRlbSkgPT4ge1xyXG4gICAgICAgICAgICAgIHJldHVybiBpdGVtO1xyXG4gICAgICAgICAgICB9KX1cclxuICAgICAgICAgIDwvQmFzZVBhZ2U+XHJcbiAgICAgICAgKX1cclxuICAgICAgICA8TW9kYWxGb3JtIHJlZj17dGhpcy5tb2RhbFJlZn0gLz5cclxuICAgICAgPC9kaXY+XHJcbiAgICApO1xyXG4gIH1cclxufVxyXG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7O0FBQ0EsT0FBT0EsUUFBUSxNQUE0QixhQUFhO0FBQ3hELE9BQU9DLElBQUksTUFBTSxpQkFBaUI7QUFFbEMsT0FBTyxjQUFjO0FBQ3JCLE9BQU9DLEtBQUssTUFBTSxPQUFPO0FBQ3pCLE9BQU9DLFVBQVUsTUFBTSxhQUFhO0FBQ3BDLE9B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
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["BasePage","Spin","React","NscRequest","cls","defaultComFuncs","defaultUtil","renderSelfColumnButton","renderSelfToolButton","ModalManager","getPageData","params","get","xssFilter","autoPrefix","setFieldDisabled","data","key","disabled","columns","newColumns","map","item","obj","_objectSpread","dataIndex","indexOf","props","push","setFieldVisible","visible","editor","setFieldPropsData","propsData","defaultStateValue","pageProps","treeProps","store","url","autoLoad","tableProps","selfToolButton","selfColumnButton","selfFormButton","pageLoading","defaultColumns","otherProps","buttonLoading","formPageProps","SettingTable","Component","constructor","arguments","_defineProperty","createRef","res","state","showSearch","defaultSearch","tableDataResource","func","Function","pageRef","setTimeout","_this$pageRef$current","_this$pageRef$current2","current","tableLoad","setSearchParams","componentDidMount","getData","register","modalRef","componentDidUpdate","prevProps","prevState","snapshot","tableCode","setState","published","menuCode","tabParams","code","isPublished","then","_page_props$permissio","table_props","JSON","parse","tree_props","page_props","other_props","otherParams","form_props","formProps","permission","has","Utils","paramFunc","converTabParams","requestParams","newRequestParams","queryParams","addParams","editorParams","converParams","other","_objectWithoutProperties","_excluded","newParams","columnButtons","toolButtons","selfButton","_message","error","getSearchValues","_this$pageRef$current3","value","callBack","_this$pageRef$current4","_this$pageRef$current5","requestConfig","length","undefined","tableReload","_this$pageRef$current6","getSelectedRowKeys","_this$pageRef$current7","getSelectedRowDatas","_this$pageRef$current8","resetSelectedRowKeys","_this$pageRef$current9","render","className","funcs","baseProps","settingTreeProps","settingTableProps","_excluded2","_this","deaultFuncs","newData","setButtonLoading","loading","openFormModal","showModal","children","codeSelfButtons","codecolumnButtons","codeFormButtons","Array","isArray","child","_child$props","_child$props2","_child$props3","pageType","_item$props","_item$props2","_item$props3","createElement","style","width","height","spinning","_extends","ref","onHideForm","_this$pageRef$current10","hideForm","initData","formType","type"],"sources":["../../../src/components/page/SettingTable/index.tsx"],"sourcesContent":["import { forwardRef, useEffect, useImperativeHandle, useState } from \"react\";\r\nimport BasePage, { NSCBaseBageProps } from \"../BasePage\";\r\nimport Spin from \"../../base/spin\";\r\nimport Button from \"../../base/button\";\r\nimport \"./index.less\";\r\nimport React from \"react\";\r\nimport NscRequest from \"nsc-request\";\r\nimport cls from \"classnames\";\r\nimport { message } from \"antd\";\r\nimport {\r\n defaultComFuncs,\r\n defaultUtil,\r\n ModalForm,\r\n renderSelfColumnButton,\r\n renderSelfToolButton,\r\n ModalManager,\r\n OpenParms,\r\n} from \"../SettingUtil/utils\";\r\n\r\nconst getPageData = (params: any) => {\r\n return NscRequest.get(`/jquick-setting/setting/table/info/`, {\r\n params,\r\n xssFilter: false,\r\n autoPrefix: true,\r\n });\r\n};\r\n\r\n//设置表单字段只读\r\nconst setFieldDisabled = (data: Array<any>, key, disabled) => {\r\n const columns = [...data];\r\n let newColumns = [] as any;\r\n columns.map((item) => {\r\n let obj = { ...item };\r\n if (item.dataIndex == key || key.indexOf(item.dataIndex) > -1) {\r\n let props = obj.props ? { ...obj.props } : {};\r\n props.disabled = disabled;\r\n obj.props = props;\r\n }\r\n newColumns.push(obj);\r\n });\r\n return newColumns;\r\n};\r\n//设置表单字段隐藏\r\nconst setFieldVisible = (data: Array<any>, key, visible) => {\r\n const columns = [...data];\r\n let newColumns = [] as any;\r\n columns.map((item) => {\r\n let obj = { ...item };\r\n if (item.dataIndex == key || key.indexOf(item.dataIndex) > -1) {\r\n obj.editor = visible;\r\n }\r\n newColumns.push(obj);\r\n });\r\n return newColumns;\r\n};\r\n\r\nconst setFieldPropsData = (data: Array<any>, key, propsData) => {\r\n const columns = [...data];\r\n let newColumns = [] as any;\r\n columns.map((item) => {\r\n let obj = { ...item };\r\n if (item.dataIndex == key) {\r\n let props = obj.props ? { ...obj.props } : {};\r\n props.data = propsData;\r\n obj.props = props;\r\n }\r\n newColumns.push(obj);\r\n });\r\n return newColumns;\r\n};\r\ninterface IProps {\r\n tableCode: string;\r\n className?: any;\r\n menuCode?: string;\r\n funcs?: any;\r\n published?: boolean;\r\n instanceRef?: any;\r\n tabParams?: any;\r\n onCallBacks?: {\r\n treeSelectCallBack?: any; //树点击查询后回调\r\n onQueryCallBack?: any; //查询回调,查询数据后回调\r\n onSumbitCallBack?: any; //保存回调,保存数据成功后回调\r\n onDeleteCallBack?: any; //删除按钮回调,删除数据后执行\r\n onEditorCallBack?: any; //编辑按钮回调,打开弹框后执行\r\n onAddCallBack?: any; //添加按钮回调,打开弹框后执行\r\n onSearchCallBack?: any; //列表查询按钮回调,打开弹框后执行\r\n };\r\n baseProps?: NSCBaseBageProps;\r\n autoLoad?: boolean;\r\n}\r\n\r\nconst defaultStateValue = {\r\n pageProps: {} as any,\r\n treeProps: { store: { url: \"\", autoLoad: false } } as any,\r\n tableProps: {} as any,\r\n selfToolButton: [] as any,\r\n selfColumnButton: [] as any,\r\n selfFormButton: [] as any,\r\n pageLoading: true,\r\n defaultColumns: [] as any,\r\n otherProps: {} as any,\r\n buttonLoading: {} as any,\r\n formPageProps: {} as any,\r\n};\r\nexport default class SettingTable extends React.Component<IProps, any> {\r\n state = {\r\n ...defaultStateValue,\r\n };\r\n pageRef = React.createRef<any>();\r\n modalRef = React.createRef<any>();\r\n\r\n componentDidMount(): void {\r\n this.getData();\r\n ModalManager.register(this.modalRef);\r\n }\r\n\r\n componentDidUpdate(\r\n prevProps: Readonly<IProps>,\r\n prevState: Readonly<any>,\r\n snapshot?: any\r\n ): void {\r\n if (prevProps.tableCode != this.props.tableCode) {\r\n this.setState(\r\n {\r\n ...defaultStateValue,\r\n },\r\n () => {\r\n this.getData();\r\n }\r\n );\r\n }\r\n }\r\n\r\n initData = (res: any) => {\r\n const { otherProps, pageProps } = this.state;\r\n if (\r\n pageProps.showSearch !== false &&\r\n otherProps.defaultSearch &&\r\n otherProps.tableDataResource == \"url\"\r\n ) {\r\n let func = new Function(\"Utils,eventOption\", otherProps.defaultSearch);\r\n const params = func(defaultUtil, { pageRef: this.pageRef });\r\n setTimeout(() => {\r\n this.pageRef.current?.tableLoad({ ...params });\r\n this.pageRef.current?.setSearchParams({ ...params });\r\n }, 50); //直接设置,pageRef没绑定,暂时通过延迟函数进行解决\r\n }\r\n };\r\n // 获取数据\r\n getData() {\r\n // 从props中获取tableCode、published、menuCode\r\n this.setState({\r\n pageLoading: true,\r\n });\r\n const { tableCode, published = true, menuCode, tabParams } = this.props;\r\n // 如果tableCode存在\r\n if (tableCode) {\r\n // 定义参数\r\n let params = { code: tableCode } as any;\r\n // 如果published为true\r\n if (published) {\r\n // 设置参数isPublished为1\r\n params.isPublished = 1;\r\n }\r\n // 调用getPageData方法获取数据\r\n getPageData({ ...params }).then((res: any) => {\r\n if (res.code == 200 && res.data) {\r\n let table_props = JSON.parse(res.data.tableProps || \"{}\") || {};\r\n let tree_props = JSON.parse(res.data.treeProps || \"{}\") || {};\r\n let page_props = JSON.parse(res.data.pageProps || \"{}\") || {};\r\n let other_props = JSON.parse(res.data.otherParams || \"{}\") || {};\r\n let form_props = JSON.parse(res.data.formProps || \"{}\") || {};\r\n if (page_props.permission?.has == true) {\r\n page_props.permission.menuCode = menuCode;\r\n }\r\n if (published == false) {\r\n page_props.permission = false;\r\n }\r\n if (\r\n (page_props.showSearch !== false &&\r\n other_props.defaultSearch &&\r\n other_props?.tableDataResource == \"url\") ||\r\n this.props.autoLoad === false\r\n ) {\r\n table_props.store.autoLoad = false;\r\n }\r\n if (tabParams) {\r\n const Utils = defaultUtil || {};\r\n let paramFunc = new Function(\"Utils\", tabParams);\r\n let converTabParams = paramFunc(Utils);\r\n if (page_props.requestParams) {\r\n let { requestParams = {} } = page_props;\r\n let newRequestParams = {\r\n queryParams: null,\r\n addParams: null,\r\n editorParams: null,\r\n };\r\n for (let key in newRequestParams) {\r\n if (requestParams[key]) {\r\n let func = new Function(\"Utils\", requestParams[key]);\r\n let converParams = func(Utils);\r\n const { data, ...other } = converParams;\r\n let newParams = {\r\n data: { ...converTabParams, ...data },\r\n ...other,\r\n };\r\n newRequestParams[key] = newParams;\r\n } else {\r\n newRequestParams[key] = { data: { ...converTabParams } };\r\n }\r\n }\r\n page_props.requestParams = { ...newRequestParams };\r\n } else {\r\n page_props.requestParams = {\r\n queryParams: { data: { ...converTabParams } },\r\n addParams: { data: { ...converTabParams } },\r\n editorParams: { data: { ...converTabParams } },\r\n };\r\n }\r\n }\r\n this.setState(\r\n {\r\n pageProps: {\r\n ...page_props,\r\n },\r\n treeProps: {\r\n ...tree_props,\r\n },\r\n tableProps: {\r\n ...table_props,\r\n },\r\n otherProps: { ...other_props },\r\n selfColumnButton: JSON.parse(res.data.columnButtons) || [],\r\n selfToolButton: JSON.parse(res.data.toolButtons) || [],\r\n defaultColumns: page_props.columns,\r\n formPageProps: form_props,\r\n selfFormButton: form_props?.selfButton || [],\r\n },\r\n () => {\r\n this.setState({\r\n pageLoading: false,\r\n });\r\n }\r\n );\r\n } else if (res.code == 200 && res.data == null) {\r\n message.error(\"未找到配置信息!\");\r\n this.setState({\r\n pageLoading: false,\r\n });\r\n } else {\r\n this.setState({\r\n pageLoading: false,\r\n });\r\n }\r\n });\r\n } else {\r\n this.setState({\r\n pageLoading: false,\r\n });\r\n }\r\n }\r\n // onSearch() {}\r\n getSearchValues() {\r\n const value = this.pageRef.current?.getSearchValues();\r\n return value;\r\n }\r\n setSearchParams(params, callBack) {\r\n this.pageRef.current?.setSearchParams(params);\r\n }\r\n tableLoad(params: any, requestConfig = {}) {\r\n this.pageRef.current?.tableLoad(params, requestConfig);\r\n }\r\n tableReload(params = {}, autoLoad = true) {\r\n this.pageRef.current?.tableReload(params, autoLoad);\r\n }\r\n getSelectedRowKeys() {\r\n return this.pageRef.current?.getSelectedRowKeys();\r\n }\r\n getSelectedRowDatas() {\r\n return this.pageRef.current?.getSelectedRowDatas();\r\n }\r\n\r\n resetSelectedRowKeys() {\r\n return this.pageRef.current?.resetSelectedRowKeys();\r\n }\r\n render() {\r\n const {\r\n className,\r\n funcs = {},\r\n baseProps = {} as NSCBaseBageProps,\r\n } = this.props;\r\n const {\r\n pageProps,\r\n treeProps,\r\n tableProps,\r\n selfToolButton,\r\n selfColumnButton,\r\n pageLoading,\r\n defaultColumns,\r\n buttonLoading = {},\r\n formPageProps = {},\r\n selfFormButton,\r\n } = this.state;\r\n const {\r\n treeProps: settingTreeProps = {},\r\n tableProps: settingTableProps = {},\r\n ...otherProps\r\n } = baseProps;\r\n let _this = this;\r\n const deaultFuncs = {\r\n setFieldDisabled: (key, disabled) => {\r\n const newData = setFieldDisabled(pageProps.columns, key, disabled);\r\n this.setState({\r\n pageProps: { ...pageProps, columns: newData },\r\n });\r\n },\r\n setFieldVisible: (key, disabled) => {\r\n const newData = setFieldVisible(pageProps.columns, key, disabled);\r\n this.setState({\r\n pageProps: { ...pageProps, columns: newData },\r\n });\r\n },\r\n setFieldPropsData: (key, data) => {\r\n const newData = setFieldPropsData(pageProps.columns, key, data);\r\n this.setState({\r\n pageProps: { ...pageProps, columns: newData },\r\n });\r\n },\r\n // history: (params, type) => {\r\n // jumpPage(params, type);\r\n // },\r\n setButtonLoading: (code, loading) => {\r\n _this.setState({\r\n buttonLoading: { ...buttonLoading, [code]: loading },\r\n });\r\n },\r\n ...defaultComFuncs,\r\n openFormModal: (params:OpenParms) => {\r\n ModalManager.showModal(params);\r\n },\r\n // getCurrentProject: () => {\r\n // return getProject();\r\n // },\r\n };\r\n const { children } = this.props;\r\n let codeSelfButtons = [];\r\n let codecolumnButtons = [];\r\n let codeFormButtons = [];\r\n if (Array.isArray(children)) {\r\n children.map((item: any) => {\r\n if (Array.isArray(item)) {\r\n item.map((child) => {\r\n if (child?.props?.pageType == \"toolButton\") {\r\n codeSelfButtons.push(child);\r\n } else if (child?.props?.pageType == \"columnButton\") {\r\n codecolumnButtons.push(child);\r\n } else if (child?.props?.pageType == \"formButton\") {\r\n codeFormButtons.push(child);\r\n }\r\n });\r\n } else {\r\n if (item?.props?.pageType == \"toolButton\") {\r\n codeSelfButtons.push(item);\r\n } else if (item?.props?.pageType == \"columnButton\") {\r\n codecolumnButtons.push(item);\r\n } else if (item?.props?.pageType == \"formButton\") {\r\n codeFormButtons.push(item);\r\n }\r\n }\r\n });\r\n } else if (children) {\r\n const { props }: any = children;\r\n if (props?.pageType == \"toolButton\") {\r\n codeSelfButtons.push(children);\r\n } else if (props?.pageType == \"columnButton\") {\r\n codecolumnButtons.push(children);\r\n } else if (props?.pageType == \"formButton\") {\r\n codeFormButtons.push(children);\r\n }\r\n }\r\n return (\r\n <div className={cls(\"nsc-framework-tablepage\", className)}>\r\n {pageLoading ? (\r\n <div style={{ width: \"100%\", height: \"100%\" }}>\r\n <Spin spinning={pageLoading}></Spin>\r\n </div>\r\n ) : (\r\n <BasePage\r\n {...pageProps}\r\n treeProps={{ ...treeProps, ...settingTreeProps }}\r\n tableProps={{ ...tableProps, ...settingTableProps }}\r\n formProps={{}}\r\n Utils={{ ...defaultUtil }}\r\n ref={this.pageRef}\r\n pageRef={this.pageRef}\r\n onHideForm={() => {\r\n this.setState({\r\n pageProps: { ...pageProps, columns: defaultColumns },\r\n });\r\n this.pageRef.current?.hideForm();\r\n }}\r\n funcs={{ ...deaultFuncs, ...funcs }}\r\n initData={this.initData}\r\n formPageProps={{\r\n formType: formPageProps.formType || \"modal\",\r\n props: formPageProps?.props,\r\n }}\r\n tableCode={this.props.tableCode}\r\n {...otherProps}\r\n >\r\n {renderSelfToolButton({\r\n selfButton: selfToolButton,\r\n pageRef: this.pageRef,\r\n funcs: { ...deaultFuncs, ...funcs },\r\n loading: this.state.buttonLoading,\r\n })}\r\n {codeSelfButtons.map((item) => {\r\n return item;\r\n })}\r\n {renderSelfColumnButton({\r\n selfColumnButton,\r\n pageRef: this.pageRef,\r\n funcs: { ...deaultFuncs, ...funcs },\r\n })}\r\n {codecolumnButtons.map((item) => {\r\n return item;\r\n })}\r\n {renderSelfToolButton({\r\n selfButton: selfFormButton,\r\n pageRef: this.pageRef,\r\n funcs: { ...deaultFuncs, ...funcs },\r\n loading: this.state.buttonLoading,\r\n type: \"formButton\",\r\n })}\r\n {codeFormButtons.map((item) => {\r\n return item;\r\n })}\r\n </BasePage>\r\n )}\r\n {/* <ModalForm ref={this.modalRef} /> */}\r\n </div>\r\n );\r\n }\r\n}\r\n"],"mappings":"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"}
1
+ {"version":3,"file":"index.js","names":["BasePage","Spin","React","NscRequest","cls","defaultComFuncs","defaultUtil","ModalForm","renderSelfColumnButton","renderSelfToolButton","ModalManager","getPageData","params","get","xssFilter","autoPrefix","setFieldDisabled","data","key","disabled","columns","newColumns","map","item","obj","_objectSpread","dataIndex","indexOf","props","push","setFieldVisible","visible","editor","setFieldPropsData","propsData","defaultStateValue","pageProps","treeProps","store","url","autoLoad","tableProps","selfToolButton","selfColumnButton","selfFormButton","pageLoading","defaultColumns","otherProps","buttonLoading","formPageProps","SettingTable","Component","constructor","arguments","_defineProperty","createRef","res","state","showSearch","defaultSearch","tableDataResource","func","Function","pageRef","setTimeout","_this$pageRef$current","_this$pageRef$current2","current","tableLoad","setSearchParams","componentDidMount","getData","register","modalRef","componentDidUpdate","prevProps","prevState","snapshot","tableCode","setState","published","menuCode","tabParams","code","isPublished","then","_page_props$permissio","table_props","JSON","parse","tree_props","page_props","other_props","otherParams","form_props","formProps","permission","has","Utils","paramFunc","converTabParams","requestParams","newRequestParams","queryParams","addParams","editorParams","converParams","other","_objectWithoutProperties","_excluded","newParams","columnButtons","toolButtons","selfButton","_message","error","getSearchValues","_this$pageRef$current3","value","callBack","_this$pageRef$current4","_this$pageRef$current5","requestConfig","length","undefined","tableReload","_this$pageRef$current6","getSelectedRowKeys","_this$pageRef$current7","getSelectedRowDatas","_this$pageRef$current8","resetSelectedRowKeys","_this$pageRef$current9","render","className","funcs","baseProps","settingTreeProps","settingTableProps","_excluded2","_this","deaultFuncs","newData","setButtonLoading","loading","openFormModal","showModal","children","codeSelfButtons","codecolumnButtons","codeFormButtons","Array","isArray","child","_child$props","_child$props2","_child$props3","pageType","_item$props","_item$props2","_item$props3","createElement","style","width","height","spinning","_extends","ref","onHideForm","_this$pageRef$current10","hideForm","initData","formType","type"],"sources":["../../../src/components/page/SettingTable/index.tsx"],"sourcesContent":["import { forwardRef, useEffect, useImperativeHandle, useState } from \"react\";\r\nimport BasePage, { NSCBaseBageProps } from \"../BasePage\";\r\nimport Spin from \"../../base/spin\";\r\nimport Button from \"../../base/button\";\r\nimport \"./index.less\";\r\nimport React from \"react\";\r\nimport NscRequest from \"nsc-request\";\r\nimport cls from \"classnames\";\r\nimport { message } from \"antd\";\r\nimport {\r\n defaultComFuncs,\r\n defaultUtil,\r\n ModalForm,\r\n renderSelfColumnButton,\r\n renderSelfToolButton,\r\n ModalManager,\r\n OpenParms,\r\n} from \"../SettingUtil/utils\";\r\n\r\nconst getPageData = (params: any) => {\r\n return NscRequest.get(`/jquick-setting/setting/table/info/`, {\r\n params,\r\n xssFilter: false,\r\n autoPrefix: true,\r\n });\r\n};\r\n\r\n//设置表单字段只读\r\nconst setFieldDisabled = (data: Array<any>, key, disabled) => {\r\n const columns = [...data];\r\n let newColumns = [] as any;\r\n columns.map((item) => {\r\n let obj = { ...item };\r\n if (item.dataIndex == key || key.indexOf(item.dataIndex) > -1) {\r\n let props = obj.props ? { ...obj.props } : {};\r\n props.disabled = disabled;\r\n obj.props = props;\r\n }\r\n newColumns.push(obj);\r\n });\r\n return newColumns;\r\n};\r\n//设置表单字段隐藏\r\nconst setFieldVisible = (data: Array<any>, key, visible) => {\r\n const columns = [...data];\r\n let newColumns = [] as any;\r\n columns.map((item) => {\r\n let obj = { ...item };\r\n if (item.dataIndex == key || key.indexOf(item.dataIndex) > -1) {\r\n obj.editor = visible;\r\n }\r\n newColumns.push(obj);\r\n });\r\n return newColumns;\r\n};\r\n\r\nconst setFieldPropsData = (data: Array<any>, key, propsData) => {\r\n const columns = [...data];\r\n let newColumns = [] as any;\r\n columns.map((item) => {\r\n let obj = { ...item };\r\n if (item.dataIndex == key) {\r\n let props = obj.props ? { ...obj.props } : {};\r\n props.data = propsData;\r\n obj.props = props;\r\n }\r\n newColumns.push(obj);\r\n });\r\n return newColumns;\r\n};\r\ninterface IProps {\r\n tableCode: string;\r\n className?: any;\r\n menuCode?: string;\r\n funcs?: any;\r\n published?: boolean;\r\n instanceRef?: any;\r\n tabParams?: any;\r\n onCallBacks?: {\r\n treeSelectCallBack?: any; //树点击查询后回调\r\n onQueryCallBack?: any; //查询回调,查询数据后回调\r\n onSumbitCallBack?: any; //保存回调,保存数据成功后回调\r\n onDeleteCallBack?: any; //删除按钮回调,删除数据后执行\r\n onEditorCallBack?: any; //编辑按钮回调,打开弹框后执行\r\n onAddCallBack?: any; //添加按钮回调,打开弹框后执行\r\n onSearchCallBack?: any; //列表查询按钮回调,打开弹框后执行\r\n };\r\n baseProps?: NSCBaseBageProps;\r\n autoLoad?: boolean;\r\n}\r\n\r\nconst defaultStateValue = {\r\n pageProps: {} as any,\r\n treeProps: { store: { url: \"\", autoLoad: false } } as any,\r\n tableProps: {} as any,\r\n selfToolButton: [] as any,\r\n selfColumnButton: [] as any,\r\n selfFormButton: [] as any,\r\n pageLoading: true,\r\n defaultColumns: [] as any,\r\n otherProps: {} as any,\r\n buttonLoading: {} as any,\r\n formPageProps: {} as any,\r\n};\r\nexport default class SettingTable extends React.Component<IProps, any> {\r\n state = {\r\n ...defaultStateValue,\r\n };\r\n pageRef = React.createRef<any>();\r\n modalRef = React.createRef<any>();\r\n\r\n componentDidMount(): void {\r\n this.getData();\r\n ModalManager.register(this.modalRef);\r\n }\r\n\r\n componentDidUpdate(\r\n prevProps: Readonly<IProps>,\r\n prevState: Readonly<any>,\r\n snapshot?: any\r\n ): void {\r\n if (prevProps.tableCode != this.props.tableCode) {\r\n this.setState(\r\n {\r\n ...defaultStateValue,\r\n },\r\n () => {\r\n this.getData();\r\n }\r\n );\r\n }\r\n }\r\n\r\n initData = (res: any) => {\r\n const { otherProps, pageProps } = this.state;\r\n if (\r\n pageProps.showSearch !== false &&\r\n otherProps.defaultSearch &&\r\n otherProps.tableDataResource == \"url\"\r\n ) {\r\n let func = new Function(\"Utils,eventOption\", otherProps.defaultSearch);\r\n const params = func(defaultUtil, { pageRef: this.pageRef });\r\n setTimeout(() => {\r\n this.pageRef.current?.tableLoad({ ...params });\r\n this.pageRef.current?.setSearchParams({ ...params });\r\n }, 50); //直接设置,pageRef没绑定,暂时通过延迟函数进行解决\r\n }\r\n };\r\n // 获取数据\r\n getData() {\r\n // 从props中获取tableCode、published、menuCode\r\n this.setState({\r\n pageLoading: true,\r\n });\r\n const { tableCode, published = true, menuCode, tabParams } = this.props;\r\n // 如果tableCode存在\r\n if (tableCode) {\r\n // 定义参数\r\n let params = { code: tableCode } as any;\r\n // 如果published为true\r\n if (published) {\r\n // 设置参数isPublished为1\r\n params.isPublished = 1;\r\n }\r\n // 调用getPageData方法获取数据\r\n getPageData({ ...params }).then((res: any) => {\r\n if (res.code == 200 && res.data) {\r\n let table_props = JSON.parse(res.data.tableProps || \"{}\") || {};\r\n let tree_props = JSON.parse(res.data.treeProps || \"{}\") || {};\r\n let page_props = JSON.parse(res.data.pageProps || \"{}\") || {};\r\n let other_props = JSON.parse(res.data.otherParams || \"{}\") || {};\r\n let form_props = JSON.parse(res.data.formProps || \"{}\") || {};\r\n if (page_props.permission?.has == true) {\r\n page_props.permission.menuCode = menuCode;\r\n }\r\n if (published == false) {\r\n page_props.permission = false;\r\n }\r\n if (\r\n (page_props.showSearch !== false &&\r\n other_props.defaultSearch &&\r\n other_props?.tableDataResource == \"url\") ||\r\n this.props.autoLoad === false\r\n ) {\r\n table_props.store.autoLoad = false;\r\n }\r\n if (tabParams) {\r\n const Utils = defaultUtil || {};\r\n let paramFunc = new Function(\"Utils\", tabParams);\r\n let converTabParams = paramFunc(Utils);\r\n if (page_props.requestParams) {\r\n let { requestParams = {} } = page_props;\r\n let newRequestParams = {\r\n queryParams: null,\r\n addParams: null,\r\n editorParams: null,\r\n };\r\n for (let key in newRequestParams) {\r\n if (requestParams[key]) {\r\n let func = new Function(\"Utils\", requestParams[key]);\r\n let converParams = func(Utils);\r\n const { data, ...other } = converParams;\r\n let newParams = {\r\n data: { ...converTabParams, ...data },\r\n ...other,\r\n };\r\n newRequestParams[key] = newParams;\r\n } else {\r\n newRequestParams[key] = { data: { ...converTabParams } };\r\n }\r\n }\r\n page_props.requestParams = { ...newRequestParams };\r\n } else {\r\n page_props.requestParams = {\r\n queryParams: { data: { ...converTabParams } },\r\n addParams: { data: { ...converTabParams } },\r\n editorParams: { data: { ...converTabParams } },\r\n };\r\n }\r\n }\r\n this.setState(\r\n {\r\n pageProps: {\r\n ...page_props,\r\n },\r\n treeProps: {\r\n ...tree_props,\r\n },\r\n tableProps: {\r\n ...table_props,\r\n },\r\n otherProps: { ...other_props },\r\n selfColumnButton: JSON.parse(res.data.columnButtons) || [],\r\n selfToolButton: JSON.parse(res.data.toolButtons) || [],\r\n defaultColumns: page_props.columns,\r\n formPageProps: form_props,\r\n selfFormButton: form_props?.selfButton || [],\r\n },\r\n () => {\r\n this.setState({\r\n pageLoading: false,\r\n });\r\n }\r\n );\r\n } else if (res.code == 200 && res.data == null) {\r\n message.error(\"未找到配置信息!\");\r\n this.setState({\r\n pageLoading: false,\r\n });\r\n } else {\r\n this.setState({\r\n pageLoading: false,\r\n });\r\n }\r\n });\r\n } else {\r\n this.setState({\r\n pageLoading: false,\r\n });\r\n }\r\n }\r\n // onSearch() {}\r\n getSearchValues() {\r\n const value = this.pageRef.current?.getSearchValues();\r\n return value;\r\n }\r\n setSearchParams(params, callBack) {\r\n this.pageRef.current?.setSearchParams(params);\r\n }\r\n tableLoad(params: any, requestConfig = {}) {\r\n this.pageRef.current?.tableLoad(params, requestConfig);\r\n }\r\n tableReload(params = {}, autoLoad = true) {\r\n this.pageRef.current?.tableReload(params, autoLoad);\r\n }\r\n getSelectedRowKeys() {\r\n return this.pageRef.current?.getSelectedRowKeys();\r\n }\r\n getSelectedRowDatas() {\r\n return this.pageRef.current?.getSelectedRowDatas();\r\n }\r\n\r\n resetSelectedRowKeys() {\r\n return this.pageRef.current?.resetSelectedRowKeys();\r\n }\r\n render() {\r\n const {\r\n className,\r\n funcs = {},\r\n baseProps = {} as NSCBaseBageProps,\r\n } = this.props;\r\n const {\r\n pageProps,\r\n treeProps,\r\n tableProps,\r\n selfToolButton,\r\n selfColumnButton,\r\n pageLoading,\r\n defaultColumns,\r\n buttonLoading = {},\r\n formPageProps = {},\r\n selfFormButton,\r\n } = this.state;\r\n const {\r\n treeProps: settingTreeProps = {},\r\n tableProps: settingTableProps = {},\r\n ...otherProps\r\n } = baseProps;\r\n let _this = this;\r\n const deaultFuncs = {\r\n setFieldDisabled: (key, disabled) => {\r\n const newData = setFieldDisabled(pageProps.columns, key, disabled);\r\n this.setState({\r\n pageProps: { ...pageProps, columns: newData },\r\n });\r\n },\r\n setFieldVisible: (key, disabled) => {\r\n const newData = setFieldVisible(pageProps.columns, key, disabled);\r\n this.setState({\r\n pageProps: { ...pageProps, columns: newData },\r\n });\r\n },\r\n setFieldPropsData: (key, data) => {\r\n const newData = setFieldPropsData(pageProps.columns, key, data);\r\n this.setState({\r\n pageProps: { ...pageProps, columns: newData },\r\n });\r\n },\r\n // history: (params, type) => {\r\n // jumpPage(params, type);\r\n // },\r\n setButtonLoading: (code, loading) => {\r\n _this.setState({\r\n buttonLoading: { ...buttonLoading, [code]: loading },\r\n });\r\n },\r\n ...defaultComFuncs,\r\n openFormModal: (params:OpenParms) => {\r\n ModalManager.showModal(params);\r\n },\r\n // getCurrentProject: () => {\r\n // return getProject();\r\n // },\r\n };\r\n const { children } = this.props;\r\n let codeSelfButtons = [];\r\n let codecolumnButtons = [];\r\n let codeFormButtons = [];\r\n if (Array.isArray(children)) {\r\n children.map((item: any) => {\r\n if (Array.isArray(item)) {\r\n item.map((child) => {\r\n if (child?.props?.pageType == \"toolButton\") {\r\n codeSelfButtons.push(child);\r\n } else if (child?.props?.pageType == \"columnButton\") {\r\n codecolumnButtons.push(child);\r\n } else if (child?.props?.pageType == \"formButton\") {\r\n codeFormButtons.push(child);\r\n }\r\n });\r\n } else {\r\n if (item?.props?.pageType == \"toolButton\") {\r\n codeSelfButtons.push(item);\r\n } else if (item?.props?.pageType == \"columnButton\") {\r\n codecolumnButtons.push(item);\r\n } else if (item?.props?.pageType == \"formButton\") {\r\n codeFormButtons.push(item);\r\n }\r\n }\r\n });\r\n } else if (children) {\r\n const { props }: any = children;\r\n if (props?.pageType == \"toolButton\") {\r\n codeSelfButtons.push(children);\r\n } else if (props?.pageType == \"columnButton\") {\r\n codecolumnButtons.push(children);\r\n } else if (props?.pageType == \"formButton\") {\r\n codeFormButtons.push(children);\r\n }\r\n }\r\n return (\r\n <div className={cls(\"nsc-framework-tablepage\", className)}>\r\n {pageLoading ? (\r\n <div style={{ width: \"100%\", height: \"100%\" }}>\r\n <Spin spinning={pageLoading}></Spin>\r\n </div>\r\n ) : (\r\n <BasePage\r\n {...pageProps}\r\n treeProps={{ ...treeProps, ...settingTreeProps }}\r\n tableProps={{ ...tableProps, ...settingTableProps }}\r\n formProps={{}}\r\n Utils={{ ...defaultUtil }}\r\n ref={this.pageRef}\r\n pageRef={this.pageRef}\r\n onHideForm={() => {\r\n this.setState({\r\n pageProps: { ...pageProps, columns: defaultColumns },\r\n });\r\n this.pageRef.current?.hideForm();\r\n }}\r\n funcs={{ ...deaultFuncs, ...funcs }}\r\n initData={this.initData}\r\n formPageProps={{\r\n formType: formPageProps.formType || \"modal\",\r\n props: formPageProps?.props,\r\n }}\r\n tableCode={this.props.tableCode}\r\n {...otherProps}\r\n >\r\n {renderSelfToolButton({\r\n selfButton: selfToolButton,\r\n pageRef: this.pageRef,\r\n funcs: { ...deaultFuncs, ...funcs },\r\n loading: this.state.buttonLoading,\r\n })}\r\n {codeSelfButtons.map((item) => {\r\n return item;\r\n })}\r\n {renderSelfColumnButton({\r\n selfColumnButton,\r\n pageRef: this.pageRef,\r\n funcs: { ...deaultFuncs, ...funcs },\r\n })}\r\n {codecolumnButtons.map((item) => {\r\n return item;\r\n })}\r\n {renderSelfToolButton({\r\n selfButton: selfFormButton,\r\n pageRef: this.pageRef,\r\n funcs: { ...deaultFuncs, ...funcs },\r\n loading: this.state.buttonLoading,\r\n type: \"formButton\",\r\n })}\r\n {codeFormButtons.map((item) => {\r\n return item;\r\n })}\r\n </BasePage>\r\n )}\r\n <ModalForm ref={this.modalRef} />\r\n </div>\r\n );\r\n }\r\n}\r\n"],"mappings":"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"}
@@ -218,10 +218,10 @@ export const ModalForm = /*#__PURE__*/React.forwardRef((props, ref) => {
218
218
  formCode
219
219
  } = params,
220
220
  others = _objectWithoutProperties(params, _excluded);
221
- return /*#__PURE__*/React.createElement(SettingForm, _extends({
221
+ return /*#__PURE__*/React.createElement("div", null, /*#__PURE__*/React.createElement(SettingForm, _extends({
222
222
  formCode: params.formCode,
223
223
  formType: "modal",
224
224
  ref: modalRef
225
- }, others));
225
+ }, others)));
226
226
  });
227
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJSZWFjdCIsInVzZVJlZiIsInVzZVN0YXRlIiwiTnNjQ29tIiwiTnNjRmlsZSIsIk5zY1JlcXVlc3QiLCJOc2NVdGlscyIsImRheWpzIiwiQnV0dG9uIiwiZ2V0TG9jYWxTdG9yZSIsInF1ZXJ5U3RyaW5nIiwiTW9kYWwiLCJTZXR0aW5nRm9ybSIsImRlZmF1bHRVdGlsIiwiY3JlYXRlRWxlbWVudCIsInJlbmRlclNlbGZUb29sQnV0dG9uIiwiX3JlZiIsInNlbGZCdXR0b24iLCJwYWdlUmVmIiwiZnVuY3MiLCJsb2FkaW5nIiwidHlwZSIsImxlbmd0aCIsIm1hcCIsIml0ZW0iLCJpbmRleCIsInBhZ2VUeXBlIiwia2V5Iiwib25DbGljayIsImV2ZW50T3B0aW9uIiwiZnVuYyIsIkZ1bmN0aW9uIiwiY29kZSIsIm5hbWUiLCJyZW5kZXJTZWxmQ29sdW1uQnV0dG9uIiwiX3JlZjIiLCJzZWxmQ29sdW1uQnV0dG9uIiwicmVjb3JkIiwicmVjb3JkU2hvdyIsImp1bXBQYWdlIiwicGFyYW1zIiwicGF0aG5hbWUiLCJxdWVyeSIsImlkIiwidGl0bGUiLCJzZXJ2aWNlTmFtZSIsInNlcnZpY2VQYXRoIiwib3BlblR5cGUiLCJuZXdRdWVyeSIsIl9vYmplY3RTcHJlYWQiLCJ1cmxQYXJhbXMiLCJzdHJpbmdpZnkiLCJwYXRoIiwiY29uY2F0Iiwid2luZG93IiwiX19QT1dFUkVEX0JZX1FJQU5LVU5fXyIsImRhdGEiLCJwYXJlbnQiLCJwb3N0TWVzc2FnZSIsImV2ZW50VHlwZSIsInBheWxvYWQiLCJsb2NhdGlvbiIsIm9yaWdpbiIsImhpc3RvcnkiLCJwdXNoU3RhdGUiLCJnbyIsImdldFByb2plY3QiLCJwcm9qZWN0IiwiY29udmVydFN0cmluZ1RvT2JqIiwiVXRpbHMiLCJjb252ZXJQYXJhbXMiLCJNb2RhbEluZGV4IiwiZm9yd2FyZFJlZiIsInByb3BzIiwicmVmIiwibW9kYWxSZWYiLCJ1c2VJbXBlcmF0aXZlSGFuZGxlIiwic2hvdyIsImN1cnJlbnQiLCJoaWRlIiwiTW9kYWxNYW5hZ2VyIiwicmVnaXN0ZXIiLCJzaG93TW9kYWwiLCJjb25zb2xlIiwiZXJyb3IiLCJoaWRlTW9kYWwiLCJkZWZhdWx0Q29tRnVuY3MiLCJnZXRDdXJyZW50UHJvamVjdCIsIm9wZW5Gb3JtUGFnZSIsImZvcm1Db2RlIiwiYXJndW1lbnRzIiwidW5kZWZpbmVkIiwiRGF0ZSIsImdldFRpbWUiLCJNb2RhbEZvcm0iLCJzZXRQYXJhbXMiLCJfbW9kYWxSZWYkY3VycmVudCIsIm1vZGFsUHJvcHMiLCJzaG93Rm9ybSIsIl9tb2RhbFJlZiRjdXJyZW50MiIsIm90aGVycyIsIl9vYmplY3RXaXRob3V0UHJvcGVydGllcyIsIl9leGNsdWRlZCIsIl9leHRlbmRzIiwiZm9ybVR5cGUiXSwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvY29tcG9uZW50cy9wYWdlL1NldHRpbmdVdGlsL3V0aWxzLnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgUmVhY3QsIHsgdXNlSW1wZXJhdGl2ZUhhbmRsZSwgdXNlUmVmLCB1c2VTdGF0ZSB9IGZyb20gXCJyZWFjdFwiO1xyXG5pbXBvcnQgKiBhcyBOc2NDb20gZnJvbSBcIi4vY29tXCI7XHJcbmltcG9ydCBOc2NGaWxlIGZyb20gXCJuc2MtZmlsZVwiO1xyXG5pbXBvcnQgTnNjUmVxdWVzdCBmcm9tIFwibnNjLXJlcXVlc3RcIjtcclxuaW1wb3J0ICogYXMgTnNjVXRpbHMgZnJvbSBcIkBiai1uc2MvZnVuY3Rpb25zXCI7XHJcbmltcG9ydCBkYXlqcyBmcm9tIFwiZGF5anNcIjtcclxuaW1wb3J0IEJ1dHRvbiBmcm9tIFwiLi4vLi4vYmFzZS9idXR0b25cIjtcclxuaW1wb3J0IHsgZ2V0TG9jYWxTdG9yZSB9IGZyb20gXCJAYmotbnNjL2Z1bmN0aW9uc1wiO1xyXG5pbXBvcnQgcXVlcnlTdHJpbmcgZnJvbSBcInF1ZXJ5LXN0cmluZ1wiO1xyXG5pbXBvcnQgTW9kYWwgZnJvbSBcIi4uLy4uL2Jhc2UvbW9kYWxcIjtcclxuXHJcbmltcG9ydCBSZWFjdERPTSBmcm9tIFwicmVhY3QtZG9tXCI7XHJcbmltcG9ydCBGb3JtUGFnZSBmcm9tIFwiLi4vRm9ybVBhZ2VcIjtcclxuaW1wb3J0IFNldHRpbmdGb3JtIGZyb20gXCIuLi9TZXR0aW5nRm9ybVwiO1xyXG5leHBvcnQgY29uc3QgZGVmYXVsdFV0aWwgPSB7XHJcbiAgTnNjQ29tLFxyXG4gIE5zY0ZpbGUsXHJcbiAgTnNjUmVxdWVzdCxcclxuICBOc2NVdGlscyxcclxuICBkYXlqcyxcclxuICBjcmVhdGVFbGVtZW50OiBSZWFjdC5jcmVhdGVFbGVtZW50LFxyXG59IGFzIGFueTtcclxuXHJcbmV4cG9ydCBjb25zdCByZW5kZXJTZWxmVG9vbEJ1dHRvbiA9ICh7XHJcbiAgc2VsZkJ1dHRvbixcclxuICBwYWdlUmVmLFxyXG4gIGZ1bmNzLFxyXG4gIGxvYWRpbmcsXHJcbiAgdHlwZSA9IFwidG9vbEJ1dHRvblwiLFxyXG59KSA9PiB7XHJcbiAgaWYgKHNlbGZCdXR0b24ubGVuZ3RoID09IDApIHtcclxuICAgIHJldHVybiBudWxsO1xyXG4gIH0gZWxzZSB7XHJcbiAgICByZXR1cm4gc2VsZkJ1dHRvbi5tYXAoKGl0ZW06IGFueSwgaW5kZXg6IG51bWJlcikgPT4ge1xyXG4gICAgICByZXR1cm4gKFxyXG4gICAgICAgIDxCdXR0b25cclxuICAgICAgICAgIHBhZ2VUeXBlPXt0eXBlfVxyXG4gICAgICAgICAga2V5PXtpbmRleH1cclxuICAgICAgICAgIHR5cGU9e2l0ZW0udHlwZX1cclxuICAgICAgICAgIG9uQ2xpY2s9eygpID0+IHtcclxuICAgICAgICAgICAgbGV0IGV2ZW50T3B0aW9uID0geyBwYWdlUmVmOiBwYWdlUmVmLCBmdW5jczogZnVuY3MgfTtcclxuICAgICAgICAgICAgY29uc3QgZnVuYyA9IG5ldyBGdW5jdGlvbihcIlV0aWxzLGV2ZW50T3B0aW9uXCIsIGl0ZW0ub25DbGljayk7XHJcbiAgICAgICAgICAgIGZ1bmMoZGVmYXVsdFV0aWwsIGV2ZW50T3B0aW9uKTtcclxuICAgICAgICAgIH19XHJcbiAgICAgICAgICBjb2RlPXtpdGVtLmNvZGV9XHJcbiAgICAgICAgICBsb2FkaW5nPXtsb2FkaW5nW2l0ZW0uY29kZV0gPT09IHRydWUgPyB0cnVlIDogZmFsc2V9XHJcbiAgICAgICAgPlxyXG4gICAgICAgICAge2l0ZW0ubmFtZX1cclxuICAgICAgICA8L0J1dHRvbj5cclxuICAgICAgKTtcclxuICAgIH0pO1xyXG4gIH1cclxufTtcclxuXHJcbmV4cG9ydCBjb25zdCByZW5kZXJTZWxmQ29sdW1uQnV0dG9uID0gKHtcclxuICBzZWxmQ29sdW1uQnV0dG9uLFxyXG4gIHBhZ2VSZWYsXHJcbiAgZnVuY3MsXHJcbn0pID0+IHtcclxuICBpZiAoc2VsZkNvbHVtbkJ1dHRvbi5sZW5ndGggPT0gMCkge1xyXG4gICAgcmV0dXJuIG51bGw7XHJcbiAgfSBlbHNlIHtcclxuICAgIHJldHVybiBzZWxmQ29sdW1uQnV0dG9uLm1hcCgoaXRlbTogYW55LCBpbmRleDogbnVtYmVyKSA9PiB7XHJcbiAgICAgIHJldHVybiAoXHJcbiAgICAgICAgPEJ1dHRvblxyXG4gICAgICAgICAgcGFnZVR5cGU9XCJjb2x1bW5CdXR0b25cIlxyXG4gICAgICAgICAga2V5PXtpbmRleH1cclxuICAgICAgICAgIHR5cGU9e2l0ZW0udHlwZX1cclxuICAgICAgICAgIG9uQ2xpY2s9eyhyZWNvcmQpID0+IHtcclxuICAgICAgICAgICAgbGV0IGV2ZW50T3B0aW9uID0ge1xyXG4gICAgICAgICAgICAgIHBhZ2VSZWY6IHBhZ2VSZWYsXHJcbiAgICAgICAgICAgICAgcmVjb3JkOiByZWNvcmQsXHJcbiAgICAgICAgICAgICAgZnVuY3M6IGZ1bmNzLFxyXG4gICAgICAgICAgICB9O1xyXG4gICAgICAgICAgICBjb25zdCBmdW5jID0gbmV3IEZ1bmN0aW9uKFwiVXRpbHMsZXZlbnRPcHRpb25cIiwgaXRlbS5vbkNsaWNrKTtcclxuICAgICAgICAgICAgZnVuYyhkZWZhdWx0VXRpbCwgZXZlbnRPcHRpb24pO1xyXG4gICAgICAgICAgfX1cclxuICAgICAgICAgIGNvZGU9e2l0ZW0uY29kZX1cclxuICAgICAgICAgIHJlY29yZFNob3c9e2l0ZW0ucmVjb3JkU2hvd31cclxuICAgICAgICA+XHJcbiAgICAgICAgICB7aXRlbS5uYW1lfVxyXG4gICAgICAgIDwvQnV0dG9uPlxyXG4gICAgICApO1xyXG4gICAgfSk7XHJcbiAgfVxyXG59O1xyXG5cclxuaW50ZXJmYWNlIElQYXJhbXMge1xyXG4gIHBhdGhuYW1lPzogc3RyaW5nO1xyXG4gIHF1ZXJ5PzogYW55O1xyXG4gIGlkPzogc3RyaW5nO1xyXG4gIHNlcnZpY2VOYW1lPzogc3RyaW5nO1xyXG4gIHRpdGxlPzogc3RyaW5nO1xyXG4gIHNlcnZpY2VQYXRoPzogc3RyaW5nO1xyXG4gIG1lbnVDb2RlPzogc3RyaW5nO1xyXG4gIG9wZW5UeXBlPzogbnVtYmVyO1xyXG59XHJcblxyXG5jb25zdCBqdW1wUGFnZSA9IChwYXJhbXM6IElQYXJhbXMsIHR5cGU/OiBcImFkZFRhYlwiIHwgXCJqdW1wTWVudVwiKSA9PiB7XHJcbiAgY29uc3Qge1xyXG4gICAgcGF0aG5hbWUsXHJcbiAgICBxdWVyeSA9IHt9LFxyXG4gICAgaWQsXHJcbiAgICB0aXRsZSxcclxuICAgIHNlcnZpY2VOYW1lLFxyXG4gICAgc2VydmljZVBhdGgsXHJcbiAgICBvcGVuVHlwZSxcclxuICB9ID0gcGFyYW1zO1xyXG4gIGNvbnN0IG5ld1F1ZXJ5ID0geyAuLi5xdWVyeSB9IGFzIGFueTtcclxuICBjb25zdCB1cmxQYXJhbXMgPSBxdWVyeVN0cmluZy5zdHJpbmdpZnkobmV3UXVlcnkpO1xyXG4gIGNvbnN0IHBhdGggPSB1cmxQYXJhbXMgPyBgJHtwYXRobmFtZX0/JHt1cmxQYXJhbXN9YCA6IHBhdGhuYW1lO1xyXG4gIC8vQHRzLWlnbm9yZVxyXG4gIGlmICh3aW5kb3cuX19QT1dFUkVEX0JZX1FJQU5LVU5fXykge1xyXG4gICAgY29uc3QgZGF0YSA9IHtcclxuICAgICAgdGl0bGU6IHRpdGxlIHx8IFwi5paw5qCH562+XCIsXHJcbiAgICAgIHNlcnZpY2VOYW1lOiBzZXJ2aWNlTmFtZSwgLy/phY3nva7nmoTlvq7lupTnlKjlkI3np7BcclxuICAgICAgc2VydmljZVBhdGg6IHNlcnZpY2VQYXRoLCAvL+mFjee9rueahOW+ruW6lOeUqOWFpeWPo+WcsOWdgFxyXG4gICAgICBwYXRoOiBwYXRoLCAvL+aWsOagh+etvueahHVybCzmsqHphY3nva5zZXJ2aWNlTmFtZSBwYXRo5Li65a6M5pW06Lev5b6EXHJcbiAgICAgIGlkOiBpZCwgLy/oh6rlrprkuYnllK/kuIDlgLxcclxuICAgICAgb3BlblR5cGU6IG9wZW5UeXBlID8gb3BlblR5cGUgOiA0LCAvL+aJk+W8gOaWueW8jyA05L2N5b6u5YmN56uvLCAz5Li6aWZyYW1lICzpu5jorqQgM1xyXG4gICAgfTtcclxuICAgIHdpbmRvdy5wYXJlbnQucG9zdE1lc3NhZ2UoXHJcbiAgICAgIHtcclxuICAgICAgICBldmVudFR5cGU6IHR5cGUgPyB0eXBlIDogXCJhZGRUYWJcIixcclxuICAgICAgICBzZXJ2aWNlTmFtZTogc2VydmljZU5hbWUgPyBzZXJ2aWNlTmFtZSA6IFwic2V0dGluZy13ZWJcIixcclxuICAgICAgICBwYXlsb2FkOiB0eXBlID8gcGFyYW1zIDogZGF0YSxcclxuICAgICAgfSxcclxuICAgICAgd2luZG93LmxvY2F0aW9uLm9yaWdpblxyXG4gICAgKTtcclxuICB9IGVsc2Uge1xyXG4gICAgd2luZG93Lmhpc3RvcnkucHVzaFN0YXRlKHt9LCBcIlwiLCBwYXRoKTtcclxuICAgIHdpbmRvdy5oaXN0b3J5LmdvKCk7XHJcbiAgfVxyXG59O1xyXG5jb25zdCBnZXRQcm9qZWN0ID0gKCkgPT4ge1xyXG4gIGNvbnN0IHByb2plY3QgPSBnZXRMb2NhbFN0b3JlKHsgbmFtZTogXCJuc2MtaG9tZS1wcm9qZWN0XCIgfSkgfHwge307XHJcbiAgcmV0dXJuIHByb2plY3Q7XHJcbn07XHJcblxyXG5leHBvcnQgY29uc3QgY29udmVydFN0cmluZ1RvT2JqID0gKGRhdGEsIFV0aWxzLCBldmVudE9wdGlvbikgPT4ge1xyXG4gIGlmIChkYXRhICYmIHR5cGVvZiBkYXRhID09IFwic3RyaW5nXCIpIHtcclxuICAgIGxldCBmdW5jID0gbmV3IEZ1bmN0aW9uKFwiZXZlbnRPcHRpb24sVXRpbHNcIiwgZGF0YSk7XHJcbiAgICBsZXQgY29udmVyUGFyYW1zID0gZnVuYyhldmVudE9wdGlvbiwgVXRpbHMpO1xyXG4gICAgZGF0YSA9IGNvbnZlclBhcmFtcztcclxuICB9IGVsc2Uge1xyXG4gICAgZGF0YSA9IGRhdGEgfHwge307XHJcbiAgfVxyXG4gIHJldHVybiBkYXRhO1xyXG59O1xyXG4vLyBjb25zdCBtb2RhbFJlZjogYW55ID0gdXNlUmVmKG51bGwpO1xyXG5jb25zdCBNb2RhbEluZGV4ID0gUmVhY3QuZm9yd2FyZFJlZigocHJvcHMsIHJlZikgPT4ge1xyXG4gIC8vIGNvbnN0IFtpc1Zpc2libGUsIHNldElzVmlzaWJsZV0gPSBSZWFjdC51c2VTdGF0ZShmYWxzZSk7XHJcbiAgY29uc3QgbW9kYWxSZWY6IGFueSA9IHVzZVJlZihudWxsKTtcclxuICAvLyDkvb/nlKh1c2VJbXBlcmF0aXZlSGFuZGxl5ZCR54i257uE5Lu25pq06Zyy5pa55rOVXHJcbiAgUmVhY3QudXNlSW1wZXJhdGl2ZUhhbmRsZShyZWYsICgpID0+ICh7XHJcbiAgICBzaG93OiAoKSA9PiB7XHJcbiAgICAgIG1vZGFsUmVmLmN1cnJlbnQuc2hvdygpO1xyXG4gICAgfSxcclxuICAgIGhpZGU6ICgpID0+IHtcclxuICAgICAgbW9kYWxSZWYuY3VycmVudC5oaWRlKCk7XHJcbiAgICB9LFxyXG4gIH0pKTtcclxuXHJcbiAgcmV0dXJuIDxNb2RhbD48L01vZGFsPjtcclxufSk7XHJcbmV4cG9ydCBjb25zdCBNb2RhbE1hbmFnZXIgPSB7XHJcbiAgbW9kYWxSZWY6IG51bGwsXHJcbiAgcmVnaXN0ZXI6IGZ1bmN0aW9uIChyZWYpIHtcclxuICAgIHRoaXMubW9kYWxSZWYgPSByZWY7XHJcbiAgfSxcclxuICBzaG93TW9kYWw6IGZ1bmN0aW9uIChwcm9wcykge1xyXG4gICAgaWYgKHRoaXMubW9kYWxSZWYgJiYgdGhpcy5tb2RhbFJlZi5jdXJyZW50KSB7XHJcbiAgICAgIHRoaXMubW9kYWxSZWYuY3VycmVudC5zaG93KHByb3BzKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIGNvbnNvbGUuZXJyb3IoXCJNb2RhbOW8leeUqOacquazqOWGjFwiKTtcclxuICAgIH1cclxuICB9LFxyXG4gIGhpZGVNb2RhbDogZnVuY3Rpb24gKCkge1xyXG4gICAgaWYgKHRoaXMubW9kYWxSZWYgJiYgdGhpcy5tb2RhbFJlZi5jdXJyZW50KSB7XHJcbiAgICAgIHRoaXMubW9kYWxSZWYuY3VycmVudC5oaWRlKCk7XHJcbiAgICB9XHJcbiAgfSxcclxufTtcclxuXHJcbmV4cG9ydCBjb25zdCBkZWZhdWx0Q29tRnVuY3MgPSB7XHJcbiAgaGlzdG9yeTogKHBhcmFtcywgdHlwZSkgPT4ge1xyXG4gICAganVtcFBhZ2UocGFyYW1zLCB0eXBlKTtcclxuICB9LFxyXG4gIGdldEN1cnJlbnRQcm9qZWN0OiAoKSA9PiB7XHJcbiAgICByZXR1cm4gZ2V0UHJvamVjdCgpO1xyXG4gIH0sXHJcbiAgb3BlbkZvcm1QYWdlOiAocGFyYW1zLCBmb3JtQ29kZSwgdHlwZSA9IFwiYWRkXCIpID0+IHtcclxuICAgIGp1bXBQYWdlKFxyXG4gICAgICB7XHJcbiAgICAgICAgcGF0aG5hbWU6IGAvZm9ybXBhZ2UvJHt0eXBlfS9mb3JtLyR7Zm9ybUNvZGV9YCxcclxuICAgICAgICBpZDogbmV3IERhdGUoKS5nZXRUaW1lKCksXHJcbiAgICAgICAgdGl0bGU6IFwi6KGo5Y2V6aG16Z2iXCIsXHJcbiAgICAgICAgLi4ucGFyYW1zLFxyXG4gICAgICAgIHNlcnZpY2VOYW1lOiBcInNldHRpbmctd2ViXCIsXHJcbiAgICAgICAgc2VydmljZVBhdGg6IFwiL3NldHRpbmdcIixcclxuICAgICAgfSxcclxuICAgICAgXCJhZGRUYWJcIlxyXG4gICAgKTtcclxuICB9LFxyXG59O1xyXG5cclxuZXhwb3J0IGNvbnN0IE1vZGFsRm9ybSA9IFJlYWN0LmZvcndhcmRSZWYoKHByb3BzLCByZWYpID0+IHtcclxuICBjb25zdCBtb2RhbFJlZjogYW55ID0gdXNlUmVmKG51bGwpO1xyXG4gIC8vIGNvbnN0IFtmb3JtQ29kZSwgc2V0Rm9ybUNvZGVdID0gdXNlU3RhdGUoXCJcIik7XHJcbiAgLy8gY29uc3QgW2VkaXRJZFR5cGUsIHNldEVkaXRUeXBlXSA9IHVzZVN0YXRlKFwiXCIpO1xyXG4gIGNvbnN0IFtwYXJhbXMsc2V0UGFyYW1zXSA9IHVzZVN0YXRlKHt9IGFzIGFueSlcclxuICBSZWFjdC51c2VJbXBlcmF0aXZlSGFuZGxlKHJlZiwgKCkgPT4gKHtcclxuICAgIHNob3c6IChwcm9wcykgPT4ge1xyXG4gICAgICAvLyBjb25zdCB7Zm9ybUNvZGUsZWR9XHJcbiAgICAgIHNldFBhcmFtcyh7Li4ucHJvcHMsbW9kYWxQcm9wczp7dGl0bGU6cHJvcHMudGl0bGV9fSk7XHJcbiAgICAgIC8vIHNldEVkaXRUeXBlKHByb3BzLmVkaXRJZFR5cGUpO1xyXG4gICAgICBtb2RhbFJlZi5jdXJyZW50Py5zaG93Rm9ybSgpO1xyXG4gICAgfSxcclxuICAgIGhpZGU6ICgpID0+IHtcclxuICAgICAgc2V0UGFyYW1zKHt9KTtcclxuICAgICAgLy8gc2V0RWRpdFR5cGUoXCJcIik7XHJcbiAgICAgIG1vZGFsUmVmLmN1cnJlbnQ/LnNob3dGb3JtKCk7XHJcbiAgICB9LFxyXG4gIH0pKTtcclxuICBjb25zdCB7Zm9ybUNvZGUsLi4ub3RoZXJzfSA9IHBhcmFtc1xyXG4gIHJldHVybiAoXHJcbiAgICA8U2V0dGluZ0Zvcm1cclxuICAgICAgZm9ybUNvZGU9e3BhcmFtcy5mb3JtQ29kZX1cclxuICAgICAgZm9ybVR5cGU9XCJtb2RhbFwiXHJcbiAgICAgIHJlZj17bW9kYWxSZWZ9XHJcbiAgICAgIHsuLi5vdGhlcnN9XHJcbiAgICA+PC9TZXR0aW5nRm9ybT5cclxuICApO1xyXG59KTtcclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgT3BlblBhcm1zIHtcclxuICB0aXRsZTogc3RyaW5nO1xyXG4gIGZvcm1Db2RlOiBzdHJpbmc7XHJcbiAgZWRpdFR5cGU/OiBzdHJpbmc7XHJcbiAgZWRpdElkPzogc3RyaW5nO1xyXG4gIGZvb3Rlcj86IGJvb2xlYW47XHJcbiAgd2lkdGg/OiBudW1iZXI7XHJcbn0iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7OztBQUFBLE9BQU9BLEtBQUssSUFBeUJDLE1BQU0sRUFBRUMsUUFBUSxRQUFRLE9BQU87QUFDcEUsT0FBTyxLQUFLQyxNQUFNLE1BQU0sT0FBTztBQUMvQixPQUFPQyxPQUFPLE1BQU0sVUFBVTtBQUM5QixPQUFPQyxVQUFVLE1BQU0sYUFBYTtBQUNwQyxPQUFPLEtBQUtDLFFBQVEsTUFBTSxtQkFBbUI7QUFDN0MsT0FBT0MsS0FBSyxNQUFNLE9BQU87QUFDekIsT0FBT0MsTUFBTSxNQUFNLG1CQUFtQjtBQUN0QyxTQUFTQyxhQUFhLFFBQVEsbUJBQW1CO0FBQ2pELE9BQU9DLFdBQVcsTUFBTSxjQUFjO0FBQ3RDLE9BQU9DLEtBQUssTUFBTSxrQkFBa0I7QUFJcEMsT0FBT0MsV0FBVyxNQUFNLGdCQUFnQjtBQUN4QyxPQUFPLE1BQU1DLFdBQVcsR0FBRztFQUN6QlYsTUFBTTtFQUNOQyxPQUFPO0VBQ1BDLFVBQVU7RUFDVkMsUUFBUTtFQUNSQyxLQUFLO0VBQ0xPLGFBQWEsRUFBRWQsS0FBSyxDQUFDYztBQUN2QixDQUFRO0FBRVIsT0FBTyxNQUFNQyxvQkFBb0IsR0FBR0MsSUFBQSxJQU05QjtFQUFBLElBTitCO0lBQ25DQyxVQUFVO0lBQ1ZDLE9BQU87SUFDUEMsS0FBSztJQUNMQyxPQUFPO0lBQ1BDLElBQUksR0FBRztFQUNULENBQUMsR0FBQUwsSUFBQTtFQUNDLElBQUlDLFVBQVUsQ0FBQ0ssTUFBTSxJQUFJLENBQUMsRUFBRTtJQUMxQixPQUFPLElBQUk7RUFDYixDQUFDLE1BQU07SUFDTCxPQUFPTCxVQUFVLENBQUNNLEdBQUcsQ0FBQyxDQUFD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
227
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJSZWFjdCIsInVzZVJlZiIsInVzZVN0YXRlIiwiTnNjQ29tIiwiTnNjRmlsZSIsIk5zY1JlcXVlc3QiLCJOc2NVdGlscyIsImRheWpzIiwiQnV0dG9uIiwiZ2V0TG9jYWxTdG9yZSIsInF1ZXJ5U3RyaW5nIiwiTW9kYWwiLCJTZXR0aW5nRm9ybSIsImRlZmF1bHRVdGlsIiwiY3JlYXRlRWxlbWVudCIsInJlbmRlclNlbGZUb29sQnV0dG9uIiwiX3JlZiIsInNlbGZCdXR0b24iLCJwYWdlUmVmIiwiZnVuY3MiLCJsb2FkaW5nIiwidHlwZSIsImxlbmd0aCIsIm1hcCIsIml0ZW0iLCJpbmRleCIsInBhZ2VUeXBlIiwia2V5Iiwib25DbGljayIsImV2ZW50T3B0aW9uIiwiZnVuYyIsIkZ1bmN0aW9uIiwiY29kZSIsIm5hbWUiLCJyZW5kZXJTZWxmQ29sdW1uQnV0dG9uIiwiX3JlZjIiLCJzZWxmQ29sdW1uQnV0dG9uIiwicmVjb3JkIiwicmVjb3JkU2hvdyIsImp1bXBQYWdlIiwicGFyYW1zIiwicGF0aG5hbWUiLCJxdWVyeSIsImlkIiwidGl0bGUiLCJzZXJ2aWNlTmFtZSIsInNlcnZpY2VQYXRoIiwib3BlblR5cGUiLCJuZXdRdWVyeSIsIl9vYmplY3RTcHJlYWQiLCJ1cmxQYXJhbXMiLCJzdHJpbmdpZnkiLCJwYXRoIiwiY29uY2F0Iiwid2luZG93IiwiX19QT1dFUkVEX0JZX1FJQU5LVU5fXyIsImRhdGEiLCJwYXJlbnQiLCJwb3N0TWVzc2FnZSIsImV2ZW50VHlwZSIsInBheWxvYWQiLCJsb2NhdGlvbiIsIm9yaWdpbiIsImhpc3RvcnkiLCJwdXNoU3RhdGUiLCJnbyIsImdldFByb2plY3QiLCJwcm9qZWN0IiwiY29udmVydFN0cmluZ1RvT2JqIiwiVXRpbHMiLCJjb252ZXJQYXJhbXMiLCJNb2RhbEluZGV4IiwiZm9yd2FyZFJlZiIsInByb3BzIiwicmVmIiwibW9kYWxSZWYiLCJ1c2VJbXBlcmF0aXZlSGFuZGxlIiwic2hvdyIsImN1cnJlbnQiLCJoaWRlIiwiTW9kYWxNYW5hZ2VyIiwicmVnaXN0ZXIiLCJzaG93TW9kYWwiLCJjb25zb2xlIiwiZXJyb3IiLCJoaWRlTW9kYWwiLCJkZWZhdWx0Q29tRnVuY3MiLCJnZXRDdXJyZW50UHJvamVjdCIsIm9wZW5Gb3JtUGFnZSIsImZvcm1Db2RlIiwiYXJndW1lbnRzIiwidW5kZWZpbmVkIiwiRGF0ZSIsImdldFRpbWUiLCJNb2RhbEZvcm0iLCJzZXRQYXJhbXMiLCJfbW9kYWxSZWYkY3VycmVudCIsIm1vZGFsUHJvcHMiLCJzaG93Rm9ybSIsIl9tb2RhbFJlZiRjdXJyZW50MiIsIm90aGVycyIsIl9vYmplY3RXaXRob3V0UHJvcGVydGllcyIsIl9leGNsdWRlZCIsIl9leHRlbmRzIiwiZm9ybVR5cGUiXSwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvY29tcG9uZW50cy9wYWdlL1NldHRpbmdVdGlsL3V0aWxzLnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgUmVhY3QsIHsgdXNlSW1wZXJhdGl2ZUhhbmRsZSwgdXNlUmVmLCB1c2VTdGF0ZSB9IGZyb20gXCJyZWFjdFwiO1xyXG5pbXBvcnQgKiBhcyBOc2NDb20gZnJvbSBcIi4vY29tXCI7XHJcbmltcG9ydCBOc2NGaWxlIGZyb20gXCJuc2MtZmlsZVwiO1xyXG5pbXBvcnQgTnNjUmVxdWVzdCBmcm9tIFwibnNjLXJlcXVlc3RcIjtcclxuaW1wb3J0ICogYXMgTnNjVXRpbHMgZnJvbSBcIkBiai1uc2MvZnVuY3Rpb25zXCI7XHJcbmltcG9ydCBkYXlqcyBmcm9tIFwiZGF5anNcIjtcclxuaW1wb3J0IEJ1dHRvbiBmcm9tIFwiLi4vLi4vYmFzZS9idXR0b25cIjtcclxuaW1wb3J0IHsgZ2V0TG9jYWxTdG9yZSB9IGZyb20gXCJAYmotbnNjL2Z1bmN0aW9uc1wiO1xyXG5pbXBvcnQgcXVlcnlTdHJpbmcgZnJvbSBcInF1ZXJ5LXN0cmluZ1wiO1xyXG5pbXBvcnQgTW9kYWwgZnJvbSBcIi4uLy4uL2Jhc2UvbW9kYWxcIjtcclxuXHJcbmltcG9ydCBSZWFjdERPTSBmcm9tIFwicmVhY3QtZG9tXCI7XHJcbmltcG9ydCBGb3JtUGFnZSBmcm9tIFwiLi4vRm9ybVBhZ2VcIjtcclxuaW1wb3J0IFNldHRpbmdGb3JtIGZyb20gXCIuLi9TZXR0aW5nRm9ybVwiO1xyXG5leHBvcnQgY29uc3QgZGVmYXVsdFV0aWwgPSB7XHJcbiAgTnNjQ29tLFxyXG4gIE5zY0ZpbGUsXHJcbiAgTnNjUmVxdWVzdCxcclxuICBOc2NVdGlscyxcclxuICBkYXlqcyxcclxuICBjcmVhdGVFbGVtZW50OiBSZWFjdC5jcmVhdGVFbGVtZW50LFxyXG59IGFzIGFueTtcclxuXHJcbmV4cG9ydCBjb25zdCByZW5kZXJTZWxmVG9vbEJ1dHRvbiA9ICh7XHJcbiAgc2VsZkJ1dHRvbixcclxuICBwYWdlUmVmLFxyXG4gIGZ1bmNzLFxyXG4gIGxvYWRpbmcsXHJcbiAgdHlwZSA9IFwidG9vbEJ1dHRvblwiLFxyXG59KSA9PiB7XHJcbiAgaWYgKHNlbGZCdXR0b24ubGVuZ3RoID09IDApIHtcclxuICAgIHJldHVybiBudWxsO1xyXG4gIH0gZWxzZSB7XHJcbiAgICByZXR1cm4gc2VsZkJ1dHRvbi5tYXAoKGl0ZW06IGFueSwgaW5kZXg6IG51bWJlcikgPT4ge1xyXG4gICAgICByZXR1cm4gKFxyXG4gICAgICAgIDxCdXR0b25cclxuICAgICAgICAgIHBhZ2VUeXBlPXt0eXBlfVxyXG4gICAgICAgICAga2V5PXtpbmRleH1cclxuICAgICAgICAgIHR5cGU9e2l0ZW0udHlwZX1cclxuICAgICAgICAgIG9uQ2xpY2s9eygpID0+IHtcclxuICAgICAgICAgICAgbGV0IGV2ZW50T3B0aW9uID0geyBwYWdlUmVmOiBwYWdlUmVmLCBmdW5jczogZnVuY3MgfTtcclxuICAgICAgICAgICAgY29uc3QgZnVuYyA9IG5ldyBGdW5jdGlvbihcIlV0aWxzLGV2ZW50T3B0aW9uXCIsIGl0ZW0ub25DbGljayk7XHJcbiAgICAgICAgICAgIGZ1bmMoZGVmYXVsdFV0aWwsIGV2ZW50T3B0aW9uKTtcclxuICAgICAgICAgIH19XHJcbiAgICAgICAgICBjb2RlPXtpdGVtLmNvZGV9XHJcbiAgICAgICAgICBsb2FkaW5nPXtsb2FkaW5nW2l0ZW0uY29kZV0gPT09IHRydWUgPyB0cnVlIDogZmFsc2V9XHJcbiAgICAgICAgPlxyXG4gICAgICAgICAge2l0ZW0ubmFtZX1cclxuICAgICAgICA8L0J1dHRvbj5cclxuICAgICAgKTtcclxuICAgIH0pO1xyXG4gIH1cclxufTtcclxuXHJcbmV4cG9ydCBjb25zdCByZW5kZXJTZWxmQ29sdW1uQnV0dG9uID0gKHtcclxuICBzZWxmQ29sdW1uQnV0dG9uLFxyXG4gIHBhZ2VSZWYsXHJcbiAgZnVuY3MsXHJcbn0pID0+IHtcclxuICBpZiAoc2VsZkNvbHVtbkJ1dHRvbi5sZW5ndGggPT0gMCkge1xyXG4gICAgcmV0dXJuIG51bGw7XHJcbiAgfSBlbHNlIHtcclxuICAgIHJldHVybiBzZWxmQ29sdW1uQnV0dG9uLm1hcCgoaXRlbTogYW55LCBpbmRleDogbnVtYmVyKSA9PiB7XHJcbiAgICAgIHJldHVybiAoXHJcbiAgICAgICAgPEJ1dHRvblxyXG4gICAgICAgICAgcGFnZVR5cGU9XCJjb2x1bW5CdXR0b25cIlxyXG4gICAgICAgICAga2V5PXtpbmRleH1cclxuICAgICAgICAgIHR5cGU9e2l0ZW0udHlwZX1cclxuICAgICAgICAgIG9uQ2xpY2s9eyhyZWNvcmQpID0+IHtcclxuICAgICAgICAgICAgbGV0IGV2ZW50T3B0aW9uID0ge1xyXG4gICAgICAgICAgICAgIHBhZ2VSZWY6IHBhZ2VSZWYsXHJcbiAgICAgICAgICAgICAgcmVjb3JkOiByZWNvcmQsXHJcbiAgICAgICAgICAgICAgZnVuY3M6IGZ1bmNzLFxyXG4gICAgICAgICAgICB9O1xyXG4gICAgICAgICAgICBjb25zdCBmdW5jID0gbmV3IEZ1bmN0aW9uKFwiVXRpbHMsZXZlbnRPcHRpb25cIiwgaXRlbS5vbkNsaWNrKTtcclxuICAgICAgICAgICAgZnVuYyhkZWZhdWx0VXRpbCwgZXZlbnRPcHRpb24pO1xyXG4gICAgICAgICAgfX1cclxuICAgICAgICAgIGNvZGU9e2l0ZW0uY29kZX1cclxuICAgICAgICAgIHJlY29yZFNob3c9e2l0ZW0ucmVjb3JkU2hvd31cclxuICAgICAgICA+XHJcbiAgICAgICAgICB7aXRlbS5uYW1lfVxyXG4gICAgICAgIDwvQnV0dG9uPlxyXG4gICAgICApO1xyXG4gICAgfSk7XHJcbiAgfVxyXG59O1xyXG5cclxuaW50ZXJmYWNlIElQYXJhbXMge1xyXG4gIHBhdGhuYW1lPzogc3RyaW5nO1xyXG4gIHF1ZXJ5PzogYW55O1xyXG4gIGlkPzogc3RyaW5nO1xyXG4gIHNlcnZpY2VOYW1lPzogc3RyaW5nO1xyXG4gIHRpdGxlPzogc3RyaW5nO1xyXG4gIHNlcnZpY2VQYXRoPzogc3RyaW5nO1xyXG4gIG1lbnVDb2RlPzogc3RyaW5nO1xyXG4gIG9wZW5UeXBlPzogbnVtYmVyO1xyXG59XHJcblxyXG5jb25zdCBqdW1wUGFnZSA9IChwYXJhbXM6IElQYXJhbXMsIHR5cGU/OiBcImFkZFRhYlwiIHwgXCJqdW1wTWVudVwiKSA9PiB7XHJcbiAgY29uc3Qge1xyXG4gICAgcGF0aG5hbWUsXHJcbiAgICBxdWVyeSA9IHt9LFxyXG4gICAgaWQsXHJcbiAgICB0aXRsZSxcclxuICAgIHNlcnZpY2VOYW1lLFxyXG4gICAgc2VydmljZVBhdGgsXHJcbiAgICBvcGVuVHlwZSxcclxuICB9ID0gcGFyYW1zO1xyXG4gIGNvbnN0IG5ld1F1ZXJ5ID0geyAuLi5xdWVyeSB9IGFzIGFueTtcclxuICBjb25zdCB1cmxQYXJhbXMgPSBxdWVyeVN0cmluZy5zdHJpbmdpZnkobmV3UXVlcnkpO1xyXG4gIGNvbnN0IHBhdGggPSB1cmxQYXJhbXMgPyBgJHtwYXRobmFtZX0/JHt1cmxQYXJhbXN9YCA6IHBhdGhuYW1lO1xyXG4gIC8vQHRzLWlnbm9yZVxyXG4gIGlmICh3aW5kb3cuX19QT1dFUkVEX0JZX1FJQU5LVU5fXykge1xyXG4gICAgY29uc3QgZGF0YSA9IHtcclxuICAgICAgdGl0bGU6IHRpdGxlIHx8IFwi5paw5qCH562+XCIsXHJcbiAgICAgIHNlcnZpY2VOYW1lOiBzZXJ2aWNlTmFtZSwgLy/phY3nva7nmoTlvq7lupTnlKjlkI3np7BcclxuICAgICAgc2VydmljZVBhdGg6IHNlcnZpY2VQYXRoLCAvL+mFjee9rueahOW+ruW6lOeUqOWFpeWPo+WcsOWdgFxyXG4gICAgICBwYXRoOiBwYXRoLCAvL+aWsOagh+etvueahHVybCzmsqHphY3nva5zZXJ2aWNlTmFtZSBwYXRo5Li65a6M5pW06Lev5b6EXHJcbiAgICAgIGlkOiBpZCwgLy/oh6rlrprkuYnllK/kuIDlgLxcclxuICAgICAgb3BlblR5cGU6IG9wZW5UeXBlID8gb3BlblR5cGUgOiA0LCAvL+aJk+W8gOaWueW8jyA05L2N5b6u5YmN56uvLCAz5Li6aWZyYW1lICzpu5jorqQgM1xyXG4gICAgfTtcclxuICAgIHdpbmRvdy5wYXJlbnQucG9zdE1lc3NhZ2UoXHJcbiAgICAgIHtcclxuICAgICAgICBldmVudFR5cGU6IHR5cGUgPyB0eXBlIDogXCJhZGRUYWJcIixcclxuICAgICAgICBzZXJ2aWNlTmFtZTogc2VydmljZU5hbWUgPyBzZXJ2aWNlTmFtZSA6IFwic2V0dGluZy13ZWJcIixcclxuICAgICAgICBwYXlsb2FkOiB0eXBlID8gcGFyYW1zIDogZGF0YSxcclxuICAgICAgfSxcclxuICAgICAgd2luZG93LmxvY2F0aW9uLm9yaWdpblxyXG4gICAgKTtcclxuICB9IGVsc2Uge1xyXG4gICAgd2luZG93Lmhpc3RvcnkucHVzaFN0YXRlKHt9LCBcIlwiLCBwYXRoKTtcclxuICAgIHdpbmRvdy5oaXN0b3J5LmdvKCk7XHJcbiAgfVxyXG59O1xyXG5jb25zdCBnZXRQcm9qZWN0ID0gKCkgPT4ge1xyXG4gIGNvbnN0IHByb2plY3QgPSBnZXRMb2NhbFN0b3JlKHsgbmFtZTogXCJuc2MtaG9tZS1wcm9qZWN0XCIgfSkgfHwge307XHJcbiAgcmV0dXJuIHByb2plY3Q7XHJcbn07XHJcblxyXG5leHBvcnQgY29uc3QgY29udmVydFN0cmluZ1RvT2JqID0gKGRhdGEsIFV0aWxzLCBldmVudE9wdGlvbikgPT4ge1xyXG4gIGlmIChkYXRhICYmIHR5cGVvZiBkYXRhID09IFwic3RyaW5nXCIpIHtcclxuICAgIGxldCBmdW5jID0gbmV3IEZ1bmN0aW9uKFwiZXZlbnRPcHRpb24sVXRpbHNcIiwgZGF0YSk7XHJcbiAgICBsZXQgY29udmVyUGFyYW1zID0gZnVuYyhldmVudE9wdGlvbiwgVXRpbHMpO1xyXG4gICAgZGF0YSA9IGNvbnZlclBhcmFtcztcclxuICB9IGVsc2Uge1xyXG4gICAgZGF0YSA9IGRhdGEgfHwge307XHJcbiAgfVxyXG4gIHJldHVybiBkYXRhO1xyXG59O1xyXG4vLyBjb25zdCBtb2RhbFJlZjogYW55ID0gdXNlUmVmKG51bGwpO1xyXG5jb25zdCBNb2RhbEluZGV4ID0gUmVhY3QuZm9yd2FyZFJlZigocHJvcHMsIHJlZikgPT4ge1xyXG4gIC8vIGNvbnN0IFtpc1Zpc2libGUsIHNldElzVmlzaWJsZV0gPSBSZWFjdC51c2VTdGF0ZShmYWxzZSk7XHJcbiAgY29uc3QgbW9kYWxSZWY6IGFueSA9IHVzZVJlZihudWxsKTtcclxuICAvLyDkvb/nlKh1c2VJbXBlcmF0aXZlSGFuZGxl5ZCR54i257uE5Lu25pq06Zyy5pa55rOVXHJcbiAgUmVhY3QudXNlSW1wZXJhdGl2ZUhhbmRsZShyZWYsICgpID0+ICh7XHJcbiAgICBzaG93OiAoKSA9PiB7XHJcbiAgICAgIG1vZGFsUmVmLmN1cnJlbnQuc2hvdygpO1xyXG4gICAgfSxcclxuICAgIGhpZGU6ICgpID0+IHtcclxuICAgICAgbW9kYWxSZWYuY3VycmVudC5oaWRlKCk7XHJcbiAgICB9LFxyXG4gIH0pKTtcclxuXHJcbiAgcmV0dXJuIDxNb2RhbD48L01vZGFsPjtcclxufSk7XHJcbmV4cG9ydCBjb25zdCBNb2RhbE1hbmFnZXIgPSB7XHJcbiAgbW9kYWxSZWY6IG51bGwsXHJcbiAgcmVnaXN0ZXI6IGZ1bmN0aW9uIChyZWYpIHtcclxuICAgIHRoaXMubW9kYWxSZWYgPSByZWY7XHJcbiAgfSxcclxuICBzaG93TW9kYWw6IGZ1bmN0aW9uIChwcm9wcykge1xyXG4gICAgaWYgKHRoaXMubW9kYWxSZWYgJiYgdGhpcy5tb2RhbFJlZi5jdXJyZW50KSB7XHJcbiAgICAgIHRoaXMubW9kYWxSZWYuY3VycmVudC5zaG93KHByb3BzKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIGNvbnNvbGUuZXJyb3IoXCJNb2RhbOW8leeUqOacquazqOWGjFwiKTtcclxuICAgIH1cclxuICB9LFxyXG4gIGhpZGVNb2RhbDogZnVuY3Rpb24gKCkge1xyXG4gICAgaWYgKHRoaXMubW9kYWxSZWYgJiYgdGhpcy5tb2RhbFJlZi5jdXJyZW50KSB7XHJcbiAgICAgIHRoaXMubW9kYWxSZWYuY3VycmVudC5oaWRlKCk7XHJcbiAgICB9XHJcbiAgfSxcclxufTtcclxuXHJcbmV4cG9ydCBjb25zdCBkZWZhdWx0Q29tRnVuY3MgPSB7XHJcbiAgaGlzdG9yeTogKHBhcmFtcywgdHlwZSkgPT4ge1xyXG4gICAganVtcFBhZ2UocGFyYW1zLCB0eXBlKTtcclxuICB9LFxyXG4gIGdldEN1cnJlbnRQcm9qZWN0OiAoKSA9PiB7XHJcbiAgICByZXR1cm4gZ2V0UHJvamVjdCgpO1xyXG4gIH0sXHJcbiAgb3BlbkZvcm1QYWdlOiAocGFyYW1zLCBmb3JtQ29kZSwgdHlwZSA9IFwiYWRkXCIpID0+IHtcclxuICAgIGp1bXBQYWdlKFxyXG4gICAgICB7XHJcbiAgICAgICAgcGF0aG5hbWU6IGAvZm9ybXBhZ2UvJHt0eXBlfS9mb3JtLyR7Zm9ybUNvZGV9YCxcclxuICAgICAgICBpZDogbmV3IERhdGUoKS5nZXRUaW1lKCksXHJcbiAgICAgICAgdGl0bGU6IFwi6KGo5Y2V6aG16Z2iXCIsXHJcbiAgICAgICAgLi4ucGFyYW1zLFxyXG4gICAgICAgIHNlcnZpY2VOYW1lOiBcInNldHRpbmctd2ViXCIsXHJcbiAgICAgICAgc2VydmljZVBhdGg6IFwiL3NldHRpbmdcIixcclxuICAgICAgfSxcclxuICAgICAgXCJhZGRUYWJcIlxyXG4gICAgKTtcclxuICB9LFxyXG59O1xyXG5cclxuZXhwb3J0IGNvbnN0IE1vZGFsRm9ybSA9IFJlYWN0LmZvcndhcmRSZWYoKHByb3BzLCByZWYpID0+IHtcclxuICBjb25zdCBtb2RhbFJlZjogYW55ID0gdXNlUmVmKG51bGwpO1xyXG4gIC8vIGNvbnN0IFtmb3JtQ29kZSwgc2V0Rm9ybUNvZGVdID0gdXNlU3RhdGUoXCJcIik7XHJcbiAgLy8gY29uc3QgW2VkaXRJZFR5cGUsIHNldEVkaXRUeXBlXSA9IHVzZVN0YXRlKFwiXCIpO1xyXG4gIGNvbnN0IFtwYXJhbXMsIHNldFBhcmFtc10gPSB1c2VTdGF0ZSh7fSBhcyBhbnkpO1xyXG4gIFJlYWN0LnVzZUltcGVyYXRpdmVIYW5kbGUocmVmLCAoKSA9PiAoe1xyXG4gICAgc2hvdzogKHByb3BzKSA9PiB7XHJcbiAgICAgIC8vIGNvbnN0IHtmb3JtQ29kZSxlZH1cclxuICAgICAgc2V0UGFyYW1zKHsgLi4ucHJvcHMsIG1vZGFsUHJvcHM6IHsgdGl0bGU6IHByb3BzLnRpdGxlIH0gfSk7XHJcbiAgICAgIC8vIHNldEVkaXRUeXBlKHByb3BzLmVkaXRJZFR5cGUpO1xyXG4gICAgICBtb2RhbFJlZi5jdXJyZW50Py5zaG93Rm9ybSgpO1xyXG4gICAgfSxcclxuICAgIGhpZGU6ICgpID0+IHtcclxuICAgICAgc2V0UGFyYW1zKHt9KTtcclxuICAgICAgLy8gc2V0RWRpdFR5cGUoXCJcIik7XHJcbiAgICAgIG1vZGFsUmVmLmN1cnJlbnQ/LnNob3dGb3JtKCk7XHJcbiAgICB9LFxyXG4gIH0pKTtcclxuICBjb25zdCB7IGZvcm1Db2RlLCAuLi5vdGhlcnMgfSA9IHBhcmFtcztcclxuICByZXR1cm4gKFxyXG4gICAgPGRpdiA+XHJcbiAgICAgIDxTZXR0aW5nRm9ybVxyXG4gICAgICAgIGZvcm1Db2RlPXtwYXJhbXMuZm9ybUNvZGV9XHJcbiAgICAgICAgZm9ybVR5cGU9XCJtb2RhbFwiXHJcbiAgICAgICAgcmVmPXttb2RhbFJlZn1cclxuICAgICAgICB7Li4ub3RoZXJzfVxyXG4gICAgICA+PC9TZXR0aW5nRm9ybT5cclxuICAgIDwvZGl2PlxyXG4gICk7XHJcbn0pO1xyXG5cclxuZXhwb3J0IGludGVyZmFjZSBPcGVuUGFybXMge1xyXG4gIHRpdGxlOiBzdHJpbmc7XHJcbiAgZm9ybUNvZGU6IHN0cmluZztcclxuICBlZGl0VHlwZT86IHN0cmluZztcclxuICBlZGl0SWQ/OiBzdHJpbmc7XHJcbiAgZm9vdGVyPzogYm9vbGVhbjtcclxuICB3aWR0aD86IG51bWJlcjtcclxufVxyXG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7OztBQUFBLE9BQU9BLEtBQUssSUFBeUJDLE1BQU0sRUFBRUMsUUFBUSxRQUFRLE9BQU87QUFDcEUsT0FBTyxLQUFLQyxNQUFNLE1BQU0sT0FBTztBQUMvQixPQUFPQyxPQUFPLE1BQU0sVUFBVTtBQUM5QixPQUFPQyxVQUFVLE1BQU0sYUFBYTtBQUNwQyxPQUFPLEtBQUtDLFFBQVEsTUFBTSxtQkFBbUI7QUFDN0MsT0FBT0MsS0FBSyxNQUFNLE9BQU87QUFDekIsT0FBT0MsTUFBTSxNQUFNLG1CQUFtQjtBQUN0QyxTQUFTQyxhQUFhLFFBQVEsbUJBQW1CO0FBQ2pELE9BQU9DLFdBQVcsTUFBTSxjQUFjO0FBQ3RDLE9BQU9DLEtBQUssTUFBTSxrQkFBa0I7QUFJcEMsT0FBT0MsV0FBVyxNQUFNLGdCQUFnQjtBQUN4QyxPQUFPLE1BQU1DLFdBQVcsR0FBRztFQUN6QlYsTUFBTTtFQUNOQyxPQUFPO0VBQ1BDLFVBQVU7RUFDVkMsUUFBUTtFQUNSQyxLQUFLO0VBQ0xPLGFBQWEsRUFBRWQsS0FBSyxDQUFDYztBQUN2QixDQUFRO0FBRVIsT0FBTyxNQUFNQyxvQkFBb0IsR0FBR0MsSUFBQSxJQU05QjtFQUFBLElBTitCO0lBQ25DQyxVQUFVO0lBQ1ZDLE9BQU87SUFDUEMsS0FBSztJQUNMQyxPQUFPO0lBQ1BDLElBQUksR0FBRztFQUNULENBQUMsR0FBQUwsSUFBQTtFQUNDLElBQUlDLFVBQVUsQ0FBQ0ssTUFBTSxJQUFJLENBQUMsRUFBRTtJQUMxQixPQUFP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