@hms-dbmi-bgm/react-workflow-viz
Version:
React component for visualizing CWL-like workflows and provenance graphs.
217 lines (185 loc) • 580 kB
JavaScript
(function webpackUniversalModuleDefinition(root, factory) {
if(typeof exports === 'object' && typeof module === 'object')
module.exports = factory(require("react"), require("react-dom"), require("react-workflow-viz"));
else if(typeof define === 'function' && define.amd)
define("demo", ["react", "react-dom", "react-workflow-viz"], factory);
else if(typeof exports === 'object')
exports["demo"] = factory(require("react"), require("react-dom"), require("react-workflow-viz"));
else
root["demo"] = factory(root["React"], root["ReactDOM"], root["react-workflow-viz"]);
})(window, function(__WEBPACK_EXTERNAL_MODULE_react__, __WEBPACK_EXTERNAL_MODULE_react_dom__, __WEBPACK_EXTERNAL_MODULE_react_workflow_viz__) {
return /******/ (function(modules) { // webpackBootstrap
/******/ // The module cache
/******/ var installedModules = {};
/******/
/******/ // The require function
/******/ function __webpack_require__(moduleId) {
/******/
/******/ // Check if module is in cache
/******/ if(installedModules[moduleId]) {
/******/ return installedModules[moduleId].exports;
/******/ }
/******/ // Create a new module (and put it into the cache)
/******/ var module = installedModules[moduleId] = {
/******/ i: moduleId,
/******/ l: false,
/******/ exports: {}
/******/ };
/******/
/******/ // Execute the module function
/******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__);
/******/
/******/ // Flag the module as loaded
/******/ module.l = true;
/******/
/******/ // Return the exports of the module
/******/ return module.exports;
/******/ }
/******/
/******/
/******/ // expose the modules object (__webpack_modules__)
/******/ __webpack_require__.m = modules;
/******/
/******/ // expose the module cache
/******/ __webpack_require__.c = installedModules;
/******/
/******/ // define getter function for harmony exports
/******/ __webpack_require__.d = function(exports, name, getter) {
/******/ if(!__webpack_require__.o(exports, name)) {
/******/ Object.defineProperty(exports, name, { enumerable: true, get: getter });
/******/ }
/******/ };
/******/
/******/ // define __esModule on exports
/******/ __webpack_require__.r = function(exports) {
/******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) {
/******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
/******/ }
/******/ Object.defineProperty(exports, '__esModule', { value: true });
/******/ };
/******/
/******/ // create a fake namespace object
/******/ // mode & 1: value is a module id, require it
/******/ // mode & 2: merge all properties of value into the ns
/******/ // mode & 4: return value when already ns object
/******/ // mode & 8|1: behave like require
/******/ __webpack_require__.t = function(value, mode) {
/******/ if(mode & 1) value = __webpack_require__(value);
/******/ if(mode & 8) return value;
/******/ if((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;
/******/ var ns = Object.create(null);
/******/ __webpack_require__.r(ns);
/******/ Object.defineProperty(ns, 'default', { enumerable: true, value: value });
/******/ if(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));
/******/ return ns;
/******/ };
/******/
/******/ // getDefaultExport function for compatibility with non-harmony modules
/******/ __webpack_require__.n = function(module) {
/******/ var getter = module && module.__esModule ?
/******/ function getDefault() { return module['default']; } :
/******/ function getModuleExports() { return module; };
/******/ __webpack_require__.d(getter, 'a', getter);
/******/ return getter;
/******/ };
/******/
/******/ // Object.prototype.hasOwnProperty.call
/******/ __webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };
/******/
/******/ // __webpack_public_path__
/******/ __webpack_require__.p = "/demo/";
/******/
/******/
/******/ // Load entry module and return exports
/******/ return __webpack_require__(__webpack_require__.s = "./demo/demo.js");
/******/ })
/************************************************************************/
/******/ ({
/***/ "./demo/demo.js":
/*!**********************!*\
!*** ./demo/demo.js ***!
\**********************/
/*! no exports provided */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"react\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var react_dom__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react-dom */ \"react-dom\");\n/* harmony import */ var react_dom__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react_dom__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var underscore__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! underscore */ \"./node_modules/underscore/modules/index-all.js\");\n/* harmony import */ var url__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! url */ \"./node_modules/url/url.js\");\n/* harmony import */ var url__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(url__WEBPACK_IMPORTED_MODULE_3__);\n/* harmony import */ var _package_json__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./../package.json */ \"./package.json\");\nvar _package_json__WEBPACK_IMPORTED_MODULE_4___namespace = /*#__PURE__*/__webpack_require__.t(/*! ./../package.json */ \"./package.json\", 1);\n/* harmony import */ var _fortawesome_fontawesome_free_css_all_css__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @fortawesome/fontawesome-free/css/all.css */ \"./node_modules/@fortawesome/fontawesome-free/css/all.css\");\n/* harmony import */ var _fortawesome_fontawesome_free_css_all_css__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(_fortawesome_fontawesome_free_css_all_css__WEBPACK_IMPORTED_MODULE_5__);\n/* harmony import */ var react_workflow_viz__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! react-workflow-viz */ \"react-workflow-viz\");\n/* harmony import */ var react_workflow_viz__WEBPACK_IMPORTED_MODULE_6___default = /*#__PURE__*/__webpack_require__.n(react_workflow_viz__WEBPACK_IMPORTED_MODULE_6__);\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, \"prototype\", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function (o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function () { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } else if (call !== void 0) { throw new TypeError(\"Derived constructors may only return object or undefined\"); } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function (o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\n\n\n\n\n\n // Loaded on index.html, defined as an external in webpack.config.demo.js\n\n // eslint-disable-next-line no-undef\n\nvar BASE_HREF = true ? \"http://localhost:8100/demo/testdata/\" : undefined;\nvar workflowOpts = {\n //\"showReferenceFiles\": true,\n \"showIndirectFiles\": true\n};\n\nvar DemoApp = /*#__PURE__*/function (_Component) {\n _inherits(DemoApp, _Component);\n\n var _super = _createSuper(DemoApp);\n\n function DemoApp(props) {\n var _this;\n\n _classCallCheck(this, DemoApp);\n\n _this = _super.call(this, props);\n _this.handleParsingOptChange = _this.handleParsingOptChange.bind(_assertThisInitialized(_this));\n _this.handleRowSpacingTypeChange = _this.handleRowSpacingTypeChange.bind(_assertThisInitialized(_this));\n _this.handleDemoChange = _this.handleDemoChange.bind(_assertThisInitialized(_this));\n _this.loadDemoData = _this.loadDemoData.bind(_assertThisInitialized(_this));\n _this.state = {\n currentDemoIdx: 0,\n parsingOptions: {\n showReferenceFiles: true,\n showParameters: false,\n showIndirectFiles: false,\n parseBasicIO: false\n },\n loadedSteps: {},\n rowSpacingType: \"compact\",\n loadingSteps: false\n };\n return _this;\n }\n\n _createClass(DemoApp, [{\n key: \"componentDidMount\",\n value: function componentDidMount() {\n this.loadDemoData();\n }\n }, {\n key: \"handleParsingOptChange\",\n value: function handleParsingOptChange(evt) {\n var key = evt.target.getAttribute(\"name\");\n if (!key) return false;\n this.setState(function (_ref) {\n var prevOpts = _ref.parsingOptions;\n\n var nextOpts = _objectSpread(_objectSpread({}, prevOpts), {}, _defineProperty({}, key, !prevOpts[key]));\n\n return {\n parsingOptions: nextOpts\n };\n });\n }\n }, {\n key: \"handleRowSpacingTypeChange\",\n value: function handleRowSpacingTypeChange(evt) {\n var nextValue = evt.target.value && {\n // todo - rename internal stuff\n \"Centered\": \"compact\",\n \"Stacked\": \"stacked\",\n \"Spread\": \"wide\"\n }[evt.target.value];\n if (!nextValue) return false;\n this.setState({\n rowSpacingType: nextValue\n });\n }\n }, {\n key: \"handleDemoChange\",\n value: function handleDemoChange(evt) {\n var testData = this.props.testData;\n var nextValue = evt.target.value;\n\n var nextIdx = nextValue && underscore__WEBPACK_IMPORTED_MODULE_2__[\"default\"].findIndex(testData, {\n name: nextValue\n });\n\n if (nextIdx === -1) return false;\n this.setState({\n currentDemoIdx: nextIdx\n }, this.loadDemoData);\n }\n }, {\n key: \"loadDemoData\",\n value: function loadDemoData() {\n var _this2 = this;\n\n var testData = this.props.testData;\n var _this$state = this.state,\n currentDemoIdx = _this$state.currentDemoIdx,\n loadedSteps = _this$state.loadedSteps;\n var currDemoInfo = testData[currentDemoIdx];\n var name = currDemoInfo.name,\n href = currDemoInfo.href;\n var existingSteps = currDemoInfo.steps || loadedSteps[name];\n\n if (!Array.isArray(existingSteps)) {\n this.setState({\n loadingSteps: true\n }, function () {\n window.fetch(url__WEBPACK_IMPORTED_MODULE_3___default.a.resolve(window.location.href, href)).then(function (resp) {\n return resp.json();\n }).then(function (resp) {\n _this2.setState(function (_ref2) {\n var prevSteps = _ref2.loadedSteps;\n return {\n loadedSteps: _objectSpread(_objectSpread({}, prevSteps), {}, _defineProperty({}, name, resp)),\n loadingSteps: false\n };\n });\n })[\"catch\"](function (err) {\n console.error(\"Something went wrong while loading data!\", err);\n\n _this2.setState({\n loadingSteps: false\n });\n });\n });\n }\n }\n }, {\n key: \"render\",\n value: function render() {\n var testData = this.props.testData;\n var _this$state2 = this.state,\n currentDemoIdx = _this$state2.currentDemoIdx,\n parsingOptions = _this$state2.parsingOptions,\n rowSpacingType = _this$state2.rowSpacingType,\n loadedSteps = _this$state2.loadedSteps,\n loadingSteps = _this$state2.loadingSteps;\n var _testData$currentDemo = testData[currentDemoIdx],\n name = _testData$currentDemo.name,\n description = _testData$currentDemo.description,\n preloadedSteps = _testData$currentDemo.steps,\n overrideOpts = _testData$currentDemo.opts;\n\n var fullParseOpts = _objectSpread(_objectSpread({}, parsingOptions), overrideOpts);\n\n var steps = preloadedSteps || loadedSteps[name];\n return /*#__PURE__*/React.createElement(\"div\", {\n className: \"demo-app-container\"\n }, /*#__PURE__*/React.createElement(TestDataSelect, {\n currentDemoIdx: currentDemoIdx,\n testData: testData,\n loadingSteps: loadingSteps,\n onChange: this.handleDemoChange\n }), /*#__PURE__*/React.createElement(ParsingOptsCheckboxes, _extends({}, parsingOptions, {\n dataOpts: overrideOpts,\n onChange: this.handleParsingOptChange,\n onChangeBasicIO: this.handleChangeBasicIO\n })), /*#__PURE__*/React.createElement(RowSpacingTypeSelect, {\n rowSpacingType: rowSpacingType,\n onChange: this.handleRowSpacingTypeChange\n }), /*#__PURE__*/React.createElement(react_workflow_viz__WEBPACK_IMPORTED_MODULE_6__[\"GraphParser\"], {\n parsingOptions: fullParseOpts,\n parentItem: {\n name: name\n },\n steps: steps\n }, /*#__PURE__*/React.createElement(react_workflow_viz__WEBPACK_IMPORTED_MODULE_6___default.a, {\n rowSpacingType: rowSpacingType,\n minimumHeight: 300,\n showZoomControls: true\n })));\n }\n }]);\n\n return DemoApp;\n}(react__WEBPACK_IMPORTED_MODULE_0__[\"Component\"]);\n\n_defineProperty(DemoApp, \"defaultProps\", {\n \"testData\": [{\n \"name\": \"File Processed - 4DNFI9WF1Y8W\",\n \"description\": null,\n \"href\": url__WEBPACK_IMPORTED_MODULE_3___default.a.resolve(BASE_HREF, \"provenance-file-processed-4DNFI9WF1Y8W.json\"),\n \"opts\": {}\n }, {\n \"name\": \"File Processed - GAPFIWCFWBCO\",\n \"description\": null,\n \"href\": url__WEBPACK_IMPORTED_MODULE_3___default.a.resolve(BASE_HREF, \"provenance-file-processed-GAPFIWCFWBCO.json\"),\n \"opts\": {}\n }, {\n \"name\": \"File Processed - GAPFIRPF7X1K\",\n \"description\": null,\n \"href\": url__WEBPACK_IMPORTED_MODULE_3___default.a.resolve(BASE_HREF, \"provenance-file-processed-GAPFIRPF7X1K.json\"),\n \"opts\": {}\n }, {\n \"name\": \"Experiment Set - 4DNES54YB6TQ\",\n \"description\": null,\n \"href\": url__WEBPACK_IMPORTED_MODULE_3___default.a.resolve(BASE_HREF, \"provenance-expset-4DNES54YB6TQ.json\"),\n \"opts\": {}\n }, {\n \"name\": \"Experiment Set - 4DNESUJC9Y83\",\n \"description\": null,\n \"href\": url__WEBPACK_IMPORTED_MODULE_3___default.a.resolve(BASE_HREF, \"provenance-expset-4DNESUJC9Y83.json\"),\n \"opts\": {}\n }, {\n \"name\": \"CWL Workflow - ATAC-SEQ\",\n \"description\": null,\n \"href\": url__WEBPACK_IMPORTED_MODULE_3___default.a.resolve(BASE_HREF, \"workflow-atac-seq.json\"),\n \"opts\": workflowOpts\n }, {\n \"name\": \"CWL Workflow - BED to BEDDB\",\n \"description\": null,\n \"href\": url__WEBPACK_IMPORTED_MODULE_3___default.a.resolve(BASE_HREF, \"workflow-bedtobeddb.json\"),\n \"opts\": workflowOpts\n }, {\n \"name\": \"WorkflowRunAWSEM (hi-c-processing-bam) - Previous Version (no scatter)\",\n \"description\": null,\n \"href\": url__WEBPACK_IMPORTED_MODULE_3___default.a.resolve(BASE_HREF, \"previous-hi-c-worfklowrunawsem.json\"),\n \"opts\": workflowOpts\n }, {\n \"name\": \"WorkflowRunAWSEM (hi-c-processing-bam) - Next Version (scatter)\",\n \"description\": null,\n \"href\": url__WEBPACK_IMPORTED_MODULE_3___default.a.resolve(BASE_HREF, \"for-development-hi-c-workflowrunawsem.json\"),\n \"opts\": workflowOpts\n }, {\n \"name\": \"MetaWorkflowRun - WGS SNV Germline Trio Example\",\n \"description\": null,\n \"href\": url__WEBPACK_IMPORTED_MODULE_3___default.a.resolve(BASE_HREF, \"meta-workflow-run-WGS-SNV-Germline-Trio.json\"),\n \"opts\": workflowOpts\n }]\n});\n\nfunction TestDataSelect(props) {\n var currentDemoIdx = props.currentDemoIdx,\n testData = props.testData,\n onChange = props.onChange,\n _props$loadingSteps = props.loadingSteps,\n loadingSteps = _props$loadingSteps === void 0 ? false : _props$loadingSteps;\n var currDemoName = testData[currentDemoIdx].name;\n var optionItems = testData.map(function (_ref3, idx) {\n var name = _ref3.name,\n steps = _ref3.steps,\n description = _ref3.description;\n return /*#__PURE__*/React.createElement(\"option\", {\n name: idx,\n key: idx\n }, name);\n });\n return /*#__PURE__*/React.createElement(\"div\", {\n className: \"row-spacing-type-container options-container\"\n }, /*#__PURE__*/React.createElement(\"label\", null, /*#__PURE__*/React.createElement(\"h5\", null, \"Test Data \", loadingSteps ? /*#__PURE__*/React.createElement(\"small\", null, \"(loading...)\") : null), /*#__PURE__*/React.createElement(\"select\", {\n onChange: onChange,\n value: currDemoName,\n disabled: loadingSteps\n }, optionItems)));\n}\n\nfunction RowSpacingTypeSelect(props) {\n var rowSpacingType = props.rowSpacingType,\n onChange = props.onChange;\n return /*#__PURE__*/React.createElement(\"div\", {\n className: \"row-spacing-type-container options-container\"\n }, /*#__PURE__*/React.createElement(\"label\", null, /*#__PURE__*/React.createElement(\"h5\", null, \"Row Spacing Type\"), /*#__PURE__*/React.createElement(\"select\", {\n onChange: onChange,\n value: {\n \"compact\": \"Centered\",\n \"stacked\": \"Stacked\",\n \"wide\": \"Spread\"\n }[rowSpacingType]\n }, /*#__PURE__*/React.createElement(\"option\", {\n name: \"compact\"\n }, \"Centered\"), /*#__PURE__*/React.createElement(\"option\", {\n name: \"stacked\"\n }, \"Stacked\"), /*#__PURE__*/React.createElement(\"option\", {\n name: \"wide\"\n }, \"Spread\"))));\n}\n\nfunction ParsingOptsCheckboxes(props) {\n var showReferenceFiles = props.showReferenceFiles,\n showParameters = props.showParameters,\n showIndirectFiles = props.showIndirectFiles,\n parseBasicIO = props.parseBasicIO,\n onChange = props.onChange,\n dataOpts = props.dataOpts;\n return /*#__PURE__*/React.createElement(\"div\", {\n className: \"parsing-options-container options-container\"\n }, /*#__PURE__*/React.createElement(\"h5\", null, \"Parsing Options\"), /*#__PURE__*/React.createElement(\"p\", {\n className: \"tip-text\"\n }, \"Note: updating the viz for some parsing options (such as showing parameters) may take a few seconds to complete for larger test datasets.\"), /*#__PURE__*/React.createElement(\"label\", null, /*#__PURE__*/React.createElement(\"input\", {\n type: \"checkbox\",\n name: \"showReferenceFiles\",\n checked: dataOpts['showReferenceFiles'] || showReferenceFiles,\n onChange: onChange,\n disabled: typeof dataOpts['showReferenceFiles'] !== 'undefined'\n }), \"Show Reference Files\"), /*#__PURE__*/React.createElement(\"label\", null, /*#__PURE__*/React.createElement(\"input\", {\n type: \"checkbox\",\n name: \"showParameters\",\n checked: dataOpts['showParameters'] || showParameters,\n onChange: onChange,\n disabled: typeof dataOpts['showParameters'] !== 'undefined'\n }), \"Show Parameters\"), /*#__PURE__*/React.createElement(\"label\", null, /*#__PURE__*/React.createElement(\"input\", {\n type: \"checkbox\",\n name: \"showIndirectFiles\",\n checked: dataOpts['showIndirectFiles'] || showIndirectFiles,\n onChange: onChange,\n disabled: typeof dataOpts['showIndirectFiles'] !== 'undefined'\n }), \"Show Indirect Files\"), /*#__PURE__*/React.createElement(\"label\", null, /*#__PURE__*/React.createElement(\"input\", {\n type: \"checkbox\",\n name: \"parseBasicIO\",\n checked: dataOpts['parseBasicIO'] || parseBasicIO,\n onChange: onChange,\n disabled: typeof dataOpts['parseBasicIO'] !== 'undefined'\n }), \"Show Terminal I/O\"));\n}\n\nreact_dom__WEBPACK_IMPORTED_MODULE_1___default.a.render( /*#__PURE__*/React.createElement(DemoApp, null), document.getElementById(\"root\"));\n\n//# sourceURL=webpack://%5Bname%5D/./demo/demo.js?");
/***/ }),
/***/ "./node_modules/@fortawesome/fontawesome-free/css/all.css":
/*!****************************************************************!*\
!*** ./node_modules/@fortawesome/fontawesome-free/css/all.css ***!
\****************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
eval("var api = __webpack_require__(/*! ../../../style-loader/dist/runtime/injectStylesIntoStyleTag.js */ \"./node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\");\n var content = __webpack_require__(/*! !../../../css-loader/dist/cjs.js!./all.css */ \"./node_modules/css-loader/dist/cjs.js!./node_modules/@fortawesome/fontawesome-free/css/all.css\");\n\n content = content.__esModule ? content.default : content;\n\n if (typeof content === 'string') {\n content = [[module.i, content, '']];\n }\n\nvar options = {};\n\noptions.insert = \"head\";\noptions.singleton = false;\n\nvar update = api(content, options);\n\n\n\nmodule.exports = content.locals || {};\n\n//# sourceURL=webpack://%5Bname%5D/./node_modules/@fortawesome/fontawesome-free/css/all.css?");
/***/ }),
/***/ "./node_modules/@fortawesome/fontawesome-free/webfonts/fa-brands-400.ttf":
/*!*******************************************************************************!*\
!*** ./node_modules/@fortawesome/fontawesome-free/webfonts/fa-brands-400.ttf ***!
\*******************************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
eval("module.exports = __webpack_require__.p + \"webfonts/fa-brands-400.ttf\";\n\n//# sourceURL=webpack://%5Bname%5D/./node_modules/@fortawesome/fontawesome-free/webfonts/fa-brands-400.ttf?");
/***/ }),
/***/ "./node_modules/@fortawesome/fontawesome-free/webfonts/fa-brands-400.woff2":
/*!*********************************************************************************!*\
!*** ./node_modules/@fortawesome/fontawesome-free/webfonts/fa-brands-400.woff2 ***!
\*********************************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
eval("module.exports = __webpack_require__.p + \"webfonts/fa-brands-400.woff2\";\n\n//# sourceURL=webpack://%5Bname%5D/./node_modules/@fortawesome/fontawesome-free/webfonts/fa-brands-400.woff2?");
/***/ }),
/***/ "./node_modules/@fortawesome/fontawesome-free/webfonts/fa-regular-400.ttf":
/*!********************************************************************************!*\
!*** ./node_modules/@fortawesome/fontawesome-free/webfonts/fa-regular-400.ttf ***!
\********************************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
eval("module.exports = __webpack_require__.p + \"webfonts/fa-regular-400.ttf\";\n\n//# sourceURL=webpack://%5Bname%5D/./node_modules/@fortawesome/fontawesome-free/webfonts/fa-regular-400.ttf?");
/***/ }),
/***/ "./node_modules/@fortawesome/fontawesome-free/webfonts/fa-regular-400.woff2":
/*!**********************************************************************************!*\
!*** ./node_modules/@fortawesome/fontawesome-free/webfonts/fa-regular-400.woff2 ***!
\**********************************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
eval("module.exports = __webpack_require__.p + \"webfonts/fa-regular-400.woff2\";\n\n//# sourceURL=webpack://%5Bname%5D/./node_modules/@fortawesome/fontawesome-free/webfonts/fa-regular-400.woff2?");
/***/ }),
/***/ "./node_modules/@fortawesome/fontawesome-free/webfonts/fa-solid-900.ttf":
/*!******************************************************************************!*\
!*** ./node_modules/@fortawesome/fontawesome-free/webfonts/fa-solid-900.ttf ***!
\******************************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
eval("module.exports = __webpack_require__.p + \"webfonts/fa-solid-900.ttf\";\n\n//# sourceURL=webpack://%5Bname%5D/./node_modules/@fortawesome/fontawesome-free/webfonts/fa-solid-900.ttf?");
/***/ }),
/***/ "./node_modules/@fortawesome/fontawesome-free/webfonts/fa-solid-900.woff2":
/*!********************************************************************************!*\
!*** ./node_modules/@fortawesome/fontawesome-free/webfonts/fa-solid-900.woff2 ***!
\********************************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
eval("module.exports = __webpack_require__.p + \"webfonts/fa-solid-900.woff2\";\n\n//# sourceURL=webpack://%5Bname%5D/./node_modules/@fortawesome/fontawesome-free/webfonts/fa-solid-900.woff2?");
/***/ }),
/***/ "./node_modules/@fortawesome/fontawesome-free/webfonts/fa-v4compatibility.ttf":
/*!************************************************************************************!*\
!*** ./node_modules/@fortawesome/fontawesome-free/webfonts/fa-v4compatibility.ttf ***!
\************************************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
eval("module.exports = __webpack_require__.p + \"webfonts/fa-v4compatibility.ttf\";\n\n//# sourceURL=webpack://%5Bname%5D/./node_modules/@fortawesome/fontawesome-free/webfonts/fa-v4compatibility.ttf?");
/***/ }),
/***/ "./node_modules/@fortawesome/fontawesome-free/webfonts/fa-v4compatibility.woff2":
/*!**************************************************************************************!*\
!*** ./node_modules/@fortawesome/fontawesome-free/webfonts/fa-v4compatibility.woff2 ***!
\**************************************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
eval("module.exports = __webpack_require__.p + \"webfonts/fa-v4compatibility.woff2\";\n\n//# sourceURL=webpack://%5Bname%5D/./node_modules/@fortawesome/fontawesome-free/webfonts/fa-v4compatibility.woff2?");
/***/ }),
/***/ "./node_modules/css-loader/dist/cjs.js!./node_modules/@fortawesome/fontawesome-free/css/all.css":
/*!******************************************************************************************************!*\
!*** ./node_modules/css-loader/dist/cjs.js!./node_modules/@fortawesome/fontawesome-free/css/all.css ***!
\******************************************************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
eval("// Imports\nvar ___CSS_LOADER_API_IMPORT___ = __webpack_require__(/*! ../../../css-loader/dist/runtime/api.js */ \"./node_modules/css-loader/dist/runtime/api.js\");\nvar ___CSS_LOADER_GET_URL_IMPORT___ = __webpack_require__(/*! ../../../css-loader/dist/runtime/getUrl.js */ \"./node_modules/css-loader/dist/runtime/getUrl.js\");\nvar ___CSS_LOADER_URL_IMPORT_0___ = __webpack_require__(/*! ../webfonts/fa-brands-400.woff2 */ \"./node_modules/@fortawesome/fontawesome-free/webfonts/fa-brands-400.woff2\");\nvar ___CSS_LOADER_URL_IMPORT_1___ = __webpack_require__(/*! ../webfonts/fa-brands-400.ttf */ \"./node_modules/@fortawesome/fontawesome-free/webfonts/fa-brands-400.ttf\");\nvar ___CSS_LOADER_URL_IMPORT_2___ = __webpack_require__(/*! ../webfonts/fa-regular-400.woff2 */ \"./node_modules/@fortawesome/fontawesome-free/webfonts/fa-regular-400.woff2\");\nvar ___CSS_LOADER_URL_IMPORT_3___ = __webpack_require__(/*! ../webfonts/fa-regular-400.ttf */ \"./node_modules/@fortawesome/fontawesome-free/webfonts/fa-regular-400.ttf\");\nvar ___CSS_LOADER_URL_IMPORT_4___ = __webpack_require__(/*! ../webfonts/fa-solid-900.woff2 */ \"./node_modules/@fortawesome/fontawesome-free/webfonts/fa-solid-900.woff2\");\nvar ___CSS_LOADER_URL_IMPORT_5___ = __webpack_require__(/*! ../webfonts/fa-solid-900.ttf */ \"./node_modules/@fortawesome/fontawesome-free/webfonts/fa-solid-900.ttf\");\nvar ___CSS_LOADER_URL_IMPORT_6___ = __webpack_require__(/*! ../webfonts/fa-v4compatibility.woff2 */ \"./node_modules/@fortawesome/fontawesome-free/webfonts/fa-v4compatibility.woff2\");\nvar ___CSS_LOADER_URL_IMPORT_7___ = __webpack_require__(/*! ../webfonts/fa-v4compatibility.ttf */ \"./node_modules/@fortawesome/fontawesome-free/webfonts/fa-v4compatibility.ttf\");\nexports = ___CSS_LOADER_API_IMPORT___(false);\nvar ___CSS_LOADER_URL_REPLACEMENT_0___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_0___);\nvar ___CSS_LOADER_URL_REPLACEMENT_1___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_1___);\nvar ___CSS_LOADER_URL_REPLACEMENT_2___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_2___);\nvar ___CSS_LOADER_URL_REPLACEMENT_3___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_3___);\nvar ___CSS_LOADER_URL_REPLACEMENT_4___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_4___);\nvar ___CSS_LOADER_URL_REPLACEMENT_5___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_5___);\nvar ___CSS_LOADER_URL_REPLACEMENT_6___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_6___);\nvar ___CSS_LOADER_URL_REPLACEMENT_7___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_7___);\n// Module\nexports.push([module.i, \"/*!\\n * Font Awesome Free 6.6.0 by @fontawesome - https://fontawesome.com\\n * License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)\\n * Copyright 2024 Fonticons, Inc.\\n */\\n.fa {\\n font-family: var(--fa-style-family, \\\"Font Awesome 6 Free\\\");\\n font-weight: var(--fa-style, 900); }\\n\\n.fa-solid,\\n.fa-regular,\\n.fa-brands,\\n.fas,\\n.far,\\n.fab,\\n.fa-sharp-solid,\\n.fa-classic,\\n.fa {\\n -moz-osx-font-smoothing: grayscale;\\n -webkit-font-smoothing: antialiased;\\n display: var(--fa-display, inline-block);\\n font-style: normal;\\n font-variant: normal;\\n line-height: 1;\\n text-rendering: auto; }\\n\\n.fas,\\n.fa-classic,\\n.fa-solid,\\n.far,\\n.fa-regular {\\n font-family: 'Font Awesome 6 Free'; }\\n\\n.fab,\\n.fa-brands {\\n font-family: 'Font Awesome 6 Brands'; }\\n\\n.fa-1x {\\n font-size: 1em; }\\n\\n.fa-2x {\\n font-size: 2em; }\\n\\n.fa-3x {\\n font-size: 3em; }\\n\\n.fa-4x {\\n font-size: 4em; }\\n\\n.fa-5x {\\n font-size: 5em; }\\n\\n.fa-6x {\\n font-size: 6em; }\\n\\n.fa-7x {\\n font-size: 7em; }\\n\\n.fa-8x {\\n font-size: 8em; }\\n\\n.fa-9x {\\n font-size: 9em; }\\n\\n.fa-10x {\\n font-size: 10em; }\\n\\n.fa-2xs {\\n font-size: 0.625em;\\n line-height: 0.1em;\\n vertical-align: 0.225em; }\\n\\n.fa-xs {\\n font-size: 0.75em;\\n line-height: 0.08333em;\\n vertical-align: 0.125em; }\\n\\n.fa-sm {\\n font-size: 0.875em;\\n line-height: 0.07143em;\\n vertical-align: 0.05357em; }\\n\\n.fa-lg {\\n font-size: 1.25em;\\n line-height: 0.05em;\\n vertical-align: -0.075em; }\\n\\n.fa-xl {\\n font-size: 1.5em;\\n line-height: 0.04167em;\\n vertical-align: -0.125em; }\\n\\n.fa-2xl {\\n font-size: 2em;\\n line-height: 0.03125em;\\n vertical-align: -0.1875em; }\\n\\n.fa-fw {\\n text-align: center;\\n width: 1.25em; }\\n\\n.fa-ul {\\n list-style-type: none;\\n margin-left: var(--fa-li-margin, 2.5em);\\n padding-left: 0; }\\n .fa-ul > li {\\n position: relative; }\\n\\n.fa-li {\\n left: calc(-1 * var(--fa-li-width, 2em));\\n position: absolute;\\n text-align: center;\\n width: var(--fa-li-width, 2em);\\n line-height: inherit; }\\n\\n.fa-border {\\n border-color: var(--fa-border-color, #eee);\\n border-radius: var(--fa-border-radius, 0.1em);\\n border-style: var(--fa-border-style, solid);\\n border-width: var(--fa-border-width, 0.08em);\\n padding: var(--fa-border-padding, 0.2em 0.25em 0.15em); }\\n\\n.fa-pull-left {\\n float: left;\\n margin-right: var(--fa-pull-margin, 0.3em); }\\n\\n.fa-pull-right {\\n float: right;\\n margin-left: var(--fa-pull-margin, 0.3em); }\\n\\n.fa-beat {\\n animation-name: fa-beat;\\n animation-delay: var(--fa-animation-delay, 0s);\\n animation-direction: var(--fa-animation-direction, normal);\\n animation-duration: var(--fa-animation-duration, 1s);\\n animation-iteration-count: var(--fa-animation-iteration-count, infinite);\\n animation-timing-function: var(--fa-animation-timing, ease-in-out); }\\n\\n.fa-bounce {\\n animation-name: fa-bounce;\\n animation-delay: var(--fa-animation-delay, 0s);\\n animation-direction: var(--fa-animation-direction, normal);\\n animation-duration: var(--fa-animation-duration, 1s);\\n animation-iteration-count: var(--fa-animation-iteration-count, infinite);\\n animation-timing-function: var(--fa-animation-timing, cubic-bezier(0.28, 0.84, 0.42, 1)); }\\n\\n.fa-fade {\\n animation-name: fa-fade;\\n animation-delay: var(--fa-animation-delay, 0s);\\n animation-direction: var(--fa-animation-direction, normal);\\n animation-duration: var(--fa-animation-duration, 1s);\\n animation-iteration-count: var(--fa-animation-iteration-count, infinite);\\n animation-timing-function: var(--fa-animation-timing, cubic-bezier(0.4, 0, 0.6, 1)); }\\n\\n.fa-beat-fade {\\n animation-name: fa-beat-fade;\\n animation-delay: var(--fa-animation-delay, 0s);\\n animation-direction: var(--fa-animation-direction, normal);\\n animation-duration: var(--fa-animation-duration, 1s);\\n animation-iteration-count: var(--fa-animation-iteration-count, infinite);\\n animation-timing-function: var(--fa-animation-timing, cubic-bezier(0.4, 0, 0.6, 1)); }\\n\\n.fa-flip {\\n animation-name: fa-flip;\\n animation-delay: var(--fa-animation-delay, 0s);\\n animation-direction: var(--fa-animation-direction, normal);\\n animation-duration: var(--fa-animation-duration, 1s);\\n animation-iteration-count: var(--fa-animation-iteration-count, infinite);\\n animation-timing-function: var(--fa-animation-timing, ease-in-out); }\\n\\n.fa-shake {\\n animation-name: fa-shake;\\n animation-delay: var(--fa-animation-delay, 0s);\\n animation-direction: var(--fa-animation-direction, normal);\\n animation-duration: var(--fa-animation-duration, 1s);\\n animation-iteration-count: var(--fa-animation-iteration-count, infinite);\\n animation-timing-function: var(--fa-animation-timing, linear); }\\n\\n.fa-spin {\\n animation-name: fa-spin;\\n animation-delay: var(--fa-animation-delay, 0s);\\n animation-direction: var(--fa-animation-direction, normal);\\n animation-duration: var(--fa-animation-duration, 2s);\\n animation-iteration-count: var(--fa-animation-iteration-count, infinite);\\n animation-timing-function: var(--fa-animation-timing, linear); }\\n\\n.fa-spin-reverse {\\n --fa-animation-direction: reverse; }\\n\\n.fa-pulse,\\n.fa-spin-pulse {\\n animation-name: fa-spin;\\n animation-direction: var(--fa-animation-direction, normal);\\n animation-duration: var(--fa-animation-duration, 1s);\\n animation-iteration-count: var(--fa-animation-iteration-count, infinite);\\n animation-timing-function: var(--fa-animation-timing, steps(8)); }\\n\\n@media (prefers-reduced-motion: reduce) {\\n .fa-beat,\\n .fa-bounce,\\n .fa-fade,\\n .fa-beat-fade,\\n .fa-flip,\\n .fa-pulse,\\n .fa-shake,\\n .fa-spin,\\n .fa-spin-pulse {\\n animation-delay: -1ms;\\n animation-duration: 1ms;\\n animation-iteration-count: 1;\\n transition-delay: 0s;\\n transition-duration: 0s; } }\\n\\n@keyframes fa-beat {\\n 0%, 90% {\\n transform: scale(1); }\\n 45% {\\n transform: scale(var(--fa-beat-scale, 1.25)); } }\\n\\n@keyframes fa-bounce {\\n 0% {\\n transform: scale(1, 1) translateY(0); }\\n 10% {\\n transform: scale(var(--fa-bounce-start-scale-x, 1.1), var(--fa-bounce-start-scale-y, 0.9)) translateY(0); }\\n 30% {\\n transform: scale(var(--fa-bounce-jump-scale-x, 0.9), var(--fa-bounce-jump-scale-y, 1.1)) translateY(var(--fa-bounce-height, -0.5em)); }\\n 50% {\\n transform: scale(var(--fa-bounce-land-scale-x, 1.05), var(--fa-bounce-land-scale-y, 0.95)) translateY(0); }\\n 57% {\\n transform: scale(1, 1) translateY(var(--fa-bounce-rebound, -0.125em)); }\\n 64% {\\n transform: scale(1, 1) translateY(0); }\\n 100% {\\n transform: scale(1, 1) translateY(0); } }\\n\\n@keyframes fa-fade {\\n 50% {\\n opacity: var(--fa-fade-opacity, 0.4); } }\\n\\n@keyframes fa-beat-fade {\\n 0%, 100% {\\n opacity: var(--fa-beat-fade-opacity, 0.4);\\n transform: scale(1); }\\n 50% {\\n opacity: 1;\\n transform: scale(var(--fa-beat-fade-scale, 1.125)); } }\\n\\n@keyframes fa-flip {\\n 50% {\\n transform: rotate3d(var(--fa-flip-x, 0), var(--fa-flip-y, 1), var(--fa-flip-z, 0), var(--fa-flip-angle, -180deg)); } }\\n\\n@keyframes fa-shake {\\n 0% {\\n transform: rotate(-15deg); }\\n 4% {\\n transform: rotate(15deg); }\\n 8%, 24% {\\n transform: rotate(-18deg); }\\n 12%, 28% {\\n transform: rotate(18deg); }\\n 16% {\\n transform: rotate(-22deg); }\\n 20% {\\n transform: rotate(22deg); }\\n 32% {\\n transform: rotate(-12deg); }\\n 36% {\\n transform: rotate(12deg); }\\n 40%, 100% {\\n transform: rotate(0deg); } }\\n\\n@keyframes fa-spin {\\n 0% {\\n transform: rotate(0deg); }\\n 100% {\\n transform: rotate(360deg); } }\\n\\n.fa-rotate-90 {\\n transform: rotate(90deg); }\\n\\n.fa-rotate-180 {\\n transform: rotate(180deg); }\\n\\n.fa-rotate-270 {\\n transform: rotate(270deg); }\\n\\n.fa-flip-horizontal {\\n transform: scale(-1, 1); }\\n\\n.fa-flip-vertical {\\n transform: scale(1, -1); }\\n\\n.fa-flip-both,\\n.fa-flip-horizontal.fa-flip-vertical {\\n transform: scale(-1, -1); }\\n\\n.fa-rotate-by {\\n transform: rotate(var(--fa-rotate-angle, 0)); }\\n\\n.fa-stack {\\n display: inline-block;\\n height: 2em;\\n line-height: 2em;\\n position: relative;\\n vertical-align: middle;\\n width: 2.5em; }\\n\\n.fa-stack-1x,\\n.fa-stack-2x {\\n left: 0;\\n position: absolute;\\n text-align: center;\\n width: 100%;\\n z-index: var(--fa-stack-z-index, auto); }\\n\\n.fa-stack-1x {\\n line-height: inherit; }\\n\\n.fa-stack-2x {\\n font-size: 2em; }\\n\\n.fa-inverse {\\n color: var(--fa-inverse, #fff); }\\n\\n/* Font Awesome uses the Unicode Private Use Area (PUA) to ensure screen\\nreaders do not read off random characters that represent icons */\\n\\n.fa-0::before {\\n content: \\\"\\\\30\\\"; }\\n\\n.fa-1::before {\\n content: \\\"\\\\31\\\"; }\\n\\n.fa-2::before {\\n content: \\\"\\\\32\\\"; }\\n\\n.fa-3::before {\\n content: \\\"\\\\33\\\"; }\\n\\n.fa-4::before {\\n content: \\\"\\\\34\\\"; }\\n\\n.fa-5::before {\\n content: \\\"\\\\35\\\"; }\\n\\n.fa-6::before {\\n content: \\\"\\\\36\\\"; }\\n\\n.fa-7::before {\\n content: \\\"\\\\37\\\"; }\\n\\n.fa-8::before {\\n content: \\\"\\\\38\\\"; }\\n\\n.fa-9::before {\\n content: \\\"\\\\39\\\"; }\\n\\n.fa-fill-drip::before {\\n content: \\\"\\\\f576\\\"; }\\n\\n.fa-arrows-to-circle::before {\\n content: \\\"\\\\e4bd\\\"; }\\n\\n.fa-circle-chevron-right::before {\\n content: \\\"\\\\f138\\\"; }\\n\\n.fa-chevron-circle-right::before {\\n content: \\\"\\\\f138\\\"; }\\n\\n.fa-at::before {\\n content: \\\"\\\\40\\\"; }\\n\\n.fa-trash-can::before {\\n content: \\\"\\\\f2ed\\\"; }\\n\\n.fa-trash-alt::before {\\n content: \\\"\\\\f2ed\\\"; }\\n\\n.fa-text-height::before {\\n content: \\\"\\\\f034\\\"; }\\n\\n.fa-user-xmark::before {\\n content: \\\"\\\\f235\\\"; }\\n\\n.fa-user-times::before {\\n content: \\\"\\\\f235\\\"; }\\n\\n.fa-stethoscope::before {\\n content: \\\"\\\\f0f1\\\"; }\\n\\n.fa-message::before {\\n content: \\\"\\\\f27a\\\"; }\\n\\n.fa-comment-alt::before {\\n content: \\\"\\\\f27a\\\"; }\\n\\n.fa-info::before {\\n content: \\\"\\\\f129\\\"; }\\n\\n.fa-down-left-and-up-right-to-center::before {\\n content: \\\"\\\\f422\\\"; }\\n\\n.fa-compress-alt::before {\\n content: \\\"\\\\f422\\\"; }\\n\\n.fa-explosion::before {\\n content: \\\"\\\\e4e9\\\"; }\\n\\n.fa-file-lines::before {\\n content: \\\"\\\\f15c\\\"; }\\n\\n.fa-file-alt::before {\\n content: \\\"\\\\f15c\\\"; }\\n\\n.fa-file-text::before {\\n content: \\\"\\\\f15c\\\"; }\\n\\n.fa-wave-square::before {\\n content: \\\"\\\\f83e\\\"; }\\n\\n.fa-ring::before {\\n content: \\\"\\\\f70b\\\"; }\\n\\n.fa-building-un::before {\\n content: \\\"\\\\e4d9\\\"; }\\n\\n.fa-dice-three::before {\\n content: \\\"\\\\f527\\\"; }\\n\\n.fa-calendar-days::before {\\n content: \\\"\\\\f073\\\"; }\\n\\n.fa-calendar-alt::before {\\n content: \\\"\\\\f073\\\"; }\\n\\n.fa-anchor-circle-check::before {\\n content: \\\"\\\\e4aa\\\"; }\\n\\n.fa-building-circle-arrow-right::before {\\n content: \\\"\\\\e4d1\\\"; }\\n\\n.fa-volleyball::before {\\n content: \\\"\\\\f45f\\\"; }\\n\\n.fa-volleyball-ball::before {\\n content: \\\"\\\\f45f\\\"; }\\n\\n.fa-arrows-up-to-line::before {\\n content: \\\"\\\\e4c2\\\"; }\\n\\n.fa-sort-down::before {\\n content: \\\"\\\\f0dd\\\"; }\\n\\n.fa-sort-desc::before {\\n content: \\\"\\\\f0dd\\\"; }\\n\\n.fa-circle-minus::before {\\n content: \\\"\\\\f056\\\"; }\\n\\n.fa-minus-circle::before {\\n content: \\\"\\\\f056\\\"; }\\n\\n.fa-door-open::before {\\n content: \\\"\\\\f52b\\\"; }\\n\\n.fa-right-from-bracket::before {\\n content: \\\"\\\\f2f5\\\"; }\\n\\n.fa-sign-out-alt::before {\\n content: \\\"\\\\f2f5\\\"; }\\n\\n.fa-atom::before {\\n content: \\\"\\\\f5d2\\\"; }\\n\\n.fa-soap::before {\\n content: \\\"\\\\e06e\\\"; }\\n\\n.fa-icons::before {\\n content: \\\"\\\\f86d\\\"; }\\n\\n.fa-heart-music-camera-bolt::before {\\n content: \\\"\\\\f86d\\\"; }\\n\\n.fa-microphone-lines-slash::before {\\n content: \\\"\\\\f539\\\"; }\\n\\n.fa-microphone-alt-slash::before {\\n content: \\\"\\\\f539\\\"; }\\n\\n.fa-bridge-circle-check::before {\\n content: \\\"\\\\e4c9\\\"; }\\n\\n.fa-pump-medical::before {\\n content: \\\"\\\\e06a\\\"; }\\n\\n.fa-fingerprint::before {\\n content: \\\"\\\\f577\\\"; }\\n\\n.fa-hand-point-right::before {\\n content: \\\"\\\\f0a4\\\"; }\\n\\n.fa-magnifying-glass-location::before {\\n content: \\\"\\\\f689\\\"; }\\n\\n.fa-search-location::before {\\n content: \\\"\\\\f689\\\"; }\\n\\n.fa-forward-step::before {\\n content: \\\"\\\\f051\\\"; }\\n\\n.fa-step-forward::before {\\n content: \\\"\\\\f051\\\"; }\\n\\n.fa-face-smile-beam::before {\\n content: \\\"\\\\f5b8\\\"; }\\n\\n.fa-smile-beam::before {\\n content: \\\"\\\\f5b8\\\"; }\\n\\n.fa-flag-checkered::before {\\n content: \\\"\\\\f11e\\\"; }\\n\\n.fa-football::before {\\n content: \\\"\\\\f44e\\\"; }\\n\\n.fa-football-ball::before {\\n content: \\\"\\\\f44e\\\"; }\\n\\n.fa-school-circle-exclamation::before {\\n content: \\\"\\\\e56c\\\"; }\\n\\n.fa-crop::before {\\n content: \\\"\\\\f125\\\"; }\\n\\n.fa-angles-down::before {\\n content: \\\"\\\\f103\\\"; }\\n\\n.fa-angle-double-down::before {\\n content: \\\"\\\\f103\\\"; }\\n\\n.fa-users-rectangle::before {\\n content: \\\"\\\\e594\\\"; }\\n\\n.fa-people-roof::before {\\n content: \\\"\\\\e537\\\"; }\\n\\n.fa-people-line::before {\\n content: \\\"\\\\e534\\\"; }\\n\\n.fa-beer-mug-empty::before {\\n content: \\\"\\\\f0fc\\\"; }\\n\\n.fa-beer::before {\\n content: \\\"\\\\f0fc\\\"; }\\n\\n.fa-diagram-predecessor::before {\\n content: \\\"\\\\e477\\\"; }\\n\\n.fa-arrow-up-long::before {\\n content: \\\"\\\\f176\\\"; }\\n\\n.fa-long-arrow-up::before {\\n content: \\\"\\\\f176\\\"; }\\n\\n.fa-fire-flame-simple::before {\\n content: \\\"\\\\f46a\\\"; }\\n\\n.fa-burn::before {\\n content: \\\"\\\\f46a\\\"; }\\n\\n.fa-person::before {\\n content: \\\"\\\\f183\\\"; }\\n\\n.fa-male::before {\\n content: \\\"\\\\f183\\\"; }\\n\\n.fa-laptop::before {\\n content: \\\"\\\\f109\\\"; }\\n\\n.fa-file-csv::before {\\n content: \\\"\\\\f6dd\\\"; }\\n\\n.fa-menorah::before {\\n content: \\\"\\\\f676\\\"; }\\n\\n.fa-truck-plane::before {\\n content: \\\"\\\\e58f\\\"; }\\n\\n.fa-record-vinyl::before {\\n content: \\\"\\\\f8d9\\\"; }\\n\\n.fa-face-grin-stars::before {\\n content: \\\"\\\\f587\\\"; }\\n\\n.fa-grin-stars::before {\\n content: \\\"\\\\f587\\\"; }\\n\\n.fa-bong::before {\\n content: \\\"\\\\f55c\\\"; }\\n\\n.fa-spaghetti-monster-flying::before {\\n content: \\\"\\\\f67b\\\"; }\\n\\n.fa-pastafarianism::before {\\n content: \\\"\\\\f67b\\\"; }\\n\\n.fa-arrow-down-up-across-line::before {\\n content: \\\"\\\\e4af\\\"; }\\n\\n.fa-spoon::before {\\n content: \\\"\\\\f2e5\\\"; }\\n\\n.fa-utensil-spoon::before {\\n content: \\\"\\\\f2e5\\\"; }\\n\\n.fa-jar-wheat::before {\\n content: \\\"\\\\e517\\\"; }\\n\\n.fa-envelopes-bulk::before {\\n content: \\\"\\\\f674\\\"; }\\n\\n.fa-mail-bulk::before {\\n content: \\\"\\\\f674\\\"; }\\n\\n.fa-file-circle-exclamation::before {\\n content: \\\"\\\\e4eb\\\"; }\\n\\n.fa-circle-h::before {\\n content: \\\"\\\\f47e\\\"; }\\n\\n.fa-hospital-symbol::before {\\n content: \\\"\\\\f47e\\\"; }\\n\\n.fa-pager::before {\\n content: \\\"\\\\f815\\\"; }\\n\\n.fa-address-book::before {\\n content: \\\"\\\\f2b9\\\"; }\\n\\n.fa-contact-book::before {\\n content: \\\"\\\\f2b9\\\"; }\\n\\n.fa-strikethrough::before {\\n content: \\\"\\\\f0cc\\\"; }\\n\\n.fa-k::before {\\n content: \\\"\\\\4b\\\"; }\\n\\n.fa-landmark-flag::before {\\n content: \\\"\\\\e51c\\\"; }\\n\\n.fa-pencil::before {\\n content: \\\"\\\\f303\\\"; }\\n\\n.fa-pencil-alt::before {\\n content: \\\"\\\\f303\\\"; }\\n\\n.fa-backward::before {\\n content: \\\"\\\\f04a\\\"; }\\n\\n.fa-caret-right::before {\\n content: \\\"\\\\f0da\\\"; }\\n\\n.fa-comments::before {\\n content: \\\"\\\\f086\\\"; }\\n\\n.fa-paste::before {\\n content: \\\"\\\\f0ea\\\"; }\\n\\n.fa-file-clipboard::before {\\n content: \\\"\\\\f0ea\\\"; }\\n\\n.fa-code-pull-request::before {\\n content: \\\"\\\\e13c\\\"; }\\n\\n.fa-clipboard-list::before {\\n content: \\\"\\\\f46d\\\"; }\\n\\n.fa-truck-ram