-
Notifications
You must be signed in to change notification settings - Fork 3
Expand file tree
/
Copy path1098.677e075c.iframe.bundle.js
More file actions
2 lines (2 loc) · 40.1 KB
/
1098.677e075c.iframe.bundle.js
File metadata and controls
2 lines (2 loc) · 40.1 KB
1
2
"use strict";(self.webpackChunkblockly_mooc=self.webpackChunkblockly_mooc||[]).push([[1098],{"./node_modules/react-loading-skeleton/dist/index.js":(__unused_webpack_module,exports,__webpack_require__)=>{var _excluded=["count","wrapper","className","containerClassName","containerTestId","circle","style"],_excluded2=["children"];function _slicedToArray(r,e){return function _arrayWithHoles(r){if(Array.isArray(r))return r}(r)||function _iterableToArrayLimit(r,l){var t=null==r?null:"undefined"!=typeof Symbol&&r[Symbol.iterator]||r["@@iterator"];if(null!=t){var e,n,i,u,a=[],f=!0,o=!1;try{if(i=(t=t.call(r)).next,0===l){if(Object(t)!==t)return;f=!1}else for(;!(f=(e=i.call(t)).done)&&(a.push(e.value),a.length!==l);f=!0);}catch(r){o=!0,n=r}finally{try{if(!f&&null!=t.return&&(u=t.return(),Object(u)!==u))return}finally{if(o)throw n}}return a}}(r,e)||function _unsupportedIterableToArray(r,a){if(r){if("string"==typeof r)return _arrayLikeToArray(r,a);var t={}.toString.call(r).slice(8,-1);return"Object"===t&&r.constructor&&(t=r.constructor.name),"Map"===t||"Set"===t?Array.from(r):"Arguments"===t||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t)?_arrayLikeToArray(r,a):void 0}}(r,e)||function _nonIterableRest(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function _arrayLikeToArray(r,a){(null==a||a>r.length)&&(a=r.length);for(var e=0,n=Array(a);e<a;e++)n[e]=r[e];return n}function ownKeys(e,r){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);r&&(o=o.filter((function(r){return Object.getOwnPropertyDescriptor(e,r).enumerable}))),t.push.apply(t,o)}return t}function _objectSpread(e){for(var r=1;r<arguments.length;r++){var t=null!=arguments[r]?arguments[r]:{};r%2?ownKeys(Object(t),!0).forEach((function(r){_defineProperty(e,r,t[r])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):ownKeys(Object(t)).forEach((function(r){Object.defineProperty(e,r,Object.getOwnPropertyDescriptor(t,r))}))}return e}function _defineProperty(e,r,t){return(r=function _toPropertyKey(t){var i=function _toPrimitive(t,r){if("object"!=_typeof(t)||!t)return t;var e=t[Symbol.toPrimitive];if(void 0!==e){var i=e.call(t,r||"default");if("object"!=_typeof(i))return i;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===r?String:Number)(t)}(t,"string");return"symbol"==_typeof(i)?i:i+""}(r))in e?Object.defineProperty(e,r,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[r]=t,e}function _objectWithoutProperties(e,t){if(null==e)return{};var o,r,i=function _objectWithoutPropertiesLoose(r,e){if(null==r)return{};var t={};for(var n in r)if({}.hasOwnProperty.call(r,n)){if(e.includes(n))continue;t[n]=r[n]}return t}(e,t);if(Object.getOwnPropertySymbols){var s=Object.getOwnPropertySymbols(e);for(r=0;r<s.length;r++)o=s[r],t.includes(o)||{}.propertyIsEnumerable.call(e,o)&&(i[o]=e[o])}return i}function _typeof(o){return _typeof="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(o){return typeof o}:function(o){return o&&"function"==typeof Symbol&&o.constructor===Symbol&&o!==Symbol.prototype?"symbol":typeof o},_typeof(o)}function _interopDefaultLegacy(e){return e&&"object"===_typeof(e)&&"default"in e?e:{default:e}}Object.defineProperty(exports,"__esModule",{value:!0});var React__default=_interopDefaultLegacy(__webpack_require__("./node_modules/react/index.js")),SkeletonThemeContext=React__default.default.createContext({}),defaultEnableAnimation=!0;exports.SkeletonTheme=function SkeletonTheme(_ref3){var children=_ref3.children,styleOptions=_objectWithoutProperties(_ref3,_excluded2);return React__default.default.createElement(SkeletonThemeContext.Provider,{value:styleOptions},children)},exports.default=function Skeleton(_ref2){for(var _a,_b,_c,_ref2$count=_ref2.count,count=void 0===_ref2$count?1:_ref2$count,Wrapper=_ref2.wrapper,customClassName=_ref2.className,containerClassName=_ref2.containerClassName,containerTestId=_ref2.containerTestId,_ref2$circle=_ref2.circle,circle=void 0!==_ref2$circle&&_ref2$circle,styleProp=_ref2.style,originalPropsStyleOptions=_objectWithoutProperties(_ref2,_excluded),contextStyleOptions=React__default.default.useContext(SkeletonThemeContext),propsStyleOptions=_objectSpread({},originalPropsStyleOptions),_i=0,_Object$entries=Object.entries(originalPropsStyleOptions);_i<_Object$entries.length;_i++){var _Object$entries$_i=_slicedToArray(_Object$entries[_i],2),key=_Object$entries$_i[0];void 0===_Object$entries$_i[1]&&delete propsStyleOptions[key]}var styleOptions=_objectSpread(_objectSpread(_objectSpread({},contextStyleOptions),propsStyleOptions),{},{circle}),style=_objectSpread(_objectSpread({},styleProp),function styleOptionsToCssProperties(_ref){var baseColor=_ref.baseColor,highlightColor=_ref.highlightColor,width=_ref.width,height=_ref.height,borderRadius=_ref.borderRadius,circle=_ref.circle,direction=_ref.direction,duration=_ref.duration,_ref$enableAnimation=_ref.enableAnimation,enableAnimation=void 0===_ref$enableAnimation?defaultEnableAnimation:_ref$enableAnimation,style={};return"rtl"===direction&&(style["--animation-direction"]="reverse"),"number"==typeof duration&&(style["--animation-duration"]="".concat(duration,"s")),enableAnimation||(style["--pseudo-element-display"]="none"),"string"!=typeof width&&"number"!=typeof width||(style.width=width),"string"!=typeof height&&"number"!=typeof height||(style.height=height),"string"!=typeof borderRadius&&"number"!=typeof borderRadius||(style.borderRadius=borderRadius),circle&&(style.borderRadius="50%"),void 0!==baseColor&&(style["--base-color"]=baseColor),void 0!==highlightColor&&(style["--highlight-color"]=highlightColor),style}(styleOptions)),className="react-loading-skeleton";customClassName&&(className+=" ".concat(customClassName));for(var inline=null!==(_a=styleOptions.inline)&&void 0!==_a&&_a,elements=[],countCeil=Math.ceil(count),i=0;i<countCeil;i++){var thisStyle=style;if(countCeil>count&&i===countCeil-1){var width=null!==(_b=thisStyle.width)&&void 0!==_b?_b:"100%",fractionalPart=count%1,fractionalWidth="number"==typeof width?width*fractionalPart:"calc(".concat(width," * ").concat(fractionalPart,")");thisStyle=_objectSpread(_objectSpread({},thisStyle),{},{width:fractionalWidth})}var skeletonSpan=React__default.default.createElement("span",{className,style:thisStyle,key:i},"");inline?elements.push(skeletonSpan):elements.push(React__default.default.createElement(React__default.default.Fragment,{key:i},skeletonSpan,React__default.default.createElement("br",null)))}return React__default.default.createElement("span",{className:containerClassName,"data-testid":containerTestId,"aria-live":"polite","aria-busy":null!==(_c=styleOptions.enableAnimation)&&void 0!==_c?_c:defaultEnableAnimation},Wrapper?elements.map((function(el,i){return React__default.default.createElement(Wrapper,{key:i},el)})):elements)}},"./node_modules/css-loader/dist/cjs.js!./node_modules/react-loading-skeleton/dist/skeleton.css":(module,__webpack_exports__,__webpack_require__)=>{__webpack_require__.d(__webpack_exports__,{A:()=>__WEBPACK_DEFAULT_EXPORT__});var _css_loader_dist_runtime_sourceMaps_js__WEBPACK_IMPORTED_MODULE_0__=__webpack_require__("./node_modules/css-loader/dist/runtime/sourceMaps.js"),_css_loader_dist_runtime_sourceMaps_js__WEBPACK_IMPORTED_MODULE_0___default=__webpack_require__.n(_css_loader_dist_runtime_sourceMaps_js__WEBPACK_IMPORTED_MODULE_0__),_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1__=__webpack_require__("./node_modules/css-loader/dist/runtime/api.js"),___CSS_LOADER_EXPORT___=__webpack_require__.n(_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1__)()(_css_loader_dist_runtime_sourceMaps_js__WEBPACK_IMPORTED_MODULE_0___default());___CSS_LOADER_EXPORT___.push([module.id,"@keyframes react-loading-skeleton {\n 100% {\n transform: translateX(100%);\n }\n}\n\n.react-loading-skeleton {\n --base-color: #ebebeb;\n --highlight-color: #f5f5f5;\n --animation-duration: 1.5s;\n --animation-direction: normal;\n --pseudo-element-display: block; /* Enable animation */\n\n background-color: var(--base-color);\n\n width: 100%;\n border-radius: 0.25rem;\n display: inline-flex;\n line-height: 1;\n\n position: relative;\n overflow: hidden;\n z-index: 1; /* Necessary for overflow: hidden to work correctly in Safari */\n}\n\n.react-loading-skeleton::after {\n content: ' ';\n display: var(--pseudo-element-display);\n position: absolute;\n top: 0;\n left: 0;\n right: 0;\n height: 100%;\n background-repeat: no-repeat;\n background-image: linear-gradient(\n 90deg,\n var(--base-color),\n var(--highlight-color),\n var(--base-color)\n );\n transform: translateX(-100%);\n\n animation-name: react-loading-skeleton;\n animation-direction: var(--animation-direction);\n animation-duration: var(--animation-duration);\n animation-timing-function: ease-in-out;\n animation-iteration-count: infinite;\n}\n","",{version:3,sources:["webpack://./node_modules/react-loading-skeleton/dist/skeleton.css"],names:[],mappings:"AAAA;IACI;QACI,2BAA2B;IAC/B;AACJ;;AAEA;IACI,qBAAqB;IACrB,0BAA0B;IAC1B,0BAA0B;IAC1B,6BAA6B;IAC7B,+BAA+B,EAAE,qBAAqB;;IAEtD,mCAAmC;;IAEnC,WAAW;IACX,sBAAsB;IACtB,oBAAoB;IACpB,cAAc;;IAEd,kBAAkB;IAClB,gBAAgB;IAChB,UAAU,EAAE,+DAA+D;AAC/E;;AAEA;IACI,YAAY;IACZ,sCAAsC;IACtC,kBAAkB;IAClB,MAAM;IACN,OAAO;IACP,QAAQ;IACR,YAAY;IACZ,4BAA4B;IAC5B;;;;;KAKC;IACD,4BAA4B;;IAE5B,sCAAsC;IACtC,+CAA+C;IAC/C,6CAA6C;IAC7C,sCAAsC;IACtC,mCAAmC;AACvC",sourcesContent:["@keyframes react-loading-skeleton {\n 100% {\n transform: translateX(100%);\n }\n}\n\n.react-loading-skeleton {\n --base-color: #ebebeb;\n --highlight-color: #f5f5f5;\n --animation-duration: 1.5s;\n --animation-direction: normal;\n --pseudo-element-display: block; /* Enable animation */\n\n background-color: var(--base-color);\n\n width: 100%;\n border-radius: 0.25rem;\n display: inline-flex;\n line-height: 1;\n\n position: relative;\n overflow: hidden;\n z-index: 1; /* Necessary for overflow: hidden to work correctly in Safari */\n}\n\n.react-loading-skeleton::after {\n content: ' ';\n display: var(--pseudo-element-display);\n position: absolute;\n top: 0;\n left: 0;\n right: 0;\n height: 100%;\n background-repeat: no-repeat;\n background-image: linear-gradient(\n 90deg,\n var(--base-color),\n var(--highlight-color),\n var(--base-color)\n );\n transform: translateX(-100%);\n\n animation-name: react-loading-skeleton;\n animation-direction: var(--animation-direction);\n animation-duration: var(--animation-duration);\n animation-timing-function: ease-in-out;\n animation-iteration-count: infinite;\n}\n"],sourceRoot:""}]);const __WEBPACK_DEFAULT_EXPORT__=___CSS_LOADER_EXPORT___},"./node_modules/css-loader/dist/runtime/getUrl.js":module=>{module.exports=function(url,options){return options||(options={}),url?(url=String(url.__esModule?url.default:url),/^['"].*['"]$/.test(url)&&(url=url.slice(1,-1)),options.hash&&(url+=options.hash),/["'() \t\n]|(%20)/.test(url)||options.needQuotes?'"'.concat(url.replace(/"/g,'\\"').replace(/\n/g,"\\n"),'"'):url):url}},"./node_modules/react-loading-skeleton/dist/skeleton.css":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{__webpack_require__.r(__webpack_exports__),__webpack_require__.d(__webpack_exports__,{default:()=>__WEBPACK_DEFAULT_EXPORT__});var _style_loader_dist_runtime_injectStylesIntoStyleTag_js__WEBPACK_IMPORTED_MODULE_0__=__webpack_require__("./node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js"),_style_loader_dist_runtime_injectStylesIntoStyleTag_js__WEBPACK_IMPORTED_MODULE_0___default=__webpack_require__.n(_style_loader_dist_runtime_injectStylesIntoStyleTag_js__WEBPACK_IMPORTED_MODULE_0__),_style_loader_dist_runtime_styleDomAPI_js__WEBPACK_IMPORTED_MODULE_1__=__webpack_require__("./node_modules/style-loader/dist/runtime/styleDomAPI.js"),_style_loader_dist_runtime_styleDomAPI_js__WEBPACK_IMPORTED_MODULE_1___default=__webpack_require__.n(_style_loader_dist_runtime_styleDomAPI_js__WEBPACK_IMPORTED_MODULE_1__),_style_loader_dist_runtime_insertBySelector_js__WEBPACK_IMPORTED_MODULE_2__=__webpack_require__("./node_modules/style-loader/dist/runtime/insertBySelector.js"),_style_loader_dist_runtime_insertBySelector_js__WEBPACK_IMPORTED_MODULE_2___default=__webpack_require__.n(_style_loader_dist_runtime_insertBySelector_js__WEBPACK_IMPORTED_MODULE_2__),_style_loader_dist_runtime_setAttributesWithoutAttributes_js__WEBPACK_IMPORTED_MODULE_3__=__webpack_require__("./node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js"),_style_loader_dist_runtime_setAttributesWithoutAttributes_js__WEBPACK_IMPORTED_MODULE_3___default=__webpack_require__.n(_style_loader_dist_runtime_setAttributesWithoutAttributes_js__WEBPACK_IMPORTED_MODULE_3__),_style_loader_dist_runtime_insertStyleElement_js__WEBPACK_IMPORTED_MODULE_4__=__webpack_require__("./node_modules/style-loader/dist/runtime/insertStyleElement.js"),_style_loader_dist_runtime_insertStyleElement_js__WEBPACK_IMPORTED_MODULE_4___default=__webpack_require__.n(_style_loader_dist_runtime_insertStyleElement_js__WEBPACK_IMPORTED_MODULE_4__),_style_loader_dist_runtime_styleTagTransform_js__WEBPACK_IMPORTED_MODULE_5__=__webpack_require__("./node_modules/style-loader/dist/runtime/styleTagTransform.js"),_style_loader_dist_runtime_styleTagTransform_js__WEBPACK_IMPORTED_MODULE_5___default=__webpack_require__.n(_style_loader_dist_runtime_styleTagTransform_js__WEBPACK_IMPORTED_MODULE_5__),_css_loader_dist_cjs_js_skeleton_css__WEBPACK_IMPORTED_MODULE_6__=__webpack_require__("./node_modules/css-loader/dist/cjs.js!./node_modules/react-loading-skeleton/dist/skeleton.css"),options={};options.styleTagTransform=_style_loader_dist_runtime_styleTagTransform_js__WEBPACK_IMPORTED_MODULE_5___default(),options.setAttributes=_style_loader_dist_runtime_setAttributesWithoutAttributes_js__WEBPACK_IMPORTED_MODULE_3___default(),options.insert=_style_loader_dist_runtime_insertBySelector_js__WEBPACK_IMPORTED_MODULE_2___default().bind(null,"head"),options.domAPI=_style_loader_dist_runtime_styleDomAPI_js__WEBPACK_IMPORTED_MODULE_1___default(),options.insertStyleElement=_style_loader_dist_runtime_insertStyleElement_js__WEBPACK_IMPORTED_MODULE_4___default();_style_loader_dist_runtime_injectStylesIntoStyleTag_js__WEBPACK_IMPORTED_MODULE_0___default()(_css_loader_dist_cjs_js_skeleton_css__WEBPACK_IMPORTED_MODULE_6__.A,options);const __WEBPACK_DEFAULT_EXPORT__=_css_loader_dist_cjs_js_skeleton_css__WEBPACK_IMPORTED_MODULE_6__.A&&_css_loader_dist_cjs_js_skeleton_css__WEBPACK_IMPORTED_MODULE_6__.A.locals?_css_loader_dist_cjs_js_skeleton_css__WEBPACK_IMPORTED_MODULE_6__.A.locals:void 0},"./node_modules/bootstrap-sass/assets/fonts/bootstrap/glyphicons-halflings-regular.eot":(module,__unused_webpack_exports,__webpack_require__)=>{module.exports=__webpack_require__.p+"5be1347c682810f199c7.eot"},"./node_modules/bootstrap-sass/assets/fonts/bootstrap/glyphicons-halflings-regular.svg":(module,__unused_webpack_exports,__webpack_require__)=>{module.exports=__webpack_require__.p+"060b2710bdbbe3dfe48b.svg"},"./node_modules/bootstrap-sass/assets/fonts/bootstrap/glyphicons-halflings-regular.ttf":(module,__unused_webpack_exports,__webpack_require__)=>{module.exports=__webpack_require__.p+"4692b9ec53fd5972caa2.ttf"},"./node_modules/bootstrap-sass/assets/fonts/bootstrap/glyphicons-halflings-regular.woff":(module,__unused_webpack_exports,__webpack_require__)=>{module.exports=__webpack_require__.p+"82b1212e45a2bc35dd73.woff"},"./node_modules/bootstrap-sass/assets/fonts/bootstrap/glyphicons-halflings-regular.woff2":(module,__unused_webpack_exports,__webpack_require__)=>{module.exports=__webpack_require__.p+"be810be3a3e14c682a25.woff2"}}]);
//# sourceMappingURL=data:application/json;charset=utf-8;base64,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QUNWLEMsZ3FCQ2hHSVcsd0IsbUZBQTBCLEdBQTRCLCtFQUUxREEsd0JBQXdCekcsS0FBSyxDQUFDMEcsT0FBT0MsR0FBSSwrdENBQWd1QyxHQUFHLENBQUMsUUFBVSxFQUFFLFFBQVUsQ0FBQyxxRUFBcUUsTUFBUSxHQUFHLFNBQVcsMmFBQTJhLGVBQWlCLENBQUMsZ3VDQUFndUMsV0FBYSxNQUV6aUcsd0QsOERDTEFELE9BQU8vRCxRQUFVLFNBQVVpRSxJQUFLQyxTQUs5QixPQUpLQSxVQUNIQSxRQUFVLENBQUMsR0FHUkQsS0FJTEEsSUFBTTdFLE9BQU82RSxJQUFJRSxXQUFhRixJQUFJRyxRQUFVSCxLQUV4QyxlQUFlbEcsS0FBS2tHLE9BQ3RCQSxJQUFNQSxJQUFJdEcsTUFBTSxHQUFJLElBR2xCdUcsUUFBUUcsT0FDVkosS0FBT0MsUUFBUUcsTUFLYixvQkFBb0J0RyxLQUFLa0csTUFBUUMsUUFBUUksV0FDcEMsSUFBS3JCLE9BQU9nQixJQUFJTSxRQUFRLEtBQU0sT0FBT0EsUUFBUSxNQUFPLE9BQVEsS0FHOUROLEtBbkJFQSxHQW9CWCxDLG9oRkNqQklDLFFBQVUsQ0FBQyxFQUVmQSxRQUFRTSxrQkFBb0IsdUZBQzVCTixRQUFRTyxjQUFnQixvR0FFbEJQLFFBQVFRLE9BQVMsMkZBQWMsS0FBTSxRQUUzQ1IsUUFBUVMsT0FBUyxpRkFDakJULFFBQVFVLG1CQUFxQix3RkFFaEIsOEZBQUksb0VBQVNWLFNBS25CLGlDQUFlLHFFQUFXLG9FQUFRVyxPQUFTLG9FQUFRQSxZQUFTQyxDIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vYmxvY2tseS1tb29jLy4vbm9kZV9tb2R1bGVzL3JlYWN0LWxvYWRpbmctc2tlbGV0b24vZGlzdC9pbmRleC5qcyIsIndlYnBhY2s6Ly9ibG9ja2x5LW1vb2MvLi9ub2RlX21vZHVsZXMvcmVhY3QtbG9hZGluZy1za2VsZXRvbi9kaXN0L3NrZWxldG9uLmNzcyIsIndlYnBhY2s6Ly9ibG9ja2x5LW1vb2MvLi9ub2RlX21vZHVsZXMvY3NzLWxvYWRlci9kaXN0L3J1bnRpbWUvZ2V0VXJsLmpzIiwid2VicGFjazovL2Jsb2NrbHktbW9vYy8uL25vZGVfbW9kdWxlcy9yZWFjdC1sb2FkaW5nLXNrZWxldG9uL2Rpc3Qvc2tlbGV0b24uY3NzPzMyOTAiXSwic291cmNlc0NvbnRlbnQiOlsiJ3VzZSBzdHJpY3QnO1xuXG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgJ19fZXNNb2R1bGUnLCB7IHZhbHVlOiB0cnVlIH0pO1xuXG52YXIgUmVhY3QgPSByZXF1aXJlKCdyZWFjdCcpO1xuXG5mdW5jdGlvbiBfaW50ZXJvcERlZmF1bHRMZWdhY3kgKGUpIHsgcmV0dXJuIGUgJiYgdHlwZW9mIGUgPT09ICdvYmplY3QnICYmICdkZWZhdWx0JyBpbiBlID8gZSA6IHsgJ2RlZmF1bHQnOiBlIH07IH1cblxudmFyIFJlYWN0X19kZWZhdWx0ID0gLyojX19QVVJFX18qL19pbnRlcm9wRGVmYXVsdExlZ2FjeShSZWFjdCk7XG5cbi8qKlxuICogQGludGVybmFsXG4gKi9cbmNvbnN0IFNrZWxldG9uVGhlbWVDb250ZXh0ID0gUmVhY3RfX2RlZmF1bHRbXCJkZWZhdWx0XCJdLmNyZWF0ZUNvbnRleHQoe30pO1xuXG4vKiBlc2xpbnQtZGlzYWJsZSByZWFjdC9uby1hcnJheS1pbmRleC1rZXkgKi9cbmNvbnN0IGRlZmF1bHRFbmFibGVBbmltYXRpb24gPSB0cnVlO1xuLy8gRm9yIHBlcmZvcm1hbmNlICYgY2xlYW5saW5lc3MsIGRvbid0IGFkZCBhbnkgaW5saW5lIHN0eWxlcyB1bmxlc3Mgd2UgaGF2ZSB0b1xuZnVuY3Rpb24gc3R5bGVPcHRpb25zVG9Dc3NQcm9wZXJ0aWVzKHsgYmFzZUNvbG9yLCBoaWdobGlnaHRDb2xvciwgd2lkdGgsIGhlaWdodCwgYm9yZGVyUmFkaXVzLCBjaXJjbGUsIGRpcmVjdGlvbiwgZHVyYXRpb24sIGVuYWJsZUFuaW1hdGlvbiA9IGRlZmF1bHRFbmFibGVBbmltYXRpb24sIH0pIHtcbiAgICBjb25zdCBzdHlsZSA9IHt9O1xuICAgIGlmIChkaXJlY3Rpb24gPT09ICdydGwnKVxuICAgICAgICBzdHlsZVsnLS1hbmltYXRpb24tZGlyZWN0aW9uJ10gPSAncmV2ZXJzZSc7XG4gICAgaWYgKHR5cGVvZiBkdXJhdGlvbiA9PT0gJ251bWJlcicpXG4gICAgICAgIHN0eWxlWyctLWFuaW1hdGlvbi1kdXJhdGlvbiddID0gYCR7ZHVyYXRpb259c2A7XG4gICAgaWYgKCFlbmFibGVBbmltYXRpb24pXG4gICAgICAgIHN0eWxlWyctLXBzZXVkby1lbGVtZW50LWRpc3BsYXknXSA9ICdub25lJztcbiAgICBpZiAodHlwZW9mIHdpZHRoID09PSAnc3RyaW5nJyB8fCB0eXBlb2Ygd2lkdGggPT09ICdudW1iZXInKVxuICAgICAgICBzdHlsZS53aWR0aCA9IHdpZHRoO1xuICAgIGlmICh0eXBlb2YgaGVpZ2h0ID09PSAnc3RyaW5nJyB8fCB0eXBlb2YgaGVpZ2h0ID09PSAnbnVtYmVyJylcbiAgICAgICAgc3R5bGUuaGVpZ2h0ID0gaGVpZ2h0O1xuICAgIGlmICh0eXBlb2YgYm9yZGVyUmFkaXVzID09PSAnc3RyaW5nJyB8fCB0eXBlb2YgYm9yZGVyUmFkaXVzID09PSAnbnVtYmVyJylcbiAgICAgICAgc3R5bGUuYm9yZGVyUmFkaXVzID0gYm9yZGVyUmFkaXVzO1xuICAgIGlmIChjaXJjbGUpXG4gICAgICAgIHN0eWxlLmJvcmRlclJhZGl1cyA9ICc1MCUnO1xuICAgIGlmICh0eXBlb2YgYmFzZUNvbG9yICE9PSAndW5kZWZpbmVkJylcbiAgICAgICAgc3R5bGVbJy0tYmFzZS1jb2xvciddID0gYmFzZUNvbG9yO1xuICAgIGlmICh0eXBlb2YgaGlnaGxpZ2h0Q29sb3IgIT09ICd1bmRlZmluZWQnKVxuICAgICAgICBzdHlsZVsnLS1oaWdobGlnaHQtY29sb3InXSA9IGhpZ2hsaWdodENvbG9yO1xuICAgIHJldHVybiBzdHlsZTtcbn1cbmZ1bmN0aW9uIFNrZWxldG9uKHsgY291bnQgPSAxLCB3cmFwcGVyOiBXcmFwcGVyLCBjbGFzc05hbWU6IGN1c3RvbUNsYXNzTmFtZSwgY29udGFpbmVyQ2xhc3NOYW1lLCBjb250YWluZXJUZXN0SWQsIGNpcmNsZSA9IGZhbHNlLCBzdHlsZTogc3R5bGVQcm9wLCAuLi5vcmlnaW5hbFByb3BzU3R5bGVPcHRpb25zIH0pIHtcbiAgICB2YXIgX2EsIF9iLCBfYztcbiAgICBjb25zdCBjb250ZXh0U3R5bGVPcHRpb25zID0gUmVhY3RfX2RlZmF1bHRbXCJkZWZhdWx0XCJdLnVzZUNvbnRleHQoU2tlbGV0b25UaGVtZUNvbnRleHQpO1xuICAgIGNvbnN0IHByb3BzU3R5bGVPcHRpb25zID0geyAuLi5vcmlnaW5hbFByb3BzU3R5bGVPcHRpb25zIH07XG4gICAgLy8gRE8gTk9UIG92ZXJ3cml0ZSBzdHlsZSBvcHRpb25zIGZyb20gdGhlIGNvbnRleHQgaWYgYHByb3BzU3R5bGVPcHRpb25zYFxuICAgIC8vIGhhcyBwcm9wZXJ0aWVzIGV4cGxpY2l0eSBzZXQgdG8gdW5kZWZpbmVkXG4gICAgZm9yIChjb25zdCBba2V5LCB2YWx1ZV0gb2YgT2JqZWN0LmVudHJpZXMob3JpZ2luYWxQcm9wc1N0eWxlT3B0aW9ucykpIHtcbiAgICAgICAgaWYgKHR5cGVvZiB2YWx1ZSA9PT0gJ3VuZGVmaW5lZCcpIHtcbiAgICAgICAgICAgIGRlbGV0ZSBwcm9wc1N0eWxlT3B0aW9uc1trZXldO1xuICAgICAgICB9XG4gICAgfVxuICAgIC8vIFByb3BzIHRha2UgcHJpb3JpdHkgb3ZlciBjb250ZXh0XG4gICAgY29uc3Qgc3R5bGVPcHRpb25zID0ge1xuICAgICAgICAuLi5jb250ZXh0U3R5bGVPcHRpb25zLFxuICAgICAgICAuLi5wcm9wc1N0eWxlT3B0aW9ucyxcbiAgICAgICAgY2lyY2xlLFxuICAgIH07XG4gICAgLy8gYHN0eWxlUHJvcGAgaGFzIHRoZSBsZWFzdCBwcmlvcml0eSBvdXQgb2YgZXZlcnl0aGluZ1xuICAgIGNvbnN0IHN0eWxlID0ge1xuICAgICAgICAuLi5zdHlsZVByb3AsXG4gICAgICAgIC4uLnN0eWxlT3B0aW9uc1RvQ3NzUHJvcGVydGllcyhzdHlsZU9wdGlvbnMpLFxuICAgIH07XG4gICAgbGV0IGNsYXNzTmFtZSA9ICdyZWFjdC1sb2FkaW5nLXNrZWxldG9uJztcbiAgICBpZiAoY3VzdG9tQ2xhc3NOYW1lKVxuICAgICAgICBjbGFzc05hbWUgKz0gYCAke2N1c3RvbUNsYXNzTmFtZX1gO1xuICAgIGNvbnN0IGlubGluZSA9IChfYSA9IHN0eWxlT3B0aW9ucy5pbmxpbmUpICE9PSBudWxsICYmIF9hICE9PSB2b2lkIDAgPyBfYSA6IGZhbHNlO1xuICAgIGNvbnN0IGVsZW1lbnRzID0gW107XG4gICAgY29uc3QgY291bnRDZWlsID0gTWF0aC5jZWlsKGNvdW50KTtcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IGNvdW50Q2VpbDsgaSsrKSB7XG4gICAgICAgIGxldCB0aGlzU3R5bGUgPSBzdHlsZTtcbiAgICAgICAgaWYgKGNvdW50Q2VpbCA+IGNvdW50ICYmIGkgPT09IGNvdW50Q2VpbCAtIDEpIHtcbiAgICAgICAgICAgIC8vIGNvdW50IGlzIG5vdCBhbiBpbnRlZ2VyIGFuZCB3ZSd2ZSByZWFjaGVkIHRoZSBsYXN0IGl0ZXJhdGlvbiBvZlxuICAgICAgICAgICAgLy8gdGhlIGxvb3AsIHNvIGFkZCBhIFwiZnJhY3Rpb25hbFwiIHNrZWxldG9uLlxuICAgICAgICAgICAgLy9cbiAgICAgICAgICAgIC8vIEZvciBleGFtcGxlLCBpZiBjb3VudCBpcyAzLjUsIHdlJ3ZlIGFscmVhZHkgYWRkZWQgMyBmdWxsXG4gICAgICAgICAgICAvLyBza2VsZXRvbnMsIHNvIG5vdyB3ZSBhZGQgb25lIG1vcmUgc2tlbGV0b24gdGhhdCBpcyAwLjUgdGltZXMgdGhlXG4gICAgICAgICAgICAvLyBvcmlnaW5hbCB3aWR0aC5cbiAgICAgICAgICAgIGNvbnN0IHdpZHRoID0gKF9iID0gdGhpc1N0eWxlLndpZHRoKSAhPT0gbnVsbCAmJiBfYiAhPT0gdm9pZCAwID8gX2IgOiAnMTAwJSc7IC8vIDEwMCUgaXMgdGhlIGRlZmF1bHQgc2luY2UgdGhhdCdzIHdoYXQncyBpbiB0aGUgQ1NTXG4gICAgICAgICAgICBjb25zdCBmcmFjdGlvbmFsUGFydCA9IGNvdW50ICUgMTtcbiAgICAgICAgICAgIGNvbnN0IGZyYWN0aW9uYWxXaWR0aCA9IHR5cGVvZiB3aWR0aCA9PT0gJ251bWJlcidcbiAgICAgICAgICAgICAgICA/IHdpZHRoICogZnJhY3Rpb25hbFBhcnRcbiAgICAgICAgICAgICAgICA6IGBjYWxjKCR7d2lkdGh9ICogJHtmcmFjdGlvbmFsUGFydH0pYDtcbiAgICAgICAgICAgIHRoaXNTdHlsZSA9IHsgLi4udGhpc1N0eWxlLCB3aWR0aDogZnJhY3Rpb25hbFdpZHRoIH07XG4gICAgICAgIH1cbiAgICAgICAgY29uc3Qgc2tlbGV0b25TcGFuID0gKFJlYWN0X19kZWZhdWx0W1wiZGVmYXVsdFwiXS5jcmVhdGVFbGVtZW50KFwic3BhblwiLCB7IGNsYXNzTmFtZTogY2xhc3NOYW1lLCBzdHlsZTogdGhpc1N0eWxlLCBrZXk6IGkgfSwgXCJcXHUyMDBDXCIpKTtcbiAgICAgICAgaWYgKGlubGluZSkge1xuICAgICAgICAgICAgZWxlbWVudHMucHVzaChza2VsZXRvblNwYW4pO1xuICAgICAgICB9XG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgLy8gV2l0aG91dCB0aGUgPGJyIC8+LCB0aGUgc2tlbGV0b24gbGluZXMgd2lsbCBhbGwgcnVuIHRvZ2V0aGVyIGlmXG4gICAgICAgICAgICAvLyBgd2lkdGhgIGlzIHNwZWNpZmllZFxuICAgICAgICAgICAgZWxlbWVudHMucHVzaChSZWFjdF9fZGVmYXVsdFtcImRlZmF1bHRcIl0uY3JlYXRlRWxlbWVudChSZWFjdF9fZGVmYXVsdFtcImRlZmF1bHRcIl0uRnJhZ21lbnQsIHsga2V5OiBpIH0sXG4gICAgICAgICAgICAgICAgc2tlbGV0b25TcGFuLFxuICAgICAgICAgICAgICAgIFJlYWN0X19kZWZhdWx0W1wiZGVmYXVsdFwiXS5jcmVhdGVFbGVtZW50KFwiYnJcIiwgbnVsbCkpKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gKFJlYWN0X19kZWZhdWx0W1wiZGVmYXVsdFwiXS5jcmVhdGVFbGVtZW50KFwic3BhblwiLCB7IGNsYXNzTmFtZTogY29udGFpbmVyQ2xhc3NOYW1lLCBcImRhdGEtdGVzdGlkXCI6IGNvbnRhaW5lclRlc3RJZCwgXCJhcmlhLWxpdmVcIjogXCJwb2xpdGVcIiwgXCJhcmlhLWJ1c3lcIjogKF9jID0gc3R5bGVPcHRpb25zLmVuYWJsZUFuaW1hdGlvbikgIT09IG51bGwgJiYgX2MgIT09IHZvaWQgMCA/IF9jIDogZGVmYXVsdEVuYWJsZUFuaW1hdGlvbiB9LCBXcmFwcGVyXG4gICAgICAgID8gZWxlbWVudHMubWFwKChlbCwgaSkgPT4gUmVhY3RfX2RlZmF1bHRbXCJkZWZhdWx0XCJdLmNyZWF0ZUVsZW1lbnQoV3JhcHBlciwgeyBrZXk6IGkgfSwgZWwpKVxuICAgICAgICA6IGVsZW1lbnRzKSk7XG59XG5cbmZ1bmN0aW9uIFNrZWxldG9uVGhlbWUoeyBjaGlsZHJlbiwgLi4uc3R5bGVPcHRpb25zIH0pIHtcbiAgICByZXR1cm4gKFJlYWN0X19kZWZhdWx0W1wiZGVmYXVsdFwiXS5jcmVhdGVFbGVtZW50KFNrZWxldG9uVGhlbWVDb250ZXh0LlByb3ZpZGVyLCB7IHZhbHVlOiBzdHlsZU9wdGlvbnMgfSwgY2hpbGRyZW4pKTtcbn1cblxuZXhwb3J0cy5Ta2VsZXRvblRoZW1lID0gU2tlbGV0b25UaGVtZTtcbmV4cG9ydHNbXCJkZWZhdWx0XCJdID0gU2tlbGV0b247XG4iLCIvLyBJbXBvcnRzXG5pbXBvcnQgX19fQ1NTX0xPQURFUl9BUElfU09VUkNFTUFQX0lNUE9SVF9fXyBmcm9tIFwiLi4vLi4vY3NzLWxvYWRlci9kaXN0L3J1bnRpbWUvc291cmNlTWFwcy5qc1wiO1xuaW1wb3J0IF9fX0NTU19MT0FERVJfQVBJX0lNUE9SVF9fXyBmcm9tIFwiLi4vLi4vY3NzLWxvYWRlci9kaXN0L3J1bnRpbWUvYXBpLmpzXCI7XG52YXIgX19fQ1NTX0xPQURFUl9FWFBPUlRfX18gPSBfX19DU1NfTE9BREVSX0FQSV9JTVBPUlRfX18oX19fQ1NTX0xPQURFUl9BUElfU09VUkNFTUFQX0lNUE9SVF9fXyk7XG4vLyBNb2R1bGVcbl9fX0NTU19MT0FERVJfRVhQT1JUX19fLnB1c2goW21vZHVsZS5pZCwgXCJAa2V5ZnJhbWVzIHJlYWN0LWxvYWRpbmctc2tlbGV0b24ge1xcbiAgICAxMDAlIHtcXG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgxMDAlKTtcXG4gICAgfVxcbn1cXG5cXG4ucmVhY3QtbG9hZGluZy1za2VsZXRvbiB7XFxuICAgIC0tYmFzZS1jb2xvcjogI2ViZWJlYjtcXG4gICAgLS1oaWdobGlnaHQtY29sb3I6ICNmNWY1ZjU7XFxuICAgIC0tYW5pbWF0aW9uLWR1cmF0aW9uOiAxLjVzO1xcbiAgICAtLWFuaW1hdGlvbi1kaXJlY3Rpb246IG5vcm1hbDtcXG4gICAgLS1wc2V1ZG8tZWxlbWVudC1kaXNwbGF5OiBibG9jazsgLyogRW5hYmxlIGFuaW1hdGlvbiAqL1xcblxcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1iYXNlLWNvbG9yKTtcXG5cXG4gICAgd2lkdGg6IDEwMCU7XFxuICAgIGJvcmRlci1yYWRpdXM6IDAuMjVyZW07XFxuICAgIGRpc3BsYXk6IGlubGluZS1mbGV4O1xcbiAgICBsaW5lLWhlaWdodDogMTtcXG5cXG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xcbiAgICB6LWluZGV4OiAxOyAvKiBOZWNlc3NhcnkgZm9yIG92ZXJmbG93OiBoaWRkZW4gdG8gd29yayBjb3JyZWN0bHkgaW4gU2FmYXJpICovXFxufVxcblxcbi5yZWFjdC1sb2FkaW5nLXNrZWxldG9uOjphZnRlciB7XFxuICAgIGNvbnRlbnQ6ICcgJztcXG4gICAgZGlzcGxheTogdmFyKC0tcHNldWRvLWVsZW1lbnQtZGlzcGxheSk7XFxuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcXG4gICAgdG9wOiAwO1xcbiAgICBsZWZ0OiAwO1xcbiAgICByaWdodDogMDtcXG4gICAgaGVpZ2h0OiAxMDAlO1xcbiAgICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xcbiAgICBiYWNrZ3JvdW5kLWltYWdlOiBsaW5lYXItZ3JhZGllbnQoXFxuICAgICAgICA5MGRlZyxcXG4gICAgICAgIHZhcigtLWJhc2UtY29sb3IpLFxcbiAgICAgICAgdmFyKC0taGlnaGxpZ2h0LWNvbG9yKSxcXG4gICAgICAgIHZhcigtLWJhc2UtY29sb3IpXFxuICAgICk7XFxuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtMTAwJSk7XFxuXFxuICAgIGFuaW1hdGlvbi1uYW1lOiByZWFjdC1sb2FkaW5nLXNrZWxldG9uO1xcbiAgICBhbmltYXRpb24tZGlyZWN0aW9uOiB2YXIoLS1hbmltYXRpb24tZGlyZWN0aW9uKTtcXG4gICAgYW5pbWF0aW9uLWR1cmF0aW9uOiB2YXIoLS1hbmltYXRpb24tZHVyYXRpb24pO1xcbiAgICBhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBlYXNlLWluLW91dDtcXG4gICAgYW5pbWF0aW9uLWl0ZXJhdGlvbi1jb3VudDogaW5maW5pdGU7XFxufVxcblwiLCBcIlwiLHtcInZlcnNpb25cIjozLFwic291cmNlc1wiOltcIndlYnBhY2s6Ly8uL25vZGVfbW9kdWxlcy9yZWFjdC1sb2FkaW5nLXNrZWxldG9uL2Rpc3Qvc2tlbGV0b24uY3NzXCJdLFwibmFtZXNcIjpbXSxcIm1hcHBpbmdzXCI6XCJBQUFBO0lBQ0k7UUFDSSwyQkFBMkI7SUFDL0I7QUFDSjs7QUFFQTtJQUNJLHFCQUFxQjtJQUNyQiwwQkFBMEI7SUFDMUIsMEJBQTBCO0lBQzFCLDZCQUE2QjtJQUM3QiwrQkFBK0IsRUFBRSxxQkFBcUI7O0lBRXRELG1DQUFtQzs7SUFFbkMsV0FBVztJQUNYLHNCQUFzQjtJQUN0QixvQkFBb0I7SUFDcEIsY0FBYzs7SUFFZCxrQkFBa0I7SUFDbEIsZ0JBQWdCO0lBQ2hCLFVBQVUsRUFBRSwrREFBK0Q7QUFDL0U7O0FBRUE7SUFDSSxZQUFZO0lBQ1osc0NBQXNDO0lBQ3RDLGtCQUFrQjtJQUNsQixNQUFNO0lBQ04sT0FBTztJQUNQLFFBQVE7SUFDUixZQUFZO0lBQ1osNEJBQTRCO0lBQzVCOzs7OztLQUtDO0lBQ0QsNEJBQTRCOztJQUU1QixzQ0FBc0M7SUFDdEMsK0NBQStDO0lBQy9DLDZDQUE2QztJQUM3QyxzQ0FBc0M7SUFDdEMsbUNBQW1DO0FBQ3ZDXCIsXCJzb3VyY2VzQ29udGVudFwiOltcIkBrZXlmcmFtZXMgcmVhY3QtbG9hZGluZy1za2VsZXRvbiB7XFxuICAgIDEwMCUge1xcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDEwMCUpO1xcbiAgICB9XFxufVxcblxcbi5yZWFjdC1sb2FkaW5nLXNrZWxldG9uIHtcXG4gICAgLS1iYXNlLWNvbG9yOiAjZWJlYmViO1xcbiAgICAtLWhpZ2hsaWdodC1jb2xvcjogI2Y1ZjVmNTtcXG4gICAgLS1hbmltYXRpb24tZHVyYXRpb246IDEuNXM7XFxuICAgIC0tYW5pbWF0aW9uLWRpcmVjdGlvbjogbm9ybWFsO1xcbiAgICAtLXBzZXVkby1lbGVtZW50LWRpc3BsYXk6IGJsb2NrOyAvKiBFbmFibGUgYW5pbWF0aW9uICovXFxuXFxuICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWJhc2UtY29sb3IpO1xcblxcbiAgICB3aWR0aDogMTAwJTtcXG4gICAgYm9yZGVyLXJhZGl1czogMC4yNXJlbTtcXG4gICAgZGlzcGxheTogaW5saW5lLWZsZXg7XFxuICAgIGxpbmUtaGVpZ2h0OiAxO1xcblxcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XFxuICAgIG92ZXJmbG93OiBoaWRkZW47XFxuICAgIHotaW5kZXg6IDE7IC8qIE5lY2Vzc2FyeSBmb3Igb3ZlcmZsb3c6IGhpZGRlbiB0byB3b3JrIGNvcnJlY3RseSBpbiBTYWZhcmkgKi9cXG59XFxuXFxuLnJlYWN0LWxvYWRpbmctc2tlbGV0b246OmFmdGVyIHtcXG4gICAgY29udGVudDogJyAnO1xcbiAgICBkaXNwbGF5OiB2YXIoLS1wc2V1ZG8tZWxlbWVudC1kaXNwbGF5KTtcXG4gICAgcG9zaXRpb246IGFic29sdXRlO1xcbiAgICB0b3A6IDA7XFxuICAgIGxlZnQ6IDA7XFxuICAgIHJpZ2h0OiAwO1xcbiAgICBoZWlnaHQ6IDEwMCU7XFxuICAgIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XFxuICAgIGJhY2tncm91bmQtaW1hZ2U6IGxpbmVhci1ncmFkaWVudChcXG4gICAgICAgIDkwZGVnLFxcbiAgICAgICAgdmFyKC0tYmFzZS1jb2xvciksXFxuICAgICAgICB2YXIoLS1oaWdobGlnaHQtY29sb3IpLFxcbiAgICAgICAgdmFyKC0tYmFzZS1jb2xvcilcXG4gICAgKTtcXG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC0xMDAlKTtcXG5cXG4gICAgYW5pbWF0aW9uLW5hbWU6IHJlYWN0LWxvYWRpbmctc2tlbGV0b247XFxuICAgIGFuaW1hdGlvbi1kaXJlY3Rpb246IHZhcigtLWFuaW1hdGlvbi1kaXJlY3Rpb24pO1xcbiAgICBhbmltYXRpb24tZHVyYXRpb246IHZhcigtLWFuaW1hdGlvbi1kdXJhdGlvbik7XFxuICAgIGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGVhc2UtaW4tb3V0O1xcbiAgICBhbmltYXRpb24taXRlcmF0aW9uLWNvdW50OiBpbmZpbml0ZTtcXG59XFxuXCJdLFwic291cmNlUm9vdFwiOlwiXCJ9XSk7XG4vLyBFeHBvcnRzXG5leHBvcnQgZGVmYXVsdCBfX19DU1NfTE9BREVSX0VYUE9SVF9fXztcbiIsIlwidXNlIHN0cmljdFwiO1xuXG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uICh1cmwsIG9wdGlvbnMpIHtcbiAgaWYgKCFvcHRpb25zKSB7XG4gICAgb3B0aW9ucyA9IHt9O1xuICB9XG5cbiAgaWYgKCF1cmwpIHtcbiAgICByZXR1cm4gdXJsO1xuICB9XG5cbiAgdXJsID0gU3RyaW5nKHVybC5fX2VzTW9kdWxlID8gdXJsLmRlZmF1bHQgOiB1cmwpOyAvLyBJZiB1cmwgaXMgYWxyZWFkeSB3cmFwcGVkIGluIHF1b3RlcywgcmVtb3ZlIHRoZW1cblxuICBpZiAoL15bJ1wiXS4qWydcIl0kLy50ZXN0KHVybCkpIHtcbiAgICB1cmwgPSB1cmwuc2xpY2UoMSwgLTEpO1xuICB9XG5cbiAgaWYgKG9wdGlvbnMuaGFzaCkge1xuICAgIHVybCArPSBvcHRpb25zLmhhc2g7XG4gIH0gLy8gU2hvdWxkIHVybCBiZSB3cmFwcGVkP1xuICAvLyBTZWUgaHR0cHM6Ly9kcmFmdHMuY3Nzd2cub3JnL2Nzcy12YWx1ZXMtMy8jdXJsc1xuXG5cbiAgaWYgKC9bXCInKCkgXFx0XFxuXXwoJTIwKS8udGVzdCh1cmwpIHx8IG9wdGlvbnMubmVlZFF1b3Rlcykge1xuICAgIHJldHVybiBcIlxcXCJcIi5jb25jYXQodXJsLnJlcGxhY2UoL1wiL2csICdcXFxcXCInKS5yZXBsYWNlKC9cXG4vZywgXCJcXFxcblwiKSwgXCJcXFwiXCIpO1xuICB9XG5cbiAgcmV0dXJuIHVybDtcbn07IiwiXG4gICAgICBpbXBvcnQgQVBJIGZyb20gXCIhLi4vLi4vc3R5bGUtbG9hZGVyL2Rpc3QvcnVudGltZS9pbmplY3RTdHlsZXNJbnRvU3R5bGVUYWcuanNcIjtcbiAgICAgIGltcG9ydCBkb21BUEkgZnJvbSBcIiEuLi8uLi9zdHlsZS1sb2FkZXIvZGlzdC9ydW50aW1lL3N0eWxlRG9tQVBJLmpzXCI7XG4gICAgICBpbXBvcnQgaW5zZXJ0Rm4gZnJvbSBcIiEuLi8uLi9zdHlsZS1sb2FkZXIvZGlzdC9ydW50aW1lL2luc2VydEJ5U2VsZWN0b3IuanNcIjtcbiAgICAgIGltcG9ydCBzZXRBdHRyaWJ1dGVzIGZyb20gXCIhLi4vLi4vc3R5bGUtbG9hZGVyL2Rpc3QvcnVudGltZS9zZXRBdHRyaWJ1dGVzV2l0aG91dEF0dHJpYnV0ZXMuanNcIjtcbiAgICAgIGltcG9ydCBpbnNlcnRTdHlsZUVsZW1lbnQgZnJvbSBcIiEuLi8uLi9zdHlsZS1sb2FkZXIvZGlzdC9ydW50aW1lL2luc2VydFN0eWxlRWxlbWVudC5qc1wiO1xuICAgICAgaW1wb3J0IHN0eWxlVGFnVHJhbnNmb3JtRm4gZnJvbSBcIiEuLi8uLi9zdHlsZS1sb2FkZXIvZGlzdC9ydW50aW1lL3N0eWxlVGFnVHJhbnNmb3JtLmpzXCI7XG4gICAgICBpbXBvcnQgY29udGVudCwgKiBhcyBuYW1lZEV4cG9ydCBmcm9tIFwiISEuLi8uLi9jc3MtbG9hZGVyL2Rpc3QvY2pzLmpzIS4vc2tlbGV0b24uY3NzXCI7XG4gICAgICBcbiAgICAgIFxuXG52YXIgb3B0aW9ucyA9IHt9O1xuXG5vcHRpb25zLnN0eWxlVGFnVHJhbnNmb3JtID0gc3R5bGVUYWdUcmFuc2Zvcm1Gbjtcbm9wdGlvbnMuc2V0QXR0cmlidXRlcyA9IHNldEF0dHJpYnV0ZXM7XG5cbiAgICAgIG9wdGlvbnMuaW5zZXJ0ID0gaW5zZXJ0Rm4uYmluZChudWxsLCBcImhlYWRcIik7XG4gICAgXG5vcHRpb25zLmRvbUFQSSA9IGRvbUFQSTtcbm9wdGlvbnMuaW5zZXJ0U3R5bGVFbGVtZW50ID0gaW5zZXJ0U3R5bGVFbGVtZW50O1xuXG52YXIgdXBkYXRlID0gQVBJKGNvbnRlbnQsIG9wdGlvbnMpO1xuXG5cblxuZXhwb3J0ICogZnJvbSBcIiEhLi4vLi4vY3NzLWxvYWRlci9kaXN0L2Nqcy5qcyEuL3NrZWxldG9uLmNzc1wiO1xuICAgICAgIGV4cG9ydCBkZWZhdWx0IGNvbnRlbnQgJiYgY29udGVudC5sb2NhbHMgPyBjb250ZW50LmxvY2FscyA6IHVuZGVmaW5lZDtcbiJdLCJuYW1lcyI6WyJfZXhjbHVkZWQiLCJfZXhjbHVkZWQyIiwiX3NsaWNlZFRvQXJyYXkiLCJyIiwiZSIsIl9hcnJheVdpdGhIb2xlcyIsIkFycmF5IiwiaXNBcnJheSIsIl9pdGVyYWJsZVRvQXJyYXlMaW1pdCIsImwiLCJ0IiwiU3ltYm9sIiwiaXRlcmF0b3IiLCJuIiwiaSIsInUiLCJhIiwiZiIsIm8iLCJjYWxsIiwibmV4dCIsIk9iamVjdCIsImRvbmUiLCJwdXNoIiwidmFsdWUiLCJsZW5ndGgiLCJfdW5zdXBwb3J0ZWRJdGVyYWJsZVRvQXJyYXkiLCJfYXJyYXlMaWtlVG9BcnJheSIsInRvU3RyaW5nIiwic2xpY2UiLCJjb25zdHJ1Y3RvciIsIm5hbWUiLCJmcm9tIiwidGVzdCIsIl9ub25JdGVyYWJsZVJlc3QiLCJUeXBlRXJyb3IiLCJvd25LZXlzIiwia2V5cyIsImdldE93blByb3BlcnR5U3ltYm9scyIsImZpbHRlciIsImdldE93blByb3BlcnR5RGVzY3JpcHRvciIsImVudW1lcmFibGUiLCJhcHBseSIsIl9vYmplY3RTcHJlYWQiLCJhcmd1bWVudHMiLCJmb3JFYWNoIiwiX2RlZmluZVByb3BlcnR5IiwiZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9ycyIsImRlZmluZVByb3BlcnRpZXMiLCJkZWZpbmVQcm9wZXJ0eSIsIl90b1Byb3BlcnR5S2V5IiwiX3RvUHJpbWl0aXZlIiwiX3R5cGVvZiIsInRvUHJpbWl0aXZlIiwiU3RyaW5nIiwiTnVtYmVyIiwiY29uZmlndXJhYmxlIiwid3JpdGFibGUiLCJfb2JqZWN0V2l0aG91dFByb3BlcnRpZXMiLCJfb2JqZWN0V2l0aG91dFByb3BlcnRpZXNMb29zZSIsImhhc093blByb3BlcnR5IiwiaW5jbHVkZXMiLCJzIiwicHJvcGVydHlJc0VudW1lcmFibGUiLCJwcm90b3R5cGUiLCJfaW50ZXJvcERlZmF1bHRMZWdhY3kiLCJleHBvcnRzIiwiUmVhY3RfX2RlZmF1bHQiLCJyZXF1aXJlIiwiU2tlbGV0b25UaGVtZUNvbnRleHQiLCJjcmVhdGVDb250ZXh0IiwiZGVmYXVsdEVuYWJsZUFuaW1hdGlvbiIsIlNrZWxldG9uVGhlbWUiLCJfcmVmMyIsImNoaWxkcmVuIiwic3R5bGVPcHRpb25zIiwiY3JlYXRlRWxlbWVudCIsIlByb3ZpZGVyIiwiU2tlbGV0b24iLCJfcmVmMiIsIl9hIiwiX2IiLCJfYyIsIl9yZWYyJGNvdW50IiwiY291bnQiLCJXcmFwcGVyIiwid3JhcHBlciIsImN1c3RvbUNsYXNzTmFtZSIsImNsYXNzTmFtZSIsImNvbnRhaW5lckNsYXNzTmFtZSIsImNvbnRhaW5lclRlc3RJZCIsIl9yZWYyJGNpcmNsZSIsImNpcmNsZSIsInN0eWxlUHJvcCIsInN0eWxlIiwib3JpZ2luYWxQcm9wc1N0eWxlT3B0aW9ucyIsImNvbnRleHRTdHlsZU9wdGlvbnMiLCJ1c2VDb250ZXh0IiwicHJvcHNTdHlsZU9wdGlvbnMiLCJfaSIsIl9PYmplY3QkZW50cmllcyIsImVudHJpZXMiLCJfT2JqZWN0JGVudHJpZXMkX2kiLCJrZXkiLCJzdHlsZU9wdGlvbnNUb0Nzc1Byb3BlcnRpZXMiLCJfcmVmIiwiYmFzZUNvbG9yIiwiaGlnaGxpZ2h0Q29sb3IiLCJ3aWR0aCIsImhlaWdodCIsImJvcmRlclJhZGl1cyIsImRpcmVjdGlvbiIsImR1cmF0aW9uIiwiX3JlZiRlbmFibGVBbmltYXRpb24iLCJlbmFibGVBbmltYXRpb24iLCJjb25jYXQiLCJpbmxpbmUiLCJlbGVtZW50cyIsImNvdW50Q2VpbCIsIk1hdGgiLCJjZWlsIiwidGhpc1N0eWxlIiwiZnJhY3Rpb25hbFBhcnQiLCJmcmFjdGlvbmFsV2lkdGgiLCJza2VsZXRvblNwYW4iLCJGcmFnbWVudCIsIm1hcCIsImVsIiwiX19fQ1NTX0xPQURFUl9FWFBPUlRfX18iLCJtb2R1bGUiLCJpZCIsInVybCIsIm9wdGlvbnMiLCJfX2VzTW9kdWxlIiwiZGVmYXVsdCIsImhhc2giLCJuZWVkUXVvdGVzIiwicmVwbGFjZSIsInN0eWxlVGFnVHJhbnNmb3JtIiwic2V0QXR0cmlidXRlcyIsImluc2VydCIsImRvbUFQSSIsImluc2VydFN0eWxlRWxlbWVudCIsImxvY2FscyIsInVuZGVmaW5lZCJdLCJzb3VyY2VSb290IjoiIn0=