ps-toolkit-ui 0.2.60 → 0.2.63

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -178,13 +178,13 @@ export class HelperClass {
178
178
  }
179
179
  return '<div class="ltr">' + moment(d).locale('fa').format('jYYYY/jMM/jDD HH:mm') + '</div>';
180
180
  }
181
- static getDate(dt) {
181
+ static getDate(dt, format = 'jYYYY/jMM/jDD') {
182
182
  try {
183
183
  if (dt === null) {
184
184
  return '';
185
185
  }
186
186
  const d = parseInt(dt.substring(6, dt.length - 2), 10);
187
- return moment(d).locale('fa').format('jYYYY/jMM/jDD');
187
+ return moment(d).locale('fa').format(format);
188
188
  }
189
189
  catch (e) {
190
190
  return dt;
@@ -287,4 +287,4 @@ export class HelperClass {
287
287
  return (parseInt(bgColor.replace('#', ''), 16) > 0xffffff / 2) ? '#000' : '#fff';
288
288
  }
289
289
  }
290
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGVscGVyLmNsYXNzLmpzIiwic291cmNlUm9vdCI6IkQ6L1Byb2plY3RzL1BzVG9vbGtpdC9VSS9wcm9qZWN0cy9wcy10b29sa2l0LXVpL3NyYy8iLCJzb3VyY2VzIjpbImxpYi9jbGFzc2VzL2hlbHBlci5jbGFzcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsVUFBVSxFQUFDLE1BQU0sY0FBYyxDQUFDO0FBRXhDLE9BQU8sS0FBSyxNQUFNLE1BQU0sZUFBZSxDQUFDO0FBQ3hDLE9BQU8sS0FBSyxDQUFDLE1BQU0sUUFBUSxDQUFDO0FBRTVCLFdBQVc7QUFDWCxNQUFNLE9BQU8sV0FBVztJQUN0QixNQUFNLENBQUMsUUFBUSxDQUFDLEdBQWU7UUFDN0IsSUFBSSxHQUFHLENBQUMsS0FBSyxLQUFLLFVBQVUsQ0FBQyxRQUFRLEVBQUU7WUFDckMsT0FBTyxHQUFHLENBQUMsQ0FBQyxDQUFDLG1CQUFtQixFQUFFLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQztTQUM3QzthQUFNLElBQUksR0FBRyxDQUFDLEtBQUssS0FBSyxVQUFVLENBQUMsT0FBTyxFQUFFO1lBQzNDLE9BQU8sR0FBRyxDQUFDLENBQUMsQ0FBQyxrQkFBa0IsRUFBRSxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUM7U0FDNUM7YUFBTSxJQUFJLEdBQUcsQ0FBQyxLQUFLLEtBQUssVUFBVSxDQUFDLE1BQU0sRUFBRTtZQUMxQyxPQUFPLEdBQUcsQ0FBQyxDQUFDLENBQUMsaUJBQWlCLEVBQUUsQ0FBQyxHQUFHLENBQUMsSUFBSSxFQUFFLEdBQUcsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDO1NBQzVEO2FBQU0sSUFBSSxHQUFHLENBQUMsS0FBSyxLQUFLLFVBQVUsQ0FBQyxTQUFTLEVBQUU7WUFDN0MsT0FBTyxHQUFHLENBQUMsQ0FBQyxDQUFDLG9CQUFvQixFQUFFLENBQUMsR0FBRyxDQUFDLElBQUksRUFBRSxHQUFHLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQztTQUMv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LmNsYXNzJztcclxuaW1wb3J0IHtJbnB1dENsYXNzfSBmcm9tICcuL2Zvcm0uY2xhc3MnO1xyXG5pbXBvcnQgKiBhcyBtb21lbnQgZnJvbSAnamFsYWxpLW1vbWVudCc7XHJcbmltcG9ydCAqIGFzICQgZnJvbSAnanF1ZXJ5JztcclxuXHJcbi8vIEBkeW5hbWljXHJcbmV4cG9ydCBjbGFzcyBIZWxwZXJDbGFzcyB7XHJcbiAgc3RhdGljIGdldExhYmVsKGlucDogSW5wdXRDbGFzcyk6IHN0cmluZyB7XHJcbiAgICBpZiAoaW5wLmVycm9yID09PSBJbnB1dEVycm9yLlJlcXVpcmVkKSB7XHJcbiAgICAgIHJldHVybiBpbnAubCgnRm9ybUVycm9yUmVxdWlyZWQnLCBpbnAubmFtZSk7XHJcbiAgICB9IGVsc2UgaWYgKGlucC5lcnJvciA9PT0gSW5wdXRFcnJvci5JbnZhbGlkKSB7XHJcbiAgICAgIHJldHVybiBpbnAubCgnRm9ybUVycm9ySW52YWxpZCcsIGlucC5uYW1lKTtcclxuICAgIH0gZWxzZSBpZiAoaW5wLmVycm9yID09PSBJbnB1dEVycm9yLkxlbmd0aCkge1xyXG4gICAgICByZXR1cm4gaW5wLmwoJ0Zvcm1FcnJvckxlbmd0aCcsIFtpbnAubmFtZSwgaW5wLm1pbkxlbmd0aF0pO1xyXG4gICAgfSBlbHNlIGlmIChpbnAuZXJyb3IgPT09IElucHV0RXJyb3IuTWluTGVuZ3RoKSB7XHJcbiAgICAgIHJldHVybiBpbnAubCgnRm9ybUVycm9yTWluTGVuZ3RoJywgW2lucC5uYW1lLCBpbnAubWluTGVuZ3RoXSk7XHJcbiAgICB9IGVsc2UgaWYgKGlucC5lcnJvciA9PT0gSW5wdXRFcnJvci5NYXhMZW5ndGgpIHtcclxuICAgICAgcmV0dXJuIGlucC5sKCdGb3JtRXJyb3JNYXhMZW5ndGgnLCBbaW5wLm5hbWUsIGlucC5tYXhMZW5ndGhdKTtcclxuICAgIH0gZWxzZSBpZiAoaW5wLmVycm9yID09PSBJbnB1dEVycm9yLk1pbkFtb3VudCkge1xyXG4gICAgICByZXR1cm4gaW5wLmwoJ0Zvcm1FcnJvck1pbkFtb3VudCcsIFtpbnAubmFtZSwgaW5wLm1pbkxlbmd0aF0pO1xyXG4gICAgfSBlbHNlIGlmIChpbnAuZXJyb3IgPT09IElucHV0RXJyb3IuTWF4QW1vdW50KSB7XHJcbiAgICAgIHJldHVybiBpbnAubCgnRm9ybUVycm9yTWF4QW1vdW50JywgW2lucC5uYW1lLCBpbnAubWF4TGVuZ3RoXSk7XHJcbiAgICB9IGVsc2UgaWYgKGlucC5lcnJvciA9PT0gSW5wdXRFcnJvci5FeHBpcmVkKSB7XHJcbiAgICAgIHJldHVybiBpbnAubCgnRm9ybUVycm9yRXhwaXJlZCcsIGlucC5uYW1lKTtcclxuICAgIH0gZWxzZSBpZiAoaW5wLmVycm9yID09PSBJbnB1dEVycm9yLldyb25nKSB7XHJcbiAgICAgIHJldHVybiBpbnAubCgnRm9ybUVycm9yV3JvbmcnLCBpbnAubmFtZSk7XHJcbiAgICB9IGVsc2UgaWYgKGlucC5lcnJvciA9PT0gSW5wdXRFcnJvci5FcnJvcikge1xyXG4gICAgICByZXR1cm4gaW5wLmwoJ0Zvcm1FcnJvcicsIGlucC5uYW1lKTtcclxuICAgIH0gZWxzZSBpZiAoaW5wLmVycm9yID09PSBJbnB1dEVycm9yLk5vdE1hdGNoKSB7XHJcbiAgICAgIHJldHVybiBpbnAubCgnRm9ybUVycm9yTm90TWF0Y2gnLCBpbnAubWF0Y2gubmFtZSk7XHJcbiAgICB9IGVsc2UgaWYgKGlucC5lcnJvciA9PT0gSW5wdXRFcnJvci5FeGlzdCkge1xyXG4gICAgICByZXR1cm4gaW5wLmwoJ0Zvcm1FcnJvckV4aXN0JywgaW5wLm5hbWUpO1xyXG4gICAgfSBlbHNlIGlmIChpbnAuZXJyb3IgPT09IElucHV0RXJyb3IuTm90RXhpc3QpIHtcclxuICAgICAgcmV0dXJuIGlucC5sKCdGb3JtRXJyb3JOb3RFeGlzdCcsIGlucC5uYW1lKTtcclxuICAgIH0gZWxzZSBpZiAoaW5wLmVycm9yID09PSBJbnB1dEVycm9yLk5vdEFsbG93ZWQpIHtcclxuICAgICAgcmV0dXJuIGlucC5sKCdGb3JtRXJyb3JOb3RBbGxvd2VkJywgW2lucC5uYW1lLCBpbnAuYWxsb3dlZC5qb2luKCcsICcpXSk7XHJcbiAgICB9IGVsc2UgaWYgKGlucC5lcnJvciA9PT0gSW5wdXRFcnJvci5NYXhDb250ZW50KSB7XHJcbiAgICAgIHJldHVybiBpbnAubCgnRm9ybUVycm9yTWF4Q29udGVudCcsIFtpbnAubmFtZSwgaW5wLm1heExlbmd0aF0pO1xyXG4gICAgfSBlbHNlIGlmIChpbnAuZXJyb3IgPT09IElucHV0RXJyb3IuVXBsb2FkKSB7XHJcbiAgICAgIHJldHVybiBpbnAubCgnRm9ybUVycm9yVXBsb2FkJywgaW5wLm5hbWUpO1xyXG4gICAgfVxyXG4gICAgY29uc3QgZGVzYyA9IGlucC5kZXNjcmlwdGlvbiAhPT0gbnVsbCA/ICcgKCcgKyBpbnAubChpbnAuZGVzY3JpcHRpb24pICsgJyknIDogJyc7XHJcbiAgICByZXR1cm4gaW5wLmwoaW5wLm5hbWUpICsgZGVzYztcclxuICB9XHJcblxyXG4gIHN0YXRpYyBuYXRpb25hbENvZGVWYWxpZChjKTogYm9vbGVhbiB7XHJcbiAgICBpZiAoIVJlZ0V4cCgvXlxcZHsxMH0kLykudGVzdChjKSB8fCBSZWdFeHAoL14oLilcXDErJC8pLnRlc3QoYykpIHtcclxuICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgfVxyXG4gICAgY29uc3QgY2hlY2sgPSBwYXJzZUludChjWzldLCAxMCk7XHJcbiAgICBsZXQgc3VtID0gMDtcclxuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgOTsgKytpKSB7XHJcbiAgICAgIHN1bSArPSBwYXJzZUludChjW2ldLCAxMCkgKiAoMTAgLSBpKTtcclxuICAgIH1cclxuICAgIHN1bSAlPSAxMTtcclxuICAgIHJldHVybiAoc3VtIDwgMiAmJiBjaGVjayA9PT0gc3VtKSB8fCAoc3VtID49IDIgJiYgY2hlY2sgKyBzdW0gPT09IDExKTtcclxuICB9XHJcblxyXG4gIHN0YXRpYyBpc283MDY0TW9kOTdfMTAoaWJhbik6IG51bWJlcntcclxuICAgIGxldCByZW1haW5kZXIgPSBpYmFuO1xyXG4gICAgd2hpbGUgKHJlbWFpbmRlci5sZW5ndGggPiAyKXtcclxuICAgICAgY29uc3QgYmxvY2sgPSByZW1haW5kZXIuc2xpY2UoMCwgOSk7XHJcbiAgICAgIHJlbWFpbmRlciA9IHBhcnNlSW50KGJsb2NrLCAxMCkgJSA5NyArIHJlbWFpbmRlci5zbGljZShibG9jay5sZW5ndGgpO1xyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiBwYXJzZUludChyZW1haW5kZXIsIDEwKSAlIDk3O1xyXG4gIH1cclxuXHJcbiAgc3RhdGljIHNoZWJhVmFsaWQoc3RyKTogYm9vbGVhbiB7XHJcbiAgICBjb25zdCBwYXR0ZXJuID0gL0lSWzAtOV17MjR9LztcclxuICAgIGlmICghc3RyLnN0YXJ0V2l0aCgnSVInKSl7XHJcbiAgICAgIHN0ciA9ICdJUicgKyBzdHI7XHJcbiAgICB9XHJcbiAgICBpZiAoc3RyLmxlbmd0aCAhPT0gMjYpIHtcclxuICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgfVxyXG5cclxuICAgIGlmICghcGF0dGVybi50ZXN0KHN0cikpIHtcclxuICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgfVxyXG5cclxuICAgIGxldCBuZXdTdHIgPSBzdHIuc3Vic3RyKDQpO1xyXG4gICAgY29uc3QgZDEgPSBzdHIuY2hhckNvZGVBdCgwKSAtIDY1ICsgMTA7XHJcbiAgICBjb25zdCBkMiA9IHN0ci5jaGFyQ29kZUF0KDEpIC0gNjUgKyAxMDtcclxuICAgIG5ld1N0ciArPSBkMS50b1N0cmluZygpICsgZDIudG9TdHJpbmcoKSArIHN0ci5zdWJzdHIoMiwgMik7XHJcblxyXG4gICAgcmV0dXJuIHRoaXMuaXNvNzA2NE1vZDk3XzEwKG5ld1N0cikgPT09IDE7XHJcbiAgfVxyXG5cclxuICBzdGF0aWMgcG9zdGFsQ29kZVZhbGlkKGMpOiBib29sZWFuIHtcclxuICAgIHJldHVybiBSZWdFeHAoL15cXGIoPyEoXFxkKVxcMXszfSlbMTMtOV17NH1bMTM0Ni05XVswMTMtOV17NX1cXGIkLykudGVzdChjKTtcclxuICB9XHJcbiAgc3RhdGljIHJhbmRvbShsZW5ndGgsIHVwcGVyID0gdHJ1ZSwgbG93ZXIgPSB0cnVlLCBudW0gPSB0cnVlKTogc3RyaW5nIHtcclxuICAgIGxldCByZXN1bHQgPSAnJztcclxuICAgIGNvbnN0IGNoYXJhY3RlcnMgPSBgJHt1cHBlciA/ICdBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWicgOiAnJ30ke2xvd2VyID8gJ2FiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6JyA6ICcnfSR7bnVtID8gJzEyMzQ1Njc4OScgOiAnJ31gO1xyXG4gICAgY29uc3QgY2hhcmFjdGVyc0xlbmd0aCA9IGNoYXJhY3RlcnMubGVuZ3RoO1xyXG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCBsZW5ndGg7IGkrKyApIHtcclxuICAgICAgcmVzdWx0ICs9IGNoYXJhY3RlcnMuY2hhckF0KE1hdGguZmxvb3IoTWF0aC5yYW5kb20oKSAqIGNoYXJhY3RlcnNMZW5ndGgpKTtcclxuICAgIH1cclxuICAgIHJldHVybiByZXN1bHQ7XHJcbiAgfVxyXG4gIHN0YXRpYyBzZXRDb29raWUobmFtZSwgdmFsdWUsIGRheXMpOiB2b2lkIHtcclxuICAgIGxldCBleHBpcmVzID0gJyc7XHJcbiAgICBpZiAoZGF5cykge1xyXG4gICAgICBjb25zdCBkYXRlID0gbmV3IERhdGUoKTtcclxuICAgICAgZGF0ZS5zZXRUaW1lKGRhdGUuZ2V0VGltZSgpICsgKGRheXMgKiAyNCAqIDYwICogNjAgKiAxMDAwKSk7XHJcbiAgICAgIGV4cGlyZXMgPSAnOyBleHBpcmVzPScgKyBkYXRlLnRvVVRDU3RyaW5nKCk7XHJcbiAgICB9XHJcbiAgICBkb2N1bWVudC5jb29raWUgPSBuYW1lICsgJz0nICsgKHZhbHVlIHx8ICcnKSAgKyBleHBpcmVzICsgJzsgcGF0aD0vJztcclxuICB9XHJcbiAgc3RhdGljIGdldENvb2tpZShuYW1lLCBkZWYgPSBudWxsKTogc3RyaW5nIHtcclxuICAgIGNvbnN0IG5hbWVFUSA9IG5hbWUgKyAnPSc7XHJcbiAgICBjb25zdCBjYSA9IGRvY3VtZW50LmNvb2tpZS5zcGxpdCgnOycpO1xyXG4gICAgZm9yIChsZXQgYyBvZiBjYSkge1xyXG4gICAgICB3aGlsZSAoYy5jaGFyQXQoMCkgPT09ICcgJyl7XHJcbiAgICAgICAgYyA9IGMuc3Vic3RyaW5nKDEsIGMubGVuZ3RoKTtcclxuICAgICAgfVxyXG4gICAgICBpZiAoYy5pbmRleE9mKG5hbWVFUSkgPT09IDApe1xyXG4gICAgICAgIHJldHVybiBjLnN1YnN0cmluZyhuYW1lRVEubGVuZ3RoLCBjLmxlbmd0aCk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIHJldHVybiBkZWY7XHJcbiAgfVxyXG4gIHN0YXRpYyBlcmFzZUNvb2tpZShuYW1lKTogdm9pZCB7XHJcbiAgICBkb2N1bWVudC5jb29raWUuc3BsaXQoJzsnKVxyXG4gICAgICAuZm9yRWFjaCgoYykgPT4geyBkb2N1bWVudC5jb29raWUgPSBjLnJlcGxhY2UoL14gKy8sICcnKS5yZXBsYWNlKC89LiovLCAnPTtleHBpcmVzPScgKyBuZXcgRGF0ZSgpLnRvVVRDU3RyaW5nKCkgKyAnO3BhdGg9LycpOyB9KTtcclxuICB9XHJcbiAgc3RhdGljIGdldERhdGVEaWYobCwgZHQ6IHN0cmluZyk6IHN0cmluZ3tcclxuICAgIGNvbnN0IGQgPSBwYXJzZUludChkdC5zdWJzdHJpbmcoNiwgZHQubGVuZ3RoIC0gMiksIDEwKTtcclxuICAgIGNvbnN0IG5vdyA9IG1vbWVudC5ub3coKTtcclxuICAgIGNvbnN0IGRpZiA9IChub3cgLSBkKSAvIDEwMDA7XHJcbiAgICBjb25zdCBoID0gTWF0aC5mbG9vcihkaWYgLyAzNjAwKTtcclxuICAgIGNvbnN0IG0gPSBNYXRoLmZsb29yKGRpZiAlIDM2MDAgLyA2MCk7XHJcbiAgICBpZiAoaCA8IDI0KVxyXG4gICAge1xyXG4gICAgICBsZXQgciA9IGggPiAwID8gbCgnSG91clAnLCBoLnRvU3RyaW5nKCkpIDogJyc7XHJcbiAgICAgIHIgKz0gciAhPT0gJycgJiYgbSA+IDAgPyBsKCdBbmQnKSA6ICcnO1xyXG4gICAgICByICs9IG0gPiAwID8gbCgnTWludXRlUCcsIG0udG9TdHJpbmcoKSkgOiAnJztcclxuICAgICAgciArPSByICE9PSAnJyA/ICcnIDogbCgnQUZldycpO1xyXG4gICAgICByICs9ICcgJyArIGwoJ0FnbycpO1xyXG4gICAgICByZXR1cm4gcjtcclxuICAgIH1cclxuICAgIHJldHVybiAnPGRpdiBjbGFzcz1cImx0clwiPicgKyBtb21lbnQoZCkubG9jYWxlKCdmYScpLmZvcm1hdCgnallZWVkvak1NL2pERCBISDptbScpICsgJzwvZGl2Pic7XHJcbiAgfVxyXG4gIHN0YXRpYyBnZXRSb3dFbnVtKGwsIGUsIGR0KTogc3RyaW5ne1xyXG4gICAgY29uc3QgdiA9IGUuZmluZCh4ID0+IHguVmFsdWUgPT09IGR0KTtcclxuICAgIHJldHVybiBgPHNwYW4gY2xhc3M9XCJzdGF0dXMgJHt2LkNsYXNzfVwiPmAgKyBsKHYuTmFtZSkgKyAnPC9zcGFuPic7XHJcbiAgfVxyXG4gIHN0YXRpYyBnZXROb3coKTogYW55e1xyXG4gICAgcmV0dXJuIG1vbWVudC5ub3coKTtcclxuICB9XHJcbiAgc3RhdGljIGdldE1vbWVudChpID0gbnVsbCwgZiA9IG51bGwpOiBhbnl7XHJcbiAgICBpZiAoaSA9PSBudWxsKXtcclxuICAgICAgcmV0dXJuIG1vbWVudCgpO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIG1vbWVudChpLCBmKTtcclxuICB9XHJcbiAgc3RhdGljIGdldERhdGVSZW1haW4obCwgZHQ6IHN0cmluZyk6IHN0cmluZ3tcclxuICAgIGNvbnN0IGQgPSBwYXJzZUludChkdC5zdWJzdHJpbmcoNiwgZHQubGVuZ3RoIC0gMiksIDEwKTtcclxuICAgIGNvbnN0IG5vdyA9IG1vbWVudC5ub3coKTtcclxuICAgIGNvbnN0IGRpZiA9IChkIC0gbm93KSAvIDEwMDA7XHJcbiAgICBpZiAoZGlmIDw9IDApXHJcbiAgICB7XHJcbiAgICAgIHJldHVybiBsKCdFbmRlZCcpO1xyXG4gICAgfVxyXG4gICAgY29uc3QgaCA9IE1hdGguZmxvb3IoZGlmIC8gMzYwMCk7XHJcbiAgICBjb25zdCBtID0gTWF0aC5mbG9vcihkaWYgJSAzNjAwIC8gNjApO1xyXG4gICAgaWYgKGggPCAyNClcclxuICAgIHtcclxuICAgICAgbGV0IHIgPSBoID4gMCA/IGwoJ0hvdXJQJywgaC50b1N0cmluZygpKSA6ICcnO1xyXG4gICAgICByICs9IHIgIT09ICcnICYmIG0gPiAwID8gbCgnQW5kJykgOiAnJztcclxuICAgICAgciArPSBtID4gMCA/IGwoJ01pbnV0ZVAnLCBtLnRvU3RyaW5nKCkpIDogJyc7XHJcbiAgICAgIHIgKz0gciAhPT0gJycgPyAnJyA6IGwoJ0FGZXcnKTtcclxuICAgICAgciArPSAnICcgKyBsKCdMYXRlcicpO1xyXG4gICAgICByZXR1cm4gcjtcclxuICAgIH1cclxuICAgIHJldHVybiAnPGRpdiBjbGFzcz1cImx0clwiPicgKyBtb21lbnQoZCkubG9jYWxlKCdmYScpLmZvcm1hdCgnallZWVkvak1NL2pERCBISDptbScpICsgJzwvZGl2Pic7XHJcbiAgfVxyXG4gIHN0YXRpYyBnZXREYXRlKGR0OiBzdHJpbmcpOiBzdHJpbmd7XHJcbiAgICB0cnkge1xyXG4gICAgICBpZiAoZHQgPT09IG51bGwpe1xyXG4gICAgICAgIHJldHVybiAnJztcclxuICAgICAgfVxyXG4gICAgICBjb25zdCBkID0gcGFyc2VJbnQoZHQuc3Vic3RyaW5nKDYsIGR0Lmxlbmd0aCAtIDIpLCAxMCk7XHJcbiAgICAgIHJldHVybiBtb21lbnQoZCkubG9jYWxlKCdmYScpLmZvcm1hdCgnallZWVkvak1NL2pERCcpO1xyXG4gICAgfWNhdGNoIChlKSB7XHJcbiAgICAgIHJldHVybiBkdDtcclxuICAgIH1cclxuICB9XHJcbiAgc3RhdGljIGdldFRpbWUoZHQ6IGFueSk6IHN0cmluZ3tcclxuICAgIHRyeSB7XHJcbiAgICAgIGlmIChkdCA9PT0gbnVsbCl7XHJcbiAgICAgICAgcmV0dXJuICcnO1xyXG4gICAgICB9XHJcbiAgICAgIHJldHVybiBgJHsoZHQuSG91cnMgPiA5ID8gZHQuSG91cnMgOiBgMCR7ZHQuSG91cnN9YCl9OiR7KGR0Lk1pbnV0ZXMgPiA5ID8gZHQuTWludXRlcyA6IGAwJHtkdC5NaW51dGVzfWApfWA7XHJcbiAgICB9Y2F0Y2ggKGUpIHtcclxuICAgICAgcmV0dXJuIGR0O1xyXG4gICAgfVxyXG4gIH1cclxuICBzdGF0aWMgZ2V0RGF0ZVRpbWUoZHQ6IHN0cmluZyk6IHN0cmluZ3tcclxuICAgIGlmIChkdCA9PT0gbnVsbCl7XHJcbiAgICAgIHJldHVybiAnJztcclxuICAgIH1cclxuICAgIGNvbnN0IGQgPSBwYXJzZUludChkdC5zdWJzdHJpbmcoNiwgZHQubGVuZ3RoIC0gMiksIDEwKTtcclxuICAgIHJldHVybiBtb21lbnQoZCkubG9jYWxlKCdmYScpLmZvcm1hdCgnallZWVkvak1NL2pERCBISDptbScpO1xyXG4gIH1cclxuICBzdGF0aWMgZ2V0RmlsZVNpemUoYnl0ZXM6IG51bWJlcik6IHN0cmluZyB7XHJcbiAgICBjb25zdCBzdWZmaXggPSBbICdCJywgJ0tCJywgJ01CJywgJ0dCJywgJ1RCJ107XHJcbiAgICBsZXQgZGJsU0J5dGUgPSBieXRlcztcclxuICAgIGxldCBpID0gMDtcclxuICAgIGZvciAoOyBpIDwgc3VmZml4Lmxlbmd0aCAmJiBieXRlcyA+PSAxMDI0OyBpKyssIGJ5dGVzIC89IDEwMjQpXHJcbiAgICB7XHJcbiAgICAgIGRibFNCeXRlID0gYnl0ZXMgLyAxMDI0LjA7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gYCR7ZGJsU0J5dGUudG9Mb2NhbGVTdHJpbmcoJ2VuLVVTJywge1xyXG4gICAgICBtaW5pbXVtRnJhY3Rpb25EaWdpdHM6IDAsXHJcbiAgICAgIG1heGltdW1GcmFjdGlvbkRpZ2l0czogMSxcclxuICAgIH0pfSAke3N1ZmZpeFtpXX1gO1xyXG4gIH1cclxuICBzdGF0aWMgZ2V0UERhdGUobCwgcyk6IHN0cmluZ3tcclxuICAgIHJldHVybiBzLnJlcGxhY2UoL0hvdXIvZywgbCgnSG91cicpKVxyXG4gICAgICAucmVwbGFjZSgvTGVzc1RoYW5NaW51dGUvZywgbCgnTGVzc1RoYW5NaW51dGUnKSlcclxuICAgICAgLnJlcGxhY2UoL01pbnV0ZS9nLCBsKCdNaW51dGUnKSlcclxuICAgICAgLnJlcGxhY2UoL0FuZC9nLCBsKCdBbmQnKSlcclxuICAgICAgLnJlcGxhY2UoL0FGZXcvZywgbCgnQUZldycpKVxyXG4gICAgICAucmVwbGFjZSgvRmluaXNoZWQvZywgbCgnRmluaXNoZWQnKSlcclxuICAgICAgLnJlcGxhY2UoL0RheS9nLCBsKCdEYXknKSlcclxuICAgICAgLnJlcGxhY2UoL0xhdGVyL2csIGwoJ0xhdGVyJykpXHJcbiAgICAgIC5yZXBsYWNlKC9BZ28vZywgbCgnQWdvJykpO1xyXG4gIH1cclxuXHJcbiAgc3RhdGljIGNsb25lPFQ+KHY6IFQpOiBUIHtcclxuICAgIGlmICh2ID09IG51bGwpe1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcbiAgICBjb25zdCBjb3B5ID0gbmV3ICh2LmNvbnN0cnVjdG9yIGFzIHsgbmV3KCkgfSkoKTtcclxuICAgIE9iamVjdC5hc3NpZ24oY29weSwgdik7XHJcbiAgICByZXR1cm4gY29weTtcclxuICB9XHJcbiAgc3RhdGljIGNsb25lSnNvbihpbnApOiBhbnkge1xyXG4gICAgcmV0dXJuIEpTT04ucGFyc2UoSlNPTi5zdHJpbmdpZnkoaW5wKSk7XHJcbiAgfVxyXG4gIHN0YXRpYyBnZXROYW1lKG4pOiBzdHJpbmd7XHJcbiAgICByZXR1cm4gbi5yZXBsYWNlKC/aqS9nLCAn2YMnKS5yZXBsYWNlKC/bjC9nLCAn2YonKS5yZXBsYWNlKC/Yoi9nLCAn2KInKTtcclxuICB9XHJcbiAgc3RhdGljIGFkZE5vdGlmaWNhdGlvbihtLCBlID0gdHJ1ZSk6IHZvaWR7XHJcbiAgICBjb25zdCBpZCA9IEhlbHBlckNsYXNzLnJhbmRvbSgyMCk7XHJcbiAgICAvLyB0c2xpbnQ6ZGlzYWJsZS1uZXh0LWxpbmVcclxuICAgICQoJyNOb3RpZmljYXRpb25zJykuYXBwZW5kKCc8ZGl2IGlkPVwiJyArIGlkICsgJ1wiIGNsYXNzPVwiY29uXCI+PGRpdiBjbGFzcz1cIml0ZW0gJyArIChlID8gJ2Vycm9yJyA6ICdzdWNjZXNzJykgKyAnXCI+PGkgY2xhc3M9XCJmYXMgZmEtdGltZXNcIj48L2k+PGRpdj4nICsgbSArICc8L2Rpdj48L2Rpdj48L2Rpdj4nKTtcclxuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICBjb25zdCBkID0gJCgnIycgKyBpZCk7XHJcbiAgICAgIGQuZmFkZU91dCgzMDAsICgpID0+IHtcclxuICAgICAgICBkLnJlbW92ZSgpO1xyXG4gICAgICB9KTtcclxuICAgIH0sIDUwMDApO1xyXG4gIH1cclxuICBzdGF0aWMgY2hlY2tDYXJ0RGlnaXQoY29kZSk6IGJvb2xlYW57XHJcbiAgICBjb25zdCBsID0gY29kZS5sZW5ndGg7XHJcbiAgICBpZiAobCA8IDE2IHx8IHBhcnNlSW50KGNvZGUuc3Vic3RyKDEsIDEwKSwgMTApID09PSAwIHx8XHJcbiAgICAgIHBhcnNlSW50KGNvZGUuc3Vic3RyKDEwLCA2KSwgMTApID09PSAwKSB7XHJcbiAgICAgIHJldHVybiBmYWxzZTtcclxuICAgIH1cclxuICAgIGxldCBzID0gMDtcclxuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgMTY7IGkrKyl7XHJcbiAgICAgIGNvbnN0IGsgPSBpICUgMiA9PT0gMCA/IDIgOiAxO1xyXG4gICAgICBjb25zdCBkID0gcGFyc2VJbnQoY29kZS5zdWJzdHIoaSwgMSksIDEwKSAqIGs7XHJcbiAgICAgIHMgKz0gZCA+IDkgPyBkIC0gOSA6IGQ7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gcyAlIDEwID09PSAwO1xyXG4gIH1cclxuXHJcbiAgc3RhdGljIGdldERhdGEoa2V5LCBzdGF0ZSwgcGFyZW50KTogYW55IHtcclxuICAgIGNvbnN0IGRhdGEgPSBbXTtcclxuICAgIGlmIChwYXJlbnQgJiYgcGFyZW50LnNuYXBzaG90LmRhdGEgJiYgcGFyZW50LnNuYXBzaG90LmRhdGFba2V5XSkge1xyXG4gICAgICBkYXRhLnB1c2gocGFyZW50LnNuYXBzaG90LmRhdGFba2V5XSk7XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKHN0YXRlICYmIHBhcmVudCkge1xyXG4gICAgICBkYXRhLnB1c2goLi4udGhpcy5nZXREYXRhKGtleSwgc3RhdGUsIHN0YXRlLmZpcnN0Q2hpbGQocGFyZW50KSkpO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIGRhdGE7XHJcbiAgfVxyXG5cclxuICBzdGF0aWMgZ2V0Q29sb3JCeUJnQ29sb3IoYmdDb2xvcik6IHN0cmluZ3tcclxuICAgIGlmICghYmdDb2xvcikgeyByZXR1cm4gJyc7IH1cclxuICAgIHJldHVybiAocGFyc2VJbnQoYmdDb2xvci5yZXBsYWNlKCcjJywgJycpLCAxNikgPiAweGZmZmZmZiAvIDIpID8gJyMwMDAnIDogJyNmZmYnO1xyXG4gIH1cclxufVxyXG4iXX0=
290
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGVscGVyLmNsYXNzLmpzIiwic291cmNlUm9vdCI6IkQ6L1Byb2plY3RzL1BzVG9vbGtpdC9VSS9wcm9qZWN0cy9wcy10b29sa2l0LXVpL3NyYy8iLCJzb3VyY2VzIjpbImxpYi9jbGFzc2VzL2hlbHBlci5jbGFzcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsVUFBVSxFQUFDLE1BQU0sY0FBYyxDQUFDO0FBRXhDLE9BQU8sS0FBSyxNQUFNLE1BQU0sZUFBZSxDQUFDO0FBQ3hDLE9BQU8sS0FBSyxDQUFDLE1BQU0sUUFBUSxDQUFDO0FBRTVCLFdBQVc7QUFDWCxNQUFNLE9BQU8sV0FBVztJQUN0QixNQUFNLENBQUMsUUFBUSxDQUFDLEdBQWU7UUFDN0IsSUFBSSxHQUFHLENBQUMsS0FBSyxLQUFLLFVBQVUsQ0FBQyxRQUFRLEVBQUU7WUFDckMsT0FBTyxHQUFHLENBQUMsQ0FBQyxDQUFDLG1CQUFtQixFQUFFLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQztTQUM3QzthQUFNLElBQUksR0FBRyxDQUFDLEtBQUssS0FBSyxVQUFVLENBQUMsT0FBTyxFQUFFO1lBQzNDLE9BQU8sR0FBRyxDQUFDLENBQUMsQ0FBQyxrQkFBa0IsRUFBRSxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUM7U0FDNUM7YUFBTSxJQUFJLEdBQUcsQ0FBQyxLQUFLLEtBQUssVUFBVSxDQUFDLE1BQU0sRUFBRTtZQUMxQyxPQUFPLEdBQUcsQ0FBQyxDQUFDLENBQUMsaUJBQWlCLEVBQUUsQ0FBQyxHQUFHLENBQUMsSUFBSSxFQUFFLEdBQUcsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDO1NBQzVEO2FBQU0sSUFBSSxHQUFHLENBQUMsS0FBSyxLQUFLLFVBQVUsQ0FBQyxTQUFTLEVBQUU7WUFDN0MsT0FBTyxHQUFHLENBQUMsQ0FBQyxDQUFDLG9CQUFvQixFQUFFLENBQUMsR0FBRyxDQUFDLElBQUksRUFBRSxHQUFHLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQztTQUMv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b3J9IGZyb20gJy4vZW51bS5jbGFzcyc7XHJcbmltcG9ydCB7SW5wdXRDbGFzc30gZnJvbSAnLi9mb3JtLmNsYXNzJztcclxuaW1wb3J0ICogYXMgbW9tZW50IGZyb20gJ2phbGFsaS1tb21lbnQnO1xyXG5pbXBvcnQgKiBhcyAkIGZyb20gJ2pxdWVyeSc7XHJcblxyXG4vLyBAZHluYW1pY1xyXG5leHBvcnQgY2xhc3MgSGVscGVyQ2xhc3Mge1xyXG4gIHN0YXRpYyBnZXRMYWJlbChpbnA6IElucHV0Q2xhc3MpOiBzdHJpbmcge1xyXG4gICAgaWYgKGlucC5lcnJvciA9PT0gSW5wdXRFcnJvci5SZXF1aXJlZCkge1xyXG4gICAgICByZXR1cm4gaW5wLmwoJ0Zvcm1FcnJvclJlcXVpcmVkJywgaW5wLm5hbWUpO1xyXG4gICAgfSBlbHNlIGlmIChpbnAuZXJyb3IgPT09IElucHV0RXJyb3IuSW52YWxpZCkge1xyXG4gICAgICByZXR1cm4gaW5wLmwoJ0Zvcm1FcnJvckludmFsaWQnLCBpbnAubmFtZSk7XHJcbiAgICB9IGVsc2UgaWYgKGlucC5lcnJvciA9PT0gSW5wdXRFcnJvci5MZW5ndGgpIHtcclxuICAgICAgcmV0dXJuIGlucC5sKCdGb3JtRXJyb3JMZW5ndGgnLCBbaW5wLm5hbWUsIGlucC5taW5MZW5ndGhdKTtcclxuICAgIH0gZWxzZSBpZiAoaW5wLmVycm9yID09PSBJbnB1dEVycm9yLk1pbkxlbmd0aCkge1xyXG4gICAgICByZXR1cm4gaW5wLmwoJ0Zvcm1FcnJvck1pbkxlbmd0aCcsIFtpbnAubmFtZSwgaW5wLm1pbkxlbmd0aF0pO1xyXG4gICAgfSBlbHNlIGlmIChpbnAuZXJyb3IgPT09IElucHV0RXJyb3IuTWF4TGVuZ3RoKSB7XHJcbiAgICAgIHJldHVybiBpbnAubCgnRm9ybUVycm9yTWF4TGVuZ3RoJywgW2lucC5uYW1lLCBpbnAubWF4TGVuZ3RoXSk7XHJcbiAgICB9IGVsc2UgaWYgKGlucC5lcnJvciA9PT0gSW5wdXRFcnJvci5NaW5BbW91bnQpIHtcclxuICAgICAgcmV0dXJuIGlucC5sKCdGb3JtRXJyb3JNaW5BbW91bnQnLCBbaW5wLm5hbWUsIGlucC5taW5MZW5ndGhdKTtcclxuICAgIH0gZWxzZSBpZiAoaW5wLmVycm9yID09PSBJbnB1dEVycm9yLk1heEFtb3VudCkge1xyXG4gICAgICByZXR1cm4gaW5wLmwoJ0Zvcm1FcnJvck1heEFtb3VudCcsIFtpbnAubmFtZSwgaW5wLm1heExlbmd0aF0pO1xyXG4gICAgfSBlbHNlIGlmIChpbnAuZXJyb3IgPT09IElucHV0RXJyb3IuRXhwaXJlZCkge1xyXG4gICAgICByZXR1cm4gaW5wLmwoJ0Zvcm1FcnJvckV4cGlyZWQnLCBpbnAubmFtZSk7XHJcbiAgICB9IGVsc2UgaWYgKGlucC5lcnJvciA9PT0gSW5wdXRFcnJvci5Xcm9uZykge1xyXG4gICAgICByZXR1cm4gaW5wLmwoJ0Zvcm1FcnJvcldyb25nJywgaW5wLm5hbWUpO1xyXG4gICAgfSBlbHNlIGlmIChpbnAuZXJyb3IgPT09IElucHV0RXJyb3IuRXJyb3IpIHtcclxuICAgICAgcmV0dXJuIGlucC5sKCdGb3JtRXJyb3InLCBpbnAubmFtZSk7XHJcbiAgICB9IGVsc2UgaWYgKGlucC5lcnJvciA9PT0gSW5wdXRFcnJvci5Ob3RNYXRjaCkge1xyXG4gICAgICByZXR1cm4gaW5wLmwoJ0Zvcm1FcnJvck5vdE1hdGNoJywgaW5wLm1hdGNoLm5hbWUpO1xyXG4gICAgfSBlbHNlIGlmIChpbnAuZXJyb3IgPT09IElucHV0RXJyb3IuRXhpc3QpIHtcclxuICAgICAgcmV0dXJuIGlucC5sKCdGb3JtRXJyb3JFeGlzdCcsIGlucC5uYW1lKTtcclxuICAgIH0gZWxzZSBpZiAoaW5wLmVycm9yID09PSBJbnB1dEVycm9yLk5vdEV4aXN0KSB7XHJcbiAgICAgIHJldHVybiBpbnAubCgnRm9ybUVycm9yTm90RXhpc3QnLCBpbnAubmFtZSk7XHJcbiAgICB9IGVsc2UgaWYgKGlucC5lcnJvciA9PT0gSW5wdXRFcnJvci5Ob3RBbGxvd2VkKSB7XHJcbiAgICAgIHJldHVybiBpbnAubCgnRm9ybUVycm9yTm90QWxsb3dlZCcsIFtpbnAubmFtZSwgaW5wLmFsbG93ZWQuam9pbignLCAnKV0pO1xyXG4gICAgfSBlbHNlIGlmIChpbnAuZXJyb3IgPT09IElucHV0RXJyb3IuTWF4Q29udGVudCkge1xyXG4gICAgICByZXR1cm4gaW5wLmwoJ0Zvcm1FcnJvck1heENvbnRlbnQnLCBbaW5wLm5hbWUsIGlucC5tYXhMZW5ndGhdKTtcclxuICAgIH0gZWxzZSBpZiAoaW5wLmVycm9yID09PSBJbnB1dEVycm9yLlVwbG9hZCkge1xyXG4gICAgICByZXR1cm4gaW5wLmwoJ0Zvcm1FcnJvclVwbG9hZCcsIGlucC5uYW1lKTtcclxuICAgIH1cclxuICAgIGNvbnN0IGRlc2MgPSBpbnAuZGVzY3JpcHRpb24gIT09IG51bGwgPyAnICgnICsgaW5wLmwoaW5wLmRlc2NyaXB0aW9uKSArICcpJyA6ICcnO1xyXG4gICAgcmV0dXJuIGlucC5sKGlucC5uYW1lKSArIGRlc2M7XHJcbiAgfVxyXG5cclxuICBzdGF0aWMgbmF0aW9uYWxDb2RlVmFsaWQoYyk6IGJvb2xlYW4ge1xyXG4gICAgaWYgKCFSZWdFeHAoL15cXGR7MTB9JC8pLnRlc3QoYykgfHwgUmVnRXhwKC9eKC4pXFwxKyQvKS50ZXN0KGMpKSB7XHJcbiAgICAgIHJldHVybiBmYWxzZTtcclxuICAgIH1cclxuICAgIGNvbnN0IGNoZWNrID0gcGFyc2VJbnQoY1s5XSwgMTApO1xyXG4gICAgbGV0IHN1bSA9IDA7XHJcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IDk7ICsraSkge1xyXG4gICAgICBzdW0gKz0gcGFyc2VJbnQoY1tpXSwgMTApICogKDEwIC0gaSk7XHJcbiAgICB9XHJcbiAgICBzdW0gJT0gMTE7XHJcbiAgICByZXR1cm4gKHN1bSA8IDIgJiYgY2hlY2sgPT09IHN1bSkgfHwgKHN1bSA+PSAyICYmIGNoZWNrICsgc3VtID09PSAxMSk7XHJcbiAgfVxyXG5cclxuICBzdGF0aWMgaXNvNzA2NE1vZDk3XzEwKGliYW4pOiBudW1iZXJ7XHJcbiAgICBsZXQgcmVtYWluZGVyID0gaWJhbjtcclxuICAgIHdoaWxlIChyZW1haW5kZXIubGVuZ3RoID4gMil7XHJcbiAgICAgIGNvbnN0IGJsb2NrID0gcmVtYWluZGVyLnNsaWNlKDAsIDkpO1xyXG4gICAgICByZW1haW5kZXIgPSBwYXJzZUludChibG9jaywgMTApICUgOTcgKyByZW1haW5kZXIuc2xpY2UoYmxvY2subGVuZ3RoKTtcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gcGFyc2VJbnQocmVtYWluZGVyLCAxMCkgJSA5NztcclxuICB9XHJcblxyXG4gIHN0YXRpYyBzaGViYVZhbGlkKHN0cik6IGJvb2xlYW4ge1xyXG4gICAgY29uc3QgcGF0dGVybiA9IC9JUlswLTldezI0fS87XHJcbiAgICBpZiAoIXN0ci5zdGFydFdpdGgoJ0lSJykpe1xyXG4gICAgICBzdHIgPSAnSVInICsgc3RyO1xyXG4gICAgfVxyXG4gICAgaWYgKHN0ci5sZW5ndGggIT09IDI2KSB7XHJcbiAgICAgIHJldHVybiBmYWxzZTtcclxuICAgIH1cclxuXHJcbiAgICBpZiAoIXBhdHRlcm4udGVzdChzdHIpKSB7XHJcbiAgICAgIHJldHVybiBmYWxzZTtcclxuICAgIH1cclxuXHJcbiAgICBsZXQgbmV3U3RyID0gc3RyLnN1YnN0cig0KTtcclxuICAgIGNvbnN0IGQxID0gc3RyLmNoYXJDb2RlQXQoMCkgLSA2NSArIDEwO1xyXG4gICAgY29uc3QgZDIgPSBzdHIuY2hhckNvZGVBdCgxKSAtIDY1ICsgMTA7XHJcbiAgICBuZXdTdHIgKz0gZDEudG9TdHJpbmcoKSArIGQyLnRvU3RyaW5nKCkgKyBzdHIuc3Vic3RyKDIsIDIpO1xyXG5cclxuICAgIHJldHVybiB0aGlzLmlzbzcwNjRNb2Q5N18xMChuZXdTdHIpID09PSAxO1xyXG4gIH1cclxuXHJcbiAgc3RhdGljIHBvc3RhbENvZGVWYWxpZChjKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gUmVnRXhwKC9eXFxiKD8hKFxcZClcXDF7M30pWzEzLTldezR9WzEzNDYtOV1bMDEzLTldezV9XFxiJC8pLnRlc3QoYyk7XHJcbiAgfVxyXG4gIHN0YXRpYyByYW5kb20obGVuZ3RoLCB1cHBlciA9IHRydWUsIGxvd2VyID0gdHJ1ZSwgbnVtID0gdHJ1ZSk6IHN0cmluZyB7XHJcbiAgICBsZXQgcmVzdWx0ID0gJyc7XHJcbiAgICBjb25zdCBjaGFyYWN0ZXJzID0gYCR7dXBwZXIgPyAnQUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVonIDogJyd9JHtsb3dlciA/ICdhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5eicgOiAnJ30ke251bSA/ICcxMjM0NTY3ODknIDogJyd9YDtcclxuICAgIGNvbnN0IGNoYXJhY3RlcnNMZW5ndGggPSBjaGFyYWN0ZXJzLmxlbmd0aDtcclxuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgbGVuZ3RoOyBpKysgKSB7XHJcbiAgICAgIHJlc3VsdCArPSBjaGFyYWN0ZXJzLmNoYXJBdChNYXRoLmZsb29yKE1hdGgucmFuZG9tKCkgKiBjaGFyYWN0ZXJzTGVuZ3RoKSk7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gcmVzdWx0O1xyXG4gIH1cclxuICBzdGF0aWMgc2V0Q29va2llKG5hbWUsIHZhbHVlLCBkYXlzKTogdm9pZCB7XHJcbiAgICBsZXQgZXhwaXJlcyA9ICcnO1xyXG4gICAgaWYgKGRheXMpIHtcclxuICAgICAgY29uc3QgZGF0ZSA9IG5ldyBEYXRlKCk7XHJcbiAgICAgIGRhdGUuc2V0VGltZShkYXRlLmdldFRpbWUoKSArIChkYXlzICogMjQgKiA2MCAqIDYwICogMTAwMCkpO1xyXG4gICAgICBleHBpcmVzID0gJzsgZXhwaXJlcz0nICsgZGF0ZS50b1VUQ1N0cmluZygpO1xyXG4gICAgfVxyXG4gICAgZG9jdW1lbnQuY29va2llID0gbmFtZSArICc9JyArICh2YWx1ZSB8fCAnJykgICsgZXhwaXJlcyArICc7IHBhdGg9Lyc7XHJcbiAgfVxyXG4gIHN0YXRpYyBnZXRDb29raWUobmFtZSwgZGVmID0gbnVsbCk6IHN0cmluZyB7XHJcbiAgICBjb25zdCBuYW1lRVEgPSBuYW1lICsgJz0nO1xyXG4gICAgY29uc3QgY2EgPSBkb2N1bWVudC5jb29raWUuc3BsaXQoJzsnKTtcclxuICAgIGZvciAobGV0IGMgb2YgY2EpIHtcclxuICAgICAgd2hpbGUgKGMuY2hhckF0KDApID09PSAnICcpe1xyXG4gICAgICAgIGMgPSBjLnN1YnN0cmluZygxLCBjLmxlbmd0aCk7XHJcbiAgICAgIH1cclxuICAgICAgaWYgKGMuaW5kZXhPZihuYW1lRVEpID09PSAwKXtcclxuICAgICAgICByZXR1cm4gYy5zdWJzdHJpbmcobmFtZUVRLmxlbmd0aCwgYy5sZW5ndGgpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICByZXR1cm4gZGVmO1xyXG4gIH1cclxuICBzdGF0aWMgZXJhc2VDb29raWUobmFtZSk6IHZvaWQge1xyXG4gICAgZG9jdW1lbnQuY29va2llLnNwbGl0KCc7JylcclxuICAgICAgLmZvckVhY2goKGMpID0+IHsgZG9jdW1lbnQuY29va2llID0gYy5yZXBsYWNlKC9eICsvLCAnJykucmVwbGFjZSgvPS4qLywgJz07ZXhwaXJlcz0nICsgbmV3IERhdGUoKS50b1VUQ1N0cmluZygpICsgJztwYXRoPS8nKTsgfSk7XHJcbiAgfVxyXG4gIHN0YXRpYyBnZXREYXRlRGlmKGwsIGR0OiBzdHJpbmcpOiBzdHJpbmd7XHJcbiAgICBjb25zdCBkID0gcGFyc2VJbnQoZHQuc3Vic3RyaW5nKDYsIGR0Lmxlbmd0aCAtIDIpLCAxMCk7XHJcbiAgICBjb25zdCBub3cgPSBtb21lbnQubm93KCk7XHJcbiAgICBjb25zdCBkaWYgPSAobm93IC0gZCkgLyAxMDAwO1xyXG4gICAgY29uc3QgaCA9IE1hdGguZmxvb3IoZGlmIC8gMzYwMCk7XHJcbiAgICBjb25zdCBtID0gTWF0aC5mbG9vcihkaWYgJSAzNjAwIC8gNjApO1xyXG4gICAgaWYgKGggPCAyNClcclxuICAgIHtcclxuICAgICAgbGV0IHIgPSBoID4gMCA/IGwoJ0hvdXJQJywgaC50b1N0cmluZygpKSA6ICcnO1xyXG4gICAgICByICs9IHIgIT09ICcnICYmIG0gPiAwID8gbCgnQW5kJykgOiAnJztcclxuICAgICAgciArPSBtID4gMCA/IGwoJ01pbnV0ZVAnLCBtLnRvU3RyaW5nKCkpIDogJyc7XHJcbiAgICAgIHIgKz0gciAhPT0gJycgPyAnJyA6IGwoJ0FGZXcnKTtcclxuICAgICAgciArPSAnICcgKyBsKCdBZ28nKTtcclxuICAgICAgcmV0dXJuIHI7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gJzxkaXYgY2xhc3M9XCJsdHJcIj4nICsgbW9tZW50KGQpLmxvY2FsZSgnZmEnKS5mb3JtYXQoJ2pZWVlZL2pNTS9qREQgSEg6bW0nKSArICc8L2Rpdj4nO1xyXG4gIH1cclxuICBzdGF0aWMgZ2V0Um93RW51bShsLCBlLCBkdCk6IHN0cmluZ3tcclxuICAgIGNvbnN0IHYgPSBlLmZpbmQoeCA9PiB4LlZhbHVlID09PSBkdCk7XHJcbiAgICByZXR1cm4gYDxzcGFuIGNsYXNzPVwic3RhdHVzICR7di5DbGFzc31cIj5gICsgbCh2Lk5hbWUpICsgJzwvc3Bhbj4nO1xyXG4gIH1cclxuICBzdGF0aWMgZ2V0Tm93KCk6IGFueXtcclxuICAgIHJldHVybiBtb21lbnQubm93KCk7XHJcbiAgfVxyXG4gIHN0YXRpYyBnZXRNb21lbnQoaSA9IG51bGwsIGYgPSBudWxsKTogYW55e1xyXG4gICAgaWYgKGkgPT0gbnVsbCl7XHJcbiAgICAgIHJldHVybiBtb21lbnQoKTtcclxuICAgIH1cclxuICAgIHJldHVybiBtb21lbnQoaSwgZik7XHJcbiAgfVxyXG4gIHN0YXRpYyBnZXREYXRlUmVtYWluKGwsIGR0OiBzdHJpbmcpOiBzdHJpbmd7XHJcbiAgICBjb25zdCBkID0gcGFyc2VJbnQoZHQuc3Vic3RyaW5nKDYsIGR0Lmxlbmd0aCAtIDIpLCAxMCk7XHJcbiAgICBjb25zdCBub3cgPSBtb21lbnQubm93KCk7XHJcbiAgICBjb25zdCBkaWYgPSAoZCAtIG5vdykgLyAxMDAwO1xyXG4gICAgaWYgKGRpZiA8PSAwKVxyXG4gICAge1xyXG4gICAgICByZXR1cm4gbCgnRW5kZWQnKTtcclxuICAgIH1cclxuICAgIGNvbnN0IGggPSBNYXRoLmZsb29yKGRpZiAvIDM2MDApO1xyXG4gICAgY29uc3QgbSA9IE1hdGguZmxvb3IoZGlmICUgMzYwMCAvIDYwKTtcclxuICAgIGlmIChoIDwgMjQpXHJcbiAgICB7XHJcbiAgICAgIGxldCByID0gaCA+IDAgPyBsKCdIb3VyUCcsIGgudG9TdHJpbmcoKSkgOiAnJztcclxuICAgICAgciArPSByICE9PSAnJyAmJiBtID4gMCA/IGwoJ0FuZCcpIDogJyc7XHJcbiAgICAgIHIgKz0gbSA+IDAgPyBsKCdNaW51dGVQJywgbS50b1N0cmluZygpKSA6ICcnO1xyXG4gICAgICByICs9IHIgIT09ICcnID8gJycgOiBsKCdBRmV3Jyk7XHJcbiAgICAgIHIgKz0gJyAnICsgbCgnTGF0ZXInKTtcclxuICAgICAgcmV0dXJuIHI7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gJzxkaXYgY2xhc3M9XCJsdHJcIj4nICsgbW9tZW50KGQpLmxvY2FsZSgnZmEnKS5mb3JtYXQoJ2pZWVlZL2pNTS9qREQgSEg6bW0nKSArICc8L2Rpdj4nO1xyXG4gIH1cclxuICBzdGF0aWMgZ2V0RGF0ZShkdDogc3RyaW5nLCBmb3JtYXQ6IHN0cmluZyA9ICdqWVlZWS9qTU0vakREJyk6IHN0cmluZ3tcclxuICAgIHRyeSB7XHJcbiAgICAgIGlmIChkdCA9PT0gbnVsbCl7XHJcbiAgICAgICAgcmV0dXJuICcnO1xyXG4gICAgICB9XHJcbiAgICAgIGNvbnN0IGQgPSBwYXJzZUludChkdC5zdWJzdHJpbmcoNiwgZHQubGVuZ3RoIC0gMiksIDEwKTtcclxuICAgICAgcmV0dXJuIG1vbWVudChkKS5sb2NhbGUoJ2ZhJykuZm9ybWF0KGZvcm1hdCk7XHJcbiAgICB9Y2F0Y2ggKGUpIHtcclxuICAgICAgcmV0dXJuIGR0O1xyXG4gICAgfVxyXG4gIH1cclxuICBzdGF0aWMgZ2V0VGltZShkdDogYW55KTogc3RyaW5ne1xyXG4gICAgdHJ5IHtcclxuICAgICAgaWYgKGR0ID09PSBudWxsKXtcclxuICAgICAgICByZXR1cm4gJyc7XHJcbiAgICAgIH1cclxuICAgICAgcmV0dXJuIGAkeyhkdC5Ib3VycyA+IDkgPyBkdC5Ib3VycyA6IGAwJHtkdC5Ib3Vyc31gKX06JHsoZHQuTWludXRlcyA+IDkgPyBkdC5NaW51dGVzIDogYDAke2R0Lk1pbnV0ZXN9YCl9YDtcclxuICAgIH1jYXRjaCAoZSkge1xyXG4gICAgICByZXR1cm4gZHQ7XHJcbiAgICB9XHJcbiAgfVxyXG4gIHN0YXRpYyBnZXREYXRlVGltZShkdDogc3RyaW5nKTogc3RyaW5ne1xyXG4gICAgaWYgKGR0ID09PSBudWxsKXtcclxuICAgICAgcmV0dXJuICcnO1xyXG4gICAgfVxyXG4gICAgY29uc3QgZCA9IHBhcnNlSW50KGR0LnN1YnN0cmluZyg2LCBkdC5sZW5ndGggLSAyKSwgMTApO1xyXG4gICAgcmV0dXJuIG1vbWVudChkKS5sb2NhbGUoJ2ZhJykuZm9ybWF0KCdqWVlZWS9qTU0vakREIEhIOm1tJyk7XHJcbiAgfVxyXG4gIHN0YXRpYyBnZXRGaWxlU2l6ZShieXRlczogbnVtYmVyKTogc3RyaW5nIHtcclxuICAgIGNvbnN0IHN1ZmZpeCA9IFsgJ0InLCAnS0InLCAnTUInLCAnR0InLCAnVEInXTtcclxuICAgIGxldCBkYmxTQnl0ZSA9IGJ5dGVzO1xyXG4gICAgbGV0IGkgPSAwO1xyXG4gICAgZm9yICg7IGkgPCBzdWZmaXgubGVuZ3RoICYmIGJ5dGVzID49IDEwMjQ7IGkrKywgYnl0ZXMgLz0gMTAyNClcclxuICAgIHtcclxuICAgICAgZGJsU0J5dGUgPSBieXRlcyAvIDEwMjQuMDtcclxuICAgIH1cclxuICAgIHJldHVybiBgJHtkYmxTQnl0ZS50b0xvY2FsZVN0cmluZygnZW4tVVMnLCB7XHJcbiAgICAgIG1pbmltdW1GcmFjdGlvbkRpZ2l0czogMCxcclxuICAgICAgbWF4aW11bUZyYWN0aW9uRGlnaXRzOiAxLFxyXG4gICAgfSl9ICR7c3VmZml4W2ldfWA7XHJcbiAgfVxyXG4gIHN0YXRpYyBnZXRQRGF0ZShsLCBzKTogc3RyaW5ne1xyXG4gICAgcmV0dXJuIHMucmVwbGFjZSgvSG91ci9nLCBsKCdIb3VyJykpXHJcbiAgICAgIC5yZXBsYWNlKC9MZXNzVGhhbk1pbnV0ZS9nLCBsKCdMZXNzVGhhbk1pbnV0ZScpKVxyXG4gICAgICAucmVwbGFjZSgvTWludXRlL2csIGwoJ01pbnV0ZScpKVxyXG4gICAgICAucmVwbGFjZSgvQW5kL2csIGwoJ0FuZCcpKVxyXG4gICAgICAucmVwbGFjZSgvQUZldy9nLCBsKCdBRmV3JykpXHJcbiAgICAgIC5yZXBsYWNlKC9GaW5pc2hlZC9nLCBsKCdGaW5pc2hlZCcpKVxyXG4gICAgICAucmVwbGFjZSgvRGF5L2csIGwoJ0RheScpKVxyXG4gICAgICAucmVwbGFjZSgvTGF0ZXIvZywgbCgnTGF0ZXInKSlcclxuICAgICAgLnJlcGxhY2UoL0Fnby9nLCBsKCdBZ28nKSk7XHJcbiAgfVxyXG5cclxuICBzdGF0aWMgY2xvbmU8VD4odjogVCk6IFQge1xyXG4gICAgaWYgKHYgPT0gbnVsbCl7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuICAgIGNvbnN0IGNvcHkgPSBuZXcgKHYuY29uc3RydWN0b3IgYXMgeyBuZXcoKSB9KSgpO1xyXG4gICAgT2JqZWN0LmFzc2lnbihjb3B5LCB2KTtcclxuICAgIHJldHVybiBjb3B5O1xyXG4gIH1cclxuICBzdGF0aWMgY2xvbmVKc29uKGlucCk6IGFueSB7XHJcbiAgICByZXR1cm4gSlNPTi5wYXJzZShKU09OLnN0cmluZ2lmeShpbnApKTtcclxuICB9XHJcbiAgc3RhdGljIGdldE5hbWUobik6IHN0cmluZ3tcclxuICAgIHJldHVybiBuLnJlcGxhY2UoL9qpL2csICfZgycpLnJlcGxhY2UoL9uML2csICfZiicpLnJlcGxhY2UoL9iiL2csICfYoicpO1xyXG4gIH1cclxuICBzdGF0aWMgYWRkTm90aWZpY2F0aW9uKG0sIGUgPSB0cnVlKTogdm9pZHtcclxuICAgIGNvbnN0IGlkID0gSGVscGVyQ2xhc3MucmFuZG9tKDIwKTtcclxuICAgIC8vIHRzbGludDpkaXNhYmxlLW5leHQtbGluZVxyXG4gICAgJCgnI05vdGlmaWNhdGlvbnMnKS5hcHBlbmQoJzxkaXYgaWQ9XCInICsgaWQgKyAnXCIgY2xhc3M9XCJjb25cIj48ZGl2IGNsYXNzPVwiaXRlbSAnICsgKGUgPyAnZXJyb3InIDogJ3N1Y2Nlc3MnKSArICdcIj48aSBjbGFzcz1cImZhcyBmYS10aW1lc1wiPjwvaT48ZGl2PicgKyBtICsgJzwvZGl2PjwvZGl2PjwvZGl2PicpO1xyXG4gICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgIGNvbnN0IGQgPSAkKCcjJyArIGlkKTtcclxuICAgICAgZC5mYWRlT3V0KDMwMCwgKCkgPT4ge1xyXG4gICAgICAgIGQucmVtb3ZlKCk7XHJcbiAgICAgIH0pO1xyXG4gICAgfSwgNTAwMCk7XHJcbiAgfVxyXG4gIHN0YXRpYyBjaGVja0NhcnREaWdpdChjb2RlKTogYm9vbGVhbntcclxuICAgIGNvbnN0IGwgPSBjb2RlLmxlbmd0aDtcclxuICAgIGlmIChsIDwgMTYgfHwgcGFyc2VJbnQoY29kZS5zdWJzdHIoMSwgMTApLCAxMCkgPT09IDAgfHxcclxuICAgICAgcGFyc2VJbnQoY29kZS5zdWJzdHIoMTAsIDYpLCAxMCkgPT09IDApIHtcclxuICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgfVxyXG4gICAgbGV0IHMgPSAwO1xyXG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCAxNjsgaSsrKXtcclxuICAgICAgY29uc3QgayA9IGkgJSAyID09PSAwID8gMiA6IDE7XHJcbiAgICAgIGNvbnN0IGQgPSBwYXJzZUludChjb2RlLnN1YnN0cihpLCAxKSwgMTApICogaztcclxuICAgICAgcyArPSBkID4gOSA/IGQgLSA5IDogZDtcclxuICAgIH1cclxuICAgIHJldHVybiBzICUgMTAgPT09IDA7XHJcbiAgfVxyXG5cclxuICBzdGF0aWMgZ2V0RGF0YShrZXksIHN0YXRlLCBwYXJlbnQpOiBhbnkge1xyXG4gICAgY29uc3QgZGF0YSA9IFtdO1xyXG4gICAgaWYgKHBhcmVudCAmJiBwYXJlbnQuc25hcHNob3QuZGF0YSAmJiBwYXJlbnQuc25hcHNob3QuZGF0YVtrZXldKSB7XHJcbiAgICAgIGRhdGEucHVzaChwYXJlbnQuc25hcHNob3QuZGF0YVtrZXldKTtcclxuICAgIH1cclxuXHJcbiAgICBpZiAoc3RhdGUgJiYgcGFyZW50KSB7XHJcbiAgICAgIGRhdGEucHVzaCguLi50aGlzLmdldERhdGEoa2V5LCBzdGF0ZSwgc3RhdGUuZmlyc3RDaGlsZChwYXJlbnQpKSk7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gZGF0YTtcclxuICB9XHJcblxyXG4gIHN0YXRpYyBnZXRDb2xvckJ5QmdDb2xvcihiZ0NvbG9yKTogc3RyaW5ne1xyXG4gICAgaWYgKCFiZ0NvbG9yKSB7IHJldHVybiAnJzsgfVxyXG4gICAgcmV0dXJuIChwYXJzZUludChiZ0NvbG9yLnJlcGxhY2UoJyMnLCAnJyksIDE2KSA+IDB4ZmZmZmZmIC8gMikgPyAnIzAwMCcgOiAnI2ZmZic7XHJcbiAgfVxyXG59XHJcbiJdfQ==
@@ -4,6 +4,7 @@ export class LoginClass {
4
4
  this.steps = [];
5
5
  this.active = 0;
6
6
  this.onSuccess = null;
7
+ this.rules = null;
7
8
  this.type = type;
8
9
  this.l = l;
9
10
  }
@@ -20,4 +21,4 @@ export class LoginStepClass {
20
21
  }
21
22
  show(result = null) { }
22
23
  }
23
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9naW4uY2xhc3MuanMiLCJzb3VyY2VSb290IjoiRDovUHJvamVjdHMvUHNUb29sa2l0L1VJL3Byb2plY3RzL3BzLXRvb2xraXQtdWkvc3JjLyIsInNvdXJjZXMiOlsibGliL2NsYXNzZXMvbG9naW4uY2xhc3MudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFDLFdBQVcsRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBRTNDLE1BQU0sT0FBTyxVQUFVO0lBQ3JCLFlBQVksQ0FBb0IsRUFBRSxJQUFZO1FBTTlDLFVBQUssR0FBcUIsRUFBRSxDQUFDO1FBQzdCLFdBQU0sR0FBRyxDQUFDLENBQUM7UUFDWCxjQUFTLEdBQXFCLElBQUksQ0FBQztRQVBqQyxJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQztRQUNqQixJQUFJLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUNiLENBQUM7SUFRRCxTQUFTLENBQUMsQ0FBQztRQUNULElBQUksQ0FBQyxDQUFDLEtBQUssRUFBQztZQUNWLFdBQVcsQ0FBQyxTQUFTLENBQUMsZUFBZSxFQUFFLFVBQVUsQ0FBQyxDQUFDLEtBQUssRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDO1NBQ2pFO0lBQ0gsQ0FBQztDQUNGO0FBQ0QsTUFBTSxPQUFPLGNBQWM7SUFDekIsWUFBWSxJQUFlO1FBRzNCLFNBQUksR0FBYyxJQUFJLENBQUM7UUFGckIsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUM7SUFDbkIsQ0FBQztJQUVELElBQUksQ0FBQyxTQUFjLElBQUksSUFBUyxDQUFDO0NBQ2xDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtGb3JtQ2xhc3N9IGZyb20gJy4vZm9ybS5jbGFzcyc7XHJcbmltcG9ydCB7SGVscGVyQ2xhc3N9IGZyb20gJy4vaGVscGVyLmNsYXNzJztcclxuXHJcbmV4cG9ydCBjbGFzcyBMb2dpbkNsYXNzIHtcclxuICBjb25zdHJ1Y3RvcihsOiAoaywgdj8pID0+IHN0cmluZywgdHlwZTogc3RyaW5nKSB7XHJcbiAgICB0aGlzLnR5cGUgPSB0eXBlO1xyXG4gICAgdGhpcy5sID0gbDtcclxuICB9XHJcbiAgdHlwZTogc3RyaW5nO1xyXG4gIGw6IChrLCB2PykgPT4gc3RyaW5nO1xyXG4gIHN0ZXBzOiBMb2dpblN0ZXBDbGFzc1tdID0gW107XHJcbiAgYWN0aXZlID0gMDtcclxuICBvblN1Y2Nlc3M6IChyZXN1bHQpID0+IHZvaWQgPSBudWxsO1xyXG4gIHNlbmRDb2RlVXJsOiBzdHJpbmc7XHJcbiAgbG9naW5Vcmw6IHN0cmluZztcclxuICBzZXRDb29raWUocik6IHZvaWR7XHJcbiAgICBpZiAoci5Ub2tlbil7XHJcbiAgICAgIEhlbHBlckNsYXNzLnNldENvb2tpZSgnQXV0aG9yaXphdGlvbicsIGBCZWFyZXIgJHtyLlRva2VufWAsIDMwKTtcclxuICAgIH1cclxuICB9XHJcbn1cclxuZXhwb3J0IGNsYXNzIExvZ2luU3RlcENsYXNze1xyXG4gIGNvbnN0cnVjdG9yKGZvcm06IEZvcm1DbGFzcykge1xyXG4gICAgdGhpcy5mb3JtID0gZm9ybTtcclxuICB9XHJcbiAgZm9ybTogRm9ybUNsYXNzID0gbnVsbDtcclxuICBzaG93KHJlc3VsdDogYW55ID0gbnVsbCk6IHZvaWQge31cclxufVxyXG4iXX0=
24
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9naW4uY2xhc3MuanMiLCJzb3VyY2VSb290IjoiRDovUHJvamVjdHMvUHNUb29sa2l0L1VJL3Byb2plY3RzL3BzLXRvb2xraXQtdWkvc3JjLyIsInNvdXJjZXMiOlsibGliL2NsYXNzZXMvbG9naW4uY2xhc3MudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFDLFdBQVcsRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBRTNDLE1BQU0sT0FBTyxVQUFVO0lBQ3JCLFlBQVksQ0FBb0IsRUFBRSxJQUFZO1FBTTlDLFVBQUssR0FBcUIsRUFBRSxDQUFDO1FBQzdCLFdBQU0sR0FBRyxDQUFDLENBQUM7UUFDWCxjQUFTLEdBQXFCLElBQUksQ0FBQztRQUduQyxVQUFLLEdBQVcsSUFBSSxDQUFDO1FBVm5CLElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDO1FBQ2pCLElBQUksQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQ2IsQ0FBQztJQVNELFNBQVMsQ0FBQyxDQUFDO1FBQ1QsSUFBSSxDQUFDLENBQUMsS0FBSyxFQUFDO1lBQ1YsV0FBVyxDQUFDLFNBQVMsQ0FBQyxlQUFlLEVBQUUsVUFBVSxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUM7U0FDakU7SUFDSCxDQUFDO0NBQ0Y7QUFDRCxNQUFNLE9BQU8sY0FBYztJQUN6QixZQUFZLElBQWU7UUFHM0IsU0FBSSxHQUFjLElBQUksQ0FBQztRQUZyQixJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQztJQUNuQixDQUFDO0lBRUQsSUFBSSxDQUFDLFNBQWMsSUFBSSxJQUFTLENBQUM7Q0FDbEMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0Zvcm1DbGFzc30gZnJvbSAnLi9mb3JtLmNsYXNzJztcclxuaW1wb3J0IHtIZWxwZXJDbGFzc30gZnJvbSAnLi9oZWxwZXIuY2xhc3MnO1xyXG5cclxuZXhwb3J0IGNsYXNzIExvZ2luQ2xhc3Mge1xyXG4gIGNvbnN0cnVjdG9yKGw6IChrLCB2PykgPT4gc3RyaW5nLCB0eXBlOiBzdHJpbmcpIHtcclxuICAgIHRoaXMudHlwZSA9IHR5cGU7XHJcbiAgICB0aGlzLmwgPSBsO1xyXG4gIH1cclxuICB0eXBlOiBzdHJpbmc7XHJcbiAgbDogKGssIHY/KSA9PiBzdHJpbmc7XHJcbiAgc3RlcHM6IExvZ2luU3RlcENsYXNzW10gPSBbXTtcclxuICBhY3RpdmUgPSAwO1xyXG4gIG9uU3VjY2VzczogKHJlc3VsdCkgPT4gdm9pZCA9IG51bGw7XHJcbiAgc2VuZENvZGVVcmw6IHN0cmluZztcclxuICBsb2dpblVybDogc3RyaW5nO1xyXG4gIHJ1bGVzOiBzdHJpbmcgPSBudWxsO1xyXG4gIHNldENvb2tpZShyKTogdm9pZHtcclxuICAgIGlmIChyLlRva2VuKXtcclxuICAgICAgSGVscGVyQ2xhc3Muc2V0Q29va2llKCdBdXRob3JpemF0aW9uJywgYEJlYXJlciAke3IuVG9rZW59YCwgMzApO1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG5leHBvcnQgY2xhc3MgTG9naW5TdGVwQ2xhc3N7XHJcbiAgY29uc3RydWN0b3IoZm9ybTogRm9ybUNsYXNzKSB7XHJcbiAgICB0aGlzLmZvcm0gPSBmb3JtO1xyXG4gIH1cclxuICBmb3JtOiBGb3JtQ2xhc3MgPSBudWxsO1xyXG4gIHNob3cocmVzdWx0OiBhbnkgPSBudWxsKTogdm9pZCB7fVxyXG59XHJcbiJdfQ==
@@ -16,6 +16,7 @@ export class LoginComponent {
16
16
  const sendCode = new InputClass(this.config.environment, this.login.l, 'SendCode', 'fa-duotone fa-paper-plane', InputType.Submit, 'h-45' + (this.loginTemplate === 'Simple' ? ' primary' : ''));
17
17
  sendCodeForm.subName = 'SendCodeSubTitle';
18
18
  this.mobile = new InputClass(this.config.environment, this.login.l, 'Mobile', 'fa-duotone fa-mobile-alt', InputType.Mobile, 'm-b-20 h-45', '', true, 4, 50);
19
+ const rules = new InputClass(this.config.environment, this.login.l, 'Rules', null, InputType.Label, 'm-t-10', this.login.rules);
19
20
  sendCodeForm.onSuccess = () => {
20
21
  loginForm.subName = this.login.l('LoginSmsSubTitle', this.mobile.data());
21
22
  this.mobile.type = InputType.Hidden;
@@ -29,7 +30,7 @@ export class LoginComponent {
29
30
  sendCodeForm.inputs = [
30
31
  this.mobile,
31
32
  sendCode
32
- ];
33
+ ].concat(this.login.rules != null ? [rules] : []);
33
34
  sendCode.onClick = () => {
34
35
  sendCodeForm.submit();
35
36
  };
@@ -154,4 +155,4 @@ LoginComponent.propDecorators = {
154
155
  login: [{ type: Input }],
155
156
  loginTemplate: [{ type: Input }]
156
157
  };
157
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9naW4uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IkQ6L1Byb2plY3RzL1BzVG9vbGtpdC9VSS9wcm9qZWN0cy9wcy10b29sa2l0LXVpL3NyYy8iLCJzb3VyY2VzIjpbImxpYi9jb21wb25lbnRzL2xvZ2luL2xvZ2luLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsU0FBUyxFQUFFLEtBQUssRUFBUyxNQUFNLGVBQWUsQ0FBQztBQUV2RCxPQUFPLEVBQWEsY0FBYyxFQUFDLE1BQU0sMkJBQTJCLENBQUM7QUFDckUsT0FBTyxFQUFDLFNBQVMsRUFBRSxVQUFVLEVBQUUsUUFBUSxFQUFDLE1BQU0sMEJBQTBCLENBQUM7QUFDekUsT0FBTyxFQUFDLFVBQVUsRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFDLE1BQU0sMEJBQTBCLENBQUM7QUFDdkUsT0FBTyxFQUFDLFlBQVksRUFBQyxNQUFNLDZCQUE2QixDQUFDO0FBQ3pELE9BQU8sRUFBQyxXQUFXLEVBQUMsTUFBTSw0QkFBNEIsQ0FBQztBQUN2RCxPQUFPLEVBQUMsd0JBQXdCLEVBQUMsTUFBTSwrQkFBK0IsQ0FBQztBQU92RSxNQUFNLE9BQU8sY0FBYztJQU96QixZQUFtQixNQUFnQztRQUFoQyxXQUFNLEdBQU4sTUFBTSxDQUEwQjtRQUhuRCxrQkFBYSxHQUFHLE1BQU0sQ0FBQztJQUl2QixDQUFDO0lBQ0QsUUFBUTtRQUNOLElBQUksSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLEtBQUssS0FBSyxFQUFDO1lBQzVCLE1BQU0sWUFBWSxHQUFHLElBQUksU0FBUyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsV0FBVyxFQUFFLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFLFVBQVUsRUFBRSxJQUFJLEVBQUUsSUFBSSxDQUFDLEtBQUssQ0FBQyxXQUFXLENBQUMsQ0FBQztZQUNwSCxNQUFNLFFBQVEsR0FBRyxJQUFJLFVBQVUsQ0FBQyxJQUFJLENBQUMsTUFB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Q0YsS0FBSyxDQUFDLE9BQU8sR0FBRyxHQUFHLEVBQUU7Z0JBQ25CLFNBQVMsQ0FBQyxNQUFNLEVBQUUsQ0FBQztZQUNyQixDQUFDLENBQUM7WUFDRixNQUFNLFNBQVMsR0FBRyxJQUFJLGNBQWMsQ0FBQyxTQUFTLENBQUMsQ0FBQztZQUNoRCxTQUFTLENBQUMsSUFBSSxHQUFHLEdBQUcsRUFBRTtnQkFDcEIsSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDO1lBQ3hCLENBQUMsQ0FBQztZQUNGLElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUMsQ0FBQztZQUNwQyxVQUFVLENBQUMsR0FBRyxFQUFFO2dCQUNkLElBQUksQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLENBQUM7WUFDeEIsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxDQUFDO1NBQ1Q7SUFDSCxDQUFDOzs7WUEvSUYsU0FBUyxTQUFDO2dCQUNQLFFBQVEsRUFBRSxXQUFXO2dCQUNyQixtM0NBQXFDOzthQUV4Qzs7O1lBTk8sd0JBQXdCOzs7b0JBUTdCLEtBQUs7NEJBRUwsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7Q29tcG9uZW50LCBJbnB1dCwgT25Jbml0fSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHtMYW5nQ2xhc3N9IGZyb20gJy4uLy4uL2NsYXNzZXMvbGFuZy5jbGFzcyc7XHJcbmltcG9ydCB7TG9naW5DbGFzcywgTG9naW5TdGVwQ2xhc3N9IGZyb20gJy4uLy4uL2NsYXNzZXMvbG9naW4uY2xhc3MnO1xyXG5pbXBvcnQge0Zvcm1DbGFzcywgSW5wdXRDbGFzcywgUHJvZ3Jlc3N9IGZyb20gJy4uLy4uL2NsYXNzZXMvZm9ybS5jbGFzcyc7XHJcbmltcG9ydCB7SW5wdXRFcnJvciwgSW5wdXRUeXBlLCBNZXRob2R9IGZyb20gJy4uLy4uL2NsYXNzZXMvZW51bS5jbGFzcyc7XHJcbmltcG9ydCB7UmVxdWVzdENsYXNzfSBmcm9tICcuLi8uLi9jbGFzc2VzL3JlcXVlc3QuY2xhc3MnO1xyXG5pbXBvcnQge0hlbHBlckNsYXNzfSBmcm9tICcuLi8uLi9jbGFzc2VzL2hlbHBlci5jbGFzcyc7XHJcbmltcG9ydCB7UHNUb29sa2l0VWlDb25maWdTZXJ2aWNlfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9jb25maWcuc2VydmljZSc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICAgIHNlbGVjdG9yOiAnbGliLWxvZ2luJyxcclxuICAgIHRlbXBsYXRlVXJsOiAnLi9sb2dpbi5jb21wb25lbnQuaHRtbCcsXHJcbiAgICBzdHlsZVVybHM6IFsnLi9sb2dpbi5jb21wb25lbnQuY3NzJ11cclxufSlcclxuZXhwb3J0IGNsYXNzIExvZ2luQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0e1xyXG4gIEBJbnB1dCgpXHJcbiAgbG9naW46IExvZ2luQ2xhc3M7XHJcbiAgQElucHV0KClcclxuICBsb2dpblRlbXBsYXRlID0gJ01haW4nO1xyXG4gIG1vYmlsZTogSW5wdXRDbGFzcztcclxuICB1c2VybmFtZTogSW5wdXRDbGFzcztcclxuICBjb25zdHJ1Y3RvcihwdWJsaWMgY29uZmlnOiBQc1Rvb2xraXRVaUNvbmZpZ1NlcnZpY2Upe1xyXG4gIH1cclxuICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgIGlmICh0aGlzLmxvZ2luLnR5cGUgPT09ICdTbXMnKXtcclxuICAgICAgY29uc3Qgc2VuZENvZGVGb3JtID0gbmV3IEZvcm1DbGFzcyh0aGlzLmNvbmZpZy5lbnZpcm9ubWVudCwgdGhpcy5sb2dpbi5sLCAnU2VuZENvZGUnLCB0cnVlLCB0aGlzLmxvZ2luLnNlbmRDb2RlVXJsKTtcclxuICAgICAgY29uc3Qgc2VuZENvZGUgPSBuZXcgSW5wdXRDbGFzcyh0aGlzLmNvbmZpZy5lbnZpcm9ubWVudCwgdGhpcy5sb2dpbi5sLCAnU2VuZENvZGUnLCAnZmEtZHVvdG9uZSBmYS1wYXBlci1wbGFuZScsIElucHV0VHlwZS5TdWJtaXQsICdoLTQ1JyArICh0aGlzLmxvZ2luVGVtcGxhdGUgPT09ICdTaW1wbGUnID8gJyBwcmltYXJ5JyA6ICcnKSk7XHJcbiAgICAgIHNlbmRDb2RlRm9ybS5zdWJOYW1lID0gJ1NlbmRDb2RlU3ViVGl0bGUnO1xyXG4gICAgICB0aGlzLm1vYmlsZSA9IG5ldyBJbnB1dENsYXNzKHRoaXMuY29uZmlnLmVudmlyb25tZW50LCB0aGlzLmxvZ2luLmwsICdNb2JpbGUnLFxyXG4gICAgICAgICdmYS1kdW90b25lIGZhLW1vYmlsZS1hbHQnLCBJbnB1dFR5cGUuTW9iaWxlLCAnbS1iLTIwIGgtNDUnLCAnJywgdHJ1ZSwgNCwgNTApO1xyXG4gICAgICBzZW5kQ29kZUZvcm0ub25TdWNjZXNzID0gKCkgPT4ge1xyXG4gICAgICAgIGxvZ2luRm9ybS5zdWJOYW1lID0gdGhpcy5sb2dpbi5sKCdMb2dpblNtc1N1YlRpdGxlJywgdGhpcy5tb2JpbGUuZGF0YSgpKTtcclxuICAgICAgICB0aGlzLm1vYmlsZS50eXBlID0gSW5wdXRUeXBlLkhpZGRlbjtcclxuICAgICAgICBjb2RlLnByb2dyZXNzLnN0YXJ0KCk7XHJcbiAgICAgICAgdGhpcy5sb2dpbi5zdGVwc1sxXS5zaG93KCk7XHJcbiAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgICAgICBjb2RlLmZvY3VzKCk7XHJcbiAgICAgICAgfSwgMTAwKTtcclxuICAgICAgfTtcclxuICAgICAgdGhpcy5tb2JpbGUuZGlzcGxheUxhYmVsID0gdGhpcy5sb2dpblRlbXBsYXRlID09PSAnTWFpbic7XHJcbiAgICAgIHNlbmRDb2RlRm9ybS5pbnB1dHMgPSBbXHJcbiAgICAgICAgdGhpcy5tb2JpbGUsXHJcbiAgICAgICAgc2VuZENvZGVcclxuICAgICAgXTtcclxuICAgICAgc2VuZENvZGUub25DbGljayA9ICgpID0+IHtcclxuICAgICAgICBzZW5kQ29kZUZvcm0uc3VibWl0KCk7XHJcbiAgICAgIH07XHJcbiAgICAgIGNvbnN0IGxvZ2luRm9ybSA9IG5ldyBGb3JtQ2xhc3ModGhpcy5jb25maWcuZW52aXJvbm1lbnQsIHRoaXMubG9naW4ubCwgJ0xvZ2luU21zJywgdHJ1ZSwgdGhpcy5sb2dpbi5sb2dpblVybCk7XHJcbiAgICAgIGxvZ2luRm9ybS5zdWJOYW1lID0gdGhpcy5sb2dpbi5sKCdMb2dpblNtc1N1YlRpdGxlJywgJycpO1xyXG4gICAgICBsb2dpbkZvcm0ub25TdWNjZXNzID0gKHJlc3VsdCkgPT4ge1xyXG4gICAgICAgIHRoaXMubG9naW4uc2V0Q29va2llKHJlc3VsdCk7XHJcbiAgICAgICAgaWYgKHRoaXMubG9naW4uc3RlcHMubGVuZ3RoID4gMiAmJiByZXN1bHQuQ3VycmVudFVzZXIgPT09IG51bGwpe1xyXG4gICAgICAgICAgdGhpcy5sb2dpbi5zdGVwc1syXS5zaG93KHJlc3VsdC5TdGVwRGF0YSk7XHJcbiAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHt0aGlzLmxvZ2luLnN0ZXBzWzJdLmZvcm0uaW5wdXRzLmZpbmQoeCA9PiB0cnVlKS5mb2N1cygpOyB9LCAxMDApO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICB0aGlzLmxvZ2luLm9uU3VjY2VzcyhyZXN1bHQpO1xyXG4gICAgICAgIH1cclxuICAgICAgfTtcclxuICAgICAgbG9naW5Gb3JtLm9uRmFpbGVkID0gKG1zZykgPT4ge1xyXG4gICAgICAgIGNvZGUuY2xlYXIoKTtcclxuICAgICAgICB0aGlzLm1vYmlsZS5lcnJvciA9IElucHV0RXJyb3IuTm90RXhpc3Q7XHJcbiAgICAgICAgdGhpcy5tb2JpbGUudHlwZSA9IElucHV0VHlwZS5Nb2JpbGU7XHJcbiAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgICAgICB0aGlzLm1vYmlsZS5mb2N1cygpO1xyXG4gICAgICAgIH0sIDEwMCk7XHJcbiAgICAgICAgdGhpcy5sb2dpbi5zdGVwc1swXS5zaG93KCk7XHJcbiAgICAgIH07XHJcbiAgICAgIGNvbnN0IGNvZGUgPSBuZXcgSW5wdXRDbGFzcyh0aGlzLmNvbmZpZy5lbnZpcm9ubWVudCwgdGhpcy5sb2dpbi5sLCAnQ29kZScsXHJcbiAgICAgICAgJ2ZhLWR1b3RvbmUgZmEtdW5sb2NrLWFsdCcsIElucHV0VHlwZS5OdW1iZXIsICdtLWItMjAgaC00NScsIG51bGwsIHRydWUsIDExMTEsIDk5OTkpO1xyXG4gICAgICBjb25zdCBsYWJlbFJlc2VuZCA9IG5ldyBJbnB1dENsYXNzKHRoaXMuY29uZmlnLmVudmlyb25tZW50LCB0aGlzLmxvZ2luLmwsICdSZVNlbmRDb2RlRGVzJywgbnVsbCwgSW5wdXRUeXBlLkxhYmVsLCAnY29tcCByZXNlbmQtY29kZSBoLTQ1Jyk7XHJcbiAgICAgIGNvZGUucHJvZ3Jlc3MgPSBuZXcgUHJvZ3Jlc3MoMTIwKTtcclxuICAgICAgY29kZS5wcm9ncmVzcy5vblN0YXJ0ID0gKCkgPT4ge1xyXG4gICAgICAgIGxhYmVsUmVzZW5kLnZhbHVlID0gbnVsbDtcclxuICAgICAgfTtcclxuICAgICAgY29kZS5wcm9ncmVzcy5vbkVuZCA9ICgpID0+IHtcclxuICAgICAgICBsYWJlbFJlc2VuZC52YWx1ZSA9ICdSZVNlbmRDb2RlRGVzJztcclxuICAgICAgfTtcclxuICAgICAgY29kZS5wcm9ncmVzcy5vblRpY2sgPSAobSwgcykgPT4ge1xyXG4gICAgICAgIGxhYmVsUmVzZW5kLnZhbHVlID0gdGhpcy5sb2dpbi5sKCdSZVNlbmRDb2RlUmVtYWluJywgW20gPiA5ID8gbSA6IGAwJHttfWAsIHMgPiA5ID8gcyA6IGAwJHtzfWBdKTtcclxuICAgICAgfTtcclxuICAgICAgbGFiZWxSZXNlbmQub25DbGljayA9ICgpID0+IHtcclxuICAgICAgICBpZiAobGFiZWxSZXNlbmQudmFsdWUgIT09ICdSZVNlbmRDb2RlRGVzJyl7XHJcbiAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGxhYmVsUmVzZW5kLnZhbHVlID0gJygnICsgdGhpcy5sb2dpbi5sKCdMb2FkaW5nJywgJ1NlbmQnKSArICcpJztcclxuICAgICAgICBuZXcgUmVxdWVzdENsYXNzKHRoaXMuY29uZmlnLmVudmlyb25tZW50KS5zZW5kKHRoaXMubG9naW4uc2VuZENvZGVVcmwsIE1ldGhvZC5Qb3N0LCBsb2dpbkZvcm0uZGF0YSgpLCBudWxsLCAoKSA9PiB7XHJcbiAgICAgICAgICBjb2RlLnByb2dyZXNzLnN0YXJ0KCk7XHJcbiAgICAgICAgfSwgKGVycm9yKSA9PiB7XHJcbiAgICAgICAgICBIZWxwZXJDbGFzcy5hZGROb3RpZmljYXRpb24odGhpcy5sb2dpbi5sKGVycm9yKSk7XHJcbiAgICAgICAgICBsYWJlbFJlc2VuZC52YWx1ZSA9ICdSZVNlbmRDb2RlRGVzJztcclxuICAgICAgICB9KTtcclxuICAgICAgfTtcclxuICAgICAgY29kZS5kaXNwbGF5TGFiZWwgPSB0aGlzLmxvZ2luVGVtcGxhdGUgPT09ICdNYWluJztcclxuICAgICAgY29uc3QgbG9naW4gPSBuZXcgSW5wdXRDbGFzcyh0aGlzLmNvbmZpZy5lbnZpcm9ubWVudCwgdGhpcy5sb2dpbi5sLCAnTG9naW5TbXMnLCAnZmEtZHVvdG9uZSBmYS1zaWduLWluLWFsdCcsIElucHV0VHlwZS5TdWJtaXQsICdoLTQ1JyArICh0aGlzLmxvZ2luVGVtcGxhdGUgPT09ICdTaW1wbGUnID8gJyBwcmltYXJ5JyA6ICcnKSk7XHJcbiAgICAgIGxvZ2luRm9ybS5pbnB1dHMgPSBbXHJcbiAgICAgICAgdGhpcy5tb2JpbGUsXHJcbiAgICAgICAgY29kZSxcclxuICAgICAgICBsYWJlbFJlc2VuZCxcclxuICAgICAgICBsb2dpblxyXG4gICAgICBdO1xyXG4gICAgICBsb2dpbi5vbkNsaWNrID0gKCkgPT4ge1xyXG4gICAgICAgIGxvZ2luRm9ybS5zdWJtaXQoKTtcclxuICAgICAgfTtcclxuICAgICAgY29uc3QgbG9naW5TdGVwID0gbmV3IExvZ2luU3RlcENsYXNzKGxvZ2luRm9ybSk7XHJcbiAgICAgIGxvZ2luU3RlcC5zaG93ID0gKCkgPT4ge1xyXG4gICAgICAgIHRoaXMubG9naW4uYWN0aXZlID0gMTtcclxuICAgICAgfTtcclxuICAgICAgY29uc3Qgc2VuZENvZGVTdGVwID0gbmV3IExvZ2luU3RlcENsYXNzKHNlbmRDb2RlRm9ybSk7XHJcbiAgICAgIHNlbmRDb2RlU3RlcC5zaG93ID0gKCkgPT4ge1xyXG4gICAgICAgIHRoaXMubG9naW4uYWN0aXZlID0gMDtcclxuICAgICAgfTtcclxuICAgICAgdGhpcy5sb2dpbi5zdGVwcy51bnNoaWZ0KGxvZ2luU3RlcCk7XHJcbiAgICAgIHRoaXMubG9naW4uc3RlcHMudW5zaGlmdChzZW5kQ29kZVN0ZXApO1xyXG4gICAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgICB0aGlzLm1vYmlsZS5mb2N1cygpO1xyXG4gICAgICB9LCAxMDApO1xyXG4gICAgfSBlbHNlIGlmICh0aGlzLmxvZ2luLnR5cGUgPT09ICdQYXNzd29yZCcpe1xyXG4gICAgICBjb25zdCBsb2dpbkZvcm0gPSBuZXcgRm9ybUNsYXNzKHRoaXMuY29uZmlnLmVudmlyb25tZW50LCB0aGlzLmxvZ2luLmwsICdMb2dpblBhc3N3b3JkJywgdHJ1ZSwgdGhpcy5sb2dpbi5sb2dpblVybCk7XHJcbiAgICAgIGxvZ2luRm9ybS5zdWJOYW1lID0gJ0xvZ2luUGFzc3dvcmRTdWJUaXRsZSc7XHJcbiAgICAgIGNvbnN0IGxvZ2luID0gbmV3IElucHV0Q2xhc3ModGhpcy5jb25maWcuZW52aXJvbm1lbnQsIHRoaXMubG9naW4ubCwgJ0xvZ2luUGFzc3dvcmQnLCAnZmEtZHVvdG9uZSBmYS1zaWduLWluLWFsdCcsIElucHV0VHlwZS5TdWJtaXQsICdoLTQ1JyArICh0aGlzLmxvZ2luVGVtcGxhdGUgPT09ICdTaW1wbGUnID8gJyBwcmltYXJ5JyA6ICcnKSk7XHJcbiAgICAgIGxvZ2luRm9ybS5vblN1Y2Nlc3MgPSAocmVzdWx0KSA9PiB7XHJcbiAgICAgICAgdGhpcy5sb2dpbi5zZXRDb29raWUocmVzdWx0KTtcclxuICAgICAgICBpZiAodGhpcy5sb2dpbi5zdGVwcy5sZW5ndGggPiAxICYmIHJlc3VsdC5DdXJyZW50VXNlciA9PT0gbnVsbCl7XHJcbiAgICAgICAgICB0aGlzLmxvZ2luLnN0ZXBzWzFdLnNob3cocmVzdWx0LlN0ZXBEYXRhKTtcclxuICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge3RoaXMubG9naW4uc3RlcHNbMV0uZm9ybS5pbnB1dHMuZmluZCh4ID0+IHRydWUpLmZvY3VzKCk7IH0sIDEwMCk7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIHRoaXMubG9naW4ub25TdWNjZXNzKHJlc3VsdCk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9O1xyXG4gICAgICB0aGlzLnVzZXJuYW1lID0gbmV3IElucHV0Q2xhc3ModGhpcy5jb25maWcuZW52aXJvbm1lbnQsIHRoaXMubG9naW4ubCwgJ1VzZXJuYW1lJyxcclxuICAgICAgICAnZmEtZHVvdG9uZSBmYS11c2VyJywgSW5wdXRUeXBlLlRleHQsICdtLWItMTAgaC00NScsICcnLCB0cnVlLCA0LCA1MCk7XHJcblxyXG4gICAgICBjb25zdCBwYXNzd29yZCA9IG5ldyBJbnB1dENsYXNzKHRoaXMuY29uZmlnLmVudmlyb25tZW50LCB0aGlzLmxvZ2luLmwsICdQYXNzd29yZCcsICdmYS1kdW90b25lIGZhLWtleScsIElucHV0VHlwZS5QYXNzd29yZCwgJ20tYi0yMCBoLTQ1JywgJycsIHRydWUsIDUsIDUwKTtcclxuICAgICAgdGhpcy51c2VybmFtZS5kaXNwbGF5TGFiZWwgPSB0aGlzLmxvZ2luVGVtcGxhdGUgPT09ICdNYWluJztcclxuICAgICAgcGFzc3dvcmQuZGlzcGxheUxhYmVsID0gdGhpcy5sb2dpblRlbXBsYXRlID09PSAnTWFpbic7XHJcbiAgICAgIGxvZ2luRm9ybS5pbnB1dHMgPSBbXHJcbiAgICAgICAgdGhpcy51c2VybmFtZSxcclxuICAgICAgICBwYXNzd29yZCxcclxuICAgICAgICBsb2dpblxyXG4gICAgICBdO1xyXG4gICAgICBsb2dpbi5vbkNsaWNrID0gKCkgPT4ge1xyXG4gICAgICAgIGxvZ2luRm9ybS5zdWJtaXQoKTtcclxuICAgICAgfTtcclxuICAgICAgY29uc3QgbG9naW5TdGVwID0gbmV3IExvZ2luU3RlcENsYXNzKGxvZ2luRm9ybSk7XHJcbiAgICAgIGxvZ2luU3RlcC5zaG93ID0gKCkgPT4ge1xyXG4gICAgICAgIHRoaXMubG9naW4uYWN0aXZlID0gMDtcclxuICAgICAgfTtcclxuICAgICAgdGhpcy5sb2dpbi5zdGVwcy51bnNoaWZ0KGxvZ2luU3RlcCk7XHJcbiAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICAgIHRoaXMudXNlcm5hbWUuZm9jdXMoKTtcclxuICAgICAgfSwgMTAwKTtcclxuICAgIH1cclxuICB9XHJcbn1cclxuIl19
158
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9naW4uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IkQ6L1Byb2plY3RzL1BzVG9vbGtpdC9VSS9wcm9qZWN0cy9wcy10b29sa2l0LXVpL3NyYy8iLCJzb3VyY2VzIjpbImxpYi9jb21wb25lbnRzL2xvZ2luL2xvZ2luLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsU0FBUyxFQUFFLEtBQUssRUFBUyxNQUFNLGVBQWUsQ0FBQztBQUV2RCxPQUFPLEVBQWEsY0FBYyxFQUFDLE1BQU0sMkJBQTJCLENBQUM7QUFDckUsT0FBTyxFQUFDLFNBQVMsRUFBRSxVQUFVLEVBQUUsUUFBUSxFQUFDLE1BQU0sMEJBQTBCLENBQUM7QUFDekUsT0FBTyxFQUFDLFVBQVUsRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFDLE1BQU0sMEJBQTBCLENBQUM7QUFDdkUsT0FBTyxFQUFDLFlBQVksRUFBQyxNQUFNLDZCQUE2QixDQUFDO0FBQ3pELE9BQU8sRUFBQyxXQUFXLEVBQUMsTUFBTSw0QkFBNEIsQ0FBQztBQUN2RCxPQUFPLEVBQUMsd0JBQXdCLEVBQUMsTUFBTSwrQkFBK0IsQ0FBQztBQU92RSxNQUFNLE9BQU8sY0FBYztJQU96QixZQUFtQixNQUFnQztRQUFoQyxXQUFNLEdBQU4sTUFBTSxDQUEwQjtRQUhuRCxrQkFBYSxHQUFHLE1BQU0sQ0FBQztJQUl2QixDQUFDO0lBQ0QsUUFBUTtRQUNOLElBQUksSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLEtBQUssS0FBSyxFQUFDO1lBQzVCLE1BQU0sWUFBWSxHQUFHLElBQUksU0FBUyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsV0FBVyxFQUFFLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFLFVBQVUsRUFBRSxJQUFJLEVBQUUsSUFBSSxDQUFDLEtBQUssQ0FBQyxXQUFXLENBQUMsQ0FBQztZQUNwSCxNQUFNLFFBQVEsR0FBRyxJQUFJLFVBQVUsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLFdBQVcsRUFBRSxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRSxVQUFVLEVBQUUsMkJBQTJCLEVBQUUsU0FBUyxDQUFDLE1BQU0sRUFBRSxNQUFNLEdBQUcsQ0FBQyxJQUFJLENBQUMsYUFBYSxLQUFLLFFBQVEsQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO1lBQ2hNLFlBQVksQ0FBQyxPQUFPLEdBQUcsa0JBQWtCLENBQUM7WUFDMUMsSUFBSSxDQUFDLE1BQU0sR0FBRyxJQUFJLFVBQVUsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLFdBQVcsRUFBRSxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRSxRQUFRLEVBQzFFLDBCQUEwQixFQUFFLFNBQVMsQ0FBQyxNQUFNLEVBQUUsYUFBYSxFQUFFLEVBQUUsRUFBRSxJQUFJLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1lBQ2hGLE1BQU0sS0FBSyxHQUFHLElBQUksVUFBVSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsV0FBVyxFQUFFLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFLE9BQU8sRUFBRSxJQUFJLEVBQUUsU0FBUyxDQUFDLEtBQUssRUFBRSxRQUFRLEVBQUUsSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUNoSSxZQUFZLENBQUMsU0FBUyxHQUFHLEdBQUcsRUFBRTtnQkFDNUIsU0FBUyxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxrQkFBa0IsRUFBRSxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksRUFBRSxDQUFDLENBQUM7Z0JBQ3pFLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxHQUFHLFNBQVMsQ0FBQyxNQUFNLENBQUM7Z0JBQ3BDLElBQUksQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLENBQUM7Z0JBQ3RCLElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksRUFBRSxDQUFDO2dCQUMzQixVQUFVLENBQUMsR0FBRyxFQUFFO29CQUNkLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQztnQkFDZixDQUFDLEVBQUUsR0FBRyxDQUFDLENBQUM7WUFDVixDQUFDLENBQUM7WUFDRixJQUFJLENBQUMsTUFBTSxDQUFDLFlBQVksR0FBRyxJQUFJLENBQUMsYUFBYSxLQUFLLE1BQU0sQ0FBQztZQUN6RCxZQUFZLENBQUMsTUFBTSxHQUFHO2dCQUNwQixJQUFJLENBQUMsTUFBTTtnQkFDWCxRQUFRO2FBQ1QsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLElBQUksSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQztZQUNsRCxRQUFRLENBQUMsT0FBTyxHQUFHLEdBQUcsRUFBRTtnQkFDdEIsWUFBWSxDQUFDLE1BQU0sRUFBRSxDQUFDO1lBQ3hCLENBQUMsQ0FBQztZQUNGLE1BQU0sU0FBUyxHQUFHLElBQUksU0FBUyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsV0FBVyxFQUFFLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFLFVBQVUsRUFBRSxJQUFJLEVBQUUsSUFBSSxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsQ0FBQztZQUM5RyxTQUFTLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLGtCQUFrQixFQUFFLEVBQUUsQ0FBQyxDQUFDO1lBQ3pELFNBQVMsQ0FBQyxTQUFTLEdBQUcsQ0FBQyxNQUFNLEVBQUUsRUFBRTtnQkFDL0IsSUFBSSxDQUFDLEtBQUssQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLENBQUM7Z0JBQzdCLElBQUksSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsTUFBTSxHQUFHLENBQUMsSUFBSSxNQUFNLENBQUMsV0FBVyxLQUFLLElBQUksRUFBQztvQkFDN0QsSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQztvQkFDMUMsVUFBVSxDQUFDLEdBQUcsRUFBRSxHQUFFLElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsR0FBRyxDQUFDLENBQUM7aUJBQ3BGO3FCQUFNO29CQUNMLElBQUksQ0FBQyxLQUFLLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxDQUFDO2lCQUM5QjtZQUNILENBQUMsQ0FBQztZQUNGLFNBQVMsQ0FBQyxRQUFRLEdBQUcsQ0FBQyxHQUFHLEVBQUUsRUFBRTtnQkFDM0IsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDO2dCQUNiLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxHQUFHLFVBQVUsQ0FBQyxRQUFRLENBQUM7Z0JBQ3hDLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxHQUFHLFNBQVMsQ0FBQyxNQUFNLENBQUM7Z0JBQ3BDLFVBQVUsQ0FBQyxHQUFHLEVBQUU7b0JBQ2QsSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLEVBQUUsQ0FBQztnQkFDdEIsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxDQUFDO2dCQUNSLElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksRUFBRSxDQUFDO1lBQzdCLENBQUMsQ0FBQztZQUNGLE1BQU0sSUFBSSxHQUFHLElBQUksVUFBVSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsV0FBVyxFQUFFLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFLE1BQU0sRUFDdkUsMEJBQTBCLEVBQUUsU0FBUyxDQUFDLE1BQU0sRUFBRSxhQUFhLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxDQUFDLENBQUM7WUFDdkYsTUFBTSxXQUFXLEdBQUcsSUFBSSxVQUFVLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxXQUFXLEVBQUUsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUUsZUFBZSxFQUFFLElBQUksRUFBRSxTQUFTLENBQUMsS0FBSyxFQUFFLHVCQUF1QixDQUFDLENBQUM7WUFDM0ksSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLFFBQVEsQ0FBQyxHQUFHLENBQUMsQ0FBQztZQUNsQyxJQUFJLENBQUMsUUFBUSxDQUFDLE9BQU8sR0FBRyxHQUFHLEVBQUU7Z0JBQzNCLFdBQVcsQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDO1lBQzNCLENBQUMsQ0FBQztZQUNGLElBQUksQ0FBQyxRQUFRLENBQUMsS0FBSyxHQUFHLEdBQUcsRUFBRTtnQkFDekIsV0FBVyxDQUFDLEtBQUssR0FBRyxlQUFlLENBQUM7WUFDdEMsQ0FBQyxDQUFDO1lBQ0YsSUFBSSxDQUFDLFFBQVEsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUU7Z0JBQzlCLFdBQVcsQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsa0JBQWtCLEVBQUUsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxFQUFFLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztZQUNuRyxDQUFDLENBQUM7WUFDRixXQUFXLENBQUMsT0FBTyxHQUFHLEdBQUcsRUFBRTtnQkFDekIsSUFBSSxXQUFXLENBQUMsS0FBSyxLQUFLLGVBQWUsRUFBQztvQkFDeEMsT0FBTztpQkFDUjtnQkFDRCxXQUFXLENBQUMsS0FBSyxHQUFHLEdBQUcsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxTQUFTLEVBQUUsTUFBTSxDQUFDLEdBQUcsR0FBRyxDQUFDO2dCQUNoRSxJQUFJLFlBQVksQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLFdBQVcsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLFdBQVcsRUFBRSxNQUFNLENBQUMsSUFBSSxFQUFFLFNBQVMsQ0FBQyxJQUFJLEVBQUUsRUFBRSxJQUFJLEVBQUUsR0FBRyxFQUFFO29CQUMvRyxJQUFJLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxDQUFDO2dCQUN4QixDQUFDLEVBQUUsQ0FBQyxLQUFLLEVBQUUsRUFBRTtvQkFDWCxXQUFXLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7b0JBQ2pELFdBQVcsQ0FBQyxLQUFLLEdBQUcsZUFBZSxDQUFDO2dCQUN0QyxDQUFDLENBQUMsQ0FBQztZQUNMLENBQUMsQ0FBQztZQUNGLElBQUksQ0FBQyxZQUFZLEdBQUcsSUFBSSxDQUFDLGFBQWEsS0FBSyxNQUFNLENBQUM7WUFDbEQsTUFBTSxLQUFLLEdBQUcsSUFBSSxVQUFVLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxXQUFXLEVBQUUsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUUsVUFBVSxFQUFFLDJCQUEyQixFQUFFLFNBQVMsQ0FBQyxNQUFNLEVBQUUsTUFBTSxHQUFHLENBQUMsSUFBSSxDQUFDLGFBQWEsS0FBSyxRQUFRLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztZQUM3TCxTQUFTLENBQUMsTUFBTSxHQUFHO2dCQUNqQixJQUFJLENBQUMsTUFBTTtnQkFDWCxJQUFJO2dCQUNKLFdBQVc7Z0JBQ1gsS0FBSzthQUNOLENBQUM7WUFDRixLQUFLLENBQUMsT0FBTyxHQUFHLEdBQUcsRUFBRTtnQkFDbkIsU0FBUyxDQUFDLE1BQU0sRUFBRSxDQUFDO1lBQ3JCLENBQUMsQ0FBQztZQUNGLE1BQU0sU0FBUyxHQUFHLElBQUksY0FBYyxDQUFDLFNBQVMsQ0FBQyxDQUFDO1lBQ2hELFNBQVMsQ0FBQyxJQUFJLEdBQUcsR0FBRyxFQUFFO2dCQUNwQixJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUM7WUFDeEIsQ0FBQyxDQUFDO1lBQ0YsTUFBTSxZQUFZLEdBQUcsSUFBSSxjQUFjLENBQUMsWUFBWSxDQUFDLENBQUM7WUFDdEQsWUFBWSxDQUFDLElBQUksR0FBRyxHQUFHLEVBQUU7Z0JBQ3ZCLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQztZQUN4QixDQUFDLENBQUM7WUFDRixJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLENBQUM7WUFDcEMsSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLFlBQVksQ0FBQyxDQUFDO1lBQ3ZDLFVBQVUsQ0FBQyxHQUFHLEVBQUU7Z0JBQ2QsSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLEVBQUUsQ0FBQztZQUN0QixDQUFDLEVBQUUsR0FBRyxDQUFDLENBQUM7U0FDVDthQUFNLElBQUksSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLEtBQUssVUFBVSxFQUFDO1lBQ3hDLE1BQU0sU0FBUyxHQUFHLElBQUksU0FBUyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsV0FBVyxFQUFFLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFLGVBQWUsRUFBRSxJQUFJLEVBQUUsSUFBSSxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsQ0FBQztZQUNuSCxTQUFTLENBQUMsT0FBTyxHQUFHLHVCQUF1QixDQUFDO1lBQzVDLE1BQU0sS0FBSyxHQUFHLElBQUksVUFBVSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsV0FBVyxFQUFFLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFLGVBQWUsRUFBRSwyQkFBMkIsRUFBRSxTQUFTLENBQUMsTUFBTSxFQUFFLE1BQU0sR0FBRyxDQUFDLElBQUksQ0FBQyxhQUFhLEtBQUssUUFBUSxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7WUFDbE0sU0FBUyxDQUFDLFNBQVMsR0FBRyxDQUFDLE1BQU0sRUFBRSxFQUFFO2dCQUMvQixJQUFJLENBQUMsS0FBSyxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsQ0FBQztnQkFDN0IsSUFBSSxJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxNQUFNLEdBQUcsQ0FBQyxJQUFJLE1BQU0sQ0FBQyxXQUFXLEtBQUssSUFBSSxFQUFDO29CQUM3RCxJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFDO29CQUMxQyxVQUFVLENBQUMsR0FBRyxFQUFFLEdBQUUsSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxHQUFHLENBQUMsQ0FBQztpQkFDcEY7cUJBQU07b0JBQ0wsSUFBSSxDQUFDLEtBQUssQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLENBQUM7aUJBQzlCO1lBQ0gsQ0FBQyxDQUFDO1lBQ0YsSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLFVBQVUsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLFdBQVcsRUFBRSxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRSxVQUFVLEVBQzlFLG9CQUFvQixFQUFFLFNBQVMsQ0FBQyxJQUFJLEVBQUUsYUFBYSxFQUFFLEVBQUUsRUFBRSxJQUFJLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1lBRXhFLE1BQU0sUUFBUSxHQUFHLElBQUksVUFBVSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsV0FBVyxFQUFFLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFLFVBQVUsRUFBRSxtQkFBbUIsRUFBRSxTQUFTLENBQUMsUUFBUSxFQUFFLGFBQWEsRUFBRSxFQUFFLEVBQUUsSUFBSSxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQztZQUM1SixJQUFJLENBQUMsUUFBUSxDQUFDLFlBQVksR0FBRyxJQUFJLENBQUMsYUFBYSxLQUFLLE1BQU0sQ0FBQztZQUMzRCxRQUFRLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQyxhQUFhLEtBQUssTUFBTSxDQUFDO1lBQ3RELFNBQVMsQ0FBQyxNQUFNLEdBQUc7Z0JBQ2pCLElBQUksQ0FBQyxRQUFRO2dCQUNiLFFBQVE7Z0JBQ1IsS0FBSzthQUNOLENBQUM7WUFDRixLQUFLLENBQUMsT0FBTyxHQUFHLEdBQUcsRUFBRTtnQkFDbkIsU0FBUyxDQUFDLE1BQU0sRUFBRSxDQUFDO1lBQ3JCLENBQUMsQ0FBQztZQUNGLE1BQU0sU0FBUyxHQUFHLElBQUksY0FBYyxDQUFDLFNBQVMsQ0FBQyxDQUFDO1lBQ2hELFNBQVMsQ0FBQyxJQUFJLEdBQUcsR0FBRyxFQUFFO2dCQUNwQixJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUM7WUFDeEIsQ0FBQyxDQUFDO1lBQ0YsSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxDQUFDO1lBQ3BDLFVBQVUsQ0FBQyxHQUFHLEVBQUU7Z0JBQ2QsSUFBSSxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsQ0FBQztZQUN4QixDQUFDLEVBQUUsR0FBRyxDQUFDLENBQUM7U0FDVDtJQUNILENBQUM7OztZQWhKRixTQUFTLFNBQUM7Z0JBQ1AsUUFBUSxFQUFFLFdBQVc7Z0JBQ3JCLG0zQ0FBcUM7O2FBRXhDOzs7WUFOTyx3QkFBd0I7OztvQkFRN0IsS0FBSzs0QkFFTCxLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtDb21wb25lbnQsIElucHV0LCBPbkluaXR9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQge0xhbmdDbGFzc30gZnJvbSAnLi4vLi4vY2xhc3Nlcy9sYW5nLmNsYXNzJztcclxuaW1wb3J0IHtMb2dpbkNsYXNzLCBMb2dpblN0ZXBDbGFzc30gZnJvbSAnLi4vLi4vY2xhc3Nlcy9sb2dpbi5jbGFzcyc7XHJcbmltcG9ydCB7Rm9ybUNsYXNzLCBJbnB1dENsYXNzLCBQcm9ncmVzc30gZnJvbSAnLi4vLi4vY2xhc3Nlcy9mb3JtLmNsYXNzJztcclxuaW1wb3J0IHtJbnB1dEVycm9yLCBJbnB1dFR5cGUsIE1ldGhvZH0gZnJvbSAnLi4vLi4vY2xhc3Nlcy9lbnVtLmNsYXNzJztcclxuaW1wb3J0IHtSZXF1ZXN0Q2xhc3N9IGZyb20gJy4uLy4uL2NsYXNzZXMvcmVxdWVzdC5jbGFzcyc7XHJcbmltcG9ydCB7SGVscGVyQ2xhc3N9IGZyb20gJy4uLy4uL2NsYXNzZXMvaGVscGVyLmNsYXNzJztcclxuaW1wb3J0IHtQc1Rvb2xraXRVaUNvbmZpZ1NlcnZpY2V9IGZyb20gJy4uLy4uL3NlcnZpY2VzL2NvbmZpZy5zZXJ2aWNlJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gICAgc2VsZWN0b3I6ICdsaWItbG9naW4nLFxyXG4gICAgdGVtcGxhdGVVcmw6ICcuL2xvZ2luLmNvbXBvbmVudC5odG1sJyxcclxuICAgIHN0eWxlVXJsczogWycuL2xvZ2luLmNvbXBvbmVudC5jc3MnXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgTG9naW5Db21wb25lbnQgaW1wbGVtZW50cyBPbkluaXR7XHJcbiAgQElucHV0KClcclxuICBsb2dpbjogTG9naW5DbGFzcztcclxuICBASW5wdXQoKVxyXG4gIGxvZ2luVGVtcGxhdGUgPSAnTWFpbic7XHJcbiAgbW9iaWxlOiBJbnB1dENsYXNzO1xyXG4gIHVzZXJuYW1lOiBJbnB1dENsYXNzO1xyXG4gIGNvbnN0cnVjdG9yKHB1YmxpYyBjb25maWc6IFBzVG9vbGtpdFVpQ29uZmlnU2VydmljZSl7XHJcbiAgfVxyXG4gIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgaWYgKHRoaXMubG9naW4udHlwZSA9PT0gJ1Ntcycpe1xyXG4gICAgICBjb25zdCBzZW5kQ29kZUZvcm0gPSBuZXcgRm9ybUNsYXNzKHRoaXMuY29uZmlnLmVudmlyb25tZW50LCB0aGlzLmxvZ2luLmwsICdTZW5kQ29kZScsIHRydWUsIHRoaXMubG9naW4uc2VuZENvZGVVcmwpO1xyXG4gICAgICBjb25zdCBzZW5kQ29kZSA9IG5ldyBJbnB1dENsYXNzKHRoaXMuY29uZmlnLmVudmlyb25tZW50LCB0aGlzLmxvZ2luLmwsICdTZW5kQ29kZScsICdmYS1kdW90b25lIGZhLXBhcGVyLXBsYW5lJywgSW5wdXRUeXBlLlN1Ym1pdCwgJ2gtNDUnICsgKHRoaXMubG9naW5UZW1wbGF0ZSA9PT0gJ1NpbXBsZScgPyAnIHByaW1hcnknIDogJycpKTtcclxuICAgICAgc2VuZENvZGVGb3JtLnN1Yk5hbWUgPSAnU2VuZENvZGVTdWJUaXRsZSc7XHJcbiAgICAgIHRoaXMubW9iaWxlID0gbmV3IElucHV0Q2xhc3ModGhpcy5jb25maWcuZW52aXJvbm1lbnQsIHRoaXMubG9naW4ubCwgJ01vYmlsZScsXHJcbiAgICAgICAgJ2ZhLWR1b3RvbmUgZmEtbW9iaWxlLWFsdCcsIElucHV0VHlwZS5Nb2JpbGUsICdtLWItMjAgaC00NScsICcnLCB0cnVlLCA0LCA1MCk7XHJcbiAgICAgIGNvbnN0IHJ1bGVzID0gbmV3IElucHV0Q2xhc3ModGhpcy5jb25maWcuZW52aXJvbm1lbnQsIHRoaXMubG9naW4ubCwgJ1J1bGVzJywgbnVsbCwgSW5wdXRUeXBlLkxhYmVsLCAnbS10LTEwJywgdGhpcy5sb2dpbi5ydWxlcyk7XHJcbiAgICAgIHNlbmRDb2RlRm9ybS5vblN1Y2Nlc3MgPSAoKSA9PiB7XHJcbiAgICAgICAgbG9naW5Gb3JtLnN1Yk5hbWUgPSB0aGlzLmxvZ2luLmwoJ0xvZ2luU21zU3ViVGl0bGUnLCB0aGlzLm1vYmlsZS5kYXRhKCkpO1xyXG4gICAgICAgIHRoaXMubW9iaWxlLnR5cGUgPSBJbnB1dFR5cGUuSGlkZGVuO1xyXG4gICAgICAgIGNvZGUucHJvZ3Jlc3Muc3RhcnQoKTtcclxuICAgICAgICB0aGlzLmxvZ2luLnN0ZXBzWzFdLnNob3coKTtcclxuICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgICAgIGNvZGUuZm9jdXMoKTtcclxuICAgICAgICB9LCAxMDApO1xyXG4gICAgICB9O1xyXG4gICAgICB0aGlzLm1vYmlsZS5kaXNwbGF5TGFiZWwgPSB0aGlzLmxvZ2luVGVtcGxhdGUgPT09ICdNYWluJztcclxuICAgICAgc2VuZENvZGVGb3JtLmlucHV0cyA9IFtcclxuICAgICAgICB0aGlzLm1vYmlsZSxcclxuICAgICAgICBzZW5kQ29kZVxyXG4gICAgICBdLmNvbmNhdCh0aGlzLmxvZ2luLnJ1bGVzICE9IG51bGwgPyBbcnVsZXNdIDogW10pO1xyXG4gICAgICBzZW5kQ29kZS5vbkNsaWNrID0gKCkgPT4ge1xyXG4gICAgICAgIHNlbmRDb2RlRm9ybS5zdWJtaXQoKTtcclxuICAgICAgfTtcclxuICAgICAgY29uc3QgbG9naW5Gb3JtID0gbmV3IEZvcm1DbGFzcyh0aGlzLmNvbmZpZy5lbnZpcm9ubWVudCwgdGhpcy5sb2dpbi5sLCAnTG9naW5TbXMnLCB0cnVlLCB0aGlzLmxvZ2luLmxvZ2luVXJsKTtcclxuICAgICAgbG9naW5Gb3JtLnN1Yk5hbWUgPSB0aGlzLmxvZ2luLmwoJ0xvZ2luU21zU3ViVGl0bGUnLCAnJyk7XHJcbiAgICAgIGxvZ2luRm9ybS5vblN1Y2Nlc3MgPSAocmVzdWx0KSA9PiB7XHJcbiAgICAgICAgdGhpcy5sb2dpbi5zZXRDb29raWUocmVzdWx0KTtcclxuICAgICAgICBpZiAodGhpcy5sb2dpbi5zdGVwcy5sZW5ndGggPiAyICYmIHJlc3VsdC5DdXJyZW50VXNlciA9PT0gbnVsbCl7XHJcbiAgICAgICAgICB0aGlzLmxvZ2luLnN0ZXBzWzJdLnNob3cocmVzdWx0LlN0ZXBEYXRhKTtcclxuICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge3RoaXMubG9naW4uc3RlcHNbMl0uZm9ybS5pbnB1dHMuZmluZCh4ID0+IHRydWUpLmZvY3VzKCk7IH0sIDEwMCk7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIHRoaXMubG9naW4ub25TdWNjZXNzKHJlc3VsdCk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9O1xyXG4gICAgICBsb2dpbkZvcm0ub25GYWlsZWQgPSAobXNnKSA9PiB7XHJcbiAgICAgICAgY29kZS5jbGVhcigpO1xyXG4gICAgICAgIHRoaXMubW9iaWxlLmVycm9yID0gSW5wdXRFcnJvci5Ob3RFeGlzdDtcclxuICAgICAgICB0aGlzLm1vYmlsZS50eXBlID0gSW5wdXRUeXBlLk1vYmlsZTtcclxuICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgICAgIHRoaXMubW9iaWxlLmZvY3VzKCk7XHJcbiAgICAgICAgfSwgMTAwKTtcclxuICAgICAgICB0aGlzLmxvZ2luLnN0ZXBzWzBdLnNob3coKTtcclxuICAgICAgfTtcclxuICAgICAgY29uc3QgY29kZSA9IG5ldyBJbnB1dENsYXNzKHRoaXMuY29uZmlnLmVudmlyb25tZW50LCB0aGlzLmxvZ2luLmwsICdDb2RlJyxcclxuICAgICAgICAnZmEtZHVvdG9uZSBmYS11bmxvY2stYWx0JywgSW5wdXRUeXBlLk51bWJlciwgJ20tYi0yMCBoLTQ1JywgbnVsbCwgdHJ1ZSwgMTExMSwgOTk5OSk7XHJcbiAgICAgIGNvbnN0IGxhYmVsUmVzZW5kID0gbmV3IElucHV0Q2xhc3ModGhpcy5jb25maWcuZW52aXJvbm1lbnQsIHRoaXMubG9naW4ubCwgJ1JlU2VuZENvZGVEZXMnLCBudWxsLCBJbnB1dFR5cGUuTGFiZWwsICdjb21wIHJlc2VuZC1jb2RlIGgtNDUnKTtcclxuICAgICAgY29kZS5wcm9ncmVzcyA9IG5ldyBQcm9ncmVzcygxMjApO1xyXG4gICAgICBjb2RlLnByb2dyZXNzLm9uU3RhcnQgPSAoKSA9PiB7XHJcbiAgICAgICAgbGFiZWxSZXNlbmQudmFsdWUgPSBudWxsO1xyXG4gICAgICB9O1xyXG4gICAgICBjb2RlLnByb2dyZXNzLm9uRW5kID0gKCkgPT4ge1xyXG4gICAgICAgIGxhYmVsUmVzZW5kLnZhbHVlID0gJ1JlU2VuZENvZGVEZXMnO1xyXG4gICAgICB9O1xyXG4gICAgICBjb2RlLnByb2dyZXNzLm9uVGljayA9IChtLCBzKSA9PiB7XHJcbiAgICAgICAgbGFiZWxSZXNlbmQudmFsdWUgPSB0aGlzLmxvZ2luLmwoJ1JlU2VuZENvZGVSZW1haW4nLCBbbSA+IDkgPyBtIDogYDAke219YCwgcyA+IDkgPyBzIDogYDAke3N9YF0pO1xyXG4gICAgICB9O1xyXG4gICAgICBsYWJlbFJlc2VuZC5vbkNsaWNrID0gKCkgPT4ge1xyXG4gICAgICAgIGlmIChsYWJlbFJlc2VuZC52YWx1ZSAhPT0gJ1JlU2VuZENvZGVEZXMnKXtcclxuICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcbiAgICAgICAgbGFiZWxSZXNlbmQudmFsdWUgPSAnKCcgKyB0aGlzLmxvZ2luLmwoJ0xvYWRpbmcnLCAnU2VuZCcpICsgJyknO1xyXG4gICAgICAgIG5ldyBSZXF1ZXN0Q2xhc3ModGhpcy5jb25maWcuZW52aXJvbm1lbnQpLnNlbmQodGhpcy5sb2dpbi5zZW5kQ29kZVVybCwgTWV0aG9kLlBvc3QsIGxvZ2luRm9ybS5kYXRhKCksIG51bGwsICgpID0+IHtcclxuICAgICAgICAgIGNvZGUucHJvZ3Jlc3Muc3RhcnQoKTtcclxuICAgICAgICB9LCAoZXJyb3IpID0+IHtcclxuICAgICAgICAgIEhlbHBlckNsYXNzLmFkZE5vdGlmaWNhdGlvbih0aGlzLmxvZ2luLmwoZXJyb3IpKTtcclxuICAgICAgICAgIGxhYmVsUmVzZW5kLnZhbHVlID0gJ1JlU2VuZENvZGVEZXMnO1xyXG4gICAgICAgIH0pO1xyXG4gICAgICB9O1xyXG4gICAgICBjb2RlLmRpc3BsYXlMYWJlbCA9IHRoaXMubG9naW5UZW1wbGF0ZSA9PT0gJ01haW4nO1xyXG4gICAgICBjb25zdCBsb2dpbiA9IG5ldyBJbnB1dENsYXNzKHRoaXMuY29uZmlnLmVudmlyb25tZW50LCB0aGlzLmxvZ2luLmwsICdMb2dpblNtcycsICdmYS1kdW90b25lIGZhLXNpZ24taW4tYWx0JywgSW5wdXRUeXBlLlN1Ym1pdCwgJ2gtNDUnICsgKHRoaXMubG9naW5UZW1wbGF0ZSA9PT0gJ1NpbXBsZScgPyAnIHByaW1hcnknIDogJycpKTtcclxuICAgICAgbG9naW5Gb3JtLmlucHV0cyA9IFtcclxuICAgICAgICB0aGlzLm1vYmlsZSxcclxuICAgICAgICBjb2RlLFxyXG4gICAgICAgIGxhYmVsUmVzZW5kLFxyXG4gICAgICAgIGxvZ2luXHJcbiAgICAgIF07XHJcbiAgICAgIGxvZ2luLm9uQ2xpY2sgPSAoKSA9PiB7XHJcbiAgICAgICAgbG9naW5Gb3JtLnN1Ym1pdCgpO1xyXG4gICAgICB9O1xyXG4gICAgICBjb25zdCBsb2dpblN0ZXAgPSBuZXcgTG9naW5TdGVwQ2xhc3MobG9naW5Gb3JtKTtcclxuICAgICAgbG9naW5TdGVwLnNob3cgPSAoKSA9PiB7XHJcbiAgICAgICAgdGhpcy5sb2dpbi5hY3RpdmUgPSAxO1xyXG4gICAgICB9O1xyXG4gICAgICBjb25zdCBzZW5kQ29kZVN0ZXAgPSBuZXcgTG9naW5TdGVwQ2xhc3Moc2VuZENvZGVGb3JtKTtcclxuICAgICAgc2VuZENvZGVTdGVwLnNob3cgPSAoKSA9PiB7XHJcbiAgICAgICAgdGhpcy5sb2dpbi5hY3RpdmUgPSAwO1xyXG4gICAgICB9O1xyXG4gICAgICB0aGlzLmxvZ2luLnN0ZXBzLnVuc2hpZnQobG9naW5TdGVwKTtcclxuICAgICAgdGhpcy5sb2dpbi5zdGVwcy51bnNoaWZ0KHNlbmRDb2RlU3RlcCk7XHJcbiAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICAgIHRoaXMubW9iaWxlLmZvY3VzKCk7XHJcbiAgICAgIH0sIDEwMCk7XHJcbiAgICB9IGVsc2UgaWYgKHRoaXMubG9naW4udHlwZSA9PT0gJ1Bhc3N3b3JkJyl7XHJcbiAgICAgIGNvbnN0IGxvZ2luRm9ybSA9IG5ldyBGb3JtQ2xhc3ModGhpcy5jb25maWcuZW52aXJvbm1lbnQsIHRoaXMubG9naW4ubCwgJ0xvZ2luUGFzc3dvcmQnLCB0cnVlLCB0aGlzLmxvZ2luLmxvZ2luVXJsKTtcclxuICAgICAgbG9naW5Gb3JtLnN1Yk5hbWUgPSAnTG9naW5QYXNzd29yZFN1YlRpdGxlJztcclxuICAgICAgY29uc3QgbG9naW4gPSBuZXcgSW5wdXRDbGFzcyh0aGlzLmNvbmZpZy5lbnZpcm9ubWVudCwgdGhpcy5sb2dpbi5sLCAnTG9naW5QYXNzd29yZCcsICdmYS1kdW90b25lIGZhLXNpZ24taW4tYWx0JywgSW5wdXRUeXBlLlN1Ym1pdCwgJ2gtNDUnICsgKHRoaXMubG9naW5UZW1wbGF0ZSA9PT0gJ1NpbXBsZScgPyAnIHByaW1hcnknIDogJycpKTtcclxuICAgICAgbG9naW5Gb3JtLm9uU3VjY2VzcyA9IChyZXN1bHQpID0+IHtcclxuICAgICAgICB0aGlzLmxvZ2luLnNldENvb2tpZShyZXN1bHQpO1xyXG4gICAgICAgIGlmICh0aGlzLmxvZ2luLnN0ZXBzLmxlbmd0aCA+IDEgJiYgcmVzdWx0LkN1cnJlbnRVc2VyID09PSBudWxsKXtcclxuICAgICAgICAgIHRoaXMubG9naW4uc3RlcHNbMV0uc2hvdyhyZXN1bHQuU3RlcERhdGEpO1xyXG4gICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7dGhpcy5sb2dpbi5zdGVwc1sxXS5mb3JtLmlucHV0cy5maW5kKHggPT4gdHJ1ZSkuZm9jdXMoKTsgfSwgMTAwKTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgdGhpcy5sb2dpbi5vblN1Y2Nlc3MocmVzdWx0KTtcclxuICAgICAgICB9XHJcbiAgICAgIH07XHJcbiAgICAgIHRoaXMudXNlcm5hbWUgPSBuZXcgSW5wdXRDbGFzcyh0aGlzLmNvbmZpZy5lbnZpcm9ubWVudCwgdGhpcy5sb2dpbi5sLCAnVXNlcm5hbWUnLFxyXG4gICAgICAgICdmYS1kdW90b25lIGZhLXVzZXInLCBJbnB1dFR5cGUuVGV4dCwgJ20tYi0xMCBoLTQ1JywgJycsIHRydWUsIDQsIDUwKTtcclxuXHJcbiAgICAgIGNvbnN0IHBhc3N3b3JkID0gbmV3IElucHV0Q2xhc3ModGhpcy5jb25maWcuZW52aXJvbm1lbnQsIHRoaXMubG9naW4ubCwgJ1Bhc3N3b3JkJywgJ2ZhLWR1b3RvbmUgZmEta2V5JywgSW5wdXRUeXBlLlBhc3N3b3JkLCAnbS1iLTIwIGgtNDUnLCAnJywgdHJ1ZSwgNSwgNTApO1xyXG4gICAgICB0aGlzLnVzZXJuYW1lLmRpc3BsYXlMYWJlbCA9IHRoaXMubG9naW5UZW1wbGF0ZSA9PT0gJ01haW4nO1xyXG4gICAgICBwYXNzd29yZC5kaXNwbGF5TGFiZWwgPSB0aGlzLmxvZ2luVGVtcGxhdGUgPT09ICdNYWluJztcclxuICAgICAgbG9naW5Gb3JtLmlucHV0cyA9IFtcclxuICAgICAgICB0aGlzLnVzZXJuYW1lLFxyXG4gICAgICAgIHBhc3N3b3JkLFxyXG4gICAgICAgIGxvZ2luXHJcbiAgICAgIF07XHJcbiAgICAgIGxvZ2luLm9uQ2xpY2sgPSAoKSA9PiB7XHJcbiAgICAgICAgbG9naW5Gb3JtLnN1Ym1pdCgpO1xyXG4gICAgICB9O1xyXG4gICAgICBjb25zdCBsb2dpblN0ZXAgPSBuZXcgTG9naW5TdGVwQ2xhc3MobG9naW5Gb3JtKTtcclxuICAgICAgbG9naW5TdGVwLnNob3cgPSAoKSA9PiB7XHJcbiAgICAgICAgdGhpcy5sb2dpbi5hY3RpdmUgPSAwO1xyXG4gICAgICB9O1xyXG4gICAgICB0aGlzLmxvZ2luLnN0ZXBzLnVuc2hpZnQobG9naW5TdGVwKTtcclxuICAgICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgICAgdGhpcy51c2VybmFtZS5mb2N1cygpO1xyXG4gICAgICB9LCAxMDApO1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG4iXX0=
@@ -712,13 +712,13 @@ class HelperClass {
712
712
  }
713
713
  return '<div class="ltr">' + moment(d).locale('fa').format('jYYYY/jMM/jDD HH:mm') + '</div>';
714
714
  }
715
- static getDate(dt) {
715
+ static getDate(dt, format = 'jYYYY/jMM/jDD') {
716
716
  try {
717
717
  if (dt === null) {
718
718
  return '';
719
719
  }
720
720
  const d = parseInt(dt.substring(6, dt.length - 2), 10);
721
- return moment(d).locale('fa').format('jYYYY/jMM/jDD');
721
+ return moment(d).locale('fa').format(format);
722
722
  }
723
723
  catch (e) {
724
724
  return dt;
@@ -5721,6 +5721,7 @@ class LoginClass {
5721
5721
  this.steps = [];
5722
5722
  this.active = 0;
5723
5723
  this.onSuccess = null;
5724
+ this.rules = null;
5724
5725
  this.type = type;
5725
5726
  this.l = l;
5726
5727
  }
@@ -5749,6 +5750,7 @@ class LoginComponent {
5749
5750
  const sendCode = new InputClass(this.config.environment, this.login.l, 'SendCode', 'fa-duotone fa-paper-plane', InputType.Submit, 'h-45' + (this.loginTemplate === 'Simple' ? ' primary' : ''));
5750
5751
  sendCodeForm.subName = 'SendCodeSubTitle';
5751
5752
  this.mobile = new InputClass(this.config.environment, this.login.l, 'Mobile', 'fa-duotone fa-mobile-alt', InputType.Mobile, 'm-b-20 h-45', '', true, 4, 50);
5753
+ const rules = new InputClass(this.config.environment, this.login.l, 'Rules', null, InputType.Label, 'm-t-10', this.login.rules);
5752
5754
  sendCodeForm.onSuccess = () => {
5753
5755
  loginForm.subName = this.login.l('LoginSmsSubTitle', this.mobile.data());
5754
5756
  this.mobile.type = InputType.Hidden;
@@ -5762,7 +5764,7 @@ class LoginComponent {
5762
5764
  sendCodeForm.inputs = [
5763
5765
  this.mobile,
5764
5766
  sendCode
5765
- ];
5767
+ ].concat(this.login.rules != null ? [rules] : []);
5766
5768
  sendCode.onClick = () => {
5767
5769
  sendCodeForm.submit();
5768
5770
  };