angular-three 2.13.0 → 2.14.0

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.
@@ -73,7 +73,7 @@ export function injectCanvasRootInitializer(injector) {
73
73
  if (!state.camera || (state.camera === lastCamera && !is.equ(lastCamera, cameraOptions, shallowLoose))) {
74
74
  lastCamera = cameraOptions;
75
75
  const isCamera = is.camera(cameraOptions);
76
- let camera = isCamera ? cameraOptions : makeCameraInstance(orthographic, state.size);
76
+ let camera = isCamera ? cameraOptions : makeCameraInstance(orthographic, sizeOptions ?? state.size);
77
77
  if (!isCamera) {
78
78
  camera.position.z = 5;
79
79
  if (cameraOptions) {
@@ -216,7 +216,7 @@ export function injectCanvasRootInitializer(injector) {
216
216
  if (gl.setClearAlpha) {
217
217
  gl.setClearAlpha(0);
218
218
  }
219
- gl.setPixelRatio(makeDpr(state.viewport.dpr ?? dpr));
219
+ gl.setPixelRatio(makeDpr(state.viewport.dpr));
220
220
  gl.setSize(sizeOptions?.width ?? state.size.width, sizeOptions?.height ?? state.size.height);
221
221
  if (is.obj(glOptions) &&
222
222
  !(typeof glOptions === 'function') &&
@@ -252,9 +252,8 @@ export function injectCanvasRootInitializer(injector) {
252
252
  });
253
253
  }
254
254
  function computeInitialSize(canvas, defaultSize) {
255
- if (defaultSize) {
255
+ if (defaultSize)
256
256
  return defaultSize;
257
- }
258
257
  if (typeof HTMLCanvasElement !== 'undefined' && canvas instanceof HTMLCanvasElement && canvas.parentElement) {
259
258
  return canvas.parentElement.getBoundingClientRect();
260
259
  }
@@ -272,4 +271,4 @@ export function dispose(obj) {
272
271
  delete obj[p];
273
272
  }
274
273
  }
275
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm9vdHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWJzL2NvcmUvc3JjL2xpYi9yb290cy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDNUQsT0FBTyxFQUNOLHFCQUFxQixFQUNyQixjQUFjLEVBQ2QsZUFBZSxFQUNmLGFBQWEsRUFDYixZQUFZLEVBQ1osZ0JBQWdCLEVBQ2hCLFNBQVMsRUFDVCxLQUFLLEVBQ0wsWUFBWSxFQUNaLE9BQU8sR0FDUCxNQUFNLE9BQU8sQ0FBQztBQUNmLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxZQUFZLENBQUM7QUFDckMsT0FBTyxFQUFFLFVBQVUsRUFBRSxLQUFLLEVBQUUsTUFBTSxRQUFRLENBQUM7QUFDM0MsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLFNBQVMsQ0FBQztBQUV0QyxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDakQsT0FBTyxFQUFFLEVBQUUsRUFBRSxNQUFNLFlBQVksQ0FBQztBQUNoQyxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sY0FBYyxDQUFDO0FBRWpGLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRWxELE1BQU0sWUFBWSxHQUFHLEVBQUUsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFrQixDQUFDO0FBRTNFLE1BQU0sVUFBVSwyQkFBMkIsQ0FBQyxRQUFtQjtJQUM5RCxPQUFPLGNBQWMsQ0FBQywyQkFBMkIsRUFBRSxRQUFRLEVBQUUsR0FBRyxFQUFFO1FBQ2pFLE1BQU0sYUFBYSxHQUFHLFdBQVcsRUFBRSxDQUFDO1FBQ3BDLE1BQU0sSUFBSSxHQUFHLFVBQVUsRUFBRSxDQUFDO1FBRTFCLE9BQU8sQ0FBQyxNQUF3QixFQUFFLEVBQUU7WUFDbkMs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QUFDSixDQUFDO0FBSUQsU0FBUyxrQkFBa0IsQ0FBQyxNQUF3QixFQUFFLFdBQXFCO0lBQzFFLElBQUksV0FBVyxFQUFFLENBQUM7UUFDakIsT0FBTyxXQUFXLENBQUM7SUFDcEIsQ0FBQztJQUVELElBQUksT0FBTyxpQkFBaUIsS0FBSyxXQUFXLElBQUksTUFBTSxZQUFZLGlCQUFpQixJQUFJLE1BQU0sQ0FBQyxhQUFhLEVBQUUsQ0FBQztRQUM3RyxPQUFPLE1BQU0sQ0FBQyxhQUFhLENBQUMscUJBQXFCLEVBQUUsQ0FBQztJQUNyRCxDQUFDO0lBRUQsSUFBSSxPQUFPLGVBQWUsS0FBSyxXQUFXLElBQUksTUFBTSxZQUFZLGVBQWUsRUFBRSxDQUFDO1FBQ2pGLE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSxDQUFDLEtBQUssRUFBRSxNQUFNLEVBQUUsTUFBTSxDQUFDLE1BQU0sRUFBRSxHQUFHLEVBQUUsQ0FBQyxFQUFFLElBQUksRUFBRSxDQUFDLEVBQUUsQ0FBQztJQUN4RSxDQUFDO0lBRUQsT0FBTyxFQUFFLEtBQUssRUFBRSxDQUFDLEVBQUUsTUFBTSxFQUFFLENBQUMsRUFBRSxHQUFHLEVBQUUsQ0FBQyxFQUFFLElBQUksRUFBRSxDQUFDLEVBQUUsQ0FBQztBQUNqRCxDQUFDO0FBRUQsNENBQTRDO0FBQzVDLE1BQU0sVUFBVSxPQUFPLENBQTJFLEdBQVM7SUFDMUcsSUFBSSxHQUFHLENBQUMsT0FBTyxJQUFJLEdBQUcsQ0FBQyxJQUFJLEtBQUssT0FBTztRQUFFLEdBQUcsQ0FBQyxPQUFPLEVBQUUsQ0FBQztJQUN2RCxLQUFLLE1BQU0sQ0FBQyxJQUFJLEdBQUcsRUFBRSxDQUFDO1FBQ3BCLENBQVMsQ0FBQyxPQUFPLEVBQUUsRUFBRSxDQUFDO1FBQ3ZCLE9BQU8sR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ2YsQ0FBQztBQUNGLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RvciB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgYXNzZXJ0SW5qZWN0b3IgfSBmcm9tICduZ3h0ZW5zaW9uL2Fzc2VydC1pbmplY3Rvcic7XG5pbXBvcnQge1xuXHRBQ0VTRmlsbWljVG9uZU1hcHBpbmcsXG5cdEJhc2ljU2hhZG93TWFwLFxuXHRDb2xvck1hbmFnZW1lbnQsXG5cdE5vVG9uZU1hcHBpbmcsXG5cdFBDRlNoYWRvd01hcCxcblx0UENGU29mdFNoYWRvd01hcCxcblx0UmF5Y2FzdGVyLFxuXHRTY2VuZSxcblx0VlNNU2hhZG93TWFwLFxuXHRWZWN0b3IzLFxufSBmcm9tICd0aHJlZSc7XG5pbXBvcnQgeyBwcmVwYXJlIH0gZnJvbSAnLi9pbnN0YW5jZSc7XG5pbXBvcnQgeyBpbmplY3RMb29wLCByb290cyB9IGZyb20gJy4vbG9vcCc7XG5pbXBvcnQgeyBpbmplY3RTdG9yZSB9IGZyb20gJy4vc3RvcmUnO1xuaW1wb3J0IHsgTmd0QW55UmVjb3JkLCBOZ3RDYW52YXNFbGVtZW50LCBOZ3RDYW52YXNPcHRpb25zLCBOZ3RFcXVDb25maWcsIE5ndFNpemUsIE5ndFN0YXRlIH0gZnJvbSAnLi90eXBlcyc7XG5pbXBvcnQgeyBhcHBseVByb3BzIH0gZnJvbSAnLi91dGlscy9hcHBseS1wcm9wcyc7XG5pbXBvcnQgeyBpcyB9IGZyb20gJy4vdXRpbHMvaXMnO1xuaW1wb3J0IHsgbWFrZUNhbWVyYUluc3RhbmNlLCBtYWtlRHByLCBtYWtlUmVuZGVyZXJJbnN0YW5jZSB9IGZyb20gJy4vdXRpbHMvbWFrZSc7XG5pbXBvcnQgeyBOZ3RTaWduYWxTdG9yZSB9IGZyb20gJy4vdXRpbHMvc2lnbmFsLXN0b3JlJztcbmltcG9ydCB7IGNoZWNrTmVlZHNVcGRhdGUgfSBmcm9tICcuL3V0aWxzL3VwZGF0ZSc7XG5cbmNvbnN0IHNoYWxsb3dMb29zZSA9IHsgb2JqZWN0czogJ3NoYWxsb3cnLCBzdHJpY3Q6IGZhbHNlIH0gYXMgTmd0RXF1Q29uZmlnO1xuXG5leHBvcnQgZnVuY3Rpb24gaW5qZWN0Q2FudmFzUm9vdEluaXRpYWxpemVyKGluamVjdG9yPzogSW5qZWN0b3IpIHtcblx0cmV0dXJuIGFzc2VydEluamVjdG9yKGluamVjdENhbnZhc1Jvb3RJbml0aWFsaXplciwgaW5qZWN0b3IsICgpID0+IHtcblx0XHRjb25zdCBpbmplY3RlZFN0b3JlID0gaW5qZWN0U3RvcmUoKTtcblx0XHRjb25zdCBsb29wID0gaW5qZWN0TG9vcCgpO1xuXG5cdFx0cmV0dXJuIChjYW52YXM6IE5ndENhbnZhc0VsZW1lbnQpID0+IHtcblx0XHRcdGNvbnN0IGV4aXN0ID0gcm9vdHMuaGFzKGNhbnZhcyk7XG5cdFx0XHRsZXQgc3RvcmUgPSByb290cy5nZXQoY2FudmFzKSBhcyBOZ3RTaWduYWxTdG9yZTxOZ3RTdGF0ZT47XG5cblx0XHRcdGlmIChzdG9yZSkge1xuXHRcdFx0XHRjb25zb2xlLndhcm4oJ1tOR1RdIFNhbWUgY2FudmFzIHJvb3QgaXMgYmVpbmcgY3JlYXRlZCB0d2ljZScpO1xuXHRcdFx0fVxuXG5cdFx0XHRzdG9yZSB8fD0gaW5qZWN0ZWRTdG9yZTtcblxuXHRcdFx0aWYgKCFzdG9yZSkge1xuXHRcdFx0XHR0aHJvdyBuZXcgRXJyb3IoJ1tOR1RdIE5vIHN0b3JlIGluaXRpYWxpemVkJyk7XG5cdFx0XHR9XG5cblx0XHRcdGlmICghZXhpc3QpIHtcblx0XHRcdFx0cm9vdHMuc2V0KGNhbnZhcywgc3RvcmUpO1xuXHRcdFx0fVxuXG5cdFx0XHRsZXQgaXNDb25maWd1cmVkID0gZmFsc2U7XG5cdFx0XHRsZXQgbGFzdENhbWVyYTogTmd0Q2FudmFzT3B0aW9uc1snY2FtZXJhJ107XG5cblx0XHRcdHJldHVybiB7XG5cdFx0XHRcdGlzQ29uZmlndXJlZCxcblx0XHRcdFx0ZGVzdHJveTogKHRpbWVvdXQgPSA1MDApID0+IHtcblx0XHRcdFx0XHRjb25zdCByb290ID0gcm9vdHMuZ2V0KGNhbnZhcyk7XG5cdFx0XHRcdFx0aWYgKHJvb3QpIHtcblx0XHRcdFx0XHRcdHJvb3QudXBkYXRlKChzdGF0ZSkgPT4gKHsgaW50ZXJuYWw6IHsgLi4uc3RhdGUuaW50ZXJuYWwsIGFjdGl2ZTogZmFsc2UgfSB9KSk7XG5cdFx0XHRcdFx0XHRzZXRUaW1lb3V0KCgpID0+IHtcblx0XHRcdFx0XHRcdFx0dHJ5IHtcblx0XHRcdFx0XHRcdFx0XHRjb25zdCBzdGF0ZSA9IHJvb3QuZ2V0KCk7XG5cdFx0XHRcdFx0XHRcdFx0c3RhdGUuZXZlbnRzLmRpc2Nvbm5lY3Q/LigpO1xuXHRcdFx0XHRcdFx0XHRcdHN0YXRlLmdsPy5yZW5kZXJMaXN0cz8uZGlzcG9zZT8uKCk7XG5cdFx0XHRcdFx0XHRcdFx0c3RhdGUuZ2w/LmZvcmNlQ29udGV4dExvc3M/LigpO1xuXHRcdFx0XHRcdFx0XHRcdGlmIChzdGF0ZS5nbD8ueHIpIHN0YXRlLnhyLmRpc2Nvbm5lY3QoKTtcblx0XHRcdFx0XHRcdFx0XHRkaXNwb3NlKHN0YXRlKTtcblx0XHRcdFx0XHRcdFx0XHRyb290cy5kZWxldGUoY2FudmFzKTtcblx0XHRcdFx0XHRcdFx0fSBjYXRjaCAoZSkge1xuXHRcdFx0XHRcdFx0XHRcdGNvbnNvbGUuZXJyb3IoJ1tOR1RdIFVuZXhwZWN0ZWQgZXJyb3Igd2hpbGUgZGVzdHJveWluZyBDYW52YXMgUm9vdCcsIGUpO1xuXHRcdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHR9LCB0aW1lb3V0KTtcblx0XHRcdFx0XHR9XG5cdFx0XHRcdH0sXG5cdFx0XHRcdGNvbmZpZ3VyZTogKGlucHV0czogTmd0Q2FudmFzT3B0aW9ucykgPT4ge1xuXHRcdFx0XHRcdGNvbnN0IHtcblx0XHRcdFx0XHRcdHNoYWRvd3MgPSBmYWxzZSxcblx0XHRcdFx0XHRcdGxpbmVhciA9IGZhbHNlLFxuXHRcdFx0XHRcdFx0ZmxhdCA9IGZhbHNlLFxuXHRcdFx0XHRcdFx0bGVnYWN5ID0gZmFsc2UsXG5cdFx0XHRcdFx0XHRvcnRob2dyYXBoaWMgPSBmYWxzZSxcblx0XHRcdFx0XHRcdGZyYW1lbG9vcCA9ICdhbHdheXMnLFxuXHRcdFx0XHRcdFx0ZHByID0gWzEsIDJdLFxuXHRcdFx0XHRcdFx0Z2w6IGdsT3B0aW9ucyxcblx0XHRcdFx0XHRcdHNpemU6IHNpemVPcHRpb25zLFxuXHRcdFx0XHRcdFx0Y2FtZXJhOiBjYW1lcmFPcHRpb25zLFxuXHRcdFx0XHRcdFx0cmF5Y2FzdGVyOiByYXljYXN0ZXJPcHRpb25zLFxuXHRcdFx0XHRcdFx0c2NlbmU6IHNjZW5lT3B0aW9ucyxcblx0XHRcdFx0XHRcdGV2ZW50cyxcblx0XHRcdFx0XHRcdGxvb2tBdCxcblx0XHRcdFx0XHRcdHBlcmZvcm1hbmNlLFxuXHRcdFx0XHRcdH0gPSBpbnB1dHM7XG5cblx0XHRcdFx0XHRjb25zdCBzdGF0ZSA9IHN0b3JlLnNuYXBzaG90O1xuXHRcdFx0XHRcdGNvbnN0IHN0YXRlVG9VcGRhdGU6IFBhcnRpYWw8Tmd0U3RhdGU+ID0ge307XG5cblx0XHRcdFx0XHQvLyBzZXR1cCByZW5kZXJlclxuXHRcdFx0XHRcdGxldCBnbCA9IHN0YXRlLmdsO1xuXHRcdFx0XHRcdGlmICghc3RhdGUuZ2wpIHN0YXRlVG9VcGRhdGUuZ2wgPSBnbCA9IG1ha2VSZW5kZXJlckluc3RhbmNlKGdsT3B0aW9ucywgY2FudmFzKTtcblxuXHRcdFx0XHRcdC8vIHNldHVwIHJheWNhc3RlclxuXHRcdFx0XHRcdGxldCByYXljYXN0ZXIgPSBzdGF0ZS5yYXljYXN0ZXI7XG5cdFx0XHRcdFx0aWYgKCFyYXljYXN0ZXIpIHN0YXRlVG9VcGRhdGUucmF5Y2FzdGVyID0gcmF5Y2FzdGVyID0gbmV3IFJheWNhc3RlcigpO1xuXG5cdFx0XHRcdFx0Ly8gc2V0IHJheWNhc3RlciBvcHRpb25zXG5cdFx0XHRcdFx0Y29uc3QgeyBwYXJhbXMsIC4uLm9wdGlvbnMgfSA9IHJheWNhc3Rlck9wdGlvbnMgfHwge307XG5cdFx0XHRcdFx0aWYgKCFpcy5lcXUob3B0aW9ucywgcmF5Y2FzdGVyLCBzaGFsbG93TG9vc2UpKSBhcHBseVByb3BzKHJheWNhc3Rlciwgb3B0aW9ucyk7XG5cdFx0XHRcdFx0aWYgKCFpcy5lcXUocGFyYW1zLCByYXljYXN0ZXIucGFyYW1zLCBzaGFsbG93TG9vc2UpKSB7XG5cdFx0XHRcdFx0XHRhcHBseVByb3BzKHJheWNhc3RlciwgeyBwYXJhbXM6IHsgLi4ucmF5Y2FzdGVyLnBhcmFtcywgLi4uKHBhcmFtcyB8fCB7fSkgfSB9KTtcblx0XHRcdFx0XHR9XG5cblx0XHRcdFx0XHQvLyBDcmVhdGUgZGVmYXVsdCBjYW1lcmEsIGRvbid0IG92ZXJ3cml0ZSBhbnkgdXNlci1zZXQgc3RhdGVcblx0XHRcdFx0XHRpZiAoIXN0YXRlLmNhbWVyYSB8fCAoc3RhdGUuY2FtZXJhID09PSBsYXN0Q2FtZXJhICYmICFpcy5lcXUobGFzdENhbWVyYSwgY2FtZXJhT3B0aW9ucywgc2hhbGxvd0xvb3NlKSkpIHtcblx0XHRcdFx0XHRcdGxhc3RDYW1lcmEgPSBjYW1lcmFPcHRpb25zO1xuXHRcdFx0XHRcdFx0Y29uc3QgaXNDYW1lcmEgPSBpcy5jYW1lcmEoY2FtZXJhT3B0aW9ucyk7XG5cdFx0XHRcdFx0XHRsZXQgY2FtZXJhID0gaXNDYW1lcmEgPyBjYW1lcmFPcHRpb25zIDogbWFrZUNhbWVyYUluc3RhbmNlKG9ydGhvZ3JhcGhpYywgc3RhdGUuc2l6ZSk7XG5cblx0XHRcdFx0XHRcdGlmICghaXNDYW1lcmEpIHtcblx0XHRcdFx0XHRcdFx0Y2FtZXJhLnBvc2l0aW9uLnogPSA1O1xuXHRcdFx0XHRcdFx0XHRpZiAoY2FtZXJhT3B0aW9ucykge1xuXHRcdFx0XHRcdFx0XHRcdGFwcGx5UHJvcHMoY2FtZXJhLCBjYW1lcmFPcHRpb25zKTtcblx0XHRcdFx0XHRcdFx0XHRpZiAoXG5cdFx0XHRcdFx0XHRcdFx0XHQnYXNwZWN0JyBpbiBjYW1lcmFPcHRpb25zIHx8XG5cdFx0XHRcdFx0XHRcdFx0XHQnbGVmdCcgaW4gY2FtZXJhT3B0aW9ucyB8fFxuXHRcdFx0XHRcdFx0XHRcdFx0J3JpZ2h0JyBpbiBjYW1lcmFPcHRpb25zIHx8XG5cdFx0XHRcdFx0XHRcdFx0XHQndG9wJyBpbiBjYW1lcmFPcHRpb25zIHx8XG5cdFx0XHRcdFx0XHRcdFx0XHQnYm90dG9tJyBpbiBjYW1lcmFPcHRpb25zXG5cdFx0XHRcdFx0XHRcdFx0KSB7XG5cdFx0XHRcdFx0XHRcdFx0XHRPYmplY3QuYXNzaWduKGNhbWVyYSwgeyBtYW51YWw6IHRydWUgfSk7XG5cdFx0XHRcdFx0XHRcdFx0XHRjYW1lcmE/LnVwZGF0ZVByb2plY3Rpb25NYXRyaXgoKTtcblx0XHRcdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHRcdH1cblxuXHRcdFx0XHRcdFx0XHQvLyBhbHdheXMgbG9vayBhdCBjZW50ZXIgb3IgcGFzc2VkLWluIGxvb2tBdCBieSBkZWZhdWx0XG5cdFx0XHRcdFx0XHRcdGlmICghc3RhdGUuY2FtZXJhICYmICFjYW1lcmFPcHRpb25zPy5yb3RhdGlvbiAmJiAhY2FtZXJhT3B0aW9ucz8ucXVhdGVybmlvbikge1xuXHRcdFx0XHRcdFx0XHRcdGlmIChBcnJheS5pc0FycmF5KGxvb2tBdCkpIGNhbWVyYS5sb29rQXQobG9va0F0WzBdLCBsb29rQXRbMV0sIGxvb2tBdFsyXSk7XG5cdFx0XHRcdFx0XHRcdFx0ZWxzZSBpZiAobG9va0F0IGluc3RhbmNlb2YgVmVjdG9yMykgY2FtZXJhLmxvb2tBdChsb29rQXQpO1xuXHRcdFx0XHRcdFx0XHRcdGVsc2UgY2FtZXJhLmxvb2tBdCgwLCAwLCAwKTtcblx0XHRcdFx0XHRcdFx0fVxuXG5cdFx0XHRcdFx0XHRcdC8vIHVwZGF0ZSBwcm9qZWN0aW9uIG1hdHJpeCBhZnRlciBhcHBseXByb3BzXG5cdFx0XHRcdFx0XHRcdGNhbWVyYS51cGRhdGVQcm9qZWN0aW9uTWF0cml4Py4oKTtcblx0XHRcdFx0XHRcdH1cblxuXHRcdFx0XHRcdFx0aWYgKCFpcy5pbnN0YW5jZShjYW1lcmEpKSBjYW1lcmEgPSBwcmVwYXJlKGNhbWVyYSwgeyBzdG9yZSB9KTtcblxuXHRcdFx0XHRcdFx0c3RhdGVUb1VwZGF0ZS5jYW1lcmEgPSBjYW1lcmE7XG5cblx0XHRcdFx0XHRcdC8vIENvbmZpZ3VyZSByYXljYXN0ZXJcblx0XHRcdFx0XHRcdC8vIGh0dHBzOi8vZ2l0aHViLmNvbS9wbW5kcnMvcmVhY3QteHIvaXNzdWVzLzMwMFxuXHRcdFx0XHRcdFx0cmF5Y2FzdGVyLmNhbWVyYSA9IGNhbWVyYTtcblx0XHRcdFx0XHR9XG5cblx0XHRcdFx0XHQvLyBTZXQgdXAgc2NlbmUgKG9uZSB0aW1lIG9ubHkhKVxuXHRcdFx0XHRcdGlmICghc3RhdGUuc2NlbmUpIHtcblx0XHRcdFx0XHRcdGxldCBzY2VuZTogU2NlbmU7XG5cblx0XHRcdFx0XHRcdGlmIChzY2VuZU9wdGlvbnMgaW5zdGFuY2VvZiBTY2VuZSkge1xuXHRcdFx0XHRcdFx0XHRzY2VuZSA9IHNjZW5lT3B0aW9ucztcblx0XHRcdFx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdFx0XHRcdHNjZW5lID0gbmV3IFNjZW5lKCk7XG5cdFx0XHRcdFx0XHRcdGlmIChzY2VuZU9wdGlvbnMpIGFwcGx5UHJvcHMoc2NlbmUsIHNjZW5lT3B0aW9ucyk7XG5cdFx0XHRcdFx0XHR9XG5cblx0XHRcdFx0XHRcdGFwcGx5UHJvcHMoc2NlbmUsIHtcblx0XHRcdFx0XHRcdFx0c2V0QXR0cmlidXRlOiAobmFtZTogc3RyaW5nLCB2YWx1ZTogc3RyaW5nKSA9PiB7XG5cdFx0XHRcdFx0XHRcdFx0aWYgKGNhbnZhcyBpbnN0YW5jZW9mIEhUTUxDYW52YXNFbGVtZW50KSB7XG5cdFx0XHRcdFx0XHRcdFx0XHRpZiAoY2FudmFzLnBhcmVudEVsZW1lbnQpIHtcblx0XHRcdFx0XHRcdFx0XHRcdFx0Y2FudmFzLnBhcmVudEVsZW1lbnQuc2V0QXR0cmlidXRlKG5hbWUsIHZhbHVlKTtcblx0XHRcdFx0XHRcdFx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdFx0XHRcdFx0XHRcdGNhbnZhcy5zZXRBdHRyaWJ1dGUobmFtZSwgdmFsdWUpO1xuXHRcdFx0XHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcdFx0fSxcblx0XHRcdFx0XHRcdH0pO1xuXG5cdFx0XHRcdFx0XHRzdGF0ZVRvVXBkYXRlLnNjZW5lID0gcHJlcGFyZShzY2VuZSwgeyBzdG9yZSB9KTtcblx0XHRcdFx0XHR9XG5cblx0XHRcdFx0XHQvLyBTZXQgdXAgWFIgKG9uZSB0aW1lIG9ubHkhKVxuXHRcdFx0XHRcdGlmICghc3RhdGUueHIpIHtcblx0XHRcdFx0XHRcdC8vIEhhbmRsZSBmcmFtZSBiZWhhdmlvciBpbiBXZWJYUlxuXHRcdFx0XHRcdFx0Y29uc3QgaGFuZGxlWFJGcmFtZTogWFJGcmFtZVJlcXVlc3RDYWxsYmFjayA9ICh0aW1lc3RhbXA6IG51bWJlciwgZnJhbWU/OiBYUkZyYW1lKSA9PiB7XG5cdFx0XHRcdFx0XHRcdGNvbnN0IHN0YXRlID0gc3RvcmUuc25hcHNob3Q7XG5cdFx0XHRcdFx0XHRcdGlmIChzdGF0ZS5mcmFtZWxvb3AgPT09ICduZXZlcicpIHJldHVybjtcblx0XHRcdFx0XHRcdFx0bG9vcC5hZHZhbmNlKHRpbWVzdGFtcCwgdHJ1ZSwgc3RvcmUsIGZyYW1lKTtcblx0XHRcdFx0XHRcdH07XG5cblx0XHRcdFx0XHRcdC8vIFRvZ2dsZSByZW5kZXIgc3dpdGNoaW5nIG9uIHNlc3Npb25cblx0XHRcdFx0XHRcdGNvbnN0IGhhbmRsZVNlc3Npb25DaGFuZ2UgPSAoKSA9PiB7XG5cdFx0XHRcdFx0XHRcdGNvbnN0IHN0YXRlID0gc3RvcmUuc25hcHNob3Q7XG5cdFx0XHRcdFx0XHRcdHN0YXRlLmdsLnhyLmVuYWJsZWQgPSBzdGF0ZS5nbC54ci5pc1ByZXNlbnRpbmc7XG5cdFx0XHRcdFx0XHRcdHN0YXRlLmdsLnhyLnNldEFuaW1hdGlvbkxvb3Aoc3RhdGUuZ2wueHIuaXNQcmVzZW50aW5nID8gaGFuZGxlWFJGcmFtZSA6IG51bGwpO1xuXHRcdFx0XHRcdFx0XHRpZiAoIXN0YXRlLmdsLnhyLmlzUHJlc2VudGluZykgbG9vcC5pbnZhbGlkYXRlKHN0b3JlKTtcblx0XHRcdFx0XHRcdH07XG5cblx0XHRcdFx0XHRcdC8vIFdlYlhSIHNlc3Npb24gbWFuYWdlclxuXHRcdFx0XHRcdFx0Y29uc3QgeHIgPSB7XG5cdFx0XHRcdFx0XHRcdGNvbm5lY3Q6ICgpID0+IHtcblx0XHRcdFx0XHRcdFx0XHRnbC54ci5hZGRFdmVudExpc3RlbmVyKCdzZXNzaW9uc3RhcnQnLCBoYW5kbGVTZXNzaW9uQ2hhbmdlKTtcblx0XHRcdFx0XHRcdFx0XHRnbC54ci5hZGRFdmVudExpc3RlbmVyKCdzZXNzaW9uZW5kJywgaGFuZGxlU2Vzc2lvbkNoYW5nZSk7XG5cdFx0XHRcdFx0XHRcdH0sXG5cdFx0XHRcdFx0XHRcdGRpc2Nvbm5lY3Q6ICgpID0+IHtcblx0XHRcdFx0XHRcdFx0XHRnbC54ci5yZW1vdmVFdmVudExpc3RlbmVyKCdzZXNzaW9uc3RhcnQnLCBoYW5kbGVTZXNzaW9uQ2hhbmdlKTtcblx0XHRcdFx0XHRcdFx0XHRnbC54ci5yZW1vdmVFdmVudExpc3RlbmVyKCdzZXNzaW9uZW5kJywgaGFuZGxlU2Vzc2lvbkNoYW5nZSk7XG5cdFx0XHRcdFx0XHRcdH0sXG5cdFx0XHRcdFx0XHR9O1xuXG5cdFx0XHRcdFx0XHQvLyBTdWJzY3JpYmUgdG8gV2ViWFIgc2Vzc2lvbiBldmVudHNcblx0XHRcdFx0XHRcdGlmIChnbC54ciAmJiB0eXBlb2YgZ2wueHIuYWRkRXZlbnRMaXN0ZW5lciA9PT0gJ2Z1bmN0aW9uJykgeHIuY29ubmVjdCgpO1xuXHRcdFx0XHRcdFx0c3RhdGVUb1VwZGF0ZS54ciA9IHhyO1xuXHRcdFx0XHRcdH1cblxuXHRcdFx0XHRcdC8vIFNldCBzaGFkb3dtYXBcblx0XHRcdFx0XHRpZiAoZ2wuc2hhZG93TWFwKSB7XG5cdFx0XHRcdFx0XHRjb25zdCBvbGRFbmFibGVkID0gZ2wuc2hhZG93TWFwLmVuYWJsZWQ7XG5cdFx0XHRcdFx0XHRjb25zdCBvbGRUeXBlID0gZ2wuc2hhZG93TWFwLnR5cGU7XG5cdFx0XHRcdFx0XHRnbC5zaGFkb3dNYXAuZW5hYmxlZCA9ICEhc2hhZG93cztcblxuXHRcdFx0XHRcdFx0aWYgKHR5cGVvZiBzaGFkb3dzID09PSAnYm9vbGVhbicpIHtcblx0XHRcdFx0XHRcdFx0Z2wuc2hhZG93TWFwLnR5cGUgPSBQQ0ZTb2Z0U2hhZG93TWFwO1xuXHRcdFx0XHRcdFx0fSBlbHNlIGlmICh0eXBlb2Ygc2hhZG93cyA9PT0gJ3N0cmluZycpIHtcblx0XHRcdFx0XHRcdFx0Y29uc3QgdHlwZXMgPSB7XG5cdFx0XHRcdFx0XHRcdFx0YmFzaWM6IEJhc2ljU2hhZG93TWFwLFxuXHRcdFx0XHRcdFx0XHRcdHBlcmNlbnRhZ2U6IFBDRlNoYWRvd01hcCxcblx0XHRcdFx0XHRcdFx0XHRzb2Z0OiBQQ0ZTb2Z0U2hhZG93TWFwLFxuXHRcdFx0XHRcdFx0XHRcdHZhcmlhbmNlOiBWU01TaGFkb3dNYXAsXG5cdFx0XHRcdFx0XHRcdH07XG5cdFx0XHRcdFx0XHRcdGdsLnNoYWRvd01hcC50eXBlID0gdHlwZXNbc2hhZG93c10gPz8gUENGU29mdFNoYWRvd01hcDtcblx0XHRcdFx0XHRcdH0gZWxzZSBpZiAoaXMub2JqKHNoYWRvd3MpKSB7XG5cdFx0XHRcdFx0XHRcdE9iamVjdC5hc3NpZ24oZ2wuc2hhZG93TWFwLCBzaGFkb3dzKTtcblx0XHRcdFx0XHRcdH1cblxuXHRcdFx0XHRcdFx0aWYgKG9sZEVuYWJsZWQgIT09IGdsLnNoYWRvd01hcC5lbmFibGVkIHx8IG9sZFR5cGUgIT09IGdsLnNoYWRvd01hcC50eXBlKSBjaGVja05lZWRzVXBkYXRlKGdsLnNoYWRvd01hcCk7XG5cdFx0XHRcdFx0fVxuXG5cdFx0XHRcdFx0Ly8gU2FmZWx5IHNldCBjb2xvciBtYW5hZ2VtZW50IGlmIGF2YWlsYWJsZS5cblx0XHRcdFx0XHQvLyBBdm9pZCBhY2Nlc3NpbmcgQ29sb3JNYW5hZ2VtZW50IHRvIHBsYXkgbmljZSB3aXRoIG9sZGVyIHZlcnNpb25zXG5cdFx0XHRcdFx0aWYgKENvbG9yTWFuYWdlbWVudCkge1xuXHRcdFx0XHRcdFx0Y29uc3QgY29sb3JNYW5hZ2VtZW50ID0gQ29sb3JNYW5hZ2VtZW50IGFzIE5ndEFueVJlY29yZDtcblx0XHRcdFx0XHRcdGlmICgnZW5hYmxlZCcgaW4gY29sb3JNYW5hZ2VtZW50KSBjb2xvck1hbmFnZW1lbnRbJ2VuYWJsZWQnXSA9ICFsZWdhY3k7XG5cdFx0XHRcdFx0XHRlbHNlIGlmICgnbGVnYWN5TW9kZScgaW4gY29sb3JNYW5hZ2VtZW50KSBjb2xvck1hbmFnZW1lbnRbJ2xlZ2FjeU1vZGUnXSA9IGxlZ2FjeTtcblx0XHRcdFx0XHR9XG5cblx0XHRcdFx0XHRpZiAoIWlzQ29uZmlndXJlZCkge1xuXHRcdFx0XHRcdFx0Ly8gc2V0IGNvbG9yIHNwYWNlIGFuZCB0b25lbWFwcGluZyBwcmVmZXJlbmNlcyBvbmNlXG5cdFx0XHRcdFx0XHRjb25zdCBMaW5lYXJFbmNvZGluZyA9IDMwMDA7XG5cdFx0XHRcdFx0XHRjb25zdCBzUkdCRW5jb2RpbmcgPSAzMDAxO1xuXHRcdFx0XHRcdFx0YXBwbHlQcm9wcyhnbCwge1xuXHRcdFx0XHRcdFx0XHRvdXRwdXRFbmNvZGluZzogbGluZWFyID8gTGluZWFyRW5jb2RpbmcgOiBzUkdCRW5jb2RpbmcsXG5cdFx0XHRcdFx0XHRcdHRvbmVNYXBwaW5nOiBmbGF0ID8gTm9Ub25lTWFwcGluZyA6IEFDRVNGaWxtaWNUb25lTWFwcGluZyxcblx0XHRcdFx0XHRcdH0pO1xuXHRcdFx0XHRcdH1cblxuXHRcdFx0XHRcdC8vIFVwZGF0ZSBjb2xvciBtYW5hZ2VtZW50IHN0YXRlXG5cdFx0XHRcdFx0aWYgKHN0YXRlLmxlZ2FjeSAhPT0gbGVnYWN5KSBzdGF0ZVRvVXBkYXRlLmxlZ2FjeSA9IGxlZ2FjeTtcblx0XHRcdFx0XHRpZiAoc3RhdGUubGluZWFyICE9PSBsaW5lYXIpIHN0YXRlVG9VcGRhdGUubGluZWFyID0gbGluZWFyO1xuXHRcdFx0XHRcdGlmIChzdGF0ZS5mbGF0ICE9PSBmbGF0KSBzdGF0ZVRvVXBkYXRlLmZsYXQgPSBmbGF0O1xuXG5cdFx0XHRcdFx0Ly8gU2V0IGdsIHByb3BzXG5cdFx0XHRcdFx0aWYgKGdsLnNldENsZWFyQWxwaGEpIHtcblx0XHRcdFx0XHRcdGdsLnNldENsZWFyQWxwaGEoMCk7XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHRcdGdsLnNldFBpeGVsUmF0aW8obWFrZURwcihzdGF0ZS52aWV3cG9ydC5kcHIgPz8gZHByKSk7XG5cdFx0XHRcdFx0Z2wuc2V0U2l6ZShzaXplT3B0aW9ucz8ud2lkdGggPz8gc3RhdGUuc2l6ZS53aWR0aCwgc2l6ZU9wdGlvbnM/LmhlaWdodCA/PyBzdGF0ZS5zaXplLmhlaWdodCk7XG5cblx0XHRcdFx0XHRpZiAoXG5cdFx0XHRcdFx0XHRpcy5vYmooZ2xPcHRpb25zKSAmJlxuXHRcdFx0XHRcdFx0ISh0eXBlb2YgZ2xPcHRpb25zID09PSAnZnVuY3Rpb24nKSAmJlxuXHRcdFx0XHRcdFx0IWlzLnJlbmRlcmVyKGdsT3B0aW9ucykgJiZcblx0XHRcdFx0XHRcdCFpcy5lcXUoZ2xPcHRpb25zLCBnbCwgc2hhbGxvd0xvb3NlKVxuXHRcdFx0XHRcdCkge1xuXHRcdFx0XHRcdFx0YXBwbHlQcm9wcyhnbCwgZ2xPcHRpb25zKTtcblx0XHRcdFx0XHR9XG5cblx0XHRcdFx0XHQvLyBTdG9yZSBldmVudHMgaW50ZXJuYWxseVxuXHRcdFx0XHRcdGlmIChldmVudHMgJiYgIXN0YXRlLmV2ZW50cy5oYW5kbGVycykgc3RhdGVUb1VwZGF0ZS5ldmVudHMgPSBldmVudHMoc3RvcmUpO1xuXG5cdFx0XHRcdFx0Ly8gQ2hlY2sgcGVyZm9ybWFuY2Vcblx0XHRcdFx0XHRpZiAocGVyZm9ybWFuY2UgJiYgIWlzLmVxdShwZXJmb3JtYW5jZSwgc3RhdGUucGVyZm9ybWFuY2UsIHNoYWxsb3dMb29zZSkpIHtcblx0XHRcdFx0XHRcdHN0YXRlVG9VcGRhdGUucGVyZm9ybWFuY2UgPSB7IC4uLnN0YXRlLnBlcmZvcm1hbmNlLCAuLi5wZXJmb3JtYW5jZSB9O1xuXHRcdFx0XHRcdH1cblxuXHRcdFx0XHRcdGlmIChPYmplY3Qua2V5cyhzdGF0ZVRvVXBkYXRlKS5sZW5ndGgpIHtcblx0XHRcdFx0XHRcdHN0b3JlLnVwZGF0ZShzdGF0ZVRvVXBkYXRlKTtcblx0XHRcdFx0XHR9XG5cblx0XHRcdFx0XHQvLyBDaGVjayBzaXplLCBhbGxvdyBpdCB0byB0YWtlIG9uIGNvbnRhaW5lciBib3VuZHMgaW5pdGlhbGx5XG5cdFx0XHRcdFx0Y29uc3Qgc2l6ZSA9IGNvbXB1dGVJbml0aWFsU2l6ZShjYW52YXMsIHNpemVPcHRpb25zKTtcblx0XHRcdFx0XHRpZiAoIWlzLmVxdShzaXplLCBzdGF0ZS5zaXplLCBzaGFsbG93TG9vc2UpKSB7XG5cdFx0XHRcdFx0XHRzdGF0ZS5zZXRTaXplKHNpemUud2lkdGgsIHNpemUuaGVpZ2h0LCBzaXplLnRvcCwgc2l6ZS5sZWZ0KTtcblx0XHRcdFx0XHR9XG5cblx0XHRcdFx0XHQvLyBDaGVjayBwaXhlbHJhdGlvXG5cdFx0XHRcdFx0aWYgKGRwciAmJiBzdGF0ZS52aWV3cG9ydC5kcHIgIT09IG1ha2VEcHIoZHByKSkgc3RhdGUuc2V0RHByKGRwcik7XG5cdFx0XHRcdFx0Ly8gQ2hlY2sgZnJhbWVsb29wXG5cdFx0XHRcdFx0aWYgKHN0YXRlLmZyYW1lbG9vcCAhPT0gZnJhbWVsb29wKSBzdGF0ZS5zZXRGcmFtZWxvb3AoZnJhbWVsb29wKTtcblxuXHRcdFx0XHRcdGlzQ29uZmlndXJlZCA9IHRydWU7XG5cdFx0XHRcdH0sXG5cdFx0XHR9O1xuXHRcdH07XG5cdH0pO1xufVxuXG5leHBvcnQgdHlwZSBOZ3RDYW52YXNDb25maWd1cmF0b3IgPSBSZXR1cm5UeXBlPFJldHVyblR5cGU8dHlwZW9mIGluamVjdENhbnZhc1Jvb3RJbml0aWFsaXplcj4+O1xuXG5mdW5jdGlvbiBjb21wdXRlSW5pdGlhbFNpemUoY2FudmFzOiBOZ3RDYW52YXNFbGVtZW50LCBkZWZhdWx0U2l6ZT86IE5ndFNpemUpOiBOZ3RTaXplIHtcblx0aWYgKGRlZmF1bHRTaXplKSB7XG5cdFx0cmV0dXJuIGRlZmF1bHRTaXplO1xuXHR9XG5cblx0aWYgKHR5cGVvZiBIVE1MQ2FudmFzRWxlbWVudCAhPT0gJ3VuZGVmaW5lZCcgJiYgY2FudmFzIGluc3RhbmNlb2YgSFRNTENhbnZhc0VsZW1lbnQgJiYgY2FudmFzLnBhcmVudEVsZW1lbnQpIHtcblx0XHRyZXR1cm4gY2FudmFzLnBhcmVudEVsZW1lbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XG5cdH1cblxuXHRpZiAodHlwZW9mIE9mZnNjcmVlbkNhbnZhcyAhPT0gJ3VuZGVmaW5lZCcgJiYgY2FudmFzIGluc3RhbmNlb2YgT2Zmc2NyZWVuQ2FudmFzKSB7XG5cdFx0cmV0dXJuIHsgd2lkdGg6IGNhbnZhcy53aWR0aCwgaGVpZ2h0OiBjYW52YXMuaGVpZ2h0LCB0b3A6IDAsIGxlZnQ6IDAgfTtcblx0fVxuXG5cdHJldHVybiB7IHdpZHRoOiAwLCBoZWlnaHQ6IDAsIHRvcDogMCwgbGVmdDogMCB9O1xufVxuXG4vLyBEaXNwb3NlcyBhbiBvYmplY3QgYW5kIGFsbCBpdHMgcHJvcGVydGllc1xuZXhwb3J0IGZ1bmN0aW9uIGRpc3Bvc2U8VE9iaiBleHRlbmRzIHsgZGlzcG9zZT86ICgpID0+IHZvaWQ7IHR5cGU/OiBzdHJpbmc7IFtrZXk6IHN0cmluZ106IGFueSB9PihvYmo6IFRPYmopIHtcblx0aWYgKG9iai5kaXNwb3NlICYmIG9iai50eXBlICE9PSAnU2NlbmUnKSBvYmouZGlzcG9zZSgpO1xuXHRmb3IgKGNvbnN0IHAgaW4gb2JqKSB7XG5cdFx0KHAgYXMgYW55KS5kaXNwb3NlPy4oKTtcblx0XHRkZWxldGUgb2JqW3BdO1xuXHR9XG59XG4iXX0=
274
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm9vdHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWJzL2NvcmUvc3JjL2xpYi9yb290cy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDNUQsT0FBTyxFQUNOLHFCQUFxQixFQUNyQixjQUFjLEVBQ2QsZUFBZSxFQUNmLGFBQWEsRUFDYixZQUFZLEVBQ1osZ0JBQWdCLEVBQ2hCLFNBQVMsRUFDVCxLQUFLLEVBQ0wsWUFBWSxFQUNaLE9BQU8sR0FDUCxNQUFNLE9BQU8sQ0FBQztBQUNmLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxZQUFZLENBQUM7QUFDckMsT0FBTyxFQUFFLFVBQVUsRUFBRSxLQUFLLEVBQUUsTUFBTSxRQUFRLENBQUM7QUFDM0MsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLFNBQVMsQ0FBQztBQUV0QyxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDakQsT0FBTyxFQUFFLEVBQUUsRUFBRSxNQUFNLFlBQVksQ0FBQztBQUNoQyxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sY0FBYyxDQUFDO0FBRWpGLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRWxELE1BQU0sWUFBWSxHQUFHLEVBQUUsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFrQixDQUFDO0FBRTNFLE1BQU0sVUFBVSwyQkFBMkIsQ0FBQyxRQUFtQjtJQUM5RCxPQUFPLGNBQWMsQ0FBQywyQkFBMkIsRUFBRSxRQUFRLEVBQUUsR0FBRyxFQUFFO1FBQ2pFLE1BQU0sYUFBYSxHQUFHLFdBQVcsRUFBRSxDQUFDO1FBQ3BDLE1BQU0sSUFBSSxHQUFHLFVBQVUsRUFBRSxDQUFDO1FBRTFCLE9BQU8sQ0FBQyxNQUF3QixFQUFFLEVBQUU7WUFDbkMsTUFBTSxLQUFLLEdBQUcsS0FBSyxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsQ0FBQztZQUNoQyxJQUFJLEtBQUssR0FBRyxLQUFLLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBNkIsQ0FBQztZQUUxRCxJQUFJLEtBQUssRUFBRSxDQUFDO2dCQUNYLE9BQU8sQ0FBQyxJQUFJLENBQUMsK0NBQStDLENBQUMsQ0FBQztZQUMvRCxDQUFDO1lBRUQsS0FBSyxLQUFLLGFBQWEsQ0FBQztZQUV4QixJQUFJLENBQUMsS0FBSyxFQUFFLENBQUM7Z0JBQ1osTUFBTSxJQUFJLEtBQUssQ0FBQyw0QkFBNEIsQ0FBQyxDQUFDO1lBQy9DLENBQUM7WUFFRCxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUM7Z0JBQ1osS0FBSyxDQUFDLEdBQUcsQ0FBQyxNQUFNLEVBQUUsS0FBSyxDQUFDLENBQUM7WUFDMUIsQ0FBQztZQUVELElBQUksWUFBWSxHQUFHLEtBQUssQ0FBQztZQUN6QixJQUFJLFVBQXNDLENBQUM7WUFFM0MsT0FBTztnQkFDTixZQUFZO2dCQUNaLE9BQU8sRUFBRSxDQUFDLE9BQU8sR0FBRyxHQUFHLEVBQUUsRUFBRTtvQkFDMUIsTUFBTSxJQUFJLEdBQUcsS0FBSyxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsQ0FBQztvQkFDL0IsSUFBSSxJQUFJLEVBQUUsQ0FBQzt3QkFDVixJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsUUFBUSxFQUFFLEVBQUUsR0FBRyxLQUFLLENBQUMsUUFBUSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQzt3QkFDN0UsVUFBVSxDQUFDLEdBQUcsRUFBRTs0QkFDZixJQUFJLENBQUM7Z0NBQ0osTUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLEdBQUcsRUFBRSxDQUFDO2dDQUN6QixLQUFLLENBQUMsTUFBTSxDQUFDLFVBQVUsRUFBRSxFQUFFLENBQUM7Z0NBQzVCLEtBQUssQ0FBQyxFQUFFLEVBQUUsV0FBVyxFQUFFLE9BQU8sRUFBRSxFQUFFLENBQUM7Z0NBQ25DLEtBQUssQ0FBQyxFQUFFLEVBQUUsZ0JBQWdCLEVBQUUsRUFBRSxDQUFDO2dDQUMvQixJQUFJLEtBQUssQ0FBQyxFQUFFLEVBQUUsRUFBRTtvQ0FBRSxLQUFLLENBQUMsRUFBRSxDQUFDLFVBQVUsRUFBRSxDQUFDO2dDQUN4QyxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUM7Z0NBQ2YsS0FBSyxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQzs0QkFDdEIsQ0FBQzs0QkFBQyxPQUFPLENBQUMsRUFBRSxDQUFDO2dDQUNaLE9BQU8sQ0FBQyxLQUFLLENBQUMscURBQXFELEVBQUUsQ0FBQyxDQUFDLENBQUM7NEJBQ3pFLENBQUM7d0JBQ0YsQ0FBQyxFQUFFLE9BQU8sQ0FBQyxDQUFDO29CQUNiLENBQUM7Z0JBQ0YsQ0FBQztnQkFDRCxTQUFTLEVBQUUsQ0FBQyxNQUF3QixFQUFFLEVBQUU7b0JBQ3ZDLE1BQU0sRUFDTCxPQUFPLEdBQUcsS0FBSyxFQUNmLE1BQU0sR0FBRyxLQUFLLEVBQ2QsSUFBSSxHQUFHLEtBQUssRUFDWixNQUFNLEdBQUcsS0FBSyxFQUNkLFlBQVksR0FBRyxLQUFLLEVBQ3BCLFNBQVMsR0FBRyxRQUFRLEVBQ3BCLEdBQUcsR0FBRyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsRUFDWixFQUFFLEVBQUUsU0FBUyxFQUNiLElBQUksRUFBRSxXQUFXLEVBQ2pCLE1BQU0sRUFBRSxhQUFhLEVBQ3JCLFNBQVMsRUFBRSxnQkFBZ0IsRUFDM0IsS0FBSyxFQUFFLFlBQVksRUFDbkIsTUFBTSxFQUNOLE1BQU0sRUFDTixXQUFXLEdBQ1gsR0FBRyxNQUFNLENBQUM7b0JBRVgsTUFBTSxLQUFLLEdBQUcsS0FBSyxDQUFDLFFBQVEsQ0FBQztvQkFDN0IsTUFBTSxhQUFhLEdBQXNCLEVBQUUsQ0FBQztvQkFFNUMsaUJBQWlCO29CQUNqQixJQUFJLEVBQUUsR0FBRyxLQUFLLENBQUMsRUFBRSxDQUFDO29CQUNsQixJQUFJLENBQUMsS0FBSyxDQUFDLEVBQUU7d0JBQUUsYUFBYSxDQUFDLEVBQUUsR0FBRyxFQUFFLEdBQUcsb0JBQW9CLENBQUMsU0FBUyxFQUFFLE1BQU0sQ0FBQyxDQUFDO29CQUUvRSxrQkFBa0I7b0JBQ2xCLElBQUksU0FBUyxHQUFHLEtBQUssQ0FBQyxTQUFTLENBQUM7b0JBQ2hDLElBQUksQ0FBQyxTQUFTO3dCQUFFLGFBQWEsQ0FBQyxTQUFTLEdBQUcsU0FBUyxHQUFHLElBQUksU0FBUyxFQUFFLENBQUM7b0JBRXRFLHdCQUF3QjtvQkFDeEIsTUFBTSxFQUFFLE1BQU0sRUFBRSxHQUFHLE9BQU8sRUFBRSxHQUFHLGdCQUFnQixJQUFJLEVBQUUsQ0FBQztvQkFDdEQsSUFBSSxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLENBQUM7d0JBQUUsVUFBVSxDQUFDLFNBQVMsRUFBRSxPQUFPLENBQUMsQ0FBQztvQkFDOUUsSUFBSSxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsTUFBTSxFQUFFLFNBQVMsQ0FBQyxNQUFNLEVBQUUsWUFBWSxDQUFDLEVBQUUsQ0FBQzt3QkFDckQsVUFBVSxDQUFDLFNBQVMsRUFBRSxFQUFFLE1BQU0sRUFBRSxFQUFFLEdBQUcsU0FBUyxDQUFDLE1BQU0sRUFBRSxHQUFHLENBQUMsTUFBTSxJQUFJLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDO29CQUMvRSxDQUFDO29CQUVELDREQUE0RDtvQkFDNUQsSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxLQUFLLFVBQVUsSUFBSSxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsVUFBVSxFQUFFLGFBQWEsRUFBRSxZQUFZLENBQUMsQ0FBQyxFQUFFLENBQUM7d0JBQ3hHLFVBQVUsR0FBRyxhQUFhLENBQUM7d0JBQzNCLE1BQU0sUUFBUSxHQUFHLEVBQUUsQ0FBQyxNQUFNLENBQUMsYUFBYSxDQUFDLENBQUM7d0JBQzFDLElBQUksTUFBTSxHQUFHLFFBQVEsQ0FBQyxDQUFDLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQyxrQkFBa0IsQ0FBQyxZQUFZLEVBQUUsV0FBVyxJQUFJLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQzt3QkFFcEcsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDOzRCQUNmLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQzs0QkFDdEIsSUFBSSxhQUFhLEVBQUUsQ0FBQztnQ0FDbkIsVUFBVSxDQUFDLE1BQU0sRUFBRSxhQUFhLENBQUMsQ0FBQztnQ0FDbEMsSUFDQyxRQUFRLElBQUksYUFBYTtvQ0FDekIsTUFBTSxJQUFJLGFBQWE7b0NBQ3ZCLE9BQU8sSUFBSSxhQUFhO29DQUN4QixLQUFLLElBQUksYUFBYTtvQ0FDdEIsUUFBUSxJQUFJLGFBQWEsRUFDeEIsQ0FBQztvQ0FDRixNQUFNLENBQUMsTUFBTSxDQUFDLE1BQU0sRUFBRSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO29DQUN4QyxNQUFNLEVBQUUsc0JBQXNCLEVBQUUsQ0FBQztnQ0FDbEMsQ0FBQzs0QkFDRixDQUFDOzRCQUVELHVEQUF1RDs0QkFDdkQsSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLElBQUksQ0FBQyxhQUFhLEVBQUUsUUFBUSxJQUFJLENBQUMsYUFBYSxFQUFFLFVBQVUsRUFBRSxDQUFDO2dDQUM3RSxJQUFJLEtBQUssQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDO29DQUFFLE1BQU0sQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztxQ0FDckUsSUFBSSxNQUFNLFlBQVksT0FBTztvQ0FBRSxNQUFNLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDOztvQ0FDckQsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDOzRCQUM3QixDQUFDOzRCQUVELDRDQUE0Qzs0QkFDNUMsTUFBTSxDQUFDLHNCQUFzQixFQUFFLEVBQUUsQ0FBQzt3QkFDbkMsQ0FBQzt3QkFFRCxJQUFJLENBQUMsRUFBRSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUM7NEJBQUUsTUFBTSxHQUFHLE9BQU8sQ0FBQyxNQUFNLEVBQUUsRUFBRSxLQUFLLEVBQUUsQ0FBQyxDQUFDO3dCQUU5RCxhQUFhLENBQUMsTUFBTSxHQUFHLE1BQU0sQ0FBQzt3QkFFOUIsc0JBQXNCO3dCQUN0QixnREFBZ0Q7d0JBQ2hELFNBQVMsQ0FBQyxNQUFNLEdBQUcsTUFBTSxDQUFDO29CQUMzQixDQUFDO29CQUVELGdDQUFnQztvQkFDaEMsSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLEVBQUUsQ0FBQzt3QkFDbEIsSUFBSSxLQUFZLENBQUM7d0JBRWpCLElBQUksWUFBWSxZQUFZLEtBQUssRUFBRSxDQUFDOzRCQUNuQyxLQUFLLEdBQUcsWUFBWSxDQUFDO3dCQUN0QixDQUFDOzZCQUFNLENBQUM7NEJBQ1AsS0FBSyxHQUFHLElBQUksS0FBSyxFQUFFLENBQUM7NEJBQ3BCLElBQUksWUFBWTtnQ0FBRSxVQUFVLENBQUMsS0FBSyxFQUFFLFlBQVksQ0FBQyxDQUFDO3dCQUNuRCxDQUFDO3dCQUVELFVBQVUsQ0FBQyxLQUFLLEVBQUU7NEJBQ2pCLFlBQVksRUFBRSxDQUFDLElBQVksRUFBRSxLQUFhLEVBQUUsRUFBRTtnQ0FDN0MsSUFBSSxNQUFNLFlBQVksaUJBQWlCLEVBQUUsQ0FBQztvQ0FDekMsSUFBSSxNQUFNLENBQUMsYUFBYSxFQUFFLENBQUM7d0NBQzFCLE1BQU0sQ0FBQyxhQUFhLENBQUMsWUFBWSxDQUFDLElBQUksRUFBRSxLQUFLLENBQUMsQ0FBQztvQ0FDaEQsQ0FBQzt5Q0FBTSxDQUFDO3dDQUNQLE1BQU0sQ0FBQyxZQUFZLENBQUMsSUFBSSxFQUFFLEtBQUssQ0FBQyxDQUFDO29DQUNsQyxDQUFDO2dDQUNGLENBQUM7NEJBQ0YsQ0FBQzt5QkFDRCxDQUFDLENBQUM7d0JBRUgsYUFBYSxDQUFDLEtBQUssR0FBRyxPQUFPLENBQUMsS0FBSyxFQUFFLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQztvQkFDakQsQ0FBQztvQkFFRCw2QkFBNkI7b0JBQzdCLElBQUksQ0FBQyxLQUFLLENBQUMsRUFBRSxFQUFFLENBQUM7d0JBQ2YsaUNBQWlDO3dCQUNqQyxNQUFNLGFBQWEsR0FBMkIsQ0FBQyxTQUFpQixFQUFFLEtBQWUsRUFBRSxFQUFFOzRCQUNwRixNQUFNLEtBQUssR0FBRyxLQUFLLENBQUMsUUFBUSxDQUFDOzRCQUM3QixJQUFJLEtBQUssQ0FBQyxTQUFTLEtBQUssT0FBTztnQ0FBRSxPQUFPOzRCQUN4QyxJQUFJLENBQUMsT0FBTyxDQUFDLFNBQVMsRUFBRSxJQUFJLEVBQUUsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDO3dCQUM3QyxDQUFDLENBQUM7d0JBRUYscUNBQXFDO3dCQUNyQyxNQUFNLG1CQUFtQixHQUFHLEdBQUcsRUFBRTs0QkFDaEMsTUFBTSxLQUFLLEdBQUcsS0FBSyxDQUFDLFFBQVEsQ0FBQzs0QkFDN0IsS0FBSyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsT0FBTyxHQUFHLEtBQUssQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLFlBQVksQ0FBQzs0QkFDL0MsS0FBSyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsZ0JBQWdCLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDOzRCQUM5RSxJQUFJLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsWUFBWTtnQ0FBRSxJQUFJLENBQUMsVUFBVSxDQUFDLEtBQUssQ0FBQyxDQUFDO3dCQUN2RCxDQUFDLENBQUM7d0JBRUYsd0JBQXdCO3dCQUN4QixNQUFNLEVBQUUsR0FBRzs0QkFDVixPQUFPLEVBQUUsR0FBRyxFQUFFO2dDQUNiLEVBQUUsQ0FBQyxFQUFFLENBQUMsZ0JBQWdCLENBQUMsY0FBYyxFQUFFLG1CQUFtQixDQUFDLENBQUM7Z0NBQzVELEVBQUUsQ0FBQyxFQUFFLENBQUMsZ0JBQWdCLENBQUMsWUFBWSxFQUFFLG1CQUFtQixDQUFDLENBQUM7NEJBQzNELENBQUM7NEJBQ0QsVUFBVSxFQUFFLEdBQUcsRUFBRTtnQ0FDaEIsRUFBRSxDQUFDLEVBQUUsQ0FBQyxtQkFBbUIsQ0FBQyxjQUFjLEVBQUUsbUJBQW1CLENBQUMsQ0FBQztnQ0FDL0QsRUFBRSxDQUFDLEVBQUUsQ0FBQyxtQkFBbUIsQ0FBQyxZQUFZLEVBQUUsbUJBQW1CLENBQUMsQ0FBQzs0QkFDOUQsQ0FBQzt5QkFDRCxDQUFDO3dCQUVGLG9DQUFvQzt3QkFDcEMsSUFBSSxFQUFFLENBQUMsRUFBRSxJQUFJLE9BQU8sRUFBRSxDQUFDLEVBQUUsQ0FBQyxnQkFBZ0IsS0FBSyxVQUFVOzRCQUFFLEVBQUUsQ0FBQyxPQUFPLEVBQUUsQ0FBQzt3QkFDeEUsYUFBYSxDQUFDLEVBQUUsR0FBRyxFQUFFLENBQUM7b0JBQ3ZCLENBQUM7b0JBRUQsZ0JBQWdCO29CQUNoQixJQUFJLEVBQUUsQ0FBQyxTQUFTLEVBQUUsQ0FBQzt3QkFDbEIsTUFBTSxVQUFVLEdBQUcsRUFBRSxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUM7d0JBQ3hDLE1BQU0sT0FBTyxHQUFHLEVBQUUsQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDO3dCQUNsQyxFQUFFLENBQUMsU0FBUyxDQUFDLE9BQU8sR0FBRyxDQUFDLENBQUMsT0FBTyxDQUFDO3dCQUVqQyxJQUFJLE9BQU8sT0FBTyxLQUFLLFNBQVMsRUFBRSxDQUFDOzRCQUNsQyxFQUFFLENBQUMsU0FBUyxDQUFDLElBQUksR0FBRyxnQkFBZ0IsQ0FBQzt3QkFDdEMsQ0FBQzs2QkFBTSxJQUFJLE9BQU8sT0FBTyxLQUFLLFFBQVEsRUFBRSxDQUFDOzRCQUN4QyxNQUFNLEtBQUssR0FBRztnQ0FDYixLQUFLLEVBQUUsY0FBYztnQ0FDckIsVUFBVSxFQUFFLFlBQVk7Z0NBQ3hCLElBQUksRUFBRSxnQkFBZ0I7Z0NBQ3RCLFFBQVEsRUFBRSxZQUFZOzZCQUN0QixDQUFDOzRCQUNGLEVBQUUsQ0FBQyxTQUFTLENBQUMsSUFBSSxHQUFHLEtBQUssQ0FBQyxPQUFPLENBQUMsSUFBSSxnQkFBZ0IsQ0FBQzt3QkFDeEQsQ0FBQzs2QkFBTSxJQUFJLEVBQUUsQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQzs0QkFDNUIsTUFBTSxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsU0FBUyxFQUFFLE9BQU8sQ0FBQyxDQUFDO3dCQUN0QyxDQUFDO3dCQUVELElBQUksVUFBVSxLQUFLLEVBQUUsQ0FBQyxTQUFTLENBQUMsT0FBTyxJQUFJLE9BQU8sS0FBSyxFQUFFLENBQUMsU0FBUyxDQUFDLElBQUk7NEJBQUUsZ0JBQWdCLENBQUMsRUFBRSxDQUFDLFNBQVMsQ0FBQyxDQUFDO29CQUMxRyxDQUFDO29CQUVELDRDQUE0QztvQkFDNUMsbUVBQW1FO29CQUNuRSxJQUFJLGVBQWUsRUFBRSxDQUFDO3dCQUNyQixNQUFNLGVBQWUsR0FBRyxlQUErQixDQUFDO3dCQUN4RCxJQUFJLFNBQVMsSUFBSSxlQUFlOzRCQUFFLGVBQWUsQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQzs2QkFDbEUsSUFBSSxZQUFZLElBQUksZUFBZTs0QkFBRSxlQUFlLENBQUMsWUFBWSxDQUFDLEdBQUcsTUFBTSxDQUFDO29CQUNsRixDQUFDO29CQUVELElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQzt3QkFDbkIsbURBQW1EO3dCQUNuRCxNQUFNLGNBQWMsR0FBRyxJQUFJLENBQUM7d0JBQzVCLE1BQU0sWUFBWSxHQUFHLElBQUksQ0FBQzt3QkFDMUIsVUFBVSxDQUFDLEVBQUUsRUFBRTs0QkFDZCxjQUFjLEVBQUUsTUFBTSxDQUFDLENBQUMsQ0FBQyxjQUFjLENBQUMsQ0FBQyxDQUFDLFlBQVk7NEJBQ3RELFdBQVcsRUFBRSxJQUFJLENBQUMsQ0FBQyxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMscUJBQXFCO3lCQUN6RCxDQUFDLENBQUM7b0JBQ0osQ0FBQztvQkFFRCxnQ0FBZ0M7b0JBQ2hDLElBQUksS0FBSyxDQUFDLE1BQU0sS0FBSyxNQUFNO3dCQUFFLGFBQWEsQ0FBQyxNQUFNLEdBQUcsTUFBTSxDQUFDO29CQUMzRCxJQUFJLEtBQUssQ0FBQyxNQUFNLEtBQUssTUFBTTt3QkFBRSxhQUFhLENBQUMsTUFBTSxHQUFHLE1BQU0sQ0FBQztvQkFDM0QsSUFBSSxLQUFLLENBQUMsSUFBSSxLQUFLLElBQUk7d0JBQUUsYUFBYSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUM7b0JBRW5ELGVBQWU7b0JBQ2YsSUFBSSxFQUFFLENBQUMsYUFBYSxFQUFFLENBQUM7d0JBQ3RCLEVBQUUsQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDLENBQUM7b0JBQ3JCLENBQUM7b0JBQ0QsRUFBRSxDQUFDLGFBQWEsQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO29CQUM5QyxFQUFFLENBQUMsT0FBTyxDQUFDLFdBQVcsRUFBRSxLQUFLLElBQUksS0FBSyxDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUUsV0FBVyxFQUFFLE1BQU0sSUFBSSxLQUFLLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO29CQUU3RixJQUNDLEVBQUUsQ0FBQyxHQUFHLENBQUMsU0FBUyxDQUFDO3dCQUNqQixDQUFDLENBQUMsT0FBTyxTQUFTLEtBQUssVUFBVSxDQUFDO3dCQUNsQyxDQUFDLEVBQUUsQ0FBQyxRQUFRLENBQUMsU0FBUyxDQUFDO3dCQUN2QixDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsU0FBUyxFQUFFLEVBQUUsRUFBRSxZQUFZLENBQUMsRUFDbkMsQ0FBQzt3QkFDRixVQUFVLENBQUMsRUFBRSxFQUFFLFNBQVMsQ0FBQyxDQUFDO29CQUMzQixDQUFDO29CQUVELDBCQUEwQjtvQkFDMUIsSUFBSSxNQUFNLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLFFBQVE7d0JBQUUsYUFBYSxDQUFDLE1BQU0sR0FBRyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUM7b0JBRTNFLG9CQUFvQjtvQkFDcEIsSUFBSSxXQUFXLElBQUksQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLFdBQVcsRUFBRSxLQUFLLENBQUMsV0FBVyxFQUFFLFlBQVksQ0FBQyxFQUFFLENBQUM7d0JBQzFFLGFBQWEsQ0FBQyxXQUFXLEdBQUcsRUFBRSxHQUFHLEtBQUssQ0FBQyxXQUFXLEVBQUUsR0FBRyxXQUFXLEVBQUUsQ0FBQztvQkFDdEUsQ0FBQztvQkFFRCxJQUFJLE1BQU0sQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLENBQUMsTUFBTSxFQUFFLENBQUM7d0JBQ3ZDLEtBQUssQ0FBQyxNQUFNLENBQUMsYUFBYSxDQUFDLENBQUM7b0JBQzdCLENBQUM7b0JBRUQsNkRBQTZEO29CQUM3RCxNQUFNLElBQUksR0FBRyxrQkFBa0IsQ0FBQyxNQUFNLEVBQUUsV0FBVyxDQUFDLENBQUM7b0JBQ3JELElBQUksQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLElBQUksRUFBRSxLQUFLLENBQUMsSUFBSSxFQUFFLFlBQVksQ0FBQyxFQUFFLENBQUM7d0JBQzdDLEtBQUssQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRSxJQUFJLENBQUMsTUFBTSxFQUFFLElBQUksQ0FBQyxHQUFHLEVBQUUsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO29CQUM3RCxDQUFDO29CQUVELG1CQUFtQjtvQkFDbkIsSUFBSSxHQUFHLElBQUksS0FBSyxDQUFDLFFBQVEsQ0FBQyxHQUFHLEtBQUssT0FBTyxDQUFDLEdBQUcsQ0FBQzt3QkFBRSxLQUFLLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDO29CQUNsRSxrQkFBa0I7b0JBQ2xCLElBQUksS0FBSyxDQUFDLFNBQVMsS0FBSyxTQUFTO3dCQUFFLEtBQUssQ0FBQyxZQUFZLENBQUMsU0FBUyxDQUFDLENBQUM7b0JBRWpFLFlBQVksR0FBRyxJQUFJLENBQUM7Z0JBQ3JCLENBQUM7YUFDRCxDQUFDO1FBQ0gsQ0FBQyxDQUFDO0lBQ0gsQ0FBQyxDQUFDLENBQUM7QUFDSixDQUFDO0FBSUQsU0FBUyxrQkFBa0IsQ0FBQyxNQUF3QixFQUFFLFdBQXFCO0lBQzFFLElBQUksV0FBVztRQUFFLE9BQU8sV0FBVyxDQUFDO0lBRXBDLElBQUksT0FBTyxpQkFBaUIsS0FBSyxXQUFXLElBQUksTUFBTSxZQUFZLGlCQUFpQixJQUFJLE1BQU0sQ0FBQyxhQUFhLEVBQUUsQ0FBQztRQUM3RyxPQUFPLE1BQU0sQ0FBQyxhQUFhLENBQUMscUJBQXFCLEVBQUUsQ0FBQztJQUNyRCxDQUFDO0lBRUQsSUFBSSxPQUFPLGVBQWUsS0FBSyxXQUFXLElBQUksTUFBTSxZQUFZLGVBQWUsRUFBRSxDQUFDO1FBQ2pGLE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSxDQUFDLEtBQUssRUFBRSxNQUFNLEVBQUUsTUFBTSxDQUFDLE1BQU0sRUFBRSxHQUFHLEVBQUUsQ0FBQyxFQUFFLElBQUksRUFBRSxDQUFDLEVBQUUsQ0FBQztJQUN4RSxDQUFDO0lBRUQsT0FBTyxFQUFFLEtBQUssRUFBRSxDQUFDLEVBQUUsTUFBTSxFQUFFLENBQUMsRUFBRSxHQUFHLEVBQUUsQ0FBQyxFQUFFLElBQUksRUFBRSxDQUFDLEVBQUUsQ0FBQztBQUNqRCxDQUFDO0FBRUQsNENBQTRDO0FBQzVDLE1BQU0sVUFBVSxPQUFPLENBQTJFLEdBQVM7SUFDMUcsSUFBSSxHQUFHLENBQUMsT0FBTyxJQUFJLEdBQUcsQ0FBQyxJQUFJLEtBQUssT0FBTztRQUFFLEdBQUcsQ0FBQyxPQUFPLEVBQUUsQ0FBQztJQUN2RCxLQUFLLE1BQU0sQ0FBQyxJQUFJLEdBQUcsRUFBRSxDQUFDO1FBQ3BCLENBQVMsQ0FBQyxPQUFPLEVBQUUsRUFBRSxDQUFDO1FBQ3ZCLE9BQU8sR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ2YsQ0FBQztBQUNGLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RvciB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgYXNzZXJ0SW5qZWN0b3IgfSBmcm9tICduZ3h0ZW5zaW9uL2Fzc2VydC1pbmplY3Rvcic7XG5pbXBvcnQge1xuXHRBQ0VTRmlsbWljVG9uZU1hcHBpbmcsXG5cdEJhc2ljU2hhZG93TWFwLFxuXHRDb2xvck1hbmFnZW1lbnQsXG5cdE5vVG9uZU1hcHBpbmcsXG5cdFBDRlNoYWRvd01hcCxcblx0UENGU29mdFNoYWRvd01hcCxcblx0UmF5Y2FzdGVyLFxuXHRTY2VuZSxcblx0VlNNU2hhZG93TWFwLFxuXHRWZWN0b3IzLFxufSBmcm9tICd0aHJlZSc7XG5pbXBvcnQgeyBwcmVwYXJlIH0gZnJvbSAnLi9pbnN0YW5jZSc7XG5pbXBvcnQgeyBpbmplY3RMb29wLCByb290cyB9IGZyb20gJy4vbG9vcCc7XG5pbXBvcnQgeyBpbmplY3RTdG9yZSB9IGZyb20gJy4vc3RvcmUnO1xuaW1wb3J0IHsgTmd0QW55UmVjb3JkLCBOZ3RDYW52YXNFbGVtZW50LCBOZ3RDYW52YXNPcHRpb25zLCBOZ3RFcXVDb25maWcsIE5ndFNpemUsIE5ndFN0YXRlIH0gZnJvbSAnLi90eXBlcyc7XG5pbXBvcnQgeyBhcHBseVByb3BzIH0gZnJvbSAnLi91dGlscy9hcHBseS1wcm9wcyc7XG5pbXBvcnQgeyBpcyB9IGZyb20gJy4vdXRpbHMvaXMnO1xuaW1wb3J0IHsgbWFrZUNhbWVyYUluc3RhbmNlLCBtYWtlRHByLCBtYWtlUmVuZGVyZXJJbnN0YW5jZSB9IGZyb20gJy4vdXRpbHMvbWFrZSc7XG5pbXBvcnQgeyBOZ3RTaWduYWxTdG9yZSB9IGZyb20gJy4vdXRpbHMvc2lnbmFsLXN0b3JlJztcbmltcG9ydCB7IGNoZWNrTmVlZHNVcGRhdGUgfSBmcm9tICcuL3V0aWxzL3VwZGF0ZSc7XG5cbmNvbnN0IHNoYWxsb3dMb29zZSA9IHsgb2JqZWN0czogJ3NoYWxsb3cnLCBzdHJpY3Q6IGZhbHNlIH0gYXMgTmd0RXF1Q29uZmlnO1xuXG5leHBvcnQgZnVuY3Rpb24gaW5qZWN0Q2FudmFzUm9vdEluaXRpYWxpemVyKGluamVjdG9yPzogSW5qZWN0b3IpIHtcblx0cmV0dXJuIGFzc2VydEluamVjdG9yKGluamVjdENhbnZhc1Jvb3RJbml0aWFsaXplciwgaW5qZWN0b3IsICgpID0+IHtcblx0XHRjb25zdCBpbmplY3RlZFN0b3JlID0gaW5qZWN0U3RvcmUoKTtcblx0XHRjb25zdCBsb29wID0gaW5qZWN0TG9vcCgpO1xuXG5cdFx0cmV0dXJuIChjYW52YXM6IE5ndENhbnZhc0VsZW1lbnQpID0+IHtcblx0XHRcdGNvbnN0IGV4aXN0ID0gcm9vdHMuaGFzKGNhbnZhcyk7XG5cdFx0XHRsZXQgc3RvcmUgPSByb290cy5nZXQoY2FudmFzKSBhcyBOZ3RTaWduYWxTdG9yZTxOZ3RTdGF0ZT47XG5cblx0XHRcdGlmIChzdG9yZSkge1xuXHRcdFx0XHRjb25zb2xlLndhcm4oJ1tOR1RdIFNhbWUgY2FudmFzIHJvb3QgaXMgYmVpbmcgY3JlYXRlZCB0d2ljZScpO1xuXHRcdFx0fVxuXG5cdFx0XHRzdG9yZSB8fD0gaW5qZWN0ZWRTdG9yZTtcblxuXHRcdFx0aWYgKCFzdG9yZSkge1xuXHRcdFx0XHR0aHJvdyBuZXcgRXJyb3IoJ1tOR1RdIE5vIHN0b3JlIGluaXRpYWxpemVkJyk7XG5cdFx0XHR9XG5cblx0XHRcdGlmICghZXhpc3QpIHtcblx0XHRcdFx0cm9vdHMuc2V0KGNhbnZhcywgc3RvcmUpO1xuXHRcdFx0fVxuXG5cdFx0XHRsZXQgaXNDb25maWd1cmVkID0gZmFsc2U7XG5cdFx0XHRsZXQgbGFzdENhbWVyYTogTmd0Q2FudmFzT3B0aW9uc1snY2FtZXJhJ107XG5cblx0XHRcdHJldHVybiB7XG5cdFx0XHRcdGlzQ29uZmlndXJlZCxcblx0XHRcdFx0ZGVzdHJveTogKHRpbWVvdXQgPSA1MDApID0+IHtcblx0XHRcdFx0XHRjb25zdCByb290ID0gcm9vdHMuZ2V0KGNhbnZhcyk7XG5cdFx0XHRcdFx0aWYgKHJvb3QpIHtcblx0XHRcdFx0XHRcdHJvb3QudXBkYXRlKChzdGF0ZSkgPT4gKHsgaW50ZXJuYWw6IHsgLi4uc3RhdGUuaW50ZXJuYWwsIGFjdGl2ZTogZmFsc2UgfSB9KSk7XG5cdFx0XHRcdFx0XHRzZXRUaW1lb3V0KCgpID0+IHtcblx0XHRcdFx0XHRcdFx0dHJ5IHtcblx0XHRcdFx0XHRcdFx0XHRjb25zdCBzdGF0ZSA9IHJvb3QuZ2V0KCk7XG5cdFx0XHRcdFx0XHRcdFx0c3RhdGUuZXZlbnRzLmRpc2Nvbm5lY3Q/LigpO1xuXHRcdFx0XHRcdFx0XHRcdHN0YXRlLmdsPy5yZW5kZXJMaXN0cz8uZGlzcG9zZT8uKCk7XG5cdFx0XHRcdFx0XHRcdFx0c3RhdGUuZ2w/LmZvcmNlQ29udGV4dExvc3M/LigpO1xuXHRcdFx0XHRcdFx0XHRcdGlmIChzdGF0ZS5nbD8ueHIpIHN0YXRlLnhyLmRpc2Nvbm5lY3QoKTtcblx0XHRcdFx0XHRcdFx0XHRkaXNwb3NlKHN0YXRlKTtcblx0XHRcdFx0XHRcdFx0XHRyb290cy5kZWxldGUoY2FudmFzKTtcblx0XHRcdFx0XHRcdFx0fSBjYXRjaCAoZSkge1xuXHRcdFx0XHRcdFx0XHRcdGNvbnNvbGUuZXJyb3IoJ1tOR1RdIFVuZXhwZWN0ZWQgZXJyb3Igd2hpbGUgZGVzdHJveWluZyBDYW52YXMgUm9vdCcsIGUpO1xuXHRcdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHR9LCB0aW1lb3V0KTtcblx0XHRcdFx0XHR9XG5cdFx0XHRcdH0sXG5cdFx0XHRcdGNvbmZpZ3VyZTogKGlucHV0czogTmd0Q2FudmFzT3B0aW9ucykgPT4ge1xuXHRcdFx0XHRcdGNvbnN0IHtcblx0XHRcdFx0XHRcdHNoYWRvd3MgPSBmYWxzZSxcblx0XHRcdFx0XHRcdGxpbmVhciA9IGZhbHNlLFxuXHRcdFx0XHRcdFx0ZmxhdCA9IGZhbHNlLFxuXHRcdFx0XHRcdFx0bGVnYWN5ID0gZmFsc2UsXG5cdFx0XHRcdFx0XHRvcnRob2dyYXBoaWMgPSBmYWxzZSxcblx0XHRcdFx0XHRcdGZyYW1lbG9vcCA9ICdhbHdheXMnLFxuXHRcdFx0XHRcdFx0ZHByID0gWzEsIDJdLFxuXHRcdFx0XHRcdFx0Z2w6IGdsT3B0aW9ucyxcblx0XHRcdFx0XHRcdHNpemU6IHNpemVPcHRpb25zLFxuXHRcdFx0XHRcdFx0Y2FtZXJhOiBjYW1lcmFPcHRpb25zLFxuXHRcdFx0XHRcdFx0cmF5Y2FzdGVyOiByYXljYXN0ZXJPcHRpb25zLFxuXHRcdFx0XHRcdFx0c2NlbmU6IHNjZW5lT3B0aW9ucyxcblx0XHRcdFx0XHRcdGV2ZW50cyxcblx0XHRcdFx0XHRcdGxvb2tBdCxcblx0XHRcdFx0XHRcdHBlcmZvcm1hbmNlLFxuXHRcdFx0XHRcdH0gPSBpbnB1dHM7XG5cblx0XHRcdFx0XHRjb25zdCBzdGF0ZSA9IHN0b3JlLnNuYXBzaG90O1xuXHRcdFx0XHRcdGNvbnN0IHN0YXRlVG9VcGRhdGU6IFBhcnRpYWw8Tmd0U3RhdGU+ID0ge307XG5cblx0XHRcdFx0XHQvLyBzZXR1cCByZW5kZXJlclxuXHRcdFx0XHRcdGxldCBnbCA9IHN0YXRlLmdsO1xuXHRcdFx0XHRcdGlmICghc3RhdGUuZ2wpIHN0YXRlVG9VcGRhdGUuZ2wgPSBnbCA9IG1ha2VSZW5kZXJlckluc3RhbmNlKGdsT3B0aW9ucywgY2FudmFzKTtcblxuXHRcdFx0XHRcdC8vIHNldHVwIHJheWNhc3RlclxuXHRcdFx0XHRcdGxldCByYXljYXN0ZXIgPSBzdGF0ZS5yYXljYXN0ZXI7XG5cdFx0XHRcdFx0aWYgKCFyYXljYXN0ZXIpIHN0YXRlVG9VcGRhdGUucmF5Y2FzdGVyID0gcmF5Y2FzdGVyID0gbmV3IFJheWNhc3RlcigpO1xuXG5cdFx0XHRcdFx0Ly8gc2V0IHJheWNhc3RlciBvcHRpb25zXG5cdFx0XHRcdFx0Y29uc3QgeyBwYXJhbXMsIC4uLm9wdGlvbnMgfSA9IHJheWNhc3Rlck9wdGlvbnMgfHwge307XG5cdFx0XHRcdFx0aWYgKCFpcy5lcXUob3B0aW9ucywgcmF5Y2FzdGVyLCBzaGFsbG93TG9vc2UpKSBhcHBseVByb3BzKHJheWNhc3Rlciwgb3B0aW9ucyk7XG5cdFx0XHRcdFx0aWYgKCFpcy5lcXUocGFyYW1zLCByYXljYXN0ZXIucGFyYW1zLCBzaGFsbG93TG9vc2UpKSB7XG5cdFx0XHRcdFx0XHRhcHBseVByb3BzKHJheWNhc3RlciwgeyBwYXJhbXM6IHsgLi4ucmF5Y2FzdGVyLnBhcmFtcywgLi4uKHBhcmFtcyB8fCB7fSkgfSB9KTtcblx0XHRcdFx0XHR9XG5cblx0XHRcdFx0XHQvLyBDcmVhdGUgZGVmYXVsdCBjYW1lcmEsIGRvbid0IG92ZXJ3cml0ZSBhbnkgdXNlci1zZXQgc3RhdGVcblx0XHRcdFx0XHRpZiAoIXN0YXRlLmNhbWVyYSB8fCAoc3RhdGUuY2FtZXJhID09PSBsYXN0Q2FtZXJhICYmICFpcy5lcXUobGFzdENhbWVyYSwgY2FtZXJhT3B0aW9ucywgc2hhbGxvd0xvb3NlKSkpIHtcblx0XHRcdFx0XHRcdGxhc3RDYW1lcmEgPSBjYW1lcmFPcHRpb25zO1xuXHRcdFx0XHRcdFx0Y29uc3QgaXNDYW1lcmEgPSBpcy5jYW1lcmEoY2FtZXJhT3B0aW9ucyk7XG5cdFx0XHRcdFx0XHRsZXQgY2FtZXJhID0gaXNDYW1lcmEgPyBjYW1lcmFPcHRpb25zIDogbWFrZUNhbWVyYUluc3RhbmNlKG9ydGhvZ3JhcGhpYywgc2l6ZU9wdGlvbnMgPz8gc3RhdGUuc2l6ZSk7XG5cblx0XHRcdFx0XHRcdGlmICghaXNDYW1lcmEpIHtcblx0XHRcdFx0XHRcdFx0Y2FtZXJhLnBvc2l0aW9uLnogPSA1O1xuXHRcdFx0XHRcdFx0XHRpZiAoY2FtZXJhT3B0aW9ucykge1xuXHRcdFx0XHRcdFx0XHRcdGFwcGx5UHJvcHMoY2FtZXJhLCBjYW1lcmFPcHRpb25zKTtcblx0XHRcdFx0XHRcdFx0XHRpZiAoXG5cdFx0XHRcdFx0XHRcdFx0XHQnYXNwZWN0JyBpbiBjYW1lcmFPcHRpb25zIHx8XG5cdFx0XHRcdFx0XHRcdFx0XHQnbGVmdCcgaW4gY2FtZXJhT3B0aW9ucyB8fFxuXHRcdFx0XHRcdFx0XHRcdFx0J3JpZ2h0JyBpbiBjYW1lcmFPcHRpb25zIHx8XG5cdFx0XHRcdFx0XHRcdFx0XHQndG9wJyBpbiBjYW1lcmFPcHRpb25zIHx8XG5cdFx0XHRcdFx0XHRcdFx0XHQnYm90dG9tJyBpbiBjYW1lcmFPcHRpb25zXG5cdFx0XHRcdFx0XHRcdFx0KSB7XG5cdFx0XHRcdFx0XHRcdFx0XHRPYmplY3QuYXNzaWduKGNhbWVyYSwgeyBtYW51YWw6IHRydWUgfSk7XG5cdFx0XHRcdFx0XHRcdFx0XHRjYW1lcmE/LnVwZGF0ZVByb2plY3Rpb25NYXRyaXgoKTtcblx0XHRcdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHRcdH1cblxuXHRcdFx0XHRcdFx0XHQvLyBhbHdheXMgbG9vayBhdCBjZW50ZXIgb3IgcGFzc2VkLWluIGxvb2tBdCBieSBkZWZhdWx0XG5cdFx0XHRcdFx0XHRcdGlmICghc3RhdGUuY2FtZXJhICYmICFjYW1lcmFPcHRpb25zPy5yb3RhdGlvbiAmJiAhY2FtZXJhT3B0aW9ucz8ucXVhdGVybmlvbikge1xuXHRcdFx0XHRcdFx0XHRcdGlmIChBcnJheS5pc0FycmF5KGxvb2tBdCkpIGNhbWVyYS5sb29rQXQobG9va0F0WzBdLCBsb29rQXRbMV0sIGxvb2tBdFsyXSk7XG5cdFx0XHRcdFx0XHRcdFx0ZWxzZSBpZiAobG9va0F0IGluc3RhbmNlb2YgVmVjdG9yMykgY2FtZXJhLmxvb2tBdChsb29rQXQpO1xuXHRcdFx0XHRcdFx0XHRcdGVsc2UgY2FtZXJhLmxvb2tBdCgwLCAwLCAwKTtcblx0XHRcdFx0XHRcdFx0fVxuXG5cdFx0XHRcdFx0XHRcdC8vIHVwZGF0ZSBwcm9qZWN0aW9uIG1hdHJpeCBhZnRlciBhcHBseXByb3BzXG5cdFx0XHRcdFx0XHRcdGNhbWVyYS51cGRhdGVQcm9qZWN0aW9uTWF0cml4Py4oKTtcblx0XHRcdFx0XHRcdH1cblxuXHRcdFx0XHRcdFx0aWYgKCFpcy5pbnN0YW5jZShjYW1lcmEpKSBjYW1lcmEgPSBwcmVwYXJlKGNhbWVyYSwgeyBzdG9yZSB9KTtcblxuXHRcdFx0XHRcdFx0c3RhdGVUb1VwZGF0ZS5jYW1lcmEgPSBjYW1lcmE7XG5cblx0XHRcdFx0XHRcdC8vIENvbmZpZ3VyZSByYXljYXN0ZXJcblx0XHRcdFx0XHRcdC8vIGh0dHBzOi8vZ2l0aHViLmNvbS9wbW5kcnMvcmVhY3QteHIvaXNzdWVzLzMwMFxuXHRcdFx0XHRcdFx0cmF5Y2FzdGVyLmNhbWVyYSA9IGNhbWVyYTtcblx0XHRcdFx0XHR9XG5cblx0XHRcdFx0XHQvLyBTZXQgdXAgc2NlbmUgKG9uZSB0aW1lIG9ubHkhKVxuXHRcdFx0XHRcdGlmICghc3RhdGUuc2NlbmUpIHtcblx0XHRcdFx0XHRcdGxldCBzY2VuZTogU2NlbmU7XG5cblx0XHRcdFx0XHRcdGlmIChzY2VuZU9wdGlvbnMgaW5zdGFuY2VvZiBTY2VuZSkge1xuXHRcdFx0XHRcdFx0XHRzY2VuZSA9IHNjZW5lT3B0aW9ucztcblx0XHRcdFx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdFx0XHRcdHNjZW5lID0gbmV3IFNjZW5lKCk7XG5cdFx0XHRcdFx0XHRcdGlmIChzY2VuZU9wdGlvbnMpIGFwcGx5UHJvcHMoc2NlbmUsIHNjZW5lT3B0aW9ucyk7XG5cdFx0XHRcdFx0XHR9XG5cblx0XHRcdFx0XHRcdGFwcGx5UHJvcHMoc2NlbmUsIHtcblx0XHRcdFx0XHRcdFx0c2V0QXR0cmlidXRlOiAobmFtZTogc3RyaW5nLCB2YWx1ZTogc3RyaW5nKSA9PiB7XG5cdFx0XHRcdFx0XHRcdFx0aWYgKGNhbnZhcyBpbnN0YW5jZW9mIEhUTUxDYW52YXNFbGVtZW50KSB7XG5cdFx0XHRcdFx0XHRcdFx0XHRpZiAoY2FudmFzLnBhcmVudEVsZW1lbnQpIHtcblx0XHRcdFx0XHRcdFx0XHRcdFx0Y2FudmFzLnBhcmVudEVsZW1lbnQuc2V0QXR0cmlidXRlKG5hbWUsIHZhbHVlKTtcblx0XHRcdFx0XHRcdFx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdFx0XHRcdFx0XHRcdGNhbnZhcy5zZXRBdHRyaWJ1dGUobmFtZSwgdmFsdWUpO1xuXHRcdFx0XHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcdFx0fSxcblx0XHRcdFx0XHRcdH0pO1xuXG5cdFx0XHRcdFx0XHRzdGF0ZVRvVXBkYXRlLnNjZW5lID0gcHJlcGFyZShzY2VuZSwgeyBzdG9yZSB9KTtcblx0XHRcdFx0XHR9XG5cblx0XHRcdFx0XHQvLyBTZXQgdXAgWFIgKG9uZSB0aW1lIG9ubHkhKVxuXHRcdFx0XHRcdGlmICghc3RhdGUueHIpIHtcblx0XHRcdFx0XHRcdC8vIEhhbmRsZSBmcmFtZSBiZWhhdmlvciBpbiBXZWJYUlxuXHRcdFx0XHRcdFx0Y29uc3QgaGFuZGxlWFJGcmFtZTogWFJGcmFtZVJlcXVlc3RDYWxsYmFjayA9ICh0aW1lc3RhbXA6IG51bWJlciwgZnJhbWU/OiBYUkZyYW1lKSA9PiB7XG5cdFx0XHRcdFx0XHRcdGNvbnN0IHN0YXRlID0gc3RvcmUuc25hcHNob3Q7XG5cdFx0XHRcdFx0XHRcdGlmIChzdGF0ZS5mcmFtZWxvb3AgPT09ICduZXZlcicpIHJldHVybjtcblx0XHRcdFx0XHRcdFx0bG9vcC5hZHZhbmNlKHRpbWVzdGFtcCwgdHJ1ZSwgc3RvcmUsIGZyYW1lKTtcblx0XHRcdFx0XHRcdH07XG5cblx0XHRcdFx0XHRcdC8vIFRvZ2dsZSByZW5kZXIgc3dpdGNoaW5nIG9uIHNlc3Npb25cblx0XHRcdFx0XHRcdGNvbnN0IGhhbmRsZVNlc3Npb25DaGFuZ2UgPSAoKSA9PiB7XG5cdFx0XHRcdFx0XHRcdGNvbnN0IHN0YXRlID0gc3RvcmUuc25hcHNob3Q7XG5cdFx0XHRcdFx0XHRcdHN0YXRlLmdsLnhyLmVuYWJsZWQgPSBzdGF0ZS5nbC54ci5pc1ByZXNlbnRpbmc7XG5cdFx0XHRcdFx0XHRcdHN0YXRlLmdsLnhyLnNldEFuaW1hdGlvbkxvb3Aoc3RhdGUuZ2wueHIuaXNQcmVzZW50aW5nID8gaGFuZGxlWFJGcmFtZSA6IG51bGwpO1xuXHRcdFx0XHRcdFx0XHRpZiAoIXN0YXRlLmdsLnhyLmlzUHJlc2VudGluZykgbG9vcC5pbnZhbGlkYXRlKHN0b3JlKTtcblx0XHRcdFx0XHRcdH07XG5cblx0XHRcdFx0XHRcdC8vIFdlYlhSIHNlc3Npb24gbWFuYWdlclxuXHRcdFx0XHRcdFx0Y29uc3QgeHIgPSB7XG5cdFx0XHRcdFx0XHRcdGNvbm5lY3Q6ICgpID0+IHtcblx0XHRcdFx0XHRcdFx0XHRnbC54ci5hZGRFdmVudExpc3RlbmVyKCdzZXNzaW9uc3RhcnQnLCBoYW5kbGVTZXNzaW9uQ2hhbmdlKTtcblx0XHRcdFx0XHRcdFx0XHRnbC54ci5hZGRFdmVudExpc3RlbmVyKCdzZXNzaW9uZW5kJywgaGFuZGxlU2Vzc2lvbkNoYW5nZSk7XG5cdFx0XHRcdFx0XHRcdH0sXG5cdFx0XHRcdFx0XHRcdGRpc2Nvbm5lY3Q6ICgpID0+IHtcblx0XHRcdFx0XHRcdFx0XHRnbC54ci5yZW1vdmVFdmVudExpc3RlbmVyKCdzZXNzaW9uc3RhcnQnLCBoYW5kbGVTZXNzaW9uQ2hhbmdlKTtcblx0XHRcdFx0XHRcdFx0XHRnbC54ci5yZW1vdmVFdmVudExpc3RlbmVyKCdzZXNzaW9uZW5kJywgaGFuZGxlU2Vzc2lvbkNoYW5nZSk7XG5cdFx0XHRcdFx0XHRcdH0sXG5cdFx0XHRcdFx0XHR9O1xuXG5cdFx0XHRcdFx0XHQvLyBTdWJzY3JpYmUgdG8gV2ViWFIgc2Vzc2lvbiBldmVudHNcblx0XHRcdFx0XHRcdGlmIChnbC54ciAmJiB0eXBlb2YgZ2wueHIuYWRkRXZlbnRMaXN0ZW5lciA9PT0gJ2Z1bmN0aW9uJykgeHIuY29ubmVjdCgpO1xuXHRcdFx0XHRcdFx0c3RhdGVUb1VwZGF0ZS54ciA9IHhyO1xuXHRcdFx0XHRcdH1cblxuXHRcdFx0XHRcdC8vIFNldCBzaGFkb3dtYXBcblx0XHRcdFx0XHRpZiAoZ2wuc2hhZG93TWFwKSB7XG5cdFx0XHRcdFx0XHRjb25zdCBvbGRFbmFibGVkID0gZ2wuc2hhZG93TWFwLmVuYWJsZWQ7XG5cdFx0XHRcdFx0XHRjb25zdCBvbGRUeXBlID0gZ2wuc2hhZG93TWFwLnR5cGU7XG5cdFx0XHRcdFx0XHRnbC5zaGFkb3dNYXAuZW5hYmxlZCA9ICEhc2hhZG93cztcblxuXHRcdFx0XHRcdFx0aWYgKHR5cGVvZiBzaGFkb3dzID09PSAnYm9vbGVhbicpIHtcblx0XHRcdFx0XHRcdFx0Z2wuc2hhZG93TWFwLnR5cGUgPSBQQ0ZTb2Z0U2hhZG93TWFwO1xuXHRcdFx0XHRcdFx0fSBlbHNlIGlmICh0eXBlb2Ygc2hhZG93cyA9PT0gJ3N0cmluZycpIHtcblx0XHRcdFx0XHRcdFx0Y29uc3QgdHlwZXMgPSB7XG5cdFx0XHRcdFx0XHRcdFx0YmFzaWM6IEJhc2ljU2hhZG93TWFwLFxuXHRcdFx0XHRcdFx0XHRcdHBlcmNlbnRhZ2U6IFBDRlNoYWRvd01hcCxcblx0XHRcdFx0XHRcdFx0XHRzb2Z0OiBQQ0ZTb2Z0U2hhZG93TWFwLFxuXHRcdFx0XHRcdFx0XHRcdHZhcmlhbmNlOiBWU01TaGFkb3dNYXAsXG5cdFx0XHRcdFx0XHRcdH07XG5cdFx0XHRcdFx0XHRcdGdsLnNoYWRvd01hcC50eXBlID0gdHlwZXNbc2hhZG93c10gPz8gUENGU29mdFNoYWRvd01hcDtcblx0XHRcdFx0XHRcdH0gZWxzZSBpZiAoaXMub2JqKHNoYWRvd3MpKSB7XG5cdFx0XHRcdFx0XHRcdE9iamVjdC5hc3NpZ24oZ2wuc2hhZG93TWFwLCBzaGFkb3dzKTtcblx0XHRcdFx0XHRcdH1cblxuXHRcdFx0XHRcdFx0aWYgKG9sZEVuYWJsZWQgIT09IGdsLnNoYWRvd01hcC5lbmFibGVkIHx8IG9sZFR5cGUgIT09IGdsLnNoYWRvd01hcC50eXBlKSBjaGVja05lZWRzVXBkYXRlKGdsLnNoYWRvd01hcCk7XG5cdFx0XHRcdFx0fVxuXG5cdFx0XHRcdFx0Ly8gU2FmZWx5IHNldCBjb2xvciBtYW5hZ2VtZW50IGlmIGF2YWlsYWJsZS5cblx0XHRcdFx0XHQvLyBBdm9pZCBhY2Nlc3NpbmcgQ29sb3JNYW5hZ2VtZW50IHRvIHBsYXkgbmljZSB3aXRoIG9sZGVyIHZlcnNpb25zXG5cdFx0XHRcdFx0aWYgKENvbG9yTWFuYWdlbWVudCkge1xuXHRcdFx0XHRcdFx0Y29uc3QgY29sb3JNYW5hZ2VtZW50ID0gQ29sb3JNYW5hZ2VtZW50IGFzIE5ndEFueVJlY29yZDtcblx0XHRcdFx0XHRcdGlmICgnZW5hYmxlZCcgaW4gY29sb3JNYW5hZ2VtZW50KSBjb2xvck1hbmFnZW1lbnRbJ2VuYWJsZWQnXSA9ICFsZWdhY3k7XG5cdFx0XHRcdFx0XHRlbHNlIGlmICgnbGVnYWN5TW9kZScgaW4gY29sb3JNYW5hZ2VtZW50KSBjb2xvck1hbmFnZW1lbnRbJ2xlZ2FjeU1vZGUnXSA9IGxlZ2FjeTtcblx0XHRcdFx0XHR9XG5cblx0XHRcdFx0XHRpZiAoIWlzQ29uZmlndXJlZCkge1xuXHRcdFx0XHRcdFx0Ly8gc2V0IGNvbG9yIHNwYWNlIGFuZCB0b25lbWFwcGluZyBwcmVmZXJlbmNlcyBvbmNlXG5cdFx0XHRcdFx0XHRjb25zdCBMaW5lYXJFbmNvZGluZyA9IDMwMDA7XG5cdFx0XHRcdFx0XHRjb25zdCBzUkdCRW5jb2RpbmcgPSAzMDAxO1xuXHRcdFx0XHRcdFx0YXBwbHlQcm9wcyhnbCwge1xuXHRcdFx0XHRcdFx0XHRvdXRwdXRFbmNvZGluZzogbGluZWFyID8gTGluZWFyRW5jb2RpbmcgOiBzUkdCRW5jb2RpbmcsXG5cdFx0XHRcdFx0XHRcdHRvbmVNYXBwaW5nOiBmbGF0ID8gTm9Ub25lTWFwcGluZyA6IEFDRVNGaWxtaWNUb25lTWFwcGluZyxcblx0XHRcdFx0XHRcdH0pO1xuXHRcdFx0XHRcdH1cblxuXHRcdFx0XHRcdC8vIFVwZGF0ZSBjb2xvciBtYW5hZ2VtZW50IHN0YXRlXG5cdFx0XHRcdFx0aWYgKHN0YXRlLmxlZ2FjeSAhPT0gbGVnYWN5KSBzdGF0ZVRvVXBkYXRlLmxlZ2FjeSA9IGxlZ2FjeTtcblx0XHRcdFx0XHRpZiAoc3RhdGUubGluZWFyICE9PSBsaW5lYXIpIHN0YXRlVG9VcGRhdGUubGluZWFyID0gbGluZWFyO1xuXHRcdFx0XHRcdGlmIChzdGF0ZS5mbGF0ICE9PSBmbGF0KSBzdGF0ZVRvVXBkYXRlLmZsYXQgPSBmbGF0O1xuXG5cdFx0XHRcdFx0Ly8gU2V0IGdsIHByb3BzXG5cdFx0XHRcdFx0aWYgKGdsLnNldENsZWFyQWxwaGEpIHtcblx0XHRcdFx0XHRcdGdsLnNldENsZWFyQWxwaGEoMCk7XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHRcdGdsLnNldFBpeGVsUmF0aW8obWFrZURwcihzdGF0ZS52aWV3cG9ydC5kcHIpKTtcblx0XHRcdFx0XHRnbC5zZXRTaXplKHNpemVPcHRpb25zPy53aWR0aCA/PyBzdGF0ZS5zaXplLndpZHRoLCBzaXplT3B0aW9ucz8uaGVpZ2h0ID8/IHN0YXRlLnNpemUuaGVpZ2h0KTtcblxuXHRcdFx0XHRcdGlmIChcblx0XHRcdFx0XHRcdGlzLm9iaihnbE9wdGlvbnMpICYmXG5cdFx0XHRcdFx0XHQhKHR5cGVvZiBnbE9wdGlvbnMgPT09ICdmdW5jdGlvbicpICYmXG5cdFx0XHRcdFx0XHQhaXMucmVuZGVyZXIoZ2xPcHRpb25zKSAmJlxuXHRcdFx0XHRcdFx0IWlzLmVxdShnbE9wdGlvbnMsIGdsLCBzaGFsbG93TG9vc2UpXG5cdFx0XHRcdFx0KSB7XG5cdFx0XHRcdFx0XHRhcHBseVByb3BzKGdsLCBnbE9wdGlvbnMpO1xuXHRcdFx0XHRcdH1cblxuXHRcdFx0XHRcdC8vIFN0b3JlIGV2ZW50cyBpbnRlcm5hbGx5XG5cdFx0XHRcdFx0aWYgKGV2ZW50cyAmJiAhc3RhdGUuZXZlbnRzLmhhbmRsZXJzKSBzdGF0ZVRvVXBkYXRlLmV2ZW50cyA9IGV2ZW50cyhzdG9yZSk7XG5cblx0XHRcdFx0XHQvLyBDaGVjayBwZXJmb3JtYW5jZVxuXHRcdFx0XHRcdGlmIChwZXJmb3JtYW5jZSAmJiAhaXMuZXF1KHBlcmZvcm1hbmNlLCBzdGF0ZS5wZXJmb3JtYW5jZSwgc2hhbGxvd0xvb3NlKSkge1xuXHRcdFx0XHRcdFx0c3RhdGVUb1VwZGF0ZS5wZXJmb3JtYW5jZSA9IHsgLi4uc3RhdGUucGVyZm9ybWFuY2UsIC4uLnBlcmZvcm1hbmNlIH07XG5cdFx0XHRcdFx0fVxuXG5cdFx0XHRcdFx0aWYgKE9iamVjdC5rZXlzKHN0YXRlVG9VcGRhdGUpLmxlbmd0aCkge1xuXHRcdFx0XHRcdFx0c3RvcmUudXBkYXRlKHN0YXRlVG9VcGRhdGUpO1xuXHRcdFx0XHRcdH1cblxuXHRcdFx0XHRcdC8vIENoZWNrIHNpemUsIGFsbG93IGl0IHRvIHRha2Ugb24gY29udGFpbmVyIGJvdW5kcyBpbml0aWFsbHlcblx0XHRcdFx0XHRjb25zdCBzaXplID0gY29tcHV0ZUluaXRpYWxTaXplKGNhbnZhcywgc2l6ZU9wdGlvbnMpO1xuXHRcdFx0XHRcdGlmICghaXMuZXF1KHNpemUsIHN0YXRlLnNpemUsIHNoYWxsb3dMb29zZSkpIHtcblx0XHRcdFx0XHRcdHN0YXRlLnNldFNpemUoc2l6ZS53aWR0aCwgc2l6ZS5oZWlnaHQsIHNpemUudG9wLCBzaXplLmxlZnQpO1xuXHRcdFx0XHRcdH1cblxuXHRcdFx0XHRcdC8vIENoZWNrIHBpeGVscmF0aW9cblx0XHRcdFx0XHRpZiAoZHByICYmIHN0YXRlLnZpZXdwb3J0LmRwciAhPT0gbWFrZURwcihkcHIpKSBzdGF0ZS5zZXREcHIoZHByKTtcblx0XHRcdFx0XHQvLyBDaGVjayBmcmFtZWxvb3Bcblx0XHRcdFx0XHRpZiAoc3RhdGUuZnJhbWVsb29wICE9PSBmcmFtZWxvb3ApIHN0YXRlLnNldEZyYW1lbG9vcChmcmFtZWxvb3ApO1xuXG5cdFx0XHRcdFx0aXNDb25maWd1cmVkID0gdHJ1ZTtcblx0XHRcdFx0fSxcblx0XHRcdH07XG5cdFx0fTtcblx0fSk7XG59XG5cbmV4cG9ydCB0eXBlIE5ndENhbnZhc0NvbmZpZ3VyYXRvciA9IFJldHVyblR5cGU8UmV0dXJuVHlwZTx0eXBlb2YgaW5qZWN0Q2FudmFzUm9vdEluaXRpYWxpemVyPj47XG5cbmZ1bmN0aW9uIGNvbXB1dGVJbml0aWFsU2l6ZShjYW52YXM6IE5ndENhbnZhc0VsZW1lbnQsIGRlZmF1bHRTaXplPzogTmd0U2l6ZSk6IE5ndFNpemUge1xuXHRpZiAoZGVmYXVsdFNpemUpIHJldHVybiBkZWZhdWx0U2l6ZTtcblxuXHRpZiAodHlwZW9mIEhUTUxDYW52YXNFbGVtZW50ICE9PSAndW5kZWZpbmVkJyAmJiBjYW52YXMgaW5zdGFuY2VvZiBIVE1MQ2FudmFzRWxlbWVudCAmJiBjYW52YXMucGFyZW50RWxlbWVudCkge1xuXHRcdHJldHVybiBjYW52YXMucGFyZW50RWxlbWVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcblx0fVxuXG5cdGlmICh0eXBlb2YgT2Zmc2NyZWVuQ2FudmFzICE9PSAndW5kZWZpbmVkJyAmJiBjYW52YXMgaW5zdGFuY2VvZiBPZmZzY3JlZW5DYW52YXMpIHtcblx0XHRyZXR1cm4geyB3aWR0aDogY2FudmFzLndpZHRoLCBoZWlnaHQ6IGNhbnZhcy5oZWlnaHQsIHRvcDogMCwgbGVmdDogMCB9O1xuXHR9XG5cblx0cmV0dXJuIHsgd2lkdGg6IDAsIGhlaWdodDogMCwgdG9wOiAwLCBsZWZ0OiAwIH07XG59XG5cbi8vIERpc3Bvc2VzIGFuIG9iamVjdCBhbmQgYWxsIGl0cyBwcm9wZXJ0aWVzXG5leHBvcnQgZnVuY3Rpb24gZGlzcG9zZTxUT2JqIGV4dGVuZHMgeyBkaXNwb3NlPzogKCkgPT4gdm9pZDsgdHlwZT86IHN0cmluZzsgW2tleTogc3RyaW5nXTogYW55IH0+KG9iajogVE9iaikge1xuXHRpZiAob2JqLmRpc3Bvc2UgJiYgb2JqLnR5cGUgIT09ICdTY2VuZScpIG9iai5kaXNwb3NlKCk7XG5cdGZvciAoY29uc3QgcCBpbiBvYmopIHtcblx0XHQocCBhcyBhbnkpLmRpc3Bvc2U/LigpO1xuXHRcdGRlbGV0ZSBvYmpbcF07XG5cdH1cbn1cbiJdfQ==
@@ -1,3 +1,4 @@
1
+ import { DOCUMENT } from '@angular/common';
1
2
  import { ElementRef, InjectionToken, effect, inject } from '@angular/core';
2
3
  import { Subject } from 'rxjs';
3
4
  import { Clock, Vector2, Vector3 } from 'three';
@@ -8,6 +9,8 @@ import { signalStore } from './utils/signal-store';
8
9
  import { updateCamera } from './utils/update';
9
10
  function storeFactory(previousStore) {
10
11
  const loop = injectLoop();
12
+ const document = inject(DOCUMENT);
13
+ const window = document.defaultView || undefined;
11
14
  // NOTE: using Subject because we do not care about late-subscribers
12
15
  const pointerMissed$ = new Subject();
13
16
  const store = signalStore(({ get, update }) => {
@@ -68,8 +71,8 @@ function storeFactory(previousStore) {
68
71
  },
69
72
  size: { width: 0, height: 0, top: 0, left: 0, updateStyle: false },
70
73
  viewport: {
71
- initialDpr: 0,
72
- dpr: 0,
74
+ initialDpr: window?.devicePixelRatio || 1,
75
+ dpr: window?.devicePixelRatio || 1,
73
76
  width: 0,
74
77
  height: 0,
75
78
  top: 0,
@@ -173,4 +176,4 @@ export function provideStore(store) {
173
176
  export function injectStore(options) {
174
177
  return inject(NGT_STORE, options);
175
178
  }
176
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RvcmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWJzL2NvcmUvc3JjL2xpYi9zdG9yZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFpQixjQUFjLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMxRixPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQy9CLE9BQU8sRUFBRSxLQUFLLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLE9BQU8sQ0FBQztBQUNoRCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sUUFBUSxDQUFDO0FBRXBDLE9BQU8sRUFBRSxFQUFFLEVBQUUsTUFBTSxZQUFZLENBQUM7QUFDaEMsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUN2QyxPQUFPLEVBQWtCLFdBQVcsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ25FLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUU5QyxTQUFTLFlBQVksQ0FBQyxhQUE4QztJQUNuRSxNQUFNLElBQUksR0FBRyxVQUFVLEVBQUUsQ0FBQztJQUUxQixvRUFBb0U7SUFDcEUsTUFBTSxjQUFjLEdBQUcsSUFBSSxPQUFPLEVBQWMsQ0FBQztJQUVqRCxNQUFNLEtBQUssR0FBNkIsV0FBVyxDQUFXLENBQUMsRUFBRSxHQUFHLEVBQUUsTUFBTSxFQUFFLEVBQUUsRUFBRTtRQUNqRixNQUFNLEVBQUUsVUFBVSxFQUFFLE9BQU8sRUFBRSxHQUFHLElBQUksQ0FBQztRQUVyQyxNQUFNLFFBQVEsR0FBRyxJQUFJLE9BQU8sRUFBRSxDQUFDO1FBQy9CLE1BQU0sYUFBYSxHQUFHLElBQUksT0FBTyxFQUFFLENBQUM7UUFDcEMsTUFBTSxVQUFVLEdBQUcsSUFBSSxPQUFPLEVBQUUsQ0FBQztRQUVqQyxTQUFTLGtCQUFrQixDQUMxQixTQUFv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LENBQUMsTUFBTSxTQUFTLEdBQUcsSUFBSSxjQUFjLENBQTJCLGdCQUFnQixDQUFDLENBQUM7QUFFeEYsTUFBTSxVQUFVLFlBQVksQ0FBQyxLQUFzQztJQUNsRSxJQUFJLEtBQUssRUFBRSxDQUFDO1FBQ1gsT0FBTyxFQUFFLE9BQU8sRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFFLEtBQUssRUFBRSxDQUFDO0lBQ2xELENBQUM7SUFDRCxPQUFPLEVBQUUsT0FBTyxFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQUUsWUFBWSxFQUFFLENBQUM7QUFDekQsQ0FBQztBQUtELE1BQU0sVUFBVSxXQUFXLENBQUMsT0FBdUI7SUFDbEQsT0FBTyxNQUFNLENBQUMsU0FBUyxFQUFFLE9BQXdCLENBQUMsQ0FBQztBQUNwRCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRWxlbWVudFJlZiwgSW5qZWN0T3B0aW9ucywgSW5qZWN0aW9uVG9rZW4sIGVmZmVjdCwgaW5qZWN0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBDbG9jaywgVmVjdG9yMiwgVmVjdG9yMyB9IGZyb20gJ3RocmVlJztcbmltcG9ydCB7IGluamVjdExvb3AgfSBmcm9tICcuL2xvb3AnO1xuaW1wb3J0IHsgTmd0QmVmb3JlUmVuZGVyUmVjb3JkLCBOZ3RDYW1lcmEsIE5ndERwciwgTmd0RXZlbnRNYW5hZ2VyLCBOZ3RTaXplLCBOZ3RTdGF0ZSwgTmd0Vmlld3BvcnQgfSBmcm9tICcuL3R5cGVzJztcbmltcG9ydCB7IGlzIH0gZnJvbSAnLi91dGlscy9pcyc7XG5pbXBvcnQgeyBtYWtlRHByIH0gZnJvbSAnLi91dGlscy9tYWtlJztcbmltcG9ydCB7IE5ndFNpZ25hbFN0b3JlLCBzaWduYWxTdG9yZSB9IGZyb20gJy4vdXRpbHMvc2lnbmFsLXN0b3JlJztcbmltcG9ydCB7IHVwZGF0ZUNhbWVyYSB9IGZyb20gJy4vdXRpbHMvdXBkYXRlJztcblxuZnVuY3Rpb24gc3RvcmVGYWN0b3J5KHByZXZpb3VzU3RvcmU6IE5ndFNpZ25hbFN0b3JlPE5ndFN0YXRlPiB8IG51bGwpIHtcblx0Y29uc3QgbG9vcCA9IGluamVjdExvb3AoKTtcblxuXHQvLyBOT1RFOiB1c2luZyBTdWJqZWN0IGJlY2F1c2Ugd2UgZG8gbm90IGNhcmUgYWJvdXQgbGF0ZS1zdWJzY3JpYmVyc1xuXHRjb25zdCBwb2ludGVyTWlzc2VkJCA9IG5ldyBTdWJqZWN0PE1vdXNlRXZlbnQ+KCk7XG5cblx0Y29uc3Qgc3RvcmU6IE5ndFNpZ25hbFN0b3JlPE5ndFN0YXRlPiA9IHNpZ25hbFN0b3JlPE5ndFN0YXRlPigoeyBnZXQsIHVwZGF0ZSB9KSA9PiB7XG5cdFx0Y29uc3QgeyBpbnZhbGlkYXRlLCBhZHZhbmNlIH0gPSBsb29wO1xuXG5cdFx0Y29uc3QgcG9zaXRpb24gPSBuZXcgVmVjdG9yMygpO1xuXHRcdGNvbnN0IGRlZmF1bHRUYXJnZXQgPSBuZXcgVmVjdG9yMygpO1xuXHRcdGNvbnN0IHRlbXBUYXJnZXQgPSBuZXcgVmVjdG9yMygpO1xuXG5cdFx0ZnVuY3Rpb24gZ2V0Q3VycmVudFZpZXdwb3J0KFxuXHRcdFx0Y2FtZXJhOiBOZ3RDYW1lcmEgPSBnZXQoJ2NhbWVyYScpLFxuXHRcdFx0dGFyZ2V0OiBWZWN0b3IzIHwgUGFyYW1ldGVyczxWZWN0b3IzWydzZXQnXT4gPSBkZWZhdWx0VGFyZ2V0LFxuXHRcdFx0c2l6ZTogTmd0U2l6ZSA9IGdldCgnc2l6ZScpLFxuXHRcdCk6IE9taXQ8Tmd0Vmlld3BvcnQsICdkcHInIHwgJ2luaXRpYWxEcHInPiB7XG5cdFx0XHRjb25zdCB7IHdpZHRoLCBoZWlnaHQsIHRvcCwgbGVmdCB9ID0gc2l6ZTtcblx0XHRcdGNvbnN0IGFzcGVjdCA9IHdpZHRoIC8gaGVpZ2h0O1xuXG5cdFx0XHRpZiAodGFyZ2V0IGluc3RhbmNlb2YgVmVjdG9yMykgdGVtcFRhcmdldC5jb3B5KHRhcmdldCk7XG5cdFx0XHRlbHNlIHRlbXBUYXJnZXQuc2V0KC4uLnRhcmdldCk7XG5cblx0XHRcdGNvbnN0IGRpc3RhbmNlID0gY2FtZXJhLmdldFdvcmxkUG9zaXRpb24ocG9zaXRpb24pLmRpc3RhbmNlVG8odGVtcFRhcmdldCk7XG5cblx0XHRcdGlmIChpcy5vcnRob2dyYXBoaWNDYW1lcmEoY2FtZXJhKSkge1xuXHRcdFx0XHRyZXR1cm4geyB3aWR0aDogd2lkdGggLyBjYW1lcmEuem9vbSwgaGVpZ2h0OiBoZWlnaHQgLyBjYW1lcmEuem9vbSwgdG9wLCBsZWZ0LCBmYWN0b3I6IDEsIGRpc3RhbmNlLCBhc3BlY3QgfTtcblx0XHRcdH1cblxuXHRcdFx0Y29uc3QgZm92ID0gKGNhbWVyYS5mb3YgKiBNYXRoLlBJKSAvIDE4MDsgLy8gY29udmVydCB2ZXJ0aWNhbCBmb3YgdG8gcmFkaWFuc1xuXHRcdFx0Y29uc3QgaCA9IDIgKiBNYXRoLnRhbihmb3YgLyAyKSAqIGRpc3RhbmNlOyAvLyB2aXNpYmxlIGhlaWdodFxuXHRcdFx0Y29uc3QgdyA9IGggKiAod2lkdGggLyBoZWlnaHQpO1xuXHRcdFx0cmV0dXJuIHsgd2lkdGg6IHcsIGhlaWdodDogaCwgdG9wLCBsZWZ0LCBmYWN0b3I6IHdpZHRoIC8gdywgZGlzdGFuY2UsIGFzcGVjdCB9O1xuXHRcdH1cblxuXHRcdGxldCBwZXJmb3JtYW5jZVRpbWVvdXQ6IFJldHVyblR5cGU8dHlwZW9mIHNldFRpbWVvdXQ+IHwgdW5kZWZpbmVkID0gdW5kZWZpbmVkO1xuXHRcdGNvbnN0IHNldFBlcmZvcm1hbmNlQ3VycmVudCA9IChjdXJyZW50OiBudW1iZXIpID0+XG5cdFx0XHR1cGRhdGUoKHN0YXRlKSA9PiAoeyBwZXJmb3JtYW5jZTogeyAuLi5zdGF0ZS5wZXJmb3JtYW5jZSwgY3VycmVudCB9IH0pKTtcblxuXHRcdGNvbnN0IHBvaW50ZXIgPSBuZXcgVmVjdG9yMigpO1xuXG5cdFx0cmV0dXJuIHtcblx0XHRcdHBvaW50ZXJNaXNzZWQkOiBwb2ludGVyTWlzc2VkJC5hc09ic2VydmFibGUoKSxcblx0XHRcdGV2ZW50czogeyBwcmlvcml0eTogMSwgZW5hYmxlZDogdHJ1ZSwgY29ubmVjdGVkOiBmYWxzZSB9LFxuXG5cdFx0XHRpbnZhbGlkYXRlOiAoZnJhbWVzID0gMSkgPT4gaW52YWxpZGF0ZShzdG9yZSwgZnJhbWVzKSxcblx0XHRcdGFkdmFuY2U6ICh0aW1lc3RhbXA6IG51bWJlciwgcnVuR2xvYmFsRWZmZWN0cz86IGJvb2xlYW4pID0+IGFkdmFuY2UodGltZXN0YW1wLCBydW5HbG9iYWxFZmZlY3RzLCBzdG9yZSksXG5cblx0XHRcdGxlZ2FjeTogZmFsc2UsXG5cdFx0XHRsaW5lYXI6IGZhbHNlLFxuXHRcdFx0ZmxhdDogZmFsc2UsXG5cblx0XHRcdGNvbnRyb2xzOiBudWxsLFxuXHRcdFx0Y2xvY2s6IG5ldyBDbG9jaygpLFxuXHRcdFx0cG9pbnRlcixcblxuXHRcdFx0ZnJhbWVsb29wOiAnYWx3YXlzJyxcblxuXHRcdFx0cGVyZm9ybWFuY2U6IHtcblx0XHRcdFx0Y3VycmVudDogMSxcblx0XHRcdFx0bWluOiAwLjUsXG5cdFx0XHRcdG1heDogMSxcblx0XHRcdFx0ZGVib3VuY2U6IDIwMCxcblx0XHRcdFx0cmVncmVzczogKCkgPT4ge1xuXHRcdFx0XHRcdGNvbnN0IHN0YXRlID0gZ2V0KCk7XG5cdFx0XHRcdFx0Ly8gQ2xlYXIgdGltZW91dFxuXHRcdFx0XHRcdGlmIChwZXJmb3JtYW5jZVRpbWVvdXQpIGNsZWFyVGltZW91dChwZXJmb3JtYW5jZVRpbWVvdXQpO1xuXHRcdFx0XHRcdC8vIFNldCBsb3dlciBib3VuZCBwZXJmb3JtYW5jZVxuXHRcdFx0XHRcdGlmIChzdGF0ZS5wZXJmb3JtYW5jZS5jdXJyZW50ICE9PSBzdGF0ZS5wZXJmb3JtYW5jZS5taW4pIHNldFBlcmZvcm1hbmNlQ3VycmVudChzdGF0ZS5wZXJmb3JtYW5jZS5taW4pO1xuXHRcdFx0XHRcdC8vIEdvIGJhY2sgdG8gdXBwZXIgYm91bmQgcGVyZm9ybWFuY2UgYWZ0ZXIgYSB3aGlsZSB1bmxlc3Mgc29tZXRoaW5nIHJlZ3Jlc3NlcyBtZWFud2hpbGVcblx0XHRcdFx0XHRwZXJmb3JtYW5jZVRpbWVvdXQgPSBzZXRUaW1lb3V0KCgpID0+IHtcblx0XHRcdFx0XHRcdHNldFBlcmZvcm1hbmNlQ3VycmVudChnZXQoJ3BlcmZvcm1hbmNlJywgJ21heCcpKTtcblx0XHRcdFx0XHRcdC8vIHNhZmVEZXRlY3RDaGFuZ2VzKGNkcik7XG5cdFx0XHRcdFx0fSwgc3RhdGUucGVyZm9ybWFuY2UuZGVib3VuY2UpO1xuXHRcdFx0XHR9LFxuXHRcdFx0fSxcblxuXHRcdFx0c2l6ZTogeyB3aWR0aDogMCwgaGVpZ2h0OiAwLCB0b3A6IDAsIGxlZnQ6IDAsIHVwZGF0ZVN0eWxlOiBmYWxzZSB9LFxuXHRcdFx0dmlld3BvcnQ6IHtcblx0XHRcdFx0aW5pdGlhbERwcjogMCxcblx0XHRcdFx0ZHByOiAwLFxuXHRcdFx0XHR3aWR0aDogMCxcblx0XHRcdFx0aGVpZ2h0OiAwLFxuXHRcdFx0XHR0b3A6IDAsXG5cdFx0XHRcdGxlZnQ6IDAsXG5cdFx0XHRcdGFzcGVjdDogMCxcblx0XHRcdFx0ZGlzdGFuY2U6IDAsXG5cdFx0XHRcdGZhY3RvcjogMCxcblx0XHRcdFx0Z2V0Q3VycmVudFZpZXdwb3J0LFxuXHRcdFx0fSxcblxuXHRcdFx0c2V0RXZlbnRzOiAoZXZlbnRzOiBQYXJ0aWFsPE5ndEV2ZW50TWFuYWdlcjxhbnk+PikgPT5cblx0XHRcdFx0dXBkYXRlKChzdGF0ZSkgPT4gKHsgLi4uc3RhdGUsIGV2ZW50czogeyAuLi5zdGF0ZS5ldmVudHMsIC4uLmV2ZW50cyB9IH0pKSxcblx0XHRcdHNldFNpemU6ICh3aWR0aDogbnVtYmVyLCBoZWlnaHQ6IG51bWJlciwgdG9wPzogbnVtYmVyLCBsZWZ0PzogbnVtYmVyKSA9PiB7XG5cdFx0XHRcdGNvbnN0IGNhbWVyYSA9IGdldCgnY2FtZXJhJyk7XG5cdFx0XHRcdGNvbnN0IHNpemUgPSB7IHdpZHRoLCBoZWlnaHQsIHRvcDogdG9wIHx8IDAsIGxlZnQ6IGxlZnQgfHwgMCB9O1xuXHRcdFx0XHR1cGRhdGUoKHN0YXRlKSA9PiAoe1xuXHRcdFx0XHRcdHNpemUsXG5cdFx0XHRcdFx0dmlld3BvcnQ6IHsgLi4uc3RhdGUudmlld3BvcnQsIC4uLmdldEN1cnJlbnRWaWV3cG9ydChjYW1lcmEsIGRlZmF1bHRUYXJnZXQsIHNpemUpIH0sXG5cdFx0XHRcdH0pKTtcblx0XHRcdH0sXG5cdFx0XHRzZXREcHI6IChkcHI6IE5ndERwcikgPT5cblx0XHRcdFx0dXBkYXRlKChzdGF0ZSkgPT4ge1xuXHRcdFx0XHRcdGNvbnN0IHJlc29sdmVkID0gbWFrZURwcihkcHIsIHdpbmRvdyk7XG5cdFx0XHRcdFx0cmV0dXJuIHsgdmlld3BvcnQ6IHsgLi4uc3RhdGUudmlld3BvcnQsIGRwcjogcmVzb2x2ZWQsIGluaXRpYWxEcHI6IHN0YXRlLnZpZXdwb3J0LmluaXRpYWxEcHIgfHwgcmVzb2x2ZWQgfSB9O1xuXHRcdFx0XHR9KSxcblx0XHRcdHNldEZyYW1lbG9vcDogKGZyYW1lbG9vcDogJ2Fsd2F5cycgfCAnZGVtYW5kJyB8ICduZXZlcicgPSAnYWx3YXlzJykgPT4ge1xuXHRcdFx0XHRjb25zdCBjbG9jayA9IGdldCgnY2xvY2snKTtcblxuXHRcdFx0XHQvLyBpZiBmcmFtZWxvb3AgPT09IFwibmV2ZXJcIiBjbG9jay5lbGFwc2VkVGltZSBpcyB1cGRhdGVkIHVzaW5nIGFkdmFuY2UodGltZXN0YW1wKVxuXHRcdFx0XHRjbG9jay5zdG9wKCk7XG5cdFx0XHRcdGNsb2NrLmVsYXBzZWRUaW1lID0gMDtcblxuXHRcdFx0XHRpZiAoZnJhbWVsb29wICE9PSAnbmV2ZXInKSB7XG5cdFx0XHRcdFx0Y2xvY2suc3RhcnQoKTtcblx0XHRcdFx0XHRjbG9jay5lbGFwc2VkVGltZSA9IDA7XG5cdFx0XHRcdH1cblxuXHRcdFx0XHR1cGRhdGUoKCkgPT4gKHsgZnJhbWVsb29wIH0pKTtcblx0XHRcdH0sXG5cblx0XHRcdHByZXZpb3VzUm9vdDogcHJldmlvdXNTdG9yZSxcblx0XHRcdGludGVybmFsOiB7XG5cdFx0XHRcdGFjdGl2ZTogZmFsc2UsXG5cdFx0XHRcdHByaW9yaXR5OiAwLFxuXHRcdFx0XHRmcmFtZXM6IDAsXG5cdFx0XHRcdGxhc3RFdmVudDogbmV3IEVsZW1lbnRSZWYobnVsbCksXG5cdFx0XHRcdGludGVyYWN0aW9uOiBbXSxcblx0XHRcdFx0aG92ZXJlZDogbmV3IE1hcCgpLFxuXHRcdFx0XHRzdWJzY3JpYmVyczogW10sXG5cdFx0XHRcdGluaXRpYWxDbGljazogWzAsIDBdLFxuXHRcdFx0XHRpbml0aWFsSGl0czogW10sXG5cdFx0XHRcdGNhcHR1cmVkTWFwOiBuZXcgTWFwKCksXG5cdFx0XHRcdHN1YnNjcmliZTogKFxuXHRcdFx0XHRcdGNhbGxiYWNrOiBOZ3RCZWZvcmVSZW5kZXJSZWNvcmRbJ2NhbGxiYWNrJ10sXG5cdFx0XHRcdFx0cHJpb3JpdHkgPSAwLFxuXHRcdFx0XHRcdF9zdG9yZTogTmd0U2lnbmFsU3RvcmU8Tmd0U3RhdGU+ID0gc3RvcmUsXG5cdFx0XHRcdCkgPT4ge1xuXHRcdFx0XHRcdGNvbnN0IGludGVybmFsID0gZ2V0KCdpbnRlcm5hbCcpO1xuXHRcdFx0XHRcdC8vIElmIHRoaXMgc3Vic2NyaXB0aW9uIHdhcyBnaXZlbiBhIHByaW9yaXR5LCBpdCB0YWtlcyByZW5kZXJpbmcgaW50byBpdHMgb3duIGhhbmRzXG5cdFx0XHRcdFx0Ly8gRm9yIHRoYXQgcmVhc29uIHdlIHN3aXRjaCBvZmYgYXV0b21hdGljIHJlbmRlcmluZyBhbmQgaW5jcmVhc2UgdGhlIG1hbnVhbCBmbGFnXG5cdFx0XHRcdFx0Ly8gQXMgbG9uZyBhcyB0aGlzIGZsYWcgaXMgcG9zaXRpdmUgdGhlcmUgY2FuIGJlIG5vIGludGVybmFsIHJlbmRlcmluZyBhdCBhbGxcblx0XHRcdFx0XHQvLyBiZWNhdXNlIHRoZXJlIGNvdWxkIGJlIG11bHRpcGxlIHJlbmRlciBzdWJzY3JpcHRpb25zXG5cdFx0XHRcdFx0aW50ZXJuYWwucHJpb3JpdHkgPSBpbnRlcm5hbC5wcmlvcml0eSArIChwcmlvcml0eSA+IDAgPyAxIDogMCk7XG5cdFx0XHRcdFx0aW50ZXJuYWwuc3Vic2NyaWJlcnMucHVzaCh7IGNhbGxiYWNrLCBwcmlvcml0eSwgc3RvcmU6IF9zdG9yZSB9KTtcblx0XHRcdFx0XHQvLyBSZWdpc3RlciBzdWJzY3JpYmVyIGFuZCBzb3J0IGxheWVycyBmcm9tIGxvd2VzdCB0byBoaWdoZXN0LCBtZWFuaW5nLFxuXHRcdFx0XHRcdC8vIGhpZ2hlc3QgcHJpb3JpdHkgcmVuZGVycyBsYXN0IChvbiB0b3Agb2YgdGhlIG90aGVyIGZyYW1lcylcblx0XHRcdFx0XHRpbnRlcm5hbC5zdWJzY3JpYmVycyA9IGludGVybmFsLnN1YnNjcmliZXJzLnNvcnQoKGEsIGIpID0+IChhLnByaW9yaXR5IHx8IDApIC0gKGIucHJpb3JpdHkgfHwgMCkpO1xuXG5cdFx0XHRcdFx0cmV0dXJuICgpID0+IHtcblx0XHRcdFx0XHRcdGNvbnN0IGludGVybmFsID0gZ2V0KCdpbnRlcm5hbCcpO1xuXHRcdFx0XHRcdFx0aWYgKGludGVybmFsPy5zdWJzY3JpYmVycykge1xuXHRcdFx0XHRcdFx0XHQvLyBEZWNyZWFzZSBtYW51YWwgZmxhZyBpZiB0aGlzIHN1YnNjcmlwdGlvbiBoYWQgYSBwcmlvcml0eVxuXHRcdFx0XHRcdFx0XHRpbnRlcm5hbC5wcmlvcml0eSA9IGludGVybmFsLnByaW9yaXR5IC0gKHByaW9yaXR5ID4gMCA/IDEgOiAwKTtcblx0XHRcdFx0XHRcdFx0Ly8gUmVtb3ZlIHN1YnNjcmliZXIgZnJvbSBsaXN0XG5cdFx0XHRcdFx0XHRcdGludGVybmFsLnN1YnNjcmliZXJzID0gaW50ZXJuYWwuc3Vic2NyaWJlcnMuZmlsdGVyKChzKSA9PiBzLmNhbGxiYWNrICE9PSBjYWxsYmFjayk7XG5cdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0fTtcblx0XHRcdFx0fSxcblx0XHRcdH0sXG5cdFx0fTtcblx0fSk7XG5cblx0T2JqZWN0LmRlZmluZVByb3BlcnR5KHN0b3JlLCAncG9pbnRlck1pc3NlZCQnLCB7IGdldDogKCkgPT4gcG9pbnRlck1pc3NlZCQgfSk7XG5cblx0bGV0IHtcblx0XHRzaXplOiBvbGRTaXplLFxuXHRcdHZpZXdwb3J0OiB7IGRwcjogb2xkRHByIH0sXG5cdFx0Y2FtZXJhOiBvbGRDYW1lcmEsXG5cdH0gPSBzdG9yZS5zbmFwc2hvdDtcblxuXHRlZmZlY3QoKCkgPT4ge1xuXHRcdGNvbnN0IHtcblx0XHRcdGNhbWVyYTogbmV3Q2FtZXJhLFxuXHRcdFx0c2l6ZTogbmV3U2l6ZSxcblx0XHRcdHZpZXdwb3J0OiB7IGRwcjogbmV3RHByIH0sXG5cdFx0XHRnbCxcblx0XHR9ID0gc3RvcmUuc3RhdGUoKTtcblxuXHRcdC8vIFJlc2l6ZSBjYW1lcmEgYW5kIHJlbmRlcmVyIG9uIGNoYW5nZXMgdG8gc2l6ZSBhbmQgcGl4ZWwtcmF0aW9cblx0XHRpZiAobmV3U2l6ZSAhPT0gb2xkU2l6ZSB8fCBuZXdEcHIgIT09IG9sZERwcikge1xuXHRcdFx0b2xkU2l6ZSA9IG5ld1NpemU7XG5cdFx0XHRvbGREcHIgPSBuZXdEcHI7XG5cdFx0XHQvLyBVcGRhdGUgY2FtZXJhICYgcmVuZGVyZXJcblx0XHRcdHVwZGF0ZUNhbWVyYShuZXdDYW1lcmEsIG5ld1NpemUpO1xuXHRcdFx0Z2wuc2V0UGl4ZWxSYXRpbyhuZXdEcHIpO1xuXG5cdFx0XHRjb25zdCB1cGRhdGVTdHlsZSA9IHR5cGVvZiBIVE1MQ2FudmFzRWxlbWVudCAhPT0gJ3VuZGVmaW5lZCcgJiYgZ2wuZG9tRWxlbWVudCBpbnN0YW5jZW9mIEhUTUxDYW52YXNFbGVtZW50O1xuXHRcdFx0Z2wuc2V0U2l6ZShuZXdTaXplLndpZHRoLCBuZXdTaXplLmhlaWdodCwgdXBkYXRlU3R5bGUpO1xuXHRcdH1cblxuXHRcdC8vIFVwZGF0ZSB2aWV3cG9ydCBvbmNlIHRoZSBjYW1lcmEgY2hhbmdlc1xuXHRcdGlmIChuZXdDYW1lcmEgIT09IG9sZENhbWVyYSkge1xuXHRcdFx0b2xkQ2FtZXJhID0gbmV3Q2FtZXJhO1xuXHRcdFx0dXBkYXRlQ2FtZXJhKG5ld0NhbWVyYSwgbmV3U2l6ZSk7XG5cdFx0XHQvLyBVcGRhdGUgdmlld3BvcnRcblx0XHRcdHN0b3JlLnVwZGF0ZSgoc3RhdGUpID0+ICh7IHZpZXdwb3J0OiB7IC4uLnN0YXRlLnZpZXdwb3J0LCAuLi5zdGF0ZS52aWV3cG9ydC5nZXRDdXJyZW50Vmlld3BvcnQobmV3Q2FtZXJhKSB9IH0pKTtcblx0XHR9XG5cdH0pO1xuXG5cdHJldHVybiBzdG9yZTtcbn1cblxuZXhwb3J0IGNvbnN0IE5HVF9TVE9SRSA9IG5ldyBJbmplY3Rpb25Ub2tlbjxOZ3RTaWduYWxTdG9yZTxOZ3RTdGF0ZT4+KCdOZ3RTdG9yZSBUb2tlbicpO1xuXG5leHBvcnQgZnVuY3Rpb24gcHJvdmlkZVN0b3JlKHN0b3JlPzogKCkgPT4gTmd0U2lnbmFsU3RvcmU8Tmd0U3RhdGU+KSB7XG5cdGlmIChzdG9yZSkge1xuXHRcdHJldHVybiB7IHByb3ZpZGU6IE5HVF9TVE9SRSwgdXNlRmFjdG9yeTogc3RvcmUgfTtcblx0fVxuXHRyZXR1cm4geyBwcm92aWRlOiBOR1RfU1RPUkUsIHVzZUZhY3Rvcnk6IHN0b3JlRmFjdG9yeSB9O1xufVxuXG5leHBvcnQgZnVuY3Rpb24gaW5qZWN0U3RvcmUob3B0aW9uczogSW5qZWN0T3B0aW9ucyAmIHsgb3B0aW9uYWw/OiBmYWxzZSB9KTogTmd0U2lnbmFsU3RvcmU8Tmd0U3RhdGU+O1xuZXhwb3J0IGZ1bmN0aW9uIGluamVjdFN0b3JlKG9wdGlvbnM6IEluamVjdE9wdGlvbnMpOiBOZ3RTaWduYWxTdG9yZTxOZ3RTdGF0ZT4gfCBudWxsO1xuZXhwb3J0IGZ1bmN0aW9uIGluamVjdFN0b3JlKCk6IE5ndFNpZ25hbFN0b3JlPE5ndFN0YXRlPjtcbmV4cG9ydCBmdW5jdGlvbiBpbmplY3RTdG9yZShvcHRpb25zPzogSW5qZWN0T3B0aW9ucykge1xuXHRyZXR1cm4gaW5qZWN0KE5HVF9TVE9SRSwgb3B0aW9ucyBhcyBJbmplY3RPcHRpb25zKTtcbn1cbiJdfQ==
179
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RvcmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWJzL2NvcmUvc3JjL2xpYi9zdG9yZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDM0MsT0FBTyxFQUFFLFVBQVUsRUFBaUIsY0FBYyxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDMUYsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUMvQixPQUFPLEVBQUUsS0FBSyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxPQUFPLENBQUM7QUFDaEQsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLFFBQVEsQ0FBQztBQUVwQyxPQUFPLEVBQUUsRUFBRSxFQUFFLE1BQU0sWUFBWSxDQUFDO0FBQ2hDLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFDdkMsT0FBTyxFQUFrQixXQUFXLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUNuRSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFOUMsU0FBUyxZQUFZLENBQUMsYUFBOEM7SUFDbkUsTUFBTSxJQUFJLEdBQUcsVUFBVSxFQUFFLENBQUM7SUFDMUIsTUFBTSxRQUFRLEdBQUcsTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQ2xDLE1BQU0sTUFBTSxHQUFHLFFBQVEsQ0FBQyxXQUFXLElBQUksU0FBUyxDQUFDO0lBRWpELG9FQUFvRTtJQUNwRSxNQUFNLGNBQWMsR0FBRyxJQUFJLE9BQU8sRUFBYyxDQUFDO0lBRWpELE1BQU0sS0FBSyxHQUE2QixXQUFXLENBQVcsQ0FBQyxFQUFFLEdBQUcsRUFBRSxNQUFNLEVBQUUsRUFBRSxFQUFFO1FBQ2pGLE1BQU0sRUFBRSxVQUFVLEVBQUUsT0FBTyxFQUFFLEdBQUcsSUFBSSxDQUFDO1FBRXJDLE1BQU0s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QUFFLFFBQVEsRUFBRSxFQUFFLEdBQUcsS0FBSyxDQUFDLFFBQVEsRUFBRSxHQUFHLEtBQUssQ0FBQyxRQUFRLENBQUMsa0JBQWtCLENBQUMsU0FBUyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQztRQUNqSCxDQUFDO0lBQ0YsQ0FBQyxDQUFDLENBQUM7SUFFSCxPQUFPLEtBQUssQ0FBQztBQUNkLENBQUM7QUFFRCxNQUFNLENBQUMsTUFBTSxTQUFTLEdBQUcsSUFBSSxjQUFjLENBQTJCLGdCQUFnQixDQUFDLENBQUM7QUFFeEYsTUFBTSxVQUFVLFlBQVksQ0FBQyxLQUFzQztJQUNsRSxJQUFJLEtBQUssRUFBRSxDQUFDO1FBQ1gsT0FBTyxFQUFFLE9BQU8sRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFFLEtBQUssRUFBRSxDQUFDO0lBQ2xELENBQUM7SUFDRCxPQUFPLEVBQUUsT0FBTyxFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQUUsWUFBWSxFQUFFLENBQUM7QUFDekQsQ0FBQztBQUtELE1BQU0sVUFBVSxXQUFXLENBQUMsT0FBdUI7SUFDbEQsT0FBTyxNQUFNLENBQUMsU0FBUyxFQUFFLE9BQXdCLENBQUMsQ0FBQztBQUNwRCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRE9DVU1FTlQgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgRWxlbWVudFJlZiwgSW5qZWN0T3B0aW9ucywgSW5qZWN0aW9uVG9rZW4sIGVmZmVjdCwgaW5qZWN0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBDbG9jaywgVmVjdG9yMiwgVmVjdG9yMyB9IGZyb20gJ3RocmVlJztcbmltcG9ydCB7IGluamVjdExvb3AgfSBmcm9tICcuL2xvb3AnO1xuaW1wb3J0IHsgTmd0QmVmb3JlUmVuZGVyUmVjb3JkLCBOZ3RDYW1lcmEsIE5ndERwciwgTmd0RXZlbnRNYW5hZ2VyLCBOZ3RTaXplLCBOZ3RTdGF0ZSwgTmd0Vmlld3BvcnQgfSBmcm9tICcuL3R5cGVzJztcbmltcG9ydCB7IGlzIH0gZnJvbSAnLi91dGlscy9pcyc7XG5pbXBvcnQgeyBtYWtlRHByIH0gZnJvbSAnLi91dGlscy9tYWtlJztcbmltcG9ydCB7IE5ndFNpZ25hbFN0b3JlLCBzaWduYWxTdG9yZSB9IGZyb20gJy4vdXRpbHMvc2lnbmFsLXN0b3JlJztcbmltcG9ydCB7IHVwZGF0ZUNhbWVyYSB9IGZyb20gJy4vdXRpbHMvdXBkYXRlJztcblxuZnVuY3Rpb24gc3RvcmVGYWN0b3J5KHByZXZpb3VzU3RvcmU6IE5ndFNpZ25hbFN0b3JlPE5ndFN0YXRlPiB8IG51bGwpIHtcblx0Y29uc3QgbG9vcCA9IGluamVjdExvb3AoKTtcblx0Y29uc3QgZG9jdW1lbnQgPSBpbmplY3QoRE9DVU1FTlQpO1xuXHRjb25zdCB3aW5kb3cgPSBkb2N1bWVudC5kZWZhdWx0VmlldyB8fCB1bmRlZmluZWQ7XG5cblx0Ly8gTk9URTogdXNpbmcgU3ViamVjdCBiZWNhdXNlIHdlIGRvIG5vdCBjYXJlIGFib3V0IGxhdGUtc3Vic2NyaWJlcnNcblx0Y29uc3QgcG9pbnRlck1pc3NlZCQgPSBuZXcgU3ViamVjdDxNb3VzZUV2ZW50PigpO1xuXG5cdGNvbnN0IHN0b3JlOiBOZ3RTaWduYWxTdG9yZTxOZ3RTdGF0ZT4gPSBzaWduYWxTdG9yZTxOZ3RTdGF0ZT4oKHsgZ2V0LCB1cGRhdGUgfSkgPT4ge1xuXHRcdGNvbnN0IHsgaW52YWxpZGF0ZSwgYWR2YW5jZSB9ID0gbG9vcDtcblxuXHRcdGNvbnN0IHBvc2l0aW9uID0gbmV3IFZlY3RvcjMoKTtcblx0XHRjb25zdCBkZWZhdWx0VGFyZ2V0ID0gbmV3IFZlY3RvcjMoKTtcblx0XHRjb25zdCB0ZW1wVGFyZ2V0ID0gbmV3IFZlY3RvcjMoKTtcblxuXHRcdGZ1bmN0aW9uIGdldEN1cnJlbnRWaWV3cG9ydChcblx0XHRcdGNhbWVyYTogTmd0Q2FtZXJhID0gZ2V0KCdjYW1lcmEnKSxcblx0XHRcdHRhcmdldDogVmVjdG9yMyB8IFBhcmFtZXRlcnM8VmVjdG9yM1snc2V0J10+ID0gZGVmYXVsdFRhcmdldCxcblx0XHRcdHNpemU6IE5ndFNpemUgPSBnZXQoJ3NpemUnKSxcblx0XHQpOiBPbWl0PE5ndFZpZXdwb3J0LCAnZHByJyB8ICdpbml0aWFsRHByJz4ge1xuXHRcdFx0Y29uc3QgeyB3aWR0aCwgaGVpZ2h0LCB0b3AsIGxlZnQgfSA9IHNpemU7XG5cdFx0XHRjb25zdCBhc3BlY3QgPSB3aWR0aCAvIGhlaWdodDtcblxuXHRcdFx0aWYgKHRhcmdldCBpbnN0YW5jZW9mIFZlY3RvcjMpIHRlbXBUYXJnZXQuY29weSh0YXJnZXQpO1xuXHRcdFx0ZWxzZSB0ZW1wVGFyZ2V0LnNldCguLi50YXJnZXQpO1xuXG5cdFx0XHRjb25zdCBkaXN0YW5jZSA9IGNhbWVyYS5nZXRXb3JsZFBvc2l0aW9uKHBvc2l0aW9uKS5kaXN0YW5jZVRvKHRlbXBUYXJnZXQpO1xuXG5cdFx0XHRpZiAoaXMub3J0aG9ncmFwaGljQ2FtZXJhKGNhbWVyYSkpIHtcblx0XHRcdFx0cmV0dXJuIHsgd2lkdGg6IHdpZHRoIC8gY2FtZXJhLnpvb20sIGhlaWdodDogaGVpZ2h0IC8gY2FtZXJhLnpvb20sIHRvcCwgbGVmdCwgZmFjdG9yOiAxLCBkaXN0YW5jZSwgYXNwZWN0IH07XG5cdFx0XHR9XG5cblx0XHRcdGNvbnN0IGZvdiA9IChjYW1lcmEuZm92ICogTWF0aC5QSSkgLyAxODA7IC8vIGNvbnZlcnQgdmVydGljYWwgZm92IHRvIHJhZGlhbnNcblx0XHRcdGNvbnN0IGggPSAyICogTWF0aC50YW4oZm92IC8gMikgKiBkaXN0YW5jZTsgLy8gdmlzaWJsZSBoZWlnaHRcblx0XHRcdGNvbnN0IHcgPSBoICogKHdpZHRoIC8gaGVpZ2h0KTtcblx0XHRcdHJldHVybiB7IHdpZHRoOiB3LCBoZWlnaHQ6IGgsIHRvcCwgbGVmdCwgZmFjdG9yOiB3aWR0aCAvIHcsIGRpc3RhbmNlLCBhc3BlY3QgfTtcblx0XHR9XG5cblx0XHRsZXQgcGVyZm9ybWFuY2VUaW1lb3V0OiBSZXR1cm5UeXBlPHR5cGVvZiBzZXRUaW1lb3V0PiB8IHVuZGVmaW5lZCA9IHVuZGVmaW5lZDtcblx0XHRjb25zdCBzZXRQZXJmb3JtYW5jZUN1cnJlbnQgPSAoY3VycmVudDogbnVtYmVyKSA9PlxuXHRcdFx0dXBkYXRlKChzdGF0ZSkgPT4gKHsgcGVyZm9ybWFuY2U6IHsgLi4uc3RhdGUucGVyZm9ybWFuY2UsIGN1cnJlbnQgfSB9KSk7XG5cblx0XHRjb25zdCBwb2ludGVyID0gbmV3IFZlY3RvcjIoKTtcblxuXHRcdHJldHVybiB7XG5cdFx0XHRwb2ludGVyTWlzc2VkJDogcG9pbnRlck1pc3NlZCQuYXNPYnNlcnZhYmxlKCksXG5cdFx0XHRldmVudHM6IHsgcHJpb3JpdHk6IDEsIGVuYWJsZWQ6IHRydWUsIGNvbm5lY3RlZDogZmFsc2UgfSxcblxuXHRcdFx0aW52YWxpZGF0ZTogKGZyYW1lcyA9IDEpID0+IGludmFsaWRhdGUoc3RvcmUsIGZyYW1lcyksXG5cdFx0XHRhZHZhbmNlOiAodGltZXN0YW1wOiBudW1iZXIsIHJ1bkdsb2JhbEVmZmVjdHM/OiBib29sZWFuKSA9PiBhZHZhbmNlKHRpbWVzdGFtcCwgcnVuR2xvYmFsRWZmZWN0cywgc3RvcmUpLFxuXG5cdFx0XHRsZWdhY3k6IGZhbHNlLFxuXHRcdFx0bGluZWFyOiBmYWxzZSxcblx0XHRcdGZsYXQ6IGZhbHNlLFxuXG5cdFx0XHRjb250cm9sczogbnVsbCxcblx0XHRcdGNsb2NrOiBuZXcgQ2xvY2soKSxcblx0XHRcdHBvaW50ZXIsXG5cblx0XHRcdGZyYW1lbG9vcDogJ2Fsd2F5cycsXG5cblx0XHRcdHBlcmZvcm1hbmNlOiB7XG5cdFx0XHRcdGN1cnJlbnQ6IDEsXG5cdFx0XHRcdG1pbjogMC41LFxuXHRcdFx0XHRtYXg6IDEsXG5cdFx0XHRcdGRlYm91bmNlOiAyMDAsXG5cdFx0XHRcdHJlZ3Jlc3M6ICgpID0+IHtcblx0XHRcdFx0XHRjb25zdCBzdGF0ZSA9IGdldCgpO1xuXHRcdFx0XHRcdC8vIENsZWFyIHRpbWVvdXRcblx0XHRcdFx0XHRpZiAocGVyZm9ybWFuY2VUaW1lb3V0KSBjbGVhclRpbWVvdXQocGVyZm9ybWFuY2VUaW1lb3V0KTtcblx0XHRcdFx0XHQvLyBTZXQgbG93ZXIgYm91bmQgcGVyZm9ybWFuY2Vcblx0XHRcdFx0XHRpZiAoc3RhdGUucGVyZm9ybWFuY2UuY3VycmVudCAhPT0gc3RhdGUucGVyZm9ybWFuY2UubWluKSBzZXRQZXJmb3JtYW5jZUN1cnJlbnQoc3RhdGUucGVyZm9ybWFuY2UubWluKTtcblx0XHRcdFx0XHQvLyBHbyBiYWNrIHRvIHVwcGVyIGJvdW5kIHBlcmZvcm1hbmNlIGFmdGVyIGEgd2hpbGUgdW5sZXNzIHNvbWV0aGluZyByZWdyZXNzZXMgbWVhbndoaWxlXG5cdFx0XHRcdFx0cGVyZm9ybWFuY2VUaW1lb3V0ID0gc2V0VGltZW91dCgoKSA9PiB7XG5cdFx0XHRcdFx0XHRzZXRQZXJmb3JtYW5jZUN1cnJlbnQoZ2V0KCdwZXJmb3JtYW5jZScsICdtYXgnKSk7XG5cdFx0XHRcdFx0XHQvLyBzYWZlRGV0ZWN0Q2hhbmdlcyhjZHIpO1xuXHRcdFx0XHRcdH0sIHN0YXRlLnBlcmZvcm1hbmNlLmRlYm91bmNlKTtcblx0XHRcdFx0fSxcblx0XHRcdH0sXG5cblx0XHRcdHNpemU6IHsgd2lkdGg6IDAsIGhlaWdodDogMCwgdG9wOiAwLCBsZWZ0OiAwLCB1cGRhdGVTdHlsZTogZmFsc2UgfSxcblx0XHRcdHZpZXdwb3J0OiB7XG5cdFx0XHRcdGluaXRpYWxEcHI6IHdpbmRvdz8uZGV2aWNlUGl4ZWxSYXRpbyB8fCAxLFxuXHRcdFx0XHRkcHI6IHdpbmRvdz8uZGV2aWNlUGl4ZWxSYXRpbyB8fCAxLFxuXHRcdFx0XHR3aWR0aDogMCxcblx0XHRcdFx0aGVpZ2h0OiAwLFxuXHRcdFx0XHR0b3A6IDAsXG5cdFx0XHRcdGxlZnQ6IDAsXG5cdFx0XHRcdGFzcGVjdDogMCxcblx0XHRcdFx0ZGlzdGFuY2U6IDAsXG5cdFx0XHRcdGZhY3RvcjogMCxcblx0XHRcdFx0Z2V0Q3VycmVudFZpZXdwb3J0LFxuXHRcdFx0fSxcblxuXHRcdFx0c2V0RXZlbnRzOiAoZXZlbnRzOiBQYXJ0aWFsPE5ndEV2ZW50TWFuYWdlcjxhbnk+PikgPT5cblx0XHRcdFx0dXBkYXRlKChzdGF0ZSkgPT4gKHsgLi4uc3RhdGUsIGV2ZW50czogeyAuLi5zdGF0ZS5ldmVudHMsIC4uLmV2ZW50cyB9IH0pKSxcblx0XHRcdHNldFNpemU6ICh3aWR0aDogbnVtYmVyLCBoZWlnaHQ6IG51bWJlciwgdG9wPzogbnVtYmVyLCBsZWZ0PzogbnVtYmVyKSA9PiB7XG5cdFx0XHRcdGNvbnN0IGNhbWVyYSA9IGdldCgnY2FtZXJhJyk7XG5cdFx0XHRcdGNvbnN0IHNpemUgPSB7IHdpZHRoLCBoZWlnaHQsIHRvcDogdG9wIHx8IDAsIGxlZnQ6IGxlZnQgfHwgMCB9O1xuXHRcdFx0XHR1cGRhdGUoKHN0YXRlKSA9PiAoe1xuXHRcdFx0XHRcdHNpemUsXG5cdFx0XHRcdFx0dmlld3BvcnQ6IHsgLi4uc3RhdGUudmlld3BvcnQsIC4uLmdldEN1cnJlbnRWaWV3cG9ydChjYW1lcmEsIGRlZmF1bHRUYXJnZXQsIHNpemUpIH0sXG5cdFx0XHRcdH0pKTtcblx0XHRcdH0sXG5cdFx0XHRzZXREcHI6IChkcHI6IE5ndERwcikgPT5cblx0XHRcdFx0dXBkYXRlKChzdGF0ZSkgPT4ge1xuXHRcdFx0XHRcdGNvbnN0IHJlc29sdmVkID0gbWFrZURwcihkcHIsIHdpbmRvdyk7XG5cdFx0XHRcdFx0cmV0dXJuIHsgdmlld3BvcnQ6IHsgLi4uc3RhdGUudmlld3BvcnQsIGRwcjogcmVzb2x2ZWQsIGluaXRpYWxEcHI6IHN0YXRlLnZpZXdwb3J0LmluaXRpYWxEcHIgfHwgcmVzb2x2ZWQgfSB9O1xuXHRcdFx0XHR9KSxcblx0XHRcdHNldEZyYW1lbG9vcDogKGZyYW1lbG9vcDogJ2Fsd2F5cycgfCAnZGVtYW5kJyB8ICduZXZlcicgPSAnYWx3YXlzJykgPT4ge1xuXHRcdFx0XHRjb25zdCBjbG9jayA9IGdldCgnY2xvY2snKTtcblxuXHRcdFx0XHQvLyBpZiBmcmFtZWxvb3AgPT09IFwibmV2ZXJcIiBjbG9jay5lbGFwc2VkVGltZSBpcyB1cGRhdGVkIHVzaW5nIGFkdmFuY2UodGltZXN0YW1wKVxuXHRcdFx0XHRjbG9jay5zdG9wKCk7XG5cdFx0XHRcdGNsb2NrLmVsYXBzZWRUaW1lID0gMDtcblxuXHRcdFx0XHRpZiAoZnJhbWVsb29wICE9PSAnbmV2ZXInKSB7XG5cdFx0XHRcdFx0Y2xvY2suc3RhcnQoKTtcblx0XHRcdFx0XHRjbG9jay5lbGFwc2VkVGltZSA9IDA7XG5cdFx0XHRcdH1cblxuXHRcdFx0XHR1cGRhdGUoKCkgPT4gKHsgZnJhbWVsb29wIH0pKTtcblx0XHRcdH0sXG5cblx0XHRcdHByZXZpb3VzUm9vdDogcHJldmlvdXNTdG9yZSxcblx0XHRcdGludGVybmFsOiB7XG5cdFx0XHRcdGFjdGl2ZTogZmFsc2UsXG5cdFx0XHRcdHByaW9yaXR5OiAwLFxuXHRcdFx0XHRmcmFtZXM6IDAsXG5cdFx0XHRcdGxhc3RFdmVudDogbmV3IEVsZW1lbnRSZWYobnVsbCksXG5cdFx0XHRcdGludGVyYWN0aW9uOiBbXSxcblx0XHRcdFx0aG92ZXJlZDogbmV3IE1hcCgpLFxuXHRcdFx0XHRzdWJzY3JpYmVyczogW10sXG5cdFx0XHRcdGluaXRpYWxDbGljazogWzAsIDBdLFxuXHRcdFx0XHRpbml0aWFsSGl0czogW10sXG5cdFx0XHRcdGNhcHR1cmVkTWFwOiBuZXcgTWFwKCksXG5cdFx0XHRcdHN1YnNjcmliZTogKFxuXHRcdFx0XHRcdGNhbGxiYWNrOiBOZ3RCZWZvcmVSZW5kZXJSZWNvcmRbJ2NhbGxiYWNrJ10sXG5cdFx0XHRcdFx0cHJpb3JpdHkgPSAwLFxuXHRcdFx0XHRcdF9zdG9yZTogTmd0U2lnbmFsU3RvcmU8Tmd0U3RhdGU+ID0gc3RvcmUsXG5cdFx0XHRcdCkgPT4ge1xuXHRcdFx0XHRcdGNvbnN0IGludGVybmFsID0gZ2V0KCdpbnRlcm5hbCcpO1xuXHRcdFx0XHRcdC8vIElmIHRoaXMgc3Vic2NyaXB0aW9uIHdhcyBnaXZlbiBhIHByaW9yaXR5LCBpdCB0YWtlcyByZW5kZXJpbmcgaW50byBpdHMgb3duIGhhbmRzXG5cdFx0XHRcdFx0Ly8gRm9yIHRoYXQgcmVhc29uIHdlIHN3aXRjaCBvZmYgYXV0b21hdGljIHJlbmRlcmluZyBhbmQgaW5jcmVhc2UgdGhlIG1hbnVhbCBmbGFnXG5cdFx0XHRcdFx0Ly8gQXMgbG9uZyBhcyB0aGlzIGZsYWcgaXMgcG9zaXRpdmUgdGhlcmUgY2FuIGJlIG5vIGludGVybmFsIHJlbmRlcmluZyBhdCBhbGxcblx0XHRcdFx0XHQvLyBiZWNhdXNlIHRoZXJlIGNvdWxkIGJlIG11bHRpcGxlIHJlbmRlciBzdWJzY3JpcHRpb25zXG5cdFx0XHRcdFx0aW50ZXJuYWwucHJpb3JpdHkgPSBpbnRlcm5hbC5wcmlvcml0eSArIChwcmlvcml0eSA+IDAgPyAxIDogMCk7XG5cdFx0XHRcdFx0aW50ZXJuYWwuc3Vic2NyaWJlcnMucHVzaCh7IGNhbGxiYWNrLCBwcmlvcml0eSwgc3RvcmU6IF9zdG9yZSB9KTtcblx0XHRcdFx0XHQvLyBSZWdpc3RlciBzdWJzY3JpYmVyIGFuZCBzb3J0IGxheWVycyBmcm9tIGxvd2VzdCB0byBoaWdoZXN0LCBtZWFuaW5nLFxuXHRcdFx0XHRcdC8vIGhpZ2hlc3QgcHJpb3JpdHkgcmVuZGVycyBsYXN0IChvbiB0b3Agb2YgdGhlIG90aGVyIGZyYW1lcylcblx0XHRcdFx0XHRpbnRlcm5hbC5zdWJzY3JpYmVycyA9IGludGVybmFsLnN1YnNjcmliZXJzLnNvcnQoKGEsIGIpID0+IChhLnByaW9yaXR5IHx8IDApIC0gKGIucHJpb3JpdHkgfHwgMCkpO1xuXG5cdFx0XHRcdFx0cmV0dXJuICgpID0+IHtcblx0XHRcdFx0XHRcdGNvbnN0IGludGVybmFsID0gZ2V0KCdpbnRlcm5hbCcpO1xuXHRcdFx0XHRcdFx0aWYgKGludGVybmFsPy5zdWJzY3JpYmVycykge1xuXHRcdFx0XHRcdFx0XHQvLyBEZWNyZWFzZSBtYW51YWwgZmxhZyBpZiB0aGlzIHN1YnNjcmlwdGlvbiBoYWQgYSBwcmlvcml0eVxuXHRcdFx0XHRcdFx0XHRpbnRlcm5hbC5wcmlvcml0eSA9IGludGVybmFsLnByaW9yaXR5IC0gKHByaW9yaXR5ID4gMCA/IDEgOiAwKTtcblx0XHRcdFx0XHRcdFx0Ly8gUmVtb3ZlIHN1YnNjcmliZXIgZnJvbSBsaXN0XG5cdFx0XHRcdFx0XHRcdGludGVybmFsLnN1YnNjcmliZXJzID0gaW50ZXJuYWwuc3Vic2NyaWJlcnMuZmlsdGVyKChzKSA9PiBzLmNhbGxiYWNrICE9PSBjYWxsYmFjayk7XG5cdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0fTtcblx0XHRcdFx0fSxcblx0XHRcdH0sXG5cdFx0fTtcblx0fSk7XG5cblx0T2JqZWN0LmRlZmluZVByb3BlcnR5KHN0b3JlLCAncG9pbnRlck1pc3NlZCQnLCB7IGdldDogKCkgPT4gcG9pbnRlck1pc3NlZCQgfSk7XG5cblx0bGV0IHtcblx0XHRzaXplOiBvbGRTaXplLFxuXHRcdHZpZXdwb3J0OiB7IGRwcjogb2xkRHByIH0sXG5cdFx0Y2FtZXJhOiBvbGRDYW1lcmEsXG5cdH0gPSBzdG9yZS5zbmFwc2hvdDtcblxuXHRlZmZlY3QoKCkgPT4ge1xuXHRcdGNvbnN0IHtcblx0XHRcdGNhbWVyYTogbmV3Q2FtZXJhLFxuXHRcdFx0c2l6ZTogbmV3U2l6ZSxcblx0XHRcdHZpZXdwb3J0OiB7IGRwcjogbmV3RHByIH0sXG5cdFx0XHRnbCxcblx0XHR9ID0gc3RvcmUuc3RhdGUoKTtcblxuXHRcdC8vIFJlc2l6ZSBjYW1lcmEgYW5kIHJlbmRlcmVyIG9uIGNoYW5nZXMgdG8gc2l6ZSBhbmQgcGl4ZWwtcmF0aW9cblx0XHRpZiAobmV3U2l6ZSAhPT0gb2xkU2l6ZSB8fCBuZXdEcHIgIT09IG9sZERwcikge1xuXHRcdFx0b2xkU2l6ZSA9IG5ld1NpemU7XG5cdFx0XHRvbGREcHIgPSBuZXdEcHI7XG5cdFx0XHQvLyBVcGRhdGUgY2FtZXJhICYgcmVuZGVyZXJcblx0XHRcdHVwZGF0ZUNhbWVyYShuZXdDYW1lcmEsIG5ld1NpemUpO1xuXHRcdFx0Z2wuc2V0UGl4ZWxSYXRpbyhuZXdEcHIpO1xuXG5cdFx0XHRjb25zdCB1cGRhdGVTdHlsZSA9IHR5cGVvZiBIVE1MQ2FudmFzRWxlbWVudCAhPT0gJ3VuZGVmaW5lZCcgJiYgZ2wuZG9tRWxlbWVudCBpbnN0YW5jZW9mIEhUTUxDYW52YXNFbGVtZW50O1xuXHRcdFx0Z2wuc2V0U2l6ZShuZXdTaXplLndpZHRoLCBuZXdTaXplLmhlaWdodCwgdXBkYXRlU3R5bGUpO1xuXHRcdH1cblxuXHRcdC8vIFVwZGF0ZSB2aWV3cG9ydCBvbmNlIHRoZSBjYW1lcmEgY2hhbmdlc1xuXHRcdGlmIChuZXdDYW1lcmEgIT09IG9sZENhbWVyYSkge1xuXHRcdFx0b2xkQ2FtZXJhID0gbmV3Q2FtZXJhO1xuXHRcdFx0dXBkYXRlQ2FtZXJhKG5ld0NhbWVyYSwgbmV3U2l6ZSk7XG5cdFx0XHQvLyBVcGRhdGUgdmlld3BvcnRcblx0XHRcdHN0b3JlLnVwZGF0ZSgoc3RhdGUpID0+ICh7IHZpZXdwb3J0OiB7IC4uLnN0YXRlLnZpZXdwb3J0LCAuLi5zdGF0ZS52aWV3cG9ydC5nZXRDdXJyZW50Vmlld3BvcnQobmV3Q2FtZXJhKSB9IH0pKTtcblx0XHR9XG5cdH0pO1xuXG5cdHJldHVybiBzdG9yZTtcbn1cblxuZXhwb3J0IGNvbnN0IE5HVF9TVE9SRSA9IG5ldyBJbmplY3Rpb25Ub2tlbjxOZ3RTaWduYWxTdG9yZTxOZ3RTdGF0ZT4+KCdOZ3RTdG9yZSBUb2tlbicpO1xuXG5leHBvcnQgZnVuY3Rpb24gcHJvdmlkZVN0b3JlKHN0b3JlPzogKCkgPT4gTmd0U2lnbmFsU3RvcmU8Tmd0U3RhdGU+KSB7XG5cdGlmIChzdG9yZSkge1xuXHRcdHJldHVybiB7IHByb3ZpZGU6IE5HVF9TVE9SRSwgdXNlRmFjdG9yeTogc3RvcmUgfTtcblx0fVxuXHRyZXR1cm4geyBwcm92aWRlOiBOR1RfU1RPUkUsIHVzZUZhY3Rvcnk6IHN0b3JlRmFjdG9yeSB9O1xufVxuXG5leHBvcnQgZnVuY3Rpb24gaW5qZWN0U3RvcmUob3B0aW9uczogSW5qZWN0T3B0aW9ucyAmIHsgb3B0aW9uYWw/OiBmYWxzZSB9KTogTmd0U2lnbmFsU3RvcmU8Tmd0U3RhdGU+O1xuZXhwb3J0IGZ1bmN0aW9uIGluamVjdFN0b3JlKG9wdGlvbnM6IEluamVjdE9wdGlvbnMpOiBOZ3RTaWduYWxTdG9yZTxOZ3RTdGF0ZT4gfCBudWxsO1xuZXhwb3J0IGZ1bmN0aW9uIGluamVjdFN0b3JlKCk6IE5ndFNpZ25hbFN0b3JlPE5ndFN0YXRlPjtcbmV4cG9ydCBmdW5jdGlvbiBpbmplY3RTdG9yZShvcHRpb25zPzogSW5qZWN0T3B0aW9ucykge1xuXHRyZXR1cm4gaW5qZWN0KE5HVF9TVE9SRSwgb3B0aW9ucyBhcyBJbmplY3RPcHRpb25zKTtcbn1cbiJdfQ==
@@ -961,6 +961,8 @@ const [injectLoop] = createInjectionToken(() => createLoop(roots));
961
961
 
962
962
  function storeFactory(previousStore) {
963
963
  const loop = injectLoop();
964
+ const document = inject(DOCUMENT);
965
+ const window = document.defaultView || undefined;
964
966
  // NOTE: using Subject because we do not care about late-subscribers
965
967
  const pointerMissed$ = new Subject();
966
968
  const store = signalStore(({ get, update }) => {
@@ -1021,8 +1023,8 @@ function storeFactory(previousStore) {
1021
1023
  },
1022
1024
  size: { width: 0, height: 0, top: 0, left: 0, updateStyle: false },
1023
1025
  viewport: {
1024
- initialDpr: 0,
1025
- dpr: 0,
1026
+ initialDpr: window?.devicePixelRatio || 1,
1027
+ dpr: window?.devicePixelRatio || 1,
1026
1028
  width: 0,
1027
1029
  height: 0,
1028
1030
  top: 0,
@@ -2168,7 +2170,7 @@ function injectCanvasRootInitializer(injector) {
2168
2170
  if (!state.camera || (state.camera === lastCamera && !is.equ(lastCamera, cameraOptions, shallowLoose))) {
2169
2171
  lastCamera = cameraOptions;
2170
2172
  const isCamera = is.camera(cameraOptions);
2171
- let camera = isCamera ? cameraOptions : makeCameraInstance(orthographic, state.size);
2173
+ let camera = isCamera ? cameraOptions : makeCameraInstance(orthographic, sizeOptions ?? state.size);
2172
2174
  if (!isCamera) {
2173
2175
  camera.position.z = 5;
2174
2176
  if (cameraOptions) {
@@ -2311,7 +2313,7 @@ function injectCanvasRootInitializer(injector) {
2311
2313
  if (gl.setClearAlpha) {
2312
2314
  gl.setClearAlpha(0);
2313
2315
  }
2314
- gl.setPixelRatio(makeDpr(state.viewport.dpr ?? dpr));
2316
+ gl.setPixelRatio(makeDpr(state.viewport.dpr));
2315
2317
  gl.setSize(sizeOptions?.width ?? state.size.width, sizeOptions?.height ?? state.size.height);
2316
2318
  if (is.obj(glOptions) &&
2317
2319
  !(typeof glOptions === 'function') &&
@@ -2347,9 +2349,8 @@ function injectCanvasRootInitializer(injector) {
2347
2349
  });
2348
2350
  }
2349
2351
  function computeInitialSize(canvas, defaultSize) {
2350
- if (defaultSize) {
2352
+ if (defaultSize)
2351
2353
  return defaultSize;
2352
- }
2353
2354
  if (typeof HTMLCanvasElement !== 'undefined' && canvas instanceof HTMLCanvasElement && canvas.parentElement) {
2354
2355
  return canvas.parentElement.getBoundingClientRect();
2355
2356
  }