@ohif/app 3.12.6 → 3.12.8

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.
Files changed (30) hide show
  1. package/dist/{2851.bundle.6aa55f956d06e264c6e1.js → 2851.bundle.c25c901048753cbd5547.js} +2 -2
  2. package/dist/{6125.bundle.2c6f2ba3bd8e1493e54b.js → 6125.bundle.ab478c49c15f1275c336.js} +425 -115
  3. package/dist/{6376.bundle.f5ef0f5465d575d0dbb0.js → 6376.bundle.9c9649f16fb3de292c52.js} +1 -1
  4. package/dist/{app.bundle.937a2778aaa4778e6c02.js → app.bundle.13c9ec2d0e38e06c6bf4.js} +2 -2
  5. package/dist/index.html +1 -1
  6. package/dist/{interpolation.bundle.046b662a640ec91af340.js → interpolation.bundle.ae4d1b6dfb6b4bd37159.js} +1 -1
  7. package/dist/sw.js +1 -1
  8. package/package.json +20 -20
  9. /package/dist/{1403.bundle.b197270f69d3c0588892.js → 1403.bundle.48708695d2d613d5aeaa.js} +0 -0
  10. /package/dist/{1459.bundle.a02d97c6ea19acfe72af.js → 1459.bundle.66cf33bfbbb8cda9e5b8.js} +0 -0
  11. /package/dist/{1730.bundle.1db08d6f53e18521892e.js → 1730.bundle.bdcf4c526a9fc7f0aea7.js} +0 -0
  12. /package/dist/{1933.bundle.cfe31cdb414ed282e2a8.js → 1933.bundle.7591785745bd318e26a4.js} +0 -0
  13. /package/dist/{2018.bundle.a8247cd47f015393754a.js → 2018.bundle.af43329bc1669fa760e2.js} +0 -0
  14. /package/dist/{213.bundle.e5e2baec1fc25ec1077d.js → 213.bundle.4d25a4b4be3421505ce9.js} +0 -0
  15. /package/dist/{2424.bundle.a918f65d42143b674dd1.js → 2424.bundle.1627d3e055f0027f5c36.js} +0 -0
  16. /package/dist/{3081.bundle.43fd43cdf7e20ac4a7d2.js → 3081.bundle.4ccb3f053735afa48158.js} +0 -0
  17. /package/dist/{3461.bundle.d383abec7b82083ea721.js → 3461.bundle.6064d1fcac884b9fe276.js} +0 -0
  18. /package/dist/{4775.bundle.64cc3c4cb4325f3645c1.js → 4775.bundle.3759845ca820fe88b0ba.js} +0 -0
  19. /package/dist/{4819.bundle.9cf183abace508833e58.js → 4819.bundle.0ca3136287b7ccb9ace1.js} +0 -0
  20. /package/dist/{5028.bundle.5749a01d857bf52f2212.js → 5028.bundle.77dda9acd186ff73199e.js} +0 -0
  21. /package/dist/{5457.bundle.9366c2f7ddec0faab22c.js → 5457.bundle.c3ab627d5c2746a2c9fe.js} +0 -0
  22. /package/dist/{5485.bundle.f78dfc46d26c61356dd0.js → 5485.bundle.f1ed619da56e368fd6d1.js} +0 -0
  23. /package/dist/{6027.bundle.c954ff94afc634ffc411.js → 6027.bundle.410be2beb2df3a21ad4f.js} +0 -0
  24. /package/dist/{6163.bundle.4c61babd4a1fae1e5eab.js → 6163.bundle.cfc84effaf872fd4fb10.js} +0 -0
  25. /package/dist/{7639.bundle.aa5b21af3e387a6c7d21.js → 7639.bundle.09f37bd8abe6256f30ab.js} +0 -0
  26. /package/dist/{8305.bundle.43a62623e0fe02a7e0a8.js → 8305.bundle.0753faa2dc43a14092b7.js} +0 -0
  27. /package/dist/{85.bundle.585f1e2b477ad43a2e73.js → 85.bundle.0291d61a32ce9935de13.js} +0 -0
  28. /package/dist/{8558.bundle.bc4e1e855e2bda0cc943.js → 8558.bundle.7d23559153485d455bc6.js} +0 -0
  29. /package/dist/{8583.bundle.44756013acd9c1bf0047.js → 8583.bundle.bc1971a7d8b5b1043239.js} +0 -0
  30. /package/dist/{9927.bundle.b3cc3818950d2ec189e3.js → 9927.bundle.98382d216a6d0a6cd4fb.js} +0 -0
@@ -10516,8 +10516,8 @@ function AboutModalDefault() {
10516
10516
  name
10517
10517
  } = (0,browser_detect_es5/* default */.A)();
10518
10518
  const browser = `${name[0].toUpperCase()}${name.substr(1)} ${version}`;
10519
- const versionNumber = "3.12.6";
10520
- const commitHash = "646dd583a2a6e7a3c2d370c6312f23967f96471e";
10519
+ const versionNumber = "3.12.8";
10520
+ const commitHash = "c09feca1ce0d9836d3c8efa9280380818855740a";
10521
10521
  const [main, beta] = versionNumber.split('-');
