single-scripture-rcl 3.4.22-beta.9 → 3.4.23-beta
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.
|
@@ -785,18 +785,18 @@ export default function ScriptureCard(_ref2) {
|
|
|
785
785
|
// push change to server
|
|
786
786
|
error = success ? null : 'saving changed scripture failed';
|
|
787
787
|
if (success) {
|
|
788
|
-
_context.next =
|
|
788
|
+
_context.next = 42;
|
|
789
789
|
break;
|
|
790
790
|
}
|
|
791
791
|
// if save failed, attempt a retry
|
|
792
|
-
logChanged('saveChangesToCloud() - saving changed scripture failed, sent', saveFullBibleContent
|
|
793
|
-
console.error("saveChangesToCloud() - saving changed scripture failed, retrying - context lines are ".concat(contextLines));
|
|
794
|
-
_context.next =
|
|
792
|
+
// logChanged('saveChangesToCloud() - saving changed scripture failed, sent', saveFullBibleContent?.initial, saveFullBibleContent?.new, saveContent, sha)
|
|
793
|
+
console.error("saveChangesToCloud() - saving changed scripture failed, retrying - context lines are ".concat(contextLines, ", diff:\n"), saveContent);
|
|
794
|
+
_context.next = 11;
|
|
795
795
|
return delay(500);
|
|
796
|
-
case
|
|
797
|
-
_context.next =
|
|
796
|
+
case 11:
|
|
797
|
+
_context.next = 13;
|
|
798
798
|
return fetchBibleBook(server, httpConfig, scriptureConfig === null || scriptureConfig === void 0 ? void 0 : scriptureConfig.resource, scriptureConfig === null || scriptureConfig === void 0 ? void 0 : scriptureConfig.reference);
|
|
799
|
-
case
|
|
799
|
+
case 13:
|
|
800
800
|
results = _context.sent;
|
|
801
801
|
error = results === null || results === void 0 ? void 0 : results.error;
|
|
802
802
|
_saveContent = saveContent;
|
|
@@ -805,27 +805,27 @@ export default function ScriptureCard(_ref2) {
|
|
|
805
805
|
editedBibleUsfm = saveFullBibleContent === null || saveFullBibleContent === void 0 ? void 0 : saveFullBibleContent["new"];
|
|
806
806
|
upToDate = savedBibleUsfm === editedBibleUsfm; // check if new bible content differs from latest on repo
|
|
807
807
|
if (error) {
|
|
808
|
-
_context.next =
|
|
808
|
+
_context.next = 40;
|
|
809
809
|
break;
|
|
810
810
|
}
|
|
811
811
|
if (!upToDate) {
|
|
812
|
-
_context.next =
|
|
812
|
+
_context.next = 26;
|
|
813
813
|
break;
|
|
814
814
|
}
|
|
815
815
|
// if the data we are trying to save matches what is now on the server there is nothing to do
|
|
816
816
|
console.log('saveChangesToCloud() - data was correctly uploaded, so nothing more to do');
|
|
817
817
|
success = true;
|
|
818
|
-
_context.next =
|
|
818
|
+
_context.next = 40;
|
|
819
819
|
break;
|
|
820
|
-
case
|
|
820
|
+
case 26:
|
|
821
821
|
newContextLines = contextLines + 1;
|
|
822
822
|
if (!saveDiffPatch) {
|
|
823
|
-
_context.next =
|
|
823
|
+
_context.next = 34;
|
|
824
824
|
break;
|
|
825
825
|
}
|
|
826
|
-
_context.next =
|
|
826
|
+
_context.next = 30;
|
|
827
827
|
return delay(100);
|
|
828
|
-
case
|
|
828
|
+
case 30:
|
|
829
829
|
// allow UI to update before running computationally expensive function
|
|
830
830
|
// regenerate the patch against the latest content and add more lines of context
|
|
831
831
|
// TRICKY - we have noticed that DCS will fail the patch sometimes, but if we increase the context line count it will succeed, so we are increasing the context line count
|
|
@@ -833,10 +833,10 @@ export default function ScriptureCard(_ref2) {
|
|
|
833
833
|
diffPatch = getPatch(saveFullBibleContent === null || saveFullBibleContent === void 0 ? void 0 : saveFullBibleContent.filename, savedBibleUsfm, editedBibleUsfm, false, newContextLines);
|
|
834
834
|
_saveContent = diffPatch;
|
|
835
835
|
fileSha = results === null || results === void 0 ? void 0 : results.sha;
|
|
836
|
-
case
|
|
837
|
-
_context.next =
|
|
836
|
+
case 34:
|
|
837
|
+
_context.next = 36;
|
|
838
838
|
return uploadFunction(userEditBranchName, _saveContent, fileSha);
|
|
839
|
-
case
|
|
839
|
+
case 36:
|
|
840
840
|
success = _context.sent;
|
|
841
841
|
// push change to server
|
|
842
842
|
if (!success) {
|
|
@@ -852,18 +852,18 @@ export default function ScriptureCard(_ref2) {
|
|
|
852
852
|
setState({
|
|
853
853
|
contextLines: newContextLines
|
|
854
854
|
});
|
|
855
|
-
case
|
|
856
|
-
_context.next =
|
|
855
|
+
case 40:
|
|
856
|
+
_context.next = 43;
|
|
857
857
|
break;
|
|
858
|
-
case
|
|
858
|
+
case 42:
|
|
859
859
|
console.log("saveChangesToCloud() - success with diff", saveContent);
|
|
860
|
-
case
|
|
860
|
+
case 43:
|
|
861
861
|
if (!(!error && success)) {
|
|
862
|
-
_context.next =
|
|
862
|
+
_context.next = 45;
|
|
863
863
|
break;
|
|
864
864
|
}
|
|
865
865
|
return _context.abrupt("return", _saveSuccesful());
|
|
866
|
-
case
|
|
866
|
+
case 45:
|
|
867
867
|
console.error("saveChangesToCloud() - ".concat(error || 'unknown save error'));
|
|
868
868
|
setCardsSaving(function (prevCardsSaving) {
|
|
869
869
|
return prevCardsSaving.filter(function (cardId) {
|
|
@@ -874,7 +874,7 @@ export default function ScriptureCard(_ref2) {
|
|
|
874
874
|
startSave: false
|
|
875
875
|
});
|
|
876
876
|
return _context.abrupt("return", false);
|
|
877
|
-
case
|
|
877
|
+
case 49:
|
|
878
878
|
case "end":
|
|
879
879
|
return _context.stop();
|
|
880
880
|
}
|
|
@@ -1582,4 +1582,4 @@ ScriptureCard.propTypes = {
|
|
|
1582
1582
|
/** use method for using local storage specific for user */
|
|
1583
1583
|
useUserLocalStorage: PropTypes.func.isRequired
|
|
1584
1584
|
};
|
|
1585
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVnZW5lcmF0b3JSdW50aW1lIiwiZSIsInQiLCJyIiwiT2JqZWN0IiwicHJvdG90eXBlIiwibiIsImhhc093blByb3BlcnR5IiwibyIsImRlZmluZVByb3BlcnR5IiwidmFsdWUiLCJpIiwiU3ltYm9sIiwiYSIsIml0ZXJhdG9yIiwiYyIsImFzeW5jSXRlcmF0b3IiLCJ1IiwidG9TdHJpbmdUYWciLCJkZWZpbmUiLCJlbnVtZXJhYmxlIiwiY29uZmlndXJhYmxlIiwid3JpdGFibGUiLCJ3cmFwIiwiR2VuZXJhdG9yIiwiY3JlYXRlIiwiQ29udGV4dCIsIm1ha2VJbnZva2VNZXRob2QiLCJ0cnlDYXRjaCIsInR5cGUiLCJhcmciLCJjYWxsIiwiaCIsImwiLCJmIiwicyIsInkiLCJHZW5lcmF0b3JGdW5jdGlvbiIsIkdlbmVyYXRvckZ1bmN0aW9uUHJvdG90eXBlIiwicCIsImQiLCJnZXRQcm90b3R5cGVPZiIsInYiLCJ2YWx1ZXMiLCJnIiwiZGVmaW5lSXRlcmF0b3JNZXRob2RzIiwiZm9yRWFjaCIsIl9pbnZva2UiLCJBc3luY0l0ZXJhdG9yIiwiaW52b2tlIiwiX3R5cGVvZiIsInJlc29sdmUiLCJfX2F3YWl0IiwidGhlbiIsImNhbGxJbnZva2VXaXRoTWV0aG9kQW5kQXJnIiwiRXJyb3IiLCJkb25lIiwibWV0aG9kIiwiZGVsZWdhdGUiLCJtYXliZUludm9rZURlbGVnYXRlIiwic2VudCIsIl9zZW50IiwiZGlzcGF0Y2hFeGNlcHRpb24iLCJhYnJ1cHQiLCJUeXBlRXJyb3IiLCJyZXN1bHROYW1lIiwibmV4dCIsIm5leHRMb2MiLCJwdXNoVHJ5RW50cnkiLCJ0cnlMb2MiLCJjYXRjaExvYyIsImZpbmFsbHlMb2MiLCJhZnRlckxvYyIsInRyeUVudHJpZXMiLCJwdXNoIiwicmVzZXRUcnlFbnRyeSIsImNvbXBsZXRpb24iLCJyZXNldCIsImlzTmFOIiwibGVuZ3RoIiwiZGlzcGxheU5hbWUiLCJpc0dlbmVyYXRvckZ1bmN0aW9uIiwiY29uc3RydWN0b3IiLCJuYW1lIiwibWFyayIsInNldFByb3RvdHlwZU9mIiwiX19wcm90b19fIiwiYXdyYXAiLCJhc3luYyIsIlByb21pc2UiLCJrZXlzIiwicmV2ZXJzZSIsInBvcCIsInByZXYiLCJjaGFyQXQiLCJzbGljZSIsInN0b3AiLCJydmFsIiwiaGFuZGxlIiwiY29tcGxldGUiLCJmaW5pc2giLCJfY2F0Y2giLCJkZWxlZ2F0ZVlpZWxkIiwiYXN5bmNHZW5lcmF0b3JTdGVwIiwiZ2VuIiwicmVqZWN0IiwiX25leHQiLCJfdGhyb3ciLCJrZXkiLCJpbmZvIiwiZXJyb3IiLCJfYXN5bmNUb0dlbmVyYXRvciIsImZuIiwic2VsZiIsImFyZ3MiLCJhcmd1bWVudHMiLCJhcHBseSIsImVyciIsInVuZGVmaW5lZCIsIl9jcmVhdGVGb3JPZkl0ZXJhdG9ySGVscGVyIiwiYWxsb3dBcnJheUxpa2UiLCJpdCIsIkFycmF5IiwiaXNBcnJheSIsIl91bnN1cHBvcnRlZEl0ZXJhYmxlVG9BcnJheSIsIkYiLCJfZSIsIm5vcm1hbENvbXBsZXRpb24iLCJkaWRFcnIiLCJzdGVwIiwiX2UyIiwiX2V4dGVuZHMiLCJhc3NpZ24iLCJiaW5kIiwidGFyZ2V0Iiwic291cmNlIiwiX3RvQ29uc3VtYWJsZUFycmF5IiwiYXJyIiwiX2FycmF5V2l0aG91dEhvbGVzIiwiX2l0ZXJhYmxlVG9BcnJheSIsIl9ub25JdGVyYWJsZVNwcmVhZCIsIml0ZXIiLCJmcm9tIiwiX2FycmF5TGlrZVRvQXJyYXkiLCJvd25LZXlzIiwiZ2V0T3duUHJvcGVydHlTeW1ib2xzIiwiZmlsdGVyIiwiZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yIiwiX29iamVjdFNwcmVhZCIsIl9kZWZpbmVQcm9wZXJ0eSIsImdldE93blByb3BlcnR5RGVzY3JpcHRvcnMiLCJkZWZpbmVQcm9wZXJ0aWVzIiwib2JqIiwiX3RvUHJvcGVydHlLZXkiLCJfdG9QcmltaXRpdmUiLCJTdHJpbmciLCJpbnB1dCIsImhpbnQiLCJwcmltIiwidG9QcmltaXRpdmUiLCJyZXMiLCJOdW1iZXIiLCJfc2xpY2VkVG9BcnJheSIsIl9hcnJheVdpdGhIb2xlcyIsIl9pdGVyYWJsZVRvQXJyYXlMaW1pdCIsIl9ub25JdGVyYWJsZVJlc3QiLCJtaW5MZW4iLCJ0b1N0cmluZyIsInRlc3QiLCJsZW4iLCJhcnIyIiwiUmVhY3QiLCJQcm9wVHlwZXMiLCJjb3JlIiwiU2VsZWN0aW9uc0NvbnRleHRQcm92aWRlciIsInVzZm1qcyIsInVzZUVkaXQiLCJJY29uQnV0dG9uIiwiUnhMaW5rMiIsIlJ4TGlua0JyZWFrMiIsIkNhcmQiLCJFcnJvckRpYWxvZyIsIkVSUk9SX1NUQVRFIiwiTUFOSUZFU1RfTk9UX0xPQURFRF9FUlJPUiIsIlVwZGF0ZUJyYW5jaEJ1dHRvbiIsInVzZUJyYW5jaE1lcmdlciIsInVzZUNhcmRTdGF0ZSIsInVzZUNvbnRlbnRVcGRhdGVQcm9wcyIsInVzZU1hc3Rlck1lcmdlUHJvcHMiLCJ1c2VVc2VyQnJhbmNoIiwiZ2V0UXVvdGVNYXRjaGVzSW5Cb29rUmVmIiwiQWxpZ25tZW50SGVscGVycyIsIlVzZm1GaWxlQ29udmVyc2lvbkhlbHBlcnMiLCJpc0VxdWFsIiwiZ2V0VmVyc2VzIiwiU2NyaXB0dXJlUGFuZSIsIlNjcmlwdHVyZVNlbGVjdG9yIiwidXNlU2NyaXB0dXJlU2V0dGluZ3MiLCJjbGVhbnVwVmVyc2VPYmplY3RzIiwiZmV0Y2hCaWJsZUJvb2siLCJmaXhPY2N1cnJlbmNlIiwiZ2V0Qm9va05hbWVGcm9tVXNmbUZpbGVOYW1lIiwiZ2V0UmVzb3VyY2VMaW5rIiwiZ2V0UmVzb3VyY2VNZXNzYWdlIiwiZ2V0U2NyaXB0dXJlVmVyc2lvblNldHRpbmdzIiwiaXNPcmlnaW5hbEJpYmxlIiwiZGVsYXkiLCJhcmVNYXBzVGhlU2FtZSIsIlRpdGxlIiwiTlRfT1JJR19MQU5HIiwiT1JJR0lOQUxfU09VUkNFIiwiT1RfT1JJR19MQU5HIiwiVmVyc2VTZWxlY3RvclBvcHVwIiwiZ2V0UGF0Y2giLCJTY3JpcHR1cmVSZWZlcmVuY2VUeXBlIiwiVmVyc2VPYmplY3RzVHlwZSIsIktFWV9GT05UX1NJWkVfQkFTRSIsImxhYmVsIiwic3R5bGUiLCJtYXJnaW5Ub3AiLCJ3aWR0aCIsImNvbXBhcmVPYmplY3QiLCJ2ZXJzZVJlZiIsIl92ZXJzZURhdGEkdmVyc2VPYmplYyIsIl9yZWYiLCJjaGFwdGVyIiwidmVyc2UiLCJ2ZXJzZURhdGEiLCJ2ZXJzZU9iamVjdHMiLCJKU09OIiwic3RyaW5naWZ5IiwiYXJlVmVyc2VzU2FtZSIsInZlcnNlc0ZvclJlZjEiLCJ2ZXJzZXNGb3JSZWYyIiwiYXJlU2FtZSIsInZlcnNlMSIsInZlcnNlMiIsImdldEN1cnJlbnRCb29rIiwic2NyaXB0dXJlQ29uZmlnIiwiYm9va0lkIiwiX3NjcmlwdHVyZUNvbmZpZyRyZXNvIiwiX3NjcmlwdHVyZUNvbmZpZyRyZXNvMiIsIl9ib29rTmFtZSR0b0xvd2VyQ2FzZSIsImxhdGVzdEJpYmxlIiwicmVzb3VyY2VTdGF0ZSIsInJlc291cmNlIiwicHJvamVjdElkIiwiZmlsZW5hbWUiLCJpc0Jvb2tWYWxpZCIsImJvb2tOYW1lIiwidG9Mb3dlckNhc2UiLCJpbmNsdWRlcyIsImNvbnNvbGUiLCJ3YXJuIiwiY29uY2F0IiwiYmlibGVVc2ZtIiwiU2NyaXB0dXJlQ2FyZCIsIl9yZWYyIiwiX3NjcmlwdHVyZUNvbmZpZyRyZXNvMyIsIl9zY3JpcHR1cmVDb25maWckcmVzbzQiLCJfc2NyaXB0dXJlQ29uZmlnJHJlc281IiwiX3NjcmlwdHVyZUNvbmZpZyRyZXNvNiIsIl9zY3JpcHR1cmVDb25maWckcmVzbzciLCJfYXV0aGVudGljYXRpb24kdG9rZW4iLCJfc2NyaXB0dXJlQ29uZmlnJHJlc285IiwiX3NjcmlwdHVyZUNvbmZpZyRyZXNvMTAiLCJfaHR0cENvbmZpZyIsIl9odHRwQ29uZmlnMiIsIl9hdXRoZW50aWNhdGlvbiR1c2VyIiwiX3ZlcnNlc0ZvclJlZjMiLCJfdmVyc2VzRm9yUmVmNCIsImFwcFJlZiIsImF1dGhlbnRpY2F0aW9uIiwiYm9va0luZGV4IiwiY2FyZE51bSIsImNsYXNzZXMiLCJkaXNhYmxlV29yZFBvcG92ZXIiLCJnZXRMYW5ndWFnZSIsImdldExleGljb25EYXRhIiwiZ3JlZWtSZXBvVXJsIiwiaGVicmV3UmVwb1VybCIsImh0dHBDb25maWciLCJpZCIsImlzTlQiLCJsb2dnZWRJblVzZXIiLCJvbk1pbmltaXplIiwib25SZXNvdXJjZUVycm9yIiwib3JpZ2luYWxTY3JpcHR1cmVCb29rT2JqZWN0cyIsInJlZmVyZW5jZV8iLCJyZWZlcmVuY2UiLCJfcmVmMiRyZXNvdXJjZSIsIm93bmVyIiwibGFuZ3VhZ2VJZCIsInJlc291cmNlSWQiLCJvcmlnaW5hbExhbmd1YWdlT3duZXIiLCJyZXNvdXJjZUxpbmsiLCJzZWxlY3RlZFF1b3RlIiwic2VydmVyIiwic2V0Q2FyZHNMb2FkaW5nTWVyZ2UiLCJzZXRDYXJkc0xvYWRpbmdVcGRhdGUiLCJzZXRDYXJkc1NhdmluZyIsInNldFNhdmVkQ2hhbmdlcyIsInNldFdvcmRBbGlnbmVyU3RhdHVzIiwidHJhbnNsYXRlIiwidGl0bGUiLCJ1c2VVc2VyTG9jYWxTdG9yYWdlIiwidXBkYXRlTWVyZ2VTdGF0ZSIsIl9SZWFjdCR1c2VTdGF0ZSIsInVzZVN0YXRlIiwiY2hlY2tGb3JFZGl0QnJhbmNoIiwiY29udGV4dExpbmVzIiwiY3VycmVudFJlZmVyZW5jZSIsImVkaXRCcmFuY2hSZWFkeSIsImVkaXRWZXJzZSIsImhhdmVVbnNhdmVkQ2hhbmdlcyIsImxhc3RTZWxlY3RlZFF1b3RlIiwicmVhZHlGb3JGZXRjaCIsInJlZiIsInNhdmVDbGlja2VkIiwic2F2ZUNvbnRlbnQiLCJzYXZlRGlmZlBhdGNoIiwic2F2ZUZ1bGxCaWJsZUNvbnRlbnQiLCJzZWxlY3Rpb25zIiwiTWFwIiwic2VsZWN0aW9uc1JlZnMiLCJzaG93QWxpZ25tZW50UG9wdXAiLCJzdGFydFNhdmUiLCJ1cmxFcnJvciIsInVzaW5nVXNlckJyYW5jaCIsInVuc2F2ZWRDaGFuZ2VzTGlzdCIsInZlcnNlc0FsaWdubWVudFN0YXR1cyIsInZlcnNlc0ZvclJlZiIsInZlcnNlT2JqZWN0c01hcCIsInZlcnNlU2VsZWN0ZWRGb3JBbGlnbm1lbnQiLCJfUmVhY3QkdXNlU3RhdGUyIiwic3RhdGUiLCJzZXRTdGF0ZV8iLCJfdXNlVXNlckxvY2FsU3RvcmFnZSIsIl91c2VVc2VyTG9jYWxTdG9yYWdlMiIsImZvbnRTaXplIiwic2V0Rm9udFNpemUiLCJpc05UXyIsInNldFN0YXRlIiwibmV3U3RhdGUiLCJwcmV2U3RhdGUiLCJjYWNoZSIsIm1heEFnZSIsIm5vQ2FjaGUiLCJfdXNlU2NyaXB0dXJlU2V0dGluZ3MiLCJzZXRVcmxFcnJvciIsIndob2xlQm9vayIsImlzTmV3VGVzdGFtZW50Iiwic2V0U2NyaXB0dXJlIiwic2NyaXB0dXJlU2V0dGluZ3MiLCJzY3JpcHR1cmVWZXJzaW9uSGlzdCIsImZldGNoZWRSZXNvdXJjZSIsInJlcG8iLCJ1c2luZ09yaWdpbmFsQmlibGUiLCJjYXJkUmVzb3VyY2VJZCIsInJlZl8iLCJjYW5Vc2VFZGl0QnJhbmNoIiwiX3VzZVVzZXJCcmFuY2giLCJjYXJkSWQiLCJfdXNlVXNlckJyYW5jaCRzdGF0ZSIsImJyYW5jaERldGVybWluZWQiLCJ1c2VyRWRpdEJyYW5jaE5hbWUiLCJfdXNpbmdVc2VyQnJhbmNoIiwid29ya2luZ1Jlc291cmNlQnJhbmNoIiwiX3VzZVVzZXJCcmFuY2gkYWN0aW9uIiwiYWN0aW9ucyIsInN0YXJ0RWRpdEJyYW5jaCIsInN0YXJ0RWRpdCIsImZpbmlzaEVkaXQiLCJfdXNlQnJhbmNoTWVyZ2VyIiwidXNlckJyYW5jaCIsInRva2VuaWQiLCJ0b2tlbiIsInNoYTEiLCJfdXNlQnJhbmNoTWVyZ2VyJHN0YXQiLCJtZXJnZVRvTWFzdGVyIiwibWVyZ2VTdGF0dXMiLCJtZXJnZUZyb21NYXN0ZXIiLCJ1cGRhdGVTdGF0dXMiLCJ1cGRhdGVCdXR0b25Qcm9wcyIsImlzU2F2aW5nIiwib25VcGRhdGUiLCJyZWxvYWRSZXNvdXJjZSIsImNhbGxVcGRhdGVVc2VyQnJhbmNoIiwiaXNFcnJvckRpYWxvZ09wZW4iLCJvbkNsb3NlRXJyb3JEaWFsb2ciLCJpc1VwZGF0ZUxvYWRpbmciLCJpc0xvYWRpbmciLCJkaWFsb2dNZXNzYWdlIiwiZGlhbG9nVGl0bGUiLCJkaWFsb2dMaW5rIiwiZGlhbG9nTGlua1Rvb2x0aXAiLCJvbk1lcmdlIiwibG9nIiwiX3VzZU1hc3Rlck1lcmdlUHJvcHMiLCJpc01lcmdlTG9hZGluZyIsImNhbGxNZXJnZVVzZXJCcmFuY2giLCJ1c2VFZmZlY3QiLCJwcmV2Q2FyZHNMb2FkaW5nIiwid29ya2luZ1JlZiIsInNjcmlwdHVyZVRpdGxlIiwiX3NjcmlwdHVyZUNvbmZpZyRyZXNvOCIsInJlc291cmNlU3RhdHVzIiwibWVzc2FnZSIsImlzQWNjZXNzRXJyb3IiLCJ2ZXJzaW9uIiwidXBkYXRlVGl0bGUiLCJnZXRTY3JpcHR1cmVTZWxlY3RvciIsInNjcmlwdHVyZVNlbGVjdGlvbkNvbmZpZyIsImNyZWF0ZUVsZW1lbnQiLCJlcnJvck1lc3NhZ2UiLCJzZXRFZGl0VmVyc2UiLCJlZGl0aW5nIiwiZGlzYWJsZUNoYW5nZUJ1dHRvbnMiLCJvbk1lbnVDbG9zZSIsImxhbmd1YWdlSWRfIiwibGFuZ3VhZ2UiLCJkaXJlY3Rpb24iLCJfcmVmZXJlbmNlIiwiaXNIZWJyZXciLCJmb250RmFjdG9yIiwic2NhbGVkRm9udFNpemUiLCJpdGVtcyIsIl91c2VDYXJkU3RhdGUiLCJfdXNlQ2FyZFN0YXRlJHN0YXRlIiwiaGVhZGVycyIsImZpbHRlcnMiLCJpdGVtSW5kZXgiLCJtYXJrZG93blZpZXciLCJfdXNlQ2FyZFN0YXRlJGFjdGlvbnMiLCJzZXRGaWx0ZXJzIiwic2V0SXRlbUluZGV4Iiwic2V0TWFya2Rvd25WaWV3IiwicmVmU3R5bGUiLCJ1c2VNZW1vIiwiZm9udEZhbWlseSIsIk1hdGgiLCJyb3VuZCIsImNvbnRlbnRTdHlsZSIsImxpbmVIZWlnaHQiLCJzY3JpcHR1cmVMYWJlbCIsImRpc2FibGVXb3JkUG9wb3Zlcl8iLCJlbmFibGVFZGl0IiwiZW5hYmxlQWxpZ25tZW50Iiwib3JpZ2luYWxSZXBvVXJsIiwic2NyaXB0dXJlQWxpZ25tZW50RWRpdENvbmZpZyIsImN1cnJlbnRWZXJzZVJlZiIsIl9zZXRTYXZlZENoYW5nZXMiLCJzb3VyY2VMYW5ndWFnZSIsInRhcmdldExhbmd1YWdlIiwiY3VycmVudEluZGV4Iiwic2F2ZWQiLCJfcmVmMyIsIl9yZWYzJGdldENoYW5nZXMiLCJnZXRDaGFuZ2VzIiwiX3JlZjMkY2xlYXJDaGFuZ2VzIiwiY2xlYXJDaGFuZ2VzIiwiX3JlZjMkc3RhdGUiLCJfdW5zYXZlZENoYW5nZXNMaXN0IiwiX2hhdmVVbnNhdmVkQ2hhbmdlcyIsImZpbmRSZWZJbkFycmF5IiwiZmluZEl0ZW0iLCJjaHVua3MiLCJyZWZMZW4iLCJpbmRleCIsImZpbmRJbmRleCIsImNodW5rIiwiaWR4Iiwic3Vic3RyaW5nIiwibmV4dENoYXIiLCJnZXRCb29rTmFtZSIsIl9zY3JpcHR1cmVDb25maWckcmVmZSIsImJvb2tDYXBzIiwidG9VcHBlckNhc2UiLCJmaWxlcGF0aCIsInNoYSIsIl91c2VFZGl0IiwiY29udGVudCIsImNvbmZpZyIsImRvbnRDcmVhdGVCcmFuY2giLCJ0aW1lb3V0Iiwic2VydmVyVGltZU91dCIsImF1dGhvciIsImVtYWlsIiwidXNlciIsImJyYW5jaCIsInNhdmVFcnJvciIsImlzU2F2ZUVycm9yIiwiaXNFcnJvciIsIm9uU2F2ZUVkaXQiLCJvblNhdmVFZGl0UGF0Y2giLCJfc2F2ZVN1Y2Nlc2Z1bCIsInByZXZDYXJkc1NhdmluZyIsInVuc2F2ZWRDYXJkSW5kaWNlcyIsIl9pdGVyYXRvciIsIl9zdGVwIiwiY2FyZEluZGV4IiwibG9nQ2hhbmdlZCIsImNvbW1lbnQiLCJpbml0aWFsIiwiZmluYWwiLCJkaWZmIiwiX3NhdmVFZGl0IiwiX3JlZjQiLCJfY2FsbGVlIiwidXBsb2FkRnVuY3Rpb24iLCJzdWNjZXNzIiwicmVzdWx0cyIsIl9zYXZlQ29udGVudCIsImZpbGVTaGEiLCJzYXZlZEJpYmxlVXNmbSIsImVkaXRlZEJpYmxlVXNmbSIsInVwVG9EYXRlIiwibmV3Q29udGV4dExpbmVzIiwiZGlmZlBhdGNoIiwiX2NhbGxlZSQiLCJfY29udGV4dCIsIm1lcmdlVmVyc2VPYmplY3RzSW50b0JpYmxlVXNmbSIsInVwZGF0ZWRWZXJzZU9iamVjdHMiLCJuZXdVc2ZtIiwiY2hhcHRlckNodW5rcyIsInNwbGl0IiwiY2hhcHRlckluZGV4IiwiY3VycmVudENoYXB0ZXIiLCJ2ZXJzZUNodW5rcyIsInZlcnNlSW5kZXgiLCJmcm9udE1hdHRlciIsIm5ld1ZlcnNlVXNmbSIsImNvbnZlcnRWZXJzZURhdGFUb1VTRk0iLCJvbGRWZXJzZSIsInByZWZpeExlbiIsImluZGV4T2YiLCJ2ZXJzZU51bUxlbiIsIm5ld0NoYXB0ZXIiLCJqb2luIiwiZ2V0UmVhZHlGb3JTYXZlIiwiX2dldFJlYWR5Rm9yU2F2ZSIsIl9jYWxsZWUyIiwiY3JlYXRlRWRpdEJyYW5jaCIsImJpYmxlVXNmbUluaXRpYWwiLCJiaWJsZVVzZm1OZXciLCJtZXJnZUZhaWwiLCJfY2FyZE51bSIsIl9pdGVyYXRvcjIiLCJfc3RlcDIiLCJfdW5zYXZlZENoYW5nZXNMaXN0JF8iLCJfc3RhdGUiLCJfZ2V0Q2hhbmdlcyIsIl9yZWY1IiwiX3NhdmVEaWZmUGF0Y2giLCJfc2F2ZUZ1bGxCaWJsZUNvbnRlbnQiLCJuZXdCb29rSnNvbiIsIl9pdGVyYXRvcjMiLCJfc3RlcDMiLCJfY2FyZEluZGV4IiwiX2NhcmROdW0yIiwiX3Vuc2F2ZWRDaGFuZ2VzTGlzdCRfMiIsIl9nZXRDaGFuZ2VzMiIsIl9zdGF0ZTIiLCJfbmV3VXNmbSIsIl9nZXRDaGFuZ2VzMyIsIm5ld1ZlcnNlVGV4dCIsIl9yZWY2IiwiX3VwZGF0ZWRWZXJzZU9iamVjdHMiLCJ0YXJnZXRWZXJzZU9iamVjdHNfIiwiX0FsaWdubWVudEhlbHBlcnMkdXBkIiwidGFyZ2V0VmVyc2VPYmplY3RzIiwiX3NjcmlwdHVyZUNvbmZpZyRyZXNvMTEiLCJfY2FsbGVlMiQiLCJfY29udGV4dDIiLCJwYXJzZUludCIsInQwIiwidXBkYXRlQWxpZ25tZW50c1RvVGFyZ2V0VmVyc2UiLCJ1cGRhdGVWZXJzZSIsInRvVVNGTSIsImZvcmNlZE5ld0xpbmVzIiwiX3JlZjciLCJfdmVyc2VzRm9yUmVmIiwibmV3U2VsZWN0aW9ucyIsInVwZGF0ZVNlbGVjdGlvbnMiLCJfbWFwIiwib3JpZ2luYWxCb29rSWQiLCJib29rVmVyc2VPYmplY3QiLCJjaGFwdGVycyIsIm5ld1NlbGVjdGVkUXVvdGUiLCJxdW90ZSIsIl9zZWxlY3RlZFF1b3RlJHJlZmVyZTMiLCJvcmlnaW5hbFZlcnNlcyIsInN1YnN0aXR1dGUiLCJzdGFydFZlcnNlIiwibGFzdFZlcnNlIiwiX3ZlcnNlIiwidmVyc2VzIiwiX2l0ZXJhdG9yNCIsIl9zdGVwNCIsInZlcnNlSXRlbSIsInZvIiwiX2Jvb2tWZXJzZU9iamVjdCRfY2hhIiwic2V0IiwiX3NlbGVjdGVkUXVvdGUkcmVmZXJlIiwiX3NlbGVjdGVkUXVvdGUkcmVmZXJlMiIsInN1YlJlZiIsInF1b3RlTWF0Y2hlcyIsImJvb2tPYmplY3QiLCJvY2N1cnJlbmNlIiwic2l6ZSIsIndvcmRzIiwiX2tleSIsIm1hcCIsIndvcmQiLCJ0ZXh0Iiwibm9ybWFsaXplU3RyaW5nIiwiYm9va3NOb3RTYW1lIiwidXBkYXRlVmVyc2VzQWxpZ25tZW50U3RhdHVzIiwiYWxpZ25lZCIsIl92ZXJzZXNGb3JSZWYyIiwiX3JlZjgiLCJyZW5kZXJlZFNjcmlwdHVyZVBhbmVzIiwiX2N1cnJlbnRWZXJzZURhdGEiLCJfY3VycmVudFZlcnNlRGF0YSR2ZXIiLCJpbml0aWFsVmVyc2VPYmplY3RzIiwiX3JlZjkiLCJib29rSWRfIiwiX3NjcmlwdHVyZUFsaWdubWVudEVkaXRDb25maWciLCJpc1ZlcnNlU2VsZWN0ZWRGb3JBbGlnbm1lbnQiLCJkZXRlcm1pbmluZ0JyYW5jaCIsIm9uQWxpZ25tZW50RmluaXNoIiwic2F2aW5nIiwiaGFuZGxlQWxpZ25CdXR0b25DbGljayIsIm9uUmVuZGVyVG9vbGJhciIsIl9yZWYxMCIsIm5ld0l0ZW1zIiwiYWxsVmVyc2VzQWxpZ25lZCIsImV2ZXJ5IiwiYWxpZ25TdGF0dXMiLCJhbGlnbkljb24iLCJhbGlnbkJ1dHRvblRleHQiLCJjb2xvciIsIm9uQ2xpY2siLCJjdXJzb3IiLCJGcmFnbWVudCIsIm9wZW4iLCJvbkNsb3NlIiwibGluayIsImxpbmtUb29sdGlwIiwic2VsZWN0aW9uQm9va09iamVjdHMiLCJvblNlbGVjdGlvbnMiLCJyZWZTdHJpbmciLCJzZXR0aW5nc1RpdGxlIiwiZ2V0Q3VzdG9tQ29tcG9uZW50IiwiaGlkZU1hcmtkb3duVG9nZ2xlIiwiZWRpdGFibGUiLCJvblZlcnNlU2VsZWN0IiwicHJvcFR5cGVzIiwic3RyaW5nIiwiaXNSZXF1aXJlZCIsIm9iamVjdCIsIm51bWJlciIsImJvb2wiLCJmdW5jIiwic2hhcGUiLCJvbmVPZlR5cGUiLCJhbnkiLCJzZXRBcmVSZXNvdXJjZXNMb2FkaW5nIiwic2V0QXJlUmVzb3VyY2VzU2F2aW5nIl0sInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2NvbXBvbmVudHMvU2NyaXB0dXJlQ2FyZC9TY3JpcHR1cmVDYXJkLnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyBSZWFjdCBmcm9tICdyZWFjdCdcbmltcG9ydCAqIGFzIFByb3BUeXBlcyBmcm9tICdwcm9wLXR5cGVzJ1xuaW1wb3J0IHsgY29yZSwgU2VsZWN0aW9uc0NvbnRleHRQcm92aWRlciB9IGZyb20gJ3NjcmlwdHVyZS1yZXNvdXJjZXMtcmNsJ1xuaW1wb3J0IHVzZm1qcyBmcm9tICd1c2ZtLWpzJ1xuaW1wb3J0IHsgdXNlRWRpdCB9IGZyb20gJ2dpdGVhLXJlYWN0LXRvb2xraXQnXG5pbXBvcnQgeyBJY29uQnV0dG9uIH0gZnJvbSAnQG11aS9tYXRlcmlhbCdcbmltcG9ydCB7IFJ4TGluazIsIFJ4TGlua0JyZWFrMiB9IGZyb20gJ3JlYWN0LWljb25zL3J4J1xuaW1wb3J0IHtcbiAgQ2FyZCxcbiAgRXJyb3JEaWFsb2csXG4gIEVSUk9SX1NUQVRFLFxuICBNQU5JRkVTVF9OT1RfTE9BREVEX0VSUk9SLFxuICBVcGRhdGVCcmFuY2hCdXR0b24sXG4gIHVzZUJyYW5jaE1lcmdlcixcbiAgdXNlQ2FyZFN0YXRlLFxuICB1c2VDb250ZW50VXBkYXRlUHJvcHMsXG4gIHVzZU1hc3Rlck1lcmdlUHJvcHMsXG4gIHVzZVVzZXJCcmFuY2gsXG59IGZyb20gJ3RyYW5zbGF0aW9uLWhlbHBzLXJjbCdcbi8vIEB0cy1pZ25vcmVcbmltcG9ydCB7IGdldFF1b3RlTWF0Y2hlc0luQm9va1JlZiB9IGZyb20gJ3V3LXF1b3RlLWhlbHBlcnMnXG5pbXBvcnQgeyBBbGlnbm1lbnRIZWxwZXJzLCBVc2ZtRmlsZUNvbnZlcnNpb25IZWxwZXJzIH0gZnJvbSAnd29yZC1hbGlnbmVyLXJjbCdcbmltcG9ydCB7IGlzRXF1YWwgfSBmcm9tICdAcmVhY3QtaG9va3ovZGVlcC1lcXVhbCdcbmltcG9ydCB7IGdldFZlcnNlcyB9IGZyb20gJ2JpYmxlLXJlZmVyZW5jZS1yYW5nZSdcbmltcG9ydCB7IFNjcmlwdHVyZVBhbmUsIFNjcmlwdHVyZVNlbGVjdG9yIH0gZnJvbSAnLi4nXG5pbXBvcnQgeyB1c2VTY3JpcHR1cmVTZXR0aW5ncyB9IGZyb20gJy4uLy4uL2hvb2tzL3VzZVNjcmlwdHVyZVNldHRpbmdzJ1xuaW1wb3J0IHtcbiAgY2xlYW51cFZlcnNlT2JqZWN0cyxcbiAgZmV0Y2hCaWJsZUJvb2ssXG4gIGZpeE9jY3VycmVuY2UsXG4gIGdldEJvb2tOYW1lRnJvbVVzZm1GaWxlTmFtZSxcbiAgZ2V0UmVzb3VyY2VMaW5rLFxuICBnZXRSZXNvdXJjZU1lc3NhZ2UsXG4gIGdldFNjcmlwdHVyZVZlcnNpb25TZXR0aW5ncyxcbiAgaXNPcmlnaW5hbEJpYmxlLFxufSBmcm9tICcuLi8uLi91dGlscy9TY3JpcHR1cmVTZXR0aW5ncydcbmltcG9ydCB7IGRlbGF5IH0gZnJvbSAnLi4vLi4vdXRpbHMvZGVsYXknXG5pbXBvcnQgeyBhcmVNYXBzVGhlU2FtZSB9IGZyb20gJy4uLy4uL3V0aWxzL21hcHMnXG5pbXBvcnQgeyBUaXRsZSB9IGZyb20gJy4uL1NjcmlwdHVyZVBhbmUvc3R5bGVkJ1xuaW1wb3J0IHtcbiAgTlRfT1JJR19MQU5HLFxuICBPUklHSU5BTF9TT1VSQ0UsXG4gIE9UX09SSUdfTEFORyxcbn0gZnJvbSAnLi4vLi4vdXRpbHMnXG5pbXBvcnQgeyBWZXJzZVNlbGVjdG9yUG9wdXAgfSBmcm9tICcuLi9WZXJzZVNlbGVjdG9yUG9wdXAnXG5pbXBvcnQgeyBnZXRQYXRjaCB9IGZyb20gJy4uLy4uL3V0aWxzL2ZpbGVzJ1xuaW1wb3J0IHsgU2NyaXB0dXJlUmVmZXJlbmNlVHlwZSwgVmVyc2VPYmplY3RzVHlwZSB9IGZyb20gJy4uLy4uL3R5cGVzJ1xuXG5jb25zdCBLRVlfRk9OVF9TSVpFX0JBU0UgPSAnc2NyaXB0dXJlUGFuZUZvbnRTaXplXydcbmNvbnN0IGxhYmVsID0gJ1ZlcnNpb24nXG5jb25zdCBzdHlsZSA9IHsgbWFyZ2luVG9wOiAnMTZweCcsIHdpZHRoOiAnNTAwcHgnIH1cblxuLyoqXG4gKiBjcmVhdGUgYSBzaG9ydCBjb21wYXJpc29uIHZlcnNlIHJlZiBvYmplY3Qgd2l0aG91dCBhbGwgdGhlIHZlcnNlRGF0YVxuICogQHBhcmFtIHZlcnNlUmVmXG4gKi9cbmZ1bmN0aW9uIGNvbXBhcmVPYmplY3QodmVyc2VSZWYpIHtcbiAgY29uc3Qge1xuICAgIGNoYXB0ZXIsXG4gICAgdmVyc2UsXG4gICAgdmVyc2VEYXRhLFxuICB9ID0gdmVyc2VSZWYgfHwge31cbiAgY29uc3QgdmVyc2VPYmplY3RzID0gdmVyc2VEYXRhPy52ZXJzZU9iamVjdHM/Lmxlbmd0aCA/IEpTT04uc3RyaW5naWZ5KHZlcnNlRGF0YS52ZXJzZU9iamVjdHMpIDogJydcbiAgcmV0dXJuIHtcbiAgICBjaGFwdGVyLFxuICAgIHZlcnNlLFxuICAgIHZlcnNlT2JqZWN0cyxcbiAgfVxufVxuXG4vKipcbiAqIGNvbXBhcmUgdHdvIHZlcnNlIHJlZnMgdG8gc2VlIGlmIHRoZXkgYXJlIHN1YnN0YW50aWFsbHkgc2ltaWxhclxuICogQHBhcmFtIHZlcnNlc0ZvclJlZjFcbiAqIEBwYXJhbSB2ZXJzZXNGb3JSZWYyXG4gKi9cbmZ1bmN0aW9uIGFyZVZlcnNlc1NhbWUodmVyc2VzRm9yUmVmMTogYW55W10sIHZlcnNlc0ZvclJlZjI6IGFueVtdKSB7XG4gIHZlcnNlc0ZvclJlZjEgPSB2ZXJzZXNGb3JSZWYxIHx8IFtdXG4gIHZlcnNlc0ZvclJlZjIgPSB2ZXJzZXNGb3JSZWYyIHx8IFtdXG4gIGxldCBhcmVTYW1lID0gZmFsc2VcblxuICBpZiAodmVyc2VzRm9yUmVmMS5sZW5ndGggPT09IHZlcnNlc0ZvclJlZjIubGVuZ3RoKSB7XG4gICAgYXJlU2FtZSA9IHRydWVcblxuICAgIGZvciAobGV0IGkgPSAwLCBsPSB2ZXJzZXNGb3JSZWYxLmxlbmd0aDsgaSA8IGw7IGkrKykge1xuICAgICAgY29uc3QgdmVyc2UxID0gY29tcGFyZU9iamVjdCh2ZXJzZXNGb3JSZWYxW2ldKVxuICAgICAgY29uc3QgdmVyc2UyID0gY29tcGFyZU9iamVjdCh2ZXJzZXNGb3JSZWYyW2ldKVxuICAgICAgYXJlU2FtZSA9IGlzRXF1YWwodmVyc2UxLCB2ZXJzZTIpXG5cbiAgICAgIGlmICghYXJlU2FtZSkge1xuICAgICAgICBicmVha1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHJldHVybiBhcmVTYW1lXG59XG5cbi8qKlxuICogZ2V0IHRoZSBVU0ZNIGZvciBib29rSWQgZnJvbSBzY3JpcHR1cmVDb25maWcuXG4gKiBAcGFyYW0ge29iamVjdH0gc2NyaXB0dXJlQ29uZmlnXG4gKiBAcGFyYW0ge3N0cmluZ30gYm9va0lkXG4gKi9cbmV4cG9ydCBjb25zdCBnZXRDdXJyZW50Qm9vayA9IChzY3JpcHR1cmVDb25maWcsIGJvb2tJZCkgPT4ge1xuICBjb25zdCBsYXRlc3RCaWJsZSA9IHNjcmlwdHVyZUNvbmZpZz8ucmVzb3VyY2VTdGF0ZT8ucmVzb3VyY2U/LnByb2plY3RJZFxuICBjb25zdCBmaWxlbmFtZSA9IHNjcmlwdHVyZUNvbmZpZz8ucmVzb3VyY2VTdGF0ZT8ucmVzb3VyY2U/Lm5hbWUgLy8gTGlrZSBcIjU3LVRJVC51c2ZtXCJcbiAgbGV0IGlzQm9va1ZhbGlkID0gZmFsc2VcbiAgY29uc3QgYm9va05hbWUgPSBnZXRCb29rTmFtZUZyb21Vc2ZtRmlsZU5hbWUoZmlsZW5hbWUpXG4gIGlzQm9va1ZhbGlkID0gYm9va05hbWU/LnRvTG93ZXJDYXNlKCk/LmluY2x1ZGVzKGJvb2tJZClcbiAgaWYgKCFpc0Jvb2tWYWxpZCkge1xuICAgIGNvbnNvbGUud2FybihgQ3VycmVudCBib29rSWQgaXMgJHtib29rSWR9IGFuZCBVU0ZNIGZpbGUgaXMgJHtmaWxlbmFtZX1gKVxuICB9XG4gIGlmIChsYXRlc3RCaWJsZT8udG9Mb3dlckNhc2UoKSAhPT0gYm9va0lkKSB7XG4gICAgY29uc29sZS53YXJuKGBDdXJyZW50IGJvb2tJZCBpcyAke2Jvb2tJZH0gYnV0IGZldGNoZWQgcHJvamVjdElkIGlzICR7bGF0ZXN0QmlibGV9YClcbiAgICBpc0Jvb2tWYWxpZCA9IGZhbHNlXG4gIH1cbiAgaWYgKGlzQm9va1ZhbGlkKSB7XG4gICAgY29uc3QgYmlibGVVc2ZtID0gc2NyaXB0dXJlQ29uZmlnPy5iaWJsZVVzZm07XG4gICAgaWYgKGJpYmxlVXNmbSkge1xuICAgICAgcmV0dXJuIGJpYmxlVXNmbVxuICAgIH1cbiAgICBjb25zb2xlLmVycm9yKGBnZXRDdXJyZW50Qm9vaygpIC0gQmlibGUgVVNGTSBtaXNzaW5nYClcbiAgfVxuICBjb25zb2xlLmVycm9yKGBnZXRDdXJyZW50Qm9vaygpIC0gRXhwZWN0ZWQgJHtib29rSWR9IGJ1dCBnb3QgZmlsZSAke2ZpbGVuYW1lfWApXG4gIHJldHVybiBudWxsXG59XG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIFNjcmlwdHVyZUNhcmQoe1xuICBhcHBSZWYsXG4gIGF1dGhlbnRpY2F0aW9uLFxuICBib29rSW5kZXgsXG4gIGNhcmROdW0sXG4gIGNsYXNzZXMsXG4gIGRpc2FibGVXb3JkUG9wb3ZlcixcbiAgZ2V0TGFuZ3VhZ2UsXG4gIGdldExleGljb25EYXRhLFxuICBncmVla1JlcG9VcmwsXG4gIGhlYnJld1JlcG9VcmwsXG4gIGh0dHBDb25maWcsXG4gIGlkLFxuICBpc05ULFxuICBsb2dnZWRJblVzZXIsXG4gIG9uTWluaW1pemUsXG4gIG9uUmVzb3VyY2VFcnJvcixcbiAgb3JpZ2luYWxTY3JpcHR1cmVCb29rT2JqZWN0cyxcbiAgcmVmZXJlbmNlOiByZWZlcmVuY2VfLFxuICByZXNvdXJjZToge1xuICAgIG93bmVyLFxuICAgIGxhbmd1YWdlSWQsXG4gICAgcmVzb3VyY2VJZCxcbiAgICBvcmlnaW5hbExhbmd1YWdlT3duZXIsXG4gIH0sXG4gIHJlc291cmNlTGluayxcbiAgc2VsZWN0ZWRRdW90ZSxcbiAgc2VydmVyLFxuICBzZXRDYXJkc0xvYWRpbmdNZXJnZSxcbiAgc2V0Q2FyZHNMb2FkaW5nVXBkYXRlLFxuICBzZXRDYXJkc1NhdmluZyxcbiAgc2V0U2F2ZWRDaGFuZ2VzLFxuICBzZXRXb3JkQWxpZ25lclN0YXR1cyxcbiAgdHJhbnNsYXRlLFxuICB0aXRsZSxcbiAgdXNlVXNlckxvY2FsU3RvcmFnZSxcbiAgdXBkYXRlTWVyZ2VTdGF0ZSxcbn0pIHtcbiAgY29uc3QgYm9va0lkID0gcmVmZXJlbmNlXz8uYm9va0lkIHx8IHJlZmVyZW5jZV8/LnByb2plY3RJZCAvLyBvbGRlciB2ZXJzaW9ucyB1c2UgcHJvamVjdElkLCBzbyBmYWxsIGJhY2sgdG8gdGhhdFxuICBjb25zdCByZWZlcmVuY2UgPSB7XG4gICAgYm9va0lkLFxuICAgIGNoYXB0ZXI6IHJlZmVyZW5jZV8/LmNoYXB0ZXIsXG4gICAgdmVyc2U6IHJlZmVyZW5jZV8/LnZlcnNlLFxuICB9XG4gIGNvbnN0IFtzdGF0ZSwgc2V0U3RhdGVfXSA9IFJlYWN0LnVzZVN0YXRlKHtcbiAgICBjaGVja0ZvckVkaXRCcmFuY2g6IDAsXG4gICAgY29udGV4dExpbmVzOiA0LFxuICAgIGN1cnJlbnRSZWZlcmVuY2U6IG51bGwsXG4gICAgZWRpdEJyYW5jaFJlYWR5OiBmYWxzZSxcbiAgICBlZGl0VmVyc2U6IG51bGwsXG4gICAgaGF2ZVVuc2F2ZWRDaGFuZ2VzOiBmYWxzZSxcbiAgICBsYXN0U2VsZWN0ZWRRdW90ZTogbnVsbCxcbiAgICByZWFkeUZvckZldGNoOiBmYWxzZSxcbiAgICByZWY6IGFwcFJlZixcbiAgICBzYXZlQ2xpY2tlZDogZmFsc2UsXG4gICAgc2F2ZUNvbnRlbnQ6IG51bGwsXG4gICAgc2F2ZURpZmZQYXRjaDogZmFsc2UsXG4gICAgc2F2ZUZ1bGxCaWJsZUNvbnRlbnQ6IG51bGwsXG4gICAgc2VsZWN0aW9uczogbmV3IE1hcCgpLFxuICAgIHNlbGVjdGlvbnNSZWZzOiAnJyxcbiAgICBzaG93QWxpZ25tZW50UG9wdXA6IGZhbHNlLFxuICAgIHN0YXJ0U2F2ZTogZmFsc2UsXG4gICAgdXJsRXJyb3I6IG51bGwsXG4gICAgdXNpbmdVc2VyQnJhbmNoOiBmYWxzZSxcbiAgICB1bnNhdmVkQ2hhbmdlc0xpc3Q6IHt9LFxuICAgIHZlcnNlc0FsaWdubWVudFN0YXR1czogbnVsbCxcbiAgICB2ZXJzZXNGb3JSZWY6IG51bGwsXG4gICAgdmVyc2VPYmplY3RzTWFwOiBuZXcgTWFwKCksXG4gICAgdmVyc2VTZWxlY3RlZEZvckFsaWdubWVudDogbnVsbCxcbiAgfSlcbiAgY29uc3Qge1xuICAgIGNoZWNrRm9yRWRpdEJyYW5jaCxcbiAgICBjb250ZXh0TGluZXMsXG4gICAgY3VycmVudFJlZmVyZW5jZSxcbiAgICBlZGl0QnJhbmNoUmVhZHksXG4gICAgZWRpdFZlcnNlLCAvLyBrZWVwIHRyYWNrIG9mIHZlcnNlIGJlaW5nIGVkaXR0ZWRcbiAgICBoYXZlVW5zYXZlZENoYW5nZXMsXG4gICAgbGFzdFNlbGVjdGVkUXVvdGUsXG4gICAgcmVhZHlGb3JGZXRjaCxcbiAgICByZWYsXG4gICAgc2F2ZUNsaWNrZWQsXG4gICAgc2F2ZUNvbnRlbnQsXG4gICAgc2F2ZURpZmZQYXRjaCxcbiAgICBzYXZlRnVsbEJpYmxlQ29udGVudCxcbiAgICBzZWxlY3Rpb25zLFxuICAgIHNlbGVjdGlvbnNSZWZzLFxuICAgIHNob3dBbGlnbm1lbnRQb3B1cCxcbiAgICBzdGFydFNhdmUsXG4gICAgdXJsRXJyb3IsXG4gICAgdXNpbmdVc2VyQnJhbmNoLFxuICAgIHVuc2F2ZWRDaGFuZ2VzTGlzdCxcbiAgICB2ZXJzZU9iamVjdHNNYXAsXG4gICAgdmVyc2VTZWxlY3RlZEZvckFsaWdubWVudCxcbiAgICB2ZXJzZXNBbGlnbm1lbnRTdGF0dXMsXG4gICAgdmVyc2VzRm9yUmVmLFxuICB9ID0gc3RhdGVcblxuICBjb25zdCBbZm9udFNpemUsIHNldEZvbnRTaXplXSA9IHVzZVVzZXJMb2NhbFN0b3JhZ2UoS0VZX0ZPTlRfU0laRV9CQVNFICsgY2FyZE51bSwgMTAwKVxuICBjb25zdCBpc05UXyA9IGlzTlQoYm9va0lkKVxuXG4gIGZ1bmN0aW9uIHNldFN0YXRlKG5ld1N0YXRlKSB7XG4gICAgc2V0U3RhdGVfKHByZXZTdGF0ZSA9PiAoeyAuLi5wcmV2U3RhdGUsIC4uLm5ld1N0YXRlIH0pKVxuICB9XG5cbiAgaHR0cENvbmZpZyA9IHtcbiAgICAuLi5odHRwQ29uZmlnLFxuICAgIGNhY2hlOiB7IG1heEFnZTogMCB9LFxuICAgIG5vQ2FjaGU6IHRydWUsXG4gIH0gLy8gZGlzYWJsZSBodHRwIGNhY2hpbmdcblxuICBjb25zdCB7XG4gICAgaXNOZXdUZXN0YW1lbnQsXG4gICAgc2NyaXB0dXJlQ29uZmlnLFxuICAgIHNldFNjcmlwdHVyZSxcbiAgICBzY3JpcHR1cmVTZXR0aW5ncyxcbiAgICBzY3JpcHR1cmVWZXJzaW9uSGlzdCxcbiAgfSA9IHVzZVNjcmlwdHVyZVNldHRpbmdzKHtcbiAgICBhcHBSZWY6IHJlZixcbiAgICBjYXJkTnVtLFxuICAgIGRpc2FibGVXb3JkUG9wb3ZlcixcbiAgICBncmVla1JlcG9VcmwsXG4gICAgaGVicmV3UmVwb1VybCxcbiAgICBodHRwQ29uZmlnLFxuICAgIGlzTlQsXG4gICAgbGFuZ3VhZ2VJZCxcbiAgICBvcmlnaW5hbExhbmd1YWdlT3duZXIsXG4gICAgb3duZXIsXG4gICAgcmVhZHlGb3JGZXRjaCxcbiAgICByZWZlcmVuY2U6IGN1cnJlbnRSZWZlcmVuY2UgfHwgcmVmZXJlbmNlLFxuICAgIHJlc291cmNlSWQsXG4gICAgcmVzb3VyY2VMaW5rLFxuICAgIHNldFVybEVycm9yOiAoZXJyb3IpID0+IHNldFN0YXRlKHsgdXJsRXJyb3I6IGVycm9yIH0pLFxuICAgIHNlcnZlcixcbiAgICB0aXRsZSxcbiAgICB1c2VVc2VyTG9jYWxTdG9yYWdlLFxuICAgIHdob2xlQm9vazogdHJ1ZSxcbiAgfSlcblxuICBjb25zdCBmZXRjaGVkUmVzb3VyY2UgPSBzY3JpcHR1cmVDb25maWc/LnJlc291cmNlU3RhdGVcbiAgLy8gQHRzLWlnbm9yZVxuICBjb25zdCByZXBvID0gYCR7c2NyaXB0dXJlQ29uZmlnPy5yZXNvdXJjZT8ubGFuZ3VhZ2VJZH1fJHtzY3JpcHR1cmVDb25maWc/LnJlc291cmNlPy5wcm9qZWN0SWR9YFxuICBjb25zdCB1c2luZ09yaWdpbmFsQmlibGUgPSBpc09yaWdpbmFsQmlibGUoc2NyaXB0dXJlQ29uZmlnWydyZXNvdXJjZSddPy5wcm9qZWN0SWQpXG5cblxuICAvLyBAdHMtaWdub3JlXG4gIGNvbnN0IGNhcmRSZXNvdXJjZUlkID0gc2NyaXB0dXJlQ29uZmlnPy5yZXNvdXJjZT8ucHJvamVjdElkIHx8IHJlc291cmNlSWRcbiAgLy8gQHRzLWlnbm9yZVxuICBsZXQgcmVmXyA9IHNjcmlwdHVyZUNvbmZpZz8ucmVzb3VyY2U/LnJlZiB8fCBhcHBSZWZcbiAgY29uc3QgY2FuVXNlRWRpdEJyYW5jaCA9ICEhKGxvZ2dlZEluVXNlciAmJiBhdXRoZW50aWNhdGlvbiAmJiAocmVzb3VyY2VJZCAhPT0gT1JJR0lOQUxfU09VUkNFKSAmJiAvLyBUUklDS1kgaWYgbm90IG9yaWdpbmFsIGxhbmd1YWdlIGFuZCB3ZSBoYXZlIGxvZ2luIGRhdGEsIHRoZW4gd2UgY2FuIHVzZSB0aGUgZWRpdCBicmFuY2hcbiAgICAoKHJlZl8gPT09ICdtYXN0ZXInKSB8fCAocmVmXy5pbmNsdWRlcyhsb2dnZWRJblVzZXIpKSkpIC8vIGFsc28gbWFrZSBzdXJlIG5vdCBhIHZlcnNpb24gdGFnXG5cbiAgY29uc3Qge1xuICAgIHN0YXRlOiB7XG4gICAgICBicmFuY2hEZXRlcm1pbmVkLFxuICAgICAgdXNlckVkaXRCcmFuY2hOYW1lLFxuICAgICAgdXNpbmdVc2VyQnJhbmNoOiBfdXNpbmdVc2VyQnJhbmNoLFxuICAgICAgd29ya2luZ1Jlc291cmNlQnJhbmNoLFxuICAgIH0sXG4gICAgYWN0aW9uczoge1xuICAgICAgc3RhcnRFZGl0OiBzdGFydEVkaXRCcmFuY2gsXG4gICAgICBmaW5pc2hFZGl0LFxuICAgIH0sXG4gIH0gPSB1c2VVc2VyQnJhbmNoKHtcbiAgICBhcHBSZWYsXG4gICAgYXV0aGVudGljYXRpb246IGNhblVzZUVkaXRCcmFuY2ggPyBhdXRoZW50aWNhdGlvbiA6IG51bGwsXG4gICAgYm9va0lkLFxuICAgIGNhcmRJZDogaWQsXG4gICAgY2FyZFJlc291cmNlSWQsXG4gICAgY2hlY2tGb3JFZGl0QnJhbmNoLFxuICAgIGxhbmd1YWdlSWQsXG4gICAgbG9nZ2VkSW5Vc2VyOiBjYW5Vc2VFZGl0QnJhbmNoID8gbG9nZ2VkSW5Vc2VyIDogbnVsbCxcbiAgICBvd25lcixcbiAgICBvblJlc291cmNlRXJyb3IsXG4gICAgc2VydmVyLFxuICAgIHVzZVVzZXJMb2NhbFN0b3JhZ2UsXG4gIH0pXG5cbiAgY29uc3QgX3VzZUJyYW5jaE1lcmdlciA9IHVzZUJyYW5jaE1lcmdlcih7IHNlcnZlciwgb3duZXIsIHJlcG8sIHVzZXJCcmFuY2g6IHVzZXJFZGl0QnJhbmNoTmFtZSwgdG9rZW5pZDogYXV0aGVudGljYXRpb24/LnRva2VuPy5zaGExIH0pXG4gIGNvbnN0IHtcbiAgICBzdGF0ZToge1xuICAgICAgbWVyZ2VTdGF0dXM6IG1lcmdlVG9NYXN0ZXIsXG4gICAgICB1cGRhdGVTdGF0dXM6IG1lcmdlRnJvbU1hc3RlcixcbiAgICB9LFxuICB9ID0gX3VzZUJyYW5jaE1lcmdlclxuXG4gIGNvbnN0IHVwZGF0ZUJ1dHRvblByb3BzID0gdXNlQ29udGVudFVwZGF0ZVByb3BzKHtcbiAgICBpc1NhdmluZzogc3RhcnRTYXZlLFxuICAgIHVzZUJyYW5jaE1lcmdlcjogX3VzZUJyYW5jaE1lcmdlcixcbiAgICBvblVwZGF0ZTogKCkgPT4ge1xuICAgICAgZGVsYXkoNTAwKS50aGVuKCgpID0+IHNjcmlwdHVyZUNvbmZpZz8ucmVsb2FkUmVzb3VyY2UoKSlcbiAgICB9LFxuICB9KVxuXG4gIGNvbnN0IHtcbiAgICBjYWxsVXBkYXRlVXNlckJyYW5jaCxcbiAgICBpc0Vycm9yRGlhbG9nT3BlbixcbiAgICBvbkNsb3NlRXJyb3JEaWFsb2csXG4gICAgaXNMb2FkaW5nOiBpc1VwZGF0ZUxvYWRpbmcsXG4gICAgZGlhbG9nTWVzc2FnZSxcbiAgICBkaWFsb2dUaXRsZSxcbiAgICBkaWFsb2dMaW5rLFxuICAgIGRpYWxvZ0xpbmtUb29sdGlwLFxuICB9ID0gdXBkYXRlQnV0dG9uUHJvcHNcblxuICBjb25zdCBvbk1lcmdlID0gKCkgPT4ge1xuICAgIGZpbmlzaEVkaXQoKVxuICAgIGNvbnNvbGUubG9nKGBvbk1lcmdlKCkgc3dpdGNoaW5nIGJhY2sgdG8gbWFzdGVyIGFmdGVyIG1lcmdlIGFwcFJlZjpgLCBhcHBSZWYpXG4gICAgc2V0U3RhdGUoe1xuICAgICAgcmVhZHlGb3JGZXRjaDogZmFsc2UsXG4gICAgICByZWY6IGFwcFJlZixcbiAgICB9KVxuICAgIGRlbGF5KDUwMCkudGhlbigoKSA9PiB7XG4gICAgICBzZXRTdGF0ZSh7XG4gICAgICAgIGNoZWNrRm9yRWRpdEJyYW5jaDogY2hlY2tGb3JFZGl0QnJhbmNoICsgMSwgLy8gdHJpZ2dlciByZWNoZWNrIG9mIHVzZXIgYnJhbmNoIHdoaWNoIHdpbGwgc3dpdGNoIHRoZSBicmFuY2ggYmFjayB0byBtYXN0ZXJcbiAgICAgICAgcmVhZHlGb3JGZXRjaDogZmFsc2UsXG4gICAgICB9KVxuICAgIH0pXG4gIH1cblxuICBjb25zdCB7IGlzTG9hZGluZzogaXNNZXJnZUxvYWRpbmcsIGNhbGxNZXJnZVVzZXJCcmFuY2ggfSA9IHVzZU1hc3Rlck1lcmdlUHJvcHMoe1xuICAgIGlzU2F2aW5nOiBzdGFydFNhdmUsXG4gICAgdXNlQnJhbmNoTWVyZ2VyOiBfdXNlQnJhbmNoTWVyZ2VyLFxuICAgIG9uTWVyZ2UsXG4gIH0pXG5cbiAgLy8gU2luY2Ugb3JpZ2luYWwgdGV4dCAoR3JlZWsvSGVicmV3KSBzaG91bGQgbm90IGJlIGVkaXRlZCwgZG8gbm90IGluY2x1ZGVcbiAgLy8gdGhlbSBpbiBtZXJnZSBzdGF0ZSBzaW5jZSB1c2VyIHdpbGwgbm90IG1lcmdlL3B1c2ggY2hhbmdlcy5cbiAgUmVhY3QudXNlRWZmZWN0KCgpID0+IHtcbiAgICBpZiAoY2FyZFJlc291cmNlSWQgJiYgIXVzaW5nT3JpZ2luYWxCaWJsZSkge1xuICAgICAgdXBkYXRlTWVyZ2VTdGF0ZSAmJiB1cGRhdGVNZXJnZVN0YXRlKFxuICAgICAgICBjYXJkUmVzb3VyY2VJZCxcbiAgICAgICAgc2NyaXB0dXJlQ29uZmlnLnRpdGxlLFxuICAgICAgICBtZXJnZUZyb21NYXN0ZXIsXG4gICAgICAgIG1lcmdlVG9NYXN0ZXIsXG4gICAgICAgIGNhbGxVcGRhdGVVc2VyQnJhbmNoLFxuICAgICAgICBjYWxsTWVyZ2VVc2VyQnJhbmNoLFxuICAgICAgKVxuICAgIH1cbiAgfSxbY2FyZFJlc291cmNlSWQsIHNjcmlwdHVyZUNvbmZpZy50aXRsZSwgbWVyZ2VGcm9tTWFzdGVyLCBtZXJnZVRvTWFzdGVyXSlcblxuICBSZWFjdC51c2VFZmZlY3QoKCkgPT4ge1xuICAgIGlmIChpc1VwZGF0ZUxvYWRpbmcpIHtcbiAgICAgIHNldENhcmRzTG9hZGluZ1VwZGF0ZT8uKHByZXZDYXJkc0xvYWRpbmcgPT4gWy4uLnByZXZDYXJkc0xvYWRpbmcsIGNhcmRSZXNvdXJjZUlkXSlcbiAgICB9IGVsc2Uge1xuICAgICAgc2V0Q2FyZHNMb2FkaW5nVXBkYXRlPy4ocHJldkNhcmRzTG9hZGluZyA9PiBwcmV2Q2FyZHNMb2FkaW5nLmZpbHRlcihjYXJkSWQgPT4gY2FyZElkICE9PSBjYXJkUmVzb3VyY2VJZCkpXG4gICAgfVxuICB9LCBbaXNVcGRhdGVMb2FkaW5nXSlcblxuICBSZWFjdC51c2VFZmZlY3QoKCkgPT4ge1xuICAgIGlmIChpc01lcmdlTG9hZGluZykge1xuICAgICAgc2V0Q2FyZHNMb2FkaW5nTWVyZ2U/LihwcmV2Q2FyZHNMb2FkaW5nID0+IFsuLi5wcmV2Q2FyZHNMb2FkaW5nLCBjYXJkUmVzb3VyY2VJZF0pXG4gICAgfSBlbHNlIHtcbiAgICAgIHNldENhcmRzTG9hZGluZ01lcmdlPy4ocHJldkNhcmRzTG9hZGluZyA9PiBwcmV2Q2FyZHNMb2FkaW5nLmZpbHRlcihjYXJkSWQgPT4gY2FyZElkICE9PSBjYXJkUmVzb3VyY2VJZCkpXG4gICAgfVxuICB9LCBbaXNNZXJnZUxvYWRpbmddKVxuXG4gIGNvbnN0IHdvcmtpbmdSZWYgPSBjYW5Vc2VFZGl0QnJhbmNoID8gd29ya2luZ1Jlc291cmNlQnJhbmNoIDogYXBwUmVmXG4gIGxldCBzY3JpcHR1cmVUaXRsZVxuXG4gIGlmICghY2FuVXNlRWRpdEJyYW5jaCAmJiAhcmVhZHlGb3JGZXRjaCkgeyAvLyBpZiBiaWJsZSBub3QgZWxpZ2libGUgZm9yIHVzZXIgYnJhbmNoLCBtYWtlIHN1cmUgaXQncyByZWFkeVxuICAgIHNldFN0YXRlKHsgcmVhZHlGb3JGZXRjaDogdHJ1ZSB9KVxuICB9XG5cbiAgUmVhY3QudXNlRWZmZWN0KCgpID0+IHtcbiAgICBjb25zb2xlLmxvZyhgU2NyaXB0dXJlQ2FyZCBib29rIGNoYW5nZWRgLCB7IGJvb2tJZCwgb3duZXIsIGxhbmd1YWdlSWQsIHJlc291cmNlSWQgfSlcblxuICAgIGlmIChjYW5Vc2VFZGl0QnJhbmNoKSB7IC8vIGlmIGJpYmxlIGVsaWdpYmxlIGZvciB1c2VyIGJyYW5jaCwgcmVmcmVzaCBpdFxuICAgICAgc2V0U3RhdGUoeyByZWFkeUZvckZldGNoOiBmYWxzZSwgY2hlY2tGb3JFZGl0QnJhbmNoOiBjaGVja0ZvckVkaXRCcmFuY2ggKyAxIH0pXG4gICAgfVxuICB9LCBbYm9va0lkLCBvd25lciwgbGFuZ3VhZ2VJZCwgcmVzb3VyY2VJZF0pXG5cbiAgUmVhY3QudXNlRWZmZWN0KCgpID0+IHtcbiAgICBpZiAoIWlzRXF1YWwocmVmZXJlbmNlLCBjdXJyZW50UmVmZXJlbmNlKSkge1xuICAgICAgLy8gY29uc29sZS5sb2coYFNjcmlwdHVyZUNhcmQgcmVmZXJlbmNlIGNoYW5nZWRgLCByZWZlcmVuY2UpXG4gICAgICBzZXRTdGF0ZSh7IGN1cnJlbnRSZWZlcmVuY2U6IHJlZmVyZW5jZSwgZWRpdFZlcnNlOiBudWxsIH0pXG4gICAgfVxuICB9LCBbcmVmZXJlbmNlXSlcblxuICBSZWFjdC51c2VFZmZlY3QoKCkgPT4geyAvLyB3YWl0aW5nIGZvciBicmFuY2ggZmV0Y2ggdG8gY29tcGxldGVcbiAgICBpZiAoIXJlYWR5Rm9yRmV0Y2ggJiYgYnJhbmNoRGV0ZXJtaW5lZCApIHtcbiAgICAgIGNvbnNvbGUubG9nKGBTY3JpcHR1cmVDYXJkIGJyYW5jaERldGVybWluZWQgaXMgJHticmFuY2hEZXRlcm1pbmVkfSBhbmQgd29ya2luZ1JlZiBpcyAke3dvcmtpbmdSZWZ9YClcbiAgICAgIHNldFN0YXRlKHsgcmVhZHlGb3JGZXRjaDogdHJ1ZSwgcmVmOiB3b3JraW5nUmVmIH0pXG4gICAgfVxuICB9LCBbYnJhbmNoRGV0ZXJtaW5lZF0pXG5cbiAgUmVhY3QudXNlRWZmZWN0KCgpID0+IHsgLy8gc2VsZWN0IGNvcnJlY3Qgd29ya2luZyByZWYgLSBjb3VsZCBiZSBtYXN0ZXIsIHVzZXIgYnJhbmNoLCBvciByZWxlYXNlXG4gICAgaWYgKF91c2luZ1VzZXJCcmFuY2ggIT09IHVzaW5nVXNlckJyYW5jaCkge1xuICAgICAgc2V0U3RhdGUoeyB1c2luZ1VzZXJCcmFuY2g6IF91c2luZ1VzZXJCcmFuY2ggfSlcbiAgICB9XG4gIH0sIFtfdXNpbmdVc2VyQnJhbmNoLCB1c2luZ1VzZXJCcmFuY2hdKVxuXG4gIFJlYWN0LnVzZUVmZmVjdCgoKSA9PiB7IC8vIHVwZGF0ZSBkaXNwbGF5IHN0YXR1cyBpZiBlcnJvclxuICAgIGNvbnN0IGVycm9yID0gc2NyaXB0dXJlQ29uZmlnPy5yZXNvdXJjZVN0YXR1cz8uW0VSUk9SX1NUQVRFXVxuXG4gICAgaWYgKGVycm9yKSB7IC8vIGlmIGVycm9yIHdhcyBmb3VuZCBkbyBjYWxsYmFja1xuICAgICAgY29uc3QgcmVzb3VyY2VTdGF0dXMgPSBzY3JpcHR1cmVDb25maWc/LnJlc291cmNlU3RhdHVzXG4gICAgICBjb25zdCByZXNvdXJjZUxpbmsgPSBnZXRSZXNvdXJjZUxpbmsoc2NyaXB0dXJlQ29uZmlnKVxuICAgICAgY29uc3QgbWVzc2FnZSA9IGdldFJlc291cmNlTWVzc2FnZShyZXNvdXJjZVN0YXR1cywgc2VydmVyLCByZXNvdXJjZUxpbmssIGlzTlRfKVxuICAgICAgY29uc3QgaXNBY2Nlc3NFcnJvciA9IHJlc291cmNlU3RhdHVzW01BTklGRVNUX05PVF9MT0FERURfRVJST1JdXG4gICAgICBvblJlc291cmNlRXJyb3IgJiYgb25SZXNvdXJjZUVycm9yKG1lc3NhZ2UsIGlzQWNjZXNzRXJyb3IsIHJlc291cmNlU3RhdHVzKVxuICAgIH1cbiAgfSwgW3NjcmlwdHVyZUNvbmZpZz8ucmVzb3VyY2VTdGF0dXM/LltFUlJPUl9TVEFURV1dKVxuXG4gIGlmIChzY3JpcHR1cmVDb25maWcudGl0bGUgJiYgc2NyaXB0dXJlQ29uZmlnLnZlcnNpb24pIHtcbiAgICBzY3JpcHR1cmVUaXRsZSA9IGAke3NjcmlwdHVyZUNvbmZpZy50aXRsZX0gdiR7c2NyaXB0dXJlQ29uZmlnLnZlcnNpb259YFxuICAgIHNjcmlwdHVyZVZlcnNpb25IaXN0LnVwZGF0ZVRpdGxlKHNjcmlwdHVyZUNvbmZpZy5yZXNvdXJjZUxpbmssIHNjcmlwdHVyZVRpdGxlKVxuICB9IGVsc2Uge1xuICAgIHNjcmlwdHVyZVRpdGxlID0gYFRpdGxlIG1pc3NpbmcgZnJvbSBwcm9qZWN0IG1hbmlmZXN0YFxuICB9XG5cbiAgLyoqIER5bmFtaWNhbGx5IGNyZWF0ZXMgdGhlIHNjcmlwdHVyZSBzZWxlY3Rpb24gZHJvcGRvd24gdG8gYmUgaW5zZXJ0ZWQgaW50byBjYXJkIHNldHRpbmdzICovXG4gIGZ1bmN0aW9uIGdldFNjcmlwdHVyZVNlbGVjdG9yKCkge1xuICAgIGNvbnN0IHNjcmlwdHVyZVNlbGVjdGlvbkNvbmZpZyA9IGdldFNjcmlwdHVyZVZlcnNpb25TZXR0aW5ncyh7XG4gICAgICBsYWJlbCxcbiAgICAgIHJlc291cmNlTGluazogc2NyaXB0dXJlQ29uZmlnLnJlc291cmNlTGluayxcbiAgICAgIHNldFNjcmlwdHVyZSxcbiAgICAgIHNjcmlwdHVyZVZlcnNpb25IaXN0LFxuICAgIH0pXG5cbiAgICByZXR1cm4gPFNjcmlwdHVyZVNlbGVjdG9yIHsuLi5zY3JpcHR1cmVTZWxlY3Rpb25Db25maWd9IHN0eWxlPXtzdHlsZX0gZXJyb3JNZXNzYWdlPXt1cmxFcnJvcn0gLz5cbiAgfVxuXG4gIC8qKlxuICAgKiBzZXQgZWRpdCBzdGF0ZSBmb3Igc3BlY2lmaWMgdmVyc2VcbiAgICogQHBhcmFtIHtzdHJpbmd9IHZlcnNlUmVmIC0gcmVmZXJlbmNlIG9mIHZlcnNlIGJlaW5nIGVkaXRlZCBvciBmaW5pc2hlZCBlZGl0XG4gICAqIEBwYXJhbSB7Ym9vbGVhbn0gZWRpdGluZyAtIHRydWUgd2hlbiBlZGl0aW5nXG4gICAqL1xuICBmdW5jdGlvbiBzZXRFZGl0VmVyc2UodmVyc2VSZWYsIGVkaXRpbmcpIHtcbiAgICBpZiAoZWRpdGluZyAmJiAodmVyc2VSZWYgIT09IGVkaXRWZXJzZSkpIHsgLy8gY2hlY2sgaWYgd2UgbmVlZCB0byBzZXQgZmxhZyB0aGF0IHdlIGFyZSBlZGl0aW5nIHRoaXMgdmVyc2VcbiAgICAgIHNldFN0YXRlKHsgZWRpdFZlcnNlOiB2ZXJzZVJlZiB9KVxuICAgIH0gZWxzZSBpZiAoIWVkaXRpbmcgJiYgKHZlcnNlUmVmID09PSBlZGl0VmVyc2UpKSB7IC8vIGNsZWFyIGVkaXQgZmxhZyBpZiBpdCBpcyBmb3IgY3VycmVudCBlZGl0IHZlcnNlXG4gICAgICBzZXRTdGF0ZSh7IGVkaXRWZXJzZTogbnVsbCB9KVxuICAgIH1cbiAgfVxuXG4gIGNvbnN0IGRpc2FibGVDaGFuZ2VCdXR0b25zID0gISFlZGl0VmVyc2UgLy8gd2UgZG9uJ3Qgd2FudCB0byBhbGxvdyBjbGlja2luZyBvbiBjaGFuZ2UgYnV0dG9ucyB3aGlsZSBlZGl0aW5nXG5cbiAgZnVuY3Rpb24gb25NZW51Q2xvc2UoKSB7XG4gICAgLy8gY29uc29sZS5sb2coYG9uTWVudUNsb3NlKClgKVxuICAgIHNldFN0YXRlKHsgdXJsRXJyb3I6IG51bGwgfSlcbiAgfVxuXG4gIC8vIEB0cy1pZ25vcmVcbiAgY29uc3QgbGFuZ3VhZ2VJZF8gPSBzY3JpcHR1cmVDb25maWc/LnJlc291cmNlPy5sYW5ndWFnZUlkXG4gIGNvbnN0IGxhbmd1YWdlID0gZ2V0TGFuZ3VhZ2UoeyBsYW5ndWFnZUlkOiBsYW5ndWFnZUlkXyB9KVxuICBjb25zdCBkaXJlY3Rpb24gPSAobGFuZ3VhZ2U/LmRpcmVjdGlvbikgfHwgJ2x0cidcbiAgY29uc3QgX3JlZmVyZW5jZSA9IGN1cnJlbnRSZWZlcmVuY2UgfHwgcmVmZXJlbmNlXG5cbiAgY29uc3QgaXNIZWJyZXcgPSAobGFuZ3VhZ2VJZF8gPT09ICdoYm8nKVxuICBjb25zdCBmb250RmFjdG9yID0gaXNIZWJyZXcgPyAxLjQgOiAxIC8vIHdlIGF1dG9tYXRpY2FsbHkgc2NhbGUgdXAgZm9udCBzaXplIGZvciBIZWJyZXdcbiAgY29uc3Qgc2NhbGVkRm9udFNpemUgPSBmb250U2l6ZSAqIGZvbnRGYWN0b3JcblxuICBjb25zdCBpdGVtcyA9IG51bGxcbiAgY29uc3Qge1xuICAgIHN0YXRlOiB7XG4gICAgICBoZWFkZXJzLCBmaWx0ZXJzLCBpdGVtSW5kZXgsIG1hcmtkb3duVmlldyxcbiAgICB9LFxuICAgIGFjdGlvbnM6IHtcbiAgICAgIHNldEZpbHRlcnMsIHNldEl0ZW1JbmRleCwgc2V0TWFya2Rvd25WaWV3LFxuICAgIH0sXG4gIH0gPSB1c2VDYXJkU3RhdGUoeyBpdGVtcyB9KVxuXG4gIGNvbnN0IHJlZlN0eWxlID0gUmVhY3QudXNlTWVtbygoKSA9PiAoe1xuICAgIGZvbnRGYW1pbHk6ICdOb3RvIFNhbnMnLFxuICAgIGZvbnRTaXplOiBgJHtNYXRoLnJvdW5kKHNjYWxlZEZvbnRTaXplICogMC45KX0lYCxcbiAgfSksIFtzY2FsZWRGb250U2l6ZV0pXG5cbiAgY29uc3QgY29udGVudFN0eWxlID0gUmVhY3QudXNlTWVtbygoKSA9PiAoe1xuICAgIGZvbnRGYW1pbHk6ICdOb3RvIFNhbnMnLFxuICAgIGZvbnRTaXplOiBgJHtzY2FsZWRGb250U2l6ZX0lYCxcbiAgICAuLi4oaXNIZWJyZXcgPyB7bGluZUhlaWdodDogJzIuMGVtJ30gOiB7fSlcbiAgfSksIFtzY2FsZWRGb250U2l6ZV0pXG5cbiAgY29uc3Qgc2NyaXB0dXJlTGFiZWwgPSA8VGl0bGU+e3NjcmlwdHVyZVRpdGxlfTwvVGl0bGU+XG4gIGxldCBkaXNhYmxlV29yZFBvcG92ZXJfID0gZGlzYWJsZVdvcmRQb3BvdmVyXG5cbiAgaWYgKGRpc2FibGVXb3JkUG9wb3ZlciA9PT0gdW5kZWZpbmVkKSB7IC8vIGlmIG5vdCBzcGVjaWZpZWQsIHRoZW4gZGV0ZXJtaW5lIGlmIG9yaWdpbmFsIGxhbmd1YWdlIHJlc291cmNlXG4gICAgZGlzYWJsZVdvcmRQb3BvdmVyXyA9ICF1c2luZ09yaWdpbmFsQmlibGVcbiAgfVxuXG4gIGNvbnN0IGVuYWJsZUVkaXQgPSAhdXNpbmdPcmlnaW5hbEJpYmxlXG4gIGNvbnN0IGVuYWJsZUFsaWdubWVudCA9ICF1c2luZ09yaWdpbmFsQmlibGVcbiAgY29uc3Qgb3JpZ2luYWxSZXBvVXJsID0gaXNOZXdUZXN0YW1lbnQgPyBncmVla1JlcG9VcmwgOiBoZWJyZXdSZXBvVXJsXG4gIGNvbnN0IHNjcmlwdHVyZUFsaWdubWVudEVkaXRDb25maWcgPSB7XG4gICAgYXV0aGVudGljYXRpb246IGNhblVzZUVkaXRCcmFuY2ggPyBhdXRoZW50aWNhdGlvbiA6IG51bGwsXG4gICAgYm9va0luZGV4LFxuICAgIGN1cnJlbnRWZXJzZVJlZjogX3JlZmVyZW5jZSxcbiAgICBlbmFibGVFZGl0LFxuICAgIGVuYWJsZUFsaWdubWVudCxcbiAgICBodHRwQ29uZmlnLFxuICAgIC8vIEB0cy1pZ25vcmVcbiAgICBpc05ld1Rlc3RhbWVudCxcbiAgICBsb2dnZWRJblVzZXI6IGNhblVzZUVkaXRCcmFuY2ggPyBsb2dnZWRJblVzZXIgOiBudWxsLFxuICAgIG9yaWdpbmFsTGFuZ3VhZ2VPd25lcixcbiAgICAvLyBAdHMtaWdub3JlXG4gICAgb3JpZ2luYWxSZXBvVXJsLFxuICAgIHNjcmlwdHVyZUNvbmZpZyxcbiAgICBzY3JpcHR1cmVTZXR0aW5ncyxcbiAgICBzdGFydEVkaXRCcmFuY2gsXG4gICAgc2V0U2F2ZWRDaGFuZ2VzOiBfc2V0U2F2ZWRDaGFuZ2VzLFxuICAgIHNvdXJjZUxhbmd1YWdlOiBpc05UXyA/IE5UX09SSUdfTEFORyA6IE9UX09SSUdfTEFORyxcbiAgICB0YXJnZXRMYW5ndWFnZTogbGFuZ3VhZ2UsXG4gICAgdGl0bGU6IHNjcmlwdHVyZVRpdGxlLFxuICAgIHdvcmtpbmdSZXNvdXJjZUJyYW5jaDogcmVmLFxuICB9XG5cbiAgLyoqXG4gICAqIHRoaXMgZ2V0cyBjYWxsZWQgd2hlbmV2ZXIgYSBzY3JpcHR1cmUgcGFuZSBoYXMgYSBjaGFuZ2UgaW4gc2F2ZSBzdGF0ZVxuICAgKiBAcGFyYW0ge251bWJlcn0gY3VycmVudEluZGV4XG4gICAqIEBwYXJhbSB7Ym9vbGVhbn0gc2F2ZWRcbiAgICogQHBhcmFtIHtmdW5jdGlvbn0gZ2V0Q2hhbmdlcyAtIHdpbGwgYmUgY2FsbGVkIHdoZW5ldmVyIHVzZXIgY2xpY2tzIHNhdmUgYnV0dG9uXG4gICAqIEBwYXJhbSB7ZnVuY3Rpb259IGNsZWFyQ2hhbmdlcyAtIHdpbGwgYmUgY2FsbGVkIHdoZW5ldmVyIHNhdmUgaGFzIGNvbXBsZXRlZFxuICAgKiBAcGFyYW0ge29iamVjdH0gc3RhdGUgLSBjdXJyZW50IHN0YXRlIG9mIHdvcmQgYWxpZ25tZW50L2VkaXRcbiAgICovXG4gIGZ1bmN0aW9uIF9zZXRTYXZlZENoYW5nZXMoY3VycmVudEluZGV4LCBzYXZlZCwgeyBnZXRDaGFuZ2VzID0gbnVsbCwgY2xlYXJDaGFuZ2VzID0gbnVsbCwgc3RhdGUgPSBudWxsIH0pIHtcbiAgICBjb25zdCBfdW5zYXZlZENoYW5nZXNMaXN0ID0geyAuLi51bnNhdmVkQ2hhbmdlc0xpc3QgfVxuXG4gICAgaWYgKHNhdmVkKSB7XG4gICAgICBpZiAoX3Vuc2F2ZWRDaGFuZ2VzTGlzdC5oYXNPd25Qcm9wZXJ0eShjdXJyZW50SW5kZXgpKSB7XG4gICAgICAgIGRlbGV0ZSBfdW5zYXZlZENoYW5nZXNMaXN0W2N1cnJlbnRJbmRleF1cbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgX3Vuc2F2ZWRDaGFuZ2VzTGlzdFtjdXJyZW50SW5kZXhdID0geyBnZXRDaGFuZ2VzLCBjbGVhckNoYW5nZXMsIHN0YXRlIH0gLy8gdXBkYXRlIHdpdGggbGF0ZXN0XG4gICAgfVxuXG4gICAgY29uc3QgX2hhdmVVbnNhdmVkQ2hhbmdlcyA9ICEhT2JqZWN0LmtleXMoX3Vuc2F2ZWRDaGFuZ2VzTGlzdCkubGVuZ3RoXG5cbiAgICBpZiAoaGF2ZVVuc2F2ZWRDaGFuZ2VzICE9IF9oYXZlVW5zYXZlZENoYW5nZXMpIHtcbiAgICAgIHNldFNhdmVkQ2hhbmdlcyAmJiBzZXRTYXZlZENoYW5nZXMocmVzb3VyY2VJZCwgIV9oYXZlVW5zYXZlZENoYW5nZXMpXG4gICAgICBzZXRTdGF0ZSh7IGhhdmVVbnNhdmVkQ2hhbmdlczogX2hhdmVVbnNhdmVkQ2hhbmdlcyB9KVxuICAgIH1cblxuICAgIGlmICghaXNFcXVhbChfdW5zYXZlZENoYW5nZXNMaXN0LCB1bnNhdmVkQ2hhbmdlc0xpc3QpKSB7XG4gICAgICBzZXRTdGF0ZSh7IHVuc2F2ZWRDaGFuZ2VzTGlzdDogX3Vuc2F2ZWRDaGFuZ2VzTGlzdCB9KVxuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBzZWFyY2ggY2hhcHRlciBvciB2ZXJzZSBjaHVuayB0byBsaW5lIHRoYXQgc3RhcnRzIHdpdGggZmluZEl0ZW1cbiAgICogQHBhcmFtIHtudW1iZXJ8c3RyaW5nfSBmaW5kSXRlbVxuICAgKiBAcGFyYW0ge3N0cmluZ1tdfSBjaHVua3NcbiAgICovXG4gIGZ1bmN0aW9uIGZpbmRSZWZJbkFycmF5KGZpbmRJdGVtLCBjaHVua3MpIHtcbiAgICBjb25zdCByZWZfID0gZmluZEl0ZW0gKyAnJ1xuICAgIGNvbnN0IHJlZkxlbiA9IHJlZl8ubGVuZ3RoXG4gICAgY29uc3QgaW5kZXggPSBjaHVua3MuZmluZEluZGV4KChjaHVuaywgaWR4KSA9PiB7XG4gICAgICBpZiAoaWR4ID4gMCkge1xuICAgICAgICBpZiAoY2h1bmsuc3Vic3RyaW5nKDAsIHJlZkxlbikgPT09IHJlZl8pIHtcbiAgICAgICAgICBjb25zdCBuZXh0Q2hhciA9IGNodW5rW3JlZkxlbl1cblxuICAgICAgICAgIGlmICgobmV4dENoYXIgPiAnOScpIHx8IChuZXh0Q2hhciA8ICcwJykpIHtcbiAgICAgICAgICAgIHJldHVybiB0cnVlXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgICByZXR1cm4gZmFsc2VcbiAgICB9KVxuICAgIHJldHVybiBpbmRleFxuICB9XG5cbiAgZnVuY3Rpb24gZ2V0Qm9va05hbWUoKSB7XG4gICAgLy8gQHRzLWlnbm9yZVxuICAgIGNvbnN0IGJvb2tDYXBzID0gc2NyaXB0dXJlQ29uZmlnPy5yZWZlcmVuY2U/LmJvb2tJZCA/IHNjcmlwdHVyZUNvbmZpZy5yZWZlcmVuY2UuYm9va0lkLnRvVXBwZXJDYXNlKCkgOiAnJ1xuICAgIHJldHVybiBgJHtib29rSW5kZXh9LSR7Ym9va0NhcHN9LnVzZm1gXG4gIH1cblxuICBjb25zdCBmaWxlcGF0aCA9IGdldEJvb2tOYW1lKClcbiAgY29uc3Qgc2hhID0gZmV0Y2hlZFJlc291cmNlPy5zaGFcblxuICAvLyBrZWVwIHRyYWNrIG9mIHZlcnNlIGVkaXQgc3RhdGVcbiAgY29uc3Qge1xuICAgIGVycm9yOiBzYXZlRXJyb3IsXG4gICAgaXNFcnJvcjogaXNTYXZlRXJyb3IsXG4gICAgb25TYXZlRWRpdCxcbiAgICBvblNhdmVFZGl0UGF0Y2gsXG4gIH0gPSB1c2VFZGl0KHtcbiAgICBzaGEsXG4gICAgb3duZXIsXG4gICAgY29udGVudDogc2F2ZUNvbnRlbnQsXG4gICAgY29uZmlnOiB7XG4gICAgICBjYWNoZTogeyBtYXhBZ2U6IDAgfSxcbiAgICAgIC4uLmF1dGhlbnRpY2F0aW9uPy5jb25maWcsXG4gICAgICBkb250Q3JlYXRlQnJhbmNoOiB0cnVlLFxuICAgICAgdG9rZW46IGF1dGhlbnRpY2F0aW9uPy50b2tlbixcbiAgICAgIC8vIEB0cy1pZ25vcmVcbiAgICAgIHRpbWVvdXQ6IGh0dHBDb25maWc/LnNlcnZlclRpbWVPdXQgfHwgaHR0cENvbmZpZz8udGltZW91dCB8fCAxMDAwMCxcbiAgICAgIHNlcnZlcixcbiAgICB9LFxuICAgIGF1dGhvcjogbG9nZ2VkSW5Vc2VyLFxuICAgIGVtYWlsOiBhdXRoZW50aWNhdGlvbj8udXNlcj8uZW1haWwsXG4gICAgdG9rZW46IGF1dGhlbnRpY2F0aW9uPy50b2tlbixcbiAgICBicmFuY2g6IHdvcmtpbmdSZXNvdXJjZUJyYW5jaCxcbiAgICBmaWxlcGF0aCxcbiAgICByZXBvLFxuICB9KVxuXG4gIFJlYWN0LnVzZUVmZmVjdCgoKSA9PiB7IC8vIHdoZW4gd2UgZ2V0IGEgc2F2ZSBzYXZlRXJyb3JcbiAgICBpZiAoc2F2ZUVycm9yICYmIGlzU2F2ZUVycm9yICYmICFzdGFydFNhdmUpIHsgLy8gaWYgZXJyb3IgdGhlbiBzaG93IGFmdGVyIHNhdmUgY29tcGxldGVzLCBzaW5jZSB3ZSBtYXkgcmV0cnlcbiAgICAgIGNvbnNvbGUubG9nKGBzYXZlIGVycm9yYCwgc2F2ZUVycm9yKVxuICAgICAgb25SZXNvdXJjZUVycm9yICYmIG9uUmVzb3VyY2VFcnJvcihudWxsLCBmYWxzZSwgbnVsbCwgYEVycm9yIHNhdmluZyAke2xhbmd1YWdlSWRffV8ke3Jlc291cmNlSWR9ICR7c2F2ZUVycm9yfWAsIHRydWUpXG4gICAgfVxuICB9LCBbc2F2ZUVycm9yLCBpc1NhdmVFcnJvciwgc3RhcnRTYXZlXSlcblxuICBSZWFjdC51c2VFZmZlY3QoKCkgPT4geyAvLyB3aGVuIHN0YXJ0U2F2ZSBnb2VzIHRydWUsIHNhdmUgZWRpdHMgdG8gdXNlciBicmFuY2ggYW5kIHRoZW4gY2xlYXIgc3RhcnRTYXZlXG4gICAgZnVuY3Rpb24gX3NhdmVTdWNjZXNmdWwoKSB7XG4gICAgICBjb25zb2xlLmxvZyhgc2F2ZUNoYW5nZXNUb0Nsb3VkKCkgLSBzYXZlIHNjcmlwdHVyZSBlZGl0cyBzdWNjZXNzYClcbiAgICAgIHNldENhcmRzU2F2aW5nKHByZXZDYXJkc1NhdmluZyA9PiBwcmV2Q2FyZHNTYXZpbmcuZmlsdGVyKGNhcmRJZCA9PiBjYXJkSWQgIT09IGNhcmRSZXNvdXJjZUlkKSlcbiAgICAgIHNldFN0YXRlKHtcbiAgICAgICAgc3RhcnRTYXZlOiBmYWxzZSxcbiAgICAgIH0pXG5cbiAgICAgIGNvbnN0IHVuc2F2ZWRDYXJkSW5kaWNlcyA9IE9iamVjdC5rZXlzKHVuc2F2ZWRDaGFuZ2VzTGlzdClcblxuICAgICAgaWYgKHVuc2F2ZWRDYXJkSW5kaWNlcz8ubGVuZ3RoKSB7XG4gICAgICAgIGZvciAoY29uc3QgY2FyZEluZGV4IG9mIHVuc2F2ZWRDYXJkSW5kaWNlcykge1xuICAgICAgICAgIGNvbnN0IHtjbGVhckNoYW5nZXN9ID0gdW5zYXZlZENoYW5nZXNMaXN0W2NhcmRJbmRleF1cbiAgICAgICAgICBjbGVhckNoYW5nZXMgJiYgY2xlYXJDaGFuZ2VzKClcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICBjb25zb2xlLmluZm8oJ3NhdmVDaGFuZ2VzVG9DbG91ZCgpIC0gUmVsb2FkaW5nIHJlc291cmNlJylcbiAgICAgIHNldFN0YXRlKHtcbiAgICAgICAgc3RhcnRTYXZlOiBmYWxzZSxcbiAgICAgICAgcmVhZHlGb3JGZXRjaDogdHJ1ZSxcbiAgICAgICAgc2F2ZUZ1bGxCaWJsZUNvbnRlbnQ6IG51bGwsXG4gICAgICAgIHNhdmVDb250ZW50OiBudWxsLFxuICAgICAgICByZWY6IHVzZXJFZGl0QnJhbmNoTmFtZSxcbiAgICAgIH0pXG4gICAgICBkZWxheSgxMDApLnRoZW4oKCkgPT4ge1xuICAgICAgICBzZXRDYXJkc1NhdmluZyhwcmV2Q2FyZHNTYXZpbmcgPT4gcHJldkNhcmRzU2F2aW5nLmZpbHRlcihjYXJkSWQgPT4gY2FyZElkICE9PSBjYXJkUmVzb3VyY2VJZCkpXG4gICAgICAgIHNjcmlwdHVyZUNvbmZpZz8ucmVsb2FkUmVzb3VyY2Uoc2hhLCB1c2VyRWRpdEJyYW5jaE5hbWUpXG4gICAgICB9KVxuICAgICAgcmV0dXJuIHRydWVcbiAgICB9XG5cbiAgICBmdW5jdGlvbiBsb2dDaGFuZ2VkKGNvbW1lbnQsIGluaXRpYWwsIGZpbmFsLCBkaWZmLCBzaGEpIHtcbiAgICAgIGNvbnNvbGUuZXJyb3IoYCR7Y29tbWVudH0gLSBzaGE6YCwgc2hhKVxuICAgICAgY29uc29sZS5lcnJvcihgaW5pdGlhbGAsIGluaXRpYWwpXG4gICAgICBjb25zb2xlLmVycm9yKGBmaW5hbGAsIGZpbmFsKVxuICAgICAgY29uc29sZS5lcnJvcihgZGlmZmAsIGRpZmYpXG4gICAgfVxuXG4gICAgY29uc3QgX3NhdmVFZGl0ID0gYXN5bmMgKCkgPT4geyAvLyBiZWdpbiB1cGxvYWRpbmcgbmV3IFVTRk1cbiAgICAgIGNvbnNvbGUuaW5mbyhgc2F2ZUNoYW5nZXNUb0Nsb3VkKCkgLSBVc2luZyBzaGE6ICR7c2hhfWApXG4gICAgICBsZXQgdXBsb2FkRnVuY3Rpb24gPSBvblNhdmVFZGl0XG4gICAgICBpZiAoc2F2ZURpZmZQYXRjaCkge1xuICAgICAgICB1cGxvYWRGdW5jdGlvbiA9IG9uU2F2ZUVkaXRQYXRjaCAvLyBpZiB3ZSBhcmUgc2VuZGluZyB1cCBhIGRpZmZwYXRjaCwgd2Ugd2lsbCB1c2UgdGhpcyBtZXRob2RcbiAgICAgIH1cbiAgICAgIGxldCBzdWNjZXNzID0gYXdhaXQgdXBsb2FkRnVuY3Rpb24odXNlckVkaXRCcmFuY2hOYW1lKS8vIHB1c2ggY2hhbmdlIHRvIHNlcnZlclxuICAgICAgbGV0IGVycm9yID0gc3VjY2VzcyA/IG51bGwgOiAnc2F2aW5nIGNoYW5nZWQgc2NyaXB0dXJlIGZhaWxlZCdcblxuICAgICAgaWYgKCFzdWNjZXNzKSB7IC8vIGlmIHNhdmUgZmFpbGVkLCBhdHRlbXB0IGEgcmV0cnlcbiAgICAgICAgbG9nQ2hhbmdlZCgnc2F2ZUNoYW5nZXNUb0Nsb3VkKCkgLSBzYXZpbmcgY2hhbmdlZCBzY3JpcHR1cmUgZmFpbGVkLCBzZW50Jywgc2F2ZUZ1bGxCaWJsZUNvbnRlbnQ/LmluaXRpYWwsIHNhdmVGdWxsQmlibGVDb250ZW50Py5uZXcsIHNhdmVDb250ZW50LCBzaGEpXG4gICAgICAgIGNvbnNvbGUuZXJyb3IoYHNhdmVDaGFuZ2VzVG9DbG91ZCgpIC0gc2F2aW5nIGNoYW5nZWQgc2NyaXB0dXJlIGZhaWxlZCwgcmV0cnlpbmcgLSBjb250ZXh0IGxpbmVzIGFyZSAke2NvbnRleHRMaW5lc31gKVxuICAgICAgICBhd2FpdCBkZWxheSg1MDApIC8vIHNpbmNlIHdlIGhhZCBhbiBlcnJvciwgd2FpdCBmb3IgZGF0YSB0byB1cGRhdGUgb24gc2VydmVyIGJlZm9yZSBnZXR0aW5nIHRoZSBsYXRlc3RcbiAgICAgICAgLy8gQHRzLWlnbm9yZVxuICAgICAgICAvLyBmZXRjaCB0aGUgbGF0ZXN0IGJvb2sgY29udGVudCwgc28gd2UgY2FuIHRlbGwgaWYgbGF0ZXN0IGNoYW5nZXMgd2VyZSBzYXZlZCBhbmQgaGF2ZSB0aGUgbGF0ZXN0IGZpbGUgc2hhXG4gICAgICAgIGNvbnN0IHJlc3VsdHMgPSBhd2FpdCBmZXRjaEJpYmxlQm9vayhzZXJ2ZXIsIGh0dHBDb25maWcsIHNjcmlwdHVyZUNvbmZpZz8ucmVzb3VyY2UsIHNjcmlwdHVyZUNvbmZpZz8ucmVmZXJlbmNlKVxuICAgICAgICBlcnJvciA9IHJlc3VsdHM/LmVycm9yXG4gICAgICAgIGxldCBfc2F2ZUNvbnRlbnQgPSBzYXZlQ29udGVudFxuICAgICAgICBsZXQgZmlsZVNoYSA9IG51bGxcbiAgICAgICAgY29uc3Qgc2F2ZWRCaWJsZVVzZm0gPSByZXN1bHRzPy5iaWJsZVVzZm1cbiAgICAgICAgY29uc3QgZWRpdGVkQmlibGVVc2ZtID0gc2F2ZUZ1bGxCaWJsZUNvbnRlbnQ/Lm5ld1xuICAgICAgICBsZXQgdXBUb0RhdGUgPSBzYXZlZEJpYmxlVXNmbSA9PT0gZWRpdGVkQmlibGVVc2ZtIC8vIGNoZWNrIGlmIG5ldyBiaWJsZSBjb250ZW50IGRpZmZlcnMgZnJvbSBsYXRlc3Qgb24gcmVwb1xuXG4gICAgICAgIGlmICghZXJyb3IpIHtcbiAgICAgICAgICBpZiAodXBUb0RhdGUpIHsgLy8gaWYgdGhlIGRhdGEgd2UgYXJlIHRyeWluZyB0byBzYXZlIG1hdGNoZXMgd2hhdCBpcyBub3cgb24gdGhlIHNlcnZlciB0aGVyZSBpcyBub3RoaW5nIHRvIGRvXG4gICAgICAgICAgICBjb25zb2xlLmxvZygnc2F2ZUNoYW5nZXNUb0Nsb3VkKCkgLSBkYXRhIHdhcyBjb3JyZWN0bHkgdXBsb2FkZWQsIHNvIG5vdGhpbmcgbW9yZSB0byBkbycpXG4gICAgICAgICAgICBzdWNjZXNzID0gdHJ1ZVxuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBsZXQgbmV3Q29udGV4dExpbmVzID0gY29udGV4dExpbmVzICsgMVxuICAgICAgICAgICAgaWYgKHNhdmVEaWZmUGF0Y2gpIHtcbiAgICAgICAgICAgICAgYXdhaXQgZGVsYXkoMTAwKSAvLyBhbGxvdyBVSSB0byB1cGRhdGUgYmVmb3JlIHJ1bm5pbmcgY29tcHV0YXRpb25hbGx5IGV4cGVuc2l2ZSBmdW5jdGlvblxuICAgICAgICAgICAgICAvLyByZWdlbmVyYXRlIHRoZSBwYXRjaCBhZ2FpbnN0IHRoZSBsYXRlc3QgY29udGVudCBhbmQgYWRkIG1vcmUgbGluZXMgb2YgY29udGV4dFxuICAgICAgICAgICAgICAvLyBUUklDS1kgLSB3ZSBoYXZlIG5vdGljZWQgdGhhdCBEQ1Mgd2lsbCBmYWlsIHRoZSBwYXRjaCBzb21ldGltZXMsIGJ1dCBpZiB3ZSBpbmNyZWFzZSB0aGUgY29udGV4dCBsaW5lIGNvdW50IGl0IHdpbGwgc3VjY2VlZCwgc28gd2UgYXJlIGluY3JlYXNpbmcgdGhlIGNvbnRleHQgbGluZSBjb3VudFxuICAgICAgICAgICAgICBjb25zb2xlLmxvZyhgc2F2ZUNoYW5nZXNUb0Nsb3VkKCkgLSBjb250ZXh0IGxpbmVzIGFyZSBub3cgJHtuZXdDb250ZXh0TGluZXN9YClcbiAgICAgICAgICAgICAgY29uc3QgZGlmZlBhdGNoID0gZ2V0UGF0Y2goc2F2ZUZ1bGxCaWJsZUNvbnRlbnQ/LmZpbGVuYW1lLCBzYXZlZEJpYmxlVXNmbSwgZWRpdGVkQmlibGVVc2ZtLCBmYWxzZSwgbmV3Q29udGV4dExpbmVzKVxuICAgICAgICAgICAgICBfc2F2ZUNvbnRlbnQgPSBkaWZmUGF0Y2hcbiAgICAgICAgICAgICAgZmlsZVNoYSA9IHJlc3VsdHM/LnNoYVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBzdWNjZXNzID0gYXdhaXQgdXBsb2FkRnVuY3Rpb24odXNlckVkaXRCcmFuY2hOYW1lLCBfc2F2ZUNvbnRlbnQsIGZpbGVTaGEpIC8vIHB1c2ggY2hhbmdlIHRvIHNlcnZlclxuICAgICAgICAgICAgaWYgKCFzdWNjZXNzKSB7XG4gICAgICAgICAgICAgIGxvZ0NoYW5nZWQoJ3NhdmVDaGFuZ2VzVG9DbG91ZCgpIC0gc2F2aW5nIGNoYW5nZWQgc2NyaXB0dXJlIGZhaWxlZCBvbiBzZWNvbmQgYXR0ZW1wdCwgc2VudCcsIHNhdmVkQmlibGVVc2ZtLCBlZGl0ZWRCaWJsZVVzZm0sIF9zYXZlQ29udGVudCwgZmlsZVNoYSlcbiAgICAgICAgICAgICAgZXJyb3IgPSAnc2F2aW5nIGNoYW5nZWQgc2NyaXB0dXJlIGZhaWxlZCBvbiBzZWNvbmQgYXR0ZW1wdCdcbiAgICAgICAgICAgICAgbmV3Q29udGV4dExpbmVzKysgLy8gaWYgZmFpbGVkIGluY3JlYXNlIHRoZSBjb3VudCBmb3IgbmV4dCBhdHRlbXB0XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICBjb25zb2xlLmxvZygnc2F2ZUNoYW5nZXNUb0Nsb3VkKCkgLSBzYXZlIHN1Y2Nlc3NmdWwgb24gc2Vjb25kIGF0dGVtcHQnKVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKG5ld0NvbnRleHRMaW5lcyA+IDEwKSB7XG4gICAgICAgICAgICAgIG5ld0NvbnRleHRMaW5lcyA9IDRcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHNldFN0YXRlKHtjb250ZXh0TGluZXM6IG5ld0NvbnRleHRMaW5lc30pXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBjb25zb2xlLmxvZyhgc2F2ZUNoYW5nZXNUb0Nsb3VkKCkgLSBzdWNjZXNzIHdpdGggZGlmZmAsIHNhdmVDb250ZW50KVxuICAgICAgfVxuXG4gICAgICBpZiAoIWVycm9yICYmIHN1Y2Nlc3MpIHsgLy8gaWYgbm8gZXJyb3IgbWVzc2FnZSBhbmQgc2F2ZSB3YXMgYSBzdWNjZXNzXG4gICAgICAgIHJldHVybiBfc2F2ZVN1Y2Nlc2Z1bCgpIC8vIG5vdGhpbmcgdG8gZG9cbiAgICAgIH1cblxuICAgICAgY29uc29sZS5lcnJvcihgc2F2ZUNoYW5nZXNUb0Nsb3VkKCkgLSAke2Vycm9yIHx8ICd1bmtub3duIHNhdmUgZXJyb3InfWApXG4gICAgICBzZXRDYXJkc1NhdmluZyhwcmV2Q2FyZHNTYXZpbmcgPT4gcHJldkNhcmRzU2F2aW5nLmZpbHRlcihjYXJkSWQgPT4gY2FyZElkICE9PSBjYXJkUmVzb3VyY2VJZCkpXG4gICAgICBzZXRTdGF0ZSh7c3RhcnRTYXZlOiBmYWxzZX0pXG4gICAgICByZXR1cm4gZmFsc2VcbiAgICB9XG5cbiAgICBpZiAoc3RhcnRTYXZlKSB7XG4gICAgICBpZiAoIWVkaXRCcmFuY2hSZWFkeSkge1xuICAgICAgICAvLyBjb25zb2xlLmxvZyhgc2F2ZUNoYW5nZXNUb0Nsb3VkIC0gZWRpdCBicmFuY2ggbm90IHlldCBjcmVhdGVkYClcbiAgICAgIH0gZWxzZSBpZiAoIXNoYSkge1xuICAgICAgICAvLyBjb25zb2xlLmxvZyhgc2F2ZUNoYW5nZXNUb0Nsb3VkIC0gc2F2ZSBzaGEgbm90IHlldCByZWFkeWApXG4gICAgICB9IGVsc2Uge1xuICAgICAgICAvLyBjb25zb2xlLmxvZyhgc2F2ZUNoYW5nZXNUb0Nsb3VkIC0gY2FsbGluZyBfc2F2ZUVkaXQoKWApXG4gICAgICAgIHNldENhcmRzU2F2aW5nKHByZXZDYXJkc1NhdmluZyA9PiBbLi4ucHJldkNhcmRzU2F2aW5nLCBjYXJkUmVzb3VyY2VJZF0pXG4gICAgICAgIF9zYXZlRWRpdCgpXG4gICAgICB9XG4gICAgfVxuICB9LCBbc3RhcnRTYXZlLCBlZGl0QnJhbmNoUmVhZHksIHNoYV0pXG5cbiAgLyoqXG4gICAqIGNvbnZlcnQgdXBkYXRlZFZlcnNlT2JqZWN0cyB0byBVU0ZNIGFuZCBtZXJnZSBpbnRvIHRoZSBiaWJsZVVzZm1cbiAgICogQHBhcmFtIHtzdHJpbmd9IGJpYmxlVXNmbSAtIFVTRk0gb2YgYmlibGVcbiAgICogQHBhcmFtIHtTY3JpcHR1cmVSZWZlcmVuY2VUeXBlfSByZWYgLSByZWZlcmVuY2Ugb2YgdmVyc2UgdG8gbWVyZ2UgaW5cbiAgICogQHBhcmFtIHtWZXJzZU9iamVjdHNUeXBlfSB1cGRhdGVkVmVyc2VPYmplY3RzIC0gbmV3IHZlcnNlIGluIHZlcnNlT2JqZWN0IGZvcm1hdFxuICAgKiBAcGFyYW0ge251bWJlcn0gY2FyZE51bVxuICAgKi9cbiAgZnVuY3Rpb24gbWVyZ2VWZXJzZU9iamVjdHNJbnRvQmlibGVVc2ZtKGJpYmxlVXNmbTogc3RyaW5nLCByZWY6IFNjcmlwdHVyZVJlZmVyZW5jZVR5cGUsIHVwZGF0ZWRWZXJzZU9iamVjdHM6IFZlcnNlT2JqZWN0c1R5cGUsIGNhcmROdW06IG51bWJlcikge1xuICAgIGxldCBuZXdVc2ZtXG4gICAgY29uc3QgY2hhcHRlckNodW5rcyA9IGJpYmxlVXNmbT8uc3BsaXQoJ1xcXFxjICcpXG4gICAgY29uc3QgY2hhcHRlckluZGV4ID0gZmluZFJlZkluQXJyYXkocmVmPy5jaGFwdGVyLCBjaGFwdGVyQ2h1bmtzKVxuXG4gICAgaWYgKGNoYXB0ZXJJbmRleCA+PSAwKSB7XG4gICAgICBjb25zdCBjdXJyZW50Q2hhcHRlciA9IGNoYXB0ZXJDaHVua3NbY2hhcHRlckluZGV4XVxuICAgICAgbGV0IHZlcnNlQ2h1bmtzID0gY3VycmVudENoYXB0ZXIuc3BsaXQoJ1xcXFx2ICcpXG4gICAgICBjb25zdCB2ZXJzZUluZGV4ID0gZmluZFJlZkluQXJyYXkocmVmPy52ZXJzZSwgdmVyc2VDaHVua3MpXG4gICAgICBjb25zdCBmcm9udE1hdHRlciA9IHJlZj8udmVyc2UgPT09ICdmcm9udCdcblxuICAgICAgaWYgKGZyb250TWF0dGVyIHx8IHZlcnNlSW5kZXggPj0gMCkge1xuICAgICAgICBjb25zdCBuZXdWZXJzZVVzZm0gPSBVc2ZtRmlsZUNvbnZlcnNpb25IZWxwZXJzLmNvbnZlcnRWZXJzZURhdGFUb1VTRk0odXBkYXRlZFZlcnNlT2JqZWN0cylcbiAgICAgICAgY29uc29sZS5sb2coYHNhdmVDaGFuZ2VzVG9DbG91ZCgpIC0gbmV3IFVTRk0gZm9yIGNhcmQgJHtjYXJkTnVtfSwgdmVyc2UgJHtyZWY/LnZlcnNlfTp9IC0gJHtuZXdWZXJzZVVzZm0uc3Vic3RyaW5nKDAsIDEwMCl9YClcbiAgICAgICAgaWYgKGZyb250TWF0dGVyKSB7IC8vIGZyb250IG1hdHRlciBnb2VzIGJlZm9yZSBmaXJzdCB2ZXJzZVxuICAgICAgICAgIGNvbnN0IG9sZFZlcnNlID0gdmVyc2VDaHVua3NbMF1cbiAgICAgICAgICBjb25zdCBwcmVmaXhMZW4gPSBvbGRWZXJzZS5pbmRleE9mKCdcXG4nKSAvLyBjaGFyYWN0ZXJzIGJlZm9yZSB0aGUgZnJvbnQgbWF0dGVyIHRleHRcbiAgICAgICAgICB2ZXJzZUNodW5rc1swXSA9IG9sZFZlcnNlLnN1YnN0cmluZygwLCBwcmVmaXhMZW4gKyAxKSArIG5ld1ZlcnNlVXNmbVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGNvbnN0IG9sZFZlcnNlID0gdmVyc2VDaHVua3NbdmVyc2VJbmRleF1cbiAgICAgICAgICBjb25zdCB2ZXJzZU51bUxlbiA9IChyZWY/LnZlcnNlICsgJycpLmxlbmd0aCAvLyBjaGFyYWN0ZXJzIGJlZm9yZSB0aGUgdmVyc2UgdGV4dFxuICAgICAgICAgIHZlcnNlQ2h1bmtzW3ZlcnNlSW5kZXhdID0gb2xkVmVyc2Uuc3Vic3RyaW5nKDAsIHZlcnNlTnVtTGVuICsgMSkgKyBuZXdWZXJzZVVzZm1cbiAgICAgICAgfVxuICAgICAgICBjb25zdCBuZXdDaGFwdGVyID0gdmVyc2VDaHVua3Muam9pbignXFxcXHYgJylcbiAgICAgICAgY2hhcHRlckNodW5rc1tjaGFwdGVySW5kZXhdID0gbmV3Q2hhcHRlclxuICAgICAgICBuZXdVc2ZtID0gY2hhcHRlckNodW5rcy5qb2luKCdcXFxcYyAnKVxuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gbmV3VXNmbVxuICB9XG5cbiAgUmVhY3QudXNlRWZmZWN0KCgpID0+IHsgLy8gZm9yIGVhY2ggdW5zYXZlZCBjaGFuZ2UsIGNhbGwgaW50byBzY3JpcHR1cmVQYW5lIHRvIGdldCBsYXRlc3QgY2hhbmdlcyBmb3IgdmVyc2UgdG8gc2F2ZVxuICAgIGFzeW5jIGZ1bmN0aW9uIGdldFJlYWR5Rm9yU2F2ZSgpIHtcbiAgICAgIGlmIChzYXZlQ2xpY2tlZCkge1xuICAgICAgICBsZXQgY3JlYXRlRWRpdEJyYW5jaCA9ICFfdXNpbmdVc2VyQnJhbmNoXG5cbiAgICAgICAgaWYgKCFjcmVhdGVFZGl0QnJhbmNoKSB7IC8vIGlmIGFscmVhZHkgdXNpbmcgdGhlIHVzZXIgYnJhbmNoXG4gICAgICAgICAgaWYgKHdvcmtpbmdSZXNvdXJjZUJyYW5jaCAhPT0gdXNlckVkaXRCcmFuY2hOYW1lKSB7XG4gICAgICAgICAgICBjb25zb2xlLndhcm4oYHNhdmVDaGFuZ2VzVG9DbG91ZCAtIHN0YXRlIGNvbmZsaWN0IC0gc2hvdWxkIGJlIGluIHVzZXIgYnJhbmNoICR7dXNlckVkaXRCcmFuY2hOYW1lfSwgYnV0IGFjdHVhbGx5IHVzaW5nICR7d29ya2luZ1Jlc291cmNlQnJhbmNofWApXG4gICAgICAgICAgICBjcmVhdGVFZGl0QnJhbmNoID0gdHJ1ZVxuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBjb25zb2xlLmxvZyhgc2F2ZUNoYW5nZXNUb0Nsb3VkIC0gYWxyZWFkeSB1c2luZyBlZGl0IGJyYW5jaDogJHt3b3JraW5nUmVzb3VyY2VCcmFuY2h9YClcbiAgICAgICAgICAgIHNldFN0YXRlKHsgZWRpdEJyYW5jaFJlYWR5OiB0cnVlIH0pXG4gICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgaWYgKGNyZWF0ZUVkaXRCcmFuY2gpIHsgLy8gaWYgbm90IHlldCB1c2luZyB0aGUgdXNlciBicmFuY2gsIGNyZWF0ZSBpdFxuICAgICAgICAgIGNvbnNvbGUubG9nKGBzYXZlQ2hhbmdlc1RvQ2xvdWQgLSBjcmVhdGluZyBlZGl0IGJyYW5jaGApXG4gICAgICAgICAgc2V0U3RhdGUoe1xuICAgICAgICAgICAgZWRpdEJyYW5jaFJlYWR5OiBmYWxzZSxcbiAgICAgICAgICAgIHJlYWR5Rm9yRmV0Y2g6IGZhbHNlLFxuICAgICAgICAgICAgc2hhOiBudWxsLFxuICAgICAgICAgIH0pIC8vIHdlIHdpbGwgbmVlZCBhIG5ldyBzaGEgZm9yIGJvb2svYnJhbmNoXG5cbiAgICAgICAgICBjb25zdCBicmFuY2ggPSBhd2FpdCBzdGFydEVkaXRCcmFuY2goKVxuXG4gICAgICAgICAgaWYgKGJyYW5jaCkge1xuICAgICAgICAgICAgY29uc29sZS5sb2coYHNhdmVDaGFuZ2VzVG9DbG91ZCAtIGVkaXQgYnJhbmNoIGNyZWF0ZWRgKVxuICAgICAgICAgICAgc2V0U3RhdGUoe1xuICAgICAgICAgICAgICBlZGl0QnJhbmNoUmVhZHk6IHRydWUsXG4gICAgICAgICAgICAgIHJlYWR5Rm9yRmV0Y2g6IHRydWUsXG4gICAgICAgICAgICAgIHJlZjogYnJhbmNoLFxuICAgICAgICAgICAgfSlcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgY29uc29sZS5lcnJvcignc2F2ZUNoYW5nZXNUb0Nsb3VkKCkgLSBlcnJvciBjcmVhdGluZyBlZGl0IGJyYW5jaCcpXG4gICAgICAgICAgICBvblJlc291cmNlRXJyb3IgJiYgb25SZXNvdXJjZUVycm9yKG51bGwsIGZhbHNlLCBudWxsLCBgRXJyb3IgY3JlYXRpbmcgZWRpdCBicmFuY2ggJHtsYW5ndWFnZUlkX31fJHtyZXNvdXJjZUlkfWAsIHRydWUpXG4gICAgICAgICAgICBzZXRTdGF0ZSh7IHNhdmVDbGlja2VkOiBmYWxzZSB9KVxuICAgICAgICAgICAgcmV0dXJuXG4gICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgY29uc29sZS5sb2coYHNhdmVDaGFuZ2VzVG9DbG91ZCAtIGdldHRpbmcgdmVyc2UgY2hhbmdlc2ApXG4gICAgICAgIGNvbnN0IHVuc2F2ZWRDYXJkSW5kaWNlcyA9IE9iamVjdC5rZXlzKHVuc2F2ZWRDaGFuZ2VzTGlzdClcblxuICAgICAgICBpZiAodW5zYXZlZENhcmRJbmRpY2VzPy5sZW5ndGgpIHtcbiAgICAgICAgICBsZXQgYmlibGVVc2ZtSW5pdGlhbCA9IGdldEN1cnJlbnRCb29rKHNjcmlwdHVyZUNvbmZpZywgYm9va0lkKSAvLyBnZXQgb3JpZ2luYWwgVVNGTVxuICAgICAgICAgIGxldCBiaWJsZVVzZm1OZXcgPSBiaWJsZVVzZm1Jbml0aWFsIC8vIG1ha2UgYSBjb3B5IHRvIGVkaXRcbiAgICAgICAgICBsZXQgbWVyZ2VGYWlsID0gZmFsc2VcblxuICAgICAgICAgIGlmIChiaWJsZVVzZm1Jbml0aWFsKSB7XG4gICAgICAgICAgICBsZXQgY2FyZE51bSA9IDBcblxuICAgICAgICAgICAgZm9yIChjb25zdCBjYXJkSW5kZXggb2YgdW5zYXZlZENhcmRJbmRpY2VzKSB7XG4gICAgICAgICAgICAgIGNhcmROdW0gPSBwYXJzZUludChjYXJkSW5kZXgpXG4gICAgICAgICAgICAgIGNvbnN0IHsgZ2V0Q2hhbmdlcywgc3RhdGUgfSA9IHVuc2F2ZWRDaGFuZ2VzTGlzdFtjYXJkTnVtXVxuXG4gICAgICAgICAgICAgIGlmIChnZXRDaGFuZ2VzKSB7XG4gICAgICAgICAgICAgICAgbGV0IG5ld1VzZm1cbiAgICAgICAgICAgICAgICBjb25zdCB7XG4gICAgICAgICAgICAgICAgICByZWYsXG4gICAgICAgICAgICAgICAgICB1cGRhdGVkVmVyc2VPYmplY3RzLFxuICAgICAgICAgICAgICAgIH0gPSBnZXRDaGFuZ2VzKHN0YXRlKVxuXG4gICAgICAgICAgICAgICAgaWYgKHVwZGF0ZWRWZXJzZU9iamVjdHMgJiYgYmlibGVVc2ZtTmV3KSB7IC8vIGp1c3QgcmVwbGFjZSB2ZXJzZVxuICAgICAgICAgICAgICAgICAgbmV3VXNmbSA9IG1lcmdlVmVyc2VPYmplY3RzSW50b0JpYmxlVXNmbShiaWJsZVVzZm1OZXcsIHJlZiwgdXBkYXRlZFZlcnNlT2JqZWN0cywgY2FyZE51bSlcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICBpZiAobmV3VXNmbSkge1xuICAgICAgICAgICAgICAgICAgYmlibGVVc2ZtTmV3ID0gbmV3VXNmbVxuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICBtZXJnZUZhaWwgPSB0cnVlXG4gICAgICAgICAgICAgICAgICBicmVha1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cblxuICAgICAgICAgIGxldCBzYXZlRGlmZlBhdGNoID0gZmFsc2UgLy8gaWYgdHJ1ZSB0aGVuIHdlIHdpbGwgc2VuZCB1cCBhIGRpZmZwYXRjaCBpbnN0ZWFkIG9mIHRoZSB3aG9sZSBib29rXG4gICAgICAgICAgbGV0IF9zYXZlRnVsbEJpYmxlQ29udGVudCA9IG51bGxcbiAgICAgICAgICBsZXQgX3NhdmVDb250ZW50ID0gYmlibGVVc2ZtTmV3XG5cbiAgICAgICAgICBpZiAobWVyZ2VGYWlsKSB7IC8vIGlmIHdlIGZhaWxlZCB0byBtZXJnZSwgZmFsbGJhY2sgdG8gYnJ1dGUgZm9yY2UgdmVyc2Ugb2JqZWN0cyB0byBVU0ZNXG4gICAgICAgICAgICBjb25zb2xlLmxvZyhgc2F2ZUNoYW5nZXNUb0Nsb3VkKCR7Y2FyZE51bX0pIC0gdmVyc2Ugbm90IGZvdW5kLCBmYWxsaW5nIGJhY2sgdG8gaW5zZXJ0aW5nIHZlcnNlIG9iamVjdGApXG4gICAgICAgICAgICBsZXQgbmV3Qm9va0pzb25cblxuICAgICAgICAgICAgZm9yIChjb25zdCBjYXJkSW5kZXggb2YgdW5zYXZlZENhcmRJbmRpY2VzKSB7XG4gICAgICAgICAgICAgIGNvbnN0IGNhcmROdW0gPSBwYXJzZUludChjYXJkSW5kZXgpXG4gICAgICAgICAgICAgIGNvbnN0IHsgZ2V0Q2hhbmdlcywgc3RhdGUgfSA9IHVuc2F2ZWRDaGFuZ2VzTGlzdFtjYXJkTnVtXVxuXG4gICAgICAgICAgICAgIGlmIChnZXRDaGFuZ2VzKSB7XG4gICAgICAgICAgICAgICAgbGV0IG5ld1VzZm1cbiAgICAgICAgICAgICAgICBjb25zdCB7XG4gICAgICAgICAgICAgICAgICBuZXdWZXJzZVRleHQsXG4gICAgICAgICAgICAgICAgICByZWYsXG4gICAgICAgICAgICAgICAgICB1cGRhdGVkVmVyc2VPYmplY3RzLFxuICAgICAgICAgICAgICAgIH0gPSBnZXRDaGFuZ2VzKHN0YXRlKVxuXG4gICAgICAgICAgICAgICAgaWYgKHVwZGF0ZWRWZXJzZU9iamVjdHMgJiYgIW5ld1VzZm0pIHtcbiAgICAgICAgICAgICAgICAgIGxldCB0YXJnZXRWZXJzZU9iamVjdHNfID0gbnVsbFxuXG4gICAgICAgICAgICAgICAgICBpZiAocmVmKSB7XG4gICAgICAgICAgICAgICAgICAgIGlmIChuZXdWZXJzZVRleHQpIHtcbiAgICAgICAgICAgICAgICAgICAgICBjb25zdCB7IHRhcmdldFZlcnNlT2JqZWN0cyB9ID0gQWxpZ25tZW50SGVscGVycy51cGRhdGVBbGlnbm1lbnRzVG9UYXJnZXRWZXJzZSh1cGRhdGVkVmVyc2VPYmplY3RzLCBuZXdWZXJzZVRleHQpXG4gICAgICAgICAgICAgICAgICAgICAgdGFyZ2V0VmVyc2VPYmplY3RzXyA9IHRhcmdldFZlcnNlT2JqZWN0c1xuICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgIHRhcmdldFZlcnNlT2JqZWN0c18gPSB1cGRhdGVkVmVyc2VPYmplY3RzXG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgbmV3Qm9va0pzb24gPSB0YXJnZXRWZXJzZU9iamVjdHNfICYmIHNjcmlwdHVyZUNvbmZpZz8udXBkYXRlVmVyc2UocmVmLmNoYXB0ZXIsIHJlZi52ZXJzZSwge3ZlcnNlT2JqZWN0czogdGFyZ2V0VmVyc2VPYmplY3RzX30pXG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIF9zYXZlQ29udGVudCA9IHVzZm1qcy50b1VTRk0obmV3Qm9va0pzb24sIHsgZm9yY2VkTmV3TGluZXM6IHRydWUgfSlcbiAgICAgICAgICB9IGVsc2UgeyAvLyBpZiBvbmx5IGNoYW5nZWQgYSBmZXcgdmVyc2VzLCB3ZSB3aWxsIGp1c3QgbWFrZSBhIGRpZmZwYXRjaCBpbnN0ZWFkIG9mIHNlbmRpbmcgdGhlIHdob2xlIGJvb2tcbiAgICAgICAgICAgIGNvbnN0IGZpbGVuYW1lID0gc2NyaXB0dXJlQ29uZmlnPy5yZXNvdXJjZVN0YXRlPy5yZXNvdXJjZT8ubmFtZSAvLyBMaWtlIFwiNTctVElULnVzZm1cIlxuICAgICAgICAgICAgaWYgKGZpbGVuYW1lICYmIGJpYmxlVXNmbU5ldyAmJiBiaWJsZVVzZm1Jbml0aWFsKSB7IC8vIG1ha2Ugc3VyZSB3ZSBoYXZlIGV2ZXJ5dGhpbmcgbmVlZGVkIHRvIG1ha2UgYSBwYXRjaFxuICAgICAgICAgICAgICBpZiAoYmlibGVVc2ZtSW5pdGlhbCA9PT0gYmlibGVVc2ZtTmV3KSB7IC8vIGlmIG5vIGRhdGEgY2hhbmdlLCB0aGVuIHNraXAgc2F2ZSBiZWNhdXNlIERDUyBjcmFzaGVzIG9uIGFuIGVtcHR5IHBhdGNoXG4gICAgICAgICAgICAgICAgY29uc29sZS53YXJuKGBzYXZlQ2hhbmdlc1RvQ2xvdWQoKSAtIHRoZXJlIGlzIG5vdGhpbmcgdG8gc2F2ZSwgc2tpcHBpbmdgKVxuICAgICAgICAgICAgICAgIHNldFN0YXRlKHsgc2F2ZUNsaWNrZWQ6IGZhbHNlIH0pXG4gICAgICAgICAgICAgICAgcmV0dXJuXG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgY29uc3QgZGlmZlBhdGNoID0gZ2V0UGF0Y2goZmlsZW5hbWUsIGJpYmxlVXNmbUluaXRpYWwsIGJpYmxlVXNmbU5ldywgZmFsc2UsIGNvbnRleHRMaW5lcylcbiAgICAgICAgICAgICAgc2F2ZURpZmZQYXRjaCA9IHRydWVcbiAgICAgICAgICAgICAgX3NhdmVDb250ZW50ID0gZGlmZlBhdGNoIC8vIHJlcGxhY2Ugd2hvbGUgYm9vayBjb250ZW50IHdpdGgganVzdCBwYXRjaCBkYXRhIChtdWNoIGZhc3RlciB1cGxvYWRzKVxuICAgICAgICAgICAgICBfc2F2ZUZ1bGxCaWJsZUNvbnRlbnQgPSB7ICAvLyBrZWVwIHRyYWNrIG9mIHBhdGNoIGRhdGEgaW4gY2FzZSB3ZSBuZWVkIHRvIHJldHJ5IHNhdmVcbiAgICAgICAgICAgICAgICBmaWxlbmFtZSxcbiAgICAgICAgICAgICAgICBpbml0aWFsOiBiaWJsZVVzZm1Jbml0aWFsLFxuICAgICAgICAgICAgICAgIG5ldzogYmlibGVVc2ZtTmV3LFxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgaWYgKGJpYmxlVXNmbU5ldykge1xuICAgICAgICAgICAgY29uc29sZS5sb2coYHNhdmVDaGFuZ2VzVG9DbG91ZCgpIC0gc2F2aW5nIG5ldyBVU0ZNOiAke2JpYmxlVXNmbU5ldy5zdWJzdHJpbmcoMCwgMTAwKX0uLi5gKVxuICAgICAgICAgICAgc2V0Q2FyZHNTYXZpbmcocHJldkNhcmRzU2F2aW5nID0+IFsuLi5wcmV2Q2FyZHNTYXZpbmcsIGNhcmRSZXNvdXJjZUlkXSlcbiAgICAgICAgICAgIHNldFN0YXRlKHtcbiAgICAgICAgICAgICAgc2F2ZUNvbnRlbnQ6IF9zYXZlQ29udGVudCxcbiAgICAgICAgICAgICAgc2F2ZUNsaWNrZWQ6IGZhbHNlLFxuICAgICAgICAgICAgICBzYXZlRGlmZlBhdGNoLFxuICAgICAgICAgICAgICBzYXZlRnVsbEJpYmxlQ29udGVudDogX3NhdmVGdWxsQmlibGVDb250ZW50LFxuICAgICAgICAgICAgICBzdGFydFNhdmU6IHRydWUsXG4gICAgICAgICAgICB9KVxuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBjb25zb2xlLmVycm9yKGBzYXZlQ2hhbmdlc1RvQ2xvdWQoKSAtIEVycm9yIHJldHJpZXZpbmcgdGhlIGNvcnJlY3QgYm9vayBkYXRhOiBpbmNvcnJlY3QgYm9vayAke2xhbmd1YWdlSWRffV8ke3Jlc291cmNlSWR9YClcbiAgICAgICAgICAgIG9uUmVzb3VyY2VFcnJvciAmJiBvblJlc291cmNlRXJyb3IobnVsbCwgZmFsc2UsIG51bGwsIGBFcnJvciByZXRyaWV2aW5nIHRoZSBjb3JyZWN0IGJvb2sgZGF0YSAke2xhbmd1YWdlSWRffV8ke3Jlc291cmNlSWR9YCwgdHJ1ZSlcbiAgICAgICAgICAgIHNldFN0YXRlKHsgc2F2ZUNsaWNrZWQ6IGZhbHNlIH0pXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgZ2V0UmVhZHlGb3JTYXZlKClcbiAgfSwgW3NhdmVDbGlja2VkXSlcblxuICAvLyBAdHMtaWdub3JlXG4gIGNvbnN0IHsgY2hhcHRlciB9ID0gX3JlZmVyZW5jZSB8fCB7fVxuXG4gIFJlYWN0LnVzZUVmZmVjdCgoKSA9PiB7XG4gICAgY29uc3QgX3ZlcnNlc0ZvclJlZiA9IHNjcmlwdHVyZUNvbmZpZz8udmVyc2VzRm9yUmVmXG4gICAgbGV0IG5ld1NlbGVjdGlvbnMgPSBuZXcgTWFwKClcbiAgICBsZXQgdXBkYXRlU2VsZWN0aW9ucyA9IGZhbHNlXG4gICAgY29uc3QgX21hcCA9IG5ld1NlbGVjdGlvbnNcbiAgICBjb25zdCBvcmlnaW5hbEJvb2tJZCA9IG9yaWdpbmFsU2NyaXB0dXJlQm9va09iamVjdHM/LmJvb2tJZFxuICAgIGNvbnN0IGJvb2tWZXJzZU9iamVjdCA9IG9yaWdpbmFsU2NyaXB0dXJlQm9va09iamVjdHM/LmNoYXB0ZXJzXG4gICAgbGV0IG5ld1NlbGVjdGVkUXVvdGUgPSBudWxsXG5cbiAgICAvLyBpZiB3ZSBoYXZlIGV2ZXJ5dGhpbmcgd2UgbmVlZCB0byBjYWxjdWxhdGUgc2VsZWN0aW9uc1xuICAgIGlmIChfdmVyc2VzRm9yUmVmPy5sZW5ndGggJiZcbiAgICAgIGJvb2tWZXJzZU9iamVjdCAmJlxuICAgICAgKGJvb2tJZCA9PT0gb3JpZ2luYWxCb29rSWQpICYmXG4gICAgICBib29rVmVyc2VPYmplY3RbY2hhcHRlcl0gJiYgLy8gd2UgbmVlZCB0byBoYXZlIGRhdGEgZm9yIGNoYXB0ZXJcbiAgICAgIHNlbGVjdGVkUXVvdGU/LnF1b3RlXG4gICAgKSB7XG4gICAgICAvLyBpZiBxdW90ZSBpcyBkaWZmZXJlbnQgdGhhbiBsYXN0XG4gICAgICBpZiAoIWlzRXF1YWwobGFzdFNlbGVjdGVkUXVvdGUsIHNlbGVjdGVkUXVvdGUpIHx8XG4gICAgICAgICFpc0VxdWFsKHZlcnNlc0ZvclJlZiwgX3ZlcnNlc0ZvclJlZikpIHtcbiAgICAgICAgY29uc3Qgb3JpZ2luYWxWZXJzZXMgPSB7fVxuICAgICAgICBjb25zdCBzdWJzdGl0dXRlID0ge30gLy8ga2VlcCB0cmFjayBvZiB2ZXJzZSBzdWJzdGl0dXRpb25zXG4gICAgICAgIGxldCBzdGFydFZlcnNlID0gX3ZlcnNlc0ZvclJlZlswXS52ZXJzZVxuXG4gICAgICAgIGlmICh0eXBlb2Ygc3RhcnRWZXJzZSA9PT0gJ3N0cmluZycpIHtcbiAgICAgICAgICBzdGFydFZlcnNlID0gcGFyc2VJbnQoc3RhcnRWZXJzZSlcbiAgICAgICAgfVxuXG4gICAgICAgIGxldCBsYXN0VmVyc2UgPSBzdGFydFZlcnNlXG5cbiAgICAgICAgZm9yIChsZXQgaSA9IDAsIGwgPSBfdmVyc2VzRm9yUmVmLmxlbmd0aDsgaSA8IGw7IGkrKykge1xuICAgICAgICAgIGNvbnN0IHZlcnNlUmVmID0gX3ZlcnNlc0ZvclJlZltpXVxuICAgICAgICAgIGNvbnN0IHtcbiAgICAgICAgICAgIGNoYXB0ZXIsXG4gICAgICAgICAgICB2ZXJzZSxcbiAgICAgICAgICB9ID0gdmVyc2VSZWZcbiAgICAgICAgICAvLyBUUklDS1kgLSB3ZSByZW1hcCB2ZXJzZXMgaW4gcmVmZXJlbmNlIHJhbmdlIHRvIGEgbGluZWFyIHNlcmllcyBvZiB2ZXJzZXMgc28gdmVyc2Ugc3BhbnMgZG9uJ3QgY2hva2UgZ2V0UXVvdGVNYXRjaGVzSW5Cb29rUmVmXG4gICAgICAgICAgbGV0IF92ZXJzZSA9IHN0YXJ0VmVyc2UgKyBpXG4gICAgICAgICAgbGFzdFZlcnNlID0gX3ZlcnNlXG4gICAgICAgICAgc3Vic3RpdHV0ZVtgJHtjaGFwdGVyfToke192ZXJzZX1gXSA9IGAke2NoYXB0ZXJ9OiR7dmVyc2V9YFxuXG4gICAgICAgICAgaWYgKCFvcmlnaW5hbFZlcnNlc1tjaGFwdGVyXSkge1xuICAgICAgICAgICAgb3JpZ2luYWxWZXJzZXNbY2hhcHRlcl0gPSB7fVxuICAgICAgICAgIH1cblxuICAgICAgICAgIGxldCB2ZXJzZU9iamVjdHMgPSBbXVxuXG4gICAgICAgICAgaWYgKCh0eXBlb2YgdmVyc2UgPT09ICdzdHJpbmcnKSAmJiAodmVyc2UuaW5jbHVkZXMoJy0nKSkpIHtcbiAgICAgICAgICAgIGNvbnN0IHZlcnNlcyA9IGdldFZlcnNlcyhib29rVmVyc2VPYmplY3QsIGAke2NoYXB0ZXJ9OiR7dmVyc2V9YClcblxuICAgICAgICAgICAgZm9yIChjb25zdCB2ZXJzZUl0ZW0gb2YgdmVyc2VzKSB7XG4gICAgICAgICAgICAgIGNvbnN0IHZvID0gdmVyc2VJdGVtLnZlcnNlRGF0YS52ZXJzZU9iamVjdHNcbiAgICAgICAgICAgICAgdmVyc2VPYmplY3RzID0gdmVyc2VPYmplY3RzLmNvbmNhdCh2bylcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdmVyc2VPYmplY3RzID0gYm9va1ZlcnNlT2JqZWN0W2NoYXB0ZXJdW3ZlcnNlXT8udmVyc2VPYmplY3RzXG4gICAgICAgICAgfVxuXG4gICAgICAgICAgaWYgKHZlcnNlT2JqZWN0cykge1xuICAgICAgICAgICAgdmVyc2VPYmplY3RzID0gY2xlYW51cFZlcnNlT2JqZWN0cyh2ZXJzZU9iamVjdHMpXG4gICAgICAgICAgICBvcmlnaW5hbFZlcnNlc1tjaGFwdGVyXVtfdmVyc2VdID0geyB2ZXJzZU9iamVjdHMgfVxuICAgICAgICAgICAgX21hcC5zZXQoYCR7Y2hhcHRlcn06JHt2ZXJzZX1gLCB2ZXJzZU9iamVjdHMpXG4gICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgLy8gY3JlYXRlIG5ldyByZWZlcmVuY2UgcmFuZ2UgZm9yIG5ldyBsaW5lYXIgdmVyc2UgcmFuZ2VcbiAgICAgICAgY29uc3QgW2NoYXB0ZXJdID0gc2VsZWN0ZWRRdW90ZT8ucmVmZXJlbmNlPy5zcGxpdCgnOicpXG4gICAgICAgIGxldCBzdWJSZWYgPSBgJHtjaGFwdGVyfToke3N0YXJ0VmVyc2V9YFxuXG4gICAgICAgIGlmIChsYXN0VmVyc2UgIT0gc3RhcnRWZXJzZSkge1xuICAgICAgICAgIHN1YlJlZiArPSBgLSR7bGFzdFZlcnNlfWBcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IHF1b3RlTWF0Y2hlcyA9IGdldFF1b3RlTWF0Y2hlc0luQm9va1JlZih7XG4gICAgICAgICAgYm9va09iamVjdDogb3JpZ2luYWxWZXJzZXMsXG4gICAgICAgICAgcmVmOiBzdWJSZWYsXG4gICAgICAgICAgcXVvdGU6IHNlbGVjdGVkUXVvdGU/LnF1b3RlLFxuICAgICAgICAgIG9jY3VycmVuY2U6IHNlbGVjdGVkUXVvdGU/Lm9jY3VycmVuY2UsXG4gICAgICAgIH0pXG5cbiAgICAgICAgY29uc3Qgc2VsZWN0aW9ucyA9IG5ldyBNYXAoKVxuXG4gICAgICAgIGlmIChxdW90ZU1hdGNoZXM/LnNpemUpIHtcbiAgICAgICAgICBxdW90ZU1hdGNoZXMuZm9yRWFjaCgod29yZHMsIGtleSkgPT4ge1xuICAgICAgICAgICAgY29uc3QgX2tleSA9IHN1YnN0aXR1dGVba2V5XVxuXG4gICAgICAgICAgICBzZWxlY3Rpb25zLnNldChfa2V5LCB3b3Jkcy5tYXAod29yZCA9PiAoXG4gICAgICAgICAgICAgIHsgLi4ud29yZCwgdGV4dDogY29yZS5ub3JtYWxpemVTdHJpbmcod29yZC50ZXh0KSB9XG4gICAgICAgICAgICApKSlcbiAgICAgICAgICB9KVxuICAgICAgICB9XG4gICAgICAgIG5ld1NlbGVjdGlvbnMgPSBzZWxlY3Rpb25zXG4gICAgICAgIG5ld1NlbGVjdGVkUXVvdGUgPSBzZWxlY3RlZFF1b3RlXG4gICAgICAgIHVwZGF0ZVNlbGVjdGlvbnMgPSB0cnVlXG4gICAgICB9XG4gICAgfVxuXG4gICAgY29uc3QgbmV3U3RhdGU6IGFueSA9IHt9XG5cbiAgICAvLyB1cGRhdGUgc3RhdGVzIHRoYXQgaGF2ZSBjaGFuZ2VkXG4gICAgaWYgKCFhcmVNYXBzVGhlU2FtZSh2ZXJzZU9iamVjdHNNYXAsIF9tYXApKSB7XG4gICAgICBuZXdTdGF0ZS52ZXJzZU9iamVjdHNNYXAgPSBfbWFwXG4gICAgICAvLyBAdHMtaWdub3JlXG4gICAgICBuZXdTdGF0ZS5zZWxlY3Rpb25zUmVmcyA9IF9tYXAgPyBbLi4uX21hcC5rZXlzKCldLmpvaW4oJzsnKSA6ICcnIC8vIGNvbWJpbmUgYWxsIHRoZSB2ZXJzZSByZWZlcmVuY2VzIGludG8gYSBzaW5nbGUgdmVyc2UgcmVmZXJlbmNlIGZvciB0aGUgc2VsZWN0aW9uc1xuICAgIH1cblxuICAgIGNvbnN0IGJvb2tzTm90U2FtZSA9IHJlZmVyZW5jZT8uYm9va0lkICE9PSBjdXJyZW50UmVmZXJlbmNlPy5ib29rSWRcblxuICAgIGlmIChib29rc05vdFNhbWUgfHwgIWFyZVZlcnNlc1NhbWUodmVyc2VzRm9yUmVmLCBfdmVyc2VzRm9yUmVmKSkge1xuICAgICAgbmV3U3RhdGUudmVyc2VzRm9yUmVmID0gX3ZlcnNlc0ZvclJlZlxuICAgICAgbmV3U3RhdGUubGFzdFNlbGVjdGVkUXVvdGUgPSBuZXdTZWxlY3RlZFF1b3RlXG4gICAgICBuZXdTdGF0ZS5zZWxlY3Rpb25zID0gbmV3U2VsZWN0aW9uc1xuICAgIH1cblxuICAgIGlmIChuZXdTZWxlY3RlZFF1b3RlKSB7XG4gICAgICBuZXdTdGF0ZS5sYXN0U2VsZWN0ZWRRdW90ZSA9IG5ld1NlbGVjdGVkUXVvdGVcbiAgICB9XG5cbiAgICBpZiAodXBkYXRlU2VsZWN0aW9ucykge1xuICAgICAgaWYgKCFhcmVNYXBzVGhlU2FtZShzZWxlY3Rpb25zIHx8IChuZXcgTWFwKCkpLCBuZXdTZWxlY3Rpb25zKSkge1xuICAgICAgICBuZXdTdGF0ZS5zZWxlY3Rpb25zID0gbmV3U2VsZWN0aW9uc1xuICAgICAgfVxuICAgIH1cblxuICAgIGlmIChPYmplY3Qua2V5cyhuZXdTdGF0ZSkubGVuZ3RoKSB7XG4gICAgICBzZXRTdGF0ZShuZXdTdGF0ZSlcbiAgICB9XG4gIH0sIFtcbiAgICBvd25lcixcbiAgICByZXNvdXJjZUlkLFxuICAgIGJvb2tJZCxcbiAgICBsYW5ndWFnZUlkXyxcbiAgICBzY3JpcHR1cmVDb25maWc/LnZlcnNlc0ZvclJlZixcbiAgICBvcmlnaW5hbFNjcmlwdHVyZUJvb2tPYmplY3RzLFxuICAgIHNlbGVjdGVkUXVvdGUsXG4gIF0pXG5cbiAgUmVhY3QudXNlRWZmZWN0KCgpID0+IHsgLy8gY2xlYXIgc2V0dGluZ3Mgb24gdmVyc2UgY2hhbmdlXG4gICAgc2V0U3RhdGUoe1xuICAgICAgdmVyc2VzQWxpZ25tZW50U3RhdHVzOiBudWxsLFxuICAgICAgdW5zYXZlZENoYW5nZXNMaXN0OiB7fSxcbiAgICAgIGhhdmVVbnNhdmVkQ2hhbmdlczogZmFsc2UsXG4gICAgfSlcbiAgfSwgW19yZWZlcmVuY2VdKVxuXG4gIGNvbnN0IHVwZGF0ZVZlcnNlc0FsaWdubWVudFN0YXR1cyA9IChyZWZlcmVuY2U6IFNjcmlwdHVyZVJlZmVyZW5jZVR5cGUsIGFsaWduZWQ6IGJvb2xlYW4pID0+IHtcbiAgICBzZXRTdGF0ZV8ocHJldlN0YXRlID0+ICh7XG4gICAgICAuLi5wcmV2U3RhdGUsXG4gICAgICB2ZXJzZXNBbGlnbm1lbnRTdGF0dXM6IHsgLi4ucHJldlN0YXRlLnZlcnNlc0FsaWdubWVudFN0YXR1cywgW2Ake3JlZmVyZW5jZS5jaGFwdGVyfToke3JlZmVyZW5jZS52ZXJzZX1gXTogYWxpZ25lZCB9LFxuICAgIH0pKVxuICB9XG5cbiAgbGV0IF92ZXJzZXNGb3JSZWYgPSBzY3JpcHR1cmVDb25maWc/LnZlcnNlc0ZvclJlZlxuXG4gIFJlYWN0LnVzZUVmZmVjdCgoKSA9PiB7XG4gICAgaWYgKF92ZXJzZXNGb3JSZWY/Lmxlbmd0aCkge1xuICAgICAgY29uc3QgeyByZWZlcmVuY2UsIHJlc291cmNlTGluayB9ID0gc2NyaXB0dXJlQ29uZmlnIHx8IHt9XG4gICAgICBjb25zb2xlLmxvZyhgU2NyaXB0dXJlQ2FyZC5fdmVyc2VzRm9yUmVmIGNoYW5nZWRgLCB7IHJlZmVyZW5jZSwgcmVzb3VyY2VMaW5rIH0pXG4gICAgfVxuICB9LCBbX3ZlcnNlc0ZvclJlZl0pXG5cbiAgaWYgKCFfdmVyc2VzRm9yUmVmPy5sZW5ndGgpIHsgLy8gaWYgZW1wdHkgb2YgcmVmZXJlbmNlcywgY3JlYXRlIHNpbmdsZSBlbXB0eSByZWZlcmVuY2VcbiAgICBfdmVyc2VzRm9yUmVmID0gW3sgLi4ucmVmZXJlbmNlIH1dXG4gIH1cblxuICBjb25zdCByZW5kZXJlZFNjcmlwdHVyZVBhbmVzID0gX3ZlcnNlc0ZvclJlZj8ubWFwKChfY3VycmVudFZlcnNlRGF0YSwgaW5kZXgpID0+IHtcbiAgICBjb25zdCBpbml0aWFsVmVyc2VPYmplY3RzID0gX2N1cnJlbnRWZXJzZURhdGE/LnZlcnNlRGF0YT8udmVyc2VPYmplY3RzIHx8IFtdXG4gICAgLy8gQHRzLWlnbm9yZVxuICAgIGNvbnN0IHsgY2hhcHRlciwgdmVyc2UgfSA9IF9jdXJyZW50VmVyc2VEYXRhIHx8IHt9XG4gICAgY29uc3QgYm9va0lkXyA9IGN1cnJlbnRSZWZlcmVuY2U/LmJvb2tJZCB8fCBib29rSWRcbiAgICBjb25zdCBfcmVmZXJlbmNlID0ge1xuICAgICAgLi4uX3ZlcnNlc0ZvclJlZixcbiAgICAgIGNoYXB0ZXIsXG4gICAgICBib29rSWQ6IGJvb2tJZF8sXG4gICAgICB2ZXJzZSxcbiAgICB9XG4gICAgY29uc3QgX3NjcmlwdHVyZUFsaWdubWVudEVkaXRDb25maWcgPSB7XG4gICAgICAuLi5zY3JpcHR1cmVBbGlnbm1lbnRFZGl0Q29uZmlnLFxuICAgICAgY3VycmVudEluZGV4OiBpbmRleCxcbiAgICAgIGluaXRpYWxWZXJzZU9iamVjdHMsXG4gICAgICByZWZlcmVuY2U6IF9yZWZlcmVuY2UsXG4gICAgICBpc05ld1Rlc3RhbWVudCxcbiAgICB9XG5cbiAgICBsZXQgaXNWZXJzZVNlbGVjdGVkRm9yQWxpZ25tZW50ID0gZmFsc2VcblxuICAgIGlmICh2ZXJzZVNlbGVjdGVkRm9yQWxpZ25tZW50KSB7XG4gICAgICBpc1ZlcnNlU2VsZWN0ZWRGb3JBbGlnbm1lbnQgPSB2ZXJzZVNlbGVjdGVkRm9yQWxpZ25tZW50LmNoYXB0ZXIgPT0gY2hhcHRlciAmJiB2ZXJzZVNlbGVjdGVkRm9yQWxpZ25tZW50LnZlcnNlID09IHZlcnNlXG4gICAgfVxuXG4gICAgcmV0dXJuIChcbiAgICAgIDxTY3JpcHR1cmVQYW5lXG4gICAgICAgIHsuLi5zY3JpcHR1cmVDb25maWd9XG4gICAgICAgIGNvbnRlbnRTdHlsZT17Y29udGVudFN0eWxlfVxuICAgICAgICBjdXJyZW50SW5kZXg9e2luZGV4fVxuICAgICAgICBkZXRlcm1pbmluZ0JyYW5jaD17IXJlYWR5Rm9yRmV0Y2h9XG4gICAgICAgIGRpcmVjdGlvbj17ZGlyZWN0aW9ufVxuICAgICAgICBkaXNhYmxlV29yZFBvcG92ZXI9e2Rpc2FibGVXb3JkUG9wb3Zlcl99XG4gICAgICAgIGZvbnRTaXplPXtmb250U2l6ZX1cbiAgICAgICAgZ2V0TGV4aWNvbkRhdGE9e2dldExleGljb25EYXRhfVxuICAgICAgICBpc05UPXtpc05UX31cbiAgICAgICAgaXNWZXJzZVNlbGVjdGVkRm9yQWxpZ25tZW50PXtpc1ZlcnNlU2VsZWN0ZWRGb3JBbGlnbm1lbnR9XG4gICAgICAgIGtleT17aW5kZXh9XG4gICAgICAgIG9uQWxpZ25tZW50RmluaXNoPXsoKSA9PiBzZXRTdGF0ZSh7IHZlcnNlU2VsZWN0ZWRGb3JBbGlnbm1lbnQ6IG51bGwgfSl9XG4gICAgICAgIG9yaWdpbmFsU2NyaXB0dXJlQm9va09iamVjdHM9e29yaWdpbmFsU2NyaXB0dXJlQm9va09iamVjdHN9XG4gICAgICAgIHJlZlN0eWxlPXtyZWZTdHlsZX1cbiAgICAgICAgcmVmZXJlbmNlPXtfcmVmZXJlbmNlfVxuICAgICAgICBzYXZpbmc9e3N0YXJ0U2F2ZX1cbiAgICAgICAgLy8gQHRzLWlnbm9yZVxuICAgICAgICBzY3JpcHR1cmVBbGlnbm1lbnRFZGl0Q29uZmlnPXtfc2NyaXB0dXJlQWxpZ25tZW50RWRpdENvbmZpZ31cbiAgICAgICAgc2V0RWRpdFZlcnNlPXtzZXRFZGl0VmVyc2V9XG4gICAgICAgIHNldFdvcmRBbGlnbmVyU3RhdHVzPXtzZXRXb3JkQWxpZ25lclN0YXR1c31cbiAgICAgICAgc2VydmVyPXtzZXJ2ZXJ9XG4gICAgICAgIHRyYW5zbGF0ZT17dHJhbnNsYXRlfVxuICAgICAgICB1cGRhdGVWZXJzZXNBbGlnbm1lbnRTdGF0dXM9e3VwZGF0ZVZlcnNlc0FsaWdubWVudFN0YXR1c31cbiAgICAgIC8+XG4gICAgKVxuICB9KVxuXG4gIGNvbnN0IGhhbmRsZUFsaWduQnV0dG9uQ2xpY2sgPSAoKSA9PiB7XG4gICAgaWYgKHZlcnNlc0ZvclJlZj8ubGVuZ3RoID4gMSkgeyAvLyBpZiB0aGVyZSBhcmUgbXVsdGlwbGUgdmVyc2VzIHNob3duIGluIGNhcmQsIG5lZWQgdG8gcHJvbXB0IHVzZXIgZm9yIHdoaWNoIHZlcnNlIHRvIGFsaWduXG4gICAgICBzZXRTdGF0ZSh7IHNob3dBbGlnbm1lbnRQb3B1cDogdHJ1ZSB9KVxuICAgIH0gZWxzZSBpZiAodmVyc2VzRm9yUmVmPy5sZW5ndGggPT09IDEpIHsgLy8gaWYgb25seSBvbmUgdmVyc2UgaXMgc2hvd24gb24gY2FyZCwgdGhlbiBlZGl0IHRoYXQgdmVyc2VcbiAgICAgIHNldFN0YXRlKHsgdmVyc2VTZWxlY3RlZEZvckFsaWdubWVudDogdmVyc2VzRm9yUmVmWzBdIH0pXG4gICAgfVxuICB9XG5cbiAgY29uc3Qgb25SZW5kZXJUb29sYmFyID0gKHsgaXRlbXMgfSkgPT4ge1xuICAgIGNvbnN0IG5ld0l0ZW1zID0gWy4uLml0ZW1zXVxuXG4gICAgbGV0IGFsbFZlcnNlc0FsaWduZWQgPSBmYWxzZVxuXG4gICAgLy8gQ2hlY2sgaWYgYWxsIHZhbHVlcyBpbiB2ZXJzZXNBbGlnbm1lbnRTdGF0dXMgYXJlIHRydWVcbiAgICBpZiAodmVyc2VzQWxpZ25tZW50U3RhdHVzKSB7XG4gICAgICBhbGxWZXJzZXNBbGlnbmVkID0gT2JqZWN0LnZhbHVlcyh2ZXJzZXNBbGlnbm1lbnRTdGF0dXMpLmV2ZXJ5KGFsaWduU3RhdHVzID0+IGFsaWduU3RhdHVzID09PSB0cnVlKVxuICAgIH1cblxuICAgIGxldCBhbGlnbkljb24gPSBudWxsXG4gICAgbGV0IGFsaWduQnV0dG9uVGV4dCA9ICcnXG5cbiAgICBpZiAoYWxsVmVyc2VzQWxpZ25lZCkge1xuICAgICAgYWxpZ25JY29uID0gPFJ4TGluazIgaWQ9e2B2YWxpZF9pY29uXyR7cmVzb3VyY2VJZH1gfSBjb2xvcj0nI0JCQicgLz5cbiAgICAgIGFsaWduQnV0dG9uVGV4dCA9ICdBbGlnbm1lbnQgaXMgVmFsaWQnXG4gICAgfSBlbHNlIHtcbiAgICAgIGNvbnN0IGNvbG9yID0gZGlzYWJsZUNoYW5nZUJ1dHRvbnMgPyAnI0JCQicgOiAnIzAwMCcgLy8gZ3JheSBvdXQgYnV0dG9uIGlmIGRpc2FibGVkXG4gICAgICBhbGlnbkljb24gPSA8UnhMaW5rQnJlYWsyIGlkPXtgaW52YWxpZF9hbGlnbm1lbnRfaWNvbl8ke3Jlc291cmNlSWR9YH0gY29sb3I9e2NvbG9yfSAvPlxuICAgICAgYWxpZ25CdXR0b25UZXh0ID0gJ0FsaWdubWVudCBpcyBJbnZhbGlkJ1xuICAgIH1cblxuICAgIGlmIChzZXRXb3JkQWxpZ25lclN0YXR1cyAmJiByZXNvdXJjZUlkICE9PSAnT1JJR0lOQUxfU09VUkNFJykge1xuICAgICAgbmV3SXRlbXMucHVzaChcbiAgICAgICAgPEljb25CdXR0b25cbiAgICAgICAgICBpZD17YGFsaWdubWVudF9pY29uXyR7cmVzb3VyY2VJZH1gfVxuICAgICAgICAgIGtleT0nY2hlY2tpbmctYnV0dG9uJ1xuICAgICAgICAgIG9uQ2xpY2s9e2Rpc2FibGVDaGFuZ2VCdXR0b25zID8gbnVsbCA6IGhhbmRsZUFsaWduQnV0dG9uQ2xpY2t9XG4gICAgICAgICAgdGl0bGU9e2FsaWduQnV0dG9uVGV4dH1cbiAgICAgICAgICBhcmlhLWxhYmVsPXthbGlnbkJ1dHRvblRleHR9XG4gICAgICAgICAgc3R5bGU9e3sgY3Vyc29yOiAncG9pbnRlcicgfX1cbiAgICAgICAgPlxuICAgICAgICAgIHthbGlnbkljb259XG4gICAgICAgIDwvSWNvbkJ1dHRvbj5cbiAgICAgIClcbiAgICB9XG5cbiAgICAvLyBPbmx5IHNob3cgdGhlIHVwZGF0ZSBmcm9tIG1haW4gYnV0dG9uIGlmIHNjcmlwdHVyZSBpcyBub3Qgb3JpZ2luYWwgdGV4dC5cbiAgICAhdXNpbmdPcmlnaW5hbEJpYmxlICYmIG5ld0l0ZW1zLnB1c2goXG4gICAgICA8PlxuICAgICAgICA8VXBkYXRlQnJhbmNoQnV0dG9uIHsuLi51cGRhdGVCdXR0b25Qcm9wc30gaXNMb2FkaW5nPXtpc1VwZGF0ZUxvYWRpbmcgfHwgc3RhcnRTYXZlfS8+XG4gICAgICAgIDxFcnJvckRpYWxvZyB0aXRsZT17ZGlhbG9nVGl0bGV9IGNvbnRlbnQ9e2RpYWxvZ01lc3NhZ2V9IG9wZW49e2lzRXJyb3JEaWFsb2dPcGVufSBvbkNsb3NlPXtvbkNsb3NlRXJyb3JEaWFsb2d9IGlzTG9hZGluZz17IGlzVXBkYXRlTG9hZGluZyB8fCBzdGFydFNhdmUgfSBsaW5rPXtkaWFsb2dMaW5rfSBsaW5rVG9vbHRpcD17ZGlhbG9nTGlua1Rvb2x0aXB9IC8+XG4gICAgICA8Lz5cbiAgICApXG5cbiAgICByZXR1cm4gbmV3SXRlbXNcbiAgfVxuXG4gIGNvbnN0IHNlbGVjdGlvbkJvb2tPYmplY3RzID0gb3JpZ2luYWxTY3JpcHR1cmVCb29rT2JqZWN0cz8uY2hhcHRlcnNcblxuICByZXR1cm4gKFxuICAgIDxTZWxlY3Rpb25zQ29udGV4dFByb3ZpZGVyXG4gICAgICBib29rT2JqZWN0PXtzZWxlY3Rpb25Cb29rT2JqZWN0cyB8fCB7fX1cbiAgICAgIG9jY3VycmVuY2U9e2ZpeE9jY3VycmVuY2Uoc2VsZWN0ZWRRdW90ZT8ub2NjdXJyZW5jZSl9XG4gICAgICBvblNlbGVjdGlvbnM9e25ld1NlbGVjdGlvbnMgPT4ge1xuICAgICAgICAvLyBjb25zb2xlLmxvZygnb25TZWxlY3Rpb25zJywgbmV3U2VsZWN0aW9ucylcbiAgICAgIH19XG4gICAgICBxdW90ZT17c2VsZWN0ZWRRdW90ZT8ucXVvdGUgfHwgJyd9XG4gICAgICByZWZTdHJpbmc9e3NlbGVjdGlvbnNSZWZzfVxuICAgICAgc2VsZWN0aW9ucz17c2VsZWN0aW9uc31cbiAgICA+XG4gICAgICA8Q2FyZFxuICAgICAgICBpZD17YHNjcmlwdHVyZV9jYXJkXyR7Y2FyZE51bX1gfVxuICAgICAgICB0aXRsZT17c2NyaXB0dXJlTGFiZWx9XG4gICAgICAgIHNldHRpbmdzVGl0bGU9e3NjcmlwdHVyZVRpdGxlICsgJyBTZXR0aW5ncyd9XG4gICAgICAgIGl0ZW1zPXtpdGVtc31cbiAgICAgICAgY2xhc3Nlcz17Y2xhc3Nlc31cbiAgICAgICAgaGVhZGVycz17aGVhZGVyc31cbiAgICAgICAgZmlsdGVycz17ZmlsdGVyc31cbiAgICAgICAgZm9udFNpemU9e2ZvbnRTaXplfVxuICAgICAgICBpdGVtSW5kZXg9e2l0ZW1JbmRleH1cbiAgICAgICAgc2V0RmlsdGVycz17c2V0RmlsdGVyc31cbiAgICAgICAgc2V0Rm9udFNpemU9e3NldEZvbnRTaXplfVxuICAgICAgICBzZXRJdGVtSW5kZXg9e3NldEl0ZW1JbmRleH1cbiAgICAgICAgbWFya2Rvd25WaWV3PXttYXJrZG93blZpZXd9XG4gICAgICAgIHNldE1hcmtkb3duVmlldz17c2V0TWFya2Rvd25WaWV3fVxuICAgICAgICBnZXRDdXN0b21Db21wb25lbnQ9e2dldFNjcmlwdHVyZVNlbGVjdG9yfVxuICAgICAgICBoaWRlTWFya2Rvd25Ub2dnbGVcbiAgICAgICAgb25NZW51Q2xvc2U9e29uTWVudUNsb3NlfVxuICAgICAgICBvbk1pbmltaXplPXtvbk1pbmltaXplID8gKCkgPT4gb25NaW5pbWl6ZShpZCwgc2NyaXB0dXJlVGl0bGUpIDogbnVsbH1cbiAgICAgICAgZWRpdGFibGU9e2VuYWJsZUVkaXQgfHwgZW5hYmxlQWxpZ25tZW50fVxuICAgICAgICBzYXZlZD17ZGlzYWJsZUNoYW5nZUJ1dHRvbnMgfHwgc3RhcnRTYXZlIHx8ICFoYXZlVW5zYXZlZENoYW5nZXN9IC8vIGdyYXkgb3V0IHNhdmUgYnV0dG9uIGlmIGRpc2FibGVkLCBpZiBzYXZpbmcsIG9yIGlmIG5vIHVuc2F2ZWQgY2hhbmdlc1xuICAgICAgICBvblNhdmVFZGl0PXsoKSA9PiBzZXRTdGF0ZSh7IHNhdmVDbGlja2VkOiB0cnVlIH0pfVxuICAgICAgICBvblJlbmRlclRvb2xiYXI9e29uUmVuZGVyVG9vbGJhcn1cbiAgICAgID5cbiAgICAgICAgPGRpdiBpZD1cInNjcmlwdHVyZS1wYW5lLWxpc3RcIj5cbiAgICAgICAgICB7cmVuZGVyZWRTY3JpcHR1cmVQYW5lc31cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L0NhcmQ+XG4gICAgICA8VmVyc2VTZWxlY3RvclBvcHVwXG4gICAgICAgIHJlc291cmNlSWQ9e3Jlc291cmNlSWR9XG4gICAgICAgIG9wZW49e3Nob3dBbGlnbm1lbnRQb3B1cH1cbiAgICAgICAgb25DbG9zZT17KCkgPT4gc2V0U3RhdGUoeyBzaG93QWxpZ25tZW50UG9wdXA6IGZhbHNlIH0pfVxuICAgICAgICB2ZXJzZXNGb3JSZWY9e3ZlcnNlc0ZvclJlZn1cbiAgICAgICAgdmVyc2VzQWxpZ25tZW50U3RhdHVzPXt2ZXJzZXNBbGlnbm1lbnRTdGF0dXN9XG4gICAgICAgIG9uVmVyc2VTZWxlY3Q9eyh2ZXJzZSkgPT4gc2V0U3RhdGUoe1xuICAgICAgICAgIHZlcnNlU2VsZWN0ZWRGb3JBbGlnbm1lbnQ6IHZlcnNlLFxuICAgICAgICAgIHNob3dBbGlnbm1lbnRQb3B1cDogZmFsc2UsXG4gICAgICAgIH0pfVxuICAgICAgLz5cbiAgICA8L1NlbGVjdGlvbnNDb250ZXh0UHJvdmlkZXI+XG4gIClcbn1cblxuU2NyaXB0dXJlQ2FyZC5wcm9wVHlwZXMgPSB7XG4gIC8qKiByZXBvIGJyYW5jaCBvciB0YWcgc3VjaCBhcyBtYXN0ZXIgKi9cbiAgYXBwUmVmOiBQcm9wVHlwZXMuc3RyaW5nLmlzUmVxdWlyZWQsXG4gIC8qKiBhdXRoZW50aWNhdGlvbiBpbmZvICovXG4gIGF1dGhlbnRpY2F0aW9uOiBQcm9wVHlwZXMub2JqZWN0LFxuICAvKiogaW5kZXggZm9yIGN1cnJlbnQgYm9vayAoZS5nLiAnMDEnIGZvciAnZ2VuJykqL1xuICBib29rSW5kZXg6IFByb3BUeXBlcy5zdHJpbmcsXG4gIC8qKiBzY3JpcHR1cmUgY2FyZCBudW1iZXIgKDAgdG8gMiBmb3IgZXhhbXBsZSkgKi9cbiAgY2FyZE51bTogUHJvcFR5cGVzLm51bWJlci5pc1JlcXVpcmVkLFxuICAvKiogQ1NTIGNsYXNzZXMgKi9cbiAgY2xhc3NlczogUHJvcFR5cGVzLm9iamVjdCxcbiAgLyoqIGlmIHRydWUgdGhlbiB3b3JkIGRhdGEgaG92ZXIgaXMgc2hvd24gKi9cbiAgZGlzYWJsZVdvcmRQb3BvdmVyOiBQcm9wVHlwZXMuYm9vbCxcbiAgLyoqIGdldCBsYW5ndWFnZSBkZXRhaWxzICovXG4gIGdldExhbmd1YWdlOiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICAvKiogZnVuY3Rpb24gdG8gZ2V0IGxhdGVzdCBsZXhpY29uIGRhdGEgKi9cbiAgZ2V0TGV4aWNvbkRhdGE6IFByb3BUeXBlcy5mdW5jLFxuICAvKiogb3B0aW9uYWwgdXJsIGZvciBncmVlayByZXBvICovXG4gIGdyZWVrUmVwb1VybDogUHJvcFR5cGVzLnN0cmluZyxcbiAgLyoqIG9wdGlvbmFsIHVybCBmb3IgaGVicmV3IHJlcG8gKi9cbiAgaGVicmV3UmVwb1VybDogUHJvcFR5cGVzLnN0cmluZyxcbiAgLyoqIG9wdGlvbmFsIGh0dHAgdGltZW91dCBpbiBtaWxsaXNlY29uZHMgZm9yIGZldGNoaW5nIHJlc291cmNlcywgZGVmYXVsdCBpcyAwICh2ZXJ5IGxvbmcgd2FpdCkgKi9cbiAgaHR0cENvbmZpZzogUHJvcFR5cGVzLm9iamVjdCxcbiAgLyoqIGh0bWwgaWRlbnRpZmllciB0byB1c2UgZm9yIGNhcmQgKi9cbiAgaWQ6IFByb3BUeXBlcy5zdHJpbmcsXG4gIC8qKiBtZXRob2QgdG8gZGV0ZXJtaW5lIGlmIE5UIG9yIE9UICovXG4gIGlzTlQ6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gIC8qKiB1c2VyLW5hbWUgKi9cbiAgbG9nZ2VkSW5Vc2VyOiBQcm9wVHlwZXMuc3RyaW5nLFxuICAvKiogZnVuY3Rpb24gdG8gbWluaW1pemUgdGhlIGNhcmQgKG9wdGlvbmFsKSAqL1xuICBvbk1pbmltaXplOiBQcm9wVHlwZXMuZnVuYyxcbiAgLyoqIG9wdGlvbmFsIGNhbGxiYWNrIGlmIGVycm9yIGxvYWRpbmcgcmVzb3VyY2UsIHBhcmFtZXRlciByZXR1cm5lZCBhcmU6XG4gICAqICAgICh7c3RyaW5nfSBlcnJvck1lc3NhZ2UsIHtib29sZWFufSBpc0FjY2Vzc0Vycm9yLCB7b2JqZWN0fSByZXNvdXJjZVN0YXR1cylcbiAgICogICAgICAtIGlzQWNjZXNzRXJyb3IgLSBpcyB0cnVlIGlmIHRoaXMgd2FzIGFuIGVycm9yIHRyeWluZyB0byBhY2Nlc3MgZmlsZVxuICAgKiAgICAgIC0gcmVzb3VyY2VTdGF0dXMgLSBpcyBvYmplY3QgY29udGFpbmluZyBkZXRhaWxzIGFib3V0IHByb2JsZW1zIGZldGNoaW5nIHJlc291cmNlICovXG4gIG9uUmVzb3VyY2VFcnJvcjogUHJvcFR5cGVzLmZ1bmMsXG4gIC8qKiB0aGUgb3JpZ2luYWwgc2NyaXB0dXJlIGJvb2tPYmplY3RzIGZvciBjdXJyZW50IGJvb2sgKi9cbiAgb3JpZ2luYWxTY3JpcHR1cmVCb29rT2JqZWN0czogUHJvcFR5cGVzLm9iamVjdCxcbiAgcmVmZXJlbmNlOiBQcm9wVHlwZXMuc2hhcGUoe1xuICAgIC8qKiBib29rIElEIHRvIHVzZSwgb2xkZXIgbGlicmFyaWVzIHVzZWQgcHJvamVjdElkICovXG4gICAgYm9va0lkOiBQcm9wVHlwZXMuc3RyaW5nLmlzUmVxdWlyZWQsXG4gICAgLyoqIG9sZGVyIGxpYnJhcmllcyB1c2VkIHByb2plY3RJZCBpbnN0ZWFkIG9mIGJvb2tJZCAqL1xuICAgIHByb2plY3RJZDogUHJvcFR5cGVzLnN0cmluZyxcbiAgICAvKiogY3VycmVudCBjaGFwdGVyIG51bWJlciAqL1xuICAgIGNoYXB0ZXI6IFByb3BUeXBlcy5vbmVPZlR5cGUoW1Byb3BUeXBlcy5udW1iZXIsIFByb3BUeXBlcy5zdHJpbmddKS5pc1JlcXVpcmVkLFxuICAgIC8qKiBjdXJyZW50IHZlcnNlIG51bWJlciAqL1xuICAgIHZlcnNlOiBQcm9wVHlwZXMub25lT2ZUeXBlKFtQcm9wVHlwZXMubnVtYmVyLCBQcm9wVHlwZXMuc3RyaW5nXSkuaXNSZXF1aXJlZCxcbiAgfSksXG4gIC8qKiByZXNvdXJjZSBvYmplY3QgKi9cbiAgcmVzb3VyY2U6IFByb3BUeXBlcy5zaGFwZSh7XG4gICAgLyoqIHJlc291cmNlIGxhbmd1YWdlIHRvIHVzZSAqL1xuICAgIGxhbmd1YWdlSWQ6IFByb3BUeXBlcy5zdHJpbmcuaXNSZXF1aXJlZCxcbiAgICAvKiogcmVwbyBvd25lciBzdWNoIGFzIHVuZm9sZGluZ1dvcmQgKi9cbiAgICBvd25lcjogUHJvcFR5cGVzLnN0cmluZy5pc1JlcXVpcmVkLFxuICAgIC8qKiByZXNvdXJjZUlkIHRvIHVzZSAoZS5nLiB1Z250KSAqL1xuICAgIHJlc291cmNlSWQ6IFByb3BUeXBlcy5zdHJpbmcuaXNSZXF1aXJlZCxcbiAgICAvKiogcmVwbyBvd25lciBmb3Igb3JpZ2luYWwgbGFuZ3VhZ2VzIHN1Y2ggYXMgdW5mb2xkaW5nV29yZCAqL1xuICAgIG9yaWdpbmFsTGFuZ3VhZ2VPd25lcjogUHJvcFR5cGVzLnN0cmluZy5pc1JlcXVpcmVkLFxuICB9KSxcbiAgLyoqIHJlc291cmNlTGluayAqL1xuICByZXNvdXJjZUxpbms6IFByb3BUeXBlcy5hbnksXG4gIC8qKlRoaXMgaXMgY3VycmVudGx5IHNlbGVjdGVkIHF1b3RlICovXG4gIHNlbGVjdGVkUXVvdGU6IFByb3BUeXBlcy5vYmplY3QsXG4gIC8qKiBzZXJ2ZXIgKGUuZy4gJ2h0dHBzOi8vZ2l0LmRvb3I0My5vcmcnKSAqL1xuICBzZXJ2ZXI6IFByb3BUeXBlcy5zdHJpbmcuaXNSZXF1aXJlZCxcbiAgLyoqIGNhbGxiYWNrIHRvIHVwZGF0ZSBsb2FkaW5nIHN0YXRlICovXG4gIHNldEFyZVJlc291cmNlc0xvYWRpbmc6IFByb3BUeXBlcy5mdW5jLFxuICAvKiogY2FsbGJhY2sgdG8gdXBkYXRlIHNhdmluZyBzdGF0ZSovXG4gIHNldEFyZVJlc291cmNlc1NhdmluZzogUHJvcFR5cGVzLmZ1bmMsXG4gIC8qKiBjYWxsYmFjayB0byByZXBvcnQgY2FyZCBtZXJnZSBzdGF0dXMgKi9cbiAgc2V0Q2FyZHNMb2FkaW5nTWVyZ2U6IFByb3BUeXBlcy5mdW5jLFxuICAvKiogY2FsbGJhY2sgdG8gcmVwb3J0IGNhcmQgdXBkYXRlIHN0YXR1cyAqL1xuICBzZXRDYXJkc0xvYWRpbmdVcGRhdGU6IFByb3BUeXBlcy5mdW5jLFxuICAvKiogY2FsbGJhY2sgdG8gcmVwb3J0IGNhcmQgc2F2aW5nIHN0YXR1cyAqL1xuICBzZXRDYXJkc1NhdmluZzogUHJvcFR5cGVzLmZ1bmMsXG4gIC8qKiBmdW5jdGlvbiB0byBzZXQgc3RhdGUgaW4gYXBwIHRoYXQgdGhlcmUgYXJlIHVuc2F2ZWQgY2hhbmdlcyAqL1xuICBzZXRTYXZlZENoYW5nZXM6IFByb3BUeXBlcy5mdW5jLFxuICAvKiogY2FsbGJhY2sgdG8gdXBkYXRlIHdvcmQgYWxpZ25lciBzdGF0ZSAqL1xuICBzZXRXb3JkQWxpZ25lclN0YXR1czogUHJvcFR5cGVzLmZ1bmMsXG4gIC8qKiB0aXRsZSBmb3Igc2NyaXB0dXJlIGNhcmQgKi9cbiAgdGl0bGU6IFByb3BUeXBlcy5zdHJpbmcuaXNSZXF1aXJlZCxcbiAgLyoqIG9wdGlvbmFsIGZ1bmN0aW9uIGZvciBsb2NhbGl6YXRpb24gKi9cbiAgdHJhbnNsYXRlOiBQcm9wVHlwZXMuZnVuYyxcbiAgLyoqIGNhbGxiYWNrIHRvIHVwZGF0ZSB0aGUgY2FyZCdzIG1lcmdlIHN0YXRlIGluIGFwcCAqL1xuICB1cGRhdGVNZXJnZVN0YXRlOiBQcm9wVHlwZXMuZnVuYyxcbiAgLyoqIHVzZSBtZXRob2QgZm9yIHVzaW5nIGxvY2FsIHN0b3JhZ2Ugc3BlY2lmaWMgZm9yIHVzZXIgKi9cbiAgdXNlVXNlckxvY2FsU3RvcmFnZTogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbn1cbiJdLCJtYXBwaW5ncyI6IjsrQ0FDQSxxSkFBQUEsbUJBQUEsWUFBQUEsb0JBQUEsV0FBQUMsQ0FBQSxTQUFBQyxDQUFBLEVBQUFELENBQUEsT0FBQUUsQ0FBQSxHQUFBQyxNQUFBLENBQUFDLFNBQUEsRUFBQUMsQ0FBQSxHQUFBSCxDQUFBLENBQUFJLGNBQUEsRUFBQUMsQ0FBQSxHQUFBSixNQUFBLENBQUFLLGNBQUEsY0FBQVAsQ0FBQSxFQUFBRCxDQUFBLEVBQUFFLENBQUEsSUFBQUQsQ0FBQSxDQUFBRCxDQUFBLElBQUFFLENBQUEsQ0FBQU8sS0FBQSxLQUFBQyxDQUFBLHdCQUFBQyxNQUFBLEdBQUFBLE1BQUEsT0FBQUMsQ0FBQSxHQUFBRixDQUFBLENBQUFHLFFBQUEsa0JBQUFDLENBQUEsR0FBQUosQ0FBQSxDQUFBSyxhQUFBLHVCQUFBQyxDQUFBLEdBQUFOLENBQUEsQ0FBQU8sV0FBQSw4QkFBQUMsT0FBQWpCLENBQUEsRUFBQUQsQ0FBQSxFQUFBRSxDQUFBLFdBQUFDLE1BQUEsQ0FBQUssY0FBQSxDQUFBUCxDQUFBLEVBQUFELENBQUEsSUFBQVMsS0FBQSxFQUFBUCxDQUFBLEVBQUFpQixVQUFBLE1BQUFDLFlBQUEsTUFBQUMsUUFBQSxTQUFBcEIsQ0FBQSxDQUFBRCxDQUFBLFdBQUFrQixNQUFBLG1CQUFBakIsQ0FBQSxJQUFBaUIsTUFBQSxZQUFBQSxPQUFBakIsQ0FBQSxFQUFBRCxDQUFBLEVBQUFFLENBQUEsV0FBQUQsQ0FBQSxDQUFBRCxDQUFBLElBQUFFLENBQUEsZ0JBQUFvQixLQUFBckIsQ0FBQSxFQUFBRCxDQUFBLEVBQUFFLENBQUEsRUFBQUcsQ0FBQSxRQUFBSyxDQUFBLEdBQUFWLENBQUEsSUFBQUEsQ0FBQSxDQUFBSSxTQUFBLFlBQUFtQixTQUFBLEdBQUF2QixDQUFBLEdBQUF1QixTQUFBLEVBQUFYLENBQUEsR0FBQVQsTUFBQSxDQUFBcUIsTUFBQSxDQUFBZCxDQUFBLENBQUFOLFNBQUEsR0FBQVUsQ0FBQSxPQUFBVyxPQUFBLENBQUFwQixDQUFBLGdCQUFBRSxDQUFBLENBQUFLLENBQUEsZUFBQUgsS0FBQSxFQUFBaUIsZ0JBQUEsQ0FBQXpCLENBQUEsRUFBQUMsQ0FBQSxFQUFBWSxDQUFBLE1BQUFGLENBQUEsYUFBQWUsU0FBQTFCLENBQUEsRUFBQUQsQ0FBQSxFQUFBRSxDQUFBLG1CQUFBMEIsSUFBQSxZQUFBQyxHQUFBLEVBQUE1QixDQUFBLENBQUE2QixJQUFBLENBQUE5QixDQUFBLEVBQUFFLENBQUEsY0FBQUQsQ0FBQSxhQUFBMkIsSUFBQSxXQUFBQyxHQUFBLEVBQUE1QixDQUFBLFFBQUFELENBQUEsQ0FBQXNCLElBQUEsR0FBQUEsSUFBQSxNQUFBUyxDQUFBLHFCQUFBQyxDQUFBLHFCQUFBQyxDQUFBLGdCQUFBQyxDQUFBLGdCQUFBQyxDQUFBLGdCQUFBWixVQUFBLGNBQUFhLGtCQUFBLGNBQUFDLDJCQUFBLFNBQUFDLENBQUEsT0FBQXBCLE1BQUEsQ0FBQW9CLENBQUEsRUFBQTFCLENBQUEscUNBQUEyQixDQUFBLEdBQUFwQyxNQUFBLENBQUFxQyxjQUFBLEVBQUFDLENBQUEsR0FBQUYsQ0FBQSxJQUFBQSxDQUFBLENBQUFBLENBQUEsQ0FBQUcsTUFBQSxRQUFBRCxDQUFBLElBQUFBLENBQUEsS0FBQXZDLENBQUEsSUFBQUcsQ0FBQSxDQUFBeUIsSUFBQSxDQUFBVyxDQUFBLEVBQUE3QixDQUFBLE1BQUEwQixDQUFBLEdBQUFHLENBQUEsT0FBQUUsQ0FBQSxHQUFBTiwwQkFBQSxDQUFBakMsU0FBQSxHQUFBbUIsU0FBQSxDQUFBbkIsU0FBQSxHQUFBRCxNQUFBLENBQUFxQixNQUFBLENBQUFjLENBQUEsWUFBQU0sc0JBQUEzQyxDQUFBLGdDQUFBNEMsT0FBQSxXQUFBN0MsQ0FBQSxJQUFBa0IsTUFBQSxDQUFBakIsQ0FBQSxFQUFBRCxDQUFBLFlBQUFDLENBQUEsZ0JBQUE2QyxPQUFBLENBQUE5QyxDQUFBLEVBQUFDLENBQUEsc0JBQUE4QyxjQUFBOUMsQ0FBQSxFQUFBRCxDQUFBLGFBQUFnRCxPQUFBOUMsQ0FBQSxFQUFBSyxDQUFBLEVBQUFHLENBQUEsRUFBQUUsQ0FBQSxRQUFBRSxDQUFBLEdBQUFhLFFBQUEsQ0FBQTFCLENBQUEsQ0FBQUMsQ0FBQSxHQUFBRCxDQUFBLEVBQUFNLENBQUEsbUJBQUFPLENBQUEsQ0FBQWMsSUFBQSxRQUFBWixDQUFBLEdBQUFGLENBQUEsQ0FBQWUsR0FBQSxFQUFBRSxDQUFBLEdBQUFmLENBQUEsQ0FBQVAsS0FBQSxTQUFBc0IsQ0FBQSxnQkFBQWtCLE9BQUEsQ0FBQWxCLENBQUEsS0FBQTFCLENBQUEsQ0FBQXlCLElBQUEsQ0FBQUMsQ0FBQSxlQUFBL0IsQ0FBQSxDQUFBa0QsT0FBQSxDQUFBbkIsQ0FBQSxDQUFBb0IsT0FBQSxFQUFBQyxJQUFBLFdBQUFuRCxDQUFBLElBQUErQyxNQUFBLFNBQUEvQyxDQUFBLEVBQUFTLENBQUEsRUFBQUUsQ0FBQSxnQkFBQVgsQ0FBQSxJQUFBK0MsTUFBQSxVQUFBL0MsQ0FBQSxFQUFBUyxDQUFBLEVBQUFFLENBQUEsUUFBQVosQ0FBQSxDQUFBa0QsT0FBQSxDQUFBbkIsQ0FBQSxFQUFBcUIsSUFBQSxXQUFBbkQsQ0FBQSxJQUFBZSxDQUFBLENBQUFQLEtBQUEsR0FBQVIsQ0FBQSxFQUFBUyxDQUFBLENBQUFNLENBQUEsZ0JBQUFmLENBQUEsV0FBQStDLE1BQUEsVUFBQS9DLENBQUEsRUFBQVMsQ0FBQSxFQUFBRSxDQUFBLFNBQUFBLENBQUEsQ0FBQUUsQ0FBQSxDQUFBZSxHQUFBLFNBQUEzQixDQUFBLEVBQUFLLENBQUEsb0JBQUFFLEtBQUEsV0FBQUEsTUFBQVIsQ0FBQSxFQUFBSSxDQUFBLGFBQUFnRCwyQkFBQSxlQUFBckQsQ0FBQSxXQUFBQSxDQUFBLEVBQUFFLENBQUEsSUFBQThDLE1BQUEsQ0FBQS9DLENBQUEsRUFBQUksQ0FBQSxFQUFBTCxDQUFBLEVBQUFFLENBQUEsZ0JBQUFBLENBQUEsR0FBQUEsQ0FBQSxHQUFBQSxDQUFBLENBQUFrRCxJQUFBLENBQUFDLDBCQUFBLEVBQUFBLDBCQUFBLElBQUFBLDBCQUFBLHFCQUFBM0IsaUJBQUExQixDQUFBLEVBQUFFLENBQUEsRUFBQUcsQ0FBQSxRQUFBRSxDQUFBLEdBQUF3QixDQUFBLG1CQUFBckIsQ0FBQSxFQUFBRSxDQUFBLFFBQUFMLENBQUEsS0FBQTBCLENBQUEsWUFBQXFCLEtBQUEsc0NBQUEvQyxDQUFBLEtBQUEyQixDQUFBLG9CQUFBeEIsQ0FBQSxRQUFBRSxDQUFBLFdBQUFILEtBQUEsRUFBQVIsQ0FBQSxFQUFBc0QsSUFBQSxlQUFBbEQsQ0FBQSxDQUFBbUQsTUFBQSxHQUFBOUMsQ0FBQSxFQUFBTCxDQUFBLENBQUF3QixHQUFBLEdBQUFqQixDQUFBLFVBQUFFLENBQUEsR0FBQVQsQ0FBQSxDQUFBb0QsUUFBQSxNQUFBM0MsQ0FBQSxRQUFBRSxDQUFBLEdBQUEwQyxtQkFBQSxDQUFBNUMsQ0FBQSxFQUFBVCxDQUFBLE9BQUFXLENBQUEsUUFBQUEsQ0FBQSxLQUFBbUIsQ0FBQSxtQkFBQW5CLENBQUEscUJBQUFYLENBQUEsQ0FBQW1ELE1BQUEsRUFBQW5ELENBQUEsQ0FBQXNELElBQUEsR0FBQXRELENBQUEsQ0FBQXVELEtBQUEsR0FBQXZELENBQUEsQ0FBQXdCLEdBQUEsc0JBQUF4QixDQUFBLENBQUFtRCxNQUFBLFFBQUFqRCxDQUFBLEtBQUF3QixDQUFBLFFBQUF4QixDQUFBLEdBQUEyQixDQUFBLEVBQUE3QixDQUFBLENBQUF3QixHQUFBLEVBQUF4QixDQUFBLENBQUF3RCxpQkFBQSxDQUFBeEQsQ0FBQSxDQUFBd0IsR0FBQSx1QkFBQXhCLENBQUEsQ0FBQW1ELE1BQUEsSUFBQW5ELENBQUEsQ0FBQXlELE1BQUEsV0FBQXpELENBQUEsQ0FBQXdCLEdBQUEsR0FBQXRCLENBQUEsR0FBQTBCLENBQUEsTUFBQUssQ0FBQSxHQUFBWCxRQUFBLENBQUEzQixDQUFBLEVBQUFFLENBQUEsRUFBQUcsQ0FBQSxvQkFBQWlDLENBQUEsQ0FBQVYsSUFBQSxRQUFBckIsQ0FBQSxHQUFBRixDQUFBLENBQUFrRCxJQUFBLEdBQUFyQixDQUFBLEdBQUFGLENBQUEsRUFBQU0sQ0FBQSxDQUFBVCxHQUFBLEtBQUFNLENBQUEscUJBQUExQixLQUFBLEVBQUE2QixDQUFBLENBQUFULEdBQUEsRUFBQTBCLElBQUEsRUFBQWxELENBQUEsQ0FBQWtELElBQUEsa0JBQUFqQixDQUFBLENBQUFWLElBQUEsS0FBQXJCLENBQUEsR0FBQTJCLENBQUEsRUFBQTdCLENBQUEsQ0FBQW1ELE1BQUEsWUFBQW5ELENBQUEsQ0FBQXdCLEdBQUEsR0FBQVMsQ0FBQSxDQUFBVCxHQUFBLG1CQUFBNkIsb0JBQUExRCxDQUFBLEVBQUFFLENBQUEsUUFBQUcsQ0FBQSxHQUFBSCxDQUFBLENBQUFzRCxNQUFBLEVBQUFqRCxDQUFBLEdBQUFQLENBQUEsQ0FBQWEsUUFBQSxDQUFBUixDQUFBLE9BQUFFLENBQUEsS0FBQU4sQ0FBQSxTQUFBQyxDQUFBLENBQUF1RCxRQUFBLHFCQUFBcEQsQ0FBQSxJQUFBTCxDQUFBLENBQUFhLFFBQUEsZUFBQVgsQ0FBQSxDQUFBc0QsTUFBQSxhQUFBdEQsQ0FBQSxDQUFBMkIsR0FBQSxHQUFBNUIsQ0FBQSxFQUFBeUQsbUJBQUEsQ0FBQTFELENBQUEsRUFBQUUsQ0FBQSxlQUFBQSxDQUFBLENBQUFzRCxNQUFBLGtCQUFBbkQsQ0FBQSxLQUFBSCxDQUFBLENBQUFzRCxNQUFBLFlBQUF0RCxDQUFBLENBQUEyQixHQUFBLE9BQUFrQyxTQUFBLHVDQUFBMUQsQ0FBQSxpQkFBQThCLENBQUEsTUFBQXpCLENBQUEsR0FBQWlCLFFBQUEsQ0FBQXBCLENBQUEsRUFBQVAsQ0FBQSxDQUFBYSxRQUFBLEVBQUFYLENBQUEsQ0FBQTJCLEdBQUEsbUJBQUFuQixDQUFBLENBQUFrQixJQUFBLFNBQUExQixDQUFBLENBQUFzRCxNQUFBLFlBQUF0RCxDQUFBLENBQUEyQixHQUFBLEdBQUFuQixDQUFBLENBQUFtQixHQUFBLEVBQUEzQixDQUFBLENBQUF1RCxRQUFBLFNBQUF0QixDQUFBLE1BQUF2QixDQUFBLEdBQUFGLENBQUEsQ0FBQW1CLEdBQUEsU0FBQWpCLENBQUEsR0FBQUEsQ0FBQSxDQUFBMkMsSUFBQSxJQUFBckQsQ0FBQSxDQUFBRixDQUFBLENBQUFnRSxVQUFBLElBQUFwRCxDQUFBLENBQUFILEtBQUEsRUFBQVAsQ0FBQSxDQUFBK0QsSUFBQSxHQUFBakUsQ0FBQSxDQUFBa0UsT0FBQSxlQUFBaEUsQ0FBQSxDQUFBc0QsTUFBQSxLQUFBdEQsQ0FBQSxDQUFBc0QsTUFBQSxXQUFBdEQsQ0FBQSxDQUFBMkIsR0FBQSxHQUFBNUIsQ0FBQSxHQUFBQyxDQUFBLENBQUF1RCxRQUFBLFNBQUF0QixDQUFBLElBQUF2QixDQUFBLElBQUFWLENBQUEsQ0FBQXNELE1BQUEsWUFBQXRELENBQUEsQ0FBQTJCLEdBQUEsT0FBQWtDLFNBQUEsc0NBQUE3RCxDQUFBLENBQUF1RCxRQUFBLFNBQUF0QixDQUFBLGNBQUFnQyxhQUFBbEUsQ0FBQSxRQUFBRCxDQUFBLEtBQUFvRSxNQUFBLEVBQUFuRSxDQUFBLFlBQUFBLENBQUEsS0FBQUQsQ0FBQSxDQUFBcUUsUUFBQSxHQUFBcEUsQ0FBQSxXQUFBQSxDQUFBLEtBQUFELENBQUEsQ0FBQXNFLFVBQUEsR0FBQXJFLENBQUEsS0FBQUQsQ0FBQSxDQUFBdUUsUUFBQSxHQUFBdEUsQ0FBQSxXQUFBdUUsVUFBQSxDQUFBQyxJQUFBLENBQUF6RSxDQUFBLGNBQUEwRSxjQUFBekUsQ0FBQSxRQUFBRCxDQUFBLEdBQUFDLENBQUEsQ0FBQTBFLFVBQUEsUUFBQTNFLENBQUEsQ0FBQTRCLElBQUEsb0JBQUE1QixDQUFBLENBQUE2QixHQUFBLEVBQUE1QixDQUFBLENBQUEwRSxVQUFBLEdBQUEzRSxDQUFBLGFBQUF5QixRQUFBeEIsQ0FBQSxTQUFBdUUsVUFBQSxNQUFBSixNQUFBLGFBQUFuRSxDQUFBLENBQUE0QyxPQUFBLENBQUFzQixZQUFBLGNBQUFTLEtBQUEsaUJBQUFsQyxPQUFBMUMsQ0FBQSxRQUFBQSxDQUFBLFdBQUFBLENBQUEsUUFBQUUsQ0FBQSxHQUFBRixDQUFBLENBQUFZLENBQUEsT0FBQVYsQ0FBQSxTQUFBQSxDQUFBLENBQUE0QixJQUFBLENBQUE5QixDQUFBLDRCQUFBQSxDQUFBLENBQUFpRSxJQUFBLFNBQUFqRSxDQUFBLE9BQUE2RSxLQUFBLENBQUE3RSxDQUFBLENBQUE4RSxNQUFBLFNBQUF2RSxDQUFBLE9BQUFHLENBQUEsWUFBQXVELEtBQUEsYUFBQTFELENBQUEsR0FBQVAsQ0FBQSxDQUFBOEUsTUFBQSxPQUFBekUsQ0FBQSxDQUFBeUIsSUFBQSxDQUFBOUIsQ0FBQSxFQUFBTyxDQUFBLFVBQUEwRCxJQUFBLENBQUF4RCxLQUFBLEdBQUFULENBQUEsQ0FBQU8sQ0FBQSxHQUFBMEQsSUFBQSxDQUFBVixJQUFBLE9BQUFVLElBQUEsU0FBQUEsSUFBQSxDQUFBeEQsS0FBQSxHQUFBUixDQUFBLEVBQUFnRSxJQUFBLENBQUFWLElBQUEsT0FBQVUsSUFBQSxZQUFBdkQsQ0FBQSxDQUFBdUQsSUFBQSxHQUFBdkQsQ0FBQSxnQkFBQXFELFNBQUEsQ0FBQWQsT0FBQSxDQUFBakQsQ0FBQSxrQ0FBQW9DLGlCQUFBLENBQUFoQyxTQUFBLEdBQUFpQywwQkFBQSxFQUFBOUIsQ0FBQSxDQUFBb0MsQ0FBQSxtQkFBQWxDLEtBQUEsRUFBQTRCLDBCQUFBLEVBQUFqQixZQUFBLFNBQUFiLENBQUEsQ0FBQThCLDBCQUFBLG1CQUFBNUIsS0FBQSxFQUFBMkIsaUJBQUEsRUFBQWhCLFlBQUEsU0FBQWdCLGlCQUFBLENBQUEyQyxXQUFBLEdBQUE3RCxNQUFBLENBQUFtQiwwQkFBQSxFQUFBckIsQ0FBQSx3QkFBQWhCLENBQUEsQ0FBQWdGLG1CQUFBLGFBQUEvRSxDQUFBLFFBQUFELENBQUEsd0JBQUFDLENBQUEsSUFBQUEsQ0FBQSxDQUFBZ0YsV0FBQSxXQUFBakYsQ0FBQSxLQUFBQSxDQUFBLEtBQUFvQyxpQkFBQSw2QkFBQXBDLENBQUEsQ0FBQStFLFdBQUEsSUFBQS9FLENBQUEsQ0FBQWtGLElBQUEsT0FBQWxGLENBQUEsQ0FBQW1GLElBQUEsYUFBQWxGLENBQUEsV0FBQUUsTUFBQSxDQUFBaUYsY0FBQSxHQUFBakYsTUFBQSxDQUFBaUYsY0FBQSxDQUFBbkYsQ0FBQSxFQUFBb0MsMEJBQUEsS0FBQXBDLENBQUEsQ0FBQW9GLFNBQUEsR0FBQWhELDBCQUFBLEVBQUFuQixNQUFBLENBQUFqQixDQUFBLEVBQUFlLENBQUEseUJBQUFmLENBQUEsQ0FBQUcsU0FBQSxHQUFBRCxNQUFBLENBQUFxQixNQUFBLENBQUFtQixDQUFBLEdBQUExQyxDQUFBLEtBQUFELENBQUEsQ0FBQXNGLEtBQUEsYUFBQXJGLENBQUEsYUFBQWtELE9BQUEsRUFBQWxELENBQUEsT0FBQTJDLHFCQUFBLENBQUFHLGFBQUEsQ0FBQTNDLFNBQUEsR0FBQWMsTUFBQSxDQUFBNkIsYUFBQSxDQUFBM0MsU0FBQSxFQUFBVSxDQUFBLGlDQUFBZCxDQUFBLENBQUErQyxhQUFBLEdBQUFBLGFBQUEsRUFBQS9DLENBQUEsQ0FBQXVGLEtBQUEsYUFBQXRGLENBQUEsRUFBQUMsQ0FBQSxFQUFBRyxDQUFBLEVBQUFFLENBQUEsRUFBQUcsQ0FBQSxlQUFBQSxDQUFBLEtBQUFBLENBQUEsR0FBQThFLE9BQUEsT0FBQTVFLENBQUEsT0FBQW1DLGFBQUEsQ0FBQXpCLElBQUEsQ0FBQXJCLENBQUEsRUFBQUMsQ0FBQSxFQUFBRyxDQUFBLEVBQUFFLENBQUEsR0FBQUcsQ0FBQSxVQUFBVixDQUFBLENBQUFnRixtQkFBQSxDQUFBOUUsQ0FBQSxJQUFBVSxDQUFBLEdBQUFBLENBQUEsQ0FBQXFELElBQUEsR0FBQWIsSUFBQSxXQUFBbkQsQ0FBQSxXQUFBQSxDQUFBLENBQUFzRCxJQUFBLEdBQUF0RCxDQUFBLENBQUFRLEtBQUEsR0FBQUcsQ0FBQSxDQUFBcUQsSUFBQSxXQUFBckIscUJBQUEsQ0FBQUQsQ0FBQSxHQUFBekIsTUFBQSxDQUFBeUIsQ0FBQSxFQUFBM0IsQ0FBQSxnQkFBQUUsTUFBQSxDQUFBeUIsQ0FBQSxFQUFBL0IsQ0FBQSxpQ0FBQU0sTUFBQSxDQUFBeUIsQ0FBQSw2REFBQTNDLENBQUEsQ0FBQXlGLElBQUEsYUFBQXhGLENBQUEsUUFBQUQsQ0FBQSxHQUFBRyxNQUFBLENBQUFGLENBQUEsR0FBQUMsQ0FBQSxnQkFBQUcsQ0FBQSxJQUFBTCxDQUFBLEVBQUFFLENBQUEsQ0FBQXVFLElBQUEsQ0FBQXBFLENBQUEsVUFBQUgsQ0FBQSxDQUFBd0YsT0FBQSxhQUFBekIsS0FBQSxXQUFBL0QsQ0FBQSxDQUFBNEUsTUFBQSxTQUFBN0UsQ0FBQSxHQUFBQyxDQUFBLENBQUF5RixHQUFBLFFBQUExRixDQUFBLElBQUFELENBQUEsU0FBQWlFLElBQUEsQ0FBQXhELEtBQUEsR0FBQVIsQ0FBQSxFQUFBZ0UsSUFBQSxDQUFBVixJQUFBLE9BQUFVLElBQUEsV0FBQUEsSUFBQSxDQUFBVixJQUFBLE9BQUFVLElBQUEsUUFBQWpFLENBQUEsQ0FBQTBDLE1BQUEsR0FBQUEsTUFBQSxFQUFBakIsT0FBQSxDQUFBckIsU0FBQSxLQUFBNkUsV0FBQSxFQUFBeEQsT0FBQSxFQUFBbUQsS0FBQSxXQUFBQSxNQUFBNUUsQ0FBQSxhQUFBNEYsSUFBQSxXQUFBM0IsSUFBQSxXQUFBTixJQUFBLFFBQUFDLEtBQUEsR0FBQTNELENBQUEsT0FBQXNELElBQUEsWUFBQUUsUUFBQSxjQUFBRCxNQUFBLGdCQUFBM0IsR0FBQSxHQUFBNUIsQ0FBQSxPQUFBdUUsVUFBQSxDQUFBM0IsT0FBQSxDQUFBNkIsYUFBQSxJQUFBMUUsQ0FBQSxXQUFBRSxDQUFBLGtCQUFBQSxDQUFBLENBQUEyRixNQUFBLE9BQUF4RixDQUFBLENBQUF5QixJQUFBLE9BQUE1QixDQUFBLE1BQUEyRSxLQUFBLEVBQUEzRSxDQUFBLENBQUE0RixLQUFBLGNBQUE1RixDQUFBLElBQUFELENBQUEsTUFBQThGLElBQUEsV0FBQUEsS0FBQSxTQUFBeEMsSUFBQSxXQUFBdEQsQ0FBQSxRQUFBdUUsVUFBQSxJQUFBRyxVQUFBLGtCQUFBMUUsQ0FBQSxDQUFBMkIsSUFBQSxRQUFBM0IsQ0FBQSxDQUFBNEIsR0FBQSxjQUFBbUUsSUFBQSxLQUFBbkMsaUJBQUEsV0FBQUEsa0JBQUE3RCxDQUFBLGFBQUF1RCxJQUFBLFFBQUF2RCxDQUFBLE1BQUFFLENBQUEsa0JBQUErRixPQUFBNUYsQ0FBQSxFQUFBRSxDQUFBLFdBQUFLLENBQUEsQ0FBQWdCLElBQUEsWUFBQWhCLENBQUEsQ0FBQWlCLEdBQUEsR0FBQTdCLENBQUEsRUFBQUUsQ0FBQSxDQUFBK0QsSUFBQSxHQUFBNUQsQ0FBQSxFQUFBRSxDQUFBLEtBQUFMLENBQUEsQ0FBQXNELE1BQUEsV0FBQXRELENBQUEsQ0FBQTJCLEdBQUEsR0FBQTVCLENBQUEsS0FBQU0sQ0FBQSxhQUFBQSxDQUFBLFFBQUFpRSxVQUFBLENBQUFNLE1BQUEsTUFBQXZFLENBQUEsU0FBQUEsQ0FBQSxRQUFBRyxDQUFBLFFBQUE4RCxVQUFBLENBQUFqRSxDQUFBLEdBQUFLLENBQUEsR0FBQUYsQ0FBQSxDQUFBaUUsVUFBQSxpQkFBQWpFLENBQUEsQ0FBQTBELE1BQUEsU0FBQTZCLE1BQUEsYUFBQXZGLENBQUEsQ0FBQTBELE1BQUEsU0FBQXdCLElBQUEsUUFBQTlFLENBQUEsR0FBQVQsQ0FBQSxDQUFBeUIsSUFBQSxDQUFBcEIsQ0FBQSxlQUFBTSxDQUFBLEdBQUFYLENBQUEsQ0FBQXlCLElBQUEsQ0FBQXBCLENBQUEscUJBQUFJLENBQUEsSUFBQUUsQ0FBQSxhQUFBNEUsSUFBQSxHQUFBbEYsQ0FBQSxDQUFBMkQsUUFBQSxTQUFBNEIsTUFBQSxDQUFBdkYsQ0FBQSxDQUFBMkQsUUFBQSxnQkFBQXVCLElBQUEsR0FBQWxGLENBQUEsQ0FBQTRELFVBQUEsU0FBQTJCLE1BQUEsQ0FBQXZGLENBQUEsQ0FBQTRELFVBQUEsY0FBQXhELENBQUEsYUFBQThFLElBQUEsR0FBQWxGLENBQUEsQ0FBQTJELFFBQUEsU0FBQTRCLE1BQUEsQ0FBQXZGLENBQUEsQ0FBQTJELFFBQUEscUJBQUFyRCxDQUFBLFlBQUFzQyxLQUFBLHFEQUFBc0MsSUFBQSxHQUFBbEYsQ0FBQSxDQUFBNEQsVUFBQSxTQUFBMkIsTUFBQSxDQUFBdkYsQ0FBQSxDQUFBNEQsVUFBQSxZQUFBUixNQUFBLFdBQUFBLE9BQUE3RCxDQUFBLEVBQUFELENBQUEsYUFBQUUsQ0FBQSxRQUFBc0UsVUFBQSxDQUFBTSxNQUFBLE1BQUE1RSxDQUFBLFNBQUFBLENBQUEsUUFBQUssQ0FBQSxRQUFBaUUsVUFBQSxDQUFBdEUsQ0FBQSxPQUFBSyxDQUFBLENBQUE2RCxNQUFBLFNBQUF3QixJQUFBLElBQUF2RixDQUFBLENBQUF5QixJQUFBLENBQUF2QixDQUFBLHdCQUFBcUYsSUFBQSxHQUFBckYsQ0FBQSxDQUFBK0QsVUFBQSxRQUFBNUQsQ0FBQSxHQUFBSCxDQUFBLGFBQUFHLENBQUEsaUJBQUFULENBQUEsbUJBQUFBLENBQUEsS0FBQVMsQ0FBQSxDQUFBMEQsTUFBQSxJQUFBcEUsQ0FBQSxJQUFBQSxDQUFBLElBQUFVLENBQUEsQ0FBQTRELFVBQUEsS0FBQTVELENBQUEsY0FBQUUsQ0FBQSxHQUFBRixDQUFBLEdBQUFBLENBQUEsQ0FBQWlFLFVBQUEsY0FBQS9ELENBQUEsQ0FBQWdCLElBQUEsR0FBQTNCLENBQUEsRUFBQVcsQ0FBQSxDQUFBaUIsR0FBQSxHQUFBN0IsQ0FBQSxFQUFBVSxDQUFBLFNBQUE4QyxNQUFBLGdCQUFBUyxJQUFBLEdBQUF2RCxDQUFBLENBQUE0RCxVQUFBLEVBQUFuQyxDQUFBLFNBQUErRCxRQUFBLENBQUF0RixDQUFBLE1BQUFzRixRQUFBLFdBQUFBLFNBQUFqRyxDQUFBLEVBQUFELENBQUEsb0JBQUFDLENBQUEsQ0FBQTJCLElBQUEsUUFBQTNCLENBQUEsQ0FBQTRCLEdBQUEscUJBQUE1QixDQUFBLENBQUEyQixJQUFBLG1CQUFBM0IsQ0FBQSxDQUFBMkIsSUFBQSxRQUFBcUMsSUFBQSxHQUFBaEUsQ0FBQSxDQUFBNEIsR0FBQSxnQkFBQTVCLENBQUEsQ0FBQTJCLElBQUEsU0FBQW9FLElBQUEsUUFBQW5FLEdBQUEsR0FBQTVCLENBQUEsQ0FBQTRCLEdBQUEsT0FBQTJCLE1BQUEsa0JBQUFTLElBQUEseUJBQUFoRSxDQUFBLENBQUEyQixJQUFBLElBQUE1QixDQUFBLFVBQUFpRSxJQUFBLEdBQUFqRSxDQUFBLEdBQUFtQyxDQUFBLEtBQUFnRSxNQUFBLFdBQUFBLE9BQUFsRyxDQUFBLGFBQUFELENBQUEsUUFBQXdFLFVBQUEsQ0FBQU0sTUFBQSxNQUFBOUUsQ0FBQSxTQUFBQSxDQUFBLFFBQUFFLENBQUEsUUFBQXNFLFVBQUEsQ0FBQXhFLENBQUEsT0FBQUUsQ0FBQSxDQUFBb0UsVUFBQSxLQUFBckUsQ0FBQSxjQUFBaUcsUUFBQSxDQUFBaEcsQ0FBQSxDQUFBeUUsVUFBQSxFQUFBekUsQ0FBQSxDQUFBcUUsUUFBQSxHQUFBRyxhQUFBLENBQUF4RSxDQUFBLEdBQUFpQyxDQUFBLHlCQUFBaUUsT0FBQW5HLENBQUEsYUFBQUQsQ0FBQSxRQUFBd0UsVUFBQSxDQUFBTSxNQUFBLE1BQUE5RSxDQUFBLFNBQUFBLENBQUEsUUFBQUUsQ0FBQSxRQUFBc0UsVUFBQSxDQUFBeEUsQ0FBQSxPQUFBRSxDQUFBLENBQUFrRSxNQUFBLEtBQUFuRSxDQUFBLFFBQUFJLENBQUEsR0FBQUgsQ0FBQSxDQUFBeUUsVUFBQSxrQkFBQXRFLENBQUEsQ0FBQXVCLElBQUEsUUFBQXJCLENBQUEsR0FBQUYsQ0FBQSxDQUFBd0IsR0FBQSxFQUFBNkMsYUFBQSxDQUFBeEUsQ0FBQSxZQUFBSyxDQUFBLGdCQUFBK0MsS0FBQSw4QkFBQStDLGFBQUEsV0FBQUEsY0FBQXJHLENBQUEsRUFBQUUsQ0FBQSxFQUFBRyxDQUFBLGdCQUFBb0QsUUFBQSxLQUFBNUMsUUFBQSxFQUFBNkIsTUFBQSxDQUFBMUMsQ0FBQSxHQUFBZ0UsVUFBQSxFQUFBOUQsQ0FBQSxFQUFBZ0UsT0FBQSxFQUFBN0QsQ0FBQSxvQkFBQW1ELE1BQUEsVUFBQTNCLEdBQUEsR0FBQTVCLENBQUEsR0FBQWtDLENBQUEsT0FBQW5DLENBQUE7QUFBQSxTQUFBc0csbUJBQUFDLEdBQUEsRUFBQXJELE9BQUEsRUFBQXNELE1BQUEsRUFBQUMsS0FBQSxFQUFBQyxNQUFBLEVBQUFDLEdBQUEsRUFBQTlFLEdBQUEsY0FBQStFLElBQUEsR0FBQUwsR0FBQSxDQUFBSSxHQUFBLEVBQUE5RSxHQUFBLE9BQUFwQixLQUFBLEdBQUFtRyxJQUFBLENBQUFuRyxLQUFBLFdBQUFvRyxLQUFBLElBQUFMLE1BQUEsQ0FBQUssS0FBQSxpQkFBQUQsSUFBQSxDQUFBckQsSUFBQSxJQUFBTCxPQUFBLENBQUF6QyxLQUFBLFlBQUErRSxPQUFBLENBQUF0QyxPQUFBLENBQUF6QyxLQUFBLEVBQUEyQyxJQUFBLENBQUFxRCxLQUFBLEVBQUFDLE1BQUE7QUFBQSxTQUFBSSxrQkFBQUMsRUFBQSw2QkFBQUMsSUFBQSxTQUFBQyxJQUFBLEdBQUFDLFNBQUEsYUFBQTFCLE9BQUEsV0FBQXRDLE9BQUEsRUFBQXNELE1BQUEsUUFBQUQsR0FBQSxHQUFBUSxFQUFBLENBQUFJLEtBQUEsQ0FBQUgsSUFBQSxFQUFBQyxJQUFBLFlBQUFSLE1BQUFoRyxLQUFBLElBQUE2RixrQkFBQSxDQUFBQyxHQUFBLEVBQUFyRCxPQUFBLEVBQUFzRCxNQUFBLEVBQUFDLEtBQUEsRUFBQUMsTUFBQSxVQUFBakcsS0FBQSxjQUFBaUcsT0FBQVUsR0FBQSxJQUFBZCxrQkFBQSxDQUFBQyxHQUFBLEVBQUFyRCxPQUFBLEVBQUFzRCxNQUFBLEVBQUFDLEtBQUEsRUFBQUMsTUFBQSxXQUFBVSxHQUFBLEtBQUFYLEtBQUEsQ0FBQVksU0FBQTtBQUFBLFNBQUFDLDJCQUFBL0csQ0FBQSxFQUFBZ0gsY0FBQSxRQUFBQyxFQUFBLFVBQUE3RyxNQUFBLG9CQUFBSixDQUFBLENBQUFJLE1BQUEsQ0FBQUUsUUFBQSxLQUFBTixDQUFBLHFCQUFBaUgsRUFBQSxRQUFBQyxLQUFBLENBQUFDLE9BQUEsQ0FBQW5ILENBQUEsTUFBQWlILEVBQUEsR0FBQUcsMkJBQUEsQ0FBQXBILENBQUEsTUFBQWdILGNBQUEsSUFBQWhILENBQUEsV0FBQUEsQ0FBQSxDQUFBdUUsTUFBQSxxQkFBQTBDLEVBQUEsRUFBQWpILENBQUEsR0FBQWlILEVBQUEsTUFBQTlHLENBQUEsVUFBQWtILENBQUEsWUFBQUEsRUFBQSxlQUFBMUYsQ0FBQSxFQUFBMEYsQ0FBQSxFQUFBdkgsQ0FBQSxXQUFBQSxFQUFBLFFBQUFLLENBQUEsSUFBQUgsQ0FBQSxDQUFBdUUsTUFBQSxXQUFBdkIsSUFBQSxtQkFBQUEsSUFBQSxTQUFBOUMsS0FBQSxFQUFBRixDQUFBLENBQUFHLENBQUEsVUFBQVYsQ0FBQSxXQUFBQSxFQUFBNkgsRUFBQSxVQUFBQSxFQUFBLEtBQUE1RixDQUFBLEVBQUEyRixDQUFBLGdCQUFBN0QsU0FBQSxpSkFBQStELGdCQUFBLFNBQUFDLE1BQUEsVUFBQVgsR0FBQSxXQUFBbEYsQ0FBQSxXQUFBQSxFQUFBLElBQUFzRixFQUFBLEdBQUFBLEVBQUEsQ0FBQTFGLElBQUEsQ0FBQXZCLENBQUEsTUFBQUYsQ0FBQSxXQUFBQSxFQUFBLFFBQUEySCxJQUFBLEdBQUFSLEVBQUEsQ0FBQXZELElBQUEsSUFBQTZELGdCQUFBLEdBQUFFLElBQUEsQ0FBQXpFLElBQUEsU0FBQXlFLElBQUEsS0FBQWhJLENBQUEsV0FBQUEsRUFBQWlJLEdBQUEsSUFBQUYsTUFBQSxTQUFBWCxHQUFBLEdBQUFhLEdBQUEsS0FBQWhHLENBQUEsV0FBQUEsRUFBQSxlQUFBNkYsZ0JBQUEsSUFBQU4sRUFBQSxvQkFBQUEsRUFBQSw4QkFBQU8sTUFBQSxRQUFBWCxHQUFBO0FBQUEsU0FBQWMsU0FBQSxJQUFBQSxRQUFBLEdBQUEvSCxNQUFBLENBQUFnSSxNQUFBLEdBQUFoSSxNQUFBLENBQUFnSSxNQUFBLENBQUFDLElBQUEsZUFBQUMsTUFBQSxhQUFBM0gsQ0FBQSxNQUFBQSxDQUFBLEdBQUF3RyxTQUFBLENBQUFwQyxNQUFBLEVBQUFwRSxDQUFBLFVBQUE0SCxNQUFBLEdBQUFwQixTQUFBLENBQUF4RyxDQUFBLFlBQUFpRyxHQUFBLElBQUEyQixNQUFBLFFBQUFuSSxNQUFBLENBQUFDLFNBQUEsQ0FBQUUsY0FBQSxDQUFBd0IsSUFBQSxDQUFBd0csTUFBQSxFQUFBM0IsR0FBQSxLQUFBMEIsTUFBQSxDQUFBMUIsR0FBQSxJQUFBMkIsTUFBQSxDQUFBM0IsR0FBQSxnQkFBQTBCLE1BQUEsWUFBQUgsUUFBQSxDQUFBZixLQUFBLE9BQUFELFNBQUE7QUFBQSxTQUFBcUIsbUJBQUFDLEdBQUEsV0FBQUMsa0JBQUEsQ0FBQUQsR0FBQSxLQUFBRSxnQkFBQSxDQUFBRixHQUFBLEtBQUFiLDJCQUFBLENBQUFhLEdBQUEsS0FBQUcsa0JBQUE7QUFBQSxTQUFBQSxtQkFBQSxjQUFBNUUsU0FBQTtBQUFBLFNBQUEyRSxpQkFBQUUsSUFBQSxlQUFBakksTUFBQSxvQkFBQWlJLElBQUEsQ0FBQWpJLE1BQUEsQ0FBQUUsUUFBQSxhQUFBK0gsSUFBQSwrQkFBQW5CLEtBQUEsQ0FBQW9CLElBQUEsQ0FBQUQsSUFBQTtBQUFBLFNBQUFILG1CQUFBRCxHQUFBLFFBQUFmLEtBQUEsQ0FBQUMsT0FBQSxDQUFBYyxHQUFBLFVBQUFNLGlCQUFBLENBQUFOLEdBQUE7QUFBQSxTQUFBTyxRQUFBL0ksQ0FBQSxFQUFBRSxDQUFBLFFBQUFELENBQUEsR0FBQUUsTUFBQSxDQUFBc0YsSUFBQSxDQUFBekYsQ0FBQSxPQUFBRyxNQUFBLENBQUE2SSxxQkFBQSxRQUFBekksQ0FBQSxHQUFBSixNQUFBLENBQUE2SSxxQkFBQSxDQUFBaEosQ0FBQSxHQUFBRSxDQUFBLEtBQUFLLENBQUEsR0FBQUEsQ0FBQSxDQUFBMEksTUFBQSxXQUFBL0ksQ0FBQSxXQUFBQyxNQUFBLENBQUErSSx3QkFBQSxDQUFBbEosQ0FBQSxFQUFBRSxDQUFBLEVBQUFpQixVQUFBLE9BQUFsQixDQUFBLENBQUF3RSxJQUFBLENBQUEwQyxLQUFBLENBQUFsSCxDQUFBLEVBQUFNLENBQUEsWUFBQU4sQ0FBQTtBQUFBLFNBQUFrSixjQUFBbkosQ0FBQSxhQUFBRSxDQUFBLE1BQUFBLENBQUEsR0FBQWdILFNBQUEsQ0FBQXBDLE1BQUEsRUFBQTVFLENBQUEsVUFBQUQsQ0FBQSxXQUFBaUgsU0FBQSxDQUFBaEgsQ0FBQSxJQUFBZ0gsU0FBQSxDQUFBaEgsQ0FBQSxRQUFBQSxDQUFBLE9BQUE2SSxPQUFBLENBQUE1SSxNQUFBLENBQUFGLENBQUEsT0FBQTRDLE9BQUEsV0FBQTNDLENBQUEsSUFBQWtKLGVBQUEsQ0FBQXBKLENBQUEsRUFBQUUsQ0FBQSxFQUFBRCxDQUFBLENBQUFDLENBQUEsU0FBQUMsTUFBQSxDQUFBa0oseUJBQUEsR0FBQWxKLE1BQUEsQ0FBQW1KLGdCQUFBLENBQUF0SixDQUFBLEVBQUFHLE1BQUEsQ0FBQWtKLHlCQUFBLENBQUFwSixDQUFBLEtBQUE4SSxPQUFBLENBQUE1SSxNQUFBLENBQUFGLENBQUEsR0FBQTRDLE9BQUEsV0FBQTNDLENBQUEsSUFBQUMsTUFBQSxDQUFBSyxjQUFBLENBQUFSLENBQUEsRUFBQUUsQ0FBQSxFQUFBQyxNQUFBLENBQUErSSx3QkFBQSxDQUFBakosQ0FBQSxFQUFBQyxDQUFBLGlCQUFBRixDQUFBO0FBQUEsU0FBQW9KLGdCQUFBRyxHQUFBLEVBQUE1QyxHQUFBLEVBQUFsRyxLQUFBLElBQUFrRyxHQUFBLEdBQUE2QyxjQUFBLENBQUE3QyxHQUFBLE9BQUFBLEdBQUEsSUFBQTRDLEdBQUEsSUFBQXBKLE1BQUEsQ0FBQUssY0FBQSxDQUFBK0ksR0FBQSxFQUFBNUMsR0FBQSxJQUFBbEcsS0FBQSxFQUFBQSxLQUFBLEVBQUFVLFVBQUEsUUFBQUMsWUFBQSxRQUFBQyxRQUFBLG9CQUFBa0ksR0FBQSxDQUFBNUMsR0FBQSxJQUFBbEcsS0FBQSxXQUFBOEksR0FBQTtBQUFBLFNBQUFDLGVBQUEzSCxHQUFBLFFBQUE4RSxHQUFBLEdBQUE4QyxZQUFBLENBQUE1SCxHQUFBLG9CQUFBb0IsT0FBQSxDQUFBMEQsR0FBQSxpQkFBQUEsR0FBQSxHQUFBK0MsTUFBQSxDQUFBL0MsR0FBQTtBQUFBLFNBQUE4QyxhQUFBRSxLQUFBLEVBQUFDLElBQUEsUUFBQTNHLE9BQUEsQ0FBQTBHLEtBQUEsa0JBQUFBLEtBQUEsa0JBQUFBLEtBQUEsTUFBQUUsSUFBQSxHQUFBRixLQUFBLENBQUFoSixNQUFBLENBQUFtSixXQUFBLE9BQUFELElBQUEsS0FBQXhDLFNBQUEsUUFBQTBDLEdBQUEsR0FBQUYsSUFBQSxDQUFBL0gsSUFBQSxDQUFBNkgsS0FBQSxFQUFBQyxJQUFBLG9CQUFBM0csT0FBQSxDQUFBOEcsR0FBQSx1QkFBQUEsR0FBQSxZQUFBaEcsU0FBQSw0REFBQTZGLElBQUEsZ0JBQUFGLE1BQUEsR0FBQU0sTUFBQSxFQUFBTCxLQUFBO0FBQUEsU0FBQU0sZUFBQXpCLEdBQUEsRUFBQTlILENBQUEsV0FBQXdKLGVBQUEsQ0FBQTFCLEdBQUEsS0FBQTJCLHFCQUFBLENBQUEzQixHQUFBLEVBQUE5SCxDQUFBLEtBQUFpSCwyQkFBQSxDQUFBYSxHQUFBLEVBQUE5SCxDQUFBLEtBQUEwSixnQkFBQTtBQUFBLFNBQUFBLGlCQUFBLGNBQUFyRyxTQUFBO0FBQUEsU0FBQTRELDRCQUFBcEgsQ0FBQSxFQUFBOEosTUFBQSxTQUFBOUosQ0FBQSxxQkFBQUEsQ0FBQSxzQkFBQXVJLGlCQUFBLENBQUF2SSxDQUFBLEVBQUE4SixNQUFBLE9BQUFoSyxDQUFBLEdBQUFGLE1BQUEsQ0FBQUMsU0FBQSxDQUFBa0ssUUFBQSxDQUFBeEksSUFBQSxDQUFBdkIsQ0FBQSxFQUFBdUYsS0FBQSxhQUFBekYsQ0FBQSxpQkFBQUUsQ0FBQSxDQUFBMEUsV0FBQSxFQUFBNUUsQ0FBQSxHQUFBRSxDQUFBLENBQUEwRSxXQUFBLENBQUFDLElBQUEsTUFBQTdFLENBQUEsY0FBQUEsQ0FBQSxtQkFBQW9ILEtBQUEsQ0FBQW9CLElBQUEsQ0FBQXRJLENBQUEsT0FBQUYsQ0FBQSwrREFBQWtLLElBQUEsQ0FBQWxLLENBQUEsVUFBQXlJLGlCQUFBLENBQUF2SSxDQUFBLEVBQUE4SixNQUFBO0FBQUEsU0FBQXZCLGtCQUFBTixHQUFBLEVBQUFnQyxHQUFBLFFBQUFBLEdBQUEsWUFBQUEsR0FBQSxHQUFBaEMsR0FBQSxDQUFBMUQsTUFBQSxFQUFBMEYsR0FBQSxHQUFBaEMsR0FBQSxDQUFBMUQsTUFBQSxXQUFBcEUsQ0FBQSxNQUFBK0osSUFBQSxPQUFBaEQsS0FBQSxDQUFBK0MsR0FBQSxHQUFBOUosQ0FBQSxHQUFBOEosR0FBQSxFQUFBOUosQ0FBQSxJQUFBK0osSUFBQSxDQUFBL0osQ0FBQSxJQUFBOEgsR0FBQSxDQUFBOUgsQ0FBQSxVQUFBK0osSUFBQTtBQUFBLFNBQUFOLHNCQUFBakssQ0FBQSxFQUFBOEIsQ0FBQSxRQUFBL0IsQ0FBQSxXQUFBQyxDQUFBLGdDQUFBUyxNQUFBLElBQUFULENBQUEsQ0FBQVMsTUFBQSxDQUFBRSxRQUFBLEtBQUFYLENBQUEsNEJBQUFELENBQUEsUUFBQUQsQ0FBQSxFQUFBSyxDQUFBLEVBQUFLLENBQUEsRUFBQU0sQ0FBQSxFQUFBSixDQUFBLE9BQUFxQixDQUFBLE9BQUExQixDQUFBLGlCQUFBRyxDQUFBLElBQUFULENBQUEsR0FBQUEsQ0FBQSxDQUFBNkIsSUFBQSxDQUFBNUIsQ0FBQSxHQUFBK0QsSUFBQSxRQUFBakMsQ0FBQSxRQUFBN0IsTUFBQSxDQUFBRixDQUFBLE1BQUFBLENBQUEsVUFBQWdDLENBQUEsdUJBQUFBLENBQUEsSUFBQWpDLENBQUEsR0FBQVUsQ0FBQSxDQUFBb0IsSUFBQSxDQUFBN0IsQ0FBQSxHQUFBc0QsSUFBQSxNQUFBM0MsQ0FBQSxDQUFBNkQsSUFBQSxDQUFBekUsQ0FBQSxDQUFBUyxLQUFBLEdBQUFHLENBQUEsQ0FBQWtFLE1BQUEsS0FBQTlDLENBQUEsR0FBQUMsQ0FBQSxpQkFBQS9CLENBQUEsSUFBQUssQ0FBQSxPQUFBRixDQUFBLEdBQUFILENBQUEseUJBQUErQixDQUFBLFlBQUFoQyxDQUFBLGVBQUFlLENBQUEsR0FBQWYsQ0FBQSxjQUFBRSxNQUFBLENBQUFhLENBQUEsTUFBQUEsQ0FBQSwyQkFBQVQsQ0FBQSxRQUFBRixDQUFBLGFBQUFPLENBQUE7QUFBQSxTQUFBc0osZ0JBQUExQixHQUFBLFFBQUFmLEtBQUEsQ0FBQUMsT0FBQSxDQUFBYyxHQUFBLFVBQUFBLEdBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBREEsT0FBTyxLQUFLa0MsS0FBSyxNQUFNLE9BQU87QUFDOUIsT0FBTyxLQUFLQyxTQUFTLE1BQU0sWUFBWTtBQUN2QyxTQUFTQyxJQUFJLEVBQUVDLHlCQUF5QixRQUFRLHlCQUF5QjtBQUN6RSxPQUFPQyxNQUFNLE1BQU0sU0FBUztBQUM1QixTQUFTQyxPQUFPLFFBQVEscUJBQXFCO0FBQzdDLFNBQVNDLFVBQVUsUUFBUSxlQUFlO0FBQzFDLFNBQVNDLE9BQU8sRUFBRUMsWUFBWSxRQUFRLGdCQUFnQjtBQUN0RCxTQUNFQyxJQUFJLEVBQ0pDLFdBQVcsRUFDWEMsV0FBVyxFQUNYQyx5QkFBeUIsRUFDekJDLGtCQUFrQixFQUNsQkMsZUFBZSxFQUNmQyxZQUFZLEVBQ1pDLHFCQUFxQixFQUNyQkMsbUJBQW1CLEVBQ25CQyxhQUFhLFFBQ1IsdUJBQXVCO0FBQzlCO0FBQ0EsU0FBU0Msd0JBQXdCLFFBQVEsa0JBQWtCO0FBQzNELFNBQVNDLGdCQUFnQixFQUFFQyx5QkFBeUIsUUFBUSxrQkFBa0I7QUFDOUUsU0FBU0MsT0FBTyxRQUFRLHlCQUF5QjtBQUNqRCxTQUFTQyxTQUFTLFFBQVEsdUJBQXVCO0FBQ2pELFNBQVNDLGFBQWEsRUFBRUMsaUJBQWlCLFFBQVEsSUFBSTtBQUNyRCxTQUFTQyxvQkFBb0IsUUFBUSxrQ0FBa0M7QUFDdkUsU0FDRUMsbUJBQW1CLEVBQ25CQyxjQUFjLEVBQ2RDLGFBQWEsRUFDYkMsMkJBQTJCLEVBQzNCQyxlQUFlLEVBQ2ZDLGtCQUFrQixFQUNsQkMsMkJBQTJCLEVBQzNCQyxlQUFlLFFBQ1YsK0JBQStCO0FBQ3RDLFNBQVNDLEtBQUssUUFBUSxtQkFBbUI7QUFDekMsU0FBU0MsY0FBYyxRQUFRLGtCQUFrQjtBQUNqRCxTQUFTQyxLQUFLLFFBQVEseUJBQXlCO0FBQy9DLFNBQ0VDLFlBQVksRUFDWkMsZUFBZSxFQUNmQyxZQUFZLFFBQ1AsYUFBYTtBQUNwQixTQUFTQyxrQkFBa0IsUUFBUSx1QkFBdUI7QUFDMUQsU0FBU0MsUUFBUSxRQUFRLG1CQUFtQjtBQUM1QyxTQUFTQyxzQkFBc0IsRUFBRUMsZ0JBQWdCLFFBQVEsYUFBYTtBQUV0RSxJQUFNQyxrQkFBa0IsR0FBRyx3QkFBd0I7QUFDbkQsSUFBTUMsS0FBSyxHQUFHLFNBQVM7QUFDdkIsSUFBTUMsS0FBSyxHQUFHO0VBQUVDLFNBQVMsRUFBRSxNQUFNO0VBQUVDLEtBQUssRUFBRTtBQUFRLENBQUM7O0FBRW5EO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsU0FBU0MsYUFBYUEsQ0FBQ0MsUUFBUSxFQUFFO0VBQUEsSUFBQUMscUJBQUE7RUFDL0IsSUFBQUMsSUFBQSxHQUlJRixRQUFRLElBQUksQ0FBQyxDQUFDO0lBSGhCRyxPQUFPLEdBQUFELElBQUEsQ0FBUEMsT0FBTztJQUNQQyxLQUFLLEdBQUFGLElBQUEsQ0FBTEUsS0FBSztJQUNMQyxTQUFTLEdBQUFILElBQUEsQ0FBVEcsU0FBUztFQUVYLElBQU1DLFlBQVksR0FBR0QsU0FBUyxhQUFUQSxTQUFTLGdCQUFBSixxQkFBQSxHQUFUSSxTQUFTLENBQUVDLFlBQVksY0FBQUwscUJBQUEsZUFBdkJBLHFCQUFBLENBQXlCaEosTUFBTSxHQUFHc0osSUFBSSxDQUFDQyxTQUFTLENBQUNILFNBQVMsQ0FBQ0MsWUFBWSxDQUFDLEdBQUcsRUFBRTtFQUNsRyxPQUFPO0lBQ0xILE9BQU8sRUFBUEEsT0FBTztJQUNQQyxLQUFLLEVBQUxBLEtBQUs7SUFDTEUsWUFBWSxFQUFaQTtFQUNGLENBQUM7QUFDSDs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsU0FBU0csYUFBYUEsQ0FBQ0MsYUFBb0IsRUFBRUMsYUFBb0IsRUFBRTtFQUNqRUQsYUFBYSxHQUFHQSxhQUFhLElBQUksRUFBRTtFQUNuQ0MsYUFBYSxHQUFHQSxhQUFhLElBQUksRUFBRTtFQUNuQyxJQUFJQyxPQUFPLEdBQUcsS0FBSztFQUVuQixJQUFJRixhQUFhLENBQUN6SixNQUFNLEtBQUswSixhQUFhLENBQUMxSixNQUFNLEVBQUU7SUFDakQySixPQUFPLEdBQUcsSUFBSTtJQUVkLEtBQUssSUFBSS9OLENBQUMsR0FBRyxDQUFDLEVBQUVzQixDQUFDLEdBQUV1TSxhQUFhLENBQUN6SixNQUFNLEVBQUVwRSxDQUFDLEdBQUdzQixDQUFDLEVBQUV0QixDQUFDLEVBQUUsRUFBRTtNQUNuRCxJQUFNZ08sTUFBTSxHQUFHZCxhQUFhLENBQUNXLGFBQWEsQ0FBQzdOLENBQUMsQ0FBQyxDQUFDO01BQzlDLElBQU1pTyxNQUFNLEdBQUdmLGFBQWEsQ0FBQ1ksYUFBYSxDQUFDOU4sQ0FBQyxDQUFDLENBQUM7TUFDOUMrTixPQUFPLEdBQUd6QyxPQUFPLENBQUMwQyxNQUFNLEVBQUVDLE1BQU0sQ0FBQztNQUVqQyxJQUFJLENBQUNGLE9BQU8sRUFBRTtRQUNaO01BQ0Y7SUFDRjtFQUNGO0VBRUEsT0FBT0EsT0FBTztBQUNoQjs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTyxJQUFNRyxjQUFjLEdBQUcsU0FBakJBLGNBQWNBLENBQUlDLGVBQWUsRUFBRUMsTUFBTSxFQUFLO0VBQUEsSUFBQUMscUJBQUEsRUFBQUMsc0JBQUEsRUFBQUMscUJBQUE7RUFDekQsSUFBTUMsV0FBVyxHQUFHTCxlQUFlLGFBQWZBLGVBQWUsZ0JBQUFFLHFCQUFBLEdBQWZGLGVBQWUsQ0FBRU0sYUFBYSxjQUFBSixxQkFBQSxnQkFBQUEscUJBQUEsR0FBOUJBLHFCQUFBLENBQWdDSyxRQUFRLGNBQUFMLHFCQUFBLHVCQUF4Q0EscUJBQUEsQ0FBMENNLFNBQVM7RUFDdkUsSUFBTUMsUUFBUSxHQUFHVCxlQUFlLGFBQWZBLGVBQWUsZ0JBQUFHLHNCQUFBLEdBQWZILGVBQWUsQ0FBRU0sYUFBYSxjQUFBSCxzQkFBQSxnQkFBQUEsc0JBQUEsR0FBOUJBLHNCQUFBLENBQWdDSSxRQUFRLGNBQUFKLHNCQUFBLHVCQUF4Q0Esc0JBQUEsQ0FBMEM5SixJQUFJLEVBQUM7RUFDaEUsSUFBSXFLLFdBQVcsR0FBRyxLQUFLO0VBQ3ZCLElBQU1DLFFBQVEsR0FBR2hELDJCQUEyQixDQUFDOEMsUUFBUSxDQUFDO0VBQ3REQyxXQUFXLEdBQUdDLFFBQVEsYUFBUkEsUUFBUSxnQkFBQVAscUJBQUEsR0FBUk8sUUFBUSxDQUFFQyxXQUFXLENBQUMsQ0FBQyxjQUFBUixxQkFBQSx1QkFBdkJBLHFCQUFBLENBQXlCUyxRQUFRLENBQUNaLE1BQU0sQ0FBQztFQUN2RCxJQUFJLENBQUNTLFdBQVcsRUFBRTtJQUNoQkksT0FBTyxDQUFDQyxJQUFJLHNCQUFBQyxNQUFBLENBQXNCZixNQUFNLHdCQUFBZSxNQUFBLENBQXFCUCxRQUFRLENBQUUsQ0FBQztFQUMxRTtFQUNBLElBQUksQ0FBQUosV0FBVyxhQUFYQSxXQUFXLHVCQUFYQSxXQUFXLENBQUVPLFdBQVcsQ0FBQyxDQUFDLE1BQUtYLE1BQU0sRUFBRTtJQUN6Q2EsT0FBTyxDQUFDQyxJQUFJLHNCQUFBQyxNQUFBLENBQXNCZixNQUFNLGdDQUFBZSxNQUFBLENBQTZCWCxXQUFXLENBQUUsQ0FBQztJQUNuRkssV0FBVyxHQUFHLEtBQUs7RUFDckI7RUFDQSxJQUFJQSxXQUFXLEVBQUU7SUFDZixJQUFNTyxTQUFTLEdBQUdqQixlQUFlLGFBQWZBLGVBQWUsdUJBQWZBLGVBQWUsQ0FBRWlCLFNBQVM7SUFDNUMsSUFBSUEsU0FBUyxFQUFFO01BQ2IsT0FBT0EsU0FBUztJQUNsQjtJQUNBSCxPQUFPLENBQUM5SSxLQUFLLHdDQUF3QyxDQUFDO0VBQ3hEO0VBQ0E4SSxPQUFPLENBQUM5SSxLQUFLLGdDQUFBZ0osTUFBQSxDQUFnQ2YsTUFBTSxvQkFBQWUsTUFBQSxDQUFpQlAsUUFBUSxDQUFFLENBQUM7RUFDL0UsT0FBTyxJQUFJO0FBQ2IsQ0FBQztBQUVELGVBQWUsU0FBU1MsYUFBYUEsQ0FBQUMsS0FBQSxFQXFDbEM7RUFBQSxJQUFBQyxzQkFBQSxFQUFBQyxzQkFBQSxFQUFBQyxzQkFBQSxFQUFBQyxzQkFBQSxFQUFBQyxzQkFBQSxFQUFBQyxxQkFBQSxFQUFBQyxzQkFBQSxFQUFBQyx1QkFBQSxFQUFBQyxXQUFBLEVBQUFDLFlBQUEsRUFBQUMsb0JBQUEsRUFBQUMsY0FBQSxFQUFBQyxjQUFBO0VBQUEsSUFwQ0RDLE1BQU0sR0FBQWQsS0FBQSxDQUFOYyxNQUFNO0lBQ05DLGNBQWMsR0FBQWYsS0FBQSxDQUFkZSxjQUFjO0lBQ2RDLFNBQVMsR0FBQWhCLEtBQUEsQ0FBVGdCLFNBQVM7SUFDVEMsT0FBTyxHQUFBakIsS0FBQSxDQUFQaUIsT0FBTztJQUNQQyxPQUFPLEdBQUFsQixLQUFBLENBQVBrQixPQUFPO0lBQ1BDLGtCQUFrQixHQUFBbkIsS0FBQSxDQUFsQm1CLGtCQUFrQjtJQUNsQkMsV0FBVyxHQUFBcEIsS0FBQSxDQUFYb0IsV0FBVztJQUNYQyxjQUFjLEdBQUFyQixLQUFBLENBQWRxQixjQUFjO0lBQ2RDLFlBQVksR0FBQXRCLEtBQUEsQ0FBWnNCLFlBQVk7SUFDWkMsYUFBYSxHQUFBdkIsS0FBQSxDQUFidUIsYUFBYTtJQUNiQyxVQUFVLEdBQUF4QixLQUFBLENBQVZ3QixVQUFVO0lBQ1ZDLEVBQUUsR0FBQXpCLEtBQUEsQ0FBRnlCLEVBQUU7SUFDRkMsSUFBSSxHQUFBMUIsS0FBQSxDQUFKMEIsSUFBSTtJQUNKQyxZQUFZLEdBQUEzQixLQUFBLENBQVoyQixZQUFZO0lBQ1pDLFVBQVUsR0FBQTVCLEtBQUEsQ0FBVjRCLFVBQVU7SUFDVkMsZUFBZSxHQUFBN0IsS0FBQSxDQUFmNkIsZUFBZTtJQUNmQyw0QkFBNEIsR0FBQTlCLEtBQUEsQ0FBNUI4Qiw0QkFBNEI7SUFDakJDLFVBQVUsR0FBQS9CLEtBQUEsQ0FBckJnQyxTQUFTO0lBQUFDLGNBQUEsR0FBQWpDLEtBQUEsQ0FDVFosUUFBUTtJQUNOOEMsS0FBSyxHQUFBRCxjQUFBLENBQUxDLEtBQUs7SUFDTEMsVUFBVSxHQUFBRixjQUFBLENBQVZFLFVBQVU7SUFDVkMsVUFBVSxHQUFBSCxjQUFBLENBQVZHLFVBQVU7SUFDVkMscUJBQXFCLEdBQUFKLGNBQUEsQ0FBckJJLHFCQUFxQjtJQUV2QkMsWUFBWSxHQUFBdEMsS0FBQSxDQUFac0MsWUFBWTtJQUNaQyxhQUFhLEdBQUF2QyxLQUFBLENBQWJ1QyxhQUFhO0lBQ2JDLE1BQU0sR0FBQXhDLEtBQUEsQ0FBTndDLE1BQU07SUFDTkMsb0JBQW9CLEdBQUF6QyxLQUFBLENBQXBCeUMsb0JBQW9CO0lBQ3BCQyxxQkFBcUIsR0FBQTFDLEtBQUEsQ0FBckIwQyxxQkFBcUI7SUFDckJDLGNBQWMsR0FBQTNDLEtBQUEsQ0FBZDJDLGNBQWM7SUFDZEMsZUFBZSxHQUFBNUMsS0FBQSxDQUFmNEMsZUFBZTtJQUNmQyxvQkFBb0IsR0FBQTdDLEtBQUEsQ0FBcEI2QyxvQkFBb0I7SUFDcEJDLFNBQVMsR0FBQTlDLEtBQUEsQ0FBVDhDLFNBQVM7SUFDVEMsS0FBSyxHQUFBL0MsS0FBQSxDQUFMK0MsS0FBSztJQUNMQyxtQkFBbUIsR0FBQWhELEtBQUEsQ0FBbkJnRCxtQkFBbUI7SUFDbkJDLGdCQUFnQixHQUFBakQsS0FBQSxDQUFoQmlELGdCQUFnQjtFQUVoQixJQUFNbkUsTUFBTSxHQUFHLENBQUFpRCxVQUFVLGFBQVZBLFVBQVUsdUJBQVZBLFVBQVUsQ0FBRWpELE1BQU0sTUFBSWlELFVBQVUsYUFBVkEsVUFBVSx1QkFBVkEsVUFBVSxDQUFFMUMsU0FBUyxHQUFDO0VBQzNELElBQU0yQyxTQUFTLEdBQUc7SUFDaEJsRCxNQUFNLEVBQU5BLE1BQU07SUFDTmQsT0FBTyxFQUFFK0QsVUFBVSxhQUFWQSxVQUFVLHVCQUFWQSxVQUFVLENBQUUvRCxPQUFPO0lBQzVCQyxLQUFLLEVBQUU4RCxVQUFVLGFBQVZBLFVBQVUsdUJBQVZBLFVBQVUsQ0FBRTlEO0VBQ3JCLENBQUM7RUFDRCxJQUFBaUYsZUFBQSxHQUEyQnhJLEtBQUssQ0FBQ3lJLFFBQVEsQ0FBQztNQUN4Q0Msa0JBQWtCLEVBQUUsQ0FBQztNQUNyQkMsWUFBWSxFQUFFLENBQUM7TUFDZkMsZ0JBQWdCLEVBQUUsSUFBSTtNQUN0QkMsZUFBZSxFQUFFLEtBQUs7TUFDdEJDLFNBQVMsRUFBRSxJQUFJO01BQ2ZDLGtCQUFrQixFQUFFLEtBQUs7TUFDekJDLGlCQUFpQixFQUFFLElBQUk7TUFDdkJDLGFBQWEsRUFBRSxLQUFLO01BQ3BCQyxHQUFHLEVBQUU5QyxNQUFNO01BQ1grQyxXQUFXLEVBQUUsS0FBSztNQUNsQkMsV0FBVyxFQUFFLElBQUk7TUFDakJDLGFBQWEsRUFBRSxLQUFLO01BQ3BCQyxvQkFBb0IsRUFBRSxJQUFJO01BQzFCQyxVQUFVLEVBQUUsSUFBSUMsR0FBRyxDQUFDLENBQUM7TUFDckJDLGNBQWMsRUFBRSxFQUFFO01BQ2xCQyxrQkFBa0IsRUFBRSxLQUFLO01BQ3pCQyxTQUFTLEVBQUUsS0FBSztNQUNoQkMsUUFBUSxFQUFFLElBQUk7TUFDZEMsZUFBZSxFQUFFLEtBQUs7TUFDdEJDLGtCQUFrQixFQUFFLENBQUMsQ0FBQztNQUN0QkMscUJBQXFCLEVBQUUsSUFBSTtNQUMzQkMsWUFBWSxFQUFFLElBQUk7TUFDbEJDLGVBQWUsRUFBRSxJQUFJVCxHQUFHLENBQUMsQ0FBQztNQUMxQlUseUJBQXlCLEVBQUU7SUFDN0IsQ0FBQyxDQUFDO0lBQUFDLGdCQUFBLEdBQUE1SyxjQUFBLENBQUFpSixlQUFBO0lBekJLNEIsS0FBSyxHQUFBRCxnQkFBQTtJQUFFRSxTQUFTLEdBQUFGLGdCQUFBO0VBMEJ2QixJQUNFekIsa0JBQWtCLEdBd0JoQjBCLEtBQUssQ0F4QlAxQixrQkFBa0I7SUFDbEJDLFlBQVksR0F1QlZ5QixLQUFLLENBdkJQekIsWUFBWTtJQUNaQyxnQkFBZ0IsR0FzQmR3QixLQUFLLENBdEJQeEIsZ0JBQWdCO0lBQ2hCQyxlQUFlLEdBcUJidUIsS0FBSyxDQXJCUHZCLGVBQWU7SUFDZkMsU0FBUyxHQW9CUHNCLEtBQUssQ0FwQlB0QixTQUFTO0lBQ1RDLGtCQUFrQixHQW1CaEJxQixLQUFLLENBbkJQckIsa0JBQWtCO0lBQ2xCQyxpQkFBaUIsR0FrQmZvQixLQUFLLENBbEJQcEIsaUJBQWlCO0lBQ2pCQyxhQUFhLEdBaUJYbUIsS0FBSyxDQWpCUG5CLGFBQWE7SUFDYkMsR0FBRyxHQWdCRGtCLEtBQUssQ0FoQlBsQixHQUFHO0lBQ0hDLFdBQVcsR0FlVGlCLEtBQUssQ0FmUGpCLFdBQVc7SUFDWEMsV0FBVyxHQWNUZ0IsS0FBSyxDQWRQaEIsV0FBVztJQUNYQyxhQUFhLEdBYVhlLEtBQUssQ0FiUGYsYUFBYTtJQUNiQyxvQkFBb0IsR0FZbEJjLEtBQUssQ0FaUGQsb0JBQW9CO0lBQ3BCQyxVQUFVLEdBV1JhLEtBQUssQ0FYUGIsVUFBVTtJQUNWRSxjQUFjLEdBVVpXLEtBQUssQ0FWUFgsY0FBYztJQUNkQyxrQkFBa0IsR0FTaEJVLEtBQUssQ0FUUFYsa0JBQWtCO0lBQ2xCQyxTQUFTLEdBUVBTLEtBQUssQ0FSUFQsU0FBUztJQUNUQyxRQUFRLEdBT05RLEtBQUssQ0FQUFIsUUFBUTtJQUNSQyxlQUFlLEdBTWJPLEtBQUssQ0FOUFAsZUFBZTtJQUNmQyxrQkFBa0IsR0FLaEJNLEtBQUssQ0FMUE4sa0JBQWtCO0lBQ2xCRyxlQUFlLEdBSWJHLEtBQUssQ0FKUEgsZUFBZTtJQUNmQyx5QkFBeUIsR0FHdkJFLEtBQUssQ0FIUEYseUJBQXlCO0lBQ3pCSCxxQkFBcUIsR0FFbkJLLEtBQUssQ0FGUEwscUJBQXFCO0lBQ3JCQyxZQUFZLEdBQ1ZJLEtBQUssQ0FEUEosWUFBWTtFQUdkLElBQUFNLG9CQUFBLEdBQWdDaEMsbUJBQW1CLENBQUN6RixrQkFBa0IsR0FBRzBELE9BQU8sRUFBRSxHQUFHLENBQUM7SUFBQWdFLHFCQUFBLEdBQUFoTCxjQUFBLENBQUErSyxvQkFBQTtJQUEvRUUsUUFBUSxHQUFBRCxxQkFBQTtJQUFFRSxXQUFXLEdBQUFGLHFCQUFBO0VBQzVCLElBQU1HLEtBQUssR0FBRzFELElBQUksQ0FBQzVDLE1BQU0sQ0FBQztFQUUxQixTQUFTdUcsUUFBUUEsQ0FBQ0MsUUFBUSxFQUFFO0lBQzFCUCxTQUFTLENBQUMsVUFBQVEsU0FBUztNQUFBLE9BQUFwTSxhQUFBLENBQUFBLGFBQUEsS0FBVW9NLFNBQVMsR0FBS0QsUUFBUTtJQUFBLENBQUcsQ0FBQztFQUN6RDtFQUVBOUQsVUFBVSxHQUFBckksYUFBQSxDQUFBQSxhQUFBLEtBQ0xxSSxVQUFVO0lBQ2JnRSxLQUFLLEVBQUU7TUFBRUMsTUFBTSxFQUFFO0lBQUUsQ0FBQztJQUNwQkMsT0FBTyxFQUFFO0VBQUksRUFDZCxFQUFDOztFQUVGLElBQUFDLHFCQUFBLEdBTUl2SixvQkFBb0IsQ0FBQztNQUN2QjBFLE1BQU0sRUFBRThDLEdBQUc7TUFDWDNDLE9BQU8sRUFBUEEsT0FBTztNQUNQRSxrQkFBa0IsRUFBbEJBLGtCQUFrQjtNQUNsQkcsWUFBWSxFQUFaQSxZQUFZO01BQ1pDLGFBQWEsRUFBYkEsYUFBYTtNQUNiQyxVQUFVLEVBQVZBLFVBQVU7TUFDVkUsSUFBSSxFQUFKQSxJQUFJO01BQ0pTLFVBQVUsRUFBVkEsVUFBVTtNQUNWRSxxQkFBcUIsRUFBckJBLHFCQUFxQjtNQUNyQkgsS0FBSyxFQUFMQSxLQUFLO01BQ0x5QixhQUFhLEVBQWJBLGFBQWE7TUFDYjNCLFNBQVMsRUFBRXNCLGdCQUFnQixJQUFJdEIsU0FBUztNQUN4Q0ksVUFBVSxFQUFWQSxVQUFVO01BQ1ZFLFlBQVksRUFBWkEsWUFBWTtNQUNac0QsV0FBVyxFQUFFLFNBQUFBLFlBQUMvTyxLQUFLO1FBQUEsT0FBS3dPLFFBQVEsQ0FBQztVQUFFZixRQUFRLEVBQUV6TjtRQUFNLENBQUMsQ0FBQztNQUFBO01BQ3JEMkwsTUFBTSxFQUFOQSxNQUFNO01BQ05PLEtBQUssRUFBTEEsS0FBSztNQUNMQyxtQkFBbUIsRUFBbkJBLG1CQUFtQjtNQUNuQjZDLFNBQVMsRUFBRTtJQUNiLENBQUMsQ0FBQztJQXpCQUMsY0FBYyxHQUFBSCxxQkFBQSxDQUFkRyxjQUFjO0lBQ2RqSCxlQUFlLEdBQUE4RyxxQkFBQSxDQUFmOUcsZUFBZTtJQUNma0gsWUFBWSxHQUFBSixxQkFBQSxDQUFaSSxZQUFZO0lBQ1pDLGlCQUFpQixHQUFBTCxxQkFBQSxDQUFqQkssaUJBQWlCO0lBQ2pCQyxvQkFBb0IsR0FBQU4scUJBQUEsQ0FBcEJNLG9CQUFvQjtFQXVCdEIsSUFBTUMsZUFBZSxHQUFHckgsZUFBZSxhQUFmQSxlQUFlLHVCQUFmQSxlQUFlLENBQUVNLGFBQWE7RUFDdEQ7RUFDQSxJQUFNZ0gsSUFBSSxNQUFBdEcsTUFBQSxDQUFNaEIsZUFBZSxhQUFmQSxlQUFlLGdCQUFBb0Isc0JBQUEsR0FBZnBCLGVBQWUsQ0FBRU8sUUFBUSxjQUFBYSxzQkFBQSx1QkFBekJBLHNCQUFBLENBQTJCa0MsVUFBVSxPQUFBdEMsTUFBQSxDQUFJaEIsZUFBZSxhQUFmQSxlQUFlLGdCQUFBcUIsc0JBQUEsR0FBZnJCLGVBQWUsQ0FBRU8sUUFBUSxjQUFBYyxzQkFBQSx1QkFBekJBLHNCQUFBLENBQTJCYixTQUFTLENBQUU7RUFDL0YsSUFBTStHLGtCQUFrQixHQUFHeEosZUFBZSxFQUFBdUQsc0JBQUEsR0FBQ3RCLGVBQWUsQ0FBQyxVQUFVLENBQUMsY0FBQXNCLHNCQUFBLHVCQUEzQkEsc0JBQUEsQ0FBNkJkLFNBQVMsQ0FBQzs7RUFHbEY7RUFDQSxJQUFNZ0gsY0FBYyxHQUFHLENBQUF4SCxlQUFlLGFBQWZBLGVBQWUsZ0JBQUF1QixzQkFBQSxHQUFmdkIsZUFBZSxDQUFFTyxRQUFRLGNBQUFnQixzQkFBQSx1QkFBekJBLHNCQUFBLENBQTJCZixTQUFTLEtBQUkrQyxVQUFVO0VBQ3pFO0VBQ0EsSUFBSWtFLElBQUksR0FBRyxDQUFBekgsZUFBZSxhQUFmQSxlQUFlLGdCQUFBd0Isc0JBQUEsR0FBZnhCLGVBQWUsQ0FBRU8sUUFBUSxjQUFBaUIsc0JBQUEsdUJBQXpCQSxzQkFBQSxDQUEyQnVELEdBQUcsS0FBSTlDLE1BQU07RUFDbkQsSUFBTXlGLGdCQUFnQixHQUFHLENBQUMsRUFBRTVFLFlBQVksSUFBSVosY0FBYyxJQUFLcUIsVUFBVSxLQUFLbkYsZUFBZ0I7RUFBSTtFQUM5RnFKLElBQUksS0FBSyxRQUFRLElBQU1BLElBQUksQ0FBQzVHLFFBQVEsQ0FBQ2lDLFlBQVksQ0FBRSxDQUFDLENBQUMsRUFBQzs7RUFFMUQsSUFBQTZFLGNBQUEsR0FXSTVLLGFBQWEsQ0FBQztNQUNoQmtGLE1BQU0sRUFBTkEsTUFBTTtNQUNOQyxjQUFjLEVBQUV3RixnQkFBZ0IsR0FBR3hGLGNBQWMsR0FBRyxJQUFJO01BQ3hEakMsTUFBTSxFQUFOQSxNQUFNO01BQ04ySCxNQUFNLEVBQUVoRixFQUFFO01BQ1Y0RSxjQUFjLEVBQWRBLGNBQWM7TUFDZGpELGtCQUFrQixFQUFsQkEsa0JBQWtCO01BQ2xCakIsVUFBVSxFQUFWQSxVQUFVO01BQ1ZSLFlBQVksRUFBRTRFLGdCQUFnQixHQUFHNUUsWUFBWSxHQUFHLElBQUk7TUFDcERPLEtBQUssRUFBTEEsS0FBSztNQUNMTCxlQUFlLEVBQWZBLGVBQWU7TUFDZlcsTUFBTSxFQUFOQSxNQUFNO01BQ05RLG1CQUFtQixFQUFuQkE7SUFDRixDQUFDLENBQUM7SUFBQTBELG9CQUFBLEdBQUFGLGNBQUEsQ0F2QkExQixLQUFLO0lBQ0g2QixnQkFBZ0IsR0FBQUQsb0JBQUEsQ0FBaEJDLGdCQUFnQjtJQUNoQkMsa0JBQWtCLEdBQUFGLG9CQUFBLENBQWxCRSxrQkFBa0I7SUFDREMsZ0JBQWdCLEdBQUFILG9CQUFBLENBQWpDbkMsZUFBZTtJQUNmdUMscUJBQXFCLEdBQUFKLG9CQUFBLENBQXJCSSxxQkFBcUI7SUFBQUMscUJBQUEsR0FBQVAsY0FBQSxDQUV2QlEsT0FBTztJQUNNQyxlQUFlLEdBQUFGLHFCQUFBLENBQTFCRyxTQUFTO0lBQ1RDLFVBQVUsR0FBQUoscUJBQUEsQ0FBVkksVUFBVTtFQWlCZCxJQUFNQyxnQkFBZ0IsR0FBRzVMLGVBQWUsQ0FBQztJQUFFZ0gsTUFBTSxFQUFOQSxNQUFNO0lBQUVOLEtBQUssRUFBTEEsS0FBSztJQUFFaUUsSUFBSSxFQUFKQSxJQUFJO0lBQUVrQixVQUFVLEVBQUVULGtCQUFrQjtJQUFFVSxPQUFPLEVBQUV2RyxjQUFjLGFBQWRBLGNBQWMsZ0JBQUFULHFCQUFBLEdBQWRTLGNBQWMsQ0FBRXdHLEtBQUssY0FBQWpILHFCQUFBLHVCQUFyQkEscUJBQUEsQ0FBdUJrSDtFQUFLLENBQUMsQ0FBQztFQUN2SSxJQUFBQyxxQkFBQSxHQUtJTCxnQkFBZ0IsQ0FKbEJ0QyxLQUFLO0lBQ1U0QyxhQUFhLEdBQUFELHFCQUFBLENBQTFCRSxXQUFXO0lBQ0dDLGVBQWUsR0FBQUgscUJBQUEsQ0FBN0JJLFlBQVk7RUFJaEIsSUFBTUMsaUJBQWlCLEdBQUdwTSxxQkFBcUIsQ0FBQztJQUM5Q3FNLFFBQVEsRUFBRTFELFNBQVM7SUFDbkI3SSxlQUFlLEVBQUU0TCxnQkFBZ0I7SUFDakNZLFFBQVEsRUFBRSxTQUFBQSxTQUFBLEVBQU07TUFDZG5MLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQ3pKLElBQUksQ0FBQztRQUFBLE9BQU15TCxlQUFlLGFBQWZBLGVBQWUsdUJBQWZBLGVBQWUsQ0FBRW9KLGNBQWMsQ0FBQyxDQUFDO01BQUEsRUFBQztJQUMxRDtFQUNGLENBQUMsQ0FBQztFQUVGLElBQ0VDLG9CQUFvQixHQVFsQkosaUJBQWlCLENBUm5CSSxvQkFBb0I7SUFDcEJDLGlCQUFpQixHQU9mTCxpQkFBaUIsQ0FQbkJLLGlCQUFpQjtJQUNqQkMsa0JBQWtCLEdBTWhCTixpQkFBaUIsQ0FObkJNLGtCQUFrQjtJQUNQQyxlQUFlLEdBS3hCUCxpQkFBaUIsQ0FMbkJRLFNBQVM7SUFDVEMsYUFBYSxHQUlYVCxpQkFBaUIsQ0FKbkJTLGFBQWE7SUFDYkMsV0FBVyxHQUdUVixpQkFBaUIsQ0FIbkJVLFdBQVc7SUFDWEMsVUFBVSxHQUVSWCxpQkFBaUIsQ0FGbkJXLFVBQVU7SUFDVkMsaUJBQWlCLEdBQ2ZaLGlCQUFpQixDQURuQlksaUJBQWlCO0VBR25CLElBQU1DLE9BQU8sR0FBRyxTQUFWQSxPQUFPQSxDQUFBLEVBQVM7SUFDcEJ4QixVQUFVLENBQUMsQ0FBQztJQUNaeEgsT0FBTyxDQUFDaUosR0FBRywyREFBMkQ5SCxNQUFNLENBQUM7SUFDN0V1RSxRQUFRLENBQUM7TUFDUDFCLGFBQWEsRUFBRSxLQUFLO01BQ3BCQyxHQUFHLEVBQUU5QztJQUNQLENBQUMsQ0FBQztJQUNGakUsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDekosSUFBSSxDQUFDLFlBQU07TUFDcEJpUyxRQUFRLENBQUM7UUFDUGpDLGtCQUFrQixFQUFFQSxrQkFBa0IsR0FBRyxDQUFDO1FBQUU7UUFDNUNPLGFBQWEsRUFBRTtNQUNqQixDQUFDLENBQUM7SUFDSixDQUFDLENBQUM7RUFDSixDQUFDO0VBRUQsSUFBQWtGLG9CQUFBLEdBQTJEbE4sbUJBQW1CLENBQUM7TUFDN0VvTSxRQUFRLEVBQUUxRCxTQUFTO01BQ25CN0ksZUFBZSxFQUFFNEwsZ0JBQWdCO01BQ2pDdUIsT0FBTyxFQUFQQTtJQUNGLENBQUMsQ0FBQztJQUppQkcsY0FBYyxHQUFBRCxvQkFBQSxDQUF6QlAsU0FBUztJQUFrQlMsbUJBQW1CLEdBQUFGLG9CQUFBLENBQW5CRSxtQkFBbUI7O0VBTXREO0VBQ0E7RUFDQXJPLEtBQUssQ0FBQ3NPLFNBQVMsQ0FBQyxZQUFNO0lBQ3BCLElBQUkzQyxjQUFjLElBQUksQ0FBQ0Qsa0JBQWtCLEVBQUU7TUFDekNuRCxnQkFBZ0IsSUFBSUEsZ0JBQWdCLENBQ2xDb0QsY0FBYyxFQUNkeEgsZUFBZSxDQUFDa0UsS0FBSyxFQUNyQjZFLGVBQWUsRUFDZkYsYUFBYSxFQUNiUSxvQkFBb0IsRUFDcEJhLG1CQUNGLENBQUM7SUFDSDtFQUNGLENBQUMsRUFBQyxDQUFDMUMsY0FBYyxFQUFFeEgsZUFBZSxDQUFDa0UsS0FBSyxFQUFFNkUsZUFBZSxFQUFFRixhQUFhLENBQUMsQ0FBQztFQUUxRWhOLEtBQUssQ0FBQ3NPLFNBQVMsQ0FBQyxZQUFNO0lBQ3BCLElBQUlYLGVBQWUsRUFBRTtNQUNuQjNGLHFCQUFxQixhQUFyQkEscUJBQXFCLGVBQXJCQSxxQkFBcUIsQ0FBRyxVQUFBdUcsZ0JBQWdCO1FBQUEsVUFBQXBKLE1BQUEsQ0FBQXRILGtCQUFBLENBQVEwUSxnQkFBZ0IsSUFBRTVDLGNBQWM7TUFBQSxDQUFDLENBQUM7SUFDcEYsQ0FBQyxNQUFNO01BQ0wzRCxxQkFBcUIsYUFBckJBLHFCQUFxQixlQUFyQkEscUJBQXFCLENBQUcsVUFBQXVHLGdCQUFnQjtRQUFBLE9BQUlBLGdCQUFnQixDQUFDaFEsTUFBTSxDQUFDLFVBQUF3TixNQUFNO1VBQUEsT0FBSUEsTUFBTSxLQUFLSixjQUFjO1FBQUEsRUFBQztNQUFBLEVBQUM7SUFDM0c7RUFDRixDQUFDLEVBQUUsQ0FBQ2dDLGVBQWUsQ0FBQyxDQUFDO0VBRXJCM04sS0FBSyxDQUFDc08sU0FBUyxDQUFDLFlBQU07SUFDcEIsSUFBSUYsY0FBYyxFQUFFO01BQ2xCckcsb0JBQW9CLGFBQXBCQSxvQkFBb0IsZUFBcEJBLG9CQUFvQixDQUFHLFVBQUF3RyxnQkFBZ0I7UUFBQSxVQUFBcEosTUFBQSxDQUFBdEgsa0JBQUEsQ0FBUTBRLGdCQUFnQixJQUFFNUMsY0FBYztNQUFBLENBQUMsQ0FBQztJQUNuRixDQUFDLE1BQU07TUFDTDVELG9CQUFvQixhQUFwQkEsb0JBQW9CLGVBQXBCQSxvQkFBb0IsQ0FBRyxVQUFBd0csZ0JBQWdCO1FBQUEsT0FBSUEsZ0JBQWdCLENBQUNoUSxNQUFNLENBQUMsVUFBQXdOLE1BQU07VUFBQSxPQUFJQSxNQUFNLEtBQUtKLGNBQWM7UUFBQSxFQUFDO01BQUEsRUFBQztJQUMxRztFQUNGLENBQUMsRUFBRSxDQUFDeUMsY0FBYyxDQUFDLENBQUM7RUFFcEIsSUFBTUksVUFBVSxHQUFHM0MsZ0JBQWdCLEdBQUdPLHFCQUFxQixHQUFHaEcsTUFBTTtFQUNwRSxJQUFJcUksY0FBYztFQUVsQixJQUFJLENBQUM1QyxnQkFBZ0IsSUFBSSxDQUFDNUMsYUFBYSxFQUFFO0lBQUU7SUFDekMwQixRQUFRLENBQUM7TUFBRTFCLGFBQWEsRUFBRTtJQUFLLENBQUMsQ0FBQztFQUNuQztFQUVBakosS0FBSyxDQUFDc08sU0FBUyxDQUFDLFlBQU07SUFDcEJySixPQUFPLENBQUNpSixHQUFHLCtCQUErQjtNQUFFOUosTUFBTSxFQUFOQSxNQUFNO01BQUVvRCxLQUFLLEVBQUxBLEtBQUs7TUFBRUMsVUFBVSxFQUFWQSxVQUFVO01BQUVDLFVBQVUsRUFBVkE7SUFBVyxDQUFDLENBQUM7SUFFcEYsSUFBSW1FLGdCQUFnQixFQUFFO01BQUU7TUFDdEJsQixRQUFRLENBQUM7UUFBRTFCLGFBQWEsRUFBRSxLQUFLO1FBQUVQLGtCQUFrQixFQUFFQSxrQkFBa0IsR0FBRztNQUFFLENBQUMsQ0FBQztJQUNoRjtFQUNGLENBQUMsRUFBRSxDQUFDdEUsTUFBTSxFQUFFb0QsS0FBSyxFQUFFQyxVQUFVLEVBQUVDLFVBQVUsQ0FBQyxDQUFDO0VBRTNDMUgsS0FBSyxDQUFDc08sU0FBUyxDQUFDLFlBQU07SUFDcEIsSUFBSSxDQUFDaE4sT0FBTyxDQUFDZ0csU0FBUyxFQUFFc0IsZ0JBQWdCLENBQUMsRUFBRTtNQUN6QztNQUNBK0IsUUFBUSxDQUFDO1FBQUUvQixnQkFBZ0IsRUFBRXRCLFNBQVM7UUFBRXdCLFNBQVMsRUFBRTtNQUFLLENBQUMsQ0FBQztJQUM1RDtFQUNGLENBQUMsRUFBRSxDQUFDeEIsU0FBUyxDQUFDLENBQUM7RUFFZnRILEtBQUssQ0FBQ3NPLFNBQVMsQ0FBQyxZQUFNO0lBQUU7SUFDdEIsSUFBSSxDQUFDckYsYUFBYSxJQUFJZ0QsZ0JBQWdCLEVBQUc7TUFDdkNoSCxPQUFPLENBQUNpSixHQUFHLHNDQUFBL0ksTUFBQSxDQUFzQzhHLGdCQUFnQix5QkFBQTlHLE1BQUEsQ0FBc0JxSixVQUFVLENBQUUsQ0FBQztNQUNwRzdELFFBQVEsQ0FBQztRQUFFMUIsYUFBYSxFQUFFLElBQUk7UUFBRUMsR0FBRyxFQUFFc0Y7TUFBVyxDQUFDLENBQUM7SUFDcEQ7RUFDRixDQUFDLEVBQUUsQ0FBQ3ZDLGdCQUFnQixDQUFDLENBQUM7RUFFdEJqTSxLQUFLLENBQUNzTyxTQUFTLENBQUMsWUFBTTtJQUFFO0lBQ3RCLElBQUluQyxnQkFBZ0IsS0FBS3RDLGVBQWUsRUFBRTtNQUN4Q2MsUUFBUSxDQUFDO1FBQUVkLGVBQWUsRUFBRXNDO01BQWlCLENBQUMsQ0FBQztJQUNqRDtFQUNGLENBQUMsRUFBRSxDQUFDQSxnQkFBZ0IsRUFBRXRDLGVBQWUsQ0FBQyxDQUFDO0VBRXZDN0osS0FBSyxDQUFDc08sU0FBUyxDQUFDLFlBQU07SUFBQSxJQUFBSSxzQkFBQTtJQUFFO0lBQ3RCLElBQU12UyxLQUFLLEdBQUdnSSxlQUFlLGFBQWZBLGVBQWUsZ0JBQUF1SyxzQkFBQSxHQUFmdkssZUFBZSxDQUFFd0ssY0FBYyxjQUFBRCxzQkFBQSx1QkFBL0JBLHNCQUFBLENBQWtDL04sV0FBVyxDQUFDO0lBRTVELElBQUl4RSxLQUFLLEVBQUU7TUFBRTtNQUNYLElBQU13UyxjQUFjLEdBQUd4SyxlQUFlLGFBQWZBLGVBQWUsdUJBQWZBLGVBQWUsQ0FBRXdLLGNBQWM7TUFDdEQsSUFBTS9HLGFBQVksR0FBRzdGLGVBQWUsQ0FBQ29DLGVBQWUsQ0FBQztNQUNyRCxJQUFNeUssT0FBTyxHQUFHNU0sa0JBQWtCLENBQUMyTSxjQUFjLEVBQUU3RyxNQUFNLEVBQUVGLGFBQVksRUFBRThDLEtBQUssQ0FBQztNQUMvRSxJQUFNbUUsYUFBYSxHQUFHRixjQUFjLENBQUMvTix5QkFBeUIsQ0FBQztNQUMvRHVHLGVBQWUsSUFBSUEsZUFBZSxDQUFDeUgsT0FBTyxFQUFFQyxhQUFhLEVBQUVGLGNBQWMsQ0FBQztJQUM1RTtFQUNGLENBQUMsRUFBRSxDQUFDeEssZUFBZSxhQUFmQSxlQUFlLGdCQUFBMEIsc0JBQUEsR0FBZjFCLGVBQWUsQ0FBRXdLLGNBQWMsY0FBQTlJLHNCQUFBLHVCQUEvQkEsc0JBQUEsQ0FBa0NsRixXQUFXLENBQUMsQ0FBQyxDQUFDO0VBRXBELElBQUl3RCxlQUFlLENBQUNrRSxLQUFLLElBQUlsRSxlQUFlLENBQUMySyxPQUFPLEVBQUU7SUFDcERMLGNBQWMsTUFBQXRKLE1BQUEsQ0FBTWhCLGVBQWUsQ0FBQ2tFLEtBQUssUUFBQWxELE1BQUEsQ0FBS2hCLGVBQWUsQ0FBQzJLLE9BQU8sQ0FBRTtJQUN2RXZELG9CQUFvQixDQUFDd0QsV0FBVyxDQUFDNUssZUFBZSxDQUFDeUQsWUFBWSxFQUFFNkcsY0FBYyxDQUFDO0VBQ2hGLENBQUMsTUFBTTtJQUNMQSxjQUFjLHdDQUF3QztFQUN4RDs7RUFFQTtFQUNBLFNBQVNPLG9CQUFvQkEsQ0FBQSxFQUFHO0lBQzlCLElBQU1DLHdCQUF3QixHQUFHaE4sMkJBQTJCLENBQUM7TUFDM0RhLEtBQUssRUFBTEEsS0FBSztNQUNMOEUsWUFBWSxFQUFFekQsZUFBZSxDQUFDeUQsWUFBWTtNQUMxQ3lELFlBQVksRUFBWkEsWUFBWTtNQUNaRSxvQkFBb0IsRUFBcEJBO0lBQ0YsQ0FBQyxDQUFDO0lBRUYsb0JBQU92TCxLQUFBLENBQUFrUCxhQUFBLENBQUN6TixpQkFBaUIsRUFBQWpFLFFBQUEsS0FBS3lSLHdCQUF3QjtNQUFFbE0sS0FBSyxFQUFFQSxLQUFNO01BQUNvTSxZQUFZLEVBQUV2RjtJQUFTLEVBQUUsQ0FBQztFQUNsRzs7RUFFQTtBQUNGO0FBQ0E7QUFDQTtBQUNBO0VBQ0UsU0FBU3dGLFlBQVlBLENBQUNqTSxRQUFRLEVBQUVrTSxPQUFPLEVBQUU7SUFDdkMsSUFBSUEsT0FBTyxJQUFLbE0sUUFBUSxLQUFLMkYsU0FBVSxFQUFFO01BQUU7TUFDekM2QixRQUFRLENBQUM7UUFBRTdCLFNBQVMsRUFBRTNGO01BQVMsQ0FBQyxDQUFDO0lBQ25DLENBQUMsTUFBTSxJQUFJLENBQUNrTSxPQUFPLElBQUtsTSxRQUFRLEtBQUsyRixTQUFVLEVBQUU7TUFBRTtNQUNqRDZCLFFBQVEsQ0FBQztRQUFFN0IsU0FBUyxFQUFFO01BQUssQ0FBQyxDQUFDO0lBQy9CO0VBQ0Y7RUFFQSxJQUFNd0csb0JBQW9CLEdBQUcsQ0FBQyxDQUFDeEcsU0FBUyxFQUFDOztFQUV6QyxTQUFTeUcsV0FBV0EsQ0FBQSxFQUFHO0lBQ3JCO0lBQ0E1RSxRQUFRLENBQUM7TUFBRWYsUUFBUSxFQUFFO0lBQUssQ0FBQyxDQUFDO0VBQzlCOztFQUVBO0VBQ0EsSUFBTTRGLFdBQVcsR0FBR3JMLGVBQWUsYUFBZkEsZUFBZSxnQkFBQTJCLHVCQUFBLEdBQWYzQixlQUFlLENBQUVPLFFBQVEsY0FBQW9CLHVCQUFBLHVCQUF6QkEsdUJBQUEsQ0FBMkIyQixVQUFVO0VBQ3pELElBQU1nSSxRQUFRLEdBQUcvSSxXQUFXLENBQUM7SUFBRWUsVUFBVSxFQUFFK0g7RUFBWSxDQUFDLENBQUM7RUFDekQsSUFBTUUsU0FBUyxHQUFHLENBQUNELFFBQVEsYUFBUkEsUUFBUSx1QkFBUkEsUUFBUSxDQUFFQyxTQUFTLEtBQUssS0FBSztFQUNoRCxJQUFNQyxVQUFVLEdBQUcvRyxnQkFBZ0IsSUFBSXRCLFNBQVM7RUFFaEQsSUFBTXNJLFFBQVEsR0FBSUosV0FBVyxLQUFLLEtBQU07RUFDeEMsSUFBTUssVUFBVSxHQUFHRCxRQUFRLEdBQUcsR0FBRyxHQUFHLENBQUMsRUFBQztFQUN0QyxJQUFNRSxjQUFjLEdBQUd0RixRQUFRLEdBQUdxRixVQUFVO0VBRTVDLElBQU1FLEtBQUssR0FBRyxJQUFJO0VBQ2xCLElBQUFDLGFBQUEsR0FPSWpQLFlBQVksQ0FBQztNQUFFZ1AsS0FBSyxFQUFMQTtJQUFNLENBQUMsQ0FBQztJQUFBRSxtQkFBQSxHQUFBRCxhQUFBLENBTnpCNUYsS0FBSztJQUNIOEYsT0FBTyxHQUFBRCxtQkFBQSxDQUFQQyxPQUFPO0lBQUVDLE9BQU8sR0FBQUYsbUJBQUEsQ0FBUEUsT0FBTztJQUFFQyxTQUFTLEdBQUFILG1CQUFBLENBQVRHLFNBQVM7SUFBRUMsWUFBWSxHQUFBSixtQkFBQSxDQUFaSSxZQUFZO0lBQUFDLHFCQUFBLEdBQUFOLGFBQUEsQ0FFM0MxRCxPQUFPO0lBQ0xpRSxVQUFVLEdBQUFELHFCQUFBLENBQVZDLFVBQVU7SUFBRUMsWUFBWSxHQUFBRixxQkFBQSxDQUFaRSxZQUFZO0lBQUVDLGVBQWUsR0FBQUgscUJBQUEsQ0FBZkcsZUFBZTtFQUk3QyxJQUFNQyxRQUFRLEdBQUcxUSxLQUFLLENBQUMyUSxPQUFPLENBQUM7SUFBQSxPQUFPO01BQ3BDQyxVQUFVLEVBQUUsV0FBVztNQUN2QnBHLFFBQVEsS0FBQXJGLE1BQUEsQ0FBSzBMLElBQUksQ0FBQ0MsS0FBSyxDQUFDaEIsY0FBYyxHQUFHLEdBQUcsQ0FBQztJQUMvQyxDQUFDO0VBQUEsQ0FBQyxFQUFFLENBQUNBLGNBQWMsQ0FBQyxDQUFDO0VBRXJCLElBQU1pQixZQUFZLEdBQUcvUSxLQUFLLENBQUMyUSxPQUFPLENBQUM7SUFBQSxPQUFBbFMsYUFBQTtNQUNqQ21TLFVBQVUsRUFBRSxXQUFXO01BQ3ZCcEcsUUFBUSxLQUFBckYsTUFBQSxDQUFLMkssY0FBYztJQUFHLEdBQzFCRixRQUFRLEdBQUc7TUFBQ29CLFVBQVUsRUFBRTtJQUFPLENBQUMsR0FBRyxDQUFDLENBQUM7RUFBQSxDQUN6QyxFQUFFLENBQUNsQixjQUFjLENBQUMsQ0FBQztFQUVyQixJQUFNbUIsY0FBYyxnQkFBR2pSLEtBQUEsQ0FBQWtQLGFBQUEsQ0FBQzdNLEtBQUssUUFBRW9NLGNBQXNCLENBQUM7RUFDdEQsSUFBSXlDLG1CQUFtQixHQUFHekssa0JBQWtCO0VBRTVDLElBQUlBLGtCQUFrQixLQUFLOUosU0FBUyxFQUFFO0lBQUU7SUFDdEN1VSxtQkFBbUIsR0FBRyxDQUFDeEYsa0JBQWtCO0VBQzNDO0VBRUEsSUFBTXlGLFVBQVUsR0FBRyxDQUFDekYsa0JBQWtCO0VBQ3RDLElBQU0wRixlQUFlLEdBQUcsQ0FBQzFGLGtCQUFrQjtFQUMzQyxJQUFNMkYsZUFBZSxHQUFHakcsY0FBYyxHQUFHeEUsWUFBWSxHQUFHQyxhQUFhO0VBQ3JFLElBQU15Syw0QkFBNEIsR0FBRztJQUNuQ2pMLGNBQWMsRUFBRXdGLGdCQUFnQixHQUFHeEYsY0FBYyxHQUFHLElBQUk7SUFDeERDLFNBQVMsRUFBVEEsU0FBUztJQUNUaUwsZUFBZSxFQUFFNUIsVUFBVTtJQUMzQndCLFVBQVUsRUFBVkEsVUFBVTtJQUNWQyxlQUFlLEVBQWZBLGVBQWU7SUFDZnRLLFVBQVUsRUFBVkEsVUFBVTtJQUNWO0lBQ0FzRSxjQUFjLEVBQWRBLGNBQWM7SUFDZG5FLFlBQVksRUFBRTRFLGdCQUFnQixHQUFHNUUsWUFBWSxHQUFHLElBQUk7SUFDcERVLHFCQUFxQixFQUFyQkEscUJBQXFCO0lBQ3JCO0lBQ0EwSixlQUFlLEVBQWZBLGVBQWU7SUFDZmxOLGVBQWUsRUFBZkEsZUFBZTtJQUNmbUgsaUJBQWlCLEVBQWpCQSxpQkFBaUI7SUFDakJpQixlQUFlLEVBQWZBLGVBQWU7SUFDZnJFLGVBQWUsRUFBRXNKLGdCQUFnQjtJQUNqQ0MsY0FBYyxFQUFFL0csS0FBSyxHQUFHcEksWUFBWSxHQUFHRSxZQUFZO0lBQ25Ea1AsY0FBYyxFQUFFakMsUUFBUTtJQUN4QnBILEtBQUssRUFBRW9HLGNBQWM7SUFDckJyQyxxQkFBcUIsRUFBRWxEO0VBQ3pCLENBQUM7O0VBRUQ7QUFDRjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtFQUNFLFNBQVNzSSxnQkFBZ0JBLENBQUNHLFlBQVksRUFBRUMsS0FBSyxFQUFBQyxLQUFBLEVBQTREO0lBQUEsSUFBQUMsZ0JBQUEsR0FBQUQsS0FBQSxDQUF4REUsVUFBVTtNQUFWQSxVQUFVLEdBQUFELGdCQUFBLGNBQUcsSUFBSSxHQUFBQSxnQkFBQTtNQUFBRSxrQkFBQSxHQUFBSCxLQUFBLENBQUVJLFlBQVk7TUFBWkEsWUFBWSxHQUFBRCxrQkFBQSxjQUFHLElBQUksR0FBQUEsa0JBQUE7TUFBQUUsV0FBQSxHQUFBTCxLQUFBLENBQUV6SCxLQUFLO01BQUxBLEtBQUssR0FBQThILFdBQUEsY0FBRyxJQUFJLEdBQUFBLFdBQUE7SUFDbkcsSUFBTUMsbUJBQW1CLEdBQUExVCxhQUFBLEtBQVFxTCxrQkFBa0IsQ0FBRTtJQUVyRCxJQUFJOEgsS0FBSyxFQUFFO01BQ1QsSUFBSU8sbUJBQW1CLENBQUN2YyxjQUFjLENBQUMrYixZQUFZLENBQUMsRUFBRTtRQUNwRCxPQUFPUSxtQkFBbUIsQ0FBQ1IsWUFBWSxDQUFDO01BQzFDO0lBQ0YsQ0FBQyxNQUFNO01BQ0xRLG1CQUFtQixDQUFDUixZQUFZLENBQUMsR0FBRztRQUFFSSxVQUFVLEVBQVZBLFVBQVU7UUFBRUUsWUFBWSxFQUFaQSxZQUFZO1FBQUU3SCxLQUFLLEVBQUxBO01BQU0sQ0FBQyxFQUFDO0lBQzFFOztJQUVBLElBQU1nSSxtQkFBbUIsR0FBRyxDQUFDLENBQUMzYyxNQUFNLENBQUNzRixJQUFJLENBQUNvWCxtQkFBbUIsQ0FBQyxDQUFDL1gsTUFBTTtJQUVyRSxJQUFJMk8sa0JBQWtCLElBQUlxSixtQkFBbUIsRUFBRTtNQUM3Q2xLLGVBQWUsSUFBSUEsZUFBZSxDQUFDUixVQUFVLEVBQUUsQ0FBQzBLLG1CQUFtQixDQUFDO01BQ3BFekgsUUFBUSxDQUFDO1FBQUU1QixrQkFBa0IsRUFBRXFKO01BQW9CLENBQUMsQ0FBQztJQUN2RDtJQUVBLElBQUksQ0FBQzlRLE9BQU8sQ0FBQzZRLG1CQUFtQixFQUFFckksa0JBQWtCLENBQUMsRUFBRTtNQUNyRGEsUUFBUSxDQUFDO1FBQUViLGtCQUFrQixFQUFFcUk7TUFBb0IsQ0FBQyxDQUFDO0lBQ3ZEO0VBQ0Y7O0VBRUE7QUFDRjtBQUNBO0FBQ0E7QUFDQTtFQUNFLFNBQVNFLGNBQWNBLENBQUNDLFFBQVEsRUFBRUMsTUFBTSxFQUFFO0lBQ3hDLElBQU0zRyxJQUFJLEdBQUcwRyxRQUFRLEdBQUcsRUFBRTtJQUMxQixJQUFNRSxNQUFNLEdBQUc1RyxJQUFJLENBQUN4UixNQUFNO0lBQzFCLElBQU1xWSxLQUFLLEdBQUdGLE1BQU0sQ0FBQ0csU0FBUyxDQUFDLFVBQUNDLEtBQUssRUFBRUMsR0FBRyxFQUFLO01BQzdDLElBQUlBLEdBQUcsR0FBRyxDQUFDLEVBQUU7UUFDWCxJQUFJRCxLQUFLLENBQUNFLFNBQVMsQ0FBQyxDQUFDLEVBQUVMLE1BQU0sQ0FBQyxLQUFLNUcsSUFBSSxFQUFFO1VBQ3ZDLElBQU1rSCxRQUFRLEdBQUdILEtBQUssQ0FBQ0gsTUFBTSxDQUFDO1VBRTlCLElBQUtNLFFBQVEsR0FBRyxHQUFHLElBQU1BLFFBQVEsR0FBRyxHQUFJLEVBQUU7WUFDeEMsT0FBTyxJQUFJO1VBQ2I7UUFDRjtNQUNGO01BQ0EsT0FBTyxLQUFLO0lBQ2QsQ0FBQyxDQUFDO0lBQ0YsT0FBT0wsS0FBSztFQUNkO0VBRUEsU0FBU00sV0FBV0EsQ0FBQSxFQUFHO0lBQUEsSUFBQUMscUJBQUE7SUFDckI7SUFDQSxJQUFNQyxRQUFRLEdBQUc5TyxlQUFlLGFBQWZBLGVBQWUsZ0JBQUE2TyxxQkFBQSxHQUFmN08sZUFBZSxDQUFFbUQsU0FBUyxjQUFBMEwscUJBQUEsZUFBMUJBLHFCQUFBLENBQTRCNU8sTUFBTSxHQUFHRCxlQUFlLENBQUNtRCxTQUFTLENBQUNsRCxNQUFNLENBQUM4TyxXQUFXLENBQUMsQ0FBQyxHQUFHLEVBQUU7SUFDekcsVUFBQS9OLE1BQUEsQ0FBVW1CLFNBQVMsT0FBQW5CLE1BQUEsQ0FBSThOLFFBQVE7RUFDakM7RUFFQSxJQUFNRSxRQUFRLEdBQUdKLFdBQVcsQ0FBQyxDQUFDO0VBQzlCLElBQU1LLEdBQUcsR0FBRzVILGVBQWUsYUFBZkEsZUFBZSx1QkFBZkEsZUFBZSxDQUFFNEgsR0FBRzs7RUFFaEM7RUFDQSxJQUFBQyxRQUFBLEdBS0loVCxPQUFPLENBQUM7TUFDVitTLEdBQUcsRUFBSEEsR0FBRztNQUNINUwsS0FBSyxFQUFMQSxLQUFLO01BQ0w4TCxPQUFPLEVBQUVsSyxXQUFXO01BQ3BCbUssTUFBTSxFQUFBOVUsYUFBQSxDQUFBQSxhQUFBO1FBQ0pxTSxLQUFLLEVBQUU7VUFBRUMsTUFBTSxFQUFFO1FBQUU7TUFBQyxHQUNqQjFFLGNBQWMsYUFBZEEsY0FBYyx1QkFBZEEsY0FBYyxDQUFFa04sTUFBTTtRQUN6QkMsZ0JBQWdCLEVBQUUsSUFBSTtRQUN0QjNHLEtBQUssRUFBRXhHLGNBQWMsYUFBZEEsY0FBYyx1QkFBZEEsY0FBYyxDQUFFd0csS0FBSztRQUM1QjtRQUNBNEcsT0FBTyxFQUFFLEVBQUExTixXQUFBLEdBQUFlLFVBQVUsY0FBQWYsV0FBQSx1QkFBVkEsV0FBQSxDQUFZMk4sYUFBYSxPQUFBMU4sWUFBQSxHQUFJYyxVQUFVLGNBQUFkLFlBQUEsdUJBQVZBLFlBQUEsQ0FBWXlOLE9BQU8sS0FBSSxLQUFLO1FBQ2xFM0wsTUFBTSxFQUFOQTtNQUFNLEVBQ1A7TUFDRDZMLE1BQU0sRUFBRTFNLFlBQVk7TUFDcEIyTSxLQUFLLEVBQUV2TixjQUFjLGFBQWRBLGNBQWMsZ0JBQUFKLG9CQUFBLEdBQWRJLGNBQWMsQ0FBRXdOLElBQUksY0FBQTVOLG9CQUFBLHVCQUFwQkEsb0JBQUEsQ0FBc0IyTixLQUFLO01BQ2xDL0csS0FBSyxFQUFFeEcsY0FBYyxhQUFkQSxjQUFjLHVCQUFkQSxjQUFjLENBQUV3RyxLQUFLO01BQzVCaUgsTUFBTSxFQUFFMUgscUJBQXFCO01BQzdCK0csUUFBUSxFQUFSQSxRQUFRO01BQ1IxSCxJQUFJLEVBQUpBO0lBQ0YsQ0FBQyxDQUFDO0lBdkJPc0ksU0FBUyxHQUFBVixRQUFBLENBQWhCbFgsS0FBSztJQUNJNlgsV0FBVyxHQUFBWCxRQUFBLENBQXBCWSxPQUFPO0lBQ1BDLFVBQVUsR0FBQWIsUUFBQSxDQUFWYSxVQUFVO0lBQ1ZDLGVBQWUsR0FBQWQsUUFBQSxDQUFmYyxlQUFlO0VBc0JqQm5VLEtBQUssQ0FBQ3NPLFNBQVMsQ0FBQyxZQUFNO0lBQUU7SUFDdEIsSUFBSXlGLFNBQVMsSUFBSUMsV0FBVyxJQUFJLENBQUNySyxTQUFTLEVBQUU7TUFBRTtNQUM1QzFFLE9BQU8sQ0FBQ2lKLEdBQUcsZUFBZTZGLFNBQVMsQ0FBQztNQUNwQzVNLGVBQWUsSUFBSUEsZUFBZSxDQUFDLElBQUksRUFBRSxLQUFLLEVBQUUsSUFBSSxrQkFBQWhDLE1BQUEsQ0FBa0JxSyxXQUFXLE9BQUFySyxNQUFBLENBQUl1QyxVQUFVLE9BQUF2QyxNQUFBLENBQUk0TyxTQUFTLEdBQUksSUFBSSxDQUFDO0lBQ3ZIO0VBQ0YsQ0FBQyxFQUFFLENBQUNBLFNBQVMsRUFBRUMsV0FBVyxFQUFFckssU0FBUyxDQUFDLENBQUM7RUFFdkMzSixLQUFLLENBQUNzTyxTQUFTLENBQUMsWUFBTTtJQUFFO0lBQ3RCLFNBQVM4RixjQUFjQSxDQUFBLEVBQUc7TUFDeEJuUCxPQUFPLENBQUNpSixHQUFHLHNEQUFzRCxDQUFDO01BQ2xFakcsY0FBYyxDQUFDLFVBQUFvTSxlQUFlO1FBQUEsT0FBSUEsZUFBZSxDQUFDOVYsTUFBTSxDQUFDLFVBQUF3TixNQUFNO1VBQUEsT0FBSUEsTUFBTSxLQUFLSixjQUFjO1FBQUEsRUFBQztNQUFBLEVBQUM7TUFDOUZoQixRQUFRLENBQUM7UUFDUGhCLFNBQVMsRUFBRTtNQUNiLENBQUMsQ0FBQztNQUVGLElBQU0ySyxrQkFBa0IsR0FBRzdlLE1BQU0sQ0FBQ3NGLElBQUksQ0FBQytPLGtCQUFrQixDQUFDO01BRTFELElBQUl3SyxrQkFBa0IsYUFBbEJBLGtCQUFrQixlQUFsQkEsa0JBQWtCLENBQUVsYSxNQUFNLEVBQUU7UUFBQSxJQUFBbWEsU0FBQSxHQUFBM1gsMEJBQUEsQ0FDTjBYLGtCQUFrQjtVQUFBRSxLQUFBO1FBQUE7VUFBMUMsS0FBQUQsU0FBQSxDQUFBL2MsQ0FBQSxNQUFBZ2QsS0FBQSxHQUFBRCxTQUFBLENBQUE1ZSxDQUFBLElBQUFrRCxJQUFBLEdBQTRDO1lBQUEsSUFBakM0YixTQUFTLEdBQUFELEtBQUEsQ0FBQXplLEtBQUE7WUFDbEIsSUFBT2tjLFlBQVksR0FBSW5JLGtCQUFrQixDQUFDMkssU0FBUyxDQUFDLENBQTdDeEMsWUFBWTtZQUNuQkEsWUFBWSxJQUFJQSxZQUFZLENBQUMsQ0FBQztVQUNoQztRQUFDLFNBQUF2VixHQUFBO1VBQUE2WCxTQUFBLENBQUFqZixDQUFBLENBQUFvSCxHQUFBO1FBQUE7VUFBQTZYLFNBQUEsQ0FBQWhkLENBQUE7UUFBQTtNQUNIO01BRUEwTixPQUFPLENBQUMvSSxJQUFJLENBQUMsMkNBQTJDLENBQUM7TUFDekR5TyxRQUFRLENBQUM7UUFDUGhCLFNBQVMsRUFBRSxLQUFLO1FBQ2hCVixhQUFhLEVBQUUsSUFBSTtRQUNuQkssb0JBQW9CLEVBQUUsSUFBSTtRQUMxQkYsV0FBVyxFQUFFLElBQUk7UUFDakJGLEdBQUcsRUFBRWdEO01BQ1AsQ0FBQyxDQUFDO01BQ0YvSixLQUFLLENBQUMsR0FBRyxDQUFDLENBQUN6SixJQUFJLENBQUMsWUFBTTtRQUNwQnVQLGNBQWMsQ0FBQyxVQUFBb00sZUFBZTtVQUFBLE9BQUlBLGVBQWUsQ0FBQzlWLE1BQU0sQ0FBQyxVQUFBd04sTUFBTTtZQUFBLE9BQUlBLE1BQU0sS0FBS0osY0FBYztVQUFBLEVBQUM7UUFBQSxFQUFDO1FBQzlGeEgsZUFBZSxhQUFmQSxlQUFlLGVBQWZBLGVBQWUsQ0FBRW9KLGNBQWMsQ0FBQzZGLEdBQUcsRUFBRWxILGtCQUFrQixDQUFDO01BQzFELENBQUMsQ0FBQztNQUNGLE9BQU8sSUFBSTtJQUNiO0lBRUEsU0FBU3dJLFVBQVVBLENBQUNDLE9BQU8sRUFBRUMsT0FBTyxFQUFFQyxNQUFLLEVBQUVDLElBQUksRUFBRTFCLEdBQUcsRUFBRTtNQUN0RG5PLE9BQU8sQ0FBQzlJLEtBQUssSUFBQWdKLE1BQUEsQ0FBSXdQLE9BQU8sY0FBV3ZCLEdBQUcsQ0FBQztNQUN2Q25PLE9BQU8sQ0FBQzlJLEtBQUssWUFBWXlZLE9BQU8sQ0FBQztNQUNqQzNQLE9BQU8sQ0FBQzlJLEtBQUssVUFBVTBZLE1BQUssQ0FBQztNQUM3QjVQLE9BQU8sQ0FBQzlJLEtBQUssU0FBUzJZLElBQUksQ0FBQztJQUM3QjtJQUVBLElBQU1DLFNBQVM7TUFBQSxJQUFBQyxLQUFBLEdBQUE1WSxpQkFBQSxlQUFBL0csbUJBQUEsR0FBQW9GLElBQUEsQ0FBRyxTQUFBd2EsUUFBQTtRQUFBLElBQUFDLGNBQUEsRUFBQUMsT0FBQSxFQUFBaFosS0FBQSxFQUFBaVosT0FBQSxFQUFBQyxZQUFBLEVBQUFDLE9BQUEsRUFBQUMsY0FBQSxFQUFBQyxlQUFBLEVBQUFDLFFBQUEsRUFBQUMsZUFBQSxFQUFBQyxTQUFBO1FBQUEsT0FBQXRnQixtQkFBQSxHQUFBdUIsSUFBQSxVQUFBZ2YsU0FBQUMsUUFBQTtVQUFBLGtCQUFBQSxRQUFBLENBQUEzYSxJQUFBLEdBQUEyYSxRQUFBLENBQUF0YyxJQUFBO1lBQUE7Y0FBYztjQUM5QjBMLE9BQU8sQ0FBQy9JLElBQUksc0NBQUFpSixNQUFBLENBQXNDaU8sR0FBRyxDQUFFLENBQUM7Y0FDcEQ4QixjQUFjLEdBQUdoQixVQUFVO2NBQy9CLElBQUk3SyxhQUFhLEVBQUU7Z0JBQ2pCNkwsY0FBYyxHQUFHZixlQUFlLEVBQUM7Y0FDbkM7Y0FBQzBCLFFBQUEsQ0FBQXRjLElBQUE7Y0FBQSxPQUNtQjJiLGNBQWMsQ0FBQ2hKLGtCQUFrQixDQUFDO1lBQUE7Y0FBbERpSixPQUFPLEdBQUFVLFFBQUEsQ0FBQTVjLElBQUE7Y0FBMkM7Y0FDbERrRCxLQUFLLEdBQUdnWixPQUFPLEdBQUcsSUFBSSxHQUFHLGlDQUFpQztjQUFBLElBRXpEQSxPQUFPO2dCQUFBVSxRQUFBLENBQUF0YyxJQUFBO2dCQUFBO2NBQUE7Y0FBSTtjQUNkbWIsVUFBVSxDQUFDLDhEQUE4RCxFQUFFcEwsb0JBQW9CLGFBQXBCQSxvQkFBb0IsdUJBQXBCQSxvQkFBb0IsQ0FBRXNMLE9BQU8sRUFBRXRMLG9CQUFvQixhQUFwQkEsb0JBQW9CLHVCQUFwQkEsb0JBQW9CLE9BQUssRUFBRUYsV0FBVyxFQUFFZ0ssR0FBRyxDQUFDO2NBQ3RKbk8sT0FBTyxDQUFDOUksS0FBSyx5RkFBQWdKLE1BQUEsQ0FBeUZ3RCxZQUFZLENBQUUsQ0FBQztjQUFBa04sUUFBQSxDQUFBdGMsSUFBQTtjQUFBLE9BQy9HNEksS0FBSyxDQUFDLEdBQUcsQ0FBQztZQUFBO2NBQUEwVCxRQUFBLENBQUF0YyxJQUFBO2NBQUEsT0FHTXFJLGNBQWMsQ0FBQ2tHLE1BQU0sRUFBRWhCLFVBQVUsRUFBRTNDLGVBQWUsYUFBZkEsZUFBZSx1QkFBZkEsZUFBZSxDQUFFTyxRQUFRLEVBQUVQLGVBQWUsYUFBZkEsZUFBZSx1QkFBZkEsZUFBZSxDQUFFbUQsU0FBUyxDQUFDO1lBQUE7Y0FBekc4TixPQUFPLEdBQUFTLFFBQUEsQ0FBQTVjLElBQUE7Y0FDYmtELEtBQUssR0FBR2laLE9BQU8sYUFBUEEsT0FBTyx1QkFBUEEsT0FBTyxDQUFFalosS0FBSztjQUNsQmtaLFlBQVksR0FBR2pNLFdBQVc7Y0FDMUJrTSxPQUFPLEdBQUcsSUFBSTtjQUNaQyxjQUFjLEdBQUdILE9BQU8sYUFBUEEsT0FBTyx1QkFBUEEsT0FBTyxDQUFFaFEsU0FBUztjQUNuQ29RLGVBQWUsR0FBR2xNLG9CQUFvQixhQUFwQkEsb0JBQW9CLHVCQUFwQkEsb0JBQW9CLE9BQUs7Y0FDN0NtTSxRQUFRLEdBQUdGLGNBQWMsS0FBS0MsZUFBZSxFQUFDO2NBQUEsSUFFN0NyWixLQUFLO2dCQUFBMFosUUFBQSxDQUFBdGMsSUFBQTtnQkFBQTtjQUFBO2NBQUEsS0FDSmtjLFFBQVE7Z0JBQUFJLFFBQUEsQ0FBQXRjLElBQUE7Z0JBQUE7Y0FBQTtjQUFJO2NBQ2QwTCxPQUFPLENBQUNpSixHQUFHLENBQUMsMkVBQTJFLENBQUM7Y0FDeEZpSCxPQUFPLEdBQUcsSUFBSTtjQUFBVSxRQUFBLENBQUF0YyxJQUFBO2NBQUE7WUFBQTtjQUVWbWMsZUFBZSxHQUFHL00sWUFBWSxHQUFHLENBQUM7Y0FBQSxLQUNsQ1UsYUFBYTtnQkFBQXdNLFFBQUEsQ0FBQXRjLElBQUE7Z0JBQUE7Y0FBQTtjQUFBc2MsUUFBQSxDQUFBdGMsSUFBQTtjQUFBLE9BQ1Q0SSxLQUFLLENBQUMsR0FBRyxDQUFDO1lBQUE7Y0FBQztjQUNqQjtjQUNBO2NBQ0E4QyxPQUFPLENBQUNpSixHQUFHLGlEQUFBL0ksTUFBQSxDQUFpRHVRLGVBQWUsQ0FBRSxDQUFDO2NBQ3hFQyxTQUFTLEdBQUdqVCxRQUFRLENBQUM0RyxvQkFBb0IsYUFBcEJBLG9CQUFvQix1QkFBcEJBLG9CQUFvQixDQUFFMUUsUUFBUSxFQUFFMlEsY0FBYyxFQUFFQyxlQUFlLEVBQUUsS0FBSyxFQUFFRSxlQUFlLENBQUM7Y0FDbkhMLFlBQVksR0FBR00sU0FBUztjQUN4QkwsT0FBTyxHQUFHRixPQUFPLGFBQVBBLE9BQU8sdUJBQVBBLE9BQU8sQ0FBRWhDLEdBQUc7WUFBQTtjQUFBeUMsUUFBQSxDQUFBdGMsSUFBQTtjQUFBLE9BR1IyYixjQUFjLENBQUNoSixrQkFBa0IsRUFBRW1KLFlBQVksRUFBRUMsT0FBTyxDQUFDO1lBQUE7Y0FBekVILE9BQU8sR0FBQVUsUUFBQSxDQUFBNWMsSUFBQTtjQUFtRTtjQUMxRSxJQUFJLENBQUNrYyxPQUFPLEVBQUU7Z0JBQ1pULFVBQVUsQ0FBQyxnRkFBZ0YsRUFBRWEsY0FBYyxFQUFFQyxlQUFlLEVBQUVILFlBQVksRUFBRUMsT0FBTyxDQUFDO2dCQUNwSm5aLEtBQUssR0FBRyxtREFBbUQ7Z0JBQzNEdVosZUFBZSxFQUFFLEVBQUM7Y0FDcEIsQ0FBQyxNQUFNO2dCQUNMelEsT0FBTyxDQUFDaUosR0FBRyxDQUFDLDBEQUEwRCxDQUFDO2NBQ3pFO2NBQ0EsSUFBSXdILGVBQWUsR0FBRyxFQUFFLEVBQUU7Z0JBQ3hCQSxlQUFlLEdBQUcsQ0FBQztjQUNyQjtjQUNBL0ssUUFBUSxDQUFDO2dCQUFDaEMsWUFBWSxFQUFFK007Y0FBZSxDQUFDLENBQUM7WUFBQTtjQUFBRyxRQUFBLENBQUF0YyxJQUFBO2NBQUE7WUFBQTtjQUk3QzBMLE9BQU8sQ0FBQ2lKLEdBQUcsNkNBQTZDOUUsV0FBVyxDQUFDO1lBQUE7Y0FBQSxNQUdsRSxDQUFDak4sS0FBSyxJQUFJZ1osT0FBTztnQkFBQVUsUUFBQSxDQUFBdGMsSUFBQTtnQkFBQTtjQUFBO2NBQUEsT0FBQXNjLFFBQUEsQ0FBQXpjLE1BQUEsV0FDWmdiLGNBQWMsQ0FBQyxDQUFDO1lBQUE7Y0FHekJuUCxPQUFPLENBQUM5SSxLQUFLLDJCQUFBZ0osTUFBQSxDQUEyQmhKLEtBQUssSUFBSSxvQkFBb0IsQ0FBRSxDQUFDO2NBQ3hFOEwsY0FBYyxDQUFDLFVBQUFvTSxlQUFlO2dCQUFBLE9BQUlBLGVBQWUsQ0FBQzlWLE1BQU0sQ0FBQyxVQUFBd04sTUFBTTtrQkFBQSxPQUFJQSxNQUFNLEtBQUtKLGNBQWM7Z0JBQUEsRUFBQztjQUFBLEVBQUM7Y0FDOUZoQixRQUFRLENBQUM7Z0JBQUNoQixTQUFTLEVBQUU7Y0FBSyxDQUFDLENBQUM7Y0FBQSxPQUFBa00sUUFBQSxDQUFBemMsTUFBQSxXQUNyQixLQUFLO1lBQUE7WUFBQTtjQUFBLE9BQUF5YyxRQUFBLENBQUF4YSxJQUFBO1VBQUE7UUFBQSxHQUFBNFosT0FBQTtNQUFBLENBQ2I7TUFBQSxnQkFqRUtGLFNBQVNBLENBQUE7UUFBQSxPQUFBQyxLQUFBLENBQUF2WSxLQUFBLE9BQUFELFNBQUE7TUFBQTtJQUFBLEdBaUVkO0lBRUQsSUFBSW1OLFNBQVMsRUFBRTtNQUNiLElBQUksQ0FBQ2QsZUFBZSxFQUFFO1FBQ3BCO01BQUEsQ0FDRCxNQUFNLElBQUksQ0FBQ3VLLEdBQUcsRUFBRTtRQUNmO01BQUEsQ0FDRCxNQUFNO1FBQ0w7UUFDQW5MLGNBQWMsQ0FBQyxVQUFBb00sZUFBZTtVQUFBLFVBQUFsUCxNQUFBLENBQUF0SCxrQkFBQSxDQUFRd1csZUFBZSxJQUFFMUksY0FBYztRQUFBLENBQUMsQ0FBQztRQUN2RW9KLFNBQVMsQ0FBQyxDQUFDO01BQ2I7SUFDRjtFQUNGLENBQUMsRUFBRSxDQUFDcEwsU0FBUyxFQUFFZCxlQUFlLEVBQUV1SyxHQUFHLENBQUMsQ0FBQzs7RUFFckM7QUFDRjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7RUFDRSxTQUFTMEMsOEJBQThCQSxDQUFDMVEsU0FBaUIsRUFBRThELEdBQTJCLEVBQUU2TSxtQkFBcUMsRUFBRXhQLE9BQWUsRUFBRTtJQUM5SSxJQUFJeVAsT0FBTztJQUNYLElBQU1DLGFBQWEsR0FBRzdRLFNBQVMsYUFBVEEsU0FBUyx1QkFBVEEsU0FBUyxDQUFFOFEsS0FBSyxDQUFDLE1BQU0sQ0FBQztJQUM5QyxJQUFNQyxZQUFZLEdBQUc5RCxjQUFjLENBQUNuSixHQUFHLGFBQUhBLEdBQUcsdUJBQUhBLEdBQUcsQ0FBRTVGLE9BQU8sRUFBRTJTLGFBQWEsQ0FBQztJQUVoRSxJQUFJRSxZQUFZLElBQUksQ0FBQyxFQUFFO01BQ3JCLElBQU1DLGNBQWMsR0FBR0gsYUFBYSxDQUFDRSxZQUFZLENBQUM7TUFDbEQsSUFBSUUsV0FBVyxHQUFHRCxjQUFjLENBQUNGLEtBQUssQ0FBQyxNQUFNLENBQUM7TUFDOUMsSUFBTUksVUFBVSxHQUFHakUsY0FBYyxDQUFDbkosR0FBRyxhQUFIQSxHQUFHLHVCQUFIQSxHQUFHLENBQUUzRixLQUFLLEVBQUU4UyxXQUFXLENBQUM7TUFDMUQsSUFBTUUsV0FBVyxHQUFHLENBQUFyTixHQUFHLGFBQUhBLEdBQUcsdUJBQUhBLEdBQUcsQ0FBRTNGLEtBQUssTUFBSyxPQUFPO01BRTFDLElBQUlnVCxXQUFXLElBQUlELFVBQVUsSUFBSSxDQUFDLEVBQUU7UUFDbEMsSUFBTUUsWUFBWSxHQUFHblYseUJBQXlCLENBQUNvVixzQkFBc0IsQ0FBQ1YsbUJBQW1CLENBQUM7UUFDMUY5USxPQUFPLENBQUNpSixHQUFHLDZDQUFBL0ksTUFBQSxDQUE2Q29CLE9BQU8sY0FBQXBCLE1BQUEsQ0FBVytELEdBQUcsYUFBSEEsR0FBRyx1QkFBSEEsR0FBRyxDQUFFM0YsS0FBSyxXQUFBNEIsTUFBQSxDQUFRcVIsWUFBWSxDQUFDM0QsU0FBUyxDQUFDLENBQUMsRUFBRSxHQUFHLENBQUMsQ0FBRSxDQUFDO1FBQzdILElBQUkwRCxXQUFXLEVBQUU7VUFBRTtVQUNqQixJQUFNRyxRQUFRLEdBQUdMLFdBQVcsQ0FBQyxDQUFDLENBQUM7VUFDL0IsSUFBTU0sU0FBUyxHQUFHRCxRQUFRLENBQUNFLE9BQU8sQ0FBQyxJQUFJLENBQUMsRUFBQztVQUN6Q1AsV0FBVyxDQUFDLENBQUMsQ0FBQyxHQUFHSyxRQUFRLENBQUM3RCxTQUFTLENBQUMsQ0FBQyxFQUFFOEQsU0FBUyxHQUFHLENBQUMsQ0FBQyxHQUFHSCxZQUFZO1FBQ3RFLENBQUMsTUFBTTtVQUNMLElBQU1FLFNBQVEsR0FBR0wsV0FBVyxDQUFDQyxVQUFVLENBQUM7VUFDeEMsSUFBTU8sV0FBVyxHQUFHLENBQUMsQ0FBQTNOLEdBQUcsYUFBSEEsR0FBRyx1QkFBSEEsR0FBRyxDQUFFM0YsS0FBSyxJQUFHLEVBQUUsRUFBRW5KLE1BQU0sRUFBQztVQUM3Q2ljLFdBQVcsQ0FBQ0MsVUFBVSxDQUFDLEdBQUdJLFNBQVEsQ0FBQzdELFNBQVMsQ0FBQyxDQUFDLEVBQUVnRSxXQUFXLEdBQUcsQ0FBQyxDQUFDLEdBQUdMLFlBQVk7UUFDakY7UUFDQSxJQUFNTSxVQUFVLEdBQUdULFdBQVcsQ0FBQ1UsSUFBSSxDQUFDLE1BQU0sQ0FBQztRQUMzQ2QsYUFBYSxDQUFDRSxZQUFZLENBQUMsR0FBR1csVUFBVTtRQUN4Q2QsT0FBTyxHQUFHQyxhQUFhLENBQUNjLElBQUksQ0FBQyxNQUFNLENBQUM7TUFDdEM7SUFDRjtJQUNBLE9BQU9mLE9BQU87RUFDaEI7RUFFQWhXLEtBQUssQ0FBQ3NPLFNBQVMsQ0FBQyxZQUFNO0lBQUU7SUFBQSxTQUNQMEksZUFBZUEsQ0FBQTtNQUFBLE9BQUFDLGdCQUFBLENBQUF4YSxLQUFBLE9BQUFELFNBQUE7SUFBQTtJQUFBLFNBQUF5YSxpQkFBQTtNQUFBQSxnQkFBQSxHQUFBN2EsaUJBQUEsZUFBQS9HLG1CQUFBLEdBQUFvRixJQUFBLENBQTlCLFNBQUF5YyxTQUFBO1FBQUEsSUFBQUMsZ0JBQUEsRUFBQXJELE1BQUEsRUFBQVEsa0JBQUEsRUFBQThDLGdCQUFBLEVBQUFDLFlBQUEsRUFBQUMsU0FBQSxFQUFBQyxRQUFBLEVBQUFDLFVBQUEsRUFBQUMsTUFBQSxFQUFBaEQsU0FBQSxFQUFBaUQscUJBQUEsRUFBQTNGLFVBQUEsRUFBQTRGLE1BQUEsRUFBQTNCLE9BQUEsRUFBQTRCLFdBQUEsRUFBQUMsS0FBQSxFQUFBOUIsbUJBQUEsRUFBQStCLGNBQUEsRUFBQUMscUJBQUEsRUFBQTFDLFlBQUEsRUFBQTJDLFdBQUEsRUFBQUMsVUFBQSxFQUFBQyxNQUFBLEVBQUFDLFVBQUEsRUFBQUMsU0FBQSxFQUFBQyxzQkFBQSxFQUFBQyxZQUFBLEVBQUFDLE9BQUEsRUFBQUMsUUFBQSxFQUFBQyxZQUFBLEVBQUFDLFlBQUEsRUFBQUMsS0FBQSxFQUFBQyxvQkFBQSxFQUFBQyxtQkFBQSxFQUFBQyxxQkFBQSxFQUFBQyxrQkFBQSxFQUFBQyx1QkFBQSxFQUFBcFUsUUFBQSxFQUFBK1EsU0FBQTtRQUFBLE9BQUF0Z0IsbUJBQUEsR0FBQXVCLElBQUEsVUFBQXFpQixVQUFBQyxTQUFBO1VBQUEsa0JBQUFBLFNBQUEsQ0FBQWhlLElBQUEsR0FBQWdlLFNBQUEsQ0FBQTNmLElBQUE7WUFBQTtjQUFBLEtBQ000UCxXQUFXO2dCQUFBK1AsU0FBQSxDQUFBM2YsSUFBQTtnQkFBQTtjQUFBO2NBQ1Q0ZCxnQkFBZ0IsR0FBRyxDQUFDaEwsZ0JBQWdCO2NBRXhDLElBQUksQ0FBQ2dMLGdCQUFnQixFQUFFO2dCQUFFO2dCQUN2QixJQUFJL0sscUJBQXFCLEtBQUtGLGtCQUFrQixFQUFFO2tCQUNoRGpILE9BQU8sQ0FBQ0MsSUFBSSxtRUFBQUMsTUFBQSxDQUFtRStHLGtCQUFrQiwyQkFBQS9HLE1BQUEsQ0FBd0JpSCxxQkFBcUIsQ0FBRSxDQUFDO2tCQUNqSitLLGdCQUFnQixHQUFHLElBQUk7Z0JBQ3pCLENBQUMsTUFBTTtrQkFDTGxTLE9BQU8sQ0FBQ2lKLEdBQUcsb0RBQUEvSSxNQUFBLENBQW9EaUgscUJBQXFCLENBQUUsQ0FBQztrQkFDdkZ6QixRQUFRLENBQUM7b0JBQUU5QixlQUFlLEVBQUU7a0JBQUssQ0FBQyxDQUFDO2dCQUNyQztjQUNGO2NBQUMsS0FFR3NPLGdCQUFnQjtnQkFBQStCLFNBQUEsQ0FBQTNmLElBQUE7Z0JBQUE7Y0FBQTtjQUFJO2NBQ3RCMEwsT0FBTyxDQUFDaUosR0FBRyw0Q0FBNEMsQ0FBQztjQUN4RHZELFFBQVEsQ0FBQztnQkFDUDlCLGVBQWUsRUFBRSxLQUFLO2dCQUN0QkksYUFBYSxFQUFFLEtBQUs7Z0JBQ3BCbUssR0FBRyxFQUFFO2NBQ1AsQ0FBQyxDQUFDLEVBQUM7Y0FBQThGLFNBQUEsQ0FBQTNmLElBQUE7Y0FBQSxPQUVrQmdULGVBQWUsQ0FBQyxDQUFDO1lBQUE7Y0FBaEN1SCxNQUFNLEdBQUFvRixTQUFBLENBQUFqZ0IsSUFBQTtjQUFBLEtBRVI2YSxNQUFNO2dCQUFBb0YsU0FBQSxDQUFBM2YsSUFBQTtnQkFBQTtjQUFBO2NBQ1IwTCxPQUFPLENBQUNpSixHQUFHLDJDQUEyQyxDQUFDO2NBQ3ZEdkQsUUFBUSxDQUFDO2dCQUNQOUIsZUFBZSxFQUFFLElBQUk7Z0JBQ3JCSSxhQUFhLEVBQUUsSUFBSTtnQkFDbkJDLEdBQUcsRUFBRTRLO2NBQ1AsQ0FBQyxDQUFDO2NBQUFvRixTQUFBLENBQUEzZixJQUFBO2NBQUE7WUFBQTtjQUVGMEwsT0FBTyxDQUFDOUksS0FBSyxDQUFDLG1EQUFtRCxDQUFDO2NBQ2xFZ0wsZUFBZSxJQUFJQSxlQUFlLENBQUMsSUFBSSxFQUFFLEtBQUssRUFBRSxJQUFJLGdDQUFBaEMsTUFBQSxDQUFnQ3FLLFdBQVcsT0FBQXJLLE1BQUEsQ0FBSXVDLFVBQVUsR0FBSSxJQUFJLENBQUM7Y0FDdEhpRCxRQUFRLENBQUM7Z0JBQUV4QixXQUFXLEVBQUU7Y0FBTSxDQUFDLENBQUM7Y0FBQSxPQUFBK1AsU0FBQSxDQUFBOWYsTUFBQTtZQUFBO2NBS3BDNkwsT0FBTyxDQUFDaUosR0FBRyw2Q0FBNkMsQ0FBQztjQUNuRG9HLGtCQUFrQixHQUFHN2UsTUFBTSxDQUFDc0YsSUFBSSxDQUFDK08sa0JBQWtCLENBQUM7Y0FBQSxNQUV0RHdLLGtCQUFrQixhQUFsQkEsa0JBQWtCLGVBQWxCQSxrQkFBa0IsQ0FBRWxhLE1BQU07Z0JBQUE4ZSxTQUFBLENBQUEzZixJQUFBO2dCQUFBO2NBQUE7Y0FDeEI2ZCxnQkFBZ0IsR0FBR2xULGNBQWMsQ0FBQ0MsZUFBZSxFQUFFQyxNQUFNLENBQUMsRUFBQztjQUMzRGlULFlBQVksR0FBR0QsZ0JBQWdCLEVBQUM7Y0FDaENFLFNBQVMsR0FBRyxLQUFLO2NBQUEsS0FFakJGLGdCQUFnQjtnQkFBQThCLFNBQUEsQ0FBQTNmLElBQUE7Z0JBQUE7Y0FBQTtjQUNkZ04sUUFBTyxHQUFHLENBQUM7Y0FBQWlSLFVBQUEsR0FBQTVhLDBCQUFBLENBRVMwWCxrQkFBa0I7Y0FBQTRFLFNBQUEsQ0FBQWhlLElBQUE7Y0FBQXNjLFVBQUEsQ0FBQWhnQixDQUFBO1lBQUE7Y0FBQSxLQUFBaWdCLE1BQUEsR0FBQUQsVUFBQSxDQUFBN2hCLENBQUEsSUFBQWtELElBQUE7Z0JBQUFxZ0IsU0FBQSxDQUFBM2YsSUFBQTtnQkFBQTtjQUFBO2NBQS9Ca2IsU0FBUyxHQUFBZ0QsTUFBQSxDQUFBMWhCLEtBQUE7Y0FDbEJ3USxRQUFPLEdBQUc0UyxRQUFRLENBQUMxRSxTQUFTLENBQUM7Y0FBQWlELHFCQUFBLEdBQ0M1TixrQkFBa0IsQ0FBQ3ZELFFBQU8sQ0FBQyxFQUFqRHdMLFVBQVUsR0FBQTJGLHFCQUFBLENBQVYzRixVQUFVLEVBQUUzSCxNQUFLLEdBQUFzTixxQkFBQSxDQUFMdE4sS0FBSztjQUFBLEtBRXJCMkgsVUFBVTtnQkFBQW1ILFNBQUEsQ0FBQTNmLElBQUE7Z0JBQUE7Y0FBQTtjQUNSeWMsT0FBTztjQUFBNEIsV0FBQSxHQUlQN0YsVUFBVSxDQUFDM0gsTUFBSyxDQUFDLEVBRm5CbEIsS0FBRyxHQUFBME8sV0FBQSxDQUFIMU8sR0FBRyxFQUNINk0sbUJBQW1CLEdBQUE2QixXQUFBLENBQW5CN0IsbUJBQW1CO2NBR3JCLElBQUlBLG1CQUFtQixJQUFJc0IsWUFBWSxFQUFFO2dCQUFFO2dCQUN6Q3JCLE9BQU8sR0FBR0YsOEJBQThCLENBQUN1QixZQUFZLEVBQUVuTyxLQUFHLEVBQUU2TSxtQkFBbUIsRUFBRXhQLFFBQU8sQ0FBQztjQUMzRjtjQUFDLEtBRUd5UCxPQUFPO2dCQUFBa0QsU0FBQSxDQUFBM2YsSUFBQTtnQkFBQTtjQUFBO2NBQ1Q4ZCxZQUFZLEdBQUdyQixPQUFPO2NBQUFrRCxTQUFBLENBQUEzZixJQUFBO2NBQUE7WUFBQTtjQUV0QitkLFNBQVMsR0FBRyxJQUFJO2NBQUEsT0FBQTRCLFNBQUEsQ0FBQTlmLE1BQUE7WUFBQTtjQUFBOGYsU0FBQSxDQUFBM2YsSUFBQTtjQUFBO1lBQUE7Y0FBQTJmLFNBQUEsQ0FBQTNmLElBQUE7Y0FBQTtZQUFBO2NBQUEyZixTQUFBLENBQUFoZSxJQUFBO2NBQUFnZSxTQUFBLENBQUFFLEVBQUEsR0FBQUYsU0FBQTtjQUFBMUIsVUFBQSxDQUFBbGlCLENBQUEsQ0FBQTRqQixTQUFBLENBQUFFLEVBQUE7WUFBQTtjQUFBRixTQUFBLENBQUFoZSxJQUFBO2NBQUFzYyxVQUFBLENBQUFqZ0IsQ0FBQTtjQUFBLE9BQUEyaEIsU0FBQSxDQUFBemQsTUFBQTtZQUFBO2NBT3BCNE4sY0FBYSxHQUFHLEtBQUssRUFBQztjQUN0QjBPLHFCQUFxQixHQUFHLElBQUk7Y0FDNUIxQyxZQUFZLEdBQUdnQyxZQUFZO2NBQUEsS0FFM0JDLFNBQVM7Z0JBQUE0QixTQUFBLENBQUEzZixJQUFBO2dCQUFBO2NBQUE7Y0FBSTtjQUNmMEwsT0FBTyxDQUFDaUosR0FBRyx1QkFBQS9JLE1BQUEsQ0FBdUJvQixPQUFPLGdFQUE2RCxDQUFDO2NBQUEwUixVQUFBLEdBQUFyYiwwQkFBQSxDQUcvRTBYLGtCQUFrQjtjQUFBO2dCQUExQyxLQUFBMkQsVUFBQSxDQUFBemdCLENBQUEsTUFBQTBnQixNQUFBLEdBQUFELFVBQUEsQ0FBQXRpQixDQUFBLElBQUFrRCxJQUFBLEdBQTRDO2tCQUFqQzRiLFVBQVMsR0FBQXlELE1BQUEsQ0FBQW5pQixLQUFBO2tCQUNad1EsU0FBTyxHQUFHNFMsUUFBUSxDQUFDMUUsVUFBUyxDQUFDO2tCQUFBNEQsc0JBQUEsR0FDTHZPLGtCQUFrQixDQUFDdkQsU0FBTyxDQUFDLEVBQWpEd0wsWUFBVSxHQUFBc0csc0JBQUEsQ0FBVnRHLFVBQVUsRUFBRTNILE9BQUssR0FBQWlPLHNCQUFBLENBQUxqTyxLQUFLO2tCQUV6QixJQUFJMkgsWUFBVSxFQUFFO29CQUNWaUUsUUFBTztvQkFBQXlDLFlBQUEsR0FLUDFHLFlBQVUsQ0FBQzNILE9BQUssQ0FBQyxFQUhuQnNPLFlBQVksR0FBQUQsWUFBQSxDQUFaQyxZQUFZLEVBQ1p4UCxLQUFHLEdBQUF1UCxZQUFBLENBQUh2UCxHQUFHLEVBQ0g2TSxvQkFBbUIsR0FBQTBDLFlBQUEsQ0FBbkIxQyxtQkFBbUI7b0JBR3JCLElBQUlBLG9CQUFtQixJQUFJLENBQUNDLFFBQU8sRUFBRTtzQkFDL0I2QyxtQkFBbUIsR0FBRyxJQUFJO3NCQUU5QixJQUFJM1AsS0FBRyxFQUFFO3dCQUNQLElBQUl3UCxZQUFZLEVBQUU7MEJBQUFJLHFCQUFBLEdBQ2UxWCxnQkFBZ0IsQ0FBQ2lZLDZCQUE2QixDQUFDdEQsb0JBQW1CLEVBQUUyQyxZQUFZLENBQUMsRUFBeEdLLGtCQUFrQixHQUFBRCxxQkFBQSxDQUFsQkMsa0JBQWtCOzBCQUMxQkYsbUJBQW1CLEdBQUdFLGtCQUFrQjt3QkFDMUMsQ0FBQyxNQUFNOzBCQUNMRixtQkFBbUIsR0FBRzlDLG9CQUFtQjt3QkFDM0M7d0JBQ0FpQyxXQUFXLEdBQUdhLG1CQUFtQixLQUFJMVUsZUFBZSxhQUFmQSxlQUFlLHVCQUFmQSxlQUFlLENBQUVtVixXQUFXLENBQUNwUSxLQUFHLENBQUM1RixPQUFPLEVBQUU0RixLQUFHLENBQUMzRixLQUFLLEVBQUU7MEJBQUNFLFlBQVksRUFBRW9WO3dCQUFtQixDQUFDLENBQUM7c0JBQ2hJO29CQUNGO2tCQUNGO2dCQUNGO2NBQUMsU0FBQW5jLEdBQUE7Z0JBQUF1YixVQUFBLENBQUEzaUIsQ0FBQSxDQUFBb0gsR0FBQTtjQUFBO2dCQUFBdWIsVUFBQSxDQUFBMWdCLENBQUE7Y0FBQTtjQUVEOGQsWUFBWSxHQUFHalYsTUFBTSxDQUFDbVosTUFBTSxDQUFDdkIsV0FBVyxFQUFFO2dCQUFFd0IsY0FBYyxFQUFFO2NBQUssQ0FBQyxDQUFDO2NBQUFOLFNBQUEsQ0FBQTNmLElBQUE7Y0FBQTtZQUFBO2NBQzVEO2NBQ0RxTCxRQUFRLEdBQUdULGVBQWUsYUFBZkEsZUFBZSxnQkFBQTZVLHVCQUFBLEdBQWY3VSxlQUFlLENBQUVNLGFBQWEsY0FBQXVVLHVCQUFBLGdCQUFBQSx1QkFBQSxHQUE5QkEsdUJBQUEsQ0FBZ0N0VSxRQUFRLGNBQUFzVSx1QkFBQSx1QkFBeENBLHVCQUFBLENBQTBDeGUsSUFBSSxFQUFDO2NBQUEsTUFDNURvSyxRQUFRLElBQUl5UyxZQUFZLElBQUlELGdCQUFnQjtnQkFBQThCLFNBQUEsQ0FBQTNmLElBQUE7Z0JBQUE7Y0FBQTtjQUFBLE1BQzFDNmQsZ0JBQWdCLEtBQUtDLFlBQVk7Z0JBQUE2QixTQUFBLENBQUEzZixJQUFBO2dCQUFBO2NBQUE7Y0FBSTtjQUN2QzBMLE9BQU8sQ0FBQ0MsSUFBSSw0REFBNEQsQ0FBQztjQUN6RXlGLFFBQVEsQ0FBQztnQkFBRXhCLFdBQVcsRUFBRTtjQUFNLENBQUMsQ0FBQztjQUFBLE9BQUErUCxTQUFBLENBQUE5ZixNQUFBO1lBQUE7Y0FHNUJ1YyxTQUFTLEdBQUdqVCxRQUFRLENBQUNrQyxRQUFRLEVBQUV3UyxnQkFBZ0IsRUFBRUMsWUFBWSxFQUFFLEtBQUssRUFBRTFPLFlBQVksQ0FBQztjQUN6RlUsY0FBYSxHQUFHLElBQUk7Y0FDcEJnTSxZQUFZLEdBQUdNLFNBQVMsRUFBQztjQUN6Qm9DLHFCQUFxQixHQUFHO2dCQUFHO2dCQUN6Qm5ULFFBQVEsRUFBUkEsUUFBUTtnQkFDUmdRLE9BQU8sRUFBRXdDLGdCQUFnQjtnQkFDekIsT0FBS0M7Y0FDUCxDQUFDO1lBQUE7Y0FJTCxJQUFJQSxZQUFZLEVBQUU7Z0JBQ2hCcFMsT0FBTyxDQUFDaUosR0FBRyw0Q0FBQS9JLE1BQUEsQ0FBNENrUyxZQUFZLENBQUN4RSxTQUFTLENBQUMsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxRQUFLLENBQUM7Z0JBQzNGNUssY0FBYyxDQUFDLFVBQUFvTSxlQUFlO2tCQUFBLFVBQUFsUCxNQUFBLENBQUF0SCxrQkFBQSxDQUFRd1csZUFBZSxJQUFFMUksY0FBYztnQkFBQSxDQUFDLENBQUM7Z0JBQ3ZFaEIsUUFBUSxDQUFDO2tCQUNQdkIsV0FBVyxFQUFFaU0sWUFBWTtrQkFDekJsTSxXQUFXLEVBQUUsS0FBSztrQkFDbEJFLGFBQWEsRUFBYkEsY0FBYTtrQkFDYkMsb0JBQW9CLEVBQUV5TyxxQkFBcUI7a0JBQzNDcE8sU0FBUyxFQUFFO2dCQUNiLENBQUMsQ0FBQztjQUNKLENBQUMsTUFBTTtnQkFDTDFFLE9BQU8sQ0FBQzlJLEtBQUssa0ZBQUFnSixNQUFBLENBQWtGcUssV0FBVyxPQUFBckssTUFBQSxDQUFJdUMsVUFBVSxDQUFFLENBQUM7Z0JBQzNIUCxlQUFlLElBQUlBLGVBQWUsQ0FBQyxJQUFJLEVBQUUsS0FBSyxFQUFFLElBQUksNENBQUFoQyxNQUFBLENBQTRDcUssV0FBVyxPQUFBckssTUFBQSxDQUFJdUMsVUFBVSxHQUFJLElBQUksQ0FBQztnQkFDbElpRCxRQUFRLENBQUM7a0JBQUV4QixXQUFXLEVBQUU7Z0JBQU0sQ0FBQyxDQUFDO2NBQ2xDO1lBQUM7WUFBQTtjQUFBLE9BQUErUCxTQUFBLENBQUE3ZCxJQUFBO1VBQUE7UUFBQSxHQUFBNmIsUUFBQTtNQUFBLENBR047TUFBQSxPQUFBRCxnQkFBQSxDQUFBeGEsS0FBQSxPQUFBRCxTQUFBO0lBQUE7SUFFRHdhLGVBQWUsQ0FBQyxDQUFDO0VBQ25CLENBQUMsRUFBRSxDQUFDN04sV0FBVyxDQUFDLENBQUM7O0VBRWpCO0VBQ0EsSUFBQXNRLEtBQUEsR0FBb0I5SixVQUFVLElBQUksQ0FBQyxDQUFDO0lBQTVCck0sT0FBTyxHQUFBbVcsS0FBQSxDQUFQblcsT0FBTztFQUVmdEQsS0FBSyxDQUFDc08sU0FBUyxDQUFDLFlBQU07SUFDcEIsSUFBTW9MLGFBQWEsR0FBR3ZWLGVBQWUsYUFBZkEsZUFBZSx1QkFBZkEsZUFBZSxDQUFFNkYsWUFBWTtJQUNuRCxJQUFJMlAsYUFBYSxHQUFHLElBQUluUSxHQUFHLENBQUMsQ0FBQztJQUM3QixJQUFJb1EsZ0JBQWdCLEdBQUcsS0FBSztJQUM1QixJQUFNQyxJQUFJLEdBQUdGLGFBQWE7SUFDMUIsSUFBTUcsY0FBYyxHQUFHMVMsNEJBQTRCLGFBQTVCQSw0QkFBNEIsdUJBQTVCQSw0QkFBNEIsQ0FBRWhELE1BQU07SUFDM0QsSUFBTTJWLGVBQWUsR0FBRzNTLDRCQUE0QixhQUE1QkEsNEJBQTRCLHVCQUE1QkEsNEJBQTRCLENBQUU0UyxRQUFRO0lBQzlELElBQUlDLGdCQUFnQixHQUFHLElBQUk7O0lBRTNCO0lBQ0EsSUFBSVAsYUFBYSxhQUFiQSxhQUFhLGVBQWJBLGFBQWEsQ0FBRXRmLE1BQU0sSUFDdkIyZixlQUFlLElBQ2QzVixNQUFNLEtBQUswVixjQUFlLElBQzNCQyxlQUFlLENBQUN6VyxPQUFPLENBQUMsSUFBSTtJQUM1QnVFLGFBQWEsYUFBYkEsYUFBYSxlQUFiQSxhQUFhLENBQUVxUyxLQUFLLEVBQ3BCO01BQ0E7TUFDQSxJQUFJLENBQUM1WSxPQUFPLENBQUMwSCxpQkFBaUIsRUFBRW5CLGFBQWEsQ0FBQyxJQUM1QyxDQUFDdkcsT0FBTyxDQUFDMEksWUFBWSxFQUFFMFAsYUFBYSxDQUFDLEVBQUU7UUFBQSxJQUFBUyxzQkFBQTtRQUN2QyxJQUFNQyxjQUFjLEdBQUcsQ0FBQyxDQUFDO1FBQ3pCLElBQU1DLFVBQVUsR0FBRyxDQUFDLENBQUMsRUFBQztRQUN0QixJQUFJQyxVQUFVLEdBQUdaLGFBQWEsQ0FBQyxDQUFDLENBQUMsQ0FBQ25XLEtBQUs7UUFFdkMsSUFBSSxPQUFPK1csVUFBVSxLQUFLLFFBQVEsRUFBRTtVQUNsQ0EsVUFBVSxHQUFHbkIsUUFBUSxDQUFDbUIsVUFBVSxDQUFDO1FBQ25DO1FBRUEsSUFBSUMsU0FBUyxHQUFHRCxVQUFVO1FBRTFCLEtBQUssSUFBSXRrQixDQUFDLEdBQUcsQ0FBQyxFQUFFc0IsQ0FBQyxHQUFHb2lCLGFBQWEsQ0FBQ3RmLE1BQU0sRUFBRXBFLENBQUMsR0FBR3NCLENBQUMsRUFBRXRCLENBQUMsRUFBRSxFQUFFO1VBQ3BELElBQU1tTixRQUFRLEdBQUd1VyxhQUFhLENBQUMxakIsQ0FBQyxDQUFDO1VBQ2pDLElBQ0VzTixRQUFPLEdBRUxILFFBQVEsQ0FGVkcsT0FBTztZQUNQQyxLQUFLLEdBQ0hKLFFBQVEsQ0FEVkksS0FBSztVQUVQO1VBQ0EsSUFBSWlYLE1BQU0sR0FBR0YsVUFBVSxHQUFHdGtCLENBQUM7VUFDM0J1a0IsU0FBUyxHQUFHQyxNQUFNO1VBQ2xCSCxVQUFVLElBQUFsVixNQUFBLENBQUk3QixRQUFPLE9BQUE2QixNQUFBLENBQUlxVixNQUFNLEVBQUcsTUFBQXJWLE1BQUEsQ0FBTTdCLFFBQU8sT0FBQTZCLE1BQUEsQ0FBSTVCLEtBQUssQ0FBRTtVQUUxRCxJQUFJLENBQUM2VyxjQUFjLENBQUM5VyxRQUFPLENBQUMsRUFBRTtZQUM1QjhXLGNBQWMsQ0FBQzlXLFFBQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQztVQUM5QjtVQUVBLElBQUlHLFlBQVksR0FBRyxFQUFFO1VBRXJCLElBQUssT0FBT0YsS0FBSyxLQUFLLFFBQVEsSUFBTUEsS0FBSyxDQUFDeUIsUUFBUSxDQUFDLEdBQUcsQ0FBRSxFQUFFO1lBQ3hELElBQU15VixNQUFNLEdBQUdsWixTQUFTLENBQUN3WSxlQUFlLEtBQUE1VSxNQUFBLENBQUs3QixRQUFPLE9BQUE2QixNQUFBLENBQUk1QixLQUFLLENBQUUsQ0FBQztZQUFBLElBQUFtWCxVQUFBLEdBQUE5ZCwwQkFBQSxDQUV4QzZkLE1BQU07Y0FBQUUsTUFBQTtZQUFBO2NBQTlCLEtBQUFELFVBQUEsQ0FBQWxqQixDQUFBLE1BQUFtakIsTUFBQSxHQUFBRCxVQUFBLENBQUEva0IsQ0FBQSxJQUFBa0QsSUFBQSxHQUFnQztnQkFBQSxJQUFyQitoQixTQUFTLEdBQUFELE1BQUEsQ0FBQTVrQixLQUFBO2dCQUNsQixJQUFNOGtCLEVBQUUsR0FBR0QsU0FBUyxDQUFDcFgsU0FBUyxDQUFDQyxZQUFZO2dCQUMzQ0EsWUFBWSxHQUFHQSxZQUFZLENBQUMwQixNQUFNLENBQUMwVixFQUFFLENBQUM7Y0FDeEM7WUFBQyxTQUFBbmUsR0FBQTtjQUFBZ2UsVUFBQSxDQUFBcGxCLENBQUEsQ0FBQW9ILEdBQUE7WUFBQTtjQUFBZ2UsVUFBQSxDQUFBbmpCLENBQUE7WUFBQTtVQUNILENBQUMsTUFBTTtZQUFBLElBQUF1akIscUJBQUE7WUFDTHJYLFlBQVksSUFBQXFYLHFCQUFBLEdBQUdmLGVBQWUsQ0FBQ3pXLFFBQU8sQ0FBQyxDQUFDQyxLQUFLLENBQUMsY0FBQXVYLHFCQUFBLHVCQUEvQkEscUJBQUEsQ0FBaUNyWCxZQUFZO1VBQzlEO1VBRUEsSUFBSUEsWUFBWSxFQUFFO1lBQ2hCQSxZQUFZLEdBQUc5QixtQkFBbUIsQ0FBQzhCLFlBQVksQ0FBQztZQUNoRDJXLGNBQWMsQ0FBQzlXLFFBQU8sQ0FBQyxDQUFDa1gsTUFBTSxDQUFDLEdBQUc7Y0FBRS9XLFlBQVksRUFBWkE7WUFBYSxDQUFDO1lBQ2xEb1csSUFBSSxDQUFDa0IsR0FBRyxJQUFBNVYsTUFBQSxDQUFJN0IsUUFBTyxPQUFBNkIsTUFBQSxDQUFJNUIsS0FBSyxHQUFJRSxZQUFZLENBQUM7VUFDL0M7UUFDRjs7UUFFQTtRQUNBLElBQUF1WCxxQkFBQSxHQUFrQm5ULGFBQWEsYUFBYkEsYUFBYSxnQkFBQXNTLHNCQUFBLEdBQWJ0UyxhQUFhLENBQUVQLFNBQVMsY0FBQTZTLHNCQUFBLHVCQUF4QkEsc0JBQUEsQ0FBMEJqRSxLQUFLLENBQUMsR0FBRyxDQUFDO1VBQUErRSxzQkFBQSxHQUFBMWIsY0FBQSxDQUFBeWIscUJBQUE7VUFBL0MxWCxTQUFPLEdBQUEyWCxzQkFBQTtRQUNkLElBQUlDLE1BQU0sTUFBQS9WLE1BQUEsQ0FBTTdCLFNBQU8sT0FBQTZCLE1BQUEsQ0FBSW1WLFVBQVUsQ0FBRTtRQUV2QyxJQUFJQyxTQUFTLElBQUlELFVBQVUsRUFBRTtVQUMzQlksTUFBTSxRQUFBL1YsTUFBQSxDQUFRb1YsU0FBUyxDQUFFO1FBQzNCO1FBRUEsSUFBTVksWUFBWSxHQUFHaGEsd0JBQXdCLENBQUM7VUFDNUNpYSxVQUFVLEVBQUVoQixjQUFjO1VBQzFCbFIsR0FBRyxFQUFFZ1MsTUFBTTtVQUNYaEIsS0FBSyxFQUFFclMsYUFBYSxhQUFiQSxhQUFhLHVCQUFiQSxhQUFhLENBQUVxUyxLQUFLO1VBQzNCbUIsVUFBVSxFQUFFeFQsYUFBYSxhQUFiQSxhQUFhLHVCQUFiQSxhQUFhLENBQUV3VDtRQUM3QixDQUFDLENBQUM7UUFFRixJQUFNOVIsV0FBVSxHQUFHLElBQUlDLEdBQUcsQ0FBQyxDQUFDO1FBRTVCLElBQUkyUixZQUFZLGFBQVpBLFlBQVksZUFBWkEsWUFBWSxDQUFFRyxJQUFJLEVBQUU7VUFDdEJILFlBQVksQ0FBQ2hqQixPQUFPLENBQUMsVUFBQ29qQixLQUFLLEVBQUV0ZixHQUFHLEVBQUs7WUFDbkMsSUFBTXVmLElBQUksR0FBR25CLFVBQVUsQ0FBQ3BlLEdBQUcsQ0FBQztZQUU1QnNOLFdBQVUsQ0FBQ3dSLEdBQUcsQ0FBQ1MsSUFBSSxFQUFFRCxLQUFLLENBQUNFLEdBQUcsQ0FBQyxVQUFBQyxJQUFJO2NBQUEsT0FBQWpkLGFBQUEsQ0FBQUEsYUFBQSxLQUM1QmlkLElBQUk7Z0JBQUVDLElBQUksRUFBRXpiLElBQUksQ0FBQzBiLGVBQWUsQ0FBQ0YsSUFBSSxDQUFDQyxJQUFJO2NBQUM7WUFBQSxDQUNqRCxDQUFDLENBQUM7VUFDTCxDQUFDLENBQUM7UUFDSjtRQUNBaEMsYUFBYSxHQUFHcFEsV0FBVTtRQUMxQjBRLGdCQUFnQixHQUFHcFMsYUFBYTtRQUNoQytSLGdCQUFnQixHQUFHLElBQUk7TUFDekI7SUFDRjtJQUVBLElBQU1oUCxRQUFhLEdBQUcsQ0FBQyxDQUFDOztJQUV4QjtJQUNBLElBQUksQ0FBQ3hJLGNBQWMsQ0FBQzZILGVBQWUsRUFBRTRQLElBQUksQ0FBQyxFQUFFO01BQzFDalAsUUFBUSxDQUFDWCxlQUFlLEdBQUc0UCxJQUFJO01BQy9CO01BQ0FqUCxRQUFRLENBQUNuQixjQUFjLEdBQUdvUSxJQUFJLEdBQUdoYyxrQkFBQSxDQUFJZ2MsSUFBSSxDQUFDOWUsSUFBSSxDQUFDLENBQUMsRUFBRWdjLElBQUksQ0FBQyxHQUFHLENBQUMsR0FBRyxFQUFFLEVBQUM7SUFDbkU7O0lBRUEsSUFBTThFLFlBQVksR0FBRyxDQUFBdlUsU0FBUyxhQUFUQSxTQUFTLHVCQUFUQSxTQUFTLENBQUVsRCxNQUFNLE9BQUt3RSxnQkFBZ0IsYUFBaEJBLGdCQUFnQix1QkFBaEJBLGdCQUFnQixDQUFFeEUsTUFBTTtJQUVuRSxJQUFJeVgsWUFBWSxJQUFJLENBQUNqWSxhQUFhLENBQUNvRyxZQUFZLEVBQUUwUCxhQUFhLENBQUMsRUFBRTtNQUMvRDlPLFFBQVEsQ0FBQ1osWUFBWSxHQUFHMFAsYUFBYTtNQUNyQzlPLFFBQVEsQ0FBQzVCLGlCQUFpQixHQUFHaVIsZ0JBQWdCO01BQzdDclAsUUFBUSxDQUFDckIsVUFBVSxHQUFHb1EsYUFBYTtJQUNyQztJQUVBLElBQUlNLGdCQUFnQixFQUFFO01BQ3BCclAsUUFBUSxDQUFDNUIsaUJBQWlCLEdBQUdpUixnQkFBZ0I7SUFDL0M7SUFFQSxJQUFJTCxnQkFBZ0IsRUFBRTtNQUNwQixJQUFJLENBQUN4WCxjQUFjLENBQUNtSCxVQUFVLElBQUssSUFBSUMsR0FBRyxDQUFDLENBQUUsRUFBRW1RLGFBQWEsQ0FBQyxFQUFFO1FBQzdEL08sUUFBUSxDQUFDckIsVUFBVSxHQUFHb1EsYUFBYTtNQUNyQztJQUNGO0lBRUEsSUFBSWxrQixNQUFNLENBQUNzRixJQUFJLENBQUM2UCxRQUFRLENBQUMsQ0FBQ3hRLE1BQU0sRUFBRTtNQUNoQ3VRLFFBQVEsQ0FBQ0MsUUFBUSxDQUFDO0lBQ3BCO0VBQ0YsQ0FBQyxFQUFFLENBQ0RwRCxLQUFLLEVBQ0xFLFVBQVUsRUFDVnRELE1BQU0sRUFDTm9MLFdBQVcsRUFDWHJMLGVBQWUsYUFBZkEsZUFBZSx1QkFBZkEsZUFBZSxDQUFFNkYsWUFBWSxFQUM3QjVDLDRCQUE0QixFQUM1QlMsYUFBYSxDQUNkLENBQUM7RUFFRjdILEtBQUssQ0FBQ3NPLFNBQVMsQ0FBQyxZQUFNO0lBQUU7SUFDdEIzRCxRQUFRLENBQUM7TUFDUFoscUJBQXFCLEVBQUUsSUFBSTtNQUMzQkQsa0JBQWtCLEVBQUUsQ0FBQyxDQUFDO01BQ3RCZixrQkFBa0IsRUFBRTtJQUN0QixDQUFDLENBQUM7RUFDSixDQUFDLEVBQUUsQ0FBQzRHLFVBQVUsQ0FBQyxDQUFDO0VBRWhCLElBQU1tTSwyQkFBMkIsR0FBRyxTQUE5QkEsMkJBQTJCQSxDQUFJeFUsU0FBaUMsRUFBRXlVLE9BQWdCLEVBQUs7SUFDM0YxUixTQUFTLENBQUMsVUFBQVEsU0FBUztNQUFBLE9BQUFwTSxhQUFBLENBQUFBLGFBQUEsS0FDZG9NLFNBQVM7UUFDWmQscUJBQXFCLEVBQUF0TCxhQUFBLENBQUFBLGFBQUEsS0FBT29NLFNBQVMsQ0FBQ2QscUJBQXFCLE9BQUFyTCxlQUFBLFFBQUF5RyxNQUFBLENBQU1tQyxTQUFTLENBQUNoRSxPQUFPLE9BQUE2QixNQUFBLENBQUltQyxTQUFTLENBQUMvRCxLQUFLLEdBQUt3WSxPQUFPO01BQUU7SUFBQSxDQUNuSCxDQUFDO0VBQ0wsQ0FBQztFQUVELElBQUlyQyxhQUFhLEdBQUd2VixlQUFlLGFBQWZBLGVBQWUsdUJBQWZBLGVBQWUsQ0FBRTZGLFlBQVk7RUFFakRoSyxLQUFLLENBQUNzTyxTQUFTLENBQUMsWUFBTTtJQUFBLElBQUEwTixjQUFBO0lBQ3BCLEtBQUFBLGNBQUEsR0FBSXRDLGFBQWEsY0FBQXNDLGNBQUEsZUFBYkEsY0FBQSxDQUFlNWhCLE1BQU0sRUFBRTtNQUN6QixJQUFBNmhCLEtBQUEsR0FBb0M5WCxlQUFlLElBQUksQ0FBQyxDQUFDO1FBQWpEbUQsV0FBUyxHQUFBMlUsS0FBQSxDQUFUM1UsU0FBUztRQUFFTSxjQUFZLEdBQUFxVSxLQUFBLENBQVpyVSxZQUFZO01BQy9CM0MsT0FBTyxDQUFDaUosR0FBRyx3Q0FBd0M7UUFBRTVHLFNBQVMsRUFBVEEsV0FBUztRQUFFTSxZQUFZLEVBQVpBO01BQWEsQ0FBQyxDQUFDO0lBQ2pGO0VBQ0YsQ0FBQyxFQUFFLENBQUM4UixhQUFhLENBQUMsQ0FBQztFQUVuQixJQUFJLEdBQUF4VCxjQUFBLEdBQUN3VCxhQUFhLGNBQUF4VCxjQUFBLGVBQWJBLGNBQUEsQ0FBZTlMLE1BQU0sR0FBRTtJQUFFO0lBQzVCc2YsYUFBYSxHQUFHLENBQUFqYixhQUFBLEtBQU02SSxTQUFTLEVBQUc7RUFDcEM7RUFFQSxJQUFNNFUsc0JBQXNCLElBQUEvVixjQUFBLEdBQUd1VCxhQUFhLGNBQUF2VCxjQUFBLHVCQUFiQSxjQUFBLENBQWVzVixHQUFHLENBQUMsVUFBQ1UsaUJBQWlCLEVBQUUxSixLQUFLLEVBQUs7SUFBQSxJQUFBMkoscUJBQUE7SUFDOUUsSUFBTUMsbUJBQW1CLEdBQUcsQ0FBQUYsaUJBQWlCLGFBQWpCQSxpQkFBaUIsZ0JBQUFDLHFCQUFBLEdBQWpCRCxpQkFBaUIsQ0FBRTNZLFNBQVMsY0FBQTRZLHFCQUFBLHVCQUE1QkEscUJBQUEsQ0FBOEIzWSxZQUFZLEtBQUksRUFBRTtJQUM1RTtJQUNBLElBQUE2WSxLQUFBLEdBQTJCSCxpQkFBaUIsSUFBSSxDQUFDLENBQUM7TUFBMUM3WSxPQUFPLEdBQUFnWixLQUFBLENBQVBoWixPQUFPO01BQUVDLEtBQUssR0FBQStZLEtBQUEsQ0FBTC9ZLEtBQUs7SUFDdEIsSUFBTWdaLE9BQU8sR0FBRyxDQUFBM1QsZ0JBQWdCLGFBQWhCQSxnQkFBZ0IsdUJBQWhCQSxnQkFBZ0IsQ0FBRXhFLE1BQU0sS0FBSUEsTUFBTTtJQUNsRCxJQUFNdUwsVUFBVSxHQUFBbFIsYUFBQSxDQUFBQSxhQUFBLEtBQ1hpYixhQUFhO01BQ2hCcFcsT0FBTyxFQUFQQSxPQUFPO01BQ1BjLE1BQU0sRUFBRW1ZLE9BQU87TUFDZmhaLEtBQUssRUFBTEE7SUFBSyxFQUNOO0lBQ0QsSUFBTWlaLDZCQUE2QixHQUFBL2QsYUFBQSxDQUFBQSxhQUFBLEtBQzlCNlMsNEJBQTRCO01BQy9CSyxZQUFZLEVBQUVjLEtBQUs7TUFDbkI0SixtQkFBbUIsRUFBbkJBLG1CQUFtQjtNQUNuQi9VLFNBQVMsRUFBRXFJLFVBQVU7TUFDckJ2RSxjQUFjLEVBQWRBO0lBQWMsRUFDZjtJQUVELElBQUlxUiwyQkFBMkIsR0FBRyxLQUFLO0lBRXZDLElBQUl2Uyx5QkFBeUIsRUFBRTtNQUM3QnVTLDJCQUEyQixHQUFHdlMseUJBQXlCLENBQUM1RyxPQUFPLElBQUlBLE9BQU8sSUFBSTRHLHlCQUF5QixDQUFDM0csS0FBSyxJQUFJQSxLQUFLO0lBQ3hIO0lBRUEsb0JBQ0V2RCxLQUFBLENBQUFrUCxhQUFBLENBQUMxTixhQUFhLEVBQUFoRSxRQUFBLEtBQ1IyRyxlQUFlO01BQ25CNE0sWUFBWSxFQUFFQSxZQUFhO01BQzNCWSxZQUFZLEVBQUVjLEtBQU07TUFDcEJpSyxpQkFBaUIsRUFBRSxDQUFDelQsYUFBYztNQUNsQ3lHLFNBQVMsRUFBRUEsU0FBVTtNQUNyQmpKLGtCQUFrQixFQUFFeUssbUJBQW9CO01BQ3hDMUcsUUFBUSxFQUFFQSxRQUFTO01BQ25CN0QsY0FBYyxFQUFFQSxjQUFlO01BQy9CSyxJQUFJLEVBQUUwRCxLQUFNO01BQ1orUiwyQkFBMkIsRUFBRUEsMkJBQTRCO01BQ3pEeGdCLEdBQUcsRUFBRXdXLEtBQU07TUFDWGtLLGlCQUFpQixFQUFFLFNBQUFBLGtCQUFBO1FBQUEsT0FBTWhTLFFBQVEsQ0FBQztVQUFFVCx5QkFBeUIsRUFBRTtRQUFLLENBQUMsQ0FBQztNQUFBLENBQUM7TUFDdkU5Qyw0QkFBNEIsRUFBRUEsNEJBQTZCO01BQzNEc0osUUFBUSxFQUFFQSxRQUFTO01BQ25CcEosU0FBUyxFQUFFcUksVUFBVztNQUN0QmlOLE1BQU0sRUFBRWpUO01BQ1I7TUFBQTtNQUNBMkgsNEJBQTRCLEVBQUVrTCw2QkFBOEI7TUFDNURwTixZQUFZLEVBQUVBLFlBQWE7TUFDM0JqSCxvQkFBb0IsRUFBRUEsb0JBQXFCO01BQzNDTCxNQUFNLEVBQUVBLE1BQU87TUFDZk0sU0FBUyxFQUFFQSxTQUFVO01BQ3JCMFQsMkJBQTJCLEVBQUVBO0lBQTRCLEVBQzFELENBQUM7RUFFTixDQUFDLENBQUM7RUFFRixJQUFNZSxzQkFBc0IsR0FBRyxTQUF6QkEsc0JBQXNCQSxDQUFBLEVBQVM7SUFDbkMsSUFBSSxDQUFBN1MsWUFBWSxhQUFaQSxZQUFZLHVCQUFaQSxZQUFZLENBQUU1UCxNQUFNLElBQUcsQ0FBQyxFQUFFO01BQUU7TUFDOUJ1USxRQUFRLENBQUM7UUFBRWpCLGtCQUFrQixFQUFFO01BQUssQ0FBQyxDQUFDO0lBQ3hDLENBQUMsTUFBTSxJQUFJLENBQUFNLFlBQVksYUFBWkEsWUFBWSx1QkFBWkEsWUFBWSxDQUFFNVAsTUFBTSxNQUFLLENBQUMsRUFBRTtNQUFFO01BQ3ZDdVEsUUFBUSxDQUFDO1FBQUVULHlCQUF5QixFQUFFRixZQUFZLENBQUMsQ0FBQztNQUFFLENBQUMsQ0FBQztJQUMxRDtFQUNGLENBQUM7RUFFRCxJQUFNOFMsZUFBZSxHQUFHLFNBQWxCQSxlQUFlQSxDQUFBQyxNQUFBLEVBQWtCO0lBQUEsSUFBWmhOLEtBQUssR0FBQWdOLE1BQUEsQ0FBTGhOLEtBQUs7SUFDOUIsSUFBTWlOLFFBQVEsR0FBQW5mLGtCQUFBLENBQU9rUyxLQUFLLENBQUM7SUFFM0IsSUFBSWtOLGdCQUFnQixHQUFHLEtBQUs7O0lBRTVCO0lBQ0EsSUFBSWxULHFCQUFxQixFQUFFO01BQ3pCa1QsZ0JBQWdCLEdBQUd4bkIsTUFBTSxDQUFDdUMsTUFBTSxDQUFDK1IscUJBQXFCLENBQUMsQ0FBQ21ULEtBQUssQ0FBQyxVQUFBQyxXQUFXO1FBQUEsT0FBSUEsV0FBVyxLQUFLLElBQUk7TUFBQSxFQUFDO0lBQ3BHO0lBRUEsSUFBSUMsU0FBUyxHQUFHLElBQUk7SUFDcEIsSUFBSUMsZUFBZSxHQUFHLEVBQUU7SUFFeEIsSUFBSUosZ0JBQWdCLEVBQUU7TUFDcEJHLFNBQVMsZ0JBQUdwZCxLQUFBLENBQUFrUCxhQUFBLENBQUMzTyxPQUFPO1FBQUN3RyxFQUFFLGdCQUFBNUIsTUFBQSxDQUFnQnVDLFVBQVUsQ0FBRztRQUFDNFYsS0FBSyxFQUFDO01BQU0sQ0FBRSxDQUFDO01BQ3BFRCxlQUFlLEdBQUcsb0JBQW9CO0lBQ3hDLENBQUMsTUFBTTtNQUNMLElBQU1DLEtBQUssR0FBR2hPLG9CQUFvQixHQUFHLE1BQU0sR0FBRyxNQUFNLEVBQUM7TUFDckQ4TixTQUFTLGdCQUFHcGQsS0FBQSxDQUFBa1AsYUFBQSxDQUFDMU8sWUFBWTtRQUFDdUcsRUFBRSw0QkFBQTVCLE1BQUEsQ0FBNEJ1QyxVQUFVLENBQUc7UUFBQzRWLEtBQUssRUFBRUE7TUFBTSxDQUFFLENBQUM7TUFDdEZELGVBQWUsR0FBRyxzQkFBc0I7SUFDMUM7SUFFQSxJQUFJbFYsb0JBQW9CLElBQUlULFVBQVUsS0FBSyxpQkFBaUIsRUFBRTtNQUM1RHNWLFFBQVEsQ0FBQ2pqQixJQUFJLGVBQ1hpRyxLQUFBLENBQUFrUCxhQUFBLENBQUM1TyxVQUFVO1FBQ1R5RyxFQUFFLG9CQUFBNUIsTUFBQSxDQUFvQnVDLFVBQVUsQ0FBRztRQUNuQ3pMLEdBQUcsRUFBQyxpQkFBaUI7UUFDckJzaEIsT0FBTyxFQUFFak8sb0JBQW9CLEdBQUcsSUFBSSxHQUFHdU4sc0JBQXVCO1FBQzlEeFUsS0FBSyxFQUFFZ1YsZUFBZ0I7UUFDdkIsY0FBWUEsZUFBZ0I7UUFDNUJ0YSxLQUFLLEVBQUU7VUFBRXlhLE1BQU0sRUFBRTtRQUFVO01BQUUsR0FFNUJKLFNBQ1MsQ0FDZCxDQUFDO0lBQ0g7O0lBRUE7SUFDQSxDQUFDMVIsa0JBQWtCLElBQUlzUixRQUFRLENBQUNqakIsSUFBSSxlQUNsQ2lHLEtBQUEsQ0FBQWtQLGFBQUEsQ0FBQWxQLEtBQUEsQ0FBQXlkLFFBQUEscUJBQ0V6ZCxLQUFBLENBQUFrUCxhQUFBLENBQUNyTyxrQkFBa0IsRUFBQXJELFFBQUEsS0FBSzRQLGlCQUFpQjtNQUFFUSxTQUFTLEVBQUVELGVBQWUsSUFBSWhFO0lBQVUsRUFBQyxDQUFDLGVBQ3JGM0osS0FBQSxDQUFBa1AsYUFBQSxDQUFDeE8sV0FBVztNQUFDMkgsS0FBSyxFQUFFeUYsV0FBWTtNQUFDd0YsT0FBTyxFQUFFekYsYUFBYztNQUFDNlAsSUFBSSxFQUFFalEsaUJBQWtCO01BQUNrUSxPQUFPLEVBQUVqUSxrQkFBbUI7TUFBQ0UsU0FBUyxFQUFHRCxlQUFlLElBQUloRSxTQUFXO01BQUNpVSxJQUFJLEVBQUU3UCxVQUFXO01BQUM4UCxXQUFXLEVBQUU3UDtJQUFrQixDQUFFLENBQzdNLENBQ0osQ0FBQztJQUVELE9BQU9nUCxRQUFRO0VBQ2pCLENBQUM7RUFFRCxJQUFNYyxvQkFBb0IsR0FBRzFXLDRCQUE0QixhQUE1QkEsNEJBQTRCLHVCQUE1QkEsNEJBQTRCLENBQUU0UyxRQUFRO0VBRW5FLG9CQUNFaGEsS0FBQSxDQUFBa1AsYUFBQSxDQUFDL08seUJBQXlCO0lBQ3hCaWIsVUFBVSxFQUFFMEMsb0JBQW9CLElBQUksQ0FBQyxDQUFFO0lBQ3ZDekMsVUFBVSxFQUFFeFosYUFBYSxDQUFDZ0csYUFBYSxhQUFiQSxhQUFhLHVCQUFiQSxhQUFhLENBQUV3VCxVQUFVLENBQUU7SUFDckQwQyxZQUFZLEVBQUUsU0FBQUEsYUFBQXBFLGFBQWEsRUFBSTtNQUM3QjtJQUFBLENBQ0E7SUFDRk8sS0FBSyxFQUFFLENBQUFyUyxhQUFhLGFBQWJBLGFBQWEsdUJBQWJBLGFBQWEsQ0FBRXFTLEtBQUssS0FBSSxFQUFHO0lBQ2xDOEQsU0FBUyxFQUFFdlUsY0FBZTtJQUMxQkYsVUFBVSxFQUFFQTtFQUFXLGdCQUV2QnZKLEtBQUEsQ0FBQWtQLGFBQUEsQ0FBQ3pPLElBQUk7SUFDSHNHLEVBQUUsb0JBQUE1QixNQUFBLENBQW9Cb0IsT0FBTyxDQUFHO0lBQ2hDOEIsS0FBSyxFQUFFNEksY0FBZTtJQUN0QmdOLGFBQWEsRUFBRXhQLGNBQWMsR0FBRyxXQUFZO0lBQzVDc0IsS0FBSyxFQUFFQSxLQUFNO0lBQ2J2SixPQUFPLEVBQUVBLE9BQVE7SUFDakIwSixPQUFPLEVBQUVBLE9BQVE7SUFDakJDLE9BQU8sRUFBRUEsT0FBUTtJQUNqQjNGLFFBQVEsRUFBRUEsUUFBUztJQUNuQjRGLFNBQVMsRUFBRUEsU0FBVTtJQUNyQkcsVUFBVSxFQUFFQSxVQUFXO0lBQ3ZCOUYsV0FBVyxFQUFFQSxXQUFZO0lBQ3pCK0YsWUFBWSxFQUFFQSxZQUFhO0lBQzNCSCxZQUFZLEVBQUVBLFlBQWE7SUFDM0JJLGVBQWUsRUFBRUEsZUFBZ0I7SUFDakN5TixrQkFBa0IsRUFBRWxQLG9CQUFxQjtJQUN6Q21QLGtCQUFrQjtJQUNsQjVPLFdBQVcsRUFBRUEsV0FBWTtJQUN6QnJJLFVBQVUsRUFBRUEsVUFBVSxHQUFHO01BQUEsT0FBTUEsVUFBVSxDQUFDSCxFQUFFLEVBQUUwSCxjQUFjLENBQUM7SUFBQSxJQUFHLElBQUs7SUFDckUyUCxRQUFRLEVBQUVqTixVQUFVLElBQUlDLGVBQWdCO0lBQ3hDUSxLQUFLLEVBQUV0QyxvQkFBb0IsSUFBSTNGLFNBQVMsSUFBSSxDQUFDWixrQkFBbUIsQ0FBQztJQUFBO0lBQ2pFbUwsVUFBVSxFQUFFLFNBQUFBLFdBQUE7TUFBQSxPQUFNdkosUUFBUSxDQUFDO1FBQUV4QixXQUFXLEVBQUU7TUFBSyxDQUFDLENBQUM7SUFBQSxDQUFDO0lBQ2xEMlQsZUFBZSxFQUFFQTtFQUFnQixnQkFFakM5YyxLQUFBLENBQUFrUCxhQUFBO0lBQUtuSSxFQUFFLEVBQUM7RUFBcUIsR0FDMUJtVixzQkFDRSxDQUNELENBQUMsZUFDUGxjLEtBQUEsQ0FBQWtQLGFBQUEsQ0FBQ3pNLGtCQUFrQjtJQUNqQmlGLFVBQVUsRUFBRUEsVUFBVztJQUN2QmdXLElBQUksRUFBRWhVLGtCQUFtQjtJQUN6QmlVLE9BQU8sRUFBRSxTQUFBQSxRQUFBO01BQUEsT0FBTWhULFFBQVEsQ0FBQztRQUFFakIsa0JBQWtCLEVBQUU7TUFBTSxDQUFDLENBQUM7SUFBQSxDQUFDO0lBQ3ZETSxZQUFZLEVBQUVBLFlBQWE7SUFDM0JELHFCQUFxQixFQUFFQSxxQkFBc0I7SUFDN0NzVSxhQUFhLEVBQUUsU0FBQUEsY0FBQzlhLEtBQUs7TUFBQSxPQUFLb0gsUUFBUSxDQUFDO1FBQ2pDVCx5QkFBeUIsRUFBRTNHLEtBQUs7UUFDaENtRyxrQkFBa0IsRUFBRTtNQUN0QixDQUFDLENBQUM7SUFBQTtFQUFDLENBQ0osQ0FDd0IsQ0FBQztBQUVoQztBQUVBckUsYUFBYSxDQUFDaVosU0FBUyxHQUFHO0VBQ3hCO0VBQ0FsWSxNQUFNLEVBQUVuRyxTQUFTLENBQUNzZSxNQUFNLENBQUNDLFVBQVU7RUFDbkM7RUFDQW5ZLGNBQWMsRUFBRXBHLFNBQVMsQ0FBQ3dlLE1BQU07RUFDaEM7RUFDQW5ZLFNBQVMsRUFBRXJHLFNBQVMsQ0FBQ3NlLE1BQU07RUFDM0I7RUFDQWhZLE9BQU8sRUFBRXRHLFNBQVMsQ0FBQ3llLE1BQU0sQ0FBQ0YsVUFBVTtFQUNwQztFQUNBaFksT0FBTyxFQUFFdkcsU0FBUyxDQUFDd2UsTUFBTTtFQUN6QjtFQUNBaFksa0JBQWtCLEVBQUV4RyxTQUFTLENBQUMwZSxJQUFJO0VBQ2xDO0VBQ0FqWSxXQUFXLEVBQUV6RyxTQUFTLENBQUMyZSxJQUFJLENBQUNKLFVBQVU7RUFDdEM7RUFDQTdYLGNBQWMsRUFBRTFHLFNBQVMsQ0FBQzJlLElBQUk7RUFDOUI7RUFDQWhZLFlBQVksRUFBRTNHLFNBQVMsQ0FBQ3NlLE1BQU07RUFDOUI7RUFDQTFYLGFBQWEsRUFBRTVHLFNBQVMsQ0FBQ3NlLE1BQU07RUFDL0I7RUFDQXpYLFVBQVUsRUFBRTdHLFNBQVMsQ0FBQ3dlLE1BQU07RUFDNUI7RUFDQTFYLEVBQUUsRUFBRTlHLFNBQVMsQ0FBQ3NlLE1BQU07RUFDcEI7RUFDQXZYLElBQUksRUFBRS9HLFNBQVMsQ0FBQzJlLElBQUksQ0FBQ0osVUFBVTtFQUMvQjtFQUNBdlgsWUFBWSxFQUFFaEgsU0FBUyxDQUFDc2UsTUFBTTtFQUM5QjtFQUNBclgsVUFBVSxFQUFFakgsU0FBUyxDQUFDMmUsSUFBSTtFQUMxQjtBQUNGO0FBQ0E7QUFDQTtFQUNFelgsZUFBZSxFQUFFbEgsU0FBUyxDQUFDMmUsSUFBSTtFQUMvQjtFQUNBeFgsNEJBQTRCLEVBQUVuSCxTQUFTLENBQUN3ZSxNQUFNO0VBQzlDblgsU0FBUyxFQUFFckgsU0FBUyxDQUFDNGUsS0FBSyxDQUFDO0lBQ3pCO0lBQ0F6YSxNQUFNLEVBQUVuRSxTQUFTLENBQUNzZSxNQUFNLENBQUNDLFVBQVU7SUFDbkM7SUFDQTdaLFNBQVMsRUFBRTFFLFNBQVMsQ0FBQ3NlLE1BQU07SUFDM0I7SUFDQWpiLE9BQU8sRUFBRXJELFNBQVMsQ0FBQzZlLFNBQVMsQ0FBQyxDQUFDN2UsU0FBUyxDQUFDeWUsTUFBTSxFQUFFemUsU0FBUyxDQUFDc2UsTUFBTSxDQUFDLENBQUMsQ0FBQ0MsVUFBVTtJQUM3RTtJQUNBamIsS0FBSyxFQUFFdEQsU0FBUyxDQUFDNmUsU0FBUyxDQUFDLENBQUM3ZSxTQUFTLENBQUN5ZSxNQUFNLEVBQUV6ZSxTQUFTLENBQUNzZSxNQUFNLENBQUMsQ0FBQyxDQUFDQztFQUNuRSxDQUFDLENBQUM7RUFDRjtFQUNBOVosUUFBUSxFQUFFekUsU0FBUyxDQUFDNGUsS0FBSyxDQUFDO0lBQ3hCO0lBQ0FwWCxVQUFVLEVBQUV4SCxTQUFTLENBQUNzZSxNQUFNLENBQUNDLFVBQVU7SUFDdkM7SUFDQWhYLEtBQUssRUFBRXZILFNBQVMsQ0FBQ3NlLE1BQU0sQ0FBQ0MsVUFBVTtJQUNsQztJQUNBOVcsVUFBVSxFQUFFekgsU0FBUyxDQUFDc2UsTUFBTSxDQUFDQyxVQUFVO0lBQ3ZDO0lBQ0E3VyxxQkFBcUIsRUFBRTFILFNBQVMsQ0FBQ3NlLE1BQU0sQ0FBQ0M7RUFDMUMsQ0FBQyxDQUFDO0VBQ0Y7RUFDQTVXLFlBQVksRUFBRTNILFNBQVMsQ0FBQzhlLEdBQUc7RUFDM0I7RUFDQWxYLGFBQWEsRUFBRTVILFNBQVMsQ0FBQ3dlLE1BQU07RUFDL0I7RUFDQTNXLE1BQU0sRUFBRTdILFNBQVMsQ0FBQ3NlLE1BQU0sQ0FBQ0MsVUFBVTtFQUNuQztFQUNBUSxzQkFBc0IsRUFBRS9lLFNBQVMsQ0FBQzJlLElBQUk7RUFDdEM7RUFDQUsscUJBQXFCLEVBQUVoZixTQUFTLENBQUMyZSxJQUFJO0VBQ3JDO0VBQ0E3VyxvQkFBb0IsRUFBRTlILFNBQVMsQ0FBQzJlLElBQUk7RUFDcEM7RUFDQTVXLHFCQUFxQixFQUFFL0gsU0FBUyxDQUFDMmUsSUFBSTtFQUNyQztFQUNBM1csY0FBYyxFQUFFaEksU0FBUyxDQUFDMmUsSUFBSTtFQUM5QjtFQUNBMVcsZUFBZSxFQUFFakksU0FBUyxDQUFDMmUsSUFBSTtFQUMvQjtFQUNBelcsb0JBQW9CLEVBQUVsSSxTQUFTLENBQUMyZSxJQUFJO0VBQ3BDO0VBQ0F2VyxLQUFLLEVBQUVwSSxTQUFTLENBQUNzZSxNQUFNLENBQUNDLFVBQVU7RUFDbEM7RUFDQXBXLFNBQVMsRUFBRW5JLFNBQVMsQ0FBQzJlLElBQUk7RUFDekI7RUFDQXJXLGdCQUFnQixFQUFFdEksU0FBUyxDQUFDMmUsSUFBSTtFQUNoQztFQUNBdFcsbUJBQW1CLEVBQUVySSxTQUFTLENBQUMyZSxJQUFJLENBQUNKO0FBQ3RDLENBQUMifQ==
|
|
1585
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVnZW5lcmF0b3JSdW50aW1lIiwiZSIsInQiLCJyIiwiT2JqZWN0IiwicHJvdG90eXBlIiwibiIsImhhc093blByb3BlcnR5IiwibyIsImRlZmluZVByb3BlcnR5IiwidmFsdWUiLCJpIiwiU3ltYm9sIiwiYSIsIml0ZXJhdG9yIiwiYyIsImFzeW5jSXRlcmF0b3IiLCJ1IiwidG9TdHJpbmdUYWciLCJkZWZpbmUiLCJlbnVtZXJhYmxlIiwiY29uZmlndXJhYmxlIiwid3JpdGFibGUiLCJ3cmFwIiwiR2VuZXJhdG9yIiwiY3JlYXRlIiwiQ29udGV4dCIsIm1ha2VJbnZva2VNZXRob2QiLCJ0cnlDYXRjaCIsInR5cGUiLCJhcmciLCJjYWxsIiwiaCIsImwiLCJmIiwicyIsInkiLCJHZW5lcmF0b3JGdW5jdGlvbiIsIkdlbmVyYXRvckZ1bmN0aW9uUHJvdG90eXBlIiwicCIsImQiLCJnZXRQcm90b3R5cGVPZiIsInYiLCJ2YWx1ZXMiLCJnIiwiZGVmaW5lSXRlcmF0b3JNZXRob2RzIiwiZm9yRWFjaCIsIl9pbnZva2UiLCJBc3luY0l0ZXJhdG9yIiwiaW52b2tlIiwiX3R5cGVvZiIsInJlc29sdmUiLCJfX2F3YWl0IiwidGhlbiIsImNhbGxJbnZva2VXaXRoTWV0aG9kQW5kQXJnIiwiRXJyb3IiLCJkb25lIiwibWV0aG9kIiwiZGVsZWdhdGUiLCJtYXliZUludm9rZURlbGVnYXRlIiwic2VudCIsIl9zZW50IiwiZGlzcGF0Y2hFeGNlcHRpb24iLCJhYnJ1cHQiLCJUeXBlRXJyb3IiLCJyZXN1bHROYW1lIiwibmV4dCIsIm5leHRMb2MiLCJwdXNoVHJ5RW50cnkiLCJ0cnlMb2MiLCJjYXRjaExvYyIsImZpbmFsbHlMb2MiLCJhZnRlckxvYyIsInRyeUVudHJpZXMiLCJwdXNoIiwicmVzZXRUcnlFbnRyeSIsImNvbXBsZXRpb24iLCJyZXNldCIsImlzTmFOIiwibGVuZ3RoIiwiZGlzcGxheU5hbWUiLCJpc0dlbmVyYXRvckZ1bmN0aW9uIiwiY29uc3RydWN0b3IiLCJuYW1lIiwibWFyayIsInNldFByb3RvdHlwZU9mIiwiX19wcm90b19fIiwiYXdyYXAiLCJhc3luYyIsIlByb21pc2UiLCJrZXlzIiwicmV2ZXJzZSIsInBvcCIsInByZXYiLCJjaGFyQXQiLCJzbGljZSIsInN0b3AiLCJydmFsIiwiaGFuZGxlIiwiY29tcGxldGUiLCJmaW5pc2giLCJfY2F0Y2giLCJkZWxlZ2F0ZVlpZWxkIiwiYXN5bmNHZW5lcmF0b3JTdGVwIiwiZ2VuIiwicmVqZWN0IiwiX25leHQiLCJfdGhyb3ciLCJrZXkiLCJpbmZvIiwiZXJyb3IiLCJfYXN5bmNUb0dlbmVyYXRvciIsImZuIiwic2VsZiIsImFyZ3MiLCJhcmd1bWVudHMiLCJhcHBseSIsImVyciIsInVuZGVmaW5lZCIsIl9jcmVhdGVGb3JPZkl0ZXJhdG9ySGVscGVyIiwiYWxsb3dBcnJheUxpa2UiLCJpdCIsIkFycmF5IiwiaXNBcnJheSIsIl91bnN1cHBvcnRlZEl0ZXJhYmxlVG9BcnJheSIsIkYiLCJfZSIsIm5vcm1hbENvbXBsZXRpb24iLCJkaWRFcnIiLCJzdGVwIiwiX2UyIiwiX2V4dGVuZHMiLCJhc3NpZ24iLCJiaW5kIiwidGFyZ2V0Iiwic291cmNlIiwiX3RvQ29uc3VtYWJsZUFycmF5IiwiYXJyIiwiX2FycmF5V2l0aG91dEhvbGVzIiwiX2l0ZXJhYmxlVG9BcnJheSIsIl9ub25JdGVyYWJsZVNwcmVhZCIsIml0ZXIiLCJmcm9tIiwiX2FycmF5TGlrZVRvQXJyYXkiLCJvd25LZXlzIiwiZ2V0T3duUHJvcGVydHlTeW1ib2xzIiwiZmlsdGVyIiwiZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yIiwiX29iamVjdFNwcmVhZCIsIl9kZWZpbmVQcm9wZXJ0eSIsImdldE93blByb3BlcnR5RGVzY3JpcHRvcnMiLCJkZWZpbmVQcm9wZXJ0aWVzIiwib2JqIiwiX3RvUHJvcGVydHlLZXkiLCJfdG9QcmltaXRpdmUiLCJTdHJpbmciLCJpbnB1dCIsImhpbnQiLCJwcmltIiwidG9QcmltaXRpdmUiLCJyZXMiLCJOdW1iZXIiLCJfc2xpY2VkVG9BcnJheSIsIl9hcnJheVdpdGhIb2xlcyIsIl9pdGVyYWJsZVRvQXJyYXlMaW1pdCIsIl9ub25JdGVyYWJsZVJlc3QiLCJtaW5MZW4iLCJ0b1N0cmluZyIsInRlc3QiLCJsZW4iLCJhcnIyIiwiUmVhY3QiLCJQcm9wVHlwZXMiLCJjb3JlIiwiU2VsZWN0aW9uc0NvbnRleHRQcm92aWRlciIsInVzZm1qcyIsInVzZUVkaXQiLCJJY29uQnV0dG9uIiwiUnhMaW5rMiIsIlJ4TGlua0JyZWFrMiIsIkNhcmQiLCJFcnJvckRpYWxvZyIsIkVSUk9SX1NUQVRFIiwiTUFOSUZFU1RfTk9UX0xPQURFRF9FUlJPUiIsIlVwZGF0ZUJyYW5jaEJ1dHRvbiIsInVzZUJyYW5jaE1lcmdlciIsInVzZUNhcmRTdGF0ZSIsInVzZUNvbnRlbnRVcGRhdGVQcm9wcyIsInVzZU1hc3Rlck1lcmdlUHJvcHMiLCJ1c2VVc2VyQnJhbmNoIiwiZ2V0UXVvdGVNYXRjaGVzSW5Cb29rUmVmIiwiQWxpZ25tZW50SGVscGVycyIsIlVzZm1GaWxlQ29udmVyc2lvbkhlbHBlcnMiLCJpc0VxdWFsIiwiZ2V0VmVyc2VzIiwiU2NyaXB0dXJlUGFuZSIsIlNjcmlwdHVyZVNlbGVjdG9yIiwidXNlU2NyaXB0dXJlU2V0dGluZ3MiLCJjbGVhbnVwVmVyc2VPYmplY3RzIiwiZmV0Y2hCaWJsZUJvb2siLCJmaXhPY2N1cnJlbmNlIiwiZ2V0Qm9va05hbWVGcm9tVXNmbUZpbGVOYW1lIiwiZ2V0UmVzb3VyY2VMaW5rIiwiZ2V0UmVzb3VyY2VNZXNzYWdlIiwiZ2V0U2NyaXB0dXJlVmVyc2lvblNldHRpbmdzIiwiaXNPcmlnaW5hbEJpYmxlIiwiZGVsYXkiLCJhcmVNYXBzVGhlU2FtZSIsIlRpdGxlIiwiTlRfT1JJR19MQU5HIiwiT1JJR0lOQUxfU09VUkNFIiwiT1RfT1JJR19MQU5HIiwiVmVyc2VTZWxlY3RvclBvcHVwIiwiZ2V0UGF0Y2giLCJTY3JpcHR1cmVSZWZlcmVuY2VUeXBlIiwiVmVyc2VPYmplY3RzVHlwZSIsIktFWV9GT05UX1NJWkVfQkFTRSIsImxhYmVsIiwic3R5bGUiLCJtYXJnaW5Ub3AiLCJ3aWR0aCIsImNvbXBhcmVPYmplY3QiLCJ2ZXJzZVJlZiIsIl92ZXJzZURhdGEkdmVyc2VPYmplYyIsIl9yZWYiLCJjaGFwdGVyIiwidmVyc2UiLCJ2ZXJzZURhdGEiLCJ2ZXJzZU9iamVjdHMiLCJKU09OIiwic3RyaW5naWZ5IiwiYXJlVmVyc2VzU2FtZSIsInZlcnNlc0ZvclJlZjEiLCJ2ZXJzZXNGb3JSZWYyIiwiYXJlU2FtZSIsInZlcnNlMSIsInZlcnNlMiIsImdldEN1cnJlbnRCb29rIiwic2NyaXB0dXJlQ29uZmlnIiwiYm9va0lkIiwiX3NjcmlwdHVyZUNvbmZpZyRyZXNvIiwiX3NjcmlwdHVyZUNvbmZpZyRyZXNvMiIsIl9ib29rTmFtZSR0b0xvd2VyQ2FzZSIsImxhdGVzdEJpYmxlIiwicmVzb3VyY2VTdGF0ZSIsInJlc291cmNlIiwicHJvamVjdElkIiwiZmlsZW5hbWUiLCJpc0Jvb2tWYWxpZCIsImJvb2tOYW1lIiwidG9Mb3dlckNhc2UiLCJpbmNsdWRlcyIsImNvbnNvbGUiLCJ3YXJuIiwiY29uY2F0IiwiYmlibGVVc2ZtIiwiU2NyaXB0dXJlQ2FyZCIsIl9yZWYyIiwiX3NjcmlwdHVyZUNvbmZpZyRyZXNvMyIsIl9zY3JpcHR1cmVDb25maWckcmVzbzQiLCJfc2NyaXB0dXJlQ29uZmlnJHJlc281IiwiX3NjcmlwdHVyZUNvbmZpZyRyZXNvNiIsIl9zY3JpcHR1cmVDb25maWckcmVzbzciLCJfYXV0aGVudGljYXRpb24kdG9rZW4iLCJfc2NyaXB0dXJlQ29uZmlnJHJlc285IiwiX3NjcmlwdHVyZUNvbmZpZyRyZXNvMTAiLCJfaHR0cENvbmZpZyIsIl9odHRwQ29uZmlnMiIsIl9hdXRoZW50aWNhdGlvbiR1c2VyIiwiX3ZlcnNlc0ZvclJlZjMiLCJfdmVyc2VzRm9yUmVmNCIsImFwcFJlZiIsImF1dGhlbnRpY2F0aW9uIiwiYm9va0luZGV4IiwiY2FyZE51bSIsImNsYXNzZXMiLCJkaXNhYmxlV29yZFBvcG92ZXIiLCJnZXRMYW5ndWFnZSIsImdldExleGljb25EYXRhIiwiZ3JlZWtSZXBvVXJsIiwiaGVicmV3UmVwb1VybCIsImh0dHBDb25maWciLCJpZCIsImlzTlQiLCJsb2dnZWRJblVzZXIiLCJvbk1pbmltaXplIiwib25SZXNvdXJjZUVycm9yIiwib3JpZ2luYWxTY3JpcHR1cmVCb29rT2JqZWN0cyIsInJlZmVyZW5jZV8iLCJyZWZlcmVuY2UiLCJfcmVmMiRyZXNvdXJjZSIsIm93bmVyIiwibGFuZ3VhZ2VJZCIsInJlc291cmNlSWQiLCJvcmlnaW5hbExhbmd1YWdlT3duZXIiLCJyZXNvdXJjZUxpbmsiLCJzZWxlY3RlZFF1b3RlIiwic2VydmVyIiwic2V0Q2FyZHNMb2FkaW5nTWVyZ2UiLCJzZXRDYXJkc0xvYWRpbmdVcGRhdGUiLCJzZXRDYXJkc1NhdmluZyIsInNldFNhdmVkQ2hhbmdlcyIsInNldFdvcmRBbGlnbmVyU3RhdHVzIiwidHJhbnNsYXRlIiwidGl0bGUiLCJ1c2VVc2VyTG9jYWxTdG9yYWdlIiwidXBkYXRlTWVyZ2VTdGF0ZSIsIl9SZWFjdCR1c2VTdGF0ZSIsInVzZVN0YXRlIiwiY2hlY2tGb3JFZGl0QnJhbmNoIiwiY29udGV4dExpbmVzIiwiY3VycmVudFJlZmVyZW5jZSIsImVkaXRCcmFuY2hSZWFkeSIsImVkaXRWZXJzZSIsImhhdmVVbnNhdmVkQ2hhbmdlcyIsImxhc3RTZWxlY3RlZFF1b3RlIiwicmVhZHlGb3JGZXRjaCIsInJlZiIsInNhdmVDbGlja2VkIiwic2F2ZUNvbnRlbnQiLCJzYXZlRGlmZlBhdGNoIiwic2F2ZUZ1bGxCaWJsZUNvbnRlbnQiLCJzZWxlY3Rpb25zIiwiTWFwIiwic2VsZWN0aW9uc1JlZnMiLCJzaG93QWxpZ25tZW50UG9wdXAiLCJzdGFydFNhdmUiLCJ1cmxFcnJvciIsInVzaW5nVXNlckJyYW5jaCIsInVuc2F2ZWRDaGFuZ2VzTGlzdCIsInZlcnNlc0FsaWdubWVudFN0YXR1cyIsInZlcnNlc0ZvclJlZiIsInZlcnNlT2JqZWN0c01hcCIsInZlcnNlU2VsZWN0ZWRGb3JBbGlnbm1lbnQiLCJfUmVhY3QkdXNlU3RhdGUyIiwic3RhdGUiLCJzZXRTdGF0ZV8iLCJfdXNlVXNlckxvY2FsU3RvcmFnZSIsIl91c2VVc2VyTG9jYWxTdG9yYWdlMiIsImZvbnRTaXplIiwic2V0Rm9udFNpemUiLCJpc05UXyIsInNldFN0YXRlIiwibmV3U3RhdGUiLCJwcmV2U3RhdGUiLCJjYWNoZSIsIm1heEFnZSIsIm5vQ2FjaGUiLCJfdXNlU2NyaXB0dXJlU2V0dGluZ3MiLCJzZXRVcmxFcnJvciIsIndob2xlQm9vayIsImlzTmV3VGVzdGFtZW50Iiwic2V0U2NyaXB0dXJlIiwic2NyaXB0dXJlU2V0dGluZ3MiLCJzY3JpcHR1cmVWZXJzaW9uSGlzdCIsImZldGNoZWRSZXNvdXJjZSIsInJlcG8iLCJ1c2luZ09yaWdpbmFsQmlibGUiLCJjYXJkUmVzb3VyY2VJZCIsInJlZl8iLCJjYW5Vc2VFZGl0QnJhbmNoIiwiX3VzZVVzZXJCcmFuY2giLCJjYXJkSWQiLCJfdXNlVXNlckJyYW5jaCRzdGF0ZSIsImJyYW5jaERldGVybWluZWQiLCJ1c2VyRWRpdEJyYW5jaE5hbWUiLCJfdXNpbmdVc2VyQnJhbmNoIiwid29ya2luZ1Jlc291cmNlQnJhbmNoIiwiX3VzZVVzZXJCcmFuY2gkYWN0aW9uIiwiYWN0aW9ucyIsInN0YXJ0RWRpdEJyYW5jaCIsInN0YXJ0RWRpdCIsImZpbmlzaEVkaXQiLCJfdXNlQnJhbmNoTWVyZ2VyIiwidXNlckJyYW5jaCIsInRva2VuaWQiLCJ0b2tlbiIsInNoYTEiLCJfdXNlQnJhbmNoTWVyZ2VyJHN0YXQiLCJtZXJnZVRvTWFzdGVyIiwibWVyZ2VTdGF0dXMiLCJtZXJnZUZyb21NYXN0ZXIiLCJ1cGRhdGVTdGF0dXMiLCJ1cGRhdGVCdXR0b25Qcm9wcyIsImlzU2F2aW5nIiwib25VcGRhdGUiLCJyZWxvYWRSZXNvdXJjZSIsImNhbGxVcGRhdGVVc2VyQnJhbmNoIiwiaXNFcnJvckRpYWxvZ09wZW4iLCJvbkNsb3NlRXJyb3JEaWFsb2ciLCJpc1VwZGF0ZUxvYWRpbmciLCJpc0xvYWRpbmciLCJkaWFsb2dNZXNzYWdlIiwiZGlhbG9nVGl0bGUiLCJkaWFsb2dMaW5rIiwiZGlhbG9nTGlua1Rvb2x0aXAiLCJvbk1lcmdlIiwibG9nIiwiX3VzZU1hc3Rlck1lcmdlUHJvcHMiLCJpc01lcmdlTG9hZGluZyIsImNhbGxNZXJnZVVzZXJCcmFuY2giLCJ1c2VFZmZlY3QiLCJwcmV2Q2FyZHNMb2FkaW5nIiwid29ya2luZ1JlZiIsInNjcmlwdHVyZVRpdGxlIiwiX3NjcmlwdHVyZUNvbmZpZyRyZXNvOCIsInJlc291cmNlU3RhdHVzIiwibWVzc2FnZSIsImlzQWNjZXNzRXJyb3IiLCJ2ZXJzaW9uIiwidXBkYXRlVGl0bGUiLCJnZXRTY3JpcHR1cmVTZWxlY3RvciIsInNjcmlwdHVyZVNlbGVjdGlvbkNvbmZpZyIsImNyZWF0ZUVsZW1lbnQiLCJlcnJvck1lc3NhZ2UiLCJzZXRFZGl0VmVyc2UiLCJlZGl0aW5nIiwiZGlzYWJsZUNoYW5nZUJ1dHRvbnMiLCJvbk1lbnVDbG9zZSIsImxhbmd1YWdlSWRfIiwibGFuZ3VhZ2UiLCJkaXJlY3Rpb24iLCJfcmVmZXJlbmNlIiwiaXNIZWJyZXciLCJmb250RmFjdG9yIiwic2NhbGVkRm9udFNpemUiLCJpdGVtcyIsIl91c2VDYXJkU3RhdGUiLCJfdXNlQ2FyZFN0YXRlJHN0YXRlIiwiaGVhZGVycyIsImZpbHRlcnMiLCJpdGVtSW5kZXgiLCJtYXJrZG93blZpZXciLCJfdXNlQ2FyZFN0YXRlJGFjdGlvbnMiLCJzZXRGaWx0ZXJzIiwic2V0SXRlbUluZGV4Iiwic2V0TWFya2Rvd25WaWV3IiwicmVmU3R5bGUiLCJ1c2VNZW1vIiwiZm9udEZhbWlseSIsIk1hdGgiLCJyb3VuZCIsImNvbnRlbnRTdHlsZSIsImxpbmVIZWlnaHQiLCJzY3JpcHR1cmVMYWJlbCIsImRpc2FibGVXb3JkUG9wb3Zlcl8iLCJlbmFibGVFZGl0IiwiZW5hYmxlQWxpZ25tZW50Iiwib3JpZ2luYWxSZXBvVXJsIiwic2NyaXB0dXJlQWxpZ25tZW50RWRpdENvbmZpZyIsImN1cnJlbnRWZXJzZVJlZiIsIl9zZXRTYXZlZENoYW5nZXMiLCJzb3VyY2VMYW5ndWFnZSIsInRhcmdldExhbmd1YWdlIiwiY3VycmVudEluZGV4Iiwic2F2ZWQiLCJfcmVmMyIsIl9yZWYzJGdldENoYW5nZXMiLCJnZXRDaGFuZ2VzIiwiX3JlZjMkY2xlYXJDaGFuZ2VzIiwiY2xlYXJDaGFuZ2VzIiwiX3JlZjMkc3RhdGUiLCJfdW5zYXZlZENoYW5nZXNMaXN0IiwiX2hhdmVVbnNhdmVkQ2hhbmdlcyIsImZpbmRSZWZJbkFycmF5IiwiZmluZEl0ZW0iLCJjaHVua3MiLCJyZWZMZW4iLCJpbmRleCIsImZpbmRJbmRleCIsImNodW5rIiwiaWR4Iiwic3Vic3RyaW5nIiwibmV4dENoYXIiLCJnZXRCb29rTmFtZSIsIl9zY3JpcHR1cmVDb25maWckcmVmZSIsImJvb2tDYXBzIiwidG9VcHBlckNhc2UiLCJmaWxlcGF0aCIsInNoYSIsIl91c2VFZGl0IiwiY29udGVudCIsImNvbmZpZyIsImRvbnRDcmVhdGVCcmFuY2giLCJ0aW1lb3V0Iiwic2VydmVyVGltZU91dCIsImF1dGhvciIsImVtYWlsIiwidXNlciIsImJyYW5jaCIsInNhdmVFcnJvciIsImlzU2F2ZUVycm9yIiwiaXNFcnJvciIsIm9uU2F2ZUVkaXQiLCJvblNhdmVFZGl0UGF0Y2giLCJfc2F2ZVN1Y2Nlc2Z1bCIsInByZXZDYXJkc1NhdmluZyIsInVuc2F2ZWRDYXJkSW5kaWNlcyIsIl9pdGVyYXRvciIsIl9zdGVwIiwiY2FyZEluZGV4IiwibG9nQ2hhbmdlZCIsImNvbW1lbnQiLCJpbml0aWFsIiwiZmluYWwiLCJkaWZmIiwiX3NhdmVFZGl0IiwiX3JlZjQiLCJfY2FsbGVlIiwidXBsb2FkRnVuY3Rpb24iLCJzdWNjZXNzIiwicmVzdWx0cyIsIl9zYXZlQ29udGVudCIsImZpbGVTaGEiLCJzYXZlZEJpYmxlVXNmbSIsImVkaXRlZEJpYmxlVXNmbSIsInVwVG9EYXRlIiwibmV3Q29udGV4dExpbmVzIiwiZGlmZlBhdGNoIiwiX2NhbGxlZSQiLCJfY29udGV4dCIsIm1lcmdlVmVyc2VPYmplY3RzSW50b0JpYmxlVXNmbSIsInVwZGF0ZWRWZXJzZU9iamVjdHMiLCJuZXdVc2ZtIiwiY2hhcHRlckNodW5rcyIsInNwbGl0IiwiY2hhcHRlckluZGV4IiwiY3VycmVudENoYXB0ZXIiLCJ2ZXJzZUNodW5rcyIsInZlcnNlSW5kZXgiLCJmcm9udE1hdHRlciIsIm5ld1ZlcnNlVXNmbSIsImNvbnZlcnRWZXJzZURhdGFUb1VTRk0iLCJvbGRWZXJzZSIsInByZWZpeExlbiIsImluZGV4T2YiLCJ2ZXJzZU51bUxlbiIsIm5ld0NoYXB0ZXIiLCJqb2luIiwiZ2V0UmVhZHlGb3JTYXZlIiwiX2dldFJlYWR5Rm9yU2F2ZSIsIl9jYWxsZWUyIiwiY3JlYXRlRWRpdEJyYW5jaCIsImJpYmxlVXNmbUluaXRpYWwiLCJiaWJsZVVzZm1OZXciLCJtZXJnZUZhaWwiLCJfY2FyZE51bSIsIl9pdGVyYXRvcjIiLCJfc3RlcDIiLCJfdW5zYXZlZENoYW5nZXNMaXN0JF8iLCJfc3RhdGUiLCJfZ2V0Q2hhbmdlcyIsIl9yZWY1IiwiX3NhdmVEaWZmUGF0Y2giLCJfc2F2ZUZ1bGxCaWJsZUNvbnRlbnQiLCJuZXdCb29rSnNvbiIsIl9pdGVyYXRvcjMiLCJfc3RlcDMiLCJfY2FyZEluZGV4IiwiX2NhcmROdW0yIiwiX3Vuc2F2ZWRDaGFuZ2VzTGlzdCRfMiIsIl9nZXRDaGFuZ2VzMiIsIl9zdGF0ZTIiLCJfbmV3VXNmbSIsIl9nZXRDaGFuZ2VzMyIsIm5ld1ZlcnNlVGV4dCIsIl9yZWY2IiwiX3VwZGF0ZWRWZXJzZU9iamVjdHMiLCJ0YXJnZXRWZXJzZU9iamVjdHNfIiwiX0FsaWdubWVudEhlbHBlcnMkdXBkIiwidGFyZ2V0VmVyc2VPYmplY3RzIiwiX3NjcmlwdHVyZUNvbmZpZyRyZXNvMTEiLCJfY2FsbGVlMiQiLCJfY29udGV4dDIiLCJwYXJzZUludCIsInQwIiwidXBkYXRlQWxpZ25tZW50c1RvVGFyZ2V0VmVyc2UiLCJ1cGRhdGVWZXJzZSIsInRvVVNGTSIsImZvcmNlZE5ld0xpbmVzIiwiX3JlZjciLCJfdmVyc2VzRm9yUmVmIiwibmV3U2VsZWN0aW9ucyIsInVwZGF0ZVNlbGVjdGlvbnMiLCJfbWFwIiwib3JpZ2luYWxCb29rSWQiLCJib29rVmVyc2VPYmplY3QiLCJjaGFwdGVycyIsIm5ld1NlbGVjdGVkUXVvdGUiLCJxdW90ZSIsIl9zZWxlY3RlZFF1b3RlJHJlZmVyZTMiLCJvcmlnaW5hbFZlcnNlcyIsInN1YnN0aXR1dGUiLCJzdGFydFZlcnNlIiwibGFzdFZlcnNlIiwiX3ZlcnNlIiwidmVyc2VzIiwiX2l0ZXJhdG9yNCIsIl9zdGVwNCIsInZlcnNlSXRlbSIsInZvIiwiX2Jvb2tWZXJzZU9iamVjdCRfY2hhIiwic2V0IiwiX3NlbGVjdGVkUXVvdGUkcmVmZXJlIiwiX3NlbGVjdGVkUXVvdGUkcmVmZXJlMiIsInN1YlJlZiIsInF1b3RlTWF0Y2hlcyIsImJvb2tPYmplY3QiLCJvY2N1cnJlbmNlIiwic2l6ZSIsIndvcmRzIiwiX2tleSIsIm1hcCIsIndvcmQiLCJ0ZXh0Iiwibm9ybWFsaXplU3RyaW5nIiwiYm9va3NOb3RTYW1lIiwidXBkYXRlVmVyc2VzQWxpZ25tZW50U3RhdHVzIiwiYWxpZ25lZCIsIl92ZXJzZXNGb3JSZWYyIiwiX3JlZjgiLCJyZW5kZXJlZFNjcmlwdHVyZVBhbmVzIiwiX2N1cnJlbnRWZXJzZURhdGEiLCJfY3VycmVudFZlcnNlRGF0YSR2ZXIiLCJpbml0aWFsVmVyc2VPYmplY3RzIiwiX3JlZjkiLCJib29rSWRfIiwiX3NjcmlwdHVyZUFsaWdubWVudEVkaXRDb25maWciLCJpc1ZlcnNlU2VsZWN0ZWRGb3JBbGlnbm1lbnQiLCJkZXRlcm1pbmluZ0JyYW5jaCIsIm9uQWxpZ25tZW50RmluaXNoIiwic2F2aW5nIiwiaGFuZGxlQWxpZ25CdXR0b25DbGljayIsIm9uUmVuZGVyVG9vbGJhciIsIl9yZWYxMCIsIm5ld0l0ZW1zIiwiYWxsVmVyc2VzQWxpZ25lZCIsImV2ZXJ5IiwiYWxpZ25TdGF0dXMiLCJhbGlnbkljb24iLCJhbGlnbkJ1dHRvblRleHQiLCJjb2xvciIsIm9uQ2xpY2siLCJjdXJzb3IiLCJGcmFnbWVudCIsIm9wZW4iLCJvbkNsb3NlIiwibGluayIsImxpbmtUb29sdGlwIiwic2VsZWN0aW9uQm9va09iamVjdHMiLCJvblNlbGVjdGlvbnMiLCJyZWZTdHJpbmciLCJzZXR0aW5nc1RpdGxlIiwiZ2V0Q3VzdG9tQ29tcG9uZW50IiwiaGlkZU1hcmtkb3duVG9nZ2xlIiwiZWRpdGFibGUiLCJvblZlcnNlU2VsZWN0IiwicHJvcFR5cGVzIiwic3RyaW5nIiwiaXNSZXF1aXJlZCIsIm9iamVjdCIsIm51bWJlciIsImJvb2wiLCJmdW5jIiwic2hhcGUiLCJvbmVPZlR5cGUiLCJhbnkiLCJzZXRBcmVSZXNvdXJjZXNMb2FkaW5nIiwic2V0QXJlUmVzb3VyY2VzU2F2aW5nIl0sInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2NvbXBvbmVudHMvU2NyaXB0dXJlQ2FyZC9TY3JpcHR1cmVDYXJkLnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyBSZWFjdCBmcm9tICdyZWFjdCdcbmltcG9ydCAqIGFzIFByb3BUeXBlcyBmcm9tICdwcm9wLXR5cGVzJ1xuaW1wb3J0IHsgY29yZSwgU2VsZWN0aW9uc0NvbnRleHRQcm92aWRlciB9IGZyb20gJ3NjcmlwdHVyZS1yZXNvdXJjZXMtcmNsJ1xuaW1wb3J0IHVzZm1qcyBmcm9tICd1c2ZtLWpzJ1xuaW1wb3J0IHsgdXNlRWRpdCB9IGZyb20gJ2dpdGVhLXJlYWN0LXRvb2xraXQnXG5pbXBvcnQgeyBJY29uQnV0dG9uIH0gZnJvbSAnQG11aS9tYXRlcmlhbCdcbmltcG9ydCB7IFJ4TGluazIsIFJ4TGlua0JyZWFrMiB9IGZyb20gJ3JlYWN0LWljb25zL3J4J1xuaW1wb3J0IHtcbiAgQ2FyZCxcbiAgRXJyb3JEaWFsb2csXG4gIEVSUk9SX1NUQVRFLFxuICBNQU5JRkVTVF9OT1RfTE9BREVEX0VSUk9SLFxuICBVcGRhdGVCcmFuY2hCdXR0b24sXG4gIHVzZUJyYW5jaE1lcmdlcixcbiAgdXNlQ2FyZFN0YXRlLFxuICB1c2VDb250ZW50VXBkYXRlUHJvcHMsXG4gIHVzZU1hc3Rlck1lcmdlUHJvcHMsXG4gIHVzZVVzZXJCcmFuY2gsXG59IGZyb20gJ3RyYW5zbGF0aW9uLWhlbHBzLXJjbCdcbi8vIEB0cy1pZ25vcmVcbmltcG9ydCB7IGdldFF1b3RlTWF0Y2hlc0luQm9va1JlZiB9IGZyb20gJ3V3LXF1b3RlLWhlbHBlcnMnXG5pbXBvcnQgeyBBbGlnbm1lbnRIZWxwZXJzLCBVc2ZtRmlsZUNvbnZlcnNpb25IZWxwZXJzIH0gZnJvbSAnd29yZC1hbGlnbmVyLXJjbCdcbmltcG9ydCB7IGlzRXF1YWwgfSBmcm9tICdAcmVhY3QtaG9va3ovZGVlcC1lcXVhbCdcbmltcG9ydCB7IGdldFZlcnNlcyB9IGZyb20gJ2JpYmxlLXJlZmVyZW5jZS1yYW5nZSdcbmltcG9ydCB7IFNjcmlwdHVyZVBhbmUsIFNjcmlwdHVyZVNlbGVjdG9yIH0gZnJvbSAnLi4nXG5pbXBvcnQgeyB1c2VTY3JpcHR1cmVTZXR0aW5ncyB9IGZyb20gJy4uLy4uL2hvb2tzL3VzZVNjcmlwdHVyZVNldHRpbmdzJ1xuaW1wb3J0IHtcbiAgY2xlYW51cFZlcnNlT2JqZWN0cyxcbiAgZmV0Y2hCaWJsZUJvb2ssXG4gIGZpeE9jY3VycmVuY2UsXG4gIGdldEJvb2tOYW1lRnJvbVVzZm1GaWxlTmFtZSxcbiAgZ2V0UmVzb3VyY2VMaW5rLFxuICBnZXRSZXNvdXJjZU1lc3NhZ2UsXG4gIGdldFNjcmlwdHVyZVZlcnNpb25TZXR0aW5ncyxcbiAgaXNPcmlnaW5hbEJpYmxlLFxufSBmcm9tICcuLi8uLi91dGlscy9TY3JpcHR1cmVTZXR0aW5ncydcbmltcG9ydCB7IGRlbGF5IH0gZnJvbSAnLi4vLi4vdXRpbHMvZGVsYXknXG5pbXBvcnQgeyBhcmVNYXBzVGhlU2FtZSB9IGZyb20gJy4uLy4uL3V0aWxzL21hcHMnXG5pbXBvcnQgeyBUaXRsZSB9IGZyb20gJy4uL1NjcmlwdHVyZVBhbmUvc3R5bGVkJ1xuaW1wb3J0IHtcbiAgTlRfT1JJR19MQU5HLFxuICBPUklHSU5BTF9TT1VSQ0UsXG4gIE9UX09SSUdfTEFORyxcbn0gZnJvbSAnLi4vLi4vdXRpbHMnXG5pbXBvcnQgeyBWZXJzZVNlbGVjdG9yUG9wdXAgfSBmcm9tICcuLi9WZXJzZVNlbGVjdG9yUG9wdXAnXG5pbXBvcnQgeyBnZXRQYXRjaCB9IGZyb20gJy4uLy4uL3V0aWxzL2ZpbGVzJ1xuaW1wb3J0IHsgU2NyaXB0dXJlUmVmZXJlbmNlVHlwZSwgVmVyc2VPYmplY3RzVHlwZSB9IGZyb20gJy4uLy4uL3R5cGVzJ1xuXG5jb25zdCBLRVlfRk9OVF9TSVpFX0JBU0UgPSAnc2NyaXB0dXJlUGFuZUZvbnRTaXplXydcbmNvbnN0IGxhYmVsID0gJ1ZlcnNpb24nXG5jb25zdCBzdHlsZSA9IHsgbWFyZ2luVG9wOiAnMTZweCcsIHdpZHRoOiAnNTAwcHgnIH1cblxuLyoqXG4gKiBjcmVhdGUgYSBzaG9ydCBjb21wYXJpc29uIHZlcnNlIHJlZiBvYmplY3Qgd2l0aG91dCBhbGwgdGhlIHZlcnNlRGF0YVxuICogQHBhcmFtIHZlcnNlUmVmXG4gKi9cbmZ1bmN0aW9uIGNvbXBhcmVPYmplY3QodmVyc2VSZWYpIHtcbiAgY29uc3Qge1xuICAgIGNoYXB0ZXIsXG4gICAgdmVyc2UsXG4gICAgdmVyc2VEYXRhLFxuICB9ID0gdmVyc2VSZWYgfHwge31cbiAgY29uc3QgdmVyc2VPYmplY3RzID0gdmVyc2VEYXRhPy52ZXJzZU9iamVjdHM/Lmxlbmd0aCA/IEpTT04uc3RyaW5naWZ5KHZlcnNlRGF0YS52ZXJzZU9iamVjdHMpIDogJydcbiAgcmV0dXJuIHtcbiAgICBjaGFwdGVyLFxuICAgIHZlcnNlLFxuICAgIHZlcnNlT2JqZWN0cyxcbiAgfVxufVxuXG4vKipcbiAqIGNvbXBhcmUgdHdvIHZlcnNlIHJlZnMgdG8gc2VlIGlmIHRoZXkgYXJlIHN1YnN0YW50aWFsbHkgc2ltaWxhclxuICogQHBhcmFtIHZlcnNlc0ZvclJlZjFcbiAqIEBwYXJhbSB2ZXJzZXNGb3JSZWYyXG4gKi9cbmZ1bmN0aW9uIGFyZVZlcnNlc1NhbWUodmVyc2VzRm9yUmVmMTogYW55W10sIHZlcnNlc0ZvclJlZjI6IGFueVtdKSB7XG4gIHZlcnNlc0ZvclJlZjEgPSB2ZXJzZXNGb3JSZWYxIHx8IFtdXG4gIHZlcnNlc0ZvclJlZjIgPSB2ZXJzZXNGb3JSZWYyIHx8IFtdXG4gIGxldCBhcmVTYW1lID0gZmFsc2VcblxuICBpZiAodmVyc2VzRm9yUmVmMS5sZW5ndGggPT09IHZlcnNlc0ZvclJlZjIubGVuZ3RoKSB7XG4gICAgYXJlU2FtZSA9IHRydWVcblxuICAgIGZvciAobGV0IGkgPSAwLCBsPSB2ZXJzZXNGb3JSZWYxLmxlbmd0aDsgaSA8IGw7IGkrKykge1xuICAgICAgY29uc3QgdmVyc2UxID0gY29tcGFyZU9iamVjdCh2ZXJzZXNGb3JSZWYxW2ldKVxuICAgICAgY29uc3QgdmVyc2UyID0gY29tcGFyZU9iamVjdCh2ZXJzZXNGb3JSZWYyW2ldKVxuICAgICAgYXJlU2FtZSA9IGlzRXF1YWwodmVyc2UxLCB2ZXJzZTIpXG5cbiAgICAgIGlmICghYXJlU2FtZSkge1xuICAgICAgICBicmVha1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHJldHVybiBhcmVTYW1lXG59XG5cbi8qKlxuICogZ2V0IHRoZSBVU0ZNIGZvciBib29rSWQgZnJvbSBzY3JpcHR1cmVDb25maWcuXG4gKiBAcGFyYW0ge29iamVjdH0gc2NyaXB0dXJlQ29uZmlnXG4gKiBAcGFyYW0ge3N0cmluZ30gYm9va0lkXG4gKi9cbmV4cG9ydCBjb25zdCBnZXRDdXJyZW50Qm9vayA9IChzY3JpcHR1cmVDb25maWcsIGJvb2tJZCkgPT4ge1xuICBjb25zdCBsYXRlc3RCaWJsZSA9IHNjcmlwdHVyZUNvbmZpZz8ucmVzb3VyY2VTdGF0ZT8ucmVzb3VyY2U/LnByb2plY3RJZFxuICBjb25zdCBmaWxlbmFtZSA9IHNjcmlwdHVyZUNvbmZpZz8ucmVzb3VyY2VTdGF0ZT8ucmVzb3VyY2U/Lm5hbWUgLy8gTGlrZSBcIjU3LVRJVC51c2ZtXCJcbiAgbGV0IGlzQm9va1ZhbGlkID0gZmFsc2VcbiAgY29uc3QgYm9va05hbWUgPSBnZXRCb29rTmFtZUZyb21Vc2ZtRmlsZU5hbWUoZmlsZW5hbWUpXG4gIGlzQm9va1ZhbGlkID0gYm9va05hbWU/LnRvTG93ZXJDYXNlKCk/LmluY2x1ZGVzKGJvb2tJZClcbiAgaWYgKCFpc0Jvb2tWYWxpZCkge1xuICAgIGNvbnNvbGUud2FybihgQ3VycmVudCBib29rSWQgaXMgJHtib29rSWR9IGFuZCBVU0ZNIGZpbGUgaXMgJHtmaWxlbmFtZX1gKVxuICB9XG4gIGlmIChsYXRlc3RCaWJsZT8udG9Mb3dlckNhc2UoKSAhPT0gYm9va0lkKSB7XG4gICAgY29uc29sZS53YXJuKGBDdXJyZW50IGJvb2tJZCBpcyAke2Jvb2tJZH0gYnV0IGZldGNoZWQgcHJvamVjdElkIGlzICR7bGF0ZXN0QmlibGV9YClcbiAgICBpc0Jvb2tWYWxpZCA9IGZhbHNlXG4gIH1cbiAgaWYgKGlzQm9va1ZhbGlkKSB7XG4gICAgY29uc3QgYmlibGVVc2ZtID0gc2NyaXB0dXJlQ29uZmlnPy5iaWJsZVVzZm07XG4gICAgaWYgKGJpYmxlVXNmbSkge1xuICAgICAgcmV0dXJuIGJpYmxlVXNmbVxuICAgIH1cbiAgICBjb25zb2xlLmVycm9yKGBnZXRDdXJyZW50Qm9vaygpIC0gQmlibGUgVVNGTSBtaXNzaW5nYClcbiAgfVxuICBjb25zb2xlLmVycm9yKGBnZXRDdXJyZW50Qm9vaygpIC0gRXhwZWN0ZWQgJHtib29rSWR9IGJ1dCBnb3QgZmlsZSAke2ZpbGVuYW1lfWApXG4gIHJldHVybiBudWxsXG59XG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIFNjcmlwdHVyZUNhcmQoe1xuICBhcHBSZWYsXG4gIGF1dGhlbnRpY2F0aW9uLFxuICBib29rSW5kZXgsXG4gIGNhcmROdW0sXG4gIGNsYXNzZXMsXG4gIGRpc2FibGVXb3JkUG9wb3ZlcixcbiAgZ2V0TGFuZ3VhZ2UsXG4gIGdldExleGljb25EYXRhLFxuICBncmVla1JlcG9VcmwsXG4gIGhlYnJld1JlcG9VcmwsXG4gIGh0dHBDb25maWcsXG4gIGlkLFxuICBpc05ULFxuICBsb2dnZWRJblVzZXIsXG4gIG9uTWluaW1pemUsXG4gIG9uUmVzb3VyY2VFcnJvcixcbiAgb3JpZ2luYWxTY3JpcHR1cmVCb29rT2JqZWN0cyxcbiAgcmVmZXJlbmNlOiByZWZlcmVuY2VfLFxuICByZXNvdXJjZToge1xuICAgIG93bmVyLFxuICAgIGxhbmd1YWdlSWQsXG4gICAgcmVzb3VyY2VJZCxcbiAgICBvcmlnaW5hbExhbmd1YWdlT3duZXIsXG4gIH0sXG4gIHJlc291cmNlTGluayxcbiAgc2VsZWN0ZWRRdW90ZSxcbiAgc2VydmVyLFxuICBzZXRDYXJkc0xvYWRpbmdNZXJnZSxcbiAgc2V0Q2FyZHNMb2FkaW5nVXBkYXRlLFxuICBzZXRDYXJkc1NhdmluZyxcbiAgc2V0U2F2ZWRDaGFuZ2VzLFxuICBzZXRXb3JkQWxpZ25lclN0YXR1cyxcbiAgdHJhbnNsYXRlLFxuICB0aXRsZSxcbiAgdXNlVXNlckxvY2FsU3RvcmFnZSxcbiAgdXBkYXRlTWVyZ2VTdGF0ZSxcbn0pIHtcbiAgY29uc3QgYm9va0lkID0gcmVmZXJlbmNlXz8uYm9va0lkIHx8IHJlZmVyZW5jZV8/LnByb2plY3RJZCAvLyBvbGRlciB2ZXJzaW9ucyB1c2UgcHJvamVjdElkLCBzbyBmYWxsIGJhY2sgdG8gdGhhdFxuICBjb25zdCByZWZlcmVuY2UgPSB7XG4gICAgYm9va0lkLFxuICAgIGNoYXB0ZXI6IHJlZmVyZW5jZV8/LmNoYXB0ZXIsXG4gICAgdmVyc2U6IHJlZmVyZW5jZV8/LnZlcnNlLFxuICB9XG4gIGNvbnN0IFtzdGF0ZSwgc2V0U3RhdGVfXSA9IFJlYWN0LnVzZVN0YXRlKHtcbiAgICBjaGVja0ZvckVkaXRCcmFuY2g6IDAsXG4gICAgY29udGV4dExpbmVzOiA0LFxuICAgIGN1cnJlbnRSZWZlcmVuY2U6IG51bGwsXG4gICAgZWRpdEJyYW5jaFJlYWR5OiBmYWxzZSxcbiAgICBlZGl0VmVyc2U6IG51bGwsXG4gICAgaGF2ZVVuc2F2ZWRDaGFuZ2VzOiBmYWxzZSxcbiAgICBsYXN0U2VsZWN0ZWRRdW90ZTogbnVsbCxcbiAgICByZWFkeUZvckZldGNoOiBmYWxzZSxcbiAgICByZWY6IGFwcFJlZixcbiAgICBzYXZlQ2xpY2tlZDogZmFsc2UsXG4gICAgc2F2ZUNvbnRlbnQ6IG51bGwsXG4gICAgc2F2ZURpZmZQYXRjaDogZmFsc2UsXG4gICAgc2F2ZUZ1bGxCaWJsZUNvbnRlbnQ6IG51bGwsXG4gICAgc2VsZWN0aW9uczogbmV3IE1hcCgpLFxuICAgIHNlbGVjdGlvbnNSZWZzOiAnJyxcbiAgICBzaG93QWxpZ25tZW50UG9wdXA6IGZhbHNlLFxuICAgIHN0YXJ0U2F2ZTogZmFsc2UsXG4gICAgdXJsRXJyb3I6IG51bGwsXG4gICAgdXNpbmdVc2VyQnJhbmNoOiBmYWxzZSxcbiAgICB1bnNhdmVkQ2hhbmdlc0xpc3Q6IHt9LFxuICAgIHZlcnNlc0FsaWdubWVudFN0YXR1czogbnVsbCxcbiAgICB2ZXJzZXNGb3JSZWY6IG51bGwsXG4gICAgdmVyc2VPYmplY3RzTWFwOiBuZXcgTWFwKCksXG4gICAgdmVyc2VTZWxlY3RlZEZvckFsaWdubWVudDogbnVsbCxcbiAgfSlcbiAgY29uc3Qge1xuICAgIGNoZWNrRm9yRWRpdEJyYW5jaCxcbiAgICBjb250ZXh0TGluZXMsXG4gICAgY3VycmVudFJlZmVyZW5jZSxcbiAgICBlZGl0QnJhbmNoUmVhZHksXG4gICAgZWRpdFZlcnNlLCAvLyBrZWVwIHRyYWNrIG9mIHZlcnNlIGJlaW5nIGVkaXR0ZWRcbiAgICBoYXZlVW5zYXZlZENoYW5nZXMsXG4gICAgbGFzdFNlbGVjdGVkUXVvdGUsXG4gICAgcmVhZHlGb3JGZXRjaCxcbiAgICByZWYsXG4gICAgc2F2ZUNsaWNrZWQsXG4gICAgc2F2ZUNvbnRlbnQsXG4gICAgc2F2ZURpZmZQYXRjaCxcbiAgICBzYXZlRnVsbEJpYmxlQ29udGVudCxcbiAgICBzZWxlY3Rpb25zLFxuICAgIHNlbGVjdGlvbnNSZWZzLFxuICAgIHNob3dBbGlnbm1lbnRQb3B1cCxcbiAgICBzdGFydFNhdmUsXG4gICAgdXJsRXJyb3IsXG4gICAgdXNpbmdVc2VyQnJhbmNoLFxuICAgIHVuc2F2ZWRDaGFuZ2VzTGlzdCxcbiAgICB2ZXJzZU9iamVjdHNNYXAsXG4gICAgdmVyc2VTZWxlY3RlZEZvckFsaWdubWVudCxcbiAgICB2ZXJzZXNBbGlnbm1lbnRTdGF0dXMsXG4gICAgdmVyc2VzRm9yUmVmLFxuICB9ID0gc3RhdGVcblxuICBjb25zdCBbZm9udFNpemUsIHNldEZvbnRTaXplXSA9IHVzZVVzZXJMb2NhbFN0b3JhZ2UoS0VZX0ZPTlRfU0laRV9CQVNFICsgY2FyZE51bSwgMTAwKVxuICBjb25zdCBpc05UXyA9IGlzTlQoYm9va0lkKVxuXG4gIGZ1bmN0aW9uIHNldFN0YXRlKG5ld1N0YXRlKSB7XG4gICAgc2V0U3RhdGVfKHByZXZTdGF0ZSA9PiAoeyAuLi5wcmV2U3RhdGUsIC4uLm5ld1N0YXRlIH0pKVxuICB9XG5cbiAgaHR0cENvbmZpZyA9IHtcbiAgICAuLi5odHRwQ29uZmlnLFxuICAgIGNhY2hlOiB7IG1heEFnZTogMCB9LFxuICAgIG5vQ2FjaGU6IHRydWUsXG4gIH0gLy8gZGlzYWJsZSBodHRwIGNhY2hpbmdcblxuICBjb25zdCB7XG4gICAgaXNOZXdUZXN0YW1lbnQsXG4gICAgc2NyaXB0dXJlQ29uZmlnLFxuICAgIHNldFNjcmlwdHVyZSxcbiAgICBzY3JpcHR1cmVTZXR0aW5ncyxcbiAgICBzY3JpcHR1cmVWZXJzaW9uSGlzdCxcbiAgfSA9IHVzZVNjcmlwdHVyZVNldHRpbmdzKHtcbiAgICBhcHBSZWY6IHJlZixcbiAgICBjYXJkTnVtLFxuICAgIGRpc2FibGVXb3JkUG9wb3ZlcixcbiAgICBncmVla1JlcG9VcmwsXG4gICAgaGVicmV3UmVwb1VybCxcbiAgICBodHRwQ29uZmlnLFxuICAgIGlzTlQsXG4gICAgbGFuZ3VhZ2VJZCxcbiAgICBvcmlnaW5hbExhbmd1YWdlT3duZXIsXG4gICAgb3duZXIsXG4gICAgcmVhZHlGb3JGZXRjaCxcbiAgICByZWZlcmVuY2U6IGN1cnJlbnRSZWZlcmVuY2UgfHwgcmVmZXJlbmNlLFxuICAgIHJlc291cmNlSWQsXG4gICAgcmVzb3VyY2VMaW5rLFxuICAgIHNldFVybEVycm9yOiAoZXJyb3IpID0+IHNldFN0YXRlKHsgdXJsRXJyb3I6IGVycm9yIH0pLFxuICAgIHNlcnZlcixcbiAgICB0aXRsZSxcbiAgICB1c2VVc2VyTG9jYWxTdG9yYWdlLFxuICAgIHdob2xlQm9vazogdHJ1ZSxcbiAgfSlcblxuICBjb25zdCBmZXRjaGVkUmVzb3VyY2UgPSBzY3JpcHR1cmVDb25maWc/LnJlc291cmNlU3RhdGVcbiAgLy8gQHRzLWlnbm9yZVxuICBjb25zdCByZXBvID0gYCR7c2NyaXB0dXJlQ29uZmlnPy5yZXNvdXJjZT8ubGFuZ3VhZ2VJZH1fJHtzY3JpcHR1cmVDb25maWc/LnJlc291cmNlPy5wcm9qZWN0SWR9YFxuICBjb25zdCB1c2luZ09yaWdpbmFsQmlibGUgPSBpc09yaWdpbmFsQmlibGUoc2NyaXB0dXJlQ29uZmlnWydyZXNvdXJjZSddPy5wcm9qZWN0SWQpXG5cblxuICAvLyBAdHMtaWdub3JlXG4gIGNvbnN0IGNhcmRSZXNvdXJjZUlkID0gc2NyaXB0dXJlQ29uZmlnPy5yZXNvdXJjZT8ucHJvamVjdElkIHx8IHJlc291cmNlSWRcbiAgLy8gQHRzLWlnbm9yZVxuICBsZXQgcmVmXyA9IHNjcmlwdHVyZUNvbmZpZz8ucmVzb3VyY2U/LnJlZiB8fCBhcHBSZWZcbiAgY29uc3QgY2FuVXNlRWRpdEJyYW5jaCA9ICEhKGxvZ2dlZEluVXNlciAmJiBhdXRoZW50aWNhdGlvbiAmJiAocmVzb3VyY2VJZCAhPT0gT1JJR0lOQUxfU09VUkNFKSAmJiAvLyBUUklDS1kgaWYgbm90IG9yaWdpbmFsIGxhbmd1YWdlIGFuZCB3ZSBoYXZlIGxvZ2luIGRhdGEsIHRoZW4gd2UgY2FuIHVzZSB0aGUgZWRpdCBicmFuY2hcbiAgICAoKHJlZl8gPT09ICdtYXN0ZXInKSB8fCAocmVmXy5pbmNsdWRlcyhsb2dnZWRJblVzZXIpKSkpIC8vIGFsc28gbWFrZSBzdXJlIG5vdCBhIHZlcnNpb24gdGFnXG5cbiAgY29uc3Qge1xuICAgIHN0YXRlOiB7XG4gICAgICBicmFuY2hEZXRlcm1pbmVkLFxuICAgICAgdXNlckVkaXRCcmFuY2hOYW1lLFxuICAgICAgdXNpbmdVc2VyQnJhbmNoOiBfdXNpbmdVc2VyQnJhbmNoLFxuICAgICAgd29ya2luZ1Jlc291cmNlQnJhbmNoLFxuICAgIH0sXG4gICAgYWN0aW9uczoge1xuICAgICAgc3RhcnRFZGl0OiBzdGFydEVkaXRCcmFuY2gsXG4gICAgICBmaW5pc2hFZGl0LFxuICAgIH0sXG4gIH0gPSB1c2VVc2VyQnJhbmNoKHtcbiAgICBhcHBSZWYsXG4gICAgYXV0aGVudGljYXRpb246IGNhblVzZUVkaXRCcmFuY2ggPyBhdXRoZW50aWNhdGlvbiA6IG51bGwsXG4gICAgYm9va0lkLFxuICAgIGNhcmRJZDogaWQsXG4gICAgY2FyZFJlc291cmNlSWQsXG4gICAgY2hlY2tGb3JFZGl0QnJhbmNoLFxuICAgIGxhbmd1YWdlSWQsXG4gICAgbG9nZ2VkSW5Vc2VyOiBjYW5Vc2VFZGl0QnJhbmNoID8gbG9nZ2VkSW5Vc2VyIDogbnVsbCxcbiAgICBvd25lcixcbiAgICBvblJlc291cmNlRXJyb3IsXG4gICAgc2VydmVyLFxuICAgIHVzZVVzZXJMb2NhbFN0b3JhZ2UsXG4gIH0pXG5cbiAgY29uc3QgX3VzZUJyYW5jaE1lcmdlciA9IHVzZUJyYW5jaE1lcmdlcih7IHNlcnZlciwgb3duZXIsIHJlcG8sIHVzZXJCcmFuY2g6IHVzZXJFZGl0QnJhbmNoTmFtZSwgdG9rZW5pZDogYXV0aGVudGljYXRpb24/LnRva2VuPy5zaGExIH0pXG4gIGNvbnN0IHtcbiAgICBzdGF0ZToge1xuICAgICAgbWVyZ2VTdGF0dXM6IG1lcmdlVG9NYXN0ZXIsXG4gICAgICB1cGRhdGVTdGF0dXM6IG1lcmdlRnJvbU1hc3RlcixcbiAgICB9LFxuICB9ID0gX3VzZUJyYW5jaE1lcmdlclxuXG4gIGNvbnN0IHVwZGF0ZUJ1dHRvblByb3BzID0gdXNlQ29udGVudFVwZGF0ZVByb3BzKHtcbiAgICBpc1NhdmluZzogc3RhcnRTYXZlLFxuICAgIHVzZUJyYW5jaE1lcmdlcjogX3VzZUJyYW5jaE1lcmdlcixcbiAgICBvblVwZGF0ZTogKCkgPT4ge1xuICAgICAgZGVsYXkoNTAwKS50aGVuKCgpID0+IHNjcmlwdHVyZUNvbmZpZz8ucmVsb2FkUmVzb3VyY2UoKSlcbiAgICB9LFxuICB9KVxuXG4gIGNvbnN0IHtcbiAgICBjYWxsVXBkYXRlVXNlckJyYW5jaCxcbiAgICBpc0Vycm9yRGlhbG9nT3BlbixcbiAgICBvbkNsb3NlRXJyb3JEaWFsb2csXG4gICAgaXNMb2FkaW5nOiBpc1VwZGF0ZUxvYWRpbmcsXG4gICAgZGlhbG9nTWVzc2FnZSxcbiAgICBkaWFsb2dUaXRsZSxcbiAgICBkaWFsb2dMaW5rLFxuICAgIGRpYWxvZ0xpbmtUb29sdGlwLFxuICB9ID0gdXBkYXRlQnV0dG9uUHJvcHNcblxuICBjb25zdCBvbk1lcmdlID0gKCkgPT4ge1xuICAgIGZpbmlzaEVkaXQoKVxuICAgIGNvbnNvbGUubG9nKGBvbk1lcmdlKCkgc3dpdGNoaW5nIGJhY2sgdG8gbWFzdGVyIGFmdGVyIG1lcmdlIGFwcFJlZjpgLCBhcHBSZWYpXG4gICAgc2V0U3RhdGUoe1xuICAgICAgcmVhZHlGb3JGZXRjaDogZmFsc2UsXG4gICAgICByZWY6IGFwcFJlZixcbiAgICB9KVxuICAgIGRlbGF5KDUwMCkudGhlbigoKSA9PiB7XG4gICAgICBzZXRTdGF0ZSh7XG4gICAgICAgIGNoZWNrRm9yRWRpdEJyYW5jaDogY2hlY2tGb3JFZGl0QnJhbmNoICsgMSwgLy8gdHJpZ2dlciByZWNoZWNrIG9mIHVzZXIgYnJhbmNoIHdoaWNoIHdpbGwgc3dpdGNoIHRoZSBicmFuY2ggYmFjayB0byBtYXN0ZXJcbiAgICAgICAgcmVhZHlGb3JGZXRjaDogZmFsc2UsXG4gICAgICB9KVxuICAgIH0pXG4gIH1cblxuICBjb25zdCB7IGlzTG9hZGluZzogaXNNZXJnZUxvYWRpbmcsIGNhbGxNZXJnZVVzZXJCcmFuY2ggfSA9IHVzZU1hc3Rlck1lcmdlUHJvcHMoe1xuICAgIGlzU2F2aW5nOiBzdGFydFNhdmUsXG4gICAgdXNlQnJhbmNoTWVyZ2VyOiBfdXNlQnJhbmNoTWVyZ2VyLFxuICAgIG9uTWVyZ2UsXG4gIH0pXG5cbiAgLy8gU2luY2Ugb3JpZ2luYWwgdGV4dCAoR3JlZWsvSGVicmV3KSBzaG91bGQgbm90IGJlIGVkaXRlZCwgZG8gbm90IGluY2x1ZGVcbiAgLy8gdGhlbSBpbiBtZXJnZSBzdGF0ZSBzaW5jZSB1c2VyIHdpbGwgbm90IG1lcmdlL3B1c2ggY2hhbmdlcy5cbiAgUmVhY3QudXNlRWZmZWN0KCgpID0+IHtcbiAgICBpZiAoY2FyZFJlc291cmNlSWQgJiYgIXVzaW5nT3JpZ2luYWxCaWJsZSkge1xuICAgICAgdXBkYXRlTWVyZ2VTdGF0ZSAmJiB1cGRhdGVNZXJnZVN0YXRlKFxuICAgICAgICBjYXJkUmVzb3VyY2VJZCxcbiAgICAgICAgc2NyaXB0dXJlQ29uZmlnLnRpdGxlLFxuICAgICAgICBtZXJnZUZyb21NYXN0ZXIsXG4gICAgICAgIG1lcmdlVG9NYXN0ZXIsXG4gICAgICAgIGNhbGxVcGRhdGVVc2VyQnJhbmNoLFxuICAgICAgICBjYWxsTWVyZ2VVc2VyQnJhbmNoLFxuICAgICAgKVxuICAgIH1cbiAgfSxbY2FyZFJlc291cmNlSWQsIHNjcmlwdHVyZUNvbmZpZy50aXRsZSwgbWVyZ2VGcm9tTWFzdGVyLCBtZXJnZVRvTWFzdGVyXSlcblxuICBSZWFjdC51c2VFZmZlY3QoKCkgPT4ge1xuICAgIGlmIChpc1VwZGF0ZUxvYWRpbmcpIHtcbiAgICAgIHNldENhcmRzTG9hZGluZ1VwZGF0ZT8uKHByZXZDYXJkc0xvYWRpbmcgPT4gWy4uLnByZXZDYXJkc0xvYWRpbmcsIGNhcmRSZXNvdXJjZUlkXSlcbiAgICB9IGVsc2Uge1xuICAgICAgc2V0Q2FyZHNMb2FkaW5nVXBkYXRlPy4ocHJldkNhcmRzTG9hZGluZyA9PiBwcmV2Q2FyZHNMb2FkaW5nLmZpbHRlcihjYXJkSWQgPT4gY2FyZElkICE9PSBjYXJkUmVzb3VyY2VJZCkpXG4gICAgfVxuICB9LCBbaXNVcGRhdGVMb2FkaW5nXSlcblxuICBSZWFjdC51c2VFZmZlY3QoKCkgPT4ge1xuICAgIGlmIChpc01lcmdlTG9hZGluZykge1xuICAgICAgc2V0Q2FyZHNMb2FkaW5nTWVyZ2U/LihwcmV2Q2FyZHNMb2FkaW5nID0+IFsuLi5wcmV2Q2FyZHNMb2FkaW5nLCBjYXJkUmVzb3VyY2VJZF0pXG4gICAgfSBlbHNlIHtcbiAgICAgIHNldENhcmRzTG9hZGluZ01lcmdlPy4ocHJldkNhcmRzTG9hZGluZyA9PiBwcmV2Q2FyZHNMb2FkaW5nLmZpbHRlcihjYXJkSWQgPT4gY2FyZElkICE9PSBjYXJkUmVzb3VyY2VJZCkpXG4gICAgfVxuICB9LCBbaXNNZXJnZUxvYWRpbmddKVxuXG4gIGNvbnN0IHdvcmtpbmdSZWYgPSBjYW5Vc2VFZGl0QnJhbmNoID8gd29ya2luZ1Jlc291cmNlQnJhbmNoIDogYXBwUmVmXG4gIGxldCBzY3JpcHR1cmVUaXRsZVxuXG4gIGlmICghY2FuVXNlRWRpdEJyYW5jaCAmJiAhcmVhZHlGb3JGZXRjaCkgeyAvLyBpZiBiaWJsZSBub3QgZWxpZ2libGUgZm9yIHVzZXIgYnJhbmNoLCBtYWtlIHN1cmUgaXQncyByZWFkeVxuICAgIHNldFN0YXRlKHsgcmVhZHlGb3JGZXRjaDogdHJ1ZSB9KVxuICB9XG5cbiAgUmVhY3QudXNlRWZmZWN0KCgpID0+IHtcbiAgICBjb25zb2xlLmxvZyhgU2NyaXB0dXJlQ2FyZCBib29rIGNoYW5nZWRgLCB7IGJvb2tJZCwgb3duZXIsIGxhbmd1YWdlSWQsIHJlc291cmNlSWQgfSlcblxuICAgIGlmIChjYW5Vc2VFZGl0QnJhbmNoKSB7IC8vIGlmIGJpYmxlIGVsaWdpYmxlIGZvciB1c2VyIGJyYW5jaCwgcmVmcmVzaCBpdFxuICAgICAgc2V0U3RhdGUoeyByZWFkeUZvckZldGNoOiBmYWxzZSwgY2hlY2tGb3JFZGl0QnJhbmNoOiBjaGVja0ZvckVkaXRCcmFuY2ggKyAxIH0pXG4gICAgfVxuICB9LCBbYm9va0lkLCBvd25lciwgbGFuZ3VhZ2VJZCwgcmVzb3VyY2VJZF0pXG5cbiAgUmVhY3QudXNlRWZmZWN0KCgpID0+IHtcbiAgICBpZiAoIWlzRXF1YWwocmVmZXJlbmNlLCBjdXJyZW50UmVmZXJlbmNlKSkge1xuICAgICAgLy8gY29uc29sZS5sb2coYFNjcmlwdHVyZUNhcmQgcmVmZXJlbmNlIGNoYW5nZWRgLCByZWZlcmVuY2UpXG4gICAgICBzZXRTdGF0ZSh7IGN1cnJlbnRSZWZlcmVuY2U6IHJlZmVyZW5jZSwgZWRpdFZlcnNlOiBudWxsIH0pXG4gICAgfVxuICB9LCBbcmVmZXJlbmNlXSlcblxuICBSZWFjdC51c2VFZmZlY3QoKCkgPT4geyAvLyB3YWl0aW5nIGZvciBicmFuY2ggZmV0Y2ggdG8gY29tcGxldGVcbiAgICBpZiAoIXJlYWR5Rm9yRmV0Y2ggJiYgYnJhbmNoRGV0ZXJtaW5lZCApIHtcbiAgICAgIGNvbnNvbGUubG9nKGBTY3JpcHR1cmVDYXJkIGJyYW5jaERldGVybWluZWQgaXMgJHticmFuY2hEZXRlcm1pbmVkfSBhbmQgd29ya2luZ1JlZiBpcyAke3dvcmtpbmdSZWZ9YClcbiAgICAgIHNldFN0YXRlKHsgcmVhZHlGb3JGZXRjaDogdHJ1ZSwgcmVmOiB3b3JraW5nUmVmIH0pXG4gICAgfVxuICB9LCBbYnJhbmNoRGV0ZXJtaW5lZF0pXG5cbiAgUmVhY3QudXNlRWZmZWN0KCgpID0+IHsgLy8gc2VsZWN0IGNvcnJlY3Qgd29ya2luZyByZWYgLSBjb3VsZCBiZSBtYXN0ZXIsIHVzZXIgYnJhbmNoLCBvciByZWxlYXNlXG4gICAgaWYgKF91c2luZ1VzZXJCcmFuY2ggIT09IHVzaW5nVXNlckJyYW5jaCkge1xuICAgICAgc2V0U3RhdGUoeyB1c2luZ1VzZXJCcmFuY2g6IF91c2luZ1VzZXJCcmFuY2ggfSlcbiAgICB9XG4gIH0sIFtfdXNpbmdVc2VyQnJhbmNoLCB1c2luZ1VzZXJCcmFuY2hdKVxuXG4gIFJlYWN0LnVzZUVmZmVjdCgoKSA9PiB7IC8vIHVwZGF0ZSBkaXNwbGF5IHN0YXR1cyBpZiBlcnJvclxuICAgIGNvbnN0IGVycm9yID0gc2NyaXB0dXJlQ29uZmlnPy5yZXNvdXJjZVN0YXR1cz8uW0VSUk9SX1NUQVRFXVxuXG4gICAgaWYgKGVycm9yKSB7IC8vIGlmIGVycm9yIHdhcyBmb3VuZCBkbyBjYWxsYmFja1xuICAgICAgY29uc3QgcmVzb3VyY2VTdGF0dXMgPSBzY3JpcHR1cmVDb25maWc/LnJlc291cmNlU3RhdHVzXG4gICAgICBjb25zdCByZXNvdXJjZUxpbmsgPSBnZXRSZXNvdXJjZUxpbmsoc2NyaXB0dXJlQ29uZmlnKVxuICAgICAgY29uc3QgbWVzc2FnZSA9IGdldFJlc291cmNlTWVzc2FnZShyZXNvdXJjZVN0YXR1cywgc2VydmVyLCByZXNvdXJjZUxpbmssIGlzTlRfKVxuICAgICAgY29uc3QgaXNBY2Nlc3NFcnJvciA9IHJlc291cmNlU3RhdHVzW01BTklGRVNUX05PVF9MT0FERURfRVJST1JdXG4gICAgICBvblJlc291cmNlRXJyb3IgJiYgb25SZXNvdXJjZUVycm9yKG1lc3NhZ2UsIGlzQWNjZXNzRXJyb3IsIHJlc291cmNlU3RhdHVzKVxuICAgIH1cbiAgfSwgW3NjcmlwdHVyZUNvbmZpZz8ucmVzb3VyY2VTdGF0dXM/LltFUlJPUl9TVEFURV1dKVxuXG4gIGlmIChzY3JpcHR1cmVDb25maWcudGl0bGUgJiYgc2NyaXB0dXJlQ29uZmlnLnZlcnNpb24pIHtcbiAgICBzY3JpcHR1cmVUaXRsZSA9IGAke3NjcmlwdHVyZUNvbmZpZy50aXRsZX0gdiR7c2NyaXB0dXJlQ29uZmlnLnZlcnNpb259YFxuICAgIHNjcmlwdHVyZVZlcnNpb25IaXN0LnVwZGF0ZVRpdGxlKHNjcmlwdHVyZUNvbmZpZy5yZXNvdXJjZUxpbmssIHNjcmlwdHVyZVRpdGxlKVxuICB9IGVsc2Uge1xuICAgIHNjcmlwdHVyZVRpdGxlID0gYFRpdGxlIG1pc3NpbmcgZnJvbSBwcm9qZWN0IG1hbmlmZXN0YFxuICB9XG5cbiAgLyoqIER5bmFtaWNhbGx5IGNyZWF0ZXMgdGhlIHNjcmlwdHVyZSBzZWxlY3Rpb24gZHJvcGRvd24gdG8gYmUgaW5zZXJ0ZWQgaW50byBjYXJkIHNldHRpbmdzICovXG4gIGZ1bmN0aW9uIGdldFNjcmlwdHVyZVNlbGVjdG9yKCkge1xuICAgIGNvbnN0IHNjcmlwdHVyZVNlbGVjdGlvbkNvbmZpZyA9IGdldFNjcmlwdHVyZVZlcnNpb25TZXR0aW5ncyh7XG4gICAgICBsYWJlbCxcbiAgICAgIHJlc291cmNlTGluazogc2NyaXB0dXJlQ29uZmlnLnJlc291cmNlTGluayxcbiAgICAgIHNldFNjcmlwdHVyZSxcbiAgICAgIHNjcmlwdHVyZVZlcnNpb25IaXN0LFxuICAgIH0pXG5cbiAgICByZXR1cm4gPFNjcmlwdHVyZVNlbGVjdG9yIHsuLi5zY3JpcHR1cmVTZWxlY3Rpb25Db25maWd9IHN0eWxlPXtzdHlsZX0gZXJyb3JNZXNzYWdlPXt1cmxFcnJvcn0gLz5cbiAgfVxuXG4gIC8qKlxuICAgKiBzZXQgZWRpdCBzdGF0ZSBmb3Igc3BlY2lmaWMgdmVyc2VcbiAgICogQHBhcmFtIHtzdHJpbmd9IHZlcnNlUmVmIC0gcmVmZXJlbmNlIG9mIHZlcnNlIGJlaW5nIGVkaXRlZCBvciBmaW5pc2hlZCBlZGl0XG4gICAqIEBwYXJhbSB7Ym9vbGVhbn0gZWRpdGluZyAtIHRydWUgd2hlbiBlZGl0aW5nXG4gICAqL1xuICBmdW5jdGlvbiBzZXRFZGl0VmVyc2UodmVyc2VSZWYsIGVkaXRpbmcpIHtcbiAgICBpZiAoZWRpdGluZyAmJiAodmVyc2VSZWYgIT09IGVkaXRWZXJzZSkpIHsgLy8gY2hlY2sgaWYgd2UgbmVlZCB0byBzZXQgZmxhZyB0aGF0IHdlIGFyZSBlZGl0aW5nIHRoaXMgdmVyc2VcbiAgICAgIHNldFN0YXRlKHsgZWRpdFZlcnNlOiB2ZXJzZVJlZiB9KVxuICAgIH0gZWxzZSBpZiAoIWVkaXRpbmcgJiYgKHZlcnNlUmVmID09PSBlZGl0VmVyc2UpKSB7IC8vIGNsZWFyIGVkaXQgZmxhZyBpZiBpdCBpcyBmb3IgY3VycmVudCBlZGl0IHZlcnNlXG4gICAgICBzZXRTdGF0ZSh7IGVkaXRWZXJzZTogbnVsbCB9KVxuICAgIH1cbiAgfVxuXG4gIGNvbnN0IGRpc2FibGVDaGFuZ2VCdXR0b25zID0gISFlZGl0VmVyc2UgLy8gd2UgZG9uJ3Qgd2FudCB0byBhbGxvdyBjbGlja2luZyBvbiBjaGFuZ2UgYnV0dG9ucyB3aGlsZSBlZGl0aW5nXG5cbiAgZnVuY3Rpb24gb25NZW51Q2xvc2UoKSB7XG4gICAgLy8gY29uc29sZS5sb2coYG9uTWVudUNsb3NlKClgKVxuICAgIHNldFN0YXRlKHsgdXJsRXJyb3I6IG51bGwgfSlcbiAgfVxuXG4gIC8vIEB0cy1pZ25vcmVcbiAgY29uc3QgbGFuZ3VhZ2VJZF8gPSBzY3JpcHR1cmVDb25maWc/LnJlc291cmNlPy5sYW5ndWFnZUlkXG4gIGNvbnN0IGxhbmd1YWdlID0gZ2V0TGFuZ3VhZ2UoeyBsYW5ndWFnZUlkOiBsYW5ndWFnZUlkXyB9KVxuICBjb25zdCBkaXJlY3Rpb24gPSAobGFuZ3VhZ2U/LmRpcmVjdGlvbikgfHwgJ2x0cidcbiAgY29uc3QgX3JlZmVyZW5jZSA9IGN1cnJlbnRSZWZlcmVuY2UgfHwgcmVmZXJlbmNlXG5cbiAgY29uc3QgaXNIZWJyZXcgPSAobGFuZ3VhZ2VJZF8gPT09ICdoYm8nKVxuICBjb25zdCBmb250RmFjdG9yID0gaXNIZWJyZXcgPyAxLjQgOiAxIC8vIHdlIGF1dG9tYXRpY2FsbHkgc2NhbGUgdXAgZm9udCBzaXplIGZvciBIZWJyZXdcbiAgY29uc3Qgc2NhbGVkRm9udFNpemUgPSBmb250U2l6ZSAqIGZvbnRGYWN0b3JcblxuICBjb25zdCBpdGVtcyA9IG51bGxcbiAgY29uc3Qge1xuICAgIHN0YXRlOiB7XG4gICAgICBoZWFkZXJzLCBmaWx0ZXJzLCBpdGVtSW5kZXgsIG1hcmtkb3duVmlldyxcbiAgICB9LFxuICAgIGFjdGlvbnM6IHtcbiAgICAgIHNldEZpbHRlcnMsIHNldEl0ZW1JbmRleCwgc2V0TWFya2Rvd25WaWV3LFxuICAgIH0sXG4gIH0gPSB1c2VDYXJkU3RhdGUoeyBpdGVtcyB9KVxuXG4gIGNvbnN0IHJlZlN0eWxlID0gUmVhY3QudXNlTWVtbygoKSA9PiAoe1xuICAgIGZvbnRGYW1pbHk6ICdOb3RvIFNhbnMnLFxuICAgIGZvbnRTaXplOiBgJHtNYXRoLnJvdW5kKHNjYWxlZEZvbnRTaXplICogMC45KX0lYCxcbiAgfSksIFtzY2FsZWRGb250U2l6ZV0pXG5cbiAgY29uc3QgY29udGVudFN0eWxlID0gUmVhY3QudXNlTWVtbygoKSA9PiAoe1xuICAgIGZvbnRGYW1pbHk6ICdOb3RvIFNhbnMnLFxuICAgIGZvbnRTaXplOiBgJHtzY2FsZWRGb250U2l6ZX0lYCxcbiAgICAuLi4oaXNIZWJyZXcgPyB7bGluZUhlaWdodDogJzIuMGVtJ30gOiB7fSlcbiAgfSksIFtzY2FsZWRGb250U2l6ZV0pXG5cbiAgY29uc3Qgc2NyaXB0dXJlTGFiZWwgPSA8VGl0bGU+e3NjcmlwdHVyZVRpdGxlfTwvVGl0bGU+XG4gIGxldCBkaXNhYmxlV29yZFBvcG92ZXJfID0gZGlzYWJsZVdvcmRQb3BvdmVyXG5cbiAgaWYgKGRpc2FibGVXb3JkUG9wb3ZlciA9PT0gdW5kZWZpbmVkKSB7IC8vIGlmIG5vdCBzcGVjaWZpZWQsIHRoZW4gZGV0ZXJtaW5lIGlmIG9yaWdpbmFsIGxhbmd1YWdlIHJlc291cmNlXG4gICAgZGlzYWJsZVdvcmRQb3BvdmVyXyA9ICF1c2luZ09yaWdpbmFsQmlibGVcbiAgfVxuXG4gIGNvbnN0IGVuYWJsZUVkaXQgPSAhdXNpbmdPcmlnaW5hbEJpYmxlXG4gIGNvbnN0IGVuYWJsZUFsaWdubWVudCA9ICF1c2luZ09yaWdpbmFsQmlibGVcbiAgY29uc3Qgb3JpZ2luYWxSZXBvVXJsID0gaXNOZXdUZXN0YW1lbnQgPyBncmVla1JlcG9VcmwgOiBoZWJyZXdSZXBvVXJsXG4gIGNvbnN0IHNjcmlwdHVyZUFsaWdubWVudEVkaXRDb25maWcgPSB7XG4gICAgYXV0aGVudGljYXRpb246IGNhblVzZUVkaXRCcmFuY2ggPyBhdXRoZW50aWNhdGlvbiA6IG51bGwsXG4gICAgYm9va0luZGV4LFxuICAgIGN1cnJlbnRWZXJzZVJlZjogX3JlZmVyZW5jZSxcbiAgICBlbmFibGVFZGl0LFxuICAgIGVuYWJsZUFsaWdubWVudCxcbiAgICBodHRwQ29uZmlnLFxuICAgIC8vIEB0cy1pZ25vcmVcbiAgICBpc05ld1Rlc3RhbWVudCxcbiAgICBsb2dnZWRJblVzZXI6IGNhblVzZUVkaXRCcmFuY2ggPyBsb2dnZWRJblVzZXIgOiBudWxsLFxuICAgIG9yaWdpbmFsTGFuZ3VhZ2VPd25lcixcbiAgICAvLyBAdHMtaWdub3JlXG4gICAgb3JpZ2luYWxSZXBvVXJsLFxuICAgIHNjcmlwdHVyZUNvbmZpZyxcbiAgICBzY3JpcHR1cmVTZXR0aW5ncyxcbiAgICBzdGFydEVkaXRCcmFuY2gsXG4gICAgc2V0U2F2ZWRDaGFuZ2VzOiBfc2V0U2F2ZWRDaGFuZ2VzLFxuICAgIHNvdXJjZUxhbmd1YWdlOiBpc05UXyA/IE5UX09SSUdfTEFORyA6IE9UX09SSUdfTEFORyxcbiAgICB0YXJnZXRMYW5ndWFnZTogbGFuZ3VhZ2UsXG4gICAgdGl0bGU6IHNjcmlwdHVyZVRpdGxlLFxuICAgIHdvcmtpbmdSZXNvdXJjZUJyYW5jaDogcmVmLFxuICB9XG5cbiAgLyoqXG4gICAqIHRoaXMgZ2V0cyBjYWxsZWQgd2hlbmV2ZXIgYSBzY3JpcHR1cmUgcGFuZSBoYXMgYSBjaGFuZ2UgaW4gc2F2ZSBzdGF0ZVxuICAgKiBAcGFyYW0ge251bWJlcn0gY3VycmVudEluZGV4XG4gICAqIEBwYXJhbSB7Ym9vbGVhbn0gc2F2ZWRcbiAgICogQHBhcmFtIHtmdW5jdGlvbn0gZ2V0Q2hhbmdlcyAtIHdpbGwgYmUgY2FsbGVkIHdoZW5ldmVyIHVzZXIgY2xpY2tzIHNhdmUgYnV0dG9uXG4gICAqIEBwYXJhbSB7ZnVuY3Rpb259IGNsZWFyQ2hhbmdlcyAtIHdpbGwgYmUgY2FsbGVkIHdoZW5ldmVyIHNhdmUgaGFzIGNvbXBsZXRlZFxuICAgKiBAcGFyYW0ge29iamVjdH0gc3RhdGUgLSBjdXJyZW50IHN0YXRlIG9mIHdvcmQgYWxpZ25tZW50L2VkaXRcbiAgICovXG4gIGZ1bmN0aW9uIF9zZXRTYXZlZENoYW5nZXMoY3VycmVudEluZGV4LCBzYXZlZCwgeyBnZXRDaGFuZ2VzID0gbnVsbCwgY2xlYXJDaGFuZ2VzID0gbnVsbCwgc3RhdGUgPSBudWxsIH0pIHtcbiAgICBjb25zdCBfdW5zYXZlZENoYW5nZXNMaXN0ID0geyAuLi51bnNhdmVkQ2hhbmdlc0xpc3QgfVxuXG4gICAgaWYgKHNhdmVkKSB7XG4gICAgICBpZiAoX3Vuc2F2ZWRDaGFuZ2VzTGlzdC5oYXNPd25Qcm9wZXJ0eShjdXJyZW50SW5kZXgpKSB7XG4gICAgICAgIGRlbGV0ZSBfdW5zYXZlZENoYW5nZXNMaXN0W2N1cnJlbnRJbmRleF1cbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgX3Vuc2F2ZWRDaGFuZ2VzTGlzdFtjdXJyZW50SW5kZXhdID0geyBnZXRDaGFuZ2VzLCBjbGVhckNoYW5nZXMsIHN0YXRlIH0gLy8gdXBkYXRlIHdpdGggbGF0ZXN0XG4gICAgfVxuXG4gICAgY29uc3QgX2hhdmVVbnNhdmVkQ2hhbmdlcyA9ICEhT2JqZWN0LmtleXMoX3Vuc2F2ZWRDaGFuZ2VzTGlzdCkubGVuZ3RoXG5cbiAgICBpZiAoaGF2ZVVuc2F2ZWRDaGFuZ2VzICE9IF9oYXZlVW5zYXZlZENoYW5nZXMpIHtcbiAgICAgIHNldFNhdmVkQ2hhbmdlcyAmJiBzZXRTYXZlZENoYW5nZXMocmVzb3VyY2VJZCwgIV9oYXZlVW5zYXZlZENoYW5nZXMpXG4gICAgICBzZXRTdGF0ZSh7IGhhdmVVbnNhdmVkQ2hhbmdlczogX2hhdmVVbnNhdmVkQ2hhbmdlcyB9KVxuICAgIH1cblxuICAgIGlmICghaXNFcXVhbChfdW5zYXZlZENoYW5nZXNMaXN0LCB1bnNhdmVkQ2hhbmdlc0xpc3QpKSB7XG4gICAgICBzZXRTdGF0ZSh7IHVuc2F2ZWRDaGFuZ2VzTGlzdDogX3Vuc2F2ZWRDaGFuZ2VzTGlzdCB9KVxuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBzZWFyY2ggY2hhcHRlciBvciB2ZXJzZSBjaHVuayB0byBsaW5lIHRoYXQgc3RhcnRzIHdpdGggZmluZEl0ZW1cbiAgICogQHBhcmFtIHtudW1iZXJ8c3RyaW5nfSBmaW5kSXRlbVxuICAgKiBAcGFyYW0ge3N0cmluZ1tdfSBjaHVua3NcbiAgICovXG4gIGZ1bmN0aW9uIGZpbmRSZWZJbkFycmF5KGZpbmRJdGVtLCBjaHVua3MpIHtcbiAgICBjb25zdCByZWZfID0gZmluZEl0ZW0gKyAnJ1xuICAgIGNvbnN0IHJlZkxlbiA9IHJlZl8ubGVuZ3RoXG4gICAgY29uc3QgaW5kZXggPSBjaHVua3MuZmluZEluZGV4KChjaHVuaywgaWR4KSA9PiB7XG4gICAgICBpZiAoaWR4ID4gMCkge1xuICAgICAgICBpZiAoY2h1bmsuc3Vic3RyaW5nKDAsIHJlZkxlbikgPT09IHJlZl8pIHtcbiAgICAgICAgICBjb25zdCBuZXh0Q2hhciA9IGNodW5rW3JlZkxlbl1cblxuICAgICAgICAgIGlmICgobmV4dENoYXIgPiAnOScpIHx8IChuZXh0Q2hhciA8ICcwJykpIHtcbiAgICAgICAgICAgIHJldHVybiB0cnVlXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgICByZXR1cm4gZmFsc2VcbiAgICB9KVxuICAgIHJldHVybiBpbmRleFxuICB9XG5cbiAgZnVuY3Rpb24gZ2V0Qm9va05hbWUoKSB7XG4gICAgLy8gQHRzLWlnbm9yZVxuICAgIGNvbnN0IGJvb2tDYXBzID0gc2NyaXB0dXJlQ29uZmlnPy5yZWZlcmVuY2U/LmJvb2tJZCA/IHNjcmlwdHVyZUNvbmZpZy5yZWZlcmVuY2UuYm9va0lkLnRvVXBwZXJDYXNlKCkgOiAnJ1xuICAgIHJldHVybiBgJHtib29rSW5kZXh9LSR7Ym9va0NhcHN9LnVzZm1gXG4gIH1cblxuICBjb25zdCBmaWxlcGF0aCA9IGdldEJvb2tOYW1lKClcbiAgY29uc3Qgc2hhID0gZmV0Y2hlZFJlc291cmNlPy5zaGFcblxuICAvLyBrZWVwIHRyYWNrIG9mIHZlcnNlIGVkaXQgc3RhdGVcbiAgY29uc3Qge1xuICAgIGVycm9yOiBzYXZlRXJyb3IsXG4gICAgaXNFcnJvcjogaXNTYXZlRXJyb3IsXG4gICAgb25TYXZlRWRpdCxcbiAgICBvblNhdmVFZGl0UGF0Y2gsXG4gIH0gPSB1c2VFZGl0KHtcbiAgICBzaGEsXG4gICAgb3duZXIsXG4gICAgY29udGVudDogc2F2ZUNvbnRlbnQsXG4gICAgY29uZmlnOiB7XG4gICAgICBjYWNoZTogeyBtYXhBZ2U6IDAgfSxcbiAgICAgIC4uLmF1dGhlbnRpY2F0aW9uPy5jb25maWcsXG4gICAgICBkb250Q3JlYXRlQnJhbmNoOiB0cnVlLFxuICAgICAgdG9rZW46IGF1dGhlbnRpY2F0aW9uPy50b2tlbixcbiAgICAgIC8vIEB0cy1pZ25vcmVcbiAgICAgIHRpbWVvdXQ6IGh0dHBDb25maWc/LnNlcnZlclRpbWVPdXQgfHwgaHR0cENvbmZpZz8udGltZW91dCB8fCAxMDAwMCxcbiAgICAgIHNlcnZlcixcbiAgICB9LFxuICAgIGF1dGhvcjogbG9nZ2VkSW5Vc2VyLFxuICAgIGVtYWlsOiBhdXRoZW50aWNhdGlvbj8udXNlcj8uZW1haWwsXG4gICAgdG9rZW46IGF1dGhlbnRpY2F0aW9uPy50b2tlbixcbiAgICBicmFuY2g6IHdvcmtpbmdSZXNvdXJjZUJyYW5jaCxcbiAgICBmaWxlcGF0aCxcbiAgICByZXBvLFxuICB9KVxuXG4gIFJlYWN0LnVzZUVmZmVjdCgoKSA9PiB7IC8vIHdoZW4gd2UgZ2V0IGEgc2F2ZSBzYXZlRXJyb3JcbiAgICBpZiAoc2F2ZUVycm9yICYmIGlzU2F2ZUVycm9yICYmICFzdGFydFNhdmUpIHsgLy8gaWYgZXJyb3IgdGhlbiBzaG93IGFmdGVyIHNhdmUgY29tcGxldGVzLCBzaW5jZSB3ZSBtYXkgcmV0cnlcbiAgICAgIGNvbnNvbGUubG9nKGBzYXZlIGVycm9yYCwgc2F2ZUVycm9yKVxuICAgICAgb25SZXNvdXJjZUVycm9yICYmIG9uUmVzb3VyY2VFcnJvcihudWxsLCBmYWxzZSwgbnVsbCwgYEVycm9yIHNhdmluZyAke2xhbmd1YWdlSWRffV8ke3Jlc291cmNlSWR9ICR7c2F2ZUVycm9yfWAsIHRydWUpXG4gICAgfVxuICB9LCBbc2F2ZUVycm9yLCBpc1NhdmVFcnJvciwgc3RhcnRTYXZlXSlcblxuICBSZWFjdC51c2VFZmZlY3QoKCkgPT4geyAvLyB3aGVuIHN0YXJ0U2F2ZSBnb2VzIHRydWUsIHNhdmUgZWRpdHMgdG8gdXNlciBicmFuY2ggYW5kIHRoZW4gY2xlYXIgc3RhcnRTYXZlXG4gICAgZnVuY3Rpb24gX3NhdmVTdWNjZXNmdWwoKSB7XG4gICAgICBjb25zb2xlLmxvZyhgc2F2ZUNoYW5nZXNUb0Nsb3VkKCkgLSBzYXZlIHNjcmlwdHVyZSBlZGl0cyBzdWNjZXNzYClcbiAgICAgIHNldENhcmRzU2F2aW5nKHByZXZDYXJkc1NhdmluZyA9PiBwcmV2Q2FyZHNTYXZpbmcuZmlsdGVyKGNhcmRJZCA9PiBjYXJkSWQgIT09IGNhcmRSZXNvdXJjZUlkKSlcbiAgICAgIHNldFN0YXRlKHtcbiAgICAgICAgc3RhcnRTYXZlOiBmYWxzZSxcbiAgICAgIH0pXG5cbiAgICAgIGNvbnN0IHVuc2F2ZWRDYXJkSW5kaWNlcyA9IE9iamVjdC5rZXlzKHVuc2F2ZWRDaGFuZ2VzTGlzdClcblxuICAgICAgaWYgKHVuc2F2ZWRDYXJkSW5kaWNlcz8ubGVuZ3RoKSB7XG4gICAgICAgIGZvciAoY29uc3QgY2FyZEluZGV4IG9mIHVuc2F2ZWRDYXJkSW5kaWNlcykge1xuICAgICAgICAgIGNvbnN0IHtjbGVhckNoYW5nZXN9ID0gdW5zYXZlZENoYW5nZXNMaXN0W2NhcmRJbmRleF1cbiAgICAgICAgICBjbGVhckNoYW5nZXMgJiYgY2xlYXJDaGFuZ2VzKClcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICBjb25zb2xlLmluZm8oJ3NhdmVDaGFuZ2VzVG9DbG91ZCgpIC0gUmVsb2FkaW5nIHJlc291cmNlJylcbiAgICAgIHNldFN0YXRlKHtcbiAgICAgICAgc3RhcnRTYXZlOiBmYWxzZSxcbiAgICAgICAgcmVhZHlGb3JGZXRjaDogdHJ1ZSxcbiAgICAgICAgc2F2ZUZ1bGxCaWJsZUNvbnRlbnQ6IG51bGwsXG4gICAgICAgIHNhdmVDb250ZW50OiBudWxsLFxuICAgICAgICByZWY6IHVzZXJFZGl0QnJhbmNoTmFtZSxcbiAgICAgIH0pXG4gICAgICBkZWxheSgxMDApLnRoZW4oKCkgPT4ge1xuICAgICAgICBzZXRDYXJkc1NhdmluZyhwcmV2Q2FyZHNTYXZpbmcgPT4gcHJldkNhcmRzU2F2aW5nLmZpbHRlcihjYXJkSWQgPT4gY2FyZElkICE9PSBjYXJkUmVzb3VyY2VJZCkpXG4gICAgICAgIHNjcmlwdHVyZUNvbmZpZz8ucmVsb2FkUmVzb3VyY2Uoc2hhLCB1c2VyRWRpdEJyYW5jaE5hbWUpXG4gICAgICB9KVxuICAgICAgcmV0dXJuIHRydWVcbiAgICB9XG5cbiAgICBmdW5jdGlvbiBsb2dDaGFuZ2VkKGNvbW1lbnQsIGluaXRpYWwsIGZpbmFsLCBkaWZmLCBzaGEpIHtcbiAgICAgIGNvbnNvbGUuZXJyb3IoYCR7Y29tbWVudH0gLSBzaGE6YCwgc2hhKVxuICAgICAgY29uc29sZS5lcnJvcihgaW5pdGlhbGAsIGluaXRpYWwpXG4gICAgICBjb25zb2xlLmVycm9yKGBmaW5hbGAsIGZpbmFsKVxuICAgICAgY29uc29sZS5lcnJvcihgZGlmZmAsIGRpZmYpXG4gICAgfVxuXG4gICAgY29uc3QgX3NhdmVFZGl0ID0gYXN5bmMgKCkgPT4geyAvLyBiZWdpbiB1cGxvYWRpbmcgbmV3IFVTRk1cbiAgICAgIGNvbnNvbGUuaW5mbyhgc2F2ZUNoYW5nZXNUb0Nsb3VkKCkgLSBVc2luZyBzaGE6ICR7c2hhfWApXG4gICAgICBsZXQgdXBsb2FkRnVuY3Rpb24gPSBvblNhdmVFZGl0XG4gICAgICBpZiAoc2F2ZURpZmZQYXRjaCkge1xuICAgICAgICB1cGxvYWRGdW5jdGlvbiA9IG9uU2F2ZUVkaXRQYXRjaCAvLyBpZiB3ZSBhcmUgc2VuZGluZyB1cCBhIGRpZmZwYXRjaCwgd2Ugd2lsbCB1c2UgdGhpcyBtZXRob2RcbiAgICAgIH1cbiAgICAgIGxldCBzdWNjZXNzID0gYXdhaXQgdXBsb2FkRnVuY3Rpb24odXNlckVkaXRCcmFuY2hOYW1lKS8vIHB1c2ggY2hhbmdlIHRvIHNlcnZlclxuICAgICAgbGV0IGVycm9yID0gc3VjY2VzcyA/IG51bGwgOiAnc2F2aW5nIGNoYW5nZWQgc2NyaXB0dXJlIGZhaWxlZCdcblxuICAgICAgaWYgKCFzdWNjZXNzKSB7IC8vIGlmIHNhdmUgZmFpbGVkLCBhdHRlbXB0IGEgcmV0cnlcbiAgICAgICAgLy8gbG9nQ2hhbmdlZCgnc2F2ZUNoYW5nZXNUb0Nsb3VkKCkgLSBzYXZpbmcgY2hhbmdlZCBzY3JpcHR1cmUgZmFpbGVkLCBzZW50Jywgc2F2ZUZ1bGxCaWJsZUNvbnRlbnQ/LmluaXRpYWwsIHNhdmVGdWxsQmlibGVDb250ZW50Py5uZXcsIHNhdmVDb250ZW50LCBzaGEpXG4gICAgICAgIGNvbnNvbGUuZXJyb3IoYHNhdmVDaGFuZ2VzVG9DbG91ZCgpIC0gc2F2aW5nIGNoYW5nZWQgc2NyaXB0dXJlIGZhaWxlZCwgcmV0cnlpbmcgLSBjb250ZXh0IGxpbmVzIGFyZSAke2NvbnRleHRMaW5lc30sIGRpZmY6XFxuYCwgc2F2ZUNvbnRlbnQpXG4gICAgICAgIGF3YWl0IGRlbGF5KDUwMCkgLy8gc2luY2Ugd2UgaGFkIGFuIGVycm9yLCB3YWl0IGZvciBkYXRhIHRvIHVwZGF0ZSBvbiBzZXJ2ZXIgYmVmb3JlIGdldHRpbmcgdGhlIGxhdGVzdFxuICAgICAgICAvLyBAdHMtaWdub3JlXG4gICAgICAgIC8vIGZldGNoIHRoZSBsYXRlc3QgYm9vayBjb250ZW50LCBzbyB3ZSBjYW4gdGVsbCBpZiBsYXRlc3QgY2hhbmdlcyB3ZXJlIHNhdmVkIGFuZCBoYXZlIHRoZSBsYXRlc3QgZmlsZSBzaGFcbiAgICAgICAgY29uc3QgcmVzdWx0cyA9IGF3YWl0IGZldGNoQmlibGVCb29rKHNlcnZlciwgaHR0cENvbmZpZywgc2NyaXB0dXJlQ29uZmlnPy5yZXNvdXJjZSwgc2NyaXB0dXJlQ29uZmlnPy5yZWZlcmVuY2UpXG4gICAgICAgIGVycm9yID0gcmVzdWx0cz8uZXJyb3JcbiAgICAgICAgbGV0IF9zYXZlQ29udGVudCA9IHNhdmVDb250ZW50XG4gICAgICAgIGxldCBmaWxlU2hhID0gbnVsbFxuICAgICAgICBjb25zdCBzYXZlZEJpYmxlVXNmbSA9IHJlc3VsdHM/LmJpYmxlVXNmbVxuICAgICAgICBjb25zdCBlZGl0ZWRCaWJsZVVzZm0gPSBzYXZlRnVsbEJpYmxlQ29udGVudD8ubmV3XG4gICAgICAgIGxldCB1cFRvRGF0ZSA9IHNhdmVkQmlibGVVc2ZtID09PSBlZGl0ZWRCaWJsZVVzZm0gLy8gY2hlY2sgaWYgbmV3IGJpYmxlIGNvbnRlbnQgZGlmZmVycyBmcm9tIGxhdGVzdCBvbiByZXBvXG5cbiAgICAgICAgaWYgKCFlcnJvcikge1xuICAgICAgICAgIGlmICh1cFRvRGF0ZSkgeyAvLyBpZiB0aGUgZGF0YSB3ZSBhcmUgdHJ5aW5nIHRvIHNhdmUgbWF0Y2hlcyB3aGF0IGlzIG5vdyBvbiB0aGUgc2VydmVyIHRoZXJlIGlzIG5vdGhpbmcgdG8gZG9cbiAgICAgICAgICAgIGNvbnNvbGUubG9nKCdzYXZlQ2hhbmdlc1RvQ2xvdWQoKSAtIGRhdGEgd2FzIGNvcnJlY3RseSB1cGxvYWRlZCwgc28gbm90aGluZyBtb3JlIHRvIGRvJylcbiAgICAgICAgICAgIHN1Y2Nlc3MgPSB0cnVlXG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGxldCBuZXdDb250ZXh0TGluZXMgPSBjb250ZXh0TGluZXMgKyAxXG4gICAgICAgICAgICBpZiAoc2F2ZURpZmZQYXRjaCkge1xuICAgICAgICAgICAgICBhd2FpdCBkZWxheSgxMDApIC8vIGFsbG93IFVJIHRvIHVwZGF0ZSBiZWZvcmUgcnVubmluZyBjb21wdXRhdGlvbmFsbHkgZXhwZW5zaXZlIGZ1bmN0aW9uXG4gICAgICAgICAgICAgIC8vIHJlZ2VuZXJhdGUgdGhlIHBhdGNoIGFnYWluc3QgdGhlIGxhdGVzdCBjb250ZW50IGFuZCBhZGQgbW9yZSBsaW5lcyBvZiBjb250ZXh0XG4gICAgICAgICAgICAgIC8vIFRSSUNLWSAtIHdlIGhhdmUgbm90aWNlZCB0aGF0IERDUyB3aWxsIGZhaWwgdGhlIHBhdGNoIHNvbWV0aW1lcywgYnV0IGlmIHdlIGluY3JlYXNlIHRoZSBjb250ZXh0IGxpbmUgY291bnQgaXQgd2lsbCBzdWNjZWVkLCBzbyB3ZSBhcmUgaW5jcmVhc2luZyB0aGUgY29udGV4dCBsaW5lIGNvdW50XG4gICAgICAgICAgICAgIGNvbnNvbGUubG9nKGBzYXZlQ2hhbmdlc1RvQ2xvdWQoKSAtIGNvbnRleHQgbGluZXMgYXJlIG5vdyAke25ld0NvbnRleHRMaW5lc31gKVxuICAgICAgICAgICAgICBjb25zdCBkaWZmUGF0Y2ggPSBnZXRQYXRjaChzYXZlRnVsbEJpYmxlQ29udGVudD8uZmlsZW5hbWUsIHNhdmVkQmlibGVVc2ZtLCBlZGl0ZWRCaWJsZVVzZm0sIGZhbHNlLCBuZXdDb250ZXh0TGluZXMpXG4gICAgICAgICAgICAgIF9zYXZlQ29udGVudCA9IGRpZmZQYXRjaFxuICAgICAgICAgICAgICBmaWxlU2hhID0gcmVzdWx0cz8uc2hhXG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHN1Y2Nlc3MgPSBhd2FpdCB1cGxvYWRGdW5jdGlvbih1c2VyRWRpdEJyYW5jaE5hbWUsIF9zYXZlQ29udGVudCwgZmlsZVNoYSkgLy8gcHVzaCBjaGFuZ2UgdG8gc2VydmVyXG4gICAgICAgICAgICBpZiAoIXN1Y2Nlc3MpIHtcbiAgICAgICAgICAgICAgbG9nQ2hhbmdlZCgnc2F2ZUNoYW5nZXNUb0Nsb3VkKCkgLSBzYXZpbmcgY2hhbmdlZCBzY3JpcHR1cmUgZmFpbGVkIG9uIHNlY29uZCBhdHRlbXB0LCBzZW50Jywgc2F2ZWRCaWJsZVVzZm0sIGVkaXRlZEJpYmxlVXNmbSwgX3NhdmVDb250ZW50LCBmaWxlU2hhKVxuICAgICAgICAgICAgICBlcnJvciA9ICdzYXZpbmcgY2hhbmdlZCBzY3JpcHR1cmUgZmFpbGVkIG9uIHNlY29uZCBhdHRlbXB0J1xuICAgICAgICAgICAgICBuZXdDb250ZXh0TGluZXMrKyAvLyBpZiBmYWlsZWQgaW5jcmVhc2UgdGhlIGNvdW50IGZvciBuZXh0IGF0dGVtcHRcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgIGNvbnNvbGUubG9nKCdzYXZlQ2hhbmdlc1RvQ2xvdWQoKSAtIHNhdmUgc3VjY2Vzc2Z1bCBvbiBzZWNvbmQgYXR0ZW1wdCcpXG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAobmV3Q29udGV4dExpbmVzID4gMTApIHtcbiAgICAgICAgICAgICAgbmV3Q29udGV4dExpbmVzID0gNFxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgc2V0U3RhdGUoe2NvbnRleHRMaW5lczogbmV3Q29udGV4dExpbmVzfSlcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGNvbnNvbGUubG9nKGBzYXZlQ2hhbmdlc1RvQ2xvdWQoKSAtIHN1Y2Nlc3Mgd2l0aCBkaWZmYCwgc2F2ZUNvbnRlbnQpXG4gICAgICB9XG5cbiAgICAgIGlmICghZXJyb3IgJiYgc3VjY2VzcykgeyAvLyBpZiBubyBlcnJvciBtZXNzYWdlIGFuZCBzYXZlIHdhcyBhIHN1Y2Nlc3NcbiAgICAgICAgcmV0dXJuIF9zYXZlU3VjY2VzZnVsKCkgLy8gbm90aGluZyB0byBkb1xuICAgICAgfVxuXG4gICAgICBjb25zb2xlLmVycm9yKGBzYXZlQ2hhbmdlc1RvQ2xvdWQoKSAtICR7ZXJyb3IgfHwgJ3Vua25vd24gc2F2ZSBlcnJvcid9YClcbiAgICAgIHNldENhcmRzU2F2aW5nKHByZXZDYXJkc1NhdmluZyA9PiBwcmV2Q2FyZHNTYXZpbmcuZmlsdGVyKGNhcmRJZCA9PiBjYXJkSWQgIT09IGNhcmRSZXNvdXJjZUlkKSlcbiAgICAgIHNldFN0YXRlKHtzdGFydFNhdmU6IGZhbHNlfSlcbiAgICAgIHJldHVybiBmYWxzZVxuICAgIH1cblxuICAgIGlmIChzdGFydFNhdmUpIHtcbiAgICAgIGlmICghZWRpdEJyYW5jaFJlYWR5KSB7XG4gICAgICAgIC8vIGNvbnNvbGUubG9nKGBzYXZlQ2hhbmdlc1RvQ2xvdWQgLSBlZGl0IGJyYW5jaCBub3QgeWV0IGNyZWF0ZWRgKVxuICAgICAgfSBlbHNlIGlmICghc2hhKSB7XG4gICAgICAgIC8vIGNvbnNvbGUubG9nKGBzYXZlQ2hhbmdlc1RvQ2xvdWQgLSBzYXZlIHNoYSBub3QgeWV0IHJlYWR5YClcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIC8vIGNvbnNvbGUubG9nKGBzYXZlQ2hhbmdlc1RvQ2xvdWQgLSBjYWxsaW5nIF9zYXZlRWRpdCgpYClcbiAgICAgICAgc2V0Q2FyZHNTYXZpbmcocHJldkNhcmRzU2F2aW5nID0+IFsuLi5wcmV2Q2FyZHNTYXZpbmcsIGNhcmRSZXNvdXJjZUlkXSlcbiAgICAgICAgX3NhdmVFZGl0KClcbiAgICAgIH1cbiAgICB9XG4gIH0sIFtzdGFydFNhdmUsIGVkaXRCcmFuY2hSZWFkeSwgc2hhXSlcblxuICAvKipcbiAgICogY29udmVydCB1cGRhdGVkVmVyc2VPYmplY3RzIHRvIFVTRk0gYW5kIG1lcmdlIGludG8gdGhlIGJpYmxlVXNmbVxuICAgKiBAcGFyYW0ge3N0cmluZ30gYmlibGVVc2ZtIC0gVVNGTSBvZiBiaWJsZVxuICAgKiBAcGFyYW0ge1NjcmlwdHVyZVJlZmVyZW5jZVR5cGV9IHJlZiAtIHJlZmVyZW5jZSBvZiB2ZXJzZSB0byBtZXJnZSBpblxuICAgKiBAcGFyYW0ge1ZlcnNlT2JqZWN0c1R5cGV9IHVwZGF0ZWRWZXJzZU9iamVjdHMgLSBuZXcgdmVyc2UgaW4gdmVyc2VPYmplY3QgZm9ybWF0XG4gICAqIEBwYXJhbSB7bnVtYmVyfSBjYXJkTnVtXG4gICAqL1xuICBmdW5jdGlvbiBtZXJnZVZlcnNlT2JqZWN0c0ludG9CaWJsZVVzZm0oYmlibGVVc2ZtOiBzdHJpbmcsIHJlZjogU2NyaXB0dXJlUmVmZXJlbmNlVHlwZSwgdXBkYXRlZFZlcnNlT2JqZWN0czogVmVyc2VPYmplY3RzVHlwZSwgY2FyZE51bTogbnVtYmVyKSB7XG4gICAgbGV0IG5ld1VzZm1cbiAgICBjb25zdCBjaGFwdGVyQ2h1bmtzID0gYmlibGVVc2ZtPy5zcGxpdCgnXFxcXGMgJylcbiAgICBjb25zdCBjaGFwdGVySW5kZXggPSBmaW5kUmVmSW5BcnJheShyZWY/LmNoYXB0ZXIsIGNoYXB0ZXJDaHVua3MpXG5cbiAgICBpZiAoY2hhcHRlckluZGV4ID49IDApIHtcbiAgICAgIGNvbnN0IGN1cnJlbnRDaGFwdGVyID0gY2hhcHRlckNodW5rc1tjaGFwdGVySW5kZXhdXG4gICAgICBsZXQgdmVyc2VDaHVua3MgPSBjdXJyZW50Q2hhcHRlci5zcGxpdCgnXFxcXHYgJylcbiAgICAgIGNvbnN0IHZlcnNlSW5kZXggPSBmaW5kUmVmSW5BcnJheShyZWY/LnZlcnNlLCB2ZXJzZUNodW5rcylcbiAgICAgIGNvbnN0IGZyb250TWF0dGVyID0gcmVmPy52ZXJzZSA9PT0gJ2Zyb250J1xuXG4gICAgICBpZiAoZnJvbnRNYXR0ZXIgfHwgdmVyc2VJbmRleCA+PSAwKSB7XG4gICAgICAgIGNvbnN0IG5ld1ZlcnNlVXNmbSA9IFVzZm1GaWxlQ29udmVyc2lvbkhlbHBlcnMuY29udmVydFZlcnNlRGF0YVRvVVNGTSh1cGRhdGVkVmVyc2VPYmplY3RzKVxuICAgICAgICBjb25zb2xlLmxvZyhgc2F2ZUNoYW5nZXNUb0Nsb3VkKCkgLSBuZXcgVVNGTSBmb3IgY2FyZCAke2NhcmROdW19LCB2ZXJzZSAke3JlZj8udmVyc2V9On0gLSAke25ld1ZlcnNlVXNmbS5zdWJzdHJpbmcoMCwgMTAwKX1gKVxuICAgICAgICBpZiAoZnJvbnRNYXR0ZXIpIHsgLy8gZnJvbnQgbWF0dGVyIGdvZXMgYmVmb3JlIGZpcnN0IHZlcnNlXG4gICAgICAgICAgY29uc3Qgb2xkVmVyc2UgPSB2ZXJzZUNodW5rc1swXVxuICAgICAgICAgIGNvbnN0IHByZWZpeExlbiA9IG9sZFZlcnNlLmluZGV4T2YoJ1xcbicpIC8vIGNoYXJhY3RlcnMgYmVmb3JlIHRoZSBmcm9udCBtYXR0ZXIgdGV4dFxuICAgICAgICAgIHZlcnNlQ2h1bmtzWzBdID0gb2xkVmVyc2Uuc3Vic3RyaW5nKDAsIHByZWZpeExlbiArIDEpICsgbmV3VmVyc2VVc2ZtXG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgY29uc3Qgb2xkVmVyc2UgPSB2ZXJzZUNodW5rc1t2ZXJzZUluZGV4XVxuICAgICAgICAgIGNvbnN0IHZlcnNlTnVtTGVuID0gKHJlZj8udmVyc2UgKyAnJykubGVuZ3RoIC8vIGNoYXJhY3RlcnMgYmVmb3JlIHRoZSB2ZXJzZSB0ZXh0XG4gICAgICAgICAgdmVyc2VDaHVua3NbdmVyc2VJbmRleF0gPSBvbGRWZXJzZS5zdWJzdHJpbmcoMCwgdmVyc2VOdW1MZW4gKyAxKSArIG5ld1ZlcnNlVXNmbVxuICAgICAgICB9XG4gICAgICAgIGNvbnN0IG5ld0NoYXB0ZXIgPSB2ZXJzZUNodW5rcy5qb2luKCdcXFxcdiAnKVxuICAgICAgICBjaGFwdGVyQ2h1bmtzW2NoYXB0ZXJJbmRleF0gPSBuZXdDaGFwdGVyXG4gICAgICAgIG5ld1VzZm0gPSBjaGFwdGVyQ2h1bmtzLmpvaW4oJ1xcXFxjICcpXG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiBuZXdVc2ZtXG4gIH1cblxuICBSZWFjdC51c2VFZmZlY3QoKCkgPT4geyAvLyBmb3IgZWFjaCB1bnNhdmVkIGNoYW5nZSwgY2FsbCBpbnRvIHNjcmlwdHVyZVBhbmUgdG8gZ2V0IGxhdGVzdCBjaGFuZ2VzIGZvciB2ZXJzZSB0byBzYXZlXG4gICAgYXN5bmMgZnVuY3Rpb24gZ2V0UmVhZHlGb3JTYXZlKCkge1xuICAgICAgaWYgKHNhdmVDbGlja2VkKSB7XG4gICAgICAgIGxldCBjcmVhdGVFZGl0QnJhbmNoID0gIV91c2luZ1VzZXJCcmFuY2hcblxuICAgICAgICBpZiAoIWNyZWF0ZUVkaXRCcmFuY2gpIHsgLy8gaWYgYWxyZWFkeSB1c2luZyB0aGUgdXNlciBicmFuY2hcbiAgICAgICAgICBpZiAod29ya2luZ1Jlc291cmNlQnJhbmNoICE9PSB1c2VyRWRpdEJyYW5jaE5hbWUpIHtcbiAgICAgICAgICAgIGNvbnNvbGUud2Fybihgc2F2ZUNoYW5nZXNUb0Nsb3VkIC0gc3RhdGUgY29uZmxpY3QgLSBzaG91bGQgYmUgaW4gdXNlciBicmFuY2ggJHt1c2VyRWRpdEJyYW5jaE5hbWV9LCBidXQgYWN0dWFsbHkgdXNpbmcgJHt3b3JraW5nUmVzb3VyY2VCcmFuY2h9YClcbiAgICAgICAgICAgIGNyZWF0ZUVkaXRCcmFuY2ggPSB0cnVlXG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGNvbnNvbGUubG9nKGBzYXZlQ2hhbmdlc1RvQ2xvdWQgLSBhbHJlYWR5IHVzaW5nIGVkaXQgYnJhbmNoOiAke3dvcmtpbmdSZXNvdXJjZUJyYW5jaH1gKVxuICAgICAgICAgICAgc2V0U3RhdGUoeyBlZGl0QnJhbmNoUmVhZHk6IHRydWUgfSlcbiAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoY3JlYXRlRWRpdEJyYW5jaCkgeyAvLyBpZiBub3QgeWV0IHVzaW5nIHRoZSB1c2VyIGJyYW5jaCwgY3JlYXRlIGl0XG4gICAgICAgICAgY29uc29sZS5sb2coYHNhdmVDaGFuZ2VzVG9DbG91ZCAtIGNyZWF0aW5nIGVkaXQgYnJhbmNoYClcbiAgICAgICAgICBzZXRTdGF0ZSh7XG4gICAgICAgICAgICBlZGl0QnJhbmNoUmVhZHk6IGZhbHNlLFxuICAgICAgICAgICAgcmVhZHlGb3JGZXRjaDogZmFsc2UsXG4gICAgICAgICAgICBzaGE6IG51bGwsXG4gICAgICAgICAgfSkgLy8gd2Ugd2lsbCBuZWVkIGEgbmV3IHNoYSBmb3IgYm9vay9icmFuY2hcblxuICAgICAgICAgIGNvbnN0IGJyYW5jaCA9IGF3YWl0IHN0YXJ0RWRpdEJyYW5jaCgpXG5cbiAgICAgICAgICBpZiAoYnJhbmNoKSB7XG4gICAgICAgICAgICBjb25zb2xlLmxvZyhgc2F2ZUNoYW5nZXNUb0Nsb3VkIC0gZWRpdCBicmFuY2ggY3JlYXRlZGApXG4gICAgICAgICAgICBzZXRTdGF0ZSh7XG4gICAgICAgICAgICAgIGVkaXRCcmFuY2hSZWFkeTogdHJ1ZSxcbiAgICAgICAgICAgICAgcmVhZHlGb3JGZXRjaDogdHJ1ZSxcbiAgICAgICAgICAgICAgcmVmOiBicmFuY2gsXG4gICAgICAgICAgICB9KVxuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBjb25zb2xlLmVycm9yKCdzYXZlQ2hhbmdlc1RvQ2xvdWQoKSAtIGVycm9yIGNyZWF0aW5nIGVkaXQgYnJhbmNoJylcbiAgICAgICAgICAgIG9uUmVzb3VyY2VFcnJvciAmJiBvblJlc291cmNlRXJyb3IobnVsbCwgZmFsc2UsIG51bGwsIGBFcnJvciBjcmVhdGluZyBlZGl0IGJyYW5jaCAke2xhbmd1YWdlSWRffV8ke3Jlc291cmNlSWR9YCwgdHJ1ZSlcbiAgICAgICAgICAgIHNldFN0YXRlKHsgc2F2ZUNsaWNrZWQ6IGZhbHNlIH0pXG4gICAgICAgICAgICByZXR1cm5cbiAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBjb25zb2xlLmxvZyhgc2F2ZUNoYW5nZXNUb0Nsb3VkIC0gZ2V0dGluZyB2ZXJzZSBjaGFuZ2VzYClcbiAgICAgICAgY29uc3QgdW5zYXZlZENhcmRJbmRpY2VzID0gT2JqZWN0LmtleXModW5zYXZlZENoYW5nZXNMaXN0KVxuXG4gICAgICAgIGlmICh1bnNhdmVkQ2FyZEluZGljZXM/Lmxlbmd0aCkge1xuICAgICAgICAgIGxldCBiaWJsZVVzZm1Jbml0aWFsID0gZ2V0Q3VycmVudEJvb2soc2NyaXB0dXJlQ29uZmlnLCBib29rSWQpIC8vIGdldCBvcmlnaW5hbCBVU0ZNXG4gICAgICAgICAgbGV0IGJpYmxlVXNmbU5ldyA9IGJpYmxlVXNmbUluaXRpYWwgLy8gbWFrZSBhIGNvcHkgdG8gZWRpdFxuICAgICAgICAgIGxldCBtZXJnZUZhaWwgPSBmYWxzZVxuXG4gICAgICAgICAgaWYgKGJpYmxlVXNmbUluaXRpYWwpIHtcbiAgICAgICAgICAgIGxldCBjYXJkTnVtID0gMFxuXG4gICAgICAgICAgICBmb3IgKGNvbnN0IGNhcmRJbmRleCBvZiB1bnNhdmVkQ2FyZEluZGljZXMpIHtcbiAgICAgICAgICAgICAgY2FyZE51bSA9IHBhcnNlSW50KGNhcmRJbmRleClcbiAgICAgICAgICAgICAgY29uc3QgeyBnZXRDaGFuZ2VzLCBzdGF0ZSB9ID0gdW5zYXZlZENoYW5nZXNMaXN0W2NhcmROdW1dXG5cbiAgICAgICAgICAgICAgaWYgKGdldENoYW5nZXMpIHtcbiAgICAgICAgICAgICAgICBsZXQgbmV3VXNmbVxuICAgICAgICAgICAgICAgIGNvbnN0IHtcbiAgICAgICAgICAgICAgICAgIHJlZixcbiAgICAgICAgICAgICAgICAgIHVwZGF0ZWRWZXJzZU9iamVjdHMsXG4gICAgICAgICAgICAgICAgfSA9IGdldENoYW5nZXMoc3RhdGUpXG5cbiAgICAgICAgICAgICAgICBpZiAodXBkYXRlZFZlcnNlT2JqZWN0cyAmJiBiaWJsZVVzZm1OZXcpIHsgLy8ganVzdCByZXBsYWNlIHZlcnNlXG4gICAgICAgICAgICAgICAgICBuZXdVc2ZtID0gbWVyZ2VWZXJzZU9iamVjdHNJbnRvQmlibGVVc2ZtKGJpYmxlVXNmbU5ldywgcmVmLCB1cGRhdGVkVmVyc2VPYmplY3RzLCBjYXJkTnVtKVxuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIGlmIChuZXdVc2ZtKSB7XG4gICAgICAgICAgICAgICAgICBiaWJsZVVzZm1OZXcgPSBuZXdVc2ZtXG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgIG1lcmdlRmFpbCA9IHRydWVcbiAgICAgICAgICAgICAgICAgIGJyZWFrXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgbGV0IHNhdmVEaWZmUGF0Y2ggPSBmYWxzZSAvLyBpZiB0cnVlIHRoZW4gd2Ugd2lsbCBzZW5kIHVwIGEgZGlmZnBhdGNoIGluc3RlYWQgb2YgdGhlIHdob2xlIGJvb2tcbiAgICAgICAgICBsZXQgX3NhdmVGdWxsQmlibGVDb250ZW50ID0gbnVsbFxuICAgICAgICAgIGxldCBfc2F2ZUNvbnRlbnQgPSBiaWJsZVVzZm1OZXdcblxuICAgICAgICAgIGlmIChtZXJnZUZhaWwpIHsgLy8gaWYgd2UgZmFpbGVkIHRvIG1lcmdlLCBmYWxsYmFjayB0byBicnV0ZSBmb3JjZSB2ZXJzZSBvYmplY3RzIHRvIFVTRk1cbiAgICAgICAgICAgIGNvbnNvbGUubG9nKGBzYXZlQ2hhbmdlc1RvQ2xvdWQoJHtjYXJkTnVtfSkgLSB2ZXJzZSBub3QgZm91bmQsIGZhbGxpbmcgYmFjayB0byBpbnNlcnRpbmcgdmVyc2Ugb2JqZWN0YClcbiAgICAgICAgICAgIGxldCBuZXdCb29rSnNvblxuXG4gICAgICAgICAgICBmb3IgKGNvbnN0IGNhcmRJbmRleCBvZiB1bnNhdmVkQ2FyZEluZGljZXMpIHtcbiAgICAgICAgICAgICAgY29uc3QgY2FyZE51bSA9IHBhcnNlSW50KGNhcmRJbmRleClcbiAgICAgICAgICAgICAgY29uc3QgeyBnZXRDaGFuZ2VzLCBzdGF0ZSB9ID0gdW5zYXZlZENoYW5nZXNMaXN0W2NhcmROdW1dXG5cbiAgICAgICAgICAgICAgaWYgKGdldENoYW5nZXMpIHtcbiAgICAgICAgICAgICAgICBsZXQgbmV3VXNmbVxuICAgICAgICAgICAgICAgIGNvbnN0IHtcbiAgICAgICAgICAgICAgICAgIG5ld1ZlcnNlVGV4dCxcbiAgICAgICAgICAgICAgICAgIHJlZixcbiAgICAgICAgICAgICAgICAgIHVwZGF0ZWRWZXJzZU9iamVjdHMsXG4gICAgICAgICAgICAgICAgfSA9IGdldENoYW5nZXMoc3RhdGUpXG5cbiAgICAgICAgICAgICAgICBpZiAodXBkYXRlZFZlcnNlT2JqZWN0cyAmJiAhbmV3VXNmbSkge1xuICAgICAgICAgICAgICAgICAgbGV0IHRhcmdldFZlcnNlT2JqZWN0c18gPSBudWxsXG5cbiAgICAgICAgICAgICAgICAgIGlmIChyZWYpIHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKG5ld1ZlcnNlVGV4dCkge1xuICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHsgdGFyZ2V0VmVyc2VPYmplY3RzIH0gPSBBbGlnbm1lbnRIZWxwZXJzLnVwZGF0ZUFsaWdubWVudHNUb1RhcmdldFZlcnNlKHVwZGF0ZWRWZXJzZU9iamVjdHMsIG5ld1ZlcnNlVGV4dClcbiAgICAgICAgICAgICAgICAgICAgICB0YXJnZXRWZXJzZU9iamVjdHNfID0gdGFyZ2V0VmVyc2VPYmplY3RzXG4gICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgdGFyZ2V0VmVyc2VPYmplY3RzXyA9IHVwZGF0ZWRWZXJzZU9iamVjdHNcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBuZXdCb29rSnNvbiA9IHRhcmdldFZlcnNlT2JqZWN0c18gJiYgc2NyaXB0dXJlQ29uZmlnPy51cGRhdGVWZXJzZShyZWYuY2hhcHRlciwgcmVmLnZlcnNlLCB7dmVyc2VPYmplY3RzOiB0YXJnZXRWZXJzZU9iamVjdHNffSlcbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgX3NhdmVDb250ZW50ID0gdXNmbWpzLnRvVVNGTShuZXdCb29rSnNvbiwgeyBmb3JjZWROZXdMaW5lczogdHJ1ZSB9KVxuICAgICAgICAgIH0gZWxzZSB7IC8vIGlmIG9ubHkgY2hhbmdlZCBhIGZldyB2ZXJzZXMsIHdlIHdpbGwganVzdCBtYWtlIGEgZGlmZnBhdGNoIGluc3RlYWQgb2Ygc2VuZGluZyB0aGUgd2hvbGUgYm9va1xuICAgICAgICAgICAgY29uc3QgZmlsZW5hbWUgPSBzY3JpcHR1cmVDb25maWc/LnJlc291cmNlU3RhdGU/LnJlc291cmNlPy5uYW1lIC8vIExpa2UgXCI1Ny1USVQudXNmbVwiXG4gICAgICAgICAgICBpZiAoZmlsZW5hbWUgJiYgYmlibGVVc2ZtTmV3ICYmIGJpYmxlVXNmbUluaXRpYWwpIHsgLy8gbWFrZSBzdXJlIHdlIGhhdmUgZXZlcnl0aGluZyBuZWVkZWQgdG8gbWFrZSBhIHBhdGNoXG4gICAgICAgICAgICAgIGlmIChiaWJsZVVzZm1Jbml0aWFsID09PSBiaWJsZVVzZm1OZXcpIHsgLy8gaWYgbm8gZGF0YSBjaGFuZ2UsIHRoZW4gc2tpcCBzYXZlIGJlY2F1c2UgRENTIGNyYXNoZXMgb24gYW4gZW1wdHkgcGF0Y2hcbiAgICAgICAgICAgICAgICBjb25zb2xlLndhcm4oYHNhdmVDaGFuZ2VzVG9DbG91ZCgpIC0gdGhlcmUgaXMgbm90aGluZyB0byBzYXZlLCBza2lwcGluZ2ApXG4gICAgICAgICAgICAgICAgc2V0U3RhdGUoeyBzYXZlQ2xpY2tlZDogZmFsc2UgfSlcbiAgICAgICAgICAgICAgICByZXR1cm5cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICBjb25zdCBkaWZmUGF0Y2ggPSBnZXRQYXRjaChmaWxlbmFtZSwgYmlibGVVc2ZtSW5pdGlhbCwgYmlibGVVc2ZtTmV3LCBmYWxzZSwgY29udGV4dExpbmVzKVxuICAgICAgICAgICAgICBzYXZlRGlmZlBhdGNoID0gdHJ1ZVxuICAgICAgICAgICAgICBfc2F2ZUNvbnRlbnQgPSBkaWZmUGF0Y2ggLy8gcmVwbGFjZSB3aG9sZSBib29rIGNvbnRlbnQgd2l0aCBqdXN0IHBhdGNoIGRhdGEgKG11Y2ggZmFzdGVyIHVwbG9hZHMpXG4gICAgICAgICAgICAgIF9zYXZlRnVsbEJpYmxlQ29udGVudCA9IHsgIC8vIGtlZXAgdHJhY2sgb2YgcGF0Y2ggZGF0YSBpbiBjYXNlIHdlIG5lZWQgdG8gcmV0cnkgc2F2ZVxuICAgICAgICAgICAgICAgIGZpbGVuYW1lLFxuICAgICAgICAgICAgICAgIGluaXRpYWw6IGJpYmxlVXNmbUluaXRpYWwsXG4gICAgICAgICAgICAgICAgbmV3OiBiaWJsZVVzZm1OZXcsXG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG5cbiAgICAgICAgICBpZiAoYmlibGVVc2ZtTmV3KSB7XG4gICAgICAgICAgICBjb25zb2xlLmxvZyhgc2F2ZUNoYW5nZXNUb0Nsb3VkKCkgLSBzYXZpbmcgbmV3IFVTRk06ICR7YmlibGVVc2ZtTmV3LnN1YnN0cmluZygwLCAxMDApfS4uLmApXG4gICAgICAgICAgICBzZXRDYXJkc1NhdmluZyhwcmV2Q2FyZHNTYXZpbmcgPT4gWy4uLnByZXZDYXJkc1NhdmluZywgY2FyZFJlc291cmNlSWRdKVxuICAgICAgICAgICAgc2V0U3RhdGUoe1xuICAgICAgICAgICAgICBzYXZlQ29udGVudDogX3NhdmVDb250ZW50LFxuICAgICAgICAgICAgICBzYXZlQ2xpY2tlZDogZmFsc2UsXG4gICAgICAgICAgICAgIHNhdmVEaWZmUGF0Y2gsXG4gICAgICAgICAgICAgIHNhdmVGdWxsQmlibGVDb250ZW50OiBfc2F2ZUZ1bGxCaWJsZUNvbnRlbnQsXG4gICAgICAgICAgICAgIHN0YXJ0U2F2ZTogdHJ1ZSxcbiAgICAgICAgICAgIH0pXG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoYHNhdmVDaGFuZ2VzVG9DbG91ZCgpIC0gRXJyb3IgcmV0cmlldmluZyB0aGUgY29ycmVjdCBib29rIGRhdGE6IGluY29ycmVjdCBib29rICR7bGFuZ3VhZ2VJZF99XyR7cmVzb3VyY2VJZH1gKVxuICAgICAgICAgICAgb25SZXNvdXJjZUVycm9yICYmIG9uUmVzb3VyY2VFcnJvcihudWxsLCBmYWxzZSwgbnVsbCwgYEVycm9yIHJldHJpZXZpbmcgdGhlIGNvcnJlY3QgYm9vayBkYXRhICR7bGFuZ3VhZ2VJZF99XyR7cmVzb3VyY2VJZH1gLCB0cnVlKVxuICAgICAgICAgICAgc2V0U3RhdGUoeyBzYXZlQ2xpY2tlZDogZmFsc2UgfSlcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICBnZXRSZWFkeUZvclNhdmUoKVxuICB9LCBbc2F2ZUNsaWNrZWRdKVxuXG4gIC8vIEB0cy1pZ25vcmVcbiAgY29uc3QgeyBjaGFwdGVyIH0gPSBfcmVmZXJlbmNlIHx8IHt9XG5cbiAgUmVhY3QudXNlRWZmZWN0KCgpID0+IHtcbiAgICBjb25zdCBfdmVyc2VzRm9yUmVmID0gc2NyaXB0dXJlQ29uZmlnPy52ZXJzZXNGb3JSZWZcbiAgICBsZXQgbmV3U2VsZWN0aW9ucyA9IG5ldyBNYXAoKVxuICAgIGxldCB1cGRhdGVTZWxlY3Rpb25zID0gZmFsc2VcbiAgICBjb25zdCBfbWFwID0gbmV3U2VsZWN0aW9uc1xuICAgIGNvbnN0IG9yaWdpbmFsQm9va0lkID0gb3JpZ2luYWxTY3JpcHR1cmVCb29rT2JqZWN0cz8uYm9va0lkXG4gICAgY29uc3QgYm9va1ZlcnNlT2JqZWN0ID0gb3JpZ2luYWxTY3JpcHR1cmVCb29rT2JqZWN0cz8uY2hhcHRlcnNcbiAgICBsZXQgbmV3U2VsZWN0ZWRRdW90ZSA9IG51bGxcblxuICAgIC8vIGlmIHdlIGhhdmUgZXZlcnl0aGluZyB3ZSBuZWVkIHRvIGNhbGN1bGF0ZSBzZWxlY3Rpb25zXG4gICAgaWYgKF92ZXJzZXNGb3JSZWY/Lmxlbmd0aCAmJlxuICAgICAgYm9va1ZlcnNlT2JqZWN0ICYmXG4gICAgICAoYm9va0lkID09PSBvcmlnaW5hbEJvb2tJZCkgJiZcbiAgICAgIGJvb2tWZXJzZU9iamVjdFtjaGFwdGVyXSAmJiAvLyB3ZSBuZWVkIHRvIGhhdmUgZGF0YSBmb3IgY2hhcHRlclxuICAgICAgc2VsZWN0ZWRRdW90ZT8ucXVvdGVcbiAgICApIHtcbiAgICAgIC8vIGlmIHF1b3RlIGlzIGRpZmZlcmVudCB0aGFuIGxhc3RcbiAgICAgIGlmICghaXNFcXVhbChsYXN0U2VsZWN0ZWRRdW90ZSwgc2VsZWN0ZWRRdW90ZSkgfHxcbiAgICAgICAgIWlzRXF1YWwodmVyc2VzRm9yUmVmLCBfdmVyc2VzRm9yUmVmKSkge1xuICAgICAgICBjb25zdCBvcmlnaW5hbFZlcnNlcyA9IHt9XG4gICAgICAgIGNvbnN0IHN1YnN0aXR1dGUgPSB7fSAvLyBrZWVwIHRyYWNrIG9mIHZlcnNlIHN1YnN0aXR1dGlvbnNcbiAgICAgICAgbGV0IHN0YXJ0VmVyc2UgPSBfdmVyc2VzRm9yUmVmWzBdLnZlcnNlXG5cbiAgICAgICAgaWYgKHR5cGVvZiBzdGFydFZlcnNlID09PSAnc3RyaW5nJykge1xuICAgICAgICAgIHN0YXJ0VmVyc2UgPSBwYXJzZUludChzdGFydFZlcnNlKVxuICAgICAgICB9XG5cbiAgICAgICAgbGV0IGxhc3RWZXJzZSA9IHN0YXJ0VmVyc2VcblxuICAgICAgICBmb3IgKGxldCBpID0gMCwgbCA9IF92ZXJzZXNGb3JSZWYubGVuZ3RoOyBpIDwgbDsgaSsrKSB7XG4gICAgICAgICAgY29uc3QgdmVyc2VSZWYgPSBfdmVyc2VzRm9yUmVmW2ldXG4gICAgICAgICAgY29uc3Qge1xuICAgICAgICAgICAgY2hhcHRlcixcbiAgICAgICAgICAgIHZlcnNlLFxuICAgICAgICAgIH0gPSB2ZXJzZVJlZlxuICAgICAgICAgIC8vIFRSSUNLWSAtIHdlIHJlbWFwIHZlcnNlcyBpbiByZWZlcmVuY2UgcmFuZ2UgdG8gYSBsaW5lYXIgc2VyaWVzIG9mIHZlcnNlcyBzbyB2ZXJzZSBzcGFucyBkb24ndCBjaG9rZSBnZXRRdW90ZU1hdGNoZXNJbkJvb2tSZWZcbiAgICAgICAgICBsZXQgX3ZlcnNlID0gc3RhcnRWZXJzZSArIGlcbiAgICAgICAgICBsYXN0VmVyc2UgPSBfdmVyc2VcbiAgICAgICAgICBzdWJzdGl0dXRlW2Ake2NoYXB0ZXJ9OiR7X3ZlcnNlfWBdID0gYCR7Y2hhcHRlcn06JHt2ZXJzZX1gXG5cbiAgICAgICAgICBpZiAoIW9yaWdpbmFsVmVyc2VzW2NoYXB0ZXJdKSB7XG4gICAgICAgICAgICBvcmlnaW5hbFZlcnNlc1tjaGFwdGVyXSA9IHt9XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgbGV0IHZlcnNlT2JqZWN0cyA9IFtdXG5cbiAgICAgICAgICBpZiAoKHR5cGVvZiB2ZXJzZSA9PT0gJ3N0cmluZycpICYmICh2ZXJzZS5pbmNsdWRlcygnLScpKSkge1xuICAgICAgICAgICAgY29uc3QgdmVyc2VzID0gZ2V0VmVyc2VzKGJvb2tWZXJzZU9iamVjdCwgYCR7Y2hhcHRlcn06JHt2ZXJzZX1gKVxuXG4gICAgICAgICAgICBmb3IgKGNvbnN0IHZlcnNlSXRlbSBvZiB2ZXJzZXMpIHtcbiAgICAgICAgICAgICAgY29uc3Qgdm8gPSB2ZXJzZUl0ZW0udmVyc2VEYXRhLnZlcnNlT2JqZWN0c1xuICAgICAgICAgICAgICB2ZXJzZU9iamVjdHMgPSB2ZXJzZU9iamVjdHMuY29uY2F0KHZvKVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB2ZXJzZU9iamVjdHMgPSBib29rVmVyc2VPYmplY3RbY2hhcHRlcl1bdmVyc2VdPy52ZXJzZU9iamVjdHNcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBpZiAodmVyc2VPYmplY3RzKSB7XG4gICAgICAgICAgICB2ZXJzZU9iamVjdHMgPSBjbGVhbnVwVmVyc2VPYmplY3RzKHZlcnNlT2JqZWN0cylcbiAgICAgICAgICAgIG9yaWdpbmFsVmVyc2VzW2NoYXB0ZXJdW192ZXJzZV0gPSB7IHZlcnNlT2JqZWN0cyB9XG4gICAgICAgICAgICBfbWFwLnNldChgJHtjaGFwdGVyfToke3ZlcnNlfWAsIHZlcnNlT2JqZWN0cylcbiAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAvLyBjcmVhdGUgbmV3IHJlZmVyZW5jZSByYW5nZSBmb3IgbmV3IGxpbmVhciB2ZXJzZSByYW5nZVxuICAgICAgICBjb25zdCBbY2hhcHRlcl0gPSBzZWxlY3RlZFF1b3RlPy5yZWZlcmVuY2U/LnNwbGl0KCc6JylcbiAgICAgICAgbGV0IHN1YlJlZiA9IGAke2NoYXB0ZXJ9OiR7c3RhcnRWZXJzZX1gXG5cbiAgICAgICAgaWYgKGxhc3RWZXJzZSAhPSBzdGFydFZlcnNlKSB7XG4gICAgICAgICAgc3ViUmVmICs9IGAtJHtsYXN0VmVyc2V9YFxuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgcXVvdGVNYXRjaGVzID0gZ2V0UXVvdGVNYXRjaGVzSW5Cb29rUmVmKHtcbiAgICAgICAgICBib29rT2JqZWN0OiBvcmlnaW5hbFZlcnNlcyxcbiAgICAgICAgICByZWY6IHN1YlJlZixcbiAgICAgICAgICBxdW90ZTogc2VsZWN0ZWRRdW90ZT8ucXVvdGUsXG4gICAgICAgICAgb2NjdXJyZW5jZTogc2VsZWN0ZWRRdW90ZT8ub2NjdXJyZW5jZSxcbiAgICAgICAgfSlcblxuICAgICAgICBjb25zdCBzZWxlY3Rpb25zID0gbmV3IE1hcCgpXG5cbiAgICAgICAgaWYgKHF1b3RlTWF0Y2hlcz8uc2l6ZSkge1xuICAgICAgICAgIHF1b3RlTWF0Y2hlcy5mb3JFYWNoKCh3b3Jkcywga2V5KSA9PiB7XG4gICAgICAgICAgICBjb25zdCBfa2V5ID0gc3Vic3RpdHV0ZVtrZXldXG5cbiAgICAgICAgICAgIHNlbGVjdGlvbnMuc2V0KF9rZXksIHdvcmRzLm1hcCh3b3JkID0+IChcbiAgICAgICAgICAgICAgeyAuLi53b3JkLCB0ZXh0OiBjb3JlLm5vcm1hbGl6ZVN0cmluZyh3b3JkLnRleHQpIH1cbiAgICAgICAgICAgICkpKVxuICAgICAgICAgIH0pXG4gICAgICAgIH1cbiAgICAgICAgbmV3U2VsZWN0aW9ucyA9IHNlbGVjdGlvbnNcbiAgICAgICAgbmV3U2VsZWN0ZWRRdW90ZSA9IHNlbGVjdGVkUXVvdGVcbiAgICAgICAgdXBkYXRlU2VsZWN0aW9ucyA9IHRydWVcbiAgICAgIH1cbiAgICB9XG5cbiAgICBjb25zdCBuZXdTdGF0ZTogYW55ID0ge31cblxuICAgIC8vIHVwZGF0ZSBzdGF0ZXMgdGhhdCBoYXZlIGNoYW5nZWRcbiAgICBpZiAoIWFyZU1hcHNUaGVTYW1lKHZlcnNlT2JqZWN0c01hcCwgX21hcCkpIHtcbiAgICAgIG5ld1N0YXRlLnZlcnNlT2JqZWN0c01hcCA9IF9tYXBcbiAgICAgIC8vIEB0cy1pZ25vcmVcbiAgICAgIG5ld1N0YXRlLnNlbGVjdGlvbnNSZWZzID0gX21hcCA/IFsuLi5fbWFwLmtleXMoKV0uam9pbignOycpIDogJycgLy8gY29tYmluZSBhbGwgdGhlIHZlcnNlIHJlZmVyZW5jZXMgaW50byBhIHNpbmdsZSB2ZXJzZSByZWZlcmVuY2UgZm9yIHRoZSBzZWxlY3Rpb25zXG4gICAgfVxuXG4gICAgY29uc3QgYm9va3NOb3RTYW1lID0gcmVmZXJlbmNlPy5ib29rSWQgIT09IGN1cnJlbnRSZWZlcmVuY2U/LmJvb2tJZFxuXG4gICAgaWYgKGJvb2tzTm90U2FtZSB8fCAhYXJlVmVyc2VzU2FtZSh2ZXJzZXNGb3JSZWYsIF92ZXJzZXNGb3JSZWYpKSB7XG4gICAgICBuZXdTdGF0ZS52ZXJzZXNGb3JSZWYgPSBfdmVyc2VzRm9yUmVmXG4gICAgICBuZXdTdGF0ZS5sYXN0U2VsZWN0ZWRRdW90ZSA9IG5ld1NlbGVjdGVkUXVvdGVcbiAgICAgIG5ld1N0YXRlLnNlbGVjdGlvbnMgPSBuZXdTZWxlY3Rpb25zXG4gICAgfVxuXG4gICAgaWYgKG5ld1NlbGVjdGVkUXVvdGUpIHtcbiAgICAgIG5ld1N0YXRlLmxhc3RTZWxlY3RlZFF1b3RlID0gbmV3U2VsZWN0ZWRRdW90ZVxuICAgIH1cblxuICAgIGlmICh1cGRhdGVTZWxlY3Rpb25zKSB7XG4gICAgICBpZiAoIWFyZU1hcHNUaGVTYW1lKHNlbGVjdGlvbnMgfHwgKG5ldyBNYXAoKSksIG5ld1NlbGVjdGlvbnMpKSB7XG4gICAgICAgIG5ld1N0YXRlLnNlbGVjdGlvbnMgPSBuZXdTZWxlY3Rpb25zXG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYgKE9iamVjdC5rZXlzKG5ld1N0YXRlKS5sZW5ndGgpIHtcbiAgICAgIHNldFN0YXRlKG5ld1N0YXRlKVxuICAgIH1cbiAgfSwgW1xuICAgIG93bmVyLFxuICAgIHJlc291cmNlSWQsXG4gICAgYm9va0lkLFxuICAgIGxhbmd1YWdlSWRfLFxuICAgIHNjcmlwdHVyZUNvbmZpZz8udmVyc2VzRm9yUmVmLFxuICAgIG9yaWdpbmFsU2NyaXB0dXJlQm9va09iamVjdHMsXG4gICAgc2VsZWN0ZWRRdW90ZSxcbiAgXSlcblxuICBSZWFjdC51c2VFZmZlY3QoKCkgPT4geyAvLyBjbGVhciBzZXR0aW5ncyBvbiB2ZXJzZSBjaGFuZ2VcbiAgICBzZXRTdGF0ZSh7XG4gICAgICB2ZXJzZXNBbGlnbm1lbnRTdGF0dXM6IG51bGwsXG4gICAgICB1bnNhdmVkQ2hhbmdlc0xpc3Q6IHt9LFxuICAgICAgaGF2ZVVuc2F2ZWRDaGFuZ2VzOiBmYWxzZSxcbiAgICB9KVxuICB9LCBbX3JlZmVyZW5jZV0pXG5cbiAgY29uc3QgdXBkYXRlVmVyc2VzQWxpZ25tZW50U3RhdHVzID0gKHJlZmVyZW5jZTogU2NyaXB0dXJlUmVmZXJlbmNlVHlwZSwgYWxpZ25lZDogYm9vbGVhbikgPT4ge1xuICAgIHNldFN0YXRlXyhwcmV2U3RhdGUgPT4gKHtcbiAgICAgIC4uLnByZXZTdGF0ZSxcbiAgICAgIHZlcnNlc0FsaWdubWVudFN0YXR1czogeyAuLi5wcmV2U3RhdGUudmVyc2VzQWxpZ25tZW50U3RhdHVzLCBbYCR7cmVmZXJlbmNlLmNoYXB0ZXJ9OiR7cmVmZXJlbmNlLnZlcnNlfWBdOiBhbGlnbmVkIH0sXG4gICAgfSkpXG4gIH1cblxuICBsZXQgX3ZlcnNlc0ZvclJlZiA9IHNjcmlwdHVyZUNvbmZpZz8udmVyc2VzRm9yUmVmXG5cbiAgUmVhY3QudXNlRWZmZWN0KCgpID0+IHtcbiAgICBpZiAoX3ZlcnNlc0ZvclJlZj8ubGVuZ3RoKSB7XG4gICAgICBjb25zdCB7IHJlZmVyZW5jZSwgcmVzb3VyY2VMaW5rIH0gPSBzY3JpcHR1cmVDb25maWcgfHwge31cbiAgICAgIGNvbnNvbGUubG9nKGBTY3JpcHR1cmVDYXJkLl92ZXJzZXNGb3JSZWYgY2hhbmdlZGAsIHsgcmVmZXJlbmNlLCByZXNvdXJjZUxpbmsgfSlcbiAgICB9XG4gIH0sIFtfdmVyc2VzRm9yUmVmXSlcblxuICBpZiAoIV92ZXJzZXNGb3JSZWY/Lmxlbmd0aCkgeyAvLyBpZiBlbXB0eSBvZiByZWZlcmVuY2VzLCBjcmVhdGUgc2luZ2xlIGVtcHR5IHJlZmVyZW5jZVxuICAgIF92ZXJzZXNGb3JSZWYgPSBbeyAuLi5yZWZlcmVuY2UgfV1cbiAgfVxuXG4gIGNvbnN0IHJlbmRlcmVkU2NyaXB0dXJlUGFuZXMgPSBfdmVyc2VzRm9yUmVmPy5tYXAoKF9jdXJyZW50VmVyc2VEYXRhLCBpbmRleCkgPT4ge1xuICAgIGNvbnN0IGluaXRpYWxWZXJzZU9iamVjdHMgPSBfY3VycmVudFZlcnNlRGF0YT8udmVyc2VEYXRhPy52ZXJzZU9iamVjdHMgfHwgW11cbiAgICAvLyBAdHMtaWdub3JlXG4gICAgY29uc3QgeyBjaGFwdGVyLCB2ZXJzZSB9ID0gX2N1cnJlbnRWZXJzZURhdGEgfHwge31cbiAgICBjb25zdCBib29rSWRfID0gY3VycmVudFJlZmVyZW5jZT8uYm9va0lkIHx8IGJvb2tJZFxuICAgIGNvbnN0IF9yZWZlcmVuY2UgPSB7XG4gICAgICAuLi5fdmVyc2VzRm9yUmVmLFxuICAgICAgY2hhcHRlcixcbiAgICAgIGJvb2tJZDogYm9va0lkXyxcbiAgICAgIHZlcnNlLFxuICAgIH1cbiAgICBjb25zdCBfc2NyaXB0dXJlQWxpZ25tZW50RWRpdENvbmZpZyA9IHtcbiAgICAgIC4uLnNjcmlwdHVyZUFsaWdubWVudEVkaXRDb25maWcsXG4gICAgICBjdXJyZW50SW5kZXg6IGluZGV4LFxuICAgICAgaW5pdGlhbFZlcnNlT2JqZWN0cyxcbiAgICAgIHJlZmVyZW5jZTogX3JlZmVyZW5jZSxcbiAgICAgIGlzTmV3VGVzdGFtZW50LFxuICAgIH1cblxuICAgIGxldCBpc1ZlcnNlU2VsZWN0ZWRGb3JBbGlnbm1lbnQgPSBmYWxzZVxuXG4gICAgaWYgKHZlcnNlU2VsZWN0ZWRGb3JBbGlnbm1lbnQpIHtcbiAgICAgIGlzVmVyc2VTZWxlY3RlZEZvckFsaWdubWVudCA9IHZlcnNlU2VsZWN0ZWRGb3JBbGlnbm1lbnQuY2hhcHRlciA9PSBjaGFwdGVyICYmIHZlcnNlU2VsZWN0ZWRGb3JBbGlnbm1lbnQudmVyc2UgPT0gdmVyc2VcbiAgICB9XG5cbiAgICByZXR1cm4gKFxuICAgICAgPFNjcmlwdHVyZVBhbmVcbiAgICAgICAgey4uLnNjcmlwdHVyZUNvbmZpZ31cbiAgICAgICAgY29udGVudFN0eWxlPXtjb250ZW50U3R5bGV9XG4gICAgICAgIGN1cnJlbnRJbmRleD17aW5kZXh9XG4gICAgICAgIGRldGVybWluaW5nQnJhbmNoPXshcmVhZHlGb3JGZXRjaH1cbiAgICAgICAgZGlyZWN0aW9uPXtkaXJlY3Rpb259XG4gICAgICAgIGRpc2FibGVXb3JkUG9wb3Zlcj17ZGlzYWJsZVdvcmRQb3BvdmVyX31cbiAgICAgICAgZm9udFNpemU9e2ZvbnRTaXplfVxuICAgICAgICBnZXRMZXhpY29uRGF0YT17Z2V0TGV4aWNvbkRhdGF9XG4gICAgICAgIGlzTlQ9e2lzTlRffVxuICAgICAgICBpc1ZlcnNlU2VsZWN0ZWRGb3JBbGlnbm1lbnQ9e2lzVmVyc2VTZWxlY3RlZEZvckFsaWdubWVudH1cbiAgICAgICAga2V5PXtpbmRleH1cbiAgICAgICAgb25BbGlnbm1lbnRGaW5pc2g9eygpID0+IHNldFN0YXRlKHsgdmVyc2VTZWxlY3RlZEZvckFsaWdubWVudDogbnVsbCB9KX1cbiAgICAgICAgb3JpZ2luYWxTY3JpcHR1cmVCb29rT2JqZWN0cz17b3JpZ2luYWxTY3JpcHR1cmVCb29rT2JqZWN0c31cbiAgICAgICAgcmVmU3R5bGU9e3JlZlN0eWxlfVxuICAgICAgICByZWZlcmVuY2U9e19yZWZlcmVuY2V9XG4gICAgICAgIHNhdmluZz17c3RhcnRTYXZlfVxuICAgICAgICAvLyBAdHMtaWdub3JlXG4gICAgICAgIHNjcmlwdHVyZUFsaWdubWVudEVkaXRDb25maWc9e19zY3JpcHR1cmVBbGlnbm1lbnRFZGl0Q29uZmlnfVxuICAgICAgICBzZXRFZGl0VmVyc2U9e3NldEVkaXRWZXJzZX1cbiAgICAgICAgc2V0V29yZEFsaWduZXJTdGF0dXM9e3NldFdvcmRBbGlnbmVyU3RhdHVzfVxuICAgICAgICBzZXJ2ZXI9e3NlcnZlcn1cbiAgICAgICAgdHJhbnNsYXRlPXt0cmFuc2xhdGV9XG4gICAgICAgIHVwZGF0ZVZlcnNlc0FsaWdubWVudFN0YXR1cz17dXBkYXRlVmVyc2VzQWxpZ25tZW50U3RhdHVzfVxuICAgICAgLz5cbiAgICApXG4gIH0pXG5cbiAgY29uc3QgaGFuZGxlQWxpZ25CdXR0b25DbGljayA9ICgpID0+IHtcbiAgICBpZiAodmVyc2VzRm9yUmVmPy5sZW5ndGggPiAxKSB7IC8vIGlmIHRoZXJlIGFyZSBtdWx0aXBsZSB2ZXJzZXMgc2hvd24gaW4gY2FyZCwgbmVlZCB0byBwcm9tcHQgdXNlciBmb3Igd2hpY2ggdmVyc2UgdG8gYWxpZ25cbiAgICAgIHNldFN0YXRlKHsgc2hvd0FsaWdubWVudFBvcHVwOiB0cnVlIH0pXG4gICAgfSBlbHNlIGlmICh2ZXJzZXNGb3JSZWY/Lmxlbmd0aCA9PT0gMSkgeyAvLyBpZiBvbmx5IG9uZSB2ZXJzZSBpcyBzaG93biBvbiBjYXJkLCB0aGVuIGVkaXQgdGhhdCB2ZXJzZVxuICAgICAgc2V0U3RhdGUoeyB2ZXJzZVNlbGVjdGVkRm9yQWxpZ25tZW50OiB2ZXJzZXNGb3JSZWZbMF0gfSlcbiAgICB9XG4gIH1cblxuICBjb25zdCBvblJlbmRlclRvb2xiYXIgPSAoeyBpdGVtcyB9KSA9PiB7XG4gICAgY29uc3QgbmV3SXRlbXMgPSBbLi4uaXRlbXNdXG5cbiAgICBsZXQgYWxsVmVyc2VzQWxpZ25lZCA9IGZhbHNlXG5cbiAgICAvLyBDaGVjayBpZiBhbGwgdmFsdWVzIGluIHZlcnNlc0FsaWdubWVudFN0YXR1cyBhcmUgdHJ1ZVxuICAgIGlmICh2ZXJzZXNBbGlnbm1lbnRTdGF0dXMpIHtcbiAgICAgIGFsbFZlcnNlc0FsaWduZWQgPSBPYmplY3QudmFsdWVzKHZlcnNlc0FsaWdubWVudFN0YXR1cykuZXZlcnkoYWxpZ25TdGF0dXMgPT4gYWxpZ25TdGF0dXMgPT09IHRydWUpXG4gICAgfVxuXG4gICAgbGV0IGFsaWduSWNvbiA9IG51bGxcbiAgICBsZXQgYWxpZ25CdXR0b25UZXh0ID0gJydcblxuICAgIGlmIChhbGxWZXJzZXNBbGlnbmVkKSB7XG4gICAgICBhbGlnbkljb24gPSA8UnhMaW5rMiBpZD17YHZhbGlkX2ljb25fJHtyZXNvdXJjZUlkfWB9IGNvbG9yPScjQkJCJyAvPlxuICAgICAgYWxpZ25CdXR0b25UZXh0ID0gJ0FsaWdubWVudCBpcyBWYWxpZCdcbiAgICB9IGVsc2Uge1xuICAgICAgY29uc3QgY29sb3IgPSBkaXNhYmxlQ2hhbmdlQnV0dG9ucyA/ICcjQkJCJyA6ICcjMDAwJyAvLyBncmF5IG91dCBidXR0b24gaWYgZGlzYWJsZWRcbiAgICAgIGFsaWduSWNvbiA9IDxSeExpbmtCcmVhazIgaWQ9e2BpbnZhbGlkX2FsaWdubWVudF9pY29uXyR7cmVzb3VyY2VJZH1gfSBjb2xvcj17Y29sb3J9IC8+XG4gICAgICBhbGlnbkJ1dHRvblRleHQgPSAnQWxpZ25tZW50IGlzIEludmFsaWQnXG4gICAgfVxuXG4gICAgaWYgKHNldFdvcmRBbGlnbmVyU3RhdHVzICYmIHJlc291cmNlSWQgIT09ICdPUklHSU5BTF9TT1VSQ0UnKSB7XG4gICAgICBuZXdJdGVtcy5wdXNoKFxuICAgICAgICA8SWNvbkJ1dHRvblxuICAgICAgICAgIGlkPXtgYWxpZ25tZW50X2ljb25fJHtyZXNvdXJjZUlkfWB9XG4gICAgICAgICAga2V5PSdjaGVja2luZy1idXR0b24nXG4gICAgICAgICAgb25DbGljaz17ZGlzYWJsZUNoYW5nZUJ1dHRvbnMgPyBudWxsIDogaGFuZGxlQWxpZ25CdXR0b25DbGlja31cbiAgICAgICAgICB0aXRsZT17YWxpZ25CdXR0b25UZXh0fVxuICAgICAgICAgIGFyaWEtbGFiZWw9e2FsaWduQnV0dG9uVGV4dH1cbiAgICAgICAgICBzdHlsZT17eyBjdXJzb3I6ICdwb2ludGVyJyB9fVxuICAgICAgICA+XG4gICAgICAgICAge2FsaWduSWNvbn1cbiAgICAgICAgPC9JY29uQnV0dG9uPlxuICAgICAgKVxuICAgIH1cblxuICAgIC8vIE9ubHkgc2hvdyB0aGUgdXBkYXRlIGZyb20gbWFpbiBidXR0b24gaWYgc2NyaXB0dXJlIGlzIG5vdCBvcmlnaW5hbCB0ZXh0LlxuICAgICF1c2luZ09yaWdpbmFsQmlibGUgJiYgbmV3SXRlbXMucHVzaChcbiAgICAgIDw+XG4gICAgICAgIDxVcGRhdGVCcmFuY2hCdXR0b24gey4uLnVwZGF0ZUJ1dHRvblByb3BzfSBpc0xvYWRpbmc9e2lzVXBkYXRlTG9hZGluZyB8fCBzdGFydFNhdmV9Lz5cbiAgICAgICAgPEVycm9yRGlhbG9nIHRpdGxlPXtkaWFsb2dUaXRsZX0gY29udGVudD17ZGlhbG9nTWVzc2FnZX0gb3Blbj17aXNFcnJvckRpYWxvZ09wZW59IG9uQ2xvc2U9e29uQ2xvc2VFcnJvckRpYWxvZ30gaXNMb2FkaW5nPXsgaXNVcGRhdGVMb2FkaW5nIHx8IHN0YXJ0U2F2ZSB9IGxpbms9e2RpYWxvZ0xpbmt9IGxpbmtUb29sdGlwPXtkaWFsb2dMaW5rVG9vbHRpcH0gLz5cbiAgICAgIDwvPlxuICAgIClcblxuICAgIHJldHVybiBuZXdJdGVtc1xuICB9XG5cbiAgY29uc3Qgc2VsZWN0aW9uQm9va09iamVjdHMgPSBvcmlnaW5hbFNjcmlwdHVyZUJvb2tPYmplY3RzPy5jaGFwdGVyc1xuXG4gIHJldHVybiAoXG4gICAgPFNlbGVjdGlvbnNDb250ZXh0UHJvdmlkZXJcbiAgICAgIGJvb2tPYmplY3Q9e3NlbGVjdGlvbkJvb2tPYmplY3RzIHx8IHt9fVxuICAgICAgb2NjdXJyZW5jZT17Zml4T2NjdXJyZW5jZShzZWxlY3RlZFF1b3RlPy5vY2N1cnJlbmNlKX1cbiAgICAgIG9uU2VsZWN0aW9ucz17bmV3U2VsZWN0aW9ucyA9PiB7XG4gICAgICAgIC8vIGNvbnNvbGUubG9nKCdvblNlbGVjdGlvbnMnLCBuZXdTZWxlY3Rpb25zKVxuICAgICAgfX1cbiAgICAgIHF1b3RlPXtzZWxlY3RlZFF1b3RlPy5xdW90ZSB8fCAnJ31cbiAgICAgIHJlZlN0cmluZz17c2VsZWN0aW9uc1JlZnN9XG4gICAgICBzZWxlY3Rpb25zPXtzZWxlY3Rpb25zfVxuICAgID5cbiAgICAgIDxDYXJkXG4gICAgICAgIGlkPXtgc2NyaXB0dXJlX2NhcmRfJHtjYXJkTnVtfWB9XG4gICAgICAgIHRpdGxlPXtzY3JpcHR1cmVMYWJlbH1cbiAgICAgICAgc2V0dGluZ3NUaXRsZT17c2NyaXB0dXJlVGl0bGUgKyAnIFNldHRpbmdzJ31cbiAgICAgICAgaXRlbXM9e2l0ZW1zfVxuICAgICAgICBjbGFzc2VzPXtjbGFzc2VzfVxuICAgICAgICBoZWFkZXJzPXtoZWFkZXJzfVxuICAgICAgICBmaWx0ZXJzPXtmaWx0ZXJzfVxuICAgICAgICBmb250U2l6ZT17Zm9udFNpemV9XG4gICAgICAgIGl0ZW1JbmRleD17aXRlbUluZGV4fVxuICAgICAgICBzZXRGaWx0ZXJzPXtzZXRGaWx0ZXJzfVxuICAgICAgICBzZXRGb250U2l6ZT17c2V0Rm9udFNpemV9XG4gICAgICAgIHNldEl0ZW1JbmRleD17c2V0SXRlbUluZGV4fVxuICAgICAgICBtYXJrZG93blZpZXc9e21hcmtkb3duVmlld31cbiAgICAgICAgc2V0TWFya2Rvd25WaWV3PXtzZXRNYXJrZG93blZpZXd9XG4gICAgICAgIGdldEN1c3RvbUNvbXBvbmVudD17Z2V0U2NyaXB0dXJlU2VsZWN0b3J9XG4gICAgICAgIGhpZGVNYXJrZG93blRvZ2dsZVxuICAgICAgICBvbk1lbnVDbG9zZT17b25NZW51Q2xvc2V9XG4gICAgICAgIG9uTWluaW1pemU9e29uTWluaW1pemUgPyAoKSA9PiBvbk1pbmltaXplKGlkLCBzY3JpcHR1cmVUaXRsZSkgOiBudWxsfVxuICAgICAgICBlZGl0YWJsZT17ZW5hYmxlRWRpdCB8fCBlbmFibGVBbGlnbm1lbnR9XG4gICAgICAgIHNhdmVkPXtkaXNhYmxlQ2hhbmdlQnV0dG9ucyB8fCBzdGFydFNhdmUgfHwgIWhhdmVVbnNhdmVkQ2hhbmdlc30gLy8gZ3JheSBvdXQgc2F2ZSBidXR0b24gaWYgZGlzYWJsZWQsIGlmIHNhdmluZywgb3IgaWYgbm8gdW5zYXZlZCBjaGFuZ2VzXG4gICAgICAgIG9uU2F2ZUVkaXQ9eygpID0+IHNldFN0YXRlKHsgc2F2ZUNsaWNrZWQ6IHRydWUgfSl9XG4gICAgICAgIG9uUmVuZGVyVG9vbGJhcj17b25SZW5kZXJUb29sYmFyfVxuICAgICAgPlxuICAgICAgICA8ZGl2IGlkPVwic2NyaXB0dXJlLXBhbmUtbGlzdFwiPlxuICAgICAgICAgIHtyZW5kZXJlZFNjcmlwdHVyZVBhbmVzfVxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvQ2FyZD5cbiAgICAgIDxWZXJzZVNlbGVjdG9yUG9wdXBcbiAgICAgICAgcmVzb3VyY2VJZD17cmVzb3VyY2VJZH1cbiAgICAgICAgb3Blbj17c2hvd0FsaWdubWVudFBvcHVwfVxuICAgICAgICBvbkNsb3NlPXsoKSA9PiBzZXRTdGF0ZSh7IHNob3dBbGlnbm1lbnRQb3B1cDogZmFsc2UgfSl9XG4gICAgICAgIHZlcnNlc0ZvclJlZj17dmVyc2VzRm9yUmVmfVxuICAgICAgICB2ZXJzZXNBbGlnbm1lbnRTdGF0dXM9e3ZlcnNlc0FsaWdubWVudFN0YXR1c31cbiAgICAgICAgb25WZXJzZVNlbGVjdD17KHZlcnNlKSA9PiBzZXRTdGF0ZSh7XG4gICAgICAgICAgdmVyc2VTZWxlY3RlZEZvckFsaWdubWVudDogdmVyc2UsXG4gICAgICAgICAgc2hvd0FsaWdubWVudFBvcHVwOiBmYWxzZSxcbiAgICAgICAgfSl9XG4gICAgICAvPlxuICAgIDwvU2VsZWN0aW9uc0NvbnRleHRQcm92aWRlcj5cbiAgKVxufVxuXG5TY3JpcHR1cmVDYXJkLnByb3BUeXBlcyA9IHtcbiAgLyoqIHJlcG8gYnJhbmNoIG9yIHRhZyBzdWNoIGFzIG1hc3RlciAqL1xuICBhcHBSZWY6IFByb3BUeXBlcy5zdHJpbmcuaXNSZXF1aXJlZCxcbiAgLyoqIGF1dGhlbnRpY2F0aW9uIGluZm8gKi9cbiAgYXV0aGVudGljYXRpb246IFByb3BUeXBlcy5vYmplY3QsXG4gIC8qKiBpbmRleCBmb3IgY3VycmVudCBib29rIChlLmcuICcwMScgZm9yICdnZW4nKSovXG4gIGJvb2tJbmRleDogUHJvcFR5cGVzLnN0cmluZyxcbiAgLyoqIHNjcmlwdHVyZSBjYXJkIG51bWJlciAoMCB0byAyIGZvciBleGFtcGxlKSAqL1xuICBjYXJkTnVtOiBQcm9wVHlwZXMubnVtYmVyLmlzUmVxdWlyZWQsXG4gIC8qKiBDU1MgY2xhc3NlcyAqL1xuICBjbGFzc2VzOiBQcm9wVHlwZXMub2JqZWN0LFxuICAvKiogaWYgdHJ1ZSB0aGVuIHdvcmQgZGF0YSBob3ZlciBpcyBzaG93biAqL1xuICBkaXNhYmxlV29yZFBvcG92ZXI6IFByb3BUeXBlcy5ib29sLFxuICAvKiogZ2V0IGxhbmd1YWdlIGRldGFpbHMgKi9cbiAgZ2V0TGFuZ3VhZ2U6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gIC8qKiBmdW5jdGlvbiB0byBnZXQgbGF0ZXN0IGxleGljb24gZGF0YSAqL1xuICBnZXRMZXhpY29uRGF0YTogUHJvcFR5cGVzLmZ1bmMsXG4gIC8qKiBvcHRpb25hbCB1cmwgZm9yIGdyZWVrIHJlcG8gKi9cbiAgZ3JlZWtSZXBvVXJsOiBQcm9wVHlwZXMuc3RyaW5nLFxuICAvKiogb3B0aW9uYWwgdXJsIGZvciBoZWJyZXcgcmVwbyAqL1xuICBoZWJyZXdSZXBvVXJsOiBQcm9wVHlwZXMuc3RyaW5nLFxuICAvKiogb3B0aW9uYWwgaHR0cCB0aW1lb3V0IGluIG1pbGxpc2Vjb25kcyBmb3IgZmV0Y2hpbmcgcmVzb3VyY2VzLCBkZWZhdWx0IGlzIDAgKHZlcnkgbG9uZyB3YWl0KSAqL1xuICBodHRwQ29uZmlnOiBQcm9wVHlwZXMub2JqZWN0LFxuICAvKiogaHRtbCBpZGVudGlmaWVyIHRvIHVzZSBmb3IgY2FyZCAqL1xuICBpZDogUHJvcFR5cGVzLnN0cmluZyxcbiAgLyoqIG1ldGhvZCB0byBkZXRlcm1pbmUgaWYgTlQgb3IgT1QgKi9cbiAgaXNOVDogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgLyoqIHVzZXItbmFtZSAqL1xuICBsb2dnZWRJblVzZXI6IFByb3BUeXBlcy5zdHJpbmcsXG4gIC8qKiBmdW5jdGlvbiB0byBtaW5pbWl6ZSB0aGUgY2FyZCAob3B0aW9uYWwpICovXG4gIG9uTWluaW1pemU6IFByb3BUeXBlcy5mdW5jLFxuICAvKiogb3B0aW9uYWwgY2FsbGJhY2sgaWYgZXJyb3IgbG9hZGluZyByZXNvdXJjZSwgcGFyYW1ldGVyIHJldHVybmVkIGFyZTpcbiAgICogICAgKHtzdHJpbmd9IGVycm9yTWVzc2FnZSwge2Jvb2xlYW59IGlzQWNjZXNzRXJyb3IsIHtvYmplY3R9IHJlc291cmNlU3RhdHVzKVxuICAgKiAgICAgIC0gaXNBY2Nlc3NFcnJvciAtIGlzIHRydWUgaWYgdGhpcyB3YXMgYW4gZXJyb3IgdHJ5aW5nIHRvIGFjY2VzcyBmaWxlXG4gICAqICAgICAgLSByZXNvdXJjZVN0YXR1cyAtIGlzIG9iamVjdCBjb250YWluaW5nIGRldGFpbHMgYWJvdXQgcHJvYmxlbXMgZmV0Y2hpbmcgcmVzb3VyY2UgKi9cbiAgb25SZXNvdXJjZUVycm9yOiBQcm9wVHlwZXMuZnVuYyxcbiAgLyoqIHRoZSBvcmlnaW5hbCBzY3JpcHR1cmUgYm9va09iamVjdHMgZm9yIGN1cnJlbnQgYm9vayAqL1xuICBvcmlnaW5hbFNjcmlwdHVyZUJvb2tPYmplY3RzOiBQcm9wVHlwZXMub2JqZWN0LFxuICByZWZlcmVuY2U6IFByb3BUeXBlcy5zaGFwZSh7XG4gICAgLyoqIGJvb2sgSUQgdG8gdXNlLCBvbGRlciBsaWJyYXJpZXMgdXNlZCBwcm9qZWN0SWQgKi9cbiAgICBib29rSWQ6IFByb3BUeXBlcy5zdHJpbmcuaXNSZXF1aXJlZCxcbiAgICAvKiogb2xkZXIgbGlicmFyaWVzIHVzZWQgcHJvamVjdElkIGluc3RlYWQgb2YgYm9va0lkICovXG4gICAgcHJvamVjdElkOiBQcm9wVHlwZXMuc3RyaW5nLFxuICAgIC8qKiBjdXJyZW50IGNoYXB0ZXIgbnVtYmVyICovXG4gICAgY2hhcHRlcjogUHJvcFR5cGVzLm9uZU9mVHlwZShbUHJvcFR5cGVzLm51bWJlciwgUHJvcFR5cGVzLnN0cmluZ10pLmlzUmVxdWlyZWQsXG4gICAgLyoqIGN1cnJlbnQgdmVyc2UgbnVtYmVyICovXG4gICAgdmVyc2U6IFByb3BUeXBlcy5vbmVPZlR5cGUoW1Byb3BUeXBlcy5udW1iZXIsIFByb3BUeXBlcy5zdHJpbmddKS5pc1JlcXVpcmVkLFxuICB9KSxcbiAgLyoqIHJlc291cmNlIG9iamVjdCAqL1xuICByZXNvdXJjZTogUHJvcFR5cGVzLnNoYXBlKHtcbiAgICAvKiogcmVzb3VyY2UgbGFuZ3VhZ2UgdG8gdXNlICovXG4gICAgbGFuZ3VhZ2VJZDogUHJvcFR5cGVzLnN0cmluZy5pc1JlcXVpcmVkLFxuICAgIC8qKiByZXBvIG93bmVyIHN1Y2ggYXMgdW5mb2xkaW5nV29yZCAqL1xuICAgIG93bmVyOiBQcm9wVHlwZXMuc3RyaW5nLmlzUmVxdWlyZWQsXG4gICAgLyoqIHJlc291cmNlSWQgdG8gdXNlIChlLmcuIHVnbnQpICovXG4gICAgcmVzb3VyY2VJZDogUHJvcFR5cGVzLnN0cmluZy5pc1JlcXVpcmVkLFxuICAgIC8qKiByZXBvIG93bmVyIGZvciBvcmlnaW5hbCBsYW5ndWFnZXMgc3VjaCBhcyB1bmZvbGRpbmdXb3JkICovXG4gICAgb3JpZ2luYWxMYW5ndWFnZU93bmVyOiBQcm9wVHlwZXMuc3RyaW5nLmlzUmVxdWlyZWQsXG4gIH0pLFxuICAvKiogcmVzb3VyY2VMaW5rICovXG4gIHJlc291cmNlTGluazogUHJvcFR5cGVzLmFueSxcbiAgLyoqVGhpcyBpcyBjdXJyZW50bHkgc2VsZWN0ZWQgcXVvdGUgKi9cbiAgc2VsZWN0ZWRRdW90ZTogUHJvcFR5cGVzLm9iamVjdCxcbiAgLyoqIHNlcnZlciAoZS5nLiAnaHR0cHM6Ly9naXQuZG9vcjQzLm9yZycpICovXG4gIHNlcnZlcjogUHJvcFR5cGVzLnN0cmluZy5pc1JlcXVpcmVkLFxuICAvKiogY2FsbGJhY2sgdG8gdXBkYXRlIGxvYWRpbmcgc3RhdGUgKi9cbiAgc2V0QXJlUmVzb3VyY2VzTG9hZGluZzogUHJvcFR5cGVzLmZ1bmMsXG4gIC8qKiBjYWxsYmFjayB0byB1cGRhdGUgc2F2aW5nIHN0YXRlKi9cbiAgc2V0QXJlUmVzb3VyY2VzU2F2aW5nOiBQcm9wVHlwZXMuZnVuYyxcbiAgLyoqIGNhbGxiYWNrIHRvIHJlcG9ydCBjYXJkIG1lcmdlIHN0YXR1cyAqL1xuICBzZXRDYXJkc0xvYWRpbmdNZXJnZTogUHJvcFR5cGVzLmZ1bmMsXG4gIC8qKiBjYWxsYmFjayB0byByZXBvcnQgY2FyZCB1cGRhdGUgc3RhdHVzICovXG4gIHNldENhcmRzTG9hZGluZ1VwZGF0ZTogUHJvcFR5cGVzLmZ1bmMsXG4gIC8qKiBjYWxsYmFjayB0byByZXBvcnQgY2FyZCBzYXZpbmcgc3RhdHVzICovXG4gIHNldENhcmRzU2F2aW5nOiBQcm9wVHlwZXMuZnVuYyxcbiAgLyoqIGZ1bmN0aW9uIHRvIHNldCBzdGF0ZSBpbiBhcHAgdGhhdCB0aGVyZSBhcmUgdW5zYXZlZCBjaGFuZ2VzICovXG4gIHNldFNhdmVkQ2hhbmdlczogUHJvcFR5cGVzLmZ1bmMsXG4gIC8qKiBjYWxsYmFjayB0byB1cGRhdGUgd29yZCBhbGlnbmVyIHN0YXRlICovXG4gIHNldFdvcmRBbGlnbmVyU3RhdHVzOiBQcm9wVHlwZXMuZnVuYyxcbiAgLyoqIHRpdGxlIGZvciBzY3JpcHR1cmUgY2FyZCAqL1xuICB0aXRsZTogUHJvcFR5cGVzLnN0cmluZy5pc1JlcXVpcmVkLFxuICAvKiogb3B0aW9uYWwgZnVuY3Rpb24gZm9yIGxvY2FsaXphdGlvbiAqL1xuICB0cmFuc2xhdGU6IFByb3BUeXBlcy5mdW5jLFxuICAvKiogY2FsbGJhY2sgdG8gdXBkYXRlIHRoZSBjYXJkJ3MgbWVyZ2Ugc3RhdGUgaW4gYXBwICovXG4gIHVwZGF0ZU1lcmdlU3RhdGU6IFByb3BUeXBlcy5mdW5jLFxuICAvKiogdXNlIG1ldGhvZCBmb3IgdXNpbmcgbG9jYWwgc3RvcmFnZSBzcGVjaWZpYyBmb3IgdXNlciAqL1xuICB1c2VVc2VyTG9jYWxTdG9yYWdlOiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxufVxuIl0sIm1hcHBpbmdzIjoiOytDQUNBLHFKQUFBQSxtQkFBQSxZQUFBQSxvQkFBQSxXQUFBQyxDQUFBLFNBQUFD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
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "single-scripture-rcl",
|
|
3
3
|
"description": "A React Component Library for Rendering a Single Scripture Resource.",
|
|
4
|
-
"version": "3.4.
|
|
4
|
+
"version": "3.4.23-beta",
|
|
5
5
|
"repository": {
|
|
6
6
|
"type": "git",
|
|
7
7
|
"url": "https://github.com/unfoldingWord/single-scripture-rcl.git"
|