Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Contribute to GitLab
Sign in
Toggle navigation
W
wly-APP
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
刘川
wly-APP
Commits
b5770471
Commit
b5770471
authored
Aug 19, 2022
by
chuan.liu
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
创意酒api处理
parent
733dc164
Show whitespace changes
Inline
Side-by-side
Showing
6 changed files
with
73 additions
and
73 deletions
+73
-73
diy-wine.vue
pages/diy-wine/diy-wine.vue
+67
-67
group-baseinfo.nvue
pages/group-buy/group-baseinfo.nvue
+1
-1
app-service.js
unpackage/dist/dev/app-plus/app-service.js
+2
-2
login.js
unpackage/dist/dev/app-plus/pages/login/login.js
+1
-1
message.js
unpackage/dist/dev/app-plus/pages/message/message.js
+1
-1
usercenter.js
unpackage/dist/dev/app-plus/pages/usercenter/usercenter.js
+1
-1
No files found.
pages/diy-wine/diy-wine.vue
View file @
b5770471
...
@@ -149,32 +149,32 @@
...
@@ -149,32 +149,32 @@
"Action"
:
"guanying.customcategory.list.get"
,
"Action"
:
"guanying.customcategory.list.get"
,
...
this
.
signParams
...
this
.
signParams
}
}
// const res
= await apiGetCategory(params)
const
res2
=
await
apiGetCategory
(
params
)
const
res2
=
{
//
const res2 = {
Data
:
{
//
Data: {
CategoryList
:
[{
//
CategoryList: [{
TemplateCategoryID
:
"7"
,
//
TemplateCategoryID: "7",
CategoryName
:
"婚庆定制"
//
CategoryName: "婚庆定制"
},
//
},
{
//
{
TemplateCategoryID
:
"8"
,
//
TemplateCategoryID: "8",
CategoryName
:
"商务科技"
//
CategoryName: "商务科技"
},
//
},
{
//
{
TemplateCategoryID
:
"9"
,
//
TemplateCategoryID: "9",
CategoryName
:
"宴会类别"
//
CategoryName: "宴会类别"
},
//
},
{
//
{
TemplateCategoryID
:
"10"
,
//
TemplateCategoryID: "10",
CategoryName
:
"自定义"
//
CategoryName: "自定义"
}
//
}
],
//
],
GoodsImage
:
"http://att.c0331.dev.guanyingyun.com/attachment/works/frontimagepath/2022/03/28/16484637403730.png"
,
//
GoodsImage: "http://att.c0331.dev.guanyingyun.com/attachment/works/frontimagepath/2022/03/28/16484637403730.png",
},
//
},
ErrCode
:
"0"
,
//
ErrCode: "0",
ErrMsg
:
""
,
//
ErrMsg: "",
Status
:
"Success"
//
Status: "Success"
}
//
}
this
.
tabs
=
res2
.
Data
.
CategoryList
this
.
tabs
=
res2
.
Data
.
CategoryList
this
.
goodsBottleImage
=
res2
.
Data
.
GoodsImage
this
.
goodsBottleImage
=
res2
.
Data
.
GoodsImage
this
.
activeTabItem
=
res2
.
Data
.
CategoryList
[
0
]
this
.
activeTabItem
=
res2
.
Data
.
CategoryList
[
0
]
...
@@ -188,34 +188,34 @@
...
@@ -188,34 +188,34 @@
},
},
async
getCategoryDetail
()
{
async
getCategoryDetail
()
{
const
params
=
{
const
params
=
{
"OutsideGoodsID"
:
"432608038931800064"
,
"Action"
:
"guanying.customtemplate.list.get"
,
"Action"
:
"guanying.customtemplate.list.get"
,
"OutsideGoodsID"
:
"432608038931800064"
,
"TemplateCategoryID"
:
this
.
activeTabItem
.
TemplateCategoryID
,
"TemplateCategoryID"
:
this
.
activeTabItem
.
TemplateCategoryID
,
"PageID"
:
"1"
,
"PageID"
:
"1"
,
"Pagesize"
:
"
100
"
,
"Pagesize"
:
"
99
"
,
...
this
.
signParams
...
this
.
signParams
}
}
const
res
=
await
apiGetCategoryDetail
(
params
)
const
res
2
=
await
apiGetCategoryDetail
(
params
)
const
res2
=
{
//
const res2 = {
Data
:
[{
//
Data: [{
"TemplateID"
:
"2"
,
//
"TemplateID": "2",
"OriginImageWidth"
:
"803"
,
//
"OriginImageWidth": "803",
"OriginImageHeight"
:
"2516"
,
//
"OriginImageHeight": "2516",
"OriginImagePath"
:
"https://att.wuliangcreart.com/attachment/works/custom/2019/08/02/52Origin08.png"
,
//
"OriginImagePath": "https://att.wuliangcreart.com/attachment/works/custom/2019/08/02/52Origin08.png",
"ThumbImagePath"
:
"https://att.wuliangcreart.com/attachment/works/custom/2019/08/02/Thumb08.png"
,
//
"ThumbImagePath": "https://att.wuliangcreart.com/attachment/works/custom/2019/08/02/Thumb08.png",
},
{
//
}, {
"TemplateID"
:
"2"
,
//
"TemplateID": "2",
"OriginImageWidth"
:
"803"
,
//
"OriginImageWidth": "803",
"OriginImageHeight"
:
"2516"
,
//
"OriginImageHeight": "2516",
"OriginImagePath"
:
"https://att.wuliangcreart.com/attachment/works/custom/2019/08/02/52Origin08.png"
,
//
"OriginImagePath": "https://att.wuliangcreart.com/attachment/works/custom/2019/08/02/52Origin08.png",
"ThumbImagePath"
:
"https://att.wuliangcreart.com/attachment/works/custom/2019/08/02/Thumb08.png"
,
//
"ThumbImagePath": "https://att.wuliangcreart.com/attachment/works/custom/2019/08/02/Thumb08.png",
}],
//
}],
ErrCode
:
"0"
,
//
ErrCode: "0",
ErrMsg
:
""
,
//
ErrMsg: "",
Status
:
"Success"
//
Status: "Success"
}
//
}
this
.
templateCategoryDetail
=
res2
.
Data
this
.
templateCategoryDetail
=
res2
.
Data
},
},
...
@@ -230,24 +230,24 @@
...
@@ -230,24 +230,24 @@
"Action"
:
"guanying.goodstemplate.detail.query"
,
"Action"
:
"guanying.goodstemplate.detail.query"
,
...
this
.
signParams
...
this
.
signParams
}
}
const
res
=
await
apiGetCategoryDetailById
(
params
)
const
res
2
=
await
apiGetCategoryDetailById
(
params
)
const
res2
=
{
//
const res2 = {
Data
:
{
//
Data: {
"TemplateID"
:
'1'
,
//
"TemplateID": '1',
"ThumbImagePath"
:
''
,
//
"ThumbImagePath": '',
"OriginImagePath"
:
''
,
//
"OriginImagePath": '',
"OriginImageWidth"
:
''
,
//
"OriginImageWidth": '',
"OriginImageHeight"
:
''
,
//
"OriginImageHeight": '',
"ConfigContent"
:
{
//
"ConfigContent": {
"InitImgList"
:
[{
//
"InitImgList": [{
"imgID"
:
1
//
"imgID": 1
}],
//
}],
},
//
},
},
//
},
ErrCode
:
"0"
,
//
ErrCode: "0",
ErrMsg
:
""
,
//
ErrMsg: "",
Status
:
"Success"
//
Status: "Success"
}
//
}
this
.
activeTemplateItemDetail
=
res2
.
Data
.
ConfigContent
.
InitImgList
[
0
]
this
.
activeTemplateItemDetail
=
res2
.
Data
.
ConfigContent
.
InitImgList
[
0
]
},
},
async
handleSave
()
{
async
handleSave
()
{
...
...
pages/group-buy/group-baseinfo.nvue
View file @
b5770471
...
@@ -48,7 +48,7 @@
...
@@ -48,7 +48,7 @@
<image class="icon-arrow" src="@/static/image/arrow_r@3x.png" mode="aspectFit"></image>
<image class="icon-arrow" src="@/static/image/arrow_r@3x.png" mode="aspectFit"></image>
</view>
</view>
</view>
</view>
<view class="text-block"
v-if="condition.ZZFLD000099===1"
>
<view class="text-block">
<text class="middle-date">喷码方式</text>
<text class="middle-date">喷码方式</text>
<view class="middle-date-des uni-list picker-year">
<view class="middle-date-des uni-list picker-year">
<view class="uni-list-cell">
<view class="uni-list-cell">
...
...
unpackage/dist/dev/app-plus/app-service.js
View file @
b5770471
This source diff could not be displayed because it is too large. You can
view the blob
instead.
unpackage/dist/dev/app-plus/pages/login/login.js
View file @
b5770471
...
@@ -2068,7 +2068,7 @@ index;exports.default = _default;
...
@@ -2068,7 +2068,7 @@ index;exports.default = _default;
/***/
(
function
(
module
,
exports
,
__webpack_require__
)
{
/***/
(
function
(
module
,
exports
,
__webpack_require__
)
{
"use strict"
;
"use strict"
;
eval
(
"/* WEBPACK VAR INJECTION */(function(__f__) {Object.defineProperty(exports,
\"
__esModule
\"
, { value: true });exports.default = void 0;var _index = __webpack_require__(/*! @/utils/index.js */ 16);
\n\n\n
var _validate = _interopRequireDefault(__webpack_require__(/*! @/utils/validate.js */ 17));
\n
var _jsBase = __webpack_require__(/*! js-base64 */ 18);
\n\n\n
var _index2 = _interopRequireDefault(__webpack_require__(/*! @/store/index.js */ 19));function _interopRequireDefault(obj) {return obj && obj.__esModule ? obj : { default: obj };}function _classCallCheck(instance, Constructor) {if (!(instance instanceof Constructor)) {throw new TypeError(
\"
Cannot call a class as a function
\"
);}}function _defineProperties(target, props) {for (var i = 0; i < props.length; i++) {var descriptor = props[i];descriptor.enumerable = descriptor.enumerable || false;descriptor.configurable = true;if (
\"
value
\"
in descriptor) descriptor.writable = true;Object.defineProperty(target, descriptor.key, descriptor);}}function _createClass(Constructor, protoProps, staticProps) {if (protoProps) _defineProperties(Constructor.prototype, protoProps);if (staticProps) _defineProperties(Constructor, staticProps);return Constructor;}var
\n\n
Request = /*#__PURE__*/function () {_createClass(Request, [{ key:
\"
setConfig
\"
,
\n
// 设置全局默认配置
\n
value: function setConfig(customConfig) {
\n
// 深度合并对象,否则会造成对象深层属性丢失
\n
this.config = (0, _index.deepMerge)(this.config, customConfig);
\n
}
\n\n
// 主要请求部分
\n
}, { key:
\"
request
\"
, value: function request() {var _this = this;var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
\n\n
// 检查请求拦截
\n
if (this.interceptor.request && typeof this.interceptor.request === 'function') {
\n
var tmpConfig = {};
\n
var interceptorRequest = this.interceptor.request(options);
\n
if (interceptorRequest === false) {
\n
// 返回一个处于pending状态中的Promise,来取消原promise,避免进入then()回调
\n
return new Promise(function () {});
\n
}
\n
this.options = interceptorRequest;
\n
}
\n\n
options.dataType = options.dataType || this.config.dataType;
\n
options.responseType = options.responseType || this.config.responseType;
\n
options.url = options.url || '';
\n
options.params = options.params || {};
\n
options.header = Object.assign({}, this.config.header, options.header);
\n
options.method = options.method || this.config.method;
\n
options.sslVerify = false;
\n\n
// console.log('api.helper-----request', options, this.options)
\n\n
return new Promise(function (resolve, reject) {
\n
options.complete = function (response) {
\n
__f__(
\"
log
\"
, 'api.helper---options.complete', response,
\"
at servers/api.helper.js:43
\"
);
\n
// 请求返回后,隐藏loading(如果请求返回快的话,可能会没有loading)
\n
uni.hideLoading();
\n
// 清除定时器,如果请求回来了,就无需loading
\n
clearTimeout(_this.config.timer);
\n
_this.config.timer = null;
\n
// 判断用户对拦截返回数据的要求,如果originalData为true,返回所有的数据(response)到拦截器,否则只返回response.data
\n
if (_this.config.originalData) {
\n
// 判断是否存在拦截器
\n
if (_this.interceptor.response && typeof _this.interceptor.response === 'function') {
\n
var resInterceptors = _this.interceptor.response(response);
\n
// 如果拦截器不返回false,就将拦截器返回的内容给this.$u.post的then回调
\n
if (resInterceptors !== false) {
\n
resolve(resInterceptors);
\n
} else {
\n
// 如果拦截器返回false,意味着拦截器定义者认为返回有问题,直接接入catch回调
\n
reject(response);
\n
}
\n
} else {
\n
// 如果要求返回原始数据,就算没有拦截器,也返回最原始的数据
\n
resolve(response);
\n
}
\n
} else {
\n
if (response.statusCode == 200) {
\n
if (_this.interceptor.response && typeof _this.interceptor.response ===
\n
'function') {
\n
var _resInterceptors = _this.interceptor.response(response.data);
\n
if (_resInterceptors !== false) {
\n
resolve(_resInterceptors);
\n
} else {
\n
reject(response.data);
\n
}
\n
} else {
\n
// 如果不是返回原始数据(originalData=false),且没有拦截器的情况下,返回纯数据给then回调
\n
resolve(response.data);
\n
}
\n
} else {
\n
// 不返回原始数据的情况下,服务器状态码不为200,modal弹框提示
\n
// if(response.errMsg) {
\n
//
\
tuni.showModal({
\n
//
\
t
\
ttitle: response.errMsg
\n
//
\
t});
\n
// }
\n
if (response.statusCode == 500) {
\n
uni.showToast({
\n
title: '服务器异常',
\n
duration: 2000,
\n
icon: 'none' });
\n\n
}
\n
if (response.statusCode == 401) {
\n
uni.showToast({
\n
title: '登录已失效',
\n
duration: 2000,
\n
icon: 'none' });
\n\n
uni.navigateTo({
\n
url:
\"
/pages/login/login
\"
});
\n\n
}
\n
reject(response);
\n
}
\n
}
\n
};
\n\n
// 判断用户传递的URL是否/开头,如果不是,加上/,这里使用了uView的test.js验证库的url()方法
\n
options.url = _validate.default.url(options.url) ? options.url : (options.baseUrl ? options.baseUrl :
\n
_this.
\n
config.baseUrl) + (options.url.
\n
indexOf('/') == 0 ?
\n
options.url : '/' + options.url);
\n\n
// 是否显示loading
\n
// 加一个是否已有timer定时器的判断,否则有两个同时请求的时候,后者会清除前者的定时器id
\n
// 而没有清除前者的定时器,导致前者超时,一直显示loading
\n
if (_this.config.showLoading && !_this.config.timer) {
\n
_this.config.timer = setTimeout(function () {
\n
uni.showLoading({
\n
title: _this.config.loadingText,
\n
mask: _this.config.loadingMask });
\n\n
_this.config.timer = null;
\n
}, _this.config.loadingTime);
\n
}
\n
// console.log('api.helper-----finally***request', options)
\n
uni.request(options);
\n
});
\n
// .catch(res => {
\n
//
\
t// 如果返回reject(),不让其进入this.$u.post().then().catch()后面的catct()
\n
//
\
t// 因为很多人都会忘了写后面的catch(),导致报错捕获不到catch
\n
//
\
treturn new Promise(()=>{});
\n
// })
\n
} }]);
\n\n
function Request() {var _this2 = this;_classCallCheck(this, Request);
\n
this.config = {
\n
baseUrl: 'http://221.10.127.60:5000', // 请求的根域名
\n
// 默认的请求头
\n
header: {},
\n
method: 'POST',
\n
// 设置为json,返回后uni.request会对数据进行一次JSON.parse
\n
dataType: 'json',
\n
// 此参数无需处理,因为5+和支付宝小程序不支持,默认为text即可
\n
responseType: 'text',
\n
showLoading: true, // 是否显示请求中的loading
\n
loadingText: '请求中...',
\n
loadingTime: 800, // 在此时间内,请求还没回来的话,就显示加载中动画,单位ms
\n
timer: null, // 定时器
\n
sslVerify: false, // 定时器
\n
originalData: false, // 是否在拦截器中返回服务端的原始数据,见文档说明
\n
loadingMask: true // 展示loading的时候,是否给一个透明的蒙层,防止触摸穿透
\n
};
\n\n
// 拦截器
\n
this.interceptor = {
\n
// 请求前的拦截
\n
request: function request(config) {
\n
config.header['Authorization'] =
\"
Basic
\"
.concat(_jsBase.Base64.encode('wangpc:LZY888@@'));
\n
try {
\n
if (config.url.indexOf('crm-app/login') === -
\n
1 &&
\n
_index2.default.state.vuex_token) {
\n
config.header['X-Auth-Token'] = _index2.default.
\n
state.vuex_token;
\n
}
\n\n
if (config.header['Content-Type'] && config.header['Content-Type'].indexOf(
\n
'x-www-form-urlencoded') === -1) {
\n
config.header['Content-Type'] =
\"
application/json; charset=utf-8
\"
;
\n
}
\n\n\n
if (config.url.indexOf('crm-app') !== -1) {
\n
// config.baseUrl = 'http://10.0.135.61'
\n
config.baseUrl = 'http://221.10.127.60:5000';
\n
} else if (config.url.indexOf('adapter') !== -1) {
\n
// config.baseUrl = 'http://api.c0331.dev.guanyingyun.com'
\n
config.baseUrl = 'http://221.10.127.60:5000/cyj';
\n
} else if (config.url.indexOf('wmdpwebservices') !== -1) {
\n
// config.baseUrl = 'https://10.0.134.182:9002'
\n
config.baseUrl = 'http://221.10.127.60:5000/sczx';
\n
// config.baseUrl = ''
\n
} else {
\n
config.baseUrl = 'http://221.10.127.60:5000/wlySap';
\n
}
\n
} catch (e) {
\n
__f__(
\"
log
\"
, 'error', e,
\"
at servers/api.helper.js:189
\"
);
\n
}
\n
// if (config.url.indexOf('crm-app/login') !== -1 && !store.state.vuex_token) {
\n
//
\
tuni.showToast({
\n
//
\
t
\
ttitle: '登录已失效',
\n
//
\
t
\
tduration: 2000,
\n
//
\
t
\
ticon: 'none'
\n
//
\
t});
\n
//
\
tuni.navigateTo({
\n
//
\
t
\
turl:
\"
/pages/login/login
\"\n
//
\
t})
\n
// }
\n
__f__(
\"
log
\"
, 'helper--interceptor---request-----', config,
\"
at servers/api.helper.js:201
\"
);
\n
return config;
\n
},
\n
// 请求后的拦截
\n
response: function response(res) {
\n
__f__(
\"
log
\"
, 'helper--iinterceptor---response-----', res,
\"
at servers/api.helper.js:206
\"
);
\n
if (res.MSGTYPE === 'S' || res.msgtype === 'S' || res.status === 1 || res.result ===
\"
S
\"
||
\n
res.Status ===
\n
'Success') {
\n
// 如果把originalData设置为了true,这里return回什么,this.$u.post的then回调中就会得到什么
\n
return res;
\n
} else {
\n
uni.showToast({
\n
title: res.MESSAGE || res.msg || res.message || res.ErrMsg,
\n
duration: 2000,
\n
icon: 'none' });
\n\n
return false;
\n
};
\n
} };
\n\n\n
// get请求
\n
this.get = function (url) {var data = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};var header = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
\n
return _this2.request({
\n
method: 'GET',
\n
url: url,
\n
header: header,
\n
data: data });
\n\n
};
\n\n
// post请求
\n
this.post = function (url) {var data = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};var header = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
\n
return _this2.request({
\n
url: url,
\n
method: 'POST',
\n
header: header,
\n
data: data });
\n\n
};
\n\n
// put请求,不支持支付宝小程序(HX2.6.15)
\n
this.put = function (url) {var data = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};var header = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
\n
return _this2.request({
\n
url: url,
\n
method: 'PUT',
\n
header: header,
\n
data: data });
\n\n
};
\n\n
// delete请求,不支持支付宝和头条小程序(HX2.6.15)
\n
this.delete = function (url) {var data = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};var header = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
\n
return _this2.request({
\n
url: url,
\n
method: 'DELETE',
\n
header: header,
\n
data: data });
\n\n
};
\n
}return Request;}();var _default =
\n\n
new Request();exports.default = _default;
\n
/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./node_modules/@dcloudio/vue-cli-plugin-uni/lib/format-log.js */ 10)[
\"
default
\"
]))//# sourceURL=[module]
\n
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInVuaS1hcHA6Ly8vc2VydmVycy9hcGkuaGVscGVyLmpzIl0sIm5hbWVzIjpbIlJlcXVlc3QiLCJjdXN0b21Db25maWciLCJjb25maWciLCJvcHRpb25zIiwiaW50ZXJjZXB0b3IiLCJyZXF1ZXN0IiwidG1wQ29uZmlnIiwiaW50ZXJjZXB0b3JSZXF1ZXN0IiwiUHJvbWlzZSIsImRhdGFUeXBlIiwicmVzcG9uc2VUeXBlIiwidXJsIiwicGFyYW1zIiwiaGVhZGVyIiwiT2JqZWN0IiwiYXNzaWduIiwibWV0aG9kIiwic3NsVmVyaWZ5IiwicmVzb2x2ZSIsInJlamVjdCIsImNvbXBsZXRlIiwicmVzcG9uc2UiLCJ1bmkiLCJoaWRlTG9hZGluZyIsImNsZWFyVGltZW91dCIsInRpbWVyIiwib3JpZ2luYWxEYXRhIiwicmVzSW50ZXJjZXB0b3JzIiwic3RhdHVzQ29kZSIsImRhdGEiLCJzaG93VG9hc3QiLCJ0aXRsZSIsImR1cmF0aW9uIiwiaWNvbiIsIm5hdmlnYXRlVG8iLCJ2YWxpZGF0ZSIsImJhc2VVcmwiLCJpbmRleE9mIiwic2hvd0xvYWRpbmciLCJzZXRUaW1lb3V0IiwibG9hZGluZ1RleHQiLCJtYXNrIiwibG9hZGluZ01hc2siLCJsb2FkaW5nVGltZSIsIkJhc2U2NCIsImVuY29kZSIsInN0b3JlIiwic3RhdGUiLCJ2dWV4X3Rva2VuIiwiZSIsInJlcyIsIk1TR1RZUEUiLCJtc2d0eXBlIiwic3RhdHVzIiwicmVzdWx0IiwiU3RhdHVzIiwiTUVTU0FHRSIsIm1zZyIsIm1lc3NhZ2UiLCJFcnJNc2ciLCJnZXQiLCJwb3N0IiwicHV0IiwiZGVsZXRlIl0sIm1hcHBpbmdzIjoib0lBQUE7OztBQUdBO0FBQ0E7OztBQUdBLHNGOztBQUVNQSxPO0FBQ0w7OEJBQ1VDLFksRUFBYztBQUN2QjtBQUNBLFdBQUtDLE1BQUwsR0FBYyxzQkFBVSxLQUFLQSxNQUFmLEVBQXVCRCxZQUF2QixDQUFkO0FBQ0E7O0FBRUQ7aURBQ3NCLHNCQUFkRSxPQUFjLHVFQUFKLEVB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QTtBQUNBLFNBQUtnQyxJQUFMLEdBQVksVUFBQ2xELEdBQUQsRUFBaUMsS0FBM0JrQixJQUEyQix1RUFBcEIsRUFBb0IsS0FBaEJoQixNQUFnQix1RUFBUCxFQUFPO0FBQzVDLGFBQU8sTUFBSSxDQUFDUixPQUFMLENBQWE7QUFDbkJNLFdBQUcsRUFBSEEsR0FEbUI7QUFFbkJLLGNBQU0sRUFBRSxNQUZXO0FBR25CSCxjQUFNLEVBQU5BLE1BSG1CO0FBSW5CZ0IsWUFBSSxFQUFKQSxJQUptQixFQUFiLENBQVA7O0FBTUEsS0FQRDs7QUFTQTtBQUNBLFNBQUtpQyxHQUFMLEdBQVcsVUFBQ25ELEdBQUQsRUFBaUMsS0FBM0JrQixJQUEyQix1RUFBcEIsRUFBb0IsS0FBaEJoQixNQUFnQix1RUFBUCxFQUFPO0FBQzNDLGFBQU8sTUFBSSxDQUFDUixPQUFMLENBQWE7QUFDbkJNLFdBQUcsRUFBSEEsR0FEbUI7QUFFbkJLLGNBQU0sRUFBRSxLQUZXO0FBR25CSCxjQUFNLEVBQU5BLE1BSG1CO0FBSW5CZ0IsWUFBSSxFQUFKQSxJQUptQixFQUFiLENBQVA7O0FBTUEsS0FQRDs7QUFTQTtBQUNBLFNBQUtrQyxNQUFMLEdBQWMsVUFBQ3BELEdBQUQsRUFBaUMsS0FBM0JrQixJQUEyQix1RUFBcEIsRUFBb0IsS0FBaEJoQixNQUFnQix1RUFBUCxFQUFPO0FBQzlDLGFBQU8sTUFBSSxDQUFDUixPQUFMLENBQWE7QUFDbkJNLFdBQUcsRUFBSEEsR0FEbUI7QUFFbkJLLGNBQU0sRUFBRSxRQUZXO0FBR25CSCxjQUFNLEVBQU5BLE1BSG1CO0FBSW5CZ0IsWUFBSSxFQUFKQSxJQUptQixFQUFiLENBQVA7O0FBTUEsS0FQRDtBQVFBLEc7O0FBRWEsSUFBSTdCLE9BQUosRSIsImZpbGUiOiIxNS5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG5cdGRlZXBNZXJnZVxufSBmcm9tIFwiQC91dGlscy9pbmRleC5qc1wiO1xuaW1wb3J0IHZhbGlkYXRlIGZyb20gXCJAL3V0aWxzL3ZhbGlkYXRlLmpzXCI7XG5pbXBvcnQge1xuXHRCYXNlNjRcbn0gZnJvbSAnanMtYmFzZTY0J1xuaW1wb3J0IHN0b3JlIGZyb20gJ0Avc3RvcmUvaW5kZXguanMnXG5cbmNsYXNzIFJlcXVlc3Qge1xuXHQvLyDorr7nva7lhajlsYDpu5jorqTphY3nva5cblx0c2V0Q29uZmlnKGN1c3RvbUNvbmZpZykge1xuXHRcdC8vIOa3seW6puWQiOW5tuWvueixoe+8jOWQpuWImeS8mumAoOaIkOWvueixoea3seWxguWxnuaAp+S4ouWksVxuXHRcdHRoaXMuY29uZmlnID0gZGVlcE1lcmdlKHRoaXMuY29uZmlnLCBjdXN0b21Db25maWcpO1xuXHR9XG5cblx0Ly8g5Li76KaB6K+35rGC6YOo5YiGXG5cdHJlcXVlc3Qob3B0aW9ucyA9IHt9KSB7XG5cblx0XHQvLyDmo4Dmn6Xor7fmsYLmi6bmiKpcblx0XHRpZiAodGhpcy5pbnRlcmNlcHRvci5yZXF1ZXN0ICYmIHR5cGVvZiB0aGlzLmludGVyY2VwdG9yLnJlcXVlc3QgPT09ICdmdW5jdGlvbicpIHtcblx0XHRcdGxldCB0bXBDb25maWcgPSB7fTtcblx0XHRcdGxldCBpbnRlcmNlcHRvclJlcXVlc3QgPSB0aGlzLmludGVyY2VwdG9yLnJlcXVlc3Qob3B0aW9ucyk7XG5cdFx0XHRpZiAoaW50ZXJjZXB0b3JSZXF1ZXN0ID09PSBmYWxzZSkge1xuXHRcdFx0XHQvLyDov5Tlm57kuIDkuKrlpITkuo5wZW5kaW5n54q25oCB5Lit55qEUHJvbWlzZe+8jOadpeWPlua2iOWOn3Byb21pc2XvvIzpgb/lhY3ov5vlhaV0aGVuKCnlm57osINcblx0XHRcdFx0cmV0dXJuIG5ldyBQcm9taXNlKCgpID0+IHt9KTtcblx0XHRcdH1cblx0XHRcdHRoaXMub3B0aW9ucyA9IGludGVyY2VwdG9yUmVxdWVzdDtcblx0XHR9XG5cblx0XHRvcHRpb25zLmRhdGFUeXBlID0gb3B0aW9ucy5kYXRhVHlwZSB8fCB0aGlzLmNvbmZpZy5kYXRhVHlwZTtcblx0XHRvcHRpb25zLnJlc3BvbnNlVHlwZSA9IG9wdGlvbnMucmVzcG9uc2VUeXBlIHx8IHRoaXMuY29uZmlnLnJlc3BvbnNlVHlwZTtcblx0XHRvcHRpb25zLnVybCA9IG9wdGlvbnMudXJsIHx8ICcnO1xuXHRcdG9wdGlvbnMucGFyYW1zID0gb3B0aW9ucy5wYXJhbXMgfHwge307XG5cdFx0b3B0aW9ucy5oZWFkZXIgPSBPYmplY3QuYXNzaWduKHt9LCB0aGlzLmNvbmZpZy5oZWFkZXIsIG9wdGlvbnMuaGVhZGVyKTtcblx0XHRvcHRpb25zLm1ldGhvZCA9IG9wdGlvbnMubWV0aG9kIHx8IHRoaXMuY29uZmlnLm1ldGhvZDtcblx0XHRvcHRpb25zLnNzbFZlcmlmeSA9IGZhbHNlXG5cblx0XHQvLyBjb25zb2xlLmxvZygnYXBpLmhlbHBlci0tLS0tcmVxdWVzdCcsIG9wdGlvbnMsIHRoaXMub3B0aW9ucylcblxuXHRcdHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XG5cdFx0XHRvcHRpb25zLmNvbXBsZXRlID0gKHJlc3BvbnNlKSA9PiB7XG5cdFx0XHRcdGNvbnNvbGUubG9nKCdhcGkuaGVscGVyLS0tb3B0aW9ucy5jb21wbGV0ZScsIHJlc3BvbnNlKVxuXHRcdFx0XHQvLyDor7fmsYLov5Tlm57lkI7vvIzpmpDol49sb2FkaW5nKOWmguaenOivt+axgui/lOWbnuW/q+eahOivne+8jOWPr+iDveS8muayoeaciWxvYWRpbmcpXG5cdFx0XHRcdHVuaS5oaWRlTG9hZGluZygpO1xuXHRcdFx0XHQvLyDmuIXpmaTlrprml7blmajvvIzlpoLmnpzor7fmsYLlm57mnaXkuobvvIzlsLHml6DpnIBsb2FkaW5nXG5cdFx0XHRcdGNsZWFyVGltZW91dCh0aGlzLmNvbmZpZy50aW1lcik7XG5cdFx0XHRcdHRoaXMuY29uZmlnLnRpbWVyID0gbnVsbDtcblx0XHRcdFx0Ly8g5Yik5pat55So5oi35a+55oum5oiq6L+U5Zue5pWw5o2u55qE6KaB5rGC77yM5aaC5p6cb3JpZ2luYWxEYXRh5Li6dHJ1Ze+8jOi/lOWbnuaJgOacieeahOaVsOaNrihyZXNwb25zZSnliLDmi6bmiKrlmajvvIzlkKbliJnlj6rov5Tlm55yZXNwb25zZS5kYXRhXG5cdFx0XHRcdGlmICh0aGlzLmNvbmZpZy5vcmlnaW5hbERhdGEpIHtcblx0XHRcdFx0XHQvLyDliKTmlq3mmK/lkKblrZjlnKjmi6bmiKrlmahcblx0XHRcdFx0XHRpZiAodGhpcy5pbnRlcmNlcHRvci5yZXNwb25zZSAmJiB0eXBlb2YgdGhpcy5pbnRlcmNlcHRvci5yZXNwb25zZSA9PT0gJ2Z1bmN0aW9uJykge1xuXHRcdFx0XHRcdFx0bGV0IHJlc0ludGVyY2VwdG9ycyA9IHRoaXMuaW50ZXJjZXB0b3IucmVzcG9uc2UocmVzcG9uc2UpO1xuXHRcdFx0XHRcdFx0Ly8g5aaC5p6c5oum5oiq5Zmo5LiN6L+U5ZueZmFsc2XvvIzlsLHlsIbmi6bmiKrlmajov5Tlm57nmoTlhoXlrrnnu5l0aGlzLiR1LnBvc3TnmoR0aGVu5Zue6LCDXG5cdFx0XHRcdFx0XHRpZiAocmVzSW50ZXJjZXB0b3JzICE9PSBmYWxzZSkge1xuXHRcdFx0XHRcdFx0XHRyZXNvbHZlKHJlc0ludGVyY2VwdG9ycyk7XG5cdFx0XHRcdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHRcdFx0XHQvLyDlpoLmnpzmi6bmiKrlmajov5Tlm55mYWxzZe+8jOaEj+WRs+edgOaLpuaIquWZqOWumuS5ieiAheiupOS4uui/lOWbnuaciemXrumimO+8jOebtOaOpeaOpeWFpWNhdGNo5Zue6LCDXG5cdFx0XHRcdFx0XHRcdHJlamVjdChyZXNwb25zZSk7XG5cdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0XHRcdC8vIOWmguaenOimgeaxgui/lOWbnuWOn+Wni+aVsOaNru+8jOWwseeul+ayoeacieaLpuaIquWZqO+8jOS5n+i/lOWbnuacgOWOn+Wni+eahOaVsOaNrlxuXHRcdFx0XHRcdFx0cmVzb2x2ZShyZXNwb25zZSk7XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHRcdGlmIChyZXNwb25zZS5zdGF0dXNDb2RlID09IDIwMCkge1xuXHRcdFx0XHRcdFx0aWYgKHRoaXMuaW50ZXJjZXB0b3IucmVzcG9uc2UgJiYgdHlwZW9mIHRoaXMuaW50ZXJjZXB0b3IucmVzcG9uc2UgPT09XG5cdFx0XHRcdFx0XHRcdCdmdW5jdGlvbicpIHtcblx0XHRcdFx0XHRcdFx0bGV0IHJlc0ludGVyY2VwdG9ycyA9IHRoaXMuaW50ZXJjZXB0b3IucmVzcG9uc2UocmVzcG9uc2UuZGF0YSk7XG5cdFx0XHRcdFx0XHRcdGlmIChyZXNJbnRlcmNlcHRvcnMgIT09IGZhbHNlKSB7XG5cdFx0XHRcdFx0XHRcdFx0cmVzb2x2ZShyZXNJbnRlcmNlcHRvcnMpO1xuXHRcdFx0XHRcdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHRcdFx0XHRcdHJlamVjdChyZXNwb25zZS5kYXRhKTtcblx0XHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0XHRcdFx0Ly8g5aaC5p6c5LiN5piv6L+U5Zue5Y6f5aeL5pWw5o2uKG9yaWdpbmFsRGF0YT1mYWxzZSnvvIzkuJTmsqHmnInmi6bmiKrlmajnmoTmg4XlhrXkuIvvvIzov5Tlm57nuq/mlbDmja7nu5l0aGVu5Zue6LCDXG5cdFx0XHRcdFx0XHRcdHJlc29sdmUocmVzcG9uc2UuZGF0YSk7XG5cdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0XHRcdC8vIOS4jei/lOWbnuWOn+Wni+aVsOaNrueahOaDheWGteS4i++8jOacjeWKoeWZqOeKtuaAgeeggeS4jeS4ujIwMO+8jG1vZGFs5by55qGG5o+Q56S6XG5cdFx0XHRcdFx0XHQvLyBpZihyZXNwb25zZS5lcnJNc2cpIHtcblx0XHRcdFx0XHRcdC8vIFx0dW5pLnNob3dNb2RhbCh7XG5cdFx0XHRcdFx0XHQvLyBcdFx0dGl0bGU6IHJlc3BvbnNlLmVyck1zZ1xuXHRcdFx0XHRcdFx0Ly8gXHR9KTtcblx0XHRcdFx0XHRcdC8vIH1cblx0XHRcdFx0XHRcdGlmIChyZXNwb25zZS5zdGF0dXNDb2RlID09IDUwMCkge1xuXHRcdFx0XHRcdFx0XHR1bmkuc2hvd1RvYXN0KHtcblx0XHRcdFx0XHRcdFx0XHR0aXRsZTogJ+acjeWKoeWZqOW8guW4uCcsXG5cdFx0XHRcdFx0XHRcdFx0ZHVyYXRpb246IDIwMDAsXG5cdFx0XHRcdFx0XHRcdFx0aWNvbjogJ25vbmUnXG5cdFx0XHRcdFx0XHRcdH0pXG5cdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHRpZiAocmVzcG9uc2Uuc3RhdHVzQ29kZSA9PSA0MDEpIHtcblx0XHRcdFx0XHRcdFx0dW5pLnNob3dUb2FzdCh7XG5cdFx0XHRcdFx0XHRcdFx0dGl0bGU6ICfnmbvlvZXlt7LlpLHmlYgnLFxuXHRcdFx0XHRcdFx0XHRcdGR1cmF0aW9uOiAyMDAwLFxuXHRcdFx0XHRcdFx0XHRcdGljb246ICdub25lJ1xuXHRcdFx0XHRcdFx0XHR9KVxuXHRcdFx0XHRcdFx0XHR1bmkubmF2aWdhdGVUbyh7XG5cdFx0XHRcdFx0XHRcdFx0dXJsOiBcIi9wYWdlcy9sb2dpbi9sb2dpblwiXG5cdFx0XHRcdFx0XHRcdH0pXG5cdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHRyZWplY3QocmVzcG9uc2UpXG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9XG5cdFx0XHR9XG5cblx0XHRcdC8vIOWIpOaWreeUqOaIt+S8oOmAkueahFVSTOaYr+WQpi/lvIDlpLQs5aaC5p6c5LiN5pivLOWKoOS4ii/vvIzov5nph4zkvb/nlKjkuoZ1Vmlld+eahHRlc3QuanPpqozor4HlupPnmoR1cmwoKeaWueazlVxuXHRcdFx0b3B0aW9ucy51cmwgPSB2YWxpZGF0ZS51cmwob3B0aW9ucy51cmwpID8gb3B0aW9ucy51cmwgOiAoKG9wdGlvbnMuYmFzZVVybCA/IG9wdGlvbnMuYmFzZVVybCA6XG5cdFx0XHRcdHRoaXNcblx0XHRcdFx0LmNvbmZpZy5iYXNlVXJsKSArIChvcHRpb25zLnVybFxuXHRcdFx0XHQuaW5kZXhPZignLycpID09IDAgP1xuXHRcdFx0XHRvcHRpb25zLnVybCA6ICcvJyArIG9wdGlvbnMudXJsKSk7XG5cblx0XHRcdC8vIOaYr+WQpuaYvuekumxvYWRpbmdcblx0XHRcdC8vIOWKoOS4gOS4quaYr+WQpuW3suaciXRpbWVy5a6a5pe25Zmo55qE5Yik5pat77yM5ZCm5YiZ5pyJ5Lik5Liq5ZCM5pe26K+35rGC55qE5pe25YCZ77yM5ZCO6ICF5Lya5riF6Zmk5YmN6ICF55qE5a6a5pe25ZmoaWRcblx0XHRcdC8vIOiAjOayoeaciea4hemZpOWJjeiAheeahOWumuaXtuWZqO+8jOWvvOiHtOWJjeiAhei2heaXtu+8jOS4gOebtOaYvuekumxvYWRpbmdcblx0XHRcdGlmICh0aGlzLmNvbmZpZy5zaG93TG9hZGluZyAmJiAhdGhpcy5jb25maWcudGltZXIpIHtcblx0XHRcdFx0dGhpcy5jb25maWcudGltZXIgPSBzZXRUaW1lb3V0KCgpID0+IHtcblx0XHRcdFx0XHR1bmkuc2hvd0xvYWRpbmcoe1xuXHRcdFx0XHRcdFx0dGl0bGU6IHRoaXMuY29uZmlnLmxvYWRpbmdUZXh0LFxuXHRcdFx0XHRcdFx0bWFzazogdGhpcy5jb25maWcubG9hZGluZ01hc2tcblx0XHRcdFx0XHR9KVxuXHRcdFx0XHRcdHRoaXMuY29uZmlnLnRpbWVyID0gbnVsbDtcblx0XHRcdFx0fSwgdGhpcy5jb25maWcubG9hZGluZ1RpbWUpO1xuXHRcdFx0fVxuXHRcdFx0Ly8gY29uc29sZS5sb2coJ2FwaS5oZWxwZXItLS0tLWZpbmFsbHkqKipyZXF1ZXN0Jywgb3B0aW9ucylcblx0XHRcdHVuaS5yZXF1ZXN0KG9wdGlvbnMpO1xuXHRcdH0pXG5cdFx0Ly8gLmNhdGNoKHJlcyA9PiB7XG5cdFx0Ly8gXHQvLyDlpoLmnpzov5Tlm55yZWplY3QoKe+8jOS4jeiuqeWFtui/m+WFpXRoaXMuJHUucG9zdCgpLnRoZW4oKS5jYXRjaCgp5ZCO6Z2i55qEY2F0Y3QoKVxuXHRcdC8vIFx0Ly8g5Zug5Li65b6I5aSa5Lq66YO95Lya5b+Y5LqG5YaZ5ZCO6Z2i55qEY2F0Y2goKe+8jOWvvOiHtOaKpemUmeaNleiOt+S4jeWIsGNhdGNoXG5cdFx0Ly8gXHRyZXR1cm4gbmV3IFByb21pc2UoKCk9Pnt9KTtcblx0XHQvLyB9KVxuXHR9XG5cblx0Y29uc3RydWN0b3IoKSB7XG5cdFx0dGhpcy5jb25maWcgPSB7XG5cdFx0XHRiYXNlVXJsOiAnaHR0cDovLzIyMS4xMC4xMjcuNjA6NTAwMCcsIC8vIOivt+axgueahOagueWfn+WQjVxuXHRcdFx0Ly8g6buY6K6k55qE6K+35rGC5aS0XG5cdFx0XHRoZWFkZXI6IHt9LFxuXHRcdFx0bWV0aG9kOiAnUE9TVCcsXG5cdFx0XHQvLyDorr7nva7kuLpqc29u77yM6L+U5Zue5ZCOdW5pLnJlcXVlc3TkvJrlr7nmlbDmja7ov5vooYzkuIDmrKFKU09OLnBhcnNlXG5cdFx0XHRkYXRhVHlwZTogJ2pzb24nLFxuXHRcdFx0Ly8g5q2k5Y+C5pWw5peg6ZyA5aSE55CG77yM5Zug5Li6NSvlkozmlK/ku5jlrp3lsI/nqIvluo/kuI3mlK/mjIHvvIzpu5jorqTkuLp0ZXh05Y2z5Y+vXG5cdFx0XHRyZXNwb25zZVR5cGU6ICd0ZXh0Jyxcblx0XHRcdHNob3dMb2FkaW5nOiB0cnVlLCAvLyDmmK/lkKbmmL7npLror7fmsYLkuK3nmoRsb2FkaW5nXG5cdFx0XHRsb2FkaW5nVGV4dDogJ+ivt+axguS4rS4uLicsXG5cdFx0XHRsb2FkaW5nVGltZTogODAwLCAvLyDlnKjmraTml7bpl7TlhoXvvIzor7fmsYLov5jmsqHlm57mnaXnmoTor53vvIzlsLHmmL7npLrliqDovb3kuK3liqjnlLvvvIzljZXkvY1tc1xuXHRcdFx0dGltZXI6IG51bGwsIC8vIOWumuaXtuWZqFxuXHRcdFx0c3NsVmVyaWZ5OiBmYWxzZSwgLy8g5a6a5pe25ZmoXG5cdFx0XHRvcmlnaW5hbERhdGE6IGZhbHNlLCAvLyDmmK/lkKblnKjmi6bmiKrlmajkuK3ov5Tlm57mnI3liqHnq6/nmoTljp/lp4vmlbDmja7vvIzop4HmlofmoaPor7TmmI5cblx0XHRcdGxvYWRpbmdNYXNrOiB0cnVlLCAvLyDlsZXnpLpsb2FkaW5n55qE5pe25YCZ77yM5piv5ZCm57uZ5LiA5Liq6YCP5piO55qE6JKZ5bGC77yM6Ziy5q2i6Kem5pG456m/6YCPXG5cdFx0fVxuXG5cdFx0Ly8g5oum5oiq5ZmoXG5cdFx0dGhpcy5pbnRlcmNlcHRvciA9IHtcblx0XHRcdC8vIOivt+axguWJjeeahOaLpuaIqlxuXHRcdFx0cmVxdWVzdDogKGNvbmZpZykgPT4ge1xuXHRcdFx0XHRjb25maWcuaGVhZGVyWydBdXRob3JpemF0aW9uJ10gPSBgQmFzaWMgJHtCYXNlNjQuZW5jb2RlKCd3YW5ncGM6TFpZODg4QEAnKX1gO1xuXHRcdFx0XHR0cnkge1xuXHRcdFx0XHRcdGlmIChjb25maWcudXJsLmluZGV4T2YoJ2NybS1hcHAvbG9naW4nKSA9PT0gLVxuXHRcdFx0XHRcdFx0MSAmJlxuXHRcdFx0XHRcdFx0c3RvcmUuc3RhdGUudnVleF90b2tlbikge1xuXHRcdFx0XHRcdFx0Y29uZmlnLmhlYWRlclsnWC1BdXRoLVRva2VuJ10gPSBzdG9yZVxuXHRcdFx0XHRcdFx0XHQuc3RhdGUudnVleF90b2tlblxuXHRcdFx0XHRcdH1cblxuXHRcdFx0XHRcdGlmIChjb25maWcuaGVhZGVyWydDb250ZW50LVR5cGUnXSAmJiBjb25maWcuaGVhZGVyWydDb250ZW50LVR5cGUnXS5pbmRleE9mKFxuXHRcdFx0XHRcdFx0XHQneC13d3ctZm9ybS11cmxlbmNvZGVkJykgPT09IC0xKSB7XG5cdFx0XHRcdFx0XHRjb25maWcuaGVhZGVyWydDb250ZW50LVR5cGUnXSA9IFwiYXBwbGljYXRpb24vanNvbjsgY2hhcnNldD11dGYtOFwiXG5cdFx0XHRcdFx0fVxuXG5cblx0XHRcdFx0XHRpZiAoY29uZmlnLnVybC5pbmRleE9mKCdjcm0tYXBwJykgIT09IC0xKSB7XG5cdFx0XHRcdFx0XHQvLyBjb25maWcuYmFzZVVybCA9ICdodHRwOi8vMTAuMC4xMzUuNjEnXG5cdFx0XHRcdFx0XHRjb25maWcuYmFzZVVybCA9ICdodHRwOi8vMjIxLjEwLjEyNy42MDo1MDAwJ1xuXHRcdFx0XHRcdH0gZWxzZSBpZiAoY29uZmlnLnVybC5pbmRleE9mKCdhZGFwdGVyJykgIT09IC0xKSB7XG5cdFx0XHRcdFx0XHQvLyBjb25maWcuYmFzZVVybCA9ICdodHRwOi8vYXBpLmMwMzMxLmRldi5ndWFueWluZ3l1bi5jb20nXG5cdFx0XHRcdFx0XHR
jb25maWcuYmFzZVVybCA9ICdodHRwOi8vMjIxLjEwLjEyNy42MDo1MDAwL2N5aidcblx0XHRcdFx0XHR9IGVsc2UgaWYgKGNvbmZpZy51cmwuaW5kZXhPZignd21kcHdlYnNlcnZpY2VzJykgIT09IC0xKSB7XG5cdFx0XHRcdFx0XHQvLyBjb25maWcuYmFzZVVybCA9ICdodHRwczovLzEwLjAuMTM0LjE4Mjo5MDAyJ1xuXHRcdFx0XHRcdFx0Y29uZmlnLmJhc2VVcmwgPSAnaHR0cDovLzIyMS4xMC4xMjcuNjA6NTAwMC9zY3p4J1xuXHRcdFx0XHRcdFx0Ly8gY29uZmlnLmJhc2VVcmwgPSAnJ1xuXHRcdFx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdFx0XHRjb25maWcuYmFzZVVybCA9ICdodHRwOi8vMjIxLjEwLjEyNy42MDo1MDAwL3dseVNhcCdcblx0XHRcdFx0XHR9XG5cdFx0XHRcdH0gY2F0Y2ggKGUpIHtcblx0XHRcdFx0XHRjb25zb2xlLmxvZygnZXJyb3InLCBlKVxuXHRcdFx0XHR9XG5cdFx0XHRcdC8vIGlmIChjb25maWcudXJsLmluZGV4T2YoJ2NybS1hcHAvbG9naW4nKSAhPT0gLTEgJiYgIXN0b3JlLnN0YXRlLnZ1ZXhfdG9rZW4pIHtcblx0XHRcdFx0Ly8gXHR1bmkuc2hvd1RvYXN0KHtcblx0XHRcdFx0Ly8gXHRcdHRpdGxlOiAn55m75b2V5bey5aSx5pWIJyxcblx0XHRcdFx0Ly8gXHRcdGR1cmF0aW9uOiAyMDAwLFxuXHRcdFx0XHQvLyBcdFx0aWNvbjogJ25vbmUnXG5cdFx0XHRcdC8vIFx0fSk7XG5cdFx0XHRcdC8vIFx0dW5pLm5hdmlnYXRlVG8oe1xuXHRcdFx0XHQvLyBcdFx0dXJsOiBcIi9wYWdlcy9sb2dpbi9sb2dpblwiXG5cdFx0XHRcdC8vIFx0fSlcblx0XHRcdFx0Ly8gfVxuXHRcdFx0XHRjb25zb2xlLmxvZygnaGVscGVyLS1pbnRlcmNlcHRvci0tLXJlcXVlc3QtLS0tLScsIGNvbmZpZylcblx0XHRcdFx0cmV0dXJuIGNvbmZpZztcblx0XHRcdH0sXG5cdFx0XHQvLyDor7fmsYLlkI7nmoTmi6bmiKpcblx0XHRcdHJlc3BvbnNlOiAocmVzKSA9PiB7XG5cdFx0XHRcdGNvbnNvbGUubG9nKCdoZWxwZXItLWlpbnRlcmNlcHRvci0tLXJlc3BvbnNlLS0tLS0nLCByZXMpXG5cdFx0XHRcdGlmIChyZXMuTVNHVFlQRSA9PT0gJ1MnIHx8IHJlcy5tc2d0eXBlID09PSAnUycgfHwgcmVzLnN0YXR1cyA9PT0gMSB8fCByZXMucmVzdWx0ID09PSBcIlNcIiB8fFxuXHRcdFx0XHRcdHJlcy5TdGF0dXMgPT09XG5cdFx0XHRcdFx0J1N1Y2Nlc3MnKSB7XG5cdFx0XHRcdFx0Ly8g5aaC5p6c5oqKb3JpZ2luYWxEYXRh6K6+572u5Li65LqGdHJ1Ze+8jOi/memHjHJldHVybuWbnuS7gOS5iO+8jHRoaXMuJHUucG9zdOeahHRoZW7lm57osIPkuK3lsLHkvJrlvpfliLDku4DkuYhcblx0XHRcdFx0XHRyZXR1cm4gcmVzO1xuXHRcdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHRcdHVuaS5zaG93VG9hc3Qoe1xuXHRcdFx0XHRcdFx0dGl0bGU6IHJlcy5NRVNTQUdFIHx8IHJlcy5tc2cgfHwgcmVzLm1lc3NhZ2UgfHwgcmVzLkVyck1zZyxcblx0XHRcdFx0XHRcdGR1cmF0aW9uOiAyMDAwLFxuXHRcdFx0XHRcdFx0aWNvbjogJ25vbmUnXG5cdFx0XHRcdFx0fSk7XG5cdFx0XHRcdFx0cmV0dXJuIGZhbHNlXG5cdFx0XHRcdH07XG5cdFx0XHR9XG5cdFx0fVxuXG5cdFx0Ly8gZ2V06K+35rGCXG5cdFx0dGhpcy5nZXQgPSAodXJsLCBkYXRhID0ge30sIGhlYWRlciA9IHt9KSA9PiB7XG5cdFx0XHRyZXR1cm4gdGhpcy5yZXF1ZXN0KHtcblx0XHRcdFx0bWV0aG9kOiAnR0VUJyxcblx0XHRcdFx0dXJsLFxuXHRcdFx0XHRoZWFkZXIsXG5cdFx0XHRcdGRhdGFcblx0XHRcdH0pXG5cdFx0fVxuXG5cdFx0Ly8gcG9zdOivt+axglxuXHRcdHRoaXMucG9zdCA9ICh1cmwsIGRhdGEgPSB7fSwgaGVhZGVyID0ge30pID0+IHtcblx0XHRcdHJldHVybiB0aGlzLnJlcXVlc3Qoe1xuXHRcdFx0XHR1cmwsXG5cdFx0XHRcdG1ldGhvZDogJ1BPU1QnLFxuXHRcdFx0XHRoZWFkZXIsXG5cdFx0XHRcdGRhdGFcblx0XHRcdH0pXG5cdFx0fVxuXG5cdFx0Ly8gcHV06K+35rGC77yM5LiN5pSv5oyB5pSv5LuY5a6d5bCP56iL5bqPKEhYMi42LjE1KVxuXHRcdHRoaXMucHV0ID0gKHVybCwgZGF0YSA9IHt9LCBoZWFkZXIgPSB7fSkgPT4ge1xuXHRcdFx0cmV0dXJuIHRoaXMucmVxdWVzdCh7XG5cdFx0XHRcdHVybCxcblx0XHRcdFx0bWV0aG9kOiAnUFVUJyxcblx0XHRcdFx0aGVhZGVyLFxuXHRcdFx0XHRkYXRhXG5cdFx0XHR9KVxuXHRcdH1cblxuXHRcdC8vIGRlbGV0Zeivt+axgu+8jOS4jeaUr+aMgeaUr+S7mOWuneWSjOWktOadoeWwj+eoi+W6jyhIWDIuNi4xNSlcblx0XHR0aGlzLmRlbGV0ZSA9ICh1cmwsIGRhdGEgPSB7fSwgaGVhZGVyID0ge30pID0+IHtcblx0XHRcdHJldHVybiB0aGlzLnJlcXVlc3Qoe1xuXHRcdFx0XHR1cmwsXG5cdFx0XHRcdG1ldGhvZDogJ0RFTEVURScsXG5cdFx0XHRcdGhlYWRlcixcblx0XHRcdFx0ZGF0YVxuXHRcdFx0fSlcblx0XHR9XG5cdH1cbn1cbmV4cG9ydCBkZWZhdWx0IG5ldyBSZXF1ZXN0XG4iXSwic291cmNlUm9vdCI6IiJ9
\n
//# sourceURL=webpack-internal:///15
\n
"
);
eval
(
"/* WEBPACK VAR INJECTION */(function(__f__) {Object.defineProperty(exports,
\"
__esModule
\"
, { value: true });exports.default = void 0;var _index = __webpack_require__(/*! @/utils/index.js */ 16);
\n\n\n
var _validate = _interopRequireDefault(__webpack_require__(/*! @/utils/validate.js */ 17));
\n
var _jsBase = __webpack_require__(/*! js-base64 */ 18);
\n\n\n
var _index2 = _interopRequireDefault(__webpack_require__(/*! @/store/index.js */ 19));function _interopRequireDefault(obj) {return obj && obj.__esModule ? obj : { default: obj };}function _classCallCheck(instance, Constructor) {if (!(instance instanceof Constructor)) {throw new TypeError(
\"
Cannot call a class as a function
\"
);}}function _defineProperties(target, props) {for (var i = 0; i < props.length; i++) {var descriptor = props[i];descriptor.enumerable = descriptor.enumerable || false;descriptor.configurable = true;if (
\"
value
\"
in descriptor) descriptor.writable = true;Object.defineProperty(target, descriptor.key, descriptor);}}function _createClass(Constructor, protoProps, staticProps) {if (protoProps) _defineProperties(Constructor.prototype, protoProps);if (staticProps) _defineProperties(Constructor, staticProps);return Constructor;}var
\n\n
Request = /*#__PURE__*/function () {_createClass(Request, [{ key:
\"
setConfig
\"
,
\n
// 设置全局默认配置
\n
value: function setConfig(customConfig) {
\n
// 深度合并对象,否则会造成对象深层属性丢失
\n
this.config = (0, _index.deepMerge)(this.config, customConfig);
\n
}
\n\n
// 主要请求部分
\n
}, { key:
\"
request
\"
, value: function request() {var _this = this;var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
\n\n
// 检查请求拦截
\n
if (this.interceptor.request && typeof this.interceptor.request === 'function') {
\n
var tmpConfig = {};
\n
var interceptorRequest = this.interceptor.request(options);
\n
if (interceptorRequest === false) {
\n
// 返回一个处于pending状态中的Promise,来取消原promise,避免进入then()回调
\n
return new Promise(function () {});
\n
}
\n
this.options = interceptorRequest;
\n
}
\n\n
options.dataType = options.dataType || this.config.dataType;
\n
options.responseType = options.responseType || this.config.responseType;
\n
options.url = options.url || '';
\n
options.params = options.params || {};
\n
options.header = Object.assign({}, this.config.header, options.header);
\n
options.method = options.method || this.config.method;
\n
options.sslVerify = false;
\n\n
// console.log('api.helper-----request', options, this.options)
\n\n
return new Promise(function (resolve, reject) {
\n
options.complete = function (response) {
\n
__f__(
\"
log
\"
, 'api.helper---options.complete', response,
\"
at servers/api.helper.js:43
\"
);
\n
// 请求返回后,隐藏loading(如果请求返回快的话,可能会没有loading)
\n
uni.hideLoading();
\n
// 清除定时器,如果请求回来了,就无需loading
\n
clearTimeout(_this.config.timer);
\n
_this.config.timer = null;
\n
// 判断用户对拦截返回数据的要求,如果originalData为true,返回所有的数据(response)到拦截器,否则只返回response.data
\n
if (_this.config.originalData) {
\n
// 判断是否存在拦截器
\n
if (_this.interceptor.response && typeof _this.interceptor.response === 'function') {
\n
var resInterceptors = _this.interceptor.response(response);
\n
// 如果拦截器不返回false,就将拦截器返回的内容给this.$u.post的then回调
\n
if (resInterceptors !== false) {
\n
resolve(resInterceptors);
\n
} else {
\n
// 如果拦截器返回false,意味着拦截器定义者认为返回有问题,直接接入catch回调
\n
reject(response);
\n
}
\n
} else {
\n
// 如果要求返回原始数据,就算没有拦截器,也返回最原始的数据
\n
resolve(response);
\n
}
\n
} else {
\n
if (response.statusCode == 200) {
\n
if (_this.interceptor.response && typeof _this.interceptor.response ===
\n
'function') {
\n
var _resInterceptors = _this.interceptor.response(response.data);
\n
if (_resInterceptors !== false) {
\n
resolve(_resInterceptors);
\n
} else {
\n
reject(response.data);
\n
}
\n
} else {
\n
// 如果不是返回原始数据(originalData=false),且没有拦截器的情况下,返回纯数据给then回调
\n
resolve(response.data);
\n
}
\n
} else {
\n
// 不返回原始数据的情况下,服务器状态码不为200,modal弹框提示
\n
// if(response.errMsg) {
\n
//
\
tuni.showModal({
\n
//
\
t
\
ttitle: response.errMsg
\n
//
\
t});
\n
// }
\n
if (response.statusCode == 500) {
\n
uni.showToast({
\n
title: '服务器异常',
\n
duration: 2000,
\n
icon: 'none' });
\n\n
}
\n
if (response.statusCode == 401) {
\n
uni.showToast({
\n
title: '登录已失效',
\n
duration: 2000,
\n
icon: 'none' });
\n\n
uni.navigateTo({
\n
url:
\"
/pages/login/login
\"
});
\n\n
}
\n
reject(response);
\n
}
\n
}
\n
};
\n\n
// 判断用户传递的URL是否/开头,如果不是,加上/,这里使用了uView的test.js验证库的url()方法
\n
options.url = _validate.default.url(options.url) ? options.url : (options.baseUrl ? options.baseUrl :
\n
_this.
\n
config.baseUrl) + (options.url.
\n
indexOf('/') == 0 ?
\n
options.url : '/' + options.url);
\n\n
// 是否显示loading
\n
// 加一个是否已有timer定时器的判断,否则有两个同时请求的时候,后者会清除前者的定时器id
\n
// 而没有清除前者的定时器,导致前者超时,一直显示loading
\n
if (_this.config.showLoading && !_this.config.timer) {
\n
_this.config.timer = setTimeout(function () {
\n
uni.showLoading({
\n
title: _this.config.loadingText,
\n
mask: _this.config.loadingMask });
\n\n
_this.config.timer = null;
\n
}, _this.config.loadingTime);
\n
}
\n
// console.log('api.helper-----finally***request', options)
\n
uni.request(options);
\n
});
\n
// .catch(res => {
\n
//
\
t// 如果返回reject(),不让其进入this.$u.post().then().catch()后面的catct()
\n
//
\
t// 因为很多人都会忘了写后面的catch(),导致报错捕获不到catch
\n
//
\
treturn new Promise(()=>{});
\n
// })
\n
} }]);
\n\n
function Request() {var _this2 = this;_classCallCheck(this, Request);
\n
this.config = {
\n
baseUrl: 'http://221.10.127.60:5000', // 请求的根域名
\n
// 默认的请求头
\n
header: {},
\n
method: 'POST',
\n
// 设置为json,返回后uni.request会对数据进行一次JSON.parse
\n
dataType: 'json',
\n
// 此参数无需处理,因为5+和支付宝小程序不支持,默认为text即可
\n
responseType: 'text',
\n
showLoading: true, // 是否显示请求中的loading
\n
loadingText: '请求中...',
\n
loadingTime: 800, // 在此时间内,请求还没回来的话,就显示加载中动画,单位ms
\n
timer: null, // 定时器
\n
sslVerify: false, // 定时器
\n
originalData: false, // 是否在拦截器中返回服务端的原始数据,见文档说明
\n
loadingMask: true // 展示loading的时候,是否给一个透明的蒙层,防止触摸穿透
\n
};
\n\n
// 拦截器
\n
this.interceptor = {
\n
// 请求前的拦截
\n
request: function request(config) {
\n
config.header['Authorization'] =
\"
Basic
\"
.concat(_jsBase.Base64.encode('wangpc:LZY888@@'));
\n
try {
\n
if (config.url.indexOf('crm-app/login') === -
\n
1 &&
\n
_index2.default.state.vuex_token) {
\n
config.header['X-Auth-Token'] = _index2.default.
\n
state.vuex_token;
\n
}
\n\n
if (config.header['Content-Type'] && config.header['Content-Type'].indexOf(
\n
'x-www-form-urlencoded') === -1) {
\n
config.header['Content-Type'] =
\"
application/json; charset=utf-8
\"
;
\n
}
\n\n\n
if (config.url.indexOf('crm-app') !== -1) {
\n
// config.baseUrl = 'http://10.0.135.61'
\n
config.baseUrl = 'http://221.10.127.60:5000';
\n
} else if (config.url.indexOf('adapter') !== -1) {
\n
config.baseUrl = 'http://api.c0331.dev.guanyingyun.com';
\n
// config.baseUrl = 'http://221.10.127.60:5000/cyj'
\n
} else if (config.url.indexOf('wmdpwebservices') !== -1) {
\n
// config.baseUrl = 'https://10.0.134.182:9002'
\n
config.baseUrl = 'http://221.10.127.60:5000/sczx';
\n
// config.baseUrl = ''
\n
} else {
\n
config.baseUrl = 'http://221.10.127.60:5000/wlySap';
\n
}
\n
} catch (e) {
\n
__f__(
\"
log
\"
, 'error', e,
\"
at servers/api.helper.js:189
\"
);
\n
}
\n
// if (config.url.indexOf('crm-app/login') !== -1 && !store.state.vuex_token) {
\n
//
\
tuni.showToast({
\n
//
\
t
\
ttitle: '登录已失效',
\n
//
\
t
\
tduration: 2000,
\n
//
\
t
\
ticon: 'none'
\n
//
\
t});
\n
//
\
tuni.navigateTo({
\n
//
\
t
\
turl:
\"
/pages/login/login
\"\n
//
\
t})
\n
// }
\n
__f__(
\"
log
\"
, 'helper--interceptor---request-----', config,
\"
at servers/api.helper.js:201
\"
);
\n
return config;
\n
},
\n
// 请求后的拦截
\n
response: function response(res) {
\n
__f__(
\"
log
\"
, 'helper--iinterceptor---response-----', res,
\"
at servers/api.helper.js:206
\"
);
\n
if (res.MSGTYPE === 'S' || res.msgtype === 'S' || res.status === 1 || res.result ===
\"
S
\"
||
\n
res.Status ===
\n
'Success') {
\n
// 如果把originalData设置为了true,这里return回什么,this.$u.post的then回调中就会得到什么
\n
return res;
\n
} else {
\n
uni.showToast({
\n
title: res.MESSAGE || res.msg || res.message || res.ErrMsg,
\n
duration: 2000,
\n
icon: 'none' });
\n\n
return false;
\n
};
\n
} };
\n\n\n
// get请求
\n
this.get = function (url) {var data = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};var header = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
\n
return _this2.request({
\n
method: 'GET',
\n
url: url,
\n
header: header,
\n
data: data });
\n\n
};
\n\n
// post请求
\n
this.post = function (url) {var data = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};var header = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
\n
return _this2.request({
\n
url: url,
\n
method: 'POST',
\n
header: header,
\n
data: data });
\n\n
};
\n\n
// put请求,不支持支付宝小程序(HX2.6.15)
\n
this.put = function (url) {var data = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};var header = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
\n
return _this2.request({
\n
url: url,
\n
method: 'PUT',
\n
header: header,
\n
data: data });
\n\n
};
\n\n
// delete请求,不支持支付宝和头条小程序(HX2.6.15)
\n
this.delete = function (url) {var data = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};var header = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
\n
return _this2.request({
\n
url: url,
\n
method: 'DELETE',
\n
header: header,
\n
data: data });
\n\n
};
\n
}return Request;}();var _default =
\n\n
new Request();exports.default = _default;
\n
/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./node_modules/@dcloudio/vue-cli-plugin-uni/lib/format-log.js */ 10)[
\"
default
\"
]))//# sourceURL=[module]
\n
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInVuaS1hcHA6Ly8vc2VydmVycy9hcGkuaGVscGVyLmpzIl0sIm5hbWVzIjpbIlJlcXVlc3QiLCJjdXN0b21Db25maWciLCJjb25maWciLCJvcHRpb25zIiwiaW50ZXJjZXB0b3IiLCJyZXF1ZXN0IiwidG1wQ29uZmlnIiwiaW50ZXJjZXB0b3JSZXF1ZXN0IiwiUHJvbWlzZSIsImRhdGFUeXBlIiwicmVzcG9uc2VUeXBlIiwidXJsIiwicGFyYW1zIiwiaGVhZGVyIiwiT2JqZWN0IiwiYXNzaWduIiwibWV0aG9kIiwic3NsVmVyaWZ5IiwicmVzb2x2ZSIsInJlamVjdCIsImNvbXBsZXRlIiwicmVzcG9uc2UiLCJ1bmkiLCJoaWRlTG9hZGluZyIsImNsZWFyVGltZW91dCIsInRpbWVyIiwib3JpZ2luYWxEYXRhIiwicmVzSW50ZXJjZXB0b3JzIiwic3RhdHVzQ29kZSIsImRhdGEiLCJzaG93VG9hc3QiLCJ0aXRsZSIsImR1cmF0aW9uIiwiaWNvbiIsIm5hdmlnYXRlVG8iLCJ2YWxpZGF0ZSIsImJhc2VVcmwiLCJpbmRleE9mIiwic2hvd0xvYWRpbmciLCJzZXRUaW1lb3V0IiwibG9hZGluZ1RleHQiLCJtYXNrIiwibG9hZGluZ01hc2siLCJsb2FkaW5nVGltZSIsIkJhc2U2NCIsImVuY29kZSIsInN0b3JlIiwic3RhdGUiLCJ2dWV4X3Rva2VuIiwiZSIsInJlcyIsIk1TR1RZUEUiLCJtc2d0eXBlIiwic3RhdHVzIiwicmVzdWx0IiwiU3RhdHVzIiwiTUVTU0FHRSIsIm1zZyIsIm1lc3NhZ2UiLCJFcnJNc2ciLCJnZXQiLCJwb3N0IiwicHV0IiwiZGVsZXRlIl0sIm1hcHBpbmdzIjoib0lBQUE7OztBQUdBO0FBQ0E7OztBQUdBLHNGOztBQUVNQSxPO0FBQ0w7OEJBQ1VDLFksRUFBYztBQUN2QjtBQUNBLFdBQUtDLE1BQUwsR0FBYyxzQkFBVSxLQUFLQSxNQUFmLEVBQXVCRCxZQUF2QixDQUFkO0FBQ0E7O0FBRUQ7aURBQ3NCLHNCQUFkRSxPQUFjLHVFQUFKLEVB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QTtBQUNBLFNBQUtnQyxJQUFMLEdBQVksVUFBQ2xELEdBQUQsRUFBaUMsS0FBM0JrQixJQUEyQix1RUFBcEIsRUFBb0IsS0FBaEJoQixNQUFnQix1RUFBUCxFQUFPO0FBQzVDLGFBQU8sTUFBSSxDQUFDUixPQUFMLENBQWE7QUFDbkJNLFdBQUcsRUFBSEEsR0FEbUI7QUFFbkJLLGNBQU0sRUFBRSxNQUZXO0FBR25CSCxjQUFNLEVBQU5BLE1BSG1CO0FBSW5CZ0IsWUFBSSxFQUFKQSxJQUptQixFQUFiLENBQVA7O0FBTUEsS0FQRDs7QUFTQTtBQUNBLFNBQUtpQyxHQUFMLEdBQVcsVUFBQ25ELEdBQUQsRUFBaUMsS0FBM0JrQixJQUEyQix1RUFBcEIsRUFBb0IsS0FBaEJoQixNQUFnQix1RUFBUCxFQUFPO0FBQzNDLGFBQU8sTUFBSSxDQUFDUixPQUFMLENBQWE7QUFDbkJNLFdBQUcsRUFBSEEsR0FEbUI7QUFFbkJLLGNBQU0sRUFBRSxLQUZXO0FBR25CSCxjQUFNLEVBQU5BLE1BSG1CO0FBSW5CZ0IsWUFBSSxFQUFKQSxJQUptQixFQUFiLENBQVA7O0FBTUEsS0FQRDs7QUFTQTtBQUNBLFNBQUtrQyxNQUFMLEdBQWMsVUFBQ3BELEdBQUQsRUFBaUMsS0FBM0JrQixJQUEyQix1RUFBcEIsRUFBb0IsS0FBaEJoQixNQUFnQix1RUFBUCxFQUFPO0FBQzlDLGFBQU8sTUFBSSxDQUFDUixPQUFMLENBQWE7QUFDbkJNLFdBQUcsRUFBSEEsR0FEbUI7QUFFbkJLLGNBQU0sRUFBRSxRQUZXO0FBR25CSCxjQUFNLEVBQU5BLE1BSG1CO0FBSW5CZ0IsWUFBSSxFQUFKQSxJQUptQixFQUFiLENBQVA7O0FBTUEsS0FQRDtBQVFBLEc7O0FBRWEsSUFBSTdCLE9BQUosRSIsImZpbGUiOiIxNS5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG5cdGRlZXBNZXJnZVxufSBmcm9tIFwiQC91dGlscy9pbmRleC5qc1wiO1xuaW1wb3J0IHZhbGlkYXRlIGZyb20gXCJAL3V0aWxzL3ZhbGlkYXRlLmpzXCI7XG5pbXBvcnQge1xuXHRCYXNlNjRcbn0gZnJvbSAnanMtYmFzZTY0J1xuaW1wb3J0IHN0b3JlIGZyb20gJ0Avc3RvcmUvaW5kZXguanMnXG5cbmNsYXNzIFJlcXVlc3Qge1xuXHQvLyDorr7nva7lhajlsYDpu5jorqTphY3nva5cblx0c2V0Q29uZmlnKGN1c3RvbUNvbmZpZykge1xuXHRcdC8vIOa3seW6puWQiOW5tuWvueixoe+8jOWQpuWImeS8mumAoOaIkOWvueixoea3seWxguWxnuaAp+S4ouWksVxuXHRcdHRoaXMuY29uZmlnID0gZGVlcE1lcmdlKHRoaXMuY29uZmlnLCBjdXN0b21Db25maWcpO1xuXHR9XG5cblx0Ly8g5Li76KaB6K+35rGC6YOo5YiGXG5cdHJlcXVlc3Qob3B0aW9ucyA9IHt9KSB7XG5cblx0XHQvLyDmo4Dmn6Xor7fmsYLmi6bmiKpcblx0XHRpZiAodGhpcy5pbnRlcmNlcHRvci5yZXF1ZXN0ICYmIHR5cGVvZiB0aGlzLmludGVyY2VwdG9yLnJlcXVlc3QgPT09ICdmdW5jdGlvbicpIHtcblx0XHRcdGxldCB0bXBDb25maWcgPSB7fTtcblx0XHRcdGxldCBpbnRlcmNlcHRvclJlcXVlc3QgPSB0aGlzLmludGVyY2VwdG9yLnJlcXVlc3Qob3B0aW9ucyk7XG5cdFx0XHRpZiAoaW50ZXJjZXB0b3JSZXF1ZXN0ID09PSBmYWxzZSkge1xuXHRcdFx0XHQvLyDov5Tlm57kuIDkuKrlpITkuo5wZW5kaW5n54q25oCB5Lit55qEUHJvbWlzZe+8jOadpeWPlua2iOWOn3Byb21pc2XvvIzpgb/lhY3ov5vlhaV0aGVuKCnlm57osINcblx0XHRcdFx0cmV0dXJuIG5ldyBQcm9taXNlKCgpID0+IHt9KTtcblx0XHRcdH1cblx0XHRcdHRoaXMub3B0aW9ucyA9IGludGVyY2VwdG9yUmVxdWVzdDtcblx0XHR9XG5cblx0XHRvcHRpb25zLmRhdGFUeXBlID0gb3B0aW9ucy5kYXRhVHlwZSB8fCB0aGlzLmNvbmZpZy5kYXRhVHlwZTtcblx0XHRvcHRpb25zLnJlc3BvbnNlVHlwZSA9IG9wdGlvbnMucmVzcG9uc2VUeXBlIHx8IHRoaXMuY29uZmlnLnJlc3BvbnNlVHlwZTtcblx0XHRvcHRpb25zLnVybCA9IG9wdGlvbnMudXJsIHx8ICcnO1xuXHRcdG9wdGlvbnMucGFyYW1zID0gb3B0aW9ucy5wYXJhbXMgfHwge307XG5cdFx0b3B0aW9ucy5oZWFkZXIgPSBPYmplY3QuYXNzaWduKHt9LCB0aGlzLmNvbmZpZy5oZWFkZXIsIG9wdGlvbnMuaGVhZGVyKTtcblx0XHRvcHRpb25zLm1ldGhvZCA9IG9wdGlvbnMubWV0aG9kIHx8IHRoaXMuY29uZmlnLm1ldGhvZDtcblx0XHRvcHRpb25zLnNzbFZlcmlmeSA9IGZhbHNlXG5cblx0XHQvLyBjb25zb2xlLmxvZygnYXBpLmhlbHBlci0tLS0tcmVxdWVzdCcsIG9wdGlvbnMsIHRoaXMub3B0aW9ucylcblxuXHRcdHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XG5cdFx0XHRvcHRpb25zLmNvbXBsZXRlID0gKHJlc3BvbnNlKSA9PiB7XG5cdFx0XHRcdGNvbnNvbGUubG9nKCdhcGkuaGVscGVyLS0tb3B0aW9ucy5jb21wbGV0ZScsIHJlc3BvbnNlKVxuXHRcdFx0XHQvLyDor7fmsYLov5Tlm57lkI7vvIzpmpDol49sb2FkaW5nKOWmguaenOivt+axgui/lOWbnuW/q+eahOivne+8jOWPr+iDveS8muayoeaciWxvYWRpbmcpXG5cdFx0XHRcdHVuaS5oaWRlTG9hZGluZygpO1xuXHRcdFx0XHQvLyDmuIXpmaTlrprml7blmajvvIzlpoLmnpzor7fmsYLlm57mnaXkuobvvIzlsLHml6DpnIBsb2FkaW5nXG5cdFx0XHRcdGNsZWFyVGltZW91dCh0aGlzLmNvbmZpZy50aW1lcik7XG5cdFx0XHRcdHRoaXMuY29uZmlnLnRpbWVyID0gbnVsbDtcblx0XHRcdFx0Ly8g5Yik5pat55So5oi35a+55oum5oiq6L+U5Zue5pWw5o2u55qE6KaB5rGC77yM5aaC5p6cb3JpZ2luYWxEYXRh5Li6dHJ1Ze+8jOi/lOWbnuaJgOacieeahOaVsOaNrihyZXNwb25zZSnliLDmi6bmiKrlmajvvIzlkKbliJnlj6rov5Tlm55yZXNwb25zZS5kYXRhXG5cdFx0XHRcdGlmICh0aGlzLmNvbmZpZy5vcmlnaW5hbERhdGEpIHtcblx0XHRcdFx0XHQvLyDliKTmlq3mmK/lkKblrZjlnKjmi6bmiKrlmahcblx0XHRcdFx0XHRpZiAodGhpcy5pbnRlcmNlcHRvci5yZXNwb25zZSAmJiB0eXBlb2YgdGhpcy5pbnRlcmNlcHRvci5yZXNwb25zZSA9PT0gJ2Z1bmN0aW9uJykge1xuXHRcdFx0XHRcdFx0bGV0IHJlc0ludGVyY2VwdG9ycyA9IHRoaXMuaW50ZXJjZXB0b3IucmVzcG9uc2UocmVzcG9uc2UpO1xuXHRcdFx0XHRcdFx0Ly8g5aaC5p6c5oum5oiq5Zmo5LiN6L+U5ZueZmFsc2XvvIzlsLHlsIbmi6bmiKrlmajov5Tlm57nmoTlhoXlrrnnu5l0aGlzLiR1LnBvc3TnmoR0aGVu5Zue6LCDXG5cdFx0XHRcdFx0XHRpZiAocmVzSW50ZXJjZXB0b3JzICE9PSBmYWxzZSkge1xuXHRcdFx0XHRcdFx0XHRyZXNvbHZlKHJlc0ludGVyY2VwdG9ycyk7XG5cdFx0XHRcdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHRcdFx0XHQvLyDlpoLmnpzmi6bmiKrlmajov5Tlm55mYWxzZe+8jOaEj+WRs+edgOaLpuaIquWZqOWumuS5ieiAheiupOS4uui/lOWbnuaciemXrumimO+8jOebtOaOpeaOpeWFpWNhdGNo5Zue6LCDXG5cdFx0XHRcdFx0XHRcdHJlamVjdChyZXNwb25zZSk7XG5cdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0XHRcdC8vIOWmguaenOimgeaxgui/lOWbnuWOn+Wni+aVsOaNru+8jOWwseeul+ayoeacieaLpuaIquWZqO+8jOS5n+i/lOWbnuacgOWOn+Wni+eahOaVsOaNrlxuXHRcdFx0XHRcdFx0cmVzb2x2ZShyZXNwb25zZSk7XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHRcdGlmIChyZXNwb25zZS5zdGF0dXNDb2RlID09IDIwMCkge1xuXHRcdFx0XHRcdFx0aWYgKHRoaXMuaW50ZXJjZXB0b3IucmVzcG9uc2UgJiYgdHlwZW9mIHRoaXMuaW50ZXJjZXB0b3IucmVzcG9uc2UgPT09XG5cdFx0XHRcdFx0XHRcdCdmdW5jdGlvbicpIHtcblx0XHRcdFx0XHRcdFx0bGV0IHJlc0ludGVyY2VwdG9ycyA9IHRoaXMuaW50ZXJjZXB0b3IucmVzcG9uc2UocmVzcG9uc2UuZGF0YSk7XG5cdFx0XHRcdFx0XHRcdGlmIChyZXNJbnRlcmNlcHRvcnMgIT09IGZhbHNlKSB7XG5cdFx0XHRcdFx0XHRcdFx0cmVzb2x2ZShyZXNJbnRlcmNlcHRvcnMpO1xuXHRcdFx0XHRcdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHRcdFx0XHRcdHJlamVjdChyZXNwb25zZS5kYXRhKTtcblx0XHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0XHRcdFx0Ly8g5aaC5p6c5LiN5piv6L+U5Zue5Y6f5aeL5pWw5o2uKG9yaWdpbmFsRGF0YT1mYWxzZSnvvIzkuJTmsqHmnInmi6bmiKrlmajnmoTmg4XlhrXkuIvvvIzov5Tlm57nuq/mlbDmja7nu5l0aGVu5Zue6LCDXG5cdFx0XHRcdFx0XHRcdHJlc29sdmUocmVzcG9uc2UuZGF0YSk7XG5cdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0XHRcdC8vIOS4jei/lOWbnuWOn+Wni+aVsOaNrueahOaDheWGteS4i++8jOacjeWKoeWZqOeKtuaAgeeggeS4jeS4ujIwMO+8jG1vZGFs5by55qGG5o+Q56S6XG5cdFx0XHRcdFx0XHQvLyBpZihyZXNwb25zZS5lcnJNc2cpIHtcblx0XHRcdFx0XHRcdC8vIFx0dW5pLnNob3dNb2RhbCh7XG5cdFx0XHRcdFx0XHQvLyBcdFx0dGl0bGU6IHJlc3BvbnNlLmVyck1zZ1xuXHRcdFx0XHRcdFx0Ly8gXHR9KTtcblx0XHRcdFx0XHRcdC8vIH1cblx0XHRcdFx0XHRcdGlmIChyZXNwb25zZS5zdGF0dXNDb2RlID09IDUwMCkge1xuXHRcdFx0XHRcdFx0XHR1bmkuc2hvd1RvYXN0KHtcblx0XHRcdFx0XHRcdFx0XHR0aXRsZTogJ+acjeWKoeWZqOW8guW4uCcsXG5cdFx0XHRcdFx0XHRcdFx0ZHVyYXRpb246IDIwMDAsXG5cdFx0XHRcdFx0XHRcdFx0aWNvbjogJ25vbmUnXG5cdFx0XHRcdFx0XHRcdH0pXG5cdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHRpZiAocmVzcG9uc2Uuc3RhdHVzQ29kZSA9PSA0MDEpIHtcblx0XHRcdFx0XHRcdFx0dW5pLnNob3dUb2FzdCh7XG5cdFx0XHRcdFx0XHRcdFx0dGl0bGU6ICfnmbvlvZXlt7LlpLHmlYgnLFxuXHRcdFx0XHRcdFx0XHRcdGR1cmF0aW9uOiAyMDAwLFxuXHRcdFx0XHRcdFx0XHRcdGljb246ICdub25lJ1xuXHRcdFx0XHRcdFx0XHR9KVxuXHRcdFx0XHRcdFx0XHR1bmkubmF2aWdhdGVUbyh7XG5cdFx0XHRcdFx0XHRcdFx0dXJsOiBcIi9wYWdlcy9sb2dpbi9sb2dpblwiXG5cdFx0XHRcdFx0XHRcdH0pXG5cdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHRyZWplY3QocmVzcG9uc2UpXG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9XG5cdFx0XHR9XG5cblx0XHRcdC8vIOWIpOaWreeUqOaIt+S8oOmAkueahFVSTOaYr+WQpi/lvIDlpLQs5aaC5p6c5LiN5pivLOWKoOS4ii/vvIzov5nph4zkvb/nlKjkuoZ1Vmlld+eahHRlc3QuanPpqozor4HlupPnmoR1cmwoKeaWueazlVxuXHRcdFx0b3B0aW9ucy51cmwgPSB2YWxpZGF0ZS51cmwob3B0aW9ucy51cmwpID8gb3B0aW9ucy51cmwgOiAoKG9wdGlvbnMuYmFzZVVybCA/IG9wdGlvbnMuYmFzZVVybCA6XG5cdFx0XHRcdHRoaXNcblx0XHRcdFx0LmNvbmZpZy5iYXNlVXJsKSArIChvcHRpb25zLnVybFxuXHRcdFx0XHQuaW5kZXhPZignLycpID09IDAgP1xuXHRcdFx0XHRvcHRpb25zLnVybCA6ICcvJyArIG9wdGlvbnMudXJsKSk7XG5cblx0XHRcdC8vIOaYr+WQpuaYvuekumxvYWRpbmdcblx0XHRcdC8vIOWKoOS4gOS4quaYr+WQpuW3suaciXRpbWVy5a6a5pe25Zmo55qE5Yik5pat77yM5ZCm5YiZ5pyJ5Lik5Liq5ZCM5pe26K+35rGC55qE5pe25YCZ77yM5ZCO6ICF5Lya5riF6Zmk5YmN6ICF55qE5a6a5pe25ZmoaWRcblx0XHRcdC8vIOiAjOayoeaciea4hemZpOWJjeiAheeahOWumuaXtuWZqO+8jOWvvOiHtOWJjeiAhei2heaXtu+8jOS4gOebtOaYvuekumxvYWRpbmdcblx0XHRcdGlmICh0aGlzLmNvbmZpZy5zaG93TG9hZGluZyAmJiAhdGhpcy5jb25maWcudGltZXIpIHtcblx0XHRcdFx0dGhpcy5jb25maWcudGltZXIgPSBzZXRUaW1lb3V0KCgpID0+IHtcblx0XHRcdFx0XHR1bmkuc2hvd0xvYWRpbmcoe1xuXHRcdFx0XHRcdFx0dGl0bGU6IHRoaXMuY29uZmlnLmxvYWRpbmdUZXh0LFxuXHRcdFx0XHRcdFx0bWFzazogdGhpcy5jb25maWcubG9hZGluZ01hc2tcblx0XHRcdFx0XHR9KVxuXHRcdFx0XHRcdHRoaXMuY29uZmlnLnRpbWVyID0gbnVsbDtcblx0XHRcdFx0fSwgdGhpcy5jb25maWcubG9hZGluZ1RpbWUpO1xuXHRcdFx0fVxuXHRcdFx0Ly8gY29uc29sZS5sb2coJ2FwaS5oZWxwZXItLS0tLWZpbmFsbHkqKipyZXF1ZXN0Jywgb3B0aW9ucylcblx0XHRcdHVuaS5yZXF1ZXN0KG9wdGlvbnMpO1xuXHRcdH0pXG5cdFx0Ly8gLmNhdGNoKHJlcyA9PiB7XG5cdFx0Ly8gXHQvLyDlpoLmnpzov5Tlm55yZWplY3QoKe+8jOS4jeiuqeWFtui/m+WFpXRoaXMuJHUucG9zdCgpLnRoZW4oKS5jYXRjaCgp5ZCO6Z2i55qEY2F0Y3QoKVxuXHRcdC8vIFx0Ly8g5Zug5Li65b6I5aSa5Lq66YO95Lya5b+Y5LqG5YaZ5ZCO6Z2i55qEY2F0Y2goKe+8jOWvvOiHtOaKpemUmeaNleiOt+S4jeWIsGNhdGNoXG5cdFx0Ly8gXHRyZXR1cm4gbmV3IFByb21pc2UoKCk9Pnt9KTtcblx0XHQvLyB9KVxuXHR9XG5cblx0Y29uc3RydWN0b3IoKSB7XG5cdFx0dGhpcy5jb25maWcgPSB7XG5cdFx0XHRiYXNlVXJsOiAnaHR0cDovLzIyMS4xMC4xMjcuNjA6NTAwMCcsIC8vIOivt+axgueahOagueWfn+WQjVxuXHRcdFx0Ly8g6buY6K6k55qE6K+35rGC5aS0XG5cdFx0XHRoZWFkZXI6IHt9LFxuXHRcdFx0bWV0aG9kOiAnUE9TVCcsXG5cdFx0XHQvLyDorr7nva7kuLpqc29u77yM6L+U5Zue5ZCOdW5pLnJlcXVlc3TkvJrlr7nmlbDmja7ov5vooYzkuIDmrKFKU09OLnBhcnNlXG5cdFx0XHRkYXRhVHlwZTogJ2pzb24nLFxuXHRcdFx0Ly8g5q2k5Y+C5pWw5peg6ZyA5aSE55CG77yM5Zug5Li6NSvlkozmlK/ku5jlrp3lsI/nqIvluo/kuI3mlK/mjIHvvIzpu5jorqTkuLp0ZXh05Y2z5Y+vXG5cdFx0XHRyZXNwb25zZVR5cGU6ICd0ZXh0Jyxcblx0XHRcdHNob3dMb2FkaW5nOiB0cnVlLCAvLyDmmK/lkKbmmL7npLror7fmsYLkuK3nmoRsb2FkaW5nXG5cdFx0XHRsb2FkaW5nVGV4dDogJ+ivt+axguS4rS4uLicsXG5cdFx0XHRsb2FkaW5nVGltZTogODAwLCAvLyDlnKjmraTml7bpl7TlhoXvvIzor7fmsYLov5jmsqHlm57mnaXnmoTor53vvIzlsLHmmL7npLrliqDovb3kuK3liqjnlLvvvIzljZXkvY1tc1xuXHRcdFx0dGltZXI6IG51bGwsIC8vIOWumuaXtuWZqFxuXHRcdFx0c3NsVmVyaWZ5OiBmYWxzZSwgLy8g5a6a5pe25ZmoXG5cdFx0XHRvcmlnaW5hbERhdGE6IGZhbHNlLCAvLyDmmK/lkKblnKjmi6bmiKrlmajkuK3ov5Tlm57mnI3liqHnq6/nmoTljp/lp4vmlbDmja7vvIzop4HmlofmoaPor7TmmI5cblx0XHRcdGxvYWRpbmdNYXNrOiB0cnVlLCAvLyDlsZXnpLpsb2FkaW5n55qE5pe25YCZ77yM5piv5ZCm57uZ5LiA5Liq6YCP5piO55qE6JKZ5bGC77yM6Ziy5q2i6Kem5pG456m/6YCPXG5cdFx0fVxuXG5cdFx0Ly8g5oum5oiq5ZmoXG5cdFx0dGhpcy5pbnRlcmNlcHRvciA9IHtcblx0XHRcdC8vIOivt+axguWJjeeahOaLpuaIqlxuXHRcdFx0cmVxdWVzdDogKGNvbmZpZykgPT4ge1xuXHRcdFx0XHRjb25maWcuaGVhZGVyWydBdXRob3JpemF0aW9uJ10gPSBgQmFzaWMgJHtCYXNlNjQuZW5jb2RlKCd3YW5ncGM6TFpZODg4QEAnKX1gO1xuXHRcdFx0XHR0cnkge1xuXHRcdFx0XHRcdGlmIChjb25maWcudXJsLmluZGV4T2YoJ2NybS1hcHAvbG9naW4nKSA9PT0gLVxuXHRcdFx0XHRcdFx0MSAmJlxuXHRcdFx0XHRcdFx0c3RvcmUuc3RhdGUudnVleF90b2tlbikge1xuXHRcdFx0XHRcdFx0Y29uZmlnLmhlYWRlclsnWC1BdXRoLVRva2VuJ10gPSBzdG9yZVxuXHRcdFx0XHRcdFx0XHQuc3RhdGUudnVleF90b2tlblxuXHRcdFx0XHRcdH1cblxuXHRcdFx0XHRcdGlmIChjb25maWcuaGVhZGVyWydDb250ZW50LVR5cGUnXSAmJiBjb25maWcuaGVhZGVyWydDb250ZW50LVR5cGUnXS5pbmRleE9mKFxuXHRcdFx0XHRcdFx0XHQneC13d3ctZm9ybS11cmxlbmNvZGVkJykgPT09IC0xKSB7XG5cdFx0XHRcdFx0XHRjb25maWcuaGVhZGVyWydDb250ZW50LVR5cGUnXSA9IFwiYXBwbGljYXRpb24vanNvbjsgY2hhcnNldD11dGYtOFwiXG5cdFx0XHRcdFx0fVxuXG5cblx0XHRcdFx0XHRpZiAoY29uZmlnLnVybC5pbmRleE9mKCdjcm0tYXBwJykgIT09IC0xKSB7XG5cdFx0XHRcdFx0XHQvLyBjb25maWcuYmFzZVVybCA9ICdodHRwOi8vMTAuMC4xMzUuNjEnXG5cdFx0XHRcdFx0XHRjb25maWcuYmFzZVVybCA9ICdodHRwOi8vMjIxLjEwLjEyNy42MDo1MDAwJ1xuXHRcdFx0XHRcdH0gZWxzZSBpZiAoY29uZmlnLnVybC5pbmRleE9mKCdhZGFwdGVyJykgIT09IC0xKSB7XG5cdFx0XHRcdFx0XHRjb25maWcuYmFzZVVybCA9ICdodHRwOi8vYXBpLmMwMzMxLmRldi5ndWFueWluZ3l1bi5jb20nXG5cdFx0XHRcdFx0XHQvLyB
jb25maWcuYmFzZVVybCA9ICdodHRwOi8vMjIxLjEwLjEyNy42MDo1MDAwL2N5aidcblx0XHRcdFx0XHR9IGVsc2UgaWYgKGNvbmZpZy51cmwuaW5kZXhPZignd21kcHdlYnNlcnZpY2VzJykgIT09IC0xKSB7XG5cdFx0XHRcdFx0XHQvLyBjb25maWcuYmFzZVVybCA9ICdodHRwczovLzEwLjAuMTM0LjE4Mjo5MDAyJ1xuXHRcdFx0XHRcdFx0Y29uZmlnLmJhc2VVcmwgPSAnaHR0cDovLzIyMS4xMC4xMjcuNjA6NTAwMC9zY3p4J1xuXHRcdFx0XHRcdFx0Ly8gY29uZmlnLmJhc2VVcmwgPSAnJ1xuXHRcdFx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdFx0XHRjb25maWcuYmFzZVVybCA9ICdodHRwOi8vMjIxLjEwLjEyNy42MDo1MDAwL3dseVNhcCdcblx0XHRcdFx0XHR9XG5cdFx0XHRcdH0gY2F0Y2ggKGUpIHtcblx0XHRcdFx0XHRjb25zb2xlLmxvZygnZXJyb3InLCBlKVxuXHRcdFx0XHR9XG5cdFx0XHRcdC8vIGlmIChjb25maWcudXJsLmluZGV4T2YoJ2NybS1hcHAvbG9naW4nKSAhPT0gLTEgJiYgIXN0b3JlLnN0YXRlLnZ1ZXhfdG9rZW4pIHtcblx0XHRcdFx0Ly8gXHR1bmkuc2hvd1RvYXN0KHtcblx0XHRcdFx0Ly8gXHRcdHRpdGxlOiAn55m75b2V5bey5aSx5pWIJyxcblx0XHRcdFx0Ly8gXHRcdGR1cmF0aW9uOiAyMDAwLFxuXHRcdFx0XHQvLyBcdFx0aWNvbjogJ25vbmUnXG5cdFx0XHRcdC8vIFx0fSk7XG5cdFx0XHRcdC8vIFx0dW5pLm5hdmlnYXRlVG8oe1xuXHRcdFx0XHQvLyBcdFx0dXJsOiBcIi9wYWdlcy9sb2dpbi9sb2dpblwiXG5cdFx0XHRcdC8vIFx0fSlcblx0XHRcdFx0Ly8gfVxuXHRcdFx0XHRjb25zb2xlLmxvZygnaGVscGVyLS1pbnRlcmNlcHRvci0tLXJlcXVlc3QtLS0tLScsIGNvbmZpZylcblx0XHRcdFx0cmV0dXJuIGNvbmZpZztcblx0XHRcdH0sXG5cdFx0XHQvLyDor7fmsYLlkI7nmoTmi6bmiKpcblx0XHRcdHJlc3BvbnNlOiAocmVzKSA9PiB7XG5cdFx0XHRcdGNvbnNvbGUubG9nKCdoZWxwZXItLWlpbnRlcmNlcHRvci0tLXJlc3BvbnNlLS0tLS0nLCByZXMpXG5cdFx0XHRcdGlmIChyZXMuTVNHVFlQRSA9PT0gJ1MnIHx8IHJlcy5tc2d0eXBlID09PSAnUycgfHwgcmVzLnN0YXR1cyA9PT0gMSB8fCByZXMucmVzdWx0ID09PSBcIlNcIiB8fFxuXHRcdFx0XHRcdHJlcy5TdGF0dXMgPT09XG5cdFx0XHRcdFx0J1N1Y2Nlc3MnKSB7XG5cdFx0XHRcdFx0Ly8g5aaC5p6c5oqKb3JpZ2luYWxEYXRh6K6+572u5Li65LqGdHJ1Ze+8jOi/memHjHJldHVybuWbnuS7gOS5iO+8jHRoaXMuJHUucG9zdOeahHRoZW7lm57osIPkuK3lsLHkvJrlvpfliLDku4DkuYhcblx0XHRcdFx0XHRyZXR1cm4gcmVzO1xuXHRcdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHRcdHVuaS5zaG93VG9hc3Qoe1xuXHRcdFx0XHRcdFx0dGl0bGU6IHJlcy5NRVNTQUdFIHx8IHJlcy5tc2cgfHwgcmVzLm1lc3NhZ2UgfHwgcmVzLkVyck1zZyxcblx0XHRcdFx0XHRcdGR1cmF0aW9uOiAyMDAwLFxuXHRcdFx0XHRcdFx0aWNvbjogJ25vbmUnXG5cdFx0XHRcdFx0fSk7XG5cdFx0XHRcdFx0cmV0dXJuIGZhbHNlXG5cdFx0XHRcdH07XG5cdFx0XHR9XG5cdFx0fVxuXG5cdFx0Ly8gZ2V06K+35rGCXG5cdFx0dGhpcy5nZXQgPSAodXJsLCBkYXRhID0ge30sIGhlYWRlciA9IHt9KSA9PiB7XG5cdFx0XHRyZXR1cm4gdGhpcy5yZXF1ZXN0KHtcblx0XHRcdFx0bWV0aG9kOiAnR0VUJyxcblx0XHRcdFx0dXJsLFxuXHRcdFx0XHRoZWFkZXIsXG5cdFx0XHRcdGRhdGFcblx0XHRcdH0pXG5cdFx0fVxuXG5cdFx0Ly8gcG9zdOivt+axglxuXHRcdHRoaXMucG9zdCA9ICh1cmwsIGRhdGEgPSB7fSwgaGVhZGVyID0ge30pID0+IHtcblx0XHRcdHJldHVybiB0aGlzLnJlcXVlc3Qoe1xuXHRcdFx0XHR1cmwsXG5cdFx0XHRcdG1ldGhvZDogJ1BPU1QnLFxuXHRcdFx0XHRoZWFkZXIsXG5cdFx0XHRcdGRhdGFcblx0XHRcdH0pXG5cdFx0fVxuXG5cdFx0Ly8gcHV06K+35rGC77yM5LiN5pSv5oyB5pSv5LuY5a6d5bCP56iL5bqPKEhYMi42LjE1KVxuXHRcdHRoaXMucHV0ID0gKHVybCwgZGF0YSA9IHt9LCBoZWFkZXIgPSB7fSkgPT4ge1xuXHRcdFx0cmV0dXJuIHRoaXMucmVxdWVzdCh7XG5cdFx0XHRcdHVybCxcblx0XHRcdFx0bWV0aG9kOiAnUFVUJyxcblx0XHRcdFx0aGVhZGVyLFxuXHRcdFx0XHRkYXRhXG5cdFx0XHR9KVxuXHRcdH1cblxuXHRcdC8vIGRlbGV0Zeivt+axgu+8jOS4jeaUr+aMgeaUr+S7mOWuneWSjOWktOadoeWwj+eoi+W6jyhIWDIuNi4xNSlcblx0XHR0aGlzLmRlbGV0ZSA9ICh1cmwsIGRhdGEgPSB7fSwgaGVhZGVyID0ge30pID0+IHtcblx0XHRcdHJldHVybiB0aGlzLnJlcXVlc3Qoe1xuXHRcdFx0XHR1cmwsXG5cdFx0XHRcdG1ldGhvZDogJ0RFTEVURScsXG5cdFx0XHRcdGhlYWRlcixcblx0XHRcdFx0ZGF0YVxuXHRcdFx0fSlcblx0XHR9XG5cdH1cbn1cbmV4cG9ydCBkZWZhdWx0IG5ldyBSZXF1ZXN0XG4iXSwic291cmNlUm9vdCI6IiJ9
\n
//# sourceURL=webpack-internal:///15
\n
"
);
/***/
}),
/***/
}),
...
...
unpackage/dist/dev/app-plus/pages/message/message.js
View file @
b5770471
...
@@ -2068,7 +2068,7 @@ index;exports.default = _default;
...
@@ -2068,7 +2068,7 @@ index;exports.default = _default;
/***/
(
function
(
module
,
exports
,
__webpack_require__
)
{
/***/
(
function
(
module
,
exports
,
__webpack_require__
)
{
"use strict"
;
"use strict"
;
eval
(
"/* WEBPACK VAR INJECTION */(function(__f__) {Object.defineProperty(exports,
\"
__esModule
\"
, { value: true });exports.default = void 0;var _index = __webpack_require__(/*! @/utils/index.js */ 16);
\n\n\n
var _validate = _interopRequireDefault(__webpack_require__(/*! @/utils/validate.js */ 17));
\n
var _jsBase = __webpack_require__(/*! js-base64 */ 18);
\n\n\n
var _index2 = _interopRequireDefault(__webpack_require__(/*! @/store/index.js */ 19));function _interopRequireDefault(obj) {return obj && obj.__esModule ? obj : { default: obj };}function _classCallCheck(instance, Constructor) {if (!(instance instanceof Constructor)) {throw new TypeError(
\"
Cannot call a class as a function
\"
);}}function _defineProperties(target, props) {for (var i = 0; i < props.length; i++) {var descriptor = props[i];descriptor.enumerable = descriptor.enumerable || false;descriptor.configurable = true;if (
\"
value
\"
in descriptor) descriptor.writable = true;Object.defineProperty(target, descriptor.key, descriptor);}}function _createClass(Constructor, protoProps, staticProps) {if (protoProps) _defineProperties(Constructor.prototype, protoProps);if (staticProps) _defineProperties(Constructor, staticProps);return Constructor;}var
\n\n
Request = /*#__PURE__*/function () {_createClass(Request, [{ key:
\"
setConfig
\"
,
\n
// 设置全局默认配置
\n
value: function setConfig(customConfig) {
\n
// 深度合并对象,否则会造成对象深层属性丢失
\n
this.config = (0, _index.deepMerge)(this.config, customConfig);
\n
}
\n\n
// 主要请求部分
\n
}, { key:
\"
request
\"
, value: function request() {var _this = this;var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
\n\n
// 检查请求拦截
\n
if (this.interceptor.request && typeof this.interceptor.request === 'function') {
\n
var tmpConfig = {};
\n
var interceptorRequest = this.interceptor.request(options);
\n
if (interceptorRequest === false) {
\n
// 返回一个处于pending状态中的Promise,来取消原promise,避免进入then()回调
\n
return new Promise(function () {});
\n
}
\n
this.options = interceptorRequest;
\n
}
\n\n
options.dataType = options.dataType || this.config.dataType;
\n
options.responseType = options.responseType || this.config.responseType;
\n
options.url = options.url || '';
\n
options.params = options.params || {};
\n
options.header = Object.assign({}, this.config.header, options.header);
\n
options.method = options.method || this.config.method;
\n
options.sslVerify = false;
\n\n
// console.log('api.helper-----request', options, this.options)
\n\n
return new Promise(function (resolve, reject) {
\n
options.complete = function (response) {
\n
__f__(
\"
log
\"
, 'api.helper---options.complete', response,
\"
at servers/api.helper.js:43
\"
);
\n
// 请求返回后,隐藏loading(如果请求返回快的话,可能会没有loading)
\n
uni.hideLoading();
\n
// 清除定时器,如果请求回来了,就无需loading
\n
clearTimeout(_this.config.timer);
\n
_this.config.timer = null;
\n
// 判断用户对拦截返回数据的要求,如果originalData为true,返回所有的数据(response)到拦截器,否则只返回response.data
\n
if (_this.config.originalData) {
\n
// 判断是否存在拦截器
\n
if (_this.interceptor.response && typeof _this.interceptor.response === 'function') {
\n
var resInterceptors = _this.interceptor.response(response);
\n
// 如果拦截器不返回false,就将拦截器返回的内容给this.$u.post的then回调
\n
if (resInterceptors !== false) {
\n
resolve(resInterceptors);
\n
} else {
\n
// 如果拦截器返回false,意味着拦截器定义者认为返回有问题,直接接入catch回调
\n
reject(response);
\n
}
\n
} else {
\n
// 如果要求返回原始数据,就算没有拦截器,也返回最原始的数据
\n
resolve(response);
\n
}
\n
} else {
\n
if (response.statusCode == 200) {
\n
if (_this.interceptor.response && typeof _this.interceptor.response ===
\n
'function') {
\n
var _resInterceptors = _this.interceptor.response(response.data);
\n
if (_resInterceptors !== false) {
\n
resolve(_resInterceptors);
\n
} else {
\n
reject(response.data);
\n
}
\n
} else {
\n
// 如果不是返回原始数据(originalData=false),且没有拦截器的情况下,返回纯数据给then回调
\n
resolve(response.data);
\n
}
\n
} else {
\n
// 不返回原始数据的情况下,服务器状态码不为200,modal弹框提示
\n
// if(response.errMsg) {
\n
//
\
tuni.showModal({
\n
//
\
t
\
ttitle: response.errMsg
\n
//
\
t});
\n
// }
\n
if (response.statusCode == 500) {
\n
uni.showToast({
\n
title: '服务器异常',
\n
duration: 2000,
\n
icon: 'none' });
\n\n
}
\n
if (response.statusCode == 401) {
\n
uni.showToast({
\n
title: '登录已失效',
\n
duration: 2000,
\n
icon: 'none' });
\n\n
uni.navigateTo({
\n
url:
\"
/pages/login/login
\"
});
\n\n
}
\n
reject(response);
\n
}
\n
}
\n
};
\n\n
// 判断用户传递的URL是否/开头,如果不是,加上/,这里使用了uView的test.js验证库的url()方法
\n
options.url = _validate.default.url(options.url) ? options.url : (options.baseUrl ? options.baseUrl :
\n
_this.
\n
config.baseUrl) + (options.url.
\n
indexOf('/') == 0 ?
\n
options.url : '/' + options.url);
\n\n
// 是否显示loading
\n
// 加一个是否已有timer定时器的判断,否则有两个同时请求的时候,后者会清除前者的定时器id
\n
// 而没有清除前者的定时器,导致前者超时,一直显示loading
\n
if (_this.config.showLoading && !_this.config.timer) {
\n
_this.config.timer = setTimeout(function () {
\n
uni.showLoading({
\n
title: _this.config.loadingText,
\n
mask: _this.config.loadingMask });
\n\n
_this.config.timer = null;
\n
}, _this.config.loadingTime);
\n
}
\n
// console.log('api.helper-----finally***request', options)
\n
uni.request(options);
\n
});
\n
// .catch(res => {
\n
//
\
t// 如果返回reject(),不让其进入this.$u.post().then().catch()后面的catct()
\n
//
\
t// 因为很多人都会忘了写后面的catch(),导致报错捕获不到catch
\n
//
\
treturn new Promise(()=>{});
\n
// })
\n
} }]);
\n\n
function Request() {var _this2 = this;_classCallCheck(this, Request);
\n
this.config = {
\n
baseUrl: 'http://221.10.127.60:5000', // 请求的根域名
\n
// 默认的请求头
\n
header: {},
\n
method: 'POST',
\n
// 设置为json,返回后uni.request会对数据进行一次JSON.parse
\n
dataType: 'json',
\n
// 此参数无需处理,因为5+和支付宝小程序不支持,默认为text即可
\n
responseType: 'text',
\n
showLoading: true, // 是否显示请求中的loading
\n
loadingText: '请求中...',
\n
loadingTime: 800, // 在此时间内,请求还没回来的话,就显示加载中动画,单位ms
\n
timer: null, // 定时器
\n
sslVerify: false, // 定时器
\n
originalData: false, // 是否在拦截器中返回服务端的原始数据,见文档说明
\n
loadingMask: true // 展示loading的时候,是否给一个透明的蒙层,防止触摸穿透
\n
};
\n\n
// 拦截器
\n
this.interceptor = {
\n
// 请求前的拦截
\n
request: function request(config) {
\n
config.header['Authorization'] =
\"
Basic
\"
.concat(_jsBase.Base64.encode('wangpc:LZY888@@'));
\n
try {
\n
if (config.url.indexOf('crm-app/login') === -
\n
1 &&
\n
_index2.default.state.vuex_token) {
\n
config.header['X-Auth-Token'] = _index2.default.
\n
state.vuex_token;
\n
}
\n\n
if (config.header['Content-Type'] && config.header['Content-Type'].indexOf(
\n
'x-www-form-urlencoded') === -1) {
\n
config.header['Content-Type'] =
\"
application/json; charset=utf-8
\"
;
\n
}
\n\n\n
if (config.url.indexOf('crm-app') !== -1) {
\n
// config.baseUrl = 'http://10.0.135.61'
\n
config.baseUrl = 'http://221.10.127.60:5000';
\n
} else if (config.url.indexOf('adapter') !== -1) {
\n
// config.baseUrl = 'http://api.c0331.dev.guanyingyun.com'
\n
config.baseUrl = 'http://221.10.127.60:5000/cyj';
\n
} else if (config.url.indexOf('wmdpwebservices') !== -1) {
\n
// config.baseUrl = 'https://10.0.134.182:9002'
\n
config.baseUrl = 'http://221.10.127.60:5000/sczx';
\n
// config.baseUrl = ''
\n
} else {
\n
config.baseUrl = 'http://221.10.127.60:5000/wlySap';
\n
}
\n
} catch (e) {
\n
__f__(
\"
log
\"
, 'error', e,
\"
at servers/api.helper.js:189
\"
);
\n
}
\n
// if (config.url.indexOf('crm-app/login') !== -1 && !store.state.vuex_token) {
\n
//
\
tuni.showToast({
\n
//
\
t
\
ttitle: '登录已失效',
\n
//
\
t
\
tduration: 2000,
\n
//
\
t
\
ticon: 'none'
\n
//
\
t});
\n
//
\
tuni.navigateTo({
\n
//
\
t
\
turl:
\"
/pages/login/login
\"\n
//
\
t})
\n
// }
\n
__f__(
\"
log
\"
, 'helper--interceptor---request-----', config,
\"
at servers/api.helper.js:201
\"
);
\n
return config;
\n
},
\n
// 请求后的拦截
\n
response: function response(res) {
\n
__f__(
\"
log
\"
, 'helper--iinterceptor---response-----', res,
\"
at servers/api.helper.js:206
\"
);
\n
if (res.MSGTYPE === 'S' || res.msgtype === 'S' || res.status === 1 || res.result ===
\"
S
\"
||
\n
res.Status ===
\n
'Success') {
\n
// 如果把originalData设置为了true,这里return回什么,this.$u.post的then回调中就会得到什么
\n
return res;
\n
} else {
\n
uni.showToast({
\n
title: res.MESSAGE || res.msg || res.message || res.ErrMsg,
\n
duration: 2000,
\n
icon: 'none' });
\n\n
return false;
\n
};
\n
} };
\n\n\n
// get请求
\n
this.get = function (url) {var data = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};var header = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
\n
return _this2.request({
\n
method: 'GET',
\n
url: url,
\n
header: header,
\n
data: data });
\n\n
};
\n\n
// post请求
\n
this.post = function (url) {var data = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};var header = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
\n
return _this2.request({
\n
url: url,
\n
method: 'POST',
\n
header: header,
\n
data: data });
\n\n
};
\n\n
// put请求,不支持支付宝小程序(HX2.6.15)
\n
this.put = function (url) {var data = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};var header = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
\n
return _this2.request({
\n
url: url,
\n
method: 'PUT',
\n
header: header,
\n
data: data });
\n\n
};
\n\n
// delete请求,不支持支付宝和头条小程序(HX2.6.15)
\n
this.delete = function (url) {var data = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};var header = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
\n
return _this2.request({
\n
url: url,
\n
method: 'DELETE',
\n
header: header,
\n
data: data });
\n\n
};
\n
}return Request;}();var _default =
\n\n
new Request();exports.default = _default;
\n
/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./node_modules/@dcloudio/vue-cli-plugin-uni/lib/format-log.js */ 10)[
\"
default
\"
]))//# sourceURL=[module]
\n
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInVuaS1hcHA6Ly8vc2VydmVycy9hcGkuaGVscGVyLmpzIl0sIm5hbWVzIjpbIlJlcXVlc3QiLCJjdXN0b21Db25maWciLCJjb25maWciLCJvcHRpb25zIiwiaW50ZXJjZXB0b3IiLCJyZXF1ZXN0IiwidG1wQ29uZmlnIiwiaW50ZXJjZXB0b3JSZXF1ZXN0IiwiUHJvbWlzZSIsImRhdGFUeXBlIiwicmVzcG9uc2VUeXBlIiwidXJsIiwicGFyYW1zIiwiaGVhZGVyIiwiT2JqZWN0IiwiYXNzaWduIiwibWV0aG9kIiwic3NsVmVyaWZ5IiwicmVzb2x2ZSIsInJlamVjdCIsImNvbXBsZXRlIiwicmVzcG9uc2UiLCJ1bmkiLCJoaWRlTG9hZGluZyIsImNsZWFyVGltZW91dCIsInRpbWVyIiwib3JpZ2luYWxEYXRhIiwicmVzSW50ZXJjZXB0b3JzIiwic3RhdHVzQ29kZSIsImRhdGEiLCJzaG93VG9hc3QiLCJ0aXRsZSIsImR1cmF0aW9uIiwiaWNvbiIsIm5hdmlnYXRlVG8iLCJ2YWxpZGF0ZSIsImJhc2VVcmwiLCJpbmRleE9mIiwic2hvd0xvYWRpbmciLCJzZXRUaW1lb3V0IiwibG9hZGluZ1RleHQiLCJtYXNrIiwibG9hZGluZ01hc2siLCJsb2FkaW5nVGltZSIsIkJhc2U2NCIsImVuY29kZSIsInN0b3JlIiwic3RhdGUiLCJ2dWV4X3Rva2VuIiwiZSIsInJlcyIsIk1TR1RZUEUiLCJtc2d0eXBlIiwic3RhdHVzIiwicmVzdWx0IiwiU3RhdHVzIiwiTUVTU0FHRSIsIm1zZyIsIm1lc3NhZ2UiLCJFcnJNc2ciLCJnZXQiLCJwb3N0IiwicHV0IiwiZGVsZXRlIl0sIm1hcHBpbmdzIjoib0lBQUE7OztBQUdBO0FBQ0E7OztBQUdBLHNGOztBQUVNQSxPO0FBQ0w7OEJBQ1VDLFksRUFBYztBQUN2QjtBQUNBLFdBQUtDLE1BQUwsR0FBYyxzQkFBVSxLQUFLQSxNQUFmLEVBQXVCRCxZQUF2QixDQUFkO0FBQ0E7O0FBRUQ7aURBQ3NCLHNCQUFkRSxPQUFjLHVFQUFKLEVB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QTtBQUNBLFNBQUtnQyxJQUFMLEdBQVksVUFBQ2xELEdBQUQsRUFBaUMsS0FBM0JrQixJQUEyQix1RUFBcEIsRUFBb0IsS0FBaEJoQixNQUFnQix1RUFBUCxFQUFPO0FBQzVDLGFBQU8sTUFBSSxDQUFDUixPQUFMLENBQWE7QUFDbkJNLFdBQUcsRUFBSEEsR0FEbUI7QUFFbkJLLGNBQU0sRUFBRSxNQUZXO0FBR25CSCxjQUFNLEVBQU5BLE1BSG1CO0FBSW5CZ0IsWUFBSSxFQUFKQSxJQUptQixFQUFiLENBQVA7O0FBTUEsS0FQRDs7QUFTQTtBQUNBLFNBQUtpQyxHQUFMLEdBQVcsVUFBQ25ELEdBQUQsRUFBaUMsS0FBM0JrQixJQUEyQix1RUFBcEIsRUFBb0IsS0FBaEJoQixNQUFnQix1RUFBUCxFQUFPO0FBQzNDLGFBQU8sTUFBSSxDQUFDUixPQUFMLENBQWE7QUFDbkJNLFdBQUcsRUFBSEEsR0FEbUI7QUFFbkJLLGNBQU0sRUFBRSxLQUZXO0FBR25CSCxjQUFNLEVBQU5BLE1BSG1CO0FBSW5CZ0IsWUFBSSxFQUFKQSxJQUptQixFQUFiLENBQVA7O0FBTUEsS0FQRDs7QUFTQTtBQUNBLFNBQUtrQyxNQUFMLEdBQWMsVUFBQ3BELEdBQUQsRUFBaUMsS0FBM0JrQixJQUEyQix1RUFBcEIsRUFBb0IsS0FBaEJoQixNQUFnQix1RUFBUCxFQUFPO0FBQzlDLGFBQU8sTUFBSSxDQUFDUixPQUFMLENBQWE7QUFDbkJNLFdBQUcsRUFBSEEsR0FEbUI7QUFFbkJLLGNBQU0sRUFBRSxRQUZXO0FBR25CSCxjQUFNLEVBQU5BLE1BSG1CO0FBSW5CZ0IsWUFBSSxFQUFKQSxJQUptQixFQUFiLENBQVA7O0FBTUEsS0FQRDtBQVFBLEc7O0FBRWEsSUFBSTdCLE9BQUosRSIsImZpbGUiOiIxNS5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG5cdGRlZXBNZXJnZVxufSBmcm9tIFwiQC91dGlscy9pbmRleC5qc1wiO1xuaW1wb3J0IHZhbGlkYXRlIGZyb20gXCJAL3V0aWxzL3ZhbGlkYXRlLmpzXCI7XG5pbXBvcnQge1xuXHRCYXNlNjRcbn0gZnJvbSAnanMtYmFzZTY0J1xuaW1wb3J0IHN0b3JlIGZyb20gJ0Avc3RvcmUvaW5kZXguanMnXG5cbmNsYXNzIFJlcXVlc3Qge1xuXHQvLyDorr7nva7lhajlsYDpu5jorqTphY3nva5cblx0c2V0Q29uZmlnKGN1c3RvbUNvbmZpZykge1xuXHRcdC8vIOa3seW6puWQiOW5tuWvueixoe+8jOWQpuWImeS8mumAoOaIkOWvueixoea3seWxguWxnuaAp+S4ouWksVxuXHRcdHRoaXMuY29uZmlnID0gZGVlcE1lcmdlKHRoaXMuY29uZmlnLCBjdXN0b21Db25maWcpO1xuXHR9XG5cblx0Ly8g5Li76KaB6K+35rGC6YOo5YiGXG5cdHJlcXVlc3Qob3B0aW9ucyA9IHt9KSB7XG5cblx0XHQvLyDmo4Dmn6Xor7fmsYLmi6bmiKpcblx0XHRpZiAodGhpcy5pbnRlcmNlcHRvci5yZXF1ZXN0ICYmIHR5cGVvZiB0aGlzLmludGVyY2VwdG9yLnJlcXVlc3QgPT09ICdmdW5jdGlvbicpIHtcblx0XHRcdGxldCB0bXBDb25maWcgPSB7fTtcblx0XHRcdGxldCBpbnRlcmNlcHRvclJlcXVlc3QgPSB0aGlzLmludGVyY2VwdG9yLnJlcXVlc3Qob3B0aW9ucyk7XG5cdFx0XHRpZiAoaW50ZXJjZXB0b3JSZXF1ZXN0ID09PSBmYWxzZSkge1xuXHRcdFx0XHQvLyDov5Tlm57kuIDkuKrlpITkuo5wZW5kaW5n54q25oCB5Lit55qEUHJvbWlzZe+8jOadpeWPlua2iOWOn3Byb21pc2XvvIzpgb/lhY3ov5vlhaV0aGVuKCnlm57osINcblx0XHRcdFx0cmV0dXJuIG5ldyBQcm9taXNlKCgpID0+IHt9KTtcblx0XHRcdH1cblx0XHRcdHRoaXMub3B0aW9ucyA9IGludGVyY2VwdG9yUmVxdWVzdDtcblx0XHR9XG5cblx0XHRvcHRpb25zLmRhdGFUeXBlID0gb3B0aW9ucy5kYXRhVHlwZSB8fCB0aGlzLmNvbmZpZy5kYXRhVHlwZTtcblx0XHRvcHRpb25zLnJlc3BvbnNlVHlwZSA9IG9wdGlvbnMucmVzcG9uc2VUeXBlIHx8IHRoaXMuY29uZmlnLnJlc3BvbnNlVHlwZTtcblx0XHRvcHRpb25zLnVybCA9IG9wdGlvbnMudXJsIHx8ICcnO1xuXHRcdG9wdGlvbnMucGFyYW1zID0gb3B0aW9ucy5wYXJhbXMgfHwge307XG5cdFx0b3B0aW9ucy5oZWFkZXIgPSBPYmplY3QuYXNzaWduKHt9LCB0aGlzLmNvbmZpZy5oZWFkZXIsIG9wdGlvbnMuaGVhZGVyKTtcblx0XHRvcHRpb25zLm1ldGhvZCA9IG9wdGlvbnMubWV0aG9kIHx8IHRoaXMuY29uZmlnLm1ldGhvZDtcblx0XHRvcHRpb25zLnNzbFZlcmlmeSA9IGZhbHNlXG5cblx0XHQvLyBjb25zb2xlLmxvZygnYXBpLmhlbHBlci0tLS0tcmVxdWVzdCcsIG9wdGlvbnMsIHRoaXMub3B0aW9ucylcblxuXHRcdHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XG5cdFx0XHRvcHRpb25zLmNvbXBsZXRlID0gKHJlc3BvbnNlKSA9PiB7XG5cdFx0XHRcdGNvbnNvbGUubG9nKCdhcGkuaGVscGVyLS0tb3B0aW9ucy5jb21wbGV0ZScsIHJlc3BvbnNlKVxuXHRcdFx0XHQvLyDor7fmsYLov5Tlm57lkI7vvIzpmpDol49sb2FkaW5nKOWmguaenOivt+axgui/lOWbnuW/q+eahOivne+8jOWPr+iDveS8muayoeaciWxvYWRpbmcpXG5cdFx0XHRcdHVuaS5oaWRlTG9hZGluZygpO1xuXHRcdFx0XHQvLyDmuIXpmaTlrprml7blmajvvIzlpoLmnpzor7fmsYLlm57mnaXkuobvvIzlsLHml6DpnIBsb2FkaW5nXG5cdFx0XHRcdGNsZWFyVGltZW91dCh0aGlzLmNvbmZpZy50aW1lcik7XG5cdFx0XHRcdHRoaXMuY29uZmlnLnRpbWVyID0gbnVsbDtcblx0XHRcdFx0Ly8g5Yik5pat55So5oi35a+55oum5oiq6L+U5Zue5pWw5o2u55qE6KaB5rGC77yM5aaC5p6cb3JpZ2luYWxEYXRh5Li6dHJ1Ze+8jOi/lOWbnuaJgOacieeahOaVsOaNrihyZXNwb25zZSnliLDmi6bmiKrlmajvvIzlkKbliJnlj6rov5Tlm55yZXNwb25zZS5kYXRhXG5cdFx0XHRcdGlmICh0aGlzLmNvbmZpZy5vcmlnaW5hbERhdGEpIHtcblx0XHRcdFx0XHQvLyDliKTmlq3mmK/lkKblrZjlnKjmi6bmiKrlmahcblx0XHRcdFx0XHRpZiAodGhpcy5pbnRlcmNlcHRvci5yZXNwb25zZSAmJiB0eXBlb2YgdGhpcy5pbnRlcmNlcHRvci5yZXNwb25zZSA9PT0gJ2Z1bmN0aW9uJykge1xuXHRcdFx0XHRcdFx0bGV0IHJlc0ludGVyY2VwdG9ycyA9IHRoaXMuaW50ZXJjZXB0b3IucmVzcG9uc2UocmVzcG9uc2UpO1xuXHRcdFx0XHRcdFx0Ly8g5aaC5p6c5oum5oiq5Zmo5LiN6L+U5ZueZmFsc2XvvIzlsLHlsIbmi6bmiKrlmajov5Tlm57nmoTlhoXlrrnnu5l0aGlzLiR1LnBvc3TnmoR0aGVu5Zue6LCDXG5cdFx0XHRcdFx0XHRpZiAocmVzSW50ZXJjZXB0b3JzICE9PSBmYWxzZSkge1xuXHRcdFx0XHRcdFx0XHRyZXNvbHZlKHJlc0ludGVyY2VwdG9ycyk7XG5cdFx0XHRcdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHRcdFx0XHQvLyDlpoLmnpzmi6bmiKrlmajov5Tlm55mYWxzZe+8jOaEj+WRs+edgOaLpuaIquWZqOWumuS5ieiAheiupOS4uui/lOWbnuaciemXrumimO+8jOebtOaOpeaOpeWFpWNhdGNo5Zue6LCDXG5cdFx0XHRcdFx0XHRcdHJlamVjdChyZXNwb25zZSk7XG5cdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0XHRcdC8vIOWmguaenOimgeaxgui/lOWbnuWOn+Wni+aVsOaNru+8jOWwseeul+ayoeacieaLpuaIquWZqO+8jOS5n+i/lOWbnuacgOWOn+Wni+eahOaVsOaNrlxuXHRcdFx0XHRcdFx0cmVzb2x2ZShyZXNwb25zZSk7XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHRcdGlmIChyZXNwb25zZS5zdGF0dXNDb2RlID09IDIwMCkge1xuXHRcdFx0XHRcdFx0aWYgKHRoaXMuaW50ZXJjZXB0b3IucmVzcG9uc2UgJiYgdHlwZW9mIHRoaXMuaW50ZXJjZXB0b3IucmVzcG9uc2UgPT09XG5cdFx0XHRcdFx0XHRcdCdmdW5jdGlvbicpIHtcblx0XHRcdFx0XHRcdFx0bGV0IHJlc0ludGVyY2VwdG9ycyA9IHRoaXMuaW50ZXJjZXB0b3IucmVzcG9uc2UocmVzcG9uc2UuZGF0YSk7XG5cdFx0XHRcdFx0XHRcdGlmIChyZXNJbnRlcmNlcHRvcnMgIT09IGZhbHNlKSB7XG5cdFx0XHRcdFx0XHRcdFx0cmVzb2x2ZShyZXNJbnRlcmNlcHRvcnMpO1xuXHRcdFx0XHRcdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHRcdFx0XHRcdHJlamVjdChyZXNwb25zZS5kYXRhKTtcblx0XHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0XHRcdFx0Ly8g5aaC5p6c5LiN5piv6L+U5Zue5Y6f5aeL5pWw5o2uKG9yaWdpbmFsRGF0YT1mYWxzZSnvvIzkuJTmsqHmnInmi6bmiKrlmajnmoTmg4XlhrXkuIvvvIzov5Tlm57nuq/mlbDmja7nu5l0aGVu5Zue6LCDXG5cdFx0XHRcdFx0XHRcdHJlc29sdmUocmVzcG9uc2UuZGF0YSk7XG5cdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0XHRcdC8vIOS4jei/lOWbnuWOn+Wni+aVsOaNrueahOaDheWGteS4i++8jOacjeWKoeWZqOeKtuaAgeeggeS4jeS4ujIwMO+8jG1vZGFs5by55qGG5o+Q56S6XG5cdFx0XHRcdFx0XHQvLyBpZihyZXNwb25zZS5lcnJNc2cpIHtcblx0XHRcdFx0XHRcdC8vIFx0dW5pLnNob3dNb2RhbCh7XG5cdFx0XHRcdFx0XHQvLyBcdFx0dGl0bGU6IHJlc3BvbnNlLmVyck1zZ1xuXHRcdFx0XHRcdFx0Ly8gXHR9KTtcblx0XHRcdFx0XHRcdC8vIH1cblx0XHRcdFx0XHRcdGlmIChyZXNwb25zZS5zdGF0dXNDb2RlID09IDUwMCkge1xuXHRcdFx0XHRcdFx0XHR1bmkuc2hvd1RvYXN0KHtcblx0XHRcdFx0XHRcdFx0XHR0aXRsZTogJ+acjeWKoeWZqOW8guW4uCcsXG5cdFx0XHRcdFx0XHRcdFx0ZHVyYXRpb246IDIwMDAsXG5cdFx0XHRcdFx0XHRcdFx0aWNvbjogJ25vbmUnXG5cdFx0XHRcdFx0XHRcdH0pXG5cdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHRpZiAocmVzcG9uc2Uuc3RhdHVzQ29kZSA9PSA0MDEpIHtcblx0XHRcdFx0XHRcdFx0dW5pLnNob3dUb2FzdCh7XG5cdFx0XHRcdFx0XHRcdFx0dGl0bGU6ICfnmbvlvZXlt7LlpLHmlYgnLFxuXHRcdFx0XHRcdFx0XHRcdGR1cmF0aW9uOiAyMDAwLFxuXHRcdFx0XHRcdFx0XHRcdGljb246ICdub25lJ1xuXHRcdFx0XHRcdFx0XHR9KVxuXHRcdFx0XHRcdFx0XHR1bmkubmF2aWdhdGVUbyh7XG5cdFx0XHRcdFx0XHRcdFx0dXJsOiBcIi9wYWdlcy9sb2dpbi9sb2dpblwiXG5cdFx0XHRcdFx0XHRcdH0pXG5cdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHRyZWplY3QocmVzcG9uc2UpXG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9XG5cdFx0XHR9XG5cblx0XHRcdC8vIOWIpOaWreeUqOaIt+S8oOmAkueahFVSTOaYr+WQpi/lvIDlpLQs5aaC5p6c5LiN5pivLOWKoOS4ii/vvIzov5nph4zkvb/nlKjkuoZ1Vmlld+eahHRlc3QuanPpqozor4HlupPnmoR1cmwoKeaWueazlVxuXHRcdFx0b3B0aW9ucy51cmwgPSB2YWxpZGF0ZS51cmwob3B0aW9ucy51cmwpID8gb3B0aW9ucy51cmwgOiAoKG9wdGlvbnMuYmFzZVVybCA/IG9wdGlvbnMuYmFzZVVybCA6XG5cdFx0XHRcdHRoaXNcblx0XHRcdFx0LmNvbmZpZy5iYXNlVXJsKSArIChvcHRpb25zLnVybFxuXHRcdFx0XHQuaW5kZXhPZignLycpID09IDAgP1xuXHRcdFx0XHRvcHRpb25zLnVybCA6ICcvJyArIG9wdGlvbnMudXJsKSk7XG5cblx0XHRcdC8vIOaYr+WQpuaYvuekumxvYWRpbmdcblx0XHRcdC8vIOWKoOS4gOS4quaYr+WQpuW3suaciXRpbWVy5a6a5pe25Zmo55qE5Yik5pat77yM5ZCm5YiZ5pyJ5Lik5Liq5ZCM5pe26K+35rGC55qE5pe25YCZ77yM5ZCO6ICF5Lya5riF6Zmk5YmN6ICF55qE5a6a5pe25ZmoaWRcblx0XHRcdC8vIOiAjOayoeaciea4hemZpOWJjeiAheeahOWumuaXtuWZqO+8jOWvvOiHtOWJjeiAhei2heaXtu+8jOS4gOebtOaYvuekumxvYWRpbmdcblx0XHRcdGlmICh0aGlzLmNvbmZpZy5zaG93TG9hZGluZyAmJiAhdGhpcy5jb25maWcudGltZXIpIHtcblx0XHRcdFx0dGhpcy5jb25maWcudGltZXIgPSBzZXRUaW1lb3V0KCgpID0+IHtcblx0XHRcdFx0XHR1bmkuc2hvd0xvYWRpbmcoe1xuXHRcdFx0XHRcdFx0dGl0bGU6IHRoaXMuY29uZmlnLmxvYWRpbmdUZXh0LFxuXHRcdFx0XHRcdFx0bWFzazogdGhpcy5jb25maWcubG9hZGluZ01hc2tcblx0XHRcdFx0XHR9KVxuXHRcdFx0XHRcdHRoaXMuY29uZmlnLnRpbWVyID0gbnVsbDtcblx0XHRcdFx0fSwgdGhpcy5jb25maWcubG9hZGluZ1RpbWUpO1xuXHRcdFx0fVxuXHRcdFx0Ly8gY29uc29sZS5sb2coJ2FwaS5oZWxwZXItLS0tLWZpbmFsbHkqKipyZXF1ZXN0Jywgb3B0aW9ucylcblx0XHRcdHVuaS5yZXF1ZXN0KG9wdGlvbnMpO1xuXHRcdH0pXG5cdFx0Ly8gLmNhdGNoKHJlcyA9PiB7XG5cdFx0Ly8gXHQvLyDlpoLmnpzov5Tlm55yZWplY3QoKe+8jOS4jeiuqeWFtui/m+WFpXRoaXMuJHUucG9zdCgpLnRoZW4oKS5jYXRjaCgp5ZCO6Z2i55qEY2F0Y3QoKVxuXHRcdC8vIFx0Ly8g5Zug5Li65b6I5aSa5Lq66YO95Lya5b+Y5LqG5YaZ5ZCO6Z2i55qEY2F0Y2goKe+8jOWvvOiHtOaKpemUmeaNleiOt+S4jeWIsGNhdGNoXG5cdFx0Ly8gXHRyZXR1cm4gbmV3IFByb21pc2UoKCk9Pnt9KTtcblx0XHQvLyB9KVxuXHR9XG5cblx0Y29uc3RydWN0b3IoKSB7XG5cdFx0dGhpcy5jb25maWcgPSB7XG5cdFx0XHRiYXNlVXJsOiAnaHR0cDovLzIyMS4xMC4xMjcuNjA6NTAwMCcsIC8vIOivt+axgueahOagueWfn+WQjVxuXHRcdFx0Ly8g6buY6K6k55qE6K+35rGC5aS0XG5cdFx0XHRoZWFkZXI6IHt9LFxuXHRcdFx0bWV0aG9kOiAnUE9TVCcsXG5cdFx0XHQvLyDorr7nva7kuLpqc29u77yM6L+U5Zue5ZCOdW5pLnJlcXVlc3TkvJrlr7nmlbDmja7ov5vooYzkuIDmrKFKU09OLnBhcnNlXG5cdFx0XHRkYXRhVHlwZTogJ2pzb24nLFxuXHRcdFx0Ly8g5q2k5Y+C5pWw5peg6ZyA5aSE55CG77yM5Zug5Li6NSvlkozmlK/ku5jlrp3lsI/nqIvluo/kuI3mlK/mjIHvvIzpu5jorqTkuLp0ZXh05Y2z5Y+vXG5cdFx0XHRyZXNwb25zZVR5cGU6ICd0ZXh0Jyxcblx0XHRcdHNob3dMb2FkaW5nOiB0cnVlLCAvLyDmmK/lkKbmmL7npLror7fmsYLkuK3nmoRsb2FkaW5nXG5cdFx0XHRsb2FkaW5nVGV4dDogJ+ivt+axguS4rS4uLicsXG5cdFx0XHRsb2FkaW5nVGltZTogODAwLCAvLyDlnKjmraTml7bpl7TlhoXvvIzor7fmsYLov5jmsqHlm57mnaXnmoTor53vvIzlsLHmmL7npLrliqDovb3kuK3liqjnlLvvvIzljZXkvY1tc1xuXHRcdFx0dGltZXI6IG51bGwsIC8vIOWumuaXtuWZqFxuXHRcdFx0c3NsVmVyaWZ5OiBmYWxzZSwgLy8g5a6a5pe25ZmoXG5cdFx0XHRvcmlnaW5hbERhdGE6IGZhbHNlLCAvLyDmmK/lkKblnKjmi6bmiKrlmajkuK3ov5Tlm57mnI3liqHnq6/nmoTljp/lp4vmlbDmja7vvIzop4HmlofmoaPor7TmmI5cblx0XHRcdGxvYWRpbmdNYXNrOiB0cnVlLCAvLyDlsZXnpLpsb2FkaW5n55qE5pe25YCZ77yM5piv5ZCm57uZ5LiA5Liq6YCP5piO55qE6JKZ5bGC77yM6Ziy5q2i6Kem5pG456m/6YCPXG5cdFx0fVxuXG5cdFx0Ly8g5oum5oiq5ZmoXG5cdFx0dGhpcy5pbnRlcmNlcHRvciA9IHtcblx0XHRcdC8vIOivt+axguWJjeeahOaLpuaIqlxuXHRcdFx0cmVxdWVzdDogKGNvbmZpZykgPT4ge1xuXHRcdFx0XHRjb25maWcuaGVhZGVyWydBdXRob3JpemF0aW9uJ10gPSBgQmFzaWMgJHtCYXNlNjQuZW5jb2RlKCd3YW5ncGM6TFpZODg4QEAnKX1gO1xuXHRcdFx0XHR0cnkge1xuXHRcdFx0XHRcdGlmIChjb25maWcudXJsLmluZGV4T2YoJ2NybS1hcHAvbG9naW4nKSA9PT0gLVxuXHRcdFx0XHRcdFx0MSAmJlxuXHRcdFx0XHRcdFx0c3RvcmUuc3RhdGUudnVleF90b2tlbikge1xuXHRcdFx0XHRcdFx0Y29uZmlnLmhlYWRlclsnWC1BdXRoLVRva2VuJ10gPSBzdG9yZVxuXHRcdFx0XHRcdFx0XHQuc3RhdGUudnVleF90b2tlblxuXHRcdFx0XHRcdH1cblxuXHRcdFx0XHRcdGlmIChjb25maWcuaGVhZGVyWydDb250ZW50LVR5cGUnXSAmJiBjb25maWcuaGVhZGVyWydDb250ZW50LVR5cGUnXS5pbmRleE9mKFxuXHRcdFx0XHRcdFx0XHQneC13d3ctZm9ybS11cmxlbmNvZGVkJykgPT09IC0xKSB7XG5cdFx0XHRcdFx0XHRjb25maWcuaGVhZGVyWydDb250ZW50LVR5cGUnXSA9IFwiYXBwbGljYXRpb24vanNvbjsgY2hhcnNldD11dGYtOFwiXG5cdFx0XHRcdFx0fVxuXG5cblx0XHRcdFx0XHRpZiAoY29uZmlnLnVybC5pbmRleE9mKCdjcm0tYXBwJykgIT09IC0xKSB7XG5cdFx0XHRcdFx0XHQvLyBjb25maWcuYmFzZVVybCA9ICdodHRwOi8vMTAuMC4xMzUuNjEnXG5cdFx0XHRcdFx0XHRjb25maWcuYmFzZVVybCA9ICdodHRwOi8vMjIxLjEwLjEyNy42MDo1MDAwJ1xuXHRcdFx0XHRcdH0gZWxzZSBpZiAoY29uZmlnLnVybC5pbmRleE9mKCdhZGFwdGVyJykgIT09IC0xKSB7XG5cdFx0XHRcdFx0XHQvLyBjb25maWcuYmFzZVVybCA9ICdodHRwOi8vYXBpLmMwMzMxLmRldi5ndWFueWluZ3l1bi5jb20nXG5cdFx0XHRcdFx0XHR
jb25maWcuYmFzZVVybCA9ICdodHRwOi8vMjIxLjEwLjEyNy42MDo1MDAwL2N5aidcblx0XHRcdFx0XHR9IGVsc2UgaWYgKGNvbmZpZy51cmwuaW5kZXhPZignd21kcHdlYnNlcnZpY2VzJykgIT09IC0xKSB7XG5cdFx0XHRcdFx0XHQvLyBjb25maWcuYmFzZVVybCA9ICdodHRwczovLzEwLjAuMTM0LjE4Mjo5MDAyJ1xuXHRcdFx0XHRcdFx0Y29uZmlnLmJhc2VVcmwgPSAnaHR0cDovLzIyMS4xMC4xMjcuNjA6NTAwMC9zY3p4J1xuXHRcdFx0XHRcdFx0Ly8gY29uZmlnLmJhc2VVcmwgPSAnJ1xuXHRcdFx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdFx0XHRjb25maWcuYmFzZVVybCA9ICdodHRwOi8vMjIxLjEwLjEyNy42MDo1MDAwL3dseVNhcCdcblx0XHRcdFx0XHR9XG5cdFx0XHRcdH0gY2F0Y2ggKGUpIHtcblx0XHRcdFx0XHRjb25zb2xlLmxvZygnZXJyb3InLCBlKVxuXHRcdFx0XHR9XG5cdFx0XHRcdC8vIGlmIChjb25maWcudXJsLmluZGV4T2YoJ2NybS1hcHAvbG9naW4nKSAhPT0gLTEgJiYgIXN0b3JlLnN0YXRlLnZ1ZXhfdG9rZW4pIHtcblx0XHRcdFx0Ly8gXHR1bmkuc2hvd1RvYXN0KHtcblx0XHRcdFx0Ly8gXHRcdHRpdGxlOiAn55m75b2V5bey5aSx5pWIJyxcblx0XHRcdFx0Ly8gXHRcdGR1cmF0aW9uOiAyMDAwLFxuXHRcdFx0XHQvLyBcdFx0aWNvbjogJ25vbmUnXG5cdFx0XHRcdC8vIFx0fSk7XG5cdFx0XHRcdC8vIFx0dW5pLm5hdmlnYXRlVG8oe1xuXHRcdFx0XHQvLyBcdFx0dXJsOiBcIi9wYWdlcy9sb2dpbi9sb2dpblwiXG5cdFx0XHRcdC8vIFx0fSlcblx0XHRcdFx0Ly8gfVxuXHRcdFx0XHRjb25zb2xlLmxvZygnaGVscGVyLS1pbnRlcmNlcHRvci0tLXJlcXVlc3QtLS0tLScsIGNvbmZpZylcblx0XHRcdFx0cmV0dXJuIGNvbmZpZztcblx0XHRcdH0sXG5cdFx0XHQvLyDor7fmsYLlkI7nmoTmi6bmiKpcblx0XHRcdHJlc3BvbnNlOiAocmVzKSA9PiB7XG5cdFx0XHRcdGNvbnNvbGUubG9nKCdoZWxwZXItLWlpbnRlcmNlcHRvci0tLXJlc3BvbnNlLS0tLS0nLCByZXMpXG5cdFx0XHRcdGlmIChyZXMuTVNHVFlQRSA9PT0gJ1MnIHx8IHJlcy5tc2d0eXBlID09PSAnUycgfHwgcmVzLnN0YXR1cyA9PT0gMSB8fCByZXMucmVzdWx0ID09PSBcIlNcIiB8fFxuXHRcdFx0XHRcdHJlcy5TdGF0dXMgPT09XG5cdFx0XHRcdFx0J1N1Y2Nlc3MnKSB7XG5cdFx0XHRcdFx0Ly8g5aaC5p6c5oqKb3JpZ2luYWxEYXRh6K6+572u5Li65LqGdHJ1Ze+8jOi/memHjHJldHVybuWbnuS7gOS5iO+8jHRoaXMuJHUucG9zdOeahHRoZW7lm57osIPkuK3lsLHkvJrlvpfliLDku4DkuYhcblx0XHRcdFx0XHRyZXR1cm4gcmVzO1xuXHRcdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHRcdHVuaS5zaG93VG9hc3Qoe1xuXHRcdFx0XHRcdFx0dGl0bGU6IHJlcy5NRVNTQUdFIHx8IHJlcy5tc2cgfHwgcmVzLm1lc3NhZ2UgfHwgcmVzLkVyck1zZyxcblx0XHRcdFx0XHRcdGR1cmF0aW9uOiAyMDAwLFxuXHRcdFx0XHRcdFx0aWNvbjogJ25vbmUnXG5cdFx0XHRcdFx0fSk7XG5cdFx0XHRcdFx0cmV0dXJuIGZhbHNlXG5cdFx0XHRcdH07XG5cdFx0XHR9XG5cdFx0fVxuXG5cdFx0Ly8gZ2V06K+35rGCXG5cdFx0dGhpcy5nZXQgPSAodXJsLCBkYXRhID0ge30sIGhlYWRlciA9IHt9KSA9PiB7XG5cdFx0XHRyZXR1cm4gdGhpcy5yZXF1ZXN0KHtcblx0XHRcdFx0bWV0aG9kOiAnR0VUJyxcblx0XHRcdFx0dXJsLFxuXHRcdFx0XHRoZWFkZXIsXG5cdFx0XHRcdGRhdGFcblx0XHRcdH0pXG5cdFx0fVxuXG5cdFx0Ly8gcG9zdOivt+axglxuXHRcdHRoaXMucG9zdCA9ICh1cmwsIGRhdGEgPSB7fSwgaGVhZGVyID0ge30pID0+IHtcblx0XHRcdHJldHVybiB0aGlzLnJlcXVlc3Qoe1xuXHRcdFx0XHR1cmwsXG5cdFx0XHRcdG1ldGhvZDogJ1BPU1QnLFxuXHRcdFx0XHRoZWFkZXIsXG5cdFx0XHRcdGRhdGFcblx0XHRcdH0pXG5cdFx0fVxuXG5cdFx0Ly8gcHV06K+35rGC77yM5LiN5pSv5oyB5pSv5LuY5a6d5bCP56iL5bqPKEhYMi42LjE1KVxuXHRcdHRoaXMucHV0ID0gKHVybCwgZGF0YSA9IHt9LCBoZWFkZXIgPSB7fSkgPT4ge1xuXHRcdFx0cmV0dXJuIHRoaXMucmVxdWVzdCh7XG5cdFx0XHRcdHVybCxcblx0XHRcdFx0bWV0aG9kOiAnUFVUJyxcblx0XHRcdFx0aGVhZGVyLFxuXHRcdFx0XHRkYXRhXG5cdFx0XHR9KVxuXHRcdH1cblxuXHRcdC8vIGRlbGV0Zeivt+axgu+8jOS4jeaUr+aMgeaUr+S7mOWuneWSjOWktOadoeWwj+eoi+W6jyhIWDIuNi4xNSlcblx0XHR0aGlzLmRlbGV0ZSA9ICh1cmwsIGRhdGEgPSB7fSwgaGVhZGVyID0ge30pID0+IHtcblx0XHRcdHJldHVybiB0aGlzLnJlcXVlc3Qoe1xuXHRcdFx0XHR1cmwsXG5cdFx0XHRcdG1ldGhvZDogJ0RFTEVURScsXG5cdFx0XHRcdGhlYWRlcixcblx0XHRcdFx0ZGF0YVxuXHRcdFx0fSlcblx0XHR9XG5cdH1cbn1cbmV4cG9ydCBkZWZhdWx0IG5ldyBSZXF1ZXN0XG4iXSwic291cmNlUm9vdCI6IiJ9
\n
//# sourceURL=webpack-internal:///15
\n
"
);
eval
(
"/* WEBPACK VAR INJECTION */(function(__f__) {Object.defineProperty(exports,
\"
__esModule
\"
, { value: true });exports.default = void 0;var _index = __webpack_require__(/*! @/utils/index.js */ 16);
\n\n\n
var _validate = _interopRequireDefault(__webpack_require__(/*! @/utils/validate.js */ 17));
\n
var _jsBase = __webpack_require__(/*! js-base64 */ 18);
\n\n\n
var _index2 = _interopRequireDefault(__webpack_require__(/*! @/store/index.js */ 19));function _interopRequireDefault(obj) {return obj && obj.__esModule ? obj : { default: obj };}function _classCallCheck(instance, Constructor) {if (!(instance instanceof Constructor)) {throw new TypeError(
\"
Cannot call a class as a function
\"
);}}function _defineProperties(target, props) {for (var i = 0; i < props.length; i++) {var descriptor = props[i];descriptor.enumerable = descriptor.enumerable || false;descriptor.configurable = true;if (
\"
value
\"
in descriptor) descriptor.writable = true;Object.defineProperty(target, descriptor.key, descriptor);}}function _createClass(Constructor, protoProps, staticProps) {if (protoProps) _defineProperties(Constructor.prototype, protoProps);if (staticProps) _defineProperties(Constructor, staticProps);return Constructor;}var
\n\n
Request = /*#__PURE__*/function () {_createClass(Request, [{ key:
\"
setConfig
\"
,
\n
// 设置全局默认配置
\n
value: function setConfig(customConfig) {
\n
// 深度合并对象,否则会造成对象深层属性丢失
\n
this.config = (0, _index.deepMerge)(this.config, customConfig);
\n
}
\n\n
// 主要请求部分
\n
}, { key:
\"
request
\"
, value: function request() {var _this = this;var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
\n\n
// 检查请求拦截
\n
if (this.interceptor.request && typeof this.interceptor.request === 'function') {
\n
var tmpConfig = {};
\n
var interceptorRequest = this.interceptor.request(options);
\n
if (interceptorRequest === false) {
\n
// 返回一个处于pending状态中的Promise,来取消原promise,避免进入then()回调
\n
return new Promise(function () {});
\n
}
\n
this.options = interceptorRequest;
\n
}
\n\n
options.dataType = options.dataType || this.config.dataType;
\n
options.responseType = options.responseType || this.config.responseType;
\n
options.url = options.url || '';
\n
options.params = options.params || {};
\n
options.header = Object.assign({}, this.config.header, options.header);
\n
options.method = options.method || this.config.method;
\n
options.sslVerify = false;
\n\n
// console.log('api.helper-----request', options, this.options)
\n\n
return new Promise(function (resolve, reject) {
\n
options.complete = function (response) {
\n
__f__(
\"
log
\"
, 'api.helper---options.complete', response,
\"
at servers/api.helper.js:43
\"
);
\n
// 请求返回后,隐藏loading(如果请求返回快的话,可能会没有loading)
\n
uni.hideLoading();
\n
// 清除定时器,如果请求回来了,就无需loading
\n
clearTimeout(_this.config.timer);
\n
_this.config.timer = null;
\n
// 判断用户对拦截返回数据的要求,如果originalData为true,返回所有的数据(response)到拦截器,否则只返回response.data
\n
if (_this.config.originalData) {
\n
// 判断是否存在拦截器
\n
if (_this.interceptor.response && typeof _this.interceptor.response === 'function') {
\n
var resInterceptors = _this.interceptor.response(response);
\n
// 如果拦截器不返回false,就将拦截器返回的内容给this.$u.post的then回调
\n
if (resInterceptors !== false) {
\n
resolve(resInterceptors);
\n
} else {
\n
// 如果拦截器返回false,意味着拦截器定义者认为返回有问题,直接接入catch回调
\n
reject(response);
\n
}
\n
} else {
\n
// 如果要求返回原始数据,就算没有拦截器,也返回最原始的数据
\n
resolve(response);
\n
}
\n
} else {
\n
if (response.statusCode == 200) {
\n
if (_this.interceptor.response && typeof _this.interceptor.response ===
\n
'function') {
\n
var _resInterceptors = _this.interceptor.response(response.data);
\n
if (_resInterceptors !== false) {
\n
resolve(_resInterceptors);
\n
} else {
\n
reject(response.data);
\n
}
\n
} else {
\n
// 如果不是返回原始数据(originalData=false),且没有拦截器的情况下,返回纯数据给then回调
\n
resolve(response.data);
\n
}
\n
} else {
\n
// 不返回原始数据的情况下,服务器状态码不为200,modal弹框提示
\n
// if(response.errMsg) {
\n
//
\
tuni.showModal({
\n
//
\
t
\
ttitle: response.errMsg
\n
//
\
t});
\n
// }
\n
if (response.statusCode == 500) {
\n
uni.showToast({
\n
title: '服务器异常',
\n
duration: 2000,
\n
icon: 'none' });
\n\n
}
\n
if (response.statusCode == 401) {
\n
uni.showToast({
\n
title: '登录已失效',
\n
duration: 2000,
\n
icon: 'none' });
\n\n
uni.navigateTo({
\n
url:
\"
/pages/login/login
\"
});
\n\n
}
\n
reject(response);
\n
}
\n
}
\n
};
\n\n
// 判断用户传递的URL是否/开头,如果不是,加上/,这里使用了uView的test.js验证库的url()方法
\n
options.url = _validate.default.url(options.url) ? options.url : (options.baseUrl ? options.baseUrl :
\n
_this.
\n
config.baseUrl) + (options.url.
\n
indexOf('/') == 0 ?
\n
options.url : '/' + options.url);
\n\n
// 是否显示loading
\n
// 加一个是否已有timer定时器的判断,否则有两个同时请求的时候,后者会清除前者的定时器id
\n
// 而没有清除前者的定时器,导致前者超时,一直显示loading
\n
if (_this.config.showLoading && !_this.config.timer) {
\n
_this.config.timer = setTimeout(function () {
\n
uni.showLoading({
\n
title: _this.config.loadingText,
\n
mask: _this.config.loadingMask });
\n\n
_this.config.timer = null;
\n
}, _this.config.loadingTime);
\n
}
\n
// console.log('api.helper-----finally***request', options)
\n
uni.request(options);
\n
});
\n
// .catch(res => {
\n
//
\
t// 如果返回reject(),不让其进入this.$u.post().then().catch()后面的catct()
\n
//
\
t// 因为很多人都会忘了写后面的catch(),导致报错捕获不到catch
\n
//
\
treturn new Promise(()=>{});
\n
// })
\n
} }]);
\n\n
function Request() {var _this2 = this;_classCallCheck(this, Request);
\n
this.config = {
\n
baseUrl: 'http://221.10.127.60:5000', // 请求的根域名
\n
// 默认的请求头
\n
header: {},
\n
method: 'POST',
\n
// 设置为json,返回后uni.request会对数据进行一次JSON.parse
\n
dataType: 'json',
\n
// 此参数无需处理,因为5+和支付宝小程序不支持,默认为text即可
\n
responseType: 'text',
\n
showLoading: true, // 是否显示请求中的loading
\n
loadingText: '请求中...',
\n
loadingTime: 800, // 在此时间内,请求还没回来的话,就显示加载中动画,单位ms
\n
timer: null, // 定时器
\n
sslVerify: false, // 定时器
\n
originalData: false, // 是否在拦截器中返回服务端的原始数据,见文档说明
\n
loadingMask: true // 展示loading的时候,是否给一个透明的蒙层,防止触摸穿透
\n
};
\n\n
// 拦截器
\n
this.interceptor = {
\n
// 请求前的拦截
\n
request: function request(config) {
\n
config.header['Authorization'] =
\"
Basic
\"
.concat(_jsBase.Base64.encode('wangpc:LZY888@@'));
\n
try {
\n
if (config.url.indexOf('crm-app/login') === -
\n
1 &&
\n
_index2.default.state.vuex_token) {
\n
config.header['X-Auth-Token'] = _index2.default.
\n
state.vuex_token;
\n
}
\n\n
if (config.header['Content-Type'] && config.header['Content-Type'].indexOf(
\n
'x-www-form-urlencoded') === -1) {
\n
config.header['Content-Type'] =
\"
application/json; charset=utf-8
\"
;
\n
}
\n\n\n
if (config.url.indexOf('crm-app') !== -1) {
\n
// config.baseUrl = 'http://10.0.135.61'
\n
config.baseUrl = 'http://221.10.127.60:5000';
\n
} else if (config.url.indexOf('adapter') !== -1) {
\n
config.baseUrl = 'http://api.c0331.dev.guanyingyun.com';
\n
// config.baseUrl = 'http://221.10.127.60:5000/cyj'
\n
} else if (config.url.indexOf('wmdpwebservices') !== -1) {
\n
// config.baseUrl = 'https://10.0.134.182:9002'
\n
config.baseUrl = 'http://221.10.127.60:5000/sczx';
\n
// config.baseUrl = ''
\n
} else {
\n
config.baseUrl = 'http://221.10.127.60:5000/wlySap';
\n
}
\n
} catch (e) {
\n
__f__(
\"
log
\"
, 'error', e,
\"
at servers/api.helper.js:189
\"
);
\n
}
\n
// if (config.url.indexOf('crm-app/login') !== -1 && !store.state.vuex_token) {
\n
//
\
tuni.showToast({
\n
//
\
t
\
ttitle: '登录已失效',
\n
//
\
t
\
tduration: 2000,
\n
//
\
t
\
ticon: 'none'
\n
//
\
t});
\n
//
\
tuni.navigateTo({
\n
//
\
t
\
turl:
\"
/pages/login/login
\"\n
//
\
t})
\n
// }
\n
__f__(
\"
log
\"
, 'helper--interceptor---request-----', config,
\"
at servers/api.helper.js:201
\"
);
\n
return config;
\n
},
\n
// 请求后的拦截
\n
response: function response(res) {
\n
__f__(
\"
log
\"
, 'helper--iinterceptor---response-----', res,
\"
at servers/api.helper.js:206
\"
);
\n
if (res.MSGTYPE === 'S' || res.msgtype === 'S' || res.status === 1 || res.result ===
\"
S
\"
||
\n
res.Status ===
\n
'Success') {
\n
// 如果把originalData设置为了true,这里return回什么,this.$u.post的then回调中就会得到什么
\n
return res;
\n
} else {
\n
uni.showToast({
\n
title: res.MESSAGE || res.msg || res.message || res.ErrMsg,
\n
duration: 2000,
\n
icon: 'none' });
\n\n
return false;
\n
};
\n
} };
\n\n\n
// get请求
\n
this.get = function (url) {var data = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};var header = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
\n
return _this2.request({
\n
method: 'GET',
\n
url: url,
\n
header: header,
\n
data: data });
\n\n
};
\n\n
// post请求
\n
this.post = function (url) {var data = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};var header = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
\n
return _this2.request({
\n
url: url,
\n
method: 'POST',
\n
header: header,
\n
data: data });
\n\n
};
\n\n
// put请求,不支持支付宝小程序(HX2.6.15)
\n
this.put = function (url) {var data = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};var header = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
\n
return _this2.request({
\n
url: url,
\n
method: 'PUT',
\n
header: header,
\n
data: data });
\n\n
};
\n\n
// delete请求,不支持支付宝和头条小程序(HX2.6.15)
\n
this.delete = function (url) {var data = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};var header = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
\n
return _this2.request({
\n
url: url,
\n
method: 'DELETE',
\n
header: header,
\n
data: data });
\n\n
};
\n
}return Request;}();var _default =
\n\n
new Request();exports.default = _default;
\n
/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./node_modules/@dcloudio/vue-cli-plugin-uni/lib/format-log.js */ 10)[
\"
default
\"
]))//# sourceURL=[module]
\n
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInVuaS1hcHA6Ly8vc2VydmVycy9hcGkuaGVscGVyLmpzIl0sIm5hbWVzIjpbIlJlcXVlc3QiLCJjdXN0b21Db25maWciLCJjb25maWciLCJvcHRpb25zIiwiaW50ZXJjZXB0b3IiLCJyZXF1ZXN0IiwidG1wQ29uZmlnIiwiaW50ZXJjZXB0b3JSZXF1ZXN0IiwiUHJvbWlzZSIsImRhdGFUeXBlIiwicmVzcG9uc2VUeXBlIiwidXJsIiwicGFyYW1zIiwiaGVhZGVyIiwiT2JqZWN0IiwiYXNzaWduIiwibWV0aG9kIiwic3NsVmVyaWZ5IiwicmVzb2x2ZSIsInJlamVjdCIsImNvbXBsZXRlIiwicmVzcG9uc2UiLCJ1bmkiLCJoaWRlTG9hZGluZyIsImNsZWFyVGltZW91dCIsInRpbWVyIiwib3JpZ2luYWxEYXRhIiwicmVzSW50ZXJjZXB0b3JzIiwic3RhdHVzQ29kZSIsImRhdGEiLCJzaG93VG9hc3QiLCJ0aXRsZSIsImR1cmF0aW9uIiwiaWNvbiIsIm5hdmlnYXRlVG8iLCJ2YWxpZGF0ZSIsImJhc2VVcmwiLCJpbmRleE9mIiwic2hvd0xvYWRpbmciLCJzZXRUaW1lb3V0IiwibG9hZGluZ1RleHQiLCJtYXNrIiwibG9hZGluZ01hc2siLCJsb2FkaW5nVGltZSIsIkJhc2U2NCIsImVuY29kZSIsInN0b3JlIiwic3RhdGUiLCJ2dWV4X3Rva2VuIiwiZSIsInJlcyIsIk1TR1RZUEUiLCJtc2d0eXBlIiwic3RhdHVzIiwicmVzdWx0IiwiU3RhdHVzIiwiTUVTU0FHRSIsIm1zZyIsIm1lc3NhZ2UiLCJFcnJNc2ciLCJnZXQiLCJwb3N0IiwicHV0IiwiZGVsZXRlIl0sIm1hcHBpbmdzIjoib0lBQUE7OztBQUdBO0FBQ0E7OztBQUdBLHNGOztBQUVNQSxPO0FBQ0w7OEJBQ1VDLFksRUFBYztBQUN2QjtBQUNBLFdBQUtDLE1BQUwsR0FBYyxzQkFBVSxLQUFLQSxNQUFmLEVBQXVCRCxZQUF2QixDQUFkO0FBQ0E7O0FBRUQ7aURBQ3NCLHNCQUFkRSxPQUFjLHVFQUFKLEVB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QTtBQUNBLFNBQUtnQyxJQUFMLEdBQVksVUFBQ2xELEdBQUQsRUFBaUMsS0FBM0JrQixJQUEyQix1RUFBcEIsRUFBb0IsS0FBaEJoQixNQUFnQix1RUFBUCxFQUFPO0FBQzVDLGFBQU8sTUFBSSxDQUFDUixPQUFMLENBQWE7QUFDbkJNLFdBQUcsRUFBSEEsR0FEbUI7QUFFbkJLLGNBQU0sRUFBRSxNQUZXO0FBR25CSCxjQUFNLEVBQU5BLE1BSG1CO0FBSW5CZ0IsWUFBSSxFQUFKQSxJQUptQixFQUFiLENBQVA7O0FBTUEsS0FQRDs7QUFTQTtBQUNBLFNBQUtpQyxHQUFMLEdBQVcsVUFBQ25ELEdBQUQsRUFBaUMsS0FBM0JrQixJQUEyQix1RUFBcEIsRUFBb0IsS0FBaEJoQixNQUFnQix1RUFBUCxFQUFPO0FBQzNDLGFBQU8sTUFBSSxDQUFDUixPQUFMLENBQWE7QUFDbkJNLFdBQUcsRUFBSEEsR0FEbUI7QUFFbkJLLGNBQU0sRUFBRSxLQUZXO0FBR25CSCxjQUFNLEVBQU5BLE1BSG1CO0FBSW5CZ0IsWUFBSSxFQUFKQSxJQUptQixFQUFiLENBQVA7O0FBTUEsS0FQRDs7QUFTQTtBQUNBLFNBQUtrQyxNQUFMLEdBQWMsVUFBQ3BELEdBQUQsRUFBaUMsS0FBM0JrQixJQUEyQix1RUFBcEIsRUFBb0IsS0FBaEJoQixNQUFnQix1RUFBUCxFQUFPO0FBQzlDLGFBQU8sTUFBSSxDQUFDUixPQUFMLENBQWE7QUFDbkJNLFdBQUcsRUFBSEEsR0FEbUI7QUFFbkJLLGNBQU0sRUFBRSxRQUZXO0FBR25CSCxjQUFNLEVBQU5BLE1BSG1CO0FBSW5CZ0IsWUFBSSxFQUFKQSxJQUptQixFQUFiLENBQVA7O0FBTUEsS0FQRDtBQVFBLEc7O0FBRWEsSUFBSTdCLE9BQUosRSIsImZpbGUiOiIxNS5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG5cdGRlZXBNZXJnZVxufSBmcm9tIFwiQC91dGlscy9pbmRleC5qc1wiO1xuaW1wb3J0IHZhbGlkYXRlIGZyb20gXCJAL3V0aWxzL3ZhbGlkYXRlLmpzXCI7XG5pbXBvcnQge1xuXHRCYXNlNjRcbn0gZnJvbSAnanMtYmFzZTY0J1xuaW1wb3J0IHN0b3JlIGZyb20gJ0Avc3RvcmUvaW5kZXguanMnXG5cbmNsYXNzIFJlcXVlc3Qge1xuXHQvLyDorr7nva7lhajlsYDpu5jorqTphY3nva5cblx0c2V0Q29uZmlnKGN1c3RvbUNvbmZpZykge1xuXHRcdC8vIOa3seW6puWQiOW5tuWvueixoe+8jOWQpuWImeS8mumAoOaIkOWvueixoea3seWxguWxnuaAp+S4ouWksVxuXHRcdHRoaXMuY29uZmlnID0gZGVlcE1lcmdlKHRoaXMuY29uZmlnLCBjdXN0b21Db25maWcpO1xuXHR9XG5cblx0Ly8g5Li76KaB6K+35rGC6YOo5YiGXG5cdHJlcXVlc3Qob3B0aW9ucyA9IHt9KSB7XG5cblx0XHQvLyDmo4Dmn6Xor7fmsYLmi6bmiKpcblx0XHRpZiAodGhpcy5pbnRlcmNlcHRvci5yZXF1ZXN0ICYmIHR5cGVvZiB0aGlzLmludGVyY2VwdG9yLnJlcXVlc3QgPT09ICdmdW5jdGlvbicpIHtcblx0XHRcdGxldCB0bXBDb25maWcgPSB7fTtcblx0XHRcdGxldCBpbnRlcmNlcHRvclJlcXVlc3QgPSB0aGlzLmludGVyY2VwdG9yLnJlcXVlc3Qob3B0aW9ucyk7XG5cdFx0XHRpZiAoaW50ZXJjZXB0b3JSZXF1ZXN0ID09PSBmYWxzZSkge1xuXHRcdFx0XHQvLyDov5Tlm57kuIDkuKrlpITkuo5wZW5kaW5n54q25oCB5Lit55qEUHJvbWlzZe+8jOadpeWPlua2iOWOn3Byb21pc2XvvIzpgb/lhY3ov5vlhaV0aGVuKCnlm57osINcblx0XHRcdFx0cmV0dXJuIG5ldyBQcm9taXNlKCgpID0+IHt9KTtcblx0XHRcdH1cblx0XHRcdHRoaXMub3B0aW9ucyA9IGludGVyY2VwdG9yUmVxdWVzdDtcblx0XHR9XG5cblx0XHRvcHRpb25zLmRhdGFUeXBlID0gb3B0aW9ucy5kYXRhVHlwZSB8fCB0aGlzLmNvbmZpZy5kYXRhVHlwZTtcblx0XHRvcHRpb25zLnJlc3BvbnNlVHlwZSA9IG9wdGlvbnMucmVzcG9uc2VUeXBlIHx8IHRoaXMuY29uZmlnLnJlc3BvbnNlVHlwZTtcblx0XHRvcHRpb25zLnVybCA9IG9wdGlvbnMudXJsIHx8ICcnO1xuXHRcdG9wdGlvbnMucGFyYW1zID0gb3B0aW9ucy5wYXJhbXMgfHwge307XG5cdFx0b3B0aW9ucy5oZWFkZXIgPSBPYmplY3QuYXNzaWduKHt9LCB0aGlzLmNvbmZpZy5oZWFkZXIsIG9wdGlvbnMuaGVhZGVyKTtcblx0XHRvcHRpb25zLm1ldGhvZCA9IG9wdGlvbnMubWV0aG9kIHx8IHRoaXMuY29uZmlnLm1ldGhvZDtcblx0XHRvcHRpb25zLnNzbFZlcmlmeSA9IGZhbHNlXG5cblx0XHQvLyBjb25zb2xlLmxvZygnYXBpLmhlbHBlci0tLS0tcmVxdWVzdCcsIG9wdGlvbnMsIHRoaXMub3B0aW9ucylcblxuXHRcdHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XG5cdFx0XHRvcHRpb25zLmNvbXBsZXRlID0gKHJlc3BvbnNlKSA9PiB7XG5cdFx0XHRcdGNvbnNvbGUubG9nKCdhcGkuaGVscGVyLS0tb3B0aW9ucy5jb21wbGV0ZScsIHJlc3BvbnNlKVxuXHRcdFx0XHQvLyDor7fmsYLov5Tlm57lkI7vvIzpmpDol49sb2FkaW5nKOWmguaenOivt+axgui/lOWbnuW/q+eahOivne+8jOWPr+iDveS8muayoeaciWxvYWRpbmcpXG5cdFx0XHRcdHVuaS5oaWRlTG9hZGluZygpO1xuXHRcdFx0XHQvLyDmuIXpmaTlrprml7blmajvvIzlpoLmnpzor7fmsYLlm57mnaXkuobvvIzlsLHml6DpnIBsb2FkaW5nXG5cdFx0XHRcdGNsZWFyVGltZW91dCh0aGlzLmNvbmZpZy50aW1lcik7XG5cdFx0XHRcdHRoaXMuY29uZmlnLnRpbWVyID0gbnVsbDtcblx0XHRcdFx0Ly8g5Yik5pat55So5oi35a+55oum5oiq6L+U5Zue5pWw5o2u55qE6KaB5rGC77yM5aaC5p6cb3JpZ2luYWxEYXRh5Li6dHJ1Ze+8jOi/lOWbnuaJgOacieeahOaVsOaNrihyZXNwb25zZSnliLDmi6bmiKrlmajvvIzlkKbliJnlj6rov5Tlm55yZXNwb25zZS5kYXRhXG5cdFx0XHRcdGlmICh0aGlzLmNvbmZpZy5vcmlnaW5hbERhdGEpIHtcblx0XHRcdFx0XHQvLyDliKTmlq3mmK/lkKblrZjlnKjmi6bmiKrlmahcblx0XHRcdFx0XHRpZiAodGhpcy5pbnRlcmNlcHRvci5yZXNwb25zZSAmJiB0eXBlb2YgdGhpcy5pbnRlcmNlcHRvci5yZXNwb25zZSA9PT0gJ2Z1bmN0aW9uJykge1xuXHRcdFx0XHRcdFx0bGV0IHJlc0ludGVyY2VwdG9ycyA9IHRoaXMuaW50ZXJjZXB0b3IucmVzcG9uc2UocmVzcG9uc2UpO1xuXHRcdFx0XHRcdFx0Ly8g5aaC5p6c5oum5oiq5Zmo5LiN6L+U5ZueZmFsc2XvvIzlsLHlsIbmi6bmiKrlmajov5Tlm57nmoTlhoXlrrnnu5l0aGlzLiR1LnBvc3TnmoR0aGVu5Zue6LCDXG5cdFx0XHRcdFx0XHRpZiAocmVzSW50ZXJjZXB0b3JzICE9PSBmYWxzZSkge1xuXHRcdFx0XHRcdFx0XHRyZXNvbHZlKHJlc0ludGVyY2VwdG9ycyk7XG5cdFx0XHRcdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHRcdFx0XHQvLyDlpoLmnpzmi6bmiKrlmajov5Tlm55mYWxzZe+8jOaEj+WRs+edgOaLpuaIquWZqOWumuS5ieiAheiupOS4uui/lOWbnuaciemXrumimO+8jOebtOaOpeaOpeWFpWNhdGNo5Zue6LCDXG5cdFx0XHRcdFx0XHRcdHJlamVjdChyZXNwb25zZSk7XG5cdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0XHRcdC8vIOWmguaenOimgeaxgui/lOWbnuWOn+Wni+aVsOaNru+8jOWwseeul+ayoeacieaLpuaIquWZqO+8jOS5n+i/lOWbnuacgOWOn+Wni+eahOaVsOaNrlxuXHRcdFx0XHRcdFx0cmVzb2x2ZShyZXNwb25zZSk7XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHRcdGlmIChyZXNwb25zZS5zdGF0dXNDb2RlID09IDIwMCkge1xuXHRcdFx0XHRcdFx0aWYgKHRoaXMuaW50ZXJjZXB0b3IucmVzcG9uc2UgJiYgdHlwZW9mIHRoaXMuaW50ZXJjZXB0b3IucmVzcG9uc2UgPT09XG5cdFx0XHRcdFx0XHRcdCdmdW5jdGlvbicpIHtcblx0XHRcdFx0XHRcdFx0bGV0IHJlc0ludGVyY2VwdG9ycyA9IHRoaXMuaW50ZXJjZXB0b3IucmVzcG9uc2UocmVzcG9uc2UuZGF0YSk7XG5cdFx0XHRcdFx0XHRcdGlmIChyZXNJbnRlcmNlcHRvcnMgIT09IGZhbHNlKSB7XG5cdFx0XHRcdFx0XHRcdFx0cmVzb2x2ZShyZXNJbnRlcmNlcHRvcnMpO1xuXHRcdFx0XHRcdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHRcdFx0XHRcdHJlamVjdChyZXNwb25zZS5kYXRhKTtcblx0XHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0XHRcdFx0Ly8g5aaC5p6c5LiN5piv6L+U5Zue5Y6f5aeL5pWw5o2uKG9yaWdpbmFsRGF0YT1mYWxzZSnvvIzkuJTmsqHmnInmi6bmiKrlmajnmoTmg4XlhrXkuIvvvIzov5Tlm57nuq/mlbDmja7nu5l0aGVu5Zue6LCDXG5cdFx0XHRcdFx0XHRcdHJlc29sdmUocmVzcG9uc2UuZGF0YSk7XG5cdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0XHRcdC8vIOS4jei/lOWbnuWOn+Wni+aVsOaNrueahOaDheWGteS4i++8jOacjeWKoeWZqOeKtuaAgeeggeS4jeS4ujIwMO+8jG1vZGFs5by55qGG5o+Q56S6XG5cdFx0XHRcdFx0XHQvLyBpZihyZXNwb25zZS5lcnJNc2cpIHtcblx0XHRcdFx0XHRcdC8vIFx0dW5pLnNob3dNb2RhbCh7XG5cdFx0XHRcdFx0XHQvLyBcdFx0dGl0bGU6IHJlc3BvbnNlLmVyck1zZ1xuXHRcdFx0XHRcdFx0Ly8gXHR9KTtcblx0XHRcdFx0XHRcdC8vIH1cblx0XHRcdFx0XHRcdGlmIChyZXNwb25zZS5zdGF0dXNDb2RlID09IDUwMCkge1xuXHRcdFx0XHRcdFx0XHR1bmkuc2hvd1RvYXN0KHtcblx0XHRcdFx0XHRcdFx0XHR0aXRsZTogJ+acjeWKoeWZqOW8guW4uCcsXG5cdFx0XHRcdFx0XHRcdFx0ZHVyYXRpb246IDIwMDAsXG5cdFx0XHRcdFx0XHRcdFx0aWNvbjogJ25vbmUnXG5cdFx0XHRcdFx0XHRcdH0pXG5cdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHRpZiAocmVzcG9uc2Uuc3RhdHVzQ29kZSA9PSA0MDEpIHtcblx0XHRcdFx0XHRcdFx0dW5pLnNob3dUb2FzdCh7XG5cdFx0XHRcdFx0XHRcdFx0dGl0bGU6ICfnmbvlvZXlt7LlpLHmlYgnLFxuXHRcdFx0XHRcdFx0XHRcdGR1cmF0aW9uOiAyMDAwLFxuXHRcdFx0XHRcdFx0XHRcdGljb246ICdub25lJ1xuXHRcdFx0XHRcdFx0XHR9KVxuXHRcdFx0XHRcdFx0XHR1bmkubmF2aWdhdGVUbyh7XG5cdFx0XHRcdFx0XHRcdFx0dXJsOiBcIi9wYWdlcy9sb2dpbi9sb2dpblwiXG5cdFx0XHRcdFx0XHRcdH0pXG5cdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHRyZWplY3QocmVzcG9uc2UpXG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9XG5cdFx0XHR9XG5cblx0XHRcdC8vIOWIpOaWreeUqOaIt+S8oOmAkueahFVSTOaYr+WQpi/lvIDlpLQs5aaC5p6c5LiN5pivLOWKoOS4ii/vvIzov5nph4zkvb/nlKjkuoZ1Vmlld+eahHRlc3QuanPpqozor4HlupPnmoR1cmwoKeaWueazlVxuXHRcdFx0b3B0aW9ucy51cmwgPSB2YWxpZGF0ZS51cmwob3B0aW9ucy51cmwpID8gb3B0aW9ucy51cmwgOiAoKG9wdGlvbnMuYmFzZVVybCA/IG9wdGlvbnMuYmFzZVVybCA6XG5cdFx0XHRcdHRoaXNcblx0XHRcdFx0LmNvbmZpZy5iYXNlVXJsKSArIChvcHRpb25zLnVybFxuXHRcdFx0XHQuaW5kZXhPZignLycpID09IDAgP1xuXHRcdFx0XHRvcHRpb25zLnVybCA6ICcvJyArIG9wdGlvbnMudXJsKSk7XG5cblx0XHRcdC8vIOaYr+WQpuaYvuekumxvYWRpbmdcblx0XHRcdC8vIOWKoOS4gOS4quaYr+WQpuW3suaciXRpbWVy5a6a5pe25Zmo55qE5Yik5pat77yM5ZCm5YiZ5pyJ5Lik5Liq5ZCM5pe26K+35rGC55qE5pe25YCZ77yM5ZCO6ICF5Lya5riF6Zmk5YmN6ICF55qE5a6a5pe25ZmoaWRcblx0XHRcdC8vIOiAjOayoeaciea4hemZpOWJjeiAheeahOWumuaXtuWZqO+8jOWvvOiHtOWJjeiAhei2heaXtu+8jOS4gOebtOaYvuekumxvYWRpbmdcblx0XHRcdGlmICh0aGlzLmNvbmZpZy5zaG93TG9hZGluZyAmJiAhdGhpcy5jb25maWcudGltZXIpIHtcblx0XHRcdFx0dGhpcy5jb25maWcudGltZXIgPSBzZXRUaW1lb3V0KCgpID0+IHtcblx0XHRcdFx0XHR1bmkuc2hvd0xvYWRpbmcoe1xuXHRcdFx0XHRcdFx0dGl0bGU6IHRoaXMuY29uZmlnLmxvYWRpbmdUZXh0LFxuXHRcdFx0XHRcdFx0bWFzazogdGhpcy5jb25maWcubG9hZGluZ01hc2tcblx0XHRcdFx0XHR9KVxuXHRcdFx0XHRcdHRoaXMuY29uZmlnLnRpbWVyID0gbnVsbDtcblx0XHRcdFx0fSwgdGhpcy5jb25maWcubG9hZGluZ1RpbWUpO1xuXHRcdFx0fVxuXHRcdFx0Ly8gY29uc29sZS5sb2coJ2FwaS5oZWxwZXItLS0tLWZpbmFsbHkqKipyZXF1ZXN0Jywgb3B0aW9ucylcblx0XHRcdHVuaS5yZXF1ZXN0KG9wdGlvbnMpO1xuXHRcdH0pXG5cdFx0Ly8gLmNhdGNoKHJlcyA9PiB7XG5cdFx0Ly8gXHQvLyDlpoLmnpzov5Tlm55yZWplY3QoKe+8jOS4jeiuqeWFtui/m+WFpXRoaXMuJHUucG9zdCgpLnRoZW4oKS5jYXRjaCgp5ZCO6Z2i55qEY2F0Y3QoKVxuXHRcdC8vIFx0Ly8g5Zug5Li65b6I5aSa5Lq66YO95Lya5b+Y5LqG5YaZ5ZCO6Z2i55qEY2F0Y2goKe+8jOWvvOiHtOaKpemUmeaNleiOt+S4jeWIsGNhdGNoXG5cdFx0Ly8gXHRyZXR1cm4gbmV3IFByb21pc2UoKCk9Pnt9KTtcblx0XHQvLyB9KVxuXHR9XG5cblx0Y29uc3RydWN0b3IoKSB7XG5cdFx0dGhpcy5jb25maWcgPSB7XG5cdFx0XHRiYXNlVXJsOiAnaHR0cDovLzIyMS4xMC4xMjcuNjA6NTAwMCcsIC8vIOivt+axgueahOagueWfn+WQjVxuXHRcdFx0Ly8g6buY6K6k55qE6K+35rGC5aS0XG5cdFx0XHRoZWFkZXI6IHt9LFxuXHRcdFx0bWV0aG9kOiAnUE9TVCcsXG5cdFx0XHQvLyDorr7nva7kuLpqc29u77yM6L+U5Zue5ZCOdW5pLnJlcXVlc3TkvJrlr7nmlbDmja7ov5vooYzkuIDmrKFKU09OLnBhcnNlXG5cdFx0XHRkYXRhVHlwZTogJ2pzb24nLFxuXHRcdFx0Ly8g5q2k5Y+C5pWw5peg6ZyA5aSE55CG77yM5Zug5Li6NSvlkozmlK/ku5jlrp3lsI/nqIvluo/kuI3mlK/mjIHvvIzpu5jorqTkuLp0ZXh05Y2z5Y+vXG5cdFx0XHRyZXNwb25zZVR5cGU6ICd0ZXh0Jyxcblx0XHRcdHNob3dMb2FkaW5nOiB0cnVlLCAvLyDmmK/lkKbmmL7npLror7fmsYLkuK3nmoRsb2FkaW5nXG5cdFx0XHRsb2FkaW5nVGV4dDogJ+ivt+axguS4rS4uLicsXG5cdFx0XHRsb2FkaW5nVGltZTogODAwLCAvLyDlnKjmraTml7bpl7TlhoXvvIzor7fmsYLov5jmsqHlm57mnaXnmoTor53vvIzlsLHmmL7npLrliqDovb3kuK3liqjnlLvvvIzljZXkvY1tc1xuXHRcdFx0dGltZXI6IG51bGwsIC8vIOWumuaXtuWZqFxuXHRcdFx0c3NsVmVyaWZ5OiBmYWxzZSwgLy8g5a6a5pe25ZmoXG5cdFx0XHRvcmlnaW5hbERhdGE6IGZhbHNlLCAvLyDmmK/lkKblnKjmi6bmiKrlmajkuK3ov5Tlm57mnI3liqHnq6/nmoTljp/lp4vmlbDmja7vvIzop4HmlofmoaPor7TmmI5cblx0XHRcdGxvYWRpbmdNYXNrOiB0cnVlLCAvLyDlsZXnpLpsb2FkaW5n55qE5pe25YCZ77yM5piv5ZCm57uZ5LiA5Liq6YCP5piO55qE6JKZ5bGC77yM6Ziy5q2i6Kem5pG456m/6YCPXG5cdFx0fVxuXG5cdFx0Ly8g5oum5oiq5ZmoXG5cdFx0dGhpcy5pbnRlcmNlcHRvciA9IHtcblx0XHRcdC8vIOivt+axguWJjeeahOaLpuaIqlxuXHRcdFx0cmVxdWVzdDogKGNvbmZpZykgPT4ge1xuXHRcdFx0XHRjb25maWcuaGVhZGVyWydBdXRob3JpemF0aW9uJ10gPSBgQmFzaWMgJHtCYXNlNjQuZW5jb2RlKCd3YW5ncGM6TFpZODg4QEAnKX1gO1xuXHRcdFx0XHR0cnkge1xuXHRcdFx0XHRcdGlmIChjb25maWcudXJsLmluZGV4T2YoJ2NybS1hcHAvbG9naW4nKSA9PT0gLVxuXHRcdFx0XHRcdFx0MSAmJlxuXHRcdFx0XHRcdFx0c3RvcmUuc3RhdGUudnVleF90b2tlbikge1xuXHRcdFx0XHRcdFx0Y29uZmlnLmhlYWRlclsnWC1BdXRoLVRva2VuJ10gPSBzdG9yZVxuXHRcdFx0XHRcdFx0XHQuc3RhdGUudnVleF90b2tlblxuXHRcdFx0XHRcdH1cblxuXHRcdFx0XHRcdGlmIChjb25maWcuaGVhZGVyWydDb250ZW50LVR5cGUnXSAmJiBjb25maWcuaGVhZGVyWydDb250ZW50LVR5cGUnXS5pbmRleE9mKFxuXHRcdFx0XHRcdFx0XHQneC13d3ctZm9ybS11cmxlbmNvZGVkJykgPT09IC0xKSB7XG5cdFx0XHRcdFx0XHRjb25maWcuaGVhZGVyWydDb250ZW50LVR5cGUnXSA9IFwiYXBwbGljYXRpb24vanNvbjsgY2hhcnNldD11dGYtOFwiXG5cdFx0XHRcdFx0fVxuXG5cblx0XHRcdFx0XHRpZiAoY29uZmlnLnVybC5pbmRleE9mKCdjcm0tYXBwJykgIT09IC0xKSB7XG5cdFx0XHRcdFx0XHQvLyBjb25maWcuYmFzZVVybCA9ICdodHRwOi8vMTAuMC4xMzUuNjEnXG5cdFx0XHRcdFx0XHRjb25maWcuYmFzZVVybCA9ICdodHRwOi8vMjIxLjEwLjEyNy42MDo1MDAwJ1xuXHRcdFx0XHRcdH0gZWxzZSBpZiAoY29uZmlnLnVybC5pbmRleE9mKCdhZGFwdGVyJykgIT09IC0xKSB7XG5cdFx0XHRcdFx0XHRjb25maWcuYmFzZVVybCA9ICdodHRwOi8vYXBpLmMwMzMxLmRldi5ndWFueWluZ3l1bi5jb20nXG5cdFx0XHRcdFx0XHQvLyB
jb25maWcuYmFzZVVybCA9ICdodHRwOi8vMjIxLjEwLjEyNy42MDo1MDAwL2N5aidcblx0XHRcdFx0XHR9IGVsc2UgaWYgKGNvbmZpZy51cmwuaW5kZXhPZignd21kcHdlYnNlcnZpY2VzJykgIT09IC0xKSB7XG5cdFx0XHRcdFx0XHQvLyBjb25maWcuYmFzZVVybCA9ICdodHRwczovLzEwLjAuMTM0LjE4Mjo5MDAyJ1xuXHRcdFx0XHRcdFx0Y29uZmlnLmJhc2VVcmwgPSAnaHR0cDovLzIyMS4xMC4xMjcuNjA6NTAwMC9zY3p4J1xuXHRcdFx0XHRcdFx0Ly8gY29uZmlnLmJhc2VVcmwgPSAnJ1xuXHRcdFx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdFx0XHRjb25maWcuYmFzZVVybCA9ICdodHRwOi8vMjIxLjEwLjEyNy42MDo1MDAwL3dseVNhcCdcblx0XHRcdFx0XHR9XG5cdFx0XHRcdH0gY2F0Y2ggKGUpIHtcblx0XHRcdFx0XHRjb25zb2xlLmxvZygnZXJyb3InLCBlKVxuXHRcdFx0XHR9XG5cdFx0XHRcdC8vIGlmIChjb25maWcudXJsLmluZGV4T2YoJ2NybS1hcHAvbG9naW4nKSAhPT0gLTEgJiYgIXN0b3JlLnN0YXRlLnZ1ZXhfdG9rZW4pIHtcblx0XHRcdFx0Ly8gXHR1bmkuc2hvd1RvYXN0KHtcblx0XHRcdFx0Ly8gXHRcdHRpdGxlOiAn55m75b2V5bey5aSx5pWIJyxcblx0XHRcdFx0Ly8gXHRcdGR1cmF0aW9uOiAyMDAwLFxuXHRcdFx0XHQvLyBcdFx0aWNvbjogJ25vbmUnXG5cdFx0XHRcdC8vIFx0fSk7XG5cdFx0XHRcdC8vIFx0dW5pLm5hdmlnYXRlVG8oe1xuXHRcdFx0XHQvLyBcdFx0dXJsOiBcIi9wYWdlcy9sb2dpbi9sb2dpblwiXG5cdFx0XHRcdC8vIFx0fSlcblx0XHRcdFx0Ly8gfVxuXHRcdFx0XHRjb25zb2xlLmxvZygnaGVscGVyLS1pbnRlcmNlcHRvci0tLXJlcXVlc3QtLS0tLScsIGNvbmZpZylcblx0XHRcdFx0cmV0dXJuIGNvbmZpZztcblx0XHRcdH0sXG5cdFx0XHQvLyDor7fmsYLlkI7nmoTmi6bmiKpcblx0XHRcdHJlc3BvbnNlOiAocmVzKSA9PiB7XG5cdFx0XHRcdGNvbnNvbGUubG9nKCdoZWxwZXItLWlpbnRlcmNlcHRvci0tLXJlc3BvbnNlLS0tLS0nLCByZXMpXG5cdFx0XHRcdGlmIChyZXMuTVNHVFlQRSA9PT0gJ1MnIHx8IHJlcy5tc2d0eXBlID09PSAnUycgfHwgcmVzLnN0YXR1cyA9PT0gMSB8fCByZXMucmVzdWx0ID09PSBcIlNcIiB8fFxuXHRcdFx0XHRcdHJlcy5TdGF0dXMgPT09XG5cdFx0XHRcdFx0J1N1Y2Nlc3MnKSB7XG5cdFx0XHRcdFx0Ly8g5aaC5p6c5oqKb3JpZ2luYWxEYXRh6K6+572u5Li65LqGdHJ1Ze+8jOi/memHjHJldHVybuWbnuS7gOS5iO+8jHRoaXMuJHUucG9zdOeahHRoZW7lm57osIPkuK3lsLHkvJrlvpfliLDku4DkuYhcblx0XHRcdFx0XHRyZXR1cm4gcmVzO1xuXHRcdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHRcdHVuaS5zaG93VG9hc3Qoe1xuXHRcdFx0XHRcdFx0dGl0bGU6IHJlcy5NRVNTQUdFIHx8IHJlcy5tc2cgfHwgcmVzLm1lc3NhZ2UgfHwgcmVzLkVyck1zZyxcblx0XHRcdFx0XHRcdGR1cmF0aW9uOiAyMDAwLFxuXHRcdFx0XHRcdFx0aWNvbjogJ25vbmUnXG5cdFx0XHRcdFx0fSk7XG5cdFx0XHRcdFx0cmV0dXJuIGZhbHNlXG5cdFx0XHRcdH07XG5cdFx0XHR9XG5cdFx0fVxuXG5cdFx0Ly8gZ2V06K+35rGCXG5cdFx0dGhpcy5nZXQgPSAodXJsLCBkYXRhID0ge30sIGhlYWRlciA9IHt9KSA9PiB7XG5cdFx0XHRyZXR1cm4gdGhpcy5yZXF1ZXN0KHtcblx0XHRcdFx0bWV0aG9kOiAnR0VUJyxcblx0XHRcdFx0dXJsLFxuXHRcdFx0XHRoZWFkZXIsXG5cdFx0XHRcdGRhdGFcblx0XHRcdH0pXG5cdFx0fVxuXG5cdFx0Ly8gcG9zdOivt+axglxuXHRcdHRoaXMucG9zdCA9ICh1cmwsIGRhdGEgPSB7fSwgaGVhZGVyID0ge30pID0+IHtcblx0XHRcdHJldHVybiB0aGlzLnJlcXVlc3Qoe1xuXHRcdFx0XHR1cmwsXG5cdFx0XHRcdG1ldGhvZDogJ1BPU1QnLFxuXHRcdFx0XHRoZWFkZXIsXG5cdFx0XHRcdGRhdGFcblx0XHRcdH0pXG5cdFx0fVxuXG5cdFx0Ly8gcHV06K+35rGC77yM5LiN5pSv5oyB5pSv5LuY5a6d5bCP56iL5bqPKEhYMi42LjE1KVxuXHRcdHRoaXMucHV0ID0gKHVybCwgZGF0YSA9IHt9LCBoZWFkZXIgPSB7fSkgPT4ge1xuXHRcdFx0cmV0dXJuIHRoaXMucmVxdWVzdCh7XG5cdFx0XHRcdHVybCxcblx0XHRcdFx0bWV0aG9kOiAnUFVUJyxcblx0XHRcdFx0aGVhZGVyLFxuXHRcdFx0XHRkYXRhXG5cdFx0XHR9KVxuXHRcdH1cblxuXHRcdC8vIGRlbGV0Zeivt+axgu+8jOS4jeaUr+aMgeaUr+S7mOWuneWSjOWktOadoeWwj+eoi+W6jyhIWDIuNi4xNSlcblx0XHR0aGlzLmRlbGV0ZSA9ICh1cmwsIGRhdGEgPSB7fSwgaGVhZGVyID0ge30pID0+IHtcblx0XHRcdHJldHVybiB0aGlzLnJlcXVlc3Qoe1xuXHRcdFx0XHR1cmwsXG5cdFx0XHRcdG1ldGhvZDogJ0RFTEVURScsXG5cdFx0XHRcdGhlYWRlcixcblx0XHRcdFx0ZGF0YVxuXHRcdFx0fSlcblx0XHR9XG5cdH1cbn1cbmV4cG9ydCBkZWZhdWx0IG5ldyBSZXF1ZXN0XG4iXSwic291cmNlUm9vdCI6IiJ9
\n
//# sourceURL=webpack-internal:///15
\n
"
);
/***/
}),
/***/
}),
...
...
unpackage/dist/dev/app-plus/pages/usercenter/usercenter.js
View file @
b5770471
...
@@ -2068,7 +2068,7 @@ index;exports.default = _default;
...
@@ -2068,7 +2068,7 @@ index;exports.default = _default;
/***/
(
function
(
module
,
exports
,
__webpack_require__
)
{
/***/
(
function
(
module
,
exports
,
__webpack_require__
)
{
"use strict"
;
"use strict"
;
eval
(
"/* WEBPACK VAR INJECTION */(function(__f__) {Object.defineProperty(exports,
\"
__esModule
\"
, { value: true });exports.default = void 0;var _index = __webpack_require__(/*! @/utils/index.js */ 16);
\n\n\n
var _validate = _interopRequireDefault(__webpack_require__(/*! @/utils/validate.js */ 17));
\n
var _jsBase = __webpack_require__(/*! js-base64 */ 18);
\n\n\n
var _index2 = _interopRequireDefault(__webpack_require__(/*! @/store/index.js */ 19));function _interopRequireDefault(obj) {return obj && obj.__esModule ? obj : { default: obj };}function _classCallCheck(instance, Constructor) {if (!(instance instanceof Constructor)) {throw new TypeError(
\"
Cannot call a class as a function
\"
);}}function _defineProperties(target, props) {for (var i = 0; i < props.length; i++) {var descriptor = props[i];descriptor.enumerable = descriptor.enumerable || false;descriptor.configurable = true;if (
\"
value
\"
in descriptor) descriptor.writable = true;Object.defineProperty(target, descriptor.key, descriptor);}}function _createClass(Constructor, protoProps, staticProps) {if (protoProps) _defineProperties(Constructor.prototype, protoProps);if (staticProps) _defineProperties(Constructor, staticProps);return Constructor;}var
\n\n
Request = /*#__PURE__*/function () {_createClass(Request, [{ key:
\"
setConfig
\"
,
\n
// 设置全局默认配置
\n
value: function setConfig(customConfig) {
\n
// 深度合并对象,否则会造成对象深层属性丢失
\n
this.config = (0, _index.deepMerge)(this.config, customConfig);
\n
}
\n\n
// 主要请求部分
\n
}, { key:
\"
request
\"
, value: function request() {var _this = this;var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
\n\n
// 检查请求拦截
\n
if (this.interceptor.request && typeof this.interceptor.request === 'function') {
\n
var tmpConfig = {};
\n
var interceptorRequest = this.interceptor.request(options);
\n
if (interceptorRequest === false) {
\n
// 返回一个处于pending状态中的Promise,来取消原promise,避免进入then()回调
\n
return new Promise(function () {});
\n
}
\n
this.options = interceptorRequest;
\n
}
\n\n
options.dataType = options.dataType || this.config.dataType;
\n
options.responseType = options.responseType || this.config.responseType;
\n
options.url = options.url || '';
\n
options.params = options.params || {};
\n
options.header = Object.assign({}, this.config.header, options.header);
\n
options.method = options.method || this.config.method;
\n
options.sslVerify = false;
\n\n
// console.log('api.helper-----request', options, this.options)
\n\n
return new Promise(function (resolve, reject) {
\n
options.complete = function (response) {
\n
__f__(
\"
log
\"
, 'api.helper---options.complete', response,
\"
at servers/api.helper.js:43
\"
);
\n
// 请求返回后,隐藏loading(如果请求返回快的话,可能会没有loading)
\n
uni.hideLoading();
\n
// 清除定时器,如果请求回来了,就无需loading
\n
clearTimeout(_this.config.timer);
\n
_this.config.timer = null;
\n
// 判断用户对拦截返回数据的要求,如果originalData为true,返回所有的数据(response)到拦截器,否则只返回response.data
\n
if (_this.config.originalData) {
\n
// 判断是否存在拦截器
\n
if (_this.interceptor.response && typeof _this.interceptor.response === 'function') {
\n
var resInterceptors = _this.interceptor.response(response);
\n
// 如果拦截器不返回false,就将拦截器返回的内容给this.$u.post的then回调
\n
if (resInterceptors !== false) {
\n
resolve(resInterceptors);
\n
} else {
\n
// 如果拦截器返回false,意味着拦截器定义者认为返回有问题,直接接入catch回调
\n
reject(response);
\n
}
\n
} else {
\n
// 如果要求返回原始数据,就算没有拦截器,也返回最原始的数据
\n
resolve(response);
\n
}
\n
} else {
\n
if (response.statusCode == 200) {
\n
if (_this.interceptor.response && typeof _this.interceptor.response ===
\n
'function') {
\n
var _resInterceptors = _this.interceptor.response(response.data);
\n
if (_resInterceptors !== false) {
\n
resolve(_resInterceptors);
\n
} else {
\n
reject(response.data);
\n
}
\n
} else {
\n
// 如果不是返回原始数据(originalData=false),且没有拦截器的情况下,返回纯数据给then回调
\n
resolve(response.data);
\n
}
\n
} else {
\n
// 不返回原始数据的情况下,服务器状态码不为200,modal弹框提示
\n
// if(response.errMsg) {
\n
//
\
tuni.showModal({
\n
//
\
t
\
ttitle: response.errMsg
\n
//
\
t});
\n
// }
\n
if (response.statusCode == 500) {
\n
uni.showToast({
\n
title: '服务器异常',
\n
duration: 2000,
\n
icon: 'none' });
\n\n
}
\n
if (response.statusCode == 401) {
\n
uni.showToast({
\n
title: '登录已失效',
\n
duration: 2000,
\n
icon: 'none' });
\n\n
uni.navigateTo({
\n
url:
\"
/pages/login/login
\"
});
\n\n
}
\n
reject(response);
\n
}
\n
}
\n
};
\n\n
// 判断用户传递的URL是否/开头,如果不是,加上/,这里使用了uView的test.js验证库的url()方法
\n
options.url = _validate.default.url(options.url) ? options.url : (options.baseUrl ? options.baseUrl :
\n
_this.
\n
config.baseUrl) + (options.url.
\n
indexOf('/') == 0 ?
\n
options.url : '/' + options.url);
\n\n
// 是否显示loading
\n
// 加一个是否已有timer定时器的判断,否则有两个同时请求的时候,后者会清除前者的定时器id
\n
// 而没有清除前者的定时器,导致前者超时,一直显示loading
\n
if (_this.config.showLoading && !_this.config.timer) {
\n
_this.config.timer = setTimeout(function () {
\n
uni.showLoading({
\n
title: _this.config.loadingText,
\n
mask: _this.config.loadingMask });
\n\n
_this.config.timer = null;
\n
}, _this.config.loadingTime);
\n
}
\n
// console.log('api.helper-----finally***request', options)
\n
uni.request(options);
\n
});
\n
// .catch(res => {
\n
//
\
t// 如果返回reject(),不让其进入this.$u.post().then().catch()后面的catct()
\n
//
\
t// 因为很多人都会忘了写后面的catch(),导致报错捕获不到catch
\n
//
\
treturn new Promise(()=>{});
\n
// })
\n
} }]);
\n\n
function Request() {var _this2 = this;_classCallCheck(this, Request);
\n
this.config = {
\n
baseUrl: 'http://221.10.127.60:5000', // 请求的根域名
\n
// 默认的请求头
\n
header: {},
\n
method: 'POST',
\n
// 设置为json,返回后uni.request会对数据进行一次JSON.parse
\n
dataType: 'json',
\n
// 此参数无需处理,因为5+和支付宝小程序不支持,默认为text即可
\n
responseType: 'text',
\n
showLoading: true, // 是否显示请求中的loading
\n
loadingText: '请求中...',
\n
loadingTime: 800, // 在此时间内,请求还没回来的话,就显示加载中动画,单位ms
\n
timer: null, // 定时器
\n
sslVerify: false, // 定时器
\n
originalData: false, // 是否在拦截器中返回服务端的原始数据,见文档说明
\n
loadingMask: true // 展示loading的时候,是否给一个透明的蒙层,防止触摸穿透
\n
};
\n\n
// 拦截器
\n
this.interceptor = {
\n
// 请求前的拦截
\n
request: function request(config) {
\n
config.header['Authorization'] =
\"
Basic
\"
.concat(_jsBase.Base64.encode('wangpc:LZY888@@'));
\n
try {
\n
if (config.url.indexOf('crm-app/login') === -
\n
1 &&
\n
_index2.default.state.vuex_token) {
\n
config.header['X-Auth-Token'] = _index2.default.
\n
state.vuex_token;
\n
}
\n\n
if (config.header['Content-Type'] && config.header['Content-Type'].indexOf(
\n
'x-www-form-urlencoded') === -1) {
\n
config.header['Content-Type'] =
\"
application/json; charset=utf-8
\"
;
\n
}
\n\n\n
if (config.url.indexOf('crm-app') !== -1) {
\n
// config.baseUrl = 'http://10.0.135.61'
\n
config.baseUrl = 'http://221.10.127.60:5000';
\n
} else if (config.url.indexOf('adapter') !== -1) {
\n
// config.baseUrl = 'http://api.c0331.dev.guanyingyun.com'
\n
config.baseUrl = 'http://221.10.127.60:5000/cyj';
\n
} else if (config.url.indexOf('wmdpwebservices') !== -1) {
\n
// config.baseUrl = 'https://10.0.134.182:9002'
\n
config.baseUrl = 'http://221.10.127.60:5000/sczx';
\n
// config.baseUrl = ''
\n
} else {
\n
config.baseUrl = 'http://221.10.127.60:5000/wlySap';
\n
}
\n
} catch (e) {
\n
__f__(
\"
log
\"
, 'error', e,
\"
at servers/api.helper.js:189
\"
);
\n
}
\n
// if (config.url.indexOf('crm-app/login') !== -1 && !store.state.vuex_token) {
\n
//
\
tuni.showToast({
\n
//
\
t
\
ttitle: '登录已失效',
\n
//
\
t
\
tduration: 2000,
\n
//
\
t
\
ticon: 'none'
\n
//
\
t});
\n
//
\
tuni.navigateTo({
\n
//
\
t
\
turl:
\"
/pages/login/login
\"\n
//
\
t})
\n
// }
\n
__f__(
\"
log
\"
, 'helper--interceptor---request-----', config,
\"
at servers/api.helper.js:201
\"
);
\n
return config;
\n
},
\n
// 请求后的拦截
\n
response: function response(res) {
\n
__f__(
\"
log
\"
, 'helper--iinterceptor---response-----', res,
\"
at servers/api.helper.js:206
\"
);
\n
if (res.MSGTYPE === 'S' || res.msgtype === 'S' || res.status === 1 || res.result ===
\"
S
\"
||
\n
res.Status ===
\n
'Success') {
\n
// 如果把originalData设置为了true,这里return回什么,this.$u.post的then回调中就会得到什么
\n
return res;
\n
} else {
\n
uni.showToast({
\n
title: res.MESSAGE || res.msg || res.message || res.ErrMsg,
\n
duration: 2000,
\n
icon: 'none' });
\n\n
return false;
\n
};
\n
} };
\n\n\n
// get请求
\n
this.get = function (url) {var data = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};var header = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
\n
return _this2.request({
\n
method: 'GET',
\n
url: url,
\n
header: header,
\n
data: data });
\n\n
};
\n\n
// post请求
\n
this.post = function (url) {var data = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};var header = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
\n
return _this2.request({
\n
url: url,
\n
method: 'POST',
\n
header: header,
\n
data: data });
\n\n
};
\n\n
// put请求,不支持支付宝小程序(HX2.6.15)
\n
this.put = function (url) {var data = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};var header = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
\n
return _this2.request({
\n
url: url,
\n
method: 'PUT',
\n
header: header,
\n
data: data });
\n\n
};
\n\n
// delete请求,不支持支付宝和头条小程序(HX2.6.15)
\n
this.delete = function (url) {var data = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};var header = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
\n
return _this2.request({
\n
url: url,
\n
method: 'DELETE',
\n
header: header,
\n
data: data });
\n\n
};
\n
}return Request;}();var _default =
\n\n
new Request();exports.default = _default;
\n
/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./node_modules/@dcloudio/vue-cli-plugin-uni/lib/format-log.js */ 10)[
\"
default
\"
]))//# sourceURL=[module]
\n
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInVuaS1hcHA6Ly8vc2VydmVycy9hcGkuaGVscGVyLmpzIl0sIm5hbWVzIjpbIlJlcXVlc3QiLCJjdXN0b21Db25maWciLCJjb25maWciLCJvcHRpb25zIiwiaW50ZXJjZXB0b3IiLCJyZXF1ZXN0IiwidG1wQ29uZmlnIiwiaW50ZXJjZXB0b3JSZXF1ZXN0IiwiUHJvbWlzZSIsImRhdGFUeXBlIiwicmVzcG9uc2VUeXBlIiwidXJsIiwicGFyYW1zIiwiaGVhZGVyIiwiT2JqZWN0IiwiYXNzaWduIiwibWV0aG9kIiwic3NsVmVyaWZ5IiwicmVzb2x2ZSIsInJlamVjdCIsImNvbXBsZXRlIiwicmVzcG9uc2UiLCJ1bmkiLCJoaWRlTG9hZGluZyIsImNsZWFyVGltZW91dCIsInRpbWVyIiwib3JpZ2luYWxEYXRhIiwicmVzSW50ZXJjZXB0b3JzIiwic3RhdHVzQ29kZSIsImRhdGEiLCJzaG93VG9hc3QiLCJ0aXRsZSIsImR1cmF0aW9uIiwiaWNvbiIsIm5hdmlnYXRlVG8iLCJ2YWxpZGF0ZSIsImJhc2VVcmwiLCJpbmRleE9mIiwic2hvd0xvYWRpbmciLCJzZXRUaW1lb3V0IiwibG9hZGluZ1RleHQiLCJtYXNrIiwibG9hZGluZ01hc2siLCJsb2FkaW5nVGltZSIsIkJhc2U2NCIsImVuY29kZSIsInN0b3JlIiwic3RhdGUiLCJ2dWV4X3Rva2VuIiwiZSIsInJlcyIsIk1TR1RZUEUiLCJtc2d0eXBlIiwic3RhdHVzIiwicmVzdWx0IiwiU3RhdHVzIiwiTUVTU0FHRSIsIm1zZyIsIm1lc3NhZ2UiLCJFcnJNc2ciLCJnZXQiLCJwb3N0IiwicHV0IiwiZGVsZXRlIl0sIm1hcHBpbmdzIjoib0lBQUE7OztBQUdBO0FBQ0E7OztBQUdBLHNGOztBQUVNQSxPO0FBQ0w7OEJBQ1VDLFksRUFBYztBQUN2QjtBQUNBLFdBQUtDLE1BQUwsR0FBYyxzQkFBVSxLQUFLQSxNQUFmLEVBQXVCRCxZQUF2QixDQUFkO0FBQ0E7O0FBRUQ7aURBQ3NCLHNCQUFkRSxPQUFjLHVFQUFKLEVB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QTtBQUNBLFNBQUtnQyxJQUFMLEdBQVksVUFBQ2xELEdBQUQsRUFBaUMsS0FBM0JrQixJQUEyQix1RUFBcEIsRUFBb0IsS0FBaEJoQixNQUFnQix1RUFBUCxFQUFPO0FBQzVDLGFBQU8sTUFBSSxDQUFDUixPQUFMLENBQWE7QUFDbkJNLFdBQUcsRUFBSEEsR0FEbUI7QUFFbkJLLGNBQU0sRUFBRSxNQUZXO0FBR25CSCxjQUFNLEVBQU5BLE1BSG1CO0FBSW5CZ0IsWUFBSSxFQUFKQSxJQUptQixFQUFiLENBQVA7O0FBTUEsS0FQRDs7QUFTQTtBQUNBLFNBQUtpQyxHQUFMLEdBQVcsVUFBQ25ELEdBQUQsRUFBaUMsS0FBM0JrQixJQUEyQix1RUFBcEIsRUFBb0IsS0FBaEJoQixNQUFnQix1RUFBUCxFQUFPO0FBQzNDLGFBQU8sTUFBSSxDQUFDUixPQUFMLENBQWE7QUFDbkJNLFdBQUcsRUFBSEEsR0FEbUI7QUFFbkJLLGNBQU0sRUFBRSxLQUZXO0FBR25CSCxjQUFNLEVBQU5BLE1BSG1CO0FBSW5CZ0IsWUFBSSxFQUFKQSxJQUptQixFQUFiLENBQVA7O0FBTUEsS0FQRDs7QUFTQTtBQUNBLFNBQUtrQyxNQUFMLEdBQWMsVUFBQ3BELEdBQUQsRUFBaUMsS0FBM0JrQixJQUEyQix1RUFBcEIsRUFBb0IsS0FBaEJoQixNQUFnQix1RUFBUCxFQUFPO0FBQzlDLGFBQU8sTUFBSSxDQUFDUixPQUFMLENBQWE7QUFDbkJNLFdBQUcsRUFBSEEsR0FEbUI7QUFFbkJLLGNBQU0sRUFBRSxRQUZXO0FBR25CSCxjQUFNLEVBQU5BLE1BSG1CO0FBSW5CZ0IsWUFBSSxFQUFKQSxJQUptQixFQUFiLENBQVA7O0FBTUEsS0FQRDtBQVFBLEc7O0FBRWEsSUFBSTdCLE9BQUosRSIsImZpbGUiOiIxNS5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG5cdGRlZXBNZXJnZVxufSBmcm9tIFwiQC91dGlscy9pbmRleC5qc1wiO1xuaW1wb3J0IHZhbGlkYXRlIGZyb20gXCJAL3V0aWxzL3ZhbGlkYXRlLmpzXCI7XG5pbXBvcnQge1xuXHRCYXNlNjRcbn0gZnJvbSAnanMtYmFzZTY0J1xuaW1wb3J0IHN0b3JlIGZyb20gJ0Avc3RvcmUvaW5kZXguanMnXG5cbmNsYXNzIFJlcXVlc3Qge1xuXHQvLyDorr7nva7lhajlsYDpu5jorqTphY3nva5cblx0c2V0Q29uZmlnKGN1c3RvbUNvbmZpZykge1xuXHRcdC8vIOa3seW6puWQiOW5tuWvueixoe+8jOWQpuWImeS8mumAoOaIkOWvueixoea3seWxguWxnuaAp+S4ouWksVxuXHRcdHRoaXMuY29uZmlnID0gZGVlcE1lcmdlKHRoaXMuY29uZmlnLCBjdXN0b21Db25maWcpO1xuXHR9XG5cblx0Ly8g5Li76KaB6K+35rGC6YOo5YiGXG5cdHJlcXVlc3Qob3B0aW9ucyA9IHt9KSB7XG5cblx0XHQvLyDmo4Dmn6Xor7fmsYLmi6bmiKpcblx0XHRpZiAodGhpcy5pbnRlcmNlcHRvci5yZXF1ZXN0ICYmIHR5cGVvZiB0aGlzLmludGVyY2VwdG9yLnJlcXVlc3QgPT09ICdmdW5jdGlvbicpIHtcblx0XHRcdGxldCB0bXBDb25maWcgPSB7fTtcblx0XHRcdGxldCBpbnRlcmNlcHRvclJlcXVlc3QgPSB0aGlzLmludGVyY2VwdG9yLnJlcXVlc3Qob3B0aW9ucyk7XG5cdFx0XHRpZiAoaW50ZXJjZXB0b3JSZXF1ZXN0ID09PSBmYWxzZSkge1xuXHRcdFx0XHQvLyDov5Tlm57kuIDkuKrlpITkuo5wZW5kaW5n54q25oCB5Lit55qEUHJvbWlzZe+8jOadpeWPlua2iOWOn3Byb21pc2XvvIzpgb/lhY3ov5vlhaV0aGVuKCnlm57osINcblx0XHRcdFx0cmV0dXJuIG5ldyBQcm9taXNlKCgpID0+IHt9KTtcblx0XHRcdH1cblx0XHRcdHRoaXMub3B0aW9ucyA9IGludGVyY2VwdG9yUmVxdWVzdDtcblx0XHR9XG5cblx0XHRvcHRpb25zLmRhdGFUeXBlID0gb3B0aW9ucy5kYXRhVHlwZSB8fCB0aGlzLmNvbmZpZy5kYXRhVHlwZTtcblx0XHRvcHRpb25zLnJlc3BvbnNlVHlwZSA9IG9wdGlvbnMucmVzcG9uc2VUeXBlIHx8IHRoaXMuY29uZmlnLnJlc3BvbnNlVHlwZTtcblx0XHRvcHRpb25zLnVybCA9IG9wdGlvbnMudXJsIHx8ICcnO1xuXHRcdG9wdGlvbnMucGFyYW1zID0gb3B0aW9ucy5wYXJhbXMgfHwge307XG5cdFx0b3B0aW9ucy5oZWFkZXIgPSBPYmplY3QuYXNzaWduKHt9LCB0aGlzLmNvbmZpZy5oZWFkZXIsIG9wdGlvbnMuaGVhZGVyKTtcblx0XHRvcHRpb25zLm1ldGhvZCA9IG9wdGlvbnMubWV0aG9kIHx8IHRoaXMuY29uZmlnLm1ldGhvZDtcblx0XHRvcHRpb25zLnNzbFZlcmlmeSA9IGZhbHNlXG5cblx0XHQvLyBjb25zb2xlLmxvZygnYXBpLmhlbHBlci0tLS0tcmVxdWVzdCcsIG9wdGlvbnMsIHRoaXMub3B0aW9ucylcblxuXHRcdHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XG5cdFx0XHRvcHRpb25zLmNvbXBsZXRlID0gKHJlc3BvbnNlKSA9PiB7XG5cdFx0XHRcdGNvbnNvbGUubG9nKCdhcGkuaGVscGVyLS0tb3B0aW9ucy5jb21wbGV0ZScsIHJlc3BvbnNlKVxuXHRcdFx0XHQvLyDor7fmsYLov5Tlm57lkI7vvIzpmpDol49sb2FkaW5nKOWmguaenOivt+axgui/lOWbnuW/q+eahOivne+8jOWPr+iDveS8muayoeaciWxvYWRpbmcpXG5cdFx0XHRcdHVuaS5oaWRlTG9hZGluZygpO1xuXHRcdFx0XHQvLyDmuIXpmaTlrprml7blmajvvIzlpoLmnpzor7fmsYLlm57mnaXkuobvvIzlsLHml6DpnIBsb2FkaW5nXG5cdFx0XHRcdGNsZWFyVGltZW91dCh0aGlzLmNvbmZpZy50aW1lcik7XG5cdFx0XHRcdHRoaXMuY29uZmlnLnRpbWVyID0gbnVsbDtcblx0XHRcdFx0Ly8g5Yik5pat55So5oi35a+55oum5oiq6L+U5Zue5pWw5o2u55qE6KaB5rGC77yM5aaC5p6cb3JpZ2luYWxEYXRh5Li6dHJ1Ze+8jOi/lOWbnuaJgOacieeahOaVsOaNrihyZXNwb25zZSnliLDmi6bmiKrlmajvvIzlkKbliJnlj6rov5Tlm55yZXNwb25zZS5kYXRhXG5cdFx0XHRcdGlmICh0aGlzLmNvbmZpZy5vcmlnaW5hbERhdGEpIHtcblx0XHRcdFx0XHQvLyDliKTmlq3mmK/lkKblrZjlnKjmi6bmiKrlmahcblx0XHRcdFx0XHRpZiAodGhpcy5pbnRlcmNlcHRvci5yZXNwb25zZSAmJiB0eXBlb2YgdGhpcy5pbnRlcmNlcHRvci5yZXNwb25zZSA9PT0gJ2Z1bmN0aW9uJykge1xuXHRcdFx0XHRcdFx0bGV0IHJlc0ludGVyY2VwdG9ycyA9IHRoaXMuaW50ZXJjZXB0b3IucmVzcG9uc2UocmVzcG9uc2UpO1xuXHRcdFx0XHRcdFx0Ly8g5aaC5p6c5oum5oiq5Zmo5LiN6L+U5ZueZmFsc2XvvIzlsLHlsIbmi6bmiKrlmajov5Tlm57nmoTlhoXlrrnnu5l0aGlzLiR1LnBvc3TnmoR0aGVu5Zue6LCDXG5cdFx0XHRcdFx0XHRpZiAocmVzSW50ZXJjZXB0b3JzICE9PSBmYWxzZSkge1xuXHRcdFx0XHRcdFx0XHRyZXNvbHZlKHJlc0ludGVyY2VwdG9ycyk7XG5cdFx0XHRcdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHRcdFx0XHQvLyDlpoLmnpzmi6bmiKrlmajov5Tlm55mYWxzZe+8jOaEj+WRs+edgOaLpuaIquWZqOWumuS5ieiAheiupOS4uui/lOWbnuaciemXrumimO+8jOebtOaOpeaOpeWFpWNhdGNo5Zue6LCDXG5cdFx0XHRcdFx0XHRcdHJlamVjdChyZXNwb25zZSk7XG5cdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0XHRcdC8vIOWmguaenOimgeaxgui/lOWbnuWOn+Wni+aVsOaNru+8jOWwseeul+ayoeacieaLpuaIquWZqO+8jOS5n+i/lOWbnuacgOWOn+Wni+eahOaVsOaNrlxuXHRcdFx0XHRcdFx0cmVzb2x2ZShyZXNwb25zZSk7XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHRcdGlmIChyZXNwb25zZS5zdGF0dXNDb2RlID09IDIwMCkge1xuXHRcdFx0XHRcdFx0aWYgKHRoaXMuaW50ZXJjZXB0b3IucmVzcG9uc2UgJiYgdHlwZW9mIHRoaXMuaW50ZXJjZXB0b3IucmVzcG9uc2UgPT09XG5cdFx0XHRcdFx0XHRcdCdmdW5jdGlvbicpIHtcblx0XHRcdFx0XHRcdFx0bGV0IHJlc0ludGVyY2VwdG9ycyA9IHRoaXMuaW50ZXJjZXB0b3IucmVzcG9uc2UocmVzcG9uc2UuZGF0YSk7XG5cdFx0XHRcdFx0XHRcdGlmIChyZXNJbnRlcmNlcHRvcnMgIT09IGZhbHNlKSB7XG5cdFx0XHRcdFx0XHRcdFx0cmVzb2x2ZShyZXNJbnRlcmNlcHRvcnMpO1xuXHRcdFx0XHRcdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHRcdFx0XHRcdHJlamVjdChyZXNwb25zZS5kYXRhKTtcblx0XHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0XHRcdFx0Ly8g5aaC5p6c5LiN5piv6L+U5Zue5Y6f5aeL5pWw5o2uKG9yaWdpbmFsRGF0YT1mYWxzZSnvvIzkuJTmsqHmnInmi6bmiKrlmajnmoTmg4XlhrXkuIvvvIzov5Tlm57nuq/mlbDmja7nu5l0aGVu5Zue6LCDXG5cdFx0XHRcdFx0XHRcdHJlc29sdmUocmVzcG9uc2UuZGF0YSk7XG5cdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0XHRcdC8vIOS4jei/lOWbnuWOn+Wni+aVsOaNrueahOaDheWGteS4i++8jOacjeWKoeWZqOeKtuaAgeeggeS4jeS4ujIwMO+8jG1vZGFs5by55qGG5o+Q56S6XG5cdFx0XHRcdFx0XHQvLyBpZihyZXNwb25zZS5lcnJNc2cpIHtcblx0XHRcdFx0XHRcdC8vIFx0dW5pLnNob3dNb2RhbCh7XG5cdFx0XHRcdFx0XHQvLyBcdFx0dGl0bGU6IHJlc3BvbnNlLmVyck1zZ1xuXHRcdFx0XHRcdFx0Ly8gXHR9KTtcblx0XHRcdFx0XHRcdC8vIH1cblx0XHRcdFx0XHRcdGlmIChyZXNwb25zZS5zdGF0dXNDb2RlID09IDUwMCkge1xuXHRcdFx0XHRcdFx0XHR1bmkuc2hvd1RvYXN0KHtcblx0XHRcdFx0XHRcdFx0XHR0aXRsZTogJ+acjeWKoeWZqOW8guW4uCcsXG5cdFx0XHRcdFx0XHRcdFx0ZHVyYXRpb246IDIwMDAsXG5cdFx0XHRcdFx0XHRcdFx0aWNvbjogJ25vbmUnXG5cdFx0XHRcdFx0XHRcdH0pXG5cdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHRpZiAocmVzcG9uc2Uuc3RhdHVzQ29kZSA9PSA0MDEpIHtcblx0XHRcdFx0XHRcdFx0dW5pLnNob3dUb2FzdCh7XG5cdFx0XHRcdFx0XHRcdFx0dGl0bGU6ICfnmbvlvZXlt7LlpLHmlYgnLFxuXHRcdFx0XHRcdFx0XHRcdGR1cmF0aW9uOiAyMDAwLFxuXHRcdFx0XHRcdFx0XHRcdGljb246ICdub25lJ1xuXHRcdFx0XHRcdFx0XHR9KVxuXHRcdFx0XHRcdFx0XHR1bmkubmF2aWdhdGVUbyh7XG5cdFx0XHRcdFx0XHRcdFx0dXJsOiBcIi9wYWdlcy9sb2dpbi9sb2dpblwiXG5cdFx0XHRcdFx0XHRcdH0pXG5cdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHRyZWplY3QocmVzcG9uc2UpXG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9XG5cdFx0XHR9XG5cblx0XHRcdC8vIOWIpOaWreeUqOaIt+S8oOmAkueahFVSTOaYr+WQpi/lvIDlpLQs5aaC5p6c5LiN5pivLOWKoOS4ii/vvIzov5nph4zkvb/nlKjkuoZ1Vmlld+eahHRlc3QuanPpqozor4HlupPnmoR1cmwoKeaWueazlVxuXHRcdFx0b3B0aW9ucy51cmwgPSB2YWxpZGF0ZS51cmwob3B0aW9ucy51cmwpID8gb3B0aW9ucy51cmwgOiAoKG9wdGlvbnMuYmFzZVVybCA/IG9wdGlvbnMuYmFzZVVybCA6XG5cdFx0XHRcdHRoaXNcblx0XHRcdFx0LmNvbmZpZy5iYXNlVXJsKSArIChvcHRpb25zLnVybFxuXHRcdFx0XHQuaW5kZXhPZignLycpID09IDAgP1xuXHRcdFx0XHRvcHRpb25zLnVybCA6ICcvJyArIG9wdGlvbnMudXJsKSk7XG5cblx0XHRcdC8vIOaYr+WQpuaYvuekumxvYWRpbmdcblx0XHRcdC8vIOWKoOS4gOS4quaYr+WQpuW3suaciXRpbWVy5a6a5pe25Zmo55qE5Yik5pat77yM5ZCm5YiZ5pyJ5Lik5Liq5ZCM5pe26K+35rGC55qE5pe25YCZ77yM5ZCO6ICF5Lya5riF6Zmk5YmN6ICF55qE5a6a5pe25ZmoaWRcblx0XHRcdC8vIOiAjOayoeaciea4hemZpOWJjeiAheeahOWumuaXtuWZqO+8jOWvvOiHtOWJjeiAhei2heaXtu+8jOS4gOebtOaYvuekumxvYWRpbmdcblx0XHRcdGlmICh0aGlzLmNvbmZpZy5zaG93TG9hZGluZyAmJiAhdGhpcy5jb25maWcudGltZXIpIHtcblx0XHRcdFx0dGhpcy5jb25maWcudGltZXIgPSBzZXRUaW1lb3V0KCgpID0+IHtcblx0XHRcdFx0XHR1bmkuc2hvd0xvYWRpbmcoe1xuXHRcdFx0XHRcdFx0dGl0bGU6IHRoaXMuY29uZmlnLmxvYWRpbmdUZXh0LFxuXHRcdFx0XHRcdFx0bWFzazogdGhpcy5jb25maWcubG9hZGluZ01hc2tcblx0XHRcdFx0XHR9KVxuXHRcdFx0XHRcdHRoaXMuY29uZmlnLnRpbWVyID0gbnVsbDtcblx0XHRcdFx0fSwgdGhpcy5jb25maWcubG9hZGluZ1RpbWUpO1xuXHRcdFx0fVxuXHRcdFx0Ly8gY29uc29sZS5sb2coJ2FwaS5oZWxwZXItLS0tLWZpbmFsbHkqKipyZXF1ZXN0Jywgb3B0aW9ucylcblx0XHRcdHVuaS5yZXF1ZXN0KG9wdGlvbnMpO1xuXHRcdH0pXG5cdFx0Ly8gLmNhdGNoKHJlcyA9PiB7XG5cdFx0Ly8gXHQvLyDlpoLmnpzov5Tlm55yZWplY3QoKe+8jOS4jeiuqeWFtui/m+WFpXRoaXMuJHUucG9zdCgpLnRoZW4oKS5jYXRjaCgp5ZCO6Z2i55qEY2F0Y3QoKVxuXHRcdC8vIFx0Ly8g5Zug5Li65b6I5aSa5Lq66YO95Lya5b+Y5LqG5YaZ5ZCO6Z2i55qEY2F0Y2goKe+8jOWvvOiHtOaKpemUmeaNleiOt+S4jeWIsGNhdGNoXG5cdFx0Ly8gXHRyZXR1cm4gbmV3IFByb21pc2UoKCk9Pnt9KTtcblx0XHQvLyB9KVxuXHR9XG5cblx0Y29uc3RydWN0b3IoKSB7XG5cdFx0dGhpcy5jb25maWcgPSB7XG5cdFx0XHRiYXNlVXJsOiAnaHR0cDovLzIyMS4xMC4xMjcuNjA6NTAwMCcsIC8vIOivt+axgueahOagueWfn+WQjVxuXHRcdFx0Ly8g6buY6K6k55qE6K+35rGC5aS0XG5cdFx0XHRoZWFkZXI6IHt9LFxuXHRcdFx0bWV0aG9kOiAnUE9TVCcsXG5cdFx0XHQvLyDorr7nva7kuLpqc29u77yM6L+U5Zue5ZCOdW5pLnJlcXVlc3TkvJrlr7nmlbDmja7ov5vooYzkuIDmrKFKU09OLnBhcnNlXG5cdFx0XHRkYXRhVHlwZTogJ2pzb24nLFxuXHRcdFx0Ly8g5q2k5Y+C5pWw5peg6ZyA5aSE55CG77yM5Zug5Li6NSvlkozmlK/ku5jlrp3lsI/nqIvluo/kuI3mlK/mjIHvvIzpu5jorqTkuLp0ZXh05Y2z5Y+vXG5cdFx0XHRyZXNwb25zZVR5cGU6ICd0ZXh0Jyxcblx0XHRcdHNob3dMb2FkaW5nOiB0cnVlLCAvLyDmmK/lkKbmmL7npLror7fmsYLkuK3nmoRsb2FkaW5nXG5cdFx0XHRsb2FkaW5nVGV4dDogJ+ivt+axguS4rS4uLicsXG5cdFx0XHRsb2FkaW5nVGltZTogODAwLCAvLyDlnKjmraTml7bpl7TlhoXvvIzor7fmsYLov5jmsqHlm57mnaXnmoTor53vvIzlsLHmmL7npLrliqDovb3kuK3liqjnlLvvvIzljZXkvY1tc1xuXHRcdFx0dGltZXI6IG51bGwsIC8vIOWumuaXtuWZqFxuXHRcdFx0c3NsVmVyaWZ5OiBmYWxzZSwgLy8g5a6a5pe25ZmoXG5cdFx0XHRvcmlnaW5hbERhdGE6IGZhbHNlLCAvLyDmmK/lkKblnKjmi6bmiKrlmajkuK3ov5Tlm57mnI3liqHnq6/nmoTljp/lp4vmlbDmja7vvIzop4HmlofmoaPor7TmmI5cblx0XHRcdGxvYWRpbmdNYXNrOiB0cnVlLCAvLyDlsZXnpLpsb2FkaW5n55qE5pe25YCZ77yM5piv5ZCm57uZ5LiA5Liq6YCP5piO55qE6JKZ5bGC77yM6Ziy5q2i6Kem5pG456m/6YCPXG5cdFx0fVxuXG5cdFx0Ly8g5oum5oiq5ZmoXG5cdFx0dGhpcy5pbnRlcmNlcHRvciA9IHtcblx0XHRcdC8vIOivt+axguWJjeeahOaLpuaIqlxuXHRcdFx0cmVxdWVzdDogKGNvbmZpZykgPT4ge1xuXHRcdFx0XHRjb25maWcuaGVhZGVyWydBdXRob3JpemF0aW9uJ10gPSBgQmFzaWMgJHtCYXNlNjQuZW5jb2RlKCd3YW5ncGM6TFpZODg4QEAnKX1gO1xuXHRcdFx0XHR0cnkge1xuXHRcdFx0XHRcdGlmIChjb25maWcudXJsLmluZGV4T2YoJ2NybS1hcHAvbG9naW4nKSA9PT0gLVxuXHRcdFx0XHRcdFx0MSAmJlxuXHRcdFx0XHRcdFx0c3RvcmUuc3RhdGUudnVleF90b2tlbikge1xuXHRcdFx0XHRcdFx0Y29uZmlnLmhlYWRlclsnWC1BdXRoLVRva2VuJ10gPSBzdG9yZVxuXHRcdFx0XHRcdFx0XHQuc3RhdGUudnVleF90b2tlblxuXHRcdFx0XHRcdH1cblxuXHRcdFx0XHRcdGlmIChjb25maWcuaGVhZGVyWydDb250ZW50LVR5cGUnXSAmJiBjb25maWcuaGVhZGVyWydDb250ZW50LVR5cGUnXS5pbmRleE9mKFxuXHRcdFx0XHRcdFx0XHQneC13d3ctZm9ybS11cmxlbmNvZGVkJykgPT09IC0xKSB7XG5cdFx0XHRcdFx0XHRjb25maWcuaGVhZGVyWydDb250ZW50LVR5cGUnXSA9IFwiYXBwbGljYXRpb24vanNvbjsgY2hhcnNldD11dGYtOFwiXG5cdFx0XHRcdFx0fVxuXG5cblx0XHRcdFx0XHRpZiAoY29uZmlnLnVybC5pbmRleE9mKCdjcm0tYXBwJykgIT09IC0xKSB7XG5cdFx0XHRcdFx0XHQvLyBjb25maWcuYmFzZVVybCA9ICdodHRwOi8vMTAuMC4xMzUuNjEnXG5cdFx0XHRcdFx0XHRjb25maWcuYmFzZVVybCA9ICdodHRwOi8vMjIxLjEwLjEyNy42MDo1MDAwJ1xuXHRcdFx0XHRcdH0gZWxzZSBpZiAoY29uZmlnLnVybC5pbmRleE9mKCdhZGFwdGVyJykgIT09IC0xKSB7XG5cdFx0XHRcdFx0XHQvLyBjb25maWcuYmFzZVVybCA9ICdodHRwOi8vYXBpLmMwMzMxLmRldi5ndWFueWluZ3l1bi5jb20nXG5cdFx0XHRcdFx0XHR
jb25maWcuYmFzZVVybCA9ICdodHRwOi8vMjIxLjEwLjEyNy42MDo1MDAwL2N5aidcblx0XHRcdFx0XHR9IGVsc2UgaWYgKGNvbmZpZy51cmwuaW5kZXhPZignd21kcHdlYnNlcnZpY2VzJykgIT09IC0xKSB7XG5cdFx0XHRcdFx0XHQvLyBjb25maWcuYmFzZVVybCA9ICdodHRwczovLzEwLjAuMTM0LjE4Mjo5MDAyJ1xuXHRcdFx0XHRcdFx0Y29uZmlnLmJhc2VVcmwgPSAnaHR0cDovLzIyMS4xMC4xMjcuNjA6NTAwMC9zY3p4J1xuXHRcdFx0XHRcdFx0Ly8gY29uZmlnLmJhc2VVcmwgPSAnJ1xuXHRcdFx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdFx0XHRjb25maWcuYmFzZVVybCA9ICdodHRwOi8vMjIxLjEwLjEyNy42MDo1MDAwL3dseVNhcCdcblx0XHRcdFx0XHR9XG5cdFx0XHRcdH0gY2F0Y2ggKGUpIHtcblx0XHRcdFx0XHRjb25zb2xlLmxvZygnZXJyb3InLCBlKVxuXHRcdFx0XHR9XG5cdFx0XHRcdC8vIGlmIChjb25maWcudXJsLmluZGV4T2YoJ2NybS1hcHAvbG9naW4nKSAhPT0gLTEgJiYgIXN0b3JlLnN0YXRlLnZ1ZXhfdG9rZW4pIHtcblx0XHRcdFx0Ly8gXHR1bmkuc2hvd1RvYXN0KHtcblx0XHRcdFx0Ly8gXHRcdHRpdGxlOiAn55m75b2V5bey5aSx5pWIJyxcblx0XHRcdFx0Ly8gXHRcdGR1cmF0aW9uOiAyMDAwLFxuXHRcdFx0XHQvLyBcdFx0aWNvbjogJ25vbmUnXG5cdFx0XHRcdC8vIFx0fSk7XG5cdFx0XHRcdC8vIFx0dW5pLm5hdmlnYXRlVG8oe1xuXHRcdFx0XHQvLyBcdFx0dXJsOiBcIi9wYWdlcy9sb2dpbi9sb2dpblwiXG5cdFx0XHRcdC8vIFx0fSlcblx0XHRcdFx0Ly8gfVxuXHRcdFx0XHRjb25zb2xlLmxvZygnaGVscGVyLS1pbnRlcmNlcHRvci0tLXJlcXVlc3QtLS0tLScsIGNvbmZpZylcblx0XHRcdFx0cmV0dXJuIGNvbmZpZztcblx0XHRcdH0sXG5cdFx0XHQvLyDor7fmsYLlkI7nmoTmi6bmiKpcblx0XHRcdHJlc3BvbnNlOiAocmVzKSA9PiB7XG5cdFx0XHRcdGNvbnNvbGUubG9nKCdoZWxwZXItLWlpbnRlcmNlcHRvci0tLXJlc3BvbnNlLS0tLS0nLCByZXMpXG5cdFx0XHRcdGlmIChyZXMuTVNHVFlQRSA9PT0gJ1MnIHx8IHJlcy5tc2d0eXBlID09PSAnUycgfHwgcmVzLnN0YXR1cyA9PT0gMSB8fCByZXMucmVzdWx0ID09PSBcIlNcIiB8fFxuXHRcdFx0XHRcdHJlcy5TdGF0dXMgPT09XG5cdFx0XHRcdFx0J1N1Y2Nlc3MnKSB7XG5cdFx0XHRcdFx0Ly8g5aaC5p6c5oqKb3JpZ2luYWxEYXRh6K6+572u5Li65LqGdHJ1Ze+8jOi/memHjHJldHVybuWbnuS7gOS5iO+8jHRoaXMuJHUucG9zdOeahHRoZW7lm57osIPkuK3lsLHkvJrlvpfliLDku4DkuYhcblx0XHRcdFx0XHRyZXR1cm4gcmVzO1xuXHRcdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHRcdHVuaS5zaG93VG9hc3Qoe1xuXHRcdFx0XHRcdFx0dGl0bGU6IHJlcy5NRVNTQUdFIHx8IHJlcy5tc2cgfHwgcmVzLm1lc3NhZ2UgfHwgcmVzLkVyck1zZyxcblx0XHRcdFx0XHRcdGR1cmF0aW9uOiAyMDAwLFxuXHRcdFx0XHRcdFx0aWNvbjogJ25vbmUnXG5cdFx0XHRcdFx0fSk7XG5cdFx0XHRcdFx0cmV0dXJuIGZhbHNlXG5cdFx0XHRcdH07XG5cdFx0XHR9XG5cdFx0fVxuXG5cdFx0Ly8gZ2V06K+35rGCXG5cdFx0dGhpcy5nZXQgPSAodXJsLCBkYXRhID0ge30sIGhlYWRlciA9IHt9KSA9PiB7XG5cdFx0XHRyZXR1cm4gdGhpcy5yZXF1ZXN0KHtcblx0XHRcdFx0bWV0aG9kOiAnR0VUJyxcblx0XHRcdFx0dXJsLFxuXHRcdFx0XHRoZWFkZXIsXG5cdFx0XHRcdGRhdGFcblx0XHRcdH0pXG5cdFx0fVxuXG5cdFx0Ly8gcG9zdOivt+axglxuXHRcdHRoaXMucG9zdCA9ICh1cmwsIGRhdGEgPSB7fSwgaGVhZGVyID0ge30pID0+IHtcblx0XHRcdHJldHVybiB0aGlzLnJlcXVlc3Qoe1xuXHRcdFx0XHR1cmwsXG5cdFx0XHRcdG1ldGhvZDogJ1BPU1QnLFxuXHRcdFx0XHRoZWFkZXIsXG5cdFx0XHRcdGRhdGFcblx0XHRcdH0pXG5cdFx0fVxuXG5cdFx0Ly8gcHV06K+35rGC77yM5LiN5pSv5oyB5pSv5LuY5a6d5bCP56iL5bqPKEhYMi42LjE1KVxuXHRcdHRoaXMucHV0ID0gKHVybCwgZGF0YSA9IHt9LCBoZWFkZXIgPSB7fSkgPT4ge1xuXHRcdFx0cmV0dXJuIHRoaXMucmVxdWVzdCh7XG5cdFx0XHRcdHVybCxcblx0XHRcdFx0bWV0aG9kOiAnUFVUJyxcblx0XHRcdFx0aGVhZGVyLFxuXHRcdFx0XHRkYXRhXG5cdFx0XHR9KVxuXHRcdH1cblxuXHRcdC8vIGRlbGV0Zeivt+axgu+8jOS4jeaUr+aMgeaUr+S7mOWuneWSjOWktOadoeWwj+eoi+W6jyhIWDIuNi4xNSlcblx0XHR0aGlzLmRlbGV0ZSA9ICh1cmwsIGRhdGEgPSB7fSwgaGVhZGVyID0ge30pID0+IHtcblx0XHRcdHJldHVybiB0aGlzLnJlcXVlc3Qoe1xuXHRcdFx0XHR1cmwsXG5cdFx0XHRcdG1ldGhvZDogJ0RFTEVURScsXG5cdFx0XHRcdGhlYWRlcixcblx0XHRcdFx0ZGF0YVxuXHRcdFx0fSlcblx0XHR9XG5cdH1cbn1cbmV4cG9ydCBkZWZhdWx0IG5ldyBSZXF1ZXN0XG4iXSwic291cmNlUm9vdCI6IiJ9
\n
//# sourceURL=webpack-internal:///15
\n
"
);
eval
(
"/* WEBPACK VAR INJECTION */(function(__f__) {Object.defineProperty(exports,
\"
__esModule
\"
, { value: true });exports.default = void 0;var _index = __webpack_require__(/*! @/utils/index.js */ 16);
\n\n\n
var _validate = _interopRequireDefault(__webpack_require__(/*! @/utils/validate.js */ 17));
\n
var _jsBase = __webpack_require__(/*! js-base64 */ 18);
\n\n\n
var _index2 = _interopRequireDefault(__webpack_require__(/*! @/store/index.js */ 19));function _interopRequireDefault(obj) {return obj && obj.__esModule ? obj : { default: obj };}function _classCallCheck(instance, Constructor) {if (!(instance instanceof Constructor)) {throw new TypeError(
\"
Cannot call a class as a function
\"
);}}function _defineProperties(target, props) {for (var i = 0; i < props.length; i++) {var descriptor = props[i];descriptor.enumerable = descriptor.enumerable || false;descriptor.configurable = true;if (
\"
value
\"
in descriptor) descriptor.writable = true;Object.defineProperty(target, descriptor.key, descriptor);}}function _createClass(Constructor, protoProps, staticProps) {if (protoProps) _defineProperties(Constructor.prototype, protoProps);if (staticProps) _defineProperties(Constructor, staticProps);return Constructor;}var
\n\n
Request = /*#__PURE__*/function () {_createClass(Request, [{ key:
\"
setConfig
\"
,
\n
// 设置全局默认配置
\n
value: function setConfig(customConfig) {
\n
// 深度合并对象,否则会造成对象深层属性丢失
\n
this.config = (0, _index.deepMerge)(this.config, customConfig);
\n
}
\n\n
// 主要请求部分
\n
}, { key:
\"
request
\"
, value: function request() {var _this = this;var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
\n\n
// 检查请求拦截
\n
if (this.interceptor.request && typeof this.interceptor.request === 'function') {
\n
var tmpConfig = {};
\n
var interceptorRequest = this.interceptor.request(options);
\n
if (interceptorRequest === false) {
\n
// 返回一个处于pending状态中的Promise,来取消原promise,避免进入then()回调
\n
return new Promise(function () {});
\n
}
\n
this.options = interceptorRequest;
\n
}
\n\n
options.dataType = options.dataType || this.config.dataType;
\n
options.responseType = options.responseType || this.config.responseType;
\n
options.url = options.url || '';
\n
options.params = options.params || {};
\n
options.header = Object.assign({}, this.config.header, options.header);
\n
options.method = options.method || this.config.method;
\n
options.sslVerify = false;
\n\n
// console.log('api.helper-----request', options, this.options)
\n\n
return new Promise(function (resolve, reject) {
\n
options.complete = function (response) {
\n
__f__(
\"
log
\"
, 'api.helper---options.complete', response,
\"
at servers/api.helper.js:43
\"
);
\n
// 请求返回后,隐藏loading(如果请求返回快的话,可能会没有loading)
\n
uni.hideLoading();
\n
// 清除定时器,如果请求回来了,就无需loading
\n
clearTimeout(_this.config.timer);
\n
_this.config.timer = null;
\n
// 判断用户对拦截返回数据的要求,如果originalData为true,返回所有的数据(response)到拦截器,否则只返回response.data
\n
if (_this.config.originalData) {
\n
// 判断是否存在拦截器
\n
if (_this.interceptor.response && typeof _this.interceptor.response === 'function') {
\n
var resInterceptors = _this.interceptor.response(response);
\n
// 如果拦截器不返回false,就将拦截器返回的内容给this.$u.post的then回调
\n
if (resInterceptors !== false) {
\n
resolve(resInterceptors);
\n
} else {
\n
// 如果拦截器返回false,意味着拦截器定义者认为返回有问题,直接接入catch回调
\n
reject(response);
\n
}
\n
} else {
\n
// 如果要求返回原始数据,就算没有拦截器,也返回最原始的数据
\n
resolve(response);
\n
}
\n
} else {
\n
if (response.statusCode == 200) {
\n
if (_this.interceptor.response && typeof _this.interceptor.response ===
\n
'function') {
\n
var _resInterceptors = _this.interceptor.response(response.data);
\n
if (_resInterceptors !== false) {
\n
resolve(_resInterceptors);
\n
} else {
\n
reject(response.data);
\n
}
\n
} else {
\n
// 如果不是返回原始数据(originalData=false),且没有拦截器的情况下,返回纯数据给then回调
\n
resolve(response.data);
\n
}
\n
} else {
\n
// 不返回原始数据的情况下,服务器状态码不为200,modal弹框提示
\n
// if(response.errMsg) {
\n
//
\
tuni.showModal({
\n
//
\
t
\
ttitle: response.errMsg
\n
//
\
t});
\n
// }
\n
if (response.statusCode == 500) {
\n
uni.showToast({
\n
title: '服务器异常',
\n
duration: 2000,
\n
icon: 'none' });
\n\n
}
\n
if (response.statusCode == 401) {
\n
uni.showToast({
\n
title: '登录已失效',
\n
duration: 2000,
\n
icon: 'none' });
\n\n
uni.navigateTo({
\n
url:
\"
/pages/login/login
\"
});
\n\n
}
\n
reject(response);
\n
}
\n
}
\n
};
\n\n
// 判断用户传递的URL是否/开头,如果不是,加上/,这里使用了uView的test.js验证库的url()方法
\n
options.url = _validate.default.url(options.url) ? options.url : (options.baseUrl ? options.baseUrl :
\n
_this.
\n
config.baseUrl) + (options.url.
\n
indexOf('/') == 0 ?
\n
options.url : '/' + options.url);
\n\n
// 是否显示loading
\n
// 加一个是否已有timer定时器的判断,否则有两个同时请求的时候,后者会清除前者的定时器id
\n
// 而没有清除前者的定时器,导致前者超时,一直显示loading
\n
if (_this.config.showLoading && !_this.config.timer) {
\n
_this.config.timer = setTimeout(function () {
\n
uni.showLoading({
\n
title: _this.config.loadingText,
\n
mask: _this.config.loadingMask });
\n\n
_this.config.timer = null;
\n
}, _this.config.loadingTime);
\n
}
\n
// console.log('api.helper-----finally***request', options)
\n
uni.request(options);
\n
});
\n
// .catch(res => {
\n
//
\
t// 如果返回reject(),不让其进入this.$u.post().then().catch()后面的catct()
\n
//
\
t// 因为很多人都会忘了写后面的catch(),导致报错捕获不到catch
\n
//
\
treturn new Promise(()=>{});
\n
// })
\n
} }]);
\n\n
function Request() {var _this2 = this;_classCallCheck(this, Request);
\n
this.config = {
\n
baseUrl: 'http://221.10.127.60:5000', // 请求的根域名
\n
// 默认的请求头
\n
header: {},
\n
method: 'POST',
\n
// 设置为json,返回后uni.request会对数据进行一次JSON.parse
\n
dataType: 'json',
\n
// 此参数无需处理,因为5+和支付宝小程序不支持,默认为text即可
\n
responseType: 'text',
\n
showLoading: true, // 是否显示请求中的loading
\n
loadingText: '请求中...',
\n
loadingTime: 800, // 在此时间内,请求还没回来的话,就显示加载中动画,单位ms
\n
timer: null, // 定时器
\n
sslVerify: false, // 定时器
\n
originalData: false, // 是否在拦截器中返回服务端的原始数据,见文档说明
\n
loadingMask: true // 展示loading的时候,是否给一个透明的蒙层,防止触摸穿透
\n
};
\n\n
// 拦截器
\n
this.interceptor = {
\n
// 请求前的拦截
\n
request: function request(config) {
\n
config.header['Authorization'] =
\"
Basic
\"
.concat(_jsBase.Base64.encode('wangpc:LZY888@@'));
\n
try {
\n
if (config.url.indexOf('crm-app/login') === -
\n
1 &&
\n
_index2.default.state.vuex_token) {
\n
config.header['X-Auth-Token'] = _index2.default.
\n
state.vuex_token;
\n
}
\n\n
if (config.header['Content-Type'] && config.header['Content-Type'].indexOf(
\n
'x-www-form-urlencoded') === -1) {
\n
config.header['Content-Type'] =
\"
application/json; charset=utf-8
\"
;
\n
}
\n\n\n
if (config.url.indexOf('crm-app') !== -1) {
\n
// config.baseUrl = 'http://10.0.135.61'
\n
config.baseUrl = 'http://221.10.127.60:5000';
\n
} else if (config.url.indexOf('adapter') !== -1) {
\n
config.baseUrl = 'http://api.c0331.dev.guanyingyun.com';
\n
// config.baseUrl = 'http://221.10.127.60:5000/cyj'
\n
} else if (config.url.indexOf('wmdpwebservices') !== -1) {
\n
// config.baseUrl = 'https://10.0.134.182:9002'
\n
config.baseUrl = 'http://221.10.127.60:5000/sczx';
\n
// config.baseUrl = ''
\n
} else {
\n
config.baseUrl = 'http://221.10.127.60:5000/wlySap';
\n
}
\n
} catch (e) {
\n
__f__(
\"
log
\"
, 'error', e,
\"
at servers/api.helper.js:189
\"
);
\n
}
\n
// if (config.url.indexOf('crm-app/login') !== -1 && !store.state.vuex_token) {
\n
//
\
tuni.showToast({
\n
//
\
t
\
ttitle: '登录已失效',
\n
//
\
t
\
tduration: 2000,
\n
//
\
t
\
ticon: 'none'
\n
//
\
t});
\n
//
\
tuni.navigateTo({
\n
//
\
t
\
turl:
\"
/pages/login/login
\"\n
//
\
t})
\n
// }
\n
__f__(
\"
log
\"
, 'helper--interceptor---request-----', config,
\"
at servers/api.helper.js:201
\"
);
\n
return config;
\n
},
\n
// 请求后的拦截
\n
response: function response(res) {
\n
__f__(
\"
log
\"
, 'helper--iinterceptor---response-----', res,
\"
at servers/api.helper.js:206
\"
);
\n
if (res.MSGTYPE === 'S' || res.msgtype === 'S' || res.status === 1 || res.result ===
\"
S
\"
||
\n
res.Status ===
\n
'Success') {
\n
// 如果把originalData设置为了true,这里return回什么,this.$u.post的then回调中就会得到什么
\n
return res;
\n
} else {
\n
uni.showToast({
\n
title: res.MESSAGE || res.msg || res.message || res.ErrMsg,
\n
duration: 2000,
\n
icon: 'none' });
\n\n
return false;
\n
};
\n
} };
\n\n\n
// get请求
\n
this.get = function (url) {var data = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};var header = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
\n
return _this2.request({
\n
method: 'GET',
\n
url: url,
\n
header: header,
\n
data: data });
\n\n
};
\n\n
// post请求
\n
this.post = function (url) {var data = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};var header = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
\n
return _this2.request({
\n
url: url,
\n
method: 'POST',
\n
header: header,
\n
data: data });
\n\n
};
\n\n
// put请求,不支持支付宝小程序(HX2.6.15)
\n
this.put = function (url) {var data = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};var header = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
\n
return _this2.request({
\n
url: url,
\n
method: 'PUT',
\n
header: header,
\n
data: data });
\n\n
};
\n\n
// delete请求,不支持支付宝和头条小程序(HX2.6.15)
\n
this.delete = function (url) {var data = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};var header = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
\n
return _this2.request({
\n
url: url,
\n
method: 'DELETE',
\n
header: header,
\n
data: data });
\n\n
};
\n
}return Request;}();var _default =
\n\n
new Request();exports.default = _default;
\n
/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./node_modules/@dcloudio/vue-cli-plugin-uni/lib/format-log.js */ 10)[
\"
default
\"
]))//# sourceURL=[module]
\n
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInVuaS1hcHA6Ly8vc2VydmVycy9hcGkuaGVscGVyLmpzIl0sIm5hbWVzIjpbIlJlcXVlc3QiLCJjdXN0b21Db25maWciLCJjb25maWciLCJvcHRpb25zIiwiaW50ZXJjZXB0b3IiLCJyZXF1ZXN0IiwidG1wQ29uZmlnIiwiaW50ZXJjZXB0b3JSZXF1ZXN0IiwiUHJvbWlzZSIsImRhdGFUeXBlIiwicmVzcG9uc2VUeXBlIiwidXJsIiwicGFyYW1zIiwiaGVhZGVyIiwiT2JqZWN0IiwiYXNzaWduIiwibWV0aG9kIiwic3NsVmVyaWZ5IiwicmVzb2x2ZSIsInJlamVjdCIsImNvbXBsZXRlIiwicmVzcG9uc2UiLCJ1bmkiLCJoaWRlTG9hZGluZyIsImNsZWFyVGltZW91dCIsInRpbWVyIiwib3JpZ2luYWxEYXRhIiwicmVzSW50ZXJjZXB0b3JzIiwic3RhdHVzQ29kZSIsImRhdGEiLCJzaG93VG9hc3QiLCJ0aXRsZSIsImR1cmF0aW9uIiwiaWNvbiIsIm5hdmlnYXRlVG8iLCJ2YWxpZGF0ZSIsImJhc2VVcmwiLCJpbmRleE9mIiwic2hvd0xvYWRpbmciLCJzZXRUaW1lb3V0IiwibG9hZGluZ1RleHQiLCJtYXNrIiwibG9hZGluZ01hc2siLCJsb2FkaW5nVGltZSIsIkJhc2U2NCIsImVuY29kZSIsInN0b3JlIiwic3RhdGUiLCJ2dWV4X3Rva2VuIiwiZSIsInJlcyIsIk1TR1RZUEUiLCJtc2d0eXBlIiwic3RhdHVzIiwicmVzdWx0IiwiU3RhdHVzIiwiTUVTU0FHRSIsIm1zZyIsIm1lc3NhZ2UiLCJFcnJNc2ciLCJnZXQiLCJwb3N0IiwicHV0IiwiZGVsZXRlIl0sIm1hcHBpbmdzIjoib0lBQUE7OztBQUdBO0FBQ0E7OztBQUdBLHNGOztBQUVNQSxPO0FBQ0w7OEJBQ1VDLFksRUFBYztBQUN2QjtBQUNBLFdBQUtDLE1BQUwsR0FBYyxzQkFBVSxLQUFLQSxNQUFmLEVBQXVCRCxZQUF2QixDQUFkO0FBQ0E7O0FBRUQ7aURBQ3NCLHNCQUFkRSxPQUFjLHVFQUFKLEVB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QTtBQUNBLFNBQUtnQyxJQUFMLEdBQVksVUFBQ2xELEdBQUQsRUFBaUMsS0FBM0JrQixJQUEyQix1RUFBcEIsRUFBb0IsS0FBaEJoQixNQUFnQix1RUFBUCxFQUFPO0FBQzVDLGFBQU8sTUFBSSxDQUFDUixPQUFMLENBQWE7QUFDbkJNLFdBQUcsRUFBSEEsR0FEbUI7QUFFbkJLLGNBQU0sRUFBRSxNQUZXO0FBR25CSCxjQUFNLEVBQU5BLE1BSG1CO0FBSW5CZ0IsWUFBSSxFQUFKQSxJQUptQixFQUFiLENBQVA7O0FBTUEsS0FQRDs7QUFTQTtBQUNBLFNBQUtpQyxHQUFMLEdBQVcsVUFBQ25ELEdBQUQsRUFBaUMsS0FBM0JrQixJQUEyQix1RUFBcEIsRUFBb0IsS0FBaEJoQixNQUFnQix1RUFBUCxFQUFPO0FBQzNDLGFBQU8sTUFBSSxDQUFDUixPQUFMLENBQWE7QUFDbkJNLFdBQUcsRUFBSEEsR0FEbUI7QUFFbkJLLGNBQU0sRUFBRSxLQUZXO0FBR25CSCxjQUFNLEVBQU5BLE1BSG1CO0FBSW5CZ0IsWUFBSSxFQUFKQSxJQUptQixFQUFiLENBQVA7O0FBTUEsS0FQRDs7QUFTQTtBQUNBLFNBQUtrQyxNQUFMLEdBQWMsVUFBQ3BELEdBQUQsRUFBaUMsS0FBM0JrQixJQUEyQix1RUFBcEIsRUFBb0IsS0FBaEJoQixNQUFnQix1RUFBUCxFQUFPO0FBQzlDLGFBQU8sTUFBSSxDQUFDUixPQUFMLENBQWE7QUFDbkJNLFdBQUcsRUFBSEEsR0FEbUI7QUFFbkJLLGNBQU0sRUFBRSxRQUZXO0FBR25CSCxjQUFNLEVBQU5BLE1BSG1CO0FBSW5CZ0IsWUFBSSxFQUFKQSxJQUptQixFQUFiLENBQVA7O0FBTUEsS0FQRDtBQVFBLEc7O0FBRWEsSUFBSTdCLE9BQUosRSIsImZpbGUiOiIxNS5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG5cdGRlZXBNZXJnZVxufSBmcm9tIFwiQC91dGlscy9pbmRleC5qc1wiO1xuaW1wb3J0IHZhbGlkYXRlIGZyb20gXCJAL3V0aWxzL3ZhbGlkYXRlLmpzXCI7XG5pbXBvcnQge1xuXHRCYXNlNjRcbn0gZnJvbSAnanMtYmFzZTY0J1xuaW1wb3J0IHN0b3JlIGZyb20gJ0Avc3RvcmUvaW5kZXguanMnXG5cbmNsYXNzIFJlcXVlc3Qge1xuXHQvLyDorr7nva7lhajlsYDpu5jorqTphY3nva5cblx0c2V0Q29uZmlnKGN1c3RvbUNvbmZpZykge1xuXHRcdC8vIOa3seW6puWQiOW5tuWvueixoe+8jOWQpuWImeS8mumAoOaIkOWvueixoea3seWxguWxnuaAp+S4ouWksVxuXHRcdHRoaXMuY29uZmlnID0gZGVlcE1lcmdlKHRoaXMuY29uZmlnLCBjdXN0b21Db25maWcpO1xuXHR9XG5cblx0Ly8g5Li76KaB6K+35rGC6YOo5YiGXG5cdHJlcXVlc3Qob3B0aW9ucyA9IHt9KSB7XG5cblx0XHQvLyDmo4Dmn6Xor7fmsYLmi6bmiKpcblx0XHRpZiAodGhpcy5pbnRlcmNlcHRvci5yZXF1ZXN0ICYmIHR5cGVvZiB0aGlzLmludGVyY2VwdG9yLnJlcXVlc3QgPT09ICdmdW5jdGlvbicpIHtcblx0XHRcdGxldCB0bXBDb25maWcgPSB7fTtcblx0XHRcdGxldCBpbnRlcmNlcHRvclJlcXVlc3QgPSB0aGlzLmludGVyY2VwdG9yLnJlcXVlc3Qob3B0aW9ucyk7XG5cdFx0XHRpZiAoaW50ZXJjZXB0b3JSZXF1ZXN0ID09PSBmYWxzZSkge1xuXHRcdFx0XHQvLyDov5Tlm57kuIDkuKrlpITkuo5wZW5kaW5n54q25oCB5Lit55qEUHJvbWlzZe+8jOadpeWPlua2iOWOn3Byb21pc2XvvIzpgb/lhY3ov5vlhaV0aGVuKCnlm57osINcblx0XHRcdFx0cmV0dXJuIG5ldyBQcm9taXNlKCgpID0+IHt9KTtcblx0XHRcdH1cblx0XHRcdHRoaXMub3B0aW9ucyA9IGludGVyY2VwdG9yUmVxdWVzdDtcblx0XHR9XG5cblx0XHRvcHRpb25zLmRhdGFUeXBlID0gb3B0aW9ucy5kYXRhVHlwZSB8fCB0aGlzLmNvbmZpZy5kYXRhVHlwZTtcblx0XHRvcHRpb25zLnJlc3BvbnNlVHlwZSA9IG9wdGlvbnMucmVzcG9uc2VUeXBlIHx8IHRoaXMuY29uZmlnLnJlc3BvbnNlVHlwZTtcblx0XHRvcHRpb25zLnVybCA9IG9wdGlvbnMudXJsIHx8ICcnO1xuXHRcdG9wdGlvbnMucGFyYW1zID0gb3B0aW9ucy5wYXJhbXMgfHwge307XG5cdFx0b3B0aW9ucy5oZWFkZXIgPSBPYmplY3QuYXNzaWduKHt9LCB0aGlzLmNvbmZpZy5oZWFkZXIsIG9wdGlvbnMuaGVhZGVyKTtcblx0XHRvcHRpb25zLm1ldGhvZCA9IG9wdGlvbnMubWV0aG9kIHx8IHRoaXMuY29uZmlnLm1ldGhvZDtcblx0XHRvcHRpb25zLnNzbFZlcmlmeSA9IGZhbHNlXG5cblx0XHQvLyBjb25zb2xlLmxvZygnYXBpLmhlbHBlci0tLS0tcmVxdWVzdCcsIG9wdGlvbnMsIHRoaXMub3B0aW9ucylcblxuXHRcdHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XG5cdFx0XHRvcHRpb25zLmNvbXBsZXRlID0gKHJlc3BvbnNlKSA9PiB7XG5cdFx0XHRcdGNvbnNvbGUubG9nKCdhcGkuaGVscGVyLS0tb3B0aW9ucy5jb21wbGV0ZScsIHJlc3BvbnNlKVxuXHRcdFx0XHQvLyDor7fmsYLov5Tlm57lkI7vvIzpmpDol49sb2FkaW5nKOWmguaenOivt+axgui/lOWbnuW/q+eahOivne+8jOWPr+iDveS8muayoeaciWxvYWRpbmcpXG5cdFx0XHRcdHVuaS5oaWRlTG9hZGluZygpO1xuXHRcdFx0XHQvLyDmuIXpmaTlrprml7blmajvvIzlpoLmnpzor7fmsYLlm57mnaXkuobvvIzlsLHml6DpnIBsb2FkaW5nXG5cdFx0XHRcdGNsZWFyVGltZW91dCh0aGlzLmNvbmZpZy50aW1lcik7XG5cdFx0XHRcdHRoaXMuY29uZmlnLnRpbWVyID0gbnVsbDtcblx0XHRcdFx0Ly8g5Yik5pat55So5oi35a+55oum5oiq6L+U5Zue5pWw5o2u55qE6KaB5rGC77yM5aaC5p6cb3JpZ2luYWxEYXRh5Li6dHJ1Ze+8jOi/lOWbnuaJgOacieeahOaVsOaNrihyZXNwb25zZSnliLDmi6bmiKrlmajvvIzlkKbliJnlj6rov5Tlm55yZXNwb25zZS5kYXRhXG5cdFx0XHRcdGlmICh0aGlzLmNvbmZpZy5vcmlnaW5hbERhdGEpIHtcblx0XHRcdFx0XHQvLyDliKTmlq3mmK/lkKblrZjlnKjmi6bmiKrlmahcblx0XHRcdFx0XHRpZiAodGhpcy5pbnRlcmNlcHRvci5yZXNwb25zZSAmJiB0eXBlb2YgdGhpcy5pbnRlcmNlcHRvci5yZXNwb25zZSA9PT0gJ2Z1bmN0aW9uJykge1xuXHRcdFx0XHRcdFx0bGV0IHJlc0ludGVyY2VwdG9ycyA9IHRoaXMuaW50ZXJjZXB0b3IucmVzcG9uc2UocmVzcG9uc2UpO1xuXHRcdFx0XHRcdFx0Ly8g5aaC5p6c5oum5oiq5Zmo5LiN6L+U5ZueZmFsc2XvvIzlsLHlsIbmi6bmiKrlmajov5Tlm57nmoTlhoXlrrnnu5l0aGlzLiR1LnBvc3TnmoR0aGVu5Zue6LCDXG5cdFx0XHRcdFx0XHRpZiAocmVzSW50ZXJjZXB0b3JzICE9PSBmYWxzZSkge1xuXHRcdFx0XHRcdFx0XHRyZXNvbHZlKHJlc0ludGVyY2VwdG9ycyk7XG5cdFx0XHRcdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHRcdFx0XHQvLyDlpoLmnpzmi6bmiKrlmajov5Tlm55mYWxzZe+8jOaEj+WRs+edgOaLpuaIquWZqOWumuS5ieiAheiupOS4uui/lOWbnuaciemXrumimO+8jOebtOaOpeaOpeWFpWNhdGNo5Zue6LCDXG5cdFx0XHRcdFx0XHRcdHJlamVjdChyZXNwb25zZSk7XG5cdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0XHRcdC8vIOWmguaenOimgeaxgui/lOWbnuWOn+Wni+aVsOaNru+8jOWwseeul+ayoeacieaLpuaIquWZqO+8jOS5n+i/lOWbnuacgOWOn+Wni+eahOaVsOaNrlxuXHRcdFx0XHRcdFx0cmVzb2x2ZShyZXNwb25zZSk7XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHRcdGlmIChyZXNwb25zZS5zdGF0dXNDb2RlID09IDIwMCkge1xuXHRcdFx0XHRcdFx0aWYgKHRoaXMuaW50ZXJjZXB0b3IucmVzcG9uc2UgJiYgdHlwZW9mIHRoaXMuaW50ZXJjZXB0b3IucmVzcG9uc2UgPT09XG5cdFx0XHRcdFx0XHRcdCdmdW5jdGlvbicpIHtcblx0XHRcdFx0XHRcdFx0bGV0IHJlc0ludGVyY2VwdG9ycyA9IHRoaXMuaW50ZXJjZXB0b3IucmVzcG9uc2UocmVzcG9uc2UuZGF0YSk7XG5cdFx0XHRcdFx0XHRcdGlmIChyZXNJbnRlcmNlcHRvcnMgIT09IGZhbHNlKSB7XG5cdFx0XHRcdFx0XHRcdFx0cmVzb2x2ZShyZXNJbnRlcmNlcHRvcnMpO1xuXHRcdFx0XHRcdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHRcdFx0XHRcdHJlamVjdChyZXNwb25zZS5kYXRhKTtcblx0XHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0XHRcdFx0Ly8g5aaC5p6c5LiN5piv6L+U5Zue5Y6f5aeL5pWw5o2uKG9yaWdpbmFsRGF0YT1mYWxzZSnvvIzkuJTmsqHmnInmi6bmiKrlmajnmoTmg4XlhrXkuIvvvIzov5Tlm57nuq/mlbDmja7nu5l0aGVu5Zue6LCDXG5cdFx0XHRcdFx0XHRcdHJlc29sdmUocmVzcG9uc2UuZGF0YSk7XG5cdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0XHRcdC8vIOS4jei/lOWbnuWOn+Wni+aVsOaNrueahOaDheWGteS4i++8jOacjeWKoeWZqOeKtuaAgeeggeS4jeS4ujIwMO+8jG1vZGFs5by55qGG5o+Q56S6XG5cdFx0XHRcdFx0XHQvLyBpZihyZXNwb25zZS5lcnJNc2cpIHtcblx0XHRcdFx0XHRcdC8vIFx0dW5pLnNob3dNb2RhbCh7XG5cdFx0XHRcdFx0XHQvLyBcdFx0dGl0bGU6IHJlc3BvbnNlLmVyck1zZ1xuXHRcdFx0XHRcdFx0Ly8gXHR9KTtcblx0XHRcdFx0XHRcdC8vIH1cblx0XHRcdFx0XHRcdGlmIChyZXNwb25zZS5zdGF0dXNDb2RlID09IDUwMCkge1xuXHRcdFx0XHRcdFx0XHR1bmkuc2hvd1RvYXN0KHtcblx0XHRcdFx0XHRcdFx0XHR0aXRsZTogJ+acjeWKoeWZqOW8guW4uCcsXG5cdFx0XHRcdFx0XHRcdFx0ZHVyYXRpb246IDIwMDAsXG5cdFx0XHRcdFx0XHRcdFx0aWNvbjogJ25vbmUnXG5cdFx0XHRcdFx0XHRcdH0pXG5cdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHRpZiAocmVzcG9uc2Uuc3RhdHVzQ29kZSA9PSA0MDEpIHtcblx0XHRcdFx0XHRcdFx0dW5pLnNob3dUb2FzdCh7XG5cdFx0XHRcdFx0XHRcdFx0dGl0bGU6ICfnmbvlvZXlt7LlpLHmlYgnLFxuXHRcdFx0XHRcdFx0XHRcdGR1cmF0aW9uOiAyMDAwLFxuXHRcdFx0XHRcdFx0XHRcdGljb246ICdub25lJ1xuXHRcdFx0XHRcdFx0XHR9KVxuXHRcdFx0XHRcdFx0XHR1bmkubmF2aWdhdGVUbyh7XG5cdFx0XHRcdFx0XHRcdFx0dXJsOiBcIi9wYWdlcy9sb2dpbi9sb2dpblwiXG5cdFx0XHRcdFx0XHRcdH0pXG5cdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHRyZWplY3QocmVzcG9uc2UpXG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9XG5cdFx0XHR9XG5cblx0XHRcdC8vIOWIpOaWreeUqOaIt+S8oOmAkueahFVSTOaYr+WQpi/lvIDlpLQs5aaC5p6c5LiN5pivLOWKoOS4ii/vvIzov5nph4zkvb/nlKjkuoZ1Vmlld+eahHRlc3QuanPpqozor4HlupPnmoR1cmwoKeaWueazlVxuXHRcdFx0b3B0aW9ucy51cmwgPSB2YWxpZGF0ZS51cmwob3B0aW9ucy51cmwpID8gb3B0aW9ucy51cmwgOiAoKG9wdGlvbnMuYmFzZVVybCA/IG9wdGlvbnMuYmFzZVVybCA6XG5cdFx0XHRcdHRoaXNcblx0XHRcdFx0LmNvbmZpZy5iYXNlVXJsKSArIChvcHRpb25zLnVybFxuXHRcdFx0XHQuaW5kZXhPZignLycpID09IDAgP1xuXHRcdFx0XHRvcHRpb25zLnVybCA6ICcvJyArIG9wdGlvbnMudXJsKSk7XG5cblx0XHRcdC8vIOaYr+WQpuaYvuekumxvYWRpbmdcblx0XHRcdC8vIOWKoOS4gOS4quaYr+WQpuW3suaciXRpbWVy5a6a5pe25Zmo55qE5Yik5pat77yM5ZCm5YiZ5pyJ5Lik5Liq5ZCM5pe26K+35rGC55qE5pe25YCZ77yM5ZCO6ICF5Lya5riF6Zmk5YmN6ICF55qE5a6a5pe25ZmoaWRcblx0XHRcdC8vIOiAjOayoeaciea4hemZpOWJjeiAheeahOWumuaXtuWZqO+8jOWvvOiHtOWJjeiAhei2heaXtu+8jOS4gOebtOaYvuekumxvYWRpbmdcblx0XHRcdGlmICh0aGlzLmNvbmZpZy5zaG93TG9hZGluZyAmJiAhdGhpcy5jb25maWcudGltZXIpIHtcblx0XHRcdFx0dGhpcy5jb25maWcudGltZXIgPSBzZXRUaW1lb3V0KCgpID0+IHtcblx0XHRcdFx0XHR1bmkuc2hvd0xvYWRpbmcoe1xuXHRcdFx0XHRcdFx0dGl0bGU6IHRoaXMuY29uZmlnLmxvYWRpbmdUZXh0LFxuXHRcdFx0XHRcdFx0bWFzazogdGhpcy5jb25maWcubG9hZGluZ01hc2tcblx0XHRcdFx0XHR9KVxuXHRcdFx0XHRcdHRoaXMuY29uZmlnLnRpbWVyID0gbnVsbDtcblx0XHRcdFx0fSwgdGhpcy5jb25maWcubG9hZGluZ1RpbWUpO1xuXHRcdFx0fVxuXHRcdFx0Ly8gY29uc29sZS5sb2coJ2FwaS5oZWxwZXItLS0tLWZpbmFsbHkqKipyZXF1ZXN0Jywgb3B0aW9ucylcblx0XHRcdHVuaS5yZXF1ZXN0KG9wdGlvbnMpO1xuXHRcdH0pXG5cdFx0Ly8gLmNhdGNoKHJlcyA9PiB7XG5cdFx0Ly8gXHQvLyDlpoLmnpzov5Tlm55yZWplY3QoKe+8jOS4jeiuqeWFtui/m+WFpXRoaXMuJHUucG9zdCgpLnRoZW4oKS5jYXRjaCgp5ZCO6Z2i55qEY2F0Y3QoKVxuXHRcdC8vIFx0Ly8g5Zug5Li65b6I5aSa5Lq66YO95Lya5b+Y5LqG5YaZ5ZCO6Z2i55qEY2F0Y2goKe+8jOWvvOiHtOaKpemUmeaNleiOt+S4jeWIsGNhdGNoXG5cdFx0Ly8gXHRyZXR1cm4gbmV3IFByb21pc2UoKCk9Pnt9KTtcblx0XHQvLyB9KVxuXHR9XG5cblx0Y29uc3RydWN0b3IoKSB7XG5cdFx0dGhpcy5jb25maWcgPSB7XG5cdFx0XHRiYXNlVXJsOiAnaHR0cDovLzIyMS4xMC4xMjcuNjA6NTAwMCcsIC8vIOivt+axgueahOagueWfn+WQjVxuXHRcdFx0Ly8g6buY6K6k55qE6K+35rGC5aS0XG5cdFx0XHRoZWFkZXI6IHt9LFxuXHRcdFx0bWV0aG9kOiAnUE9TVCcsXG5cdFx0XHQvLyDorr7nva7kuLpqc29u77yM6L+U5Zue5ZCOdW5pLnJlcXVlc3TkvJrlr7nmlbDmja7ov5vooYzkuIDmrKFKU09OLnBhcnNlXG5cdFx0XHRkYXRhVHlwZTogJ2pzb24nLFxuXHRcdFx0Ly8g5q2k5Y+C5pWw5peg6ZyA5aSE55CG77yM5Zug5Li6NSvlkozmlK/ku5jlrp3lsI/nqIvluo/kuI3mlK/mjIHvvIzpu5jorqTkuLp0ZXh05Y2z5Y+vXG5cdFx0XHRyZXNwb25zZVR5cGU6ICd0ZXh0Jyxcblx0XHRcdHNob3dMb2FkaW5nOiB0cnVlLCAvLyDmmK/lkKbmmL7npLror7fmsYLkuK3nmoRsb2FkaW5nXG5cdFx0XHRsb2FkaW5nVGV4dDogJ+ivt+axguS4rS4uLicsXG5cdFx0XHRsb2FkaW5nVGltZTogODAwLCAvLyDlnKjmraTml7bpl7TlhoXvvIzor7fmsYLov5jmsqHlm57mnaXnmoTor53vvIzlsLHmmL7npLrliqDovb3kuK3liqjnlLvvvIzljZXkvY1tc1xuXHRcdFx0dGltZXI6IG51bGwsIC8vIOWumuaXtuWZqFxuXHRcdFx0c3NsVmVyaWZ5OiBmYWxzZSwgLy8g5a6a5pe25ZmoXG5cdFx0XHRvcmlnaW5hbERhdGE6IGZhbHNlLCAvLyDmmK/lkKblnKjmi6bmiKrlmajkuK3ov5Tlm57mnI3liqHnq6/nmoTljp/lp4vmlbDmja7vvIzop4HmlofmoaPor7TmmI5cblx0XHRcdGxvYWRpbmdNYXNrOiB0cnVlLCAvLyDlsZXnpLpsb2FkaW5n55qE5pe25YCZ77yM5piv5ZCm57uZ5LiA5Liq6YCP5piO55qE6JKZ5bGC77yM6Ziy5q2i6Kem5pG456m/6YCPXG5cdFx0fVxuXG5cdFx0Ly8g5oum5oiq5ZmoXG5cdFx0dGhpcy5pbnRlcmNlcHRvciA9IHtcblx0XHRcdC8vIOivt+axguWJjeeahOaLpuaIqlxuXHRcdFx0cmVxdWVzdDogKGNvbmZpZykgPT4ge1xuXHRcdFx0XHRjb25maWcuaGVhZGVyWydBdXRob3JpemF0aW9uJ10gPSBgQmFzaWMgJHtCYXNlNjQuZW5jb2RlKCd3YW5ncGM6TFpZODg4QEAnKX1gO1xuXHRcdFx0XHR0cnkge1xuXHRcdFx0XHRcdGlmIChjb25maWcudXJsLmluZGV4T2YoJ2NybS1hcHAvbG9naW4nKSA9PT0gLVxuXHRcdFx0XHRcdFx0MSAmJlxuXHRcdFx0XHRcdFx0c3RvcmUuc3RhdGUudnVleF90b2tlbikge1xuXHRcdFx0XHRcdFx0Y29uZmlnLmhlYWRlclsnWC1BdXRoLVRva2VuJ10gPSBzdG9yZVxuXHRcdFx0XHRcdFx0XHQuc3RhdGUudnVleF90b2tlblxuXHRcdFx0XHRcdH1cblxuXHRcdFx0XHRcdGlmIChjb25maWcuaGVhZGVyWydDb250ZW50LVR5cGUnXSAmJiBjb25maWcuaGVhZGVyWydDb250ZW50LVR5cGUnXS5pbmRleE9mKFxuXHRcdFx0XHRcdFx0XHQneC13d3ctZm9ybS11cmxlbmNvZGVkJykgPT09IC0xKSB7XG5cdFx0XHRcdFx0XHRjb25maWcuaGVhZGVyWydDb250ZW50LVR5cGUnXSA9IFwiYXBwbGljYXRpb24vanNvbjsgY2hhcnNldD11dGYtOFwiXG5cdFx0XHRcdFx0fVxuXG5cblx0XHRcdFx0XHRpZiAoY29uZmlnLnVybC5pbmRleE9mKCdjcm0tYXBwJykgIT09IC0xKSB7XG5cdFx0XHRcdFx0XHQvLyBjb25maWcuYmFzZVVybCA9ICdodHRwOi8vMTAuMC4xMzUuNjEnXG5cdFx0XHRcdFx0XHRjb25maWcuYmFzZVVybCA9ICdodHRwOi8vMjIxLjEwLjEyNy42MDo1MDAwJ1xuXHRcdFx0XHRcdH0gZWxzZSBpZiAoY29uZmlnLnVybC5pbmRleE9mKCdhZGFwdGVyJykgIT09IC0xKSB7XG5cdFx0XHRcdFx0XHRjb25maWcuYmFzZVVybCA9ICdodHRwOi8vYXBpLmMwMzMxLmRldi5ndWFueWluZ3l1bi5jb20nXG5cdFx0XHRcdFx0XHQvLyB
jb25maWcuYmFzZVVybCA9ICdodHRwOi8vMjIxLjEwLjEyNy42MDo1MDAwL2N5aidcblx0XHRcdFx0XHR9IGVsc2UgaWYgKGNvbmZpZy51cmwuaW5kZXhPZignd21kcHdlYnNlcnZpY2VzJykgIT09IC0xKSB7XG5cdFx0XHRcdFx0XHQvLyBjb25maWcuYmFzZVVybCA9ICdodHRwczovLzEwLjAuMTM0LjE4Mjo5MDAyJ1xuXHRcdFx0XHRcdFx0Y29uZmlnLmJhc2VVcmwgPSAnaHR0cDovLzIyMS4xMC4xMjcuNjA6NTAwMC9zY3p4J1xuXHRcdFx0XHRcdFx0Ly8gY29uZmlnLmJhc2VVcmwgPSAnJ1xuXHRcdFx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdFx0XHRjb25maWcuYmFzZVVybCA9ICdodHRwOi8vMjIxLjEwLjEyNy42MDo1MDAwL3dseVNhcCdcblx0XHRcdFx0XHR9XG5cdFx0XHRcdH0gY2F0Y2ggKGUpIHtcblx0XHRcdFx0XHRjb25zb2xlLmxvZygnZXJyb3InLCBlKVxuXHRcdFx0XHR9XG5cdFx0XHRcdC8vIGlmIChjb25maWcudXJsLmluZGV4T2YoJ2NybS1hcHAvbG9naW4nKSAhPT0gLTEgJiYgIXN0b3JlLnN0YXRlLnZ1ZXhfdG9rZW4pIHtcblx0XHRcdFx0Ly8gXHR1bmkuc2hvd1RvYXN0KHtcblx0XHRcdFx0Ly8gXHRcdHRpdGxlOiAn55m75b2V5bey5aSx5pWIJyxcblx0XHRcdFx0Ly8gXHRcdGR1cmF0aW9uOiAyMDAwLFxuXHRcdFx0XHQvLyBcdFx0aWNvbjogJ25vbmUnXG5cdFx0XHRcdC8vIFx0fSk7XG5cdFx0XHRcdC8vIFx0dW5pLm5hdmlnYXRlVG8oe1xuXHRcdFx0XHQvLyBcdFx0dXJsOiBcIi9wYWdlcy9sb2dpbi9sb2dpblwiXG5cdFx0XHRcdC8vIFx0fSlcblx0XHRcdFx0Ly8gfVxuXHRcdFx0XHRjb25zb2xlLmxvZygnaGVscGVyLS1pbnRlcmNlcHRvci0tLXJlcXVlc3QtLS0tLScsIGNvbmZpZylcblx0XHRcdFx0cmV0dXJuIGNvbmZpZztcblx0XHRcdH0sXG5cdFx0XHQvLyDor7fmsYLlkI7nmoTmi6bmiKpcblx0XHRcdHJlc3BvbnNlOiAocmVzKSA9PiB7XG5cdFx0XHRcdGNvbnNvbGUubG9nKCdoZWxwZXItLWlpbnRlcmNlcHRvci0tLXJlc3BvbnNlLS0tLS0nLCByZXMpXG5cdFx0XHRcdGlmIChyZXMuTVNHVFlQRSA9PT0gJ1MnIHx8IHJlcy5tc2d0eXBlID09PSAnUycgfHwgcmVzLnN0YXR1cyA9PT0gMSB8fCByZXMucmVzdWx0ID09PSBcIlNcIiB8fFxuXHRcdFx0XHRcdHJlcy5TdGF0dXMgPT09XG5cdFx0XHRcdFx0J1N1Y2Nlc3MnKSB7XG5cdFx0XHRcdFx0Ly8g5aaC5p6c5oqKb3JpZ2luYWxEYXRh6K6+572u5Li65LqGdHJ1Ze+8jOi/memHjHJldHVybuWbnuS7gOS5iO+8jHRoaXMuJHUucG9zdOeahHRoZW7lm57osIPkuK3lsLHkvJrlvpfliLDku4DkuYhcblx0XHRcdFx0XHRyZXR1cm4gcmVzO1xuXHRcdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHRcdHVuaS5zaG93VG9hc3Qoe1xuXHRcdFx0XHRcdFx0dGl0bGU6IHJlcy5NRVNTQUdFIHx8IHJlcy5tc2cgfHwgcmVzLm1lc3NhZ2UgfHwgcmVzLkVyck1zZyxcblx0XHRcdFx0XHRcdGR1cmF0aW9uOiAyMDAwLFxuXHRcdFx0XHRcdFx0aWNvbjogJ25vbmUnXG5cdFx0XHRcdFx0fSk7XG5cdFx0XHRcdFx0cmV0dXJuIGZhbHNlXG5cdFx0XHRcdH07XG5cdFx0XHR9XG5cdFx0fVxuXG5cdFx0Ly8gZ2V06K+35rGCXG5cdFx0dGhpcy5nZXQgPSAodXJsLCBkYXRhID0ge30sIGhlYWRlciA9IHt9KSA9PiB7XG5cdFx0XHRyZXR1cm4gdGhpcy5yZXF1ZXN0KHtcblx0XHRcdFx0bWV0aG9kOiAnR0VUJyxcblx0XHRcdFx0dXJsLFxuXHRcdFx0XHRoZWFkZXIsXG5cdFx0XHRcdGRhdGFcblx0XHRcdH0pXG5cdFx0fVxuXG5cdFx0Ly8gcG9zdOivt+axglxuXHRcdHRoaXMucG9zdCA9ICh1cmwsIGRhdGEgPSB7fSwgaGVhZGVyID0ge30pID0+IHtcblx0XHRcdHJldHVybiB0aGlzLnJlcXVlc3Qoe1xuXHRcdFx0XHR1cmwsXG5cdFx0XHRcdG1ldGhvZDogJ1BPU1QnLFxuXHRcdFx0XHRoZWFkZXIsXG5cdFx0XHRcdGRhdGFcblx0XHRcdH0pXG5cdFx0fVxuXG5cdFx0Ly8gcHV06K+35rGC77yM5LiN5pSv5oyB5pSv5LuY5a6d5bCP56iL5bqPKEhYMi42LjE1KVxuXHRcdHRoaXMucHV0ID0gKHVybCwgZGF0YSA9IHt9LCBoZWFkZXIgPSB7fSkgPT4ge1xuXHRcdFx0cmV0dXJuIHRoaXMucmVxdWVzdCh7XG5cdFx0XHRcdHVybCxcblx0XHRcdFx0bWV0aG9kOiAnUFVUJyxcblx0XHRcdFx0aGVhZGVyLFxuXHRcdFx0XHRkYXRhXG5cdFx0XHR9KVxuXHRcdH1cblxuXHRcdC8vIGRlbGV0Zeivt+axgu+8jOS4jeaUr+aMgeaUr+S7mOWuneWSjOWktOadoeWwj+eoi+W6jyhIWDIuNi4xNSlcblx0XHR0aGlzLmRlbGV0ZSA9ICh1cmwsIGRhdGEgPSB7fSwgaGVhZGVyID0ge30pID0+IHtcblx0XHRcdHJldHVybiB0aGlzLnJlcXVlc3Qoe1xuXHRcdFx0XHR1cmwsXG5cdFx0XHRcdG1ldGhvZDogJ0RFTEVURScsXG5cdFx0XHRcdGhlYWRlcixcblx0XHRcdFx0ZGF0YVxuXHRcdFx0fSlcblx0XHR9XG5cdH1cbn1cbmV4cG9ydCBkZWZhdWx0IG5ldyBSZXF1ZXN0XG4iXSwic291cmNlUm9vdCI6IiJ9
\n
//# sourceURL=webpack-internal:///15
\n
"
);
/***/
}),
/***/
}),
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment