-
Notifications
You must be signed in to change notification settings - Fork 2
/
3163.db6ab98f.iframe.bundle.js
2 lines (2 loc) · 85.3 KB
/
3163.db6ab98f.iframe.bundle.js
1
2
"use strict";(self.webpackChunkblockly_mooc=self.webpackChunkblockly_mooc||[]).push([[3163],{"./src/code-studio/components/Icon.jsx":(module,exports,__webpack_require__)=>{Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0;var _propTypes=_interopRequireDefault(__webpack_require__("./node_modules/prop-types/index.js")),_react=_interopRequireDefault(__webpack_require__("./node_modules/react/index.js"));function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}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 _setPrototypeOf(t,e){return _setPrototypeOf=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(t,e){return t.__proto__=e,t},_setPrototypeOf(t,e)}var Icon=exports.default=function(_React$Component){function Icon(){return _React$Component.apply(this,arguments)||this}return function _inheritsLoose(t,o){t.prototype=Object.create(o.prototype),t.prototype.constructor=t,_setPrototypeOf(t,o)}(Icon,_React$Component),Icon.prototype.render=function render(){return _react.default.createElement("i",{className:"fa fa-"+this.props.iconId,style:{float:"left",fontSize:"24px",width:"32px",textAlign:"center"}})},Icon}(_react.default.Component);!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}(Icon,"propTypes",{iconId:_propTypes.default.string.isRequired}),window.dashboard=window.dashboard||{},window.dashboard.Icon=Icon,module.exports=exports.default},"./src/code-studio/components/IconLibrary.jsx":(module,exports,__webpack_require__)=>{Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0;var _propTypes=_interopRequireDefault(__webpack_require__("./node_modules/prop-types/index.js")),_react=_interopRequireDefault(__webpack_require__("./node_modules/react/index.js")),_SearchBar=_interopRequireDefault(__webpack_require__("./src/sharedComponents/SearchBar.jsx")),_locale=_interopRequireDefault(__webpack_require__("./src/util/locale-do-not-import.js")),_IconList=_interopRequireDefault(__webpack_require__("./src/code-studio/components/IconList.jsx"));function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}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 _setPrototypeOf(t,e){return _setPrototypeOf=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(t,e){return t.__proto__=e,t},_setPrototypeOf(t,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}var IconLibrary=exports.default=function(_React$Component){function IconLibrary(){for(var _this,_len=arguments.length,args=new Array(_len),_key=0;_key<_len;_key++)args[_key]=arguments[_key];return _defineProperty(_this=_React$Component.call.apply(_React$Component,[this].concat(args))||this,"state",{search:""}),_defineProperty(_this,"search",(function(e){_this.setState({search:e.target.value.toLowerCase().replace(/[^-a-z0-9]/g,"")})})),_this}return function _inheritsLoose(t,o){t.prototype=Object.create(o.prototype),t.prototype.constructor=t,_setPrototypeOf(t,o)}(IconLibrary,_React$Component),IconLibrary.prototype.render=function render(){return _react.default.createElement("div",null,_react.default.createElement("div",{style:{width:"300px",float:"right",marginBottom:10}},_react.default.createElement(_SearchBar.default,{onChange:this.search,placeholderText:_locale.default.iconSearchPlaceholder()})),_react.default.createElement(_IconList.default,{assetChosen:this.props.assetChosen,search:this.state.search}))},IconLibrary}(_react.default.Component);_defineProperty(IconLibrary,"propTypes",{assetChosen:_propTypes.default.func.isRequired}),module.exports=exports.default},"./src/code-studio/components/IconList.jsx":(module,exports,__webpack_require__)=>{Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0;var _propTypes=_interopRequireDefault(__webpack_require__("./node_modules/prop-types/index.js")),_react=_interopRequireDefault(__webpack_require__("./node_modules/react/index.js")),_locale=_interopRequireDefault(__webpack_require__("./src/util/locale-do-not-import.js")),_IconListEntry=_interopRequireDefault(__webpack_require__("./src/code-studio/components/IconListEntry.jsx")),_icons=__webpack_require__("./src/code-studio/components/icons.js");function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}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 _setPrototypeOf(t,e){return _setPrototypeOf=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(t,e){return t.__proto__=e,t},_setPrototypeOf(t,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}(exports.default=function(_React$Component){function IconList(){return _React$Component.apply(this,arguments)||this}!function _inheritsLoose(t,o){t.prototype=Object.create(o.prototype),t.prototype.constructor=t,_setPrototypeOf(t,o)}(IconList,_React$Component);var _proto=IconList.prototype;return _proto.getMatches=function getMatches(query){var results={};return Object.keys(_icons.aliases).forEach((function(alias){query.test(alias)&&_icons.aliases[alias].forEach((function(match){results[match]=alias}))})),results},_proto.render=function render(){var _this=this,search=this.props.search;"-"!==search[0]&&(search="(^|-)"+search);var query=new RegExp(search),results=this.getMatches(query),iconEntries=Object.keys(results).map((function(iconId){return _react.default.createElement(_IconListEntry.default,{key:iconId,assetChosen:_this.props.assetChosen,iconId,altMatch:results[iconId],query,search:_this.props.search})}));return _react.default.createElement("div",{style:{height:"330px",overflowY:"scroll",clear:"both"}},iconEntries.length>0?iconEntries:_locale.default.noIconsFound())},IconList}(_react.default.Component),"propTypes",{assetChosen:_propTypes.default.func.isRequired,search:_propTypes.default.string.isRequired}),module.exports=exports.default},"./src/code-studio/components/IconListEntry.jsx":(module,exports,__webpack_require__)=>{Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0;var _propTypes=_interopRequireDefault(__webpack_require__("./node_modules/prop-types/index.js")),_react=_interopRequireDefault(__webpack_require__("./node_modules/react/index.js")),_Icon=_interopRequireDefault(__webpack_require__("./src/code-studio/components/Icon.jsx"));function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}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 _setPrototypeOf(t,e){return _setPrototypeOf=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(t,e){return t.__proto__=e,t},_setPrototypeOf(t,e)}var IconListEntry=exports.default=function(_React$Component){function IconListEntry(){return _React$Component.apply(this,arguments)||this}!function _inheritsLoose(t,o){t.prototype=Object.create(o.prototype),t.prototype.constructor=t,_setPrototypeOf(t,o)}(IconListEntry,_React$Component);var _proto=IconListEntry.prototype;return _proto.highlightSearch=function highlightSearch(str){var offset=str.indexOf(this.props.search);if(-1===offset)return str;var left=str.substr(0,offset),right=str.substr(offset+this.props.search.length);return _react.default.createElement("span",null,left,_react.default.createElement("span",{style:{backgroundColor:"#ffc"}},this.props.search),right)},_proto.render=function render(){var iconLabel,columnWidth,altMatchText,styles={altMatchText:{float:"left",fontSize:"13px",color:"#999"},iconLabel:{float:"left",margin:"0 5px",fontSize:"13px",color:"#000"}};if(this.props.search){columnWidth="33%";var highlightedName=this.props.iconId;this.props.query.test(this.props.iconId)?highlightedName=this.highlightSearch(this.props.iconId):altMatchText=_react.default.createElement("p",{style:styles.altMatchText},"(",this.highlightSearch(this.props.altMatch),")"),iconLabel=_react.default.createElement("div",null,_react.default.createElement("p",{style:styles.iconLabel},highlightedName),altMatchText)}var rootStyles={float:"left",width:columnWidth,height:"35px",cursor:"pointer"},asset="fa-"+this.props.iconId;return _react.default.createElement("div",{style:rootStyles,title:this.props.iconId,onClick:this.props.assetChosen.bind(null,asset)},_react.default.createElement(_Icon.default,{iconId:this.props.iconId}),iconLabel)},IconListEntry}(_react.default.Component);!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}(IconListEntry,"propTypes",{assetChosen:_propTypes.default.func.isRequired,iconId:_propTypes.default.string.isRequired,altMatch:_propTypes.default.string.isRequired,query:_propTypes.default.instanceOf(RegExp).isRequired,search:_propTypes.default.string.isRequired}),window.dashboard=window.dashboard||{},window.dashboard.IconListEntry=IconListEntry,module.exports=exports.default},"./src/code-studio/components/ImagePicker.jsx":(module,exports,__webpack_require__)=>{Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0;var _propTypes=_interopRequireDefault(__webpack_require__("./node_modules/prop-types/index.js")),_react=_interopRequireDefault(__webpack_require__("./node_modules/react/index.js")),_constants=__webpack_require__("./src/applab/constants.js"),_fontConstants=_interopRequireDefault(__webpack_require__("./src/fontConstants.js")),_redux=__webpack_require__("./src/redux.js"),_locale=_interopRequireDefault(__webpack_require__("./src/util/locale-do-not-import.js")),_color=_interopRequireDefault(__webpack_require__("./src/util/color.js")),_AssetManager=function _interopRequireWildcard(e,r){if(!r&&e&&e.__esModule)return e;if(null===e||"object"!=_typeof(e)&&"function"!=typeof e)return{default:e};var t=_getRequireWildcardCache(r);if(t&&t.has(e))return t.get(e);var n={__proto__:null},a=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var u in e)if("default"!==u&&{}.hasOwnProperty.call(e,u)){var i=a?Object.getOwnPropertyDescriptor(e,u):null;i&&(i.get||i.set)?Object.defineProperty(n,u,i):n[u]=e[u]}return n.default=e,t&&t.set(e,n),n}(__webpack_require__("./src/code-studio/components/AssetManager.jsx")),_IconLibrary=_interopRequireDefault(__webpack_require__("./src/code-studio/components/IconLibrary.jsx")),_ImageURLInput=_interopRequireDefault(__webpack_require__("./src/code-studio/components/ImageURLInput.jsx")),_recorders=__webpack_require__("./src/code-studio/components/recorders.js");function _getRequireWildcardCache(e){if("function"!=typeof WeakMap)return null;var r=new WeakMap,t=new WeakMap;return(_getRequireWildcardCache=function _getRequireWildcardCache(e){return e?t:r})(e)}function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}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 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 _setPrototypeOf(t,e){return _setPrototypeOf=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(t,e){return t.__proto__=e,t},_setPrototypeOf(t,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}var extensionFilter={image:".jpg, .jpeg, .jfif, .gif, .png",audio:".mp3, .wav",document:".jpg, .jpeg, .gif, .png, .pdf, .doc, .docx",default:".jpg, .jpeg, .jfif, .gif, .png, .mp3, .wav, .pdf, .doc, .docx"},ImagePicker=exports.default=function(_React$Component){function ImagePicker(){for(var _this,_len=arguments.length,args=new Array(_len),_key=0;_key<_len;_key++)args[_key]=arguments[_key];return _defineProperty(_this=_React$Component.call.apply(_React$Component,[this].concat(args))||this,"state",{mode:_AssetManager.ImageMode.FILE}),_defineProperty(_this,"getAssetNameWithPrefix",(function(icon){_this.props.assetChosen(_constants.ICON_PREFIX+icon)})),_defineProperty(_this,"setMode",(function(mode){_this.setState({mode})})),_defineProperty(_this,"getBody",(function(disableAudio,levelName,isStartMode){if(_this.props.assetChosen&&_this.state.mode!==_AssetManager.ImageMode.FILE)return _this.state.mode===_AssetManager.ImageMode.ICON?_react.default.createElement(_IconLibrary.default,{assetChosen:_this.getAssetNameWithPrefix}):_react.default.createElement(_ImageURLInput.default,{assetChosen:_this.props.assetChosen,allowedExtensions:extensionFilter[_this.props.typeFilter],currentValue:_this.props.currentImageType===_AssetManager.ImageMode.URL?_this.props.currentValue:""});var allowedExtensions=_this.props.customAllowedExtensions||extensionFilter[_this.props.typeFilter]||extensionFilter.default;return _react.default.createElement(_AssetManager.default,{assetChosen:_this.props.assetChosen,assetsChanged:_this.props.assetsChanged,allowedExtensions,uploadsEnabled:_this.props.uploadsEnabled,useFilesApi:_this.props.useFilesApi,projectId:_this.props.projectId,soundPlayer:_this.props.soundPlayer,disableAudioRecording:disableAudio,recordingFileType:_this.props.recordingFileType,imagePicker:!0,elementId:_this.props.elementId,levelName,isStartMode})})),_this}return function _inheritsLoose(t,o){t.prototype=Object.create(o.prototype),t.prototype.constructor=t,_setPrototypeOf(t,o)}(ImagePicker,_React$Component),ImagePicker.prototype.render=function render(){var _this2=this,styles={root:{margin:"0 0 0 5px"},fileModeToggle:{float:"left",margin:"0 20px 0 0",color:this.state.mode===_AssetManager.ImageMode.FILE?null:"#999",fontSize:"16px",cursor:"pointer"},iconModeToggle:{margin:0,fontSize:"16px",color:this.state.mode===_AssetManager.ImageMode.ICON?null:"#999",cursor:"pointer"},urlModeToggle:{margin:"0 20px 0 0",fontSize:"16px",color:this.state.mode===_AssetManager.ImageMode.URL?null:"#999",cursor:"pointer"},divider:{borderColor:_color.default.purple,margin:"5px 0"},warning:{color:_color.default.red,fontSize:13,fontWeight:"bold"}};this.state.mode===_AssetManager.ImageMode.FILE&&(styles.fileModeToggle=_objectSpread(_objectSpread({},styles.fileModeToggle),_fontConstants.default["main-font-semi-bold"])),this.state.mode===_AssetManager.ImageMode.ICON&&(styles.iconModeToggle=_objectSpread(_objectSpread({},styles.iconModeToggle),_fontConstants.default["main-font-semi-bold"])),this.state.mode===_AssetManager.ImageMode.URL&&(styles.urlModeToggle=_objectSpread(_objectSpread({},styles.urlModeToggle),_fontConstants.default["main-font-semi-bold"]));var modeSwitch,title=this.props.assetChosen?_react.default.createElement("p",{className:"dialog-title"},_locale.default.chooseAssets()):_react.default.createElement("p",{className:"dialog-title"},_locale.default.manageAssets()),imageTypeFilter=!this.props.typeFilter||"image"===this.props.typeFilter;this.props.assetChosen&&imageTypeFilter&&(modeSwitch=_react.default.createElement("div",{id:"modeSwitch"},_react.default.createElement("span",{onClick:function onClick(){return _this2.setMode(_AssetManager.ImageMode.FILE)},style:styles.fileModeToggle},_locale.default.myFiles()),_react.default.createElement("span",{onClick:function onClick(){return _this2.setMode(_AssetManager.ImageMode.URL)},style:styles.urlModeToggle},_locale.default.linkToImage()),_react.default.createElement("span",{onClick:function onClick(){return _this2.setMode(_AssetManager.ImageMode.ICON)},style:styles.iconModeToggle},_locale.default.icons()),_react.default.createElement("hr",{style:styles.divider})));var levelName,isStartMode,disableAudio=this.props.disableAudioRecording||!!this.props.assetChosen,reduxState=(0,_redux.getStore)().getState();return reduxState&&reduxState.level&&(levelName=reduxState.level.name,isStartMode=reduxState.level.isStartMode),reduxState.javalab&&reduxState.javalab.levelName&&(levelName=reduxState.javalab.levelName,isStartMode=reduxState.javalab.isStartMode),_react.default.createElement("div",{className:"modal-content",style:styles.root},title,this.props.showUnderageWarning&&_react.default.createElement("p",{style:styles.warning},_locale.default.warningUploadingPersonalInformation()),modeSwitch,this.getBody(disableAudio,levelName,isStartMode))},ImagePicker}(_react.default.Component);_defineProperty(ImagePicker,"propTypes",{assetChosen:_propTypes.default.func,assetsChanged:_propTypes.default.func,typeFilter:_propTypes.default.string,customAllowedExtensions:_propTypes.default.string,uploadsEnabled:_propTypes.default.bool.isRequired,showUnderageWarning:_propTypes.default.bool.isRequired,useFilesApi:_propTypes.default.bool,soundPlayer:_propTypes.default.object,disableAudioRecording:_propTypes.default.bool,recordingFileType:_propTypes.default.oneOf(Object.values(_recorders.RecordingFileType)),currentValue:_propTypes.default.string,currentImageType:_propTypes.default.string,projectId:_propTypes.default.string,elementId:_propTypes.default.string}),module.exports=exports.default},"./src/code-studio/components/ImageURLInput.jsx":(module,exports,__webpack_require__)=>{Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0;var _moment=_interopRequireDefault(__webpack_require__("./node_modules/moment/moment.js")),_propTypes=_interopRequireDefault(__webpack_require__("./node_modules/prop-types/index.js")),_react=_interopRequireDefault(__webpack_require__("./node_modules/react/index.js")),_assetPrefix=__webpack_require__("./src/assetManagement/assetPrefix.js"),_InputPrompt=_interopRequireDefault(__webpack_require__("./src/templates/InputPrompt.jsx")),_locale=_interopRequireDefault(__webpack_require__("./src/util/locale-do-not-import.js"));function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}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 _setPrototypeOf(t,e){return _setPrototypeOf=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(t,e){return t.__proto__=e,t},_setPrototypeOf(t,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}var ImageURLInput=exports.default=function(_React$Component){function ImageURLInput(){for(var _this,_len=arguments.length,args=new Array(_len),_key=0;_key<_len;_key++)args[_key]=arguments[_key];return _defineProperty(_this=_React$Component.call.apply(_React$Component,[this].concat(args))||this,"state",{showError:!1}),_defineProperty(_this,"handleSubmitWrapper",(function(url){_assetPrefix.ABSOLUTE_REGEXP.test(url)?_this.props.assetChosen(url,(0,_moment.default)()):_this.setState({showError:!0})})),_this}return function _inheritsLoose(t,o){t.prototype=Object.create(o.prototype),t.prototype.constructor=t,_setPrototypeOf(t,o)}(ImageURLInput,_React$Component),ImageURLInput.prototype.render=function render(){return _react.default.createElement("div",null,_react.default.createElement("div",{style:styles.supportingText},_locale.default.imageURLInputDescription()),_react.default.createElement(_InputPrompt.default,{question:_locale.default.imageURLInputPrompt(),onInputReceived:this.handleSubmitWrapper,currentValue:this.props.currentValue}),this.state.showError&&_react.default.createElement("div",{style:styles.error},_locale.default.imageURLInputInvalid()),_react.default.createElement("div",{style:styles.example},_locale.default.imageURLInputExample()))},ImageURLInput}(_react.default.Component);_defineProperty(ImageURLInput,"propTypes",{assetChosen:_propTypes.default.func,allowedExtensions:_propTypes.default.string,currentValue:_propTypes.default.string});var styles={supportingText:{margin:"1em 0",fontSize:"16px",lineHeight:"20px"},example:{margin:"1em 0",fontSize:"16px",lineHeight:"20px"},error:{color:"red"}};module.exports=exports.default},"./src/sharedComponents/SearchBar.jsx":(module,exports,__webpack_require__)=>{Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0;var _propTypes=_interopRequireDefault(__webpack_require__("./node_modules/prop-types/index.js")),_react=_interopRequireDefault(__webpack_require__("./node_modules/react/index.js")),_color=_interopRequireDefault(__webpack_require__("./src/util/color.js"));function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}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 _setPrototypeOf(t,e){return _setPrototypeOf=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(t,e){return t.__proto__=e,t},_setPrototypeOf(t,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}(exports.default=function(_React$Component){function SearchBar(){return _React$Component.apply(this,arguments)||this}!function _inheritsLoose(t,o){t.prototype=Object.create(o.prototype),t.prototype.constructor=t,_setPrototypeOf(t,o)}(SearchBar,_React$Component);var _proto=SearchBar.prototype;return _proto.componentDidMount=function componentDidMount(){this.searchBox.focus()},_proto.render=function render(){var _this=this;return _react.default.createElement("div",{style:styles.searchArea},_react.default.createElement("span",{className:"fa fa-search",style:styles.icon}),_react.default.createElement("input",{style:styles.input,placeholder:this.props.placeholderText,onChange:this.props.onChange,ref:function ref(input){_this.searchBox=input}}),this.props.clearButton&&_react.default.createElement("span",{className:"fa fa-close",style:styles.clearIcon,onClick:function onClick(){_this.searchBox.value="",_this.props.onChange()}}))},SearchBar}(_react.default.Component),"propTypes",{placeholderText:_propTypes.default.string.isRequired,onChange:_propTypes.default.func.isRequired,clearButton:_propTypes.default.bool});var styles={input:{width:"100%",boxSizing:"border-box",padding:"3px 7px",margin:0,borderStyle:"solid",borderWidth:1,borderColor:_color.default.light_gray,borderRadius:4,textIndent:22},icon:{position:"absolute",top:6,left:5,fontSize:16,color:_color.default.light_gray},clearIcon:{position:"absolute",top:6,right:5,fontSize:16,color:_color.default.light_gray,cursor:"pointer"},searchArea:{position:"relative",margin:"10px 0"}};module.exports=exports.default},"./src/templates/InputPrompt.jsx":(module,exports,__webpack_require__)=>{Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0;var _propTypes=function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}(__webpack_require__("./node_modules/prop-types/index.js")),_react=function _interopRequireWildcard(e,r){if(!r&&e&&e.__esModule)return e;if(null===e||"object"!=_typeof(e)&&"function"!=typeof e)return{default:e};var t=_getRequireWildcardCache(r);if(t&&t.has(e))return t.get(e);var n={__proto__:null},a=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var u in e)if("default"!==u&&{}.hasOwnProperty.call(e,u)){var i=a?Object.getOwnPropertyDescriptor(e,u):null;i&&(i.get||i.set)?Object.defineProperty(n,u,i):n[u]=e[u]}return n.default=e,t&&t.set(e,n),n}(__webpack_require__("./node_modules/react/index.js"));function _getRequireWildcardCache(e){if("function"!=typeof WeakMap)return null;var r=new WeakMap,t=new WeakMap;return(_getRequireWildcardCache=function _getRequireWildcardCache(e){return e?t:r})(e)}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 _setPrototypeOf(t,e){return _setPrototypeOf=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(t,e){return t.__proto__=e,t},_setPrototypeOf(t,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}var InputPrompt=exports.default=function(_Component){function InputPrompt(){for(var _this,_len=arguments.length,args=new Array(_len),_key=0;_key<_len;_key++)args[_key]=arguments[_key];return _defineProperty(_this=_Component.call.apply(_Component,[this].concat(args))||this,"state",{value:_this.props.currentValue}),_defineProperty(_this,"handleSubmit",(function(e){e.preventDefault(),_this.props.onInputReceived(_this.refs.answer.value)})),_this}!function _inheritsLoose(t,o){t.prototype=Object.create(o.prototype),t.prototype.constructor=t,_setPrototypeOf(t,o)}(InputPrompt,_Component);var _proto=InputPrompt.prototype;return _proto.componentDidMount=function componentDidMount(){this.refs.answer.focus()},_proto.render=function render(){var _this2=this;return _react.default.createElement("form",{style:styles.form,onSubmit:this.handleSubmit},_react.default.createElement("div",{style:styles.wrapper},_react.default.createElement("label",{style:styles.question},this.props.question),_react.default.createElement("input",{ref:"answer",value:this.state.value,onChange:function onChange(e){return _this2.setState({value:e.target.value})},type:"text",style:styles.input}),_react.default.createElement("input",{type:"submit",className:"btn",style:styles.submit})))},InputPrompt}(_react.Component);_defineProperty(InputPrompt,"propTypes",{question:_propTypes.default.string.isRequired,onInputReceived:_propTypes.default.func.isRequired,currentValue:_propTypes.default.string});var styles={form:{background:"#fff"},wrapper:{margin:20},question:{fontSize:18},input:{fontSize:18,width:"100%",height:"2em",boxSizing:"border-box"},submit:{fontSize:18}};module.exports=exports.default}}]);
//# sourceMappingURL=data:application/json;charset=utf-8;base64,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VSxTQUFWQSxTQUFVekUsR0FBQyxPQUFJcUwsT0FBS2pILFNBQVMsQ0FBQ3ZCLE1BQU83QyxFQUFFcUUsT0FBT3hCLE9BQU8sRUFDckQwTixLQUFLLE9BQ0w1TyxNQUFPd0YsT0FBTzZILFFBRWhCalAsT0FBQSxRQUFBdUIsY0FBQSxTQUFPaVAsS0FBSyxTQUFTaFAsVUFBVSxNQUFNSSxNQUFPd0YsT0FBT3FKLFVBSTNELEVBQUNWLFdBQUEsQ0FqQzZCLENBQVM3TixPQUFBQSxXQUFTQyxnQkFBN0I0TixZQUFXLFlBQ1gsQ0FDakI1QixTQUFVakwsV0FBQUEsUUFBVUMsT0FBT0MsV0FDM0JpTCxnQkFBaUJuTCxXQUFBQSxRQUFVOEIsS0FBSzVCLFdBQ2hDcUgsYUFBY3ZILFdBQUFBLFFBQVVDLFNBZ0M1QixJQUFNaUUsT0FBUyxDQUNiZ0osS0FBTSxDQUNKTSxXQUFZLFFBRWRILFFBQVMsQ0FDUGpKLE9BQVEsSUFFVjZHLFNBQVUsQ0FDUnJNLFNBakRhLElBbURmbU4sTUFBTyxDQUNMbk4sU0FwRGEsR0FxRGJDLE1BQU8sT0FDUG9FLE9BQVEsTUFDUm1KLFVBQVcsY0FFYm1CLE9BQVEsQ0FDTjNPLFNBMURhLEtBNERmeUIsT0FBQXZDLFFBQUFBLFFBQUF3QyxPIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vYmxvY2tseS1tb29jLy4vc3JjL2NvZGUtc3R1ZGlvL2NvbXBvbmVudHMvSWNvbi5qc3giLCJ3ZWJwYWNrOi8vYmxvY2tseS1tb29jLy4vc3JjL2NvZGUtc3R1ZGlvL2NvbXBvbmVudHMvSWNvbkxpYnJhcnkuanN4Iiwid2VicGFjazovL2Jsb2NrbHktbW9vYy8uL3NyYy9jb2RlLXN0dWRpby9jb21wb25lbnRzL0ljb25MaXN0LmpzeCIsIndlYnBhY2s6Ly9ibG9ja2x5LW1vb2MvLi9zcmMvY29kZS1zdHVkaW8vY29tcG9uZW50cy9JY29uTGlzdEVudHJ5LmpzeCIsIndlYnBhY2s6Ly9ibG9ja2x5LW1vb2MvLi9zcmMvY29kZS1zdHVkaW8vY29tcG9uZW50cy9JbWFnZVBpY2tlci5qc3giLCJ3ZWJwYWNrOi8vYmxvY2tseS1tb29jLy4vc3JjL2NvZGUtc3R1ZGlvL2NvbXBvbmVudHMvSW1hZ2VVUkxJbnB1dC5qc3giLCJ3ZWJwYWNrOi8vYmxvY2tseS1tb29jLy4vc3JjL3NoYXJlZENvbXBvbmVudHMvU2VhcmNoQmFyLmpzeCIsIndlYnBhY2s6Ly9ibG9ja2x5LW1vb2MvLi9zcmMvdGVtcGxhdGVzL0lucHV0UHJvbXB0LmpzeCJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgUHJvcFR5cGVzIGZyb20gJ3Byb3AtdHlwZXMnO1xuaW1wb3J0IFJlYWN0IGZyb20gJ3JlYWN0JztcblxuLyoqXG4gKiBBIHNpbmdsZSBpY29uLlxuICovXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBJY29uIGV4dGVuZHMgUmVhY3QuQ29tcG9uZW50IHtcbiAgc3RhdGljIHByb3BUeXBlcyA9IHtcbiAgICBpY29uSWQ6IFByb3BUeXBlcy5zdHJpbmcuaXNSZXF1aXJlZCxcbiAgfTtcblxuICByZW5kZXIoKSB7XG4gICAgY29uc3Qgc3R5bGVzID0ge1xuICAgICAgcm9vdDoge1xuICAgICAgICBmbG9hdDogJ2xlZnQnLFxuICAgICAgICBmb250U2l6ZTogJzI0cHgnLFxuICAgICAgICB3aWR0aDogJzMycHgnLFxuICAgICAgICB0ZXh0QWxpZ246ICdjZW50ZXInLFxuICAgICAgfSxcbiAgICB9O1xuXG4gICAgcmV0dXJuIDxpIGNsYXNzTmFtZT17J2ZhIGZhLScgKyB0aGlzLnByb3BzLmljb25JZH0gc3R5bGU9e3N0eWxlcy5yb290fSAvPjtcbiAgfVxufVxuXG53aW5kb3cuZGFzaGJvYXJkID0gd2luZG93LmRhc2hib2FyZCB8fCB7fTtcbndpbmRvdy5kYXNoYm9hcmQuSWNvbiA9IEljb247XG4iLCJpbXBvcnQgUHJvcFR5cGVzIGZyb20gJ3Byb3AtdHlwZXMnO1xuaW1wb3J0IFJlYWN0IGZyb20gJ3JlYWN0JztcblxuaW1wb3J0IFNlYXJjaEJhciBmcm9tICdAY2RvL2FwcHMvc2hhcmVkQ29tcG9uZW50cy9TZWFyY2hCYXInO1xuaW1wb3J0IGkxOG4gZnJvbSAnQGNkby9sb2NhbGUnO1xuXG5pbXBvcnQgSWNvbkxpc3QgZnJvbSAnLi9JY29uTGlzdCc7XG5cbi8qKlxuICogQSBjb21wb25lbnQgZm9yIG1hbmFnaW5nIGljb25zLlxuICovXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBJY29uTGlicmFyeSBleHRlbmRzIFJlYWN0LkNvbXBvbmVudCB7XG4gIHN0YXRpYyBwcm9wVHlwZXMgPSB7XG4gICAgYXNzZXRDaG9zZW46IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gIH07XG5cbiAgc3RhdGUgPSB7c2VhcmNoOiAnJ307XG5cbiAgc2VhcmNoID0gZSA9PiB7XG4gICAgdGhpcy5zZXRTdGF0ZSh7XG4gICAgICBzZWFyY2g6IGUudGFyZ2V0LnZhbHVlLnRvTG93ZXJDYXNlKCkucmVwbGFjZSgvW14tYS16MC05XS9nLCAnJyksXG4gICAgfSk7XG4gIH07XG5cbiAgcmVuZGVyKCkge1xuICAgIHJldHVybiAoXG4gICAgICA8ZGl2PlxuICAgICAgICA8ZGl2IHN0eWxlPXt7d2lkdGg6ICczMDBweCcsIGZsb2F0OiAncmlnaHQnLCBtYXJnaW5Cb3R0b206IDEwfX0+XG4gICAgICAgICAgPFNlYXJjaEJhclxuICAgICAgICAgICAgb25DaGFuZ2U9e3RoaXMuc2VhcmNofVxuICAgICAgICAgICAgcGxhY2Vob2xkZXJUZXh0PXtpMThuLmljb25TZWFyY2hQbGFjZWhvbGRlcigpfVxuICAgICAgICAgIC8+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8SWNvbkxpc3RcbiAgICAgICAgICBhc3NldENob3Nlbj17dGhpcy5wcm9wcy5hc3NldENob3Nlbn1cbiAgICAgICAgICBzZWFyY2g9e3RoaXMuc3RhdGUuc2VhcmNofVxuICAgICAgICAvPlxuICAgICAgPC9kaXY+XG4gICAgKTtcbiAgfVxufVxuIiwiaW1wb3J0IFByb3BUeXBlcyBmcm9tICdwcm9wLXR5cGVzJztcbmltcG9ydCBSZWFjdCBmcm9tICdyZWFjdCc7XG5cbmltcG9ydCBpMThuIGZyb20gJ0BjZG8vbG9jYWxlJztcblxuaW1wb3J0IEljb25MaXN0RW50cnkgZnJvbSAnLi9JY29uTGlzdEVudHJ5JztcbmltcG9ydCB7YWxpYXNlc30gZnJvbSAnLi9pY29ucyc7XG5cbi8qKlxuICogQSBjb21wb25lbnQgZm9yIG1hbmFnaW5nIGljb25zLlxuICovXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBJY29uTGlzdCBleHRlbmRzIFJlYWN0LkNvbXBvbmVudCB7XG4gIHN0YXRpYyBwcm9wVHlwZXMgPSB7XG4gICAgYXNzZXRDaG9zZW46IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgc2VhcmNoOiBQcm9wVHlwZXMuc3RyaW5nLmlzUmVxdWlyZWQsXG4gIH07XG5cbiAgZ2V0TWF0Y2hlcyhxdWVyeSkge1xuICAgIGNvbnN0IHJlc3VsdHMgPSB7fTtcblxuICAgIE9iamVjdC5rZXlzKGFsaWFzZXMpLmZvckVhY2goZnVuY3Rpb24gKGFsaWFzKSB7XG4gICAgICBpZiAocXVlcnkudGVzdChhbGlhcykpIHtcbiAgICAgICAgYWxpYXNlc1thbGlhc10uZm9yRWFjaChmdW5jdGlvbiAobWF0Y2gpIHtcbiAgICAgICAgICByZXN1bHRzW21hdGNoXSA9IGFsaWFzO1xuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICB9KTtcblxuICAgIHJldHVybiByZXN1bHRzO1xuICB9XG5cbiAgcmVuZGVyKCkge1xuICAgIGNvbnN0IHN0eWxlcyA9IHtcbiAgICAgIHJvb3Q6IHtcbiAgICAgICAgaGVpZ2h0OiAnMzMwcHgnLFxuICAgICAgICBvdmVyZmxvd1k6ICdzY3JvbGwnLFxuICAgICAgICBjbGVhcjogJ2JvdGgnLFxuICAgICAgfSxcbiAgICB9O1xuXG4gICAgbGV0IHNlYXJjaCA9IHRoaXMucHJvcHMuc2VhcmNoO1xuICAgIGlmIChzZWFyY2hbMF0gIT09ICctJykge1xuICAgICAgc2VhcmNoID0gJyhefC0pJyArIHNlYXJjaDtcbiAgICB9XG4gICAgY29uc3QgcXVlcnkgPSBuZXcgUmVnRXhwKHNlYXJjaCk7XG4gICAgY29uc3QgcmVzdWx0cyA9IHRoaXMuZ2V0TWF0Y2hlcyhxdWVyeSk7XG5cbiAgICBjb25zdCBpY29uRW50cmllcyA9IE9iamVjdC5rZXlzKHJlc3VsdHMpLm1hcChpY29uSWQgPT4gKFxuICAgICAgPEljb25MaXN0RW50cnlcbiAgICAgICAga2V5PXtpY29uSWR9XG4gICAgICAgIGFzc2V0Q2hvc2VuPXt0aGlzLnByb3BzLmFzc2V0Q2hvc2VufVxuICAgICAgICBpY29uSWQ9e2ljb25JZH1cbiAgICAgICAgYWx0TWF0Y2g9e3Jlc3VsdHNbaWNvbklkXX1cbiAgICAgICAgcXVlcnk9e3F1ZXJ5fVxuICAgICAgICBzZWFyY2g9e3RoaXMucHJvcHMuc2VhcmNofVxuICAgICAgLz5cbiAgICApKTtcblxuICAgIHJldHVybiAoXG4gICAgICA8ZGl2IHN0eWxlPXtzdHlsZXMucm9vdH0+XG4gICAgICAgIHtpY29uRW50cmllcy5sZW5ndGggPiAwID8gaWNvbkVudHJpZXMgOiBpMThuLm5vSWNvbnNGb3VuZCgpfVxuICAgICAgPC9kaXY+XG4gICAgKTtcbiAgfVxufVxuIiwiaW1wb3J0IFByb3BUeXBlcyBmcm9tICdwcm9wLXR5cGVzJztcbmltcG9ydCBSZWFjdCBmcm9tICdyZWFjdCc7XG5cbmltcG9ydCBJY29uIGZyb20gJy4vSWNvbic7XG5cbi8qKlxuICogQSBsaXN0IG9mIGljb25zLCBtYXliZSBmaWx0ZXJlZCBieSBhIHNlYXJjaCBxdWVyeS5cbiAqL1xuZXhwb3J0IGRlZmF1bHQgY2xhc3MgSWNvbkxpc3RFbnRyeSBleHRlbmRzIFJlYWN0LkNvbXBvbmVudCB7XG4gIHN0YXRpYyBwcm9wVHlwZXMgPSB7XG4gICAgYXNzZXRDaG9zZW46IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgaWNvbklkOiBQcm9wVHlwZXMuc3RyaW5nLmlzUmVxdWlyZWQsXG4gICAgYWx0TWF0Y2g6IFByb3BUeXBlcy5zdHJpbmcuaXNSZXF1aXJlZCxcbiAgICBxdWVyeTogUHJvcFR5cGVzLmluc3RhbmNlT2YoUmVnRXhwKS5pc1JlcXVpcmVkLFxuICAgIHNlYXJjaDogUHJvcFR5cGVzLnN0cmluZy5pc1JlcXVpcmVkLFxuICB9O1xuXG4gIGhpZ2hsaWdodFNlYXJjaChzdHIpIHtcbiAgICBjb25zdCBvZmZzZXQgPSBzdHIuaW5kZXhPZih0aGlzLnByb3BzLnNlYXJjaCk7XG4gICAgaWYgKG9mZnNldCA9PT0gLTEpIHtcbiAgICAgIHJldHVybiBzdHI7XG4gICAgfVxuICAgIGNvbnN0IGxlZnQgPSBzdHIuc3Vic3RyKDAsIG9mZnNldCk7XG4gICAgY29uc3QgcmlnaHQgPSBzdHIuc3Vic3RyKG9mZnNldCArIHRoaXMucHJvcHMuc2VhcmNoLmxlbmd0aCk7XG4gICAgcmV0dXJuIChcbiAgICAgIDxzcGFuPlxuICAgICAgICB7bGVmdH1cbiAgICAgICAgPHNwYW4gc3R5bGU9e3tiYWNrZ3JvdW5kQ29sb3I6ICcjZmZjJ319Pnt0aGlzLnByb3BzLnNlYXJjaH08L3NwYW4+XG4gICAgICAgIHtyaWdodH1cbiAgICAgIDwvc3Bhbj5cbiAgICApO1xuICB9XG5cbiAgcmVuZGVyKCkge1xuICAgIGNvbnN0IHN0eWxlcyA9IHtcbiAgICAgIGFsdE1hdGNoVGV4dDoge1xuICAgICAgICBmbG9hdDogJ2xlZnQnLFxuICAgICAgICBmb250U2l6ZTogJzEzcHgnLFxuICAgICAgICBjb2xvcjogJyM5OTknLFxuICAgICAgfSxcbiAgICAgIGljb25MYWJlbDoge1xuICAgICAgICBmbG9hdDogJ2xlZnQnLFxuICAgICAgICBtYXJnaW46ICcwIDVweCcsXG4gICAgICAgIGZvbnRTaXplOiAnMTNweCcsXG4gICAgICAgIGNvbG9yOiAnIzAwMCcsXG4gICAgICB9LFxuICAgIH07XG5cbiAgICBsZXQgaWNvbkxhYmVsLCBjb2x1bW5XaWR0aCwgYWx0TWF0Y2hUZXh0O1xuXG4gICAgaWYgKHRoaXMucHJvcHMuc2VhcmNoKSB7XG4gICAgICBjb2x1bW5XaWR0aCA9ICczMyUnO1xuXG4gICAgICBsZXQgaGlnaGxpZ2h0ZWROYW1lID0gdGhpcy5wcm9wcy5pY29uSWQ7XG4gICAgICBpZiAoIXRoaXMucHJvcHMucXVlcnkudGVzdCh0aGlzLnByb3BzLmljb25JZCkpIHtcbiAgICAgICAgLy8gV2UgbWF0Y2hlZCBiYXNlZCBvbiBhbiBhbHRlcm5hdGUga2V5d29yZCwgc2hvdyB0aGF0IGtleXdvcmQgaW4gcGFyZW5zXG4gICAgICAgIC8vIG5leHQgdG8gdGhlIGljb24gSUQuXG4gICAgICAgIGFsdE1hdGNoVGV4dCA9IChcbiAgICAgICAgICA8cCBzdHlsZT17c3R5bGVzLmFsdE1hdGNoVGV4dH0+XG4gICAgICAgICAgICAoe3RoaXMuaGlnaGxpZ2h0U2VhcmNoKHRoaXMucHJvcHMuYWx0TWF0Y2gpfSlcbiAgICAgICAgICA8L3A+XG4gICAgICAgICk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBoaWdobGlnaHRlZE5hbWUgPSB0aGlzLmhpZ2hsaWdodFNlYXJjaCh0aGlzLnByb3BzLmljb25JZCk7XG4gICAgICB9XG5cbiAgICAgIGljb25MYWJlbCA9IChcbiAgICAgICAgPGRpdj5cbiAgICAgICAgICA8cCBzdHlsZT17c3R5bGVzLmljb25MYWJlbH0+e2hpZ2hsaWdodGVkTmFtZX08L3A+XG4gICAgICAgICAge2FsdE1hdGNoVGV4dH1cbiAgICAgICAgPC9kaXY+XG4gICAgICApO1xuICAgIH1cblxuICAgIGNvbnN0IHJvb3RTdHlsZXMgPSB7XG4gICAgICBmbG9hdDogJ2xlZnQnLFxuICAgICAgd2lkdGg6IGNvbHVtbldpZHRoLFxuICAgICAgaGVpZ2h0OiAnMzVweCcsXG4gICAgICBjdXJzb3I6ICdwb2ludGVyJyxcbiAgICB9O1xuXG4gICAgY29uc3QgYXNzZXQgPSAnZmEtJyArIHRoaXMucHJvcHMuaWNvbklkO1xuXG4gICAgcmV0dXJuIChcbiAgICAgIDxkaXZcbiAgICAgICAgc3R5bGU9e3Jvb3RTdHlsZXN9XG4gICAgICAgIHRpdGxlPXt0aGlzLnByb3BzLmljb25JZH1cbiAgICAgICAgb25DbGljaz17dGhpcy5wcm9wcy5hc3NldENob3Nlbi5iaW5kKG51bGwsIGFzc2V0KX1cbiAgICAgID5cbiAgICAgICAgPEljb24gaWNvbklkPXt0aGlzLnByb3BzLmljb25JZH0gLz5cbiAgICAgICAge2ljb25MYWJlbH1cbiAgICAgIDwvZGl2PlxuICAgICk7XG4gIH1cbn1cblxud2luZG93LmRhc2hib2FyZCA9IHdpbmRvdy5kYXNoYm9hcmQgfHwge307XG53aW5kb3cuZGFzaGJvYXJkLkljb25MaXN0RW50cnkgPSBJY29uTGlzdEVudHJ5O1xuIiwiaW1wb3J0IFByb3BUeXBlcyBmcm9tICdwcm9wLXR5cGVzJztcbmltcG9ydCBSZWFjdCBmcm9tICdyZWFjdCc7XG5cbmltcG9ydCB7SUNPTl9QUkVGSVh9IGZyb20gJ0BjZG8vYXBwcy9hcHBsYWIvY29uc3RhbnRzJztcbmltcG9ydCBmb250Q29uc3RhbnRzIGZyb20gJ0BjZG8vYXBwcy9mb250Q29uc3RhbnRzJztcbmltcG9ydCB7Z2V0U3RvcmV9IGZyb20gJ0BjZG8vYXBwcy9yZWR1eCc7XG5pbXBvcnQgaTE4biBmcm9tICdAY2RvL2xvY2FsZSc7XG5cbmltcG9ydCBjb2xvciBmcm9tICcuLi8uLi91dGlsL2NvbG9yJztcblxuaW1wb3J0IEFzc2V0TWFuYWdlciwge0ltYWdlTW9kZX0gZnJvbSAnLi9Bc3NldE1hbmFnZXInO1xuaW1wb3J0IEljb25MaWJyYXJ5IGZyb20gJy4vSWNvbkxpYnJhcnknO1xuaW1wb3J0IEltYWdlVVJMSW5wdXQgZnJvbSAnLi9JbWFnZVVSTElucHV0JztcbmltcG9ydCB7UmVjb3JkaW5nRmlsZVR5cGV9IGZyb20gJy4vcmVjb3JkZXJzJztcblxuY29uc3QgZXh0ZW5zaW9uRmlsdGVyID0ge1xuICAvLyBOb3RlOiAuamZpZiBmaWxlcyB3aWxsIGJlIGNvbnZlcnRlZCB0byAuanBnIGJ5IHRoZSBzZXJ2ZXIuXG4gIGltYWdlOiAnLmpwZywgLmpwZWcsIC5qZmlmLCAuZ2lmLCAucG5nJyxcbiAgYXVkaW86ICcubXAzLCAud2F2JyxcbiAgZG9jdW1lbnQ6ICcuanBnLCAuanBlZywgLmdpZiwgLnBuZywgLnBkZiwgLmRvYywgLmRvY3gnLFxuICAvLyBEZWZhdWx0IHNldCBvZiB2YWxpZCBleHRlbnNpb25zICh1c2VkIGlmIHR5cGUgZmlsdGVyIGlzIG5vdCBzcGVjaWZpZWQpXG4gIGRlZmF1bHQ6ICcuanBnLCAuanBlZywgLmpmaWYsIC5naWYsIC5wbmcsIC5tcDMsIC53YXYsIC5wZGYsIC5kb2MsIC5kb2N4Jyxcbn07XG5cbi8qKlxuICogQSBjb21wb25lbnQgZm9yIG1hbmFnaW5nIGhvc3RlZCBhc3NldHMuXG4gKi9cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIEltYWdlUGlja2VyIGV4dGVuZHMgUmVhY3QuQ29tcG9uZW50IHtcbiAgc3RhdGljIHByb3BUeXBlcyA9IHtcbiAgICBhc3NldENob3NlbjogUHJvcFR5cGVzLmZ1bmMsXG4gICAgYXNzZXRzQ2hhbmdlZDogUHJvcFR5cGVzLmZ1bmMsXG4gICAgdHlwZUZpbHRlcjogUHJvcFR5cGVzLnN0cmluZyxcbiAgICBjdXN0b21BbGxvd2VkRXh0ZW5zaW9uczogUHJvcFR5cGVzLnN0cmluZyxcbiAgICB1cGxvYWRzRW5hYmxlZDogUHJvcFR5cGVzLmJvb2wuaXNSZXF1aXJlZCxcbiAgICBzaG93VW5kZXJhZ2VXYXJuaW5nOiBQcm9wVHlwZXMuYm9vbC5pc1JlcXVpcmVkLFxuICAgIHVzZUZpbGVzQXBpOiBQcm9wVHlwZXMuYm9vbCxcbiAgICBzb3VuZFBsYXllcjogUHJvcFR5cGVzLm9iamVjdCxcbiAgICBkaXNhYmxlQXVkaW9SZWNvcmRpbmc6IFByb3BUeXBlcy5ib29sLFxuICAgIHJlY29yZGluZ0ZpbGVUeXBlOiBQcm9wVHlwZXMub25lT2YoT2JqZWN0LnZhbHVlcyhSZWNvcmRpbmdGaWxlVHlwZSkpLFxuICAgIGN1cnJlbnRWYWx1ZTogUHJvcFR5cGVzLnN0cmluZyxcbiAgICBjdXJyZW50SW1hZ2VUeXBlOiBQcm9wVHlwZXMuc3RyaW5nLFxuICAgIC8vRm9yIGxvZ2dpbmcgcHVycG9zZXNcbiAgICBwcm9qZWN0SWQ6IFByb3BUeXBlcy5zdHJpbmcsXG4gICAgZWxlbWVudElkOiBQcm9wVHlwZXMuc3RyaW5nLFxuICB9O1xuXG4gIHN0YXRlID0ge21vZGU6IEltYWdlTW9kZS5GSUxFfTtcblxuICBnZXRBc3NldE5hbWVXaXRoUHJlZml4ID0gaWNvbiA9PiB7XG4gICAgdGhpcy5wcm9wcy5hc3NldENob3NlbihJQ09OX1BSRUZJWCArIGljb24pO1xuICB9O1xuXG4gIHNldE1vZGUgPSBtb2RlID0+IHtcbiAgICB0aGlzLnNldFN0YXRlKHttb2RlfSk7XG4gIH07XG5cbiAgZ2V0Qm9keSA9IChkaXNhYmxlQXVkaW8sIGxldmVsTmFtZSwgaXNTdGFydE1vZGUpID0+IHtcbiAgICBpZiAoIXRoaXMucHJvcHMuYXNzZXRDaG9zZW4gfHwgdGhpcy5zdGF0ZS5tb2RlID09PSBJbWFnZU1vZGUuRklMRSkge1xuICAgICAgY29uc3QgYWxsb3dlZEV4dGVuc2lvbnMgPVxuICAgICAgICB0aGlzLnByb3BzLmN1c3RvbUFsbG93ZWRFeHRlbnNpb25zIHx8XG4gICAgICAgIGV4dGVuc2lvbkZpbHRlclt0aGlzLnByb3BzLnR5cGVGaWx0ZXJdIHx8XG4gICAgICAgIGV4dGVuc2lvbkZpbHRlci5kZWZhdWx0O1xuICAgICAgcmV0dXJuIChcbiAgICAgICAgPEFzc2V0TWFuYWdlclxuICAgICAgICAgIGFzc2V0Q2hvc2VuPXt0aGlzLnByb3BzLmFzc2V0Q2hvc2VufVxuICAgICAgICAgIGFzc2V0c0NoYW5nZWQ9e3RoaXMucHJvcHMuYXNzZXRzQ2hhbmdlZH1cbiAgICAgICAgICBhbGxvd2VkRXh0ZW5zaW9ucz17YWxsb3dlZEV4dGVuc2lvbnN9XG4gICAgICAgICAgdXBsb2Fkc0VuYWJsZWQ9e3RoaXMucHJvcHMudXBsb2Fkc0VuYWJsZWR9XG4gICAgICAgICAgdXNlRmlsZXNBcGk9e3RoaXMucHJvcHMudXNlRmlsZXNBcGl9XG4gICAgICAgICAgcHJvamVjdElkPXt0aGlzLnByb3BzLnByb2plY3RJZH1cbiAgICAgICAgICBzb3VuZFBsYXllcj17dGhpcy5wcm9wcy5zb3VuZFBsYXllcn1cbiAgICAgICAgICBkaXNhYmxlQXVkaW9SZWNvcmRpbmc9e2Rpc2FibGVBdWRpb31cbiAgICAgICAgICByZWNvcmRpbmdGaWxlVHlwZT17dGhpcy5wcm9wcy5yZWNvcmRpbmdGaWxlVHlwZX1cbiAgICAgICAgICBpbWFnZVBpY2tlcj17dHJ1ZX1cbiAgICAgICAgICBlbGVtZW50SWQ9e3RoaXMucHJvcHMuZWxlbWVudElkfVxuICAgICAgICAgIGxldmVsTmFtZT17bGV2ZWxOYW1lfVxuICAgICAgICAgIGlzU3RhcnRNb2RlPXtpc1N0YXJ0TW9kZX1cbiAgICAgICAgLz5cbiAgICAgICk7XG4gICAgfSBlbHNlIGlmICh0aGlzLnN0YXRlLm1vZGUgPT09IEltYWdlTW9kZS5JQ09OKSB7XG4gICAgICByZXR1cm4gPEljb25MaWJyYXJ5IGFzc2V0Q2hvc2VuPXt0aGlzLmdldEFzc2V0TmFtZVdpdGhQcmVmaXh9IC8+O1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gKFxuICAgICAgICA8SW1hZ2VVUkxJbnB1dFxuICAgICAgICAgIGFzc2V0Q2hvc2VuPXt0aGlzLnByb3BzLmFzc2V0Q2hvc2VufVxuICAgICAgICAgIGFsbG93ZWRFeHRlbnNpb25zPXtleHRlbnNpb25GaWx0ZXJbdGhpcy5wcm9wcy50eXBlRmlsdGVyXX1cbiAgICAgICAgICBjdXJyZW50VmFsdWU9e1xuICAgICAgICAgICAgdGhpcy5wcm9wcy5jdXJyZW50SW1hZ2VUeXBlID09PSBJbWFnZU1vZGUuVVJMXG4gICAgICAgICAgICAgID8gdGhpcy5wcm9wcy5jdXJyZW50VmFsdWVcbiAgICAgICAgICAgICAgOiAnJ1xuICAgICAgICAgIH1cbiAgICAgICAgLz5cbiAgICAgICk7XG4gICAgfVxuICB9O1xuXG4gIHJlbmRlcigpIHtcbiAgICBjb25zdCBzdHlsZXMgPSB7XG4gICAgICByb290OiB7XG4gICAgICAgIG1hcmdpbjogJzAgMCAwIDVweCcsXG4gICAgICB9LFxuICAgICAgZmlsZU1vZGVUb2dnbGU6IHtcbiAgICAgICAgZmxvYXQ6ICdsZWZ0JyxcbiAgICAgICAgbWFyZ2luOiAnMCAyMHB4IDAgMCcsXG4gICAgICAgIGNvbG9yOiB0aGlzLnN0YXRlLm1vZGUgPT09IEltYWdlTW9kZS5GSUxFID8gbnVsbCA6ICcjOTk5JyxcbiAgICAgICAgZm9udFNpemU6ICcxNnB4JyxcbiAgICAgICAgY3Vyc29yOiAncG9pbnRlcicsXG4gICAgICB9LFxuICAgICAgaWNvbk1vZGVUb2dnbGU6IHtcbiAgICAgICAgbWFyZ2luOiAwLFxuICAgICAgICBmb250U2l6ZTogJzE2cHgnLFxuICAgICAgICBjb2xvcjogdGhpcy5zdGF0ZS5tb2RlID09PSBJbWFnZU1vZGUuSUNPTiA/IG51bGwgOiAnIzk5OScsXG4gICAgICAgIGN1cnNvcjogJ3BvaW50ZXInLFxuICAgICAgfSxcbiAgICAgIHVybE1vZGVUb2dnbGU6IHtcbiAgICAgICAgbWFyZ2luOiAnMCAyMHB4IDAgMCcsXG4gICAgICAgIGZvbnRTaXplOiAnMTZweCcsXG4gICAgICAgIGNvbG9yOiB0aGlzLnN0YXRlLm1vZGUgPT09IEltYWdlTW9kZS5VUkwgPyBudWxsIDogJyM5OTknLFxuICAgICAgICBjdXJzb3I6ICdwb2ludGVyJyxcbiAgICAgIH0sXG4gICAgICBkaXZpZGVyOiB7XG4gICAgICAgIGJvcmRlckNvbG9yOiBjb2xvci5wdXJwbGUsXG4gICAgICAgIG1hcmdpbjogJzVweCAwJyxcbiAgICAgIH0sXG4gICAgICB3YXJuaW5nOiB7XG4gICAgICAgIGNvbG9yOiBjb2xvci5yZWQsXG4gICAgICAgIGZvbnRTaXplOiAxMyxcbiAgICAgICAgZm9udFdlaWdodDogJ2JvbGQnLFxuICAgICAgfSxcbiAgICB9O1xuXG4gICAgaWYgKHRoaXMuc3RhdGUubW9kZSA9PT0gSW1hZ2VNb2RlLkZJTEUpIHtcbiAgICAgIHN0eWxlcy5maWxlTW9kZVRvZ2dsZSA9IHtcbiAgICAgICAgLi4uc3R5bGVzLmZpbGVNb2RlVG9nZ2xlLFxuICAgICAgICAuLi5mb250Q29uc3RhbnRzWydtYWluLWZvbnQtc2VtaS1ib2xkJ10sXG4gICAgICB9O1xuICAgIH1cblxuICAgIGlmICh0aGlzLnN0YXRlLm1vZGUgPT09IEltYWdlTW9kZS5JQ09OKSB7XG4gICAgICBzdHlsZXMuaWNvbk1vZGVUb2dnbGUgPSB7XG4gICAgICAgIC4uLnN0eWxlcy5pY29uTW9kZVRvZ2dsZSxcbiAgICAgICAgLi4uZm9udENvbnN0YW50c1snbWFpbi1mb250LXNlbWktYm9sZCddLFxuICAgICAgfTtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5zdGF0ZS5tb2RlID09PSBJbWFnZU1vZGUuVVJMKSB7XG4gICAgICBzdHlsZXMudXJsTW9kZVRvZ2dsZSA9IHtcbiAgICAgICAgLi4uc3R5bGVzLnVybE1vZGVUb2dnbGUsXG4gICAgICAgIC4uLmZvbnRDb25zdGFudHNbJ21haW4tZm9udC1zZW1pLWJvbGQnXSxcbiAgICAgIH07XG4gICAgfVxuXG4gICAgbGV0IG1vZGVTd2l0Y2gsXG4gICAgICB0aXRsZSA9IHRoaXMucHJvcHMuYXNzZXRDaG9zZW4gPyAoXG4gICAgICAgIDxwIGNsYXNzTmFtZT1cImRpYWxvZy10aXRsZVwiPntpMThuLmNob29zZUFzc2V0cygpfTwvcD5cbiAgICAgICkgOiAoXG4gICAgICAgIDxwIGNsYXNzTmFtZT1cImRpYWxvZy10aXRsZVwiPntpMThuLm1hbmFnZUFzc2V0cygpfTwvcD5cbiAgICAgICk7XG5cbiAgICBjb25zdCBpbWFnZVR5cGVGaWx0ZXIgPVxuICAgICAgIXRoaXMucHJvcHMudHlwZUZpbHRlciB8fCB0aGlzLnByb3BzLnR5cGVGaWx0ZXIgPT09ICdpbWFnZSc7XG4gICAgaWYgKHRoaXMucHJvcHMuYXNzZXRDaG9zZW4gJiYgaW1hZ2VUeXBlRmlsdGVyKSB7XG4gICAgICBtb2RlU3dpdGNoID0gKFxuICAgICAgICA8ZGl2IGlkPVwibW9kZVN3aXRjaFwiPlxuICAgICAgICAgIDxzcGFuXG4gICAgICAgICAgICBvbkNsaWNrPXsoKSA9PiB0aGlzLnNldE1vZGUoSW1hZ2VNb2RlLkZJTEUpfVxuICAgICAgICAgICAgc3R5bGU9e3N0eWxlcy5maWxlTW9kZVRvZ2dsZX1cbiAgICAgICAgICA+XG4gICAgICAgICAgICB7aTE4bi5teUZpbGVzKCl9XG4gICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgIDxzcGFuXG4gICAgICAgICAgICBvbkNsaWNrPXsoKSA9PiB0aGlzLnNldE1vZGUoSW1hZ2VNb2RlLlVSTCl9XG4gICAgICAgICAgICBzdHlsZT17c3R5bGVzLnVybE1vZGVUb2dnbGV9XG4gICAgICAgICAgPlxuICAgICAgICAgICAge2kxOG4ubGlua1RvSW1hZ2UoKX1cbiAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgPHNwYW5cbiAgICAgICAgICAgIG9uQ2xpY2s9eygpID0+IHRoaXMuc2V0TW9kZShJbWFnZU1vZGUuSUNPTil9XG4gICAgICAgICAgICBzdHlsZT17c3R5bGVzLmljb25Nb2RlVG9nZ2xlfVxuICAgICAgICAgID5cbiAgICAgICAgICAgIHtpMThuLmljb25zKCl9XG4gICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgIDxociBzdHlsZT17c3R5bGVzLmRpdmlkZXJ9IC8+XG4gICAgICAgIDwvZGl2PlxuICAgICAgKTtcbiAgICB9XG5cbiAgICBjb25zdCBkaXNhYmxlQXVkaW8gPVxuICAgICAgdGhpcy5wcm9wcy5kaXNhYmxlQXVkaW9SZWNvcmRpbmcgfHwgISF0aGlzLnByb3BzLmFzc2V0Q2hvc2VuO1xuXG4gICAgY29uc3QgcmVkdXhTdGF0ZSA9IGdldFN0b3JlKCkuZ2V0U3RhdGUoKTtcbiAgICBsZXQgbGV2ZWxOYW1lLCBpc1N0YXJ0TW9kZTtcbiAgICBpZiAocmVkdXhTdGF0ZSAmJiByZWR1eFN0YXRlLmxldmVsKSB7XG4gICAgICBsZXZlbE5hbWUgPSByZWR1eFN0YXRlLmxldmVsLm5hbWU7XG4gICAgICBpc1N0YXJ0TW9kZSA9IHJlZHV4U3RhdGUubGV2ZWwuaXNTdGFydE1vZGU7XG4gICAgfVxuICAgIGlmIChyZWR1eFN0YXRlLmphdmFsYWIgJiYgcmVkdXhTdGF0ZS5qYXZhbGFiLmxldmVsTmFtZSkge1xuICAgICAgbGV2ZWxOYW1lID0gcmVkdXhTdGF0ZS5qYXZhbGFiLmxldmVsTmFtZTtcbiAgICAgIGlzU3RhcnRNb2RlID0gcmVkdXhTdGF0ZS5qYXZhbGFiLmlzU3RhcnRNb2RlO1xuICAgIH1cblxuICAgIHJldHVybiAoXG4gICAgICA8ZGl2IGNsYXNzTmFtZT1cIm1vZGFsLWNvbnRlbnRcIiBzdHlsZT17c3R5bGVzLnJvb3R9PlxuICAgICAgICB7dGl0bGV9XG4gICAgICAgIHt0aGlzLnByb3BzLnNob3dVbmRlcmFnZVdhcm5pbmcgJiYgKFxuICAgICAgICAgIDxwIHN0eWxlPXtzdHlsZXMud2FybmluZ30+XG4gICAgICAgICAgICB7aTE4bi53YXJuaW5nVXBsb2FkaW5nUGVyc29uYWxJbmZvcm1hdGlvbigpfVxuICAgICAgICAgIDwvcD5cbiAgICAgICAgKX1cbiAgICAgICAge21vZGVTd2l0Y2h9XG4gICAgICAgIHt0aGlzLmdldEJvZHkoZGlzYWJsZUF1ZGlvLCBsZXZlbE5hbWUsIGlzU3RhcnRNb2RlKX1cbiAgICAgIDwvZGl2PlxuICAgICk7XG4gIH1cbn1cbiIsImltcG9ydCBtb21lbnQgZnJvbSAnbW9tZW50JztcbmltcG9ydCBQcm9wVHlwZXMgZnJvbSAncHJvcC10eXBlcyc7XG5pbXBvcnQgUmVhY3QgZnJvbSAncmVhY3QnO1xuXG5pbXBvcnQge0FCU09MVVRFX1JFR0VYUH0gZnJvbSAnQGNkby9hcHBzL2Fzc2V0TWFuYWdlbWVudC9hc3NldFByZWZpeCc7XG5pbXBvcnQgSW5wdXRQcm9tcHQgZnJvbSAnQGNkby9hcHBzL3RlbXBsYXRlcy9JbnB1dFByb21wdCc7XG5pbXBvcnQgaTE4biBmcm9tICdAY2RvL2xvY2FsZSc7XG5cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIEltYWdlVVJMSW5wdXQgZXh0ZW5kcyBSZWFjdC5Db21wb25lbnQge1xuICBzdGF0aWMgcHJvcFR5cGVzID0ge1xuICAgIGFzc2V0Q2hvc2VuOiBQcm9wVHlwZXMuZnVuYyxcbiAgICBhbGxvd2VkRXh0ZW5zaW9uczogUHJvcFR5cGVzLnN0cmluZyxcbiAgICBjdXJyZW50VmFsdWU6IFByb3BUeXBlcy5zdHJpbmcsXG4gIH07XG4gIHN0YXRlID0ge3Nob3dFcnJvcjogZmFsc2V9O1xuXG4gIGhhbmRsZVN1Ym1pdFdyYXBwZXIgPSB1cmwgPT4ge1xuICAgIGlmIChBQlNPTFVURV9SRUdFWFAudGVzdCh1cmwpKSB7XG4gICAgICB0aGlzLnByb3BzLmFzc2V0Q2hvc2VuKHVybCwgbW9tZW50KCkpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLnNldFN0YXRlKHtzaG93RXJyb3I6IHRydWV9KTtcbiAgICB9XG4gIH07XG5cbiAgcmVuZGVyKCkge1xuICAgIHJldHVybiAoXG4gICAgICA8ZGl2PlxuICAgICAgICA8ZGl2IHN0eWxlPXtzdHlsZXMuc3VwcG9ydGluZ1RleHR9PlxuICAgICAgICAgIHtpMThuLmltYWdlVVJMSW5wdXREZXNjcmlwdGlvbigpfVxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPElucHV0UHJvbXB0XG4gICAgICAgICAgcXVlc3Rpb249e2kxOG4uaW1hZ2VVUkxJbnB1dFByb21wdCgpfVxuICAgICAgICAgIG9uSW5wdXRSZWNlaXZlZD17dGhpcy5oYW5kbGVTdWJtaXRXcmFwcGVyfVxuICAgICAgICAgIGN1cnJlbnRWYWx1ZT17dGhpcy5wcm9wcy5jdXJyZW50VmFsdWV9XG4gICAgICAgIC8+XG4gICAgICAgIHt0aGlzLnN0YXRlLnNob3dFcnJvciAmJiAoXG4gICAgICAgICAgPGRpdiBzdHlsZT17c3R5bGVzLmVycm9yfT57aTE4bi5pbWFnZVVSTElucHV0SW52YWxpZCgpfTwvZGl2PlxuICAgICAgICApfVxuICAgICAgICA8ZGl2IHN0eWxlPXtzdHlsZXMuZXhhbXBsZX0+e2kxOG4uaW1hZ2VVUkxJbnB1dEV4YW1wbGUoKX08L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgICk7XG4gIH1cbn1cblxuY29uc3Qgc3R5bGVzID0ge1xuICBzdXBwb3J0aW5nVGV4dDoge1xuICAgIG1hcmdpbjogJzFlbSAwJyxcbiAgICBmb250U2l6ZTogJzE2cHgnLFxuICAgIGxpbmVIZWlnaHQ6ICcyMHB4JyxcbiAgfSxcbiAgZXhhbXBsZToge1xuICAgIG1hcmdpbjogJzFlbSAwJyxcbiAgICBmb250U2l6ZTogJzE2cHgnLFxuICAgIGxpbmVIZWlnaHQ6ICcyMHB4JyxcbiAgfSxcbiAgZXJyb3I6IHtcbiAgICBjb2xvcjogJ3JlZCcsXG4gIH0sXG59O1xuIiwiLyoqIEdlbmVyaWMgc2VhcmNoIGJhciAqL1xuaW1wb3J0IFByb3BUeXBlcyBmcm9tICdwcm9wLXR5cGVzJztcbmltcG9ydCBSZWFjdCBmcm9tICdyZWFjdCc7XG5cbmltcG9ydCBjb2xvciBmcm9tICdAY2RvL2FwcHMvdXRpbC9jb2xvcic7XG5cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIFNlYXJjaEJhciBleHRlbmRzIFJlYWN0LkNvbXBvbmVudCB7XG4gIHN0YXRpYyBwcm9wVHlwZXMgPSB7XG4gICAgcGxhY2Vob2xkZXJUZXh0OiBQcm9wVHlwZXMuc3RyaW5nLmlzUmVxdWlyZWQsXG4gICAgb25DaGFuZ2U6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgY2xlYXJCdXR0b246IFByb3BUeXBlcy5ib29sLFxuICB9O1xuXG4gIGNvbXBvbmVudERpZE1vdW50KCkge1xuICAgIHRoaXMuc2VhcmNoQm94LmZvY3VzKCk7XG4gIH1cblxuICByZW5kZXIoKSB7XG4gICAgcmV0dXJuIChcbiAgICAgIDxkaXYgc3R5bGU9e3N0eWxlcy5zZWFyY2hBcmVhfT5cbiAgICAgICAgPHNwYW4gY2xhc3NOYW1lPVwiZmEgZmEtc2VhcmNoXCIgc3R5bGU9e3N0eWxlcy5pY29ufSAvPlxuICAgICAgICA8aW5wdXRcbiAgICAgICAgICBzdHlsZT17c3R5bGVzLmlucHV0fVxuICAgICAgICAgIHBsYWNlaG9sZGVyPXt0aGlzLnByb3BzLnBsYWNlaG9sZGVyVGV4dH1cbiAgICAgICAgICBvbkNoYW5nZT17dGhpcy5wcm9wcy5vbkNoYW5nZX1cbiAgICAgICAgICByZWY9e2lucHV0ID0+IHtcbiAgICAgICAgICAgIHRoaXMuc2VhcmNoQm94ID0gaW5wdXQ7XG4gICAgICAgICAgfX1cbiAgICAgICAgLz5cbiAgICAgICAge3RoaXMucHJvcHMuY2xlYXJCdXR0b24gJiYgKFxuICAgICAgICAgIDxzcGFuXG4gICAgICAgICAgICBjbGFzc05hbWU9XCJmYSBmYS1jbG9zZVwiXG4gICAgICAgICAgICBzdHlsZT17c3R5bGVzLmNsZWFySWNvbn1cbiAgICAgICAgICAgIG9uQ2xpY2s9eygpID0+IHtcbiAgICAgICAgICAgICAgdGhpcy5zZWFyY2hCb3gudmFsdWUgPSAnJztcbiAgICAgICAgICAgICAgdGhpcy5wcm9wcy5vbkNoYW5nZSgpO1xuICAgICAgICAgICAgfX1cbiAgICAgICAgICAvPlxuICAgICAgICApfVxuICAgICAgPC9kaXY+XG4gICAgKTtcbiAgfVxufVxuXG5jb25zdCBCT1JERVJfV0lEVEggPSAxO1xuY29uc3QgQk9SREVSX0NPTE9SID0gY29sb3IubGlnaHRfZ3JheTtcbmNvbnN0IEJPUkRFUl9SQURJVVMgPSA0O1xuXG4vLyBXZSBoYXZlIHNpZGUtYnktc2lkZSBlbGVtZW50cyB0aGF0IHNob3VsZCBmb3JtYXQgc29ydCBvZiBsaWtlIG9uZSBlbGVtZW50XG5jb25zdCBzdHlsZXMgPSB7XG4gIGlucHV0OiB7XG4gICAgd2lkdGg6ICcxMDAlJyxcbiAgICBib3hTaXppbmc6ICdib3JkZXItYm94JyxcbiAgICBwYWRkaW5nOiAnM3B4IDdweCcsXG4gICAgbWFyZ2luOiAwLFxuICAgIGJvcmRlclN0eWxlOiAnc29saWQnLFxuICAgIGJvcmRlcldpZHRoOiBCT1JERVJfV0lEVEgsXG4gICAgYm9yZGVyQ29sb3I6IEJPUkRFUl9DT0xPUixcbiAgICBib3JkZXJSYWRpdXM6IEJPUkRFUl9SQURJVVMsXG4gICAgdGV4dEluZGVudDogMjIsXG4gIH0sXG4gIGljb246IHtcbiAgICBwb3NpdGlvbjogJ2Fic29sdXRlJyxcbiAgICB0b3A6IDYsXG4gICAgbGVmdDogNSxcbiAgICBmb250U2l6ZTogMTYsXG4gICAgY29sb3I6IGNvbG9yLmxpZ2h0X2dyYXksXG4gIH0sXG4gIGNsZWFySWNvbjoge1xuICAgIHBvc2l0aW9uOiAnYWJzb2x1dGUnLFxuICAgIHRvcDogNixcbiAgICByaWdodDogNSxcbiAgICBmb250U2l6ZTogMTYsXG4gICAgY29sb3I6IGNvbG9yLmxpZ2h0X2dyYXksXG4gICAgY3Vyc29yOiAncG9pbnRlcicsXG4gIH0sXG4gIHNlYXJjaEFyZWE6IHtcbiAgICBwb3NpdGlvbjogJ3JlbGF0aXZlJyxcbiAgICBtYXJnaW46ICcxMHB4IDAnLFxuICB9LFxufTtcbiIsImltcG9ydCBQcm9wVHlwZXMgZnJvbSAncHJvcC10eXBlcyc7XG5pbXBvcnQgUmVhY3QsIHtDb21wb25lbnR9IGZyb20gJ3JlYWN0JztcblxuY29uc3QgZm9udFNpemUgPSAxODtcblxuLyoqXG4gKiBTaW1wbGUgaW5wdXQgZGlhbG9nIHRvIHByb21wdCBmb3IgdXNlciBpbnB1dC5cbiAqL1xuZXhwb3J0IGRlZmF1bHQgY2xhc3MgSW5wdXRQcm9tcHQgZXh0ZW5kcyBDb21wb25lbnQge1xuICBzdGF0aWMgcHJvcFR5cGVzID0ge1xuICAgIHF1ZXN0aW9uOiBQcm9wVHlwZXMuc3RyaW5nLmlzUmVxdWlyZWQsXG4gICAgb25JbnB1dFJlY2VpdmVkOiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICAgIGN1cnJlbnRWYWx1ZTogUHJvcFR5cGVzLnN0cmluZyxcbiAgfTtcbiAgc3RhdGUgPSB7dmFsdWU6IHRoaXMucHJvcHMuY3VycmVudFZhbHVlfTtcblxuICBoYW5kbGVTdWJtaXQgPSBlID0+IHtcbiAgICBlLnByZXZlbnREZWZhdWx0KCk7XG4gICAgdGhpcy5wcm9wcy5vbklucHV0UmVjZWl2ZWQodGhpcy5yZWZzLmFuc3dlci52YWx1ZSk7XG4gIH07XG5cbiAgY29tcG9uZW50RGlkTW91bnQoKSB7XG4gICAgdGhpcy5yZWZzLmFuc3dlci5mb2N1cygpO1xuICB9XG5cbiAgcmVuZGVyKCkge1xuICAgIHJldHVybiAoXG4gICAgICA8Zm9ybSBzdHlsZT17c3R5bGVzLmZvcm19IG9uU3VibWl0PXt0aGlzLmhhbmRsZVN1Ym1pdH0+XG4gICAgICAgIDxkaXYgc3R5bGU9e3N0eWxlcy53cmFwcGVyfT5cbiAgICAgICAgICA8bGFiZWwgc3R5bGU9e3N0eWxlcy5xdWVzdGlvbn0+e3RoaXMucHJvcHMucXVlc3Rpb259PC9sYWJlbD5cbiAgICAgICAgICA8aW5wdXRcbiAgICAgICAgICAgIHJlZj1cImFuc3dlclwiXG4gICAgICAgICAgICB2YWx1ZT17dGhpcy5zdGF0ZS52YWx1ZX1cbiAgICAgICAgICAgIG9uQ2hhbmdlPXtlID0+IHRoaXMuc2V0U3RhdGUoe3ZhbHVlOiBlLnRhcmdldC52YWx1ZX0pfVxuICAgICAgICAgICAgdHlwZT1cInRleHRcIlxuICAgICAgICAgICAgc3R5bGU9e3N0eWxlcy5pbnB1dH1cbiAgICAgICAgICAvPlxuICAgICAgICAgIDxpbnB1dCB0eXBlPVwic3VibWl0XCIgY2xhc3NOYW1lPVwiYnRuXCIgc3R5bGU9e3N0eWxlcy5zdWJtaXR9IC8+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9mb3JtPlxuICAgICk7XG4gIH1cbn1cblxuY29uc3Qgc3R5bGVzID0ge1xuICBmb3JtOiB7XG4gICAgYmFja2dyb3VuZDogJyNmZmYnLFxuICB9LFxuICB3cmFwcGVyOiB7XG4gICAgbWFyZ2luOiAyMCxcbiAgfSxcbiAgcXVlc3Rpb246IHtcbiAgICBmb250U2l6ZTogZm9udFNpemUsXG4gIH0sXG4gIGlucHV0OiB7XG4gICAgZm9udFNpemU6IGZvbnRTaXplLFxuICAgIHdpZHRoOiAnMTAwJScsXG4gICAgaGVpZ2h0OiAnMmVtJyxcbiAgICBib3hTaXppbmc6ICdib3JkZXItYm94JyxcbiAgfSxcbiAgc3VibWl0OiB7XG4gICAgZm9udFNpemU6IGZvbnRTaXplLFxuICB9LFxufTtcbiJdLCJuYW1lcyI6WyJfcHJvcFR5cGVzIiwiX2ludGVyb3BSZXF1aXJlRGVmYXVsdCIsInJlcXVpcmUiLCJfcmVhY3QiLCJlIiwiX19lc01vZHVsZSIsIl90eXBlb2YiLCJvIiwiU3ltYm9sIiwiaXRlcmF0b3IiLCJjb25zdHJ1Y3RvciIsInByb3RvdHlwZSIsIl9zZXRQcm90b3R5cGVPZiIsInQiLCJPYmplY3QiLCJzZXRQcm90b3R5cGVPZiIsImJpbmQiLCJfX3Byb3RvX18iLCJJY29uIiwiZXhwb3J0cyIsIl9SZWFjdCRDb21wb25lbnQiLCJhcHBseSIsImFyZ3VtZW50cyIsIl9pbmhlcml0c0xvb3NlIiwiY3JlYXRlIiwicmVuZGVyIiwiY3JlYXRlRWxlbWVudCIsImNsYXNzTmFtZSIsInRoaXMiLCJwcm9wcyIsImljb25JZCIsInN0eWxlIiwiZmxvYXQiLCJmb250U2l6ZSIsIndpZHRoIiwidGV4dEFsaWduIiwiUmVhY3QiLCJDb21wb25lbnQiLCJfZGVmaW5lUHJvcGVydHkiLCJyIiwiX3RvUHJvcGVydHlLZXkiLCJpIiwiX3RvUHJpbWl0aXZlIiwidG9QcmltaXRpdmUiLCJjYWxsIiwiVHlwZUVycm9yIiwiU3RyaW5nIiwiTnVtYmVyIiwiZGVmaW5lUHJvcGVydHkiLCJ2YWx1ZSIsImVudW1lcmFibGUiLCJjb25maWd1cmFibGUiLCJ3cml0YWJsZSIsIlByb3BUeXBlcyIsInN0cmluZyIsImlzUmVxdWlyZWQiLCJ3aW5kb3ciLCJkYXNoYm9hcmQiLCJtb2R1bGUiLCJkZWZhdWx0IiwiX1NlYXJjaEJhciIsIl9sb2NhbGUiLCJfSWNvbkxpc3QiLCJJY29uTGlicmFyeSIsIl90aGlzIiwiX2xlbiIsImxlbmd0aCIsImFyZ3MiLCJBcnJheSIsIl9rZXkiLCJjb25jYXQiLCJzZWFyY2giLCJzZXRTdGF0ZSIsInRhcmdldCIsInRvTG93ZXJDYXNlIiwicmVwbGFjZSIsIm1hcmdpbkJvdHRvbSIsIm9uQ2hhbmdlIiwicGxhY2Vob2xkZXJUZXh0IiwiaTE4biIsImljb25TZWFyY2hQbGFjZWhvbGRlciIsImFzc2V0Q2hvc2VuIiwic3RhdGUiLCJmdW5jIiwiX0ljb25MaXN0RW50cnkiLCJfaWNvbnMiLCJJY29uTGlzdCIsIl9wcm90byIsImdldE1hdGNoZXMiLCJxdWVyeSIsInJlc3VsdHMiLCJrZXlzIiwiYWxpYXNlcyIsImZvckVhY2giLCJhbGlhcyIsInRlc3QiLCJtYXRjaCIsIlJlZ0V4cCIsImljb25FbnRyaWVzIiwibWFwIiwia2V5IiwiYWx0TWF0Y2giLCJoZWlnaHQiLCJvdmVyZmxvd1kiLCJjbGVhciIsIm5vSWNvbnNGb3VuZCIsIl9JY29uIiwiSWNvbkxpc3RFbnRyeSIsImhpZ2hsaWdodFNlYXJjaCIsInN0ciIsIm9mZnNldCIsImluZGV4T2YiLCJsZWZ0Iiwic3Vic3RyIiwicmlnaHQiLCJiYWNrZ3JvdW5kQ29sb3IiLCJpY29uTGFiZWwiLCJjb2x1bW5XaWR0aCIsImFsdE1hdGNoVGV4dCIsInN0eWxlcyIsImNvbG9yIiwibWFyZ2luIiwiaGlnaGxpZ2h0ZWROYW1lIiwicm9vdFN0eWxlcyIsImN1cnNvciIsImFzc2V0IiwidGl0bGUiLCJvbkNsaWNrIiwiaW5zdGFuY2VPZiIsIl9jb25zdGFudHMiLCJfZm9udENvbnN0YW50cyIsIl9yZWR1eCIsIl9jb2xvciIsIl9Bc3NldE1hbmFnZXIiLCJfaW50ZXJvcFJlcXVpcmVXaWxkY2FyZCIsIl9nZXRSZXF1aXJlV2lsZGNhcmRDYWNoZSIsImhhcyIsImdldCIsIm4iLCJhIiwiZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yIiwidSIsImhhc093blByb3BlcnR5Iiwic2V0IiwiX0ljb25MaWJyYXJ5IiwiX0ltYWdlVVJMSW5wdXQiLCJfcmVjb3JkZXJzIiwiV2Vha01hcCIsIm93bktleXMiLCJnZXRPd25Qcm9wZXJ0eVN5bWJvbHMiLCJmaWx0ZXIiLCJwdXNoIiwiX29iamVjdFNwcmVhZCIsImdldE93blByb3BlcnR5RGVzY3JpcHRvcnMiLCJkZWZpbmVQcm9wZXJ0aWVzIiwiZXh0ZW5zaW9uRmlsdGVyIiwiaW1hZ2UiLCJhdWRpbyIsImRvY3VtZW50IiwiSW1hZ2VQaWNrZXIiLCJtb2RlIiwiSW1hZ2VNb2RlIiwiRklMRSIsImljb24iLCJJQ09OX1BSRUZJWCIsImRpc2FibGVBdWRpbyIsImxldmVsTmFtZSIsImlzU3RhcnRNb2RlIiwiSUNPTiIsImdldEFzc2V0TmFtZVdpdGhQcmVmaXgiLCJhbGxvd2VkRXh0ZW5zaW9ucyIsInR5cGVGaWx0ZXIiLCJjdXJyZW50VmFsdWUiLCJjdXJyZW50SW1hZ2VUeXBlIiwiVVJMIiwiY3VzdG9tQWxsb3dlZEV4dGVuc2lvbnMiLCJhc3NldHNDaGFuZ2VkIiwidXBsb2Fkc0VuYWJsZWQiLCJ1c2VGaWxlc0FwaSIsInByb2plY3RJZCIsInNvdW5kUGxheWVyIiwiZGlzYWJsZUF1ZGlvUmVjb3JkaW5nIiwicmVjb3JkaW5nRmlsZVR5cGUiLCJpbWFnZVBpY2tlciIsImVsZW1lbnRJZCIsIl90aGlzMiIsInJvb3QiLCJmaWxlTW9kZVRvZ2dsZSIsImljb25Nb2RlVG9nZ2xlIiwidXJsTW9kZVRvZ2dsZSIsImRpdmlkZXIiLCJib3JkZXJDb2xvciIsInB1cnBsZSIsIndhcm5pbmciLCJyZWQiLCJmb250V2VpZ2h0IiwiZm9udENvbnN0YW50cyIsIm1vZGVTd2l0Y2giLCJjaG9vc2VBc3NldHMiLCJtYW5hZ2VBc3NldHMiLCJpbWFnZVR5cGVGaWx0ZXIiLCJpZCIsInNldE1vZGUiLCJteUZpbGVzIiwibGlua1RvSW1hZ2UiLCJpY29ucyIsInJlZHV4U3RhdGUiLCJnZXRTdG9yZSIsImdldFN0YXRlIiwibGV2ZWwiLCJuYW1lIiwiamF2YWxhYiIsInNob3dVbmRlcmFnZVdhcm5pbmciLCJ3YXJuaW5nVXBsb2FkaW5nUGVyc29uYWxJbmZvcm1hdGlvbiIsImdldEJvZHkiLCJib29sIiwib2JqZWN0Iiwib25lT2YiLCJ2YWx1ZXMiLCJSZWNvcmRpbmdGaWxlVHlwZSIsIl9tb21lbnQiLCJfYXNzZXRQcmVmaXgiLCJfSW5wdXRQcm9tcHQiLCJJbWFnZVVSTElucHV0Iiwic2hvd0Vycm9yIiwidXJsIiwiQUJTT0xVVEVfUkVHRVhQIiwibW9tZW50Iiwic3VwcG9ydGluZ1RleHQiLCJpbWFnZVVSTElucHV0RGVzY3JpcHRpb24iLCJxdWVzdGlvbiIsImltYWdlVVJMSW5wdXRQcm9tcHQiLCJvbklucHV0UmVjZWl2ZWQiLCJoYW5kbGVTdWJtaXRXcmFwcGVyIiwiZXJyb3IiLCJpbWFnZVVSTElucHV0SW52YWxpZCIsImV4YW1wbGUiLCJpbWFnZVVSTElucHV0RXhhbXBsZSIsImxpbmVIZWlnaHQiLCJTZWFyY2hCYXIiLCJjb21wb25lbnREaWRNb3VudCIsInNlYXJjaEJveCIsImZvY3VzIiwic2VhcmNoQXJlYSIsImlucHV0IiwicGxhY2Vob2xkZXIiLCJyZWYiLCJjbGVhckJ1dHRvbiIsImNsZWFySWNvbiIsImJveFNpemluZyIsInBhZGRpbmciLCJib3JkZXJTdHlsZSIsImJvcmRlcldpZHRoIiwibGlnaHRfZ3JheSIsImJvcmRlclJhZGl1cyIsInRleHRJbmRlbnQiLCJwb3NpdGlvbiIsInRvcCIsIklucHV0UHJvbXB0IiwiX0NvbXBvbmVudCIsInByZXZlbnREZWZhdWx0IiwicmVmcyIsImFuc3dlciIsImZvcm0iLCJvblN1Ym1pdCIsImhhbmRsZVN1Ym1pdCIsIndyYXBwZXIiLCJ0eXBlIiwic3VibWl0IiwiYmFja2dyb3VuZCJdLCJzb3VyY2VSb290IjoiIn0=