10522
10522
  return /*#__PURE__*/react.createElement(ui_next_src/* AboutModal */.VTU, {
10523
10523
  className: "w-[400px]"
@@ -2126,6 +2126,57 @@ const { toString: utils_toString } = Object.prototype;
2126
2126
  const { getPrototypeOf } = Object;
2127
2127
  const { iterator, toStringTag } = Symbol;
2128
2128
 
2129
+ /* Creating a function that will check if an object has a property. */
2130
+ const utils_hasOwnProperty = (
2131
+ ({ hasOwnProperty }) =>
2132
+ (obj, prop) =>
2133
+ hasOwnProperty.call(obj, prop)
2134
+ )(Object.prototype);
2135
+
2136
+ /**
2137
+ * Walk the prototype chain (excluding the shared Object.prototype) looking for
2138
+ * an own `prop`. This distinguishes genuine own/inherited members — including
2139
+ * class accessors and template prototypes — from members injected via
2140
+ * Object.prototype pollution (e.g. `Object.prototype.username = '...'`), which
2141
+ * live on Object.prototype itself and are therefore never matched.
2142
+ *
2143
+ * @param {*} thing The value whose chain to inspect
2144
+ * @param {string|symbol} prop The property key to look for
2145
+ *
2146
+ * @returns {boolean} True when `prop` is owned below Object.prototype
2147
+ */
2148
+ const hasOwnInPrototypeChain = (thing, prop) => {
2149
+ let obj = thing;
2150
+ const seen = [];
2151
+
2152
+ while (obj != null && obj !== Object.prototype) {
2153
+ if (seen.indexOf(obj) !== -1) {
2154
+ return false;
2155
+ }
2156
+ seen.push(obj);
2157
+
2158
+ if (utils_hasOwnProperty(obj, prop)) {
2159
+ return true;
2160
+ }
2161
+ obj = getPrototypeOf(obj);
2162
+ }
2163
+ return false;
2164
+ };
2165
+
2166
+ /**
2167
+ * Read `obj[prop]` only when it is safe from Object.prototype pollution. Own
2168
+ * properties and members inherited from a non-Object.prototype source (a class
2169
+ * instance or template object) are honored; a value reachable only through a
2170
+ * polluted Object.prototype is ignored and `undefined` is returned.
2171
+ *
2172
+ * @param {*} obj The source object
2173
+ * @param {string|symbol} prop The property key to read
2174
+ *
2175
+ * @returns {*} The resolved value, or undefined when unsafe/absent
2176
+ */
2177
+ const getSafeProp = (obj, prop) =>
2178
+ obj != null && hasOwnInPrototypeChain(obj, prop) ? obj[prop] : undefined;
2179
+
2129
2180
  const kindOf = ((cache) => (thing) => {
2130
2181
  const str = utils_toString.call(thing);
2131
2182
  return cache[str] || (cache[str] = str.slice(8, -1).toLowerCase());
@@ -2251,7 +2302,7 @@ const isBoolean = (thing) => thing === true || thing === false;
2251
2302
  * @returns {boolean} True if value is a plain Object, otherwise false
2252
2303
  */
2253
2304
  const isPlainObject = (val) => {
2254
- if (kindOf(val) !== 'object') {
2305
+ if (!isObject(val)) {
2255
2306
  return false;
2256
2307
  }
2257
2308
 
@@ -2259,9 +2310,12 @@ const isPlainObject = (val) => {
2259
2310
  return (
2260
2311
  (prototype === null ||
2261
2312
  prototype === Object.prototype ||
2262
- Object.getPrototypeOf(prototype) === null) &&
2263
- !(toStringTag in val) &&
2264
- !(iterator in val)
2313
+ getPrototypeOf(prototype) === null) &&
2314
+ // Treat any genuine (non-Object.prototype-polluted) Symbol.toStringTag or
2315
+ // Symbol.iterator as evidence the value is a tagged/iterable type rather
2316
+ // than a plain object, while ignoring keys injected onto Object.prototype.
2317
+ !hasOwnInPrototypeChain(val, toStringTag) &&
2318
+ !hasOwnInPrototypeChain(val, iterator)
2265
2319
  );
2266
2320
  };
2267
2321
 
@@ -2788,13 +2842,6 @@ const toCamelCase = (str) => {
2788
2842
  });
2789
2843
  };
2790
2844
 
2791
- /* Creating a function that will check if an object has a property. */
2792
- const utils_hasOwnProperty = (
2793
- ({ hasOwnProperty }) =>
2794
- (obj, prop) =>
2795
- hasOwnProperty.call(obj, prop)
2796
- )(Object.prototype);
2797
-
2798
2845
  const { propertyIsEnumerable } = Object.prototype;
2799
2846
 
2800
2847
  /**
@@ -3008,6 +3055,20 @@ const asap =
3008
3055
 
3009
3056
  const isIterable = (thing) => thing != null && isFunction(thing[iterator]);
3010
3057
 
3058
+ /**
3059
+ * Determine if a value is iterable via an iterator that is NOT sourced solely
3060
+ * from a polluted Object.prototype. Use this instead of `isIterable` whenever
3061
+ * the iterable comes from untrusted input (e.g. user-supplied header sources),
3062
+ * so `Object.prototype[Symbol.iterator] = ...` cannot turn an ordinary object
3063
+ * into an attacker-controlled entries iterator.
3064
+ *
3065
+ * @param {*} thing The value to test
3066
+ *
3067
+ * @returns {boolean} True if value has a non-polluted iterator
3068
+ */
3069
+ const isSafeIterable = (thing) =>
3070
+ thing != null && hasOwnInPrototypeChain(thing, iterator) && isIterable(thing);
3071
+
3011
3072
  /* harmony default export */ const utils = ({
3012
3073
  isArray,
3013
3074
  isArrayBuffer,
@@ -3052,6 +3113,8 @@ const isIterable = (thing) => thing != null && isFunction(thing[iterator]);
3052
3113
  isHTMLForm,
3053
3114
  hasOwnProperty: utils_hasOwnProperty,
3054
3115
  hasOwnProp: utils_hasOwnProperty, // an alias to avoid ESLint no-prototype-builtins detection
3116
+ hasOwnInPrototypeChain,
3117
+ getSafeProp,
3055
3118
  reduceDescriptors,
3056
3119
  freezeMethods,
3057
3120
  toObjectSet,
@@ -3068,6 +3131,7 @@ const isIterable = (thing) => thing != null && isFunction(thing[iterator]);
3068
3131
  setImmediate: _setImmediate,
3069
3132
  asap,
3070
3133
  isIterable,
3134
+ isSafeIterable,
3071
3135
  });
3072
3136
 
3073
3137
  ;// ../../../node_modules/axios/lib/helpers/parseHeaders.js
@@ -3317,8 +3381,8 @@ class AxiosHeaders {
3317
3381
  setHeaders(header, valueOrRewrite);
3318
3382
  } else if (utils.isString(header) && (header = header.trim()) && !isValidHeaderName(header)) {
3319
3383
  setHeaders(parseHeaders(header), valueOrRewrite);
3320
- } else if (utils.isObject(header) && utils.isIterable(header)) {
3321
- let obj = {},
3384
+ } else if (utils.isObject(header) && utils.isSafeIterable(header)) {
3385
+ let obj = Object.create(null),
3322
3386
  dest,
3323
3387
  key;
3324
3388
  for (const entry of header) {
@@ -3326,11 +3390,14 @@ class AxiosHeaders {
3326
3390
  throw new TypeError('Object iterator must return a key-value pair');
3327
3391
  }
3328
3392
 
3329
- obj[(key = entry[0])] = (dest = obj[key])
3330
- ? utils.isArray(dest)
3331
- ? [...dest, entry[1]]
3332
- : [dest, entry[1]]
3333
- : entry[1];
3393
+ key = entry[0];
3394
+
3395
+ if (utils.hasOwnProp(obj, key)) {
3396
+ dest = obj[key];
3397
+ obj[key] = utils.isArray(dest) ? [...dest, entry[1]] : [dest, entry[1]];
3398
+ } else {
3399
+ obj[key] = entry[1];
3400
+ }
3334
3401
  }
3335
3402
 
3336
3403
  setHeaders(obj, valueOrRewrite);
@@ -3631,7 +3698,19 @@ function redactConfig(config, redactKeys) {
3631
3698
  class AxiosError extends Error {
3632
3699
  static from(error, code, config, request, response, customProps) {
3633
3700
  const axiosError = new AxiosError(error.message, code || error.code, config, request, response);
3634
- axiosError.cause = error;
3701
+ // Match native `Error` `cause` semantics: non-enumerable. The wrapped
3702
+ // error often carries circular internals (sockets, requests, agents), so
3703
+ // an enumerable `cause` makes structured loggers (pino/winston) and any
3704
+ // own-property walk throw "Converting circular structure to JSON".
3705
+ // Regression from #6982; see #7205. `__proto__: null` mirrors the
3706
+ // `message` descriptor below (prototype-pollution-safe descriptor).
3707
+ Object.defineProperty(axiosError, 'cause', {
3708
+ __proto__: null,
3709
+ value: error,
3710
+ writable: true,
3711
+ enumerable: false,
3712
+ configurable: true,
3713
+ });
3635
3714
  axiosError.name = error.name;
3636
3715
 
3637
3716
  // Preserve status from the original error if not already set from response
@@ -3744,6 +3823,10 @@ AxiosError.ERR_FORM_DATA_DEPTH_EXCEEDED = 'ERR_FORM_DATA_DEPTH_EXCEEDED';
3744
3823
  // temporary hotfix to avoid circular references until AxiosURLSearchParams is refactored
3745
3824
 
3746
3825
 
3826
+ // Default nesting limit shared with the inverse transform (formDataToJSON) so
3827
+ // the FormData <-> JSON round-trip stays symmetric.
3828
+ const DEFAULT_FORM_DATA_MAX_DEPTH = 100;
3829
+
3747
3830
  /**
3748
3831
  * Determines if the given thing is a array or js object.
3749
3832
  *
@@ -3854,8 +3937,9 @@ function toFormData(obj, formData, options) {
3854
3937
  const dots = options.dots;
3855
3938
  const indexes = options.indexes;
3856
3939
  const _Blob = options.Blob || (typeof Blob !== 'undefined' && Blob);
3857
- const maxDepth = options.maxDepth === undefined ? 100 : options.maxDepth;
3940
+ const maxDepth = options.maxDepth === undefined ? DEFAULT_FORM_DATA_MAX_DEPTH : options.maxDepth;
3858
3941
  const useBlob = _Blob && utils.isSpecCompliantForm(formData);
3942
+ const stack = [];
3859
3943
 
3860
3944
  if (!utils.isFunction(visitor)) {
3861
3945
  throw new TypeError('visitor must be a function');
@@ -3877,12 +3961,50 @@ function toFormData(obj, formData, options) {
3877
3961
  }
3878
3962
 
3879
3963
  if (utils.isArrayBuffer(value) || utils.isTypedArray(value)) {
3880
- return useBlob && typeof Blob === 'function' ? new Blob([value]) : Buffer.from(value);
3964
+ if (useBlob && typeof _Blob === 'function') {
3965
+ return new _Blob([value]);
3966
+ }
3967
+ if (typeof Buffer !== 'undefined') {
3968
+ return Buffer.from(value);
3969
+ }
3970
+ throw new core_AxiosError('Blob is not supported. Use a Buffer instead.', core_AxiosError.ERR_NOT_SUPPORT);
3881
3971
  }
3882
3972
 
3883
3973
  return value;
3884
3974
  }
3885
3975
 
3976
+ function throwIfMaxDepthExceeded(depth) {
3977
+ if (depth > maxDepth) {
3978
+ throw new core_AxiosError(
3979
+ 'Object is too deeply nested (' + depth + ' levels). Max depth: ' + maxDepth,
3980
+ core_AxiosError.ERR_FORM_DATA_DEPTH_EXCEEDED
3981
+ );
3982
+ }
3983
+ }
3984
+
3985
+ function stringifyWithDepthLimit(value, depth) {
3986
+ if (maxDepth === Infinity) {
3987
+ return JSON.stringify(value);
3988
+ }
3989
+
3990
+ const ancestors = [];
3991
+
3992
+ return JSON.stringify(value, function limitDepth(_key, currentValue) {
3993
+ if (!utils.isObject(currentValue)) {
3994
+ return currentValue;
3995
+ }
3996
+
3997
+ while (ancestors.length && ancestors[ancestors.length - 1] !== this) {
3998
+ ancestors.pop();
3999
+ }
4000
+
4001
+ ancestors.push(currentValue);
4002
+ throwIfMaxDepthExceeded(depth + ancestors.length - 1);
4003
+
4004
+ return currentValue;
4005
+ });
4006
+ }
4007
+
3886
4008
  /**
3887
4009
  * Default visitor.
3888
4010
  *
@@ -3906,7 +4028,7 @@ function toFormData(obj, formData, options) {
3906
4028
  // eslint-disable-next-line no-param-reassign
3907
4029
  key = metaTokens ? key : key.slice(0, -2);
3908
4030
  // eslint-disable-next-line no-param-reassign
3909
- value = JSON.stringify(value);
4031
+ value = stringifyWithDepthLimit(value, 1);
3910
4032
  } else if (
3911
4033
  (utils.isArray(value) && isFlatArray(value)) ||
3912
4034
  ((utils.isFileList(value) || utils.endsWith(key, '[]')) && (arr = utils.toArray(value)))
@@ -3939,8 +4061,6 @@ function toFormData(obj, formData, options) {
3939
4061
  return false;
3940
4062
  }
3941
4063
 
3942
- const stack = [];
3943
-
3944
4064
  const exposedHelpers = Object.assign(predicates, {
3945
4065
  defaultVisitor,
3946
4066
  convertValue,
@@ -3950,12 +4070,7 @@ function toFormData(obj, formData, options) {
3950
4070
  function build(value, path, depth = 0) {
3951
4071
  if (utils.isUndefined(value)) return;
3952
4072
 
3953
- if (depth > maxDepth) {
3954
- throw new core_AxiosError(
3955
- 'Object is too deeply nested (' + depth + ' levels). Max depth: ' + maxDepth,
3956
- core_AxiosError.ERR_FORM_DATA_DEPTH_EXCEEDED
3957
- );
3958
- }
4073
+ throwIfMaxDepthExceeded(depth);
3959
4074
 
3960
4075
  if (stack.indexOf(value) !== -1) {
3961
4076
  throw new Error('Circular reference detected in ' + path.join('.'));
@@ -4036,9 +4151,7 @@ AxiosURLSearchParams_prototype.append = function append(name, value) {
4036
4151
 
4037
4152
  AxiosURLSearchParams_prototype.toString = function toString(encoder) {
4038
4153
  const _encode = encoder
4039
- ? function (value) {
4040
- return encoder.call(this, value, encode);
4041
- }
4154
+ ? (value) => encoder.call(this, value, encode)
4042
4155
  : encode;
4043
4156
 
4044
4157
  return this._pairs
@@ -4085,8 +4198,7 @@ function buildURL(url, params, options) {
4085
4198
  if (!params) {
4086
4199
  return url;
4087
4200
  }
4088
-
4089
- const _encode = (options && options.encode) || buildURL_encode;
4201
+ url = url || '';
4090
4202
 
4091
4203
  const _options = utils.isFunction(options)
4092
4204
  ? {
@@ -4094,7 +4206,11 @@ function buildURL(url, params, options) {
4094
4206
  }
4095
4207
  : options;
4096
4208
 
4097
- const serializeFn = _options && _options.serialize;
4209
+ // Read serializer options pollution-safely: own properties and methods on a
4210
+ // class/template prototype are honored, but values injected onto a polluted
4211
+ // Object.prototype are ignored.
4212
+ const _encode = utils.getSafeProp(_options, 'encode') || buildURL_encode;
4213
+ const serializeFn = utils.getSafeProp(_options, 'serialize');
4098
4214
 
4099
4215
  let serializedParams;
4100
4216
 
@@ -4201,6 +4317,7 @@ class InterceptorManager {
4201
4317
  clarifyTimeoutError: false,
4202
4318
  legacyInterceptorReqResOrdering: true,
4203
4319
  advertiseZstdAcceptEncoding: false,
4320
+ validateStatusUndefinedResolves: true,
4204
4321
  });
4205
4322
 
4206
4323
  ;// ../../../node_modules/axios/lib/platform/browser/classes/URLSearchParams.js
@@ -4317,6 +4434,19 @@ function toURLEncodedForm(data, options) {
4317
4434
 
4318
4435
 
4319
4436
 
4437
+
4438
+
4439
+ const MAX_DEPTH = DEFAULT_FORM_DATA_MAX_DEPTH;
4440
+
4441
+ function throwIfDepthExceeded(index) {
4442
+ if (index > MAX_DEPTH) {
4443
+ throw new core_AxiosError(
4444
+ 'FormData field is too deeply nested (' + index + ' levels). Max depth: ' + MAX_DEPTH,
4445
+ core_AxiosError.ERR_FORM_DATA_DEPTH_EXCEEDED
4446
+ );
4447
+ }
4448
+ }
4449
+
4320
4450
  /**
4321
4451
  * It takes a string like `foo[x][y][z]` and returns an array like `['foo', 'x', 'y', 'z']
4322
4452
  *
@@ -4329,9 +4459,16 @@ function parsePropPath(name) {
4329
4459
  // foo.x.y.z
4330
4460
  // foo-x-y-z
4331
4461
  // foo x y z
4332
- return utils.matchAll(/\w+|\[(\w*)]/g, name).map((match) => {
4333
- return match[0] === '[]' ? '' : match[1] || match[0];
4334
- });
4462
+ const path = [];
4463
+ const pattern = /\w+|\[(\w*)]/g;
4464
+ let match;
4465
+
4466
+ while ((match = pattern.exec(name)) !== null) {
4467
+ throwIfDepthExceeded(path.length);
4468
+ path.push(match[0] === '[]' ? '' : match[1] || match[0]);
4469
+ }
4470
+
4471
+ return path;
4335
4472
  }
4336
4473
 
4337
4474
  /**
@@ -4363,6 +4500,8 @@ function arrayToObject(arr) {
4363
4500
  */
4364
4501
  function formDataToJSON(formData) {
4365
4502
  function buildPath(path, value, target, index) {
4503
+ throwIfDepthExceeded(index);
4504
+
4366
4505
  let name = path[index++];
4367
4506
 
4368
4507
  if (name === '__proto__') return true;
@@ -4908,7 +5047,11 @@ const asyncDecorator =
4908
5047
  const cookie = cookies[i].replace(/^\s+/, '');
4909
5048
  const eq = cookie.indexOf('=');
4910
5049
  if (eq !== -1 && cookie.slice(0, eq) === name) {
4911
- return decodeURIComponent(cookie.slice(eq + 1));
5050
+ try {
5051
+ return decodeURIComponent(cookie.slice(eq + 1));
5052
+ } catch (e) {
5053
+ return cookie.slice(eq + 1);
5054
+ }
4912
5055
  }
4913
5056
  }
4914
5057
  return null;
@@ -4971,6 +5114,32 @@ function combineURLs(baseURL, relativeURL) {
4971
5114
 
4972
5115
 
4973
5116
 
5117
+
5118
+ const malformedHttpProtocol = /^https?:(?!\/\/)/i;
5119
+ const httpProtocolControlCharacters = /[\t\n\r]/g;
5120
+
5121
+ function stripLeadingC0ControlOrSpace(url) {
5122
+ let i = 0;
5123
+ while (i < url.length && url.charCodeAt(i) <= 0x20) {
5124
+ i++;
5125
+ }
5126
+ return url.slice(i);
5127
+ }
5128
+
5129
+ function normalizeURLForProtocolCheck(url) {
5130
+ return stripLeadingC0ControlOrSpace(url).replace(httpProtocolControlCharacters, '');
5131
+ }
5132
+
5133
+ function assertValidHttpProtocolURL(url, config) {
5134
+ if (typeof url === 'string' && malformedHttpProtocol.test(normalizeURLForProtocolCheck(url))) {
5135
+ throw new core_AxiosError(
5136
+ 'Invalid URL: missing "//" after protocol',
5137
+ core_AxiosError.ERR_INVALID_URL,
5138
+ config
5139
+ );
5140
+ }
5141
+ }
5142
+
4974
5143
  /**
4975
5144
  * Creates a new URL by combining the baseURL with the requestedURL,
4976
5145
  * only when the requestedURL is not already an absolute URL.
@@ -4981,9 +5150,11 @@ function combineURLs(baseURL, relativeURL) {
4981
5150
  *
4982
5151
  * @returns {string} The combined full path
4983
5152
  */
4984
- function buildFullPath(baseURL, requestedURL, allowAbsoluteUrls) {
5153
+ function buildFullPath(baseURL, requestedURL, allowAbsoluteUrls, config) {
5154
+ assertValidHttpProtocolURL(requestedURL, config);
4985
5155
  let isRelativeUrl = !isAbsoluteURL(requestedURL);
4986
5156
  if (baseURL && (isRelativeUrl || allowAbsoluteUrls === false)) {
5157
+ assertValidHttpProtocolURL(baseURL, config);
4987
5158
  return combineURLs(baseURL, requestedURL);
4988
5159
  }
4989
5160
  return requestedURL;
@@ -5008,6 +5179,7 @@ const headersToObject = (thing) => (thing instanceof core_AxiosHeaders ? { ...th
5008
5179
  */
5009
5180
  function mergeConfig(config1, config2) {
5010
5181
  // eslint-disable-next-line no-param-reassign
5182
+ config1 = config1 || {};
5011
5183
  config2 = config2 || {};
5012
5184
 
5013
5185
  // Use a null-prototype object so that downstream reads such as `config.auth`
@@ -5060,6 +5232,28 @@ function mergeConfig(config1, config2) {
5060
5232
  }
5061
5233
  }
5062
5234
 
5235
+ function getMergedTransitionalOption(prop) {
5236
+ const transitional2 = utils.hasOwnProp(config2, 'transitional') ? config2.transitional : undefined;
5237
+
5238
+ if (!utils.isUndefined(transitional2)) {
5239
+ if (utils.isPlainObject(transitional2)) {
5240
+ if (utils.hasOwnProp(transitional2, prop)) {
5241
+ return transitional2[prop];
5242
+ }
5243
+ } else {
5244
+ return undefined;
5245
+ }
5246
+ }
5247
+
5248
+ const transitional1 = utils.hasOwnProp(config1, 'transitional') ? config1.transitional : undefined;
5249
+
5250
+ if (utils.isPlainObject(transitional1) && utils.hasOwnProp(transitional1, prop)) {
5251
+ return transitional1[prop];
5252
+ }
5253
+
5254
+ return undefined;
5255
+ }
5256
+
5063
5257
  // eslint-disable-next-line consistent-return
5064
5258
  function mergeDirectKeys(a, b, prop) {
5065
5259
  if (utils.hasOwnProp(config2, prop)) {
@@ -5112,6 +5306,18 @@ function mergeConfig(config1, config2) {
5112
5306
  (utils.isUndefined(configValue) && merge !== mergeDirectKeys) || (config[prop] = configValue);
5113
5307
  });
5114
5308
 
5309
+ if (
5310
+ utils.hasOwnProp(config2, 'validateStatus') &&
5311
+ utils.isUndefined(config2.validateStatus) &&
5312
+ getMergedTransitionalOption('validateStatusUndefinedResolves') === false
5313
+ ) {
5314
+ if (utils.hasOwnProp(config1, 'validateStatus')) {
5315
+ config.validateStatus = getMergedValue(undefined, config1.validateStatus);
5316
+ } else {
5317
+ delete config.validateStatus;
5318
+ }
5319
+ }
5320
+
5115
5321
  return config;
5116
5322
  }
5117
5323
 
@@ -5125,6 +5331,7 @@ function mergeConfig(config1, config2) {
5125
5331
 
5126
5332
 
5127
5333
 
5334
+
5128
5335
  const FORM_DATA_CONTENT_HEADERS = ['content-type', 'content-length'];
5129
5336
 
5130
5337
  function setFormDataHeaders(headers, formHeaders, policy) {
@@ -5133,7 +5340,7 @@ function setFormDataHeaders(headers, formHeaders, policy) {
5133
5340
  return;
5134
5341
  }
5135
5342
 
5136
- Object.entries(formHeaders).forEach(([key, val]) => {
5343
+ Object.entries(formHeaders || {}).forEach(([key, val]) => {
5137
5344
  if (FORM_DATA_CONTENT_HEADERS.includes(key.toLowerCase())) {
5138
5345
  headers.set(key, val);
5139
5346
  }
@@ -5173,18 +5380,24 @@ function resolveConfig(config) {
5173
5380
  newConfig.headers = headers = core_AxiosHeaders.from(headers);
5174
5381
 
5175
5382
  newConfig.url = buildURL(
5176
- buildFullPath(baseURL, url, allowAbsoluteUrls),
5383
+ buildFullPath(baseURL, url, allowAbsoluteUrls, newConfig),
5177
5384
  own('params'),
5178
5385
  own('paramsSerializer')
5179
5386
  );
5180
5387
 
5181
5388
  // HTTP basic authentication
5182
5389
  if (auth) {
5183
- headers.set(
5184
- 'Authorization',
5185
- 'Basic ' +
5186
- btoa((auth.username || '') + ':' + (auth.password ? encodeUTF8(auth.password) : ''))
5187
- );
5390
+ const username = utils.getSafeProp(auth, 'username') || '';
5391
+ const password = utils.getSafeProp(auth, 'password') || '';
5392
+
5393
+ try {
5394
+ headers.set(
5395
+ 'Authorization',
5396
+ 'Basic ' + btoa(username + ':' + (password ? encodeUTF8(password) : ''))
5397
+ );
5398
+ } catch (e) {
5399
+ throw core_AxiosError.from(e, core_AxiosError.ERR_BAD_OPTION_VALUE, config);
5400
+ }
5188
5401
  }
5189
5402
 
5190
5403
  if (utils.isFormData(data)) {
@@ -5450,6 +5663,7 @@ const isXHRAdapterSupported = typeof XMLHttpRequest !== 'undefined';
5450
5663
  config
5451
5664
  )
5452
5665
  );
5666
+ done();
5453
5667
  return;
5454
5668
  }
5455
5669
 
@@ -5506,7 +5720,7 @@ const composeSignals = (signals, timeout) => {
5506
5720
  signals = null;
5507
5721
  };
5508
5722
 
5509
- signals.forEach((signal) => signal.addEventListener('abort', onabort));
5723
+ signals.forEach((signal) => signal.addEventListener('abort', onabort, { once: true }));
5510
5724
 
5511
5725
  const { signal } = controller;
5512
5726
 
@@ -5609,16 +5823,23 @@ const trackStream = (stream, chunkSize, onProgress, onFinish) => {
5609
5823
  };
5610
5824
 
5611
5825
  ;// ../../../node_modules/axios/lib/helpers/estimateDataURLDecodedBytes.js
5612
- /* provided dependency */ var estimateDataURLDecodedBytes_Buffer = __webpack_require__(81429)["hp"];
5613
5826
  /**
5614
5827
  * Estimate decoded byte length of a data:// URL *without* allocating large buffers.
5615
5828
  * - For base64: compute exact decoded size using length and padding;
5616
5829
  * handle %XX at the character-count level (no string allocation).
5617
- * - For non-base64: use UTF-8 byteLength of the encoded body as a safe upper bound.
5830
+ * - For non-base64: compute the exact percent-decoded UTF-8 byte length.
5618
5831
  *
5619
5832
  * @param {string} url
5620
5833
  * @returns {number}
5621
5834
  */
5835
+ const isHexDigit = (charCode) =>
5836
+ (charCode >= 48 && charCode <= 57) ||
5837
+ (charCode >= 65 && charCode <= 70) ||
5838
+ (charCode >= 97 && charCode <= 102);
5839
+
5840
+ const isPercentEncodedByte = (str, i, len) =>
5841
+ i + 2 < len && isHexDigit(str.charCodeAt(i + 1)) && isHexDigit(str.charCodeAt(i + 2));
5842
+
5622
5843
  function estimateDataURLDecodedBytes(url) {
5623
5844
  if (!url || typeof url !== 'string') return 0;
5624
5845
  if (!url.startsWith('data:')) return 0;
@@ -5638,9 +5859,7 @@ function estimateDataURLDecodedBytes(url) {
5638
5859
  if (body.charCodeAt(i) === 37 /* '%' */ && i + 2 < len) {
5639
5860
  const a = body.charCodeAt(i + 1);
5640
5861
  const b = body.charCodeAt(i + 2);
5641
- const isHex =
5642
- ((a >= 48 && a <= 57) || (a >= 65 && a <= 70) || (a >= 97 && a <= 102)) &&
5643
- ((b >= 48 && b <= 57) || (b >= 65 && b <= 70) || (b >= 97 && b <= 102));
5862
+ const isHex = isHexDigit(a) && isHexDigit(b);
5644
5863
 
5645
5864
  if (isHex) {
5646
5865
  effectiveLen -= 2;
@@ -5681,18 +5900,17 @@ function estimateDataURLDecodedBytes(url) {
5681
5900
  return bytes > 0 ? bytes : 0;
5682
5901
  }
5683
5902
 
5684
- if (typeof estimateDataURLDecodedBytes_Buffer !== 'undefined' && typeof estimateDataURLDecodedBytes_Buffer.byteLength === 'function') {
5685
- return estimateDataURLDecodedBytes_Buffer.byteLength(body, 'utf8');
5686
- }
5687
-
5688
5903
  // Compute UTF-8 byte length directly from UTF-16 code units without allocating
5689
5904
  // a byte buffer (TextEncoder.encode would defeat the DoS guard on large bodies).
5690
- // Using body.length here would undercount non-ASCII (e.g. '€' is 1 code unit
5691
- // but 3 UTF-8 bytes).
5905
+ // Valid %XX triplets count as one decoded byte; this matches the bytes that
5906
+ // decodeURIComponent(body) would produce before Buffer re-encodes the string.
5692
5907
  let bytes = 0;
5693
5908
  for (let i = 0, len = body.length; i < len; i++) {
5694
5909
  const c = body.charCodeAt(i);
5695
- if (c < 0x80) {
5910
+ if (c === 37 /* '%' */ && isPercentEncodedByte(body, i, len)) {
5911
+ bytes += 1;
5912
+ i += 2;
5913
+ } else if (c < 0x80) {
5696
5914
  bytes += 1;
5697
5915
  } else if (c < 0x800) {
5698
5916
  bytes += 2;
@@ -5712,7 +5930,7 @@ function estimateDataURLDecodedBytes(url) {
5712
5930
  }
5713
5931
 
5714
5932
  ;// ../../../node_modules/axios/lib/env/data.js
5715
- const VERSION = "1.17.0";
5933
+ const VERSION = "1.18.1";
5716
5934
  ;// ../../../node_modules/axios/lib/adapters/fetch.js
5717
5935
 
5718
5936
 
@@ -5946,14 +6164,28 @@ const factory = (env) => {
5946
6164
 
5947
6165
  let requestContentLength;
5948
6166
 
6167
+ // AxiosError we raise while the request body is being streamed. Captured
6168
+ // by identity so the catch block can surface it directly, regardless of
6169
+ // how the runtime wraps the resulting fetch rejection (undici exposes it
6170
+ // as `err.cause`; some browsers drop the original error entirely).
6171
+ let pendingBodyError = null;
6172
+
6173
+ const maxBodyLengthError = () =>
6174
+ new core_AxiosError(
6175
+ 'Request body larger than maxBodyLength limit',
6176
+ core_AxiosError.ERR_BAD_REQUEST,
6177
+ config,
6178
+ request
6179
+ );
6180
+
5949
6181
  try {
5950
6182
  // HTTP basic authentication
5951
6183
  let auth = undefined;
5952
6184
  const configAuth = own('auth');
5953
6185
 
5954
6186
  if (configAuth) {
5955
- const username = configAuth.username || '';
5956
- const password = configAuth.password || '';
6187
+ const username = utils.getSafeProp(configAuth, 'username') || '';
6188
+ const password = utils.getSafeProp(configAuth, 'password') || '';
5957
6189
  auth = {
5958
6190
  username,
5959
6191
  password
@@ -6002,53 +6234,96 @@ const factory = (env) => {
6002
6234
  }
6003
6235
  }
6004
6236
 
6005
- // Enforce maxBodyLength against the outbound request body before dispatch.
6006
- // Mirrors http.js behavior (ERR_BAD_REQUEST / 'Request body larger than
6007
- // maxBodyLength limit'). Skip when the body length cannot be determined
6008
- // (e.g. a live ReadableStream supplied by the caller).
6237
+ // Enforce maxBodyLength against known-size bodies before dispatch using
6238
+ // the body's *actual* size — never a caller-declared Content-Length,
6239
+ // which could under-report to slip an oversized body past the check.
6240
+ // Unknown-size streams return undefined here and are counted per-chunk
6241
+ // below as fetch consumes them.
6009
6242
  if (hasMaxBodyLength && method !== 'get' && method !== 'head') {
6010
- const outboundLength = await resolveBodyLength(headers, data);
6011
- if (
6012
- typeof outboundLength === 'number' &&
6013
- isFinite(outboundLength) &&
6014
- outboundLength > maxBodyLength
6015
- ) {
6016
- throw new core_AxiosError(
6017
- 'Request body larger than maxBodyLength limit',
6018
- core_AxiosError.ERR_BAD_REQUEST,
6019
- config,
6020
- request
6021
- );
6243
+ const outboundLength = await getBodyLength(data);
6244
+ if (typeof outboundLength === 'number' && isFinite(outboundLength)) {
6245
+ requestContentLength = outboundLength;
6246
+ if (outboundLength > maxBodyLength) {
6247
+ throw maxBodyLengthError();
6248
+ }
6022
6249
  }
6023
6250
  }
6024
6251
 
6252
+ // A streamed body under maxBodyLength must be counted as fetch consumes
6253
+ // it; its size is never trusted from a caller-declared Content-Length.
6254
+ const mustEnforceStreamBody =
6255
+ hasMaxBodyLength && (utils.isReadableStream(data) || utils.isStream(data));
6256
+
6257
+ const trackRequestStream = (stream, onProgress, flush) =>
6258
+ trackStream(
6259
+ stream,
6260
+ DEFAULT_CHUNK_SIZE,
6261
+ (loadedBytes) => {
6262
+ if (hasMaxBodyLength && loadedBytes > maxBodyLength) {
6263
+ throw (pendingBodyError = maxBodyLengthError());
6264
+ }
6265
+ onProgress && onProgress(loadedBytes);
6266
+ },
6267
+ flush
6268
+ );
6269
+
6025
6270
  if (
6026
- onUploadProgress &&
6027
6271
  supportsRequestStream &&
6028
6272
  method !== 'get' &&
6029
6273
  method !== 'head' &&
6030
- (requestContentLength = await resolveBodyLength(headers, data)) !== 0
6274
+ (onUploadProgress || mustEnforceStreamBody)
6031
6275
  ) {
6032
- let _request = new Request(url, {
6033
- method: 'POST',
6034
- body: data,
6035
- duplex: 'half',
6036
- });
6276
+ requestContentLength =
6277
+ requestContentLength == null ? await resolveBodyLength(headers, data) : requestContentLength;
6278
+
6279
+ // A declared length of 0 is only trusted to skip the wrap when we are
6280
+ // not enforcing a stream limit (which must not rely on that header).
6281
+ if (requestContentLength !== 0 || mustEnforceStreamBody) {
6282
+ let _request = new Request(url, {
6283
+ method: 'POST',
6284
+ body: data,
6285
+ duplex: 'half',
6286
+ });
6037
6287
 
6038
- let contentTypeHeader;
6288
+ let contentTypeHeader;
6039
6289
 
6040
- if (utils.isFormData(data) && (contentTypeHeader = _request.headers.get('content-type'))) {
6041
- headers.setContentType(contentTypeHeader);
6042
- }
6290
+ if (utils.isFormData(data) && (contentTypeHeader = _request.headers.get('content-type'))) {
6291
+ headers.setContentType(contentTypeHeader);
6292
+ }
6043
6293
 
6044
- if (_request.body) {
6045
- const [onProgress, flush] = progressEventDecorator(
6046
- requestContentLength,
6047
- progressEventReducer(asyncDecorator(onUploadProgress))
6048
- );
6294
+ if (_request.body) {
6295
+ const [onProgress, flush] =
6296
+ (onUploadProgress &&
6297
+ progressEventDecorator(
6298
+ requestContentLength,
6299
+ progressEventReducer(asyncDecorator(onUploadProgress))
6300
+ )) ||
6301
+ [];
6049
6302
 
6050
- data = trackStream(_request.body, DEFAULT_CHUNK_SIZE, onProgress, flush);
6303
+ data = trackRequestStream(_request.body, onProgress, flush);
6304
+ }
6051
6305
  }
6306
+ } else if (
6307
+ mustEnforceStreamBody &&
6308
+ !isRequestSupported &&
6309
+ isReadableStreamSupported &&
6310
+ method !== 'get' &&
6311
+ method !== 'head'
6312
+ ) {
6313
+ data = trackRequestStream(data);
6314
+ } else if (
6315
+ mustEnforceStreamBody &&
6316
+ isRequestSupported &&
6317
+ !supportsRequestStream &&
6318
+ method !== 'get' &&
6319
+ method !== 'head'
6320
+ ) {
6321
+ throw new core_AxiosError(
6322
+ 'Stream request bodies are not supported by the current fetch implementation',
6323
+ core_AxiosError.ERR_NOT_SUPPORT,
6324
+ config,
6325
+ request
6326
+ );
6052
6327
  }
6053
6328
 
6054
6329
  if (!utils.isString(withCredentials)) {
@@ -6091,10 +6366,12 @@ const factory = (env) => {
6091
6366
  ? _fetch(request, fetchOptions)
6092
6367
  : _fetch(url, resolvedOptions));
6093
6368
 
6369
+ const responseHeaders = core_AxiosHeaders.from(response.headers);
6370
+
6094
6371
  // Cheap pre-check: if the server honestly declares a content-length that
6095
6372
  // already exceeds the cap, reject before we start streaming.
6096
6373
  if (hasMaxContentLength) {
6097
- const declaredLength = utils.toFiniteNumber(response.headers.get('content-length'));
6374
+ const declaredLength = utils.toFiniteNumber(responseHeaders.getContentLength());
6098
6375
  if (declaredLength != null && declaredLength > maxContentLength) {
6099
6376
  throw new core_AxiosError(
6100
6377
  'maxContentLength size of ' + maxContentLength + ' exceeded',
@@ -6119,7 +6396,7 @@ const factory = (env) => {
6119
6396
  options[prop] = response[prop];
6120
6397
  });
6121
6398
 
6122
- const responseContentLength = utils.toFiniteNumber(response.headers.get('content-length'));
6399
+ const responseContentLength = utils.toFiniteNumber(responseHeaders.getContentLength());
6123
6400
 
6124
6401
  const [onProgress, flush] =
6125
6402
  (onDownloadProgress &&
@@ -6210,23 +6487,55 @@ const factory = (env) => {
6210
6487
  const canceledError = composedSignal.reason;
6211
6488
  canceledError.config = config;
6212
6489
  request && (canceledError.request = request);
6213
- err !== canceledError && (canceledError.cause = err);
6490
+ if (err !== canceledError) {
6491
+ // Non-enumerable to match native Error `cause` semantics so loggers
6492
+ // don't recurse into circular fetch internals (see #7205).
6493
+ Object.defineProperty(canceledError, 'cause', {
6494
+ __proto__: null,
6495
+ value: err,
6496
+ writable: true,
6497
+ enumerable: false,
6498
+ configurable: true,
6499
+ });
6500
+ }
6214
6501
  throw canceledError;
6215
6502
  }
6216
6503
 
6504
+ // Surface a maxBodyLength violation we raised while the request body was
6505
+ // being streamed. Matching by identity (rather than reading
6506
+ // `err.cause.isAxiosError`) keeps the error deterministic across runtimes
6507
+ // and avoids both prototype-pollution reads and mis-attributing a foreign
6508
+ // AxiosError that merely happened to land in `err.cause`.
6509
+ if (pendingBodyError) {
6510
+ request && !pendingBodyError.request && (pendingBodyError.request = request);
6511
+ throw pendingBodyError;
6512
+ }
6513
+
6514
+ // Re-throw AxiosErrors we raised synchronously (data: URL / content-length
6515
+ // pre-checks, response size enforcement) without re-wrapping them.
6516
+ if (err instanceof core_AxiosError) {
6517
+ request && !err.request && (err.request = request);
6518
+ throw err;
6519
+ }
6520
+
6217
6521
  if (err && err.name === 'TypeError' && /Load failed|fetch/i.test(err.message)) {
6218
- throw Object.assign(
6219
- new core_AxiosError(
6220
- 'Network Error',
6221
- core_AxiosError.ERR_NETWORK,
6222
- config,
6223
- request,
6224
- err && err.response
6225
- ),
6226
- {
6227
- cause: err.cause || err,
6228
- }
6522
+ const networkError = new core_AxiosError(
6523
+ 'Network Error',
6524
+ core_AxiosError.ERR_NETWORK,
6525
+ config,
6526
+ request,
6527
+ err && err.response
6229
6528
  );
6529
+ // Non-enumerable to match native Error `cause` semantics so loggers
6530
+ // don't recurse into circular fetch internals (see #7205).
6531
+ Object.defineProperty(networkError, 'cause', {
6532
+ __proto__: null,
6533
+ value: err.cause || err,
6534
+ writable: true,
6535
+ enumerable: false,
6536
+ configurable: true,
6537
+ });
6538
+ throw networkError;
6230
6539
  }
6231
6540
 
6232
6541
  throw core_AxiosError.from(err, err && err.code, config, request, err && err.response);
@@ -6373,7 +6682,7 @@ function getAdapter(adapters, config) {
6373
6682
 
6374
6683
  throw new core_AxiosError(
6375
6684
  `There is no suitable adapter to dispatch the request ` + s,
6376
- 'ERR_NOT_SUPPORT'
6685
+ core_AxiosError.ERR_NOT_SUPPORT
6377
6686
  );
6378
6687
  }
6379
6688
 
@@ -6570,7 +6879,7 @@ validators.spelling = function spelling(correctSpelling) {
6570
6879
  */
6571
6880
 
6572
6881
  function assertOptions(options, schema, allowUnknown) {
6573
- if (typeof options !== 'object') {
6882
+ if (typeof options !== 'object' || options === null) {
6574
6883
  throw new core_AxiosError('options must be an object', core_AxiosError.ERR_BAD_OPTION_VALUE);
6575
6884
  }
6576
6885
  const keys = Object.keys(options);
@@ -6707,6 +7016,7 @@ class Axios {
6707
7016
  clarifyTimeoutError: Axios_validators.transitional(Axios_validators.boolean),
6708
7017
  legacyInterceptorReqResOrdering: Axios_validators.transitional(Axios_validators.boolean),
6709
7018
  advertiseZstdAcceptEncoding: Axios_validators.transitional(Axios_validators.boolean),
7019
+ validateStatusUndefinedResolves: Axios_validators.transitional(Axios_validators.boolean),
6710
7020
  },
6711
7021
  false
6712
7022
  );
@@ -6838,7 +7148,7 @@ class Axios {
6838
7148
 
6839
7149
  getUri(config) {
6840
7150
  config = mergeConfig(this.defaults, config);
6841
- const fullPath = buildFullPath(config.baseURL, config.url, config.allowAbsoluteUrls);
7151
+ const fullPath = buildFullPath(config.baseURL, config.url, config.allowAbsoluteUrls, config);
6842
7152
  return buildURL(fullPath, config.params, config.paramsSerializer);
6843
7153
  }
6844
7154
  }
@@ -6851,7 +7161,7 @@ utils.forEach(['delete', 'get', 'head', 'options'], function forEachMethodNoData
6851
7161
  mergeConfig(config || {}, {
6852
7162
  method,
6853
7163
  url,
6854
- data: (config || {}).data,
7164
+ data: config && utils.hasOwnProp(config, 'data') ? config.data : undefined,
6855
7165
  })
6856
7166
  );
6857
7167
  };
@@ -683,7 +683,7 @@ expose(workerOperations);
683
683
  /******/ // This function allow to reference async chunks and chunks that the entrypoint depends on
684
684
  /******/ __webpack_require__.u = (chunkId) => {
685
685
  /******/ // return url for filenames based on template
686
- /******/ return "" + chunkId + ".bundle." + "2c6f2ba3bd8e1493e54b" + ".js";
686
+ /******/ return "" + chunkId + ".bundle." + "ab478c49c15f1275c336" + ".js";
687
687
  /******/ };
688
688
  /******/ })();
689
689
  /******/
@@ -79643,7 +79643,7 @@ const detectionOptions = {
79643
79643
  }
79644
79644
  });
79645
79645
  ;// ../../i18n/package.json
79646
- const package_namespaceObject = {"rE":"3.12.5"};
79646
+ const package_namespaceObject = {"rE":"3.12.7"};
79647
79647
  ;// ../../i18n/src/utils.js
79648
79648
  const languagesMap = {
79649
79649
  ar: 'Arabic',
@@ -395419,7 +395419,7 @@ function __rewriteRelativeImportExtension(path, preserveJsx) {
395419
395419
  /******/ // This function allow to reference async chunks
395420
395420
  /******/ __webpack_require__.u = (chunkId) => {
395421
395421
  /******/ // return url for filenames based on template
395422
- /******/ return "" + ({"572":"polySeg","2007":"interpolation","3054":"histogram-worker","3694":"compute"}[chunkId] || chunkId) + ".bundle." + {"85":"585f1e2b477ad43a2e73","147":"47af018b91121924a12c","213":"e5e2baec1fc25ec1077d","572":"6373e24bd578ae0d41eb","732":"ea6f9d8504e37e01a208","1403":"b197270f69d3c0588892","1459":"a02d97c6ea19acfe72af","1608":"b9abbf4ed6cc2e491dc3","1730":"1db08d6f53e18521892e","1927":"be67b3aafe238ca9f191","1933":"cfe31cdb414ed282e2a8","2007":"046b662a640ec91af340","2018":"a8247cd47f015393754a","2108":"aea8d3b39486dd5ab39e","2199":"974037f21bfd12c4e8af","2424":"a918f65d42143b674dd1","2701":"58a6a580073edbb4cc04","2851":"6aa55f956d06e264c6e1","3054":"5b679ce4142c803c80a4","3081":"43fd43cdf7e20ac4a7d2","3343":"a4424b8418b8c0c1a9e4","3461":"d383abec7b82083ea721","3694":"73440405025831e0e072","4202":"4f76d3a50d6cf819fba0","4287":"87e14e648f2bce5e4176","4775":"64cc3c4cb4325f3645c1","4819":"9cf183abace508833e58","5028":"5749a01d857bf52f2212","5261":"2655560097e9250eac44","5457":"9366c2f7ddec0faab22c","5462":"d5bb9b3ddc510fea141f","5485":"f78dfc46d26c61356dd0","5724":"62ea5c07c7809ab4cd74","5802":"ae4d88742c353de462c2","6027":"c954ff94afc634ffc411","6163":"4c61babd4a1fae1e5eab","6347":"f8393c20d5159ed41b64","6409":"24edbaa283b7c521b8f7","6939":"41fbdef87597b5172ec6","7159":"a5991a5d4f0dd8f1c95f","7431":"b31ebb4a2625e89d864e","7639":"aa5b21af3e387a6c7d21","8094":"148a66619607e37cbf19","8305":"43a62623e0fe02a7e0a8","8558":"bc4e1e855e2bda0cc943","8583":"44756013acd9c1bf0047","9205":"2a2f38a4ee23647f5fa4","9845":"31f3e7e2d28fa6033ee5","9862":"73ea2a7703bf1bb96275","9927":"b3cc3818950d2ec189e3"}[chunkId] + ".js";
395422
+ /******/ return "" + ({"572":"polySeg","2007":"interpolation","3054":"histogram-worker","3694":"compute"}[chunkId] || chunkId) + ".bundle." + {"85":"0291d61a32ce9935de13","147":"47af018b91121924a12c","213":"4d25a4b4be3421505ce9","572":"6373e24bd578ae0d41eb","732":"ea6f9d8504e37e01a208","1403":"48708695d2d613d5aeaa","1459":"66cf33bfbbb8cda9e5b8","1608":"b9abbf4ed6cc2e491dc3","1730":"bdcf4c526a9fc7f0aea7","1927":"be67b3aafe238ca9f191","1933":"7591785745bd318e26a4","2007":"ae4d1b6dfb6b4bd37159","2018":"af43329bc1669fa760e2","2108":"aea8d3b39486dd5ab39e","2199":"974037f21bfd12c4e8af","2424":"1627d3e055f0027f5c36","2701":"58a6a580073edbb4cc04","2851":"c25c901048753cbd5547","3054":"5b679ce4142c803c80a4","3081":"4ccb3f053735afa48158","3343":"a4424b8418b8c0c1a9e4","3461":"6064d1fcac884b9fe276","3694":"73440405025831e0e072","4202":"4f76d3a50d6cf819fba0","4287":"87e14e648f2bce5e4176","4775":"3759845ca820fe88b0ba","4819":"0ca3136287b7ccb9ace1","5028":"77dda9acd186ff73199e","5261":"2655560097e9250eac44","5457":"c3ab627d5c2746a2c9fe","5462":"d5bb9b3ddc510fea141f","5485":"f1ed619da56e368fd6d1","5724":"62ea5c07c7809ab4cd74","5802":"ae4d88742c353de462c2","6027":"410be2beb2df3a21ad4f","6163":"cfc84effaf872fd4fb10","6347":"f8393c20d5159ed41b64","6409":"24edbaa283b7c521b8f7","6939":"41fbdef87597b5172ec6","7159":"a5991a5d4f0dd8f1c95f","7431":"b31ebb4a2625e89d864e","7639":"09f37bd8abe6256f30ab","8094":"148a66619607e37cbf19","8305":"0753faa2dc43a14092b7","8558":"7d23559153485d455bc6","8583":"bc1971a7d8b5b1043239","9205":"2a2f38a4ee23647f5fa4","9845":"31f3e7e2d28fa6033ee5","9862":"73ea2a7703bf1bb96275","9927":"98382d216a6d0a6cd4fb"}[chunkId] + ".js";
395423
395423
  /******/ };
395424
395424
  /******/ })();
395425
395425
  /******/
package/dist/index.html CHANGED
@@ -3,4 +3,4 @@
3
3
  return import(moduleId);
4
4
  }
5
5
 
6
- window.PUBLIC_URL = '/';</script><script defer="defer" src="/app.bundle.937a2778aaa4778e6c02.js"></script><link href="/app.bundle.css" rel="stylesheet"></head><body><noscript>You need to enable JavaScript to run this app.</noscript><div id="react-portal"></div><div id="root"></div></body></html>
6
+ window.PUBLIC_URL = '/';</script><script defer="defer" src="/app.bundle.13c9ec2d0e38e06c6bf4.js"></script><link href="/app.bundle.css" rel="stylesheet"></head><body><noscript>You need to enable JavaScript to run this app.</noscript><div id="react-portal"></div><div id="root"></div></body></html>
@@ -637,7 +637,7 @@ function generateUUID() {
637
637
  /******/ // This function allow to reference async chunks and chunks that the entrypoint depends on
638
638
  /******/ __webpack_require__.u = (chunkId) => {
639
639
  /******/ // return url for filenames based on template
640
- /******/ return "" + chunkId + ".bundle." + {"2516":"6b52ced19754035768ae","5491":"4866d2ecb20dd089e071","5830":"d026ec38980fb12f2518","6125":"2c6f2ba3bd8e1493e54b","6354":"d8a592b03e9a5b7a66c2","6376":"f5ef0f5465d575d0dbb0"}[chunkId] + ".js";
640
+ /******/ return "" + chunkId + ".bundle." + {"2516":"6b52ced19754035768ae","5491":"4866d2ecb20dd089e071","5830":"d026ec38980fb12f2518","6125":"ab478c49c15f1275c336","6354":"d8a592b03e9a5b7a66c2","6376":"9c9649f16fb3de292c52"}[chunkId] + ".js";
641
641
  /******/ };
642
642
  /******/ })();
643
643
  /******/
package/dist/sw.js CHANGED
@@ -50,7 +50,7 @@ self.addEventListener('message', event => {
50
50
  }
51
51
  }
52
52
  });
53
- workbox.precaching.precacheAndRoute([{'revision':null,'url':'/1403.bundle.b197270f69d3c0588892.js'},{'revision':null,'url':'/1459.bundle.a02d97c6ea19acfe72af.js'},{'revision':null,'url':'/147.bundle.47af018b91121924a12c.js'},{'revision':'e0cfcadcf2c2fbc1f117196b9f62bf3e','url':'/147.css'},{'revision':null,'url':'/1608.bundle.b9abbf4ed6cc2e491dc3.js'},{'revision':'27c847594562926775c007c401b4fe98','url':'/1608.css'},{'revision':null,'url':'/1730.bundle.1db08d6f53e18521892e.js'},{'revision':'27c847594562926775c007c401b4fe98','url':'/1730.css'},{'revision':null,'url':'/17dd54813d5acc10bf8f.wasm'},{'revision':null,'url':'/1927.bundle.be67b3aafe238ca9f191.js'},{'revision':null,'url':'/1933.bundle.cfe31cdb414ed282e2a8.js'},{'revision':'27c847594562926775c007c401b4fe98','url':'/1933.css'},{'revision':null,'url':'/2018.bundle.a8247cd47f015393754a.js'},{'revision':null,'url':'/2108.bundle.aea8d3b39486dd5ab39e.js'},{'revision':null,'url':'/213.bundle.e5e2baec1fc25ec1077d.js'},{'revision':null,'url':'/2199.bundle.974037f21bfd12c4e8af.js'},{'revision':null,'url':'/2424.bundle.a918f65d42143b674dd1.js'},{'revision':null,'url':'/2516.bundle.6b52ced19754035768ae.js'},{'revision':'27c847594562926775c007c401b4fe98','url':'/2591.css'},{'revision':null,'url':'/2701.bundle.58a6a580073edbb4cc04.js'},{'revision':null,'url':'/2816.bundle.838fa4d72921c026083c.js'},{'revision':null,'url':'/2851.bundle.6aa55f956d06e264c6e1.js'},{'revision':null,'url':'/3081.bundle.43fd43cdf7e20ac4a7d2.js'},{'revision':null,'url':'/31fb9346313fc3740d7b.woff2'},{'revision':null,'url':'/3343.bundle.a4424b8418b8c0c1a9e4.js'},{'revision':'27c847594562926775c007c401b4fe98','url':'/3343.css'},{'revision':null,'url':'/3461.bundle.d383abec7b82083ea721.js'},{'revision':null,'url':'/4202.bundle.4f76d3a50d6cf819fba0.js'},{'revision':null,'url':'/4287.bundle.87e14e648f2bce5e4176.js'},{'revision':null,'url':'/4775.bundle.64cc3c4cb4325f3645c1.js'},{'revision':null,'url':'/4819.bundle.9cf183abace508833e58.js'},{'revision':'27c847594562926775c007c401b4fe98','url':'/4819.css'},{'revision':null,'url':'/5004fdc02f329ce53b69.wasm'},{'revision':null,'url':'/5028.bundle.5749a01d857bf52f2212.js'},{'revision':'27c847594562926775c007c401b4fe98','url':'/5028.css'},{'revision':null,'url':'/5261.bundle.2655560097e9250eac44.js'},{'revision':null,'url':'/5457.bundle.9366c2f7ddec0faab22c.js'},{'revision':null,'url':'/5462.bundle.d5bb9b3ddc510fea141f.js'},{'revision':null,'url':'/5485.bundle.f78dfc46d26c61356dd0.js'},{'revision':null,'url':'/5491.bundle.4866d2ecb20dd089e071.js'},{'revision':null,'url':'/5724.bundle.62ea5c07c7809ab4cd74.js'},{'revision':'27c847594562926775c007c401b4fe98','url':'/5724.css'},{'revision':null,'url':'/5802.bundle.ae4d88742c353de462c2.js'},{'revision':'78c6e381862b3f33316bcffadde4ccd6','url':'/5802.css'},{'revision':null,'url':'/5830.bundle.d026ec38980fb12f2518.js'},{'revision':null,'url':'/5858.bundle.466e58128de344ab53f3.js'},{'revision':null,'url':'/6027.bundle.c954ff94afc634ffc411.js'},{'revision':null,'url':'/6125.bundle.2c6f2ba3bd8e1493e54b.js'},{'revision':null,'url':'/6163.bundle.4c61babd4a1fae1e5eab.js'},{'revision':'27c847594562926775c007c401b4fe98','url':'/6163.css'},{'revision':null,'url':'/6280.bundle.f22f9955eb906e1d7da8.js'},{'revision':null,'url':'/6347.bundle.f8393c20d5159ed41b64.js'},{'revision':null,'url':'/6354.bundle.d8a592b03e9a5b7a66c2.js'},{'revision':null,'url':'/6376.bundle.f5ef0f5465d575d0dbb0.js'},{'revision':null,'url':'/6409.bundle.24edbaa283b7c521b8f7.js'},{'revision':null,'url':'/6939.bundle.41fbdef87597b5172ec6.js'},{'revision':null,'url':'/7159.bundle.a5991a5d4f0dd8f1c95f.js'},{'revision':'20a92cf14c2d8be6cd580f68780cc7fa','url':'/7159.css'},{'revision':null,'url':'/732.bundle.ea6f9d8504e37e01a208.js'},{'revision':null,'url':'/7431.bundle.b31ebb4a2625e89d864e.js'},{'revision':null,'url':'/7639.bundle.aa5b21af3e387a6c7d21.js'},{'revision':null,'url':'/7758.bundle.c8d106364298e7d288f0.js'},{'revision':null,'url':'/8094.bundle.148a66619607e37cbf19.js'},{'revision':null,'url':'/8305.bundle.43a62623e0fe02a7e0a8.js'},{'revision':'27c847594562926775c007c401b4fe98','url':'/8305.css'},{'revision':null,'url':'/85.bundle.585f1e2b477ad43a2e73.js'},{'revision':null,'url':'/8558.bundle.bc4e1e855e2bda0cc943.js'},{'revision':null,'url':'/8583.bundle.44756013acd9c1bf0047.js'},{'revision':'27c847594562926775c007c401b4fe98','url':'/8583.css'},{'revision':null,'url':'/8665.bundle.dc56c125411422f9f686.js'},{'revision':null,'url':'/9205.bundle.2a2f38a4ee23647f5fa4.js'},{'revision':null,'url':'/982b0633e475d94949df.wasm'},{'revision':null,'url':'/9845.bundle.31f3e7e2d28fa6033ee5.js'},{'revision':null,'url':'/9862.bundle.73ea2a7703bf1bb96275.js'},{'revision':null,'url':'/9927.bundle.b3cc3818950d2ec189e3.js'},{'revision':'d41d8cd98f00b204e9800998ecf8427e','url':'/_headers'},{'revision':'e3bf0f3e9c34f51ad59836ae8e8eaf43','url':'/_redirects'},{'revision':null,'url':'/a957c5cd315f89b6feb1.wasm'},{'revision':'2f872a596b09e1b1de398d253a78fba2','url':'/app-config.js'},{'revision':null,'url':'/app.bundle.937a2778aaa4778e6c02.js'},{'revision':'1d6f50bfca3cdcf259342ad87d5f7054','url':'/app.bundle.css'},{'revision':'cb4f64534cdf8dd88f1d7219d44490db','url':'/assets/android-chrome-144x144.png'},{'revision':'5cde390de8a619ebe55a669d2ac3effd','url':'/assets/android-chrome-192x192.png'},{'revision':'e7466a67e90471de05401e53b8fe20be','url':'/assets/android-chrome-256x256.png'},{'revision':'9bbe9b80156e930d19a4e1725aa9ddae','url':'/assets/android-chrome-36x36.png'},{'revision':'5698b2ac0c82fe06d84521fc5482df04','url':'/assets/android-chrome-384x384.png'},{'revision':'56bef3fceec344d9747f8abe9c0bba27','url':'/assets/android-chrome-48x48.png'},{'revision':'3e8b8a01290992e82c242557417b0596','url':'/assets/android-chrome-512x512.png'},{'revision':'517925e91e2ce724432d296b687d25e2','url':'/assets/android-chrome-72x72.png'},{'revision':'4c3289bc690f8519012686888e08da71','url':'/assets/android-chrome-96x96.png'},{'revision':'cf464289183184df09292f581df0fb4f','url':'/assets/apple-touch-icon-1024x1024.png'},{'revision':'0857c5282c594e4900e8b31e3bade912','url':'/assets/apple-touch-icon-114x114.png'},{'revision':'4208f41a28130a67e9392a9dfcee6011','url':'/assets/apple-touch-icon-120x120.png'},{'revision':'cb4f64534cdf8dd88f1d7219d44490db','url':'/assets/apple-touch-icon-144x144.png'},{'revision':'977d293982af7e9064ba20806b45cf35','url':'/assets/apple-touch-icon-152x152.png'},{'revision':'6de91b4d2a30600b410758405cb567b4','url':'/assets/apple-touch-icon-167x167.png'},{'revision':'87bff140e3773bd7479a620501c4aa5c','url':'/assets/apple-touch-icon-180x180.png'},{'revision':'647386c34e75f1213830ea9a38913525','url':'/assets/apple-touch-icon-57x57.png'},{'revision':'0c200fe83953738b330ea431083e7a86','url':'/assets/apple-touch-icon-60x60.png'},{'revision':'517925e91e2ce724432d296b687d25e2','url':'/assets/apple-touch-icon-72x72.png'},{'revision':'c9989a807bb18633f6dcf254b5b56124','url':'/assets/apple-touch-icon-76x76.png'},{'revision':'87bff140e3773bd7479a620501c4aa5c','url':'/assets/apple-touch-icon-precomposed.png'},{'revision':'87bff140e3773bd7479a620501c4aa5c','url':'/assets/apple-touch-icon.png'},{'revision':'05fa74ea9c1c0c3931ba96467999081d','url':'/assets/apple-touch-startup-image-1182x2208.png'},{'revision':'9e2cd03e1e6fd0520eea6846f4278018','url':'/assets/apple-touch-startup-image-1242x2148.png'},{'revision':'5591e3a1822cbc8439b99c1a40d53425','url':'/assets/apple-touch-startup-image-1496x2048.png'},{'revision':'337de578c5ca04bd7d2be19d24d83821','url':'/assets/apple-touch-startup-image-1536x2008.png'},{'revision':'cafb4ab4eafe6ef946bd229a1d88e7de','url':'/assets/apple-touch-startup-image-320x460.png'},{'revision':'d9bb9e558d729eeac5efb8be8d6111cc','url':'/assets/apple-touch-startup-image-640x1096.png'},{'revision':'038b5b02bac8b82444bf9a87602ac216','url':'/assets/apple-touch-startup-image-640x920.png'},{'revision':'2177076eb07b1d64d663d7c03268be00','url':'/assets/apple-touch-startup-image-748x1024.png'},{'revision':'4fc097443815fe92503584c4bd73c630','url':'/assets/apple-touch-startup-image-750x1294.png'},{'revision':'2e29914062dce5c5141ab47eea2fc5d9','url':'/assets/apple-touch-startup-image-768x1004.png'},{'revision':'f692ec286b3a332c17985f4ed38b1076','url':'/assets/browserconfig.xml'},{'revision':'f3d9a3b647853c45b0e132e4acd0cc4a','url':'/assets/coast-228x228.png'},{'revision':'ad6e1def5c66193d649a31474bbfe45d','url':'/assets/favicon-16x16.png'},{'revision':'84d1dcdb6cdfa55e2f46be0c80fa5698','url':'/assets/favicon-32x32.png'},{'revision':'95fb44c4998a46109e49d724c060db24','url':'/assets/favicon.ico'},{'revision':'5df2a5b0cee399ac0bc40af74ba3c2cb','url':'/assets/firefox_app_128x128.png'},{'revision':'11fd9098c4b07c8a07e1d2a1e309e046','url':'/assets/firefox_app_512x512.png'},{'revision':'27cddfc922dca3bfa27b4a00fc2f5e36','url':'/assets/firefox_app_60x60.png'},{'revision':'2547879ee2928a5fd56dca483bcbd967','url':'/assets/images/CT-AAA.png'},{'revision':'245628fb9d18d6c5cd529615079f8e86','url':'/assets/images/CT-AAA2.png'},{'revision':'997a9c8b57e7b4e46d8f01fb49d078c6','url':'/assets/images/CT-Air.png'},{'revision':'e7ed89711f63348d49898da3a2b73ab9','url':'/assets/images/CT-Bone.png'},{'revision':'09d1dc6efebb10a60cdf85ed74a10214','url':'/assets/images/CT-Bones.png'},{'revision':'f8ae9bafd3b90ba3efbdcbe8901db187','url':'/assets/images/CT-Cardiac.png'},{'revision':'ed0cc538aba90d6a1c029923ca9b47db','url':'/assets/images/CT-Cardiac2.png'},{'revision':'dfdaf4e4889aefbf09514545f45726bb','url':'/assets/images/CT-Cardiac3.png'},{'revision':'5d4b9a331136a1a5d7ce7ccf7dfcca36','url':'/assets/images/CT-Chest-Contrast-Enhanced.png'},{'revision':'5fb264499a5bb42487663b00e42d1513','url':'/assets/images/CT-Chest-Vessels.png'},{'revision':'ab8f0e569c972388ddaaa61b92449fac','url':'/assets/images/CT-Coronary-Arteries-2.png'},{'revision':'e4e7e2e3cc09bc8c4fb03b6441bd2845','url':'/assets/images/CT-Coronary-Arteries-3.png'},{'revision':'79a2962a2d3cbe4bd3b675b5ca83c659','url':'/assets/images/CT-Coronary-Arteries.png'},{'revision':'6502a6bdab1c70e2188c3bf12ce5d4e4','url':'/assets/images/CT-Cropped-Volume-Bone.png'},{'revision':'e28ad3cf5ed2006fc5a7cffd602736fc','url':'/assets/images/CT-Fat.png'},{'revision':'ca1c5be76053edee27e68ffbf9105101','url':'/assets/images/CT-Liver-Vasculature.png'},{'revision':'d6c9ab857ed2ad19f1ff20bea02b6655','url':'/assets/images/CT-Lung.png'},{'revision':'ddb599c6a163bdf28ece8de1a337470a','url':'/assets/images/CT-MIP.png'},{'revision':'0b0dcf7940a555e2a9a0900f7f84d4d3','url':'/assets/images/CT-Muscle.png'},{'revision':'6082d383f9ce375a5873e2a00fc4d372','url':'/assets/images/CT-Pulmonary-Arteries.png'},{'revision':'b317366149ee2607bec95d63eb4d7661','url':'/assets/images/CT-Soft-Tissue.png'},{'revision':'4b0cd5a673ebb71da22a91ed608d6695','url':'/assets/images/DTI-FA-Brain.png'},{'revision':'3ea1cbee022af5b94710b73726308832','url':'/assets/images/MR-Angio.png'},{'revision':'bd25ca7b166193547f34950eed440e5c','url':'/assets/images/MR-Default.png'},{'revision':'2e50a49b859aeb316a1c23f911fce9ad','url':'/assets/images/MR-MIP.png'},{'revision':'6ba74de6961e08652ff9e2f1871b473d','url':'/assets/images/MR-T2-Brain.png'},{'revision':'42406bb474f0f87cf04a5afbbcd5e389','url':'/assets/images/VolumeRendering.png'},{'revision':'2017d95fae79dcf34b5a5b52586d4763','url':'/assets/manifest.webapp'},{'revision':'cb4f64534cdf8dd88f1d7219d44490db','url':'/assets/mstile-144x144.png'},{'revision':'334895225e16a7777e45d81964725a97','url':'/assets/mstile-150x150.png'},{'revision':'e295cca4af6ed0365cf7b014d91b0e9d','url':'/assets/mstile-310x150.png'},{'revision':'cbefa8c42250e5f2443819fe2c69d91e','url':'/assets/mstile-310x310.png'},{'revision':'aa411a69df2b33a1362fa38d1257fa9d','url':'/assets/mstile-70x70.png'},{'revision':'5609af4f69e40e33471aee770ea1d802','url':'/assets/yandex-browser-50x50.png'},{'revision':'dd001f21b3970d5a7f3e245cc10d21df','url':'/assets/yandex-browser-manifest.json'},{'revision':null,'url':'/c22b37c3488e1d6c3aa4.wasm'},{'revision':null,'url':'/compute.bundle.73440405025831e0e072.js'},{'revision':'c377e1f5fe4a207d270c3f7a8dd3e3ca','url':'/dicom-microscopy-viewer/charlswasm_decode.wasm'},{'revision':'9214592a1edd456ad2ef69772201398e','url':'/dicom-microscopy-viewer/dataLoader.worker.min.js'},{'revision':'813dee9adb3a3478dedc6dfe1479e15b','url':'/dicom-microscopy-viewer/dataLoader.worker.min.js.map'},{'revision':'fb088ddc5ec5de63aa6095f70baa2d45','url':'/dicom-microscopy-viewer/dicomMicroscopyViewer.min.js'},{'revision':'cdf943673c34e8dd6be85b026bdffc70','url':'/dicom-microscopy-viewer/dicomMicroscopyViewer.min.js.map'},{'revision':'52b9a07fe0541fe8c313d9788550bf51','url':'/dicom-microscopy-viewer/dicomiccwasm.wasm'},{'revision':'7edb59d2be7c993050cb31ded36afa31','url':'/dicom-microscopy-viewer/libjpegturbowasm_decode.wasm'},{'revision':'54a25d82a224dfd401569baffc8b478d','url':'/dicom-microscopy-viewer/openjpegwasm_decode.wasm'},{'revision':'4acdd19a35d759ec2669f1ba9490937d','url':'/es6-shim.min.js'},{'revision':'92b01d0a387d59841e02cc3a4c994657','url':'/google.js'},{'revision':null,'url':'/histogram-worker.bundle.5b679ce4142c803c80a4.js'},{'revision':'cf2954089ea7140a0ff68d31a69b276f','url':'/index.html'},{'revision':'31c0367ca4160b2c6373e905739c5719','url':'/init-service-worker.js'},{'revision':null,'url':'/interpolation.bundle.046b662a640ec91af340.js'},{'revision':'74fc9658b62903be2048c1f82a22b4d4','url':'/manifest.json'},{'revision':'3fa71aa0af3e34b4ebd9a71eee0f4bdd','url':'/ohif-logo-light.svg'},{'revision':'7e81da785c63e75650101db6c5d7560e','url':'/ohif-logo.svg'},{'revision':'eadf8bf1d85032a029e2c0df4b8938b0','url':'/oidc-client.min.js'},{'revision':'242abae066a3d4717e09f218703f1923','url':'/ort/cjs/ort.all.min.js'},{'revision':'039ea411b3b655094035e85bb2e245d4','url':'/ort/cjs/ort.all.min.js.map'},{'revision':'fb509ab752acf788c3cc25459ae72e62','url':'/ort/cjs/ort.min.js'},{'revision':'30087ad61fc31272eb6094962e3a0451','url':'/ort/cjs/ort.min.js.map'},{'revision':'0fad6d8ca65291350ca8a1751659a536','url':'/ort/cjs/ort.training.wasm.min.js'},{'revision':'da692fb2cd7f67223b92a90955b87cb3','url':'/ort/cjs/ort.training.wasm.min.js.map'},{'revision':'f471b605fb03df54c63d5bc77a32226b','url':'/ort/cjs/ort.wasm-core.min.js'},{'revision':'cc4475faebff69233b4fdc1a78eb0399','url':'/ort/cjs/ort.wasm-core.min.js.map'},{'revision':'d228221765171d0a4cf3cb3909dd0be3','url':'/ort/cjs/ort.wasm.min.js'},{'revision':'6d132c02e5eeadf4da54c8bcc0c15200','url':'/ort/cjs/ort.wasm.min.js.map'},{'revision':'9a463e37f9550d7a23f5a47076b6b3d8','url':'/ort/cjs/ort.webgl.min.js'},{'revision':'26e251b6aee08c91a3d6e1af1410659d','url':'/ort/cjs/ort.webgl.min.js.map'},{'revision':'5cd623012201d7c5ddbbdb57224ac26d','url':'/ort/cjs/ort.webgpu.min.js'},{'revision':'e53c54f9663a5d7573b66dd3d25fb93a','url':'/ort/cjs/ort.webgpu.min.js.map'},{'revision':'a6b7eb31b5dcf3835a90ea0d201f21e3','url':'/ort/cjs/package.json'},{'revision':'2ccbe0c4397149108dd0d7ced00b5879','url':'/ort/esm/ort.all.min.js'},{'revision':'2b2ff793ba11a59563a504067aa1e469','url':'/ort/esm/ort.all.min.js.map'},{'revision':'978e978337e66e848c2351da61fd7e8e','url':'/ort/esm/ort.min.js'},{'revision':'add9f88f20194b214c8a97b200c4eac0','url':'/ort/esm/ort.min.js.map'},{'revision':'61471773b94ac06d0d814b49cf619233','url':'/ort/esm/ort.training.wasm.min.js'},{'revision':'60057feb2e9c1d39d7e52b165e450e72','url':'/ort/esm/ort.training.wasm.min.js.map'},{'revision':'12635093e14a67921565de89f678c470','url':'/ort/esm/ort.wasm-core.min.js'},{'revision':'1d2c905465e8b47dc023beaf715bb6ae','url':'/ort/esm/ort.wasm-core.min.js.map'},{'revision':'f2780d73ea108c5728b4c4fb6bd1e8df','url':'/ort/esm/ort.wasm.min.js'},{'revision':'e1af0f0e8befaa973a9192cdc1a882fb','url':'/ort/esm/ort.wasm.min.js.map'},{'revision':'c5a2e8ed939ccfb0211336d8b385d81a','url':'/ort/esm/ort.webgl.min.js'},{'revision':'9e0198bc10517578066aed6c8baef1a3','url':'/ort/esm/ort.webgl.min.js.map'},{'revision':'0c96a22438d8ffdf94f13b1693dbed8b','url':'/ort/esm/ort.webgpu.min.js'},{'revision':'24126f825e1c2dd678b4b85cde6c4e3a','url':'/ort/esm/ort.webgpu.min.js.map'},{'revision':'b305354b5d3207dc798e87449005a1de','url':'/ort/esm/package.json'},{'revision':'10ba4d1a5289405cff7d9b5f453b60b4','url':'/ort/ort-training-wasm-simd.wasm'},{'revision':'f7380fb5928344460bac0e5833ee4a82','url':'/ort/ort-wasm-simd-threaded.jsep.wasm'},{'revision':'068e15f5aba004197782c011a782c500','url':'/ort/ort-wasm-simd-threaded.wasm'},{'revision':'8a468bda81bfb9e375907f0b6da8ffee','url':'/ort/ort-wasm-simd.jsep.wasm'},{'revision':'27a8292511e77fc50ced64326875ca4a','url':'/ort/ort-wasm-simd.wasm'},{'revision':'c9cf2d09cfabe6ea517c87620091a2fb','url':'/ort/ort-wasm-threaded.wasm'},{'revision':'88cb0475e8c4228b29dd201646223f0c','url':'/ort/ort-wasm.wasm'},{'revision':'708def774c211a2b036384d9e14dbfe7','url':'/ort/ort.all.js'},{'revision':'32e292212f5767983e5433f0a88d3425','url':'/ort/ort.all.min.js'},{'revision':'c4a4b66af400491c83591ab732dac868','url':'/ort/ort.all.min.js.map'},{'revision':'5d78ec66bcab8a26756d43b8c63a8f1e','url':'/ort/ort.js'},{'revision':'d552a78742409520bd30fb824a88a266','url':'/ort/ort.min.js'},{'revision':'a1fdb4abef4a6130f72148fe469ca114','url':'/ort/ort.min.js.map'},{'revision':'e3b420cb98f192d8755934dde7c014db','url':'/ort/ort.node.min.js'},{'revision':'9b0c2098e6c9b0f6d6e54e8cb434ed76','url':'/ort/ort.node.min.js.map'},{'revision':'722dabcfbb18772ca80ef96ef9b9a036','url':'/ort/ort.training.wasm.min.js'},{'revision':'de35b3d2e302163bdcb80d3e20c84266','url':'/ort/ort.training.wasm.min.js.map'},{'revision':'f92b62229fc36d346f720b2410e63576','url':'/ort/ort.wasm-core.min.js'},{'revision':'8f56640956155afecadc318d8a32e0f6','url':'/ort/ort.wasm-core.min.js.map'},{'revision':'5ac1ffe964e3bd1f0d2e6a3a18a5a1ba','url':'/ort/ort.wasm.min.js'},{'revision':'9b0a74e48529a07b61428b1a48233b39','url':'/ort/ort.wasm.min.js.map'},{'revision':'4591c9c641ab0151b9a8cdc1ce110286','url':'/ort/ort.webgl.min.js'},{'revision':'77e632e10b98c8d10e17bb3071d5cba4','url':'/ort/ort.webgl.min.js.map'},{'revision':'027aca68552f5081e90a08f7fb064fb7','url':'/ort/ort.webgpu.min.js'},{'revision':'12dc9d5c577bac166f0f74590e4d27dd','url':'/ort/ort.webgpu.min.js.map'},{'revision':null,'url':'/polySeg.bundle.6373e24bd578ae0d41eb.js'},{'revision':'a1aef5311245f5864315443d12246c37','url':'/polyfill.min.js'},{'revision':'981ac7f7543b8330e3826aff72c33382','url':'/serve.json'},{'revision':'b1e488d9955b62bd2858874df11d5223','url':'/silent-refresh.html'}]);
53
+ workbox.precaching.precacheAndRoute([{'revision':null,'url':'/1403.bundle.48708695d2d613d5aeaa.js'},{'revision':null,'url':'/1459.bundle.66cf33bfbbb8cda9e5b8.js'},{'revision':null,'url':'/147.bundle.47af018b91121924a12c.js'},{'revision':'e0cfcadcf2c2fbc1f117196b9f62bf3e','url':'/147.css'},{'revision':null,'url':'/1608.bundle.b9abbf4ed6cc2e491dc3.js'},{'revision':'27c847594562926775c007c401b4fe98','url':'/1608.css'},{'revision':null,'url':'/1730.bundle.bdcf4c526a9fc7f0aea7.js'},{'revision':'27c847594562926775c007c401b4fe98','url':'/1730.css'},{'revision':null,'url':'/17dd54813d5acc10bf8f.wasm'},{'revision':null,'url':'/1927.bundle.be67b3aafe238ca9f191.js'},{'revision':null,'url':'/1933.bundle.7591785745bd318e26a4.js'},{'revision':'27c847594562926775c007c401b4fe98','url':'/1933.css'},{'revision':null,'url':'/2018.bundle.af43329bc1669fa760e2.js'},{'revision':null,'url':'/2108.bundle.aea8d3b39486dd5ab39e.js'},{'revision':null,'url':'/213.bundle.4d25a4b4be3421505ce9.js'},{'revision':null,'url':'/2199.bundle.974037f21bfd12c4e8af.js'},{'revision':null,'url':'/2424.bundle.1627d3e055f0027f5c36.js'},{'revision':null,'url':'/2516.bundle.6b52ced19754035768ae.js'},{'revision':'27c847594562926775c007c401b4fe98','url':'/2591.css'},{'revision':null,'url':'/2701.bundle.58a6a580073edbb4cc04.js'},{'revision':null,'url':'/2816.bundle.838fa4d72921c026083c.js'},{'revision':null,'url':'/2851.bundle.c25c901048753cbd5547.js'},{'revision':null,'url':'/3081.bundle.4ccb3f053735afa48158.js'},{'revision':null,'url':'/31fb9346313fc3740d7b.woff2'},{'revision':null,'url':'/3343.bundle.a4424b8418b8c0c1a9e4.js'},{'revision':'27c847594562926775c007c401b4fe98','url':'/3343.css'},{'revision':null,'url':'/3461.bundle.6064d1fcac884b9fe276.js'},{'revision':null,'url':'/4202.bundle.4f76d3a50d6cf819fba0.js'},{'revision':null,'url':'/4287.bundle.87e14e648f2bce5e4176.js'},{'revision':null,'url':'/4775.bundle.3759845ca820fe88b0ba.js'},{'revision':null,'url':'/4819.bundle.0ca3136287b7ccb9ace1.js'},{'revision':'27c847594562926775c007c401b4fe98','url':'/4819.css'},{'revision':null,'url':'/5004fdc02f329ce53b69.wasm'},{'revision':null,'url':'/5028.bundle.77dda9acd186ff73199e.js'},{'revision':'27c847594562926775c007c401b4fe98','url':'/5028.css'},{'revision':null,'url':'/5261.bundle.2655560097e9250eac44.js'},{'revision':null,'url':'/5457.bundle.c3ab627d5c2746a2c9fe.js'},{'revision':null,'url':'/5462.bundle.d5bb9b3ddc510fea141f.js'},{'revision':null,'url':'/5485.bundle.f1ed619da56e368fd6d1.js'},{'revision':null,'url':'/5491.bundle.4866d2ecb20dd089e071.js'},{'revision':null,'url':'/5724.bundle.62ea5c07c7809ab4cd74.js'},{'revision':'27c847594562926775c007c401b4fe98','url':'/5724.css'},{'revision':null,'url':'/5802.bundle.ae4d88742c353de462c2.js'},{'revision':'78c6e381862b3f33316bcffadde4ccd6','url':'/5802.css'},{'revision':null,'url':'/5830.bundle.d026ec38980fb12f2518.js'},{'revision':null,'url':'/5858.bundle.466e58128de344ab53f3.js'},{'revision':null,'url':'/6027.bundle.410be2beb2df3a21ad4f.js'},{'revision':null,'url':'/6125.bundle.ab478c49c15f1275c336.js'},{'revision':null,'url':'/6163.bundle.cfc84effaf872fd4fb10.js'},{'revision':'27c847594562926775c007c401b4fe98','url':'/6163.css'},{'revision':null,'url':'/6280.bundle.f22f9955eb906e1d7da8.js'},{'revision':null,'url':'/6347.bundle.f8393c20d5159ed41b64.js'},{'revision':null,'url':'/6354.bundle.d8a592b03e9a5b7a66c2.js'},{'revision':null,'url':'/6376.bundle.9c9649f16fb3de292c52.js'},{'revision':null,'url':'/6409.bundle.24edbaa283b7c521b8f7.js'},{'revision':null,'url':'/6939.bundle.41fbdef87597b5172ec6.js'},{'revision':null,'url':'/7159.bundle.a5991a5d4f0dd8f1c95f.js'},{'revision':'20a92cf14c2d8be6cd580f68780cc7fa','url':'/7159.css'},{'revision':null,'url':'/732.bundle.ea6f9d8504e37e01a208.js'},{'revision':null,'url':'/7431.bundle.b31ebb4a2625e89d864e.js'},{'revision':null,'url':'/7639.bundle.09f37bd8abe6256f30ab.js'},{'revision':null,'url':'/7758.bundle.c8d106364298e7d288f0.js'},{'revision':null,'url':'/8094.bundle.148a66619607e37cbf19.js'},{'revision':null,'url':'/8305.bundle.0753faa2dc43a14092b7.js'},{'revision':'27c847594562926775c007c401b4fe98','url':'/8305.css'},{'revision':null,'url':'/85.bundle.0291d61a32ce9935de13.js'},{'revision':null,'url':'/8558.bundle.7d23559153485d455bc6.js'},{'revision':null,'url':'/8583.bundle.bc1971a7d8b5b1043239.js'},{'revision':'27c847594562926775c007c401b4fe98','url':'/8583.css'},{'revision':null,'url':'/8665.bundle.dc56c125411422f9f686.js'},{'revision':null,'url':'/9205.bundle.2a2f38a4ee23647f5fa4.js'},{'revision':null,'url':'/982b0633e475d94949df.wasm'},{'revision':null,'url':'/9845.bundle.31f3e7e2d28fa6033ee5.js'},{'revision':null,'url':'/9862.bundle.73ea2a7703bf1bb96275.js'},{'revision':null,'url':'/9927.bundle.98382d216a6d0a6cd4fb.js'},{'revision':'d41d8cd98f00b204e9800998ecf8427e','url':'/_headers'},{'revision':'e3bf0f3e9c34f51ad59836ae8e8eaf43','url':'/_redirects'},{'revision':null,'url':'/a957c5cd315f89b6feb1.wasm'},{'revision':'2f872a596b09e1b1de398d253a78fba2','url':'/app-config.js'},{'revision':null,'url':'/app.bundle.13c9ec2d0e38e06c6bf4.js'},{'revision':'1d6f50bfca3cdcf259342ad87d5f7054','url':'/app.bundle.css'},{'revision':'cb4f64534cdf8dd88f1d7219d44490db','url':'/assets/android-chrome-144x144.png'},{'revision':'5cde390de8a619ebe55a669d2ac3effd','url':'/assets/android-chrome-192x192.png'},{'revision':'e7466a67e90471de05401e53b8fe20be','url':'/assets/android-chrome-256x256.png'},{'revision':'9bbe9b80156e930d19a4e1725aa9ddae','url':'/assets/android-chrome-36x36.png'},{'revision':'5698b2ac0c82fe06d84521fc5482df04','url':'/assets/android-chrome-384x384.png'},{'revision':'56bef3fceec344d9747f8abe9c0bba27','url':'/assets/android-chrome-48x48.png'},{'revision':'3e8b8a01290992e82c242557417b0596','url':'/assets/android-chrome-512x512.png'},{'revision':'517925e91e2ce724432d296b687d25e2','url':'/assets/android-chrome-72x72.png'},{'revision':'4c3289bc690f8519012686888e08da71','url':'/assets/android-chrome-96x96.png'},{'revision':'cf464289183184df09292f581df0fb4f','url':'/assets/apple-touch-icon-1024x1024.png'},{'revision':'0857c5282c594e4900e8b31e3bade912','url':'/assets/apple-touch-icon-114x114.png'},{'revision':'4208f41a28130a67e9392a9dfcee6011','url':'/assets/apple-touch-icon-120x120.png'},{'revision':'cb4f64534cdf8dd88f1d7219d44490db','url':'/assets/apple-touch-icon-144x144.png'},{'revision':'977d293982af7e9064ba20806b45cf35','url':'/assets/apple-touch-icon-152x152.png'},{'revision':'6de91b4d2a30600b410758405cb567b4','url':'/assets/apple-touch-icon-167x167.png'},{'revision':'87bff140e3773bd7479a620501c4aa5c','url':'/assets/apple-touch-icon-180x180.png'},{'revision':'647386c34e75f1213830ea9a38913525','url':'/assets/apple-touch-icon-57x57.png'},{'revision':'0c200fe83953738b330ea431083e7a86','url':'/assets/apple-touch-icon-60x60.png'},{'revision':'517925e91e2ce724432d296b687d25e2','url':'/assets/apple-touch-icon-72x72.png'},{'revision':'c9989a807bb18633f6dcf254b5b56124','url':'/assets/apple-touch-icon-76x76.png'},{'revision':'87bff140e3773bd7479a620501c4aa5c','url':'/assets/apple-touch-icon-precomposed.png'},{'revision':'87bff140e3773bd7479a620501c4aa5c','url':'/assets/apple-touch-icon.png'},{'revision':'05fa74ea9c1c0c3931ba96467999081d','url':'/assets/apple-touch-startup-image-1182x2208.png'},{'revision':'9e2cd03e1e6fd0520eea6846f4278018','url':'/assets/apple-touch-startup-image-1242x2148.png'},{'revision':'5591e3a1822cbc8439b99c1a40d53425','url':'/assets/apple-touch-startup-image-1496x2048.png'},{'revision':'337de578c5ca04bd7d2be19d24d83821','url':'/assets/apple-touch-startup-image-1536x2008.png'},{'revision':'cafb4ab4eafe6ef946bd229a1d88e7de','url':'/assets/apple-touch-startup-image-320x460.png'},{'revision':'d9bb9e558d729eeac5efb8be8d6111cc','url':'/assets/apple-touch-startup-image-640x1096.png'},{'revision':'038b5b02bac8b82444bf9a87602ac216','url':'/assets/apple-touch-startup-image-640x920.png'},{'revision':'2177076eb07b1d64d663d7c03268be00','url':'/assets/apple-touch-startup-image-748x1024.png'},{'revision':'4fc097443815fe92503584c4bd73c630','url':'/assets/apple-touch-startup-image-750x1294.png'},{'revision':'2e29914062dce5c5141ab47eea2fc5d9','url':'/assets/apple-touch-startup-image-768x1004.png'},{'revision':'f692ec286b3a332c17985f4ed38b1076','url':'/assets/browserconfig.xml'},{'revision':'f3d9a3b647853c45b0e132e4acd0cc4a','url':'/assets/coast-228x228.png'},{'revision':'ad6e1def5c66193d649a31474bbfe45d','url':'/assets/favicon-16x16.png'},{'revision':'84d1dcdb6cdfa55e2f46be0c80fa5698','url':'/assets/favicon-32x32.png'},{'revision':'95fb44c4998a46109e49d724c060db24','url':'/assets/favicon.ico'},{'revision':'5df2a5b0cee399ac0bc40af74ba3c2cb','url':'/assets/firefox_app_128x128.png'},{'revision':'11fd9098c4b07c8a07e1d2a1e309e046','url':'/assets/firefox_app_512x512.png'},{'revision':'27cddfc922dca3bfa27b4a00fc2f5e36','url':'/assets/firefox_app_60x60.png'},{'revision':'2547879ee2928a5fd56dca483bcbd967','url':'/assets/images/CT-AAA.png'},{'revision':'245628fb9d18d6c5cd529615079f8e86','url':'/assets/images/CT-AAA2.png'},{'revision':'997a9c8b57e7b4e46d8f01fb49d078c6','url':'/assets/images/CT-Air.png'},{'revision':'e7ed89711f63348d49898da3a2b73ab9','url':'/assets/images/CT-Bone.png'},{'revision':'09d1dc6efebb10a60cdf85ed74a10214','url':'/assets/images/CT-Bones.png'},{'revision':'f8ae9bafd3b90ba3efbdcbe8901db187','url':'/assets/images/CT-Cardiac.png'},{'revision':'ed0cc538aba90d6a1c029923ca9b47db','url':'/assets/images/CT-Cardiac2.png'},{'revision':'dfdaf4e4889aefbf09514545f45726bb','url':'/assets/images/CT-Cardiac3.png'},{'revision':'5d4b9a331136a1a5d7ce7ccf7dfcca36','url':'/assets/images/CT-Chest-Contrast-Enhanced.png'},{'revision':'5fb264499a5bb42487663b00e42d1513','url':'/assets/images/CT-Chest-Vessels.png'},{'revision':'ab8f0e569c972388ddaaa61b92449fac','url':'/assets/images/CT-Coronary-Arteries-2.png'},{'revision':'e4e7e2e3cc09bc8c4fb03b6441bd2845','url':'/assets/images/CT-Coronary-Arteries-3.png'},{'revision':'79a2962a2d3cbe4bd3b675b5ca83c659','url':'/assets/images/CT-Coronary-Arteries.png'},{'revision':'6502a6bdab1c70e2188c3bf12ce5d4e4','url':'/assets/images/CT-Cropped-Volume-Bone.png'},{'revision':'e28ad3cf5ed2006fc5a7cffd602736fc','url':'/assets/images/CT-Fat.png'},{'revision':'ca1c5be76053edee27e68ffbf9105101','url':'/assets/images/CT-Liver-Vasculature.png'},{'revision':'d6c9ab857ed2ad19f1ff20bea02b6655','url':'/assets/images/CT-Lung.png'},{'revision':'ddb599c6a163bdf28ece8de1a337470a','url':'/assets/images/CT-MIP.png'},{'revision':'0b0dcf7940a555e2a9a0900f7f84d4d3','url':'/assets/images/CT-Muscle.png'},{'revision':'6082d383f9ce375a5873e2a00fc4d372','url':'/assets/images/CT-Pulmonary-Arteries.png'},{'revision':'b317366149ee2607bec95d63eb4d7661','url':'/assets/images/CT-Soft-Tissue.png'},{'revision':'4b0cd5a673ebb71da22a91ed608d6695','url':'/assets/images/DTI-FA-Brain.png'},{'revision':'3ea1cbee022af5b94710b73726308832','url':'/assets/images/MR-Angio.png'},{'revision':'bd25ca7b166193547f34950eed440e5c','url':'/assets/images/MR-Default.png'},{'revision':'2e50a49b859aeb316a1c23f911fce9ad','url':'/assets/images/MR-MIP.png'},{'revision':'6ba74de6961e08652ff9e2f1871b473d','url':'/assets/images/MR-T2-Brain.png'},{'revision':'42406bb474f0f87cf04a5afbbcd5e389','url':'/assets/images/VolumeRendering.png'},{'revision':'2017d95fae79dcf34b5a5b52586d4763','url':'/assets/manifest.webapp'},{'revision':'cb4f64534cdf8dd88f1d7219d44490db','url':'/assets/mstile-144x144.png'},{'revision':'334895225e16a7777e45d81964725a97','url':'/assets/mstile-150x150.png'},{'revision':'e295cca4af6ed0365cf7b014d91b0e9d','url':'/assets/mstile-310x150.png'},{'revision':'cbefa8c42250e5f2443819fe2c69d91e','url':'/assets/mstile-310x310.png'},{'revision':'aa411a69df2b33a1362fa38d1257fa9d','url':'/assets/mstile-70x70.png'},{'revision':'5609af4f69e40e33471aee770ea1d802','url':'/assets/yandex-browser-50x50.png'},{'revision':'dd001f21b3970d5a7f3e245cc10d21df','url':'/assets/yandex-browser-manifest.json'},{'revision':null,'url':'/c22b37c3488e1d6c3aa4.wasm'},{'revision':null,'url':'/compute.bundle.73440405025831e0e072.js'},{'revision':'c377e1f5fe4a207d270c3f7a8dd3e3ca','url':'/dicom-microscopy-viewer/charlswasm_decode.wasm'},{'revision':'9214592a1edd456ad2ef69772201398e','url':'/dicom-microscopy-viewer/dataLoader.worker.min.js'},{'revision':'813dee9adb3a3478dedc6dfe1479e15b','url':'/dicom-microscopy-viewer/dataLoader.worker.min.js.map'},{'revision':'fb088ddc5ec5de63aa6095f70baa2d45','url':'/dicom-microscopy-viewer/dicomMicroscopyViewer.min.js'},{'revision':'cdf943673c34e8dd6be85b026bdffc70','url':'/dicom-microscopy-viewer/dicomMicroscopyViewer.min.js.map'},{'revision':'52b9a07fe0541fe8c313d9788550bf51','url':'/dicom-microscopy-viewer/dicomiccwasm.wasm'},{'revision':'7edb59d2be7c993050cb31ded36afa31','url':'/dicom-microscopy-viewer/libjpegturbowasm_decode.wasm'},{'revision':'54a25d82a224dfd401569baffc8b478d','url':'/dicom-microscopy-viewer/openjpegwasm_decode.wasm'},{'revision':'4acdd19a35d759ec2669f1ba9490937d','url':'/es6-shim.min.js'},{'revision':'92b01d0a387d59841e02cc3a4c994657','url':'/google.js'},{'revision':null,'url':'/histogram-worker.bundle.5b679ce4142c803c80a4.js'},{'revision':'5497efaefaac0ecd60a73d8b3385cb33','url':'/index.html'},{'revision':'31c0367ca4160b2c6373e905739c5719','url':'/init-service-worker.js'},{'revision':null,'url':'/interpolation.bundle.ae4d1b6dfb6b4bd37159.js'},{'revision':'74fc9658b62903be2048c1f82a22b4d4','url':'/manifest.json'},{'revision':'3fa71aa0af3e34b4ebd9a71eee0f4bdd','url':'/ohif-logo-light.svg'},{'revision':'7e81da785c63e75650101db6c5d7560e','url':'/ohif-logo.svg'},{'revision':'eadf8bf1d85032a029e2c0df4b8938b0','url':'/oidc-client.min.js'},{'revision':'242abae066a3d4717e09f218703f1923','url':'/ort/cjs/ort.all.min.js'},{'revision':'039ea411b3b655094035e85bb2e245d4','url':'/ort/cjs/ort.all.min.js.map'},{'revision':'fb509ab752acf788c3cc25459ae72e62','url':'/ort/cjs/ort.min.js'},{'revision':'30087ad61fc31272eb6094962e3a0451','url':'/ort/cjs/ort.min.js.map'},{'revision':'0fad6d8ca65291350ca8a1751659a536','url':'/ort/cjs/ort.training.wasm.min.js'},{'revision':'da692fb2cd7f67223b92a90955b87cb3','url':'/ort/cjs/ort.training.wasm.min.js.map'},{'revision':'f471b605fb03df54c63d5bc77a32226b','url':'/ort/cjs/ort.wasm-core.min.js'},{'revision':'cc4475faebff69233b4fdc1a78eb0399','url':'/ort/cjs/ort.wasm-core.min.js.map'},{'revision':'d228221765171d0a4cf3cb3909dd0be3','url':'/ort/cjs/ort.wasm.min.js'},{'revision':'6d132c02e5eeadf4da54c8bcc0c15200','url':'/ort/cjs/ort.wasm.min.js.map'},{'revision':'9a463e37f9550d7a23f5a47076b6b3d8','url':'/ort/cjs/ort.webgl.min.js'},{'revision':'26e251b6aee08c91a3d6e1af1410659d','url':'/ort/cjs/ort.webgl.min.js.map'},{'revision':'5cd623012201d7c5ddbbdb57224ac26d','url':'/ort/cjs/ort.webgpu.min.js'},{'revision':'e53c54f9663a5d7573b66dd3d25fb93a','url':'/ort/cjs/ort.webgpu.min.js.map'},{'revision':'a6b7eb31b5dcf3835a90ea0d201f21e3','url':'/ort/cjs/package.json'},{'revision':'2ccbe0c4397149108dd0d7ced00b5879','url':'/ort/esm/ort.all.min.js'},{'revision':'2b2ff793ba11a59563a504067aa1e469','url':'/ort/esm/ort.all.min.js.map'},{'revision':'978e978337e66e848c2351da61fd7e8e','url':'/ort/esm/ort.min.js'},{'revision':'add9f88f20194b214c8a97b200c4eac0','url':'/ort/esm/ort.min.js.map'},{'revision':'61471773b94ac06d0d814b49cf619233','url':'/ort/esm/ort.training.wasm.min.js'},{'revision':'60057feb2e9c1d39d7e52b165e450e72','url':'/ort/esm/ort.training.wasm.min.js.map'},{'revision':'12635093e14a67921565de89f678c470','url':'/ort/esm/ort.wasm-core.min.js'},{'revision':'1d2c905465e8b47dc023beaf715bb6ae','url':'/ort/esm/ort.wasm-core.min.js.map'},{'revision':'f2780d73ea108c5728b4c4fb6bd1e8df','url':'/ort/esm/ort.wasm.min.js'},{'revision':'e1af0f0e8befaa973a9192cdc1a882fb','url':'/ort/esm/ort.wasm.min.js.map'},{'revision':'c5a2e8ed939ccfb0211336d8b385d81a','url':'/ort/esm/ort.webgl.min.js'},{'revision':'9e0198bc10517578066aed6c8baef1a3','url':'/ort/esm/ort.webgl.min.js.map'},{'revision':'0c96a22438d8ffdf94f13b1693dbed8b','url':'/ort/esm/ort.webgpu.min.js'},{'revision':'24126f825e1c2dd678b4b85cde6c4e3a','url':'/ort/esm/ort.webgpu.min.js.map'},{'revision':'b305354b5d3207dc798e87449005a1de','url':'/ort/esm/package.json'},{'revision':'10ba4d1a5289405cff7d9b5f453b60b4','url':'/ort/ort-training-wasm-simd.wasm'},{'revision':'f7380fb5928344460bac0e5833ee4a82','url':'/ort/ort-wasm-simd-threaded.jsep.wasm'},{'revision':'068e15f5aba004197782c011a782c500','url':'/ort/ort-wasm-simd-threaded.wasm'},{'revision':'8a468bda81bfb9e375907f0b6da8ffee','url':'/ort/ort-wasm-simd.jsep.wasm'},{'revision':'27a8292511e77fc50ced64326875ca4a','url':'/ort/ort-wasm-simd.wasm'},{'revision':'c9cf2d09cfabe6ea517c87620091a2fb','url':'/ort/ort-wasm-threaded.wasm'},{'revision':'88cb0475e8c4228b29dd201646223f0c','url':'/ort/ort-wasm.wasm'},{'revision':'708def774c211a2b036384d9e14dbfe7','url':'/ort/ort.all.js'},{'revision':'32e292212f5767983e5433f0a88d3425','url':'/ort/ort.all.min.js'},{'revision':'c4a4b66af400491c83591ab732dac868','url':'/ort/ort.all.min.js.map'},{'revision':'5d78ec66bcab8a26756d43b8c63a8f1e','url':'/ort/ort.js'},{'revision':'d552a78742409520bd30fb824a88a266','url':'/ort/ort.min.js'},{'revision':'a1fdb4abef4a6130f72148fe469ca114','url':'/ort/ort.min.js.map'},{'revision':'e3b420cb98f192d8755934dde7c014db','url':'/ort/ort.node.min.js'},{'revision':'9b0c2098e6c9b0f6d6e54e8cb434ed76','url':'/ort/ort.node.min.js.map'},{'revision':'722dabcfbb18772ca80ef96ef9b9a036','url':'/ort/ort.training.wasm.min.js'},{'revision':'de35b3d2e302163bdcb80d3e20c84266','url':'/ort/ort.training.wasm.min.js.map'},{'revision':'f92b62229fc36d346f720b2410e63576','url':'/ort/ort.wasm-core.min.js'},{'revision':'8f56640956155afecadc318d8a32e0f6','url':'/ort/ort.wasm-core.min.js.map'},{'revision':'5ac1ffe964e3bd1f0d2e6a3a18a5a1ba','url':'/ort/ort.wasm.min.js'},{'revision':'9b0a74e48529a07b61428b1a48233b39','url':'/ort/ort.wasm.min.js.map'},{'revision':'4591c9c641ab0151b9a8cdc1ce110286','url':'/ort/ort.webgl.min.js'},{'revision':'77e632e10b98c8d10e17bb3071d5cba4','url':'/ort/ort.webgl.min.js.map'},{'revision':'027aca68552f5081e90a08f7fb064fb7','url':'/ort/ort.webgpu.min.js'},{'revision':'12dc9d5c577bac166f0f74590e4d27dd','url':'/ort/ort.webgpu.min.js.map'},{'revision':null,'url':'/polySeg.bundle.6373e24bd578ae0d41eb.js'},{'revision':'a1aef5311245f5864315443d12246c37','url':'/polyfill.min.js'},{'revision':'981ac7f7543b8330e3826aff72c33382','url':'/serve.json'},{'revision':'b1e488d9955b62bd2858874df11d5223','url':'/silent-refresh.html'}]);
54
54
 
55
55
  // TODO: Cache API
56
56
  // https://developers.google.com/web/fundamentals/instant-and-offline/web-storage/cache-api
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ohif/app",
3
- "version": "3.12.6",
3
+ "version": "3.12.8",
4
4
  "productVersion": "3.4.0",
5
5
  "description": "OHIF Viewer",
6
6
  "author": "OHIF Contributors",
@@ -55,25 +55,25 @@
55
55
  "@cornerstonejs/codec-openjph": "2.4.7",
56
56
  "@cornerstonejs/dicom-image-loader": "4.15.29",
57
57
  "@emotion/serialize": "1.3.3",
58
- "@ohif/core": "3.12.6",
59
- "@ohif/extension-cornerstone": "3.12.6",
60
- "@ohif/extension-cornerstone-dicom-rt": "3.12.6",
61
- "@ohif/extension-cornerstone-dicom-seg": "3.12.6",
62
- "@ohif/extension-cornerstone-dicom-sr": "3.12.6",
63
- "@ohif/extension-default": "3.12.6",
64
- "@ohif/extension-dicom-microscopy": "3.12.6",
65
- "@ohif/extension-dicom-pdf": "3.12.6",
66
- "@ohif/extension-dicom-video": "3.12.6",
67
- "@ohif/extension-test": "3.12.6",
68
- "@ohif/extension-ultrasound-pleura-bline": "3.12.6",
69
- "@ohif/i18n": "3.12.6",
70
- "@ohif/mode-basic-dev-mode": "3.12.6",
71
- "@ohif/mode-longitudinal": "3.12.6",
72
- "@ohif/mode-microscopy": "3.12.6",
73
- "@ohif/mode-test": "3.12.6",
74
- "@ohif/mode-ultrasound-pleura-bline": "3.12.6",
75
- "@ohif/ui": "3.12.6",
76
- "@ohif/ui-next": "3.12.6",
58
+ "@ohif/core": "3.12.8",
59
+ "@ohif/extension-cornerstone": "3.12.8",
60
+ "@ohif/extension-cornerstone-dicom-rt": "3.12.8",
61
+ "@ohif/extension-cornerstone-dicom-seg": "3.12.8",
62
+ "@ohif/extension-cornerstone-dicom-sr": "3.12.8",
63
+ "@ohif/extension-default": "3.12.8",
64
+ "@ohif/extension-dicom-microscopy": "3.12.8",
65
+ "@ohif/extension-dicom-pdf": "3.12.8",
66
+ "@ohif/extension-dicom-video": "3.12.8",
67
+ "@ohif/extension-test": "3.12.8",
68
+ "@ohif/extension-ultrasound-pleura-bline": "3.12.8",
69
+ "@ohif/i18n": "3.12.8",
70
+ "@ohif/mode-basic-dev-mode": "3.12.8",
71
+ "@ohif/mode-longitudinal": "3.12.8",
72
+ "@ohif/mode-microscopy": "3.12.8",
73
+ "@ohif/mode-test": "3.12.8",
74
+ "@ohif/mode-ultrasound-pleura-bline": "3.12.8",
75
+ "@ohif/ui": "3.12.8",
76
+ "@ohif/ui-next": "3.12.8",
77
77
  "@svgr/webpack": "8.1.0",
78
78
  "@types/react": "18.3.23",
79
79
  "classnames": "2.5.1",