-
Notifications
You must be signed in to change notification settings - Fork 3
Expand file tree
/
Copy path1742.d5b67856.iframe.bundle.js
More file actions
2 lines (2 loc) · 38.5 KB
/
1742.d5b67856.iframe.bundle.js
File metadata and controls
2 lines (2 loc) · 38.5 KB
1
2
"use strict";(self.webpackChunkblockly_mooc=self.webpackChunkblockly_mooc||[]).push([[1742],{"./node_modules/css-loader/dist/cjs.js!../frontend/packages/fonts/dist/locales/hi-IN/index.module.css":(module,__webpack_exports__,__webpack_require__)=>{__webpack_require__.d(__webpack_exports__,{A:()=>__WEBPACK_DEFAULT_EXPORT__});var _apps_node_modules_css_loader_dist_runtime_sourceMaps_js__WEBPACK_IMPORTED_MODULE_0__=__webpack_require__("./node_modules/css-loader/dist/runtime/sourceMaps.js"),_apps_node_modules_css_loader_dist_runtime_sourceMaps_js__WEBPACK_IMPORTED_MODULE_0___default=__webpack_require__.n(_apps_node_modules_css_loader_dist_runtime_sourceMaps_js__WEBPACK_IMPORTED_MODULE_0__),_apps_node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1__=__webpack_require__("./node_modules/css-loader/dist/runtime/api.js"),_apps_node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1___default=__webpack_require__.n(_apps_node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1__),_apps_node_modules_css_loader_dist_runtime_getUrl_js__WEBPACK_IMPORTED_MODULE_2__=__webpack_require__("./node_modules/css-loader/dist/runtime/getUrl.js"),_apps_node_modules_css_loader_dist_runtime_getUrl_js__WEBPACK_IMPORTED_MODULE_2___default=__webpack_require__.n(_apps_node_modules_css_loader_dist_runtime_getUrl_js__WEBPACK_IMPORTED_MODULE_2__),___CSS_LOADER_URL_IMPORT_0___=new URL(__webpack_require__("../frontend/packages/fonts/dist/locales/noto-sans-devanagari-devanagari-wght-normal-TPG72K6R.woff2"),__webpack_require__.b),___CSS_LOADER_URL_IMPORT_1___=new URL(__webpack_require__("../frontend/packages/fonts/dist/locales/noto-sans-devanagari-latin-wght-normal-4YKSKMCG.woff2"),__webpack_require__.b),___CSS_LOADER_URL_IMPORT_2___=new URL(__webpack_require__("../frontend/packages/fonts/dist/locales/noto-sans-devanagari-latin-ext-wght-normal-FHTMP53D.woff2"),__webpack_require__.b),___CSS_LOADER_EXPORT___=_apps_node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1___default()(_apps_node_modules_css_loader_dist_runtime_sourceMaps_js__WEBPACK_IMPORTED_MODULE_0___default()),___CSS_LOADER_URL_REPLACEMENT_0___=_apps_node_modules_css_loader_dist_runtime_getUrl_js__WEBPACK_IMPORTED_MODULE_2___default()(___CSS_LOADER_URL_IMPORT_0___),___CSS_LOADER_URL_REPLACEMENT_1___=_apps_node_modules_css_loader_dist_runtime_getUrl_js__WEBPACK_IMPORTED_MODULE_2___default()(___CSS_LOADER_URL_IMPORT_1___),___CSS_LOADER_URL_REPLACEMENT_2___=_apps_node_modules_css_loader_dist_runtime_getUrl_js__WEBPACK_IMPORTED_MODULE_2___default()(___CSS_LOADER_URL_IMPORT_2___);___CSS_LOADER_EXPORT___.push([module.id,'/* src/locales/hi-IN/index.module.scss */\n@font-face {\n font-family: "Noto Sans Devanagari";\n font-style: normal;\n font-display: swap;\n font-weight: 100 900;\n unicode-range:\n U+0900-097F,\n U+1CD0-1CF9,\n U+200C-200D,\n U+20A8,\n U+20B9,\n U+20F0,\n U+25CC,\n U+A830-A839,\n U+A8E0-A8FF,\n U+11B00-11B09;\n src: url('+___CSS_LOADER_URL_REPLACEMENT_0___+') format("woff2-variations");\n}\n@font-face {\n font-family: "Noto Sans Devanagari";\n font-style: normal;\n font-display: swap;\n font-weight: 100 900;\n unicode-range:\n U+0000-00FF,\n U+0131,\n U+0152-0153,\n U+02BB-02BC,\n U+02C6,\n U+02DA,\n U+02DC,\n U+0304,\n U+0308,\n U+0329,\n U+2000-206F,\n U+20AC,\n U+2122,\n U+2191,\n U+2193,\n U+2212,\n U+2215,\n U+FEFF,\n U+FFFD;\n src: url('+___CSS_LOADER_URL_REPLACEMENT_1___+') format("woff2-variations");\n}\n@font-face {\n font-family: "Noto Sans Devanagari";\n font-style: normal;\n font-display: swap;\n font-weight: 100 900;\n unicode-range:\n U+0100-02BA,\n U+02BD-02C5,\n U+02C7-02CC,\n U+02CE-02D7,\n U+02DD-02FF,\n U+0304,\n U+0308,\n U+0329,\n U+1D00-1DBF,\n U+1E00-1E9F,\n U+1EF2-1EFF,\n U+2020,\n U+20A0-20AB,\n U+20AD-20C0,\n U+2113,\n U+2C60-2C7F,\n U+A720-A7FF;\n src: url('+___CSS_LOADER_URL_REPLACEMENT_2___+') format("woff2-variations");\n}\n.kyqNG2_utWTvIRD5pSx8 {\n font-family: "Noto Sans Devanagari", sans-serif;\n}\n/*# sourceMappingURL=index.module.css.map */',"",{version:3,sources:["webpack://./../frontend/packages/fonts/dist/locales/hi-IN/index.module.css","webpack://./../frontend/node_modules/@fontsource-variable/noto-sans-devanagari/scss/mixins.scss","webpack://./../frontend/packages/fonts/src/locales/hi-IN/index.module.scss"],names:[],mappings:"AAAA,wCAAwC;ACqLpC;EACE,mCAAA;EACA,kBAAA;EACA,kBAAA;EACA,oBAAA;EAEA;;;;;;;;;;iBAAA;EACA,uEAAA;AD1KN;ACmKI;EACE,mCAAA;EACA,kBAAA;EACA,kBAAA;EACA,oBAAA;EAEA;;;;;;;;;;;;;;;;;;;UAAA;EACA,uEAAA;AD/IN;ACwII;EACE,mCAAA;EACA,kBAAA;EACA,kBAAA;EACA,oBAAA;EAEA;;;;;;;;;;;;;;;;;eAAA;EACA,uEAAA;ADtHN;AElEA;EACE,+CAAA;AFoEF;AACA,2CAA2C",sourcesContent:['/* src/locales/hi-IN/index.module.scss */\n@font-face {\n font-family: "Noto Sans Devanagari";\n font-style: normal;\n font-display: swap;\n font-weight: 100 900;\n unicode-range:\n U+0900-097F,\n U+1CD0-1CF9,\n U+200C-200D,\n U+20A8,\n U+20B9,\n U+20F0,\n U+25CC,\n U+A830-A839,\n U+A8E0-A8FF,\n U+11B00-11B09;\n src: url("../noto-sans-devanagari-devanagari-wght-normal-TPG72K6R.woff2") format("woff2-variations");\n}\n@font-face {\n font-family: "Noto Sans Devanagari";\n font-style: normal;\n font-display: swap;\n font-weight: 100 900;\n unicode-range:\n U+0000-00FF,\n U+0131,\n U+0152-0153,\n U+02BB-02BC,\n U+02C6,\n U+02DA,\n U+02DC,\n U+0304,\n U+0308,\n U+0329,\n U+2000-206F,\n U+20AC,\n U+2122,\n U+2191,\n U+2193,\n U+2212,\n U+2215,\n U+FEFF,\n U+FFFD;\n src: url("../noto-sans-devanagari-latin-wght-normal-4YKSKMCG.woff2") format("woff2-variations");\n}\n@font-face {\n font-family: "Noto Sans Devanagari";\n font-style: normal;\n font-display: swap;\n font-weight: 100 900;\n unicode-range:\n U+0100-02BA,\n U+02BD-02C5,\n U+02C7-02CC,\n U+02CE-02D7,\n U+02DD-02FF,\n U+0304,\n U+0308,\n U+0329,\n U+1D00-1DBF,\n U+1E00-1E9F,\n U+1EF2-1EFF,\n U+2020,\n U+20A0-20AB,\n U+20AD-20C0,\n U+2113,\n U+2C60-2C7F,\n U+A720-A7FF;\n src: url("../noto-sans-devanagari-latin-ext-wght-normal-FHTMP53D.woff2") format("woff2-variations");\n}\n.className {\n font-family: "Noto Sans Devanagari", sans-serif;\n}\n/*# sourceMappingURL=index.module.css.map */',"@use 'sass:list';\n@use 'sass:map';\n@use 'sass:math';\n@use 'sass:meta';\n@use 'sass:string';\n\n@use 'metadata';\n\n$metadata: meta.module-variables(metadata) !default;\n$directory: null !default;\n\n$family: null !default;\n$display: null !default;\n$formats: null !default;\n$subsets: null !default;\n$weights: null !default;\n$styles: null !default;\n$axes: null !default;\n\n// Deprecated\n$displayVar: null !default;\n\n@mixin generator(\n $metadata: $metadata,\n $directory: $directory,\n $family: $family,\n $display: $display,\n $formats: $formats,\n $subsets: $subsets,\n $weights: $weights,\n $styles: $styles,\n $axes: $axes,\n\n // Deprecated\n $displayVar: $displayVar\n) {\n\n @if $displayVar != null {\n @warn \"$displayVar is deprecated due to the limitation of using css variables in @font-face (https://github.com/fontsource/fontsource/issues/726).\";\n }\n\n $isVariable: map.get($metadata, axes) != null;\n\n $directory: if(\n $directory,\n $directory,\n '~@fontsource#{if($isVariable, '-variable', '')}/#{map.get($metadata, id)}/files'\n );\n\n $family: if($family, $family, map.get($metadata, family) + if($isVariable, ' Variable', ''));\n $display: if($display, $display, swap);\n $formats: if(not $formats or $formats == all, if($isVariable, woff2, (woff2, woff)), $formats);\n $subsets: if(\n $subsets,\n if($subsets == all, map.get($metadata, subsets), $subsets),\n map.get($metadata, subsets)\n );\n $weights: if(\n $weights,\n if($weights == all, map.get($metadata, weights), $weights),\n map.get($metadata, defaults, weight)\n );\n $styles: if(\n $styles,\n if($styles == all, map.get($metadata, styles), $styles),\n map.get($metadata, defaults, style)\n );\n $axes: if(\n $axes,\n if($axes == all, full, $axes),\n if($isVariable, if(map.has-key($metadata, axes, wght), wght, full), null)\n );\n\n @each $subset in $subsets {\n @each $unicodeSubset, $unicodeRange in map.get($metadata, unicode) {\n // If condition is true, generate faces for the current subset\n @if (\n \t// If there is no unicode information for the font or\n ($unicodeSubset == null) or\n \t// If the subset match a unicode subset or\n \t($subset == $unicodeSubset) or\n\t\t\t\t\t\t(\n\t\t\t\t\t\t\t// If $unicodeSubset is a numeric unicode subset\n\t\t\t\t\t\t\t// and current subset exists in the list of font subsets but does not match any unicode subset\n\t\t\t\t\t\t\t// then generate faces for this numeric unicode subset as it is representing part of the current subset\n\t\t\t\t\t\t\tlist.index(map.get($metadata, subsets), $subset) and not\n\t\t\t\t\t\t\t\tmap.has-key($metadata, unicode, $subset) and not\n\t\t\t\t\t\t\t\t\tlist.index(map.get($metadata, subsets), $unicodeSubset)\n\t\t\t\t\t\t)\n ) {\n @each $weight in if($axes, null, $weights) {\n @each $axis in $axes {\n @each $style in $styles {\n $variant: '#{map.get($metadata, id)}-#{if($unicodeSubset, $unicodeSubset, $subset)}-#{if($axis, $axis, $weight)}-#{$style}';\n\n $src: ();\n @each $format in $formats {\n $src: append(\n $src,\n url('#{$directory}/#{$variant}.#{$format}')\n format('#{$format}#{if($axis, '-variations', '')}'),\n comma\n );\n }\n\n @content ((\n metadata: $metadata,\n directory: $directory,\n family: $family,\n display: $display,\n formats: $formats,\n subsets: $subsets,\n weights: $weights,\n styles: $styles,\n axes: $axes,\n\n variant: $variant,\n subset: $subset,\n unicodeSubset: $unicodeSubset,\n unicodeRange: $unicodeRange,\n weight: $weight,\n axis: $axis,\n style: $style,\n\n font-family: string.quote($family),\n font-style: if(\n (($axis == full) or ($axis == slnt)) and map.has-key($metadata, axes, slnt),\n oblique map.get($metadata, axes, slnt, min) + deg map.get($metadata, axes, slnt, max) + deg,\n $style\n ),\n font-display: $display,\n font-weight: if(\n (($axis == full) or ($axis == wght)) and map.has-key($metadata, axes, wght),\n map.get($metadata, axes, wght, min) map.get($metadata, axes, wght, max),\n $weight\n ),\n font-stretch: if(\n (($axis == full) or ($axis == wdth)) and map.has-key($metadata, axes, wdth),\n '#{map.get($metadata, axes, wdth, min)}% #{map.get($metadata, axes, wdth, max)}%',\n null\n ),\n src: $src,\n unicode-range: $unicodeRange,\n ));\n }\n }\n }\n }\n }\n }\n}\n\n@mixin faces(\n $metadata: $metadata,\n $directory: $directory,\n $family: $family,\n $display: $display,\n $formats: $formats,\n $subsets: $subsets,\n $weights: $weights,\n $styles: $styles,\n $axes: $axes,\n\n // Deprecated\n $displayVar: $displayVar\n) {\n @include generator(\n $metadata: $metadata,\n $directory: $directory,\n $family: $family,\n $display: $display,\n $formats: $formats,\n $subsets: $subsets,\n $weights: $weights,\n $styles: $styles,\n $axes: $axes,\n\n $displayVar: $displayVar\n )\n using ($props) {\n /* #{map.get($props, variant)} */\n @font-face {\n font-family: map.get($props, font-family);\n font-style: map.get($props, font-style);\n font-display: map.get($props, font-display);\n font-weight: map.get($props, font-weight);\n font-stretch: map.get($props, font-stretch);\n unicode-range: map.get($props, unicode-range);\n src: map.get($props, src);\n }\n }\n}\n","@use '@fontsource-variable/noto-sans-devanagari/scss/mixins' as\n NotoSansDevanagari;\n@include NotoSansDevanagari.faces($family: 'Noto Sans Devanagari');\n\n.className {\n font-family: 'Noto Sans Devanagari', sans-serif;\n}\n"],sourceRoot:""}]),___CSS_LOADER_EXPORT___.locals={className:"kyqNG2_utWTvIRD5pSx8"};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}},"../frontend/packages/fonts/dist/locales/hi-IN/index.module.css":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{__webpack_require__.r(__webpack_exports__),__webpack_require__.d(__webpack_exports__,{default:()=>__WEBPACK_DEFAULT_EXPORT__});var _apps_node_modules_style_loader_dist_runtime_injectStylesIntoStyleTag_js__WEBPACK_IMPORTED_MODULE_0__=__webpack_require__("./node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js"),_apps_node_modules_style_loader_dist_runtime_injectStylesIntoStyleTag_js__WEBPACK_IMPORTED_MODULE_0___default=__webpack_require__.n(_apps_node_modules_style_loader_dist_runtime_injectStylesIntoStyleTag_js__WEBPACK_IMPORTED_MODULE_0__),_apps_node_modules_style_loader_dist_runtime_styleDomAPI_js__WEBPACK_IMPORTED_MODULE_1__=__webpack_require__("./node_modules/style-loader/dist/runtime/styleDomAPI.js"),_apps_node_modules_style_loader_dist_runtime_styleDomAPI_js__WEBPACK_IMPORTED_MODULE_1___default=__webpack_require__.n(_apps_node_modules_style_loader_dist_runtime_styleDomAPI_js__WEBPACK_IMPORTED_MODULE_1__),_apps_node_modules_style_loader_dist_runtime_insertBySelector_js__WEBPACK_IMPORTED_MODULE_2__=__webpack_require__("./node_modules/style-loader/dist/runtime/insertBySelector.js"),_apps_node_modules_style_loader_dist_runtime_insertBySelector_js__WEBPACK_IMPORTED_MODULE_2___default=__webpack_require__.n(_apps_node_modules_style_loader_dist_runtime_insertBySelector_js__WEBPACK_IMPORTED_MODULE_2__),_apps_node_modules_style_loader_dist_runtime_setAttributesWithoutAttributes_js__WEBPACK_IMPORTED_MODULE_3__=__webpack_require__("./node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js"),_apps_node_modules_style_loader_dist_runtime_setAttributesWithoutAttributes_js__WEBPACK_IMPORTED_MODULE_3___default=__webpack_require__.n(_apps_node_modules_style_loader_dist_runtime_setAttributesWithoutAttributes_js__WEBPACK_IMPORTED_MODULE_3__),_apps_node_modules_style_loader_dist_runtime_insertStyleElement_js__WEBPACK_IMPORTED_MODULE_4__=__webpack_require__("./node_modules/style-loader/dist/runtime/insertStyleElement.js"),_apps_node_modules_style_loader_dist_runtime_insertStyleElement_js__WEBPACK_IMPORTED_MODULE_4___default=__webpack_require__.n(_apps_node_modules_style_loader_dist_runtime_insertStyleElement_js__WEBPACK_IMPORTED_MODULE_4__),_apps_node_modules_style_loader_dist_runtime_styleTagTransform_js__WEBPACK_IMPORTED_MODULE_5__=__webpack_require__("./node_modules/style-loader/dist/runtime/styleTagTransform.js"),_apps_node_modules_style_loader_dist_runtime_styleTagTransform_js__WEBPACK_IMPORTED_MODULE_5___default=__webpack_require__.n(_apps_node_modules_style_loader_dist_runtime_styleTagTransform_js__WEBPACK_IMPORTED_MODULE_5__),_apps_node_modules_css_loader_dist_cjs_js_index_module_css__WEBPACK_IMPORTED_MODULE_6__=__webpack_require__("./node_modules/css-loader/dist/cjs.js!../frontend/packages/fonts/dist/locales/hi-IN/index.module.css"),options={};options.styleTagTransform=_apps_node_modules_style_loader_dist_runtime_styleTagTransform_js__WEBPACK_IMPORTED_MODULE_5___default(),options.setAttributes=_apps_node_modules_style_loader_dist_runtime_setAttributesWithoutAttributes_js__WEBPACK_IMPORTED_MODULE_3___default(),options.insert=_apps_node_modules_style_loader_dist_runtime_insertBySelector_js__WEBPACK_IMPORTED_MODULE_2___default().bind(null,"head"),options.domAPI=_apps_node_modules_style_loader_dist_runtime_styleDomAPI_js__WEBPACK_IMPORTED_MODULE_1___default(),options.insertStyleElement=_apps_node_modules_style_loader_dist_runtime_insertStyleElement_js__WEBPACK_IMPORTED_MODULE_4___default();_apps_node_modules_style_loader_dist_runtime_injectStylesIntoStyleTag_js__WEBPACK_IMPORTED_MODULE_0___default()(_apps_node_modules_css_loader_dist_cjs_js_index_module_css__WEBPACK_IMPORTED_MODULE_6__.A,options);const __WEBPACK_DEFAULT_EXPORT__=_apps_node_modules_css_loader_dist_cjs_js_index_module_css__WEBPACK_IMPORTED_MODULE_6__.A&&_apps_node_modules_css_loader_dist_cjs_js_index_module_css__WEBPACK_IMPORTED_MODULE_6__.A.locals?_apps_node_modules_css_loader_dist_cjs_js_index_module_css__WEBPACK_IMPORTED_MODULE_6__.A.locals:void 0},"../frontend/packages/fonts/dist/locales/noto-sans-devanagari-devanagari-wght-normal-TPG72K6R.woff2":(module,__unused_webpack_exports,__webpack_require__)=>{module.exports=__webpack_require__.p+"f832f6aa0cfe25bf800a.woff2"},"../frontend/packages/fonts/dist/locales/noto-sans-devanagari-latin-ext-wght-normal-FHTMP53D.woff2":(module,__unused_webpack_exports,__webpack_require__)=>{module.exports=__webpack_require__.p+"f60a6f1d9a20e4f9c10a.woff2"},"../frontend/packages/fonts/dist/locales/noto-sans-devanagari-latin-wght-normal-4YKSKMCG.woff2":(module,__unused_webpack_exports,__webpack_require__)=>{module.exports=__webpack_require__.p+"9c97fb69bff5e0070ed9.woff2"}}]);
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiMTc0Mi5iODI3NGRmOC5pZnJhbWUuYnVuZGxlLmpzIiwibWFwcGluZ3MiOiJvMkNBSUlBLDhCQUFnQyxJQUFJQyxJQUFJLGlKQUN4Q0MsOEJBQWdDLElBQUlELElBQUksNElBQ3hDRSw4QkFBZ0MsSUFBSUYsSUFBSSxnSkFDeENHLHdCQUEwQix5RkFBNEIsaUdBQ3REQyxtQ0FBcUMsNEZBQWdDTCwrQkFDckVNLG1DQUFxQyw0RkFBZ0NKLCtCQUNyRUssbUNBQXFDLDRGQUFnQ0osK0JBRXpFQyx3QkFBd0JJLEtBQUssQ0FBQ0MsT0FBT0MsR0FBSSwwV0FBOFdMLG1DQUFxQywwY0FBZ2RDLG1DQUFxQyx3ZEFBOGRDLG1DQUFxQyxpS0FBc0ssR0FBRyxDQUFDLFFBQVUsRUFBRSxRQUFVLENBQUMsNkVBQTZFLGtHQUFrRyw4RUFBOEUsTUFBUSxHQUFHLFNBQVcscVVBQXFVLGVBQWlCLENBQUMsZ2xEQUFvbUQsdS9MQUF1L0wsd09BQXdPLFdBQWEsTUFFL2lVSCx3QkFBd0JPLE9BQVMsQ0FDaEMsVUFBYSx3QkFFZCx3RCw4RENmQUYsT0FBT0csUUFBVSxTQUFVQyxJQUFLQyxTQUs5QixPQUpLQSxVQUNIQSxRQUFVLENBQUMsR0FHUkQsS0FJTEEsSUFBTUUsT0FBT0YsSUFBSUcsV0FBYUgsSUFBSUksUUFBVUosS0FFeEMsZUFBZUssS0FBS0wsT0FDdEJBLElBQU1BLElBQUlNLE1BQU0sR0FBSSxJQUdsQkwsUUFBUU0sT0FDVlAsS0FBT0MsUUFBUU0sTUFLYixvQkFBb0JGLEtBQUtMLE1BQVFDLFFBQVFPLFdBQ3BDLElBQUtDLE9BQU9ULElBQUlVLFFBQVEsS0FBTSxPQUFPQSxRQUFRLE1BQU8sT0FBUSxLQUc5RFYsS0FuQkVBLEdBb0JYLEMsNDNGQ2pCSUMsUUFBVSxDQUFDLEVBRWZBLFFBQVFVLGtCQUFvQix5R0FDNUJWLFFBQVFXLGNBQWdCLHNIQUVsQlgsUUFBUVksT0FBUyw2R0FBYyxLQUFNLFFBRTNDWixRQUFRYSxPQUFTLG1HQUNqQmIsUUFBUWMsbUJBQXFCLDBHQUVoQixnSEFBSSwwRkFBU2QsU0FLbkIsaUNBQWUsMkZBQVcsMEZBQVFILE9BQVMsMEZBQVFBLFlBQVNrQixDIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vYmxvY2tseS1tb29jLy4uL2Zyb250ZW5kL3BhY2thZ2VzL2ZvbnRzL2Rpc3QvbG9jYWxlcy9oaS1JTi9pbmRleC5tb2R1bGUuY3NzIiwid2VicGFjazovL2Jsb2NrbHktbW9vYy8uL25vZGVfbW9kdWxlcy9jc3MtbG9hZGVyL2Rpc3QvcnVudGltZS9nZXRVcmwuanMiLCJ3ZWJwYWNrOi8vYmxvY2tseS1tb29jLy4uL2Zyb250ZW5kL3BhY2thZ2VzL2ZvbnRzL2Rpc3QvbG9jYWxlcy9oaS1JTi9pbmRleC5tb2R1bGUuY3NzP2Q2MjAiXSwic291cmNlc0NvbnRlbnQiOlsiLy8gSW1wb3J0c1xuaW1wb3J0IF9fX0NTU19MT0FERVJfQVBJX1NPVVJDRU1BUF9JTVBPUlRfX18gZnJvbSBcIi4uLy4uLy4uLy4uLy4uLy4uL2FwcHMvbm9kZV9tb2R1bGVzL2Nzcy1sb2FkZXIvZGlzdC9ydW50aW1lL3NvdXJjZU1hcHMuanNcIjtcbmltcG9ydCBfX19DU1NfTE9BREVSX0FQSV9JTVBPUlRfX18gZnJvbSBcIi4uLy4uLy4uLy4uLy4uLy4uL2FwcHMvbm9kZV9tb2R1bGVzL2Nzcy1sb2FkZXIvZGlzdC9ydW50aW1lL2FwaS5qc1wiO1xuaW1wb3J0IF9fX0NTU19MT0FERVJfR0VUX1VSTF9JTVBPUlRfX18gZnJvbSBcIi4uLy4uLy4uLy4uLy4uLy4uL2FwcHMvbm9kZV9tb2R1bGVzL2Nzcy1sb2FkZXIvZGlzdC9ydW50aW1lL2dldFVybC5qc1wiO1xudmFyIF9fX0NTU19MT0FERVJfVVJMX0lNUE9SVF8wX19fID0gbmV3IFVSTChcIi4uL25vdG8tc2Fucy1kZXZhbmFnYXJpLWRldmFuYWdhcmktd2dodC1ub3JtYWwtVFBHNzJLNlIud29mZjJcIiwgaW1wb3J0Lm1ldGEudXJsKTtcbnZhciBfX19DU1NfTE9BREVSX1VSTF9JTVBPUlRfMV9fXyA9IG5ldyBVUkwoXCIuLi9ub3RvLXNhbnMtZGV2YW5hZ2FyaS1sYXRpbi13Z2h0LW5vcm1hbC00WUtTS01DRy53b2ZmMlwiLCBpbXBvcnQubWV0YS51cmwpO1xudmFyIF9fX0NTU19MT0FERVJfVVJMX0lNUE9SVF8yX19fID0gbmV3IFVSTChcIi4uL25vdG8tc2Fucy1kZXZhbmFnYXJpLWxhdGluLWV4dC13Z2h0LW5vcm1hbC1GSFRNUDUzRC53b2ZmMlwiLCBpbXBvcnQubWV0YS51cmwpO1xudmFyIF9fX0NTU19MT0FERVJfRVhQT1JUX19fID0gX19fQ1NTX0xPQURFUl9BUElfSU1QT1JUX19fKF9fX0NTU19MT0FERVJfQVBJX1NPVVJDRU1BUF9JTVBPUlRfX18pO1xudmFyIF9fX0NTU19MT0FERVJfVVJMX1JFUExBQ0VNRU5UXzBfX18gPSBfX19DU1NfTE9BREVSX0dFVF9VUkxfSU1QT1JUX19fKF9fX0NTU19MT0FERVJfVVJMX0lNUE9SVF8wX19fKTtcbnZhciBfX19DU1NfTE9BREVSX1VSTF9SRVBMQUNFTUVOVF8xX19fID0gX19fQ1NTX0xPQURFUl9HRVRfVVJMX0lNUE9SVF9fXyhfX19DU1NfTE9BREVSX1VSTF9JTVBPUlRfMV9fXyk7XG52YXIgX19fQ1NTX0xPQURFUl9VUkxfUkVQTEFDRU1FTlRfMl9fXyA9IF9fX0NTU19MT0FERVJfR0VUX1VSTF9JTVBPUlRfX18oX19fQ1NTX0xPQURFUl9VUkxfSU1QT1JUXzJfX18pO1xuLy8gTW9kdWxlXG5fX19DU1NfTE9BREVSX0VYUE9SVF9fXy5wdXNoKFttb2R1bGUuaWQsIFwiLyogc3JjL2xvY2FsZXMvaGktSU4vaW5kZXgubW9kdWxlLnNjc3MgKi9cXG5AZm9udC1mYWNlIHtcXG4gIGZvbnQtZmFtaWx5OiBcXFwiTm90byBTYW5zIERldmFuYWdhcmlcXFwiO1xcbiAgZm9udC1zdHlsZTogbm9ybWFsO1xcbiAgZm9udC1kaXNwbGF5OiBzd2FwO1xcbiAgZm9udC13ZWlnaHQ6IDEwMCA5MDA7XFxuICB1bmljb2RlLXJhbmdlOlxcbiAgICBVKzA5MDAtMDk3RixcXG4gICAgVSsxQ0QwLTFDRjksXFxuICAgIFUrMjAwQy0yMDBELFxcbiAgICBVKzIwQTgsXFxuICAgIFUrMjBCOSxcXG4gICAgVSsyMEYwLFxcbiAgICBVKzI1Q0MsXFxuICAgIFUrQTgzMC1BODM5LFxcbiAgICBVK0E4RTAtQThGRixcXG4gICAgVSsxMUIwMC0xMUIwOTtcXG4gIHNyYzogdXJsKFwiICsgX19fQ1NTX0xPQURFUl9VUkxfUkVQTEFDRU1FTlRfMF9fXyArIFwiKSBmb3JtYXQoXFxcIndvZmYyLXZhcmlhdGlvbnNcXFwiKTtcXG59XFxuQGZvbnQtZmFjZSB7XFxuICBmb250LWZhbWlseTogXFxcIk5vdG8gU2FucyBEZXZhbmFnYXJpXFxcIjtcXG4gIGZvbnQtc3R5bGU6IG5vcm1hbDtcXG4gIGZvbnQtZGlzcGxheTogc3dhcDtcXG4gIGZvbnQtd2VpZ2h0OiAxMDAgOTAwO1xcbiAgdW5pY29kZS1yYW5nZTpcXG4gICAgVSswMDAwLTAwRkYsXFxuICAgIFUrMDEzMSxcXG4gICAgVSswMTUyLTAxNTMsXFxuICAgIFUrMDJCQi0wMkJDLFxcbiAgICBVKzAyQzYsXFxuICAgIFUrMDJEQSxcXG4gICAgVSswMkRDLFxcbiAgICBVKzAzMDQsXFxuICAgIFUrMDMwOCxcXG4gICAgVSswMzI5LFxcbiAgICBVKzIwMDAtMjA2RixcXG4gICAgVSsyMEFDLFxcbiAgICBVKzIxMjIsXFxuICAgIFUrMjE5MSxcXG4gICAgVSsyMTkzLFxcbiAgICBVKzIyMTIsXFxuICAgIFUrMjIxNSxcXG4gICAgVStGRUZGLFxcbiAgICBVK0ZGRkQ7XFxuICBzcmM6IHVybChcIiArIF9fX0NTU19MT0FERVJfVVJMX1JFUExBQ0VNRU5UXzFfX18gKyBcIikgZm9ybWF0KFxcXCJ3b2ZmMi12YXJpYXRpb25zXFxcIik7XFxufVxcbkBmb250LWZhY2Uge1xcbiAgZm9udC1mYW1pbHk6IFxcXCJOb3RvIFNhbnMgRGV2YW5hZ2FyaVxcXCI7XFxuICBmb250LXN0eWxlOiBub3JtYWw7XFxuICBmb250LWRpc3BsYXk6IHN3YXA7XFxuICBmb250LXdlaWdodDogMTAwIDkwMDtcXG4gIHVuaWNvZGUtcmFuZ2U6XFxuICAgIFUrMDEwMC0wMkJBLFxcbiAgICBVKzAyQkQtMDJDNSxcXG4gICAgVSswMkM3LTAyQ0MsXFxuICAgIFUrMDJDRS0wMkQ3LFxcbiAgICBVKzAyREQtMDJGRixcXG4gICAgVSswMzA0LFxcbiAgICBVKzAzMDgsXFxuICAgIFUrMDMyOSxcXG4gICAgVSsxRDAwLTFEQkYsXFxuICAgIFUrMUUwMC0xRTlGLFxcbiAgICBVKzFFRjItMUVGRixcXG4gICAgVSsyMDIwLFxcbiAgICBVKzIwQTAtMjBBQixcXG4gICAgVSsyMEFELTIwQzAsXFxuICAgIFUrMjExMyxcXG4gICAgVSsyQzYwLTJDN0YsXFxuICAgIFUrQTcyMC1BN0ZGO1xcbiAgc3JjOiB1cmwoXCIgKyBfX19DU1NfTE9BREVSX1VSTF9SRVBMQUNFTUVOVF8yX19fICsgXCIpIGZvcm1hdChcXFwid29mZjItdmFyaWF0aW9uc1xcXCIpO1xcbn1cXG4ua3lxTkcyX3V0V1R2SVJENXBTeDgge1xcbiAgZm9udC1mYW1pbHk6IFxcXCJOb3RvIFNhbnMgRGV2YW5hZ2FyaVxcXCIsIHNhbnMtc2VyaWY7XFxufVxcbi8qIyBzb3VyY2VNYXBwaW5nVVJMPWluZGV4Lm1vZHVsZS5jc3MubWFwICovXCIsIFwiXCIse1widmVyc2lvblwiOjMsXCJzb3VyY2VzXCI6W1wid2VicGFjazovLy4vLi4vZnJvbnRlbmQvcGFja2FnZXMvZm9udHMvZGlzdC9sb2NhbGVzL2hpLUlOL2luZGV4Lm1vZHVsZS5jc3NcIixcIndlYnBhY2s6Ly8uLy4uL2Zyb250ZW5kL25vZGVfbW9kdWxlcy9AZm9udHNvdXJjZS12YXJpYWJsZS9ub3RvLXNhbnMtZGV2YW5hZ2FyaS9zY3NzL21peGlucy5zY3NzXCIsXCJ3ZWJwYWNrOi8vLi8uLi9mcm9udGVuZC9wYWNrYWdlcy9mb250cy9zcmMvbG9jYWxlcy9oaS1JTi9pbmRleC5tb2R1bGUuc2Nzc1wiXSxcIm5hbWVzXCI6W10sXCJtYXBwaW5nc1wiOlwiQUFBQSx3Q0FBd0M7QUNxTHBDO0VBQ0UsbUNBQUE7RUFDQSxrQkFBQTtFQUNBLGtCQUFBO0VBQ0Esb0JBQUE7RUFFQTs7Ozs7Ozs7OztpQkFBQTtFQUNBLHVFQUFBO0FEMUtOO0FDbUtJO0VBQ0UsbUNBQUE7RUFDQSxrQkFBQTtFQUNBLGtCQUFBO0VBQ0Esb0JBQUE7RUFFQTs7Ozs7Ozs7Ozs7Ozs7Ozs7OztVQUFBO0VBQ0EsdUVBQUE7QUQvSU47QUN3SUk7RUFDRSxtQ0FBQTtFQUNBLGtCQUFBO0VBQ0Esa0JBQUE7RUFDQSxvQkFBQTtFQUVBOzs7Ozs7Ozs7Ozs7Ozs7OztlQUFBO0VBQ0EsdUVBQUE7QUR0SE47QUVsRUE7RUFDRSwrQ0FBQTtBRm9FRjtBQUNBLDJDQUEyQ1wiLFwic291cmNlc0NvbnRlbnRcIjpbXCIvKiBzcmMvbG9jYWxlcy9oaS1JTi9pbmRleC5tb2R1bGUuc2NzcyAqL1xcbkBmb250LWZhY2Uge1xcbiAgZm9udC1mYW1pbHk6IFxcXCJOb3RvIFNhbnMgRGV2YW5hZ2FyaVxcXCI7XFxuICBmb250LXN0eWxlOiBub3JtYWw7XFxuICBmb250LWRpc3BsYXk6IHN3YXA7XFxuICBmb250LXdlaWdodDogMTAwIDkwMDtcXG4gIHVuaWNvZGUtcmFuZ2U6XFxuICAgIFUrMDkwMC0wOTdGLFxcbiAgICBVKzFDRDAtMUNGOSxcXG4gICAgVSsyMDBDLTIwMEQsXFxuICAgIFUrMjBBOCxcXG4gICAgVSsyMEI5LFxcbiAgICBVKzIwRjAsXFxuICAgIFUrMjVDQyxcXG4gICAgVStBODMwLUE4MzksXFxuICAgIFUrQThFMC1BOEZGLFxcbiAgICBVKzExQjAwLTExQjA5O1xcbiAgc3JjOiB1cmwoXFxcIi4uL25vdG8tc2Fucy1kZXZhbmFnYXJpLWRldmFuYWdhcmktd2dodC1ub3JtYWwtVFBHNzJLNlIud29mZjJcXFwiKSBmb3JtYXQoXFxcIndvZmYyLXZhcmlhdGlvbnNcXFwiKTtcXG59XFxuQGZvbnQtZmFjZSB7XFxuICBmb250LWZhbWlseTogXFxcIk5vdG8gU2FucyBEZXZhbmFnYXJpXFxcIjtcXG4gIGZvbnQtc3R5bGU6IG5vcm1hbDtcXG4gIGZvbnQtZGlzcGxheTogc3dhcDtcXG4gIGZvbnQtd2VpZ2h0OiAxMDAgOTAwO1xcbiAgdW5pY29kZS1yYW5nZTpcXG4gICAgVSswMDAwLTAwRkYsXFxuICAgIFUrMDEzMSxcXG4gICAgVSswMTUyLTAxNTMsXFxuICAgIFUrMDJCQi0wMkJDLFxcbiAgICBVKzAyQzYsXFxuICAgIFUrMDJEQSxcXG4gICAgVSswMkRDLFxcbiAgICBVKzAzMDQsXFxuICAgIFUrMDMwOCxcXG4gICAgVSswMzI5LFxcbiAgICBVKzIwMDAtMjA2RixcXG4gICAgVSsyMEFDLFxcbiAgICBVKzIxMjIsXFxuICAgIFUrMjE5MSxcXG4gICAgVSsyMTkzLFxcbiAgICBVKzIyMTIsXFxuICAgIFUrMjIxNSxcXG4gICAgVStGRUZGLFxcbiAgICBVK0ZGRkQ7XFxuICBzcmM6IHVybChcXFwiLi4vbm90by1zYW5zLWRldmFuYWdhcmktbGF0aW4td2dodC1ub3JtYWwtNFlLU0tNQ0cud29mZjJcXFwiKSBmb3JtYXQoXFxcIndvZmYyLXZhcmlhdGlvbnNcXFwiKTtcXG59XFxuQGZvbnQtZmFjZSB7XFxuICBmb250LWZhbWlseTogXFxcIk5vdG8gU2FucyBEZXZhbmFnYXJpXFxcIjtcXG4gIGZvbnQtc3R5bGU6IG5vcm1hbDtcXG4gIGZvbnQtZGlzcGxheTogc3dhcDtcXG4gIGZvbnQtd2VpZ2h0OiAxMDAgOTAwO1xcbiAgdW5pY29kZS1yYW5nZTpcXG4gICAgVSswMTAwLTAyQkEsXFxuICAgIFUrMDJCRC0wMkM1LFxcbiAgICBVKzAyQzctMDJDQyxcXG4gICAgVSswMkNFLTAyRDcsXFxuICAgIFUrMDJERC0wMkZGLFxcbiAgICBVKzAzMDQsXFxuICAgIFUrMDMwOCxcXG4gICAgVSswMzI5LFxcbiAgICBVKzFEMDAtMURCRixcXG4gICAgVSsxRTAwLTFFOUYsXFxuICAgIFUrMUVGMi0xRUZGLFxcbiAgICBVKzIwMjAsXFxuICAgIFUrMjBBMC0yMEFCLFxcbiAgICBVKzIwQUQtMjBDMCxcXG4gICAgVSsyMTEzLFxcbiAgICBVKzJDNjAtMkM3RixcXG4gICAgVStBNzIwLUE3RkY7XFxuICBzcmM6IHVybChcXFwiLi4vbm90by1zYW5zLWRldmFuYWdhcmktbGF0aW4tZXh0LXdnaHQtbm9ybWFsLUZIVE1QNTNELndvZmYyXFxcIikgZm9ybWF0KFxcXCJ3b2ZmMi12YXJpYXRpb25zXFxcIik7XFxufVxcbi5jbGFzc05hbWUge1xcbiAgZm9udC1mYW1pbHk6IFxcXCJOb3RvIFNhbnMgRGV2YW5hZ2FyaVxcXCIsIHNhbnMtc2VyaWY7XFxufVxcbi8qIyBzb3VyY2VNYXBwaW5nVVJMPWluZGV4Lm1vZHVsZS5jc3MubWFwICovXCIsXCJAdXNlICdzYXNzOmxpc3QnO1xcbkB1c2UgJ3Nhc3M6bWFwJztcXG5AdXNlICdzYXNzOm1hdGgnO1xcbkB1c2UgJ3Nhc3M6bWV0YSc7XFxuQHVzZSAnc2FzczpzdHJpbmcnO1xcblxcbkB1c2UgJ21ldGFkYXRhJztcXG5cXG4kbWV0YWRhdGE6IG1ldGEubW9kdWxlLXZhcmlhYmxlcyhtZXRhZGF0YSkgIWRlZmF1bHQ7XFxuJGRpcmVjdG9yeTogbnVsbCAhZGVmYXVsdDtcXG5cXG4kZmFtaWx5OiBudWxsICFkZWZhdWx0O1xcbiRkaXNwbGF5OiBudWxsICFkZWZhdWx0O1xcbiRmb3JtYXRzOiBudWxsICFkZWZhdWx0O1xcbiRzdWJzZXRzOiBudWxsICFkZWZhdWx0O1xcbiR3ZWlnaHRzOiBudWxsICFkZWZhdWx0O1xcbiRzdHlsZXM6IG51bGwgIWRlZmF1bHQ7XFxuJGF4ZXM6IG51bGwgIWRlZmF1bHQ7XFxuXFxuLy8gRGVwcmVjYXRlZFxcbiRkaXNwbGF5VmFyOiBudWxsICFkZWZhdWx0O1xcblxcbkBtaXhpbiBnZW5lcmF0b3IoXFxuICAkbWV0YWRhdGE6ICRtZXRhZGF0YSxcXG4gICRkaXJlY3Rvcnk6ICRkaXJlY3RvcnksXFxuICAkZmFtaWx5OiAkZmFtaWx5LFxcbiAgJGRpc3BsYXk6ICRkaXNwbGF5LFxcbiAgJGZvcm1hdHM6ICRmb3JtYXRzLFxcbiAgJHN1YnNldHM6ICRzdWJzZXRzLFxcbiAgJHdlaWdodHM6ICR3ZWlnaHRzLFxcbiAgJHN0eWxlczogJHN0eWxlcyxcXG4gICRheGVzOiAkYXhlcyxcXG5cXG4gIC8vIERlcHJlY2F0ZWRcXG4gICRkaXNwbGF5VmFyOiAkZGlzcGxheVZhclxcbikge1xcblxcbiAgQGlmICRkaXNwbGF5VmFyICE9IG51bGwge1xcbiAgICBAd2FybiBcXFwiJGRpc3BsYXlWYXIgaXMgZGVwcmVjYXRlZCBkdWUgdG8gdGhlIGxpbWl0YXRpb24gb2YgdXNpbmcgY3NzIHZhcmlhYmxlcyBpbiBAZm9udC1mYWNlIChodHRwczovL2dpdGh1Yi5jb20vZm9udHNvdXJjZS9mb250c291cmNlL2lzc3Vlcy83MjYpLlxcXCI7XFxuICB9XFxuXFxuICAkaXNWYXJpYWJsZTogbWFwLmdldCgkbWV0YWRhdGEsIGF4ZXMpICE9IG51bGw7XFxuXFxuICAkZGlyZWN0b3J5OiBpZihcXG4gICAgJGRpcmVjdG9yeSxcXG4gICAgJGRpcmVjdG9yeSxcXG4gICAgJ35AZm9udHNvdXJjZSN7aWYoJGlzVmFyaWFibGUsICctdmFyaWFibGUnLCAnJyl9LyN7bWFwLmdldCgkbWV0YWRhdGEsIGlkKX0vZmlsZXMnXFxuICApO1xcblxcbiAgJGZhbWlseTogaWYoJGZhbWlseSwgJGZhbWlseSwgbWFwLmdldCgkbWV0YWRhdGEsIGZhbWlseSkgKyBpZigkaXNWYXJpYWJsZSwgJyBWYXJpYWJsZScsICcnKSk7XFxuICAkZGlzcGxheTogaWYoJGRpc3BsYXksICRkaXNwbGF5LCBzd2FwKTtcXG4gICRmb3JtYXRzOiBpZihub3QgJGZvcm1hdHMgb3IgJGZvcm1hdHMgPT0gYWxsLCBpZigkaXNWYXJpYWJsZSwgd29mZjIsICh3b2ZmMiwgd29mZikpLCAkZm9ybWF0cyk7XFxuICAkc3Vic2V0czogaWYoXFxuICAgICRzdWJzZXRzLFxcbiAgICBpZigkc3Vic2V0cyA9PSBhbGwsIG1hcC5nZXQoJG1ldGFkYXRhLCBzdWJzZXRzKSwgJHN1YnNldHMpLFxcbiAgICBtYXAuZ2V0KCRtZXRhZGF0YSwgc3Vic2V0cylcXG4gICk7XFxuICAkd2VpZ2h0czogaWYoXFxuICAgICR3ZWlnaHRzLFxcbiAgICBpZigkd2VpZ2h0cyA9PSBhbGwsIG1hcC5nZXQoJG1ldGFkYXRhLCB3ZWlnaHRzKSwgJHdlaWdodHMpLFxcbiAgICBtYXAuZ2V0KCRtZXRhZGF0YSwgZGVmYXVsdHMsIHdlaWdodClcXG4gICk7XFxuICAkc3R5bGVzOiBpZihcXG4gICAgJHN0eWxlcyxcXG4gICAgaWYoJHN0eWxlcyA9PSBhbGwsIG1hcC5nZXQoJG1ldGFkYXRhLCBzdHlsZXMpLCAkc3R5bGVzKSxcXG4gICAgbWFwLmdldCgkbWV0YWRhdGEsIGRlZmF1bHRzLCBzdHlsZSlcXG4gICk7XFxuICAkYXhlczogaWYoXFxuICAgICRheGVzLFxcbiAgICBpZigkYXhlcyA9PSBhbGwsIGZ1bGwsICRheGVzKSxcXG4gICAgaWYoJGlzVmFyaWFibGUsIGlmKG1hcC5oYXMta2V5KCRtZXRhZGF0YSwgYXhlcywgd2dodCksIHdnaHQsIGZ1bGwpLCBudWxsKVxcbiAgKTtcXG5cXG4gIEBlYWNoICRzdWJzZXQgaW4gJHN1YnNldHMge1xcbiAgICBAZWFjaCAkdW5pY29kZVN1YnNldCwgJHVuaWNvZGVSYW5nZSBpbiBtYXAuZ2V0KCRtZXRhZGF0YSwgdW5pY29kZSkge1xcbiAgICAgIC8vIElmIGNvbmRpdGlvbiBpcyB0cnVlLCBnZW5lcmF0ZSBmYWNlcyBmb3IgdGhlIGN1cnJlbnQgc3Vic2V0XFxuICAgICAgQGlmIChcXG4gICAgICBcXHQvLyBJZiB0aGVyZSBpcyBubyB1bmljb2RlIGluZm9ybWF0aW9uIGZvciB0aGUgZm9udCBvclxcbiAgICAgICAgKCR1bmljb2RlU3Vic2V0ID09IG51bGwpIG9yXFxuICAgICAgICBcXHQvLyBJZiB0aGUgc3Vic2V0IG1hdGNoIGEgdW5pY29kZSBzdWJzZXQgb3JcXG4gICAgICAgIFxcdCgkc3Vic2V0ID09ICR1bmljb2RlU3Vic2V0KSBvclxcblxcdFxcdFxcdFxcdFxcdFxcdChcXG5cXHRcXHRcXHRcXHRcXHRcXHRcXHQvLyBJZiAkdW5pY29kZVN1YnNldCBpcyBhIG51bWVyaWMgdW5pY29kZSBzdWJzZXRcXG5cXHRcXHRcXHRcXHRcXHRcXHRcXHQvLyBhbmQgY3VycmVudCBzdWJzZXQgZXhpc3RzIGluIHRoZSBsaXN0IG9mIGZvbnQgc3Vic2V0cyBidXQgZG9lcyBub3QgbWF0Y2ggYW55IHVuaWNvZGUgc3Vic2V0XFxuXFx0XFx0XFx0XFx0XFx0XFx0XFx0Ly8gdGhlbiBnZW5lcmF0ZSBmYWNlcyBmb3IgdGhpcyBudW1lcmljIHVuaWNvZGUgc3Vic2V0IGFzIGl0IGlzIHJlcHJlc2VudGluZyBwYXJ0IG9mIHRoZSBjdXJyZW50IHN1YnNldFxcblxcdFxcdFxcdFxcdFxcdFxcdFxcdGxpc3QuaW5kZXgobWFwLmdldCgkbWV0YWRhdGEsIHN1YnNldHMpLCAkc3Vic2V0KSBhbmQgbm90XFxuXFx0XFx0XFx0XFx0XFx0XFx0XFx0XFx0bWFwLmhhcy1rZXkoJG1ldGFkYXRhLCB1bmljb2RlLCAkc3Vic2V0KSBhbmQgbm90XFxuXFx0XFx0XFx0XFx0XFx0XFx0XFx0XFx0XFx0bGlzdC5pbmRleChtYXAuZ2V0KCRtZXRhZGF0YSwgc3Vic2V0cyksICR1bmljb2RlU3Vic2V0KVxcblxcdFxcdFxcdFxcdFxcdFxcdClcXG4gICAgICApIHtcXG4gICAgICAgIEBlYWNoICR3ZWlnaHQgaW4gaWYoJGF4ZXMsIG51bGwsICR3ZWlnaHRzKSB7XFxuICAgICAgICAgIEBlYWNoICRheGlzIGluICRheGVzIHtcXG4gICAgICAgICAgICBAZWFjaCAkc3R5bGUgaW4gJHN0eWxlcyB7XFxuICAgICAgICAgICAgICAkdmFyaWFudDogJyN7bWFwLmdldCgkbWV0YWRhdGEsIGlkKX0tI3tpZigkdW5pY29kZVN1YnNldCwgJHVuaWNvZGVTdWJzZXQsICRzdWJzZXQpfS0je2lmKCRheGlzLCAkYXhpcywgJHdlaWdodCl9LSN7JHN0eWxlfSc7XFxuXFxuICAgICAgICAgICAgICAkc3JjOiAoKTtcXG4gICAgICAgICAgICAgIEBlYWNoICRmb3JtYXQgaW4gJGZvcm1hdHMge1xcbiAgICAgICAgICAgICAgICAkc3JjOiBhcHBlbmQoXFxuICAgICAgICAgICAgICAgICAgJHNyYyxcXG4gICAgICAgICAgICAgICAgICB1cmwoJyN7JGRpcmVjdG9yeX0vI3skdmFyaWFudH0uI3skZm9ybWF0fScpXFxuICAgICAgICAgICAgICAgICAgICBmb3JtYXQoJyN7JGZvcm1hdH0je2lmKCRheGlzLCAnLXZhcmlhdGlvbnMnLCAnJyl9JyksXFxuICAgICAgICAgICAgICAgICAgY29tbWFcXG4gICAgICAgICAgICAgICAgKTtcXG4gICAgICAgICAgICAgIH1cXG5cXG4gICAgICAgICAgICAgIEBjb250ZW50ICgoXFxuICAgICAgICAgICAgICAgIG1ldGFkYXRhOiAkbWV0YWRhdGEsXFxuICAgICAgICAgICAgICAgIGRpcmVjdG9yeTogJGRpcmVjdG9yeSxcXG4gICAgICAgICAgICAgICAgZmFtaWx5OiAkZmFtaWx5LFxcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiAkZGlzcGxheSxcXG4gICAgICAgICAgICAgICAgZm9ybWF0czogJGZvcm1hdHMsXFxuICAgICAgICAgICAgICAgIHN1YnNldHM6ICRzdWJzZXRzLFxcbiAgICAgICAgICAgICAgICB3ZWlnaHRzOiAkd2VpZ2h0cyxcXG4gICAgICAgICAgICAgICAgc3R5bGVzOiAkc3R5bGVzLFxcbiAgICAgICAgICAgICAgICBheGVzOiAkYXhlcyxcXG5cXG4gICAgICAgICAgICAgICAgdmFyaWFudDogJHZhcmlhbnQsXFxuICAgICAgICAgICAgICAgIHN1YnNldDogJHN1YnNldCxcXG4gICAgICAgICAgICAgICAgdW5pY29kZVN1YnNldDogJHVuaWNvZGVTdWJzZXQsXFxuICAgICAgICAgICAgICAgIHVuaWNvZGVSYW5nZTogJHVuaWNvZGVSYW5nZSxcXG4gICAgICAgICAgICAgICAgd2VpZ2h0OiAkd2VpZ2h0LFxcbiAgICAgICAgICAgICAgICBheGlzOiAkYXhpcyxcXG4gICAgICAgICAgICAgICAgc3R5bGU6ICRzdHlsZSxcXG5cXG4gICAgICAgICAgICAgICAgZm9udC1mYW1pbHk6IHN0cmluZy5xdW90ZSgkZmFtaWx5KSxcXG4gICAgICAgICAgICAgICAgZm9udC1zdHlsZTogaWYoXFxuICAgICAgICAgICAgICAgICAgKCgkYXhpcyA9PSBmdWxsKSBvciAoJGF4aXMgPT0gc2xudCkpIGFuZCBtYXAuaGFzLWtleSgkbWV0YWRhdGEsIGF4ZXMsIHNsbnQpLFxcbiAgICAgICAgICAgICAgICAgIG9ibGlxdWUgbWFwLmdldCgkbWV0YWRhdGEsIGF4ZXMsIHNsbnQsIG1pbikgKyBkZWcgbWFwLmdldCgkbWV0YWRhdGEsIGF4ZXMsIHNsbnQsIG1heCkgKyBkZWcsXFxuICAgICAgICAgICAgICAgICAgJHN0eWxlXFxuICAgICAgICAgICAgICAgICksXFxuICAgICAgICAgICAgICAgIGZvbnQtZGlzcGxheTogJGRpc3BsYXksXFxuICAgICAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiBpZihcXG4gICAgICAgICAgICAgICAgICAoKCRheGlzID09IGZ1bGwpIG9yICgkYXhpcyA9PSB3Z2h0KSkgYW5kIG1hcC5oYXMta2V5KCRtZXRhZGF0YSwgYXhlcywgd2dodCksXFxuICAgICAgICAgICAgICAgICAgbWFwLmdldCgkbWV0YWRhdGEsIGF4ZXMsIHdnaHQsIG1pbikgbWFwLmdldCgkbWV0YWRhdGEsIGF4ZXMsIHdnaHQsIG1heCksXFxuICAgICAgICAgICAgICAgICAgJHdlaWdodFxcbiAgICAgICAgICAgICAgICApLFxcbiAgICAgICAgICAgICAgICBmb250LXN0cmV0Y2g6IGlmKFxcbiAgICAgICAgICAgICAgICAgICgoJGF4aXMgPT0gZnVsbCkgb3IgKCRheGlzID09IHdkdGgpKSBhbmQgbWFwLmhhcy1rZXkoJG1ldGFkYXRhLCBheGVzLCB3ZHRoKSxcXG4gICAgICAgICAgICAgICAgICAnI3ttYXAuZ2V0KCRtZXRhZGF0YSwgYXhlcywgd2R0aCwgbWluKX0lICN7bWFwLmdldCgkbWV0YWRhdGEsIGF4ZXMsIHdkdGgsIG1heCl9JScsXFxuICAgICAgICAgICAgICAgICAgbnVsbFxcbiAgICAgICAgICAgICAgICApLFxcbiAgICAgICAgICAgICAgICBzcmM6ICRzcmMsXFxuICAgICAgICAgICAgICAgIHVuaWNvZGUtcmFuZ2U6ICR1bmljb2RlUmFuZ2UsXFxuICAgICAgICAgICAgICApKTtcXG4gICAgICAgICAgICB9XFxuICAgICAgICAgIH1cXG4gICAgICAgIH1cXG4gICAgICB9XFxuICAgIH1cXG4gIH1cXG59XFxuXFxuQG1peGluIGZhY2VzKFxcbiAgJG1ldGFkYXRhOiAkbWV0YWRhdGEsXFxuICAkZGlyZWN0b3J5OiAkZGlyZWN0b3J5LFxcbiAgJGZhbWlseTogJGZhbWlseSxcXG4gICRkaXNwbGF5OiAkZGlzcGxheSxcXG4gICRmb3JtYXRzOiAkZm9ybWF0cyxcXG4gICRzdWJzZXRzOiAkc3Vic2V0cyxcXG4gICR3ZWlnaHRzOiAkd2VpZ2h0cyxcXG4gICRzdHlsZXM6ICRzdHlsZXMsXFxuICAkYXhlczogJGF4ZXMsXFxuXFxuICAvLyBEZXByZWNhdGVkXFxuICAkZGlzcGxheVZhcjogJGRpc3BsYXlWYXJcXG4pIHtcXG4gIEBpbmNsdWRlIGdlbmVyYXRvcihcXG4gICAgICAkbWV0YWRhdGE6ICRtZXRhZGF0YSxcXG4gICAgICAkZGlyZWN0b3J5OiAkZGlyZWN0b3J5LFxcbiAgICAgICRmYW1pbHk6ICRmYW1pbHksXFxuICAgICAgJGRpc3BsYXk6ICRkaXNwbGF5LFxcbiAgICAgICRmb3JtYXRzOiAkZm9ybWF0cyxcXG4gICAgICAkc3Vic2V0czogJHN1YnNldHMsXFxuICAgICAgJHdlaWdodHM6ICR3ZWlnaHRzLFxcbiAgICAgICRzdHlsZXM6ICRzdHlsZXMsXFxuICAgICAgJGF4ZXM6ICRheGVzLFxcblxcbiAgICAgICRkaXNwbGF5VmFyOiAkZGlzcGxheVZhclxcbiAgICApXFxuICAgIHVzaW5nICgkcHJvcHMpIHtcXG4gICAgLyogI3ttYXAuZ2V0KCRwcm9wcywgdmFyaWFudCl9ICovXFxuICAgIEBmb250LWZhY2Uge1xcbiAgICAgIGZvbnQtZmFtaWx5OiBtYXAuZ2V0KCRwcm9wcywgZm9udC1mYW1pbHkpO1xcbiAgICAgIGZvbnQtc3R5bGU6IG1hcC5nZXQoJHByb3BzLCBmb250LXN0eWxlKTtcXG4gICAgICBmb250LWRpc3BsYXk6IG1hcC5nZXQoJHByb3BzLCBmb250LWRpc3BsYXkpO1xcbiAgICAgIGZvbnQtd2VpZ2h0OiBtYXAuZ2V0KCRwcm9wcywgZm9udC13ZWlnaHQpO1xcbiAgICAgIGZvbnQtc3RyZXRjaDogbWFwLmdldCgkcHJvcHMsIGZvbnQtc3RyZXRjaCk7XFxuICAgICAgdW5pY29kZS1yYW5nZTogbWFwLmdldCgkcHJvcHMsIHVuaWNvZGUtcmFuZ2UpO1xcbiAgICAgIHNyYzogbWFwLmdldCgkcHJvcHMsIHNyYyk7XFxuICAgIH1cXG4gIH1cXG59XFxuXCIsXCJAdXNlICdAZm9udHNvdXJjZS12YXJpYWJsZS9ub3RvLXNhbnMtZGV2YW5hZ2FyaS9zY3NzL21peGlucycgYXNcXG4gIE5vdG9TYW5zRGV2YW5hZ2FyaTtcXG5AaW5jbHVkZSBOb3RvU2Fuc0RldmFuYWdhcmkuZmFjZXMoJGZhbWlseTogJ05vdG8gU2FucyBEZXZhbmFnYXJpJyk7XFxuXFxuLmNsYXNzTmFtZSB7XFxuICBmb250LWZhbWlseTogJ05vdG8gU2FucyBEZXZhbmFnYXJpJywgc2Fucy1zZXJpZjtcXG59XFxuXCJdLFwic291cmNlUm9vdFwiOlwiXCJ9XSk7XG4vLyBFeHBvcnRzXG5fX19DU1NfTE9BREVSX0VYUE9SVF9fXy5sb2NhbHMgPSB7XG5cdFwiY2xhc3NOYW1lXCI6IFwia3lxTkcyX3V0V1R2SVJENXBTeDhcIlxufTtcbmV4cG9ydCBkZWZhdWx0IF9fX0NTU19MT0FERVJfRVhQT1JUX19fO1xuIiwiXCJ1c2Ugc3RyaWN0XCI7XG5cbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gKHVybCwgb3B0aW9ucykge1xuICBpZiAoIW9wdGlvbnMpIHtcbiAgICBvcHRpb25zID0ge307XG4gIH1cblxuICBpZiAoIXVybCkge1xuICAgIHJldHVybiB1cmw7XG4gIH1cblxuICB1cmwgPSBTdHJpbmcodXJsLl9fZXNNb2R1bGUgPyB1cmwuZGVmYXVsdCA6IHVybCk7IC8vIElmIHVybCBpcyBhbHJlYWR5IHdyYXBwZWQgaW4gcXVvdGVzLCByZW1vdmUgdGhlbVxuXG4gIGlmICgvXlsnXCJdLipbJ1wiXSQvLnRlc3QodXJsKSkge1xuICAgIHVybCA9IHVybC5zbGljZSgxLCAtMSk7XG4gIH1cblxuICBpZiAob3B0aW9ucy5oYXNoKSB7XG4gICAgdXJsICs9IG9wdGlvbnMuaGFzaDtcbiAgfSAvLyBTaG91bGQgdXJsIGJlIHdyYXBwZWQ/XG4gIC8vIFNlZSBodHRwczovL2RyYWZ0cy5jc3N3Zy5vcmcvY3NzLXZhbHVlcy0zLyN1cmxzXG5cblxuICBpZiAoL1tcIicoKSBcXHRcXG5dfCglMjApLy50ZXN0KHVybCkgfHwgb3B0aW9ucy5uZWVkUXVvdGVzKSB7XG4gICAgcmV0dXJuIFwiXFxcIlwiLmNvbmNhdCh1cmwucmVwbGFjZSgvXCIvZywgJ1xcXFxcIicpLnJlcGxhY2UoL1xcbi9nLCBcIlxcXFxuXCIpLCBcIlxcXCJcIik7XG4gIH1cblxuICByZXR1cm4gdXJsO1xufTsiLCJcbiAgICAgIGltcG9ydCBBUEkgZnJvbSBcIiEuLi8uLi8uLi8uLi8uLi8uLi9hcHBzL25vZGVfbW9kdWxlcy9zdHlsZS1sb2FkZXIvZGlzdC9ydW50aW1lL2luamVjdFN0eWxlc0ludG9TdHlsZVRhZy5qc1wiO1xuICAgICAgaW1wb3J0IGRvbUFQSSBmcm9tIFwiIS4uLy4uLy4uLy4uLy4uLy4uL2FwcHMvbm9kZV9tb2R1bGVzL3N0eWxlLWxvYWRlci9kaXN0L3J1bnRpbWUvc3R5bGVEb21BUEkuanNcIjtcbiAgICAgIGltcG9ydCBpbnNlcnRGbiBmcm9tIFwiIS4uLy4uLy4uLy4uLy4uLy4uL2FwcHMvbm9kZV9tb2R1bGVzL3N0eWxlLWxvYWRlci9kaXN0L3J1bnRpbWUvaW5zZXJ0QnlTZWxlY3Rvci5qc1wiO1xuICAgICAgaW1wb3J0IHNldEF0dHJpYnV0ZXMgZnJvbSBcIiEuLi8uLi8uLi8uLi8uLi8uLi9hcHBzL25vZGVfbW9kdWxlcy9zdHlsZS1sb2FkZXIvZGlzdC9ydW50aW1lL3NldEF0dHJpYnV0ZXNXaXRob3V0QXR0cmlidXRlcy5qc1wiO1xuICAgICAgaW1wb3J0IGluc2VydFN0eWxlRWxlbWVudCBmcm9tIFwiIS4uLy4uLy4uLy4uLy4uLy4uL2FwcHMvbm9kZV9tb2R1bGVzL3N0eWxlLWxvYWRlci9kaXN0L3J1bnRpbWUvaW5zZXJ0U3R5bGVFbGVtZW50LmpzXCI7XG4gICAgICBpbXBvcnQgc3R5bGVUYWdUcmFuc2Zvcm1GbiBmcm9tIFwiIS4uLy4uLy4uLy4uLy4uLy4uL2FwcHMvbm9kZV9tb2R1bGVzL3N0eWxlLWxvYWRlci9kaXN0L3J1bnRpbWUvc3R5bGVUYWdUcmFuc2Zvcm0uanNcIjtcbiAgICAgIGltcG9ydCBjb250ZW50LCAqIGFzIG5hbWVkRXhwb3J0IGZyb20gXCIhIS4uLy4uLy4uLy4uLy4uLy4uL2FwcHMvbm9kZV9tb2R1bGVzL2Nzcy1sb2FkZXIvZGlzdC9janMuanMhLi9pbmRleC5tb2R1bGUuY3NzXCI7XG4gICAgICBcbiAgICAgIFxuXG52YXIgb3B0aW9ucyA9IHt9O1xuXG5vcHRpb25zLnN0eWxlVGFnVHJhbnNmb3JtID0gc3R5bGVUYWdUcmFuc2Zvcm1Gbjtcbm9wdGlvbnMuc2V0QXR0cmlidXRlcyA9IHNldEF0dHJpYnV0ZXM7XG5cbiAgICAgIG9wdGlvbnMuaW5zZXJ0ID0gaW5zZXJ0Rm4uYmluZChudWxsLCBcImhlYWRcIik7XG4gICAgXG5vcHRpb25zLmRvbUFQSSA9IGRvbUFQSTtcbm9wdGlvbnMuaW5zZXJ0U3R5bGVFbGVtZW50ID0gaW5zZXJ0U3R5bGVFbGVtZW50O1xuXG52YXIgdXBkYXRlID0gQVBJKGNvbnRlbnQsIG9wdGlvbnMpO1xuXG5cblxuZXhwb3J0ICogZnJvbSBcIiEhLi4vLi4vLi4vLi4vLi4vLi4vYXBwcy9ub2RlX21vZHVsZXMvY3NzLWxvYWRlci9kaXN0L2Nqcy5qcyEuL2luZGV4Lm1vZHVsZS5jc3NcIjtcbiAgICAgICBleHBvcnQgZGVmYXVsdCBjb250ZW50ICYmIGNvbnRlbnQubG9jYWxzID8gY29udGVudC5sb2NhbHMgOiB1bmRlZmluZWQ7XG4iXSwibmFtZXMiOlsiX19fQ1NTX0xPQURFUl9VUkxfSU1QT1JUXzBfX18iLCJVUkwiLCJfX19DU1NfTE9BREVSX1VSTF9JTVBPUlRfMV9fXyIsIl9fX0NTU19MT0FERVJfVVJMX0lNUE9SVF8yX19fIiwiX19fQ1NTX0xPQURFUl9FWFBPUlRfX18iLCJfX19DU1NfTE9BREVSX1VSTF9SRVBMQUNFTUVOVF8wX19fIiwiX19fQ1NTX0xPQURFUl9VUkxfUkVQTEFDRU1FTlRfMV9fXyIsIl9fX0NTU19MT0FERVJfVVJMX1JFUExBQ0VNRU5UXzJfX18iLCJwdXNoIiwibW9kdWxlIiwiaWQiLCJsb2NhbHMiLCJleHBvcnRzIiwidXJsIiwib3B0aW9ucyIsIlN0cmluZyIsIl9fZXNNb2R1bGUiLCJkZWZhdWx0IiwidGVzdCIsInNsaWNlIiwiaGFzaCIsIm5lZWRRdW90ZXMiLCJjb25jYXQiLCJyZXBsYWNlIiwic3R5bGVUYWdUcmFuc2Zvcm0iLCJzZXRBdHRyaWJ1dGVzIiwiaW5zZXJ0IiwiZG9tQVBJIiwiaW5zZXJ0U3R5bGVFbGVtZW50IiwidW5kZWZpbmVkIl0sInNvdXJjZVJvb3QiOiIifQ==