@digitransit-component/digitransit-component-autosuggest-panel 9.0.0 → 9.0.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,6 +1,6 @@
1
1
  (function (global, factory) {
2
- typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports, require('classnames'), require('prop-types'), require('react'), require('react-i18next'), require('react-sortablejs'), require('@digitransit-component/digitransit-component-autosuggest'), require('@digitransit-component/digitransit-component-icon'), require('lodash/isEmpty.js'), require('downshift'), require('i18next')) :
3
- typeof define === 'function' && define.amd ? define(['exports', 'classnames', 'prop-types', 'react', 'react-i18next', 'react-sortablejs', '@digitransit-component/digitransit-component-autosuggest', '@digitransit-component/digitransit-component-icon', 'lodash/isEmpty.js', 'downshift', 'i18next'], factory) :
2
+ typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports, require('classnames'), require('prop-types'), require('react'), require('react-i18next'), require('react-sortablejs'), require('@digitransit-component/digitransit-component-autosuggest'), require('@digitransit-component/digitransit-component-icon'), require('lodash/isEmpty'), require('downshift'), require('i18next')) :
3
+ typeof define === 'function' && define.amd ? define(['exports', 'classnames', 'prop-types', 'react', 'react-i18next', 'react-sortablejs', '@digitransit-component/digitransit-component-autosuggest', '@digitransit-component/digitransit-component-icon', 'lodash/isEmpty', 'downshift', 'i18next'], factory) :
4
4
  (global = typeof globalThis !== 'undefined' ? globalThis : global || self, factory(global["@digitransit-component/digitransit-component-autosuggest-panel"] = {}, global.cx, global.PropTypes, global.React, global.reactI18next, global.reactSortablejs, global.DTAutosuggest, global.Icon, global.isEmpty, global.downshift, global.i18next));
5
5
  })(this, (function (exports, cx, PropTypes, React, reactI18next, reactSortablejs, DTAutoSuggest, Icon, isEmpty, downshift, i18next) { 'use strict';
6
6
 
@@ -837,4 +837,4 @@
837
837
  Object.defineProperty(exports, '__esModule', { value: true });
838
838
 
839
839
  }));
840
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguZGV2ZWxvcG1lbnQuY2pzIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvQGJhYmVsL3J1bnRpbWUvaGVscGVycy9lc20vdHlwZW9mLmpzIiwiLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL0BiYWJlbC9ydW50aW1lL2hlbHBlcnMvZXNtL3RvUHJpbWl0aXZlLmpzIiwiLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL0BiYWJlbC9ydW50aW1lL2hlbHBlcnMvZXNtL3RvUHJvcGVydHlLZXkuanMiLCIuLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvQGJhYmVsL3J1bnRpbWUvaGVscGVycy9lc20vZGVmaW5lUHJvcGVydHkuanMiLCIuLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvQGJhYmVsL3J1bnRpbWUvaGVscGVycy9lc20vb2JqZWN0V2l0aG91dFByb3BlcnRpZXNMb29zZS5qcyIsIi4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9AYmFiZWwvcnVudGltZS9oZWxwZXJzL2VzbS9vYmplY3RXaXRob3V0UHJvcGVydGllcy5qcyIsIi4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9zdHlsZS1pbmplY3QvZGlzdC9zdHlsZS1pbmplY3QuZXMuanMiLCIuLi9zcmMvaGVscGVycy9TZWxlY3QuanN4IiwiLi4vc3JjL2hlbHBlcnMvdHJhbnNsYXRpb25zLmpzIiwiLi4vc3JjL2hlbHBlcnMvaTE4bi5qcyIsIi4uL3NyYy9pbmRleC5qc3giXSwic291cmNlc0NvbnRlbnQiOlsiZnVuY3Rpb24gX3R5cGVvZihvKSB7XG4gIFwiQGJhYmVsL2hlbHBlcnMgLSB0eXBlb2ZcIjtcblxuICByZXR1cm4gX3R5cGVvZiA9IFwiZnVuY3Rpb25cIiA9PSB0eXBlb2YgU3ltYm9sICYmIFwic3ltYm9sXCIgPT0gdHlwZW9mIFN5bWJvbC5pdGVyYXRvciA/IGZ1bmN0aW9uIChvKSB7XG4gICAgcmV0dXJuIHR5cGVvZiBvO1xuICB9IDogZnVuY3Rpb24gKG8pIHtcbiAgICByZXR1cm4gbyAmJiBcImZ1bmN0aW9uXCIgPT0gdHlwZW9mIFN5bWJvbCAmJiBvLmNvbnN0cnVjdG9yID09PSBTeW1ib2wgJiYgbyAhPT0gU3ltYm9sLnByb3RvdHlwZSA/IFwic3ltYm9sXCIgOiB0eXBlb2YgbztcbiAgfSwgX3R5cGVvZihvKTtcbn1cbmV4cG9ydCB7IF90eXBlb2YgYXMgZGVmYXVsdCB9OyIsImltcG9ydCBfdHlwZW9mIGZyb20gXCIuL3R5cGVvZi5qc1wiO1xuZnVuY3Rpb24gdG9QcmltaXRpdmUodCwgcikge1xuICBpZiAoXCJvYmplY3RcIiAhPSBfdHlwZW9mKHQpIHx8ICF0KSByZXR1cm4gdDtcbiAgdmFyIGUgPSB0W1N5bWJvbC50b1ByaW1pdGl2ZV07XG4gIGlmICh2b2lkIDAgIT09IGUpIHtcbiAgICB2YXIgaSA9IGUuY2FsbCh0LCByIHx8IFwiZGVmYXVsdFwiKTtcbiAgICBpZiAoXCJvYmplY3RcIiAhPSBfdHlwZW9mKGkpKSByZXR1cm4gaTtcbiAgICB0aHJvdyBuZXcgVHlwZUVycm9yKFwiQEB0b1ByaW1pdGl2ZSBtdXN0IHJldHVybiBhIHByaW1pdGl2ZSB2YWx1ZS5cIik7XG4gIH1cbiAgcmV0dXJuIChcInN0cmluZ1wiID09PSByID8gU3RyaW5nIDogTnVtYmVyKSh0KTtcbn1cbmV4cG9ydCB7IHRvUHJpbWl0aXZlIGFzIGRlZmF1bHQgfTsiLCJpbXBvcnQgX3R5cGVvZiBmcm9tIFwiLi90eXBlb2YuanNcIjtcbmltcG9ydCB0b1ByaW1pdGl2ZSBmcm9tIFwiLi90b1ByaW1pdGl2ZS5qc1wiO1xuZnVuY3Rpb24gdG9Qcm9wZXJ0eUtleSh0KSB7XG4gIHZhciBpID0gdG9QcmltaXRpdmUodCwgXCJzdHJpbmdcIik7XG4gIHJldHVybiBcInN5bWJvbFwiID09IF90eXBlb2YoaSkgPyBpIDogaSArIFwiXCI7XG59XG5leHBvcnQgeyB0b1Byb3BlcnR5S2V5IGFzIGRlZmF1bHQgfTsiLCJpbXBvcnQgdG9Qcm9wZXJ0eUtleSBmcm9tIFwiLi90b1Byb3BlcnR5S2V5LmpzXCI7XG5mdW5jdGlvbiBfZGVmaW5lUHJvcGVydHkoZSwgciwgdCkge1xuICByZXR1cm4gKHIgPSB0b1Byb3BlcnR5S2V5KHIpKSBpbiBlID8gT2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIHIsIHtcbiAgICB2YWx1ZTogdCxcbiAgICBlbnVtZXJhYmxlOiAhMCxcbiAgICBjb25maWd1cmFibGU6ICEwLFxuICAgIHdyaXRhYmxlOiAhMFxuICB9KSA6IGVbcl0gPSB0LCBlO1xufVxuZXhwb3J0IHsgX2RlZmluZVByb3BlcnR5IGFzIGRlZmF1bHQgfTsiLCJmdW5jdGlvbiBfb2JqZWN0V2l0aG91dFByb3BlcnRpZXNMb29zZShyLCBlKSB7XG4gIGlmIChudWxsID09IHIpIHJldHVybiB7fTtcbiAgdmFyIHQgPSB7fTtcbiAgZm9yICh2YXIgbiBpbiByKSBpZiAoe30uaGFzT3duUHJvcGVydHkuY2FsbChyLCBuKSkge1xuICAgIGlmICgtMSAhPT0gZS5pbmRleE9mKG4pKSBjb250aW51ZTtcbiAgICB0W25dID0gcltuXTtcbiAgfVxuICByZXR1cm4gdDtcbn1cbmV4cG9ydCB7IF9vYmplY3RXaXRob3V0UHJvcGVydGllc0xvb3NlIGFzIGRlZmF1bHQgfTsiLCJpbXBvcnQgb2JqZWN0V2l0aG91dFByb3BlcnRpZXNMb29zZSBmcm9tIFwiLi9vYmplY3RXaXRob3V0UHJvcGVydGllc0xvb3NlLmpzXCI7XG5mdW5jdGlvbiBfb2JqZWN0V2l0aG91dFByb3BlcnRpZXMoZSwgdCkge1xuICBpZiAobnVsbCA9PSBlKSByZXR1cm4ge307XG4gIHZhciBvLFxuICAgIHIsXG4gICAgaSA9IG9iamVjdFdpdGhvdXRQcm9wZXJ0aWVzTG9vc2UoZSwgdCk7XG4gIGlmIChPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKSB7XG4gICAgdmFyIG4gPSBPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKGUpO1xuICAgIGZvciAociA9IDA7IHIgPCBuLmxlbmd0aDsgcisrKSBvID0gbltyXSwgLTEgPT09IHQuaW5kZXhPZihvKSAmJiB7fS5wcm9wZXJ0eUlzRW51bWVyYWJsZS5jYWxsKGUsIG8pICYmIChpW29dID0gZVtvXSk7XG4gIH1cbiAgcmV0dXJuIGk7XG59XG5leHBvcnQgeyBfb2JqZWN0V2l0aG91dFByb3BlcnRpZXMgYXMgZGVmYXVsdCB9OyIsImZ1bmN0aW9uIHN0eWxlSW5qZWN0KGNzcywgcmVmKSB7XG4gIGlmICggcmVmID09PSB2b2lkIDAgKSByZWYgPSB7fTtcbiAgdmFyIGluc2VydEF0ID0gcmVmLmluc2VydEF0O1xuXG4gIGlmICghY3NzIHx8IHR5cGVvZiBkb2N1bWVudCA9PT0gJ3VuZGVmaW5lZCcpIHsgcmV0dXJuOyB9XG5cbiAgdmFyIGhlYWQgPSBkb2N1bWVudC5oZWFkIHx8IGRvY3VtZW50LmdldEVsZW1lbnRzQnlUYWdOYW1lKCdoZWFkJylbMF07XG4gIHZhciBzdHlsZSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3N0eWxlJyk7XG4gIHN0eWxlLnR5cGUgPSAndGV4dC9jc3MnO1xuXG4gIGlmIChpbnNlcnRBdCA9PT0gJ3RvcCcpIHtcbiAgICBpZiAoaGVhZC5maXJzdENoaWxkKSB7XG4gICAgICBoZWFkLmluc2VydEJlZm9yZShzdHlsZSwgaGVhZC5maXJzdENoaWxkKTtcbiAgICB9IGVsc2Uge1xuICAgICAgaGVhZC5hcHBlbmRDaGlsZChzdHlsZSk7XG4gICAgfVxuICB9IGVsc2Uge1xuICAgIGhlYWQuYXBwZW5kQ2hpbGQoc3R5bGUpO1xuICB9XG5cbiAgaWYgKHN0eWxlLnN0eWxlU2hlZXQpIHtcbiAgICBzdHlsZS5zdHlsZVNoZWV0LmNzc1RleHQgPSBjc3M7XG4gIH0gZWxzZSB7XG4gICAgc3R5bGUuYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUoY3NzKSk7XG4gIH1cbn1cblxuZXhwb3J0IGRlZmF1bHQgc3R5bGVJbmplY3Q7XG4iLCJpbXBvcnQgUHJvcFR5cGVzIGZyb20gJ3Byb3AtdHlwZXMnO1xuaW1wb3J0IGN4IGZyb20gJ2NsYXNzbmFtZXMnO1xuaW1wb3J0IFJlYWN0IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7IHVzZVNlbGVjdCB9IGZyb20gJ2Rvd25zaGlmdCc7XG5pbXBvcnQgc3R5bGVzIGZyb20gJy4vc2VsZWN0LnNjc3MnO1xuXG5jb25zdCBTZWxlY3QgPSAoe1xuICB2YWx1ZSxcbiAgb3B0aW9ucyxcbiAgb25TbGFja1RpbWVTZWxlY3RlZCxcbiAgdmlhUG9pbnRJbmRleCxcbiAgaWQsXG4gIGxhYmVsLFxuICBpY29uLFxufSkgPT4ge1xuICBjb25zdCBsYWJlbElkID0gYCR7aWR9LWxhYmVsYDtcbiAgY29uc3Qgc2VsZWN0ZWRJdGVtID0gb3B0aW9ucy5maW5kKG9wdGlvbiA9PiBvcHRpb24udmFsdWUgPT09IHZhbHVlKTtcblxuICBjb25zdCB7XG4gICAgaXNPcGVuLFxuICAgIGdldFRvZ2dsZUJ1dHRvblByb3BzLFxuICAgIGdldE1lbnVQcm9wcyxcbiAgICBnZXRJdGVtUHJvcHMsXG4gICAgZ2V0TGFiZWxQcm9wcyxcbiAgICBoaWdobGlnaHRlZEluZGV4LFxuICB9ID0gdXNlU2VsZWN0KHtcbiAgICBzZWxlY3RlZEl0ZW0sXG4gICAgaXRlbXM6IG9wdGlvbnMsXG4gICAgbGFiZWxJZCxcbiAgICBpZCxcbiAgICBpdGVtVG9TdHJpbmc6IGl0ZW0gPT4gaXRlbS5kaXNwbGF5TmFtZSxcbiAgICBvblNlbGVjdGVkSXRlbUNoYW5nZTogKHsgc2VsZWN0ZWRJdGVtOiBuZXdJdGVtIH0pID0+IHtcbiAgICAgIG9uU2xhY2tUaW1lU2VsZWN0ZWQobmV3SXRlbS52YWx1ZSwgdmlhUG9pbnRJbmRleCk7XG4gICAgfSxcbiAgfSk7XG5cbiAgcmV0dXJuIChcbiAgICA8ZGl2IGNsYXNzTmFtZT17c3R5bGVzWydjb21ib2JveC1jb250YWluZXInXX0+XG4gICAgICA8ZGl2IGNsYXNzTmFtZT17c3R5bGVzLmNvbnRhaW5lcn0+XG4gICAgICAgIDxkaXYgey4uLmdldFRvZ2dsZUJ1dHRvblByb3BzKCl9PlxuICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT17c3R5bGVzWydsZWZ0LWNvbHVtbiddfT5cbiAgICAgICAgICAgIDxsYWJlbCB7Li4uZ2V0TGFiZWxQcm9wcygpfSBjbGFzc05hbWU9e3N0eWxlc1snY29tYm9ib3gtbGFiZWwnXX0+XG4gICAgICAgICAgICAgIHtsYWJlbH1cbiAgICAgICAgICAgIDwvbGFiZWw+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT17c3R5bGVzLmlucHV0fT5cbiAgICAgICAgICAgICAgPHNwYW4+e3NlbGVjdGVkSXRlbS5kaXNwbGF5TmFtZX08L3NwYW4+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAge2ljb259XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8dWxcbiAgICAgICAgICBjbGFzc05hbWU9e2N4KFtzdHlsZXMuc3VnZ2VzdGlvbnNDb250YWluZXJPcGVuLCAhaXNPcGVuICYmICdoaWRkZW4nXSl9XG4gICAgICAgICAgey4uLmdldE1lbnVQcm9wcygpfVxuICAgICAgICA+XG4gICAgICAgICAge2lzT3BlbiAmJlxuICAgICAgICAgICAgb3B0aW9ucy5tYXAoKG9wdGlvbiwgaW5kZXgpID0+IChcbiAgICAgICAgICAgICAgPGxpXG4gICAgICAgICAgICAgICAga2V5PXtvcHRpb24udmFsdWV9XG4gICAgICAgICAgICAgICAgY2xhc3NOYW1lPXtjeChbXG4gICAgICAgICAgICAgICAgICBzdHlsZXMuc3VnZ2VzdGlvbixcbiAgICAgICAgICAgICAgICAgIGluZGV4ID09PSBoaWdobGlnaHRlZEluZGV4ICYmIHN0eWxlcy5zdWdnZXN0aW9uSGlnaGxpZ2h0ZWQsXG4gICAgICAgICAgICAgICAgXSl9XG4gICAgICAgICAgICAgICAgey4uLmdldEl0ZW1Qcm9wcyh7IGluZGV4IH0pfVxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgPHNwYW4+e29wdGlvbi5kaXNwbGF5TmFtZX08L3NwYW4+XG4gICAgICAgICAgICAgIDwvbGk+XG4gICAgICAgICAgICApKX1cbiAgICAgICAgPC91bD5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICApO1xufTtcblxuU2VsZWN0LnByb3BUeXBlcyA9IHtcbiAgdmFsdWU6IFByb3BUeXBlcy5udW1iZXIuaXNSZXF1aXJlZCxcbiAgb25TbGFja1RpbWVTZWxlY3RlZDogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgb3B0aW9uczogUHJvcFR5cGVzLmFycmF5T2YoXG4gICAgUHJvcFR5cGVzLnNoYXBlKHtcbiAgICAgIGRpc3BsYXlOYW1lOiBQcm9wVHlwZXMuc3RyaW5nLmlzUmVxdWlyZWQsXG4gICAgICB2YWx1ZTogUHJvcFR5cGVzLm51bWJlci5pc1JlcXVpcmVkLFxuICAgIH0pLmlzUmVxdWlyZWQsXG4gICkuaXNSZXF1aXJlZCxcbiAgaWQ6IFByb3BUeXBlcy5zdHJpbmcuaXNSZXF1aXJlZCxcbiAgbGFiZWw6IFByb3BUeXBlcy5ub2RlLmlzUmVxdWlyZWQsXG4gIGljb246IFByb3BUeXBlcy5ub2RlLmlzUmVxdWlyZWQsXG4gIHZpYVBvaW50SW5kZXg6IFByb3BUeXBlcy5udW1iZXIuaXNSZXF1aXJlZCxcbn07XG5cbmV4cG9ydCBkZWZhdWx0IFNlbGVjdDtcbiIsImNvbnN0IHRyYW5zbGF0aW9ucyA9IHtcbiAgZGU6IHtcbiAgICB0cmFuc2xhdGlvbjoge1xuICAgICAgJ2FkZC12aWEtYnV0dG9uLWxhYmVsJzogJ0bDvGdlIFp3aXNjaGVuemllbCBoaW56dScsXG4gICAgICAnYWRkLXZpYS1kdXJhdGlvbi1idXR0b24tbGFiZWwnOlxuICAgICAgICAnU2V0emUgVW1zdGVpZ2V6ZWl0IGbDvHIgWndpc2NoZW56aWVsIHt7aW5kZXh9fScsXG4gICAgICAnYWRkLXZpYS1kdXJhdGlvbi1idXR0b24tbGFiZWwtY2xvc2UnOlxuICAgICAgICAnU2NobGllw59lIFVtc3RlaWdlemVpdC1BdXN3YWhsIGbDvHIgWndpc2NoZW56aWVsIHt7aW5kZXh9fScsXG4gICAgICAnYWRkLXZpYS1kdXJhdGlvbi1idXR0b24tbGFiZWwtb3Blbic6XG4gICAgICAgICfDlmZmbmUgVW1zdGVpZ2V6ZWl0LUF1c3dhaGwgZsO8ciBad2lzY2hlbnppZWwge3tpbmRleH19JyxcbiAgICAgICdtaW51dGUtc2hvcnQnOiAnbWluJyxcbiAgICAgICdyZW1vdmUtdmlhLWJ1dHRvbi1sYWJlbCc6ICdFbnRmZXJuZSBad2lzY2hlbnppZWwge3tpbmRleH19JyxcbiAgICAgICdzd2FwLW9yZGVyLWJ1dHRvbi1sYWJlbCc6ICdUYXVzY2hlIFN0YXJ0IG1pdCBaaWVsJyxcbiAgICAgICd2aWEtcG9pbnQnOiAnWndpc2NoZW56aWVsJyxcbiAgICAgICd2aWEtcG9pbnQtaW5kZXgnOiAnWndpc2NoZW56aWVsIHt7aW5kZXh9fScsXG4gICAgICAndmlhcG9pbnQtc2xhY2stYW1vdW50JzogJ1Vtc3RlaWdlemVpdCcsXG4gICAgfSxcbiAgfSxcbiAgZW46IHtcbiAgICB0cmFuc2xhdGlvbjoge1xuICAgICAgJ2FkZC12aWEtYnV0dG9uLWxhYmVsJzogJ0FkZCB2aWEgcG9pbnQnLFxuICAgICAgJ2FkZC12aWEtZHVyYXRpb24tYnV0dG9uLWxhYmVsJzpcbiAgICAgICAgJ1NldCBzdG9wIGR1cmF0aW9uIGF0IHZpYSBwb2ludCB7e2luZGV4fX0nLFxuICAgICAgJ2FkZC12aWEtZHVyYXRpb24tYnV0dG9uLWxhYmVsLWNsb3NlJzpcbiAgICAgICAgJ0Nsb3NlIHN0b3AgZHVyYXRpb24gc2VsZWN0b3IgYXQgdmlhIHBvaW50IHt7aW5kZXh9fScsXG4gICAgICAnYWRkLXZpYS1kdXJhdGlvbi1idXR0b24tbGFiZWwtb3Blbic6XG4gICAgICAgICdPcGVuIHN0b3AgZHVyYXRpb24gc2VsZWN0b3IgYXQgdmlhIHBvaW50IHt7aW5kZXh9fScsXG4gICAgICAnbWludXRlLXNob3J0JzogJ21pbicsXG4gICAgICAncmVtb3ZlLXZpYS1idXR0b24tbGFiZWwnOiAnUmVtb3ZlIHZpYSBwb2ludCB7e2luZGV4fX0nLFxuICAgICAgJ3N3YXAtb3JkZXItYnV0dG9uLWxhYmVsJzogJ1JldmVyc2Ugb3JpZ2luIGFuZCBkZXN0aW5hdGlvbicsXG4gICAgICAndmlhLXBvaW50JzogJ1ZpYSBwb2ludCcsXG4gICAgICAndmlhLXBvaW50LWluZGV4JzogJ1ZpYSBwb2ludCB7e2luZGV4fX0nLFxuICAgICAgJ3ZpYXBvaW50LXNsYWNrLWFtb3VudCc6ICdTdG9wIGR1cmF0aW9uJyxcbiAgICB9LFxuICB9LFxuICBmaToge1xuICAgIHRyYW5zbGF0aW9uOiB7XG4gICAgICAnYWRkLXZpYS1idXR0b24tbGFiZWwnOiAnTGlzw6TDpCB2w6RsaXBpc3RlJyxcbiAgICAgICdhZGQtdmlhLWR1cmF0aW9uLWJ1dHRvbi1sYWJlbCc6XG4gICAgICAgICdBc2V0YSB2w6RsaXBpc3RlZWxsZSB7e2luZGV4fX0gcHlzw6RoZHlrc2VuIGtlc3RvJyxcbiAgICAgICdhZGQtdmlhLWR1cmF0aW9uLWJ1dHRvbi1sYWJlbC1jbG9zZSc6XG4gICAgICAgICdBdmFhIHbDpGxpcGlzdGVlbiB7e2luZGV4fX0gcHlzw6RoZHlrc2VuIGtlc3RvIHZhbGl0c2luJyxcbiAgICAgICdhZGQtdmlhLWR1cmF0aW9uLWJ1dHRvbi1sYWJlbC1vcGVuJzpcbiAgICAgICAgJ1N1bGplIHbDpGxpcGlzdGVlbiB7e2luZGV4fX0gcHlzw6RoZHlrc2VuIGtlc3RvIHZhbGl0c2luJyxcbiAgICAgICdtaW51dGUtc2hvcnQnOiAnbWluJyxcbiAgICAgICdyZW1vdmUtdmlhLWJ1dHRvbi1sYWJlbCc6ICdQb2lzdGEgdsOkbGlwaXN0ZSB7e2luZGV4fX0nLFxuICAgICAgJ3N3YXAtb3JkZXItYnV0dG9uLWxhYmVsJzogJ0vDpMOkbm7DpCByZWl0aW4gc3V1bnRhIHZhc3Rha2thaXNla3NpJyxcbiAgICAgICd2aWEtcG9pbnQnOiAnVsOkbGlwaXN0ZScsXG4gICAgICAndmlhLXBvaW50LWluZGV4JzogJ1bDpGxpcGlzdGUge3tpbmRleH19JyxcbiAgICAgICd2aWFwb2ludC1zbGFjay1hbW91bnQnOiAnUHlzw6RoZHlrc2VuIGtlc3RvJyxcbiAgICB9LFxuICB9LFxuICBwbDoge1xuICAgIHRyYW5zbGF0aW9uOiB7XG4gICAgICAnYWRkLXZpYS1idXR0b24tbGFiZWwnOiAnRG9kYWogcHVua3QgcG/Fm3JlZG5pJyxcbiAgICAgICdhZGQtdmlhLWR1cmF0aW9uLWJ1dHRvbi1sYWJlbCc6XG4gICAgICAgICdXeWJpZXJ6IGN6YXMgcG9zdG9qdSBkbGEgcHVua3R1IHt7aW5kZXh9fScsXG4gICAgICAnYWRkLXZpYS1kdXJhdGlvbi1idXR0b24tbGFiZWwtY2xvc2UnOlxuICAgICAgICAnWmFta25paiB3eWJvcm5payBjemFzdSBwb3N0b2p1IHcgcHVua2NpZSB7e2luZGV4fX0nLFxuICAgICAgJ2FkZC12aWEtZHVyYXRpb24tYnV0dG9uLWxhYmVsLW9wZW4nOlxuICAgICAgICAnT3R3w7NyeiB3eWJvcm5payBjemFzdSBwb3N0b2p1IHcgcHVua2NpZSB7e2luZGV4fX0nLFxuICAgICAgJ21pbnV0ZS1zaG9ydCc6ICdtaW4uJyxcbiAgICAgICdyZW1vdmUtdmlhLWJ1dHRvbi1sYWJlbCc6ICdVc3XFhCBwdW5rdCBwb8WbcmVkbmkge3tpbmRleH19JyxcbiAgICAgICdzd2FwLW9yZGVyLWJ1dHRvbi1sYWJlbCc6ICdPZHdyw7PEhyBwb2N6xIV0ZWsgaSBjZWwnLFxuICAgICAgJ3ZpYS1wb2ludCc6ICdQdW5rdCBwb8WbcmVkbmknLFxuICAgICAgJ3ZpYS1wb2ludC1pbmRleCc6ICdQdW5rdCBwb8WbcmVkbmkge3tpbmRleH19JyxcbiAgICAgICd2aWFwb2ludC1zbGFjay1hbW91bnQnOiAnQ3phcyBwb3N0b2p1JyxcbiAgICB9LFxuICB9LFxuICBzdjoge1xuICAgIHRyYW5zbGF0aW9uOiB7XG4gICAgICAnYWRkLXZpYS1idXR0b24tbGFiZWwnOiAnTMOkZ2cgdGlsbCB2aWFwdW5rdCcsXG4gICAgICAnYWRkLXZpYS1kdXJhdGlvbi1idXR0b24tbGFiZWwnOlxuICAgICAgICAnU3TDpGxsIGluIHZhcmFrdGlnaGV0IGbDtnIgdmlhcHVua3RlbiB7e2luZGV4fX0nLFxuICAgICAgJ2FkZC12aWEtZHVyYXRpb24tYnV0dG9uLWxhYmVsLWNsb3NlJzpcbiAgICAgICAgJ1N0w6RuZyB2w6RsamFyZW4gZsO2ciB2YXJha3RpZ2hldCB2aWQgdmlhLXB1bmt0ZW4ge3tpbmRleH19JyxcbiAgICAgICdhZGQtdmlhLWR1cmF0aW9uLWJ1dHRvbi1sYWJlbC1vcGVuJzpcbiAgICAgICAgJ8OWcHBuYSB2w6RsamFyZW4gZsO2ciB2YXJha3RpZ2hldCB2aWQgdmlhLXB1bmt0ZW4ge3tpbmRleH19JyxcbiAgICAgICdtaW51dGUtc2hvcnQnOiAnbWluJyxcbiAgICAgICdyZW1vdmUtdmlhLWJ1dHRvbi1sYWJlbCc6ICdUYSBib3J0IHZpYXB1bmt0IHt7aW5kZXh9fScsXG4gICAgICAnc3dhcC1vcmRlci1idXR0b24tbGFiZWwnOiAnU3bDpG5nIHJ1dHRlbnMgcmlrdG5pbmcgdGlsbCBkZW4gbW90c2F0dGEnLFxuICAgICAgJ3ZpYS1wb2ludCc6ICdWaWEgcHVua3QnLFxuICAgICAgJ3ZpYS1wb2ludC1pbmRleCc6ICdWaWEgcHVua3Qge3tpbmRleH19JyxcbiAgICAgICd2aWFwb2ludC1zbGFjay1hbW91bnQnOiAnU3RvcHBldHMgdmFyYWt0aWdoZXQnLFxuICAgIH0sXG4gIH0sXG59O1xuXG5leHBvcnQgZGVmYXVsdCB0cmFuc2xhdGlvbnM7XG4iLCJpbXBvcnQgeyBjcmVhdGVJbnN0YW5jZSB9IGZyb20gJ2kxOG5leHQnO1xuaW1wb3J0IHRyYW5zbGF0aW9ucyBmcm9tICcuL3RyYW5zbGF0aW9ucyc7XG5cbmNvbnN0IGkxOG4gPSBjcmVhdGVJbnN0YW5jZSh7XG4gIGZhbGxiYWNrTG5nOiAnZmknLFxuICAvLyBkZWJ1ZzogdHJ1ZSxcbiAgcmVzb3VyY2VzOiB0cmFuc2xhdGlvbnMsXG4gIGRlZmF1bHROUzogJ3RyYW5zbGF0aW9uJyxcbiAgcmVhY3Q6IHtcbiAgICB1c2VTdXNwZW5zZTogdHJ1ZSxcbiAgfSxcbn0pO1xuXG5pMThuLmluaXQoKTtcblxuZXhwb3J0IGRlZmF1bHQgaTE4bjtcbiIsIi8qIGVzbGludC1kaXNhYmxlIGltcG9ydC9uby1leHRyYW5lb3VzLWRlcGVuZGVuY2llcyAqL1xuaW1wb3J0IGN4IGZyb20gJ2NsYXNzbmFtZXMnO1xuaW1wb3J0IFByb3BUeXBlcyBmcm9tICdwcm9wLXR5cGVzJztcbmltcG9ydCBSZWFjdCBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyBJMThuZXh0UHJvdmlkZXIsIHdpdGhUcmFuc2xhdGlvbiB9IGZyb20gJ3JlYWN0LWkxOG5leHQnO1xuaW1wb3J0IHsgUmVhY3RTb3J0YWJsZSB9IGZyb20gJ3JlYWN0LXNvcnRhYmxlanMnO1xuaW1wb3J0IERUQXV0b1N1Z2dlc3QgZnJvbSAnQGRpZ2l0cmFuc2l0LWNvbXBvbmVudC9kaWdpdHJhbnNpdC1jb21wb25lbnQtYXV0b3N1Z2dlc3QnO1xuaW1wb3J0IEljb24sIHtcbiAgZGVmYXVsdENvbG9ycyxcbn0gZnJvbSAnQGRpZ2l0cmFuc2l0LWNvbXBvbmVudC9kaWdpdHJhbnNpdC1jb21wb25lbnQtaWNvbic7XG5pbXBvcnQgaXNFbXB0eSBmcm9tICdsb2Rhc2gvaXNFbXB0eS5qcyc7XG5pbXBvcnQgU2VsZWN0IGZyb20gJy4vaGVscGVycy9TZWxlY3QnO1xuaW1wb3J0IGkxOG4gZnJvbSAnLi9oZWxwZXJzL2kxOG4nO1xuaW1wb3J0IHN0eWxlcyBmcm9tICcuL2hlbHBlcnMvc3R5bGVzLnNjc3MnO1xuXG5leHBvcnQgY29uc3QgZ2V0RW1wdHlWaWFQb2ludFBsYWNlSG9sZGVyID0gKCkgPT4gKHt9KTtcblxuY29uc3QgaXNWaWFQb2ludEVtcHR5ID0gdmlhUG9pbnQgPT4ge1xuICBpZiAodmlhUG9pbnQgPT09IHVuZGVmaW5lZCB8fCBpc0VtcHR5KHZpYVBvaW50KSkge1xuICAgIHJldHVybiB0cnVlO1xuICB9XG4gIGNvbnN0IGtleXMgPSBPYmplY3Qua2V5cyh2aWFQb2ludCk7XG4gIHJldHVybiAoXG4gICAga2V5cy5sZW5ndGggPT09IDEgfHwgKGtleXMubGVuZ3RoID09PSAyICYmIGtleXMuaW5jbHVkZXMoJ2xvY2F0aW9uU2xhY2snKSlcbiAgKTtcbn07XG5cbmNvbnN0IEl0aW5lcmFyeVNlYXJjaENvbnRyb2wgPSAoe1xuICBjaGlsZHJlbixcbiAgY2xhc3NOYW1lLFxuICBlbmFibGVkLFxuICBvbkNsaWNrLFxuICBvbktleVByZXNzLFxuICB3aWRlLFxuICAuLi5yZXN0XG59KSA9PiAoXG4gIDxkaXZcbiAgICBjbGFzc05hbWU9e3N0eWxlc1snaXRpbmVyYXJ5LXNlYXJjaC1jb250cm9sJ119XG4gICAgc3R5bGU9e3sgJy0td2lkdGgnOiB3aWRlID8gJzQ3cHgnIDogJzQwcHgnIH19XG4gID5cbiAgICB7b25DbGljayAmJiBlbmFibGVkICYmIChcbiAgICAgIDxkaXZcbiAgICAgICAgey4uLnJlc3R9XG4gICAgICAgIGNsYXNzTmFtZT17Y2xhc3NOYW1lfVxuICAgICAgICBvbkNsaWNrPXtvbkNsaWNrfVxuICAgICAgICBvbktleVByZXNzPXtvbktleVByZXNzfVxuICAgICAgICByb2xlPVwiYnV0dG9uXCJcbiAgICAgICAgdGFiSW5kZXg9XCIwXCJcbiAgICAgID5cbiAgICAgICAge2NoaWxkcmVufVxuICAgICAgPC9kaXY+XG4gICAgKX1cbiAgPC9kaXY+XG4pO1xuXG5jb25zdCB1cGRhdGVWaWFQb2ludFNsYWNrID0gKFxuICBhY3RpdmVWaWFQb2ludFNsYWNrcyxcbiAgdXBkYXRlZFZpYVBvaW50SW5kZXgsXG4gIHZpYVBvaW50UmVtb3ZlZCA9IGZhbHNlLFxuKSA9PiB7XG4gIGNvbnN0IGZvdW5kQXRJbmRleCA9IGFjdGl2ZVZpYVBvaW50U2xhY2tzLmluZGV4T2YodXBkYXRlZFZpYVBvaW50SW5kZXgpO1xuICBpZiAoZm91bmRBdEluZGV4ID4gLTEpIHtcbiAgICBhY3RpdmVWaWFQb2ludFNsYWNrcy5zcGxpY2UoZm91bmRBdEluZGV4LCAxKTtcbiAgfVxuICByZXR1cm4gdmlhUG9pbnRSZW1vdmVkXG4gICAgPyBhY3RpdmVWaWFQb2ludFNsYWNrcy5tYXAodmFsdWUgPT5cbiAgICAgICAgdmFsdWUgPiB1cGRhdGVkVmlhUG9pbnRJbmRleCA/IHZhbHVlIC0gMSA6IHZhbHVlLFxuICAgICAgKVxuICAgIDogYWN0aXZlVmlhUG9pbnRTbGFja3M7XG59O1xuXG5jb25zdCBpc0tleWJvYXJkU2VsZWN0aW9uRXZlbnQgPSBldmVudCA9PiB7XG4gIGNvbnN0IHNwYWNlID0gWzEzLCAnICcsICdTcGFjZWJhciddO1xuICBjb25zdCBlbnRlciA9IFszMiwgJ0VudGVyJ107XG4gIGNvbnN0IGtleSA9IChldmVudCAmJiAoZXZlbnQua2V5IHx8IGV2ZW50LndoaWNoIHx8IGV2ZW50LmtleUNvZGUpKSB8fCAnJztcbiAgaWYgKCFrZXkgfHwgIXNwYWNlLmNvbmNhdChlbnRlcikuaW5jbHVkZXMoa2V5KSkge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICByZXR1cm4gdHJ1ZTtcbn07XG5cbmNvbnN0IHZhbHVlID0gbG9jYXRpb24gPT5cbiAgKGxvY2F0aW9uICYmIGxvY2F0aW9uLmFkZHJlc3MpIHx8XG4gIChsb2NhdGlvbiAmJiBsb2NhdGlvbi5ncHMgJiYgbG9jYXRpb24ucmVhZHkgJiYgJ055a3lpbmVuIHNpamFpbnRpJykgfHxcbiAgJyc7XG5cbmNvbnN0IGdldExvY2F0aW9uVHlwZSA9IGxvY2F0aW9uID0+XG4gIGxvY2F0aW9uICYmIGxvY2F0aW9uLmdwcyA9PT0gdHJ1ZSA/ICdwb3NpdGlvbicgOiAnbG9jYXRpb24nO1xuXG5jb25zdCBnZXRTbGFja1RpbWVPcHRpb25zID0gdCA9PiB7XG4gIGNvbnN0IHRpbWVPcHRpb25zID0gW107XG4gIGZvciAobGV0IGkgPSAwOyBpIDw9IDk7IGkrKykge1xuICAgIGNvbnN0IHZhbHVlSW5NaW51dGVzID0gaSAqIDEwO1xuICAgIHRpbWVPcHRpb25zLnB1c2goe1xuICAgICAgZGlzcGxheU5hbWU6IGAke3ZhbHVlSW5NaW51dGVzfSAke3QoJ21pbnV0ZS1zaG9ydCcpfWAsXG4gICAgICB2YWx1ZTogdmFsdWVJbk1pbnV0ZXMgKiA2MCxcbiAgICB9KTtcbiAgfVxuICByZXR1cm4gdGltZU9wdGlvbnM7XG59O1xuXG5JdGluZXJhcnlTZWFyY2hDb250cm9sLnByb3BUeXBlcyA9IHtcbiAgY2hpbGRyZW46IFByb3BUeXBlcy5ub2RlLFxuICBjbGFzc05hbWU6IFByb3BUeXBlcy5zdHJpbmcuaXNSZXF1aXJlZCxcbiAgZW5hYmxlZDogUHJvcFR5cGVzLmJvb2wuaXNSZXF1aXJlZCxcbiAgb25DbGljazogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgb25LZXlQcmVzczogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgd2lkZTogUHJvcFR5cGVzLmJvb2wsXG59O1xuXG5JdGluZXJhcnlTZWFyY2hDb250cm9sLmRlZmF1bHRQcm9wcyA9IHtcbiAgY2hpbGRyZW46IHVuZGVmaW5lZCxcbiAgd2lkZTogZmFsc2UsXG59O1xuXG4vKipcbiAqIFBhbmVsIHRoYXQgcmVuZGVycyB0d28gRFRBdXRvc3VnZ2VzdCBzZWFyY2ggZmllbGRzLCBpbmNsdWRpbmcgdmlhcG9pbnQgaGFuZGxpbmdcbiAqXG4gKiBAZXhhbXBsZVxuICogY29uc3Qgc2VhcmNoQ29udGV4dCA9IHtcbiAqICAgaXNQZWxpYXNMb2NhdGlvbkF3YXJlOiBmYWxzZSAvLyB0cnVlIC8gZmFsc2UgZG9lcyBMZXQgUGVsaWFzIHN1Z2dlc3QgYmFzZWQgb24gY3VycmVudCB1c2VyIGxvY2F0aW9uXG4gKiAgIG1pbmltYWxSZWdleHA6IHVuZGVmaW5lZCAvLyB1c2VkIGZvciB0ZXN0aW5nIG1pbi4gcmVnZXhwLiBGb3IgZXhhbXBsZTogbmV3IFJlZ0V4cCgnLnsyLH0nKSxcbiAqICAgbGluZVJlZ2V4cDogdW5kZWZpbmVkIC8vICBpZGVudGlmeSBzZWFyY2hlcyBmb3Igcm91dGUgbnVtYmVycy9sYWJlbHM6IGJ1cyB8IHRyYWluIHwgbWV0cm8uIEZvciBleGFtcGxlOiBuZXcgUmVnRXhwKFxuICogICAgLy8gICAnKF5bMC05XStbYS16XT8kfF5beXVsZWFwaW5rcnRkel0kfChebVsxMl0/Yj8kKSknLFxuICogICAgLy8gICdpJyxcbiAqICAgIC8vICApLFxuICogICBVUkxfUEVMSUFTOiAnJyAvLyB1cmwgZm9yIHBlbGlhcyBzZWFyY2hlc1xuICogICBmZWVkSURzOiBbJ0hTTCcsICdIU0xMYXV0dGEnXSAvLyBGZWVkSWQncyBsaWtlICBbSFNMLCBIU0xMYXV0dGFdXG4gKiAgIGdlb2NvZGluZ1NvdXJjZXM6IFsnb2EnLCdvc20nLCdubHNmaSddICAvLyBzb3VyY2VzIGZvciBnZW9jb2RpbmdcbiAqICAgZ2VvY29kaW5nU2VhcmNoUGFyYW1zOyB7fSAgLy8gU2VhcmNocGFybWFzIGZybyBnZW9jb2RpbmdcbiAqICAgZ2V0RmF2b3VyaXRlTG9jYXRpb25zOiAoKSA9PiAoe30pLCAgICAvLyBGdW5jdGlvbiB0aGF0IHJldHVybnMgYXJyYXkgb2YgZmF2b3VyaXRlIGxvY2F0aW9ucy5cbiAqICAgZ2V0RmF2b3VyaXRlU3RvcHM6ICgpID0+ICh7fSksICAgICAgICAvLyBGdW5jdGlvbiB0aGF0IHJldHVybnMgYXJyYXkgb2YgZmF2b3VyaXRlIHN0b3BzLlxuICogICBnZXRMYW5ndWFnZTogKCkgPT4gKHt9KSwgICAgICAgICAgICAgIC8vIEZ1bmN0aW9uIHRoYXQgcmV0dXJucyBjdXJyZW50IGxhbmd1YWdlLlxuICogICBnZXRGYXZvdXJpdGVSb3V0ZXM6ICgpID0+ICh7fSksICAgICAgIC8vIEZ1bmN0aW9uIHRoYXQgcmV0dXJucyBhcnJheSBvZiBmYXZvdXJpdGUgcm91dGVzLlxuICogICBnZXRQb3NpdGlvbnM6ICgpID0+ICh7fSksICAgICAgICAgICAgIC8vIEZ1bmN0aW9uIHRoYXQgcmV0dXJucyB1c2VyJ3MgZ2VvbG9jYXRpb24uXG4gKiAgIGdldFJvdXRlc1F1ZXJ5OiAoKSA9PiAoe30pLCAgICAgICAgICAgLy8gRnVuY3Rpb24gdGhhdCByZXR1cm5zIHF1ZXJ5IGZvciBmZXRjaGluZyByb3V0ZXMuXG4gKiAgIGdldFN0b3BBbmRTdGF0aW9uc1F1ZXJ5OiAoKSA9PiAoe30pLCAgLy8gRnVuY3Rpb24gdGhhdCBmZXRjaGVzIGZhdm91cml0ZSBzdG9wcyBhbmQgc3RhdGlvbnMgZnJvbSBncmFwaHFsIEFQSS5cbiAqICAgZ2V0RmF2b3VyaXRlUm91dGVzUXVlcnk6ICgpID0+ICh7fSksICAvLyBGdW5jdGlvbiB0aGF0IHJldHVybnMgcXVlcnkgZm9yIGZldGNoaW5nIGZhdm91cml0ZSByb3V0ZXMuXG4gKiAgIGdldEZhdm91cml0ZVZlaGljbGVSZW50YWxTdGF0aW9uczogKCkgPT4gKHt9KSwgIC8vIEZ1bmN0aW9uIHRoYXQgcmV0dXJucyBmYXZvdXJpdGUgYmlrZSByZW50YWwgc3RhdGlvbi5cbiAqICAgZ2V0RmF2b3VyaXRlVmVoaWNsZVJlbnRhbFN0YXRpb25zUXVlcnk6ICgpID0+ICh7fSksIC8vIEZ1bmN0aW9uIHRoYXQgcmV0dXJucyBxdWVyeSBmb3IgZmV0Y2hpbmcgZmF2b3VyaXRlIGJpa2UgcmVudGFsIHN0YXRpb25zLlxuICogICBzdGFydExvY2F0aW9uV2F0Y2g6ICgpID0+ICh7fSksICAgICAgIC8vIEZ1bmN0aW9uIHRoYXQgbG9jYXRlcyB1c2VycyBnZW9sb2NhdGlvbi5cbiAqICAgc2F2ZVNlYXJjaDogKCkgPT4gKHt9KSwgICAgICAgICAgICAgICAvLyBGdW5jdGlvbiB0aGF0IHNhdmVzIHNlYXJjaCB0byBvbGQgc2VhcmNoZXMgc3RvcmUuXG4gKiAgIGNsZWFyT2xkU2VhcmNoZXM6ICgpID0+ICh7fSksICAgICAgICAgLy8gRnVuY3Rpb24gdGhhdCBjbGVhcnMgb2xkIHNlYXJjaGVzIHN0b3JlLlxuICogICBnZXRGdXR1cmVSb3V0ZXM6ICgpID0+ICh7fSksICAgICAgICAgIC8vIEZ1bmN0aW9uIHRoYXQgcmV0dXJuIGZ1dHVyZSByb3V0ZXNcbiAqICAgc2F2ZUZ1dHVyZVJvdXRlOiAoKSA9PiAoe30pLCAgICAgICAgICAvLyBGdW5jdGlvbiB0aGF0IHNhdmVzIGEgZnV0dXJlIHJvdXRlXG4gKiAgIGNsZWFyRnV0dXJlUm91dGVzOiAoKSA9PiAoe30pLCAgICAgICAgLy8gRnVuY3Rpb24gdGhhdCBjbGVhcnMgZnV0dXJlIHJvdXRlc1xuICogfTtcbiAqXG4gKiBjb25zdCBvcmlnaW4gPSB7XG4gKiAgbGF0OiA2MC4xNjkxOTYsXG4gKiAgbG9uOiAyNC45NTc2NzQsXG4gKiAgYWRkcmVzczogJ0FsZWtzYW50ZXJpbmthdHUsIEhlbHNpbmtpJyxcbiAqICBzZXQ6IHRydWUsXG4gKiAgcmVhZHk6IHRydWUsXG4gKiB9XG4gKlxuICogY29uc3QgZGVzdGluYXRpb24gPSB7XG4gKiAgIGxhdDogNjAuMTk5MDkzLFxuICogICBsb246IDI0Ljk0MDUzNixcbiAqICAgYWRkcmVzczogJ09wYXN0aW5zaWx0YSA2LCBIZWxzaW5raScsXG4gKiAgIHNldDogdHJ1ZSxcbiAqICAgcmVhZHk6IHRydWUsXG4gKiB9XG4gKiBvblNlbGVjdChpdGVtLCBpZCkge1xuICogIHJldHVybiBudWxsOyAgLy8gRGVmaW5lIHdoYXQgdG8gZG8gd2hlbiBhIHN1Z2dlc3Rpb24gaXMgYmVpbmcgc2VsZWN0ZWQuIE5vbmUgYnkgZGVmYXVsdC5cbiAqICB9XG4gKiBvbkNsZWFyKGlkKSB7XG4gKiAgcmV0dXJuIG51bGw7ICAvLyBEZWZpbmUgd2hhdCB0byBkbyB3aGVuIGEgc3VnZ2VzdGlvbiBpcyBiZWluZyBzZWxlY3RlZC4gTm9uZSBieSBkZWZhdWx0LlxuICogfVxuICogY29uc3QgZ2V0QXV0b1N1Z2dlc3RJY29uczoge1xuICogICAvLyBDYWxsZWQgZm9yIGV2ZXJ5IGNpdHkgYmlrZSBzdGF0aW9uIHJlbmRlcmVkIGFzIGEgc2VhcmNoIHN1Z2dlc3Rpb24uIFNob3VsZCByZXR1cm4gdGhlIGljb24gYW5kXG4gKiAgIC8vIGNvbG9yIHVzZWQgZm9yIHRoYXQgc3RhdGlvbi4gVHdvIGljb25zIGFyZSBhdmFpbGFibGUsICdjaXR5YmlrZS1zdG9wLWRpZ2l0cmFuc2l0JyBhbmRpdHliaWtlLXN0b3AtZGlnaXRyYW5zaXQtc2Vjb25kYXJ5Jy5cbiAqICAgY2l0eWJpa2VzOiBzdGF0aW9uID0+IHtcbiAqICAgICAgcmV0dXJuIFsnY2l0eWJpa2Utc3RvcC1kaWdpdHJhbnNpdCcsICcjZjJiNjJkJ107XG4gKiAgIH1cbiAqIH1cbiAqIGNvbnN0IHRhcmdldHMgPSBbJ0xvY2F0aW9ucycsICdTdG9wcycsICdSb3V0ZXMnXTsgLy8gRGVmaW5lcyB3aGF0IHlvdSBhcmUgc2VhcmNoaW5nLiBhbGwgYXZhaWxhYmxlIG9wdGlvbnMgYXJlIExvY2F0aW9ucywgU3RvcHMsIFJvdXRlcywgVmVoaWNsZVJlbnRhbFN0YXRpb25zLCBGdXR1cmVSb3V0ZXMsIE1hcFBvc2l0aW9uIGFuZCBDdXJyZW50UG9zaXRpb24uIExlYXZlIGVtcHR5IHRvIHNlYXJjaCBhbGwgdGFyZ2V0cy5cbiAqIGNvbnN0IHNvdXJjZXMgPSBbJ0Zhdm91cml0ZScsICdIaXN0b3J5JywgJ0RhdGFzb3VyY2UnXSAvLyBEZWZpbmVzIHdoZXJlIHlvdSBhcmUgc2VhcmNoaW5nLiBhbGwgYXZhaWxhYmxlIGFyZTogRmF2b3VyaXRlLCBIaXN0b3J5IChwcmV2aW91c2x5IHNlYXJjaGVkIHNlYXJjaGVzKSwgYW5kIERhdGFzb3VyY2UuIExlYXZlIGVtcHR5IHRvIHVzZSBhbGwgc291cmNlcy5cbiAqIDxEVEF1dG9zdWdnZXN0UGFuZWxcbiAqICAgIGFwcEVsZW1lbnQ9e2FwcEVsZW1lbnR9IC8vIFJlcXVpcmVkLiBSb290IGVsZW1lbnQncyBpZC4gTmVlZGVkIGZvciByZWFjdC1tb2RhbCBjb21wb25lbnQuXG4gKiAgICBvcmlnaW49e29yaWdpbn0gLy8gU2VsZWN0ZWQgb3JpZ2luIHBvaW50XG4gKiAgICBkZXN0aW5hdGlvbj17ZGVzdGluYXRpb259IC8vIFNlbGVjdGVkIGRlc3RpbmF0aW9uIHBvaW50XG4gKiAgICBvcmlnaW5QbGFjZUhvbGRlcj17J0dpdmUgb3JpZ2luJ30gLy8gT3B0aW9uYWwgR2l2ZSBzdHJpbmcgc2hvd24gaW5pdGlhbGx5IGluc2lkZSBvcmlnaW4gc2VhcmNoIGZpZWxkXG4gKiAgICBkZXN0aW5hdGlvblBsYWNlSG9sZGVyPXsnR2l2ZSBkZXN0aW5hdGlvbid9IC8vIE9wdGlvbmFsIEdpdmUgc3RyaW5nIHNob3duIGluaXRhbGx5IGluc2lkZSBkZXN0aW5hdGlvbiBzZWFyY2ggZmllbGRcbiAqICAgIGluaXRpYWxWaWFQb2ludHM9e1tdfSAvLyBPcHRpb25hbC4gIElmIHNob3dWaWFwb2ludENvbnRyb2wgaXMgc2V0IHRvIHRydWUsIHBhc3MgaW5pdGlhbCB2aWEgcG9pbnRzIHRvIHRoZSBwYW5lbC4gQ3VycmVudGx5IG5vIGRlZmF1bHQgaW1wbGVtZW50YXRpb24gaXMgZ2l2ZW4uXG4gKiAgICB1cGRhdGVWaWFQb2ludHM9eygpID0+IHJldHVybiBbXX0gLy8gT3B0aW9uYWwuIElmIHNob3dWaWFwb2ludENvbnRyb2wgaXMgc2V0IHRvIHRydWUsIGRlZmluZSBob3cgdG8gdXBkYXRlIHlvdXIgdmlhIHBvaW50IGxpc3Qgd2l0aCB0aGlzIGZ1bmN0aW9uLiBDdXJyZW5sdHkgbm8gZGVmYXVsdCBpbXBsZW1lbnRhdGlvbiBpcyBnaXZlbi5cbiAqICAgIHN3YXBPcmRlcj17KCkgPT4gcmV0dXJuIG51bGx9IC8vIE9wdGlvbmFsLiBJZiBzaG93U3dhcENvbnRyb2wgaXMgc2V0IHRvIHRydWUsIGRlZmluZSBob3cgdG8gc3dhcCBvcmRlciBvZiB5b3VyIHBvaW50cyAob3JpZ2luLCBkZXN0aW5hdGlvbiwgdmlhcG9pbnRzKS4gQ3VycmVudGx5IG5vIGRlZmF1bHQgaW1wbGVtZW50YXRpb24gaXMgZ2l2ZW4uXG4gKiAgICBzZWFyY2hDb250ZXh0PXtzZWFyY2hDb250ZXh0fVxuICogICAgZ2V0QXV0b1N1Z2dlc3RJY29ucz17Z2V0QXV0b1N1Z2dlc3RJY29uc31cbiAqICAgIG9uU2VsZWN0PXt0aGlzLm9uU2VsZWN0fVxuICogICAgb25DbGVhcj17dGhpcy5vbkNsZWFyfVxuICogICAgbGFuZz1cImZpXCIgLy8gRGVmaW5lIGxhbmd1YWdlIGZpIHN2IG9yIGVuLlxuICogICAgYWRkQW5hbHl0aWNzRXZlbnQ9e251bGx9IC8vIE9wdGlvbmFsLiB5b3UgY2FuIHJlY29yZCBhbiBhbmFseXRpY3MgZXZlbnQgaWYgeW91IHdpc2guIGlmIHBhc3NlZCwgY29tcG9uZW50IHdpbGwgcGFzcyBhbiBjYXRlZ29yeSwgYWN0aW9uLCBuYW1lIHBhcmFtZXRlcnMgdG8gYWRkQW5hbHl0aWNzRXZlbnRcbiAqICAgIGRpc2FibGVBdXRvRm9jdXM9e2ZhbHNlfSAvLyBPcHRpb25hbC4gdXNlIHRoaXMgdG8gZGlzYWJsZSBhdXRvZm9jdXMgY29tcGxldGVseSBmcm9tIERUQXV0b3N1Z2dlc3RQYW5lbFxuICogICAgc291cmNlcz17c291cmNlc31cbiAqICAgIHRhcmdldHM9e3RhcmdldHN9XG4gKiAgICBpc01vYmlsZSAgLy8gT3B0aW9uYWwuIERlZmF1bHRzIHRvIGZhbHNlLiBXaGV0aGVyIHRvIHVzZSBtb2JpbGUgc2VhcmNoLlxuICogICAgb3JpZ2luTW9iaWxlTGFiZWw9XCJPcmlnaW4gbGFiZWxcIiAvLyBPcHRpb25hbC4gQ3VzdG9tIGxhYmVsIHRleHQgZm9yIG9yaWdpbiBmaWVsZCBvbiBtb2JpbGUuXG4gKiAgICBkZXN0aW5hdGlvbk1vYmlsZUxhYmVsPVwiRGVzdGluYXRpb24gbGFiZWxcIiAvLyBPcHRpb25hbC4gQ3VzdG9tIGxhYmVsIHRleHQgZm9yIGRlc3RpbmF0aW9uIGZpZWxkIG9uIG1vYmlsZS5cbiAqICAgIGhhbmRsZUZvY3VzQ2hhbmdlPXsoKSA9PiB7fX0gLy8gT3B0aW9uYWwuIElmIGRlZmluZWQgb3ZlcnJpZGVzIGRlZmF1bHQgb25Gb2N1c0NoYW5nZSBiZWhhdmlvdXJcbiAqICAgIHNob3dTd2FwQ29udHJvbD17ZmFsc2V9IC8vIE9wdGlvbmFsLlxuICogICAgc2hvd1ZpYXBvaW50Q29udHJvbD17ZmFsc2V9IC8vIE9wdGlvbmFsLlxuICovXG5cbmNvbnN0IGxvY2F0aW9uU2hhcGUgPSBQcm9wVHlwZXMuc2hhcGUoe1xuICBhZGRyZXNzOiBQcm9wVHlwZXMuc3RyaW5nLFxuICBsYXQ6IFByb3BUeXBlcy5udW1iZXIsXG4gIGxvbjogUHJvcFR5cGVzLm51bWJlcixcbiAgbG9jYXRpb25TbGFjazogUHJvcFR5cGVzLm51bWJlcixcbn0pO1xuXG5jbGFzcyBEVEF1dG9zdWdnZXN0UGFuZWwgZXh0ZW5kcyBSZWFjdC5Db21wb25lbnQge1xuICBzdGF0aWMgcHJvcFR5cGVzID0ge1xuICAgIGFwcEVsZW1lbnQ6IFByb3BUeXBlcy5zdHJpbmcuaXNSZXF1aXJlZCxcbiAgICBvcmlnaW46IGxvY2F0aW9uU2hhcGUsXG4gICAgZGVzdGluYXRpb246IGxvY2F0aW9uU2hhcGUsXG4gICAgb3JpZ2luUGxhY2VIb2xkZXI6IFByb3BUeXBlcy5zdHJpbmcsXG4gICAgZGVzdGluYXRpb25QbGFjZUhvbGRlcjogUHJvcFR5cGVzLnN0cmluZyxcbiAgICB2aWFQb2ludHM6IFByb3BUeXBlcy5hcnJheU9mKGxvY2F0aW9uU2hhcGUpLFxuICAgIHVwZGF0ZVZpYVBvaW50czogUHJvcFR5cGVzLmZ1bmMsXG4gICAgaGFuZGxlVmlhUG9pbnRMb2NhdGlvblNlbGVjdGVkOiBQcm9wVHlwZXMuZnVuYyxcbiAgICBzd2FwT3JkZXI6IFByb3BUeXBlcy5mdW5jLFxuICAgIHNlYXJjaFBhbmVsVGV4dDogUHJvcFR5cGVzLnN0cmluZyxcbiAgICBzZWFyY2hDb250ZXh0OiBQcm9wVHlwZXMuc2hhcGUoe1xuICAgICAgVVJMX1BFTElBUzogUHJvcFR5cGVzLnN0cmluZyxcbiAgICB9KS5pc1JlcXVpcmVkLFxuICAgIG9uU2VsZWN0OiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICAgIG9uQ2xlYXI6IFByb3BUeXBlcy5mdW5jLFxuICAgIGFkZEFuYWx5dGljc0V2ZW50OiBQcm9wVHlwZXMuZnVuYyxcbiAgICBsYW5nOiBQcm9wVHlwZXMuc3RyaW5nLmlzUmVxdWlyZWQsXG4gICAgZGlzYWJsZUF1dG9Gb2N1czogUHJvcFR5cGVzLmJvb2wsXG4gICAgc291cmNlczogUHJvcFR5cGVzLmFycmF5T2YoUHJvcFR5cGVzLnN0cmluZyksXG4gICAgdGFyZ2V0czogUHJvcFR5cGVzLmFycmF5T2YoUHJvcFR5cGVzLnN0cmluZyksXG4gICAgZmlsdGVyUmVzdWx0czogUHJvcFR5cGVzLmZ1bmMsXG4gICAgaXNNb2JpbGU6IFByb3BUeXBlcy5ib29sLFxuICAgIG9yaWdpbk1vYmlsZUxhYmVsOiBQcm9wVHlwZXMuc3RyaW5nLFxuICAgIGRlc3RpbmF0aW9uTW9iaWxlTGFiZWw6IFByb3BUeXBlcy5zdHJpbmcsXG4gICAgcmVmUG9pbnQ6IGxvY2F0aW9uU2hhcGUsXG4gICAgbW9kZVNldDogUHJvcFR5cGVzLnN0cmluZyxcbiAgICBjb2xvcnM6IFByb3BUeXBlcy5vYmplY3RPZihQcm9wVHlwZXMuc3RyaW5nKSxcbiAgICBnZXRBdXRvU3VnZ2VzdEljb25zOiBQcm9wVHlwZXMub2JqZWN0T2YoUHJvcFR5cGVzLmZ1bmMpLFxuICAgIGZvbnRXZWlnaHRzOiBQcm9wVHlwZXMuc2hhcGUoe1xuICAgICAgbWVkaXVtOiBQcm9wVHlwZXMubnVtYmVyLFxuICAgIH0pLFxuICAgIHNob3dTY3JvbGw6IFByb3BUeXBlcy5ib29sLFxuICAgIG9uRm9jdXNDaGFuZ2U6IFByb3BUeXBlcy5mdW5jLFxuICAgIGlzRW1iZWRkZWQ6IFByb3BUeXBlcy5ib29sLFxuICAgIHNob3dTd2FwQ29udHJvbDogUHJvcFR5cGVzLmJvb2wsXG4gICAgc2hvd1ZpYXBvaW50Q29udHJvbDogUHJvcFR5cGVzLmJvb2wsXG4gICAgc2hvd1NsYWNrQ29udHJvbDogUHJvcFR5cGVzLmJvb2wsXG4gICAgdDogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgfTtcblxuICBzdGF0aWMgZGVmYXVsdFByb3BzID0ge1xuICAgIG9yaWdpbjogdW5kZWZpbmVkLFxuICAgIGRlc3RpbmF0aW9uOiB1bmRlZmluZWQsXG4gICAgdmlhUG9pbnRzOiBbXSxcbiAgICBvcmlnaW5QbGFjZUhvbGRlcjogJ2dpdmUtb3JpZ2luJyxcbiAgICBkZXN0aW5hdGlvblBsYWNlSG9sZGVyOiAnZ2l2ZS1kZXN0aW5hdGlvbicsXG4gICAgc3dhcE9yZGVyOiB1bmRlZmluZWQsXG4gICAgdXBkYXRlVmlhUG9pbnRzOiAoKSA9PiB7fSxcbiAgICBzZWFyY2hQYW5lbFRleHQ6IHVuZGVmaW5lZCxcbiAgICBzb3VyY2VzOiBbXSxcbiAgICB0YXJnZXRzOiBbXSxcbiAgICBmaWx0ZXJSZXN1bHRzOiB1bmRlZmluZWQsXG4gICAgb25DbGVhcjogdW5kZWZpbmVkLFxuICAgIGdldEF1dG9TdWdnZXN0SWNvbnM6IHVuZGVmaW5lZCxcbiAgICByZWZQb2ludDogdW5kZWZpbmVkLFxuICAgIGFkZEFuYWx5dGljc0V2ZW50OiB1bmRlZmluZWQsXG4gICAgZGlzYWJsZUF1dG9Gb2N1czogZmFsc2UsXG4gICAgaXNNb2JpbGU6IGZhbHNlLFxuICAgIGhhbmRsZVZpYVBvaW50TG9jYXRpb25TZWxlY3RlZDogdW5kZWZpbmVkLFxuICAgIG9yaWdpbk1vYmlsZUxhYmVsOiBudWxsLFxuICAgIGRlc3RpbmF0aW9uTW9iaWxlTGFiZWw6IG51bGwsXG4gICAgbW9kZVNldDogdW5kZWZpbmVkLFxuICAgIGNvbG9yczogZGVmYXVsdENvbG9ycyxcbiAgICBmb250V2VpZ2h0czoge1xuICAgICAgbWVkaXVtOiA1MDAsXG4gICAgfSxcbiAgICBzaG93U2Nyb2xsOiBmYWxzZSxcbiAgICBvbkZvY3VzQ2hhbmdlOiB1bmRlZmluZWQsXG4gICAgaXNFbWJlZGRlZDogZmFsc2UsXG4gICAgc2hvd1N3YXBDb250cm9sOiBmYWxzZSxcbiAgICBzaG93VmlhcG9pbnRDb250cm9sOiBmYWxzZSxcbiAgICBzaG93U2xhY2tDb250cm9sOiBmYWxzZSxcbiAgfTtcblxuICBjb25zdHJ1Y3Rvcihwcm9wcykge1xuICAgIHN1cGVyKHByb3BzKTtcbiAgICB0aGlzLnN0YXRlID0ge1xuICAgICAgYWN0aXZlU2xhY2tJbnB1dHM6IFtdLFxuICAgICAgcmVmczogW10sXG4gICAgfTtcbiAgfVxuXG4gIHN0b3JlUmVmZXJlbmNlID0gcmVmID0+IHtcbiAgICB0aGlzLnNldFN0YXRlKHByZXZTdGF0ZSA9PiAoeyByZWZzOiBbLi4ucHJldlN0YXRlLnJlZnMsIHJlZl0gfSkpO1xuICB9O1xuXG4gIGhhbmRsZUZvY3VzQ2hhbmdlID0gKCkgPT4ge1xuICAgIGNvbnN0IHsgZGVzdGluYXRpb24gfSA9IHRoaXMucHJvcHM7XG4gICAgaWYgKCFkZXN0aW5hdGlvbiB8fCAhZGVzdGluYXRpb24ubGF0KSB7XG4gICAgICB0aGlzLnN0YXRlLnJlZnNbMV0uZm9jdXMoKTtcbiAgICB9XG4gIH07XG5cbiAgdXBkYXRlVmlhUG9pbnRzID0gdmlhUG9pbnRzID0+IHtcbiAgICBpZiAodmlhUG9pbnRzLmxlbmd0aCA9PT0gMCkge1xuICAgICAgdGhpcy5wcm9wcy51cGRhdGVWaWFQb2ludHMoW10pO1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICB0aGlzLnByb3BzLnVwZGF0ZVZpYVBvaW50cyh2aWFQb2ludHMuZmlsdGVyKHZwID0+ICFpc1ZpYVBvaW50RW1wdHkodnApKSk7XG4gIH07XG5cbiAgaGFuZGxlVG9nZ2xlVmlhUG9pbnRTbGFja0NsaWNrID0gdmlhUG9pbnRJbmRleCA9PiB7XG4gICAgY29uc3QgeyBhY3RpdmVTbGFja0lucHV0cyB9ID0gdGhpcy5zdGF0ZTtcbiAgICB0aGlzLnNldFN0YXRlKHtcbiAgICAgIGFjdGl2ZVNsYWNrSW5wdXRzOiBhY3RpdmVTbGFja0lucHV0cy5pbmNsdWRlcyh2aWFQb2ludEluZGV4KVxuICAgICAgICA/IHVwZGF0ZVZpYVBvaW50U2xhY2soYWN0aXZlU2xhY2tJbnB1dHMsIHZpYVBvaW50SW5kZXgpXG4gICAgICAgIDogYWN0aXZlU2xhY2tJbnB1dHMuY29uY2F0KFt2aWFQb2ludEluZGV4XSksXG4gICAgfSk7XG4gIH07XG5cbiAgaGFuZGxlVmlhUG9pbnRTbGFja1RpbWVTZWxlY3RlZCA9IChzbGFja1RpbWVJblNlY29uZHMsIGkpID0+IHtcbiAgICBpZiAodGhpcy5wcm9wcy5hZGRBbmFseXRpY3NFdmVudCkge1xuICAgICAgdGhpcy5wcm9wcy5hZGRBbmFseXRpY3NFdmVudCh7XG4gICAgICAgIGFjdGlvbjogJ0VkaXRWaWFQb2ludFN0b3BEdXJhdGlvbicsXG4gICAgICAgIGNhdGVnb3J5OiAnSXRpbmVyYXJ5U2V0dGluZ3MnLFxuICAgICAgICBuYW1lOiBzbGFja1RpbWVJblNlY29uZHMgLyA2MCxcbiAgICAgIH0pO1xuICAgIH1cbiAgICBjb25zdCB7IHZpYVBvaW50cyB9ID0gdGhpcy5wcm9wcztcbiAgICB2aWFQb2ludHNbaV0ubG9jYXRpb25TbGFjayA9IE51bWJlci5wYXJzZUludChzbGFja1RpbWVJblNlY29uZHMsIDEwKTtcbiAgICB0aGlzLnVwZGF0ZVZpYVBvaW50cyh2aWFQb2ludHMpO1xuICB9O1xuXG4gIGhhbmRsZVZpYVBvaW50TG9jYXRpb25TZWxlY3RlZCA9ICh2aWFQb2ludExvY2F0aW9uLCBpKSA9PiB7XG4gICAgdGhpcy5wcm9wcy5oYW5kbGVWaWFQb2ludExvY2F0aW9uU2VsZWN0ZWQodmlhUG9pbnRMb2NhdGlvbiwgaSk7XG4gIH07XG5cbiAgaGFuZGxlUmVtb3ZlVmlhUG9pbnRDbGljayA9IHZpYVBvaW50SW5kZXggPT4ge1xuICAgIGlmICh0aGlzLnByb3BzLmFkZEFuYWx5dGljc0V2ZW50KSB7XG4gICAgICB0aGlzLnByb3BzLmFkZEFuYWx5dGljc0V2ZW50KHtcbiAgICAgICAgYWN0aW9uOiAnUmVtb3ZlSm91cm5leVZpYVBvaW50JyxcbiAgICAgICAgY2F0ZWdvcnk6ICdJdGluZXJhcnlTZXR0aW5ncycsXG4gICAgICAgIG5hbWU6IG51bGwsXG4gICAgICB9KTtcbiAgICB9XG4gICAgY29uc3QgeyBhY3RpdmVTbGFja0lucHV0cyB9ID0gdGhpcy5zdGF0ZTtcbiAgICBjb25zdCB7IHZpYVBvaW50cyB9ID0gdGhpcy5wcm9wcztcbiAgICB2aWFQb2ludHMuc3BsaWNlKHZpYVBvaW50SW5kZXgsIDEpO1xuICAgIHRoaXMuc2V0U3RhdGUoXG4gICAgICB7XG4gICAgICAgIGFjdGl2ZVNsYWNrSW5wdXRzOiB1cGRhdGVWaWFQb2ludFNsYWNrKFxuICAgICAgICAgIGFjdGl2ZVNsYWNrSW5wdXRzLFxuICAgICAgICAgIHZpYVBvaW50SW5kZXgsXG4gICAgICAgICAgdHJ1ZSxcbiAgICAgICAgKSxcbiAgICAgIH0sXG4gICAgICAoKSA9PiB0aGlzLnVwZGF0ZVZpYVBvaW50cyh2aWFQb2ludHMpLFxuICAgICk7XG4gIH07XG5cbiAgaGFuZGxlQWRkVmlhUG9pbnRDbGljayA9ICgpID0+IHtcbiAgICBpZiAodGhpcy5wcm9wcy5hZGRBbmFseXRpY3NFdmVudCkge1xuICAgICAgdGhpcy5wcm9wcy5hZGRBbmFseXRpY3NFdmVudCh7XG4gICAgICAgIGFjdGlvbjogJ0FkZEpvdXJuZXlWaWFQb2ludCcsXG4gICAgICAgIGNhdGVnb3J5OiAnSXRpbmVyYXJ5U2V0dGluZ3MnLFxuICAgICAgICBuYW1lOiAnUXVpY2tTZXR0aW5nc0J1dHRvbicsXG4gICAgICB9KTtcbiAgICB9XG4gICAgY29uc3QgeyB2aWFQb2ludHMgfSA9IHRoaXMucHJvcHM7XG4gICAgdmlhUG9pbnRzLnB1c2goZ2V0RW1wdHlWaWFQb2ludFBsYWNlSG9sZGVyKCkpO1xuICAgIC8vIFdlIG5lZWQgdG8gdXBkYXRlIHRoZSBzdGF0ZSBzbyB0aGF0IHBsYWNlSG9sZGVyIHdpbGwgc2hvdyB1cCBpbiBwYW5lbC5cbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgcmVhY3Qvbm8tYWNjZXNzLXN0YXRlLWluLXNldHN0YXRlXG4gICAgdGhpcy5zZXRTdGF0ZSh0aGlzLnN0YXRlKTtcbiAgfTtcblxuICBoYW5kbGVTd2FwT3JkZXJDbGljayA9ICgpID0+IHtcbiAgICBpZiAodGhpcy5wcm9wcy5hZGRBbmFseXRpY3NFdmVudCkge1xuICAgICAgdGhpcy5wcm9wcy5hZGRBbmFseXRpY3NFdmVudCh7XG4gICAgICAgIGFjdGlvbjogJ1N3aXRjaEpvdXJuZXlTdGFydEFuZEVuZFBvaW50T3JkZXInLFxuICAgICAgICBjYXRlZ29yeTogJ0l0aW5lcmFyeVNldHRpbmdzJyxcbiAgICAgICAgbmFtZTogbnVsbCxcbiAgICAgIH0pO1xuICAgIH1cbiAgICBjb25zdCB7IHZpYVBvaW50cyB9ID0gdGhpcy5wcm9wcztcbiAgICB2aWFQb2ludHMucmV2ZXJzZSgpO1xuICAgIHRoaXMucHJvcHMuc3dhcE9yZGVyKCk7XG4gIH07XG5cbiAgZ2V0U2xhY2tEaXNwbGF5ID0gc2xhY2tJblNlY29uZHMgPT5cbiAgICBgJHtzbGFja0luU2Vjb25kcyAvIDYwfSAke3RoaXMucHJvcHMudCgnbWludXRlLXNob3J0Jywge1xuICAgICAgbG5nOiB0aGlzLnByb3BzLmxhbmcsXG4gICAgfSl9YDtcblxuICByZW5kZXIoKSB7XG4gICAgY29uc3Qge1xuICAgICAgb3JpZ2luLFxuICAgICAgc2VhcmNoUGFuZWxUZXh0LFxuICAgICAgc2VhcmNoQ29udGV4dCxcbiAgICAgIGRpc2FibGVBdXRvRm9jdXMsXG4gICAgICB2aWFQb2ludHMsXG4gICAgICBvcmlnaW5Nb2JpbGVMYWJlbCxcbiAgICAgIGRlc3RpbmF0aW9uTW9iaWxlTGFiZWwsXG4gICAgICBmb250V2VpZ2h0cyxcbiAgICAgIG9uRm9jdXNDaGFuZ2UsXG4gICAgICBzaG93U3dhcENvbnRyb2wsXG4gICAgICBzaG93VmlhcG9pbnRDb250cm9sLFxuICAgICAgdCxcbiAgICAgIGxhbmc6IGxuZyxcbiAgICB9ID0gdGhpcy5wcm9wcztcbiAgICBjb25zdCB7IHByaW1hcnkgfSA9IHRoaXMucHJvcHMuY29sb3JzO1xuICAgIGNvbnN0IHsgYWN0aXZlU2xhY2tJbnB1dHMgfSA9IHRoaXMuc3RhdGU7XG4gICAgY29uc3Qgc2xhY2tUaW1lID0gZ2V0U2xhY2tUaW1lT3B0aW9ucyh0KTtcbiAgICBjb25zdCBkZWZhdWx0U2xhY2tUaW1lVmFsdWUgPSAwO1xuICAgIGNvbnN0IGdldFZpYVBvaW50U2xhY2tUaW1lT3JEZWZhdWx0ID0gKFxuICAgICAgdmlhUG9pbnQsXG4gICAgICBkZWZhdWx0VmFsdWUgPSBkZWZhdWx0U2xhY2tUaW1lVmFsdWUsXG4gICAgKSA9PiAodmlhUG9pbnQgJiYgdmlhUG9pbnQubG9jYXRpb25TbGFjaykgfHwgZGVmYXVsdFZhbHVlO1xuICAgIGNvbnN0IGlzVmlhUG9pbnRTbGFja1RpbWVJbnB1dEFjdGl2ZSA9IGluZGV4ID0+XG4gICAgICBhY3RpdmVTbGFja0lucHV0cy5pbmNsdWRlcyhpbmRleCk7XG4gICAgcmV0dXJuIChcbiAgICAgIDxkaXZcbiAgICAgICAgY2xhc3NOYW1lPXtjeChbXG4gICAgICAgICAgc3R5bGVzWydhdXRvc3VnZ2VzdC1wYW5lbCddLFxuICAgICAgICAgIHtcbiAgICAgICAgICAgIHNtYWxsOiB0aGlzLnByb3BzLmlzTW9iaWxlLFxuICAgICAgICAgIH0sXG4gICAgICAgIF0pfVxuICAgICAgICBzdHlsZT17e1xuICAgICAgICAgICctLWNvbG9yJzogcHJpbWFyeSxcbiAgICAgICAgICAnLS1mb250LXdlaWdodC1tZWRpdW0nOiBmb250V2VpZ2h0cy5tZWRpdW0sXG4gICAgICAgIH19XG4gICAgICA+XG4gICAgICAgIHsnICd9XG4gICAgICAgIHtzZWFyY2hQYW5lbFRleHQgPyAoXG4gICAgICAgICAgPGRpdj5cbiAgICAgICAgICAgIDxoMSBjbGFzc05hbWU9e3N0eWxlc1snYXV0b3N1Z2dlc3Qtc2VhcmNocGFuZWwtdGV4dCddfT5cbiAgICAgICAgICAgICAgeycgJ31cbiAgICAgICAgICAgICAge3NlYXJjaFBhbmVsVGV4dH1cbiAgICAgICAgICAgIDwvaDE+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgICkgOiBudWxsfVxuICAgICAgICA8ZGl2IGNsYXNzTmFtZT17c3R5bGVzWydvcmlnaW4taW5wdXQtY29udGFpbmVyJ119PlxuICAgICAgICAgIDxEVEF1dG9TdWdnZXN0XG4gICAgICAgICAgICBhcHBFbGVtZW50PXt0aGlzLnByb3BzLmFwcEVsZW1lbnR9XG4gICAgICAgICAgICBpY29uPVwib3JpZ2luRWxsaXBzZVwiXG4gICAgICAgICAgICBpZD1cIm9yaWdpblwiXG4gICAgICAgICAgICBhdXRvRm9jdXM9e1xuICAgICAgICAgICAgICBkaXNhYmxlQXV0b0ZvY3VzID09PSB0cnVlXG4gICAgICAgICAgICAgICAgPyBmYWxzZVxuICAgICAgICAgICAgICAgIDogIXRoaXMucHJvcHMuaXNNb2JpbGUgJiYgIW9yaWdpbj8ubGF0XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBzdG9yZVJlZj17dGhpcy5zdG9yZVJlZmVyZW5jZX1cbiAgICAgICAgICAgIHJlZlBvaW50PXt0aGlzLnByb3BzLnJlZlBvaW50fVxuICAgICAgICAgICAgY2xhc3NOYW1lPXtnZXRMb2NhdGlvblR5cGUob3JpZ2luKX1cbiAgICAgICAgICAgIHBsYWNlaG9sZGVyPXt0aGlzLnByb3BzLm9yaWdpblBsYWNlSG9sZGVyfVxuICAgICAgICAgICAgdmFsdWU9e3ZhbHVlKG9yaWdpbil9XG4gICAgICAgICAgICBzZWFyY2hDb250ZXh0PXtzZWFyY2hDb250ZXh0fVxuICAgICAgICAgICAgZ2V0QXV0b1N1Z2dlc3RJY29ucz17dGhpcy5wcm9wcy5nZXRBdXRvU3VnZ2VzdEljb25zfVxuICAgICAgICAgICAgb25TZWxlY3Q9e3RoaXMucHJvcHMub25TZWxlY3R9XG4gICAgICAgICAgICBvbkNsZWFyPXt0aGlzLnByb3BzLm9uQ2xlYXJ9XG4gICAgICAgICAgICBmb2N1c0NoYW5nZT17b25Gb2N1c0NoYW5nZSB8fCB0aGlzLmhhbmRsZUZvY3VzQ2hhbmdlfVxuICAgICAgICAgICAgbGFuZz17dGhpcy5wcm9wcy5sYW5nfVxuICAgICAgICAgICAgc291cmNlcz17dGhpcy5wcm9wcy5zb3VyY2VzfVxuICAgICAgICAgICAgdGFyZ2V0cz17dGhpcy5wcm9wcy50YXJnZXRzfVxuICAgICAgICAgICAgZmlsdGVyUmVzdWx0cz17dGhpcy5wcm9wcy5maWx0ZXJSZXN1bHRzfVxuICAgICAgICAgICAgaXNNb2JpbGU9e3RoaXMucHJvcHMuaXNNb2JpbGV9XG4gICAgICAgICAgICBjb2xvcnM9e3RoaXMucHJvcHMuY29sb3JzfVxuICAgICAgICAgICAgbW9iaWxlTGFiZWw9e29yaWdpbk1vYmlsZUxhYmVsfVxuICAgICAgICAgICAgZm9udFdlaWdodHM9e3RoaXMucHJvcHMuZm9udFdlaWdodHN9XG4gICAgICAgICAgICBtb2RlU2V0PXt0aGlzLnByb3BzLm1vZGVTZXR9XG4gICAgICAgICAgICBzaG93U2Nyb2xsPXt0aGlzLnByb3BzLnNob3dTY3JvbGx9XG4gICAgICAgICAgICBpc0VtYmVkZGVkPXt0aGlzLnByb3BzLmlzRW1iZWRkZWR9XG4gICAgICAgICAgLz5cbiAgICAgICAgICB7KHNob3dTd2FwQ29udHJvbCB8fCBzaG93VmlhcG9pbnRDb250cm9sKSAmJiAoXG4gICAgICAgICAgICA8SXRpbmVyYXJ5U2VhcmNoQ29udHJvbFxuICAgICAgICAgICAgICBjbGFzc05hbWU9e3N0eWxlcy5vcHBvc2l0ZX1cbiAgICAgICAgICAgICAgZW5hYmxlZD17c2hvd1N3YXBDb250cm9sfVxuICAgICAgICAgICAgICBvbkNsaWNrPXsoKSA9PiB0aGlzLmhhbmRsZVN3YXBPcmRlckNsaWNrKCl9XG4gICAgICAgICAgICAgIG9uS2V5UHJlc3M9e2UgPT5cbiAgICAgICAgICAgICAgICBpc0tleWJvYXJkU2VsZWN0aW9uRXZlbnQoZSkgJiYgdGhpcy5oYW5kbGVTd2FwT3JkZXJDbGljaygpXG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgYXJpYS1sYWJlbD17dCgnc3dhcC1vcmRlci1idXR0b24tbGFiZWwnLCB7IGxuZyB9KX1cbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgPEljb24gaW1nPVwib3Bwb3NpdGVcIiBjb2xvcj17cHJpbWFyeX0gLz5cbiAgICAgICAgICAgIDwvSXRpbmVyYXJ5U2VhcmNoQ29udHJvbD5cbiAgICAgICAgICApfVxuICAgICAgICA8L2Rpdj5cbiAgICAgICAge3ZpYVBvaW50cy5sZW5ndGggPT09IDAgJiYgKFxuICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPXtzdHlsZXNbJ3JlY3RhbmdsZS1jb250YWluZXInXX0+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT17c3R5bGVzLnJlY3RhbmdsZX0gLz5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgKX1cbiAgICAgICAgPFJlYWN0U29ydGFibGVcbiAgICAgICAgICBjbGFzc05hbWU9e3N0eWxlc1sndmlhcG9pbnRzLWNvbnRhaW5lciddfVxuICAgICAgICAgIGxpc3Q9e3ZpYVBvaW50c31cbiAgICAgICAgICBoYW5kbGU9e2AuJHtzdHlsZXNbJ3ZpYXBvaW50LWJlZm9yZSddfWB9XG4gICAgICAgICAgYW5pbWF0aW9uPXsyMDB9XG4gICAgICAgICAgZGlzYWJsZWQ9e3ZpYVBvaW50cy5sZW5ndGggPD0gMX1cbiAgICAgICAgICBzZXRMaXN0PXtpdGVtcyA9PiB7XG4gICAgICAgICAgICBjb25zdCBuZXdWaWFQb2ludHMgPSBpdGVtcy5maWx0ZXIodnAgPT4gIWlzVmlhUG9pbnRFbXB0eSh2cCkpO1xuICAgICAgICAgICAgaWYgKG5ld1ZpYVBvaW50cy5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgICAgIHRoaXMucHJvcHMudXBkYXRlVmlhUG9pbnRzKG5ld1ZpYVBvaW50cyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfX1cbiAgICAgICAgPlxuICAgICAgICAgIHt2aWFQb2ludHMubWFwKChvLCBpKSA9PiAoXG4gICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgIGNsYXNzTmFtZT17Y3goc3R5bGVzWyd2aWFwb2ludC1jb250YWluZXInXSl9XG4gICAgICAgICAgICAgIGtleT17YHZpYXBvaW50LSR7aX1gfSAvLyBlc2xpbnQtZGlzYWJsZS1saW5lXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPXtzdHlsZXNbJ2xpZ2h0LWdyYXktYmFja2dyb3VuZCddfT5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT17c3R5bGVzLnJvd30+XG4gICAgICAgICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZT17c3R5bGVzWyd2aWFwb2ludC1iZWZvcmUnXX1cbiAgICAgICAgICAgICAgICAgICAgc3R5bGU9e3ZpYVBvaW50cy5sZW5ndGggPiAxID8geyBjdXJzb3I6ICdtb3ZlJyB9IDoge319XG4gICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgIHt2aWFQb2ludHMubGVuZ3RoID4gMSAmJiAoXG4gICAgICAgICAgICAgICAgICAgICAgPEljb24gaW1nPVwiZWxsaXBzaXNcIiByb3RhdGU9ezkwfSBjb2xvcj17cHJpbWFyeX0gLz5cbiAgICAgICAgICAgICAgICAgICAgKX1cbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgICAgICBjbGFzc05hbWU9e2N4KFxuICAgICAgICAgICAgICAgICAgICAgIGAke3N0eWxlc1sndmlhcG9pbnQtaW5wdXQtY29udGFpbmVyJ119ICR7XG4gICAgICAgICAgICAgICAgICAgICAgICBzdHlsZXNbYHZpYXBvaW50LSR7aSArIDF9YF1cbiAgICAgICAgICAgICAgICAgICAgICB9YCxcbiAgICAgICAgICAgICAgICAgICAgKX1cbiAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgPERUQXV0b1N1Z2dlc3RcbiAgICAgICAgICAgICAgICAgICAgICBhcHBFbGVtZW50PXt0aGlzLnByb3BzLmFwcEVsZW1lbnR9XG4gICAgICAgICAgICAgICAgICAgICAgaWNvbj1cIm1hcE1hcmtlclwiXG4gICAgICAgICAgICAgICAgICAgICAgaWQ9XCJ2aWEtcG9pbnRcIlxuICAgICAgICAgICAgICAgICAgICAgIGFyaWFMYWJlbD17dCgndmlhLXBvaW50LWluZGV4Jywge1xuICAgICAgICAgICAgICAgICAgICAgICAgaW5kZXg6IGkgKyAxLFxuICAgICAgICAgICAgICAgICAgICAgICAgbG5nLFxuICAgICAgICAgICAgICAgICAgICAgIH0pfVxuICAgICAgICAgICAgICAgICAgICAgIGF1dG9Gb2N1cz17XG4gICAgICAgICAgICAgICAgICAgICAgICBkaXNhYmxlQXV0b0ZvY3VzID09PSB0cnVlID8gZmFsc2UgOiAhdGhpcy5wcm9wcy5pc01vYmlsZVxuICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICBwbGFjZWhvbGRlcj1cInZpYS1wb2ludFwiXG4gICAgICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lPVwidmlhcG9pbnRcIlxuICAgICAgICAgICAgICAgICAgICAgIHNlYXJjaENvbnRleHQ9e3NlYXJjaENvbnRleHR9XG4gICAgICAgICAgICAgICAgICAgICAgcmVmUG9pbnQ9e3RoaXMucHJvcHMucmVmUG9pbnR9XG4gICAgICAgICAgICAgICAgICAgICAgdmFsdWU9eyhvICYmIG8uYWRkcmVzcykgfHwgJyd9XG4gICAgICAgICAgICAgICAgICAgICAgb25TZWxlY3Q9e3RoaXMucHJvcHMub25TZWxlY3R9XG4gICAgICAgICAgICAgICAgICAgICAgb25DbGVhcj17dGhpcy5wcm9wcy5vbkNsZWFyfVxuICAgICAgICAgICAgICAgICAgICAgIGhhbmRsZVZpYVBvaW50cz17aXRlbSA9PlxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5oYW5kbGVWaWFQb2ludExvY2F0aW9uU2VsZWN0ZWQoaXRlbSwgaSlcbiAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgbGFuZz17dGhpcy5wcm9wcy5sYW5nfVxuICAgICAgICAgICAgICAgICAgICAgIHNvdXJjZXM9e3RoaXMucHJvcHMuc291cmNlc31cbiAgICAgICAgICAgICAgICAgICAgICB0YXJnZXRzPXt0aGlzLnByb3BzLnRhcmdldHN9XG4gICAgICAgICAgICAgICAgICAgICAgZmlsdGVyUmVzdWx0cz17dGhpcy5wcm9wcy5maWx0ZXJSZXN1bHRzfVxuICAgICAgICAgICAgICAgICAgICAgIGdldEF1dG9TdWdnZXN0SWNvbnM9e3RoaXMucHJvcHMuZ2V0QXV0b1N1Z2dlc3RJY29uc31cbiAgICAgICAgICAgICAgICAgICAgICBpc01vYmlsZT17dGhpcy5wcm9wcy5pc01vYmlsZX1cbiAgICAgICAgICAgICAgICAgICAgICBmb250V2VpZ2h0cz17dGhpcy5wcm9wcy5mb250V2VpZ2h0c31cbiAgICAgICAgICAgICAgICAgICAgICBtb2RlU2V0PXt0aGlzLnByb3BzLm1vZGVTZXR9XG4gICAgICAgICAgICAgICAgICAgICAgY29sb3JzPXt0aGlzLnByb3BzLmNvbG9yc31cbiAgICAgICAgICAgICAgICAgICAgICBzaG93U2Nyb2xsPXt0aGlzLnByb3BzLnNob3dTY3JvbGx9XG4gICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgIHt0aGlzLnByb3BzLnNob3dTbGFja0NvbnRyb2wgJiYgKFxuICAgICAgICAgICAgICAgICAgICA8SXRpbmVyYXJ5U2VhcmNoQ29udHJvbFxuICAgICAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZT17c3R5bGVzWydhZGQtdmlhLXBvaW50LXNsYWNrJ119XG4gICAgICAgICAgICAgICAgICAgICAgZW5hYmxlZD17dGhpcy5wcm9wcy5zaG93VmlhcG9pbnRDb250cm9sfVxuICAgICAgICAgICAgICAgICAgICAgIG9uQ2xpY2s9eygpID0+IHRoaXMuaGFuZGxlVG9nZ2xlVmlhUG9pbnRTbGFja0NsaWNrKGkpfVxuICAgICAgICAgICAgICAgICAgICAgIG9uS2V5UHJlc3M9e2UgPT5cbiAgICAgICAgICAgICAgICAgICAgICAgIGlzS2V5Ym9hcmRTZWxlY3Rpb25FdmVudChlKSAmJlxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5oYW5kbGVUb2dnbGVWaWFQb2ludFNsYWNrQ2xpY2soaSlcbiAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgYXJpYS1sYWJlbD17dChcbiAgICAgICAgICAgICAgICAgICAgICAgIGlzVmlhUG9pbnRTbGFja1RpbWVJbnB1dEFjdGl2ZShpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICA/ICdhZGQtdmlhLWR1cmF0aW9uLWJ1dHRvbi1sYWJlbC1vcGVuJ1xuICAgICAgICAgICAgICAgICAgICAgICAgICA6ICdhZGQtdmlhLWR1cmF0aW9uLWJ1dHRvbi1sYWJlbC1jbG9zZScsXG4gICAgICAgICAgICAgICAgICAgICAgICB7IGluZGV4OiBpICsgMSwgbG5nIH0sXG4gICAgICAgICAgICAgICAgICAgICAgKX1cbiAgICAgICAgICAgICAgICAgICAgICB3aWRlXG4gICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICA8SWNvbiBpbWc9XCJ0aW1lXCIgY29sb3I9e3ByaW1hcnl9IC8+XG4gICAgICAgICAgICAgICAgICAgIDwvSXRpbmVyYXJ5U2VhcmNoQ29udHJvbD5cbiAgICAgICAgICAgICAgICAgICl9XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgeyFpc1ZpYVBvaW50U2xhY2tUaW1lSW5wdXRBY3RpdmUoaSkgJiZcbiAgICAgICAgICAgICAgICAgIHZpYVBvaW50c1tpXSAmJlxuICAgICAgICAgICAgICAgICAgdmlhUG9pbnRzW2ldLmxvY2F0aW9uU2xhY2sgPiAwICYmIChcbiAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPXtzdHlsZXNbJ3ZpYXBvaW50LXNsYWNrLXRpbWUnXX0+e2Ake3QoXG4gICAgICAgICAgICAgICAgICAgICAgJ3ZpYXBvaW50LXNsYWNrLWFtb3VudCcsXG4gICAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgbG5nLFxuICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICl9OiAke3RoaXMuZ2V0U2xhY2tEaXNwbGF5KFxuICAgICAgICAgICAgICAgICAgICAgIHZpYVBvaW50c1tpXS5sb2NhdGlvblNsYWNrLFxuICAgICAgICAgICAgICAgICAgICApfWB9PC9zcGFuPlxuICAgICAgICAgICAgICAgICAgKX1cbiAgICAgICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgICBjbGFzc05hbWU9e2N4KHN0eWxlc1snaW5wdXQtdmlhcG9pbnQtc2xhY2stY29udGFpbmVyJ10sIHtcbiAgICAgICAgICAgICAgICAgICAgY29sbGFwc2VkOiAhaXNWaWFQb2ludFNsYWNrVGltZUlucHV0QWN0aXZlKGkpLFxuICAgICAgICAgICAgICAgICAgfSl9XG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9e3N0eWxlc1snc2VsZWN0LXdyYXBwZXInXX0+XG4gICAgICAgICAgICAgICAgICAgIDxTZWxlY3RcbiAgICAgICAgICAgICAgICAgICAgICBpZD17YHZpYXBvaW50LXNsYWNrLSR7aX1gfVxuICAgICAgICAgICAgICAgICAgICAgIGxhYmVsPXt0KCd2aWFwb2ludC1zbGFjay1hbW91bnQnLCB7IGxuZyB9KX1cbiAgICAgICAgICAgICAgICAgICAgICBvcHRpb25zPXtzbGFja1RpbWV9XG4gICAgICAgICAgICAgICAgICAgICAgdmFsdWU9e2dldFZpYVBvaW50U2xhY2tUaW1lT3JEZWZhdWx0KHZpYVBvaW50c1tpXSl9XG4gICAgICAgICAgICAgICAgICAgICAgdmlhUG9pbnRJbmRleD17aX1cbiAgICAgICAgICAgICAgICAgICAgICBpY29uPXtcbiAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuXG4gICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZT17YCR7c3R5bGVzWydjb21ib2JveC1pY29uJ119ICR7c3R5bGVzWyd0aW1lLWlucHV0LWljb24nXX1gfVxuICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICA8SWNvbiBpbWc9XCJ0aW1lXCIgY29sb3I9e3ByaW1hcnl9IC8+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgIG9uU2xhY2tUaW1lU2VsZWN0ZWQ9e3RoaXMuaGFuZGxlVmlhUG9pbnRTbGFja1RpbWVTZWxlY3RlZH1cbiAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgPEl0aW5lcmFyeVNlYXJjaENvbnRyb2xcbiAgICAgICAgICAgICAgICBjbGFzc05hbWU9e3N0eWxlc1sncmVtb3ZlLXZpYS1wb2ludCddfVxuICAgICAgICAgICAgICAgIGVuYWJsZWQ9e3RoaXMucHJvcHMuc2hvd1ZpYXBvaW50Q29udHJvbH1cbiAgICAgICAgICAgICAgICBvbkNsaWNrPXsoKSA9PiB0aGlzLmhhbmRsZVJlbW92ZVZpYVBvaW50Q2xpY2soaSl9XG4gICAgICAgICAgICAgICAgb25LZXlQcmVzcz17ZSA9PlxuICAgICAgICAgICAgICAgICAgaXNLZXlib2FyZFNlbGVjdGlvbkV2ZW50KGUpICYmXG4gICAgICAgICAgICAgICAgICB0aGlzLmhhbmRsZVJlbW92ZVZpYVBvaW50Q2xpY2soaSlcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgYXJpYS1sYWJlbD17dCgncmVtb3ZlLXZpYS1idXR0b24tbGFiZWwnLCB7XG4gICAgICAgICAgICAgICAgICBpbmRleDogaSArIDEsXG4gICAgICAgICAgICAgICAgICBsbmcsXG4gICAgICAgICAgICAgICAgfSl9XG4gICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICA8SWNvbiBpbWc9XCJ0cmFzaFwiIGNvbG9yPXtwcmltYXJ5fSAvPlxuICAgICAgICAgICAgICA8L0l0aW5lcmFyeVNlYXJjaENvbnRyb2w+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICApKX1cbiAgICAgICAgPC9SZWFjdFNvcnRhYmxlPlxuICAgICAgICA8ZGl2IGNsYXNzTmFtZT17c3R5bGVzWydkZXN0aW5hdGlvbi1pbnB1dC1jb250YWluZXInXX0+XG4gICAgICAgICAgPERUQXV0b1N1Z2dlc3RcbiAgICAgICAgICAgIGFwcEVsZW1lbnQ9e3RoaXMucHJvcHMuYXBwRWxlbWVudH1cbiAgICAgICAgICAgIGljb249XCJtYXBNYXJrZXJcIlxuICAgICAgICAgICAgaWQ9XCJkZXN0aW5hdGlvblwiXG4gICAgICAgICAgICBhdXRvRm9jdXM9e1xuICAgICAgICAgICAgICBkaXNhYmxlQXV0b0ZvY3VzID09PSB0cnVlXG4gICAgICAgICAgICAgICAgPyBmYWxzZVxuICAgICAgICAgICAgICAgIDogIXRoaXMucHJvcHMuaXNNb2JpbGUgJiYgIU51bWJlci5pc05hTihvcmlnaW4/LmxhdClcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHN0b3JlUmVmPXt0aGlzLnN0b3JlUmVmZXJlbmNlfVxuICAgICAgICAgICAgcGxhY2Vob2xkZXI9e3RoaXMucHJvcHMuZGVzdGluYXRpb25QbGFjZUhvbGRlcn1cbiAgICAgICAgICAgIGNsYXNzTmFtZT17Z2V0TG9jYXRpb25UeXBlKHRoaXMucHJvcHMuZGVzdGluYXRpb24pfVxuICAgICAgICAgICAgZ2V0QXV0b1N1Z2dlc3RJY29ucz17dGhpcy5wcm9wcy5nZXRBdXRvU3VnZ2VzdEljb25zfVxuICAgICAgICAgICAgc2VhcmNoQ29udGV4dD17c2VhcmNoQ29udGV4dH1cbiAgICAgICAgICAgIG9uU2VsZWN0PXt0aGlzLnByb3BzLm9uU2VsZWN0fVxuICAgICAgICAgICAgb25DbGVhcj17dGhpcy5wcm9wcy5vbkNsZWFyfVxuICAgICAgICAgICAgcmVmUG9pbnQ9e3RoaXMucHJvcHMucmVmUG9pbnR9XG4gICAgICAgICAgICB2YWx1ZT17dmFsdWUodGhpcy5wcm9wcy5kZXN0aW5hdGlvbil9XG4gICAgICAgICAgICBsYW5nPXt0aGlzLnByb3BzLmxhbmd9XG4gICAgICAgICAgICBzb3VyY2VzPXt0aGlzLnByb3BzLnNvdXJjZXN9XG4gICAgICAgICAgICB0YXJnZXRzPXt0aGlzLnByb3BzLnRhcmdldHN9XG4gICAgICAgICAgICBmaWx0ZXJSZXN1bHRzPXt0aGlzLnByb3BzLmZpbHRlclJlc3VsdHN9XG4gICAgICAgICAgICBpc01vYmlsZT17dGhpcy5wcm9wcy5pc01vYmlsZX1cbiAgICAgICAgICAgIG1vYmlsZUxhYmVsPXtkZXN0aW5hdGlvbk1vYmlsZUxhYmVsfVxuICAgICAgICAgICAgZm9udFdlaWdodHM9e3RoaXMucHJvcHMuZm9udFdlaWdodHN9XG4gICAgICAgICAgICBtb2RlU2V0PXt0aGlzLnByb3BzLm1vZGVTZXR9XG4gICAgICAgICAgICBjb2xvcnM9e3RoaXMucHJvcHMuY29sb3JzfVxuICAgICAgICAgICAgc2hvd1Njcm9sbD17dGhpcy5wcm9wcy5zaG93U2Nyb2xsfVxuICAgICAgICAgICAgaXNFbWJlZGRlZD17dGhpcy5wcm9wcy5pc0VtYmVkZGVkfVxuICAgICAgICAgIC8+XG4gICAgICAgICAgeyhzaG93U3dhcENvbnRyb2wgfHwgc2hvd1ZpYXBvaW50Q29udHJvbCkgJiYgKFxuICAgICAgICAgICAgPEl0aW5lcmFyeVNlYXJjaENvbnRyb2xcbiAgICAgICAgICAgICAgY2xhc3NOYW1lPXtjeChzdHlsZXNbJ2FkZC12aWEtcG9pbnQnXSwgc3R5bGVzLm1vcmUsIHtcbiAgICAgICAgICAgICAgICBjb2xsYXBzZWQ6IHZpYVBvaW50cy5sZW5ndGggPiA0LFxuICAgICAgICAgICAgICB9KX1cbiAgICAgICAgICAgICAgZW5hYmxlZD17c2hvd1ZpYXBvaW50Q29udHJvbCAmJiB2aWFQb2ludHMubGVuZ3RoID09PSAwfVxuICAgICAgICAgICAgICBvbkNsaWNrPXsoKSA9PiB0aGlzLmhhbmRsZUFkZFZpYVBvaW50Q2xpY2soKX1cbiAgICAgICAgICAgICAgb25LZXlQcmVzcz17ZSA9PlxuICAgICAgICAgICAgICAgIGlzS2V5Ym9hcmRTZWxlY3Rpb25FdmVudChlKSAmJiB0aGlzLmhhbmRsZUFkZFZpYVBvaW50Q2xpY2soKVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIGFyaWEtbGFiZWw9e3QoJ2FkZC12aWEtYnV0dG9uLWxhYmVsJywgeyBsbmcgfSl9XG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIDxJY29uXG4gICAgICAgICAgICAgICAgaW1nPVwidmlhcG9pbnRcIlxuICAgICAgICAgICAgICAgIHdpZHRoPXsxLjI1fVxuICAgICAgICAgICAgICAgIGhlaWdodD17MS4zNzV9XG4gICAgICAgICAgICAgICAgY29sb3I9e3ByaW1hcnl9XG4gICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICA8L0l0aW5lcmFyeVNlYXJjaENvbnRyb2w+XG4gICAgICAgICAgKX1cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICApO1xuICB9XG59XG5cbmNvbnN0IERUQXV0b3N1Z2dlc3RQYW5lbFdpdGhUcmFuc2xhdGlvbiA9IHdpdGhUcmFuc2xhdGlvbigpKERUQXV0b3N1Z2dlc3RQYW5lbCk7XG5cbmV4cG9ydCBkZWZhdWx0IHByb3BzID0+IHtcbiAgcmV0dXJuIChcbiAgICA8STE4bmV4dFByb3ZpZGVyIGkxOG49e2kxOG59PlxuICAgICAgPERUQXV0b3N1Z2dlc3RQYW5lbFdpdGhUcmFuc2xhdGlvbiB7Li4ucHJvcHN9IC8+XG4gICAgPC9JMThuZXh0UHJvdmlkZXI+XG4gICk7XG59O1xuIl0sIm5hbWVzIjpbIm9iamVjdFdpdGhvdXRQcm9wZXJ0aWVzTG9vc2UiLCJTZWxlY3QiLCJ2YWx1ZSIsIm9wdGlvbnMiLCJvblNsYWNrVGltZVNlbGVjdGVkIiwidmlhUG9pbnRJbmRleCIsImlkIiwibGFiZWwiLCJpY29uIiwibGFiZWxJZCIsInNlbGVjdGVkSXRlbSIsImZpbmQiLCJvcHRpb24iLCJpc09wZW4iLCJnZXRUb2dnbGVCdXR0b25Qcm9wcyIsImdldE1lbnVQcm9wcyIsImdldEl0ZW1Qcm9wcyIsImdldExhYmVsUHJvcHMiLCJoaWdobGlnaHRlZEluZGV4IiwidXNlU2VsZWN0IiwiaXRlbXMiLCJpdGVtVG9TdHJpbmciLCJpdGVtIiwiZGlzcGxheU5hbWUiLCJvblNlbGVjdGVkSXRlbUNoYW5nZSIsIm5ld0l0ZW0iLCJSZWFjdCIsImNyZWF0ZUVsZW1lbnQiLCJjbGFzc05hbWUiLCJzdHlsZXMiLCJjb250YWluZXIiLCJPYmplY3QiLCJhc3NpZ24iLCJpbnB1dCIsImN4Iiwic3VnZ2VzdGlvbnNDb250YWluZXJPcGVuIiwibWFwIiwiaW5kZXgiLCJrZXkiLCJzdWdnZXN0aW9uIiwic3VnZ2VzdGlvbkhpZ2hsaWdodGVkIiwicHJvY2VzcyIsImVudiIsIk5PREVfRU5WIiwicHJvcFR5cGVzIiwiUHJvcFR5cGVzIiwibnVtYmVyIiwiaXNSZXF1aXJlZCIsImZ1bmMiLCJhcnJheU9mIiwic2hhcGUiLCJzdHJpbmciLCJub2RlIiwidHJhbnNsYXRpb25zIiwiZGUiLCJ0cmFuc2xhdGlvbiIsImVuIiwiZmkiLCJwbCIsInN2IiwiaTE4biIsImNyZWF0ZUluc3RhbmNlIiwiZmFsbGJhY2tMbmciLCJyZXNvdXJjZXMiLCJkZWZhdWx0TlMiLCJyZWFjdCIsInVzZVN1c3BlbnNlIiwiaW5pdCIsImdldEVtcHR5VmlhUG9pbnRQbGFjZUhvbGRlciIsImlzVmlhUG9pbnRFbXB0eSIsInZpYVBvaW50IiwidW5kZWZpbmVkIiwiaXNFbXB0eSIsImtleXMiLCJsZW5ndGgiLCJpbmNsdWRlcyIsIkl0aW5lcmFyeVNlYXJjaENvbnRyb2wiLCJfcmVmIiwiY2hpbGRyZW4iLCJlbmFibGVkIiwib25DbGljayIsIm9uS2V5UHJlc3MiLCJ3aWRlIiwicmVzdCIsIl9vYmplY3RXaXRob3V0UHJvcGVydGllcyIsIl9leGNsdWRlZCIsInN0eWxlIiwicm9sZSIsInRhYkluZGV4IiwidXBkYXRlVmlhUG9pbnRTbGFjayIsImFjdGl2ZVZpYVBvaW50U2xhY2tzIiwidXBkYXRlZFZpYVBvaW50SW5kZXgiLCJ2aWFQb2ludFJlbW92ZWQiLCJmb3VuZEF0SW5kZXgiLCJpbmRleE9mIiwic3BsaWNlIiwiaXNLZXlib2FyZFNlbGVjdGlvbkV2ZW50IiwiZXZlbnQiLCJzcGFjZSIsImVudGVyIiwid2hpY2giLCJrZXlDb2RlIiwiY29uY2F0IiwicHJldmVudERlZmF1bHQiLCJsb2NhdGlvbiIsImFkZHJlc3MiLCJncHMiLCJyZWFkeSIsImdldExvY2F0aW9uVHlwZSIsImdldFNsYWNrVGltZU9wdGlvbnMiLCJ0IiwidGltZU9wdGlvbnMiLCJpIiwidmFsdWVJbk1pbnV0ZXMiLCJwdXNoIiwiYm9vbCIsImRlZmF1bHRQcm9wcyIsImxvY2F0aW9uU2hhcGUiLCJsYXQiLCJsb24iLCJsb2NhdGlvblNsYWNrIiwiRFRBdXRvc3VnZ2VzdFBhbmVsIiwiQ29tcG9uZW50IiwiY29uc3RydWN0b3IiLCJwcm9wcyIsIl9kZWZpbmVQcm9wZXJ0eSIsInJlZiIsInNldFN0YXRlIiwicHJldlN0YXRlIiwicmVmcyIsImRlc3RpbmF0aW9uIiwic3RhdGUiLCJmb2N1cyIsInZpYVBvaW50cyIsInVwZGF0ZVZpYVBvaW50cyIsImZpbHRlciIsInZwIiwiYWN0aXZlU2xhY2tJbnB1dHMiLCJzbGFja1RpbWVJblNlY29uZHMiLCJhZGRBbmFseXRpY3NFdmVudCIsImFjdGlvbiIsImNhdGVnb3J5IiwibmFtZSIsIk51bWJlciIsInBhcnNlSW50IiwidmlhUG9pbnRMb2NhdGlvbiIsImhhbmRsZVZpYVBvaW50TG9jYXRpb25TZWxlY3RlZCIsInJldmVyc2UiLCJzd2FwT3JkZXIiLCJzbGFja0luU2Vjb25kcyIsImxuZyIsImxhbmciLCJyZW5kZXIiLCJvcmlnaW4iLCJzZWFyY2hQYW5lbFRleHQiLCJzZWFyY2hDb250ZXh0IiwiZGlzYWJsZUF1dG9Gb2N1cyIsIm9yaWdpbk1vYmlsZUxhYmVsIiwiZGVzdGluYXRpb25Nb2JpbGVMYWJlbCIsImZvbnRXZWlnaHRzIiwib25Gb2N1c0NoYW5nZSIsInNob3dTd2FwQ29udHJvbCIsInNob3dWaWFwb2ludENvbnRyb2wiLCJwcmltYXJ5IiwiY29sb3JzIiwic2xhY2tUaW1lIiwiZGVmYXVsdFNsYWNrVGltZVZhbHVlIiwiZ2V0VmlhUG9pbnRTbGFja1RpbWVPckRlZmF1bHQiLCJkZWZhdWx0VmFsdWUiLCJpc1ZpYVBvaW50U2xhY2tUaW1lSW5wdXRBY3RpdmUiLCJpc01vYmlsZSIsIm1lZGl1bSIsIkRUQXV0b1N1Z2dlc3QiLCJhcHBFbGVtZW50IiwiYXV0b0ZvY3VzIiwic3RvcmVSZWYiLCJzdG9yZVJlZmVyZW5jZSIsInJlZlBvaW50IiwicGxhY2Vob2xkZXIiLCJvcmlnaW5QbGFjZUhvbGRlciIsImdldEF1dG9TdWdnZXN0SWNvbnMiLCJvblNlbGVjdCIsIm9uQ2xlYXIiLCJmb2N1c0NoYW5nZSIsImhhbmRsZUZvY3VzQ2hhbmdlIiwic291cmNlcyIsInRhcmdldHMiLCJmaWx0ZXJSZXN1bHRzIiwibW9iaWxlTGFiZWwiLCJtb2RlU2V0Iiwic2hvd1Njcm9sbCIsImlzRW1iZWRkZWQiLCJvcHBvc2l0ZSIsImhhbmRsZVN3YXBPcmRlckNsaWNrIiwiZSIsIkljb24iLCJpbWciLCJjb2xvciIsInJlY3RhbmdsZSIsIlJlYWN0U29ydGFibGUiLCJsaXN0IiwiaGFuZGxlIiwiYW5pbWF0aW9uIiwiZGlzYWJsZWQiLCJzZXRMaXN0IiwibmV3VmlhUG9pbnRzIiwibyIsInJvdyIsImN1cnNvciIsInJvdGF0ZSIsImFyaWFMYWJlbCIsImhhbmRsZVZpYVBvaW50cyIsInNob3dTbGFja0NvbnRyb2wiLCJoYW5kbGVUb2dnbGVWaWFQb2ludFNsYWNrQ2xpY2siLCJnZXRTbGFja0Rpc3BsYXkiLCJoYW5kbGVWaWFQb2ludFNsYWNrVGltZVNlbGVjdGVkIiwiaGFuZGxlUmVtb3ZlVmlhUG9pbnRDbGljayIsImlzTmFOIiwiZGVzdGluYXRpb25QbGFjZUhvbGRlciIsIm1vcmUiLCJoYW5kbGVBZGRWaWFQb2ludENsaWNrIiwid2lkdGgiLCJoZWlnaHQiLCJkZWZhdWx0Q29sb3JzIiwiVVJMX1BFTElBUyIsIm9iamVjdE9mIiwiRFRBdXRvc3VnZ2VzdFBhbmVsV2l0aFRyYW5zbGF0aW9uIiwid2l0aFRyYW5zbGF0aW9uIiwiSTE4bmV4dFByb3ZpZGVyIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7RUFBQSxTQUFTLE9BQU8sQ0FBQyxDQUFDLEVBQUU7RUFDcEIsRUFBRSx5QkFBeUI7O0VBRTNCLEVBQUUsT0FBTyxPQUFPLEdBQUcsVUFBVSxJQUFJLE9BQU8sTUFBTSxJQUFJLFFBQVEsSUFBSSxPQUFPLE1BQU0sQ0FBQyxRQUFRLEdBQUcsVUFBVSxDQUFDLEVBQUU7RUFDcEcsSUFBSSxPQUFPLE9BQU8sQ0FBQztFQUNuQixFQUFFLENBQUMsR0FBRyxVQUFVLENBQUMsRUFBRTtFQUNuQixJQUFJLE9BQU8sQ0FBQyxJQUFJLFVBQVUsSUFBSSxPQUFPLE1BQU0sSUFBSSxDQUFDLENBQUMsV0FBVyxLQUFLLE1BQU0sSUFBSSxDQUFDLEtBQUssTUFBTSxDQUFDLFNBQVMsR0FBRyxRQUFRLEdBQUcsT0FBTyxDQUFDO0VBQ3ZILEVBQUUsQ0FBQyxFQUFFLE9BQU8sQ0FBQyxDQUFDLENBQUM7RUFDZjs7RUNQQSxTQUFTLFdBQVcsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFO0VBQzNCLEVBQUUsSUFBSSxRQUFRLElBQUksT0FBTyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxFQUFFLE9BQU8sQ0FBQztFQUM1QyxFQUFFLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxNQUFNLENBQUMsV0FBVyxDQUFDO0VBQy9CLEVBQUUsSUFBSSxNQUFNLEtBQUssQ0FBQyxFQUFFO0VBQ3BCLElBQUksSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLEVBQUUsQ0FBYyxDQUFDO0VBQ3JDLElBQUksSUFBSSxRQUFRLElBQUksT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUFFLE9BQU8sQ0FBQztFQUN4QyxJQUFJLE1BQU0sSUFBSSxTQUFTLENBQUMsOENBQThDLENBQUM7RUFDdkUsRUFBRTtFQUNGLEVBQUUsT0FBTyxDQUFDLFFBQVEsS0FBSyxDQUFDLEdBQUcsTUFBTSxHQUFHLE1BQU0sRUFBRSxDQUFDLENBQUM7RUFDOUM7O0VDUkEsU0FBUyxhQUFhLENBQUMsQ0FBQyxFQUFFO0VBQzFCLEVBQUUsSUFBSSxDQUFDLEdBQUcsV0FBVyxDQUFDLENBQUMsRUFBRSxRQUFRLENBQUM7RUFDbEMsRUFBRSxPQUFPLFFBQVEsSUFBSSxPQUFPLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsR0FBRyxFQUFFO0VBQzVDOztFQ0pBLFNBQVMsZUFBZSxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFO0VBQ2xDLEVBQUUsT0FBTyxDQUFDLENBQUMsR0FBRyxhQUFhLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxHQUFHLE1BQU0sQ0FBQyxjQUFjLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRTtFQUNuRSxJQUFJLEtBQUssRUFBRSxDQUFDO0VBQ1osSUFBSSxVQUFVLEVBQUUsSUFBRTtFQUNsQixJQUFJLFlBQVksRUFBRSxJQUFFO0VBQ3BCLElBQUksUUFBUSxFQUFFO0VBQ2QsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDO0VBQ2xCOztFQ1JBLFNBQVMsNkJBQTZCLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRTtFQUM3QyxFQUFFLElBQUksSUFBSSxJQUFJLENBQUMsRUFBRSxPQUFPLEVBQUU7RUFDMUIsRUFBRSxJQUFJLENBQUMsR0FBRyxFQUFFO0VBQ1osRUFBRSxLQUFLLElBQUksQ0FBQyxJQUFJLENBQUMsRUFBRSxJQUFJLEVBQUUsQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBRTtFQUNyRCxJQUFJLElBQUksRUFBRSxLQUFLLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEVBQUU7RUFDN0IsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQztFQUNmLEVBQUU7RUFDRixFQUFFLE9BQU8sQ0FBQztFQUNWOztFQ1BBLFNBQVMsd0JBQXdCLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRTtFQUN4QyxFQUFFLElBQUksSUFBSSxJQUFJLENBQUMsRUFBRSxPQUFPLEVBQUU7RUFDMUIsRUFBRSxJQUFJLENBQUM7RUFDUCxJQUFJLENBQUM7RUFDTCxJQUFJLENBQUMsR0FBR0EsNkJBQTRCLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQztFQUMxQyxFQUFFLElBQUksTUFBTSxDQUFDLHFCQUFxQixFQUFFO0VBQ3BDLElBQUksSUFBSSxDQUFDLEdBQUcsTUFBTSxDQUFDLHFCQUFxQixDQUFDLENBQUMsQ0FBQztFQUMzQyxJQUFJLEtBQUssQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsS0FBSyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxvQkFBb0IsQ0FBQyxJQUFJLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7RUFDdkgsRUFBRTtFQUNGLEVBQUUsT0FBTyxDQUFDO0VBQ1Y7O0VDWEEsU0FBUyxXQUFXLENBQUMsR0FBRyxFQUFFLEdBQUcsRUFBRTtFQUMvQixFQUFFLEtBQUssR0FBRyxLQUFLLE1BQU0sR0FBRyxHQUFHLEdBQUcsRUFBRTtFQUNoQyxFQUFFLElBQUksUUFBUSxHQUFHLEdBQUcsQ0FBQyxRQUFROztFQUU3QixFQUFFLElBQUksQ0FBQyxHQUFHLElBQUksT0FBTyxRQUFRLEtBQUssV0FBVyxFQUFFLEVBQUUsT0FBTyxDQUFDOztFQUV6RCxFQUFFLElBQUksSUFBSSxHQUFHLFFBQVEsQ0FBQyxJQUFJLElBQUksUUFBUSxDQUFDLG9CQUFvQixDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQztFQUN0RSxFQUFFLElBQUksS0FBSyxHQUFHLFFBQVEsQ0FBQyxhQUFhLENBQUMsT0FBTyxDQUFDO0VBQzdDLEVBQUUsS0FBSyxDQUFDLElBQUksR0FBRyxVQUFVOztFQUV6QixFQUFFLElBQUksUUFBUSxLQUFLLEtBQUssRUFBRTtFQUMxQixJQUFJLElBQUksSUFBSSxDQUFDLFVBQVUsRUFBRTtFQUN6QixNQUFNLElBQUksQ0FBQyxZQUFZLENBQUMsS0FBSyxFQUFFLElBQUksQ0FBQyxVQUFVLENBQUM7RUFDL0MsSUFBSSxDQUFDLE1BQU07RUFDWCxNQUFNLElBQUksQ0FBQyxXQUFXLENBQUMsS0FBSyxDQUFDO0VBQzdCLElBQUk7RUFDSixFQUFFLENBQUMsTUFBTTtFQUNULElBQUksSUFBSSxDQUFDLFdBQVcsQ0FBQyxLQUFLLENBQUM7RUFDM0IsRUFBRTs7RUFFRixFQUFFLElBQUksS0FBSyxDQUFDLFVBQVUsRUFBRTtFQUN4QixJQUFJLEtBQUssQ0FBQyxVQUFVLENBQUMsT0FBTyxHQUFHLEdBQUc7RUFDbEMsRUFBRSxDQUFDLE1BQU07RUFDVCxJQUFJLEtBQUssQ0FBQyxXQUFXLENBQUMsUUFBUSxDQUFDLGNBQWMsQ0FBQyxHQUFHLENBQUMsQ0FBQztFQUNuRCxFQUFFO0VBQ0Y7Ozs7OztFQ25CQSxNQUFNQyxNQUFNLEdBQUdBLENBQUM7SUFDZEMsS0FBSztJQUNMQyxPQUFPO0lBQ1BDLG1CQUFtQjtJQUNuQkMsYUFBYTtJQUNiQyxFQUFFO0lBQ0ZDLEtBQUs7RUFDTEMsRUFBQUE7RUFDRixDQUFDLEtBQUs7RUFDSixFQUFBLE1BQU1DLE9BQU8sR0FBRyxDQUFBLEVBQUdILEVBQUUsQ0FBQSxNQUFBLENBQVE7RUFDN0IsRUFBQSxNQUFNSSxZQUFZLEdBQUdQLE9BQU8sQ0FBQ1EsSUFBSSxDQUFDQyxNQUFNLElBQUlBLE1BQU0sQ0FBQ1YsS0FBSyxLQUFLQSxLQUFLLENBQUM7SUFFbkUsTUFBTTtNQUNKVyxNQUFNO01BQ05DLG9CQUFvQjtNQUNwQkMsWUFBWTtNQUNaQyxZQUFZO01BQ1pDLGFBQWE7RUFDYkMsSUFBQUE7S0FDRCxHQUFHQyxtQkFBUyxDQUFDO01BQ1pULFlBQVk7RUFDWlUsSUFBQUEsS0FBSyxFQUFFakIsT0FBTztNQUNkTSxPQUFPO01BQ1BILEVBQUU7RUFDRmUsSUFBQUEsWUFBWSxFQUFFQyxJQUFJLElBQUlBLElBQUksQ0FBQ0MsV0FBVztFQUN0Q0MsSUFBQUEsb0JBQW9CLEVBQUVBLENBQUM7RUFBRWQsTUFBQUEsWUFBWSxFQUFFZTtFQUFRLEtBQUMsS0FBSztFQUNuRHJCLE1BQUFBLG1CQUFtQixDQUFDcUIsT0FBTyxDQUFDdkIsS0FBSyxFQUFFRyxhQUFhLENBQUM7RUFDbkQsSUFBQTtFQUNGLEdBQUMsQ0FBQztJQUVGLG9CQUNFcUIsc0JBQUEsQ0FBQUMsYUFBQSxDQUFBLEtBQUEsRUFBQTtNQUFLQyxTQUFTLEVBQUVDLFFBQU0sQ0FBQyxvQkFBb0I7S0FBRSxlQUMzQ0gsc0JBQUEsQ0FBQUMsYUFBQSxDQUFBLEtBQUEsRUFBQTtNQUFLQyxTQUFTLEVBQUVDLFFBQU0sQ0FBQ0M7S0FBVSxlQUMvQkosc0JBQUEsQ0FBQUMsYUFBQSxDQUFBLEtBQUEsRUFBU2Isb0JBQW9CLEVBQUUsZUFDN0JZLHNCQUFBLENBQUFDLGFBQUEsQ0FBQSxNQUFBLEVBQUE7TUFBTUMsU0FBUyxFQUFFQyxRQUFNLENBQUMsYUFBYTtLQUFFLGVBQ3JDSCxzQkFBQSxDQUFBQyxhQUFBLENBQUEsT0FBQSxFQUFBSSxNQUFBLENBQUFDLE1BQUEsQ0FBQSxFQUFBLEVBQVdmLGFBQWEsRUFBRSxFQUFBO01BQUVXLFNBQVMsRUFBRUMsUUFBTSxDQUFDLGdCQUFnQjtFQUFFLEdBQUEsQ0FBQSxFQUM3RHRCLEtBQ0ksQ0FBQyxlQUNSbUIsc0JBQUEsQ0FBQUMsYUFBQSxDQUFBLEtBQUEsRUFBQTtNQUFLQyxTQUFTLEVBQUVDLFFBQU0sQ0FBQ0k7S0FBTSxlQUMzQlAsc0JBQUEsQ0FBQUMsYUFBQSxDQUFBLE1BQUEsRUFBQSxJQUFBLEVBQU9qQixZQUFZLENBQUNhLFdBQWtCLENBQ25DLENBQ0QsQ0FBQyxFQUNOZixJQUNFLENBQUMsZUFDTmtCLHNCQUFBLENBQUFDLGFBQUEsQ0FBQSxJQUFBLEVBQUFJLE1BQUEsQ0FBQUMsTUFBQSxDQUFBO01BQ0VKLFNBQVMsRUFBRU0sbUJBQUUsQ0FBRUwsUUFBTSxDQUFDTSx3QkFBd0IsRUFBRSxDQUFDdEIsTUFBTSxJQUFJLFFBQVM7S0FBRSxFQUNsRUUsWUFBWSxFQUFFLENBQUEsRUFFakJGLE1BQU0sSUFDTFYsT0FBTyxDQUFDaUMsR0FBRyxDQUFDLENBQUN4QixNQUFNLEVBQUV5QixLQUFLLGtCQUN4Qlgsc0JBQUEsQ0FBQUMsYUFBQSxDQUFBLElBQUEsRUFBQUksTUFBQSxDQUFBQyxNQUFBLENBQUE7TUFDRU0sR0FBRyxFQUFFMUIsTUFBTSxDQUFDVixLQUFNO0VBQ2xCMEIsSUFBQUEsU0FBUyxFQUFFTSxtQkFBRSxDQUNYTCxRQUFNLENBQUNVLFVBQVUsRUFDakJGLEtBQUssS0FBS25CLGdCQUFnQixJQUFJVyxRQUFNLENBQUNXLHFCQUN0QztFQUFFLEdBQUEsRUFDQ3hCLFlBQVksQ0FBQztFQUFFcUIsSUFBQUE7RUFBTSxHQUFDLENBQUMsQ0FBQSxlQUUzQlgsc0JBQUEsQ0FBQUMsYUFBQSxDQUFBLE1BQUEsRUFBQSxJQUFBLEVBQU9mLE1BQU0sQ0FBQ1csV0FBa0IsQ0FDOUIsQ0FDTCxDQUNELENBQ0QsQ0FDRixDQUFDO0VBRVYsQ0FBQztFQUVEa0IsT0FBQSxDQUFBQyxHQUFBLENBQUFDLFFBQUEsb0JBQUExQyxNQUFNLENBQUMyQyxTQUFTLEdBQUc7RUFDakIxQyxFQUFBQSxLQUFLLEVBQUUyQywwQkFBUyxDQUFDQyxNQUFNLENBQUNDLFVBQVU7RUFDbEMzQyxFQUFBQSxtQkFBbUIsRUFBRXlDLDBCQUFTLENBQUNHLElBQUksQ0FBQ0QsVUFBVTtJQUM5QzVDLE9BQU8sRUFBRTBDLDBCQUFTLENBQUNJLE9BQU8sQ0FDeEJKLDBCQUFTLENBQUNLLEtBQUssQ0FBQztFQUNkM0IsSUFBQUEsV0FBVyxFQUFFc0IsMEJBQVMsQ0FBQ00sTUFBTSxDQUFDSixVQUFVO0VBQ3hDN0MsSUFBQUEsS0FBSyxFQUFFMkMsMEJBQVMsQ0FBQ0MsTUFBTSxDQUFDQztFQUMxQixHQUFDLENBQUMsQ0FBQ0EsVUFDTCxDQUFDLENBQUNBLFVBQVU7RUFDWnpDLEVBQUFBLEVBQUUsRUFBRXVDLDBCQUFTLENBQUNNLE1BQU0sQ0FBQ0osVUFBVTtFQUMvQnhDLEVBQUFBLEtBQUssRUFBRXNDLDBCQUFTLENBQUNPLElBQUksQ0FBQ0wsVUFBVTtFQUNoQ3ZDLEVBQUFBLElBQUksRUFBRXFDLDBCQUFTLENBQUNPLElBQUksQ0FBQ0wsVUFBVTtFQUMvQjFDLEVBQUFBLGFBQWEsRUFBRXdDLDBCQUFTLENBQUNDLE1BQU0sQ0FBQ0M7RUFDbEMsQ0FBQyxHQUFBLE1BQUE7O0VDdEZELE1BQU1NLFlBQVksR0FBRztFQUNuQkMsRUFBQUEsRUFBRSxFQUFFO0VBQ0ZDLElBQUFBLFdBQVcsRUFBRTtFQUNYLE1BQUEsc0JBQXNCLEVBQUUseUJBQXlCO0VBQ2pELE1BQUEsK0JBQStCLEVBQzdCLCtDQUErQztFQUNqRCxNQUFBLHFDQUFxQyxFQUNuQywwREFBMEQ7RUFDNUQsTUFBQSxvQ0FBb0MsRUFDbEMsdURBQXVEO0VBQ3pELE1BQUEsY0FBYyxFQUFFLEtBQUs7RUFDckIsTUFBQSx5QkFBeUIsRUFBRSxpQ0FBaUM7RUFDNUQsTUFBQSx5QkFBeUIsRUFBRSx3QkFBd0I7RUFDbkQsTUFBQSxXQUFXLEVBQUUsY0FBYztFQUMzQixNQUFBLGlCQUFpQixFQUFFLHdCQUF3QjtFQUMzQyxNQUFBLHVCQUF1QixFQUFFO0VBQzNCO0tBQ0Q7RUFDREMsRUFBQUEsRUFBRSxFQUFFO0VBQ0ZELElBQUFBLFdBQVcsRUFBRTtFQUNYLE1BQUEsc0JBQXNCLEVBQUUsZUFBZTtFQUN2QyxNQUFBLCtCQUErQixFQUM3QiwwQ0FBMEM7RUFDNUMsTUFBQSxxQ0FBcUMsRUFDbkMscURBQXFEO0VBQ3ZELE1BQUEsb0NBQW9DLEVBQ2xDLG9EQUFvRDtFQUN0RCxNQUFBLGNBQWMsRUFBRSxLQUFLO0VBQ3JCLE1BQUEseUJBQXlCLEVBQUUsNEJBQTRCO0VBQ3ZELE1BQUEseUJBQXlCLEVBQUUsZ0NBQWdDO0VBQzNELE1BQUEsV0FBVyxFQUFFLFdBQVc7RUFDeEIsTUFBQSxpQkFBaUIsRUFBRSxxQkFBcUI7RUFDeEMsTUFBQSx1QkFBdUIsRUFBRTtFQUMzQjtLQUNEO0VBQ0RFLEVBQUFBLEVBQUUsRUFBRTtFQUNGRixJQUFBQSxXQUFXLEVBQUU7RUFDWCxNQUFBLHNCQUFzQixFQUFFLGlCQUFpQjtFQUN6QyxNQUFBLCtCQUErQixFQUM3QixpREFBaUQ7RUFDbkQsTUFBQSxxQ0FBcUMsRUFDbkMsdURBQXVEO0VBQ3pELE1BQUEsb0NBQW9DLEVBQ2xDLHdEQUF3RDtFQUMxRCxNQUFBLGNBQWMsRUFBRSxLQUFLO0VBQ3JCLE1BQUEseUJBQXlCLEVBQUUsNEJBQTRCO0VBQ3ZELE1BQUEseUJBQXlCLEVBQUUscUNBQXFDO0VBQ2hFLE1BQUEsV0FBVyxFQUFFLFdBQVc7RUFDeEIsTUFBQSxpQkFBaUIsRUFBRSxxQkFBcUI7RUFDeEMsTUFBQSx1QkFBdUIsRUFBRTtFQUMzQjtLQUNEO0VBQ0RHLEVBQUFBLEVBQUUsRUFBRTtFQUNGSCxJQUFBQSxXQUFXLEVBQUU7RUFDWCxNQUFBLHNCQUFzQixFQUFFLHNCQUFzQjtFQUM5QyxNQUFBLCtCQUErQixFQUM3QiwyQ0FBMkM7RUFDN0MsTUFBQSxxQ0FBcUMsRUFDbkMsb0RBQW9EO0VBQ3RELE1BQUEsb0NBQW9DLEVBQ2xDLG1EQUFtRDtFQUNyRCxNQUFBLGNBQWMsRUFBRSxNQUFNO0VBQ3RCLE1BQUEseUJBQXlCLEVBQUUsK0JBQStCO0VBQzFELE1BQUEseUJBQXlCLEVBQUUsdUJBQXVCO0VBQ2xELE1BQUEsV0FBVyxFQUFFLGdCQUFnQjtFQUM3QixNQUFBLGlCQUFpQixFQUFFLDBCQUEwQjtFQUM3QyxNQUFBLHVCQUF1QixFQUFFO0VBQzNCO0tBQ0Q7RUFDREksRUFBQUEsRUFBRSxFQUFFO0VBQ0ZKLElBQUFBLFdBQVcsRUFBRTtFQUNYLE1BQUEsc0JBQXNCLEVBQUUsb0JBQW9CO0VBQzVDLE1BQUEsK0JBQStCLEVBQzdCLCtDQUErQztFQUNqRCxNQUFBLHFDQUFxQyxFQUNuQywwREFBMEQ7RUFDNUQsTUFBQSxvQ0FBb0MsRUFDbEMsMERBQTBEO0VBQzVELE1BQUEsY0FBYyxFQUFFLEtBQUs7RUFDckIsTUFBQSx5QkFBeUIsRUFBRSw0QkFBNEI7RUFDdkQsTUFBQSx5QkFBeUIsRUFBRSwwQ0FBMEM7RUFDckUsTUFBQSxXQUFXLEVBQUUsV0FBVztFQUN4QixNQUFBLGlCQUFpQixFQUFFLHFCQUFxQjtFQUN4QyxNQUFBLHVCQUF1QixFQUFFO0VBQzNCO0VBQ0Y7RUFDRixDQUFDOztFQ25GRCxNQUFNSyxJQUFJLEdBQUdDLHNCQUFjLENBQUM7RUFDMUJDLEVBQUFBLFdBQVcsRUFBRSxJQUFJO0VBQ2pCO0VBQ0FDLEVBQUFBLFNBQVMsRUFBRVYsWUFBWTtFQUN2QlcsRUFBQUEsU0FBUyxFQUFFLGFBQWE7RUFDeEJDLEVBQUFBLEtBQUssRUFBRTtFQUNMQyxJQUFBQSxXQUFXLEVBQUU7RUFDZjtFQUNGLENBQUMsQ0FBQztFQUVGTixJQUFJLENBQUNPLElBQUksRUFBRTs7Ozs7OztRQ0VFQywyQkFBMkIsR0FBR0EsT0FBTyxFQUFFO0VBRXBELE1BQU1DLGVBQWUsR0FBR0MsUUFBUSxJQUFJO0lBQ2xDLElBQUlBLFFBQVEsS0FBS0MsU0FBUyxJQUFJQyx3QkFBTyxDQUFDRixRQUFRLENBQUMsRUFBRTtFQUMvQyxJQUFBLE9BQU8sSUFBSTtFQUNiLEVBQUE7RUFDQSxFQUFBLE1BQU1HLElBQUksR0FBRzFDLE1BQU0sQ0FBQzBDLElBQUksQ0FBQ0gsUUFBUSxDQUFDO0VBQ2xDLEVBQUEsT0FDRUcsSUFBSSxDQUFDQyxNQUFNLEtBQUssQ0FBQyxJQUFLRCxJQUFJLENBQUNDLE1BQU0sS0FBSyxDQUFDLElBQUlELElBQUksQ0FBQ0UsUUFBUSxDQUFDLGVBQWUsQ0FBRTtFQUU5RSxDQUFDO0VBRUQsTUFBTUMsc0JBQXNCLEdBQUdDLElBQUEsSUFBQTtJQUFBLElBQUM7UUFDOUJDLFFBQVE7UUFDUmxELFNBQVM7UUFDVG1ELE9BQU87UUFDUEMsT0FBTztRQUNQQyxVQUFVO0VBQ1ZDLE1BQUFBO0VBRUYsS0FBQyxHQUFBTCxJQUFBO0VBRElNLElBQUFBLElBQUksR0FBQUMsd0JBQUEsQ0FBQVAsSUFBQSxFQUFBUSxTQUFBLENBQUE7SUFBQSxvQkFFUDNELHNCQUFBLENBQUFDLGFBQUEsQ0FBQSxLQUFBLEVBQUE7RUFDRUMsSUFBQUEsU0FBUyxFQUFFQyxNQUFNLENBQUMsMEJBQTBCLENBQUU7RUFDOUN5RCxJQUFBQSxLQUFLLEVBQUU7RUFBRSxNQUFBLFNBQVMsRUFBRUosSUFBSSxHQUFHLE1BQU0sR0FBRztFQUFPO0VBQUUsR0FBQSxFQUU1Q0YsT0FBTyxJQUFJRCxPQUFPLGlCQUNqQnJELHNCQUFBLENBQUFDLGFBQUEsQ0FBQSxLQUFBLEVBQUFJLE1BQUEsQ0FBQUMsTUFBQSxDQUFBLEVBQUEsRUFDTW1ELElBQUksRUFBQTtFQUNSdkQsSUFBQUEsU0FBUyxFQUFFQSxTQUFVO0VBQ3JCb0QsSUFBQUEsT0FBTyxFQUFFQSxPQUFRO0VBQ2pCQyxJQUFBQSxVQUFVLEVBQUVBLFVBQVc7RUFDdkJNLElBQUFBLElBQUksRUFBQyxRQUFRO0VBQ2JDLElBQUFBLFFBQVEsRUFBQztLQUFHLENBQUEsRUFFWFYsUUFDRSxDQUVKLENBQUM7RUFBQSxDQUNQO0VBRUQsTUFBTVcsbUJBQW1CLEdBQUdBLENBQzFCQyxvQkFBb0IsRUFDcEJDLG9CQUFvQixFQUNwQkMsZUFBZSxHQUFHLEtBQUssS0FDcEI7RUFDSCxFQUFBLE1BQU1DLFlBQVksR0FBR0gsb0JBQW9CLENBQUNJLE9BQU8sQ0FBQ0gsb0JBQW9CLENBQUM7RUFDdkUsRUFBQSxJQUFJRSxZQUFZLEdBQUcsRUFBRSxFQUFFO0VBQ3JCSCxJQUFBQSxvQkFBb0IsQ0FBQ0ssTUFBTSxDQUFDRixZQUFZLEVBQUUsQ0FBQyxDQUFDO0VBQzlDLEVBQUE7RUFDQSxFQUFBLE9BQU9ELGVBQWUsR0FDbEJGLG9CQUFvQixDQUFDdEQsR0FBRyxDQUFDbEMsS0FBSyxJQUM1QkEsS0FBSyxHQUFHeUYsb0JBQW9CLEdBQUd6RixLQUFLLEdBQUcsQ0FBQyxHQUFHQSxLQUM3QyxDQUFDLEdBQ0R3RixvQkFBb0I7RUFDMUIsQ0FBQztFQUVELE1BQU1NLHdCQUF3QixHQUFHQyxLQUFLLElBQUk7SUFDeEMsTUFBTUMsS0FBSyxHQUFHLENBQUMsRUFBRSxFQUFFLEdBQUcsRUFBRSxVQUFVLENBQUM7RUFDbkMsRUFBQSxNQUFNQyxLQUFLLEdBQUcsQ0FBQyxFQUFFLEVBQUUsT0FBTyxDQUFDO0VBQzNCLEVBQUEsTUFBTTdELEdBQUcsR0FBSTJELEtBQUssS0FBS0EsS0FBSyxDQUFDM0QsR0FBRyxJQUFJMkQsS0FBSyxDQUFDRyxLQUFLLElBQUlILEtBQUssQ0FBQ0ksT0FBTyxDQUFDLElBQUssRUFBRTtFQUN4RSxFQUFBLElBQUksQ0FBQy9ELEdBQUcsSUFBSSxDQUFDNEQsS0FBSyxDQUFDSSxNQUFNLENBQUNILEtBQUssQ0FBQyxDQUFDeEIsUUFBUSxDQUFDckMsR0FBRyxDQUFDLEVBQUU7RUFDOUMsSUFBQSxPQUFPLEtBQUs7RUFDZCxFQUFBO0lBQ0EyRCxLQUFLLENBQUNNLGNBQWMsRUFBRTtFQUN0QixFQUFBLE9BQU8sSUFBSTtFQUNiLENBQUM7RUFFRCxNQUFNckcsS0FBSyxHQUFHc0csUUFBUSxJQUNuQkEsUUFBUSxJQUFJQSxRQUFRLENBQUNDLE9BQU8sSUFDNUJELFFBQVEsSUFBSUEsUUFBUSxDQUFDRSxHQUFHLElBQUlGLFFBQVEsQ0FBQ0csS0FBSyxJQUFJLG1CQUFvQixJQUNuRSxFQUFFO0VBRUosTUFBTUMsZUFBZSxHQUFHSixRQUFRLElBQzlCQSxRQUFRLElBQUlBLFFBQVEsQ0FBQ0UsR0FBRyxLQUFLLElBQUksR0FBRyxVQUFVLEdBQUcsVUFBVTtFQUU3RCxNQUFNRyxtQkFBbUIsR0FBR0MsQ0FBQyxJQUFJO0lBQy9CLE1BQU1DLFdBQVcsR0FBRyxFQUFFO0lBQ3RCLEtBQUssSUFBSUMsQ0FBQyxHQUFHLENBQUMsRUFBRUEsQ0FBQyxJQUFJLENBQUMsRUFBRUEsQ0FBQyxFQUFFLEVBQUU7RUFDM0IsSUFBQSxNQUFNQyxjQUFjLEdBQUdELENBQUMsR0FBRyxFQUFFO01BQzdCRCxXQUFXLENBQUNHLElBQUksQ0FBQztRQUNmM0YsV0FBVyxFQUFFLEdBQUcwRixjQUFjLENBQUEsQ0FBQSxFQUFJSCxDQUFDLENBQUMsY0FBYyxDQUFDLENBQUEsQ0FBRTtRQUNyRDVHLEtBQUssRUFBRStHLGNBQWMsR0FBRztFQUMxQixLQUFDLENBQUM7RUFDSixFQUFBO0VBQ0EsRUFBQSxPQUFPRixXQUFXO0VBQ3BCLENBQUM7RUFFRHRFLE9BQUEsQ0FBQUMsR0FBQSxDQUFBQyxRQUFBLG9CQUFBaUMsc0JBQXNCLENBQUNoQyxTQUFTLEdBQUc7SUFDakNrQyxRQUFRLEVBQUVqQywwQkFBUyxDQUFDTyxJQUFJO0VBQ3hCeEIsRUFBQUEsU0FBUyxFQUFFaUIsMEJBQVMsQ0FBQ00sTUFBTSxDQUFDSixVQUFVO0VBQ3RDZ0MsRUFBQUEsT0FBTyxFQUFFbEMsMEJBQVMsQ0FBQ3NFLElBQUksQ0FBQ3BFLFVBQVU7RUFDbENpQyxFQUFBQSxPQUFPLEVBQUVuQywwQkFBUyxDQUFDRyxJQUFJLENBQUNELFVBQVU7RUFDbENrQyxFQUFBQSxVQUFVLEVBQUVwQywwQkFBUyxDQUFDRyxJQUFJLENBQUNELFVBQVU7SUFDckNtQyxJQUFJLEVBQUVyQywwQkFBUyxDQUFDc0U7RUFDbEIsQ0FBQyxHQUFBLE1BQUE7RUFFRHZDLHNCQUFzQixDQUFDd0MsWUFBWSxHQUFHO0VBQ3BDdEMsRUFBQUEsUUFBUSxFQUFFUCxTQUFTO0VBQ25CVyxFQUFBQSxJQUFJLEVBQUU7RUFDUixDQUFDOztFQUVEO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOztFQUVBLE1BQU1tQyxhQUFhLEdBQUE1RSxPQUFBLENBQUFDLEdBQUEsQ0FBQUMsUUFBQSxLQUFBLFlBQUEsR0FBR0UsMEJBQVMsQ0FBQ0ssS0FBSyxDQUFDO0lBQ3BDdUQsT0FBTyxFQUFFNUQsMEJBQVMsQ0FBQ00sTUFBTTtJQUN6Qm1FLEdBQUcsRUFBRXpFLDBCQUFTLENBQUNDLE1BQU07SUFDckJ5RSxHQUFHLEVBQUUxRSwwQkFBUyxDQUFDQyxNQUFNO0lBQ3JCMEUsYUFBYSxFQUFFM0UsMEJBQVMsQ0FBQ0M7RUFDM0IsQ0FBQyxDQUFDLEdBQUEsRUFBQTtFQUVGLE1BQU0yRSxrQkFBa0IsU0FBUy9GLHNCQUFLLENBQUNnRyxTQUFTLENBQUM7SUE0RS9DQyxXQUFXQSxDQUFDQyxLQUFLLEVBQUU7TUFDakIsS0FBSyxDQUFDQSxLQUFLLENBQUM7TUFBQ0MsZUFBQSxDQUFBLElBQUEsRUFBQSxnQkFBQSxFQU9FQyxHQUFHLElBQUk7RUFDdEIsTUFBQSxJQUFJLENBQUNDLFFBQVEsQ0FBQ0MsU0FBUyxLQUFLO0VBQUVDLFFBQUFBLElBQUksRUFBRSxDQUFDLEdBQUdELFNBQVMsQ0FBQ0MsSUFBSSxFQUFFSCxHQUFHO0VBQUUsT0FBQyxDQUFDLENBQUM7TUFDbEUsQ0FBQyxDQUFBO0VBQUFELElBQUFBLGVBQUEsNEJBRW1CLE1BQU07UUFDeEIsTUFBTTtFQUFFSyxRQUFBQTtTQUFhLEdBQUcsSUFBSSxDQUFDTixLQUFLO0VBQ2xDLE1BQUEsSUFBSSxDQUFDTSxXQUFXLElBQUksQ0FBQ0EsV0FBVyxDQUFDWixHQUFHLEVBQUU7VUFDcEMsSUFBSSxDQUFDYSxLQUFLLENBQUNGLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQ0csS0FBSyxFQUFFO0VBQzVCLE1BQUE7TUFDRixDQUFDLENBQUE7TUFBQVAsZUFBQSxDQUFBLElBQUEsRUFBQSxpQkFBQSxFQUVpQlEsU0FBUyxJQUFJO0VBQzdCLE1BQUEsSUFBSUEsU0FBUyxDQUFDM0QsTUFBTSxLQUFLLENBQUMsRUFBRTtFQUMxQixRQUFBLElBQUksQ0FBQ2tELEtBQUssQ0FBQ1UsZUFBZSxDQUFDLEVBQUUsQ0FBQztFQUM5QixRQUFBO0VBQ0YsTUFBQTtFQUNBLE1BQUEsSUFBSSxDQUFDVixLQUFLLENBQUNVLGVBQWUsQ0FBQ0QsU0FBUyxDQUFDRSxNQUFNLENBQUNDLEVBQUUsSUFBSSxDQUFDbkUsZUFBZSxDQUFDbUUsRUFBRSxDQUFDLENBQUMsQ0FBQztNQUMxRSxDQUFDLENBQUE7TUFBQVgsZUFBQSxDQUFBLElBQUEsRUFBQSxnQ0FBQSxFQUVnQ3hILGFBQWEsSUFBSTtRQUNoRCxNQUFNO0VBQUVvSSxRQUFBQTtTQUFtQixHQUFHLElBQUksQ0FBQ04sS0FBSztRQUN4QyxJQUFJLENBQUNKLFFBQVEsQ0FBQztVQUNaVSxpQkFBaUIsRUFBRUEsaUJBQWlCLENBQUM5RCxRQUFRLENBQUN0RSxhQUFhLENBQUMsR0FDeERvRixtQkFBbUIsQ0FBQ2dELGlCQUFpQixFQUFFcEksYUFBYSxDQUFDLEdBQ3JEb0ksaUJBQWlCLENBQUNuQyxNQUFNLENBQUMsQ0FBQ2pHLGFBQWEsQ0FBQztFQUM5QyxPQUFDLENBQUM7TUFDSixDQUFDLENBQUE7RUFBQXdILElBQUFBLGVBQUEsQ0FBQSxJQUFBLEVBQUEsaUNBQUEsRUFFaUMsQ0FBQ2Esa0JBQWtCLEVBQUUxQixDQUFDLEtBQUs7RUFDM0QsTUFBQSxJQUFJLElBQUksQ0FBQ1ksS0FBSyxDQUFDZSxpQkFBaUIsRUFBRTtFQUNoQyxRQUFBLElBQUksQ0FBQ2YsS0FBSyxDQUFDZSxpQkFBaUIsQ0FBQztFQUMzQkMsVUFBQUEsTUFBTSxFQUFFLDBCQUEwQjtFQUNsQ0MsVUFBQUEsUUFBUSxFQUFFLG1CQUFtQjtZQUM3QkMsSUFBSSxFQUFFSixrQkFBa0IsR0FBRztFQUM3QixTQUFDLENBQUM7RUFDSixNQUFBO1FBQ0EsTUFBTTtFQUFFTCxRQUFBQTtTQUFXLEdBQUcsSUFBSSxDQUFDVCxLQUFLO0VBQ2hDUyxNQUFBQSxTQUFTLENBQUNyQixDQUFDLENBQUMsQ0FBQ1EsYUFBYSxHQUFHdUIsTUFBTSxDQUFDQyxRQUFRLENBQUNOLGtCQUFrQixFQUFFLEVBQUUsQ0FBQztFQUNwRSxNQUFBLElBQUksQ0FBQ0osZUFBZSxDQUFDRCxTQUFTLENBQUM7TUFDakMsQ0FBQyxDQUFBO0VBQUFSLElBQUFBLGVBQUEsQ0FBQSxJQUFBLEVBQUEsZ0NBQUEsRUFFZ0MsQ0FBQ29CLGdCQUFnQixFQUFFakMsQ0FBQyxLQUFLO1FBQ3hELElBQUksQ0FBQ1ksS0FBSyxDQUFDc0IsOEJBQThCLENBQUNELGdCQUFnQixFQUFFakMsQ0FBQyxDQUFDO01BQ2hFLENBQUMsQ0FBQTtNQUFBYSxlQUFBLENBQUEsSUFBQSxFQUFBLDJCQUFBLEVBRTJCeEgsYUFBYSxJQUFJO0VBQzNDLE1BQUEsSUFBSSxJQUFJLENBQUN1SCxLQUFLLENBQUNlLGlCQUFpQixFQUFFO0VBQ2hDLFFBQUEsSUFBSSxDQUFDZixLQUFLLENBQUNlLGlCQUFpQixDQUFDO0VBQzNCQyxVQUFBQSxNQUFNLEVBQUUsdUJBQXVCO0VBQy9CQyxVQUFBQSxRQUFRLEVBQUUsbUJBQW1CO0VBQzdCQyxVQUFBQSxJQUFJLEVBQUU7RUFDUixTQUFDLENBQUM7RUFDSixNQUFBO1FBQ0EsTUFBTTtFQUFFTCxRQUFBQTtTQUFtQixHQUFHLElBQUksQ0FBQ04sS0FBSztRQUN4QyxNQUFNO0VBQUVFLFFBQUFBO1NBQVcsR0FBRyxJQUFJLENBQUNULEtBQUs7RUFDaENTLE1BQUFBLFNBQVMsQ0FBQ3RDLE1BQU0sQ0FBQzFGLGFBQWEsRUFBRSxDQUFDLENBQUM7UUFDbEMsSUFBSSxDQUFDMEgsUUFBUSxDQUNYO0VBQ0VVLFFBQUFBLGlCQUFpQixFQUFFaEQsbUJBQW1CLENBQ3BDZ0QsaUJBQWlCLEVBQ2pCcEksYUFBYSxFQUNiLElBQ0Y7U0FDRCxFQUNELE1BQU0sSUFBSSxDQUFDaUksZUFBZSxDQUFDRCxTQUFTLENBQ3RDLENBQUM7TUFDSCxDQUFDLENBQUE7RUFBQVIsSUFBQUEsZUFBQSxpQ0FFd0IsTUFBTTtFQUM3QixNQUFBLElBQUksSUFBSSxDQUFDRCxLQUFLLENBQUNlLGlCQUFpQixFQUFFO0VBQ2hDLFFBQUEsSUFBSSxDQUFDZixLQUFLLENBQUNlLGlCQUFpQixDQUFDO0VBQzNCQyxVQUFBQSxNQUFNLEVBQUUsb0JBQW9CO0VBQzVCQyxVQUFBQSxRQUFRLEVBQUUsbUJBQW1CO0VBQzdCQyxVQUFBQSxJQUFJLEVBQUU7RUFDUixTQUFDLENBQUM7RUFDSixNQUFBO1FBQ0EsTUFBTTtFQUFFVCxRQUFBQTtTQUFXLEdBQUcsSUFBSSxDQUFDVCxLQUFLO0VBQ2hDUyxNQUFBQSxTQUFTLENBQUNuQixJQUFJLENBQUM5QywyQkFBMkIsRUFBRSxDQUFDO0VBQzdDO0VBQ0E7RUFDQSxNQUFBLElBQUksQ0FBQzJELFFBQVEsQ0FBQyxJQUFJLENBQUNJLEtBQUssQ0FBQztNQUMzQixDQUFDLENBQUE7RUFBQU4sSUFBQUEsZUFBQSwrQkFFc0IsTUFBTTtFQUMzQixNQUFBLElBQUksSUFBSSxDQUFDRCxLQUFLLENBQUNlLGlCQUFpQixFQUFFO0VBQ2hDLFFBQUEsSUFBSSxDQUFDZixLQUFLLENBQUNlLGlCQUFpQixDQUFDO0VBQzNCQyxVQUFBQSxNQUFNLEVBQUUsb0NBQW9DO0VBQzVDQyxVQUFBQSxRQUFRLEVBQUUsbUJBQW1CO0VBQzdCQyxVQUFBQSxJQUFJLEVBQUU7RUFDUixTQUFDLENBQUM7RUFDSixNQUFBO1FBQ0EsTUFBTTtFQUFFVCxRQUFBQTtTQUFXLEdBQUcsSUFBSSxDQUFDVCxLQUFLO1FBQ2hDUyxTQUFTLENBQUNjLE9BQU8sRUFBRTtFQUNuQixNQUFBLElBQUksQ0FBQ3ZCLEtBQUssQ0FBQ3dCLFNBQVMsRUFBRTtNQUN4QixDQUFDLENBQUE7RUFBQXZCLElBQUFBLGVBQUEsQ0FBQSxJQUFBLEVBQUEsaUJBQUEsRUFFaUJ3QixjQUFjLElBQzlCLENBQUEsRUFBR0EsY0FBYyxHQUFHLEVBQUUsQ0FBQSxDQUFBLEVBQUksSUFBSSxDQUFDekIsS0FBSyxDQUFDZCxDQUFDLENBQUMsY0FBYyxFQUFFO0FBQ3JEd0MsTUFBQUEsR0FBRyxFQUFFLElBQUksQ0FBQzFCLEtBQUssQ0FBQzJCO0FBQ2xCLEtBQUMsQ0FBQyxDQUFBLENBQUUsQ0FBQTtNQXpHSixJQUFJLENBQUNwQixLQUFLLEdBQUc7RUFDWE0sTUFBQUEsaUJBQWlCLEVBQUUsRUFBRTtFQUNyQlIsTUFBQUEsSUFBSSxFQUFFO09BQ1A7RUFDSCxFQUFBO0VBdUdBdUIsRUFBQUEsTUFBTUEsR0FBRztNQUNQLE1BQU07UUFDSkMsTUFBTTtRQUNOQyxlQUFlO1FBQ2ZDLGFBQWE7UUFDYkMsZ0JBQWdCO1FBQ2hCdkIsU0FBUztRQUNUd0IsaUJBQWlCO1FBQ2pCQyxzQkFBc0I7UUFDdEJDLFdBQVc7UUFDWEMsYUFBYTtRQUNiQyxlQUFlO1FBQ2ZDLG1CQUFtQjtRQUNuQnBELENBQUM7RUFDRHlDLE1BQUFBLElBQUksRUFBRUQ7T0FDUCxHQUFHLElBQUksQ0FBQzFCLEtBQUs7TUFDZCxNQUFNO0VBQUV1QyxNQUFBQTtFQUFRLEtBQUMsR0FBRyxJQUFJLENBQUN2QyxLQUFLLENBQUN3QyxNQUFNO01BQ3JDLE1BQU07RUFBRTNCLE1BQUFBO09BQW1CLEdBQUcsSUFBSSxDQUFDTixLQUFLO0VBQ3hDLElBQUEsTUFBTWtDLFNBQVMsR0FBR3hELG1CQUFtQixDQUFDQyxDQUFDLENBQUM7TUFDeEMsTUFBTXdELHFCQUFxQixHQUFHLENBQUM7RUFDL0IsSUFBQSxNQUFNQyw2QkFBNkIsR0FBR0EsQ0FDcENqRyxRQUFRLEVBQ1JrRyxZQUFZLEdBQUdGLHFCQUFxQixLQUNoQ2hHLFFBQVEsSUFBSUEsUUFBUSxDQUFDa0QsYUFBYSxJQUFLZ0QsWUFBWTtNQUN6RCxNQUFNQyw4QkFBOEIsR0FBR3BJLEtBQUssSUFDMUNvRyxpQkFBaUIsQ0FBQzlELFFBQVEsQ0FBQ3RDLEtBQUssQ0FBQztNQUNuQyxvQkFDRVgsc0JBQUEsQ0FBQUMsYUFBQSxDQUFBLEtBQUEsRUFBQTtFQUNFQyxNQUFBQSxTQUFTLEVBQUVNLG1CQUFFLENBQ1hMLE1BQU0sQ0FBQyxtQkFBbUIsQ0FBQyxFQUVsQixJQUFJLENBQUMrRixLQUFLLENBQUM4QyxRQUFRLFdBRTdCLENBQUU7RUFDSHBGLE1BQUFBLEtBQUssRUFBRTtFQUNMLFFBQUEsU0FBUyxFQUFFNkUsT0FBTztVQUNsQixzQkFBc0IsRUFBRUosV0FBVyxDQUFDWTtFQUN0QztPQUFFLEVBRUQsR0FBRyxFQUNIakIsZUFBZSxnQkFDZGhJLHNCQUFBLENBQUFDLGFBQUEsQ0FBQSxLQUFBLEVBQUEsSUFBQSxlQUNFRCxzQkFBQSxDQUFBQyxhQUFBLENBQUEsSUFBQSxFQUFBO1FBQUlDLFNBQVMsRUFBRUMsTUFBTSxDQUFDLDhCQUE4QjtPQUFFLEVBQ25ELEdBQUcsRUFDSDZILGVBQ0MsQ0FDRCxDQUFDLEdBQ0osSUFBSSxlQUNSaEksc0JBQUEsQ0FBQUMsYUFBQSxDQUFBLEtBQUEsRUFBQTtRQUFLQyxTQUFTLEVBQUVDLE1BQU0sQ0FBQyx3QkFBd0I7RUFBRSxLQUFBLGVBQy9DSCxzQkFBQSxDQUFBQyxhQUFBLENBQUNpSiw4QkFBYSxFQUFBO0VBQ1pDLE1BQUFBLFVBQVUsRUFBRSxJQUFJLENBQUNqRCxLQUFLLENBQUNpRCxVQUFXO0VBQ2xDckssTUFBQUEsSUFBSSxFQUFDLGVBQWU7RUFDcEJGLE1BQUFBLEVBQUUsRUFBQyxRQUFRO0VBQ1h3SyxNQUFBQSxTQUFTLEVBQ1BsQixnQkFBZ0IsS0FBSyxJQUFJLEdBQ3JCLEtBQUssR0FDTCxDQUFDLElBQUksQ0FBQ2hDLEtBQUssQ0FBQzhDLFFBQVEsSUFBSSxDQUFDakIsTUFBTSxFQUFFbkMsR0FDdEM7UUFDRHlELFFBQVEsRUFBRSxJQUFJLENBQUNDLGNBQWU7RUFDOUJDLE1BQUFBLFFBQVEsRUFBRSxJQUFJLENBQUNyRCxLQUFLLENBQUNxRCxRQUFTO0VBQzlCckosTUFBQUEsU0FBUyxFQUFFZ0YsZUFBZSxDQUFDNkMsTUFBTSxDQUFFO0VBQ25DeUIsTUFBQUEsV0FBVyxFQUFFLElBQUksQ0FBQ3RELEtBQUssQ0FBQ3VELGlCQUFrQjtFQUMxQ2pMLE1BQUFBLEtBQUssRUFBRUEsS0FBSyxDQUFDdUosTUFBTSxDQUFFO0VBQ3JCRSxNQUFBQSxhQUFhLEVBQUVBLGFBQWM7RUFDN0J5QixNQUFBQSxtQkFBbUIsRUFBRSxJQUFJLENBQUN4RCxLQUFLLENBQUN3RCxtQkFBb0I7RUFDcERDLE1BQUFBLFFBQVEsRUFBRSxJQUFJLENBQUN6RCxLQUFLLENBQUN5RCxRQUFTO0VBQzlCQyxNQUFBQSxPQUFPLEVBQUUsSUFBSSxDQUFDMUQsS0FBSyxDQUFDMEQsT0FBUTtFQUM1QkMsTUFBQUEsV0FBVyxFQUFFdkIsYUFBYSxJQUFJLElBQUksQ0FBQ3dCLGlCQUFrQjtFQUNyRGpDLE1BQUFBLElBQUksRUFBRSxJQUFJLENBQUMzQixLQUFLLENBQUMyQixJQUFLO0VBQ3RCa0MsTUFBQUEsT0FBTyxFQUFFLElBQUksQ0FBQzdELEtBQUssQ0FBQzZELE9BQVE7RUFDNUJDLE1BQUFBLE9BQU8sRUFBRSxJQUFJLENBQUM5RCxLQUFLLENBQUM4RCxPQUFRO0VBQzVCQyxNQUFBQSxhQUFhLEVBQUUsSUFBSSxDQUFDL0QsS0FBSyxDQUFDK0QsYUFBYztFQUN4Q2pCLE1BQUFBLFFBQVEsRUFBRSxJQUFJLENBQUM5QyxLQUFLLENBQUM4QyxRQUFTO0VBQzlCTixNQUFBQSxNQUFNLEVBQUUsSUFBSSxDQUFDeEMsS0FBSyxDQUFDd0MsTUFBTztFQUMxQndCLE1BQUFBLFdBQVcsRUFBRS9CLGlCQUFrQjtFQUMvQkUsTUFBQUEsV0FBVyxFQUFFLElBQUksQ0FBQ25DLEtBQUssQ0FBQ21DLFdBQVk7RUFDcEM4QixNQUFBQSxPQUFPLEVBQUUsSUFBSSxDQUFDakUsS0FBSyxDQUFDaUUsT0FBUTtFQUM1QkMsTUFBQUEsVUFBVSxFQUFFLElBQUksQ0FBQ2xFLEtBQUssQ0FBQ2tFLFVBQVc7RUFDbENDLE1BQUFBLFVBQVUsRUFBRSxJQUFJLENBQUNuRSxLQUFLLENBQUNtRTtPQUN4QixDQUFDLEVBQ0QsQ0FBQzlCLGVBQWUsSUFBSUMsbUJBQW1CLGtCQUN0Q3hJLHNCQUFBLENBQUFDLGFBQUEsQ0FBQ2lELHNCQUFzQixFQUFBO1FBQ3JCaEQsU0FBUyxFQUFFQyxNQUFNLENBQUNtSyxRQUFTO0VBQzNCakgsTUFBQUEsT0FBTyxFQUFFa0YsZUFBZ0I7RUFDekJqRixNQUFBQSxPQUFPLEVBQUVBLE1BQU0sSUFBSSxDQUFDaUgsb0JBQW9CLEVBQUc7RUFDM0NoSCxNQUFBQSxVQUFVLEVBQUVpSCxDQUFDLElBQ1hsRyx3QkFBd0IsQ0FBQ2tHLENBQUMsQ0FBQyxJQUFJLElBQUksQ0FBQ0Qsb0JBQW9CLEVBQ3pEO1FBQ0QsWUFBQSxFQUFZbkYsQ0FBQyxDQUFDLHlCQUF5QixFQUFFO0VBQUV3QyxRQUFBQTtTQUFLO0VBQUUsS0FBQSxlQUVsRDVILHNCQUFBLENBQUFDLGFBQUEsQ0FBQ3dLLHFCQUFJLEVBQUE7RUFBQ0MsTUFBQUEsR0FBRyxFQUFDLFVBQVU7RUFBQ0MsTUFBQUEsS0FBSyxFQUFFbEM7RUFBUSxLQUFFLENBQ2hCLENBRXZCLENBQUMsRUFDTDlCLFNBQVMsQ0FBQzNELE1BQU0sS0FBSyxDQUFDLGlCQUNyQmhELHNCQUFBLENBQUFDLGFBQUEsQ0FBQSxLQUFBLEVBQUE7UUFBS0MsU0FBUyxFQUFFQyxNQUFNLENBQUMscUJBQXFCO09BQUUsZUFDNUNILHNCQUFBLENBQUFDLGFBQUEsQ0FBQSxLQUFBLEVBQUE7UUFBS0MsU0FBUyxFQUFFQyxNQUFNLENBQUN5SztFQUFVLEtBQUUsQ0FDaEMsQ0FDTixlQUNENUssc0JBQUEsQ0FBQUMsYUFBQSxDQUFDNEssNkJBQWEsRUFBQTtFQUNaM0ssTUFBQUEsU0FBUyxFQUFFQyxNQUFNLENBQUMscUJBQXFCLENBQUU7RUFDekMySyxNQUFBQSxJQUFJLEVBQUVuRSxTQUFVO0VBQ2hCb0UsTUFBQUEsTUFBTSxFQUFFLENBQUEsQ0FBQSxFQUFJNUssTUFBTSxDQUFDLGlCQUFpQixDQUFDLENBQUEsQ0FBRztFQUN4QzZLLE1BQUFBLFNBQVMsRUFBRSxHQUFJO0VBQ2ZDLE1BQUFBLFFBQVEsRUFBRXRFLFNBQVMsQ0FBQzNELE1BQU0sSUFBSSxDQUFFO1FBQ2hDa0ksT0FBTyxFQUFFeEwsS0FBSyxJQUFJO0VBQ2hCLFFBQUEsTUFBTXlMLFlBQVksR0FBR3pMLEtBQUssQ0FBQ21ILE1BQU0sQ0FBQ0MsRUFBRSxJQUFJLENBQUNuRSxlQUFlLENBQUNtRSxFQUFFLENBQUMsQ0FBQztFQUM3RCxRQUFBLElBQUlxRSxZQUFZLENBQUNuSSxNQUFNLEdBQUcsQ0FBQyxFQUFFO0VBQzNCLFVBQUEsSUFBSSxDQUFDa0QsS0FBSyxDQUFDVSxlQUFlLENBQUN1RSxZQUFZLENBQUM7RUFDMUMsUUFBQTtFQUNGLE1BQUE7T0FBRSxFQUVEeEUsU0FBUyxDQUFDakcsR0FBRyxDQUFDLENBQUMwSyxDQUFDLEVBQUU5RixDQUFDLGtCQUNsQnRGLHNCQUFBLENBQUFDLGFBQUEsQ0FBQSxLQUFBLEVBQUE7RUFDRUMsTUFBQUEsU0FBUyxFQUFFTSxtQkFBRSxDQUFDTCxNQUFNLENBQUMsb0JBQW9CLENBQUMsQ0FBRTtFQUM1Q1MsTUFBQUEsR0FBRyxFQUFFLENBQUEsU0FBQSxFQUFZMEUsQ0FBQyxDQUFBLENBQUc7T0FBQyxlQUV0QnRGLHNCQUFBLENBQUFDLGFBQUEsQ0FBQSxLQUFBLEVBQUE7UUFBS0MsU0FBUyxFQUFFQyxNQUFNLENBQUMsdUJBQXVCO09BQUUsZUFDOUNILHNCQUFBLENBQUFDLGFBQUEsQ0FBQSxLQUFBLEVBQUE7UUFBS0MsU0FBUyxFQUFFQyxNQUFNLENBQUNrTDtPQUFJLGVBQ3pCckwsc0JBQUEsQ0FBQUMsYUFBQSxDQUFBLEtBQUEsRUFBQTtFQUNFQyxNQUFBQSxTQUFTLEVBQUVDLE1BQU0sQ0FBQyxpQkFBaUIsQ0FBRTtFQUNyQ3lELE1BQUFBLEtBQUssRUFBRStDLFNBQVMsQ0FBQzNELE1BQU0sR0FBRyxDQUFDLEdBQUc7RUFBRXNJLFFBQUFBLE1BQU0sRUFBRTtFQUFPLE9BQUMsR0FBRztPQUFHLEVBRXJEM0UsU0FBUyxDQUFDM0QsTUFBTSxHQUFHLENBQUMsaUJBQ25CaEQsc0JBQUEsQ0FBQUMsYUFBQSxDQUFDd0sscUJBQUksRUFBQTtFQUFDQyxNQUFBQSxHQUFHLEVBQUMsVUFBVTtFQUFDYSxNQUFBQSxNQUFNLEVBQUUsRUFBRztFQUFDWixNQUFBQSxLQUFLLEVBQUVsQztFQUFRLEtBQUUsQ0FFakQsQ0FBQyxlQUNOekksc0JBQUEsQ0FBQUMsYUFBQSxDQUFBLEtBQUEsRUFBQTtFQUNFQyxNQUFBQSxTQUFTLEVBQ1AsQ0FBQSxFQUFHQyxNQUFNLENBQUMsMEJBQTBCLENBQUMsQ0FBQSxDQUFBLEVBQ25DQSxNQUFNLENBQUMsQ0FBQSxTQUFBLEVBQVltRixDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsQ0FBQTtFQUU3QixLQUFBLGVBRUZ0RixzQkFBQSxDQUFBQyxhQUFBLENBQUNpSiw4QkFBYSxFQUFBO0VBQ1pDLE1BQUFBLFVBQVUsRUFBRSxJQUFJLENBQUNqRCxLQUFLLENBQUNpRCxVQUFXO0VBQ2xDckssTUFBQUEsSUFBSSxFQUFDLFdBQVc7RUFDaEJGLE1BQUFBLEVBQUUsRUFBQyxXQUFXO0VBQ2Q0TSxNQUFBQSxTQUFTLEVBQUVwRyxDQUFDLENBQUMsaUJBQWlCLEVBQUU7VUFDOUJ6RSxLQUFLLEVBQUUyRSxDQUFDLEdBQUcsQ0FBQztFQUNac0MsUUFBQUE7RUFDRixPQUFDLENBQUU7RUFDSHdCLE1BQUFBLFNBQVMsRUFDUGxCLGdCQUFnQixLQUFLLElBQUksR0FBRyxLQUFLLEdBQUcsQ0FBQyxJQUFJLENBQUNoQyxLQUFLLENBQUM4QyxRQUNqRDtFQUNEUSxNQUFBQSxXQUFXLEVBQUMsV0FBVztFQUN2QnRKLE1BQUFBLFNBQVMsRUFBQyxVQUFVO0VBQ3BCK0gsTUFBQUEsYUFBYSxFQUFFQSxhQUFjO0VBQzdCc0IsTUFBQUEsUUFBUSxFQUFFLElBQUksQ0FBQ3JELEtBQUssQ0FBQ3FELFFBQVM7RUFDOUIvSyxNQUFBQSxLQUFLLEVBQUc0TSxDQUFDLElBQUlBLENBQUMsQ0FBQ3JHLE9BQU8sSUFBSyxFQUFHO0VBQzlCNEUsTUFBQUEsUUFBUSxFQUFFLElBQUksQ0FBQ3pELEtBQUssQ0FBQ3lELFFBQVM7RUFDOUJDLE1BQUFBLE9BQU8sRUFBRSxJQUFJLENBQUMxRCxLQUFLLENBQUMwRCxPQUFRO1FBQzVCNkIsZUFBZSxFQUFFN0wsSUFBSSxJQUNuQixJQUFJLENBQUM0SCw4QkFBOEIsQ0FBQzVILElBQUksRUFBRTBGLENBQUMsQ0FDNUM7RUFDRHVDLE1BQUFBLElBQUksRUFBRSxJQUFJLENBQUMzQixLQUFLLENBQUMyQixJQUFLO0VBQ3RCa0MsTUFBQUEsT0FBTyxFQUFFLElBQUksQ0FBQzdELEtBQUssQ0FBQzZELE9BQVE7RUFDNUJDLE1BQUFBLE9BQU8sRUFBRSxJQUFJLENBQUM5RCxLQUFLLENBQUM4RCxPQUFRO0VBQzVCQyxNQUFBQSxhQUFhLEVBQUUsSUFBSSxDQUFDL0QsS0FBSyxDQUFDK0QsYUFBYztFQUN4Q1AsTUFBQUEsbUJBQW1CLEVBQUUsSUFBSSxDQUFDeEQsS0FBSyxDQUFDd0QsbUJBQW9CO0VBQ3BEVixNQUFBQSxRQUFRLEVBQUUsSUFBSSxDQUFDOUMsS0FBSyxDQUFDOEMsUUFBUztFQUM5QlgsTUFBQUEsV0FBVyxFQUFFLElBQUksQ0FBQ25DLEtBQUssQ0FBQ21DLFdBQVk7RUFDcEM4QixNQUFBQSxPQUFPLEVBQUUsSUFBSSxDQUFDakUsS0FBSyxDQUFDaUUsT0FBUTtFQUM1QnpCLE1BQUFBLE1BQU0sRUFBRSxJQUFJLENBQUN4QyxLQUFLLENBQUN3QyxNQUFPO0VBQzFCMEIsTUFBQUEsVUFBVSxFQUFFLElBQUksQ0FBQ2xFLEtBQUssQ0FBQ2tFO0VBQVcsS0FDbkMsQ0FDRSxDQUFDLEVBQ0wsSUFBSSxDQUFDbEUsS0FBSyxDQUFDd0YsZ0JBQWdCLGlCQUMxQjFMLHNCQUFBLENBQUFDLGFBQUEsQ0FBQ2lELHNCQUFzQixFQUFBO0VBQ3JCaEQsTUFBQUEsU0FBUyxFQUFFQyxNQUFNLENBQUMscUJBQXFCLENBQUU7RUFDekNrRCxNQUFBQSxPQUFPLEVBQUUsSUFBSSxDQUFDNkMsS0FBSyxDQUFDc0MsbUJBQW9CO1FBQ3hDbEYsT0FBTyxFQUFFQSxNQUFNLElBQUksQ0FBQ3FJLDhCQUE4QixDQUFDckcsQ0FBQyxDQUFFO0VBQ3REL0IsTUFBQUEsVUFBVSxFQUFFaUgsQ0FBQyxJQUNYbEcsd0JBQXdCLENBQUNrRyxDQUFDLENBQUMsSUFDM0IsSUFBSSxDQUFDbUIsOEJBQThCLENBQUNyRyxDQUFDLENBQ3RDO1FBQ0QsWUFBQSxFQUFZRixDQUFDLENBQ1gyRCw4QkFBOEIsQ0FBQ3pELENBQUMsQ0FBQyxHQUM3QixvQ0FBb0MsR0FDcEMscUNBQXFDLEVBQ3pDO1VBQUUzRSxLQUFLLEVBQUUyRSxDQUFDLEdBQUcsQ0FBQztFQUFFc0MsUUFBQUE7RUFBSSxPQUN0QixDQUFFO1FBQ0ZwRSxJQUFJLEVBQUE7RUFBQSxLQUFBLGVBRUp4RCxzQkFBQSxDQUFBQyxhQUFBLENBQUN3SyxxQkFBSSxFQUFBO0VBQUNDLE1BQUFBLEdBQUcsRUFBQyxNQUFNO0VBQUNDLE1BQUFBLEtBQUssRUFBRWxDO09BQVUsQ0FDWixDQUV2QixDQUFDLEVBQ0wsQ0FBQ00sOEJBQThCLENBQUN6RCxDQUFDLENBQUMsSUFDakNxQixTQUFTLENBQUNyQixDQUFDLENBQUMsSUFDWnFCLFNBQVMsQ0FBQ3JCLENBQUMsQ0FBQyxDQUFDUSxhQUFhLEdBQUcsQ0FBQyxpQkFDNUI5RixzQkFBQSxDQUFBQyxhQUFBLENBQUEsTUFBQSxFQUFBO1FBQU1DLFNBQVMsRUFBRUMsTUFBTSxDQUFDLHFCQUFxQjtFQUFFLEtBQUEsRUFBRSxDQUFBLEVBQUdpRixDQUFDLENBQ25ELHVCQUF1QixFQUN2QjtBQUNFd0MsTUFBQUE7QUFDRixLQUNGLENBQUMsQ0FBQSxFQUFBLEVBQUssSUFBSSxDQUFDZ0UsZUFBZSxDQUN4QmpGLFNBQVMsQ0FBQ3JCLENBQUMsQ0FBQyxDQUFDUSxhQUNmLENBQUMsQ0FBQSxDQUFTLENBQ1gsZUFDSDlGLHNCQUFBLENBQUFDLGFBQUEsQ0FBQSxLQUFBLEVBQUE7RUFDRUMsTUFBQUEsU0FBUyxFQUFFTSxtQkFBRSxDQUFDTCxNQUFNLENBQUMsZ0NBQWdDLENBQUMsRUFDekMsQ0FBQzRJLDhCQUE4QixDQUFDekQsQ0FBQyxDQUFDLElBQUEsV0FDOUM7T0FBRSxlQUVIdEYsc0JBQUEsQ0FBQUMsYUFBQSxDQUFBLEtBQUEsRUFBQTtRQUFLQyxTQUFTLEVBQUVDLE1BQU0sQ0FBQyxnQkFBZ0I7RUFBRSxLQUFBLGVBQ3ZDSCxzQkFBQSxDQUFBQyxhQUFBLENBQUMxQixNQUFNLEVBQUE7UUFDTEssRUFBRSxFQUFFLENBQUEsZUFBQSxFQUFrQjBHLENBQUMsQ0FBQSxDQUFHO0VBQzFCekcsTUFBQUEsS0FBSyxFQUFFdUcsQ0FBQyxDQUFDLHVCQUF1QixFQUFFO0VBQUV3QyxRQUFBQTtFQUFJLE9BQUMsQ0FBRTtFQUMzQ25KLE1BQUFBLE9BQU8sRUFBRWtLLFNBQVU7RUFDbkJuSyxNQUFBQSxLQUFLLEVBQUVxSyw2QkFBNkIsQ0FBQ2xDLFNBQVMsQ0FBQ3JCLENBQUMsQ0FBQyxDQUFFO0VBQ25EM0csTUFBQUEsYUFBYSxFQUFFMkcsQ0FBRTtRQUNqQnhHLElBQUksZUFDRmtCLHNCQUFBLENBQUFDLGFBQUEsQ0FBQSxNQUFBLEVBQUE7VUFDRUMsU0FBUyxFQUFFLENBQUEsRUFBR0MsTUFBTSxDQUFDLGVBQWUsQ0FBQyxDQUFBLENBQUEsRUFBSUEsTUFBTSxDQUFDLGlCQUFpQixDQUFDLENBQUE7RUFBRyxPQUFBLGVBRXJFSCxzQkFBQSxDQUFBQyxhQUFBLENBQUN3SyxxQkFBSSxFQUFBO0VBQUNDLFFBQUFBLEdBQUcsRUFBQyxNQUFNO0VBQUNDLFFBQUFBLEtBQUssRUFBRWxDO0VBQVEsT0FBRSxDQUM5QixDQUNQO1FBQ0QvSixtQkFBbUIsRUFBRSxJQUFJLENBQUNtTjtPQUMzQixDQUNFLENBQ0YsQ0FDRixDQUFDLGVBQ043TCxzQkFBQSxDQUFBQyxhQUFBLENBQUNpRCxzQkFBc0IsRUFBQTtFQUNyQmhELE1BQUFBLFNBQVMsRUFBRUMsTUFBTSxDQUFDLGtCQUFrQixDQUFFO0VBQ3RDa0QsTUFBQUEsT0FBTyxFQUFFLElBQUksQ0FBQzZDLEtBQUssQ0FBQ3NDLG1CQUFvQjtRQUN4Q2xGLE9BQU8sRUFBRUEsTUFBTSxJQUFJLENBQUN3SSx5QkFBeUIsQ0FBQ3hHLENBQUMsQ0FBRTtFQUNqRC9CLE1BQUFBLFVBQVUsRUFBRWlILENBQUMsSUFDWGxHLHdCQUF3QixDQUFDa0csQ0FBQyxDQUFDLElBQzNCLElBQUksQ0FBQ3NCLHlCQUF5QixDQUFDeEcsQ0FBQyxDQUNqQztRQUNELFlBQUEsRUFBWUYsQ0FBQyxDQUFDLHlCQUF5QixFQUFFO1VBQ3ZDekUsS0FBSyxFQUFFMkUsQ0FBQyxHQUFHLENBQUM7RUFDWnNDLFFBQUFBO1NBQ0Q7RUFBRSxLQUFBLGVBRUg1SCxzQkFBQSxDQUFBQyxhQUFBLENBQUN3SyxxQkFBSSxFQUFBO0VBQUNDLE1BQUFBLEdBQUcsRUFBQyxPQUFPO0VBQUNDLE1BQUFBLEtBQUssRUFBRWxDO09BQVUsQ0FDYixDQUNyQixDQUNOLENBQ1ksQ0FBQyxlQUNoQnpJLHNCQUFBLENBQUFDLGFBQUEsQ0FBQSxLQUFBLEVBQUE7UUFBS0MsU0FBUyxFQUFFQyxNQUFNLENBQUMsNkJBQTZCO0VBQUUsS0FBQSxlQUNwREgsc0JBQUEsQ0FBQUMsYUFBQSxDQUFDaUosOEJBQWEsRUFBQTtFQUNaQyxNQUFBQSxVQUFVLEVBQUUsSUFBSSxDQUFDakQsS0FBSyxDQUFDaUQsVUFBVztFQUNsQ3JLLE1BQUFBLElBQUksRUFBQyxXQUFXO0VBQ2hCRixNQUFBQSxFQUFFLEVBQUMsYUFBYTtRQUNoQndLLFNBQVMsRUFDUGxCLGdCQUFnQixLQUFLLElBQUksR0FDckIsS0FBSyxHQUNMLENBQUMsSUFBSSxDQUFDaEMsS0FBSyxDQUFDOEMsUUFBUSxJQUFJLENBQUMzQixNQUFNLENBQUMwRSxLQUFLLENBQUNoRSxNQUFNLEVBQUVuQyxHQUFHLENBQ3REO1FBQ0R5RCxRQUFRLEVBQUUsSUFBSSxDQUFDQyxjQUFlO0VBQzlCRSxNQUFBQSxXQUFXLEVBQUUsSUFBSSxDQUFDdEQsS0FBSyxDQUFDOEYsc0JBQXVCO1FBQy9DOUwsU0FBUyxFQUFFZ0YsZUFBZSxDQUFDLElBQUksQ0FBQ2dCLEtBQUssQ0FBQ00sV0FBVyxDQUFFO0VBQ25Ea0QsTUFBQUEsbUJBQW1CLEVBQUUsSUFBSSxDQUFDeEQsS0FBSyxDQUFDd0QsbUJBQW9CO0VBQ3BEekIsTUFBQUEsYUFBYSxFQUFFQSxhQUFjO0VBQzdCMEIsTUFBQUEsUUFBUSxFQUFFLElBQUksQ0FBQ3pELEtBQUssQ0FBQ3lELFFBQVM7RUFDOUJDLE1BQUFBLE9BQU8sRUFBRSxJQUFJLENBQUMxRCxLQUFLLENBQUMwRCxPQUFRO0VBQzVCTCxNQUFBQSxRQUFRLEVBQUUsSUFBSSxDQUFDckQsS0FBSyxDQUFDcUQsUUFBUztRQUM5Qi9LLEtBQUssRUFBRUEsS0FBSyxDQUFDLElBQUksQ0FBQzBILEtBQUssQ0FBQ00sV0FBVyxDQUFFO0VBQ3JDcUIsTUFBQUEsSUFBSSxFQUFFLElBQUksQ0FBQzNCLEtBQUssQ0FBQzJCLElBQUs7RUFDdEJrQyxNQUFBQSxPQUFPLEVBQUUsSUFBSSxDQUFDN0QsS0FBSyxDQUFDNkQsT0FBUTtFQUM1QkMsTUFBQUEsT0FBTyxFQUFFLElBQUksQ0FBQzlELEtBQUssQ0FBQzhELE9BQVE7RUFDNUJDLE1BQUFBLGFBQWEsRUFBRSxJQUFJLENBQUMvRCxLQUFLLENBQUMrRCxhQUFjO0VBQ3hDakIsTUFBQUEsUUFBUSxFQUFFLElBQUksQ0FBQzlDLEtBQUssQ0FBQzhDLFFBQVM7RUFDOUJrQixNQUFBQSxXQUFXLEVBQUU5QixzQkFBdUI7RUFDcENDLE1BQUFBLFdBQVcsRUFBRSxJQUFJLENBQUNuQyxLQUFLLENBQUNtQyxXQUFZO0VBQ3BDOEIsTUFBQUEsT0FBTyxFQUFFLElBQUksQ0FBQ2pFLEtBQUssQ0FBQ2lFLE9BQVE7RUFDNUJ6QixNQUFBQSxNQUFNLEVBQUUsSUFBSSxDQUFDeEMsS0FBSyxDQUFDd0MsTUFBTztFQUMxQjBCLE1BQUFBLFVBQVUsRUFBRSxJQUFJLENBQUNsRSxLQUFLLENBQUNrRSxVQUFXO0VBQ2xDQyxNQUFBQSxVQUFVLEVBQUUsSUFBSSxDQUFDbkUsS0FBSyxDQUFDbUU7T0FDeEIsQ0FBQyxFQUNELENBQUM5QixlQUFlLElBQUlDLG1CQUFtQixrQkFDdEN4SSxzQkFBQSxDQUFBQyxhQUFBLENBQUNpRCxzQkFBc0IsRUFBQTtFQUNyQmhELE1BQUFBLFNBQVMsRUFBRU0sbUJBQUUsQ0FBQ0wsTUFBTSxDQUFDLGVBQWUsQ0FBQyxFQUFFQSxNQUFNLENBQUM4TCxJQUFJLEVBQ3JDdEYsU0FBUyxDQUFDM0QsTUFBTSxHQUFHLENBQUMsZUFDaEMsQ0FBRTtFQUNISyxNQUFBQSxPQUFPLEVBQUVtRixtQkFBbUIsSUFBSTdCLFNBQVMsQ0FBQzNELE1BQU0sS0FBSyxDQUFFO0VBQ3ZETSxNQUFBQSxPQUFPLEVBQUVBLE1BQU0sSUFBSSxDQUFDNEksc0JBQXNCLEVBQUc7RUFDN0MzSSxNQUFBQSxVQUFVLEVBQUVpSCxDQUFDLElBQ1hsRyx3QkFBd0IsQ0FBQ2tHLENBQUMsQ0FBQyxJQUFJLElBQUksQ0FBQzBCLHNCQUFzQixFQUMzRDtRQUNELFlBQUEsRUFBWTlHLENBQUMsQ0FBQyxzQkFBc0IsRUFBRTtFQUFFd0MsUUFBQUE7U0FBSztFQUFFLEtBQUEsZUFFL0M1SCxzQkFBQSxDQUFBQyxhQUFBLENBQUN3SyxxQkFBSSxFQUFBO0VBQ0hDLE1BQUFBLEdBQUcsRUFBQyxVQUFVO0VBQ2R5QixNQUFBQSxLQUFLLEVBQUUsSUFBSztFQUNaQyxNQUFBQSxNQUFNLEVBQUUsS0FBTTtFQUNkekIsTUFBQUEsS0FBSyxFQUFFbEM7T0FDUixDQUNxQixDQUV2QixDQUNGLENBQUM7RUFFVixFQUFBO0VBQ0Y7RUFBQ3RDLGVBQUEsQ0FsZUtKLGtCQUFrQixFQUFBLGNBQUEsRUEwQ0E7RUFDcEJnQyxFQUFBQSxNQUFNLEVBQUVsRixTQUFTO0VBQ2pCMkQsRUFBQUEsV0FBVyxFQUFFM0QsU0FBUztFQUN0QjhELEVBQUFBLFNBQVMsRUFBRSxFQUFFO0VBQ2I4QyxFQUFBQSxpQkFBaUIsRUFBRSxhQUFhO0VBQ2hDdUMsRUFBQUEsc0JBQXNCLEVBQUUsa0JBQWtCO0VBQzFDdEUsRUFBQUEsU0FBUyxFQUFFN0UsU0FBUztFQUNwQitELEVBQUFBLGVBQWUsRUFBRUEsTUFBTSxDQUFDLENBQUM7RUFDekJvQixFQUFBQSxlQUFlLEVBQUVuRixTQUFTO0VBQzFCa0gsRUFBQUEsT0FBTyxFQUFFLEVBQUU7RUFDWEMsRUFBQUEsT0FBTyxFQUFFLEVBQUU7RUFDWEMsRUFBQUEsYUFBYSxFQUFFcEgsU0FBUztFQUN4QitHLEVBQUFBLE9BQU8sRUFBRS9HLFNBQVM7RUFDbEI2RyxFQUFBQSxtQkFBbUIsRUFBRTdHLFNBQVM7RUFDOUIwRyxFQUFBQSxRQUFRLEVBQUUxRyxTQUFTO0VBQ25Cb0UsRUFBQUEsaUJBQWlCLEVBQUVwRSxTQUFTO0VBQzVCcUYsRUFBQUEsZ0JBQWdCLEVBQUUsS0FBSztFQUN2QmMsRUFBQUEsUUFBUSxFQUFFLEtBQUs7RUFDZnhCLEVBQUFBLDhCQUE4QixFQUFFM0UsU0FBUztFQUN6Q3NGLEVBQUFBLGlCQUFpQixFQUFFLElBQUk7RUFDdkJDLEVBQUFBLHNCQUFzQixFQUFFLElBQUk7RUFDNUIrQixFQUFBQSxPQUFPLEVBQUV0SCxTQUFTO0VBQ2xCNkYsRUFBQUEsTUFBTSxFQUFFMkQsa0JBQWE7RUFDckJoRSxFQUFBQSxXQUFXLEVBQUU7RUFDWFksSUFBQUEsTUFBTSxFQUFFO0tBQ1Q7RUFDRG1CLEVBQUFBLFVBQVUsRUFBRSxLQUFLO0VBQ2pCOUIsRUFBQUEsYUFBYSxFQUFFekYsU0FBUztFQUN4QndILEVBQUFBLFVBQVUsRUFBRSxLQUFLO0VBQ2pCOUIsRUFBQUEsZUFBZSxFQUFFLEtBQUs7RUFDdEJDLEVBQUFBLG1CQUFtQixFQUFFLEtBQUs7RUFDMUJrRCxFQUFBQSxnQkFBZ0IsRUFBRTtFQUNwQixDQUFDLENBQUE7RUFBQTNLLE9BQUEsQ0FBQUMsR0FBQSxDQUFBQyxRQUFBLG9CQTFFRzhFLGtCQUFrQixDQUNmN0UsU0FBUyxHQUFHO0VBQ2pCaUksRUFBQUEsVUFBVSxFQUFFaEksMEJBQVMsQ0FBQ00sTUFBTSxDQUFDSixVQUFVO0VBQ3ZDMEcsRUFBQUEsTUFBTSxFQUFFcEMsYUFBYTtFQUNyQmEsRUFBQUEsV0FBVyxFQUFFYixhQUFhO0lBQzFCOEQsaUJBQWlCLEVBQUV0SSwwQkFBUyxDQUFDTSxNQUFNO0lBQ25DdUssc0JBQXNCLEVBQUU3SywwQkFBUyxDQUFDTSxNQUFNO0VBQ3hDa0YsRUFBQUEsU0FBUyxFQUFFeEYsMEJBQVMsQ0FBQ0ksT0FBTyxDQUFDb0UsYUFBYSxDQUFDO0lBQzNDaUIsZUFBZSxFQUFFekYsMEJBQVMsQ0FBQ0csSUFBSTtJQUMvQmtHLDhCQUE4QixFQUFFckcsMEJBQVMsQ0FBQ0csSUFBSTtJQUM5Q29HLFNBQVMsRUFBRXZHLDBCQUFTLENBQUNHLElBQUk7SUFDekIwRyxlQUFlLEVBQUU3RywwQkFBUyxDQUFDTSxNQUFNO0VBQ2pDd0csRUFBQUEsYUFBYSxFQUFFOUcsMEJBQVMsQ0FBQ0ssS0FBSyxDQUFDO01BQzdCOEssVUFBVSxFQUFFbkwsMEJBQVMsQ0FBQ007S0FDdkIsQ0FBQyxDQUFDSixVQUFVO0VBQ2JzSSxFQUFBQSxRQUFRLEVBQUV4SSwwQkFBUyxDQUFDRyxJQUFJLENBQUNELFVBQVU7SUFDbkN1SSxPQUFPLEVBQUV6SSwwQkFBUyxDQUFDRyxJQUFJO0lBQ3ZCMkYsaUJBQWlCLEVBQUU5RiwwQkFBUyxDQUFDRyxJQUFJO0VBQ2pDdUcsRUFBQUEsSUFBSSxFQUFFMUcsMEJBQVMsQ0FBQ00sTUFBTSxDQUFDSixVQUFVO0lBQ2pDNkcsZ0JBQWdCLEVBQUUvRywwQkFBUyxDQUFDc0UsSUFBSTtJQUNoQ3NFLE9BQU8sRUFBRTVJLDBCQUFTLENBQUNJLE9BQU8sQ0FBQ0osMEJBQVMsQ0FBQ00sTUFBTSxDQUFDO0lBQzVDdUksT0FBTyxFQUFFN0ksMEJBQVMsQ0FBQ0ksT0FBTyxDQUFDSiwwQkFBUyxDQUFDTSxNQUFNLENBQUM7SUFDNUN3SSxhQUFhLEVBQUU5SSwwQkFBUyxDQUFDRyxJQUFJO0lBQzdCMEgsUUFBUSxFQUFFN0gsMEJBQVMsQ0FBQ3NFLElBQUk7SUFDeEIwQyxpQkFBaUIsRUFBRWhILDBCQUFTLENBQUNNLE1BQU07SUFDbkMyRyxzQkFBc0IsRUFBRWpILDBCQUFTLENBQUNNLE1BQU07RUFDeEM4SCxFQUFBQSxRQUFRLEVBQUU1RCxhQUFhO0lBQ3ZCd0UsT0FBTyxFQUFFaEosMEJBQVMsQ0FBQ00sTUFBTTtJQUN6QmlILE1BQU0sRUFBRXZILDBCQUFTLENBQUNvTCxRQUFRLENBQUNwTCwwQkFBUyxDQUFDTSxNQUFNLENBQUM7SUFDNUNpSSxtQkFBbUIsRUFBRXZJLDBCQUFTLENBQUNvTCxRQUFRLENBQUNwTCwwQkFBUyxDQUFDRyxJQUFJLENBQUM7RUFDdkQrRyxFQUFBQSxXQUFXLEVBQUVsSCwwQkFBUyxDQUFDSyxLQUFLLENBQUM7TUFDM0J5SCxNQUFNLEVBQUU5SCwwQkFBUyxDQUFDQztFQUNwQixHQUFDLENBQUM7SUFDRmdKLFVBQVUsRUFBRWpKLDBCQUFTLENBQUNzRSxJQUFJO0lBQzFCNkMsYUFBYSxFQUFFbkgsMEJBQVMsQ0FBQ0csSUFBSTtJQUM3QitJLFVBQVUsRUFBRWxKLDBCQUFTLENBQUNzRSxJQUFJO0lBQzFCOEMsZUFBZSxFQUFFcEgsMEJBQVMsQ0FBQ3NFLElBQUk7SUFDL0IrQyxtQkFBbUIsRUFBRXJILDBCQUFTLENBQUNzRSxJQUFJO0lBQ25DaUcsZ0JBQWdCLEVBQUV2SywwQkFBUyxDQUFDc0UsSUFBSTtFQUNoQ0wsRUFBQUEsQ0FBQyxFQUFFakUsMEJBQVMsQ0FBQ0csSUFBSSxDQUFDRDtFQUNwQixDQUFDLEdBQUEsTUFBQTtFQTRiSCxNQUFNbUwsaUNBQWlDLEdBQUdDLDRCQUFlLEVBQUUsQ0FBQzFHLGtCQUFrQixDQUFDO0FBRS9FLGNBQWVHLEtBQUssSUFBSTtFQUN0QixFQUFBLG9CQUNFbEcsc0JBQUEsQ0FBQUMsYUFBQSxDQUFDeU0sNEJBQWUsRUFBQTtFQUFDeEssSUFBQUEsSUFBSSxFQUFFQTtLQUFLLGVBQzFCbEMsc0JBQUEsQ0FBQUMsYUFBQSxDQUFDdU0saUNBQWlDLEVBQUt0RyxLQUFRLENBQ2hDLENBQUM7RUFFdEIsQ0FBQzs7Ozs7Ozs7Ozs7IiwieF9nb29nbGVfaWdub3JlTGlzdCI6WzAsMSwyLDMsNCw1LDZdfQ==
840
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguZGV2ZWxvcG1lbnQuY2pzIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvQGJhYmVsL3J1bnRpbWUvaGVscGVycy9lc20vdHlwZW9mLmpzIiwiLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL0BiYWJlbC9ydW50aW1lL2hlbHBlcnMvZXNtL3RvUHJpbWl0aXZlLmpzIiwiLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL0BiYWJlbC9ydW50aW1lL2hlbHBlcnMvZXNtL3RvUHJvcGVydHlLZXkuanMiLCIuLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvQGJhYmVsL3J1bnRpbWUvaGVscGVycy9lc20vZGVmaW5lUHJvcGVydHkuanMiLCIuLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvQGJhYmVsL3J1bnRpbWUvaGVscGVycy9lc20vb2JqZWN0V2l0aG91dFByb3BlcnRpZXNMb29zZS5qcyIsIi4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9AYmFiZWwvcnVudGltZS9oZWxwZXJzL2VzbS9vYmplY3RXaXRob3V0UHJvcGVydGllcy5qcyIsIi4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9zdHlsZS1pbmplY3QvZGlzdC9zdHlsZS1pbmplY3QuZXMuanMiLCIuLi9zcmMvaGVscGVycy9TZWxlY3QuanN4IiwiLi4vc3JjL2hlbHBlcnMvdHJhbnNsYXRpb25zLmpzIiwiLi4vc3JjL2hlbHBlcnMvaTE4bi5qcyIsIi4uL3NyYy9pbmRleC5qc3giXSwic291cmNlc0NvbnRlbnQiOlsiZnVuY3Rpb24gX3R5cGVvZihvKSB7XG4gIFwiQGJhYmVsL2hlbHBlcnMgLSB0eXBlb2ZcIjtcblxuICByZXR1cm4gX3R5cGVvZiA9IFwiZnVuY3Rpb25cIiA9PSB0eXBlb2YgU3ltYm9sICYmIFwic3ltYm9sXCIgPT0gdHlwZW9mIFN5bWJvbC5pdGVyYXRvciA/IGZ1bmN0aW9uIChvKSB7XG4gICAgcmV0dXJuIHR5cGVvZiBvO1xuICB9IDogZnVuY3Rpb24gKG8pIHtcbiAgICByZXR1cm4gbyAmJiBcImZ1bmN0aW9uXCIgPT0gdHlwZW9mIFN5bWJvbCAmJiBvLmNvbnN0cnVjdG9yID09PSBTeW1ib2wgJiYgbyAhPT0gU3ltYm9sLnByb3RvdHlwZSA/IFwic3ltYm9sXCIgOiB0eXBlb2YgbztcbiAgfSwgX3R5cGVvZihvKTtcbn1cbmV4cG9ydCB7IF90eXBlb2YgYXMgZGVmYXVsdCB9OyIsImltcG9ydCBfdHlwZW9mIGZyb20gXCIuL3R5cGVvZi5qc1wiO1xuZnVuY3Rpb24gdG9QcmltaXRpdmUodCwgcikge1xuICBpZiAoXCJvYmplY3RcIiAhPSBfdHlwZW9mKHQpIHx8ICF0KSByZXR1cm4gdDtcbiAgdmFyIGUgPSB0W1N5bWJvbC50b1ByaW1pdGl2ZV07XG4gIGlmICh2b2lkIDAgIT09IGUpIHtcbiAgICB2YXIgaSA9IGUuY2FsbCh0LCByIHx8IFwiZGVmYXVsdFwiKTtcbiAgICBpZiAoXCJvYmplY3RcIiAhPSBfdHlwZW9mKGkpKSByZXR1cm4gaTtcbiAgICB0aHJvdyBuZXcgVHlwZUVycm9yKFwiQEB0b1ByaW1pdGl2ZSBtdXN0IHJldHVybiBhIHByaW1pdGl2ZSB2YWx1ZS5cIik7XG4gIH1cbiAgcmV0dXJuIChcInN0cmluZ1wiID09PSByID8gU3RyaW5nIDogTnVtYmVyKSh0KTtcbn1cbmV4cG9ydCB7IHRvUHJpbWl0aXZlIGFzIGRlZmF1bHQgfTsiLCJpbXBvcnQgX3R5cGVvZiBmcm9tIFwiLi90eXBlb2YuanNcIjtcbmltcG9ydCB0b1ByaW1pdGl2ZSBmcm9tIFwiLi90b1ByaW1pdGl2ZS5qc1wiO1xuZnVuY3Rpb24gdG9Qcm9wZXJ0eUtleSh0KSB7XG4gIHZhciBpID0gdG9QcmltaXRpdmUodCwgXCJzdHJpbmdcIik7XG4gIHJldHVybiBcInN5bWJvbFwiID09IF90eXBlb2YoaSkgPyBpIDogaSArIFwiXCI7XG59XG5leHBvcnQgeyB0b1Byb3BlcnR5S2V5IGFzIGRlZmF1bHQgfTsiLCJpbXBvcnQgdG9Qcm9wZXJ0eUtleSBmcm9tIFwiLi90b1Byb3BlcnR5S2V5LmpzXCI7XG5mdW5jdGlvbiBfZGVmaW5lUHJvcGVydHkoZSwgciwgdCkge1xuICByZXR1cm4gKHIgPSB0b1Byb3BlcnR5S2V5KHIpKSBpbiBlID8gT2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIHIsIHtcbiAgICB2YWx1ZTogdCxcbiAgICBlbnVtZXJhYmxlOiAhMCxcbiAgICBjb25maWd1cmFibGU6ICEwLFxuICAgIHdyaXRhYmxlOiAhMFxuICB9KSA6IGVbcl0gPSB0LCBlO1xufVxuZXhwb3J0IHsgX2RlZmluZVByb3BlcnR5IGFzIGRlZmF1bHQgfTsiLCJmdW5jdGlvbiBfb2JqZWN0V2l0aG91dFByb3BlcnRpZXNMb29zZShyLCBlKSB7XG4gIGlmIChudWxsID09IHIpIHJldHVybiB7fTtcbiAgdmFyIHQgPSB7fTtcbiAgZm9yICh2YXIgbiBpbiByKSBpZiAoe30uaGFzT3duUHJvcGVydHkuY2FsbChyLCBuKSkge1xuICAgIGlmICgtMSAhPT0gZS5pbmRleE9mKG4pKSBjb250aW51ZTtcbiAgICB0W25dID0gcltuXTtcbiAgfVxuICByZXR1cm4gdDtcbn1cbmV4cG9ydCB7IF9vYmplY3RXaXRob3V0UHJvcGVydGllc0xvb3NlIGFzIGRlZmF1bHQgfTsiLCJpbXBvcnQgb2JqZWN0V2l0aG91dFByb3BlcnRpZXNMb29zZSBmcm9tIFwiLi9vYmplY3RXaXRob3V0UHJvcGVydGllc0xvb3NlLmpzXCI7XG5mdW5jdGlvbiBfb2JqZWN0V2l0aG91dFByb3BlcnRpZXMoZSwgdCkge1xuICBpZiAobnVsbCA9PSBlKSByZXR1cm4ge307XG4gIHZhciBvLFxuICAgIHIsXG4gICAgaSA9IG9iamVjdFdpdGhvdXRQcm9wZXJ0aWVzTG9vc2UoZSwgdCk7XG4gIGlmIChPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKSB7XG4gICAgdmFyIG4gPSBPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKGUpO1xuICAgIGZvciAociA9IDA7IHIgPCBuLmxlbmd0aDsgcisrKSBvID0gbltyXSwgLTEgPT09IHQuaW5kZXhPZihvKSAmJiB7fS5wcm9wZXJ0eUlzRW51bWVyYWJsZS5jYWxsKGUsIG8pICYmIChpW29dID0gZVtvXSk7XG4gIH1cbiAgcmV0dXJuIGk7XG59XG5leHBvcnQgeyBfb2JqZWN0V2l0aG91dFByb3BlcnRpZXMgYXMgZGVmYXVsdCB9OyIsImZ1bmN0aW9uIHN0eWxlSW5qZWN0KGNzcywgcmVmKSB7XG4gIGlmICggcmVmID09PSB2b2lkIDAgKSByZWYgPSB7fTtcbiAgdmFyIGluc2VydEF0ID0gcmVmLmluc2VydEF0O1xuXG4gIGlmICghY3NzIHx8IHR5cGVvZiBkb2N1bWVudCA9PT0gJ3VuZGVmaW5lZCcpIHsgcmV0dXJuOyB9XG5cbiAgdmFyIGhlYWQgPSBkb2N1bWVudC5oZWFkIHx8IGRvY3VtZW50LmdldEVsZW1lbnRzQnlUYWdOYW1lKCdoZWFkJylbMF07XG4gIHZhciBzdHlsZSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3N0eWxlJyk7XG4gIHN0eWxlLnR5cGUgPSAndGV4dC9jc3MnO1xuXG4gIGlmIChpbnNlcnRBdCA9PT0gJ3RvcCcpIHtcbiAgICBpZiAoaGVhZC5maXJzdENoaWxkKSB7XG4gICAgICBoZWFkLmluc2VydEJlZm9yZShzdHlsZSwgaGVhZC5maXJzdENoaWxkKTtcbiAgICB9IGVsc2Uge1xuICAgICAgaGVhZC5hcHBlbmRDaGlsZChzdHlsZSk7XG4gICAgfVxuICB9IGVsc2Uge1xuICAgIGhlYWQuYXBwZW5kQ2hpbGQoc3R5bGUpO1xuICB9XG5cbiAgaWYgKHN0eWxlLnN0eWxlU2hlZXQpIHtcbiAgICBzdHlsZS5zdHlsZVNoZWV0LmNzc1RleHQgPSBjc3M7XG4gIH0gZWxzZSB7XG4gICAgc3R5bGUuYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUoY3NzKSk7XG4gIH1cbn1cblxuZXhwb3J0IGRlZmF1bHQgc3R5bGVJbmplY3Q7XG4iLCJpbXBvcnQgUHJvcFR5cGVzIGZyb20gJ3Byb3AtdHlwZXMnO1xuaW1wb3J0IGN4IGZyb20gJ2NsYXNzbmFtZXMnO1xuaW1wb3J0IFJlYWN0IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7IHVzZVNlbGVjdCB9IGZyb20gJ2Rvd25zaGlmdCc7XG5pbXBvcnQgc3R5bGVzIGZyb20gJy4vc2VsZWN0LnNjc3MnO1xuXG5jb25zdCBTZWxlY3QgPSAoe1xuICB2YWx1ZSxcbiAgb3B0aW9ucyxcbiAgb25TbGFja1RpbWVTZWxlY3RlZCxcbiAgdmlhUG9pbnRJbmRleCxcbiAgaWQsXG4gIGxhYmVsLFxuICBpY29uLFxufSkgPT4ge1xuICBjb25zdCBsYWJlbElkID0gYCR7aWR9LWxhYmVsYDtcbiAgY29uc3Qgc2VsZWN0ZWRJdGVtID0gb3B0aW9ucy5maW5kKG9wdGlvbiA9PiBvcHRpb24udmFsdWUgPT09IHZhbHVlKTtcblxuICBjb25zdCB7XG4gICAgaXNPcGVuLFxuICAgIGdldFRvZ2dsZUJ1dHRvblByb3BzLFxuICAgIGdldE1lbnVQcm9wcyxcbiAgICBnZXRJdGVtUHJvcHMsXG4gICAgZ2V0TGFiZWxQcm9wcyxcbiAgICBoaWdobGlnaHRlZEluZGV4LFxuICB9ID0gdXNlU2VsZWN0KHtcbiAgICBzZWxlY3RlZEl0ZW0sXG4gICAgaXRlbXM6IG9wdGlvbnMsXG4gICAgbGFiZWxJZCxcbiAgICBpZCxcbiAgICBpdGVtVG9TdHJpbmc6IGl0ZW0gPT4gaXRlbS5kaXNwbGF5TmFtZSxcbiAgICBvblNlbGVjdGVkSXRlbUNoYW5nZTogKHsgc2VsZWN0ZWRJdGVtOiBuZXdJdGVtIH0pID0+IHtcbiAgICAgIG9uU2xhY2tUaW1lU2VsZWN0ZWQobmV3SXRlbS52YWx1ZSwgdmlhUG9pbnRJbmRleCk7XG4gICAgfSxcbiAgfSk7XG5cbiAgcmV0dXJuIChcbiAgICA8ZGl2IGNsYXNzTmFtZT17c3R5bGVzWydjb21ib2JveC1jb250YWluZXInXX0+XG4gICAgICA8ZGl2IGNsYXNzTmFtZT17c3R5bGVzLmNvbnRhaW5lcn0+XG4gICAgICAgIDxkaXYgey4uLmdldFRvZ2dsZUJ1dHRvblByb3BzKCl9PlxuICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT17c3R5bGVzWydsZWZ0LWNvbHVtbiddfT5cbiAgICAgICAgICAgIDxsYWJlbCB7Li4uZ2V0TGFiZWxQcm9wcygpfSBjbGFzc05hbWU9e3N0eWxlc1snY29tYm9ib3gtbGFiZWwnXX0+XG4gICAgICAgICAgICAgIHtsYWJlbH1cbiAgICAgICAgICAgIDwvbGFiZWw+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT17c3R5bGVzLmlucHV0fT5cbiAgICAgICAgICAgICAgPHNwYW4+e3NlbGVjdGVkSXRlbS5kaXNwbGF5TmFtZX08L3NwYW4+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAge2ljb259XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8dWxcbiAgICAgICAgICBjbGFzc05hbWU9e2N4KFtzdHlsZXMuc3VnZ2VzdGlvbnNDb250YWluZXJPcGVuLCAhaXNPcGVuICYmICdoaWRkZW4nXSl9XG4gICAgICAgICAgey4uLmdldE1lbnVQcm9wcygpfVxuICAgICAgICA+XG4gICAgICAgICAge2lzT3BlbiAmJlxuICAgICAgICAgICAgb3B0aW9ucy5tYXAoKG9wdGlvbiwgaW5kZXgpID0+IChcbiAgICAgICAgICAgICAgPGxpXG4gICAgICAgICAgICAgICAga2V5PXtvcHRpb24udmFsdWV9XG4gICAgICAgICAgICAgICAgY2xhc3NOYW1lPXtjeChbXG4gICAgICAgICAgICAgICAgICBzdHlsZXMuc3VnZ2VzdGlvbixcbiAgICAgICAgICAgICAgICAgIGluZGV4ID09PSBoaWdobGlnaHRlZEluZGV4ICYmIHN0eWxlcy5zdWdnZXN0aW9uSGlnaGxpZ2h0ZWQsXG4gICAgICAgICAgICAgICAgXSl9XG4gICAgICAgICAgICAgICAgey4uLmdldEl0ZW1Qcm9wcyh7IGluZGV4IH0pfVxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgPHNwYW4+e29wdGlvbi5kaXNwbGF5TmFtZX08L3NwYW4+XG4gICAgICAgICAgICAgIDwvbGk+XG4gICAgICAgICAgICApKX1cbiAgICAgICAgPC91bD5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICApO1xufTtcblxuU2VsZWN0LnByb3BUeXBlcyA9IHtcbiAgdmFsdWU6IFByb3BUeXBlcy5udW1iZXIuaXNSZXF1aXJlZCxcbiAgb25TbGFja1RpbWVTZWxlY3RlZDogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgb3B0aW9uczogUHJvcFR5cGVzLmFycmF5T2YoXG4gICAgUHJvcFR5cGVzLnNoYXBlKHtcbiAgICAgIGRpc3BsYXlOYW1lOiBQcm9wVHlwZXMuc3RyaW5nLmlzUmVxdWlyZWQsXG4gICAgICB2YWx1ZTogUHJvcFR5cGVzLm51bWJlci5pc1JlcXVpcmVkLFxuICAgIH0pLmlzUmVxdWlyZWQsXG4gICkuaXNSZXF1aXJlZCxcbiAgaWQ6IFByb3BUeXBlcy5zdHJpbmcuaXNSZXF1aXJlZCxcbiAgbGFiZWw6IFByb3BUeXBlcy5ub2RlLmlzUmVxdWlyZWQsXG4gIGljb246IFByb3BUeXBlcy5ub2RlLmlzUmVxdWlyZWQsXG4gIHZpYVBvaW50SW5kZXg6IFByb3BUeXBlcy5udW1iZXIuaXNSZXF1aXJlZCxcbn07XG5cbmV4cG9ydCBkZWZhdWx0IFNlbGVjdDtcbiIsImNvbnN0IHRyYW5zbGF0aW9ucyA9IHtcbiAgZGU6IHtcbiAgICB0cmFuc2xhdGlvbjoge1xuICAgICAgJ2FkZC12aWEtYnV0dG9uLWxhYmVsJzogJ0bDvGdlIFp3aXNjaGVuemllbCBoaW56dScsXG4gICAgICAnYWRkLXZpYS1kdXJhdGlvbi1idXR0b24tbGFiZWwnOlxuICAgICAgICAnU2V0emUgVW1zdGVpZ2V6ZWl0IGbDvHIgWndpc2NoZW56aWVsIHt7aW5kZXh9fScsXG4gICAgICAnYWRkLXZpYS1kdXJhdGlvbi1idXR0b24tbGFiZWwtY2xvc2UnOlxuICAgICAgICAnU2NobGllw59lIFVtc3RlaWdlemVpdC1BdXN3YWhsIGbDvHIgWndpc2NoZW56aWVsIHt7aW5kZXh9fScsXG4gICAgICAnYWRkLXZpYS1kdXJhdGlvbi1idXR0b24tbGFiZWwtb3Blbic6XG4gICAgICAgICfDlmZmbmUgVW1zdGVpZ2V6ZWl0LUF1c3dhaGwgZsO8ciBad2lzY2hlbnppZWwge3tpbmRleH19JyxcbiAgICAgICdtaW51dGUtc2hvcnQnOiAnbWluJyxcbiAgICAgICdyZW1vdmUtdmlhLWJ1dHRvbi1sYWJlbCc6ICdFbnRmZXJuZSBad2lzY2hlbnppZWwge3tpbmRleH19JyxcbiAgICAgICdzd2FwLW9yZGVyLWJ1dHRvbi1sYWJlbCc6ICdUYXVzY2hlIFN0YXJ0IG1pdCBaaWVsJyxcbiAgICAgICd2aWEtcG9pbnQnOiAnWndpc2NoZW56aWVsJyxcbiAgICAgICd2aWEtcG9pbnQtaW5kZXgnOiAnWndpc2NoZW56aWVsIHt7aW5kZXh9fScsXG4gICAgICAndmlhcG9pbnQtc2xhY2stYW1vdW50JzogJ1Vtc3RlaWdlemVpdCcsXG4gICAgfSxcbiAgfSxcbiAgZW46IHtcbiAgICB0cmFuc2xhdGlvbjoge1xuICAgICAgJ2FkZC12aWEtYnV0dG9uLWxhYmVsJzogJ0FkZCB2aWEgcG9pbnQnLFxuICAgICAgJ2FkZC12aWEtZHVyYXRpb24tYnV0dG9uLWxhYmVsJzpcbiAgICAgICAgJ1NldCBzdG9wIGR1cmF0aW9uIGF0IHZpYSBwb2ludCB7e2luZGV4fX0nLFxuICAgICAgJ2FkZC12aWEtZHVyYXRpb24tYnV0dG9uLWxhYmVsLWNsb3NlJzpcbiAgICAgICAgJ0Nsb3NlIHN0b3AgZHVyYXRpb24gc2VsZWN0b3IgYXQgdmlhIHBvaW50IHt7aW5kZXh9fScsXG4gICAgICAnYWRkLXZpYS1kdXJhdGlvbi1idXR0b24tbGFiZWwtb3Blbic6XG4gICAgICAgICdPcGVuIHN0b3AgZHVyYXRpb24gc2VsZWN0b3IgYXQgdmlhIHBvaW50IHt7aW5kZXh9fScsXG4gICAgICAnbWludXRlLXNob3J0JzogJ21pbicsXG4gICAgICAncmVtb3ZlLXZpYS1idXR0b24tbGFiZWwnOiAnUmVtb3ZlIHZpYSBwb2ludCB7e2luZGV4fX0nLFxuICAgICAgJ3N3YXAtb3JkZXItYnV0dG9uLWxhYmVsJzogJ1JldmVyc2Ugb3JpZ2luIGFuZCBkZXN0aW5hdGlvbicsXG4gICAgICAndmlhLXBvaW50JzogJ1ZpYSBwb2ludCcsXG4gICAgICAndmlhLXBvaW50LWluZGV4JzogJ1ZpYSBwb2ludCB7e2luZGV4fX0nLFxuICAgICAgJ3ZpYXBvaW50LXNsYWNrLWFtb3VudCc6ICdTdG9wIGR1cmF0aW9uJyxcbiAgICB9LFxuICB9LFxuICBmaToge1xuICAgIHRyYW5zbGF0aW9uOiB7XG4gICAgICAnYWRkLXZpYS1idXR0b24tbGFiZWwnOiAnTGlzw6TDpCB2w6RsaXBpc3RlJyxcbiAgICAgICdhZGQtdmlhLWR1cmF0aW9uLWJ1dHRvbi1sYWJlbCc6XG4gICAgICAgICdBc2V0YSB2w6RsaXBpc3RlZWxsZSB7e2luZGV4fX0gcHlzw6RoZHlrc2VuIGtlc3RvJyxcbiAgICAgICdhZGQtdmlhLWR1cmF0aW9uLWJ1dHRvbi1sYWJlbC1jbG9zZSc6XG4gICAgICAgICdBdmFhIHbDpGxpcGlzdGVlbiB7e2luZGV4fX0gcHlzw6RoZHlrc2VuIGtlc3RvIHZhbGl0c2luJyxcbiAgICAgICdhZGQtdmlhLWR1cmF0aW9uLWJ1dHRvbi1sYWJlbC1vcGVuJzpcbiAgICAgICAgJ1N1bGplIHbDpGxpcGlzdGVlbiB7e2luZGV4fX0gcHlzw6RoZHlrc2VuIGtlc3RvIHZhbGl0c2luJyxcbiAgICAgICdtaW51dGUtc2hvcnQnOiAnbWluJyxcbiAgICAgICdyZW1vdmUtdmlhLWJ1dHRvbi1sYWJlbCc6ICdQb2lzdGEgdsOkbGlwaXN0ZSB7e2luZGV4fX0nLFxuICAgICAgJ3N3YXAtb3JkZXItYnV0dG9uLWxhYmVsJzogJ0vDpMOkbm7DpCByZWl0aW4gc3V1bnRhIHZhc3Rha2thaXNla3NpJyxcbiAgICAgICd2aWEtcG9pbnQnOiAnVsOkbGlwaXN0ZScsXG4gICAgICAndmlhLXBvaW50LWluZGV4JzogJ1bDpGxpcGlzdGUge3tpbmRleH19JyxcbiAgICAgICd2aWFwb2ludC1zbGFjay1hbW91bnQnOiAnUHlzw6RoZHlrc2VuIGtlc3RvJyxcbiAgICB9LFxuICB9LFxuICBwbDoge1xuICAgIHRyYW5zbGF0aW9uOiB7XG4gICAgICAnYWRkLXZpYS1idXR0b24tbGFiZWwnOiAnRG9kYWogcHVua3QgcG/Fm3JlZG5pJyxcbiAgICAgICdhZGQtdmlhLWR1cmF0aW9uLWJ1dHRvbi1sYWJlbCc6XG4gICAgICAgICdXeWJpZXJ6IGN6YXMgcG9zdG9qdSBkbGEgcHVua3R1IHt7aW5kZXh9fScsXG4gICAgICAnYWRkLXZpYS1kdXJhdGlvbi1idXR0b24tbGFiZWwtY2xvc2UnOlxuICAgICAgICAnWmFta25paiB3eWJvcm5payBjemFzdSBwb3N0b2p1IHcgcHVua2NpZSB7e2luZGV4fX0nLFxuICAgICAgJ2FkZC12aWEtZHVyYXRpb24tYnV0dG9uLWxhYmVsLW9wZW4nOlxuICAgICAgICAnT3R3w7NyeiB3eWJvcm5payBjemFzdSBwb3N0b2p1IHcgcHVua2NpZSB7e2luZGV4fX0nLFxuICAgICAgJ21pbnV0ZS1zaG9ydCc6ICdtaW4uJyxcbiAgICAgICdyZW1vdmUtdmlhLWJ1dHRvbi1sYWJlbCc6ICdVc3XFhCBwdW5rdCBwb8WbcmVkbmkge3tpbmRleH19JyxcbiAgICAgICdzd2FwLW9yZGVyLWJ1dHRvbi1sYWJlbCc6ICdPZHdyw7PEhyBwb2N6xIV0ZWsgaSBjZWwnLFxuICAgICAgJ3ZpYS1wb2ludCc6ICdQdW5rdCBwb8WbcmVkbmknLFxuICAgICAgJ3ZpYS1wb2ludC1pbmRleCc6ICdQdW5rdCBwb8WbcmVkbmkge3tpbmRleH19JyxcbiAgICAgICd2aWFwb2ludC1zbGFjay1hbW91bnQnOiAnQ3phcyBwb3N0b2p1JyxcbiAgICB9LFxuICB9LFxuICBzdjoge1xuICAgIHRyYW5zbGF0aW9uOiB7XG4gICAgICAnYWRkLXZpYS1idXR0b24tbGFiZWwnOiAnTMOkZ2cgdGlsbCB2aWFwdW5rdCcsXG4gICAgICAnYWRkLXZpYS1kdXJhdGlvbi1idXR0b24tbGFiZWwnOlxuICAgICAgICAnU3TDpGxsIGluIHZhcmFrdGlnaGV0IGbDtnIgdmlhcHVua3RlbiB7e2luZGV4fX0nLFxuICAgICAgJ2FkZC12aWEtZHVyYXRpb24tYnV0dG9uLWxhYmVsLWNsb3NlJzpcbiAgICAgICAgJ1N0w6RuZyB2w6RsamFyZW4gZsO2ciB2YXJha3RpZ2hldCB2aWQgdmlhLXB1bmt0ZW4ge3tpbmRleH19JyxcbiAgICAgICdhZGQtdmlhLWR1cmF0aW9uLWJ1dHRvbi1sYWJlbC1vcGVuJzpcbiAgICAgICAgJ8OWcHBuYSB2w6RsamFyZW4gZsO2ciB2YXJha3RpZ2hldCB2aWQgdmlhLXB1bmt0ZW4ge3tpbmRleH19JyxcbiAgICAgICdtaW51dGUtc2hvcnQnOiAnbWluJyxcbiAgICAgICdyZW1vdmUtdmlhLWJ1dHRvbi1sYWJlbCc6ICdUYSBib3J0IHZpYXB1bmt0IHt7aW5kZXh9fScsXG4gICAgICAnc3dhcC1vcmRlci1idXR0b24tbGFiZWwnOiAnU3bDpG5nIHJ1dHRlbnMgcmlrdG5pbmcgdGlsbCBkZW4gbW90c2F0dGEnLFxuICAgICAgJ3ZpYS1wb2ludCc6ICdWaWEgcHVua3QnLFxuICAgICAgJ3ZpYS1wb2ludC1pbmRleCc6ICdWaWEgcHVua3Qge3tpbmRleH19JyxcbiAgICAgICd2aWFwb2ludC1zbGFjay1hbW91bnQnOiAnU3RvcHBldHMgdmFyYWt0aWdoZXQnLFxuICAgIH0sXG4gIH0sXG59O1xuXG5leHBvcnQgZGVmYXVsdCB0cmFuc2xhdGlvbnM7XG4iLCJpbXBvcnQgeyBjcmVhdGVJbnN0YW5jZSB9IGZyb20gJ2kxOG5leHQnO1xuaW1wb3J0IHRyYW5zbGF0aW9ucyBmcm9tICcuL3RyYW5zbGF0aW9ucyc7XG5cbmNvbnN0IGkxOG4gPSBjcmVhdGVJbnN0YW5jZSh7XG4gIGZhbGxiYWNrTG5nOiAnZmknLFxuICAvLyBkZWJ1ZzogdHJ1ZSxcbiAgcmVzb3VyY2VzOiB0cmFuc2xhdGlvbnMsXG4gIGRlZmF1bHROUzogJ3RyYW5zbGF0aW9uJyxcbiAgcmVhY3Q6IHtcbiAgICB1c2VTdXNwZW5zZTogdHJ1ZSxcbiAgfSxcbn0pO1xuXG5pMThuLmluaXQoKTtcblxuZXhwb3J0IGRlZmF1bHQgaTE4bjtcbiIsIi8qIGVzbGludC1kaXNhYmxlIGltcG9ydC9uby1leHRyYW5lb3VzLWRlcGVuZGVuY2llcyAqL1xuaW1wb3J0IGN4IGZyb20gJ2NsYXNzbmFtZXMnO1xuaW1wb3J0IFByb3BUeXBlcyBmcm9tICdwcm9wLXR5cGVzJztcbmltcG9ydCBSZWFjdCBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyBJMThuZXh0UHJvdmlkZXIsIHdpdGhUcmFuc2xhdGlvbiB9IGZyb20gJ3JlYWN0LWkxOG5leHQnO1xuaW1wb3J0IHsgUmVhY3RTb3J0YWJsZSB9IGZyb20gJ3JlYWN0LXNvcnRhYmxlanMnO1xuaW1wb3J0IERUQXV0b1N1Z2dlc3QgZnJvbSAnQGRpZ2l0cmFuc2l0LWNvbXBvbmVudC9kaWdpdHJhbnNpdC1jb21wb25lbnQtYXV0b3N1Z2dlc3QnO1xuaW1wb3J0IEljb24sIHtcbiAgZGVmYXVsdENvbG9ycyxcbn0gZnJvbSAnQGRpZ2l0cmFuc2l0LWNvbXBvbmVudC9kaWdpdHJhbnNpdC1jb21wb25lbnQtaWNvbic7XG5pbXBvcnQgaXNFbXB0eSBmcm9tICdsb2Rhc2gvaXNFbXB0eSc7XG5pbXBvcnQgU2VsZWN0IGZyb20gJy4vaGVscGVycy9TZWxlY3QnO1xuaW1wb3J0IGkxOG4gZnJvbSAnLi9oZWxwZXJzL2kxOG4nO1xuaW1wb3J0IHN0eWxlcyBmcm9tICcuL2hlbHBlcnMvc3R5bGVzLnNjc3MnO1xuXG5leHBvcnQgY29uc3QgZ2V0RW1wdHlWaWFQb2ludFBsYWNlSG9sZGVyID0gKCkgPT4gKHt9KTtcblxuY29uc3QgaXNWaWFQb2ludEVtcHR5ID0gdmlhUG9pbnQgPT4ge1xuICBpZiAodmlhUG9pbnQgPT09IHVuZGVmaW5lZCB8fCBpc0VtcHR5KHZpYVBvaW50KSkge1xuICAgIHJldHVybiB0cnVlO1xuICB9XG4gIGNvbnN0IGtleXMgPSBPYmplY3Qua2V5cyh2aWFQb2ludCk7XG4gIHJldHVybiAoXG4gICAga2V5cy5sZW5ndGggPT09IDEgfHwgKGtleXMubGVuZ3RoID09PSAyICYmIGtleXMuaW5jbHVkZXMoJ2xvY2F0aW9uU2xhY2snKSlcbiAgKTtcbn07XG5cbmNvbnN0IEl0aW5lcmFyeVNlYXJjaENvbnRyb2wgPSAoe1xuICBjaGlsZHJlbixcbiAgY2xhc3NOYW1lLFxuICBlbmFibGVkLFxuICBvbkNsaWNrLFxuICBvbktleVByZXNzLFxuICB3aWRlLFxuICAuLi5yZXN0XG59KSA9PiAoXG4gIDxkaXZcbiAgICBjbGFzc05hbWU9e3N0eWxlc1snaXRpbmVyYXJ5LXNlYXJjaC1jb250cm9sJ119XG4gICAgc3R5bGU9e3sgJy0td2lkdGgnOiB3aWRlID8gJzQ3cHgnIDogJzQwcHgnIH19XG4gID5cbiAgICB7b25DbGljayAmJiBlbmFibGVkICYmIChcbiAgICAgIDxkaXZcbiAgICAgICAgey4uLnJlc3R9XG4gICAgICAgIGNsYXNzTmFtZT17Y2xhc3NOYW1lfVxuICAgICAgICBvbkNsaWNrPXtvbkNsaWNrfVxuICAgICAgICBvbktleVByZXNzPXtvbktleVByZXNzfVxuICAgICAgICByb2xlPVwiYnV0dG9uXCJcbiAgICAgICAgdGFiSW5kZXg9XCIwXCJcbiAgICAgID5cbiAgICAgICAge2NoaWxkcmVufVxuICAgICAgPC9kaXY+XG4gICAgKX1cbiAgPC9kaXY+XG4pO1xuXG5jb25zdCB1cGRhdGVWaWFQb2ludFNsYWNrID0gKFxuICBhY3RpdmVWaWFQb2ludFNsYWNrcyxcbiAgdXBkYXRlZFZpYVBvaW50SW5kZXgsXG4gIHZpYVBvaW50UmVtb3ZlZCA9IGZhbHNlLFxuKSA9PiB7XG4gIGNvbnN0IGZvdW5kQXRJbmRleCA9IGFjdGl2ZVZpYVBvaW50U2xhY2tzLmluZGV4T2YodXBkYXRlZFZpYVBvaW50SW5kZXgpO1xuICBpZiAoZm91bmRBdEluZGV4ID4gLTEpIHtcbiAgICBhY3RpdmVWaWFQb2ludFNsYWNrcy5zcGxpY2UoZm91bmRBdEluZGV4LCAxKTtcbiAgfVxuICByZXR1cm4gdmlhUG9pbnRSZW1vdmVkXG4gICAgPyBhY3RpdmVWaWFQb2ludFNsYWNrcy5tYXAodmFsdWUgPT5cbiAgICAgICAgdmFsdWUgPiB1cGRhdGVkVmlhUG9pbnRJbmRleCA/IHZhbHVlIC0gMSA6IHZhbHVlLFxuICAgICAgKVxuICAgIDogYWN0aXZlVmlhUG9pbnRTbGFja3M7XG59O1xuXG5jb25zdCBpc0tleWJvYXJkU2VsZWN0aW9uRXZlbnQgPSBldmVudCA9PiB7XG4gIGNvbnN0IHNwYWNlID0gWzEzLCAnICcsICdTcGFjZWJhciddO1xuICBjb25zdCBlbnRlciA9IFszMiwgJ0VudGVyJ107XG4gIGNvbnN0IGtleSA9IChldmVudCAmJiAoZXZlbnQua2V5IHx8IGV2ZW50LndoaWNoIHx8IGV2ZW50LmtleUNvZGUpKSB8fCAnJztcbiAgaWYgKCFrZXkgfHwgIXNwYWNlLmNvbmNhdChlbnRlcikuaW5jbHVkZXMoa2V5KSkge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICByZXR1cm4gdHJ1ZTtcbn07XG5cbmNvbnN0IHZhbHVlID0gbG9jYXRpb24gPT5cbiAgKGxvY2F0aW9uICYmIGxvY2F0aW9uLmFkZHJlc3MpIHx8XG4gIChsb2NhdGlvbiAmJiBsb2NhdGlvbi5ncHMgJiYgbG9jYXRpb24ucmVhZHkgJiYgJ055a3lpbmVuIHNpamFpbnRpJykgfHxcbiAgJyc7XG5cbmNvbnN0IGdldExvY2F0aW9uVHlwZSA9IGxvY2F0aW9uID0+XG4gIGxvY2F0aW9uICYmIGxvY2F0aW9uLmdwcyA9PT0gdHJ1ZSA/ICdwb3NpdGlvbicgOiAnbG9jYXRpb24nO1xuXG5jb25zdCBnZXRTbGFja1RpbWVPcHRpb25zID0gdCA9PiB7XG4gIGNvbnN0IHRpbWVPcHRpb25zID0gW107XG4gIGZvciAobGV0IGkgPSAwOyBpIDw9IDk7IGkrKykge1xuICAgIGNvbnN0IHZhbHVlSW5NaW51dGVzID0gaSAqIDEwO1xuICAgIHRpbWVPcHRpb25zLnB1c2goe1xuICAgICAgZGlzcGxheU5hbWU6IGAke3ZhbHVlSW5NaW51dGVzfSAke3QoJ21pbnV0ZS1zaG9ydCcpfWAsXG4gICAgICB2YWx1ZTogdmFsdWVJbk1pbnV0ZXMgKiA2MCxcbiAgICB9KTtcbiAgfVxuICByZXR1cm4gdGltZU9wdGlvbnM7XG59O1xuXG5JdGluZXJhcnlTZWFyY2hDb250cm9sLnByb3BUeXBlcyA9IHtcbiAgY2hpbGRyZW46IFByb3BUeXBlcy5ub2RlLFxuICBjbGFzc05hbWU6IFByb3BUeXBlcy5zdHJpbmcuaXNSZXF1aXJlZCxcbiAgZW5hYmxlZDogUHJvcFR5cGVzLmJvb2wuaXNSZXF1aXJlZCxcbiAgb25DbGljazogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgb25LZXlQcmVzczogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgd2lkZTogUHJvcFR5cGVzLmJvb2wsXG59O1xuXG5JdGluZXJhcnlTZWFyY2hDb250cm9sLmRlZmF1bHRQcm9wcyA9IHtcbiAgY2hpbGRyZW46IHVuZGVmaW5lZCxcbiAgd2lkZTogZmFsc2UsXG59O1xuXG4vKipcbiAqIFBhbmVsIHRoYXQgcmVuZGVycyB0d28gRFRBdXRvc3VnZ2VzdCBzZWFyY2ggZmllbGRzLCBpbmNsdWRpbmcgdmlhcG9pbnQgaGFuZGxpbmdcbiAqXG4gKiBAZXhhbXBsZVxuICogY29uc3Qgc2VhcmNoQ29udGV4dCA9IHtcbiAqICAgaXNQZWxpYXNMb2NhdGlvbkF3YXJlOiBmYWxzZSAvLyB0cnVlIC8gZmFsc2UgZG9lcyBMZXQgUGVsaWFzIHN1Z2dlc3QgYmFzZWQgb24gY3VycmVudCB1c2VyIGxvY2F0aW9uXG4gKiAgIG1pbmltYWxSZWdleHA6IHVuZGVmaW5lZCAvLyB1c2VkIGZvciB0ZXN0aW5nIG1pbi4gcmVnZXhwLiBGb3IgZXhhbXBsZTogbmV3IFJlZ0V4cCgnLnsyLH0nKSxcbiAqICAgbGluZVJlZ2V4cDogdW5kZWZpbmVkIC8vICBpZGVudGlmeSBzZWFyY2hlcyBmb3Igcm91dGUgbnVtYmVycy9sYWJlbHM6IGJ1cyB8IHRyYWluIHwgbWV0cm8uIEZvciBleGFtcGxlOiBuZXcgUmVnRXhwKFxuICogICAgLy8gICAnKF5bMC05XStbYS16XT8kfF5beXVsZWFwaW5rcnRkel0kfChebVsxMl0/Yj8kKSknLFxuICogICAgLy8gICdpJyxcbiAqICAgIC8vICApLFxuICogICBVUkxfUEVMSUFTOiAnJyAvLyB1cmwgZm9yIHBlbGlhcyBzZWFyY2hlc1xuICogICBmZWVkSURzOiBbJ0hTTCcsICdIU0xMYXV0dGEnXSAvLyBGZWVkSWQncyBsaWtlICBbSFNMLCBIU0xMYXV0dGFdXG4gKiAgIGdlb2NvZGluZ1NvdXJjZXM6IFsnb2EnLCdvc20nLCdubHNmaSddICAvLyBzb3VyY2VzIGZvciBnZW9jb2RpbmdcbiAqICAgZ2VvY29kaW5nU2VhcmNoUGFyYW1zOyB7fSAgLy8gU2VhcmNocGFybWFzIGZybyBnZW9jb2RpbmdcbiAqICAgZ2V0RmF2b3VyaXRlTG9jYXRpb25zOiAoKSA9PiAoe30pLCAgICAvLyBGdW5jdGlvbiB0aGF0IHJldHVybnMgYXJyYXkgb2YgZmF2b3VyaXRlIGxvY2F0aW9ucy5cbiAqICAgZ2V0RmF2b3VyaXRlU3RvcHM6ICgpID0+ICh7fSksICAgICAgICAvLyBGdW5jdGlvbiB0aGF0IHJldHVybnMgYXJyYXkgb2YgZmF2b3VyaXRlIHN0b3BzLlxuICogICBnZXRMYW5ndWFnZTogKCkgPT4gKHt9KSwgICAgICAgICAgICAgIC8vIEZ1bmN0aW9uIHRoYXQgcmV0dXJucyBjdXJyZW50IGxhbmd1YWdlLlxuICogICBnZXRGYXZvdXJpdGVSb3V0ZXM6ICgpID0+ICh7fSksICAgICAgIC8vIEZ1bmN0aW9uIHRoYXQgcmV0dXJucyBhcnJheSBvZiBmYXZvdXJpdGUgcm91dGVzLlxuICogICBnZXRQb3NpdGlvbnM6ICgpID0+ICh7fSksICAgICAgICAgICAgIC8vIEZ1bmN0aW9uIHRoYXQgcmV0dXJucyB1c2VyJ3MgZ2VvbG9jYXRpb24uXG4gKiAgIGdldFJvdXRlc1F1ZXJ5OiAoKSA9PiAoe30pLCAgICAgICAgICAgLy8gRnVuY3Rpb24gdGhhdCByZXR1cm5zIHF1ZXJ5IGZvciBmZXRjaGluZyByb3V0ZXMuXG4gKiAgIGdldFN0b3BBbmRTdGF0aW9uc1F1ZXJ5OiAoKSA9PiAoe30pLCAgLy8gRnVuY3Rpb24gdGhhdCBmZXRjaGVzIGZhdm91cml0ZSBzdG9wcyBhbmQgc3RhdGlvbnMgZnJvbSBncmFwaHFsIEFQSS5cbiAqICAgZ2V0RmF2b3VyaXRlUm91dGVzUXVlcnk6ICgpID0+ICh7fSksICAvLyBGdW5jdGlvbiB0aGF0IHJldHVybnMgcXVlcnkgZm9yIGZldGNoaW5nIGZhdm91cml0ZSByb3V0ZXMuXG4gKiAgIGdldEZhdm91cml0ZVZlaGljbGVSZW50YWxTdGF0aW9uczogKCkgPT4gKHt9KSwgIC8vIEZ1bmN0aW9uIHRoYXQgcmV0dXJucyBmYXZvdXJpdGUgYmlrZSByZW50YWwgc3RhdGlvbi5cbiAqICAgZ2V0RmF2b3VyaXRlVmVoaWNsZVJlbnRhbFN0YXRpb25zUXVlcnk6ICgpID0+ICh7fSksIC8vIEZ1bmN0aW9uIHRoYXQgcmV0dXJucyBxdWVyeSBmb3IgZmV0Y2hpbmcgZmF2b3VyaXRlIGJpa2UgcmVudGFsIHN0YXRpb25zLlxuICogICBzdGFydExvY2F0aW9uV2F0Y2g6ICgpID0+ICh7fSksICAgICAgIC8vIEZ1bmN0aW9uIHRoYXQgbG9jYXRlcyB1c2VycyBnZW9sb2NhdGlvbi5cbiAqICAgc2F2ZVNlYXJjaDogKCkgPT4gKHt9KSwgICAgICAgICAgICAgICAvLyBGdW5jdGlvbiB0aGF0IHNhdmVzIHNlYXJjaCB0byBvbGQgc2VhcmNoZXMgc3RvcmUuXG4gKiAgIGNsZWFyT2xkU2VhcmNoZXM6ICgpID0+ICh7fSksICAgICAgICAgLy8gRnVuY3Rpb24gdGhhdCBjbGVhcnMgb2xkIHNlYXJjaGVzIHN0b3JlLlxuICogICBnZXRGdXR1cmVSb3V0ZXM6ICgpID0+ICh7fSksICAgICAgICAgIC8vIEZ1bmN0aW9uIHRoYXQgcmV0dXJuIGZ1dHVyZSByb3V0ZXNcbiAqICAgc2F2ZUZ1dHVyZVJvdXRlOiAoKSA9PiAoe30pLCAgICAgICAgICAvLyBGdW5jdGlvbiB0aGF0IHNhdmVzIGEgZnV0dXJlIHJvdXRlXG4gKiAgIGNsZWFyRnV0dXJlUm91dGVzOiAoKSA9PiAoe30pLCAgICAgICAgLy8gRnVuY3Rpb24gdGhhdCBjbGVhcnMgZnV0dXJlIHJvdXRlc1xuICogfTtcbiAqXG4gKiBjb25zdCBvcmlnaW4gPSB7XG4gKiAgbGF0OiA2MC4xNjkxOTYsXG4gKiAgbG9uOiAyNC45NTc2NzQsXG4gKiAgYWRkcmVzczogJ0FsZWtzYW50ZXJpbmthdHUsIEhlbHNpbmtpJyxcbiAqICBzZXQ6IHRydWUsXG4gKiAgcmVhZHk6IHRydWUsXG4gKiB9XG4gKlxuICogY29uc3QgZGVzdGluYXRpb24gPSB7XG4gKiAgIGxhdDogNjAuMTk5MDkzLFxuICogICBsb246IDI0Ljk0MDUzNixcbiAqICAgYWRkcmVzczogJ09wYXN0aW5zaWx0YSA2LCBIZWxzaW5raScsXG4gKiAgIHNldDogdHJ1ZSxcbiAqICAgcmVhZHk6IHRydWUsXG4gKiB9XG4gKiBvblNlbGVjdChpdGVtLCBpZCkge1xuICogIHJldHVybiBudWxsOyAgLy8gRGVmaW5lIHdoYXQgdG8gZG8gd2hlbiBhIHN1Z2dlc3Rpb24gaXMgYmVpbmcgc2VsZWN0ZWQuIE5vbmUgYnkgZGVmYXVsdC5cbiAqICB9XG4gKiBvbkNsZWFyKGlkKSB7XG4gKiAgcmV0dXJuIG51bGw7ICAvLyBEZWZpbmUgd2hhdCB0byBkbyB3aGVuIGEgc3VnZ2VzdGlvbiBpcyBiZWluZyBzZWxlY3RlZC4gTm9uZSBieSBkZWZhdWx0LlxuICogfVxuICogY29uc3QgZ2V0QXV0b1N1Z2dlc3RJY29uczoge1xuICogICAvLyBDYWxsZWQgZm9yIGV2ZXJ5IGNpdHkgYmlrZSBzdGF0aW9uIHJlbmRlcmVkIGFzIGEgc2VhcmNoIHN1Z2dlc3Rpb24uIFNob3VsZCByZXR1cm4gdGhlIGljb24gYW5kXG4gKiAgIC8vIGNvbG9yIHVzZWQgZm9yIHRoYXQgc3RhdGlvbi4gVHdvIGljb25zIGFyZSBhdmFpbGFibGUsICdjaXR5YmlrZS1zdG9wLWRpZ2l0cmFuc2l0JyBhbmRpdHliaWtlLXN0b3AtZGlnaXRyYW5zaXQtc2Vjb25kYXJ5Jy5cbiAqICAgY2l0eWJpa2VzOiBzdGF0aW9uID0+IHtcbiAqICAgICAgcmV0dXJuIFsnY2l0eWJpa2Utc3RvcC1kaWdpdHJhbnNpdCcsICcjZjJiNjJkJ107XG4gKiAgIH1cbiAqIH1cbiAqIGNvbnN0IHRhcmdldHMgPSBbJ0xvY2F0aW9ucycsICdTdG9wcycsICdSb3V0ZXMnXTsgLy8gRGVmaW5lcyB3aGF0IHlvdSBhcmUgc2VhcmNoaW5nLiBhbGwgYXZhaWxhYmxlIG9wdGlvbnMgYXJlIExvY2F0aW9ucywgU3RvcHMsIFJvdXRlcywgVmVoaWNsZVJlbnRhbFN0YXRpb25zLCBGdXR1cmVSb3V0ZXMsIE1hcFBvc2l0aW9uIGFuZCBDdXJyZW50UG9zaXRpb24uIExlYXZlIGVtcHR5IHRvIHNlYXJjaCBhbGwgdGFyZ2V0cy5cbiAqIGNvbnN0IHNvdXJjZXMgPSBbJ0Zhdm91cml0ZScsICdIaXN0b3J5JywgJ0RhdGFzb3VyY2UnXSAvLyBEZWZpbmVzIHdoZXJlIHlvdSBhcmUgc2VhcmNoaW5nLiBhbGwgYXZhaWxhYmxlIGFyZTogRmF2b3VyaXRlLCBIaXN0b3J5IChwcmV2aW91c2x5IHNlYXJjaGVkIHNlYXJjaGVzKSwgYW5kIERhdGFzb3VyY2UuIExlYXZlIGVtcHR5IHRvIHVzZSBhbGwgc291cmNlcy5cbiAqIDxEVEF1dG9zdWdnZXN0UGFuZWxcbiAqICAgIGFwcEVsZW1lbnQ9e2FwcEVsZW1lbnR9IC8vIFJlcXVpcmVkLiBSb290IGVsZW1lbnQncyBpZC4gTmVlZGVkIGZvciByZWFjdC1tb2RhbCBjb21wb25lbnQuXG4gKiAgICBvcmlnaW49e29yaWdpbn0gLy8gU2VsZWN0ZWQgb3JpZ2luIHBvaW50XG4gKiAgICBkZXN0aW5hdGlvbj17ZGVzdGluYXRpb259IC8vIFNlbGVjdGVkIGRlc3RpbmF0aW9uIHBvaW50XG4gKiAgICBvcmlnaW5QbGFjZUhvbGRlcj17J0dpdmUgb3JpZ2luJ30gLy8gT3B0aW9uYWwgR2l2ZSBzdHJpbmcgc2hvd24gaW5pdGlhbGx5IGluc2lkZSBvcmlnaW4gc2VhcmNoIGZpZWxkXG4gKiAgICBkZXN0aW5hdGlvblBsYWNlSG9sZGVyPXsnR2l2ZSBkZXN0aW5hdGlvbid9IC8vIE9wdGlvbmFsIEdpdmUgc3RyaW5nIHNob3duIGluaXRhbGx5IGluc2lkZSBkZXN0aW5hdGlvbiBzZWFyY2ggZmllbGRcbiAqICAgIGluaXRpYWxWaWFQb2ludHM9e1tdfSAvLyBPcHRpb25hbC4gIElmIHNob3dWaWFwb2ludENvbnRyb2wgaXMgc2V0IHRvIHRydWUsIHBhc3MgaW5pdGlhbCB2aWEgcG9pbnRzIHRvIHRoZSBwYW5lbC4gQ3VycmVudGx5IG5vIGRlZmF1bHQgaW1wbGVtZW50YXRpb24gaXMgZ2l2ZW4uXG4gKiAgICB1cGRhdGVWaWFQb2ludHM9eygpID0+IHJldHVybiBbXX0gLy8gT3B0aW9uYWwuIElmIHNob3dWaWFwb2ludENvbnRyb2wgaXMgc2V0IHRvIHRydWUsIGRlZmluZSBob3cgdG8gdXBkYXRlIHlvdXIgdmlhIHBvaW50IGxpc3Qgd2l0aCB0aGlzIGZ1bmN0aW9uLiBDdXJyZW5sdHkgbm8gZGVmYXVsdCBpbXBsZW1lbnRhdGlvbiBpcyBnaXZlbi5cbiAqICAgIHN3YXBPcmRlcj17KCkgPT4gcmV0dXJuIG51bGx9IC8vIE9wdGlvbmFsLiBJZiBzaG93U3dhcENvbnRyb2wgaXMgc2V0IHRvIHRydWUsIGRlZmluZSBob3cgdG8gc3dhcCBvcmRlciBvZiB5b3VyIHBvaW50cyAob3JpZ2luLCBkZXN0aW5hdGlvbiwgdmlhcG9pbnRzKS4gQ3VycmVudGx5IG5vIGRlZmF1bHQgaW1wbGVtZW50YXRpb24gaXMgZ2l2ZW4uXG4gKiAgICBzZWFyY2hDb250ZXh0PXtzZWFyY2hDb250ZXh0fVxuICogICAgZ2V0QXV0b1N1Z2dlc3RJY29ucz17Z2V0QXV0b1N1Z2dlc3RJY29uc31cbiAqICAgIG9uU2VsZWN0PXt0aGlzLm9uU2VsZWN0fVxuICogICAgb25DbGVhcj17dGhpcy5vbkNsZWFyfVxuICogICAgbGFuZz1cImZpXCIgLy8gRGVmaW5lIGxhbmd1YWdlIGZpIHN2IG9yIGVuLlxuICogICAgYWRkQW5hbHl0aWNzRXZlbnQ9e251bGx9IC8vIE9wdGlvbmFsLiB5b3UgY2FuIHJlY29yZCBhbiBhbmFseXRpY3MgZXZlbnQgaWYgeW91IHdpc2guIGlmIHBhc3NlZCwgY29tcG9uZW50IHdpbGwgcGFzcyBhbiBjYXRlZ29yeSwgYWN0aW9uLCBuYW1lIHBhcmFtZXRlcnMgdG8gYWRkQW5hbHl0aWNzRXZlbnRcbiAqICAgIGRpc2FibGVBdXRvRm9jdXM9e2ZhbHNlfSAvLyBPcHRpb25hbC4gdXNlIHRoaXMgdG8gZGlzYWJsZSBhdXRvZm9jdXMgY29tcGxldGVseSBmcm9tIERUQXV0b3N1Z2dlc3RQYW5lbFxuICogICAgc291cmNlcz17c291cmNlc31cbiAqICAgIHRhcmdldHM9e3RhcmdldHN9XG4gKiAgICBpc01vYmlsZSAgLy8gT3B0aW9uYWwuIERlZmF1bHRzIHRvIGZhbHNlLiBXaGV0aGVyIHRvIHVzZSBtb2JpbGUgc2VhcmNoLlxuICogICAgb3JpZ2luTW9iaWxlTGFiZWw9XCJPcmlnaW4gbGFiZWxcIiAvLyBPcHRpb25hbC4gQ3VzdG9tIGxhYmVsIHRleHQgZm9yIG9yaWdpbiBmaWVsZCBvbiBtb2JpbGUuXG4gKiAgICBkZXN0aW5hdGlvbk1vYmlsZUxhYmVsPVwiRGVzdGluYXRpb24gbGFiZWxcIiAvLyBPcHRpb25hbC4gQ3VzdG9tIGxhYmVsIHRleHQgZm9yIGRlc3RpbmF0aW9uIGZpZWxkIG9uIG1vYmlsZS5cbiAqICAgIGhhbmRsZUZvY3VzQ2hhbmdlPXsoKSA9PiB7fX0gLy8gT3B0aW9uYWwuIElmIGRlZmluZWQgb3ZlcnJpZGVzIGRlZmF1bHQgb25Gb2N1c0NoYW5nZSBiZWhhdmlvdXJcbiAqICAgIHNob3dTd2FwQ29udHJvbD17ZmFsc2V9IC8vIE9wdGlvbmFsLlxuICogICAgc2hvd1ZpYXBvaW50Q29udHJvbD17ZmFsc2V9IC8vIE9wdGlvbmFsLlxuICovXG5cbmNvbnN0IGxvY2F0aW9uU2hhcGUgPSBQcm9wVHlwZXMuc2hhcGUoe1xuICBhZGRyZXNzOiBQcm9wVHlwZXMuc3RyaW5nLFxuICBsYXQ6IFByb3BUeXBlcy5udW1iZXIsXG4gIGxvbjogUHJvcFR5cGVzLm51bWJlcixcbiAgbG9jYXRpb25TbGFjazogUHJvcFR5cGVzLm51bWJlcixcbn0pO1xuXG5jbGFzcyBEVEF1dG9zdWdnZXN0UGFuZWwgZXh0ZW5kcyBSZWFjdC5Db21wb25lbnQge1xuICBzdGF0aWMgcHJvcFR5cGVzID0ge1xuICAgIGFwcEVsZW1lbnQ6IFByb3BUeXBlcy5zdHJpbmcuaXNSZXF1aXJlZCxcbiAgICBvcmlnaW46IGxvY2F0aW9uU2hhcGUsXG4gICAgZGVzdGluYXRpb246IGxvY2F0aW9uU2hhcGUsXG4gICAgb3JpZ2luUGxhY2VIb2xkZXI6IFByb3BUeXBlcy5zdHJpbmcsXG4gICAgZGVzdGluYXRpb25QbGFjZUhvbGRlcjogUHJvcFR5cGVzLnN0cmluZyxcbiAgICB2aWFQb2ludHM6IFByb3BUeXBlcy5hcnJheU9mKGxvY2F0aW9uU2hhcGUpLFxuICAgIHVwZGF0ZVZpYVBvaW50czogUHJvcFR5cGVzLmZ1bmMsXG4gICAgaGFuZGxlVmlhUG9pbnRMb2NhdGlvblNlbGVjdGVkOiBQcm9wVHlwZXMuZnVuYyxcbiAgICBzd2FwT3JkZXI6IFByb3BUeXBlcy5mdW5jLFxuICAgIHNlYXJjaFBhbmVsVGV4dDogUHJvcFR5cGVzLnN0cmluZyxcbiAgICBzZWFyY2hDb250ZXh0OiBQcm9wVHlwZXMuc2hhcGUoe1xuICAgICAgVVJMX1BFTElBUzogUHJvcFR5cGVzLnN0cmluZyxcbiAgICB9KS5pc1JlcXVpcmVkLFxuICAgIG9uU2VsZWN0OiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICAgIG9uQ2xlYXI6IFByb3BUeXBlcy5mdW5jLFxuICAgIGFkZEFuYWx5dGljc0V2ZW50OiBQcm9wVHlwZXMuZnVuYyxcbiAgICBsYW5nOiBQcm9wVHlwZXMuc3RyaW5nLmlzUmVxdWlyZWQsXG4gICAgZGlzYWJsZUF1dG9Gb2N1czogUHJvcFR5cGVzLmJvb2wsXG4gICAgc291cmNlczogUHJvcFR5cGVzLmFycmF5T2YoUHJvcFR5cGVzLnN0cmluZyksXG4gICAgdGFyZ2V0czogUHJvcFR5cGVzLmFycmF5T2YoUHJvcFR5cGVzLnN0cmluZyksXG4gICAgZmlsdGVyUmVzdWx0czogUHJvcFR5cGVzLmZ1bmMsXG4gICAgaXNNb2JpbGU6IFByb3BUeXBlcy5ib29sLFxuICAgIG9yaWdpbk1vYmlsZUxhYmVsOiBQcm9wVHlwZXMuc3RyaW5nLFxuICAgIGRlc3RpbmF0aW9uTW9iaWxlTGFiZWw6IFByb3BUeXBlcy5zdHJpbmcsXG4gICAgcmVmUG9pbnQ6IGxvY2F0aW9uU2hhcGUsXG4gICAgbW9kZVNldDogUHJvcFR5cGVzLnN0cmluZyxcbiAgICBjb2xvcnM6IFByb3BUeXBlcy5vYmplY3RPZihQcm9wVHlwZXMuc3RyaW5nKSxcbiAgICBnZXRBdXRvU3VnZ2VzdEljb25zOiBQcm9wVHlwZXMub2JqZWN0T2YoUHJvcFR5cGVzLmZ1bmMpLFxuICAgIGZvbnRXZWlnaHRzOiBQcm9wVHlwZXMuc2hhcGUoe1xuICAgICAgbWVkaXVtOiBQcm9wVHlwZXMubnVtYmVyLFxuICAgIH0pLFxuICAgIHNob3dTY3JvbGw6IFByb3BUeXBlcy5ib29sLFxuICAgIG9uRm9jdXNDaGFuZ2U6IFByb3BUeXBlcy5mdW5jLFxuICAgIGlzRW1iZWRkZWQ6IFByb3BUeXBlcy5ib29sLFxuICAgIHNob3dTd2FwQ29udHJvbDogUHJvcFR5cGVzLmJvb2wsXG4gICAgc2hvd1ZpYXBvaW50Q29udHJvbDogUHJvcFR5cGVzLmJvb2wsXG4gICAgc2hvd1NsYWNrQ29udHJvbDogUHJvcFR5cGVzLmJvb2wsXG4gICAgdDogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgfTtcblxuICBzdGF0aWMgZGVmYXVsdFByb3BzID0ge1xuICAgIG9yaWdpbjogdW5kZWZpbmVkLFxuICAgIGRlc3RpbmF0aW9uOiB1bmRlZmluZWQsXG4gICAgdmlhUG9pbnRzOiBbXSxcbiAgICBvcmlnaW5QbGFjZUhvbGRlcjogJ2dpdmUtb3JpZ2luJyxcbiAgICBkZXN0aW5hdGlvblBsYWNlSG9sZGVyOiAnZ2l2ZS1kZXN0aW5hdGlvbicsXG4gICAgc3dhcE9yZGVyOiB1bmRlZmluZWQsXG4gICAgdXBkYXRlVmlhUG9pbnRzOiAoKSA9PiB7fSxcbiAgICBzZWFyY2hQYW5lbFRleHQ6IHVuZGVmaW5lZCxcbiAgICBzb3VyY2VzOiBbXSxcbiAgICB0YXJnZXRzOiBbXSxcbiAgICBmaWx0ZXJSZXN1bHRzOiB1bmRlZmluZWQsXG4gICAgb25DbGVhcjogdW5kZWZpbmVkLFxuICAgIGdldEF1dG9TdWdnZXN0SWNvbnM6IHVuZGVmaW5lZCxcbiAgICByZWZQb2ludDogdW5kZWZpbmVkLFxuICAgIGFkZEFuYWx5dGljc0V2ZW50OiB1bmRlZmluZWQsXG4gICAgZGlzYWJsZUF1dG9Gb2N1czogZmFsc2UsXG4gICAgaXNNb2JpbGU6IGZhbHNlLFxuICAgIGhhbmRsZVZpYVBvaW50TG9jYXRpb25TZWxlY3RlZDogdW5kZWZpbmVkLFxuICAgIG9yaWdpbk1vYmlsZUxhYmVsOiBudWxsLFxuICAgIGRlc3RpbmF0aW9uTW9iaWxlTGFiZWw6IG51bGwsXG4gICAgbW9kZVNldDogdW5kZWZpbmVkLFxuICAgIGNvbG9yczogZGVmYXVsdENvbG9ycyxcbiAgICBmb250V2VpZ2h0czoge1xuICAgICAgbWVkaXVtOiA1MDAsXG4gICAgfSxcbiAgICBzaG93U2Nyb2xsOiBmYWxzZSxcbiAgICBvbkZvY3VzQ2hhbmdlOiB1bmRlZmluZWQsXG4gICAgaXNFbWJlZGRlZDogZmFsc2UsXG4gICAgc2hvd1N3YXBDb250cm9sOiBmYWxzZSxcbiAgICBzaG93VmlhcG9pbnRDb250cm9sOiBmYWxzZSxcbiAgICBzaG93U2xhY2tDb250cm9sOiBmYWxzZSxcbiAgfTtcblxuICBjb25zdHJ1Y3Rvcihwcm9wcykge1xuICAgIHN1cGVyKHByb3BzKTtcbiAgICB0aGlzLnN0YXRlID0ge1xuICAgICAgYWN0aXZlU2xhY2tJbnB1dHM6IFtdLFxuICAgICAgcmVmczogW10sXG4gICAgfTtcbiAgfVxuXG4gIHN0b3JlUmVmZXJlbmNlID0gcmVmID0+IHtcbiAgICB0aGlzLnNldFN0YXRlKHByZXZTdGF0ZSA9PiAoeyByZWZzOiBbLi4ucHJldlN0YXRlLnJlZnMsIHJlZl0gfSkpO1xuICB9O1xuXG4gIGhhbmRsZUZvY3VzQ2hhbmdlID0gKCkgPT4ge1xuICAgIGNvbnN0IHsgZGVzdGluYXRpb24gfSA9IHRoaXMucHJvcHM7XG4gICAgaWYgKCFkZXN0aW5hdGlvbiB8fCAhZGVzdGluYXRpb24ubGF0KSB7XG4gICAgICB0aGlzLnN0YXRlLnJlZnNbMV0uZm9jdXMoKTtcbiAgICB9XG4gIH07XG5cbiAgdXBkYXRlVmlhUG9pbnRzID0gdmlhUG9pbnRzID0+IHtcbiAgICBpZiAodmlhUG9pbnRzLmxlbmd0aCA9PT0gMCkge1xuICAgICAgdGhpcy5wcm9wcy51cGRhdGVWaWFQb2ludHMoW10pO1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICB0aGlzLnByb3BzLnVwZGF0ZVZpYVBvaW50cyh2aWFQb2ludHMuZmlsdGVyKHZwID0+ICFpc1ZpYVBvaW50RW1wdHkodnApKSk7XG4gIH07XG5cbiAgaGFuZGxlVG9nZ2xlVmlhUG9pbnRTbGFja0NsaWNrID0gdmlhUG9pbnRJbmRleCA9PiB7XG4gICAgY29uc3QgeyBhY3RpdmVTbGFja0lucHV0cyB9ID0gdGhpcy5zdGF0ZTtcbiAgICB0aGlzLnNldFN0YXRlKHtcbiAgICAgIGFjdGl2ZVNsYWNrSW5wdXRzOiBhY3RpdmVTbGFja0lucHV0cy5pbmNsdWRlcyh2aWFQb2ludEluZGV4KVxuICAgICAgICA/IHVwZGF0ZVZpYVBvaW50U2xhY2soYWN0aXZlU2xhY2tJbnB1dHMsIHZpYVBvaW50SW5kZXgpXG4gICAgICAgIDogYWN0aXZlU2xhY2tJbnB1dHMuY29uY2F0KFt2aWFQb2ludEluZGV4XSksXG4gICAgfSk7XG4gIH07XG5cbiAgaGFuZGxlVmlhUG9pbnRTbGFja1RpbWVTZWxlY3RlZCA9IChzbGFja1RpbWVJblNlY29uZHMsIGkpID0+IHtcbiAgICBpZiAodGhpcy5wcm9wcy5hZGRBbmFseXRpY3NFdmVudCkge1xuICAgICAgdGhpcy5wcm9wcy5hZGRBbmFseXRpY3NFdmVudCh7XG4gICAgICAgIGFjdGlvbjogJ0VkaXRWaWFQb2ludFN0b3BEdXJhdGlvbicsXG4gICAgICAgIGNhdGVnb3J5OiAnSXRpbmVyYXJ5U2V0dGluZ3MnLFxuICAgICAgICBuYW1lOiBzbGFja1RpbWVJblNlY29uZHMgLyA2MCxcbiAgICAgIH0pO1xuICAgIH1cbiAgICBjb25zdCB7IHZpYVBvaW50cyB9ID0gdGhpcy5wcm9wcztcbiAgICB2aWFQb2ludHNbaV0ubG9jYXRpb25TbGFjayA9IE51bWJlci5wYXJzZUludChzbGFja1RpbWVJblNlY29uZHMsIDEwKTtcbiAgICB0aGlzLnVwZGF0ZVZpYVBvaW50cyh2aWFQb2ludHMpO1xuICB9O1xuXG4gIGhhbmRsZVZpYVBvaW50TG9jYXRpb25TZWxlY3RlZCA9ICh2aWFQb2ludExvY2F0aW9uLCBpKSA9PiB7XG4gICAgdGhpcy5wcm9wcy5oYW5kbGVWaWFQb2ludExvY2F0aW9uU2VsZWN0ZWQodmlhUG9pbnRMb2NhdGlvbiwgaSk7XG4gIH07XG5cbiAgaGFuZGxlUmVtb3ZlVmlhUG9pbnRDbGljayA9IHZpYVBvaW50SW5kZXggPT4ge1xuICAgIGlmICh0aGlzLnByb3BzLmFkZEFuYWx5dGljc0V2ZW50KSB7XG4gICAgICB0aGlzLnByb3BzLmFkZEFuYWx5dGljc0V2ZW50KHtcbiAgICAgICAgYWN0aW9uOiAnUmVtb3ZlSm91cm5leVZpYVBvaW50JyxcbiAgICAgICAgY2F0ZWdvcnk6ICdJdGluZXJhcnlTZXR0aW5ncycsXG4gICAgICAgIG5hbWU6IG51bGwsXG4gICAgICB9KTtcbiAgICB9XG4gICAgY29uc3QgeyBhY3RpdmVTbGFja0lucHV0cyB9ID0gdGhpcy5zdGF0ZTtcbiAgICBjb25zdCB7IHZpYVBvaW50cyB9ID0gdGhpcy5wcm9wcztcbiAgICB2aWFQb2ludHMuc3BsaWNlKHZpYVBvaW50SW5kZXgsIDEpO1xuICAgIHRoaXMuc2V0U3RhdGUoXG4gICAgICB7XG4gICAgICAgIGFjdGl2ZVNsYWNrSW5wdXRzOiB1cGRhdGVWaWFQb2ludFNsYWNrKFxuICAgICAgICAgIGFjdGl2ZVNsYWNrSW5wdXRzLFxuICAgICAgICAgIHZpYVBvaW50SW5kZXgsXG4gICAgICAgICAgdHJ1ZSxcbiAgICAgICAgKSxcbiAgICAgIH0sXG4gICAgICAoKSA9PiB0aGlzLnVwZGF0ZVZpYVBvaW50cyh2aWFQb2ludHMpLFxuICAgICk7XG4gIH07XG5cbiAgaGFuZGxlQWRkVmlhUG9pbnRDbGljayA9ICgpID0+IHtcbiAgICBpZiAodGhpcy5wcm9wcy5hZGRBbmFseXRpY3NFdmVudCkge1xuICAgICAgdGhpcy5wcm9wcy5hZGRBbmFseXRpY3NFdmVudCh7XG4gICAgICAgIGFjdGlvbjogJ0FkZEpvdXJuZXlWaWFQb2ludCcsXG4gICAgICAgIGNhdGVnb3J5OiAnSXRpbmVyYXJ5U2V0dGluZ3MnLFxuICAgICAgICBuYW1lOiAnUXVpY2tTZXR0aW5nc0J1dHRvbicsXG4gICAgICB9KTtcbiAgICB9XG4gICAgY29uc3QgeyB2aWFQb2ludHMgfSA9IHRoaXMucHJvcHM7XG4gICAgdmlhUG9pbnRzLnB1c2goZ2V0RW1wdHlWaWFQb2ludFBsYWNlSG9sZGVyKCkpO1xuICAgIC8vIFdlIG5lZWQgdG8gdXBkYXRlIHRoZSBzdGF0ZSBzbyB0aGF0IHBsYWNlSG9sZGVyIHdpbGwgc2hvdyB1cCBpbiBwYW5lbC5cbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgcmVhY3Qvbm8tYWNjZXNzLXN0YXRlLWluLXNldHN0YXRlXG4gICAgdGhpcy5zZXRTdGF0ZSh0aGlzLnN0YXRlKTtcbiAgfTtcblxuICBoYW5kbGVTd2FwT3JkZXJDbGljayA9ICgpID0+IHtcbiAgICBpZiAodGhpcy5wcm9wcy5hZGRBbmFseXRpY3NFdmVudCkge1xuICAgICAgdGhpcy5wcm9wcy5hZGRBbmFseXRpY3NFdmVudCh7XG4gICAgICAgIGFjdGlvbjogJ1N3aXRjaEpvdXJuZXlTdGFydEFuZEVuZFBvaW50T3JkZXInLFxuICAgICAgICBjYXRlZ29yeTogJ0l0aW5lcmFyeVNldHRpbmdzJyxcbiAgICAgICAgbmFtZTogbnVsbCxcbiAgICAgIH0pO1xuICAgIH1cbiAgICBjb25zdCB7IHZpYVBvaW50cyB9ID0gdGhpcy5wcm9wcztcbiAgICB2aWFQb2ludHMucmV2ZXJzZSgpO1xuICAgIHRoaXMucHJvcHMuc3dhcE9yZGVyKCk7XG4gIH07XG5cbiAgZ2V0U2xhY2tEaXNwbGF5ID0gc2xhY2tJblNlY29uZHMgPT5cbiAgICBgJHtzbGFja0luU2Vjb25kcyAvIDYwfSAke3RoaXMucHJvcHMudCgnbWludXRlLXNob3J0Jywge1xuICAgICAgbG5nOiB0aGlzLnByb3BzLmxhbmcsXG4gICAgfSl9YDtcblxuICByZW5kZXIoKSB7XG4gICAgY29uc3Qge1xuICAgICAgb3JpZ2luLFxuICAgICAgc2VhcmNoUGFuZWxUZXh0LFxuICAgICAgc2VhcmNoQ29udGV4dCxcbiAgICAgIGRpc2FibGVBdXRvRm9jdXMsXG4gICAgICB2aWFQb2ludHMsXG4gICAgICBvcmlnaW5Nb2JpbGVMYWJlbCxcbiAgICAgIGRlc3RpbmF0aW9uTW9iaWxlTGFiZWwsXG4gICAgICBmb250V2VpZ2h0cyxcbiAgICAgIG9uRm9jdXNDaGFuZ2UsXG4gICAgICBzaG93U3dhcENvbnRyb2wsXG4gICAgICBzaG93VmlhcG9pbnRDb250cm9sLFxuICAgICAgdCxcbiAgICAgIGxhbmc6IGxuZyxcbiAgICB9ID0gdGhpcy5wcm9wcztcbiAgICBjb25zdCB7IHByaW1hcnkgfSA9IHRoaXMucHJvcHMuY29sb3JzO1xuICAgIGNvbnN0IHsgYWN0aXZlU2xhY2tJbnB1dHMgfSA9IHRoaXMuc3RhdGU7XG4gICAgY29uc3Qgc2xhY2tUaW1lID0gZ2V0U2xhY2tUaW1lT3B0aW9ucyh0KTtcbiAgICBjb25zdCBkZWZhdWx0U2xhY2tUaW1lVmFsdWUgPSAwO1xuICAgIGNvbnN0IGdldFZpYVBvaW50U2xhY2tUaW1lT3JEZWZhdWx0ID0gKFxuICAgICAgdmlhUG9pbnQsXG4gICAgICBkZWZhdWx0VmFsdWUgPSBkZWZhdWx0U2xhY2tUaW1lVmFsdWUsXG4gICAgKSA9PiAodmlhUG9pbnQgJiYgdmlhUG9pbnQubG9jYXRpb25TbGFjaykgfHwgZGVmYXVsdFZhbHVlO1xuICAgIGNvbnN0IGlzVmlhUG9pbnRTbGFja1RpbWVJbnB1dEFjdGl2ZSA9IGluZGV4ID0+XG4gICAgICBhY3RpdmVTbGFja0lucHV0cy5pbmNsdWRlcyhpbmRleCk7XG4gICAgcmV0dXJuIChcbiAgICAgIDxkaXZcbiAgICAgICAgY2xhc3NOYW1lPXtjeChbXG4gICAgICAgICAgc3R5bGVzWydhdXRvc3VnZ2VzdC1wYW5lbCddLFxuICAgICAgICAgIHtcbiAgICAgICAgICAgIHNtYWxsOiB0aGlzLnByb3BzLmlzTW9iaWxlLFxuICAgICAgICAgIH0sXG4gICAgICAgIF0pfVxuICAgICAgICBzdHlsZT17e1xuICAgICAgICAgICctLWNvbG9yJzogcHJpbWFyeSxcbiAgICAgICAgICAnLS1mb250LXdlaWdodC1tZWRpdW0nOiBmb250V2VpZ2h0cy5tZWRpdW0sXG4gICAgICAgIH19XG4gICAgICA+XG4gICAgICAgIHsnICd9XG4gICAgICAgIHtzZWFyY2hQYW5lbFRleHQgPyAoXG4gICAgICAgICAgPGRpdj5cbiAgICAgICAgICAgIDxoMSBjbGFzc05hbWU9e3N0eWxlc1snYXV0b3N1Z2dlc3Qtc2VhcmNocGFuZWwtdGV4dCddfT5cbiAgICAgICAgICAgICAgeycgJ31cbiAgICAgICAgICAgICAge3NlYXJjaFBhbmVsVGV4dH1cbiAgICAgICAgICAgIDwvaDE+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgICkgOiBudWxsfVxuICAgICAgICA8ZGl2IGNsYXNzTmFtZT17c3R5bGVzWydvcmlnaW4taW5wdXQtY29udGFpbmVyJ119PlxuICAgICAgICAgIDxEVEF1dG9TdWdnZXN0XG4gICAgICAgICAgICBhcHBFbGVtZW50PXt0aGlzLnByb3BzLmFwcEVsZW1lbnR9XG4gICAgICAgICAgICBpY29uPVwib3JpZ2luRWxsaXBzZVwiXG4gICAgICAgICAgICBpZD1cIm9yaWdpblwiXG4gICAgICAgICAgICBhdXRvRm9jdXM9e1xuICAgICAgICAgICAgICBkaXNhYmxlQXV0b0ZvY3VzID09PSB0cnVlXG4gICAgICAgICAgICAgICAgPyBmYWxzZVxuICAgICAgICAgICAgICAgIDogIXRoaXMucHJvcHMuaXNNb2JpbGUgJiYgIW9yaWdpbj8ubGF0XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBzdG9yZVJlZj17dGhpcy5zdG9yZVJlZmVyZW5jZX1cbiAgICAgICAgICAgIHJlZlBvaW50PXt0aGlzLnByb3BzLnJlZlBvaW50fVxuICAgICAgICAgICAgY2xhc3NOYW1lPXtnZXRMb2NhdGlvblR5cGUob3JpZ2luKX1cbiAgICAgICAgICAgIHBsYWNlaG9sZGVyPXt0aGlzLnByb3BzLm9yaWdpblBsYWNlSG9sZGVyfVxuICAgICAgICAgICAgdmFsdWU9e3ZhbHVlKG9yaWdpbil9XG4gICAgICAgICAgICBzZWFyY2hDb250ZXh0PXtzZWFyY2hDb250ZXh0fVxuICAgICAgICAgICAgZ2V0QXV0b1N1Z2dlc3RJY29ucz17dGhpcy5wcm9wcy5nZXRBdXRvU3VnZ2VzdEljb25zfVxuICAgICAgICAgICAgb25TZWxlY3Q9e3RoaXMucHJvcHMub25TZWxlY3R9XG4gICAgICAgICAgICBvbkNsZWFyPXt0aGlzLnByb3BzLm9uQ2xlYXJ9XG4gICAgICAgICAgICBmb2N1c0NoYW5nZT17b25Gb2N1c0NoYW5nZSB8fCB0aGlzLmhhbmRsZUZvY3VzQ2hhbmdlfVxuICAgICAgICAgICAgbGFuZz17dGhpcy5wcm9wcy5sYW5nfVxuICAgICAgICAgICAgc291cmNlcz17dGhpcy5wcm9wcy5zb3VyY2VzfVxuICAgICAgICAgICAgdGFyZ2V0cz17dGhpcy5wcm9wcy50YXJnZXRzfVxuICAgICAgICAgICAgZmlsdGVyUmVzdWx0cz17dGhpcy5wcm9wcy5maWx0ZXJSZXN1bHRzfVxuICAgICAgICAgICAgaXNNb2JpbGU9e3RoaXMucHJvcHMuaXNNb2JpbGV9XG4gICAgICAgICAgICBjb2xvcnM9e3RoaXMucHJvcHMuY29sb3JzfVxuICAgICAgICAgICAgbW9iaWxlTGFiZWw9e29yaWdpbk1vYmlsZUxhYmVsfVxuICAgICAgICAgICAgZm9udFdlaWdodHM9e3RoaXMucHJvcHMuZm9udFdlaWdodHN9XG4gICAgICAgICAgICBtb2RlU2V0PXt0aGlzLnByb3BzLm1vZGVTZXR9XG4gICAgICAgICAgICBzaG93U2Nyb2xsPXt0aGlzLnByb3BzLnNob3dTY3JvbGx9XG4gICAgICAgICAgICBpc0VtYmVkZGVkPXt0aGlzLnByb3BzLmlzRW1iZWRkZWR9XG4gICAgICAgICAgLz5cbiAgICAgICAgICB7KHNob3dTd2FwQ29udHJvbCB8fCBzaG93VmlhcG9pbnRDb250cm9sKSAmJiAoXG4gICAgICAgICAgICA8SXRpbmVyYXJ5U2VhcmNoQ29udHJvbFxuICAgICAgICAgICAgICBjbGFzc05hbWU9e3N0eWxlcy5vcHBvc2l0ZX1cbiAgICAgICAgICAgICAgZW5hYmxlZD17c2hvd1N3YXBDb250cm9sfVxuICAgICAgICAgICAgICBvbkNsaWNrPXsoKSA9PiB0aGlzLmhhbmRsZVN3YXBPcmRlckNsaWNrKCl9XG4gICAgICAgICAgICAgIG9uS2V5UHJlc3M9e2UgPT5cbiAgICAgICAgICAgICAgICBpc0tleWJvYXJkU2VsZWN0aW9uRXZlbnQoZSkgJiYgdGhpcy5oYW5kbGVTd2FwT3JkZXJDbGljaygpXG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgYXJpYS1sYWJlbD17dCgnc3dhcC1vcmRlci1idXR0b24tbGFiZWwnLCB7IGxuZyB9KX1cbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgPEljb24gaW1nPVwib3Bwb3NpdGVcIiBjb2xvcj17cHJpbWFyeX0gLz5cbiAgICAgICAgICAgIDwvSXRpbmVyYXJ5U2VhcmNoQ29udHJvbD5cbiAgICAgICAgICApfVxuICAgICAgICA8L2Rpdj5cbiAgICAgICAge3ZpYVBvaW50cy5sZW5ndGggPT09IDAgJiYgKFxuICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPXtzdHlsZXNbJ3JlY3RhbmdsZS1jb250YWluZXInXX0+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT17c3R5bGVzLnJlY3RhbmdsZX0gLz5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgKX1cbiAgICAgICAgPFJlYWN0U29ydGFibGVcbiAgICAgICAgICBjbGFzc05hbWU9e3N0eWxlc1sndmlhcG9pbnRzLWNvbnRhaW5lciddfVxuICAgICAgICAgIGxpc3Q9e3ZpYVBvaW50c31cbiAgICAgICAgICBoYW5kbGU9e2AuJHtzdHlsZXNbJ3ZpYXBvaW50LWJlZm9yZSddfWB9XG4gICAgICAgICAgYW5pbWF0aW9uPXsyMDB9XG4gICAgICAgICAgZGlzYWJsZWQ9e3ZpYVBvaW50cy5sZW5ndGggPD0gMX1cbiAgICAgICAgICBzZXRMaXN0PXtpdGVtcyA9PiB7XG4gICAgICAgICAgICBjb25zdCBuZXdWaWFQb2ludHMgPSBpdGVtcy5maWx0ZXIodnAgPT4gIWlzVmlhUG9pbnRFbXB0eSh2cCkpO1xuICAgICAgICAgICAgaWYgKG5ld1ZpYVBvaW50cy5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgICAgIHRoaXMucHJvcHMudXBkYXRlVmlhUG9pbnRzKG5ld1ZpYVBvaW50cyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfX1cbiAgICAgICAgPlxuICAgICAgICAgIHt2aWFQb2ludHMubWFwKChvLCBpKSA9PiAoXG4gICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgIGNsYXNzTmFtZT17Y3goc3R5bGVzWyd2aWFwb2ludC1jb250YWluZXInXSl9XG4gICAgICAgICAgICAgIGtleT17YHZpYXBvaW50LSR7aX1gfSAvLyBlc2xpbnQtZGlzYWJsZS1saW5lXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPXtzdHlsZXNbJ2xpZ2h0LWdyYXktYmFja2dyb3VuZCddfT5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT17c3R5bGVzLnJvd30+XG4gICAgICAgICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZT17c3R5bGVzWyd2aWFwb2ludC1iZWZvcmUnXX1cbiAgICAgICAgICAgICAgICAgICAgc3R5bGU9e3ZpYVBvaW50cy5sZW5ndGggPiAxID8geyBjdXJzb3I6ICdtb3ZlJyB9IDoge319XG4gICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgIHt2aWFQb2ludHMubGVuZ3RoID4gMSAmJiAoXG4gICAgICAgICAgICAgICAgICAgICAgPEljb24gaW1nPVwiZWxsaXBzaXNcIiByb3RhdGU9ezkwfSBjb2xvcj17cHJpbWFyeX0gLz5cbiAgICAgICAgICAgICAgICAgICAgKX1cbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgICAgICBjbGFzc05hbWU9e2N4KFxuICAgICAgICAgICAgICAgICAgICAgIGAke3N0eWxlc1sndmlhcG9pbnQtaW5wdXQtY29udGFpbmVyJ119ICR7XG4gICAgICAgICAgICAgICAgICAgICAgICBzdHlsZXNbYHZpYXBvaW50LSR7aSArIDF9YF1cbiAgICAgICAgICAgICAgICAgICAgICB9YCxcbiAgICAgICAgICAgICAgICAgICAgKX1cbiAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgPERUQXV0b1N1Z2dlc3RcbiAgICAgICAgICAgICAgICAgICAgICBhcHBFbGVtZW50PXt0aGlzLnByb3BzLmFwcEVsZW1lbnR9XG4gICAgICAgICAgICAgICAgICAgICAgaWNvbj1cIm1hcE1hcmtlclwiXG4gICAgICAgICAgICAgICAgICAgICAgaWQ9XCJ2aWEtcG9pbnRcIlxuICAgICAgICAgICAgICAgICAgICAgIGFyaWFMYWJlbD17dCgndmlhLXBvaW50LWluZGV4Jywge1xuICAgICAgICAgICAgICAgICAgICAgICAgaW5kZXg6IGkgKyAxLFxuICAgICAgICAgICAgICAgICAgICAgICAgbG5nLFxuICAgICAgICAgICAgICAgICAgICAgIH0pfVxuICAgICAgICAgICAgICAgICAgICAgIGF1dG9Gb2N1cz17XG4gICAgICAgICAgICAgICAgICAgICAgICBkaXNhYmxlQXV0b0ZvY3VzID09PSB0cnVlID8gZmFsc2UgOiAhdGhpcy5wcm9wcy5pc01vYmlsZVxuICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICBwbGFjZWhvbGRlcj1cInZpYS1wb2ludFwiXG4gICAgICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lPVwidmlhcG9pbnRcIlxuICAgICAgICAgICAgICAgICAgICAgIHNlYXJjaENvbnRleHQ9e3NlYXJjaENvbnRleHR9XG4gICAgICAgICAgICAgICAgICAgICAgcmVmUG9pbnQ9e3RoaXMucHJvcHMucmVmUG9pbnR9XG4gICAgICAgICAgICAgICAgICAgICAgdmFsdWU9eyhvICYmIG8uYWRkcmVzcykgfHwgJyd9XG4gICAgICAgICAgICAgICAgICAgICAgb25TZWxlY3Q9e3RoaXMucHJvcHMub25TZWxlY3R9XG4gICAgICAgICAgICAgICAgICAgICAgb25DbGVhcj17dGhpcy5wcm9wcy5vbkNsZWFyfVxuICAgICAgICAgICAgICAgICAgICAgIGhhbmRsZVZpYVBvaW50cz17aXRlbSA9PlxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5oYW5kbGVWaWFQb2ludExvY2F0aW9uU2VsZWN0ZWQoaXRlbSwgaSlcbiAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgbGFuZz17dGhpcy5wcm9wcy5sYW5nfVxuICAgICAgICAgICAgICAgICAgICAgIHNvdXJjZXM9e3RoaXMucHJvcHMuc291cmNlc31cbiAgICAgICAgICAgICAgICAgICAgICB0YXJnZXRzPXt0aGlzLnByb3BzLnRhcmdldHN9XG4gICAgICAgICAgICAgICAgICAgICAgZmlsdGVyUmVzdWx0cz17dGhpcy5wcm9wcy5maWx0ZXJSZXN1bHRzfVxuICAgICAgICAgICAgICAgICAgICAgIGdldEF1dG9TdWdnZXN0SWNvbnM9e3RoaXMucHJvcHMuZ2V0QXV0b1N1Z2dlc3RJY29uc31cbiAgICAgICAgICAgICAgICAgICAgICBpc01vYmlsZT17dGhpcy5wcm9wcy5pc01vYmlsZX1cbiAgICAgICAgICAgICAgICAgICAgICBmb250V2VpZ2h0cz17dGhpcy5wcm9wcy5mb250V2VpZ2h0c31cbiAgICAgICAgICAgICAgICAgICAgICBtb2RlU2V0PXt0aGlzLnByb3BzLm1vZGVTZXR9XG4gICAgICAgICAgICAgICAgICAgICAgY29sb3JzPXt0aGlzLnByb3BzLmNvbG9yc31cbiAgICAgICAgICAgICAgICAgICAgICBzaG93U2Nyb2xsPXt0aGlzLnByb3BzLnNob3dTY3JvbGx9XG4gICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgIHt0aGlzLnByb3BzLnNob3dTbGFja0NvbnRyb2wgJiYgKFxuICAgICAgICAgICAgICAgICAgICA8SXRpbmVyYXJ5U2VhcmNoQ29udHJvbFxuICAgICAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZT17c3R5bGVzWydhZGQtdmlhLXBvaW50LXNsYWNrJ119XG4gICAgICAgICAgICAgICAgICAgICAgZW5hYmxlZD17dGhpcy5wcm9wcy5zaG93VmlhcG9pbnRDb250cm9sfVxuICAgICAgICAgICAgICAgICAgICAgIG9uQ2xpY2s9eygpID0+IHRoaXMuaGFuZGxlVG9nZ2xlVmlhUG9pbnRTbGFja0NsaWNrKGkpfVxuICAgICAgICAgICAgICAgICAgICAgIG9uS2V5UHJlc3M9e2UgPT5cbiAgICAgICAgICAgICAgICAgICAgICAgIGlzS2V5Ym9hcmRTZWxlY3Rpb25FdmVudChlKSAmJlxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5oYW5kbGVUb2dnbGVWaWFQb2ludFNsYWNrQ2xpY2soaSlcbiAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgYXJpYS1sYWJlbD17dChcbiAgICAgICAgICAgICAgICAgICAgICAgIGlzVmlhUG9pbnRTbGFja1RpbWVJbnB1dEFjdGl2ZShpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICA/ICdhZGQtdmlhLWR1cmF0aW9uLWJ1dHRvbi1sYWJlbC1vcGVuJ1xuICAgICAgICAgICAgICAgICAgICAgICAgICA6ICdhZGQtdmlhLWR1cmF0aW9uLWJ1dHRvbi1sYWJlbC1jbG9zZScsXG4gICAgICAgICAgICAgICAgICAgICAgICB7IGluZGV4OiBpICsgMSwgbG5nIH0sXG4gICAgICAgICAgICAgICAgICAgICAgKX1cbiAgICAgICAgICAgICAgICAgICAgICB3aWRlXG4gICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICA8SWNvbiBpbWc9XCJ0aW1lXCIgY29sb3I9e3ByaW1hcnl9IC8+XG4gICAgICAgICAgICAgICAgICAgIDwvSXRpbmVyYXJ5U2VhcmNoQ29udHJvbD5cbiAgICAgICAgICAgICAgICAgICl9XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgeyFpc1ZpYVBvaW50U2xhY2tUaW1lSW5wdXRBY3RpdmUoaSkgJiZcbiAgICAgICAgICAgICAgICAgIHZpYVBvaW50c1tpXSAmJlxuICAgICAgICAgICAgICAgICAgdmlhUG9pbnRzW2ldLmxvY2F0aW9uU2xhY2sgPiAwICYmIChcbiAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPXtzdHlsZXNbJ3ZpYXBvaW50LXNsYWNrLXRpbWUnXX0+e2Ake3QoXG4gICAgICAgICAgICAgICAgICAgICAgJ3ZpYXBvaW50LXNsYWNrLWFtb3VudCcsXG4gICAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgbG5nLFxuICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICl9OiAke3RoaXMuZ2V0U2xhY2tEaXNwbGF5KFxuICAgICAgICAgICAgICAgICAgICAgIHZpYVBvaW50c1tpXS5sb2NhdGlvblNsYWNrLFxuICAgICAgICAgICAgICAgICAgICApfWB9PC9zcGFuPlxuICAgICAgICAgICAgICAgICAgKX1cbiAgICAgICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgICBjbGFzc05hbWU9e2N4KHN0eWxlc1snaW5wdXQtdmlhcG9pbnQtc2xhY2stY29udGFpbmVyJ10sIHtcbiAgICAgICAgICAgICAgICAgICAgY29sbGFwc2VkOiAhaXNWaWFQb2ludFNsYWNrVGltZUlucHV0QWN0aXZlKGkpLFxuICAgICAgICAgICAgICAgICAgfSl9XG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9e3N0eWxlc1snc2VsZWN0LXdyYXBwZXInXX0+XG4gICAgICAgICAgICAgICAgICAgIDxTZWxlY3RcbiAgICAgICAgICAgICAgICAgICAgICBpZD17YHZpYXBvaW50LXNsYWNrLSR7aX1gfVxuICAgICAgICAgICAgICAgICAgICAgIGxhYmVsPXt0KCd2aWFwb2ludC1zbGFjay1hbW91bnQnLCB7IGxuZyB9KX1cbiAgICAgICAgICAgICAgICAgICAgICBvcHRpb25zPXtzbGFja1RpbWV9XG4gICAgICAgICAgICAgICAgICAgICAgdmFsdWU9e2dldFZpYVBvaW50U2xhY2tUaW1lT3JEZWZhdWx0KHZpYVBvaW50c1tpXSl9XG4gICAgICAgICAgICAgICAgICAgICAgdmlhUG9pbnRJbmRleD17aX1cbiAgICAgICAgICAgICAgICAgICAgICBpY29uPXtcbiAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuXG4gICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZT17YCR7c3R5bGVzWydjb21ib2JveC1pY29uJ119ICR7c3R5bGVzWyd0aW1lLWlucHV0LWljb24nXX1gfVxuICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICA8SWNvbiBpbWc9XCJ0aW1lXCIgY29sb3I9e3ByaW1hcnl9IC8+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgIG9uU2xhY2tUaW1lU2VsZWN0ZWQ9e3RoaXMuaGFuZGxlVmlhUG9pbnRTbGFja1RpbWVTZWxlY3RlZH1cbiAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgPEl0aW5lcmFyeVNlYXJjaENvbnRyb2xcbiAgICAgICAgICAgICAgICBjbGFzc05hbWU9e3N0eWxlc1sncmVtb3ZlLXZpYS1wb2ludCddfVxuICAgICAgICAgICAgICAgIGVuYWJsZWQ9e3RoaXMucHJvcHMuc2hvd1ZpYXBvaW50Q29udHJvbH1cbiAgICAgICAgICAgICAgICBvbkNsaWNrPXsoKSA9PiB0aGlzLmhhbmRsZVJlbW92ZVZpYVBvaW50Q2xpY2soaSl9XG4gICAgICAgICAgICAgICAgb25LZXlQcmVzcz17ZSA9PlxuICAgICAgICAgICAgICAgICAgaXNLZXlib2FyZFNlbGVjdGlvbkV2ZW50KGUpICYmXG4gICAgICAgICAgICAgICAgICB0aGlzLmhhbmRsZVJlbW92ZVZpYVBvaW50Q2xpY2soaSlcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgYXJpYS1sYWJlbD17dCgncmVtb3ZlLXZpYS1idXR0b24tbGFiZWwnLCB7XG4gICAgICAgICAgICAgICAgICBpbmRleDogaSArIDEsXG4gICAgICAgICAgICAgICAgICBsbmcsXG4gICAgICAgICAgICAgICAgfSl9XG4gICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICA8SWNvbiBpbWc9XCJ0cmFzaFwiIGNvbG9yPXtwcmltYXJ5fSAvPlxuICAgICAgICAgICAgICA8L0l0aW5lcmFyeVNlYXJjaENvbnRyb2w+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICApKX1cbiAgICAgICAgPC9SZWFjdFNvcnRhYmxlPlxuICAgICAgICA8ZGl2IGNsYXNzTmFtZT17c3R5bGVzWydkZXN0aW5hdGlvbi1pbnB1dC1jb250YWluZXInXX0+XG4gICAgICAgICAgPERUQXV0b1N1Z2dlc3RcbiAgICAgICAgICAgIGFwcEVsZW1lbnQ9e3RoaXMucHJvcHMuYXBwRWxlbWVudH1cbiAgICAgICAgICAgIGljb249XCJtYXBNYXJrZXJcIlxuICAgICAgICAgICAgaWQ9XCJkZXN0aW5hdGlvblwiXG4gICAgICAgICAgICBhdXRvRm9jdXM9e1xuICAgICAgICAgICAgICBkaXNhYmxlQXV0b0ZvY3VzID09PSB0cnVlXG4gICAgICAgICAgICAgICAgPyBmYWxzZVxuICAgICAgICAgICAgICAgIDogIXRoaXMucHJvcHMuaXNNb2JpbGUgJiYgIU51bWJlci5pc05hTihvcmlnaW4/LmxhdClcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHN0b3JlUmVmPXt0aGlzLnN0b3JlUmVmZXJlbmNlfVxuICAgICAgICAgICAgcGxhY2Vob2xkZXI9e3RoaXMucHJvcHMuZGVzdGluYXRpb25QbGFjZUhvbGRlcn1cbiAgICAgICAgICAgIGNsYXNzTmFtZT17Z2V0TG9jYXRpb25UeXBlKHRoaXMucHJvcHMuZGVzdGluYXRpb24pfVxuICAgICAgICAgICAgZ2V0QXV0b1N1Z2dlc3RJY29ucz17dGhpcy5wcm9wcy5nZXRBdXRvU3VnZ2VzdEljb25zfVxuICAgICAgICAgICAgc2VhcmNoQ29udGV4dD17c2VhcmNoQ29udGV4dH1cbiAgICAgICAgICAgIG9uU2VsZWN0PXt0aGlzLnByb3BzLm9uU2VsZWN0fVxuICAgICAgICAgICAgb25DbGVhcj17dGhpcy5wcm9wcy5vbkNsZWFyfVxuICAgICAgICAgICAgcmVmUG9pbnQ9e3RoaXMucHJvcHMucmVmUG9pbnR9XG4gICAgICAgICAgICB2YWx1ZT17dmFsdWUodGhpcy5wcm9wcy5kZXN0aW5hdGlvbil9XG4gICAgICAgICAgICBsYW5nPXt0aGlzLnByb3BzLmxhbmd9XG4gICAgICAgICAgICBzb3VyY2VzPXt0aGlzLnByb3BzLnNvdXJjZXN9XG4gICAgICAgICAgICB0YXJnZXRzPXt0aGlzLnByb3BzLnRhcmdldHN9XG4gICAgICAgICAgICBmaWx0ZXJSZXN1bHRzPXt0aGlzLnByb3BzLmZpbHRlclJlc3VsdHN9XG4gICAgICAgICAgICBpc01vYmlsZT17dGhpcy5wcm9wcy5pc01vYmlsZX1cbiAgICAgICAgICAgIG1vYmlsZUxhYmVsPXtkZXN0aW5hdGlvbk1vYmlsZUxhYmVsfVxuICAgICAgICAgICAgZm9udFdlaWdodHM9e3RoaXMucHJvcHMuZm9udFdlaWdodHN9XG4gICAgICAgICAgICBtb2RlU2V0PXt0aGlzLnByb3BzLm1vZGVTZXR9XG4gICAgICAgICAgICBjb2xvcnM9e3RoaXMucHJvcHMuY29sb3JzfVxuICAgICAgICAgICAgc2hvd1Njcm9sbD17dGhpcy5wcm9wcy5zaG93U2Nyb2xsfVxuICAgICAgICAgICAgaXNFbWJlZGRlZD17dGhpcy5wcm9wcy5pc0VtYmVkZGVkfVxuICAgICAgICAgIC8+XG4gICAgICAgICAgeyhzaG93U3dhcENvbnRyb2wgfHwgc2hvd1ZpYXBvaW50Q29udHJvbCkgJiYgKFxuICAgICAgICAgICAgPEl0aW5lcmFyeVNlYXJjaENvbnRyb2xcbiAgICAgICAgICAgICAgY2xhc3NOYW1lPXtjeChzdHlsZXNbJ2FkZC12aWEtcG9pbnQnXSwgc3R5bGVzLm1vcmUsIHtcbiAgICAgICAgICAgICAgICBjb2xsYXBzZWQ6IHZpYVBvaW50cy5sZW5ndGggPiA0LFxuICAgICAgICAgICAgICB9KX1cbiAgICAgICAgICAgICAgZW5hYmxlZD17c2hvd1ZpYXBvaW50Q29udHJvbCAmJiB2aWFQb2ludHMubGVuZ3RoID09PSAwfVxuICAgICAgICAgICAgICBvbkNsaWNrPXsoKSA9PiB0aGlzLmhhbmRsZUFkZFZpYVBvaW50Q2xpY2soKX1cbiAgICAgICAgICAgICAgb25LZXlQcmVzcz17ZSA9PlxuICAgICAgICAgICAgICAgIGlzS2V5Ym9hcmRTZWxlY3Rpb25FdmVudChlKSAmJiB0aGlzLmhhbmRsZUFkZFZpYVBvaW50Q2xpY2soKVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIGFyaWEtbGFiZWw9e3QoJ2FkZC12aWEtYnV0dG9uLWxhYmVsJywgeyBsbmcgfSl9XG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIDxJY29uXG4gICAgICAgICAgICAgICAgaW1nPVwidmlhcG9pbnRcIlxuICAgICAgICAgICAgICAgIHdpZHRoPXsxLjI1fVxuICAgICAgICAgICAgICAgIGhlaWdodD17MS4zNzV9XG4gICAgICAgICAgICAgICAgY29sb3I9e3ByaW1hcnl9XG4gICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICA8L0l0aW5lcmFyeVNlYXJjaENvbnRyb2w+XG4gICAgICAgICAgKX1cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICApO1xuICB9XG59XG5cbmNvbnN0IERUQXV0b3N1Z2dlc3RQYW5lbFdpdGhUcmFuc2xhdGlvbiA9IHdpdGhUcmFuc2xhdGlvbigpKERUQXV0b3N1Z2dlc3RQYW5lbCk7XG5cbmV4cG9ydCBkZWZhdWx0IHByb3BzID0+IHtcbiAgcmV0dXJuIChcbiAgICA8STE4bmV4dFByb3ZpZGVyIGkxOG49e2kxOG59PlxuICAgICAgPERUQXV0b3N1Z2dlc3RQYW5lbFdpdGhUcmFuc2xhdGlvbiB7Li4ucHJvcHN9IC8+XG4gICAgPC9JMThuZXh0UHJvdmlkZXI+XG4gICk7XG59O1xuIl0sIm5hbWVzIjpbIm9iamVjdFdpdGhvdXRQcm9wZXJ0aWVzTG9vc2UiLCJTZWxlY3QiLCJ2YWx1ZSIsIm9wdGlvbnMiLCJvblNsYWNrVGltZVNlbGVjdGVkIiwidmlhUG9pbnRJbmRleCIsImlkIiwibGFiZWwiLCJpY29uIiwibGFiZWxJZCIsInNlbGVjdGVkSXRlbSIsImZpbmQiLCJvcHRpb24iLCJpc09wZW4iLCJnZXRUb2dnbGVCdXR0b25Qcm9wcyIsImdldE1lbnVQcm9wcyIsImdldEl0ZW1Qcm9wcyIsImdldExhYmVsUHJvcHMiLCJoaWdobGlnaHRlZEluZGV4IiwidXNlU2VsZWN0IiwiaXRlbXMiLCJpdGVtVG9TdHJpbmciLCJpdGVtIiwiZGlzcGxheU5hbWUiLCJvblNlbGVjdGVkSXRlbUNoYW5nZSIsIm5ld0l0ZW0iLCJSZWFjdCIsImNyZWF0ZUVsZW1lbnQiLCJjbGFzc05hbWUiLCJzdHlsZXMiLCJjb250YWluZXIiLCJPYmplY3QiLCJhc3NpZ24iLCJpbnB1dCIsImN4Iiwic3VnZ2VzdGlvbnNDb250YWluZXJPcGVuIiwibWFwIiwiaW5kZXgiLCJrZXkiLCJzdWdnZXN0aW9uIiwic3VnZ2VzdGlvbkhpZ2hsaWdodGVkIiwicHJvY2VzcyIsImVudiIsIk5PREVfRU5WIiwicHJvcFR5cGVzIiwiUHJvcFR5cGVzIiwibnVtYmVyIiwiaXNSZXF1aXJlZCIsImZ1bmMiLCJhcnJheU9mIiwic2hhcGUiLCJzdHJpbmciLCJub2RlIiwidHJhbnNsYXRpb25zIiwiZGUiLCJ0cmFuc2xhdGlvbiIsImVuIiwiZmkiLCJwbCIsInN2IiwiaTE4biIsImNyZWF0ZUluc3RhbmNlIiwiZmFsbGJhY2tMbmciLCJyZXNvdXJjZXMiLCJkZWZhdWx0TlMiLCJyZWFjdCIsInVzZVN1c3BlbnNlIiwiaW5pdCIsImdldEVtcHR5VmlhUG9pbnRQbGFjZUhvbGRlciIsImlzVmlhUG9pbnRFbXB0eSIsInZpYVBvaW50IiwidW5kZWZpbmVkIiwiaXNFbXB0eSIsImtleXMiLCJsZW5ndGgiLCJpbmNsdWRlcyIsIkl0aW5lcmFyeVNlYXJjaENvbnRyb2wiLCJfcmVmIiwiY2hpbGRyZW4iLCJlbmFibGVkIiwib25DbGljayIsIm9uS2V5UHJlc3MiLCJ3aWRlIiwicmVzdCIsIl9vYmplY3RXaXRob3V0UHJvcGVydGllcyIsIl9leGNsdWRlZCIsInN0eWxlIiwicm9sZSIsInRhYkluZGV4IiwidXBkYXRlVmlhUG9pbnRTbGFjayIsImFjdGl2ZVZpYVBvaW50U2xhY2tzIiwidXBkYXRlZFZpYVBvaW50SW5kZXgiLCJ2aWFQb2ludFJlbW92ZWQiLCJmb3VuZEF0SW5kZXgiLCJpbmRleE9mIiwic3BsaWNlIiwiaXNLZXlib2FyZFNlbGVjdGlvbkV2ZW50IiwiZXZlbnQiLCJzcGFjZSIsImVudGVyIiwid2hpY2giLCJrZXlDb2RlIiwiY29uY2F0IiwicHJldmVudERlZmF1bHQiLCJsb2NhdGlvbiIsImFkZHJlc3MiLCJncHMiLCJyZWFkeSIsImdldExvY2F0aW9uVHlwZSIsImdldFNsYWNrVGltZU9wdGlvbnMiLCJ0IiwidGltZU9wdGlvbnMiLCJpIiwidmFsdWVJbk1pbnV0ZXMiLCJwdXNoIiwiYm9vbCIsImRlZmF1bHRQcm9wcyIsImxvY2F0aW9uU2hhcGUiLCJsYXQiLCJsb24iLCJsb2NhdGlvblNsYWNrIiwiRFRBdXRvc3VnZ2VzdFBhbmVsIiwiQ29tcG9uZW50IiwiY29uc3RydWN0b3IiLCJwcm9wcyIsIl9kZWZpbmVQcm9wZXJ0eSIsInJlZiIsInNldFN0YXRlIiwicHJldlN0YXRlIiwicmVmcyIsImRlc3RpbmF0aW9uIiwic3RhdGUiLCJmb2N1cyIsInZpYVBvaW50cyIsInVwZGF0ZVZpYVBvaW50cyIsImZpbHRlciIsInZwIiwiYWN0aXZlU2xhY2tJbnB1dHMiLCJzbGFja1RpbWVJblNlY29uZHMiLCJhZGRBbmFseXRpY3NFdmVudCIsImFjdGlvbiIsImNhdGVnb3J5IiwibmFtZSIsIk51bWJlciIsInBhcnNlSW50IiwidmlhUG9pbnRMb2NhdGlvbiIsImhhbmRsZVZpYVBvaW50TG9jYXRpb25TZWxlY3RlZCIsInJldmVyc2UiLCJzd2FwT3JkZXIiLCJzbGFja0luU2Vjb25kcyIsImxuZyIsImxhbmciLCJyZW5kZXIiLCJvcmlnaW4iLCJzZWFyY2hQYW5lbFRleHQiLCJzZWFyY2hDb250ZXh0IiwiZGlzYWJsZUF1dG9Gb2N1cyIsIm9yaWdpbk1vYmlsZUxhYmVsIiwiZGVzdGluYXRpb25Nb2JpbGVMYWJlbCIsImZvbnRXZWlnaHRzIiwib25Gb2N1c0NoYW5nZSIsInNob3dTd2FwQ29udHJvbCIsInNob3dWaWFwb2ludENvbnRyb2wiLCJwcmltYXJ5IiwiY29sb3JzIiwic2xhY2tUaW1lIiwiZGVmYXVsdFNsYWNrVGltZVZhbHVlIiwiZ2V0VmlhUG9pbnRTbGFja1RpbWVPckRlZmF1bHQiLCJkZWZhdWx0VmFsdWUiLCJpc1ZpYVBvaW50U2xhY2tUaW1lSW5wdXRBY3RpdmUiLCJpc01vYmlsZSIsIm1lZGl1bSIsIkRUQXV0b1N1Z2dlc3QiLCJhcHBFbGVtZW50IiwiYXV0b0ZvY3VzIiwic3RvcmVSZWYiLCJzdG9yZVJlZmVyZW5jZSIsInJlZlBvaW50IiwicGxhY2Vob2xkZXIiLCJvcmlnaW5QbGFjZUhvbGRlciIsImdldEF1dG9TdWdnZXN0SWNvbnMiLCJvblNlbGVjdCIsIm9uQ2xlYXIiLCJmb2N1c0NoYW5nZSIsImhhbmRsZUZvY3VzQ2hhbmdlIiwic291cmNlcyIsInRhcmdldHMiLCJmaWx0ZXJSZXN1bHRzIiwibW9iaWxlTGFiZWwiLCJtb2RlU2V0Iiwic2hvd1Njcm9sbCIsImlzRW1iZWRkZWQiLCJvcHBvc2l0ZSIsImhhbmRsZVN3YXBPcmRlckNsaWNrIiwiZSIsIkljb24iLCJpbWciLCJjb2xvciIsInJlY3RhbmdsZSIsIlJlYWN0U29ydGFibGUiLCJsaXN0IiwiaGFuZGxlIiwiYW5pbWF0aW9uIiwiZGlzYWJsZWQiLCJzZXRMaXN0IiwibmV3VmlhUG9pbnRzIiwibyIsInJvdyIsImN1cnNvciIsInJvdGF0ZSIsImFyaWFMYWJlbCIsImhhbmRsZVZpYVBvaW50cyIsInNob3dTbGFja0NvbnRyb2wiLCJoYW5kbGVUb2dnbGVWaWFQb2ludFNsYWNrQ2xpY2siLCJnZXRTbGFja0Rpc3BsYXkiLCJoYW5kbGVWaWFQb2ludFNsYWNrVGltZVNlbGVjdGVkIiwiaGFuZGxlUmVtb3ZlVmlhUG9pbnRDbGljayIsImlzTmFOIiwiZGVzdGluYXRpb25QbGFjZUhvbGRlciIsIm1vcmUiLCJoYW5kbGVBZGRWaWFQb2ludENsaWNrIiwid2lkdGgiLCJoZWlnaHQiLCJkZWZhdWx0Q29sb3JzIiwiVVJMX1BFTElBUyIsIm9iamVjdE9mIiwiRFRBdXRvc3VnZ2VzdFBhbmVsV2l0aFRyYW5zbGF0aW9uIiwid2l0aFRyYW5zbGF0aW9uIiwiSTE4bmV4dFByb3ZpZGVyIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7RUFBQSxTQUFTLE9BQU8sQ0FBQyxDQUFDLEVBQUU7RUFDcEIsRUFBRSx5QkFBeUI7O0VBRTNCLEVBQUUsT0FBTyxPQUFPLEdBQUcsVUFBVSxJQUFJLE9BQU8sTUFBTSxJQUFJLFFBQVEsSUFBSSxPQUFPLE1BQU0sQ0FBQyxRQUFRLEdBQUcsVUFBVSxDQUFDLEVBQUU7RUFDcEcsSUFBSSxPQUFPLE9BQU8sQ0FBQztFQUNuQixFQUFFLENBQUMsR0FBRyxVQUFVLENBQUMsRUFBRTtFQUNuQixJQUFJLE9BQU8sQ0FBQyxJQUFJLFVBQVUsSUFBSSxPQUFPLE1BQU0sSUFBSSxDQUFDLENBQUMsV0FBVyxLQUFLLE1BQU0sSUFBSSxDQUFDLEtBQUssTUFBTSxDQUFDLFNBQVMsR0FBRyxRQUFRLEdBQUcsT0FBTyxDQUFDO0VBQ3ZILEVBQUUsQ0FBQyxFQUFFLE9BQU8sQ0FBQyxDQUFDLENBQUM7RUFDZjs7RUNQQSxTQUFTLFdBQVcsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFO0VBQzNCLEVBQUUsSUFBSSxRQUFRLElBQUksT0FBTyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxFQUFFLE9BQU8sQ0FBQztFQUM1QyxFQUFFLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxNQUFNLENBQUMsV0FBVyxDQUFDO0VBQy9CLEVBQUUsSUFBSSxNQUFNLEtBQUssQ0FBQyxFQUFFO0VBQ3BCLElBQUksSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLEVBQUUsQ0FBYyxDQUFDO0VBQ3JDLElBQUksSUFBSSxRQUFRLElBQUksT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUFFLE9BQU8sQ0FBQztFQUN4QyxJQUFJLE1BQU0sSUFBSSxTQUFTLENBQUMsOENBQThDLENBQUM7RUFDdkUsRUFBRTtFQUNGLEVBQUUsT0FBTyxDQUFDLFFBQVEsS0FBSyxDQUFDLEdBQUcsTUFBTSxHQUFHLE1BQU0sRUFBRSxDQUFDLENBQUM7RUFDOUM7O0VDUkEsU0FBUyxhQUFhLENBQUMsQ0FBQyxFQUFFO0VBQzFCLEVBQUUsSUFBSSxDQUFDLEdBQUcsV0FBVyxDQUFDLENBQUMsRUFBRSxRQUFRLENBQUM7RUFDbEMsRUFBRSxPQUFPLFFBQVEsSUFBSSxPQUFPLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsR0FBRyxFQUFFO0VBQzVDOztFQ0pBLFNBQVMsZUFBZSxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFO0VBQ2xDLEVBQUUsT0FBTyxDQUFDLENBQUMsR0FBRyxhQUFhLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxHQUFHLE1BQU0sQ0FBQyxjQUFjLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRTtFQUNuRSxJQUFJLEtBQUssRUFBRSxDQUFDO0VBQ1osSUFBSSxVQUFVLEVBQUUsSUFBRTtFQUNsQixJQUFJLFlBQVksRUFBRSxJQUFFO0VBQ3BCLElBQUksUUFBUSxFQUFFO0VBQ2QsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDO0VBQ2xCOztFQ1JBLFNBQVMsNkJBQTZCLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRTtFQUM3QyxFQUFFLElBQUksSUFBSSxJQUFJLENBQUMsRUFBRSxPQUFPLEVBQUU7RUFDMUIsRUFBRSxJQUFJLENBQUMsR0FBRyxFQUFFO0VBQ1osRUFBRSxLQUFLLElBQUksQ0FBQyxJQUFJLENBQUMsRUFBRSxJQUFJLEVBQUUsQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBRTtFQUNyRCxJQUFJLElBQUksRUFBRSxLQUFLLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEVBQUU7RUFDN0IsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQztFQUNmLEVBQUU7RUFDRixFQUFFLE9BQU8sQ0FBQztFQUNWOztFQ1BBLFNBQVMsd0JBQXdCLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRTtFQUN4QyxFQUFFLElBQUksSUFBSSxJQUFJLENBQUMsRUFBRSxPQUFPLEVBQUU7RUFDMUIsRUFBRSxJQUFJLENBQUM7RUFDUCxJQUFJLENBQUM7RUFDTCxJQUFJLENBQUMsR0FBR0EsNkJBQTRCLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQztFQUMxQyxFQUFFLElBQUksTUFBTSxDQUFDLHFCQUFxQixFQUFFO0VBQ3BDLElBQUksSUFBSSxDQUFDLEdBQUcsTUFBTSxDQUFDLHFCQUFxQixDQUFDLENBQUMsQ0FBQztFQUMzQyxJQUFJLEtBQUssQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsS0FBSyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxvQkFBb0IsQ0FBQyxJQUFJLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7RUFDdkgsRUFBRTtFQUNGLEVBQUUsT0FBTyxDQUFDO0VBQ1Y7O0VDWEEsU0FBUyxXQUFXLENBQUMsR0FBRyxFQUFFLEdBQUcsRUFBRTtFQUMvQixFQUFFLEtBQUssR0FBRyxLQUFLLE1BQU0sR0FBRyxHQUFHLEdBQUcsRUFBRTtFQUNoQyxFQUFFLElBQUksUUFBUSxHQUFHLEdBQUcsQ0FBQyxRQUFROztFQUU3QixFQUFFLElBQUksQ0FBQyxHQUFHLElBQUksT0FBTyxRQUFRLEtBQUssV0FBVyxFQUFFLEVBQUUsT0FBTyxDQUFDOztFQUV6RCxFQUFFLElBQUksSUFBSSxHQUFHLFFBQVEsQ0FBQyxJQUFJLElBQUksUUFBUSxDQUFDLG9CQUFvQixDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQztFQUN0RSxFQUFFLElBQUksS0FBSyxHQUFHLFFBQVEsQ0FBQyxhQUFhLENBQUMsT0FBTyxDQUFDO0VBQzdDLEVBQUUsS0FBSyxDQUFDLElBQUksR0FBRyxVQUFVOztFQUV6QixFQUFFLElBQUksUUFBUSxLQUFLLEtBQUssRUFBRTtFQUMxQixJQUFJLElBQUksSUFBSSxDQUFDLFVBQVUsRUFBRTtFQUN6QixNQUFNLElBQUksQ0FBQyxZQUFZLENBQUMsS0FBSyxFQUFFLElBQUksQ0FBQyxVQUFVLENBQUM7RUFDL0MsSUFBSSxDQUFDLE1BQU07RUFDWCxNQUFNLElBQUksQ0FBQyxXQUFXLENBQUMsS0FBSyxDQUFDO0VBQzdCLElBQUk7RUFDSixFQUFFLENBQUMsTUFBTTtFQUNULElBQUksSUFBSSxDQUFDLFdBQVcsQ0FBQyxLQUFLLENBQUM7RUFDM0IsRUFBRTs7RUFFRixFQUFFLElBQUksS0FBSyxDQUFDLFVBQVUsRUFBRTtFQUN4QixJQUFJLEtBQUssQ0FBQyxVQUFVLENBQUMsT0FBTyxHQUFHLEdBQUc7RUFDbEMsRUFBRSxDQUFDLE1BQU07RUFDVCxJQUFJLEtBQUssQ0FBQyxXQUFXLENBQUMsUUFBUSxDQUFDLGNBQWMsQ0FBQyxHQUFHLENBQUMsQ0FBQztFQUNuRCxFQUFFO0VBQ0Y7Ozs7OztFQ25CQSxNQUFNQyxNQUFNLEdBQUdBLENBQUM7SUFDZEMsS0FBSztJQUNMQyxPQUFPO0lBQ1BDLG1CQUFtQjtJQUNuQkMsYUFBYTtJQUNiQyxFQUFFO0lBQ0ZDLEtBQUs7RUFDTEMsRUFBQUE7RUFDRixDQUFDLEtBQUs7RUFDSixFQUFBLE1BQU1DLE9BQU8sR0FBRyxDQUFBLEVBQUdILEVBQUUsQ0FBQSxNQUFBLENBQVE7RUFDN0IsRUFBQSxNQUFNSSxZQUFZLEdBQUdQLE9BQU8sQ0FBQ1EsSUFBSSxDQUFDQyxNQUFNLElBQUlBLE1BQU0sQ0FBQ1YsS0FBSyxLQUFLQSxLQUFLLENBQUM7SUFFbkUsTUFBTTtNQUNKVyxNQUFNO01BQ05DLG9CQUFvQjtNQUNwQkMsWUFBWTtNQUNaQyxZQUFZO01BQ1pDLGFBQWE7RUFDYkMsSUFBQUE7S0FDRCxHQUFHQyxtQkFBUyxDQUFDO01BQ1pULFlBQVk7RUFDWlUsSUFBQUEsS0FBSyxFQUFFakIsT0FBTztNQUNkTSxPQUFPO01BQ1BILEVBQUU7RUFDRmUsSUFBQUEsWUFBWSxFQUFFQyxJQUFJLElBQUlBLElBQUksQ0FBQ0MsV0FBVztFQUN0Q0MsSUFBQUEsb0JBQW9CLEVBQUVBLENBQUM7RUFBRWQsTUFBQUEsWUFBWSxFQUFFZTtFQUFRLEtBQUMsS0FBSztFQUNuRHJCLE1BQUFBLG1CQUFtQixDQUFDcUIsT0FBTyxDQUFDdkIsS0FBSyxFQUFFRyxhQUFhLENBQUM7RUFDbkQsSUFBQTtFQUNGLEdBQUMsQ0FBQztJQUVGLG9CQUNFcUIsc0JBQUEsQ0FBQUMsYUFBQSxDQUFBLEtBQUEsRUFBQTtNQUFLQyxTQUFTLEVBQUVDLFFBQU0sQ0FBQyxvQkFBb0I7S0FBRSxlQUMzQ0gsc0JBQUEsQ0FBQUMsYUFBQSxDQUFBLEtBQUEsRUFBQTtNQUFLQyxTQUFTLEVBQUVDLFFBQU0sQ0FBQ0M7S0FBVSxlQUMvQkosc0JBQUEsQ0FBQUMsYUFBQSxDQUFBLEtBQUEsRUFBU2Isb0JBQW9CLEVBQUUsZUFDN0JZLHNCQUFBLENBQUFDLGFBQUEsQ0FBQSxNQUFBLEVBQUE7TUFBTUMsU0FBUyxFQUFFQyxRQUFNLENBQUMsYUFBYTtLQUFFLGVBQ3JDSCxzQkFBQSxDQUFBQyxhQUFBLENBQUEsT0FBQSxFQUFBSSxNQUFBLENBQUFDLE1BQUEsQ0FBQSxFQUFBLEVBQVdmLGFBQWEsRUFBRSxFQUFBO01BQUVXLFNBQVMsRUFBRUMsUUFBTSxDQUFDLGdCQUFnQjtFQUFFLEdBQUEsQ0FBQSxFQUM3RHRCLEtBQ0ksQ0FBQyxlQUNSbUIsc0JBQUEsQ0FBQUMsYUFBQSxDQUFBLEtBQUEsRUFBQTtNQUFLQyxTQUFTLEVBQUVDLFFBQU0sQ0FBQ0k7S0FBTSxlQUMzQlAsc0JBQUEsQ0FBQUMsYUFBQSxDQUFBLE1BQUEsRUFBQSxJQUFBLEVBQU9qQixZQUFZLENBQUNhLFdBQWtCLENBQ25DLENBQ0QsQ0FBQyxFQUNOZixJQUNFLENBQUMsZUFDTmtCLHNCQUFBLENBQUFDLGFBQUEsQ0FBQSxJQUFBLEVBQUFJLE1BQUEsQ0FBQUMsTUFBQSxDQUFBO01BQ0VKLFNBQVMsRUFBRU0sbUJBQUUsQ0FBRUwsUUFBTSxDQUFDTSx3QkFBd0IsRUFBRSxDQUFDdEIsTUFBTSxJQUFJLFFBQVM7S0FBRSxFQUNsRUUsWUFBWSxFQUFFLENBQUEsRUFFakJGLE1BQU0sSUFDTFYsT0FBTyxDQUFDaUMsR0FBRyxDQUFDLENBQUN4QixNQUFNLEVBQUV5QixLQUFLLGtCQUN4Qlgsc0JBQUEsQ0FBQUMsYUFBQSxDQUFBLElBQUEsRUFBQUksTUFBQSxDQUFBQyxNQUFBLENBQUE7TUFDRU0sR0FBRyxFQUFFMUIsTUFBTSxDQUFDVixLQUFNO0VBQ2xCMEIsSUFBQUEsU0FBUyxFQUFFTSxtQkFBRSxDQUNYTCxRQUFNLENBQUNVLFVBQVUsRUFDakJGLEtBQUssS0FBS25CLGdCQUFnQixJQUFJVyxRQUFNLENBQUNXLHFCQUN0QztFQUFFLEdBQUEsRUFDQ3hCLFlBQVksQ0FBQztFQUFFcUIsSUFBQUE7RUFBTSxHQUFDLENBQUMsQ0FBQSxlQUUzQlgsc0JBQUEsQ0FBQUMsYUFBQSxDQUFBLE1BQUEsRUFBQSxJQUFBLEVBQU9mLE1BQU0sQ0FBQ1csV0FBa0IsQ0FDOUIsQ0FDTCxDQUNELENBQ0QsQ0FDRixDQUFDO0VBRVYsQ0FBQztFQUVEa0IsT0FBQSxDQUFBQyxHQUFBLENBQUFDLFFBQUEsb0JBQUExQyxNQUFNLENBQUMyQyxTQUFTLEdBQUc7RUFDakIxQyxFQUFBQSxLQUFLLEVBQUUyQywwQkFBUyxDQUFDQyxNQUFNLENBQUNDLFVBQVU7RUFDbEMzQyxFQUFBQSxtQkFBbUIsRUFBRXlDLDBCQUFTLENBQUNHLElBQUksQ0FBQ0QsVUFBVTtJQUM5QzVDLE9BQU8sRUFBRTBDLDBCQUFTLENBQUNJLE9BQU8sQ0FDeEJKLDBCQUFTLENBQUNLLEtBQUssQ0FBQztFQUNkM0IsSUFBQUEsV0FBVyxFQUFFc0IsMEJBQVMsQ0FBQ00sTUFBTSxDQUFDSixVQUFVO0VBQ3hDN0MsSUFBQUEsS0FBSyxFQUFFMkMsMEJBQVMsQ0FBQ0MsTUFBTSxDQUFDQztFQUMxQixHQUFDLENBQUMsQ0FBQ0EsVUFDTCxDQUFDLENBQUNBLFVBQVU7RUFDWnpDLEVBQUFBLEVBQUUsRUFBRXVDLDBCQUFTLENBQUNNLE1BQU0sQ0FBQ0osVUFBVTtFQUMvQnhDLEVBQUFBLEtBQUssRUFBRXNDLDBCQUFTLENBQUNPLElBQUksQ0FBQ0wsVUFBVTtFQUNoQ3ZDLEVBQUFBLElBQUksRUFBRXFDLDBCQUFTLENBQUNPLElBQUksQ0FBQ0wsVUFBVTtFQUMvQjFDLEVBQUFBLGFBQWEsRUFBRXdDLDBCQUFTLENBQUNDLE1BQU0sQ0FBQ0M7RUFDbEMsQ0FBQyxHQUFBLE1BQUE7O0VDdEZELE1BQU1NLFlBQVksR0FBRztFQUNuQkMsRUFBQUEsRUFBRSxFQUFFO0VBQ0ZDLElBQUFBLFdBQVcsRUFBRTtFQUNYLE1BQUEsc0JBQXNCLEVBQUUseUJBQXlCO0VBQ2pELE1BQUEsK0JBQStCLEVBQzdCLCtDQUErQztFQUNqRCxNQUFBLHFDQUFxQyxFQUNuQywwREFBMEQ7RUFDNUQsTUFBQSxvQ0FBb0MsRUFDbEMsdURBQXVEO0VBQ3pELE1BQUEsY0FBYyxFQUFFLEtBQUs7RUFDckIsTUFBQSx5QkFBeUIsRUFBRSxpQ0FBaUM7RUFDNUQsTUFBQSx5QkFBeUIsRUFBRSx3QkFBd0I7RUFDbkQsTUFBQSxXQUFXLEVBQUUsY0FBYztFQUMzQixNQUFBLGlCQUFpQixFQUFFLHdCQUF3QjtFQUMzQyxNQUFBLHVCQUF1QixFQUFFO0VBQzNCO0tBQ0Q7RUFDREMsRUFBQUEsRUFBRSxFQUFFO0VBQ0ZELElBQUFBLFdBQVcsRUFBRTtFQUNYLE1BQUEsc0JBQXNCLEVBQUUsZUFBZTtFQUN2QyxNQUFBLCtCQUErQixFQUM3QiwwQ0FBMEM7RUFDNUMsTUFBQSxxQ0FBcUMsRUFDbkMscURBQXFEO0VBQ3ZELE1BQUEsb0NBQW9DLEVBQ2xDLG9EQUFvRDtFQUN0RCxNQUFBLGNBQWMsRUFBRSxLQUFLO0VBQ3JCLE1BQUEseUJBQXlCLEVBQUUsNEJBQTRCO0VBQ3ZELE1BQUEseUJBQXlCLEVBQUUsZ0NBQWdDO0VBQzNELE1BQUEsV0FBVyxFQUFFLFdBQVc7RUFDeEIsTUFBQSxpQkFBaUIsRUFBRSxxQkFBcUI7RUFDeEMsTUFBQSx1QkFBdUIsRUFBRTtFQUMzQjtLQUNEO0VBQ0RFLEVBQUFBLEVBQUUsRUFBRTtFQUNGRixJQUFBQSxXQUFXLEVBQUU7RUFDWCxNQUFBLHNCQUFzQixFQUFFLGlCQUFpQjtFQUN6QyxNQUFBLCtCQUErQixFQUM3QixpREFBaUQ7RUFDbkQsTUFBQSxxQ0FBcUMsRUFDbkMsdURBQXVEO0VBQ3pELE1BQUEsb0NBQW9DLEVBQ2xDLHdEQUF3RDtFQUMxRCxNQUFBLGNBQWMsRUFBRSxLQUFLO0VBQ3JCLE1BQUEseUJBQXlCLEVBQUUsNEJBQTRCO0VBQ3ZELE1BQUEseUJBQXlCLEVBQUUscUNBQXFDO0VBQ2hFLE1BQUEsV0FBVyxFQUFFLFdBQVc7RUFDeEIsTUFBQSxpQkFBaUIsRUFBRSxxQkFBcUI7RUFDeEMsTUFBQSx1QkFBdUIsRUFBRTtFQUMzQjtLQUNEO0VBQ0RHLEVBQUFBLEVBQUUsRUFBRTtFQUNGSCxJQUFBQSxXQUFXLEVBQUU7RUFDWCxNQUFBLHNCQUFzQixFQUFFLHNCQUFzQjtFQUM5QyxNQUFBLCtCQUErQixFQUM3QiwyQ0FBMkM7RUFDN0MsTUFBQSxxQ0FBcUMsRUFDbkMsb0RBQW9EO0VBQ3RELE1BQUEsb0NBQW9DLEVBQ2xDLG1EQUFtRDtFQUNyRCxNQUFBLGNBQWMsRUFBRSxNQUFNO0VBQ3RCLE1BQUEseUJBQXlCLEVBQUUsK0JBQStCO0VBQzFELE1BQUEseUJBQXlCLEVBQUUsdUJBQXVCO0VBQ2xELE1BQUEsV0FBVyxFQUFFLGdCQUFnQjtFQUM3QixNQUFBLGlCQUFpQixFQUFFLDBCQUEwQjtFQUM3QyxNQUFBLHVCQUF1QixFQUFFO0VBQzNCO0tBQ0Q7RUFDREksRUFBQUEsRUFBRSxFQUFFO0VBQ0ZKLElBQUFBLFdBQVcsRUFBRTtFQUNYLE1BQUEsc0JBQXNCLEVBQUUsb0JBQW9CO0VBQzVDLE1BQUEsK0JBQStCLEVBQzdCLCtDQUErQztFQUNqRCxNQUFBLHFDQUFxQyxFQUNuQywwREFBMEQ7RUFDNUQsTUFBQSxvQ0FBb0MsRUFDbEMsMERBQTBEO0VBQzVELE1BQUEsY0FBYyxFQUFFLEtBQUs7RUFDckIsTUFBQSx5QkFBeUIsRUFBRSw0QkFBNEI7RUFDdkQsTUFBQSx5QkFBeUIsRUFBRSwwQ0FBMEM7RUFDckUsTUFBQSxXQUFXLEVBQUUsV0FBVztFQUN4QixNQUFBLGlCQUFpQixFQUFFLHFCQUFxQjtFQUN4QyxNQUFBLHVCQUF1QixFQUFFO0VBQzNCO0VBQ0Y7RUFDRixDQUFDOztFQ25GRCxNQUFNSyxJQUFJLEdBQUdDLHNCQUFjLENBQUM7RUFDMUJDLEVBQUFBLFdBQVcsRUFBRSxJQUFJO0VBQ2pCO0VBQ0FDLEVBQUFBLFNBQVMsRUFBRVYsWUFBWTtFQUN2QlcsRUFBQUEsU0FBUyxFQUFFLGFBQWE7RUFDeEJDLEVBQUFBLEtBQUssRUFBRTtFQUNMQyxJQUFBQSxXQUFXLEVBQUU7RUFDZjtFQUNGLENBQUMsQ0FBQztFQUVGTixJQUFJLENBQUNPLElBQUksRUFBRTs7Ozs7OztRQ0VFQywyQkFBMkIsR0FBR0EsT0FBTyxFQUFFO0VBRXBELE1BQU1DLGVBQWUsR0FBR0MsUUFBUSxJQUFJO0lBQ2xDLElBQUlBLFFBQVEsS0FBS0MsU0FBUyxJQUFJQyx3QkFBTyxDQUFDRixRQUFRLENBQUMsRUFBRTtFQUMvQyxJQUFBLE9BQU8sSUFBSTtFQUNiLEVBQUE7RUFDQSxFQUFBLE1BQU1HLElBQUksR0FBRzFDLE1BQU0sQ0FBQzBDLElBQUksQ0FBQ0gsUUFBUSxDQUFDO0VBQ2xDLEVBQUEsT0FDRUcsSUFBSSxDQUFDQyxNQUFNLEtBQUssQ0FBQyxJQUFLRCxJQUFJLENBQUNDLE1BQU0sS0FBSyxDQUFDLElBQUlELElBQUksQ0FBQ0UsUUFBUSxDQUFDLGVBQWUsQ0FBRTtFQUU5RSxDQUFDO0VBRUQsTUFBTUMsc0JBQXNCLEdBQUdDLElBQUEsSUFBQTtJQUFBLElBQUM7UUFDOUJDLFFBQVE7UUFDUmxELFNBQVM7UUFDVG1ELE9BQU87UUFDUEMsT0FBTztRQUNQQyxVQUFVO0VBQ1ZDLE1BQUFBO0VBRUYsS0FBQyxHQUFBTCxJQUFBO0VBRElNLElBQUFBLElBQUksR0FBQUMsd0JBQUEsQ0FBQVAsSUFBQSxFQUFBUSxTQUFBLENBQUE7SUFBQSxvQkFFUDNELHNCQUFBLENBQUFDLGFBQUEsQ0FBQSxLQUFBLEVBQUE7RUFDRUMsSUFBQUEsU0FBUyxFQUFFQyxNQUFNLENBQUMsMEJBQTBCLENBQUU7RUFDOUN5RCxJQUFBQSxLQUFLLEVBQUU7RUFBRSxNQUFBLFNBQVMsRUFBRUosSUFBSSxHQUFHLE1BQU0sR0FBRztFQUFPO0VBQUUsR0FBQSxFQUU1Q0YsT0FBTyxJQUFJRCxPQUFPLGlCQUNqQnJELHNCQUFBLENBQUFDLGFBQUEsQ0FBQSxLQUFBLEVBQUFJLE1BQUEsQ0FBQUMsTUFBQSxDQUFBLEVBQUEsRUFDTW1ELElBQUksRUFBQTtFQUNSdkQsSUFBQUEsU0FBUyxFQUFFQSxTQUFVO0VBQ3JCb0QsSUFBQUEsT0FBTyxFQUFFQSxPQUFRO0VBQ2pCQyxJQUFBQSxVQUFVLEVBQUVBLFVBQVc7RUFDdkJNLElBQUFBLElBQUksRUFBQyxRQUFRO0VBQ2JDLElBQUFBLFFBQVEsRUFBQztLQUFHLENBQUEsRUFFWFYsUUFDRSxDQUVKLENBQUM7RUFBQSxDQUNQO0VBRUQsTUFBTVcsbUJBQW1CLEdBQUdBLENBQzFCQyxvQkFBb0IsRUFDcEJDLG9CQUFvQixFQUNwQkMsZUFBZSxHQUFHLEtBQUssS0FDcEI7RUFDSCxFQUFBLE1BQU1DLFlBQVksR0FBR0gsb0JBQW9CLENBQUNJLE9BQU8sQ0FBQ0gsb0JBQW9CLENBQUM7RUFDdkUsRUFBQSxJQUFJRSxZQUFZLEdBQUcsRUFBRSxFQUFFO0VBQ3JCSCxJQUFBQSxvQkFBb0IsQ0FBQ0ssTUFBTSxDQUFDRixZQUFZLEVBQUUsQ0FBQyxDQUFDO0VBQzlDLEVBQUE7RUFDQSxFQUFBLE9BQU9ELGVBQWUsR0FDbEJGLG9CQUFvQixDQUFDdEQsR0FBRyxDQUFDbEMsS0FBSyxJQUM1QkEsS0FBSyxHQUFHeUYsb0JBQW9CLEdBQUd6RixLQUFLLEdBQUcsQ0FBQyxHQUFHQSxLQUM3QyxDQUFDLEdBQ0R3RixvQkFBb0I7RUFDMUIsQ0FBQztFQUVELE1BQU1NLHdCQUF3QixHQUFHQyxLQUFLLElBQUk7SUFDeEMsTUFBTUMsS0FBSyxHQUFHLENBQUMsRUFBRSxFQUFFLEdBQUcsRUFBRSxVQUFVLENBQUM7RUFDbkMsRUFBQSxNQUFNQyxLQUFLLEdBQUcsQ0FBQyxFQUFFLEVBQUUsT0FBTyxDQUFDO0VBQzNCLEVBQUEsTUFBTTdELEdBQUcsR0FBSTJELEtBQUssS0FBS0EsS0FBSyxDQUFDM0QsR0FBRyxJQUFJMkQsS0FBSyxDQUFDRyxLQUFLLElBQUlILEtBQUssQ0FBQ0ksT0FBTyxDQUFDLElBQUssRUFBRTtFQUN4RSxFQUFBLElBQUksQ0FBQy9ELEdBQUcsSUFBSSxDQUFDNEQsS0FBSyxDQUFDSSxNQUFNLENBQUNILEtBQUssQ0FBQyxDQUFDeEIsUUFBUSxDQUFDckMsR0FBRyxDQUFDLEVBQUU7RUFDOUMsSUFBQSxPQUFPLEtBQUs7RUFDZCxFQUFBO0lBQ0EyRCxLQUFLLENBQUNNLGNBQWMsRUFBRTtFQUN0QixFQUFBLE9BQU8sSUFBSTtFQUNiLENBQUM7RUFFRCxNQUFNckcsS0FBSyxHQUFHc0csUUFBUSxJQUNuQkEsUUFBUSxJQUFJQSxRQUFRLENBQUNDLE9BQU8sSUFDNUJELFFBQVEsSUFBSUEsUUFBUSxDQUFDRSxHQUFHLElBQUlGLFFBQVEsQ0FBQ0csS0FBSyxJQUFJLG1CQUFvQixJQUNuRSxFQUFFO0VBRUosTUFBTUMsZUFBZSxHQUFHSixRQUFRLElBQzlCQSxRQUFRLElBQUlBLFFBQVEsQ0FBQ0UsR0FBRyxLQUFLLElBQUksR0FBRyxVQUFVLEdBQUcsVUFBVTtFQUU3RCxNQUFNRyxtQkFBbUIsR0FBR0MsQ0FBQyxJQUFJO0lBQy9CLE1BQU1DLFdBQVcsR0FBRyxFQUFFO0lBQ3RCLEtBQUssSUFBSUMsQ0FBQyxHQUFHLENBQUMsRUFBRUEsQ0FBQyxJQUFJLENBQUMsRUFBRUEsQ0FBQyxFQUFFLEVBQUU7RUFDM0IsSUFBQSxNQUFNQyxjQUFjLEdBQUdELENBQUMsR0FBRyxFQUFFO01BQzdCRCxXQUFXLENBQUNHLElBQUksQ0FBQztRQUNmM0YsV0FBVyxFQUFFLEdBQUcwRixjQUFjLENBQUEsQ0FBQSxFQUFJSCxDQUFDLENBQUMsY0FBYyxDQUFDLENBQUEsQ0FBRTtRQUNyRDVHLEtBQUssRUFBRStHLGNBQWMsR0FBRztFQUMxQixLQUFDLENBQUM7RUFDSixFQUFBO0VBQ0EsRUFBQSxPQUFPRixXQUFXO0VBQ3BCLENBQUM7RUFFRHRFLE9BQUEsQ0FBQUMsR0FBQSxDQUFBQyxRQUFBLG9CQUFBaUMsc0JBQXNCLENBQUNoQyxTQUFTLEdBQUc7SUFDakNrQyxRQUFRLEVBQUVqQywwQkFBUyxDQUFDTyxJQUFJO0VBQ3hCeEIsRUFBQUEsU0FBUyxFQUFFaUIsMEJBQVMsQ0FBQ00sTUFBTSxDQUFDSixVQUFVO0VBQ3RDZ0MsRUFBQUEsT0FBTyxFQUFFbEMsMEJBQVMsQ0FBQ3NFLElBQUksQ0FBQ3BFLFVBQVU7RUFDbENpQyxFQUFBQSxPQUFPLEVBQUVuQywwQkFBUyxDQUFDRyxJQUFJLENBQUNELFVBQVU7RUFDbENrQyxFQUFBQSxVQUFVLEVBQUVwQywwQkFBUyxDQUFDRyxJQUFJLENBQUNELFVBQVU7SUFDckNtQyxJQUFJLEVBQUVyQywwQkFBUyxDQUFDc0U7RUFDbEIsQ0FBQyxHQUFBLE1BQUE7RUFFRHZDLHNCQUFzQixDQUFDd0MsWUFBWSxHQUFHO0VBQ3BDdEMsRUFBQUEsUUFBUSxFQUFFUCxTQUFTO0VBQ25CVyxFQUFBQSxJQUFJLEVBQUU7RUFDUixDQUFDOztFQUVEO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOztFQUVBLE1BQU1tQyxhQUFhLEdBQUE1RSxPQUFBLENBQUFDLEdBQUEsQ0FBQUMsUUFBQSxLQUFBLFlBQUEsR0FBR0UsMEJBQVMsQ0FBQ0ssS0FBSyxDQUFDO0lBQ3BDdUQsT0FBTyxFQUFFNUQsMEJBQVMsQ0FBQ00sTUFBTTtJQUN6Qm1FLEdBQUcsRUFBRXpFLDBCQUFTLENBQUNDLE1BQU07SUFDckJ5RSxHQUFHLEVBQUUxRSwwQkFBUyxDQUFDQyxNQUFNO0lBQ3JCMEUsYUFBYSxFQUFFM0UsMEJBQVMsQ0FBQ0M7RUFDM0IsQ0FBQyxDQUFDLEdBQUEsRUFBQTtFQUVGLE1BQU0yRSxrQkFBa0IsU0FBUy9GLHNCQUFLLENBQUNnRyxTQUFTLENBQUM7SUE0RS9DQyxXQUFXQSxDQUFDQyxLQUFLLEVBQUU7TUFDakIsS0FBSyxDQUFDQSxLQUFLLENBQUM7TUFBQ0MsZUFBQSxDQUFBLElBQUEsRUFBQSxnQkFBQSxFQU9FQyxHQUFHLElBQUk7RUFDdEIsTUFBQSxJQUFJLENBQUNDLFFBQVEsQ0FBQ0MsU0FBUyxLQUFLO0VBQUVDLFFBQUFBLElBQUksRUFBRSxDQUFDLEdBQUdELFNBQVMsQ0FBQ0MsSUFBSSxFQUFFSCxHQUFHO0VBQUUsT0FBQyxDQUFDLENBQUM7TUFDbEUsQ0FBQyxDQUFBO0VBQUFELElBQUFBLGVBQUEsNEJBRW1CLE1BQU07UUFDeEIsTUFBTTtFQUFFSyxRQUFBQTtTQUFhLEdBQUcsSUFBSSxDQUFDTixLQUFLO0VBQ2xDLE1BQUEsSUFBSSxDQUFDTSxXQUFXLElBQUksQ0FBQ0EsV0FBVyxDQUFDWixHQUFHLEVBQUU7VUFDcEMsSUFBSSxDQUFDYSxLQUFLLENBQUNGLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQ0csS0FBSyxFQUFFO0VBQzVCLE1BQUE7TUFDRixDQUFDLENBQUE7TUFBQVAsZUFBQSxDQUFBLElBQUEsRUFBQSxpQkFBQSxFQUVpQlEsU0FBUyxJQUFJO0VBQzdCLE1BQUEsSUFBSUEsU0FBUyxDQUFDM0QsTUFBTSxLQUFLLENBQUMsRUFBRTtFQUMxQixRQUFBLElBQUksQ0FBQ2tELEtBQUssQ0FBQ1UsZUFBZSxDQUFDLEVBQUUsQ0FBQztFQUM5QixRQUFBO0VBQ0YsTUFBQTtFQUNBLE1BQUEsSUFBSSxDQUFDVixLQUFLLENBQUNVLGVBQWUsQ0FBQ0QsU0FBUyxDQUFDRSxNQUFNLENBQUNDLEVBQUUsSUFBSSxDQUFDbkUsZUFBZSxDQUFDbUUsRUFBRSxDQUFDLENBQUMsQ0FBQztNQUMxRSxDQUFDLENBQUE7TUFBQVgsZUFBQSxDQUFBLElBQUEsRUFBQSxnQ0FBQSxFQUVnQ3hILGFBQWEsSUFBSTtRQUNoRCxNQUFNO0VBQUVvSSxRQUFBQTtTQUFtQixHQUFHLElBQUksQ0FBQ04sS0FBSztRQUN4QyxJQUFJLENBQUNKLFFBQVEsQ0FBQztVQUNaVSxpQkFBaUIsRUFBRUEsaUJBQWlCLENBQUM5RCxRQUFRLENBQUN0RSxhQUFhLENBQUMsR0FDeERvRixtQkFBbUIsQ0FBQ2dELGlCQUFpQixFQUFFcEksYUFBYSxDQUFDLEdBQ3JEb0ksaUJBQWlCLENBQUNuQyxNQUFNLENBQUMsQ0FBQ2pHLGFBQWEsQ0FBQztFQUM5QyxPQUFDLENBQUM7TUFDSixDQUFDLENBQUE7RUFBQXdILElBQUFBLGVBQUEsQ0FBQSxJQUFBLEVBQUEsaUNBQUEsRUFFaUMsQ0FBQ2Esa0JBQWtCLEVBQUUxQixDQUFDLEtBQUs7RUFDM0QsTUFBQSxJQUFJLElBQUksQ0FBQ1ksS0FBSyxDQUFDZSxpQkFBaUIsRUFBRTtFQUNoQyxRQUFBLElBQUksQ0FBQ2YsS0FBSyxDQUFDZSxpQkFBaUIsQ0FBQztFQUMzQkMsVUFBQUEsTUFBTSxFQUFFLDBCQUEwQjtFQUNsQ0MsVUFBQUEsUUFBUSxFQUFFLG1CQUFtQjtZQUM3QkMsSUFBSSxFQUFFSixrQkFBa0IsR0FBRztFQUM3QixTQUFDLENBQUM7RUFDSixNQUFBO1FBQ0EsTUFBTTtFQUFFTCxRQUFBQTtTQUFXLEdBQUcsSUFBSSxDQUFDVCxLQUFLO0VBQ2hDUyxNQUFBQSxTQUFTLENBQUNyQixDQUFDLENBQUMsQ0FBQ1EsYUFBYSxHQUFHdUIsTUFBTSxDQUFDQyxRQUFRLENBQUNOLGtCQUFrQixFQUFFLEVBQUUsQ0FBQztFQUNwRSxNQUFBLElBQUksQ0FBQ0osZUFBZSxDQUFDRCxTQUFTLENBQUM7TUFDakMsQ0FBQyxDQUFBO0VBQUFSLElBQUFBLGVBQUEsQ0FBQSxJQUFBLEVBQUEsZ0NBQUEsRUFFZ0MsQ0FBQ29CLGdCQUFnQixFQUFFakMsQ0FBQyxLQUFLO1FBQ3hELElBQUksQ0FBQ1ksS0FBSyxDQUFDc0IsOEJBQThCLENBQUNELGdCQUFnQixFQUFFakMsQ0FBQyxDQUFDO01BQ2hFLENBQUMsQ0FBQTtNQUFBYSxlQUFBLENBQUEsSUFBQSxFQUFBLDJCQUFBLEVBRTJCeEgsYUFBYSxJQUFJO0VBQzNDLE1BQUEsSUFBSSxJQUFJLENBQUN1SCxLQUFLLENBQUNlLGlCQUFpQixFQUFFO0VBQ2hDLFFBQUEsSUFBSSxDQUFDZixLQUFLLENBQUNlLGlCQUFpQixDQUFDO0VBQzNCQyxVQUFBQSxNQUFNLEVBQUUsdUJBQXVCO0VBQy9CQyxVQUFBQSxRQUFRLEVBQUUsbUJBQW1CO0VBQzdCQyxVQUFBQSxJQUFJLEVBQUU7RUFDUixTQUFDLENBQUM7RUFDSixNQUFBO1FBQ0EsTUFBTTtFQUFFTCxRQUFBQTtTQUFtQixHQUFHLElBQUksQ0FBQ04sS0FBSztRQUN4QyxNQUFNO0VBQUVFLFFBQUFBO1NBQVcsR0FBRyxJQUFJLENBQUNULEtBQUs7RUFDaENTLE1BQUFBLFNBQVMsQ0FBQ3RDLE1BQU0sQ0FBQzFGLGFBQWEsRUFBRSxDQUFDLENBQUM7UUFDbEMsSUFBSSxDQUFDMEgsUUFBUSxDQUNYO0VBQ0VVLFFBQUFBLGlCQUFpQixFQUFFaEQsbUJBQW1CLENBQ3BDZ0QsaUJBQWlCLEVBQ2pCcEksYUFBYSxFQUNiLElBQ0Y7U0FDRCxFQUNELE1BQU0sSUFBSSxDQUFDaUksZUFBZSxDQUFDRCxTQUFTLENBQ3RDLENBQUM7TUFDSCxDQUFDLENBQUE7RUFBQVIsSUFBQUEsZUFBQSxpQ0FFd0IsTUFBTTtFQUM3QixNQUFBLElBQUksSUFBSSxDQUFDRCxLQUFLLENBQUNlLGlCQUFpQixFQUFFO0VBQ2hDLFFBQUEsSUFBSSxDQUFDZixLQUFLLENBQUNlLGlCQUFpQixDQUFDO0VBQzNCQyxVQUFBQSxNQUFNLEVBQUUsb0JBQW9CO0VBQzVCQyxVQUFBQSxRQUFRLEVBQUUsbUJBQW1CO0VBQzdCQyxVQUFBQSxJQUFJLEVBQUU7RUFDUixTQUFDLENBQUM7RUFDSixNQUFBO1FBQ0EsTUFBTTtFQUFFVCxRQUFBQTtTQUFXLEdBQUcsSUFBSSxDQUFDVCxLQUFLO0VBQ2hDUyxNQUFBQSxTQUFTLENBQUNuQixJQUFJLENBQUM5QywyQkFBMkIsRUFBRSxDQUFDO0VBQzdDO0VBQ0E7RUFDQSxNQUFBLElBQUksQ0FBQzJELFFBQVEsQ0FBQyxJQUFJLENBQUNJLEtBQUssQ0FBQztNQUMzQixDQUFDLENBQUE7RUFBQU4sSUFBQUEsZUFBQSwrQkFFc0IsTUFBTTtFQUMzQixNQUFBLElBQUksSUFBSSxDQUFDRCxLQUFLLENBQUNlLGlCQUFpQixFQUFFO0VBQ2hDLFFBQUEsSUFBSSxDQUFDZixLQUFLLENBQUNlLGlCQUFpQixDQUFDO0VBQzNCQyxVQUFBQSxNQUFNLEVBQUUsb0NBQW9DO0VBQzVDQyxVQUFBQSxRQUFRLEVBQUUsbUJBQW1CO0VBQzdCQyxVQUFBQSxJQUFJLEVBQUU7RUFDUixTQUFDLENBQUM7RUFDSixNQUFBO1FBQ0EsTUFBTTtFQUFFVCxRQUFBQTtTQUFXLEdBQUcsSUFBSSxDQUFDVCxLQUFLO1FBQ2hDUyxTQUFTLENBQUNjLE9BQU8sRUFBRTtFQUNuQixNQUFBLElBQUksQ0FBQ3ZCLEtBQUssQ0FBQ3dCLFNBQVMsRUFBRTtNQUN4QixDQUFDLENBQUE7RUFBQXZCLElBQUFBLGVBQUEsQ0FBQSxJQUFBLEVBQUEsaUJBQUEsRUFFaUJ3QixjQUFjLElBQzlCLENBQUEsRUFBR0EsY0FBYyxHQUFHLEVBQUUsQ0FBQSxDQUFBLEVBQUksSUFBSSxDQUFDekIsS0FBSyxDQUFDZCxDQUFDLENBQUMsY0FBYyxFQUFFO0FBQ3JEd0MsTUFBQUEsR0FBRyxFQUFFLElBQUksQ0FBQzFCLEtBQUssQ0FBQzJCO0FBQ2xCLEtBQUMsQ0FBQyxDQUFBLENBQUUsQ0FBQTtNQXpHSixJQUFJLENBQUNwQixLQUFLLEdBQUc7RUFDWE0sTUFBQUEsaUJBQWlCLEVBQUUsRUFBRTtFQUNyQlIsTUFBQUEsSUFBSSxFQUFFO09BQ1A7RUFDSCxFQUFBO0VBdUdBdUIsRUFBQUEsTUFBTUEsR0FBRztNQUNQLE1BQU07UUFDSkMsTUFBTTtRQUNOQyxlQUFlO1FBQ2ZDLGFBQWE7UUFDYkMsZ0JBQWdCO1FBQ2hCdkIsU0FBUztRQUNUd0IsaUJBQWlCO1FBQ2pCQyxzQkFBc0I7UUFDdEJDLFdBQVc7UUFDWEMsYUFBYTtRQUNiQyxlQUFlO1FBQ2ZDLG1CQUFtQjtRQUNuQnBELENBQUM7RUFDRHlDLE1BQUFBLElBQUksRUFBRUQ7T0FDUCxHQUFHLElBQUksQ0FBQzFCLEtBQUs7TUFDZCxNQUFNO0VBQUV1QyxNQUFBQTtFQUFRLEtBQUMsR0FBRyxJQUFJLENBQUN2QyxLQUFLLENBQUN3QyxNQUFNO01BQ3JDLE1BQU07RUFBRTNCLE1BQUFBO09BQW1CLEdBQUcsSUFBSSxDQUFDTixLQUFLO0VBQ3hDLElBQUEsTUFBTWtDLFNBQVMsR0FBR3hELG1CQUFtQixDQUFDQyxDQUFDLENBQUM7TUFDeEMsTUFBTXdELHFCQUFxQixHQUFHLENBQUM7RUFDL0IsSUFBQSxNQUFNQyw2QkFBNkIsR0FBR0EsQ0FDcENqRyxRQUFRLEVBQ1JrRyxZQUFZLEdBQUdGLHFCQUFxQixLQUNoQ2hHLFFBQVEsSUFBSUEsUUFBUSxDQUFDa0QsYUFBYSxJQUFLZ0QsWUFBWTtNQUN6RCxNQUFNQyw4QkFBOEIsR0FBR3BJLEtBQUssSUFDMUNvRyxpQkFBaUIsQ0FBQzlELFFBQVEsQ0FBQ3RDLEtBQUssQ0FBQztNQUNuQyxvQkFDRVgsc0JBQUEsQ0FBQUMsYUFBQSxDQUFBLEtBQUEsRUFBQTtFQUNFQyxNQUFBQSxTQUFTLEVBQUVNLG1CQUFFLENBQ1hMLE1BQU0sQ0FBQyxtQkFBbUIsQ0FBQyxFQUVsQixJQUFJLENBQUMrRixLQUFLLENBQUM4QyxRQUFRLFdBRTdCLENBQUU7RUFDSHBGLE1BQUFBLEtBQUssRUFBRTtFQUNMLFFBQUEsU0FBUyxFQUFFNkUsT0FBTztVQUNsQixzQkFBc0IsRUFBRUosV0FBVyxDQUFDWTtFQUN0QztPQUFFLEVBRUQsR0FBRyxFQUNIakIsZUFBZSxnQkFDZGhJLHNCQUFBLENBQUFDLGFBQUEsQ0FBQSxLQUFBLEVBQUEsSUFBQSxlQUNFRCxzQkFBQSxDQUFBQyxhQUFBLENBQUEsSUFBQSxFQUFBO1FBQUlDLFNBQVMsRUFBRUMsTUFBTSxDQUFDLDhCQUE4QjtPQUFFLEVBQ25ELEdBQUcsRUFDSDZILGVBQ0MsQ0FDRCxDQUFDLEdBQ0osSUFBSSxlQUNSaEksc0JBQUEsQ0FBQUMsYUFBQSxDQUFBLEtBQUEsRUFBQTtRQUFLQyxTQUFTLEVBQUVDLE1BQU0sQ0FBQyx3QkFBd0I7RUFBRSxLQUFBLGVBQy9DSCxzQkFBQSxDQUFBQyxhQUFBLENBQUNpSiw4QkFBYSxFQUFBO0VBQ1pDLE1BQUFBLFVBQVUsRUFBRSxJQUFJLENBQUNqRCxLQUFLLENBQUNpRCxVQUFXO0VBQ2xDckssTUFBQUEsSUFBSSxFQUFDLGVBQWU7RUFDcEJGLE1BQUFBLEVBQUUsRUFBQyxRQUFRO0VBQ1h3SyxNQUFBQSxTQUFTLEVBQ1BsQixnQkFBZ0IsS0FBSyxJQUFJLEdBQ3JCLEtBQUssR0FDTCxDQUFDLElBQUksQ0FBQ2hDLEtBQUssQ0FBQzhDLFFBQVEsSUFBSSxDQUFDakIsTUFBTSxFQUFFbkMsR0FDdEM7UUFDRHlELFFBQVEsRUFBRSxJQUFJLENBQUNDLGNBQWU7RUFDOUJDLE1BQUFBLFFBQVEsRUFBRSxJQUFJLENBQUNyRCxLQUFLLENBQUNxRCxRQUFTO0VBQzlCckosTUFBQUEsU0FBUyxFQUFFZ0YsZUFBZSxDQUFDNkMsTUFBTSxDQUFFO0VBQ25DeUIsTUFBQUEsV0FBVyxFQUFFLElBQUksQ0FBQ3RELEtBQUssQ0FBQ3VELGlCQUFrQjtFQUMxQ2pMLE1BQUFBLEtBQUssRUFBRUEsS0FBSyxDQUFDdUosTUFBTSxDQUFFO0VBQ3JCRSxNQUFBQSxhQUFhLEVBQUVBLGFBQWM7RUFDN0J5QixNQUFBQSxtQkFBbUIsRUFBRSxJQUFJLENBQUN4RCxLQUFLLENBQUN3RCxtQkFBb0I7RUFDcERDLE1BQUFBLFFBQVEsRUFBRSxJQUFJLENBQUN6RCxLQUFLLENBQUN5RCxRQUFTO0VBQzlCQyxNQUFBQSxPQUFPLEVBQUUsSUFBSSxDQUFDMUQsS0FBSyxDQUFDMEQsT0FBUTtFQUM1QkMsTUFBQUEsV0FBVyxFQUFFdkIsYUFBYSxJQUFJLElBQUksQ0FBQ3dCLGlCQUFrQjtFQUNyRGpDLE1BQUFBLElBQUksRUFBRSxJQUFJLENBQUMzQixLQUFLLENBQUMyQixJQUFLO0VBQ3RCa0MsTUFBQUEsT0FBTyxFQUFFLElBQUksQ0FBQzdELEtBQUssQ0FBQzZELE9BQVE7RUFDNUJDLE1BQUFBLE9BQU8sRUFBRSxJQUFJLENBQUM5RCxLQUFLLENBQUM4RCxPQUFRO0VBQzVCQyxNQUFBQSxhQUFhLEVBQUUsSUFBSSxDQUFDL0QsS0FBSyxDQUFDK0QsYUFBYztFQUN4Q2pCLE1BQUFBLFFBQVEsRUFBRSxJQUFJLENBQUM5QyxLQUFLLENBQUM4QyxRQUFTO0VBQzlCTixNQUFBQSxNQUFNLEVBQUUsSUFBSSxDQUFDeEMsS0FBSyxDQUFDd0MsTUFBTztFQUMxQndCLE1BQUFBLFdBQVcsRUFBRS9CLGlCQUFrQjtFQUMvQkUsTUFBQUEsV0FBVyxFQUFFLElBQUksQ0FBQ25DLEtBQUssQ0FBQ21DLFdBQVk7RUFDcEM4QixNQUFBQSxPQUFPLEVBQUUsSUFBSSxDQUFDakUsS0FBSyxDQUFDaUUsT0FBUTtFQUM1QkMsTUFBQUEsVUFBVSxFQUFFLElBQUksQ0FBQ2xFLEtBQUssQ0FBQ2tFLFVBQVc7RUFDbENDLE1BQUFBLFVBQVUsRUFBRSxJQUFJLENBQUNuRSxLQUFLLENBQUNtRTtPQUN4QixDQUFDLEVBQ0QsQ0FBQzlCLGVBQWUsSUFBSUMsbUJBQW1CLGtCQUN0Q3hJLHNCQUFBLENBQUFDLGFBQUEsQ0FBQ2lELHNCQUFzQixFQUFBO1FBQ3JCaEQsU0FBUyxFQUFFQyxNQUFNLENBQUNtSyxRQUFTO0VBQzNCakgsTUFBQUEsT0FBTyxFQUFFa0YsZUFBZ0I7RUFDekJqRixNQUFBQSxPQUFPLEVBQUVBLE1BQU0sSUFBSSxDQUFDaUgsb0JBQW9CLEVBQUc7RUFDM0NoSCxNQUFBQSxVQUFVLEVBQUVpSCxDQUFDLElBQ1hsRyx3QkFBd0IsQ0FBQ2tHLENBQUMsQ0FBQyxJQUFJLElBQUksQ0FBQ0Qsb0JBQW9CLEVBQ3pEO1FBQ0QsWUFBQSxFQUFZbkYsQ0FBQyxDQUFDLHlCQUF5QixFQUFFO0VBQUV3QyxRQUFBQTtTQUFLO0VBQUUsS0FBQSxlQUVsRDVILHNCQUFBLENBQUFDLGFBQUEsQ0FBQ3dLLHFCQUFJLEVBQUE7RUFBQ0MsTUFBQUEsR0FBRyxFQUFDLFVBQVU7RUFBQ0MsTUFBQUEsS0FBSyxFQUFFbEM7RUFBUSxLQUFFLENBQ2hCLENBRXZCLENBQUMsRUFDTDlCLFNBQVMsQ0FBQzNELE1BQU0sS0FBSyxDQUFDLGlCQUNyQmhELHNCQUFBLENBQUFDLGFBQUEsQ0FBQSxLQUFBLEVBQUE7UUFBS0MsU0FBUyxFQUFFQyxNQUFNLENBQUMscUJBQXFCO09BQUUsZUFDNUNILHNCQUFBLENBQUFDLGFBQUEsQ0FBQSxLQUFBLEVBQUE7UUFBS0MsU0FBUyxFQUFFQyxNQUFNLENBQUN5SztFQUFVLEtBQUUsQ0FDaEMsQ0FDTixlQUNENUssc0JBQUEsQ0FBQUMsYUFBQSxDQUFDNEssNkJBQWEsRUFBQTtFQUNaM0ssTUFBQUEsU0FBUyxFQUFFQyxNQUFNLENBQUMscUJBQXFCLENBQUU7RUFDekMySyxNQUFBQSxJQUFJLEVBQUVuRSxTQUFVO0VBQ2hCb0UsTUFBQUEsTUFBTSxFQUFFLENBQUEsQ0FBQSxFQUFJNUssTUFBTSxDQUFDLGlCQUFpQixDQUFDLENBQUEsQ0FBRztFQUN4QzZLLE1BQUFBLFNBQVMsRUFBRSxHQUFJO0VBQ2ZDLE1BQUFBLFFBQVEsRUFBRXRFLFNBQVMsQ0FBQzNELE1BQU0sSUFBSSxDQUFFO1FBQ2hDa0ksT0FBTyxFQUFFeEwsS0FBSyxJQUFJO0VBQ2hCLFFBQUEsTUFBTXlMLFlBQVksR0FBR3pMLEtBQUssQ0FBQ21ILE1BQU0sQ0FBQ0MsRUFBRSxJQUFJLENBQUNuRSxlQUFlLENBQUNtRSxFQUFFLENBQUMsQ0FBQztFQUM3RCxRQUFBLElBQUlxRSxZQUFZLENBQUNuSSxNQUFNLEdBQUcsQ0FBQyxFQUFFO0VBQzNCLFVBQUEsSUFBSSxDQUFDa0QsS0FBSyxDQUFDVSxlQUFlLENBQUN1RSxZQUFZLENBQUM7RUFDMUMsUUFBQTtFQUNGLE1BQUE7T0FBRSxFQUVEeEUsU0FBUyxDQUFDakcsR0FBRyxDQUFDLENBQUMwSyxDQUFDLEVBQUU5RixDQUFDLGtCQUNsQnRGLHNCQUFBLENBQUFDLGFBQUEsQ0FBQSxLQUFBLEVBQUE7RUFDRUMsTUFBQUEsU0FBUyxFQUFFTSxtQkFBRSxDQUFDTCxNQUFNLENBQUMsb0JBQW9CLENBQUMsQ0FBRTtFQUM1Q1MsTUFBQUEsR0FBRyxFQUFFLENBQUEsU0FBQSxFQUFZMEUsQ0FBQyxDQUFBLENBQUc7T0FBQyxlQUV0QnRGLHNCQUFBLENBQUFDLGFBQUEsQ0FBQSxLQUFBLEVBQUE7UUFBS0MsU0FBUyxFQUFFQyxNQUFNLENBQUMsdUJBQXVCO09BQUUsZUFDOUNILHNCQUFBLENBQUFDLGFBQUEsQ0FBQSxLQUFBLEVBQUE7UUFBS0MsU0FBUyxFQUFFQyxNQUFNLENBQUNrTDtPQUFJLGVBQ3pCckwsc0JBQUEsQ0FBQUMsYUFBQSxDQUFBLEtBQUEsRUFBQTtFQUNFQyxNQUFBQSxTQUFTLEVBQUVDLE1BQU0sQ0FBQyxpQkFBaUIsQ0FBRTtFQUNyQ3lELE1BQUFBLEtBQUssRUFBRStDLFNBQVMsQ0FBQzNELE1BQU0sR0FBRyxDQUFDLEdBQUc7RUFBRXNJLFFBQUFBLE1BQU0sRUFBRTtFQUFPLE9BQUMsR0FBRztPQUFHLEVBRXJEM0UsU0FBUyxDQUFDM0QsTUFBTSxHQUFHLENBQUMsaUJBQ25CaEQsc0JBQUEsQ0FBQUMsYUFBQSxDQUFDd0sscUJBQUksRUFBQTtFQUFDQyxNQUFBQSxHQUFHLEVBQUMsVUFBVTtFQUFDYSxNQUFBQSxNQUFNLEVBQUUsRUFBRztFQUFDWixNQUFBQSxLQUFLLEVBQUVsQztFQUFRLEtBQUUsQ0FFakQsQ0FBQyxlQUNOekksc0JBQUEsQ0FBQUMsYUFBQSxDQUFBLEtBQUEsRUFBQTtFQUNFQyxNQUFBQSxTQUFTLEVBQ1AsQ0FBQSxFQUFHQyxNQUFNLENBQUMsMEJBQTBCLENBQUMsQ0FBQSxDQUFBLEVBQ25DQSxNQUFNLENBQUMsQ0FBQSxTQUFBLEVBQVltRixDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsQ0FBQTtFQUU3QixLQUFBLGVBRUZ0RixzQkFBQSxDQUFBQyxhQUFBLENBQUNpSiw4QkFBYSxFQUFBO0VBQ1pDLE1BQUFBLFVBQVUsRUFBRSxJQUFJLENBQUNqRCxLQUFLLENBQUNpRCxVQUFXO0VBQ2xDckssTUFBQUEsSUFBSSxFQUFDLFdBQVc7RUFDaEJGLE1BQUFBLEVBQUUsRUFBQyxXQUFXO0VBQ2Q0TSxNQUFBQSxTQUFTLEVBQUVwRyxDQUFDLENBQUMsaUJBQWlCLEVBQUU7VUFDOUJ6RSxLQUFLLEVBQUUyRSxDQUFDLEdBQUcsQ0FBQztFQUNac0MsUUFBQUE7RUFDRixPQUFDLENBQUU7RUFDSHdCLE1BQUFBLFNBQVMsRUFDUGxCLGdCQUFnQixLQUFLLElBQUksR0FBRyxLQUFLLEdBQUcsQ0FBQyxJQUFJLENBQUNoQyxLQUFLLENBQUM4QyxRQUNqRDtFQUNEUSxNQUFBQSxXQUFXLEVBQUMsV0FBVztFQUN2QnRKLE1BQUFBLFNBQVMsRUFBQyxVQUFVO0VBQ3BCK0gsTUFBQUEsYUFBYSxFQUFFQSxhQUFjO0VBQzdCc0IsTUFBQUEsUUFBUSxFQUFFLElBQUksQ0FBQ3JELEtBQUssQ0FBQ3FELFFBQVM7RUFDOUIvSyxNQUFBQSxLQUFLLEVBQUc0TSxDQUFDLElBQUlBLENBQUMsQ0FBQ3JHLE9BQU8sSUFBSyxFQUFHO0VBQzlCNEUsTUFBQUEsUUFBUSxFQUFFLElBQUksQ0FBQ3pELEtBQUssQ0FBQ3lELFFBQVM7RUFDOUJDLE1BQUFBLE9BQU8sRUFBRSxJQUFJLENBQUMxRCxLQUFLLENBQUMwRCxPQUFRO1FBQzVCNkIsZUFBZSxFQUFFN0wsSUFBSSxJQUNuQixJQUFJLENBQUM0SCw4QkFBOEIsQ0FBQzVILElBQUksRUFBRTBGLENBQUMsQ0FDNUM7RUFDRHVDLE1BQUFBLElBQUksRUFBRSxJQUFJLENBQUMzQixLQUFLLENBQUMyQixJQUFLO0VBQ3RCa0MsTUFBQUEsT0FBTyxFQUFFLElBQUksQ0FBQzdELEtBQUssQ0FBQzZELE9BQVE7RUFDNUJDLE1BQUFBLE9BQU8sRUFBRSxJQUFJLENBQUM5RCxLQUFLLENBQUM4RCxPQUFRO0VBQzVCQyxNQUFBQSxhQUFhLEVBQUUsSUFBSSxDQUFDL0QsS0FBSyxDQUFDK0QsYUFBYztFQUN4Q1AsTUFBQUEsbUJBQW1CLEVBQUUsSUFBSSxDQUFDeEQsS0FBSyxDQUFDd0QsbUJBQW9CO0VBQ3BEVixNQUFBQSxRQUFRLEVBQUUsSUFBSSxDQUFDOUMsS0FBSyxDQUFDOEMsUUFBUztFQUM5QlgsTUFBQUEsV0FBVyxFQUFFLElBQUksQ0FBQ25DLEtBQUssQ0FBQ21DLFdBQVk7RUFDcEM4QixNQUFBQSxPQUFPLEVBQUUsSUFBSSxDQUFDakUsS0FBSyxDQUFDaUUsT0FBUTtFQUM1QnpCLE1BQUFBLE1BQU0sRUFBRSxJQUFJLENBQUN4QyxLQUFLLENBQUN3QyxNQUFPO0VBQzFCMEIsTUFBQUEsVUFBVSxFQUFFLElBQUksQ0FBQ2xFLEtBQUssQ0FBQ2tFO0VBQVcsS0FDbkMsQ0FDRSxDQUFDLEVBQ0wsSUFBSSxDQUFDbEUsS0FBSyxDQUFDd0YsZ0JBQWdCLGlCQUMxQjFMLHNCQUFBLENBQUFDLGFBQUEsQ0FBQ2lELHNCQUFzQixFQUFBO0VBQ3JCaEQsTUFBQUEsU0FBUyxFQUFFQyxNQUFNLENBQUMscUJBQXFCLENBQUU7RUFDekNrRCxNQUFBQSxPQUFPLEVBQUUsSUFBSSxDQUFDNkMsS0FBSyxDQUFDc0MsbUJBQW9CO1FBQ3hDbEYsT0FBTyxFQUFFQSxNQUFNLElBQUksQ0FBQ3FJLDhCQUE4QixDQUFDckcsQ0FBQyxDQUFFO0VBQ3REL0IsTUFBQUEsVUFBVSxFQUFFaUgsQ0FBQyxJQUNYbEcsd0JBQXdCLENBQUNrRyxDQUFDLENBQUMsSUFDM0IsSUFBSSxDQUFDbUIsOEJBQThCLENBQUNyRyxDQUFDLENBQ3RDO1FBQ0QsWUFBQSxFQUFZRixDQUFDLENBQ1gyRCw4QkFBOEIsQ0FBQ3pELENBQUMsQ0FBQyxHQUM3QixvQ0FBb0MsR0FDcEMscUNBQXFDLEVBQ3pDO1VBQUUzRSxLQUFLLEVBQUUyRSxDQUFDLEdBQUcsQ0FBQztFQUFFc0MsUUFBQUE7RUFBSSxPQUN0QixDQUFFO1FBQ0ZwRSxJQUFJLEVBQUE7RUFBQSxLQUFBLGVBRUp4RCxzQkFBQSxDQUFBQyxhQUFBLENBQUN3SyxxQkFBSSxFQUFBO0VBQUNDLE1BQUFBLEdBQUcsRUFBQyxNQUFNO0VBQUNDLE1BQUFBLEtBQUssRUFBRWxDO09BQVUsQ0FDWixDQUV2QixDQUFDLEVBQ0wsQ0FBQ00sOEJBQThCLENBQUN6RCxDQUFDLENBQUMsSUFDakNxQixTQUFTLENBQUNyQixDQUFDLENBQUMsSUFDWnFCLFNBQVMsQ0FBQ3JCLENBQUMsQ0FBQyxDQUFDUSxhQUFhLEdBQUcsQ0FBQyxpQkFDNUI5RixzQkFBQSxDQUFBQyxhQUFBLENBQUEsTUFBQSxFQUFBO1FBQU1DLFNBQVMsRUFBRUMsTUFBTSxDQUFDLHFCQUFxQjtFQUFFLEtBQUEsRUFBRSxDQUFBLEVBQUdpRixDQUFDLENBQ25ELHVCQUF1QixFQUN2QjtBQUNFd0MsTUFBQUE7QUFDRixLQUNGLENBQUMsQ0FBQSxFQUFBLEVBQUssSUFBSSxDQUFDZ0UsZUFBZSxDQUN4QmpGLFNBQVMsQ0FBQ3JCLENBQUMsQ0FBQyxDQUFDUSxhQUNmLENBQUMsQ0FBQSxDQUFTLENBQ1gsZUFDSDlGLHNCQUFBLENBQUFDLGFBQUEsQ0FBQSxLQUFBLEVBQUE7RUFDRUMsTUFBQUEsU0FBUyxFQUFFTSxtQkFBRSxDQUFDTCxNQUFNLENBQUMsZ0NBQWdDLENBQUMsRUFDekMsQ0FBQzRJLDhCQUE4QixDQUFDekQsQ0FBQyxDQUFDLElBQUEsV0FDOUM7T0FBRSxlQUVIdEYsc0JBQUEsQ0FBQUMsYUFBQSxDQUFBLEtBQUEsRUFBQTtRQUFLQyxTQUFTLEVBQUVDLE1BQU0sQ0FBQyxnQkFBZ0I7RUFBRSxLQUFBLGVBQ3ZDSCxzQkFBQSxDQUFBQyxhQUFBLENBQUMxQixNQUFNLEVBQUE7UUFDTEssRUFBRSxFQUFFLENBQUEsZUFBQSxFQUFrQjBHLENBQUMsQ0FBQSxDQUFHO0VBQzFCekcsTUFBQUEsS0FBSyxFQUFFdUcsQ0FBQyxDQUFDLHVCQUF1QixFQUFFO0VBQUV3QyxRQUFBQTtFQUFJLE9BQUMsQ0FBRTtFQUMzQ25KLE1BQUFBLE9BQU8sRUFBRWtLLFNBQVU7RUFDbkJuSyxNQUFBQSxLQUFLLEVBQUVxSyw2QkFBNkIsQ0FBQ2xDLFNBQVMsQ0FBQ3JCLENBQUMsQ0FBQyxDQUFFO0VBQ25EM0csTUFBQUEsYUFBYSxFQUFFMkcsQ0FBRTtRQUNqQnhHLElBQUksZUFDRmtCLHNCQUFBLENBQUFDLGFBQUEsQ0FBQSxNQUFBLEVBQUE7VUFDRUMsU0FBUyxFQUFFLENBQUEsRUFBR0MsTUFBTSxDQUFDLGVBQWUsQ0FBQyxDQUFBLENBQUEsRUFBSUEsTUFBTSxDQUFDLGlCQUFpQixDQUFDLENBQUE7RUFBRyxPQUFBLGVBRXJFSCxzQkFBQSxDQUFBQyxhQUFBLENBQUN3SyxxQkFBSSxFQUFBO0VBQUNDLFFBQUFBLEdBQUcsRUFBQyxNQUFNO0VBQUNDLFFBQUFBLEtBQUssRUFBRWxDO0VBQVEsT0FBRSxDQUM5QixDQUNQO1FBQ0QvSixtQkFBbUIsRUFBRSxJQUFJLENBQUNtTjtPQUMzQixDQUNFLENBQ0YsQ0FDRixDQUFDLGVBQ043TCxzQkFBQSxDQUFBQyxhQUFBLENBQUNpRCxzQkFBc0IsRUFBQTtFQUNyQmhELE1BQUFBLFNBQVMsRUFBRUMsTUFBTSxDQUFDLGtCQUFrQixDQUFFO0VBQ3RDa0QsTUFBQUEsT0FBTyxFQUFFLElBQUksQ0FBQzZDLEtBQUssQ0FBQ3NDLG1CQUFvQjtRQUN4Q2xGLE9BQU8sRUFBRUEsTUFBTSxJQUFJLENBQUN3SSx5QkFBeUIsQ0FBQ3hHLENBQUMsQ0FBRTtFQUNqRC9CLE1BQUFBLFVBQVUsRUFBRWlILENBQUMsSUFDWGxHLHdCQUF3QixDQUFDa0csQ0FBQyxDQUFDLElBQzNCLElBQUksQ0FBQ3NCLHlCQUF5QixDQUFDeEcsQ0FBQyxDQUNqQztRQUNELFlBQUEsRUFBWUYsQ0FBQyxDQUFDLHlCQUF5QixFQUFFO1VBQ3ZDekUsS0FBSyxFQUFFMkUsQ0FBQyxHQUFHLENBQUM7RUFDWnNDLFFBQUFBO1NBQ0Q7RUFBRSxLQUFBLGVBRUg1SCxzQkFBQSxDQUFBQyxhQUFBLENBQUN3SyxxQkFBSSxFQUFBO0VBQUNDLE1BQUFBLEdBQUcsRUFBQyxPQUFPO0VBQUNDLE1BQUFBLEtBQUssRUFBRWxDO09BQVUsQ0FDYixDQUNyQixDQUNOLENBQ1ksQ0FBQyxlQUNoQnpJLHNCQUFBLENBQUFDLGFBQUEsQ0FBQSxLQUFBLEVBQUE7UUFBS0MsU0FBUyxFQUFFQyxNQUFNLENBQUMsNkJBQTZCO0VBQUUsS0FBQSxlQUNwREgsc0JBQUEsQ0FBQUMsYUFBQSxDQUFDaUosOEJBQWEsRUFBQTtFQUNaQyxNQUFBQSxVQUFVLEVBQUUsSUFBSSxDQUFDakQsS0FBSyxDQUFDaUQsVUFBVztFQUNsQ3JLLE1BQUFBLElBQUksRUFBQyxXQUFXO0VBQ2hCRixNQUFBQSxFQUFFLEVBQUMsYUFBYTtRQUNoQndLLFNBQVMsRUFDUGxCLGdCQUFnQixLQUFLLElBQUksR0FDckIsS0FBSyxHQUNMLENBQUMsSUFBSSxDQUFDaEMsS0FBSyxDQUFDOEMsUUFBUSxJQUFJLENBQUMzQixNQUFNLENBQUMwRSxLQUFLLENBQUNoRSxNQUFNLEVBQUVuQyxHQUFHLENBQ3REO1FBQ0R5RCxRQUFRLEVBQUUsSUFBSSxDQUFDQyxjQUFlO0VBQzlCRSxNQUFBQSxXQUFXLEVBQUUsSUFBSSxDQUFDdEQsS0FBSyxDQUFDOEYsc0JBQXVCO1FBQy9DOUwsU0FBUyxFQUFFZ0YsZUFBZSxDQUFDLElBQUksQ0FBQ2dCLEtBQUssQ0FBQ00sV0FBVyxDQUFFO0VBQ25Ea0QsTUFBQUEsbUJBQW1CLEVBQUUsSUFBSSxDQUFDeEQsS0FBSyxDQUFDd0QsbUJBQW9CO0VBQ3BEekIsTUFBQUEsYUFBYSxFQUFFQSxhQUFjO0VBQzdCMEIsTUFBQUEsUUFBUSxFQUFFLElBQUksQ0FBQ3pELEtBQUssQ0FBQ3lELFFBQVM7RUFDOUJDLE1BQUFBLE9BQU8sRUFBRSxJQUFJLENBQUMxRCxLQUFLLENBQUMwRCxPQUFRO0VBQzVCTCxNQUFBQSxRQUFRLEVBQUUsSUFBSSxDQUFDckQsS0FBSyxDQUFDcUQsUUFBUztRQUM5Qi9LLEtBQUssRUFBRUEsS0FBSyxDQUFDLElBQUksQ0FBQzBILEtBQUssQ0FBQ00sV0FBVyxDQUFFO0VBQ3JDcUIsTUFBQUEsSUFBSSxFQUFFLElBQUksQ0FBQzNCLEtBQUssQ0FBQzJCLElBQUs7RUFDdEJrQyxNQUFBQSxPQUFPLEVBQUUsSUFBSSxDQUFDN0QsS0FBSyxDQUFDNkQsT0FBUTtFQUM1QkMsTUFBQUEsT0FBTyxFQUFFLElBQUksQ0FBQzlELEtBQUssQ0FBQzhELE9BQVE7RUFDNUJDLE1BQUFBLGFBQWEsRUFBRSxJQUFJLENBQUMvRCxLQUFLLENBQUMrRCxhQUFjO0VBQ3hDakIsTUFBQUEsUUFBUSxFQUFFLElBQUksQ0FBQzlDLEtBQUssQ0FBQzhDLFFBQVM7RUFDOUJrQixNQUFBQSxXQUFXLEVBQUU5QixzQkFBdUI7RUFDcENDLE1BQUFBLFdBQVcsRUFBRSxJQUFJLENBQUNuQyxLQUFLLENBQUNtQyxXQUFZO0VBQ3BDOEIsTUFBQUEsT0FBTyxFQUFFLElBQUksQ0FBQ2pFLEtBQUssQ0FBQ2lFLE9BQVE7RUFDNUJ6QixNQUFBQSxNQUFNLEVBQUUsSUFBSSxDQUFDeEMsS0FBSyxDQUFDd0MsTUFBTztFQUMxQjBCLE1BQUFBLFVBQVUsRUFBRSxJQUFJLENBQUNsRSxLQUFLLENBQUNrRSxVQUFXO0VBQ2xDQyxNQUFBQSxVQUFVLEVBQUUsSUFBSSxDQUFDbkUsS0FBSyxDQUFDbUU7T0FDeEIsQ0FBQyxFQUNELENBQUM5QixlQUFlLElBQUlDLG1CQUFtQixrQkFDdEN4SSxzQkFBQSxDQUFBQyxhQUFBLENBQUNpRCxzQkFBc0IsRUFBQTtFQUNyQmhELE1BQUFBLFNBQVMsRUFBRU0sbUJBQUUsQ0FBQ0wsTUFBTSxDQUFDLGVBQWUsQ0FBQyxFQUFFQSxNQUFNLENBQUM4TCxJQUFJLEVBQ3JDdEYsU0FBUyxDQUFDM0QsTUFBTSxHQUFHLENBQUMsZUFDaEMsQ0FBRTtFQUNISyxNQUFBQSxPQUFPLEVBQUVtRixtQkFBbUIsSUFBSTdCLFNBQVMsQ0FBQzNELE1BQU0sS0FBSyxDQUFFO0VBQ3ZETSxNQUFBQSxPQUFPLEVBQUVBLE1BQU0sSUFBSSxDQUFDNEksc0JBQXNCLEVBQUc7RUFDN0MzSSxNQUFBQSxVQUFVLEVBQUVpSCxDQUFDLElBQ1hsRyx3QkFBd0IsQ0FBQ2tHLENBQUMsQ0FBQyxJQUFJLElBQUksQ0FBQzBCLHNCQUFzQixFQUMzRDtRQUNELFlBQUEsRUFBWTlHLENBQUMsQ0FBQyxzQkFBc0IsRUFBRTtFQUFFd0MsUUFBQUE7U0FBSztFQUFFLEtBQUEsZUFFL0M1SCxzQkFBQSxDQUFBQyxhQUFBLENBQUN3SyxxQkFBSSxFQUFBO0VBQ0hDLE1BQUFBLEdBQUcsRUFBQyxVQUFVO0VBQ2R5QixNQUFBQSxLQUFLLEVBQUUsSUFBSztFQUNaQyxNQUFBQSxNQUFNLEVBQUUsS0FBTTtFQUNkekIsTUFBQUEsS0FBSyxFQUFFbEM7T0FDUixDQUNxQixDQUV2QixDQUNGLENBQUM7RUFFVixFQUFBO0VBQ0Y7RUFBQ3RDLGVBQUEsQ0FsZUtKLGtCQUFrQixFQUFBLGNBQUEsRUEwQ0E7RUFDcEJnQyxFQUFBQSxNQUFNLEVBQUVsRixTQUFTO0VBQ2pCMkQsRUFBQUEsV0FBVyxFQUFFM0QsU0FBUztFQUN0QjhELEVBQUFBLFNBQVMsRUFBRSxFQUFFO0VBQ2I4QyxFQUFBQSxpQkFBaUIsRUFBRSxhQUFhO0VBQ2hDdUMsRUFBQUEsc0JBQXNCLEVBQUUsa0JBQWtCO0VBQzFDdEUsRUFBQUEsU0FBUyxFQUFFN0UsU0FBUztFQUNwQitELEVBQUFBLGVBQWUsRUFBRUEsTUFBTSxDQUFDLENBQUM7RUFDekJvQixFQUFBQSxlQUFlLEVBQUVuRixTQUFTO0VBQzFCa0gsRUFBQUEsT0FBTyxFQUFFLEVBQUU7RUFDWEMsRUFBQUEsT0FBTyxFQUFFLEVBQUU7RUFDWEMsRUFBQUEsYUFBYSxFQUFFcEgsU0FBUztFQUN4QitHLEVBQUFBLE9BQU8sRUFBRS9HLFNBQVM7RUFDbEI2RyxFQUFBQSxtQkFBbUIsRUFBRTdHLFNBQVM7RUFDOUIwRyxFQUFBQSxRQUFRLEVBQUUxRyxTQUFTO0VBQ25Cb0UsRUFBQUEsaUJBQWlCLEVBQUVwRSxTQUFTO0VBQzVCcUYsRUFBQUEsZ0JBQWdCLEVBQUUsS0FBSztFQUN2QmMsRUFBQUEsUUFBUSxFQUFFLEtBQUs7RUFDZnhCLEVBQUFBLDhCQUE4QixFQUFFM0UsU0FBUztFQUN6Q3NGLEVBQUFBLGlCQUFpQixFQUFFLElBQUk7RUFDdkJDLEVBQUFBLHNCQUFzQixFQUFFLElBQUk7RUFDNUIrQixFQUFBQSxPQUFPLEVBQUV0SCxTQUFTO0VBQ2xCNkYsRUFBQUEsTUFBTSxFQUFFMkQsa0JBQWE7RUFDckJoRSxFQUFBQSxXQUFXLEVBQUU7RUFDWFksSUFBQUEsTUFBTSxFQUFFO0tBQ1Q7RUFDRG1CLEVBQUFBLFVBQVUsRUFBRSxLQUFLO0VBQ2pCOUIsRUFBQUEsYUFBYSxFQUFFekYsU0FBUztFQUN4QndILEVBQUFBLFVBQVUsRUFBRSxLQUFLO0VBQ2pCOUIsRUFBQUEsZUFBZSxFQUFFLEtBQUs7RUFDdEJDLEVBQUFBLG1CQUFtQixFQUFFLEtBQUs7RUFDMUJrRCxFQUFBQSxnQkFBZ0IsRUFBRTtFQUNwQixDQUFDLENBQUE7RUFBQTNLLE9BQUEsQ0FBQUMsR0FBQSxDQUFBQyxRQUFBLG9CQTFFRzhFLGtCQUFrQixDQUNmN0UsU0FBUyxHQUFHO0VBQ2pCaUksRUFBQUEsVUFBVSxFQUFFaEksMEJBQVMsQ0FBQ00sTUFBTSxDQUFDSixVQUFVO0VBQ3ZDMEcsRUFBQUEsTUFBTSxFQUFFcEMsYUFBYTtFQUNyQmEsRUFBQUEsV0FBVyxFQUFFYixhQUFhO0lBQzFCOEQsaUJBQWlCLEVBQUV0SSwwQkFBUyxDQUFDTSxNQUFNO0lBQ25DdUssc0JBQXNCLEVBQUU3SywwQkFBUyxDQUFDTSxNQUFNO0VBQ3hDa0YsRUFBQUEsU0FBUyxFQUFFeEYsMEJBQVMsQ0FBQ0ksT0FBTyxDQUFDb0UsYUFBYSxDQUFDO0lBQzNDaUIsZUFBZSxFQUFFekYsMEJBQVMsQ0FBQ0csSUFBSTtJQUMvQmtHLDhCQUE4QixFQUFFckcsMEJBQVMsQ0FBQ0csSUFBSTtJQUM5Q29HLFNBQVMsRUFBRXZHLDBCQUFTLENBQUNHLElBQUk7SUFDekIwRyxlQUFlLEVBQUU3RywwQkFBUyxDQUFDTSxNQUFNO0VBQ2pDd0csRUFBQUEsYUFBYSxFQUFFOUcsMEJBQVMsQ0FBQ0ssS0FBSyxDQUFDO01BQzdCOEssVUFBVSxFQUFFbkwsMEJBQVMsQ0FBQ007S0FDdkIsQ0FBQyxDQUFDSixVQUFVO0VBQ2JzSSxFQUFBQSxRQUFRLEVBQUV4SSwwQkFBUyxDQUFDRyxJQUFJLENBQUNELFVBQVU7SUFDbkN1SSxPQUFPLEVBQUV6SSwwQkFBUyxDQUFDRyxJQUFJO0lBQ3ZCMkYsaUJBQWlCLEVBQUU5RiwwQkFBUyxDQUFDRyxJQUFJO0VBQ2pDdUcsRUFBQUEsSUFBSSxFQUFFMUcsMEJBQVMsQ0FBQ00sTUFBTSxDQUFDSixVQUFVO0lBQ2pDNkcsZ0JBQWdCLEVBQUUvRywwQkFBUyxDQUFDc0UsSUFBSTtJQUNoQ3NFLE9BQU8sRUFBRTVJLDBCQUFTLENBQUNJLE9BQU8sQ0FBQ0osMEJBQVMsQ0FBQ00sTUFBTSxDQUFDO0lBQzVDdUksT0FBTyxFQUFFN0ksMEJBQVMsQ0FBQ0ksT0FBTyxDQUFDSiwwQkFBUyxDQUFDTSxNQUFNLENBQUM7SUFDNUN3SSxhQUFhLEVBQUU5SSwwQkFBUyxDQUFDRyxJQUFJO0lBQzdCMEgsUUFBUSxFQUFFN0gsMEJBQVMsQ0FBQ3NFLElBQUk7SUFDeEIwQyxpQkFBaUIsRUFBRWhILDBCQUFTLENBQUNNLE1BQU07SUFDbkMyRyxzQkFBc0IsRUFBRWpILDBCQUFTLENBQUNNLE1BQU07RUFDeEM4SCxFQUFBQSxRQUFRLEVBQUU1RCxhQUFhO0lBQ3ZCd0UsT0FBTyxFQUFFaEosMEJBQVMsQ0FBQ00sTUFBTTtJQUN6QmlILE1BQU0sRUFBRXZILDBCQUFTLENBQUNvTCxRQUFRLENBQUNwTCwwQkFBUyxDQUFDTSxNQUFNLENBQUM7SUFDNUNpSSxtQkFBbUIsRUFBRXZJLDBCQUFTLENBQUNvTCxRQUFRLENBQUNwTCwwQkFBUyxDQUFDRyxJQUFJLENBQUM7RUFDdkQrRyxFQUFBQSxXQUFXLEVBQUVsSCwwQkFBUyxDQUFDSyxLQUFLLENBQUM7TUFDM0J5SCxNQUFNLEVBQUU5SCwwQkFBUyxDQUFDQztFQUNwQixHQUFDLENBQUM7SUFDRmdKLFVBQVUsRUFBRWpKLDBCQUFTLENBQUNzRSxJQUFJO0lBQzFCNkMsYUFBYSxFQUFFbkgsMEJBQVMsQ0FBQ0csSUFBSTtJQUM3QitJLFVBQVUsRUFBRWxKLDBCQUFTLENBQUNzRSxJQUFJO0lBQzFCOEMsZUFBZSxFQUFFcEgsMEJBQVMsQ0FBQ3NFLElBQUk7SUFDL0IrQyxtQkFBbUIsRUFBRXJILDBCQUFTLENBQUNzRSxJQUFJO0lBQ25DaUcsZ0JBQWdCLEVBQUV2SywwQkFBUyxDQUFDc0UsSUFBSTtFQUNoQ0wsRUFBQUEsQ0FBQyxFQUFFakUsMEJBQVMsQ0FBQ0csSUFBSSxDQUFDRDtFQUNwQixDQUFDLEdBQUEsTUFBQTtFQTRiSCxNQUFNbUwsaUNBQWlDLEdBQUdDLDRCQUFlLEVBQUUsQ0FBQzFHLGtCQUFrQixDQUFDO0FBRS9FLGNBQWVHLEtBQUssSUFBSTtFQUN0QixFQUFBLG9CQUNFbEcsc0JBQUEsQ0FBQUMsYUFBQSxDQUFDeU0sNEJBQWUsRUFBQTtFQUFDeEssSUFBQUEsSUFBSSxFQUFFQTtLQUFLLGVBQzFCbEMsc0JBQUEsQ0FBQUMsYUFBQSxDQUFDdU0saUNBQWlDLEVBQUt0RyxLQUFRLENBQ2hDLENBQUM7RUFFdEIsQ0FBQzs7Ozs7Ozs7Ozs7IiwieF9nb29nbGVfaWdub3JlTGlzdCI6WzAsMSwyLDMsNCw1LDZdfQ==
package/lib/index.js CHANGED
@@ -5,7 +5,7 @@ import { withTranslation, I18nextProvider } from 'react-i18next';
5
5
  import { ReactSortable } from 'react-sortablejs';
6
6
  import DTAutoSuggest from '@digitransit-component/digitransit-component-autosuggest';
7
7
  import Icon, { defaultColors } from '@digitransit-component/digitransit-component-icon';
8
- import isEmpty from 'lodash/isEmpty.js';
8
+ import isEmpty from 'lodash/isEmpty';
9
9
  import { useSelect } from 'downshift';
10
10
  import { createInstance } from 'i18next';
11
11