dmencu 2.1.19 → 2.1.21

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -7,7 +7,8 @@ import {
7
7
  focusToId,
8
8
  scrollToTop,
9
9
  scrollToBottom,
10
- materialIoIconsSvgPath
10
+ materialIoIconsSvgPath,
11
+ useOnlineStatus
11
12
  } from "./render-general";
12
13
  import {Bloque, BotonFormulario,
13
14
  CasilleroBase, CasoState, ConjuntoPreguntas, Consistencia,
@@ -2052,20 +2053,14 @@ setHojaDeRutaDespliegue((_props:{})=>{
2052
2053
  var {modo} = useSelector((state:CasoState)=>({modo:state.modo}));
2053
2054
  var feedbackRowValidator = getFeedbackRowValidator()
2054
2055
  const dispatch = useDispatch();
2055
- const updateOnlineStatus = function(){
2056
- setOnline(window.navigator.onLine);
2057
- }
2058
- const appVersion = getCacheVersion();
2059
- const [online, setOnline] = useState(window.navigator.onLine);
2060
- window.addEventListener('online', updateOnlineStatus);
2061
- window.addEventListener('offline', updateOnlineStatus);
2056
+ const online = useOnlineStatus();
2062
2057
  const modoDM:ModoDM = my.getLocalVar(MODO_DM_LOCALSTORAGE_KEY);
2063
2058
  return (
2064
2059
  <>
2065
2060
  <AppBar position="fixed" color={modoDM=='capa'?'success':'primary'}>
2066
2061
  <Toolbar>
2067
- <Typography variant="h6">
2068
- Hoja de ruta
2062
+ <Typography>
2063
+ HOJA DE RUTA
2069
2064
  </Typography>
2070
2065
  {
2071
2066
  //<IconButton style={{marginTop:'3px'}}
@@ -2091,18 +2086,20 @@ setHojaDeRutaDespliegue((_props:{})=>{
2091
2086
  </Toolbar>
2092
2087
  </AppBar>
2093
2088
  <div className="hoja-de-ruta">
2094
- {modo.demo?<div>
2095
- <Typography>Modo demo </Typography>
2096
- <Button variant="outlined" color="secondary"
2097
- onClick={()=>dispatch(dispatchers.REINICIAR_DEMO({}))}
2098
- >
2099
- reiniciar
2100
- </Button>
2101
- </div>:null}
2102
- <div className="nombre-version">
2103
- <div>Instituto de Estadística y Censos de la Ciudad Autónoma de Buenos Aires - IDECBA</div>
2104
- <div>{my.getLocalVar('app-version')} sincro {num_sincro} - versión {appVersion}</div>
2105
- </div>
2089
+ <Paper style={{marginBottom: '10px', padding: '10px'}}>
2090
+ {modo.demo?<div>
2091
+ <Typography>Modo demo </Typography>
2092
+ <Button variant="outlined" color="secondary"
2093
+ onClick={()=>dispatch(dispatchers.REINICIAR_DEMO({}))}
2094
+ >
2095
+ reiniciar
2096
+ </Button>
2097
+ </div>:null}
2098
+ <div className="nombre-version">
2099
+ <div>Instituto de Estadística y Censos de la Ciudad Autónoma de Buenos Aires - IDECBA</div>
2100
+ <div>{my.getLocalVar('app-version')} sincro {num_sincro} - versión {appVersion}</div>
2101
+ </div>
2102
+ </Paper>
2106
2103
  {likeAr(cargas).map((carga, idCarga, _, posicion)=>
2107
2104
  <DesplegarCarga key={idCarga} carga={carga} idCarga={idCarga} posicion={posicion} informacionHdr={informacionHdr} feedbackRowValidator={feedbackRowValidator} respuestas={respuestas}/>
2108
2105
  ).array()}
@@ -2188,12 +2185,8 @@ export function AppDmEncu(){
2188
2185
  }
2189
2186
 
2190
2187
  function PantallaInicialSinCarga(_props:{}){
2191
- const updateOnlineStatus = function(){
2192
- setOnline(window.navigator.onLine);
2193
- }
2194
- const [online, setOnline] = useState(window.navigator.onLine);
2195
- window.addEventListener('online', updateOnlineStatus);
2196
- window.addEventListener('offline', updateOnlineStatus);
2188
+ const online = useOnlineStatus();
2189
+
2197
2190
  const paragraphStyles={fontSize:"1.2rem", fontWeight:600, padding: "5px 10px"};
2198
2191
  const modoDM:ModoDM = my.getLocalVar(MODO_DM_LOCALSTORAGE_KEY);
2199
2192
  return (
@@ -119,6 +119,7 @@ export declare class RenderAndCaptureError extends React.Component<{
119
119
  componentDidCatch(error: Error, info: any): void;
120
120
  render(): React.ReactNode;
121
121
  }
122
+ export declare function useOnlineStatus(): boolean;
122
123
  export declare function RenderPrincipal<T, T2 extends Action>(props: {
123
124
  store: Store<T, T2>;
124
125
  dispatchers: IDispatchers;
@@ -4,7 +4,7 @@
4
4
  if (v !== undefined) module.exports = v;
5
5
  }
6
6
  else if (typeof define === "function" && define.amd) {
7
- define(["require", "exports", "react", "react-redux", "memoize-one", "like-ar", "./redux-formulario", "@mui/material"], factory);
7
+ define(["require", "exports", "react", "react", "react-redux", "memoize-one", "like-ar", "./redux-formulario", "@mui/material"], factory);
8
8
  }
9
9
  })(function (require, exports) {
10
10
  "use strict";
@@ -14,8 +14,10 @@
14
14
  exports.ScrollTop = ScrollTop;
15
15
  exports.focusToId = focusToId;
16
16
  exports.ReseterForm = ReseterForm;
17
+ exports.useOnlineStatus = useOnlineStatus;
17
18
  exports.RenderPrincipal = RenderPrincipal;
18
19
  const React = require("react");
20
+ const react_1 = require("react");
19
21
  const react_redux_1 = require("react-redux");
20
22
  const memoizeBadTyped = require("memoize-one");
21
23
  const likeAr = require("like-ar");
@@ -164,6 +166,19 @@
164
166
  },
165
167
  },
166
168
  });
169
+ function useOnlineStatus() {
170
+ const [online, setOnline] = (0, react_1.useState)(window.navigator.onLine);
171
+ (0, react_1.useEffect)(() => {
172
+ const handler = () => setOnline(window.navigator.onLine);
173
+ window.addEventListener('online', handler);
174
+ window.addEventListener('offline', handler);
175
+ return () => {
176
+ window.removeEventListener('online', handler);
177
+ window.removeEventListener('offline', handler);
178
+ };
179
+ }, []);
180
+ return online;
181
+ }
167
182
  function RenderPrincipal(props) {
168
183
  return React.createElement(React.StrictMode, null,
169
184
  React.createElement(react_redux_1.Provider, { store: props.store },
@@ -173,4 +188,4 @@
173
188
  props.children))));
174
189
  }
175
190
  });
176
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVuZGVyLWdlbmVyYWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvdW5sb2dnZWQvcmVuZGVyLWdlbmVyYWwudHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7OztJQWdGQSwwREFXQztJQVdELDhCQWlCQztJQU9ELDhCQWdCQztJQUlELGtDQVVDO0lBOENELDBDQVdDO0lBck5ELCtCQUErQjtJQUcvQiw2Q0FBaUU7SUFDakUsK0NBQStDO0lBQy9DLGtDQUFrQztJQUVsQyw2RUFBNkU7SUFDbEUsUUFBQSxPQUFPLEdBQWtDLGVBQWUsQ0FBQztJQUVwRSx5REFBa0Q7SUFFbEQsNENBVXVCO0lBSXZCLHFEQUFxRDtJQUN4QyxRQUFBLHNCQUFzQixHQUFDO1FBQ2hDLEdBQUcsRUFBQyxxQ0FBcUM7UUFDekMsU0FBUyxFQUFDLDhEQUE4RDtRQUN4RSxVQUFVLEVBQUUsZ09BQWdPO1FBQzVPLEtBQUssRUFBRSxtREFBbUQ7UUFDMUQsNEJBQTRCLEVBQUUsNEZBQTRGO1FBQzFILGdCQUFnQixFQUFFLHVKQUF1SjtRQUN6SyxXQUFXLEVBQUUsd0tBQXdLO1FBQ3JMLFlBQVksRUFBRSwwS0FBMEs7UUFDeEwsS0FBSyxFQUFFLHVHQUF1RztRQUM5RyxLQUFLLEVBQUUsdUdBQXVHO1FBQzlHLElBQUksRUFBRSw0RkFBNEY7UUFDbEcsTUFBTSxFQUFFLHFKQUFxSjtRQUM3SixNQUFNLEVBQUMsK0VBQStFO1FBQ3RGLGFBQWEsRUFBQyw2TUFBNk07UUFDM04sYUFBYSxFQUFDLHlGQUF5RjtRQUN2RyxXQUFXLEVBQUUsZ0lBQWdJO1FBQzdJLFlBQVksRUFBRSxtV0FBbVc7UUFDalgsU0FBUyxFQUFFLHNLQUFzSztRQUNqTCxVQUFVLEVBQUUsZ0RBQWdEO1FBQzVELFVBQVUsRUFBRSw4Q0FBOEM7UUFDMUQsaUJBQWlCLEVBQUUsa0dBQWtHO1FBQ3JILE9BQU8sRUFBRSx5QkFBeUI7UUFDbEMsZUFBZSxFQUFFLG1FQUFtRTtR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LENBQUM7S0FDSjtJQTlCRCxzREE4QkM7SUFFRCxNQUFNLEtBQUssR0FBRyxJQUFBLHNCQUFXLEVBQUM7UUFDeEIsU0FBUyxFQUFFO1lBQ1QsY0FBYyxFQUFFO2dCQUNkLFNBQVMsRUFBRTtvQkFDVCxJQUFJLEVBQUU7d0JBQ0osbUJBQW1CLEVBQUUsTUFBTTtxQkFDNUI7aUJBQ0Y7YUFDRjtTQUNGO0tBQ0YsQ0FBQyxDQUFDO0lBRUgsU0FBZ0IsZUFBZSxDQUFzQixLQUFvRztRQUNySixPQUFPLG9CQUFDLEtBQUssQ0FBQyxVQUFVO1lBQ3BCLG9CQUFDLHNCQUFRLElBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxLQUFLO2dCQUN4QixvQkFBQyx3QkFBYSxJQUFDLEtBQUssRUFBRSxLQUFLO29CQUN2QixvQkFBQyxxQkFBcUIsSUFBQyxXQUFXLEVBQUUsS0FBSyxDQUFDLFdBQVcsRUFBRSxjQUFjLEVBQUUsS0FBSyxDQUFDLGNBQWM7d0JBQ3ZGLG9CQUFDLHNCQUFXLE9BQUc7d0JBQ2QsS0FBSyxDQUFDLFFBQVEsQ0FDSyxDQUNaLENBQ1QsQ0FDSSxDQUFBO0lBQ3ZCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyBSZWFjdCBmcm9tIFwicmVhY3RcIjtcclxuaW1wb3J0ICogYXMgUmVhY3RET00gZnJvbSBcInJlYWN0LWRvbVwiO1xyXG5pbXBvcnQge3VzZVN0YXRlLCB1c2VFZmZlY3QsIHVzZVJlZn0gZnJvbSBcInJlYWN0XCI7XHJcbmltcG9ydCB7IFByb3ZpZGVyLCB1c2VTZWxlY3RvciwgdXNlRGlzcGF0Y2ggfSBmcm9tIFwicmVhY3QtcmVkdXhcIjsgXHJcbmltcG9ydCAqIGFzIG1lbW9pemVCYWRUeXBlZCBmcm9tIFwibWVtb2l6ZS1vbmVcIjtcclxuaW1wb3J0ICogYXMgbGlrZUFyIGZyb20gXCJsaWtlLWFyXCI7XHJcblxyXG4vL0B0cy1pZ25vcmUgZWwgbcOzZHVsbyBtZW1vaXplLW9uZSBubyB0aWVuZSBiaWVuIHB1ZXN0byBsb3MgdGlwb3MgZW4gc3UgLmQudHNcclxuZXhwb3J0IHZhciBtZW1vaXplOnR5cGVvZiBtZW1vaXplQmFkVHlwZWQuZGVmYXVsdCA9IG1lbW9pemVCYWRUeXBlZDtcclxuXHJcbmltcG9ydCB7Z290b1NpbmNyb25pemFyfSBmcm9tIFwiLi9yZWR1eC1mb3JtdWxhcmlvXCJcclxuXHJcbmltcG9ydCB7XHJcbiAgICBBcHBCYXIsIEJhZGdlLCBCdXR0b24sIEJ1dHRvbkdyb3VwLCBDYXJkLCBDaGlwLCBDaXJjdWxhclByb2dyZXNzLCBDc3NCYXNlbGluZSwgXHJcbiAgICBEaWFsb2csIERpYWxvZ0FjdGlvbnMsIERpYWxvZ0NvbnRlbnQsIERpYWxvZ0NvbnRlbnRUZXh0LCBcclxuICAgIERpYWxvZ1RpdGxlLCBEaXZpZGVyLCBGYWIsIEdyaWQsIEljb25CdXR0b24sIElucHV0QmFzZSwgXHJcbiAgICBMaXN0LCBMaXN0SXRlbSwgTGlzdEl0ZW1JY29uLCBMaXN0SXRlbVRleHQsIERyYXdlciwgXHJcbiAgICBNZW51LCBNZW51SXRlbSwgUGFwZXIsIFN2Z0ljb24sIFN3aXRjaCwgXHJcbiAgICBUYWJsZSwgVGFibGVCb2R5LCBUYWJsZUNlbGwsIFRhYmxlSGVhZCwgVGFibGVSb3csIFRleHRGaWVsZCwgVGhlbWVQcm92aWRlciwgVG9vbGJhciwgVHlwb2dyYXBoeSwgWm9vbSxcclxuICAgIHVzZVNjcm9sbFRyaWdnZXIsXHJcbiAgICAvLyBzdHlsZXM6XHJcbiAgICBjcmVhdGVTdHlsZXMsIFRoZW1lLCBjcmVhdGVUaGVtZVxyXG59IGZyb20gXCJAbXVpL21hdGVyaWFsXCI7XHJcbmltcG9ydCB7IFN0b3JlLCBBY3Rpb24gfSBmcm9tIFwicmVkdXhcIjtcclxuaW1wb3J0IHsgVGlwb1ZhcmlhYmxlcyB9IGZyb20gXCIuL3RpcG9zXCI7XHJcblxyXG4vLyBodHRwczovL21hdGVyaWFsLXVpLmNvbS9jb21wb25lbnRzL21hdGVyaWFsLWljb25zL1xyXG5leHBvcnQgY29uc3QgbWF0ZXJpYWxJb0ljb25zU3ZnUGF0aD17XHJcbiAgICBBZGQ6XCJNMTkgMTNoLTZ2NmgtMnYtNkg1di0yaDZWNWgydjZoNnYyelwiLFxyXG4gICAgQXJyb3dCYWNrOlwiTTIwIDExSDcuODNsNS41OS01LjU5TDEyIDRsLTggOCA4IDggMS40MS0xLjQxTDcuODMgMTNIMjB2LTJ6XCIsXHJcbiAgICBBc3NpZ25tZW50OiBcIk0xOSAzaC00LjE4QzE0LjQgMS44NCAxMy4zIDEgMTIgMWMtMS4zIDAtMi40Ljg0LTIuODIgMkg1Yy0xLjEgMC0yIC45LTIgMnYxNGMwIDEuMS45IDIgMiAyaDE0YzEuMSAwIDItLjkgMi0yVjVjMC0xLjEtLjktMi0yLTJ6bS03IDBjLjU1IDAgMSAuNDUgMSAxcy0uNDUgMS0xIDEtMS0uNDUtMS0xIC40NS0xIDEtMXptMiAxNEg3di0yaDd2MnptMy00SDd2LTJoMTB2MnptMC00SDdWN2gxMHYyelwiLFxyXG4gICAgQ2hlY2s6IFwiTTkgMTYuMTdMNC44MyAxMmwtMS40MiAxLjQxTDkgMTkgMjEgN2wtMS40MS0xLjQxelwiLFxyXG4gICAgQ2hlY2tCb3hPdXRsaW5lQmxhbmtPdXRsaW5lZDogXCJNMTkgNXYxNEg1VjVoMTRtMC0ySDVjLTEuMSAwLTIgLjktMiAydjE0YzAgMS4xLjkgMiAyIDJoMTRjMS4xIDAgMi0uOSAyLTJWNWMwLTEuMS0uOS0yLTItMnpcIixcclxuICAgIENoZWNrQm94T3V0bGluZWQ6IFwiTTE5IDNINWMtMS4xIDAtMiAuOS0yIDJ2MTRjMCAxLjEuOSAyIDIgMmgxNGMxLjEgMCAyLS45IDItMlY1YzAtMS4xLS45LTItMi0yem0wIDE2SDVWNWgxNHYxNHpNMTcuOTkgOWwtMS40MS0xLjQyLTYuNTkgNi41OS0yLjU4LTIuNTctMS40MiAxLjQxIDQgMy45OXpcIixcclxuICAgIENoZXZyb25MZWZ0OiBcIk0xNC43MSA2LjcxYS45OTU5Ljk5NTkgMCAwMC0xLjQxIDBMOC43MSAxMS4zYy0uMzkuMzktLjM5IDEuMDIgMCAxLjQxbDQuNTkgNC41OWMuMzkuMzkgMS4wMi4zOSAxLjQxIDAgLjM5LS4zOS4zOS0xLjAyIDAtMS40MUwxMC44MyAxMmwzLjg4LTMuODhjLjM5LS4zOS4zOC0xLjAzIDAtMS40MXpcIixcclxuICAgIENoZXZyb25SaWdodDogXCJNOS4yOSA2LjcxYy0uMzkuMzktLjM5IDEuMDIgMCAxLjQxTDEzLjE3IDEybC0zLjg4IDMuODhjLS4zOS4zOS0uMzkgMS4wMiAwIDEuNDEuMzkuMzkgMS4wMi4zOSAxLjQxIDBsNC41OS00LjU5Yy4zOS0uMzkuMzktMS4wMiAwLTEuNDFMMTAuNyA2LjdjLS4zOC0uMzgtMS4wMi0uMzgtMS40MS4wMXpcIixcclxuICAgIENsZWFyOiBcIk0xOSA2LjQxTDE3LjU5IDUgMTIgMTAuNTkgNi40MSA1IDUgNi40MSAxMC41OSAxMiA1IDE3LjU5IDYuNDEgMTkgMTIgMTMuNDEgMTcuNTkgMTkgMTkgMTcuNTkgMTMuNDEgMTJ6XCIsXHJcbiAgICBDbG9zZTogXCJNMTkgNi40MUwxNy41OSA1IDEyIDEwLjU5IDYuNDEgNSA1IDYuNDEgMTAuNTkgMTIgNSAxNy41OSA2LjQxIDE5IDEyIDEzLjQxIDE3LjU5IDE5IDE5IDE3LjU5IDEzLjQxIDEyelwiLFxyXG4gICAgQ29kZTogXCJNOS40IDE2LjZMNC44IDEybDQuNi00LjZMOCA2bC02IDYgNiA2IDEuNC0xLjR6bTUuMiAwbDQuNi00LjYtNC42LTQuNkwxNiA2bDYgNi02IDYtMS40LTEuNHpcIixcclxuICAgIENyZWF0ZTogXCJNMyAxNy4yNVYyMWgzLjc1TDE3LjgxIDkuOTRsLTMuNzUtMy43NUwzIDE3LjI1ek0yMC43MSA3LjA0Yy4zOS0uMzkuMzktMS4wMiAwLTEuNDFsLTIuMzQtMi4zNGEuOTk1OS45OTU5IDAgMDAtMS40MSAwbC0xLjgzIDEuODMgMy43NSAzLjc1IDEuODMtMS44M3pcIixcclxuICAgIERlbGV0ZTpcIk02IDE5YzAgMS4xLjkgMiAyIDJoOGMxLjEgMCAyLS45IDItMlY3SDZ2MTJ6TTE5IDRoLTMuNWwtMS0xaC01bC0xIDFINXYyaDE0VjR6XCIsXHJcbiAgICBEZWxldGVGb3JldmVyOlwiTTYgMTljMCAxLjEuOSAyIDIgMmg4YzEuMSAwIDItLjkgMi0yVjdINnYxMnptMi40Ni03LjEybDEuNDEtMS40MUwxMiAxMi41OWwyLjEyLTIuMTIgMS40MSAxLjQxTDEzLjQxIDE0bDIuMTIgMi4xMi0xLjQxIDEuNDFMMTIgMTUuNDFsLTIuMTIgMi4xMi0xLjQxLTEuNDFMMTAuNTkgMTRsLTIuMTMtMi4xMnpNMTUuNSA0bC0xLTFoLTVsLTEgMUg1djJoMTRWNHpcIixcclxuICAgIERlbGV0ZU91dGxpbmU6XCJNNiAxOWMwIDEuMS45IDIgMiAyaDhjMS4xIDAgMi0uOSAyLTJWN0g2djEyek04IDloOHYxMEg4Vjl6bTcuNS01bC0xLTFoLTVsLTEgMUg1djJoMTRWNHpcIixcclxuICAgIERlc2NyaXB0aW9uOiBcIk0xNCAySDZjLTEuMSAwLTEuOTkuOS0xLjk5IDJMNCAyMGMwIDEuMS44OSAyIDEuOTkgMkgxOGMxLjEgMCAyLS45IDItMlY4bC02LTZ6bTIgMTZIOHYtMmg4djJ6bTAtNEg4di0yaDh2MnptLTMtNVYzLjVMMTguNSA5SDEzelwiLFxyXG4gICAgRW1vamlPYmplY3RzOiBcIk0xMiAzYy0uNDYgMC0uOTMuMDQtMS40LjE0LTIuNzYuNTMtNC45NiAyLjc2LTUuNDggNS41Mi0uNDggMi42MS40OCA1LjAxIDIuMjIgNi41Ni40My4zOC42Ni45MS42NiAxLjQ3VjE5YzAgMS4xLjkgMiAyIDJoLjI4Yy4zNS42Ljk4IDEgMS43MiAxczEuMzgtLjQgMS43Mi0xSDE0YzEuMSAwIDItLjkgMi0ydi0yLjMxYzAtLjU1LjIyLTEuMDkuNjQtMS40NkMxOC4wOSAxMy45NSAxOSAxMi4wOCAxOSAxMGMwLTMuODctMy4xMy03LTctN3ptMiAxNmgtNHYtMWg0djF6bTAtMmgtNHYtMWg0djF6bS0xLjUtNS41OVYxNGgtMXYtMi41OUw5LjY3IDkuNTlsLjcxLS43MUwxMiAxMC41bDEuNjItMS42Mi43MS43MS0xLjgzIDEuODJ6XCIsXHJcbiAgICBFeGl0VG9BcHA6IFwiTTEwLjA5IDE1LjU5TDExLjUgMTdsNS01LTUtNS0xLjQxIDEuNDFMMTIuNjcgMTFIM3YyaDkuNjdsLTIuNTggMi41OXpNMTkgM0g1Yy0xLjExIDAtMiAuOS0yIDJ2NGgyVjVoMTR2MTRINXYtNEgzdjRjMCAxLjEuODkgMiAyIDJoMTRjMS4xIDAgMi0uOSAyLTJWNWMwLTEuMS0uOS0yLTItMnpcIixcclxuICAgIEV4cGFuZExlc3M6IFwiTTEyIDhsLTYgNiAxLjQxIDEuNDFMMTIgMTAuODNsNC41OSA0LjU4TDE4IDE0elwiLFxyXG4gICAgRXhwYW5kTW9yZTogXCJNMTYuNTkgOC41OUwxMiAxMy4xNyA3LjQxIDguNTkgNiAxMGw2IDYgNi02elwiLFxyXG4gICAgRm9ybWF0TGluZVNwYWNpbmc6IFwiTTYgN2gyLjVMNSAzLjUgMS41IDdINHYxMEgxLjVMNSAyMC41IDguNSAxN0g2Vjd6bTQtMnYyaDEyVjVIMTB6bTAgMTRoMTJ2LTJIMTB2MnptMC02aDEydi0ySDEwdjJ6XCIsXHJcbiAgICBGb3J3YXJkOiBcIk0xMiA4VjRsOCA4LTggOHYtNEg0Vjh6XCIsXHJcbiAgICBGb3J3YXJkT3V0bGluZWQ6IFwiTTE0IDguODNMMTcuMTcgMTIgMTQgMTUuMTdWMTRINnYtNGg4VjguODNNMTIgNHY0SDR2OGg4djRsOC04LTgtOHpcIixcclxuICAgIEluZm86IFwiTTEyIDJDNi40OCAyIDIgNi40OCAyIDEyczQuNDggMTAgMTAgMTAgMTAtNC40OCAxMC0xMFMxNy41MiAyIDEyIDJ6bTEgMTVoLTJ2LTZoMnY2em0wLThoLTJWN2gydjJ6XCIsXHJcbiAgICBLZXlib2FyZEFycm93VXA6IFwiTTcuNDEgMTUuNDFMMTIgMTAuODNsNC41OSA0LjU4TDE4IDE0bC02LTYtNiA2elwiLFxyXG4gICAgS2V5Ym9hcmRBcnJvd0Rvd246IFwiTTcuNDEgOC41OUwxMiAxMy4xN2w0LjU5LTQuNThMMTggMTBsLTYgNi02LTYgMS40MS0xLjQxelwiLFxyXG4gICAgTGFiZWw6IFwiTTE3LjYzIDUuODRDMTcuMjcgNS4zMyAxNi42NyA1IDE2IDVMNSA1LjAxQzMuOSA1LjAxIDMgNS45IDMgN3YxMGMwIDEuMS45IDEuOTkgMiAxLjk5TDE2IDE5Yy42NyAwIDEuMjctLjMzIDEuNjMtLjg0TDIyIDEybC00LjM3LTYuMTZ6XCIsXHJcbiAgICBMb2NhbEF0bTogXCJNMTEgMTdoMnYtMWgxYy41NSAwIDEtLjQ1IDEtMXYtM2MwLS41NS0uNDUtMS0xLTFoLTN2LTFoNFY4aC0yVjdoLTJ2MWgtMWMtLjU1IDAtMSAuNDUtMSAxdjNjMCAuNTUuNDUgMSAxIDFoM3YxSDl2MmgydjF6bTktMTNINGMtMS4xMSAwLTEuOTkuODktMS45OSAyTDIgMThjMCAxLjExLjg5IDIgMiAyaDE2YzEuMTEgMCAyLS44OSAyLTJWNmMwLTEuMTEtLjg5LTItMi0yem0wIDE0SDRWNmgxNnYxMnpcIixcclxuICAgIExvY2F0aW9uOiBcIk0xMiAyQzguMTMgMiA1IDUuMTMgNSA5YzAgNS4yNSA3IDEzIDcgMTNzNy03Ljc1IDctMTNjMC0zLjg3LTMuMTMtNy03LTdtMCA5LjVjLTEuMzggMC0yLjUtMS4xMi0yLjUtMi41czEuMTItMi41IDIuNS0yLjUgMi41IDEuMTIgMi41IDIuNS0xLjEyIDIuNS0yLjUgMi41XCIsXHJcbiAgICBNZW51OiBcIk0zIDE4aDE4di0ySDN2MnptMC01aDE4di0ySDN2MnptMC03djJoMThWNkgzelwiLFxyXG4gICAgTmF2aWdhdGlvbjogXCJNMTIgMkw0LjUgMjAuMjlsLjcxLjcxTDEyIDE4bDYuNzkgMyAuNzEtLjcxelwiLFxyXG4gICAgTmF2aWdhdGlvbkRvd246IFwiTTEyIDIyTDQuNSAzLjcxbC43MSAtLjcxTDEyIDZsNi43OSAtMyAuNzEgLjcxelwiLFxyXG4gICAgUmVtb3ZlU2hvcHBpbmdDYXJ0OiBcIk0yMi43MyAyMi43M0wyLjc3IDIuNzcgMiAybC0uNzMtLjczTDAgMi41NGw0LjM5IDQuMzkgMi4yMSA0LjY2LTEuMzUgMi40NWMtLjE2LjI4LS4yNS42MS0uMjUuOTYgMCAxLjEuOSAyIDIgMmg3LjQ2bDEuMzggMS4zOGMtLjUuMzYtLjgzLjk1LS44MyAxLjYyIDAgMS4xLjg5IDIgMS45OSAyIC42NyAwIDEuMjYtLjMzIDEuNjItLjg0TDIxLjQ2IDI0bDEuMjctMS4yN3pNNy40MiAxNWMtLjE0IDAtLjI1LS4xMS0uMjUtLjI1bC4wMy0uMTIuOS0xLjYzaDIuMzZsMiAySDcuNDJ6bTguMTMtMmMuNzUgMCAxLjQxLS40MSAxLjc1LTEuMDNsMy41OC02LjQ5Yy4wOC0uMTQuMTItLjMxLjEyLS40OCAwLS41NS0uNDUtMS0xLTFINi41NGw5LjAxIDl6TTcgMThjLTEuMSAwLTEuOTkuOS0xLjk5IDJTNS45IDIyIDcgMjJzMi0uOSAyLTItLjktMi0yLTJ6XCIsXHJcbiAgICBTYXZlOlwiTTE3IDNINWMtMS4xMSAwLTIgLjktMiAydjE0YzAgMS4xLjg5IDIgMiAyaDE0YzEuMSAwIDItLjkgMi0yVjdsLTQtNHptLTUgMTZjLTEuNjYgMC0zLTEuMzQtMy0zczEuMzQtMyAzLTMgMyAxLjM0IDMgMy0xLjM0IDMtMyAzem0zLTEwSDVWNWgxMHY0elwiLFxyXG4gICAgU2VhcmNoOiBcIk0xNS41IDE0aC0uNzlsLS4yOC0uMjdDMTUuNDEgMTIuNTkgMTYgMTEuMTEgMTYgOS41IDE2IDUuOTEgMTMuMDkgMyA5LjUgM1MzIDUuOTEgMyA5LjUgNS45MSAxNiA5LjUgMTZjMS42MSAwIDMuMDktLjU5IDQuMjMtMS41N2wuMjcuMjh2Ljc5bDUgNC45OUwyMC40OSAxOWwtNC45OS01em0tNiAwQzcuMDEgMTQgNSAxMS45OSA1IDkuNVM3LjAxIDUgOS41IDUgMTQgNy4wMSAxNCA5LjUgMTEuOTkgMTQgOS41IDE0elwiLFxyXG4gICAgU2VuZDogXCJNMi4wMSAyMUwyMyAxMiAyLjAxIDMgMiAxMGwxNSAyLTE1IDJ6XCIsXHJcbiAgICBTZXR0aW5nczogXCJNMTUuOTUgMTAuNzhjLjAzLS4yNS4wNS0uNTEuMDUtLjc4cy0uMDItLjUzLS4wNi0uNzhsMS42OS0xLjMyYy4xNS0uMTIuMTktLjM0LjEtLjUxbC0xLjYtMi43N2MtLjEtLjE4LS4zMS0uMjQtLjQ5LS4xOGwtMS45OS44Yy0uNDItLjMyLS44Ni0uNTgtMS4zNS0uNzhMMTIgMi4zNGMtLjAzLS4yLS4yLS4zNC0uNC0uMzRIOC40Yy0uMiAwLS4zNi4xNC0uMzkuMzRsLS4zIDIuMTJjLS40OS4yLS45NC40Ny0xLjM1Ljc4bC0xLjk5LS44Yy0uMTgtLjA3LS4zOSAwLS40OS4xOGwtMS42IDIuNzdjLS4xLjE4LS4wNi4zOS4xLjUxbDEuNjkgMS4zMmMtLjA0LjI1LS4wNy41Mi0uMDcuNzhzLjAyLjUzLjA2Ljc4TDIuMzcgMTIuMWMtLjE1LjEyLS4xOS4zNC0uMS41MWwxLjYgMi43N2MuMS4xOC4zMS4yNC40OS4xOGwxLjk5LS44Yy40Mi4zMi44Ni41OCAxLjM1Ljc4bC4zIDIuMTJjLjA0LjIuMi4zNC40LjM0aDMuMmMuMiAwIC4zNy0uMTQuMzktLjM0bC4zLTIuMTJjLjQ5LS4yLjk0LS40NyAxLjM1LS43OGwxLjk5LjhjLjE4LjA3LjM5IDAgLjQ5LS4xOGwxLjYtMi43N2MuMS0uMTguMDYtLjM5LS4xLS41MWwtMS42Ny0xLjMyek0xMCAxM2MtMS42NSAwLTMtMS4zNS0zLTNzMS4zNS0zIDMtMyAzIDEuMzUgMyAzLTEuMzUgMy0zIDN6XCIsXHJcbiAgICBTeW5jQWx0OlwiTTIyIDhsLTQtNHYzSDN2MmgxNXYzbDQtNHpNMiAxNmw0IDR2LTNoMTV2LTJINnYtM2wtNCA0elwiLFxyXG4gICAgVHJlbmRpbmdGbGF0OlwiTTIyIDEybC00LTR2M0gzdjJoMTV2M3pcIixcclxuICAgIFdhcm5pbmc6IFwiTTEgMjFoMjJMMTIgMiAxIDIxem0xMi0zaC0ydi0yaDJ2MnptMC00aC0ydi00aDJ2NHpcIixcclxufVxyXG5cclxuZXhwb3J0IGNvbnN0IElDT04gPSBsaWtlQXIobWF0ZXJpYWxJb0ljb25zU3ZnUGF0aCkubWFwKHN2Z1RleHQ9PiAoKSA9PlxyXG4gICAgPFN2Z0ljb24+PHBhdGggZD17c3ZnVGV4dH0vPjwvU3ZnSWNvbj5cclxuKS5wbGFpbigpO1xyXG5cclxuZXhwb3J0IHR5cGUgU3R5bGVzID0gUmVhY3QuQ1NTUHJvcGVydGllcztcclxuXHJcbmV4cG9ydCB0eXBlIE9uVXBkYXRlPFQ+ID0gKGRhdGE6VCk9PnZvaWRcclxuXHJcbmV4cG9ydCB0eXBlIElucHV0VHlwZXMgPSAnZGF0ZSd8J251bWJlcid8J3RlbCd8J3RleHQnO1xyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIGFkYXB0YXJUaXBvVmFyQ2FzaWxsZXJvKGNhc2lsbGVyb0RhdGFUeXBlOlRpcG9WYXJpYWJsZXN8J29wY2lvbmVzJ3wnc2lfbm8nKTpJbnB1dFR5cGVze1xyXG4gICAgY29uc3QgYWRhcHRlcjp7W2tleSBpbiBUaXBvVmFyaWFibGVzfCdvcGNpb25lcyd8J3NpX25vJ106SW5wdXRUeXBlc30gPSB7XHJcbiAgICAgICAgJ29wY2lvbmVzJzonbnVtYmVyJyxcclxuICAgICAgICAnc2lfbm8nOiAnbnVtYmVyJyxcclxuICAgICAgICAnbnVtZXJvJzogJ251bWJlcicsXHJcbiAgICAgICAgJ2hvcmEnOiAndGVsJyxcclxuICAgICAgICAnaG9yYXMnOiAnbnVtYmVyJyxcclxuICAgICAgICAndGV4dG8nOiAndGV4dCcsXHJcbiAgICAgICAgJ2ZlY2hhJzogJ3RleHQnXHJcbiAgICB9XHJcbiAgICByZXR1cm4gYWRhcHRlcltjYXNpbGxlcm9EYXRhVHlwZV1cclxufVxyXG5cclxuZXhwb3J0IGNvbnN0IHNjcm9sbFRvVG9wID0gKCkgPT4ge1xyXG4gICAgd2luZG93LnNjcm9sbCh7YmVoYXZpb3I6J3Ntb290aCcsIHRvcDowLCBsZWZ0OjB9KVxyXG59O1xyXG5cclxuZXhwb3J0IGNvbnN0IHNjcm9sbFRvQm90dG9tID0gKCkgPT4ge1xyXG4gICAgd2luZG93LnNjcm9sbCh7YmVoYXZpb3I6J3Ntb290aCcsIHRvcDpkb2N1bWVudC5ib2R5LmNsaWVudEhlaWdodC13aW5kb3cuaW5uZXJIZWlnaHQsIGxlZnQ6MH0pXHJcbn07XHJcblxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIFNjcm9sbFRvcChwcm9wczogYW55KSB7XHJcbiAgICBjb25zdCB7IGNoaWxkcmVuIH0gPSBwcm9wcztcclxuICAgIC8vY29uc3QgY2xhc3NlcyA9IHVzZVN0eWxlc1Njcm9sbFRvcCgpO1xyXG4gICAgLy8gTm90ZSB0aGF0IHlvdSBub3JtYWxseSB3b24ndCBuZWVkIHRvIHNldCB0aGUgd2luZG93IHJlZiBhcyB1c2VTY3JvbGxUcmlnZ2VyXHJcbiAgICAvLyB3aWxsIGRlZmF1bHQgdG8gd2luZG93LlxyXG4gICAgLy8gVGhpcyBpcyBvbmx5IGJlaW5nIHNldCBoZXJlIGJlY2F1c2UgdGhlIGRlbW8gaXMgaW4gYW4gaWZyYW1lLlxyXG4gICAgY29uc3QgdHJpZ2dlciA9IHVzZVNjcm9sbFRyaWdnZXIoe1xyXG4gICAgICAgIGRpc2FibGVIeXN0ZXJlc2lzOiB0cnVlLFxyXG4gICAgICAgIHRocmVzaG9sZDogMTAwLFxyXG4gICAgfSk7XHJcbiAgICByZXR1cm4gKFxyXG4gICAgICAgIDxab29tIGluPXt0cmlnZ2VyfT5cclxuICAgICAgICAgICAgPGRpdiBvbkNsaWNrPXtzY3JvbGxUb1RvcH0gcm9sZT1cInByZXNlbnRhdGlvblwiIC8qY2xhc3NOYW1lPXtjbGFzc2VzLnJvb3R9Ki8+XHJcbiAgICAgICAgICAgICAgICB7Y2hpbGRyZW59XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvWm9vbT5cclxuICAgICk7XHJcbn1cclxuXHJcbmV4cG9ydCB0eXBlIEZvY3VzT3B0cz17XHJcbiAgICBtb3ZlVG9FbGVtZW50OiBib29sZWFuXHJcbiAgICBtb3ZlQmVoYXZpb3I/OiAnYXV0bycgfCAnc21vb3RoJ1xyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gZm9jdXNUb0lkKGlkOnN0cmluZywgb3B0czpGb2N1c09wdHMsIGNiPzooZTpIVE1MRWxlbWVudCk9PnZvaWQpe1xyXG4gICAgdmFyIGVsZW1lbnQ9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoaWQpO1xyXG4gICAgdmFyIHBhZHJlPWVsZW1lbnQ7XHJcbiAgICB3aGlsZShwYWRyZSAmJiBwYWRyZS5jbGFzc05hbWUhPSdwcmVndW50YScgJiYgcGFkcmUhPWRvY3VtZW50LmJvZHkpIHBhZHJlID0gcGFkcmUucGFyZW50RWxlbWVudDtcclxuICAgIGlmKHBhZHJlICYmIHBhZHJlLmNsYXNzTmFtZT09J3ByZWd1bnRhJykgZWxlbWVudD1wYWRyZTtcclxuICAgIGlmKGVsZW1lbnQpe1xyXG4gICAgICAgIGlmKGNiKXtcclxuICAgICAgICAgICAgY2IoZWxlbWVudCk7XHJcbiAgICAgICAgfWVsc2V7XHJcbiAgICAgICAgICAgIGVsZW1lbnQuZm9jdXMoKTtcclxuICAgICAgICAgICAgaWYob3B0cy5tb3ZlVG9FbGVtZW50KXtcclxuICAgICAgICAgICAgICAgIGVsZW1lbnQuc2Nyb2xsSW50b1ZpZXcoKTtcclxuICAgICAgICAgICAgICAgIHdpbmRvdy5zY3JvbGwoe2JlaGF2aW9yOm9wdHMubW92ZUJlaGF2aW9yfHwnYXV0bycsIHRvcDp3aW5kb3cuc2Nyb2xsWS0xMDAsIGxlZnQ6MH0pXHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9XHJcbn1cclxuXHJcbmV4cG9ydCB0eXBlIElEaXNwYXRjaGVycyA9IHtSRVNFVF9PUENJT05FUzpGdW5jdGlvbn07XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gUmVzZXRlckZvcm0ocHJvcHM6e29uVHJ5QWdhaW46KCk9PnZvaWQsIGRpc3BhdGNoZXJzOklEaXNwYXRjaGVycywgbWVuc2FqZTpzdHJpbmd9KXtcclxuICAgIGNvbnN0IGRpc3BhdGNoID0gdXNlRGlzcGF0Y2goKTtcclxuICAgIHJldHVybiA8PlxyXG4gICAgICAgIDxCdXR0b24gdmFyaWFudD1cIm91dGxpbmVkXCJcclxuICAgICAgICAgICAgb25DbGljaz17KCk9PntcclxuICAgICAgICAgICAgICAgIGRpc3BhdGNoKHByb3BzLmRpc3BhdGNoZXJzLlJFU0VUX09QQ0lPTkVTKHt9KSk7XHJcbiAgICAgICAgICAgICAgICBwcm9wcy5vblRyeUFnYWluKCk7XHJcbiAgICAgICAgICAgIH19XHJcbiAgICAgICAgPntwcm9wcy5tZW5zYWplfTwvQnV0dG9uPlxyXG4gICAgPC8+O1xyXG59XHJcblxyXG5leHBvcnQgY2xhc3MgUmVuZGVyQW5kQ2FwdHVyZUVycm9yIGV4dGVuZHMgUmVhY3QuQ29tcG9uZW50PFxyXG4gICAge2Rpc3BhdGNoZXJzOklEaXNwYXRjaGVycywgbWVuc2FqZVJldG9ybm86c3RyaW5nfSxcclxuICAgIHtoYXNFcnJvcjpib29sZWFuLCBlcnJvcjpFcnJvcnx7fSwgaW5mbz86YW55fVxyXG4+e1xyXG4gICAgY29uc3RydWN0b3IocHJvcHM6YW55KSB7XHJcbiAgICAgICAgc3VwZXIocHJvcHMpO1xyXG4gICAgICAgIHRoaXMuc3RhdGUgPSB7IGhhc0Vycm9yOiBmYWxzZSwgZXJyb3I6e319O1xyXG4gICAgfVxyXG4gICAgY29tcG9uZW50RGlkQ2F0Y2goZXJyb3I6RXJyb3IsIGluZm86YW55KXtcclxuICAgICAgICB0aGlzLnNldFN0YXRlKHsgaGFzRXJyb3I6IHRydWUgLCBlcnJvciwgaW5mbyB9KTtcclxuICAgIH1cclxuICAgIHJlbmRlcigpe1xyXG4gICAgICAgIGlmKHRoaXMuc3RhdGUuaGFzRXJyb3Ipe1xyXG4gICAgICAgICAgICByZXR1cm4gPD5cclxuICAgICAgICAgICAgICAgIDxUeXBvZ3JhcGh5Pkh1Ym8gdW4gcHJvYmxlbWEgZW4gbGEgcHJvZ3JhbWFjacOzbiBkZSBsYSBwYW50YWxsYS48L1R5cG9ncmFwaHk+XHJcbiAgICAgICAgICAgICAgICA8UmVzZXRlckZvcm0gZGlzcGF0Y2hlcnM9e3RoaXMucHJvcHMuZGlzcGF0Y2hlcnN9IG1lbnNhamU9e3RoaXMucHJvcHMubWVuc2FqZVJldG9ybm99IG9uVHJ5QWdhaW49eygpPT5cclxuICAgICAgICAgICAgICAgICAgICB0aGlzLnNldFN0YXRlKHsgaGFzRXJyb3I6IGZhbHNlLCBlcnJvcjp7fX0pXHJcbiAgICAgICAgICAgICAgICB9Lz5cclxuICAgICAgICAgICAgICAgIDxCdXR0b24gdmFyaWFudD1cIm91dGxpbmVkXCIgY29sb3I9XCJzZWNvbmRhcnlcIlxyXG4gICAgICAgICAgICAgICAgICAgIG9uQ2xpY2s9eygpPT57XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGdvdG9TaW5jcm9uaXphcigpO1xyXG4gICAgICAgICAgICAgICAgICAgIH19XHJcbiAgICAgICAgICAgICAgICA+aXIgYSBsYSBwYW50YWxsYSBkZSBzaW5jcm9uaXphY2nDs248L0J1dHRvbj5cclxuICAgICAgICAgICAgICAgIDxUeXBvZ3JhcGh5PkVycm9yIGRldGVjdGFkbzo8L1R5cG9ncmFwaHk+XHJcbiAgICAgICAgICAgICAgICA8VHlwb2dyYXBoeT57dGhpcy5zdGF0ZS5lcnJvciBpbnN0YW5jZW9mIEVycm9yID8gdGhpcy5zdGF0ZS5lcnJvci5tZXNzYWdlIDogJ3Vua25vd24gZXJyb3InfTwvVHlwb2dyYXBoeT5cclxuICAgICAgICAgICAgICAgIDxUeXBvZ3JhcGh5PntKU09OLnN0cmluZ2lmeSh0aGlzLnN0YXRlLmluZm8pfTwvVHlwb2dyYXBoeT5cclxuICAgICAgICAgICAgPC8+O1xyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gdGhpcy5wcm9wcy5jaGlsZHJlbjtcclxuICAgIH1cclxufVxyXG5cclxuY29uc3QgdGhlbWUgPSBjcmVhdGVUaGVtZSh7XHJcbiAgb3ZlcnJpZGVzOiB7XHJcbiAgICBNdWlDc3NCYXNlbGluZToge1xyXG4gICAgICAnQGdsb2JhbCc6IHtcclxuICAgICAgICBodG1sOiB7XHJcbiAgICAgICAgICBXZWJraXRGb250U21vb3RoaW5nOiAnYXV0bycsXHJcbiAgICAgICAgfSxcclxuICAgICAgfSxcclxuICAgIH0sXHJcbiAgfSxcclxufSk7XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gUmVuZGVyUHJpbmNpcGFsPFQsVDIgZXh0ZW5kcyBBY3Rpb24+KHByb3BzOntzdG9yZTpTdG9yZTxULFQyPiwgZGlzcGF0Y2hlcnM6SURpc3BhdGNoZXJzLCBtZW5zYWplUmV0b3JubzpzdHJpbmcsIGNoaWxkcmVuOlJlYWN0LlJlYWN0Tm9kZX0pe1xyXG4gICAgcmV0dXJuIDxSZWFjdC5TdHJpY3RNb2RlPlxyXG4gICAgICAgIDxQcm92aWRlciBzdG9yZT17cHJvcHMuc3RvcmV9PlxyXG4gICAgICAgICAgICA8VGhlbWVQcm92aWRlciB0aGVtZT17dGhlbWV9PlxyXG4gICAgICAgICAgICAgICAgPFJlbmRlckFuZENhcHR1cmVFcnJvciBkaXNwYXRjaGVycz17cHJvcHMuZGlzcGF0Y2hlcnN9IG1lbnNhamVSZXRvcm5vPXtwcm9wcy5tZW5zYWplUmV0b3Jub30+XHJcbiAgICAgICAgICAgICAgICAgICAgPENzc0Jhc2VsaW5lIC8+XHJcbiAgICAgICAgICAgICAgICAgICAge3Byb3BzLmNoaWxkcmVufVxyXG4gICAgICAgICAgICAgICAgPC9SZW5kZXJBbmRDYXB0dXJlRXJyb3I+XHJcbiAgICAgICAgICAgIDwvVGhlbWVQcm92aWRlcj4gICAgICAgIFxyXG4gICAgICAgIDwvUHJvdmlkZXI+XHJcbiAgICA8L1JlYWN0LlN0cmljdE1vZGU+XHJcbn1cclxuXHJcbiJdfQ==
191
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVuZGVyLWdlbmVyYWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvdW5sb2dnZWQvcmVuZGVyLWdlbmVyYWwudHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7OztJQWdGQSwwREFXQztJQVdELDhCQWlCQztJQU9ELDhCQWdCQztJQUlELGtDQVVDO0lBOENELDBDQWNDO0lBRUQsMENBV0M7SUFyT0QsK0JBQStCO0lBRS9CLGlDQUFrRDtJQUNsRCw2Q0FBaUU7SUFDakUsK0NBQStDO0lBQy9DLGtDQUFrQztJQUVsQyw2RUFBNkU7SUFDbEUsUUFBQSxPQUFPLEdBQWtDLGVBQWUsQ0FBQztJQUVwRSx5REFBa0Q7SUFFbEQsNENBVXVCO0lBSXZCLHFEQUFxRDtJQUN4QyxRQUFBLHNCQUFzQixHQUFDO1FBQ2hDLEdBQUcsRUFBQyxxQ0FBcUM7UUFDekMsU0FBUyxFQUFDLDhEQUE4RDtRQUN4RSxVQUFVLEVBQUUsZ09BQWdPO1FBQzVPLEtBQUssRUFBRSxtREFBbUQ7UUFDMUQsNEJBQTRCLEVBQUUsNEZBQTRGO1FBQzFILGdCQUFnQixFQUFFLHVKQUF1SjtRQUN6SyxXQUFXLEVBQUUsd0tBQXdLO1FBQ3JMLFlBQVksRUFBRSwwS0FBMEs7UUFDeEwsS0FBSyxFQUFFLHVHQUF1RztRQUM5RyxLQUFLLEVBQUUsdUdBQXVHO1FBQzlHLElBQUksRUFBRSw0RkFBNEY7UUFDbEcsTUFBTSxFQUFFLHFKQUFxSjtRQUM3SixNQUFNLEVBQUMsK0VBQStFO1FBQ3RGLGFBQWEsRUFBQyw2TUFBNk07UUFDM04sYUFBYSxFQUFDLHlGQUF5RjtRQUN2RyxXQUFXLEVBQUUsZ0lBQWdJO1FBQzdJLFlBQVksRUFBRSxtV0FBbVc7UUFDalgsU0FBUyxFQUFFLHNLQUFzSztRQUNqTCxVQUFVLEVBQUUsZ0RBQWdEO1FBQzVELFVBQVUsRUFBRSw4Q0FBOEM7UUFDMUQsaUJBQWlCLEVBQUUsa0dBQWtHO1FBQ3JILE9BQU8sRUFBRSx5QkFBeUI7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QkFBcUIsSUFBQyxXQUFXLEVBQUUsS0FBSyxDQUFDLFdBQVcsRUFBRSxjQUFjLEVBQUUsS0FBSyxDQUFDLGNBQWM7d0JBQ3ZGLG9CQUFDLHNCQUFXLE9BQUc7d0JBQ2QsS0FBSyxDQUFDLFFBQVEsQ0FDSyxDQUNaLENBQ1QsQ0FDSSxDQUFBO0lBQ3ZCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyBSZWFjdCBmcm9tIFwicmVhY3RcIjtcclxuaW1wb3J0ICogYXMgUmVhY3RET00gZnJvbSBcInJlYWN0LWRvbVwiO1xyXG5pbXBvcnQge3VzZVN0YXRlLCB1c2VFZmZlY3QsIHVzZVJlZn0gZnJvbSBcInJlYWN0XCI7XHJcbmltcG9ydCB7IFByb3ZpZGVyLCB1c2VTZWxlY3RvciwgdXNlRGlzcGF0Y2ggfSBmcm9tIFwicmVhY3QtcmVkdXhcIjsgXHJcbmltcG9ydCAqIGFzIG1lbW9pemVCYWRUeXBlZCBmcm9tIFwibWVtb2l6ZS1vbmVcIjtcclxuaW1wb3J0ICogYXMgbGlrZUFyIGZyb20gXCJsaWtlLWFyXCI7XHJcblxyXG4vL0B0cy1pZ25vcmUgZWwgbcOzZHVsbyBtZW1vaXplLW9uZSBubyB0aWVuZSBiaWVuIHB1ZXN0byBsb3MgdGlwb3MgZW4gc3UgLmQudHNcclxuZXhwb3J0IHZhciBtZW1vaXplOnR5cGVvZiBtZW1vaXplQmFkVHlwZWQuZGVmYXVsdCA9IG1lbW9pemVCYWRUeXBlZDtcclxuXHJcbmltcG9ydCB7Z290b1NpbmNyb25pemFyfSBmcm9tIFwiLi9yZWR1eC1mb3JtdWxhcmlvXCJcclxuXHJcbmltcG9ydCB7XHJcbiAgICBBcHBCYXIsIEJhZGdlLCBCdXR0b24sIEJ1dHRvbkdyb3VwLCBDYXJkLCBDaGlwLCBDaXJjdWxhclByb2dyZXNzLCBDc3NCYXNlbGluZSwgXHJcbiAgICBEaWFsb2csIERpYWxvZ0FjdGlvbnMsIERpYWxvZ0NvbnRlbnQsIERpYWxvZ0NvbnRlbnRUZXh0LCBcclxuICAgIERpYWxvZ1RpdGxlLCBEaXZpZGVyLCBGYWIsIEdyaWQsIEljb25CdXR0b24sIElucHV0QmFzZSwgXHJcbiAgICBMaXN0LCBMaXN0SXRlbSwgTGlzdEl0ZW1JY29uLCBMaXN0SXRlbVRleHQsIERyYXdlciwgXHJcbiAgICBNZW51LCBNZW51SXRlbSwgUGFwZXIsIFN2Z0ljb24sIFN3aXRjaCwgXHJcbiAgICBUYWJsZSwgVGFibGVCb2R5LCBUYWJsZUNlbGwsIFRhYmxlSGVhZCwgVGFibGVSb3csIFRleHRGaWVsZCwgVGhlbWVQcm92aWRlciwgVG9vbGJhciwgVHlwb2dyYXBoeSwgWm9vbSxcclxuICAgIHVzZVNjcm9sbFRyaWdnZXIsXHJcbiAgICAvLyBzdHlsZXM6XHJcbiAgICBjcmVhdGVTdHlsZXMsIFRoZW1lLCBjcmVhdGVUaGVtZVxyXG59IGZyb20gXCJAbXVpL21hdGVyaWFsXCI7XHJcbmltcG9ydCB7IFN0b3JlLCBBY3Rpb24gfSBmcm9tIFwicmVkdXhcIjtcclxuaW1wb3J0IHsgVGlwb1ZhcmlhYmxlcyB9IGZyb20gXCIuL3RpcG9zXCI7XHJcblxyXG4vLyBodHRwczovL21hdGVyaWFsLXVpLmNvbS9jb21wb25lbnRzL21hdGVyaWFsLWljb25zL1xyXG5leHBvcnQgY29uc3QgbWF0ZXJpYWxJb0ljb25zU3ZnUGF0aD17XHJcbiAgICBBZGQ6XCJNMTkgMTNoLTZ2NmgtMnYtNkg1di0yaDZWNWgydjZoNnYyelwiLFxyXG4gICAgQXJyb3dCYWNrOlwiTTIwIDExSDcuODNsNS41OS01LjU5TDEyIDRsLTggOCA4IDggMS40MS0xLjQxTDcuODMgMTNIMjB2LTJ6XCIsXHJcbiAgICBBc3NpZ25tZW50OiBcIk0xOSAzaC00LjE4QzE0LjQgMS44NCAxMy4zIDEgMTIgMWMtMS4zIDAtMi40Ljg0LTIuODIgMkg1Yy0xLjEgMC0yIC45LTIgMnYxNGMwIDEuMS45IDIgMiAyaDE0YzEuMSAwIDItLjkgMi0yVjVjMC0xLjEtLjktMi0yLTJ6bS03IDBjLjU1IDAgMSAuNDUgMSAxcy0uNDUgMS0xIDEtMS0uNDUtMS0xIC40NS0xIDEtMXptMiAxNEg3di0yaDd2MnptMy00SDd2LTJoMTB2MnptMC00SDdWN2gxMHYyelwiLFxyXG4gICAgQ2hlY2s6IFwiTTkgMTYuMTdMNC44MyAxMmwtMS40MiAxLjQxTDkgMTkgMjEgN2wtMS40MS0xLjQxelwiLFxyXG4gICAgQ2hlY2tCb3hPdXRsaW5lQmxhbmtPdXRsaW5lZDogXCJNMTkgNXYxNEg1VjVoMTRtMC0ySDVjLTEuMSAwLTIgLjktMiAydjE0YzAgMS4xLjkgMiAyIDJoMTRjMS4xIDAgMi0uOSAyLTJWNWMwLTEuMS0uOS0yLTItMnpcIixcclxuICAgIENoZWNrQm94T3V0bGluZWQ6IFwiTTE5IDNINWMtMS4xIDAtMiAuOS0yIDJ2MTRjMCAxLjEuOSAyIDIgMmgxNGMxLjEgMCAyLS45IDItMlY1YzAtMS4xLS45LTItMi0yem0wIDE2SDVWNWgxNHYxNHpNMTcuOTkgOWwtMS40MS0xLjQyLTYuNTkgNi41OS0yLjU4LTIuNTctMS40MiAxLjQxIDQgMy45OXpcIixcclxuICAgIENoZXZyb25MZWZ0OiBcIk0xNC43MSA2LjcxYS45OTU5Ljk5NTkgMCAwMC0xLjQxIDBMOC43MSAxMS4zYy0uMzkuMzktLjM5IDEuMDIgMCAxLjQxbDQuNTkgNC41OWMuMzkuMzkgMS4wMi4zOSAxLjQxIDAgLjM5LS4zOS4zOS0xLjAyIDAtMS40MUwxMC44MyAxMmwzLjg4LTMuODhjLjM5LS4zOS4zOC0xLjAzIDAtMS40MXpcIixcclxuICAgIENoZXZyb25SaWdodDogXCJNOS4yOSA2LjcxYy0uMzkuMzktLjM5IDEuMDIgMCAxLjQxTDEzLjE3IDEybC0zLjg4IDMuODhjLS4zOS4zOS0uMzkgMS4wMiAwIDEuNDEuMzkuMzkgMS4wMi4zOSAxLjQxIDBsNC41OS00LjU5Yy4zOS0uMzkuMzktMS4wMiAwLTEuNDFMMTAuNyA2LjdjLS4zOC0uMzgtMS4wMi0uMzgtMS40MS4wMXpcIixcclxuICAgIENsZWFyOiBcIk0xOSA2LjQxTDE3LjU5IDUgMTIgMTAuNTkgNi40MSA1IDUgNi40MSAxMC41OSAxMiA1IDE3LjU5IDYuNDEgMTkgMTIgMTMuNDEgMTcuNTkgMTkgMTkgMTcuNTkgMTMuNDEgMTJ6XCIsXHJcbiAgICBDbG9zZTogXCJNMTkgNi40MUwxNy41OSA1IDEyIDEwLjU5IDYuNDEgNSA1IDYuNDEgMTAuNTkgMTIgNSAxNy41OSA2LjQxIDE5IDEyIDEzLjQxIDE3LjU5IDE5IDE5IDE3LjU5IDEzLjQxIDEyelwiLFxyXG4gICAgQ29kZTogXCJNOS40IDE2LjZMNC44IDEybDQuNi00LjZMOCA2bC02IDYgNiA2IDEuNC0xLjR6bTUuMiAwbDQuNi00LjYtNC42LTQuNkwxNiA2bDYgNi02IDYtMS40LTEuNHpcIixcclxuICAgIENyZWF0ZTogXCJNMyAxNy4yNVYyMWgzLjc1TDE3LjgxIDkuOTRsLTMuNzUtMy43NUwzIDE3LjI1ek0yMC43MSA3LjA0Yy4zOS0uMzkuMzktMS4wMiAwLTEuNDFsLTIuMzQtMi4zNGEuOTk1OS45OTU5IDAgMDAtMS40MSAwbC0xLjgzIDEuODMgMy43NSAzLjc1IDEuODMtMS44M3pcIixcclxuICAgIERlbGV0ZTpcIk02IDE5YzAgMS4xLjkgMiAyIDJoOGMxLjEgMCAyLS45IDItMlY3SDZ2MTJ6TTE5IDRoLTMuNWwtMS0xaC01bC0xIDFINXYyaDE0VjR6XCIsXHJcbiAgICBEZWxldGVGb3JldmVyOlwiTTYgMTljMCAxLjEuOSAyIDIgMmg4YzEuMSAwIDItLjkgMi0yVjdINnYxMnptMi40Ni03LjEybDEuNDEtMS40MUwxMiAxMi41OWwyLjEyLTIuMTIgMS40MSAxLjQxTDEzLjQxIDE0bDIuMTIgMi4xMi0xLjQxIDEuNDFMMTIgMTUuNDFsLTIuMTIgMi4xMi0xLjQxLTEuNDFMMTAuNTkgMTRsLTIuMTMtMi4xMnpNMTUuNSA0bC0xLTFoLTVsLTEgMUg1djJoMTRWNHpcIixcclxuICAgIERlbGV0ZU91dGxpbmU6XCJNNiAxOWMwIDEuMS45IDIgMiAyaDhjMS4xIDAgMi0uOSAyLTJWN0g2djEyek04IDloOHYxMEg4Vjl6bTcuNS01bC0xLTFoLTVsLTEgMUg1djJoMTRWNHpcIixcclxuICAgIERlc2NyaXB0aW9uOiBcIk0xNCAySDZjLTEuMSAwLTEuOTkuOS0xLjk5IDJMNCAyMGMwIDEuMS44OSAyIDEuOTkgMkgxOGMxLjEgMCAyLS45IDItMlY4bC02LTZ6bTIgMTZIOHYtMmg4djJ6bTAtNEg4di0yaDh2MnptLTMtNVYzLjVMMTguNSA5SDEzelwiLFxyXG4gICAgRW1vamlPYmplY3RzOiBcIk0xMiAzYy0uNDYgMC0uOTMuMDQtMS40LjE0LTIuNzYuNTMtNC45NiAyLjc2LTUuNDggNS41Mi0uNDggMi42MS40OCA1LjAxIDIuMjIgNi41Ni40My4zOC42Ni45MS42NiAxLjQ3VjE5YzAgMS4xLjkgMiAyIDJoLjI4Yy4zNS42Ljk4IDEgMS43MiAxczEuMzgtLjQgMS43Mi0xSDE0YzEuMSAwIDItLjkgMi0ydi0yLjMxYzAtLjU1LjIyLTEuMDkuNjQtMS40NkMxOC4wOSAxMy45NSAxOSAxMi4wOCAxOSAxMGMwLTMuODctMy4xMy03LTctN3ptMiAxNmgtNHYtMWg0djF6bTAtMmgtNHYtMWg0djF6bS0xLjUtNS41OVYxNGgtMXYtMi41OUw5LjY3IDkuNTlsLjcxLS43MUwxMiAxMC41bDEuNjItMS42Mi43MS43MS0xLjgzIDEuODJ6XCIsXHJcbiAgICBFeGl0VG9BcHA6IFwiTTEwLjA5IDE1LjU5TDExLjUgMTdsNS01LTUtNS0xLjQxIDEuNDFMMTIuNjcgMTFIM3YyaDkuNjdsLTIuNTggMi41OXpNMTkgM0g1Yy0xLjExIDAtMiAuOS0yIDJ2NGgyVjVoMTR2MTRINXYtNEgzdjRjMCAxLjEuODkgMiAyIDJoMTRjMS4xIDAgMi0uOSAyLTJWNWMwLTEuMS0uOS0yLTItMnpcIixcclxuICAgIEV4cGFuZExlc3M6IFwiTTEyIDhsLTYgNiAxLjQxIDEuNDFMMTIgMTAuODNsNC41OSA0LjU4TDE4IDE0elwiLFxyXG4gICAgRXhwYW5kTW9yZTogXCJNMTYuNTkgOC41OUwxMiAxMy4xNyA3LjQxIDguNTkgNiAxMGw2IDYgNi02elwiLFxyXG4gICAgRm9ybWF0TGluZVNwYWNpbmc6IFwiTTYgN2gyLjVMNSAzLjUgMS41IDdINHYxMEgxLjVMNSAyMC41IDguNSAxN0g2Vjd6bTQtMnYyaDEyVjVIMTB6bTAgMTRoMTJ2LTJIMTB2MnptMC02aDEydi0ySDEwdjJ6XCIsXHJcbiAgICBGb3J3YXJkOiBcIk0xMiA4VjRsOCA4LTggOHYtNEg0Vjh6XCIsXHJcbiAgICBGb3J3YXJkT3V0bGluZWQ6IFwiTTE0IDguODNMMTcuMTcgMTIgMTQgMTUuMTdWMTRINnYtNGg4VjguODNNMTIgNHY0SDR2OGg4djRsOC04LTgtOHpcIixcclxuICAgIEluZm86IFwiTTEyIDJDNi40OCAyIDIgNi40OCAyIDEyczQuNDggMTAgMTAgMTAgMTAtNC40OCAxMC0xMFMxNy41MiAyIDEyIDJ6bTEgMTVoLTJ2LTZoMnY2em0wLThoLTJWN2gydjJ6XCIsXHJcbiAgICBLZXlib2FyZEFycm93VXA6IFwiTTcuNDEgMTUuNDFMMTIgMTAuODNsNC41OSA0LjU4TDE4IDE0bC02LTYtNiA2elwiLFxyXG4gICAgS2V5Ym9hcmRBcnJvd0Rvd246IFwiTTcuNDEgOC41OUwxMiAxMy4xN2w0LjU5LTQuNThMMTggMTBsLTYgNi02LTYgMS40MS0xLjQxelwiLFxyXG4gICAgTGFiZWw6IFwiTTE3LjYzIDUuODRDMTcuMjcgNS4zMyAxNi42NyA1IDE2IDVMNSA1LjAxQzMuOSA1LjAxIDMgNS45IDMgN3YxMGMwIDEuMS45IDEuOTkgMiAxLjk5TDE2IDE5Yy42NyAwIDEuMjctLjMzIDEuNjMtLjg0TDIyIDEybC00LjM3LTYuMTZ6XCIsXHJcbiAgICBMb2NhbEF0bTogXCJNMTEgMTdoMnYtMWgxYy41NSAwIDEtLjQ1IDEtMXYtM2MwLS41NS0uNDUtMS0xLTFoLTN2LTFoNFY4aC0yVjdoLTJ2MWgtMWMtLjU1IDAtMSAuNDUtMSAxdjNjMCAuNTUuNDUgMSAxIDFoM3YxSDl2MmgydjF6bTktMTNINGMtMS4xMSAwLTEuOTkuODktMS45OSAyTDIgMThjMCAxLjExLjg5IDIgMiAyaDE2YzEuMTEgMCAyLS44OSAyLTJWNmMwLTEuMTEtLjg5LTItMi0yem0wIDE0SDRWNmgxNnYxMnpcIixcclxuICAgIExvY2F0aW9uOiBcIk0xMiAyQzguMTMgMiA1IDUuMTMgNSA5YzAgNS4yNSA3IDEzIDcgMTNzNy03Ljc1IDctMTNjMC0zLjg3LTMuMTMtNy03LTdtMCA5LjVjLTEuMzggMC0yLjUtMS4xMi0yLjUtMi41czEuMTItMi41IDIuNS0yLjUgMi41IDEuMTIgMi41IDIuNS0xLjEyIDIuNS0yLjUgMi41XCIsXHJcbiAgICBNZW51OiBcIk0zIDE4aDE4di0ySDN2MnptMC01aDE4di0ySDN2MnptMC03djJoMThWNkgzelwiLFxyXG4gICAgTmF2aWdhdGlvbjogXCJNMTIgMkw0LjUgMjAuMjlsLjcxLjcxTDEyIDE4bDYuNzkgMyAuNzEtLjcxelwiLFxyXG4gICAgTmF2aWdhdGlvbkRvd246IFwiTTEyIDIyTDQuNSAzLjcxbC43MSAtLjcxTDEyIDZsNi43OSAtMyAuNzEgLjcxelwiLFxyXG4gICAgUmVtb3ZlU2hvcHBpbmdDYXJ0OiBcIk0yMi43MyAyMi43M0wyLjc3IDIuNzcgMiAybC0uNzMtLjczTDAgMi41NGw0LjM5IDQuMzkgMi4yMSA0LjY2LTEuMzUgMi40NWMtLjE2LjI4LS4yNS42MS0uMjUuOTYgMCAxLjEuOSAyIDIgMmg3LjQ2bDEuMzggMS4zOGMtLjUuMzYtLjgzLjk1LS44MyAxLjYyIDAgMS4xLjg5IDIgMS45OSAyIC42NyAwIDEuMjYtLjMzIDEuNjItLjg0TDIxLjQ2IDI0bDEuMjctMS4yN3pNNy40MiAxNWMtLjE0IDAtLjI1LS4xMS0uMjUtLjI1bC4wMy0uMTIuOS0xLjYzaDIuMzZsMiAySDcuNDJ6bTguMTMtMmMuNzUgMCAxLjQxLS40MSAxLjc1LTEuMDNsMy41OC02LjQ5Yy4wOC0uMTQuMTItLjMxLjEyLS40OCAwLS41NS0uNDUtMS0xLTFINi41NGw5LjAxIDl6TTcgMThjLTEuMSAwLTEuOTkuOS0xLjk5IDJTNS45IDIyIDcgMjJzMi0uOSAyLTItLjktMi0yLTJ6XCIsXHJcbiAgICBTYXZlOlwiTTE3IDNINWMtMS4xMSAwLTIgLjktMiAydjE0YzAgMS4xLjg5IDIgMiAyaDE0YzEuMSAwIDItLjkgMi0yVjdsLTQtNHptLTUgMTZjLTEuNjYgMC0zLTEuMzQtMy0zczEuMzQtMyAzLTMgMyAxLjM0IDMgMy0xLjM0IDMtMyAzem0zLTEwSDVWNWgxMHY0elwiLFxyXG4gICAgU2VhcmNoOiBcIk0xNS41IDE0aC0uNzlsLS4yOC0uMjdDMTUuNDEgMTIuNTkgMTYgMTEuMTEgMTYgOS41IDE2IDUuOTEgMTMuMDkgMyA5LjUgM1MzIDUuOTEgMyA5LjUgNS45MSAxNiA5LjUgMTZjMS42MSAwIDMuMDktLjU5IDQuMjMtMS41N2wuMjcuMjh2Ljc5bDUgNC45OUwyMC40OSAxOWwtNC45OS01em0tNiAwQzcuMDEgMTQgNSAxMS45OSA1IDkuNVM3LjAxIDUgOS41IDUgMTQgNy4wMSAxNCA5LjUgMTEuOTkgMTQgOS41IDE0elwiLFxyXG4gICAgU2VuZDogXCJNMi4wMSAyMUwyMyAxMiAyLjAxIDMgMiAxMGwxNSAyLTE1IDJ6XCIsXHJcbiAgICBTZXR0aW5nczogXCJNMTUuOTUgMTAuNzhjLjAzLS4yNS4wNS0uNTEuMDUtLjc4cy0uMDItLjUzLS4wNi0uNzhsMS42OS0xLjMyYy4xNS0uMTIuMTktLjM0LjEtLjUxbC0xLjYtMi43N2MtLjEtLjE4LS4zMS0uMjQtLjQ5LS4xOGwtMS45OS44Yy0uNDItLjMyLS44Ni0uNTgtMS4zNS0uNzhMMTIgMi4zNGMtLjAzLS4yLS4yLS4zNC0uNC0uMzRIOC40Yy0uMiAwLS4zNi4xNC0uMzkuMzRsLS4zIDIuMTJjLS40OS4yLS45NC40Ny0xLjM1Ljc4bC0xLjk5LS44Yy0uMTgtLjA3LS4zOSAwLS40OS4xOGwtMS42IDIuNzdjLS4xLjE4LS4wNi4zOS4xLjUxbDEuNjkgMS4zMmMtLjA0LjI1LS4wNy41Mi0uMDcuNzhzLjAyLjUzLjA2Ljc4TDIuMzcgMTIuMWMtLjE1LjEyLS4xOS4zNC0uMS41MWwxLjYgMi43N2MuMS4xOC4zMS4yNC40OS4xOGwxLjk5LS44Yy40Mi4zMi44Ni41OCAxLjM1Ljc4bC4zIDIuMTJjLjA0LjIuMi4zNC40LjM0aDMuMmMuMiAwIC4zNy0uMTQuMzktLjM0bC4zLTIuMTJjLjQ5LS4yLjk0LS40NyAxLjM1LS43OGwxLjk5LjhjLjE4LjA3LjM5IDAgLjQ5LS4xOGwxLjYtMi43N2MuMS0uMTguMDYtLjM5LS4xLS41MWwtMS42Ny0xLjMyek0xMCAxM2MtMS42NSAwLTMtMS4zNS0zLTNzMS4zNS0zIDMtMyAzIDEuMzUgMyAzLTEuMzUgMy0zIDN6XCIsXHJcbiAgICBTeW5jQWx0OlwiTTIyIDhsLTQtNHYzSDN2MmgxNXYzbDQtNHpNMiAxNmw0IDR2LTNoMTV2LTJINnYtM2wtNCA0elwiLFxyXG4gICAgVHJlbmRpbmdGbGF0OlwiTTIyIDEybC00LTR2M0gzdjJoMTV2M3pcIixcclxuICAgIFdhcm5pbmc6IFwiTTEgMjFoMjJMMTIgMiAxIDIxem0xMi0zaC0ydi0yaDJ2MnptMC00aC0ydi00aDJ2NHpcIixcclxufVxyXG5cclxuZXhwb3J0IGNvbnN0IElDT04gPSBsaWtlQXIobWF0ZXJpYWxJb0ljb25zU3ZnUGF0aCkubWFwKHN2Z1RleHQ9PiAoKSA9PlxyXG4gICAgPFN2Z0ljb24+PHBhdGggZD17c3ZnVGV4dH0vPjwvU3ZnSWNvbj5cclxuKS5wbGFpbigpO1xyXG5cclxuZXhwb3J0IHR5cGUgU3R5bGVzID0gUmVhY3QuQ1NTUHJvcGVydGllcztcclxuXHJcbmV4cG9ydCB0eXBlIE9uVXBkYXRlPFQ+ID0gKGRhdGE6VCk9PnZvaWRcclxuXHJcbmV4cG9ydCB0eXBlIElucHV0VHlwZXMgPSAnZGF0ZSd8J251bWJlcid8J3RlbCd8J3RleHQnO1xyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIGFkYXB0YXJUaXBvVmFyQ2FzaWxsZXJvKGNhc2lsbGVyb0RhdGFUeXBlOlRpcG9WYXJpYWJsZXN8J29wY2lvbmVzJ3wnc2lfbm8nKTpJbnB1dFR5cGVze1xyXG4gICAgY29uc3QgYWRhcHRlcjp7W2tleSBpbiBUaXBvVmFyaWFibGVzfCdvcGNpb25lcyd8J3NpX25vJ106SW5wdXRUeXBlc30gPSB7XHJcbiAgICAgICAgJ29wY2lvbmVzJzonbnVtYmVyJyxcclxuICAgICAgICAnc2lfbm8nOiAnbnVtYmVyJyxcclxuICAgICAgICAnbnVtZXJvJzogJ251bWJlcicsXHJcbiAgICAgICAgJ2hvcmEnOiAndGVsJyxcclxuICAgICAgICAnaG9yYXMnOiAnbnVtYmVyJyxcclxuICAgICAgICAndGV4dG8nOiAndGV4dCcsXHJcbiAgICAgICAgJ2ZlY2hhJzogJ3RleHQnXHJcbiAgICB9XHJcbiAgICByZXR1cm4gYWRhcHRlcltjYXNpbGxlcm9EYXRhVHlwZV1cclxufVxyXG5cclxuZXhwb3J0IGNvbnN0IHNjcm9sbFRvVG9wID0gKCkgPT4ge1xyXG4gICAgd2luZG93LnNjcm9sbCh7YmVoYXZpb3I6J3Ntb290aCcsIHRvcDowLCBsZWZ0OjB9KVxyXG59O1xyXG5cclxuZXhwb3J0IGNvbnN0IHNjcm9sbFRvQm90dG9tID0gKCkgPT4ge1xyXG4gICAgd2luZG93LnNjcm9sbCh7YmVoYXZpb3I6J3Ntb290aCcsIHRvcDpkb2N1bWVudC5ib2R5LmNsaWVudEhlaWdodC13aW5kb3cuaW5uZXJIZWlnaHQsIGxlZnQ6MH0pXHJcbn07XHJcblxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIFNjcm9sbFRvcChwcm9wczogYW55KSB7XHJcbiAgICBjb25zdCB7IGNoaWxkcmVuIH0gPSBwcm9wcztcclxuICAgIC8vY29uc3QgY2xhc3NlcyA9IHVzZVN0eWxlc1Njcm9sbFRvcCgpO1xyXG4gICAgLy8gTm90ZSB0aGF0IHlvdSBub3JtYWxseSB3b24ndCBuZWVkIHRvIHNldCB0aGUgd2luZG93IHJlZiBhcyB1c2VTY3JvbGxUcmlnZ2VyXHJcbiAgICAvLyB3aWxsIGRlZmF1bHQgdG8gd2luZG93LlxyXG4gICAgLy8gVGhpcyBpcyBvbmx5IGJlaW5nIHNldCBoZXJlIGJlY2F1c2UgdGhlIGRlbW8gaXMgaW4gYW4gaWZyYW1lLlxyXG4gICAgY29uc3QgdHJpZ2dlciA9IHVzZVNjcm9sbFRyaWdnZXIoe1xyXG4gICAgICAgIGRpc2FibGVIeXN0ZXJlc2lzOiB0cnVlLFxyXG4gICAgICAgIHRocmVzaG9sZDogMTAwLFxyXG4gICAgfSk7XHJcbiAgICByZXR1cm4gKFxyXG4gICAgICAgIDxab29tIGluPXt0cmlnZ2VyfT5cclxuICAgICAgICAgICAgPGRpdiBvbkNsaWNrPXtzY3JvbGxUb1RvcH0gcm9sZT1cInByZXNlbnRhdGlvblwiIC8qY2xhc3NOYW1lPXtjbGFzc2VzLnJvb3R9Ki8+XHJcbiAgICAgICAgICAgICAgICB7Y2hpbGRyZW59XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvWm9vbT5cclxuICAgICk7XHJcbn1cclxuXHJcbmV4cG9ydCB0eXBlIEZvY3VzT3B0cz17XHJcbiAgICBtb3ZlVG9FbGVtZW50OiBib29sZWFuXHJcbiAgICBtb3ZlQmVoYXZpb3I/OiAnYXV0bycgfCAnc21vb3RoJ1xyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gZm9jdXNUb0lkKGlkOnN0cmluZywgb3B0czpGb2N1c09wdHMsIGNiPzooZTpIVE1MRWxlbWVudCk9PnZvaWQpe1xyXG4gICAgdmFyIGVsZW1lbnQ9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoaWQpO1xyXG4gICAgdmFyIHBhZHJlPWVsZW1lbnQ7XHJcbiAgICB3aGlsZShwYWRyZSAmJiBwYWRyZS5jbGFzc05hbWUhPSdwcmVndW50YScgJiYgcGFkcmUhPWRvY3VtZW50LmJvZHkpIHBhZHJlID0gcGFkcmUucGFyZW50RWxlbWVudDtcclxuICAgIGlmKHBhZHJlICYmIHBhZHJlLmNsYXNzTmFtZT09J3ByZWd1bnRhJykgZWxlbWVudD1wYWRyZTtcclxuICAgIGlmKGVsZW1lbnQpe1xyXG4gICAgICAgIGlmKGNiKXtcclxuICAgICAgICAgICAgY2IoZWxlbWVudCk7XHJcbiAgICAgICAgfWVsc2V7XHJcbiAgICAgICAgICAgIGVsZW1lbnQuZm9jdXMoKTtcclxuICAgICAgICAgICAgaWYob3B0cy5tb3ZlVG9FbGVtZW50KXtcclxuICAgICAgICAgICAgICAgIGVsZW1lbnQuc2Nyb2xsSW50b1ZpZXcoKTtcclxuICAgICAgICAgICAgICAgIHdpbmRvdy5zY3JvbGwoe2JlaGF2aW9yOm9wdHMubW92ZUJlaGF2aW9yfHwnYXV0bycsIHRvcDp3aW5kb3cuc2Nyb2xsWS0xMDAsIGxlZnQ6MH0pXHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9XHJcbn1cclxuXHJcbmV4cG9ydCB0eXBlIElEaXNwYXRjaGVycyA9IHtSRVNFVF9PUENJT05FUzpGdW5jdGlvbn07XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gUmVzZXRlckZvcm0ocHJvcHM6e29uVHJ5QWdhaW46KCk9PnZvaWQsIGRpc3BhdGNoZXJzOklEaXNwYXRjaGVycywgbWVuc2FqZTpzdHJpbmd9KXtcclxuICAgIGNvbnN0IGRpc3BhdGNoID0gdXNlRGlzcGF0Y2goKTtcclxuICAgIHJldHVybiA8PlxyXG4gICAgICAgIDxCdXR0b24gdmFyaWFudD1cIm91dGxpbmVkXCJcclxuICAgICAgICAgICAgb25DbGljaz17KCk9PntcclxuICAgICAgICAgICAgICAgIGRpc3BhdGNoKHByb3BzLmRpc3BhdGNoZXJzLlJFU0VUX09QQ0lPTkVTKHt9KSk7XHJcbiAgICAgICAgICAgICAgICBwcm9wcy5vblRyeUFnYWluKCk7XHJcbiAgICAgICAgICAgIH19XHJcbiAgICAgICAgPntwcm9wcy5tZW5zYWplfTwvQnV0dG9uPlxyXG4gICAgPC8+O1xyXG59XHJcblxyXG5leHBvcnQgY2xhc3MgUmVuZGVyQW5kQ2FwdHVyZUVycm9yIGV4dGVuZHMgUmVhY3QuQ29tcG9uZW50PFxyXG4gICAge2Rpc3BhdGNoZXJzOklEaXNwYXRjaGVycywgbWVuc2FqZVJldG9ybm86c3RyaW5nfSxcclxuICAgIHtoYXNFcnJvcjpib29sZWFuLCBlcnJvcjpFcnJvcnx7fSwgaW5mbz86YW55fVxyXG4+e1xyXG4gICAgY29uc3RydWN0b3IocHJvcHM6YW55KSB7XHJcbiAgICAgICAgc3VwZXIocHJvcHMpO1xyXG4gICAgICAgIHRoaXMuc3RhdGUgPSB7IGhhc0Vycm9yOiBmYWxzZSwgZXJyb3I6e319O1xyXG4gICAgfVxyXG4gICAgY29tcG9uZW50RGlkQ2F0Y2goZXJyb3I6RXJyb3IsIGluZm86YW55KXtcclxuICAgICAgICB0aGlzLnNldFN0YXRlKHsgaGFzRXJyb3I6IHRydWUgLCBlcnJvciwgaW5mbyB9KTtcclxuICAgIH1cclxuICAgIHJlbmRlcigpe1xyXG4gICAgICAgIGlmKHRoaXMuc3RhdGUuaGFzRXJyb3Ipe1xyXG4gICAgICAgICAgICByZXR1cm4gPD5cclxuICAgICAgICAgICAgICAgIDxUeXBvZ3JhcGh5Pkh1Ym8gdW4gcHJvYmxlbWEgZW4gbGEgcHJvZ3JhbWFjacOzbiBkZSBsYSBwYW50YWxsYS48L1R5cG9ncmFwaHk+XHJcbiAgICAgICAgICAgICAgICA8UmVzZXRlckZvcm0gZGlzcGF0Y2hlcnM9e3RoaXMucHJvcHMuZGlzcGF0Y2hlcnN9IG1lbnNhamU9e3RoaXMucHJvcHMubWVuc2FqZVJldG9ybm99IG9uVHJ5QWdhaW49eygpPT5cclxuICAgICAgICAgICAgICAgICAgICB0aGlzLnNldFN0YXRlKHsgaGFzRXJyb3I6IGZhbHNlLCBlcnJvcjp7fX0pXHJcbiAgICAgICAgICAgICAgICB9Lz5cclxuICAgICAgICAgICAgICAgIDxCdXR0b24gdmFyaWFudD1cIm91dGxpbmVkXCIgY29sb3I9XCJzZWNvbmRhcnlcIlxyXG4gICAgICAgICAgICAgICAgICAgIG9uQ2xpY2s9eygpPT57XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGdvdG9TaW5jcm9uaXphcigpO1xyXG4gICAgICAgICAgICAgICAgICAgIH19XHJcbiAgICAgICAgICAgICAgICA+aXIgYSBsYSBwYW50YWxsYSBkZSBzaW5jcm9uaXphY2nDs248L0J1dHRvbj5cclxuICAgICAgICAgICAgICAgIDxUeXBvZ3JhcGh5PkVycm9yIGRldGVjdGFkbzo8L1R5cG9ncmFwaHk+XHJcbiAgICAgICAgICAgICAgICA8VHlwb2dyYXBoeT57dGhpcy5zdGF0ZS5lcnJvciBpbnN0YW5jZW9mIEVycm9yID8gdGhpcy5zdGF0ZS5lcnJvci5tZXNzYWdlIDogJ3Vua25vd24gZXJyb3InfTwvVHlwb2dyYXBoeT5cclxuICAgICAgICAgICAgICAgIDxUeXBvZ3JhcGh5PntKU09OLnN0cmluZ2lmeSh0aGlzLnN0YXRlLmluZm8pfTwvVHlwb2dyYXBoeT5cclxuICAgICAgICAgICAgPC8+O1xyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gdGhpcy5wcm9wcy5jaGlsZHJlbjtcclxuICAgIH1cclxufVxyXG5cclxuY29uc3QgdGhlbWUgPSBjcmVhdGVUaGVtZSh7XHJcbiAgb3ZlcnJpZGVzOiB7XHJcbiAgICBNdWlDc3NCYXNlbGluZToge1xyXG4gICAgICAnQGdsb2JhbCc6IHtcclxuICAgICAgICBodG1sOiB7XHJcbiAgICAgICAgICBXZWJraXRGb250U21vb3RoaW5nOiAnYXV0bycsXHJcbiAgICAgICAgfSxcclxuICAgICAgfSxcclxuICAgIH0sXHJcbiAgfSxcclxufSk7XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gdXNlT25saW5lU3RhdHVzKCkge1xyXG4gICAgY29uc3QgW29ubGluZSwgc2V0T25saW5lXSA9IHVzZVN0YXRlKHdpbmRvdy5uYXZpZ2F0b3Iub25MaW5lKTtcclxuXHJcbiAgICB1c2VFZmZlY3QoKCkgPT4ge1xyXG4gICAgICAgIGNvbnN0IGhhbmRsZXIgPSAoKSA9PiBzZXRPbmxpbmUod2luZG93Lm5hdmlnYXRvci5vbkxpbmUpO1xyXG4gICAgICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdvbmxpbmUnLCAgaGFuZGxlcik7XHJcbiAgICAgICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ29mZmxpbmUnLCBoYW5kbGVyKTtcclxuICAgICAgICByZXR1cm4gKCkgPT4ge1xyXG4gICAgICAgICAgICB3aW5kb3cucmVtb3ZlRXZlbnRMaXN0ZW5lcignb25saW5lJywgIGhhbmRsZXIpO1xyXG4gICAgICAgICAgICB3aW5kb3cucmVtb3ZlRXZlbnRMaXN0ZW5lcignb2ZmbGluZScsIGhhbmRsZXIpO1xyXG4gICAgICAgIH07XHJcbiAgICB9LCBbXSk7XHJcblxyXG4gICAgcmV0dXJuIG9ubGluZTtcclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIFJlbmRlclByaW5jaXBhbDxULFQyIGV4dGVuZHMgQWN0aW9uPihwcm9wczp7c3RvcmU6U3RvcmU8VCxUMj4sIGRpc3BhdGNoZXJzOklEaXNwYXRjaGVycywgbWVuc2FqZVJldG9ybm86c3RyaW5nLCBjaGlsZHJlbjpSZWFjdC5SZWFjdE5vZGV9KXtcclxuICAgIHJldHVybiA8UmVhY3QuU3RyaWN0TW9kZT5cclxuICAgICAgICA8UHJvdmlkZXIgc3RvcmU9e3Byb3BzLnN0b3JlfT5cclxuICAgICAgICAgICAgPFRoZW1lUHJvdmlkZXIgdGhlbWU9e3RoZW1lfT5cclxuICAgICAgICAgICAgICAgIDxSZW5kZXJBbmRDYXB0dXJlRXJyb3IgZGlzcGF0Y2hlcnM9e3Byb3BzLmRpc3BhdGNoZXJzfSBtZW5zYWplUmV0b3Jubz17cHJvcHMubWVuc2FqZVJldG9ybm99PlxyXG4gICAgICAgICAgICAgICAgICAgIDxDc3NCYXNlbGluZSAvPlxyXG4gICAgICAgICAgICAgICAgICAgIHtwcm9wcy5jaGlsZHJlbn1cclxuICAgICAgICAgICAgICAgIDwvUmVuZGVyQW5kQ2FwdHVyZUVycm9yPlxyXG4gICAgICAgICAgICA8L1RoZW1lUHJvdmlkZXI+ICAgICAgICBcclxuICAgICAgICA8L1Byb3ZpZGVyPlxyXG4gICAgPC9SZWFjdC5TdHJpY3RNb2RlPlxyXG59XHJcblxyXG4iXX0=
@@ -200,6 +200,22 @@ const theme = createTheme({
200
200
  },
201
201
  });
202
202
 
203
+ export function useOnlineStatus() {
204
+ const [online, setOnline] = useState(window.navigator.onLine);
205
+
206
+ useEffect(() => {
207
+ const handler = () => setOnline(window.navigator.onLine);
208
+ window.addEventListener('online', handler);
209
+ window.addEventListener('offline', handler);
210
+ return () => {
211
+ window.removeEventListener('online', handler);
212
+ window.removeEventListener('offline', handler);
213
+ };
214
+ }, []);
215
+
216
+ return online;
217
+ }
218
+
203
219
  export function RenderPrincipal<T,T2 extends Action>(props:{store:Store<T,T2>, dispatchers:IDispatchers, mensajeRetorno:string, children:React.ReactNode}){
204
220
  return <React.StrictMode>
205
221
  <Provider store={props.store}>
@@ -106,8 +106,8 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
106
106
  else {
107
107
  startApp = () => __awaiter(this, void 0, void 0, function* () {
108
108
  try {
109
- const modoDmDefecto = yield my.ajax.modo_dm_defecto_obtener({});
110
- my.setLocalVar(bypass_formulario_1.MODO_DM_LOCALSTORAGE_KEY, my.getLocalVar(bypass_formulario_1.MODO_DM_LOCALSTORAGE_KEY) || modoDmDefecto);
109
+ const modoDmDefecto = my.getLocalVar(bypass_formulario_1.MODO_DM_LOCALSTORAGE_KEY) || (yield my.ajax.modo_dm_defecto_obtener({}));
110
+ my.setLocalVar(bypass_formulario_1.MODO_DM_LOCALSTORAGE_KEY, modoDmDefecto);
111
111
  }
112
112
  catch (err) {
113
113
  console.log('no se pudo traer el modo por defecto');
@@ -185,4 +185,4 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
185
185
  });
186
186
  }();
187
187
  });
188
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidW5sb2dnZWQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvdW5sb2dnZWQvdW5sb2dnZWQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7O0lBQUEsWUFBWSxDQUFDOzs7SUFDYiwyQ0FBaUM7SUFDakMsMkRBQTJGO0lBQzNGLHlEQUErRztJQUMvRywyREFBK0Q7SUFFL0QsTUFBTSxrQkFBa0IsR0FBRyxPQUFPLENBQUMsc0JBQXNCLENBQUMsQ0FBQztJQUUzRCxTQUFTLFVBQVUsQ0FBQyxFQUFVLEVBQUUsS0FBa0M7UUFDOUQsSUFBSSxRQUFRLEdBQUcsUUFBUSxDQUFDLGNBQWMsQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUMzQyxJQUFHLFFBQVEsSUFBRSxJQUFJLEVBQUMsQ0FBQztZQUNmLEtBQUssQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUNwQixDQUFDO0lBQ0wsQ0FBQztJQUVELFNBQVMsaUJBQWlCLENBQUMsRUFBUyxFQUFFLE9BQWU7UUFDakQsVUFBVSxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUEsRUFBRSxDQUFBLENBQUMsQ0FBQyxLQUFLLENBQUMsT0FBTyxHQUFDLE9BQU8sQ0FBQSxDQUFDLENBQUEsT0FBTyxDQUFBLENBQUMsQ0FBQSxNQUFNLENBQUMsQ0FBQztJQUM5RCxDQUFDO0lBQ0QsTUFBTSxNQUFNLEdBQUcsT0FBTyxDQUFDO0lBRXZCLElBQUksaUJBQWlCLEdBQUcsR0FBRSxFQUFFO1FBQ3hCLE9BQU8sQ0FBQyxZQUFZLENBQUMsSUFBSSxFQUFFLEVBQUUsRUFBRSxHQUFHLFFBQVEsQ0FBQyxNQUFNLEdBQUMsUUFBUSxDQUFDLFFBQVEsT0FBTyxNQUFNLEVBQUUsQ0FBQyxDQUFDO1FBQ3BGLFFBQVEsQ0FBQyxNQUFNLEVBQUUsQ0FBQTtJQUNyQixDQUFDLENBQUE7SUFFRCxNQUFNLENBQUMsZ0JBQWdCLENBQUMsTUFBTSxFQUFFOztZQUM1QixJQUFJLE1BQU0sR0FBRyxRQUFR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QUMsWUFBWSxDQUFDLE1BQU0sRUFBQyxRQUFRLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFBO1lBQy9ELENBQUM7WUFDRCxPQUFPLE1BQU0sQ0FBQztRQUNsQixDQUFDO0tBQUEsRUFBRSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XHJcbmltcG9ydCB7aHRtbH0gIGZyb20gJ2pzLXRvLWh0bWwnO1xyXG5pbXBvcnQgeyBkZXNwbGVnYXJGb3JtdWxhcmlvQWN0dWFsLCBkbVBhbnRhbGxhSW5pY2lhbFNpbkNhcmdhIH0gZnJvbSAnLi9yZW5kZXItZm9ybXVsYXJpbyc7XHJcbmltcG9ydCB7IGNhcmdhckVzdHJ1Y3R1cmEsIGNhcmdhckhvamFEZVJ1dGEsIEdMT1ZBUl9FU1RSVUNUVVJBLCBHTE9WQVJfREFUT1NCWVBBU1MgfSBmcm9tICcuL2FicmlyLWZvcm11bGFyaW8nO1xyXG5pbXBvcnQgeyBNT0RPX0RNX0xPQ0FMU1RPUkFHRV9LRVkgfSBmcm9tICcuL2J5cGFzcy1mb3JtdWxhcmlvJztcclxuaW1wb3J0IHsgTW9kb0RNIH0gZnJvbSAnLi90aXBvcyc7XHJcbmNvbnN0IFNlcnZpY2VXb3JrZXJBZG1pbiA9IHJlcXVpcmUoXCJzZXJ2aWNlLXdvcmtlci1hZG1pblwiKTtcclxuXHJcbmZ1bmN0aW9uIHNpRXhpc3RlSWQoaWQ6IHN0cmluZywgaGFjZXI6IChhcmcwOiBIVE1MRWxlbWVudCkgPT4gdm9pZCl7XHJcbiAgICB2YXIgZWxlbWVudG8gPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChpZCk7XHJcbiAgICBpZihlbGVtZW50byE9bnVsbCl7XHJcbiAgICAgICAgaGFjZXIoZWxlbWVudG8pO1xyXG4gICAgfVxyXG59XHJcblxyXG5mdW5jdGlvbiBtb3N0cmFyRWxlbWVudG9JZChpZDpzdHJpbmcsIG1vc3RyYXI6Ym9vbGVhbil7XHJcbiAgICBzaUV4aXN0ZUlkKGlkLCBlPT5lLnN0eWxlLmRpc3BsYXk9bW9zdHJhcj8nYmxvY2snOidub25lJyk7XHJcbn1cclxuY29uc3QgVVJMX0RNID0gJ2NhbXBvJztcclxuXHJcbnZhciByZWxvYWRXaXRob3V0SGFzaCA9ICgpPT57XHJcbiAgICBoaXN0b3J5LnJlcGxhY2VTdGF0ZShudWxsLCAnJywgYCR7bG9jYXRpb24ub3JpZ2luK2xvY2F0aW9uLnBhdGhuYW1lfS8uLi8ke1VSTF9ETX1gKTtcclxuICAgIGxvY2F0aW9uLnJlbG9hZCgpXHJcbn1cclxuXHJcbndpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdsb2FkJywgYXN5bmMgZnVuY3Rpb24oKXtcclxuICAgIHZhciBsYXlvdXQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndG90YWwtbGF5b3V0JykhO1xyXG4gICAgaWYoIWxheW91dCl7XHJcbiAgICAgICAgY29uc29sZS5sb2coJ25vIGVuY3VlbnRybyBlbCBESVYudG90YWwtbGF5b3V0JylcclxuICAgICAgICBhd2FpdCBteU93bi5yZWFkeTtcclxuICAgICAgICBsYXlvdXQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndG90YWwtbGF5b3V0JykhO1xyXG4gICAgfVxyXG4gICAgYXdhaXQgbXlPd24ucmVhZHk7XHJcbiAgICBpZihsb2NhdGlvbi5wYXRobmFtZS5lbmRzV2l0aCgnL3NhbHZhcicpKXtcclxuICAgICAgICB0cnl7XHJcbiAgICAgICAgICAgIGZvciAobGV0IHggaW4gbG9jYWxTdG9yYWdlKXtcclxuICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKGxvY2FsU3RvcmFnZVt4XSk7XHJcbiAgICAgICAgICAgICAgICBhd2FpdCBteU93bi5hamF4LmRtX3Jlc2NhdGFyKHtsb2NhbFN0b3JhZ2VJdGVtOmxvY2FsU3RvcmFnZVt4XSwgbG9jYWxTdG9yYWdlSXRlbUtleTp4fSlcclxuICAgICAgICAgICAgICAgIGxheW91dC5hcHBlbmQoXHJcbiAgICAgICAgICAgICAgICAgICAgaHRtbC5wKGBpdGVtIFwiJHt4fVwiIGRlIGxvY2FsU3RvZ2FnZSBndWFyZGFkby5gKS5jcmVhdGUoKVxyXG4gICAgICAgICAgICAgICAgKVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGxheW91dC5hcHBlbmQoXHJcbiAgICAgICAgICAgICAgICBodG1sLnAoYHRvZG9zIGxvcyBpdGVtcyBmdWVyb24gc2FsdmFkb3MuYCkuY3JlYXRlKClcclxuICAgICAgICAgICAgKVxyXG4gICAgICAgIH1jYXRjaChlcnIpe1xyXG4gICAgICAgICAgICBsYXlvdXQuYXBwZW5kKFxyXG4gICAgICAgICAgICAgICAgaHRtbC5wKGBzZSBwcm9kdWpvIHVuIGVycm9yIGFsIHNhbHZhciBsb3MgZGF0b3MgZGVsIGRtLmApLmNyZWF0ZSgpXHJcbiAgICAgICAgICAgIClcclxuICAgICAgICB9XHJcbiAgICAgICAgdHJ5e1xyXG4gICAgICAgICAgICB2YXIgcmVnaXN0cmF0aW9ucyA9IGF3YWl0IG5hdmlnYXRvci5zZXJ2aWNlV29ya2VyLmdldFJlZ2lzdHJhdGlvbnMoKTtcclxuICAgICAgICAgICAgZm9yKGxldCByZWdpc3RyYXRpb24gb2YgcmVnaXN0cmF0aW9ucykge1xyXG4gICAgICAgICAgICAgICAgYXdhaXQgcmVnaXN0cmF0aW9uLnVucmVnaXN0ZXIoKVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGxheW91dC5hcHBlbmQoXHJcbiAgICAgICAgICAgICAgICBodG1sLnAoYHRvZG9zIGxvcyBzdyBmdWVyb24gZGVzaW5zdGFsYWRvcy5gKS5jcmVhdGUoKVxyXG4gICAgICAgICAgICApXHJcbiAgICAgICAgfWNhdGNoKGVycil7XHJcbiAgICAgICAgICAgIGxheW91dC5hcHBlbmQoXHJcbiAgICAgICAgICAgICAgICBodG1sLnAoYHNlIHByb2R1am8gdW4gZXJyb3IgYWwgZGVzaW5zdGFsYXIgbG9zIHN3LmApLmNyZWF0ZSgpXHJcbiAgICAgICAgICAgIClcclxuICAgICAgICB9XHJcbiAgICB9ZWxzZXtcclxuICAgICAgICBsYXlvdXQuaW5uZXJIVE1MPWBcclxuICAgICAgICAgICAgPHNwYW4gaWQ9XCJtaW5pLWNvbnNvbGVcIj48L3NwYW4+XHJcbiAgICAgICAgICAgIDxkaXYgaWQ9bnVldmEtdmVyc2lvbi1pbnN0YWxhZGEgc3R5bGU9XCJwb3NpdGlvbjpmaXhlZDsgdG9wOjVweDsgei1pbmRleDo5NTAwOyBkaXNwbGF5Om5vbmVcIj5cclxuICAgICAgICAgICAgICAgIDxzcGFuPkhheSB1bmEgbnVldmEgdmVyc2nDs24gaW5zdGFsYWRhIDwvc3Bhbj48YnV0dG9uIGlkPXJlZnJlc2Nhcj48c3BhbiBjbGFzcz1yb3Rhcj7ihrs8L3NwYW4+IHJlZnJlc2NhcjwvYnV0dG9uPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPGRpdiBpZD1pbnN0YWxhZG8gc3R5bGU9XCJkaXNwbGF5Om5vbmVcIj5cclxuICAgICAgICAgICAgICAgIDxkaXYgaWQ9bWFpbl9sYXlvdXQ+PC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8ZGl2IGlkPWluc3RhbGFuZG8gc3R5bGU9XCJkaXNwbGF5Om5vbmU7IG1hcmdpbi10b3A6MzBweFwiPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBpZD12b2x2ZXItZGUtaW5zdGFsYWNpb24gc3R5bGU9XCJwb3NpdGlvbjpmaXhlZDsgdG9wOjVweDsgei1pbmRleDo5NTAwO1wiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxzcGFuIGlkPXZvbHZlci1kZS1pbnN0YWxhY2lvbi1wb3ItcXVlPjwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIGlkPXZvbHZlci1kZS1pbnN0YWxhY2lvbi1jb21vPnZvbHZlcjwvYnV0dG9uPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGlkPWFyY2hpdm9zPlxyXG4gICAgICAgICAgICAgICAgICAgIDxoMj5wcm9ncmVzbyBpbnN0YWxhY2lvbjwvaDI+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgYDtcclxuICAgICAgICBpZihsb2NhdGlvbi5wYXRobmFtZS5lbmRzV2l0aChgLyR7VVJMX0RNfWApKXtcclxuICAgICAgICAgICAgdmFyIHN0YXJ0QXBwOigpPT5Qcm9taXNlPHZvaWQ+ID0gYXN5bmMgKCk9Pnt9O1xyXG4gICAgICAgICAgICB2YXIgZGF0b3NCeVBhc3MgPSBteS5nZXRMb2NhbFZhcihHTE9WQVJfREFUT1NCWVBBU1MpO1xyXG4gICAgICAgICAgICBpZihkYXRvc0J5UGFzcyl7XHJcbiAgICAgICAgICAgICAgICBzdGFydEFwcCA9IGFzeW5jICgpPT57XHJcbiAgICAgICAgICAgICAgICAgICAgdmFyIHZlcnNpb24gPSBhd2FpdCBzd2EuZ2V0U1coJ3ZlcnNpb24nKTtcclxuICAgICAgICAgICAgICAgICAgICBteU93bi5zZXRMb2NhbFZhcignYXBwLWNhY2hlLXZlcnNpb24nLCB2ZXJzaW9uKTtcclxuICAgICAgICAgICAgICAgICAgICAvL0B0cy1pZ25vcmUgZXhpc3RlIFxyXG4gICAgICAgICAgICAgICAgICAgIGNhcmdhckVzdHJ1Y3R1cmEobXkuZ2V0TG9jYWxWYXIoR0xPVkFSX0VTVFJVQ1RVUkEpKTtcclxuICAgICAgICAgICAgICAgICAgICBjYXJnYXJIb2phRGVSdXRhKHsgLi4uZGF0b3NCeVBhc3MsIG1vZG9BbG1hY2VuYW1pZW50bzogJ2xvY2FsJyB9KTtcclxuICAgICAgICAgICAgICAgICAgICBkZXNwbGVnYXJGb3JtdWxhcmlvQWN0dWFsKHttb2RvRGVtbzogZmFsc2V9KTtcclxuICAgICAgICAgICAgICAgICAgICBteS5tZW51TmFtZSA9IFVSTF9ETTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfWVsc2V7XHJcbiAgICAgICAgICAgICAgICBzdGFydEFwcCA9IGFzeW5jICgpPT57XHJcbiAgICAgICAgICAgICAgICAgICAgdHJ5e1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBtb2RvRG1EZWZlY3RvID0gYXdhaXQgbXkuYWpheC5tb2RvX2RtX2RlZmVjdG9fb2J0ZW5lcih7fSk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIG15LnNldExvY2FsVmFyKE1PRE9fRE1fTE9DQUxTVE9SQUdFX0tFWSwgbXkuZ2V0TG9jYWxWYXIoTU9ET19ETV9MT0NBTFNUT1JBR0VfS0VZKSB8fCBtb2RvRG1EZWZlY3RvKTtcclxuICAgICAgICAgICAgICAgICAgICB9Y2F0Y2goZXJyKXtcclxuICAgICAgICAgICAgICAgICAgICAgICAgY29uc29sZS5sb2coJ25vIHNlIHB1ZG8gdHJhZXIgZWwgbW9kbyBwb3IgZGVmZWN0bycpXHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIC8vQHRzLWlnbm9yZSBleGlzdGUgXHJcbiAgICAgICAgICAgICAgICAgICAgZG1QYW50YWxsYUluaWNpYWxTaW5DYXJnYSgpO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIHZhciByZWZyZXNjYXJTdGF0dXM9YXN5bmMgZnVuY3Rpb24oc2hvd1NjcmVlbiwgbmV3VmVyc2lvbkF2YWlhYmxlLCBpbnN0YWxsaW5nKXtcclxuICAgICAgICAgICAgICAgIHZhciBidXNjYW5kb0FjdHVhbGl6YWNpb24gPSBsb2NhdGlvbi5ocmVmLmVuZHNXaXRoKCcjaW5zdD0xJyk7XHJcbiAgICAgICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnbnVldmEtdmVyc2lvbi1pbnN0YWxhZGEnKSEuc3R5bGUuZGlzcGxheT1uZXdWZXJzaW9uQXZhaWFibGU9PSd5ZXMnPycnOidub25lJztcclxuICAgICAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd2b2x2ZXItZGUtaW5zdGFsYWNpb24nKSEuc3R5bGUuZGlzcGxheT1uZXdWZXJzaW9uQXZhaWFibGU9PSd5ZXMnPydub25lJzonJztcclxuICAgICAgICAgICAgICAgIGlmKHNob3dTY3JlZW49PSdhcHAnICYmICFidXNjYW5kb0FjdHVhbGl6YWNpb24pe1xyXG4gICAgICAgICAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdpbnN0YWxhZG8nKSEuc3R5bGUuZGlzcGxheT0nJztcclxuICAgICAgICAgICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnaW5zdGFsYW5kbycpIS5zdHlsZS5kaXNwbGF5PSdub25lJztcclxuICAgICAgICAgICAgICAgIH1lbHNle1xyXG4gICAgICAgICAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdpbnN0YWxhZG8nKSEuc3R5bGUuZGlzcGxheT0nbm9uZSc7XHJcbiAgICAgICAgICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2luc3RhbGFuZG8nKSEuc3R5bGUuZGlzcGxheT0nJztcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfTtcclxuICAgICAgICAgICAgdmFyIHN3YSA9IG5ldyBTZXJ2aWNlV29ya2VyQWRtaW4oKTtcclxuICAgICAgICAgICAgc3dhLmluc3RhbGxPckFjdGl2YXRlKHtcclxuICAgICAgICAgICAgICAgIG9uRWFjaEZpbGU6IGFzeW5jICh1cmwsIGVycm9yKT0+e1xyXG4gICAgICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKCdmaWxlOiAnLHVybCk7XHJcbiAgICAgICAgICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2FyY2hpdm9zJykhLmFwcGVuZChcclxuICAgICAgICAgICAgICAgICAgICAgICAgaHRtbC5kaXYodXJsKS5jcmVhdGUoKVxyXG4gICAgICAgICAgICAgICAgICAgIClcclxuICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAgICBvbkluZm9NZXNzYWdlOiAobSk9PmNvbnNvbGUubG9nKCdtZXNzYWdlOiAnLCBtKSxcclxuICAgICAgICAgICAgICAgIG9uRXJyb3I6IGFzeW5jIChlcnIsIGNvbnRleHQpPT57XHJcbiAgICAgICAgICAgICAgICAgICAgY29uc29sZS5sb2coJ2Vycm9yOiAnKyhjb250ZXh0P2AgZW4gKCR7Y29udGV4dH0pYDonJyksIGVycik7XHJcbiAgICAgICAgICAgICAgICAgICAgY29uc29sZS5sb2coY29udGV4dCwgZXJyLCAnZXJyb3ItY29uc29sZScpXHJcbiAgICAgICAgICAgICAgICAgICAgY29uc29sZS5sb2coJ2Vycm9yIGFsIGRlc2NhcmdhciBjYWNoZScsIGVyci5tZXNzYWdlKVxyXG4gICAgICAgICAgICAgICAgICAgIGlmKGNvbnRleHQhPSdpbml0aWFsaXppbmcgc2VydmljZS13b3JrZXInKXtcclxuICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGxheW91dCA9IGF3YWl0IGF3YWl0Rm9yQ2FjaGVMYXlvdXQ7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHZhciBjYWNoZVN0YXR1c0VsZW1lbnQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnY2FjaGUtc3RhdHVzJyk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmKCFjYWNoZVN0YXR1c0VsZW1lbnQpe1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY2FjaGVTdGF0dXNFbGVtZW50ID0gaHRtbC5wKHtpZDonY2FjaGUtc3RhdHVzJ30pLmNyZWF0ZSgpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF5b3V0Lmluc2VydEJlZm9yZShjYWNoZVN0YXR1c0VsZW1lbnQsIGxheW91dC5maXJzdENoaWxkKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICBjYWNoZVN0YXR1c0VsZW1lbnQuY2xhc3NMaXN0LnJlbW92ZSgnd2FybmluZycpXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNhY2hlU3RhdHVzRWxlbWVudC5jbGFzc0xpc3QucmVtb3ZlKCdhbGwtb2snKVxyXG4gICAgICAgICAgICAgICAgICAgICAgICBjYWNoZVN0YXR1c0VsZW1lbnQuY2xhc3NMaXN0LmFkZCgnZGFuZ2VyJylcclxuICAgICAgICAgICAgICAgICAgICAgICAgY2FjaGVTdGF0dXNFbGVtZW50LnRleHRDb250ZW50PSdlcnJvciBhbCBkZXNjYXJnYXIgbGEgYXBsaWNhY2nDs24uICcgKyBlcnIubWVzc2FnZTtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgICAgb25SZWFkeVRvU3RhcnQ6c3RhcnRBcHAsXHJcbiAgICAgICAgICAgICAgICBvblN0YXRlQ2hhbmdlOnJlZnJlc2NhclN0YXR1c1xyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICB9XHJcbiAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3JlZnJlc2NhcicpIS5hZGRFdmVudExpc3RlbmVyKCdjbGljaycsKCk9PntcclxuICAgICAgICAgICAgcmVsb2FkV2l0aG91dEhhc2goKVxyXG4gICAgICAgIH0pO1xyXG4gICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd2b2x2ZXItZGUtaW5zdGFsYWNpb24tY29tbycpIS5hZGRFdmVudExpc3RlbmVyKCdjbGljaycsKCk9PntcclxuICAgICAgICAgICAgcmVsb2FkV2l0aG91dEhhc2goKVxyXG4gICAgICAgIH0pO1xyXG4gICAgfVxyXG59KVxyXG5cclxuZXhwb3J0IHZhciBhd2FpdEZvckNhY2hlTGF5b3V0ID0gYXN5bmMgZnVuY3Rpb24gcHJlcGFyZUxheW91dEZvckNhY2hlKCl7XHJcbiAgICBhd2FpdCBuZXcgUHJvbWlzZShmdW5jdGlvbihyZXNvbHZlLCBfcmVqZWN0KXtcclxuICAgICAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcignbG9hZCcscmVzb2x2ZSk7XHJcbiAgICB9KTtcclxuICAgIHZhciBsYXlvdXQ9KGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdjYWNoZS1sYXlvdXQnKXx8ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2JykpO1xyXG4gICAgaWYoIWxheW91dC5pZCl7XHJcbiAgICAgICAgbGF5b3V0LmlkPSdjYWNoZS1sYXlvdXQnO1xyXG4gICAgICAgIGxheW91dC5hcHBlbmRDaGlsZChodG1sLmRpdih7aWQ6J2FwcC12ZXJzaW9ucyd9KS5jcmVhdGUoKSk7XHJcbiAgICAgICAgbGF5b3V0LmFwcGVuZENoaWxkKGh0bWwuZGl2KHtpZDonYXBwLXN0YXR1cyd9KS5jcmVhdGUoKSk7XHJcbiAgICAgICAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChsYXlvdXQuYXBwZW5kQ2hpbGQoaHRtbC5kaXYoe2lkOidjYWNoZS1sb2cnfSkuY3JlYXRlKCkpKTtcclxuICAgICAgICBkb2N1bWVudC5ib2R5Lmluc2VydEJlZm9yZShsYXlvdXQsZG9jdW1lbnQuYm9keS5maXJzdENoaWxkKVxyXG4gICAgfVxyXG4gICAgcmV0dXJuIGxheW91dDtcclxufSgpOyJdfQ==
188
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidW5sb2dnZWQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvdW5sb2dnZWQvdW5sb2dnZWQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7O0lBQUEsWUFBWSxDQUFDOzs7SUFDYiwyQ0FBaUM7SUFDakMsMkRBQTJGO0lBQzNGLHlEQUErRztJQUMvRywyREFBK0Q7SUFFL0QsTUFBTSxrQkFBa0IsR0FBRyxPQUFPLENBQUMsc0JBQXNCLENBQUMsQ0FBQztJQUUzRCxTQUFTLFVBQVUsQ0FBQyxFQUFVLEVBQUUsS0FBa0M7UUFDOUQsSUFBSSxRQUFRLEdBQUcsUUFBUSxDQUFDLGNBQWMsQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUMzQyxJQUFHLFFBQVEsSUFBRSxJQUFJLEVBQUMsQ0FBQztZQUNmLEtBQUssQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUNwQixDQUFDO0lBQ0wsQ0FBQztJQUVELFNBQVMsaUJBQWlCLENBQUMsRUFBUyxFQUFFLE9BQWU7UUFDakQsVUFBVSxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUEsRUFBRSxDQUFBLENBQUMsQ0FBQyxLQUFLLENBQUMsT0FBTyxHQUFDLE9BQU8sQ0FBQSxDQUFDLENBQUEsT0FBTyxDQUFBLENBQUMsQ0FBQSxNQUFNLENBQUMsQ0FBQztJQUM5RCxDQUFDO0lBQ0QsTUFBTSxNQUFNLEdBQUcsT0FBTyxDQUFDO0lBRXZCLElBQUksaUJBQWlCLEdBQUcsR0FBRSxFQUFFO1FBQ3hCLE9BQU8sQ0FBQyxZQUFZLENBQUMsSUFBSSxFQUFFLEVBQUUsRUFBRSxHQUFHLFFBQVEsQ0FBQyxNQUFNLEdBQUMsUUFBUSxDQUFDLFFBQVEsT0FBTyxNQUFNLEVBQUUsQ0FBQyxDQUFDO1FBQ3BGLFFBQVEsQ0FBQyxNQUFNLEVBQUUsQ0FBQTtJQUNyQixDQUFDLENBQUE7SUFFRCxNQUFNLENBQUMsZ0JBQWdCLENBQUMsTUFBTSxFQUFFOztZQUM1QixJQUFJLE1BQU0sR0FBRyxRQUFR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QUksQ0FBQyxZQUFZLENBQUMsTUFBTSxFQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUE7WUFDL0QsQ0FBQztZQUNELE9BQU8sTUFBTSxDQUFDO1FBQ2xCLENBQUM7S0FBQSxFQUFFLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcclxuaW1wb3J0IHtodG1sfSAgZnJvbSAnanMtdG8taHRtbCc7XHJcbmltcG9ydCB7IGRlc3BsZWdhckZvcm11bGFyaW9BY3R1YWwsIGRtUGFudGFsbGFJbmljaWFsU2luQ2FyZ2EgfSBmcm9tICcuL3JlbmRlci1mb3JtdWxhcmlvJztcclxuaW1wb3J0IHsgY2FyZ2FyRXN0cnVjdHVyYSwgY2FyZ2FySG9qYURlUnV0YSwgR0xPVkFSX0VTVFJVQ1RVUkEsIEdMT1ZBUl9EQVRPU0JZUEFTUyB9IGZyb20gJy4vYWJyaXItZm9ybXVsYXJpbyc7XHJcbmltcG9ydCB7IE1PRE9fRE1fTE9DQUxTVE9SQUdFX0tFWSB9IGZyb20gJy4vYnlwYXNzLWZvcm11bGFyaW8nO1xyXG5pbXBvcnQgeyBNb2RvRE0gfSBmcm9tICcuL3RpcG9zJztcclxuY29uc3QgU2VydmljZVdvcmtlckFkbWluID0gcmVxdWlyZShcInNlcnZpY2Utd29ya2VyLWFkbWluXCIpO1xyXG5cclxuZnVuY3Rpb24gc2lFeGlzdGVJZChpZDogc3RyaW5nLCBoYWNlcjogKGFyZzA6IEhUTUxFbGVtZW50KSA9PiB2b2lkKXtcclxuICAgIHZhciBlbGVtZW50byA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGlkKTtcclxuICAgIGlmKGVsZW1lbnRvIT1udWxsKXtcclxuICAgICAgICBoYWNlcihlbGVtZW50byk7XHJcbiAgICB9XHJcbn1cclxuXHJcbmZ1bmN0aW9uIG1vc3RyYXJFbGVtZW50b0lkKGlkOnN0cmluZywgbW9zdHJhcjpib29sZWFuKXtcclxuICAgIHNpRXhpc3RlSWQoaWQsIGU9PmUuc3R5bGUuZGlzcGxheT1tb3N0cmFyPydibG9jayc6J25vbmUnKTtcclxufVxyXG5jb25zdCBVUkxfRE0gPSAnY2FtcG8nO1xyXG5cclxudmFyIHJlbG9hZFdpdGhvdXRIYXNoID0gKCk9PntcclxuICAgIGhpc3RvcnkucmVwbGFjZVN0YXRlKG51bGwsICcnLCBgJHtsb2NhdGlvbi5vcmlnaW4rbG9jYXRpb24ucGF0aG5hbWV9Ly4uLyR7VVJMX0RNfWApO1xyXG4gICAgbG9jYXRpb24ucmVsb2FkKClcclxufVxyXG5cclxud2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ2xvYWQnLCBhc3luYyBmdW5jdGlvbigpe1xyXG4gICAgdmFyIGxheW91dCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0b3RhbC1sYXlvdXQnKSE7XHJcbiAgICBpZighbGF5b3V0KXtcclxuICAgICAgICBjb25zb2xlLmxvZygnbm8gZW5jdWVudHJvIGVsIERJVi50b3RhbC1sYXlvdXQnKVxyXG4gICAgICAgIGF3YWl0IG15T3duLnJlYWR5O1xyXG4gICAgICAgIGxheW91dCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0b3RhbC1sYXlvdXQnKSE7XHJcbiAgICB9XHJcbiAgICBhd2FpdCBteU93bi5yZWFkeTtcclxuICAgIGlmKGxvY2F0aW9uLnBhdGhuYW1lLmVuZHNXaXRoKCcvc2FsdmFyJykpe1xyXG4gICAgICAgIHRyeXtcclxuICAgICAgICAgICAgZm9yIChsZXQgeCBpbiBsb2NhbFN0b3JhZ2Upe1xyXG4gICAgICAgICAgICAgICAgY29uc29sZS5sb2cobG9jYWxTdG9yYWdlW3hdKTtcclxuICAgICAgICAgICAgICAgIGF3YWl0IG15T3duLmFqYXguZG1fcmVzY2F0YXIoe2xvY2FsU3RvcmFnZUl0ZW06bG9jYWxTdG9yYWdlW3hdLCBsb2NhbFN0b3JhZ2VJdGVtS2V5Onh9KVxyXG4gICAgICAgICAgICAgICAgbGF5b3V0LmFwcGVuZChcclxuICAgICAgICAgICAgICAgICAgICBodG1sLnAoYGl0ZW0gXCIke3h9XCIgZGUgbG9jYWxTdG9nYWdlIGd1YXJkYWRvLmApLmNyZWF0ZSgpXHJcbiAgICAgICAgICAgICAgICApXHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgbGF5b3V0LmFwcGVuZChcclxuICAgICAgICAgICAgICAgIGh0bWwucChgdG9kb3MgbG9zIGl0ZW1zIGZ1ZXJvbiBzYWx2YWRvcy5gKS5jcmVhdGUoKVxyXG4gICAgICAgICAgICApXHJcbiAgICAgICAgfWNhdGNoKGVycil7XHJcbiAgICAgICAgICAgIGxheW91dC5hcHBlbmQoXHJcbiAgICAgICAgICAgICAgICBodG1sLnAoYHNlIHByb2R1am8gdW4gZXJyb3IgYWwgc2FsdmFyIGxvcyBkYXRvcyBkZWwgZG0uYCkuY3JlYXRlKClcclxuICAgICAgICAgICAgKVxyXG4gICAgICAgIH1cclxuICAgICAgICB0cnl7XHJcbiAgICAgICAgICAgIHZhciByZWdpc3RyYXRpb25zID0gYXdhaXQgbmF2aWdhdG9yLnNlcnZpY2VXb3JrZXIuZ2V0UmVnaXN0cmF0aW9ucygpO1xyXG4gICAgICAgICAgICBmb3IobGV0IHJlZ2lzdHJhdGlvbiBvZiByZWdpc3RyYXRpb25zKSB7XHJcbiAgICAgICAgICAgICAgICBhd2FpdCByZWdpc3RyYXRpb24udW5yZWdpc3RlcigpXHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgbGF5b3V0LmFwcGVuZChcclxuICAgICAgICAgICAgICAgIGh0bWwucChgdG9kb3MgbG9zIHN3IGZ1ZXJvbiBkZXNpbnN0YWxhZG9zLmApLmNyZWF0ZSgpXHJcbiAgICAgICAgICAgIClcclxuICAgICAgICB9Y2F0Y2goZXJyKXtcclxuICAgICAgICAgICAgbGF5b3V0LmFwcGVuZChcclxuICAgICAgICAgICAgICAgIGh0bWwucChgc2UgcHJvZHVqbyB1biBlcnJvciBhbCBkZXNpbnN0YWxhciBsb3Mgc3cuYCkuY3JlYXRlKClcclxuICAgICAgICAgICAgKVxyXG4gICAgICAgIH1cclxuICAgIH1lbHNle1xyXG4gICAgICAgIGxheW91dC5pbm5lckhUTUw9YFxyXG4gICAgICAgICAgICA8c3BhbiBpZD1cIm1pbmktY29uc29sZVwiPjwvc3Bhbj5cclxuICAgICAgICAgICAgPGRpdiBpZD1udWV2YS12ZXJzaW9uLWluc3RhbGFkYSBzdHlsZT1cInBvc2l0aW9uOmZpeGVkOyB0b3A6NXB4OyB6LWluZGV4Ojk1MDA7IGRpc3BsYXk6bm9uZVwiPlxyXG4gICAgICAgICAgICAgICAgPHNwYW4+SGF5IHVuYSBudWV2YSB2ZXJzacOzbiBpbnN0YWxhZGEgPC9zcGFuPjxidXR0b24gaWQ9cmVmcmVzY2FyPjxzcGFuIGNsYXNzPXJvdGFyPuKGuzwvc3Bhbj4gcmVmcmVzY2FyPC9idXR0b24+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8ZGl2IGlkPWluc3RhbGFkbyBzdHlsZT1cImRpc3BsYXk6bm9uZVwiPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBpZD1tYWluX2xheW91dD48L2Rpdj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDxkaXYgaWQ9aW5zdGFsYW5kbyBzdHlsZT1cImRpc3BsYXk6bm9uZTsgbWFyZ2luLXRvcDozMHB4XCI+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGlkPXZvbHZlci1kZS1pbnN0YWxhY2lvbiBzdHlsZT1cInBvc2l0aW9uOmZpeGVkOyB0b3A6NXB4OyB6LWluZGV4Ojk1MDA7XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPHNwYW4gaWQ9dm9sdmVyLWRlLWluc3RhbGFjaW9uLXBvci1xdWU+PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgIDxidXR0b24gaWQ9dm9sdmVyLWRlLWluc3RhbGFjaW9uLWNvbW8+dm9sdmVyPC9idXR0b24+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDxkaXYgaWQ9YXJjaGl2b3M+XHJcbiAgICAgICAgICAgICAgICAgICAgPGgyPnByb2dyZXNvIGluc3RhbGFjaW9uPC9oMj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICBgO1xyXG4gICAgICAgIGlmKGxvY2F0aW9uLnBhdGhuYW1lLmVuZHNXaXRoKGAvJHtVUkxfRE19YCkpe1xyXG4gICAgICAgICAgICB2YXIgc3RhcnRBcHA6KCk9PlByb21pc2U8dm9pZD4gPSBhc3luYyAoKT0+e307XHJcbiAgICAgICAgICAgIHZhciBkYXRvc0J5UGFzcyA9IG15LmdldExvY2FsVmFyKEdMT1ZBUl9EQVRPU0JZUEFTUyk7XHJcbiAgICAgICAgICAgIGlmKGRhdG9zQnlQYXNzKXtcclxuICAgICAgICAgICAgICAgIHN0YXJ0QXBwID0gYXN5bmMgKCk9PntcclxuICAgICAgICAgICAgICAgICAgICB2YXIgdmVyc2lvbiA9IGF3YWl0IHN3YS5nZXRTVygndmVyc2lvbicpO1xyXG4gICAgICAgICAgICAgICAgICAgIG15T3duLnNldExvY2FsVmFyKCdhcHAtY2FjaGUtdmVyc2lvbicsIHZlcnNpb24pO1xyXG4gICAgICAgICAgICAgICAgICAgIC8vQHRzLWlnbm9yZSBleGlzdGUgXHJcbiAgICAgICAgICAgICAgICAgICAgY2FyZ2FyRXN0cnVjdHVyYShteS5nZXRMb2NhbFZhcihHTE9WQVJfRVNUUlVDVFVSQSkpO1xyXG4gICAgICAgICAgICAgICAgICAgIGNhcmdhckhvamFEZVJ1dGEoeyAuLi5kYXRvc0J5UGFzcywgbW9kb0FsbWFjZW5hbWllbnRvOiAnbG9jYWwnIH0pO1xyXG4gICAgICAgICAgICAgICAgICAgIGRlc3BsZWdhckZvcm11bGFyaW9BY3R1YWwoe21vZG9EZW1vOiBmYWxzZX0pO1xyXG4gICAgICAgICAgICAgICAgICAgIG15Lm1lbnVOYW1lID0gVVJMX0RNO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9ZWxzZXtcclxuICAgICAgICAgICAgICAgIHN0YXJ0QXBwID0gYXN5bmMgKCk9PntcclxuICAgICAgICAgICAgICAgICAgICB0cnl7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IG1vZG9EbURlZmVjdG8gPSBteS5nZXRMb2NhbFZhcihNT0RPX0RNX0xPQ0FMU1RPUkFHRV9LRVkpIHx8IGF3YWl0IG15LmFqYXgubW9kb19kbV9kZWZlY3RvX29idGVuZXIoe30pO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBteS5zZXRMb2NhbFZhcihNT0RPX0RNX0xPQ0FMU1RPUkFHRV9LRVksIG1vZG9EbURlZmVjdG8pO1xyXG4gICAgICAgICAgICAgICAgICAgIH1jYXRjaChlcnIpe1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmxvZygnbm8gc2UgcHVkbyB0cmFlciBlbCBtb2RvIHBvciBkZWZlY3RvJylcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgLy9AdHMtaWdub3JlIGV4aXN0ZSBcclxuICAgICAgICAgICAgICAgICAgICBkbVBhbnRhbGxhSW5pY2lhbFNpbkNhcmdhKCk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgdmFyIHJlZnJlc2NhclN0YXR1cz1hc3luYyBmdW5jdGlvbihzaG93U2NyZWVuLCBuZXdWZXJzaW9uQXZhaWFibGUsIGluc3RhbGxpbmcpe1xyXG4gICAgICAgICAgICAgICAgdmFyIGJ1c2NhbmRvQWN0dWFsaXphY2lvbiA9IGxvY2F0aW9uLmhyZWYuZW5kc1dpdGgoJyNpbnN0PTEnKTtcclxuICAgICAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdudWV2YS12ZXJzaW9uLWluc3RhbGFkYScpIS5zdHlsZS5kaXNwbGF5PW5ld1ZlcnNpb25BdmFpYWJsZT09J3llcyc/Jyc6J25vbmUnO1xyXG4gICAgICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3ZvbHZlci1kZS1pbnN0YWxhY2lvbicpIS5zdHlsZS5kaXNwbGF5PW5ld1ZlcnNpb25BdmFpYWJsZT09J3llcyc/J25vbmUnOicnO1xyXG4gICAgICAgICAgICAgICAgaWYoc2hvd1NjcmVlbj09J2FwcCcgJiYgIWJ1c2NhbmRvQWN0dWFsaXphY2lvbil7XHJcbiAgICAgICAgICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2luc3RhbGFkbycpIS5zdHlsZS5kaXNwbGF5PScnO1xyXG4gICAgICAgICAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdpbnN0YWxhbmRvJykhLnN0eWxlLmRpc3BsYXk9J25vbmUnO1xyXG4gICAgICAgICAgICAgICAgfWVsc2V7XHJcbiAgICAgICAgICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2luc3RhbGFkbycpIS5zdHlsZS5kaXNwbGF5PSdub25lJztcclxuICAgICAgICAgICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnaW5zdGFsYW5kbycpIS5zdHlsZS5kaXNwbGF5PScnO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9O1xyXG4gICAgICAgICAgICB2YXIgc3dhID0gbmV3IFNlcnZpY2VXb3JrZXJBZG1pbigpO1xyXG4gICAgICAgICAgICBzd2EuaW5zdGFsbE9yQWN0aXZhdGUoe1xyXG4gICAgICAgICAgICAgICAgb25FYWNoRmlsZTogYXN5bmMgKHVybCwgZXJyb3IpPT57XHJcbiAgICAgICAgICAgICAgICAgICAgY29uc29sZS5sb2coJ2ZpbGU6ICcsdXJsKTtcclxuICAgICAgICAgICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnYXJjaGl2b3MnKSEuYXBwZW5kKFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBodG1sLmRpdih1cmwpLmNyZWF0ZSgpXHJcbiAgICAgICAgICAgICAgICAgICAgKVxyXG4gICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICAgIG9uSW5mb01lc3NhZ2U6IChtKT0+Y29uc29sZS5sb2coJ21lc3NhZ2U6ICcsIG0pLFxyXG4gICAgICAgICAgICAgICAgb25FcnJvcjogYXN5bmMgKGVyciwgY29udGV4dCk9PntcclxuICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmxvZygnZXJyb3I6ICcrKGNvbnRleHQ/YCBlbiAoJHtjb250ZXh0fSlgOicnKSwgZXJyKTtcclxuICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhjb250ZXh0LCBlcnIsICdlcnJvci1jb25zb2xlJylcclxuICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmxvZygnZXJyb3IgYWwgZGVzY2FyZ2FyIGNhY2hlJywgZXJyLm1lc3NhZ2UpXHJcbiAgICAgICAgICAgICAgICAgICAgaWYoY29udGV4dCE9J2luaXRpYWxpemluZyBzZXJ2aWNlLXdvcmtlcicpe1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB2YXIgbGF5b3V0ID0gYXdhaXQgYXdhaXRGb3JDYWNoZUxheW91dDtcclxuICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGNhY2hlU3RhdHVzRWxlbWVudCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdjYWNoZS1zdGF0dXMnKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgaWYoIWNhY2hlU3RhdHVzRWxlbWVudCl7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYWNoZVN0YXR1c0VsZW1lbnQgPSBodG1sLnAoe2lkOidjYWNoZS1zdGF0dXMnfSkuY3JlYXRlKCk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXlvdXQuaW5zZXJ0QmVmb3JlKGNhY2hlU3RhdHVzRWxlbWVudCwgbGF5b3V0LmZpcnN0Q2hpbGQpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNhY2hlU3RhdHVzRWxlbWVudC5jbGFzc0xpc3QucmVtb3ZlKCd3YXJuaW5nJylcclxuICAgICAgICAgICAgICAgICAgICAgICAgY2FjaGVTdGF0dXNFbGVtZW50LmNsYXNzTGlzdC5yZW1vdmUoJ2FsbC1vaycpXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNhY2hlU3RhdHVzRWxlbWVudC5jbGFzc0xpc3QuYWRkKCdkYW5nZXInKVxyXG4gICAgICAgICAgICAgICAgICAgICAgICBjYWNoZVN0YXR1c0VsZW1lbnQudGV4dENvbnRlbnQ9J2Vycm9yIGFsIGRlc2NhcmdhciBsYSBhcGxpY2FjacOzbi4gJyArIGVyci5tZXNzYWdlO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAgICBvblJlYWR5VG9TdGFydDpzdGFydEFwcCxcclxuICAgICAgICAgICAgICAgIG9uU3RhdGVDaGFuZ2U6cmVmcmVzY2FyU3RhdHVzXHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgICAgIH1cclxuICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgncmVmcmVzY2FyJykhLmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNrJywoKT0+e1xyXG4gICAgICAgICAgICByZWxvYWRXaXRob3V0SGFzaCgpXHJcbiAgICAgICAgfSk7XHJcbiAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3ZvbHZlci1kZS1pbnN0YWxhY2lvbi1jb21vJykhLmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNrJywoKT0+e1xyXG4gICAgICAgICAgICByZWxvYWRXaXRob3V0SGFzaCgpXHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcbn0pXHJcblxyXG5leHBvcnQgdmFyIGF3YWl0Rm9yQ2FjaGVMYXlvdXQgPSBhc3luYyBmdW5jdGlvbiBwcmVwYXJlTGF5b3V0Rm9yQ2FjaGUoKXtcclxuICAgIGF3YWl0IG5ldyBQcm9taXNlKGZ1bmN0aW9uKHJlc29sdmUsIF9yZWplY3Qpe1xyXG4gICAgICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdsb2FkJyxyZXNvbHZlKTtcclxuICAgIH0pO1xyXG4gICAgdmFyIGxheW91dD0oZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2NhY2hlLWxheW91dCcpfHxkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKSk7XHJcbiAgICBpZighbGF5b3V0LmlkKXtcclxuICAgICAgICBsYXlvdXQuaWQ9J2NhY2hlLWxheW91dCc7XHJcbiAgICAgICAgbGF5b3V0LmFwcGVuZENoaWxkKGh0bWwuZGl2KHtpZDonYXBwLXZlcnNpb25zJ30pLmNyZWF0ZSgpKTtcclxuICAgICAgICBsYXlvdXQuYXBwZW5kQ2hpbGQoaHRtbC5kaXYoe2lkOidhcHAtc3RhdHVzJ30pLmNyZWF0ZSgpKTtcclxuICAgICAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGxheW91dC5hcHBlbmRDaGlsZChodG1sLmRpdih7aWQ6J2NhY2hlLWxvZyd9KS5jcmVhdGUoKSkpO1xyXG4gICAgICAgIGRvY3VtZW50LmJvZHkuaW5zZXJ0QmVmb3JlKGxheW91dCxkb2N1bWVudC5ib2R5LmZpcnN0Q2hpbGQpXHJcbiAgICB9XHJcbiAgICByZXR1cm4gbGF5b3V0O1xyXG59KCk7Il19
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "dmencu",
3
3
  "description": "DM Encu - Encuestas en dispositivo móvil",
4
- "version": "2.1.19",
4
+ "version": "2.1.21",
5
5
  "author": "Codenautas <codenautas@googlegroups.com>",
6
6
  "license": "MIT",
7
7
  "main": "dist/server/server/app-dmencu.js",
@@ -15,14 +15,14 @@
15
15
  "memoize-one": "~6.0.0",
16
16
  "meta-enc": "^1.4.16",
17
17
  "procesamiento": "^2.0.10",
18
- "backend-plus": "^2.5.13",
18
+ "backend-plus": "^2.6.1",
19
19
  "qrcode": "^1.5.3",
20
20
  "react": "~17.0.2",
21
21
  "react-dom": "~17.0.2",
22
22
  "react-redux": "~7.2.6",
23
23
  "redux": "~4.1.2",
24
24
  "redux-typed-reducer": "~0.1.1",
25
- "service-worker-admin": "^0.2.1",
25
+ "service-worker-admin": "^0.2.2",
26
26
  "yazl": "~2.5.1",
27
27
  "row-validator": "^1.0.0-rc1",
28
28
  "like-ar": "^0.3.9"