@odinlin/utils 0.0.2 → 1.0.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.
- package/README.md +16 -20
- package/dist/browser/_virtual/rolldown_runtime.cjs +29 -0
- package/dist/browser/array/arrayCast.cjs +29 -0
- package/dist/browser/array/arrayCast.d.ts +27 -0
- package/dist/browser/array/arrayCast.d.ts.map +1 -0
- package/dist/browser/array/arrayCast.js +30 -0
- package/dist/browser/array/arrayCast.js.map +1 -0
- package/dist/browser/array/index.cjs +3 -0
- package/dist/browser/array/index.d.ts +2 -0
- package/dist/browser/array/index.js +3 -0
- package/dist/browser/browser.cjs +196 -0
- package/dist/browser/browser.d.ts +37 -0
- package/dist/browser/browser.js +30 -0
- package/dist/browser/constants/index.cjs +19 -0
- package/dist/browser/constants/index.d.ts +16 -0
- package/dist/browser/constants/index.d.ts.map +1 -0
- package/dist/browser/constants/index.js +17 -0
- package/dist/browser/constants/index.js.map +1 -0
- package/dist/browser/date/index.cjs +8 -0
- package/dist/browser/date/index.d.ts +3 -0
- package/dist/browser/date/index.js +4 -0
- package/dist/browser/date/prettyMs.cjs +9 -0
- package/dist/browser/date/prettyMs.d.ts +8 -0
- package/dist/browser/date/prettyMs.d.ts.map +1 -0
- package/dist/browser/date/prettyMs.js +8 -0
- package/dist/browser/date/prettyMs.js.map +1 -0
- package/dist/browser/date/timeAgo.cjs +14 -0
- package/dist/browser/date/timeAgo.d.ts +15 -0
- package/dist/browser/date/timeAgo.d.ts.map +1 -0
- package/dist/browser/date/timeAgo.js +11 -0
- package/dist/browser/date/timeAgo.js.map +1 -0
- package/dist/browser/file/browser.cjs +25 -0
- package/dist/browser/file/browser.d.ts +7 -0
- package/dist/browser/file/browser.js +7 -0
- package/dist/browser/file/fileBuffer.browser.cjs +115 -0
- package/dist/browser/file/fileBuffer.browser.d.ts +88 -0
- package/dist/browser/file/fileBuffer.browser.d.ts.map +1 -0
- package/dist/browser/file/fileBuffer.browser.js +115 -0
- package/dist/browser/file/fileBuffer.browser.js.map +1 -0
- package/dist/browser/file/fileBytes.cjs +9 -0
- package/dist/browser/file/fileBytes.d.ts +8 -0
- package/dist/browser/file/fileBytes.d.ts.map +1 -0
- package/dist/browser/file/fileBytes.js +8 -0
- package/dist/browser/file/fileBytes.js.map +1 -0
- package/dist/browser/file/fileType.browser.cjs +22 -0
- package/dist/browser/file/fileType.browser.d.ts +19 -0
- package/dist/browser/file/fileType.browser.d.ts.map +1 -0
- package/dist/browser/file/fileType.browser.js +15 -0
- package/dist/browser/file/fileType.browser.js.map +1 -0
- package/dist/browser/file/fileXml.browser.cjs +8 -0
- package/dist/browser/file/fileXml.browser.d.ts +12 -0
- package/dist/browser/file/fileXml.browser.d.ts.map +1 -0
- package/dist/browser/file/fileXml.browser.js +7 -0
- package/dist/browser/file/fileXml.browser.js.map +1 -0
- package/dist/browser/file/interface.d.ts +26 -0
- package/dist/browser/file/interface.d.ts.map +1 -0
- package/dist/browser/function/index.cjs +10 -0
- package/dist/browser/function/index.d.ts +8 -0
- package/dist/browser/function/index.d.ts.map +1 -0
- package/dist/browser/function/index.js +9 -0
- package/dist/browser/function/index.js.map +1 -0
- package/dist/browser/is/index.cjs +42 -0
- package/dist/browser/is/index.d.ts +7 -0
- package/dist/browser/is/index.js +8 -0
- package/dist/browser/is/isJSON.cjs +44 -0
- package/dist/browser/is/isJSON.d.ts +30 -0
- package/dist/browser/is/isJSON.d.ts.map +1 -0
- package/dist/browser/is/isJSON.js +41 -0
- package/dist/browser/is/isJSON.js.map +1 -0
- package/dist/browser/is/isPlatform.cjs +20 -0
- package/dist/browser/is/isPlatform.d.ts +16 -0
- package/dist/browser/is/isPlatform.d.ts.map +1 -0
- package/dist/browser/is/isPlatform.js +19 -0
- package/dist/browser/is/isPlatform.js.map +1 -0
- package/dist/browser/is/isPrimitive.cjs +91 -0
- package/dist/browser/is/isPrimitive.d.ts +79 -0
- package/dist/browser/is/isPrimitive.d.ts.map +1 -0
- package/dist/browser/is/isPrimitive.js +79 -0
- package/dist/browser/is/isPrimitive.js.map +1 -0
- package/dist/browser/is/isPrimitiveWithout.cjs +86 -0
- package/dist/browser/is/isPrimitiveWithout.d.ts +72 -0
- package/dist/browser/is/isPrimitiveWithout.d.ts.map +1 -0
- package/dist/browser/is/isPrimitiveWithout.js +74 -0
- package/dist/browser/is/isPrimitiveWithout.js.map +1 -0
- package/dist/browser/is/isTagOf.cjs +21 -0
- package/dist/browser/is/isTagOf.d.ts +12 -0
- package/dist/browser/is/isTagOf.d.ts.map +1 -0
- package/dist/browser/is/isTagOf.js +21 -0
- package/dist/browser/is/isTagOf.js.map +1 -0
- package/dist/browser/is/isTypeOf.cjs +29 -0
- package/dist/browser/is/isTypeOf.d.ts +16 -0
- package/dist/browser/is/isTypeOf.d.ts.map +1 -0
- package/dist/browser/is/isTypeOf.js +28 -0
- package/dist/browser/is/isTypeOf.js.map +1 -0
- package/dist/browser/object/index.cjs +3 -0
- package/dist/browser/object/index.d.ts +2 -0
- package/dist/browser/object/index.js +3 -0
- package/dist/browser/object/objectClone.cjs +22 -0
- package/dist/browser/object/objectClone.d.ts +8 -0
- package/dist/browser/object/objectClone.d.ts.map +1 -0
- package/dist/browser/object/objectClone.js +22 -0
- package/dist/browser/object/objectClone.js.map +1 -0
- package/dist/browser/promise/awaitTo.cjs +8 -0
- package/dist/browser/promise/awaitTo.d.ts +7 -0
- package/dist/browser/promise/awaitTo.d.ts.map +1 -0
- package/dist/browser/promise/awaitTo.js +8 -0
- package/dist/browser/promise/awaitTo.js.map +1 -0
- package/dist/browser/promise/index.cjs +6 -0
- package/dist/browser/promise/index.d.ts +3 -0
- package/dist/browser/promise/index.js +4 -0
- package/dist/browser/promise/pLimit.cjs +11 -0
- package/dist/browser/promise/pLimit.d.ts +10 -0
- package/dist/browser/promise/pLimit.d.ts.map +1 -0
- package/dist/browser/promise/pLimit.js +9 -0
- package/dist/browser/promise/pLimit.js.map +1 -0
- package/dist/browser/regexp/OTHERS.cjs +16 -0
- package/dist/browser/regexp/OTHERS.d.ts +14 -0
- package/dist/browser/regexp/OTHERS.d.ts.map +1 -0
- package/dist/browser/regexp/OTHERS.js +15 -0
- package/dist/browser/regexp/OTHERS.js.map +1 -0
- package/dist/browser/regexp/RULES.cjs +698 -0
- package/dist/browser/regexp/RULES.d.ts +434 -0
- package/dist/browser/regexp/RULES.d.ts.map +1 -0
- package/dist/browser/regexp/RULES.js +615 -0
- package/dist/browser/regexp/RULES.js.map +1 -0
- package/dist/browser/regexp/index.cjs +89 -0
- package/dist/browser/regexp/index.d.ts +13 -0
- package/dist/browser/regexp/index.d.ts.map +1 -0
- package/dist/browser/regexp/index.js +4 -0
- package/dist/browser/request/browser.cjs +8 -0
- package/dist/browser/request/browser.d.ts +4 -0
- package/dist/browser/request/browser.js +4 -0
- package/dist/browser/request/instance.cjs +135 -0
- package/dist/browser/request/instance.d.ts +45 -0
- package/dist/browser/request/instance.d.ts.map +1 -0
- package/dist/browser/request/instance.js +134 -0
- package/dist/browser/request/instance.js.map +1 -0
- package/dist/browser/request/interceptors.browser.cjs +66 -0
- package/dist/browser/request/interceptors.browser.d.ts +25 -0
- package/dist/browser/request/interceptors.browser.d.ts.map +1 -0
- package/dist/browser/request/interceptors.browser.js +63 -0
- package/dist/browser/request/interceptors.browser.js.map +1 -0
- package/dist/browser/request/interface.d.ts +54 -0
- package/dist/browser/request/interface.d.ts.map +1 -0
- package/dist/browser/string/className.cjs +13 -0
- package/dist/browser/string/className.d.ts +11 -0
- package/dist/browser/string/className.d.ts.map +1 -0
- package/dist/browser/string/className.js +10 -0
- package/dist/browser/string/className.js.map +1 -0
- package/dist/browser/string/index.cjs +7 -0
- package/dist/browser/string/index.d.ts +3 -0
- package/dist/browser/string/index.js +4 -0
- package/dist/browser/string/proto.cjs +37 -0
- package/dist/browser/string/proto.d.ts +19 -0
- package/dist/browser/string/proto.d.ts.map +1 -0
- package/dist/browser/string/proto.js +36 -0
- package/dist/browser/string/proto.js.map +1 -0
- package/dist/browser/tree/index.cjs +7 -0
- package/dist/browser/tree/index.d.ts +5 -0
- package/dist/browser/tree/index.js +5 -0
- package/dist/browser/tree/interface.d.ts +40 -0
- package/dist/browser/tree/interface.d.ts.map +1 -0
- package/dist/browser/tree/treeFilter.cjs +58 -0
- package/dist/browser/tree/treeFilter.d.ts +14 -0
- package/dist/browser/tree/treeFilter.d.ts.map +1 -0
- package/dist/browser/tree/treeFilter.js +59 -0
- package/dist/browser/tree/treeFilter.js.map +1 -0
- package/dist/browser/tree/treeFlatten.cjs +23 -0
- package/dist/browser/tree/treeFlatten.d.ts +15 -0
- package/dist/browser/tree/treeFlatten.d.ts.map +1 -0
- package/dist/browser/tree/treeFlatten.js +24 -0
- package/dist/browser/tree/treeFlatten.js.map +1 -0
- package/dist/browser/tree/treeGenerate.cjs +37 -0
- package/dist/browser/tree/treeGenerate.d.ts +16 -0
- package/dist/browser/tree/treeGenerate.d.ts.map +1 -0
- package/dist/browser/tree/treeGenerate.js +37 -0
- package/dist/browser/tree/treeGenerate.js.map +1 -0
- package/dist/noExternal/browser.esm.html +94 -0
- package/dist/noExternal/browser.esm.js +10734 -0
- package/dist/noExternal/browser.esm.min.js +16 -0
- package/dist/noExternal/browser.esm.min.js.map +1 -0
- package/dist/noExternal/browser.umd.html +28 -0
- package/dist/noExternal/browser.umd.js +10905 -0
- package/dist/noExternal/browser.umd.min.js +16 -0
- package/dist/noExternal/browser.umd.min.js.map +1 -0
- package/dist/noExternal/node.cjs.js +18282 -0
- package/dist/noExternal/node.cjs.min.js +0 -0
- package/dist/noExternal/node.cjs.min.js.map +1 -0
- package/dist/noExternal/node.esm.js +21727 -0
- package/dist/noExternal/node.esm.min.js +36 -0
- package/dist/noExternal/node.esm.min.js.map +1 -0
- package/dist/node/_virtual/rolldown_runtime.cjs +29 -0
- package/dist/node/array/arrayCast.cjs +29 -0
- package/dist/node/array/arrayCast.d.ts +27 -0
- package/dist/node/array/arrayCast.d.ts.map +1 -0
- package/dist/node/array/arrayCast.js +30 -0
- package/dist/node/array/arrayCast.js.map +1 -0
- package/dist/node/array/index.cjs +3 -0
- package/dist/node/array/index.d.ts +2 -0
- package/dist/node/array/index.js +3 -0
- package/dist/node/constants/index.cjs +19 -0
- package/dist/node/constants/index.d.ts +16 -0
- package/dist/node/constants/index.d.ts.map +1 -0
- package/dist/node/constants/index.js +17 -0
- package/dist/node/constants/index.js.map +1 -0
- package/dist/node/date/index.cjs +8 -0
- package/dist/node/date/index.d.ts +3 -0
- package/dist/node/date/index.js +4 -0
- package/dist/node/date/prettyMs.cjs +9 -0
- package/dist/node/date/prettyMs.d.ts +8 -0
- package/dist/node/date/prettyMs.d.ts.map +1 -0
- package/dist/node/date/prettyMs.js +8 -0
- package/dist/node/date/prettyMs.js.map +1 -0
- package/dist/node/date/timeAgo.cjs +14 -0
- package/dist/node/date/timeAgo.d.ts +15 -0
- package/dist/node/date/timeAgo.d.ts.map +1 -0
- package/dist/node/date/timeAgo.js +11 -0
- package/dist/node/date/timeAgo.js.map +1 -0
- package/dist/node/file/fileBuffer.node.cjs +115 -0
- package/dist/node/file/fileBuffer.node.d.ts +88 -0
- package/dist/node/file/fileBuffer.node.d.ts.map +1 -0
- package/dist/node/file/fileBuffer.node.js +115 -0
- package/dist/node/file/fileBuffer.node.js.map +1 -0
- package/dist/node/file/fileBytes.cjs +9 -0
- package/dist/node/file/fileBytes.d.ts +8 -0
- package/dist/node/file/fileBytes.d.ts.map +1 -0
- package/dist/node/file/fileBytes.js +8 -0
- package/dist/node/file/fileBytes.js.map +1 -0
- package/dist/node/file/fileType.node.cjs +22 -0
- package/dist/node/file/fileType.node.d.ts +19 -0
- package/dist/node/file/fileType.node.d.ts.map +1 -0
- package/dist/node/file/fileType.node.js +15 -0
- package/dist/node/file/fileType.node.js.map +1 -0
- package/dist/node/file/fileXml.node.cjs +10 -0
- package/dist/node/file/fileXml.node.d.ts +8 -0
- package/dist/node/file/fileXml.node.d.ts.map +1 -0
- package/dist/node/file/fileXml.node.js +9 -0
- package/dist/node/file/fileXml.node.js.map +1 -0
- package/dist/node/file/interface.d.ts +26 -0
- package/dist/node/file/interface.d.ts.map +1 -0
- package/dist/node/file/node.cjs +25 -0
- package/dist/node/file/node.d.ts +7 -0
- package/dist/node/file/node.js +7 -0
- package/dist/node/function/index.cjs +10 -0
- package/dist/node/function/index.d.ts +8 -0
- package/dist/node/function/index.d.ts.map +1 -0
- package/dist/node/function/index.js +9 -0
- package/dist/node/function/index.js.map +1 -0
- package/dist/node/is/index.cjs +42 -0
- package/dist/node/is/index.d.ts +7 -0
- package/dist/node/is/index.js +8 -0
- package/dist/node/is/isJSON.cjs +44 -0
- package/dist/node/is/isJSON.d.ts +30 -0
- package/dist/node/is/isJSON.d.ts.map +1 -0
- package/dist/node/is/isJSON.js +41 -0
- package/dist/node/is/isJSON.js.map +1 -0
- package/dist/node/is/isPlatform.cjs +20 -0
- package/dist/node/is/isPlatform.d.ts +16 -0
- package/dist/node/is/isPlatform.d.ts.map +1 -0
- package/dist/node/is/isPlatform.js +19 -0
- package/dist/node/is/isPlatform.js.map +1 -0
- package/dist/node/is/isPrimitive.cjs +91 -0
- package/dist/node/is/isPrimitive.d.ts +79 -0
- package/dist/node/is/isPrimitive.d.ts.map +1 -0
- package/dist/node/is/isPrimitive.js +79 -0
- package/dist/node/is/isPrimitive.js.map +1 -0
- package/dist/node/is/isPrimitiveWithout.cjs +86 -0
- package/dist/node/is/isPrimitiveWithout.d.ts +72 -0
- package/dist/node/is/isPrimitiveWithout.d.ts.map +1 -0
- package/dist/node/is/isPrimitiveWithout.js +74 -0
- package/dist/node/is/isPrimitiveWithout.js.map +1 -0
- package/dist/node/is/isTagOf.cjs +21 -0
- package/dist/node/is/isTagOf.d.ts +12 -0
- package/dist/node/is/isTagOf.d.ts.map +1 -0
- package/dist/node/is/isTagOf.js +21 -0
- package/dist/node/is/isTagOf.js.map +1 -0
- package/dist/node/is/isTypeOf.cjs +29 -0
- package/dist/node/is/isTypeOf.d.ts +16 -0
- package/dist/node/is/isTypeOf.d.ts.map +1 -0
- package/dist/node/is/isTypeOf.js +28 -0
- package/dist/node/is/isTypeOf.js.map +1 -0
- package/dist/node/node.cjs +196 -0
- package/dist/node/node.d.ts +37 -0
- package/dist/node/node.js +30 -0
- package/dist/node/object/index.cjs +3 -0
- package/dist/node/object/index.d.ts +2 -0
- package/dist/node/object/index.js +3 -0
- package/dist/node/object/objectClone.cjs +22 -0
- package/dist/node/object/objectClone.d.ts +8 -0
- package/dist/node/object/objectClone.d.ts.map +1 -0
- package/dist/node/object/objectClone.js +22 -0
- package/dist/node/object/objectClone.js.map +1 -0
- package/dist/node/promise/awaitTo.cjs +8 -0
- package/dist/node/promise/awaitTo.d.ts +7 -0
- package/dist/node/promise/awaitTo.d.ts.map +1 -0
- package/dist/node/promise/awaitTo.js +8 -0
- package/dist/node/promise/awaitTo.js.map +1 -0
- package/dist/node/promise/index.cjs +6 -0
- package/dist/node/promise/index.d.ts +3 -0
- package/dist/node/promise/index.js +4 -0
- package/dist/node/promise/pLimit.cjs +11 -0
- package/dist/node/promise/pLimit.d.ts +10 -0
- package/dist/node/promise/pLimit.d.ts.map +1 -0
- package/dist/node/promise/pLimit.js +9 -0
- package/dist/node/promise/pLimit.js.map +1 -0
- package/dist/node/regexp/OTHERS.cjs +16 -0
- package/dist/node/regexp/OTHERS.d.ts +14 -0
- package/dist/node/regexp/OTHERS.d.ts.map +1 -0
- package/dist/node/regexp/OTHERS.js +15 -0
- package/dist/node/regexp/OTHERS.js.map +1 -0
- package/dist/node/regexp/RULES.cjs +698 -0
- package/dist/node/regexp/RULES.d.ts +434 -0
- package/dist/node/regexp/RULES.d.ts.map +1 -0
- package/dist/node/regexp/RULES.js +615 -0
- package/dist/node/regexp/RULES.js.map +1 -0
- package/dist/node/regexp/index.cjs +89 -0
- package/dist/node/regexp/index.d.ts +13 -0
- package/dist/node/regexp/index.d.ts.map +1 -0
- package/dist/node/regexp/index.js +4 -0
- package/dist/node/request/instance.cjs +135 -0
- package/dist/node/request/instance.d.ts +45 -0
- package/dist/node/request/instance.d.ts.map +1 -0
- package/dist/node/request/instance.js +134 -0
- package/dist/node/request/instance.js.map +1 -0
- package/dist/node/request/interceptors.node.cjs +66 -0
- package/dist/node/request/interceptors.node.d.ts +25 -0
- package/dist/node/request/interceptors.node.d.ts.map +1 -0
- package/dist/node/request/interceptors.node.js +63 -0
- package/dist/node/request/interceptors.node.js.map +1 -0
- package/dist/node/request/interface.d.ts +54 -0
- package/dist/node/request/interface.d.ts.map +1 -0
- package/dist/node/request/node.cjs +8 -0
- package/dist/node/request/node.d.ts +4 -0
- package/dist/node/request/node.js +4 -0
- package/dist/node/string/className.cjs +13 -0
- package/dist/node/string/className.d.ts +11 -0
- package/dist/node/string/className.d.ts.map +1 -0
- package/dist/node/string/className.js +10 -0
- package/dist/node/string/className.js.map +1 -0
- package/dist/node/string/index.cjs +7 -0
- package/dist/node/string/index.d.ts +3 -0
- package/dist/node/string/index.js +4 -0
- package/dist/node/string/proto.cjs +37 -0
- package/dist/node/string/proto.d.ts +19 -0
- package/dist/node/string/proto.d.ts.map +1 -0
- package/dist/node/string/proto.js +36 -0
- package/dist/node/string/proto.js.map +1 -0
- package/dist/node/tree/index.cjs +7 -0
- package/dist/node/tree/index.d.ts +5 -0
- package/dist/node/tree/index.js +5 -0
- package/dist/node/tree/interface.d.ts +40 -0
- package/dist/node/tree/interface.d.ts.map +1 -0
- package/dist/node/tree/treeFilter.cjs +58 -0
- package/dist/node/tree/treeFilter.d.ts +14 -0
- package/dist/node/tree/treeFilter.d.ts.map +1 -0
- package/dist/node/tree/treeFilter.js +59 -0
- package/dist/node/tree/treeFilter.js.map +1 -0
- package/dist/node/tree/treeFlatten.cjs +23 -0
- package/dist/node/tree/treeFlatten.d.ts +15 -0
- package/dist/node/tree/treeFlatten.d.ts.map +1 -0
- package/dist/node/tree/treeFlatten.js +24 -0
- package/dist/node/tree/treeFlatten.js.map +1 -0
- package/dist/node/tree/treeGenerate.cjs +37 -0
- package/dist/node/tree/treeGenerate.d.ts +16 -0
- package/dist/node/tree/treeGenerate.d.ts.map +1 -0
- package/dist/node/tree/treeGenerate.js +37 -0
- package/dist/node/tree/treeGenerate.js.map +1 -0
- package/dist/version.d.ts +5 -0
- package/dist/version.d.ts.map +1 -0
- package/dist/version.js +10 -0
- package/dist/version.js.map +1 -0
- package/package.json +95 -53
- package/LICENSE +0 -21
- package/dist/index.cjs +0 -403
- package/dist/index.d.ts +0 -496
- package/dist/index.mjs +0 -307
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"node.cjs.min.js","names":["isPrimitive","isTypedArray","isPrimitive","isTypedArray","isPlainObject","isArray","isArrayBuffer","isBlob","isBoolean","isBrowser","isDate","isError","isFile","isBlob","isFunction","isJSONValue","isJSONArray","isJSONObject","isPlainObject","isMap","isNil","isNode","isNull","isPromise","isRegExp","isSet","isString","isSymbol","isUndefined","isWeakMap","isWeakSet","originNull","originUndefined","originBoolean","originString","originSymbol","originNil","originPrimitive","originJSONArray","originJSONObject","e: any","originBrowser","originNode","isObject","isTypedArray","isEmpty","isTypedArray","originArray","originObject","originFunction","originSet","originMap","originWeakSet","originWeakMap","originDate","originRegExp","originPromise","originError","originPlainObject","originEmpty","toString","toStringCache: Record<string, string>","isBigInt","sign","milliseconds","prettyMs","default_1","d","date_1","register_1","register_1","cancel","render","format","render","cancel","register","originTypedArray","originArrayBuffer","Buffer","originBlob","originFile","#buf","log","isZero","s","stream","position","position","stream","position","fromStream","coreFromStream","stream","parse","destroy","env","debug","self","format","extend","split","formatArgs","save","load","useColors","m","r","position","tty","min","sign","stream","util","supportsColor","useColors","debug","fileTypeFromBuffer","FileTypeParser","fileTypeFromBlob","fileTypeFromTokenizer","strtok3.fromBuffer","strtok3.fromBlob","strtok3.fromWebStream","stream","strtok3.EndOfStreamError","Token.UINT8","Token.StringType","Token.INT32_BE","Token.UINT64_LE","Token.UINT16_BE","Token.UINT16_LE","Token.UINT32_BE","Token.UINT32_LE","FileTypeParser","DefaultFileTypeParser","stream","WebReadableStream","strtok3.fromWebStream","strtok3.fromStream","strtok3.fromFile","path","Readable","PassThrough","pipeline","strtok3.EndOfStreamError","fileTypeFromStream","fileTypeStream","_fileTypeFromBlob","_fileTypeFromBuffer","_fileTypeFromStream","_fileTypeFromTokenizer","_FileTypeParser","_fileTypeStream","_supportedExtensions","_supportedMimeTypes","ParseError","XMLReader","a","end","position","m","appendElement","value","s","DOMImplementation","Node","XMLSerializer","DOMParser","sax","_DOMParser","_XMLSerializer","throttle","cancel","options","self","clear","throttle","factory","to","exports","to","#head","#tail","#size","run","wrap","isUndefined","isBuffer","isFunction","isString","isNumber","isObject","isBoolean","isPlainObject","prototype","toStringTag","isDate","isArray","descriptors","position","TypedArray","hasOwnProperty","isRegExp","define","noop","AxiosError","utils","prototype","Stream","util","DelayedStream","r","util","Stream","CombinedStream","stream","self","mime","charset","path","extension","to","defer","async","abort","state","async","abort","iterate","state","iterator","initState","terminator","iterate","initState","terminator","state","iterator","serialOrdered","state","iterator","iterator","isNaN","sign","$gOPD","$defineProperty","hasSymbols","$Object","max","concatty","slicy","bind","Empty","bind","$apply","$call","bind","$TypeError","$call","$Object","getProto","bind","undefined","$TypeError","$defineProperty","hasSymbols","doEval","bind","hasOwn","stringToPath","getBaseIntrinsic","desc","hasOwn","setToStringTag","util","http","https","parseUrl","crypto","FormData","contentType","defaults","FormData","utils","path","toFormData","PlatformFormData","AxiosError","encode","toFormData","toString","url","utils","AxiosURLSearchParams","h","utils","platform","toFormData","platform","utils","utils","path","utils","transitionalDefaults","contentType","formDataToJSON","isFileList","toFormData","AxiosError","platform","utils","utils","AxiosHeaders","self","parseHeaders","format","prototype","defaults","AxiosHeaders","isCancel","CanceledError","AxiosError","utils","AxiosError","url","parseUrl","s","url","debug","url","URL","http","https","isFunction","events","self","isString","exports","spread","VERSION","url","platform","AxiosError","mime","utils","platform","utils","readBlob","Readable","utils","head","min","speedometer","throttle","utils","url","utils","followRedirects","platform","stream","lookup","callbackify","EventEmitter","abort","CanceledError","data","AxiosError","AxiosHeaders","VERSION","formDataToStream","readBlob","AxiosTransformStream","path","ZlibHeaderTransformStream","transitionalDefaults","platform","url","origin","platform","utils","path","AxiosHeaders","mergeConfig","utils","merge","mergeConfig","AxiosHeaders","utils","platform","isURLSameOrigin","cookies","resolveConfig","AxiosHeaders","AxiosError","transitionalDefaults","utils","cancel","CanceledError","platform","AxiosError","CanceledError","signal","utils","stream","iterator","done","utils","env","isFunction","Request","Response","ReadableStream","TextEncoder","platform","AxiosError","resolveConfig","composeSignals","url","AxiosHeaders","fetch","httpAdapter","xhrAdapter","fetchAdapter.getFetch","utils","adapter","getAdapter","AxiosError","state","CanceledError","AxiosHeaders","adapters","defaults","isCancel","validators","VERSION","desc","AxiosError","validator","Axios","InterceptorManager","mergeConfig","utils","AxiosHeaders","CancelToken","cancel","CanceledError","abort","spread","wrap","isAxiosError","utils","HttpStatusCode","Axios","mergeConfig","defaults","CanceledError","CancelToken","isCancel","VERSION","toFormData","AxiosError","all","spread","isAxiosError","AxiosHeaders","formDataToJSON","utils","adapters","HttpStatusCode","axios","hasOwn","clsx","#instance","#getInternalOptions","axios","#registerInterceptors","url","#beforeRequest","presetInterceptorWithResponseLog: AxiosInterceptorParameters","presetInterceptorWithResponseJSON: AxiosInterceptorParameters","tempData: string | null","presetInterceptorWithRequestLog: AxiosInterceptorParameters","presetInterceptorWithRequestAuth: AxiosInterceptorParameters","filteredChildren: any[]","result: any[]","aFlatten: any[]","aTree: any[]","oItem: Record<PropertyKey, any>"],"sources":["../../../../node_modules/.pnpm/es-toolkit@1.42.0/node_modules/es-toolkit/dist/array/at.mjs","../../../../node_modules/.pnpm/es-toolkit@1.42.0/node_modules/es-toolkit/dist/array/head.mjs","../../../../node_modules/.pnpm/es-toolkit@1.42.0/node_modules/es-toolkit/dist/predicate/isPrimitive.mjs","../../../../node_modules/.pnpm/es-toolkit@1.42.0/node_modules/es-toolkit/dist/predicate/isTypedArray.mjs","../../../../node_modules/.pnpm/es-toolkit@1.42.0/node_modules/es-toolkit/dist/compat/_internal/getSymbols.mjs","../../../../node_modules/.pnpm/es-toolkit@1.42.0/node_modules/es-toolkit/dist/compat/_internal/getTag.mjs","../../../../node_modules/.pnpm/es-toolkit@1.42.0/node_modules/es-toolkit/dist/compat/_internal/tags.mjs","../../../../node_modules/.pnpm/es-toolkit@1.42.0/node_modules/es-toolkit/dist/object/cloneDeepWith.mjs","../../../../node_modules/.pnpm/es-toolkit@1.42.0/node_modules/es-toolkit/dist/object/cloneDeep.mjs","../../../../node_modules/.pnpm/es-toolkit@1.42.0/node_modules/es-toolkit/dist/predicate/isPlainObject.mjs","../../../../node_modules/.pnpm/es-toolkit@1.42.0/node_modules/es-toolkit/dist/compat/predicate/isArray.mjs","../../../../node_modules/.pnpm/es-toolkit@1.42.0/node_modules/es-toolkit/dist/predicate/isArrayBuffer.mjs","../../../../node_modules/.pnpm/es-toolkit@1.42.0/node_modules/es-toolkit/dist/predicate/isBlob.mjs","../../../../node_modules/.pnpm/es-toolkit@1.42.0/node_modules/es-toolkit/dist/predicate/isBoolean.mjs","../../../../node_modules/.pnpm/es-toolkit@1.42.0/node_modules/es-toolkit/dist/predicate/isBrowser.mjs","../../../../node_modules/.pnpm/es-toolkit@1.42.0/node_modules/es-toolkit/dist/predicate/isDate.mjs","../../../../node_modules/.pnpm/es-toolkit@1.42.0/node_modules/es-toolkit/dist/predicate/isError.mjs","../../../../node_modules/.pnpm/es-toolkit@1.42.0/node_modules/es-toolkit/dist/predicate/isFile.mjs","../../../../node_modules/.pnpm/es-toolkit@1.42.0/node_modules/es-toolkit/dist/predicate/isFunction.mjs","../../../../node_modules/.pnpm/es-toolkit@1.42.0/node_modules/es-toolkit/dist/predicate/isJSONValue.mjs","../../../../node_modules/.pnpm/es-toolkit@1.42.0/node_modules/es-toolkit/dist/predicate/isLength.mjs","../../../../node_modules/.pnpm/es-toolkit@1.42.0/node_modules/es-toolkit/dist/predicate/isMap.mjs","../../../../node_modules/.pnpm/es-toolkit@1.42.0/node_modules/es-toolkit/dist/predicate/isNil.mjs","../../../../node_modules/.pnpm/es-toolkit@1.42.0/node_modules/es-toolkit/dist/predicate/isNode.mjs","../../../../node_modules/.pnpm/es-toolkit@1.42.0/node_modules/es-toolkit/dist/predicate/isNull.mjs","../../../../node_modules/.pnpm/es-toolkit@1.42.0/node_modules/es-toolkit/dist/predicate/isPromise.mjs","../../../../node_modules/.pnpm/es-toolkit@1.42.0/node_modules/es-toolkit/dist/predicate/isRegExp.mjs","../../../../node_modules/.pnpm/es-toolkit@1.42.0/node_modules/es-toolkit/dist/predicate/isSet.mjs","../../../../node_modules/.pnpm/es-toolkit@1.42.0/node_modules/es-toolkit/dist/predicate/isString.mjs","../../../../node_modules/.pnpm/es-toolkit@1.42.0/node_modules/es-toolkit/dist/predicate/isSymbol.mjs","../../../../node_modules/.pnpm/es-toolkit@1.42.0/node_modules/es-toolkit/dist/predicate/isUndefined.mjs","../../../../node_modules/.pnpm/es-toolkit@1.42.0/node_modules/es-toolkit/dist/predicate/isWeakMap.mjs","../../../../node_modules/.pnpm/es-toolkit@1.42.0/node_modules/es-toolkit/dist/predicate/isWeakSet.mjs","../../src/is/isTypeOf.ts","../../src/is/isPrimitive.ts","../../src/is/isJSON.ts","../../src/is/isPlatform.ts","../../../../node_modules/.pnpm/es-toolkit@1.42.0/node_modules/es-toolkit/dist/compat/predicate/isArrayLike.mjs","../../../../node_modules/.pnpm/es-toolkit@1.42.0/node_modules/es-toolkit/dist/compat/predicate/isObject.mjs","../../../../node_modules/.pnpm/es-toolkit@1.42.0/node_modules/es-toolkit/dist/compat/predicate/isArguments.mjs","../../../../node_modules/.pnpm/es-toolkit@1.42.0/node_modules/es-toolkit/dist/compat/_internal/isPrototype.mjs","../../../../node_modules/.pnpm/es-toolkit@1.42.0/node_modules/es-toolkit/dist/compat/predicate/isTypedArray.mjs","../../../../node_modules/.pnpm/es-toolkit@1.42.0/node_modules/es-toolkit/dist/compat/predicate/isEmpty.mjs","../../src/is/isPrimitiveWithout.ts","../../src/is/isTagOf.ts","../../src/array/arrayCast.ts","../../src/constants/index.ts","../../../../node_modules/.pnpm/parse-ms@4.0.0/node_modules/parse-ms/index.js","../../../../node_modules/.pnpm/pretty-ms@9.3.0/node_modules/pretty-ms/index.js","../../src/date/prettyMs.ts","../../../../node_modules/.pnpm/timeago.js@4.0.2/node_modules/timeago.js/lib/lang/en_US.js","../../../../node_modules/.pnpm/timeago.js@4.0.2/node_modules/timeago.js/lib/lang/zh_CN.js","../../../../node_modules/.pnpm/timeago.js@4.0.2/node_modules/timeago.js/lib/register.js","../../../../node_modules/.pnpm/timeago.js@4.0.2/node_modules/timeago.js/lib/utils/date.js","../../../../node_modules/.pnpm/timeago.js@4.0.2/node_modules/timeago.js/lib/format.js","../../../../node_modules/.pnpm/timeago.js@4.0.2/node_modules/timeago.js/lib/utils/dom.js","../../../../node_modules/.pnpm/timeago.js@4.0.2/node_modules/timeago.js/lib/realtime.js","../../../../node_modules/.pnpm/timeago.js@4.0.2/node_modules/timeago.js/lib/index.js","../../src/date/timeAgo.ts","../../src/file/fileBuffer.node.ts","../../../../node_modules/.pnpm/pretty-bytes@7.1.0/node_modules/pretty-bytes/index.js","../../src/file/fileBytes.ts","../../../../node_modules/.pnpm/strtok3@10.3.4/node_modules/strtok3/lib/stream/Errors.js","../../../../node_modules/.pnpm/strtok3@10.3.4/node_modules/strtok3/lib/stream/Deferred.js","../../../../node_modules/.pnpm/strtok3@10.3.4/node_modules/strtok3/lib/stream/AbstractStreamReader.js","../../../../node_modules/.pnpm/strtok3@10.3.4/node_modules/strtok3/lib/stream/StreamReader.js","../../../../node_modules/.pnpm/strtok3@10.3.4/node_modules/strtok3/lib/stream/WebStreamReader.js","../../../../node_modules/.pnpm/strtok3@10.3.4/node_modules/strtok3/lib/stream/WebStreamByobReader.js","../../../../node_modules/.pnpm/strtok3@10.3.4/node_modules/strtok3/lib/stream/WebStreamDefaultReader.js","../../../../node_modules/.pnpm/strtok3@10.3.4/node_modules/strtok3/lib/stream/WebStreamReaderFactory.js","../../../../node_modules/.pnpm/strtok3@10.3.4/node_modules/strtok3/lib/AbstractTokenizer.js","../../../../node_modules/.pnpm/strtok3@10.3.4/node_modules/strtok3/lib/ReadStreamTokenizer.js","../../../../node_modules/.pnpm/strtok3@10.3.4/node_modules/strtok3/lib/BufferTokenizer.js","../../../../node_modules/.pnpm/strtok3@10.3.4/node_modules/strtok3/lib/BlobTokenizer.js","../../../../node_modules/.pnpm/strtok3@10.3.4/node_modules/strtok3/lib/core.js","../../../../node_modules/.pnpm/strtok3@10.3.4/node_modules/strtok3/lib/FileTokenizer.js","../../../../node_modules/.pnpm/strtok3@10.3.4/node_modules/strtok3/lib/index.js","../../../../node_modules/.pnpm/@borewit+text-codec@0.1.1/node_modules/@borewit/text-codec/lib/index.js","../../../../node_modules/.pnpm/token-types@6.1.1/node_modules/token-types/lib/index.js","../../../../node_modules/.pnpm/ms@2.1.3/node_modules/ms/index.js","../../../../node_modules/.pnpm/debug@4.4.3/node_modules/debug/src/common.js","../../../../node_modules/.pnpm/debug@4.4.3/node_modules/debug/src/browser.js","../../../../node_modules/.pnpm/has-flag@4.0.0/node_modules/has-flag/index.js","../../../../node_modules/.pnpm/supports-color@7.2.0/node_modules/supports-color/index.js","../../../../node_modules/.pnpm/debug@4.4.3/node_modules/debug/src/node.js","../../../../node_modules/.pnpm/debug@4.4.3/node_modules/debug/src/index.js","../../../../node_modules/.pnpm/@tokenizer+inflate@0.4.1/node_modules/@tokenizer/inflate/lib/ZipToken.js","../../../../node_modules/.pnpm/@tokenizer+inflate@0.4.1/node_modules/@tokenizer/inflate/lib/ZipHandler.js","../../../../node_modules/.pnpm/@tokenizer+inflate@0.4.1/node_modules/@tokenizer/inflate/lib/GzipHandler.js","../../../../node_modules/.pnpm/uint8array-extras@1.5.0/node_modules/uint8array-extras/index.js","../../../../node_modules/.pnpm/file-type@21.1.1/node_modules/file-type/util.js","../../../../node_modules/.pnpm/file-type@21.1.1/node_modules/file-type/supported.js","../../../../node_modules/.pnpm/file-type@21.1.1/node_modules/file-type/core.js","../../../../node_modules/.pnpm/file-type@21.1.1/node_modules/file-type/index.js","../../src/file/fileType.node.ts","../../../../node_modules/.pnpm/xmldom@0.6.0/node_modules/xmldom/lib/entities.js","../../../../node_modules/.pnpm/xmldom@0.6.0/node_modules/xmldom/lib/sax.js","../../../../node_modules/.pnpm/xmldom@0.6.0/node_modules/xmldom/lib/dom.js","../../../../node_modules/.pnpm/xmldom@0.6.0/node_modules/xmldom/lib/dom-parser.js","../../src/file/fileXml.node.ts","../../../../node_modules/.pnpm/throttle-debounce@5.0.2/node_modules/throttle-debounce/esm/index.js","../../src/function/index.ts","../../src/object/objectClone.ts","../../../../node_modules/.pnpm/await-to-js@3.0.0/node_modules/await-to-js/dist/await-to-js.umd.js","../../src/promise/awaitTo.ts","../../../../node_modules/.pnpm/yocto-queue@1.2.2/node_modules/yocto-queue/index.js","../../../../node_modules/.pnpm/p-limit@7.2.0/node_modules/p-limit/index.js","../../src/promise/pLimit.ts","../../src/regexp/OTHERS.ts","../../src/regexp/RULES.ts","../../../../node_modules/.pnpm/axios@1.13.2/node_modules/axios/lib/helpers/bind.js","../../../../node_modules/.pnpm/axios@1.13.2/node_modules/axios/lib/utils.js","../../../../node_modules/.pnpm/axios@1.13.2/node_modules/axios/lib/core/AxiosError.js","../../../../node_modules/.pnpm/delayed-stream@1.0.0/node_modules/delayed-stream/lib/delayed_stream.js","../../../../node_modules/.pnpm/combined-stream@1.0.8/node_modules/combined-stream/lib/combined_stream.js","../../../../node_modules/.pnpm/mime-db@1.52.0/node_modules/mime-db/db.json","../../../../node_modules/.pnpm/mime-db@1.52.0/node_modules/mime-db/index.js","../../../../node_modules/.pnpm/mime-types@2.1.35/node_modules/mime-types/index.js","../../../../node_modules/.pnpm/asynckit@0.4.0/node_modules/asynckit/lib/defer.js","../../../../node_modules/.pnpm/asynckit@0.4.0/node_modules/asynckit/lib/async.js","../../../../node_modules/.pnpm/asynckit@0.4.0/node_modules/asynckit/lib/abort.js","../../../../node_modules/.pnpm/asynckit@0.4.0/node_modules/asynckit/lib/iterate.js","../../../../node_modules/.pnpm/asynckit@0.4.0/node_modules/asynckit/lib/state.js","../../../../node_modules/.pnpm/asynckit@0.4.0/node_modules/asynckit/lib/terminator.js","../../../../node_modules/.pnpm/asynckit@0.4.0/node_modules/asynckit/parallel.js","../../../../node_modules/.pnpm/asynckit@0.4.0/node_modules/asynckit/serialOrdered.js","../../../../node_modules/.pnpm/asynckit@0.4.0/node_modules/asynckit/serial.js","../../../../node_modules/.pnpm/asynckit@0.4.0/node_modules/asynckit/index.js","../../../../node_modules/.pnpm/es-object-atoms@1.1.1/node_modules/es-object-atoms/index.js","../../../../node_modules/.pnpm/es-errors@1.3.0/node_modules/es-errors/index.js","../../../../node_modules/.pnpm/es-errors@1.3.0/node_modules/es-errors/eval.js","../../../../node_modules/.pnpm/es-errors@1.3.0/node_modules/es-errors/range.js","../../../../node_modules/.pnpm/es-errors@1.3.0/node_modules/es-errors/ref.js","../../../../node_modules/.pnpm/es-errors@1.3.0/node_modules/es-errors/syntax.js","../../../../node_modules/.pnpm/es-errors@1.3.0/node_modules/es-errors/type.js","../../../../node_modules/.pnpm/es-errors@1.3.0/node_modules/es-errors/uri.js","../../../../node_modules/.pnpm/math-intrinsics@1.1.0/node_modules/math-intrinsics/abs.js","../../../../node_modules/.pnpm/math-intrinsics@1.1.0/node_modules/math-intrinsics/floor.js","../../../../node_modules/.pnpm/math-intrinsics@1.1.0/node_modules/math-intrinsics/max.js","../../../../node_modules/.pnpm/math-intrinsics@1.1.0/node_modules/math-intrinsics/min.js","../../../../node_modules/.pnpm/math-intrinsics@1.1.0/node_modules/math-intrinsics/pow.js","../../../../node_modules/.pnpm/math-intrinsics@1.1.0/node_modules/math-intrinsics/round.js","../../../../node_modules/.pnpm/math-intrinsics@1.1.0/node_modules/math-intrinsics/isNaN.js","../../../../node_modules/.pnpm/math-intrinsics@1.1.0/node_modules/math-intrinsics/sign.js","../../../../node_modules/.pnpm/gopd@1.2.0/node_modules/gopd/gOPD.js","../../../../node_modules/.pnpm/gopd@1.2.0/node_modules/gopd/index.js","../../../../node_modules/.pnpm/es-define-property@1.0.1/node_modules/es-define-property/index.js","../../../../node_modules/.pnpm/has-symbols@1.1.0/node_modules/has-symbols/shams.js","../../../../node_modules/.pnpm/has-symbols@1.1.0/node_modules/has-symbols/index.js","../../../../node_modules/.pnpm/get-proto@1.0.1/node_modules/get-proto/Reflect.getPrototypeOf.js","../../../../node_modules/.pnpm/get-proto@1.0.1/node_modules/get-proto/Object.getPrototypeOf.js","../../../../node_modules/.pnpm/function-bind@1.1.2/node_modules/function-bind/implementation.js","../../../../node_modules/.pnpm/function-bind@1.1.2/node_modules/function-bind/index.js","../../../../node_modules/.pnpm/call-bind-apply-helpers@1.0.2/node_modules/call-bind-apply-helpers/functionCall.js","../../../../node_modules/.pnpm/call-bind-apply-helpers@1.0.2/node_modules/call-bind-apply-helpers/functionApply.js","../../../../node_modules/.pnpm/call-bind-apply-helpers@1.0.2/node_modules/call-bind-apply-helpers/reflectApply.js","../../../../node_modules/.pnpm/call-bind-apply-helpers@1.0.2/node_modules/call-bind-apply-helpers/actualApply.js","../../../../node_modules/.pnpm/call-bind-apply-helpers@1.0.2/node_modules/call-bind-apply-helpers/index.js","../../../../node_modules/.pnpm/dunder-proto@1.0.1/node_modules/dunder-proto/get.js","../../../../node_modules/.pnpm/get-proto@1.0.1/node_modules/get-proto/index.js","../../../../node_modules/.pnpm/hasown@2.0.2/node_modules/hasown/index.js","../../../../node_modules/.pnpm/get-intrinsic@1.3.0/node_modules/get-intrinsic/index.js","../../../../node_modules/.pnpm/has-tostringtag@1.0.2/node_modules/has-tostringtag/shams.js","../../../../node_modules/.pnpm/es-set-tostringtag@2.1.0/node_modules/es-set-tostringtag/index.js","../../../../node_modules/.pnpm/form-data@4.0.5/node_modules/form-data/lib/populate.js","../../../../node_modules/.pnpm/form-data@4.0.5/node_modules/form-data/lib/form_data.js","../../../../node_modules/.pnpm/axios@1.13.2/node_modules/axios/lib/platform/node/classes/FormData.js","../../../../node_modules/.pnpm/axios@1.13.2/node_modules/axios/lib/helpers/toFormData.js","../../../../node_modules/.pnpm/axios@1.13.2/node_modules/axios/lib/helpers/AxiosURLSearchParams.js","../../../../node_modules/.pnpm/axios@1.13.2/node_modules/axios/lib/helpers/buildURL.js","../../../../node_modules/.pnpm/axios@1.13.2/node_modules/axios/lib/core/InterceptorManager.js","../../../../node_modules/.pnpm/axios@1.13.2/node_modules/axios/lib/defaults/transitional.js","../../../../node_modules/.pnpm/axios@1.13.2/node_modules/axios/lib/platform/node/classes/URLSearchParams.js","../../../../node_modules/.pnpm/axios@1.13.2/node_modules/axios/lib/platform/node/index.js","../../../../node_modules/.pnpm/axios@1.13.2/node_modules/axios/lib/platform/common/utils.js","../../../../node_modules/.pnpm/axios@1.13.2/node_modules/axios/lib/platform/index.js","../../../../node_modules/.pnpm/axios@1.13.2/node_modules/axios/lib/helpers/toURLEncodedForm.js","../../../../node_modules/.pnpm/axios@1.13.2/node_modules/axios/lib/helpers/formDataToJSON.js","../../../../node_modules/.pnpm/axios@1.13.2/node_modules/axios/lib/defaults/index.js","../../../../node_modules/.pnpm/axios@1.13.2/node_modules/axios/lib/helpers/parseHeaders.js","../../../../node_modules/.pnpm/axios@1.13.2/node_modules/axios/lib/core/AxiosHeaders.js","../../../../node_modules/.pnpm/axios@1.13.2/node_modules/axios/lib/core/transformData.js","../../../../node_modules/.pnpm/axios@1.13.2/node_modules/axios/lib/cancel/isCancel.js","../../../../node_modules/.pnpm/axios@1.13.2/node_modules/axios/lib/cancel/CanceledError.js","../../../../node_modules/.pnpm/axios@1.13.2/node_modules/axios/lib/core/settle.js","../../../../node_modules/.pnpm/axios@1.13.2/node_modules/axios/lib/helpers/isAbsoluteURL.js","../../../../node_modules/.pnpm/axios@1.13.2/node_modules/axios/lib/helpers/combineURLs.js","../../../../node_modules/.pnpm/axios@1.13.2/node_modules/axios/lib/core/buildFullPath.js","../../../../node_modules/.pnpm/proxy-from-env@1.1.0/node_modules/proxy-from-env/index.js","../../../../node_modules/.pnpm/follow-redirects@1.15.11/node_modules/follow-redirects/debug.js","../../../../node_modules/.pnpm/follow-redirects@1.15.11/node_modules/follow-redirects/index.js","../../../../node_modules/.pnpm/axios@1.13.2/node_modules/axios/lib/env/data.js","../../../../node_modules/.pnpm/axios@1.13.2/node_modules/axios/lib/helpers/parseProtocol.js","../../../../node_modules/.pnpm/axios@1.13.2/node_modules/axios/lib/helpers/fromDataURI.js","../../../../node_modules/.pnpm/axios@1.13.2/node_modules/axios/lib/helpers/AxiosTransformStream.js","../../../../node_modules/.pnpm/axios@1.13.2/node_modules/axios/lib/helpers/readBlob.js","../../../../node_modules/.pnpm/axios@1.13.2/node_modules/axios/lib/helpers/formDataToStream.js","../../../../node_modules/.pnpm/axios@1.13.2/node_modules/axios/lib/helpers/ZlibHeaderTransformStream.js","../../../../node_modules/.pnpm/axios@1.13.2/node_modules/axios/lib/helpers/callbackify.js","../../../../node_modules/.pnpm/axios@1.13.2/node_modules/axios/lib/helpers/speedometer.js","../../../../node_modules/.pnpm/axios@1.13.2/node_modules/axios/lib/helpers/throttle.js","../../../../node_modules/.pnpm/axios@1.13.2/node_modules/axios/lib/helpers/progressEventReducer.js","../../../../node_modules/.pnpm/axios@1.13.2/node_modules/axios/lib/helpers/estimateDataURLDecodedBytes.js","../../../../node_modules/.pnpm/axios@1.13.2/node_modules/axios/lib/adapters/http.js","../../../../node_modules/.pnpm/axios@1.13.2/node_modules/axios/lib/helpers/isURLSameOrigin.js","../../../../node_modules/.pnpm/axios@1.13.2/node_modules/axios/lib/helpers/cookies.js","../../../../node_modules/.pnpm/axios@1.13.2/node_modules/axios/lib/core/mergeConfig.js","../../../../node_modules/.pnpm/axios@1.13.2/node_modules/axios/lib/helpers/resolveConfig.js","../../../../node_modules/.pnpm/axios@1.13.2/node_modules/axios/lib/adapters/xhr.js","../../../../node_modules/.pnpm/axios@1.13.2/node_modules/axios/lib/helpers/composeSignals.js","../../../../node_modules/.pnpm/axios@1.13.2/node_modules/axios/lib/helpers/trackStream.js","../../../../node_modules/.pnpm/axios@1.13.2/node_modules/axios/lib/adapters/fetch.js","../../../../node_modules/.pnpm/axios@1.13.2/node_modules/axios/lib/adapters/adapters.js","../../../../node_modules/.pnpm/axios@1.13.2/node_modules/axios/lib/core/dispatchRequest.js","../../../../node_modules/.pnpm/axios@1.13.2/node_modules/axios/lib/helpers/validator.js","../../../../node_modules/.pnpm/axios@1.13.2/node_modules/axios/lib/core/Axios.js","../../../../node_modules/.pnpm/axios@1.13.2/node_modules/axios/lib/cancel/CancelToken.js","../../../../node_modules/.pnpm/axios@1.13.2/node_modules/axios/lib/helpers/spread.js","../../../../node_modules/.pnpm/axios@1.13.2/node_modules/axios/lib/helpers/isAxiosError.js","../../../../node_modules/.pnpm/axios@1.13.2/node_modules/axios/lib/helpers/HttpStatusCode.js","../../../../node_modules/.pnpm/axios@1.13.2/node_modules/axios/lib/axios.js","../../../../node_modules/.pnpm/axios@1.13.2/node_modules/axios/index.js","../../../../node_modules/.pnpm/classnames@2.5.1/node_modules/classnames/index.js","../../../../node_modules/.pnpm/clsx@2.1.1/node_modules/clsx/dist/clsx.mjs","../../src/string/className.ts","../../src/string/proto.ts","../../src/request/instance.ts","../../src/request/interceptors.node.ts","../../src/tree/treeFilter.ts","../../src/tree/treeFlatten.ts","../../src/tree/treeGenerate.ts"],"sourcesContent":["function at(arr, indices) {\n const result = new Array(indices.length);\n const length = arr.length;\n for (let i = 0; i < indices.length; i++) {\n let index = indices[i];\n index = Number.isInteger(index) ? index : Math.trunc(index) || 0;\n if (index < 0) {\n index += length;\n }\n result[i] = arr[index];\n }\n return result;\n}\n\nexport { at };\n","function head(arr) {\n return arr[0];\n}\n\nexport { head };\n","function isPrimitive(value) {\n return value == null || (typeof value !== 'object' && typeof value !== 'function');\n}\n\nexport { isPrimitive };\n","function isTypedArray(x) {\n return ArrayBuffer.isView(x) && !(x instanceof DataView);\n}\n\nexport { isTypedArray };\n","function getSymbols(object) {\n return Object.getOwnPropertySymbols(object).filter(symbol => Object.prototype.propertyIsEnumerable.call(object, symbol));\n}\n\nexport { getSymbols };\n","function getTag(value) {\n if (value == null) {\n return value === undefined ? '[object Undefined]' : '[object Null]';\n }\n return Object.prototype.toString.call(value);\n}\n\nexport { getTag };\n","const regexpTag = '[object RegExp]';\nconst stringTag = '[object String]';\nconst numberTag = '[object Number]';\nconst booleanTag = '[object Boolean]';\nconst argumentsTag = '[object Arguments]';\nconst symbolTag = '[object Symbol]';\nconst dateTag = '[object Date]';\nconst mapTag = '[object Map]';\nconst setTag = '[object Set]';\nconst arrayTag = '[object Array]';\nconst functionTag = '[object Function]';\nconst arrayBufferTag = '[object ArrayBuffer]';\nconst objectTag = '[object Object]';\nconst errorTag = '[object Error]';\nconst dataViewTag = '[object DataView]';\nconst uint8ArrayTag = '[object Uint8Array]';\nconst uint8ClampedArrayTag = '[object Uint8ClampedArray]';\nconst uint16ArrayTag = '[object Uint16Array]';\nconst uint32ArrayTag = '[object Uint32Array]';\nconst bigUint64ArrayTag = '[object BigUint64Array]';\nconst int8ArrayTag = '[object Int8Array]';\nconst int16ArrayTag = '[object Int16Array]';\nconst int32ArrayTag = '[object Int32Array]';\nconst bigInt64ArrayTag = '[object BigInt64Array]';\nconst float32ArrayTag = '[object Float32Array]';\nconst float64ArrayTag = '[object Float64Array]';\n\nexport { argumentsTag, arrayBufferTag, arrayTag, bigInt64ArrayTag, bigUint64ArrayTag, booleanTag, dataViewTag, dateTag, errorTag, float32ArrayTag, float64ArrayTag, functionTag, int16ArrayTag, int32ArrayTag, int8ArrayTag, mapTag, numberTag, objectTag, regexpTag, setTag, stringTag, symbolTag, uint16ArrayTag, uint32ArrayTag, uint8ArrayTag, uint8ClampedArrayTag };\n","import { getSymbols } from '../compat/_internal/getSymbols.mjs';\nimport { getTag } from '../compat/_internal/getTag.mjs';\nimport { uint32ArrayTag, uint16ArrayTag, uint8ClampedArrayTag, uint8ArrayTag, symbolTag, stringTag, setTag, regexpTag, objectTag, numberTag, mapTag, int32ArrayTag, int16ArrayTag, int8ArrayTag, float64ArrayTag, float32ArrayTag, dateTag, booleanTag, dataViewTag, arrayBufferTag, arrayTag, argumentsTag } from '../compat/_internal/tags.mjs';\nimport { isPrimitive } from '../predicate/isPrimitive.mjs';\nimport { isTypedArray } from '../predicate/isTypedArray.mjs';\n\nfunction cloneDeepWith(obj, cloneValue) {\n return cloneDeepWithImpl(obj, undefined, obj, new Map(), cloneValue);\n}\nfunction cloneDeepWithImpl(valueToClone, keyToClone, objectToClone, stack = new Map(), cloneValue = undefined) {\n const cloned = cloneValue?.(valueToClone, keyToClone, objectToClone, stack);\n if (cloned !== undefined) {\n return cloned;\n }\n if (isPrimitive(valueToClone)) {\n return valueToClone;\n }\n if (stack.has(valueToClone)) {\n return stack.get(valueToClone);\n }\n if (Array.isArray(valueToClone)) {\n const result = new Array(valueToClone.length);\n stack.set(valueToClone, result);\n for (let i = 0; i < valueToClone.length; i++) {\n result[i] = cloneDeepWithImpl(valueToClone[i], i, objectToClone, stack, cloneValue);\n }\n if (Object.hasOwn(valueToClone, 'index')) {\n result.index = valueToClone.index;\n }\n if (Object.hasOwn(valueToClone, 'input')) {\n result.input = valueToClone.input;\n }\n return result;\n }\n if (valueToClone instanceof Date) {\n return new Date(valueToClone.getTime());\n }\n if (valueToClone instanceof RegExp) {\n const result = new RegExp(valueToClone.source, valueToClone.flags);\n result.lastIndex = valueToClone.lastIndex;\n return result;\n }\n if (valueToClone instanceof Map) {\n const result = new Map();\n stack.set(valueToClone, result);\n for (const [key, value] of valueToClone) {\n result.set(key, cloneDeepWithImpl(value, key, objectToClone, stack, cloneValue));\n }\n return result;\n }\n if (valueToClone instanceof Set) {\n const result = new Set();\n stack.set(valueToClone, result);\n for (const value of valueToClone) {\n result.add(cloneDeepWithImpl(value, undefined, objectToClone, stack, cloneValue));\n }\n return result;\n }\n if (typeof Buffer !== 'undefined' && Buffer.isBuffer(valueToClone)) {\n return valueToClone.subarray();\n }\n if (isTypedArray(valueToClone)) {\n const result = new (Object.getPrototypeOf(valueToClone).constructor)(valueToClone.length);\n stack.set(valueToClone, result);\n for (let i = 0; i < valueToClone.length; i++) {\n result[i] = cloneDeepWithImpl(valueToClone[i], i, objectToClone, stack, cloneValue);\n }\n return result;\n }\n if (valueToClone instanceof ArrayBuffer ||\n (typeof SharedArrayBuffer !== 'undefined' && valueToClone instanceof SharedArrayBuffer)) {\n return valueToClone.slice(0);\n }\n if (valueToClone instanceof DataView) {\n const result = new DataView(valueToClone.buffer.slice(0), valueToClone.byteOffset, valueToClone.byteLength);\n stack.set(valueToClone, result);\n copyProperties(result, valueToClone, objectToClone, stack, cloneValue);\n return result;\n }\n if (typeof File !== 'undefined' && valueToClone instanceof File) {\n const result = new File([valueToClone], valueToClone.name, {\n type: valueToClone.type,\n });\n stack.set(valueToClone, result);\n copyProperties(result, valueToClone, objectToClone, stack, cloneValue);\n return result;\n }\n if (typeof Blob !== 'undefined' && valueToClone instanceof Blob) {\n const result = new Blob([valueToClone], { type: valueToClone.type });\n stack.set(valueToClone, result);\n copyProperties(result, valueToClone, objectToClone, stack, cloneValue);\n return result;\n }\n if (valueToClone instanceof Error) {\n const result = new valueToClone.constructor();\n stack.set(valueToClone, result);\n result.message = valueToClone.message;\n result.name = valueToClone.name;\n result.stack = valueToClone.stack;\n result.cause = valueToClone.cause;\n copyProperties(result, valueToClone, objectToClone, stack, cloneValue);\n return result;\n }\n if (valueToClone instanceof Boolean) {\n const result = new Boolean(valueToClone.valueOf());\n stack.set(valueToClone, result);\n copyProperties(result, valueToClone, objectToClone, stack, cloneValue);\n return result;\n }\n if (valueToClone instanceof Number) {\n const result = new Number(valueToClone.valueOf());\n stack.set(valueToClone, result);\n copyProperties(result, valueToClone, objectToClone, stack, cloneValue);\n return result;\n }\n if (valueToClone instanceof String) {\n const result = new String(valueToClone.valueOf());\n stack.set(valueToClone, result);\n copyProperties(result, valueToClone, objectToClone, stack, cloneValue);\n return result;\n }\n if (typeof valueToClone === 'object' && isCloneableObject(valueToClone)) {\n const result = Object.create(Object.getPrototypeOf(valueToClone));\n stack.set(valueToClone, result);\n copyProperties(result, valueToClone, objectToClone, stack, cloneValue);\n return result;\n }\n return valueToClone;\n}\nfunction copyProperties(target, source, objectToClone = target, stack, cloneValue) {\n const keys = [...Object.keys(source), ...getSymbols(source)];\n for (let i = 0; i < keys.length; i++) {\n const key = keys[i];\n const descriptor = Object.getOwnPropertyDescriptor(target, key);\n if (descriptor == null || descriptor.writable) {\n target[key] = cloneDeepWithImpl(source[key], key, objectToClone, stack, cloneValue);\n }\n }\n}\nfunction isCloneableObject(object) {\n switch (getTag(object)) {\n case argumentsTag:\n case arrayTag:\n case arrayBufferTag:\n case dataViewTag:\n case booleanTag:\n case dateTag:\n case float32ArrayTag:\n case float64ArrayTag:\n case int8ArrayTag:\n case int16ArrayTag:\n case int32ArrayTag:\n case mapTag:\n case numberTag:\n case objectTag:\n case regexpTag:\n case setTag:\n case stringTag:\n case symbolTag:\n case uint8ArrayTag:\n case uint8ClampedArrayTag:\n case uint16ArrayTag:\n case uint32ArrayTag: {\n return true;\n }\n default: {\n return false;\n }\n }\n}\n\nexport { cloneDeepWith, cloneDeepWithImpl, copyProperties };\n","import { cloneDeepWithImpl } from './cloneDeepWith.mjs';\n\nfunction cloneDeep(obj) {\n return cloneDeepWithImpl(obj, undefined, obj, new Map(), undefined);\n}\n\nexport { cloneDeep };\n","function isPlainObject(value) {\n if (!value || typeof value !== 'object') {\n return false;\n }\n const proto = Object.getPrototypeOf(value);\n const hasObjectPrototype = proto === null ||\n proto === Object.prototype ||\n Object.getPrototypeOf(proto) === null;\n if (!hasObjectPrototype) {\n return false;\n }\n return Object.prototype.toString.call(value) === '[object Object]';\n}\n\nexport { isPlainObject };\n","function isArray(value) {\n return Array.isArray(value);\n}\n\nexport { isArray };\n","function isArrayBuffer(value) {\n return value instanceof ArrayBuffer;\n}\n\nexport { isArrayBuffer };\n","function isBlob(x) {\n if (typeof Blob === 'undefined') {\n return false;\n }\n return x instanceof Blob;\n}\n\nexport { isBlob };\n","function isBoolean(x) {\n return typeof x === 'boolean';\n}\n\nexport { isBoolean };\n","function isBrowser() {\n return typeof window !== 'undefined' && window?.document != null;\n}\n\nexport { isBrowser };\n","function isDate(value) {\n return value instanceof Date;\n}\n\nexport { isDate };\n","function isError(value) {\n return value instanceof Error;\n}\n\nexport { isError };\n","import { isBlob } from './isBlob.mjs';\n\nfunction isFile(x) {\n if (typeof File === 'undefined') {\n return false;\n }\n return isBlob(x) && x instanceof File;\n}\n\nexport { isFile };\n","function isFunction(value) {\n return typeof value === 'function';\n}\n\nexport { isFunction };\n","import { isPlainObject } from './isPlainObject.mjs';\n\nfunction isJSONValue(value) {\n switch (typeof value) {\n case 'object': {\n return value === null || isJSONArray(value) || isJSONObject(value);\n }\n case 'string':\n case 'number':\n case 'boolean': {\n return true;\n }\n default: {\n return false;\n }\n }\n}\nfunction isJSONArray(value) {\n if (!Array.isArray(value)) {\n return false;\n }\n return value.every(item => isJSONValue(item));\n}\nfunction isJSONObject(obj) {\n if (!isPlainObject(obj)) {\n return false;\n }\n const keys = Reflect.ownKeys(obj);\n for (let i = 0; i < keys.length; i++) {\n const key = keys[i];\n const value = obj[key];\n if (typeof key !== 'string') {\n return false;\n }\n if (!isJSONValue(value)) {\n return false;\n }\n }\n return true;\n}\n\nexport { isJSONArray, isJSONObject, isJSONValue };\n","function isLength(value) {\n return Number.isSafeInteger(value) && value >= 0;\n}\n\nexport { isLength };\n","function isMap(value) {\n return value instanceof Map;\n}\n\nexport { isMap };\n","function isNil(x) {\n return x == null;\n}\n\nexport { isNil };\n","function isNode() {\n return typeof process !== 'undefined' && process?.versions?.node != null;\n}\n\nexport { isNode };\n","function isNull(x) {\n return x === null;\n}\n\nexport { isNull };\n","function isPromise(value) {\n return value instanceof Promise;\n}\n\nexport { isPromise };\n","function isRegExp(value) {\n return value instanceof RegExp;\n}\n\nexport { isRegExp };\n","function isSet(value) {\n return value instanceof Set;\n}\n\nexport { isSet };\n","function isString(value) {\n return typeof value === 'string';\n}\n\nexport { isString };\n","function isSymbol(value) {\n return typeof value === 'symbol';\n}\n\nexport { isSymbol };\n","function isUndefined(x) {\n return x === undefined;\n}\n\nexport { isUndefined };\n","function isWeakMap(value) {\n return value instanceof WeakMap;\n}\n\nexport { isWeakMap };\n","function isWeakSet(value) {\n return value instanceof WeakSet;\n}\n\nexport { isWeakSet };\n","/**\n * The result of `typeof` operator.\n */\nexport const isTypeOfResult = ['bigint', 'boolean', 'function', 'number', 'object', 'string', 'symbol', 'undefined'] as const\n\n/**\n * 根据 `typeof` 方法判断值的类型\n * @param {unknown} x The value to test.\n * @param {string[]} type The types to check.\n *\n * @reference axios/dist/axios.js\n */\nexport function isTypeOf(x: unknown, type: string[]): boolean {\n // eslint-disable-next-line valid-typeof\n return type.some(t => (typeof x) === t.toLowerCase())\n}\n","/* eslint-disable unicorn/no-instanceof-builtins */\n/* eslint-disable perfectionist/sort-named-imports */\nimport {\n isNull as originNull,\n isUndefined as originUndefined,\n isBoolean as originBoolean,\n // isNumber as originNumber,\n isString as originString,\n // isBigInt as originBigInt,\n isSymbol as originSymbol,\n isNil as originNil,\n isPrimitive as originPrimitive,\n} from 'es-toolkit'\nimport { isTypeOf } from './isTypeOf'\n\n/** 空值 */\nexport type TypeNil = null | undefined\n/** 基本数据类型 */\nexport type TypePrimitive = null | undefined | boolean | number | bigint | string | symbol\n\n/**\n * 判断 null 类型的类型谓词\n * @param {unknown} x 待检测值\n */\nexport const isNull = (x: unknown): x is null => originNull(x)\n/**\n * 判断 undefined 类型的类型谓词\n * @param {unknown} x 待检测值\n */\nexport const isUndefined = (x: unknown): x is undefined => originUndefined(x)\n\n/**\n * 判断 boolean 类型的类型谓词\n * @param {unknown} x 待检测值\n */\nexport const isBoolean = (x: unknown): x is boolean => originBoolean(x)\n/**\n * 判断 string 类型的类型谓词\n * @param {unknown} x 待检测值\n */\nexport const isString = (x: unknown): x is string => originString(x)\n/**\n * 判断 Symbol 类型的类型谓词\n * @param {unknown} x 待检测值\n */\nexport const isSymbol = (x: unknown): x is symbol => originSymbol(x)\n/**\n * 判断 number 类型的类型谓词\n * @param {unknown} x 待检测值\n */\nexport const isNumber = (x: unknown): x is number => isTypeOf(x, ['number'])\n/**\n * 判断 bigint 类型的类型谓词\n * @param {unknown} x 待检测值\n */\nexport const isBigInt = (x: unknown): x is bigint => isTypeOf(x, ['bigint'])\n\n/**\n * 判断 null 或 undefined 类型的类型谓词\n * @param {unknown} x 待检测值\n */\nexport const isNil = (x: unknown): x is TypeNil => originNil(x)\n/**\n * 判断 基本数据 类型的类型谓词\n * @param {unknown} x 待检测值\n */\nexport const isPrimitive = (x: unknown): x is TypePrimitive => originPrimitive(x)\n\n/**\n * 判断 boolean + new Boolean(x) 类型的类型谓词\n * @function override\n * @param {unknown} x 待检测值\n */\nexport const isBooleanLike = (x: unknown): x is boolean => isBoolean(x) || (x instanceof Boolean)\n/**\n * 判断 string + new String(x) 类型的类型谓词\n * @function override\n * @param {unknown} x 待检测值\n */\nexport const isStringLike = (x: unknown): x is string => isString(x) || (x instanceof String)\n/**\n * 判断 number + new Number(x) 类型的类型谓词\n * @function override\n * @param {unknown} x 待检测值\n */\nexport const isNumberLike = (x: unknown): x is number => isNumber(x) || (x instanceof Number)\n/**\n * 判断是否为非数字\n * 🚫 非类型谓词\n * @function override\n * @example Number.isNaN(NaN) === Number.isNaN(Number('1a')) 非数字类型需要手动转成数字\n * @param {unknown} x 待检测值\n */\nexport const isNotNumber = (x: unknown): boolean => Number.isNaN(x)\n","import {\n isJSONArray as originJSONArray,\n isJSONObject as originJSONObject,\n} from 'es-toolkit'\nimport { isBoolean, isNumber, isString } from './isPrimitive'\n\n/** 在 json 格式中支持的值类型 */\nexport type TypeJSONValue = null | boolean | number | string\n\n/**\n * 判断 json array 类型的类型谓词\n * @param {unknown} x 待检测值\n */\nexport const isJSONArray = <T extends TypeJSONValue = TypeJSONValue>(x: unknown): x is Array<T> => originJSONArray(x)\n\n/**\n * 判断 json object 类型的类型谓词\n * @param {unknown} x 待检测值\n */\nexport const isJSONObject = <T extends TypeJSONValue = TypeJSONValue>(x: unknown): x is Record<string, T> => originJSONObject(x)\n\n/**\n * 判断 json 值类型的类型谓词\n * @function override\n * @param {unknown} x 待检测值\n */\nexport function isJSONValue<T extends TypeJSONValue = TypeJSONValue>(x: unknown): x is T {\n return x === null || isBoolean(x) || isNumber(x) || isString(x)\n}\n\n/**\n * 判断是否为有效的 json 字符串 (通过尝试序列化是否成功来判断)\n * 🚫 非类型谓词\n * @function override\n * @param {unknown} x 待检测值\n * @returns {[boolean, any]} [错误优先, 可能存在的序列化结果]\n */\nexport function isJSONString<T = any>(x: unknown, reviver?: (this: any, key: string, value: any) => any): [null, T] | [Error, undefined] {\n if (!isString(x)) return [new TypeError('Not a string'), undefined]\n try {\n const value = JSON.parse(x, reviver)\n return [null, value]\n }\n catch (e: any) {\n return [e, undefined]\n }\n}\n","import { isBrowser as originBrowser, isNode as originNode } from 'es-toolkit'\n\n/**\n * 判断是否是 Node.js 环境\n * 🚫 非类型谓词\n * @returns {boolean} 若当前当前环境是 Node.js 返回 true,否则返回 false\n */\nexport const isBrowser = (): boolean => originBrowser()\n\n/**\n * 判断是否是 浏览器 环境\n * 🚫 非类型谓词\n * @returns {boolean} 若当前当前环境是浏览器返回 true,否则返回 false\n */\nexport const isNode = (): boolean => originNode()\n","import { isLength } from '../../predicate/isLength.mjs';\n\nfunction isArrayLike(value) {\n return value != null && typeof value !== 'function' && isLength(value.length);\n}\n\nexport { isArrayLike };\n","function isObject(value) {\n return value !== null && (typeof value === 'object' || typeof value === 'function');\n}\n\nexport { isObject };\n","import { getTag } from '../_internal/getTag.mjs';\n\nfunction isArguments(value) {\n return value !== null && typeof value === 'object' && getTag(value) === '[object Arguments]';\n}\n\nexport { isArguments };\n","function isPrototype(value) {\n const constructor = value?.constructor;\n const prototype = typeof constructor === 'function' ? constructor.prototype : Object.prototype;\n return value === prototype;\n}\n\nexport { isPrototype };\n","import { isTypedArray as isTypedArray$1 } from '../../predicate/isTypedArray.mjs';\n\nfunction isTypedArray(x) {\n return isTypedArray$1(x);\n}\n\nexport { isTypedArray };\n","import { isArguments } from './isArguments.mjs';\nimport { isArrayLike } from './isArrayLike.mjs';\nimport { isTypedArray } from './isTypedArray.mjs';\nimport { isPrototype } from '../_internal/isPrototype.mjs';\n\nfunction isEmpty(value) {\n if (value == null) {\n return true;\n }\n if (isArrayLike(value)) {\n if (typeof value.splice !== 'function' &&\n typeof value !== 'string' &&\n (typeof Buffer === 'undefined' || !Buffer.isBuffer(value)) &&\n !isTypedArray(value) &&\n !isArguments(value)) {\n return false;\n }\n return value.length === 0;\n }\n if (typeof value === 'object') {\n if (value instanceof Map || value instanceof Set) {\n return value.size === 0;\n }\n const keys = Object.keys(value);\n if (isPrototype(value)) {\n return keys.filter(x => x !== 'constructor').length === 0;\n }\n return keys.length === 0;\n }\n return true;\n}\n\nexport { isEmpty };\n","/* eslint-disable perfectionist/sort-named-imports */\nimport {\n isFunction as originFunction,\n isSet as originSet,\n isMap as originMap,\n isWeakSet as originWeakSet,\n isWeakMap as originWeakMap,\n isDate as originDate,\n isRegExp as originRegExp,\n isPromise as originPromise,\n isError as originError,\n isPlainObject as originPlainObject,\n} from 'es-toolkit'\nimport { isArray as originArray, isObject as originObject, isEmpty as originEmpty } from 'es-toolkit/compat'\n\n/** typedArray */\nexport type TypeTypedArray = Int8Array | Uint8Array | Uint8ClampedArray | Int16Array | Uint16Array | Int32Array | Uint32Array | BigInt64Array | BigUint64Array | Float16Array | Float32Array | Float64Array\n\n/**\n * 判断 Array 类型的类型谓词\n * @param {unknown} x 待检测值\n */\nexport const isArray = <T = unknown>(x: unknown): x is Array<T> => originArray(x)\n/**\n * 判断 Object 类型的类型谓词\n * @param {unknown} x 待检测值\n */\nexport const isObject = (x: unknown): x is object => originObject(x)\n/**\n * 判断 Function 类型的类型谓词\n * @param {unknown} x 待检测值\n */\nexport const isFunction = (x: unknown): x is (...args: any[]) => any => originFunction(x)\n\n/**\n * 判断 Set 类型的类型谓词\n * @param {unknown} x 待检测值\n */\nexport const isSet = <T = unknown>(x: unknown): x is Set<T> => originSet(x)\n/**\n * 判断 Map 类型的类型谓词\n * @param {unknown} x 待检测值\n */\nexport const isMap = <T = unknown, K extends PropertyKey = PropertyKey>(x: unknown): x is Map<K, T> => originMap(x)\n/**\n * 判断 WeakSet 类型的类型谓词\n * @param {unknown} x 待检测值\n */\nexport const isWeakSet = <T extends WeakKey = WeakKey>(x: unknown): x is WeakSet<T> => originWeakSet(x)\n/**\n * 判断 WeakMap 类型的类型谓词\n * @param {unknown} x 待检测值\n */\nexport const isWeakMap = <T = unknown, K extends WeakKey = WeakKey>(x: unknown): x is WeakMap<K, T> => originWeakMap(x)\n/**\n * 判断 Date 类型的类型谓词\n * @param {unknown} x 待检测值\n */\nexport const isDate = (x: unknown): x is Date => originDate(x)\n/**\n * 判断 RegExp 类型的类型谓词\n * @param {unknown} x 待检测值\n */\nexport const isRegExp = (x: unknown): x is RegExp => originRegExp(x)\n/**\n * 判断 Promise 类型的类型谓词\n * @param {unknown} x 待检测值\n */\nexport const isPromise = <T = unknown>(x: unknown): x is Promise<T> => originPromise(x)\n/**\n * 判断 Error 类型的类型谓词\n * @param {unknown} x 待检测值\n */\nexport const isError = (x: unknown): x is Error => originError(x)\n\n/**\n * 判断 普通对象 Record<PropertyKey, unknown> 类型的类型谓词\n * @param {unknown} x 待检测值\n */\nexport const isPlainObject = <T = unknown, K extends PropertyKey = PropertyKey>(x: unknown): x is Record<K, T> => originPlainObject(x)\n/**\n * 判断 给定值 是否为空\n * 🚫 非类型谓词\n * @returns {boolean} 可以判断字符串、数组、对象、Map、Set 等类型是否为空\n */\nexport const isEmpty = (x: unknown): boolean => originEmpty(x)\n","// eslint-disable-next-line ts/unbound-method\nconst toString = Object.prototype.toString\n\nconst toStringCache: Record<string, string> = Object.create(null)\n\nfunction tagOf(thing: unknown): string {\n const str = toString.call(thing)\n return toStringCache[str] || (toStringCache[str] = str.slice(8, -1).toLowerCase())\n};\n\n/**\n * 根据 `Object.prototype.toString` 方法判断值的类型\n * @param {unknown} x The value to test.\n * @param {string[]} type The types to check.\n *\n * @reference axios/dist/axios.js\n */\nexport function isTagOf(x: unknown, type: string[]): boolean {\n return type.some(t => tagOf(x) === t.toLowerCase())\n}\n","import { isArray, isNil } from '../is'\n\n/**\n * 函数 arrayCast 的返回值\n */\nexport type ArrayCastReturn<T> = T extends Array<infer U> ? U[] : (T extends null | undefined ? any[] : T[])\n\n/**\n * Converts a value to an array.\n *\n * @param {unknown} value - The value to convert.\n * @returns {any[]} Returns the converted array.\n *\n * @example\n * arrayCast(null) // => returns []\n * arrayCast(undefined) // => returns []\n * arrayCast(1) // => returns [1]\n * arrayCast([1, 2, 3]) // => returns [1, 2, 3]\n * arrayCast('a') // => returns ['a']\n * arrayCast(['a', 'b', 'c']) // => returns ['a', 'b', 'c']\n * arrayCast(true) // => returns [true]\n * arrayCast(false) // => returns [false]\n * arrayCast([true, false]) // => returns [true, false]\n * arrayCast({ a: '1' }) // => returns [{ a: '1' }]\n */\nexport function arrayCast<T>(value?: T): ArrayCastReturn<T> {\n if (isNil(value)) return ([] as unknown as ArrayCastReturn<T>)\n return (isArray(value) ? Array.from(value) : [value]) as ArrayCastReturn<T>\n}\n","/**\n * 空对象\n */\nexport const CONSTANT_EMPTY_ARRAY = []\n\n/**\n * 空数组\n */\nexport const CONSTANT_EMPTY_OBJECT = {}\n\n/**\n * 空函数\n */\nexport function CONSTANT_NOOP(): void { }\n","const toZeroIfInfinity = value => Number.isFinite(value) ? value : 0;\n\nfunction parseNumber(milliseconds) {\n\treturn {\n\t\tdays: Math.trunc(milliseconds / 86_400_000),\n\t\thours: Math.trunc(milliseconds / 3_600_000 % 24),\n\t\tminutes: Math.trunc(milliseconds / 60_000 % 60),\n\t\tseconds: Math.trunc(milliseconds / 1000 % 60),\n\t\tmilliseconds: Math.trunc(milliseconds % 1000),\n\t\tmicroseconds: Math.trunc(toZeroIfInfinity(milliseconds * 1000) % 1000),\n\t\tnanoseconds: Math.trunc(toZeroIfInfinity(milliseconds * 1e6) % 1000),\n\t};\n}\n\nfunction parseBigint(milliseconds) {\n\treturn {\n\t\tdays: milliseconds / 86_400_000n,\n\t\thours: milliseconds / 3_600_000n % 24n,\n\t\tminutes: milliseconds / 60_000n % 60n,\n\t\tseconds: milliseconds / 1000n % 60n,\n\t\tmilliseconds: milliseconds % 1000n,\n\t\tmicroseconds: 0n,\n\t\tnanoseconds: 0n,\n\t};\n}\n\nexport default function parseMilliseconds(milliseconds) {\n\tswitch (typeof milliseconds) {\n\t\tcase 'number': {\n\t\t\tif (Number.isFinite(milliseconds)) {\n\t\t\t\treturn parseNumber(milliseconds);\n\t\t\t}\n\n\t\t\tbreak;\n\t\t}\n\n\t\tcase 'bigint': {\n\t\t\treturn parseBigint(milliseconds);\n\t\t}\n\n\t\t// No default\n\t}\n\n\tthrow new TypeError('Expected a finite number or bigint');\n}\n","import parseMilliseconds from 'parse-ms';\n\nconst isZero = value => value === 0 || value === 0n;\nconst pluralize = (word, count) => (count === 1 || count === 1n) ? word : `${word}s`;\n\nconst SECOND_ROUNDING_EPSILON = 0.000_000_1;\nconst ONE_DAY_IN_MILLISECONDS = 24n * 60n * 60n * 1000n;\n\nexport default function prettyMilliseconds(milliseconds, options) {\n\tconst isBigInt = typeof milliseconds === 'bigint';\n\tif (!isBigInt && !Number.isFinite(milliseconds)) {\n\t\tthrow new TypeError('Expected a finite number or bigint');\n\t}\n\n\toptions = {...options};\n\n\tconst sign = milliseconds < 0 ? '-' : '';\n\tmilliseconds = milliseconds < 0 ? -milliseconds : milliseconds; // Cannot use `Math.abs()` because of BigInt support.\n\n\tif (options.colonNotation) {\n\t\toptions.compact = false;\n\t\toptions.formatSubMilliseconds = false;\n\t\toptions.separateMilliseconds = false;\n\t\toptions.verbose = false;\n\t}\n\n\tif (options.compact) {\n\t\toptions.unitCount = 1;\n\t\toptions.secondsDecimalDigits = 0;\n\t\toptions.millisecondsDecimalDigits = 0;\n\t}\n\n\tlet result = [];\n\n\tconst floorDecimals = (value, decimalDigits) => {\n\t\tconst flooredInterimValue = Math.floor((value * (10 ** decimalDigits)) + SECOND_ROUNDING_EPSILON);\n\t\tconst flooredValue = Math.round(flooredInterimValue) / (10 ** decimalDigits);\n\t\treturn flooredValue.toFixed(decimalDigits);\n\t};\n\n\tconst add = (value, long, short, valueString) => {\n\t\tif (\n\t\t\t(result.length === 0 || !options.colonNotation)\n\t\t\t&& isZero(value)\n\t\t\t&& !(options.colonNotation && short === 'm')) {\n\t\t\treturn;\n\t\t}\n\n\t\tvalueString ??= String(value);\n\t\tif (options.colonNotation) {\n\t\t\tconst wholeDigits = valueString.includes('.') ? valueString.split('.')[0].length : valueString.length;\n\t\t\tconst minLength = result.length > 0 ? 2 : 1;\n\t\t\tvalueString = '0'.repeat(Math.max(0, minLength - wholeDigits)) + valueString;\n\t\t} else {\n\t\t\tvalueString += options.verbose ? ' ' + pluralize(long, value) : short;\n\t\t}\n\n\t\tresult.push(valueString);\n\t};\n\n\tconst parsed = parseMilliseconds(milliseconds);\n\tconst days = BigInt(parsed.days);\n\n\tif (options.hideYearAndDays) {\n\t\tadd((BigInt(days) * 24n) + BigInt(parsed.hours), 'hour', 'h');\n\t} else {\n\t\tif (options.hideYear) {\n\t\t\tadd(days, 'day', 'd');\n\t\t} else {\n\t\t\tadd(days / 365n, 'year', 'y');\n\t\t\tadd(days % 365n, 'day', 'd');\n\t\t}\n\n\t\tadd(Number(parsed.hours), 'hour', 'h');\n\t}\n\n\tadd(Number(parsed.minutes), 'minute', 'm');\n\n\tif (!options.hideSeconds) {\n\t\tif (\n\t\t\toptions.separateMilliseconds\n\t\t\t|| options.formatSubMilliseconds\n\t\t\t|| (!options.colonNotation && milliseconds < 1000 && !options.subSecondsAsDecimals)\n\t\t) {\n\t\t\tconst seconds = Number(parsed.seconds);\n\t\t\tconst milliseconds = Number(parsed.milliseconds);\n\t\t\tconst microseconds = Number(parsed.microseconds);\n\t\t\tconst nanoseconds = Number(parsed.nanoseconds);\n\n\t\t\tadd(seconds, 'second', 's');\n\n\t\t\tif (options.formatSubMilliseconds) {\n\t\t\t\tadd(milliseconds, 'millisecond', 'ms');\n\t\t\t\tadd(microseconds, 'microsecond', 'µs');\n\t\t\t\tadd(nanoseconds, 'nanosecond', 'ns');\n\t\t\t} else {\n\t\t\t\tconst millisecondsAndBelow\n\t\t\t\t\t= milliseconds\n\t\t\t\t\t+ (microseconds / 1000)\n\t\t\t\t\t+ (nanoseconds / 1e6);\n\n\t\t\t\tconst millisecondsDecimalDigits\n\t\t\t\t\t= typeof options.millisecondsDecimalDigits === 'number'\n\t\t\t\t\t\t? options.millisecondsDecimalDigits\n\t\t\t\t\t\t: 0;\n\n\t\t\t\tconst roundedMilliseconds = millisecondsAndBelow >= 1\n\t\t\t\t\t? Math.round(millisecondsAndBelow)\n\t\t\t\t\t: Math.ceil(millisecondsAndBelow);\n\n\t\t\t\tconst millisecondsString = millisecondsDecimalDigits\n\t\t\t\t\t? millisecondsAndBelow.toFixed(millisecondsDecimalDigits)\n\t\t\t\t\t: roundedMilliseconds;\n\n\t\t\t\tadd(\n\t\t\t\t\tNumber.parseFloat(millisecondsString),\n\t\t\t\t\t'millisecond',\n\t\t\t\t\t'ms',\n\t\t\t\t\tmillisecondsString,\n\t\t\t\t);\n\t\t\t}\n\t\t} else {\n\t\t\tconst seconds = (\n\t\t\t\t(isBigInt ? Number(milliseconds % ONE_DAY_IN_MILLISECONDS) : milliseconds)\n\t\t\t\t/ 1000\n\t\t\t) % 60;\n\t\t\tconst secondsDecimalDigits\n\t\t\t\t= typeof options.secondsDecimalDigits === 'number'\n\t\t\t\t\t? options.secondsDecimalDigits\n\t\t\t\t\t: 1;\n\t\t\tconst secondsFixed = floorDecimals(seconds, secondsDecimalDigits);\n\t\t\tconst secondsString = options.keepDecimalsOnWholeSeconds\n\t\t\t\t? secondsFixed\n\t\t\t\t: secondsFixed.replace(/\\.0+$/, '');\n\t\t\tadd(Number.parseFloat(secondsString), 'second', 's', secondsString);\n\t\t}\n\t}\n\n\tif (result.length === 0) {\n\t\treturn sign + '0' + (options.verbose ? ' milliseconds' : 'ms');\n\t}\n\n\tconst separator = options.colonNotation ? ':' : ' ';\n\tif (typeof options.unitCount === 'number') {\n\t\tresult = result.slice(0, Math.max(options.unitCount, 1));\n\t}\n\n\treturn sign + result.join(separator);\n}\n","import type { Options } from 'pretty-ms'\nimport prettyMs from 'pretty-ms'\n\nexport type DatePrettyMsOptions = Options\n\nexport const datePrettyMs = prettyMs\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar EN_US = ['second', 'minute', 'hour', 'day', 'week', 'month', 'year'];\nfunction default_1(diff, idx) {\n if (idx === 0)\n return ['just now', 'right now'];\n var unit = EN_US[Math.floor(idx / 2)];\n if (diff > 1)\n unit += 's';\n return [diff + \" \" + unit + \" ago\", \"in \" + diff + \" \" + unit];\n}\nexports.default = default_1;\n//# sourceMappingURL=en_US.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar ZH_CN = ['秒', '分钟', '小时', '天', '周', '个月', '年'];\nfunction default_1(diff, idx) {\n if (idx === 0)\n return ['刚刚', '片刻后'];\n var unit = ZH_CN[~~(idx / 2)];\n return [diff + \" \" + unit + \"\\u524D\", diff + \" \" + unit + \"\\u540E\"];\n}\nexports.default = default_1;\n//# sourceMappingURL=zh_CN.js.map","\"use strict\";\n/**\n * Created by hustcc on 18/5/20.\n * Contract: i@hust.cc\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\n/**\n * All supported locales\n */\nvar Locales = {};\n/**\n * register a locale\n * @param locale\n * @param func\n */\nexports.register = function (locale, func) {\n Locales[locale] = func;\n};\n/**\n * get a locale, default is en_US\n * @param locale\n * @returns {*}\n */\nexports.getLocale = function (locale) {\n return Locales[locale] || Locales['en_US'];\n};\n//# sourceMappingURL=register.js.map","\"use strict\";\n/**\n * Created by hustcc on 18/5/20.\n * Contract: i@hust.cc\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar SEC_ARRAY = [\n 60,\n 60,\n 24,\n 7,\n 365 / 7 / 12,\n 12,\n];\n/**\n * format Date / string / timestamp to timestamp\n * @param input\n * @returns {*}\n */\nfunction toDate(input) {\n if (input instanceof Date)\n return input;\n // @ts-ignore\n if (!isNaN(input) || /^\\d+$/.test(input))\n return new Date(parseInt(input));\n input = (input || '')\n // @ts-ignore\n .trim()\n .replace(/\\.\\d+/, '') // remove milliseconds\n .replace(/-/, '/')\n .replace(/-/, '/')\n .replace(/(\\d)T(\\d)/, '$1 $2')\n .replace(/Z/, ' UTC') // 2017-2-5T3:57:52Z -> 2017-2-5 3:57:52UTC\n .replace(/([+-]\\d\\d):?(\\d\\d)/, ' $1$2'); // -04:00 -> -0400\n return new Date(input);\n}\nexports.toDate = toDate;\n/**\n * format the diff second to *** time ago, with setting locale\n * @param diff\n * @param localeFunc\n * @returns\n */\nfunction formatDiff(diff, localeFunc) {\n /**\n * if locale is not exist, use defaultLocale.\n * if defaultLocale is not exist, use build-in `en`.\n * be sure of no error when locale is not exist.\n *\n * If `time in`, then 1\n * If `time ago`, then 0\n */\n var agoIn = diff < 0 ? 1 : 0;\n /**\n * Get absolute value of number (|diff| is non-negative) value of x\n * |diff| = diff if diff is positive\n * |diff| = -diff if diff is negative\n * |0| = 0\n */\n diff = Math.abs(diff);\n /**\n * Time in seconds\n */\n var totalSec = diff;\n /**\n * Unit of time\n */\n var idx = 0;\n for (; diff >= SEC_ARRAY[idx] && idx < SEC_ARRAY.length; idx++) {\n diff /= SEC_ARRAY[idx];\n }\n /**\n * Math.floor() is alternative of ~~\n *\n * The differences and bugs:\n * Math.floor(3.7) -> 4 but ~~3.7 -> 3\n * Math.floor(1559125440000.6) -> 1559125440000 but ~~1559125440000.6 -> 52311552\n *\n * More information about the performance of algebraic:\n * https://www.youtube.com/watch?v=65-RbBwZQdU\n */\n diff = Math.floor(diff);\n idx *= 2;\n if (diff > (idx === 0 ? 9 : 1))\n idx += 1;\n return localeFunc(diff, idx, totalSec)[agoIn].replace('%s', diff.toString());\n}\nexports.formatDiff = formatDiff;\n/**\n * calculate the diff second between date to be formatted an now date.\n * @param date\n * @param relativeDate\n * @returns {number}\n */\nfunction diffSec(date, relativeDate) {\n var relDate = relativeDate ? toDate(relativeDate) : new Date();\n return (+relDate - +toDate(date)) / 1000;\n}\nexports.diffSec = diffSec;\n/**\n * nextInterval: calculate the next interval time.\n * - diff: the diff sec between now and date to be formatted.\n *\n * What's the meaning?\n * diff = 61 then return 59\n * diff = 3601 (an hour + 1 second), then return 3599\n * make the interval with high performance.\n **/\nfunction nextInterval(diff) {\n var rst = 1, i = 0, d = Math.abs(diff);\n for (; diff >= SEC_ARRAY[i] && i < SEC_ARRAY.length; i++) {\n diff /= SEC_ARRAY[i];\n rst *= SEC_ARRAY[i];\n }\n d = d % rst;\n d = d ? rst - d : rst;\n return Math.ceil(d);\n}\nexports.nextInterval = nextInterval;\n//# sourceMappingURL=date.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar date_1 = require(\"./utils/date\");\nvar register_1 = require(\"./register\");\n/**\n * format a TDate into string\n * @param date\n * @param locale\n * @param opts\n */\nexports.format = function (date, locale, opts) {\n // diff seconds\n var sec = date_1.diffSec(date, opts && opts.relativeDate);\n // format it with locale\n return date_1.formatDiff(sec, register_1.getLocale(locale));\n};\n//# sourceMappingURL=format.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar ATTR_TIMEAGO_TID = 'timeago-id';\n/**\n * get the datetime attribute, `datetime` are supported.\n * @param node\n * @returns {*}\n */\nfunction getDateAttribute(node) {\n return node.getAttribute('datetime');\n}\nexports.getDateAttribute = getDateAttribute;\n/**\n * set the node attribute, native DOM\n * @param node\n * @param timerId\n * @returns {*}\n */\nfunction setTimerId(node, timerId) {\n // @ts-ignore\n node.setAttribute(ATTR_TIMEAGO_TID, timerId);\n}\nexports.setTimerId = setTimerId;\n/**\n * get the timer id\n * @param node\n */\nfunction getTimerId(node) {\n return parseInt(node.getAttribute(ATTR_TIMEAGO_TID));\n}\nexports.getTimerId = getTimerId;\n//# sourceMappingURL=dom.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar dom_1 = require(\"./utils/dom\");\nvar date_1 = require(\"./utils/date\");\nvar register_1 = require(\"./register\");\n// all realtime timer\nvar TIMER_POOL = {};\n/**\n * clear a timer from pool\n * @param tid\n */\nvar clear = function (tid) {\n clearTimeout(tid);\n delete TIMER_POOL[tid];\n};\n// run with timer(setTimeout)\nfunction run(node, date, localeFunc, opts) {\n // clear the node's exist timer\n clear(dom_1.getTimerId(node));\n var relativeDate = opts.relativeDate, minInterval = opts.minInterval;\n // get diff seconds\n var diff = date_1.diffSec(date, relativeDate);\n // render\n node.innerText = date_1.formatDiff(diff, localeFunc);\n var tid = setTimeout(function () {\n run(node, date, localeFunc, opts);\n }, Math.min(Math.max(date_1.nextInterval(diff), minInterval || 1) * 1000, 0x7fffffff));\n // there is no need to save node in object. Just save the key\n TIMER_POOL[tid] = 0;\n dom_1.setTimerId(node, tid);\n}\n/**\n * cancel a timer or all timers\n * @param node - node hosting the time string\n */\nfunction cancel(node) {\n // cancel one\n if (node)\n clear(dom_1.getTimerId(node));\n // cancel all\n // @ts-ignore\n else\n Object.keys(TIMER_POOL).forEach(clear);\n}\nexports.cancel = cancel;\n/**\n * render a dom realtime\n * @param nodes\n * @param locale\n * @param opts\n */\nfunction render(nodes, locale, opts) {\n // by .length\n // @ts-ignore\n var nodeList = nodes.length ? nodes : [nodes];\n nodeList.forEach(function (node) {\n run(node, dom_1.getDateAttribute(node), register_1.getLocale(locale), opts || {});\n });\n return nodeList;\n}\nexports.render = render;\n//# sourceMappingURL=realtime.js.map","\"use strict\";\n/**\n * Created by hustcc on 18/5/20.\n * Contract: i@hust.cc\n */\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar en_US_1 = __importDefault(require(\"./lang/en_US\"));\nvar zh_CN_1 = __importDefault(require(\"./lang/zh_CN\"));\nvar register_1 = require(\"./register\");\nexports.register = register_1.register;\nregister_1.register('en_US', en_US_1.default);\nregister_1.register('zh_CN', zh_CN_1.default);\nvar format_1 = require(\"./format\");\nexports.format = format_1.format;\nvar realtime_1 = require(\"./realtime\");\nexports.render = realtime_1.render;\nexports.cancel = realtime_1.cancel;\n//# sourceMappingURL=index.js.map","import type { LocaleFunc, LocaleMap, Opts, TDate, TimerPool } from 'timeago.js'\nimport { cancel, format, register, render } from 'timeago.js'\n\nexport type DateTimeAgoLocaleFunc = LocaleFunc\nexport type DateTimeAgoLocaleMap = LocaleMap\nexport type DateTimeAgoOpts = Opts\nexport type DateTimeAgoTDate = TDate\nexport type DateTimeAgoTimerPool = TimerPool\n\nexport const dateTimeAgoFormat = format\nexport const dateTimeAgoRender = render\nexport const dateTimeAgoRenderCancel = cancel\nexport const dateTimeAgoLocale = register\n","/* eslint-disable perfectionist/sort-named-imports */\nimport type { TypeTypedArray } from '../is'\nimport type { FileBlobOptions, FileBufferEncoding } from './interface'\nimport { Buffer } from 'node:buffer'\nimport {\n isTypedArray as originTypedArray,\n isArrayBuffer as originArrayBuffer,\n // isBuffer as originBuffer,\n isBlob as originBlob,\n isFile as originFile,\n} from 'es-toolkit'\n\n/**\n * 仅涉及到 Buffer/TypedArray/ArrayBuffer/String/Blob 之间的转换,不涉及修改操作\n * From:\n * Buffer/TypedArray/ArrayBuffer/String/Blob -> Buffer\n * To:\n * Buffer -> ArrayBuffer -> Blob -> File/ObjectURL\n * Buffer -> ArrayBuffer -> TypedArray\n * Buffer -> String\n * 参考转化关系:\n * typedArray\n * ⬇️ typedArray.buffer <=> new Uint8Array/DataView(buffer)\n * ArrayBuffer\n * ⬇️ new Blob([buffer], { type: mimeType }) <=> await blob.arrayBuffer()\n * Blob\n * ⬇️ new File([blob], 'filename', { type: blob.type }) <=> file.slice(0, file.size, file.type)\n * ⬇️ URL.createObjectURL(blob)\n * File/ObjectURL\n */\nexport class FileBuffer {\n #buf: Buffer\n\n /**\n * 判断 TypedArray 类型的类型谓词\n * @description 通过 ArrayBuffer.isView 判断是否为视图,并排除 DataView 类型\n * @param {unknown} x 待检测值\n */\n static isTypedArray(x: unknown): x is TypeTypedArray {\n return originTypedArray(x)\n }\n\n /**\n * 判断 TypedArray 类型的类型谓词\n * @description 通过 ArrayBuffer.isView 判断是否为视图,并排除 DataView 类型\n * @param {unknown} x 待检测值\n */\n static isDataView(x: unknown): x is DataView {\n return x instanceof DataView\n }\n\n /**\n * 判断 ArrayBuffer 类型的类型谓词\n * @param {unknown} x 待检测值\n */\n static isArrayBuffer(x: unknown): x is ArrayBuffer {\n return originArrayBuffer(x)\n }\n\n /**\n * 判断 Buffer 类型的类型谓词\n * @param {unknown} x 待检测值\n */\n static isBuffer(x: unknown): x is Buffer {\n return typeof Buffer !== 'undefined' && Buffer.isBuffer(x)\n }\n\n /**\n * 判断 Blob 类型的类型谓词\n * @param {unknown} x 待检测值\n */\n static isBlob(x: unknown): x is Blob {\n return originBlob(x)\n }\n\n /**\n * 判断 File 类型的类型谓词\n * @param {unknown} x 待检测值\n */\n static isFile(x: unknown): x is File {\n return originFile(x)\n }\n\n constructor(...args: any[]) {\n if (new.target === FileBuffer) {\n throw new Error('请使用静态方法 fromXXX 创建实例')\n }\n // @ts-expect-error Buffer.from\n this.#buf = Buffer.from(...args)\n }\n\n /*************************************************************************/\n /** Buffer -> Buffer ➡️ 新创建的 Buffer 与原 Buffer 共享相同的数据但修改互不影响 */\n /*************************************************************************/\n\n static fromBuffer(buffer: Buffer): FileBuffer {\n return new (class extends FileBuffer { })(buffer)\n }\n\n toBuffer(): Uint8Array {\n return Buffer.from(this.#buf)\n }\n\n /***********************************************************************************/\n /** Buffer -> ArrayBuffer ➡️ 可指定区间;修改 Buffer 会直接修改 ArrayBuffer 的内容 */\n /***********************************************************************************/\n\n static fromArrayBuffer(arrayBuffer: ArrayBuffer, byteOffset?: number, length?: number): FileBuffer {\n return new (class extends FileBuffer { })(arrayBuffer, byteOffset, length)\n }\n\n toArrayBuffer(): ArrayBuffer {\n const begin = this.#buf.byteOffset\n const end = begin + this.#buf.length\n // Buffer 实例的 .buffer 属性指向底层的 ArrayBuffer\n // .slice(offset, end) 用于确保只返回 Buffer 实际占用的部分\n return this.#buf.buffer.slice(begin, end) as ArrayBuffer\n }\n\n /***********************************************************************************/\n /** Buffer -> ArrayBuffer -> TypedArray ➡️ 修改 Buffer 会直接修改 TypedArray 的内容 */\n /***********************************************************************************/\n\n static fromUint8Array(uint8Array: Uint8Array): FileBuffer {\n return new (class extends FileBuffer { })(uint8Array)\n }\n\n toUint8Array(): Uint8Array {\n return new Uint8Array(this.toArrayBuffer())\n }\n\n /***********************************************************************************/\n /** Buffer -> ArrayBuffer -> Blob -> File/ObjectURL ➡️ 异步 + 参数指定 MIME 类型 */\n /***********************************************************************************/\n\n static async fromBlob(blob: Blob): Promise<FileBuffer> {\n const arrayBuffer = await blob.arrayBuffer()\n return new (class extends FileBuffer { })(arrayBuffer)\n }\n\n toBlob(options?: FileBlobOptions): Blob {\n return new Blob([this.toArrayBuffer()], options)\n }\n\n /***********************************************************************************/\n /** Buffer -> String ➡️ 无需手动通过 Blob 和 FileReader 转换, Buffer.toString() 已实现 */\n /***********************************************************************************/\n\n static fromString(str: string, encoding?: string): FileBuffer {\n return new (class extends FileBuffer { })(str, encoding)\n }\n\n toString(encoding?: FileBufferEncoding): string {\n return this.#buf.toString(encoding)\n }\n}\n","const BYTE_UNITS = [\n\t'B',\n\t'kB',\n\t'MB',\n\t'GB',\n\t'TB',\n\t'PB',\n\t'EB',\n\t'ZB',\n\t'YB',\n];\n\nconst BIBYTE_UNITS = [\n\t'B',\n\t'KiB',\n\t'MiB',\n\t'GiB',\n\t'TiB',\n\t'PiB',\n\t'EiB',\n\t'ZiB',\n\t'YiB',\n];\n\nconst BIT_UNITS = [\n\t'b',\n\t'kbit',\n\t'Mbit',\n\t'Gbit',\n\t'Tbit',\n\t'Pbit',\n\t'Ebit',\n\t'Zbit',\n\t'Ybit',\n];\n\nconst BIBIT_UNITS = [\n\t'b',\n\t'kibit',\n\t'Mibit',\n\t'Gibit',\n\t'Tibit',\n\t'Pibit',\n\t'Eibit',\n\t'Zibit',\n\t'Yibit',\n];\n\n/*\nFormats the given number using `Number#toLocaleString`.\n- If locale is a string, the value is expected to be a locale-key (for example: `de`).\n- If locale is true, the system default locale is used for translation.\n- If no value for locale is specified, the number is returned unmodified.\n*/\nconst toLocaleString = (number, locale, options) => {\n\tlet result = number;\n\tif (typeof locale === 'string' || Array.isArray(locale)) {\n\t\tresult = number.toLocaleString(locale, options);\n\t} else if (locale === true || options !== undefined) {\n\t\tresult = number.toLocaleString(undefined, options);\n\t}\n\n\treturn result;\n};\n\nconst log10 = numberOrBigInt => {\n\tif (typeof numberOrBigInt === 'number') {\n\t\treturn Math.log10(numberOrBigInt);\n\t}\n\n\tconst string = numberOrBigInt.toString(10);\n\n\treturn string.length + Math.log10(`0.${string.slice(0, 15)}`);\n};\n\nconst log = numberOrBigInt => {\n\tif (typeof numberOrBigInt === 'number') {\n\t\treturn Math.log(numberOrBigInt);\n\t}\n\n\treturn log10(numberOrBigInt) * Math.log(10);\n};\n\nconst divide = (numberOrBigInt, divisor) => {\n\tif (typeof numberOrBigInt === 'number') {\n\t\treturn numberOrBigInt / divisor;\n\t}\n\n\tconst integerPart = numberOrBigInt / BigInt(divisor);\n\tconst remainder = numberOrBigInt % BigInt(divisor);\n\treturn Number(integerPart) + (Number(remainder) / divisor);\n};\n\nconst applyFixedWidth = (result, fixedWidth) => {\n\tif (fixedWidth === undefined) {\n\t\treturn result;\n\t}\n\n\tif (typeof fixedWidth !== 'number' || !Number.isSafeInteger(fixedWidth) || fixedWidth < 0) {\n\t\tthrow new TypeError(`Expected fixedWidth to be a non-negative integer, got ${typeof fixedWidth}: ${fixedWidth}`);\n\t}\n\n\tif (fixedWidth === 0) {\n\t\treturn result;\n\t}\n\n\treturn result.length < fixedWidth ? result.padStart(fixedWidth, ' ') : result;\n};\n\nconst buildLocaleOptions = options => {\n\tconst {minimumFractionDigits, maximumFractionDigits} = options;\n\n\tif (minimumFractionDigits === undefined && maximumFractionDigits === undefined) {\n\t\treturn undefined;\n\t}\n\n\treturn {\n\t\t...(minimumFractionDigits !== undefined && {minimumFractionDigits}),\n\t\t...(maximumFractionDigits !== undefined && {maximumFractionDigits}),\n\t\troundingMode: 'trunc',\n\t};\n};\n\nexport default function prettyBytes(number, options) {\n\tif (typeof number !== 'bigint' && !Number.isFinite(number)) {\n\t\tthrow new TypeError(`Expected a finite number, got ${typeof number}: ${number}`);\n\t}\n\n\toptions = {\n\t\tbits: false,\n\t\tbinary: false,\n\t\tspace: true,\n\t\tnonBreakingSpace: false,\n\t\t...options,\n\t};\n\n\tconst UNITS = options.bits\n\t\t? (options.binary ? BIBIT_UNITS : BIT_UNITS)\n\t\t: (options.binary ? BIBYTE_UNITS : BYTE_UNITS);\n\n\tconst separator = options.space ? (options.nonBreakingSpace ? '\\u00A0' : ' ') : '';\n\n\t// Handle signed zero case\n\tconst isZero = typeof number === 'number' ? number === 0 : number === 0n;\n\tif (options.signed && isZero) {\n\t\tconst result = ` 0${separator}${UNITS[0]}`;\n\t\treturn applyFixedWidth(result, options.fixedWidth);\n\t}\n\n\tconst isNegative = number < 0;\n\tconst prefix = isNegative ? '-' : (options.signed ? '+' : '');\n\n\tif (isNegative) {\n\t\tnumber = -number;\n\t}\n\n\tconst localeOptions = buildLocaleOptions(options);\n\tlet result;\n\n\tif (number < 1) {\n\t\tconst numberString = toLocaleString(number, options.locale, localeOptions);\n\t\tresult = prefix + numberString + separator + UNITS[0];\n\t} else {\n\t\tconst exponent = Math.min(Math.floor(options.binary ? log(number) / Math.log(1024) : log10(number) / 3), UNITS.length - 1);\n\t\tnumber = divide(number, (options.binary ? 1024 : 1000) ** exponent);\n\n\t\tif (!localeOptions) {\n\t\t\tconst minPrecision = Math.max(3, Math.floor(number).toString().length);\n\t\t\tnumber = number.toPrecision(minPrecision);\n\t\t}\n\n\t\tconst numberString = toLocaleString(Number(number), options.locale, localeOptions);\n\t\tconst unit = UNITS[exponent];\n\t\tresult = prefix + numberString + separator + unit;\n\t}\n\n\treturn applyFixedWidth(result, options.fixedWidth);\n}\n","import type { Options } from 'pretty-bytes'\nimport prettyBytes from 'pretty-bytes'\n\nexport type FileBytesOptions = Options\n\nexport const fileBytes = prettyBytes\n","export const defaultMessages = 'End-Of-Stream';\n/**\n * Thrown on read operation of the end of file or stream has been reached\n */\nexport class EndOfStreamError extends Error {\n constructor() {\n super(defaultMessages);\n this.name = \"EndOfStreamError\";\n }\n}\nexport class AbortError extends Error {\n constructor(message = \"The operation was aborted\") {\n super(message);\n this.name = \"AbortError\";\n }\n}\n","export class Deferred {\n constructor() {\n this.resolve = () => null;\n this.reject = () => null;\n this.promise = new Promise((resolve, reject) => {\n this.reject = reject;\n this.resolve = resolve;\n });\n }\n}\n","import { EndOfStreamError, AbortError } from \"./Errors.js\";\nexport class AbstractStreamReader {\n constructor() {\n this.endOfStream = false;\n this.interrupted = false;\n /**\n * Store peeked data\n * @type {Array}\n */\n this.peekQueue = [];\n }\n async peek(uint8Array, mayBeLess = false) {\n const bytesRead = await this.read(uint8Array, mayBeLess);\n this.peekQueue.push(uint8Array.subarray(0, bytesRead)); // Put read data back to peek buffer\n return bytesRead;\n }\n async read(buffer, mayBeLess = false) {\n if (buffer.length === 0) {\n return 0;\n }\n let bytesRead = this.readFromPeekBuffer(buffer);\n if (!this.endOfStream) {\n bytesRead += await this.readRemainderFromStream(buffer.subarray(bytesRead), mayBeLess);\n }\n if (bytesRead === 0 && !mayBeLess) {\n throw new EndOfStreamError();\n }\n return bytesRead;\n }\n /**\n * Read chunk from stream\n * @param buffer - Target Uint8Array (or Buffer) to store data read from stream in\n * @returns Number of bytes read\n */\n readFromPeekBuffer(buffer) {\n let remaining = buffer.length;\n let bytesRead = 0;\n // consume peeked data first\n while (this.peekQueue.length > 0 && remaining > 0) {\n const peekData = this.peekQueue.pop(); // Front of queue\n if (!peekData)\n throw new Error('peekData should be defined');\n const lenCopy = Math.min(peekData.length, remaining);\n buffer.set(peekData.subarray(0, lenCopy), bytesRead);\n bytesRead += lenCopy;\n remaining -= lenCopy;\n if (lenCopy < peekData.length) {\n // remainder back to queue\n this.peekQueue.push(peekData.subarray(lenCopy));\n }\n }\n return bytesRead;\n }\n async readRemainderFromStream(buffer, mayBeLess) {\n let bytesRead = 0;\n // Continue reading from stream if required\n while (bytesRead < buffer.length && !this.endOfStream) {\n if (this.interrupted) {\n throw new AbortError();\n }\n const chunkLen = await this.readFromStream(buffer.subarray(bytesRead), mayBeLess);\n if (chunkLen === 0)\n break;\n bytesRead += chunkLen;\n }\n if (!mayBeLess && bytesRead < buffer.length) {\n throw new EndOfStreamError();\n }\n return bytesRead;\n }\n}\n","import { AbortError, } from './Errors.js';\nimport { Deferred } from './Deferred.js';\nimport { AbstractStreamReader } from \"./AbstractStreamReader.js\";\n/**\n * Node.js Readable Stream Reader\n * Ref: https://nodejs.org/api/stream.html#readable-streams\n */\nexport class StreamReader extends AbstractStreamReader {\n constructor(s) {\n super();\n this.s = s;\n /**\n * Deferred used for postponed read request (as not data is yet available to read)\n */\n this.deferred = null;\n if (!s.read || !s.once) {\n throw new Error('Expected an instance of stream.Readable');\n }\n this.s.once('end', () => {\n this.endOfStream = true;\n if (this.deferred) {\n this.deferred.resolve(0);\n }\n });\n this.s.once('error', err => this.reject(err));\n this.s.once('close', () => this.abort());\n }\n /**\n * Read chunk from stream\n * @param buffer Target Uint8Array (or Buffer) to store data read from stream in\n * @param mayBeLess - If true, may fill the buffer partially\n * @returns Number of bytes read\n */\n async readFromStream(buffer, mayBeLess) {\n if (buffer.length === 0)\n return 0;\n const readBuffer = this.s.read(buffer.length);\n if (readBuffer) {\n buffer.set(readBuffer);\n return readBuffer.length;\n }\n const request = {\n buffer,\n mayBeLess,\n deferred: new Deferred()\n };\n this.deferred = request.deferred;\n this.s.once('readable', () => {\n this.readDeferred(request);\n });\n return request.deferred.promise;\n }\n /**\n * Process deferred read request\n * @param request Deferred read request\n */\n readDeferred(request) {\n const readBuffer = this.s.read(request.buffer.length);\n if (readBuffer) {\n request.buffer.set(readBuffer);\n request.deferred.resolve(readBuffer.length);\n this.deferred = null;\n }\n else {\n this.s.once('readable', () => {\n this.readDeferred(request);\n });\n }\n }\n reject(err) {\n this.interrupted = true;\n if (this.deferred) {\n this.deferred.reject(err);\n this.deferred = null;\n }\n }\n async abort() {\n this.reject(new AbortError());\n }\n async close() {\n return this.abort();\n }\n}\n","import { AbstractStreamReader } from \"./AbstractStreamReader.js\";\nexport class WebStreamReader extends AbstractStreamReader {\n constructor(reader) {\n super();\n this.reader = reader;\n }\n async abort() {\n return this.close();\n }\n async close() {\n this.reader.releaseLock();\n }\n}\n","import { WebStreamReader } from './WebStreamReader.js';\n/**\n * Read from a WebStream using a BYOB reader\n * Reference: https://nodejs.org/api/webstreams.html#class-readablestreambyobreader\n */\nexport class WebStreamByobReader extends WebStreamReader {\n /**\n * Read from stream\n * @param buffer - Target Uint8Array (or Buffer) to store data read from stream in\n * @param mayBeLess - If true, may fill the buffer partially\n * @protected Bytes read\n */\n async readFromStream(buffer, mayBeLess) {\n if (buffer.length === 0)\n return 0;\n // @ts-ignore\n const result = await this.reader.read(new Uint8Array(buffer.length), { min: mayBeLess ? undefined : buffer.length });\n if (result.done) {\n this.endOfStream = result.done;\n }\n if (result.value) {\n buffer.set(result.value);\n return result.value.length;\n }\n return 0;\n }\n}\n","import { EndOfStreamError } from './Errors.js';\nimport { AbstractStreamReader } from \"./AbstractStreamReader.js\";\nexport class WebStreamDefaultReader extends AbstractStreamReader {\n constructor(reader) {\n super();\n this.reader = reader;\n this.buffer = null; // Internal buffer to store excess data\n }\n /**\n * Copy chunk to target, and store the remainder in this.buffer\n */\n writeChunk(target, chunk) {\n const written = Math.min(chunk.length, target.length);\n target.set(chunk.subarray(0, written));\n // Adjust the remainder of the buffer\n if (written < chunk.length) {\n this.buffer = chunk.subarray(written);\n }\n else {\n this.buffer = null;\n }\n return written;\n }\n /**\n * Read from stream\n * @param buffer - Target Uint8Array (or Buffer) to store data read from stream in\n * @param mayBeLess - If true, may fill the buffer partially\n * @protected Bytes read\n */\n async readFromStream(buffer, mayBeLess) {\n if (buffer.length === 0)\n return 0;\n let totalBytesRead = 0;\n // Serve from the internal buffer first\n if (this.buffer) {\n totalBytesRead += this.writeChunk(buffer, this.buffer);\n }\n // Continue reading from the stream if more data is needed\n while (totalBytesRead < buffer.length && !this.endOfStream) {\n const result = await this.reader.read();\n if (result.done) {\n this.endOfStream = true;\n break;\n }\n if (result.value) {\n totalBytesRead += this.writeChunk(buffer.subarray(totalBytesRead), result.value);\n }\n }\n if (!mayBeLess && totalBytesRead === 0 && this.endOfStream) {\n throw new EndOfStreamError();\n }\n return totalBytesRead;\n }\n abort() {\n this.interrupted = true;\n return this.reader.cancel();\n }\n async close() {\n await this.abort();\n this.reader.releaseLock();\n }\n}\n","import { WebStreamByobReader } from './WebStreamByobReader.js';\nimport { WebStreamDefaultReader } from './WebStreamDefaultReader.js';\nexport function makeWebStreamReader(stream) {\n try {\n const reader = stream.getReader({ mode: \"byob\" });\n if (reader instanceof ReadableStreamDefaultReader) {\n // Fallback to default reader in case `mode: byob` is ignored\n return new WebStreamDefaultReader(reader);\n }\n return new WebStreamByobReader(reader);\n }\n catch (error) {\n if (error instanceof TypeError) {\n // Fallback to default reader in case `mode: byob` rejected by a `TypeError`\n return new WebStreamDefaultReader(stream.getReader());\n }\n throw error;\n }\n}\n","import { EndOfStreamError } from './stream/index.js';\n/**\n * Core tokenizer\n */\nexport class AbstractTokenizer {\n /**\n * Constructor\n * @param options Tokenizer options\n * @protected\n */\n constructor(options) {\n this.numBuffer = new Uint8Array(8);\n /**\n * Tokenizer-stream position\n */\n this.position = 0;\n this.onClose = options?.onClose;\n if (options?.abortSignal) {\n options.abortSignal.addEventListener('abort', () => {\n this.abort();\n });\n }\n }\n /**\n * Read a token from the tokenizer-stream\n * @param token - The token to read\n * @param position - If provided, the desired position in the tokenizer-stream\n * @returns Promise with token data\n */\n async readToken(token, position = this.position) {\n const uint8Array = new Uint8Array(token.len);\n const len = await this.readBuffer(uint8Array, { position });\n if (len < token.len)\n throw new EndOfStreamError();\n return token.get(uint8Array, 0);\n }\n /**\n * Peek a token from the tokenizer-stream.\n * @param token - Token to peek from the tokenizer-stream.\n * @param position - Offset where to begin reading within the file. If position is null, data will be read from the current file position.\n * @returns Promise with token data\n */\n async peekToken(token, position = this.position) {\n const uint8Array = new Uint8Array(token.len);\n const len = await this.peekBuffer(uint8Array, { position });\n if (len < token.len)\n throw new EndOfStreamError();\n return token.get(uint8Array, 0);\n }\n /**\n * Read a numeric token from the stream\n * @param token - Numeric token\n * @returns Promise with number\n */\n async readNumber(token) {\n const len = await this.readBuffer(this.numBuffer, { length: token.len });\n if (len < token.len)\n throw new EndOfStreamError();\n return token.get(this.numBuffer, 0);\n }\n /**\n * Read a numeric token from the stream\n * @param token - Numeric token\n * @returns Promise with number\n */\n async peekNumber(token) {\n const len = await this.peekBuffer(this.numBuffer, { length: token.len });\n if (len < token.len)\n throw new EndOfStreamError();\n return token.get(this.numBuffer, 0);\n }\n /**\n * Ignore number of bytes, advances the pointer in under tokenizer-stream.\n * @param length - Number of bytes to ignore\n * @return resolves the number of bytes ignored, equals length if this available, otherwise the number of bytes available\n */\n async ignore(length) {\n if (this.fileInfo.size !== undefined) {\n const bytesLeft = this.fileInfo.size - this.position;\n if (length > bytesLeft) {\n this.position += bytesLeft;\n return bytesLeft;\n }\n }\n this.position += length;\n return length;\n }\n async close() {\n await this.abort();\n await this.onClose?.();\n }\n normalizeOptions(uint8Array, options) {\n if (!this.supportsRandomAccess() && options && options.position !== undefined && options.position < this.position) {\n throw new Error('`options.position` must be equal or greater than `tokenizer.position`');\n }\n return {\n ...{\n mayBeLess: false,\n offset: 0,\n length: uint8Array.length,\n position: this.position\n }, ...options\n };\n }\n abort() {\n return Promise.resolve(); // Ignore abort signal\n }\n}\n","import { AbstractTokenizer } from './AbstractTokenizer.js';\nimport { EndOfStreamError } from './stream/index.js';\nconst maxBufferSize = 256000;\nexport class ReadStreamTokenizer extends AbstractTokenizer {\n /**\n * Constructor\n * @param streamReader stream-reader to read from\n * @param options Tokenizer options\n */\n constructor(streamReader, options) {\n super(options);\n this.streamReader = streamReader;\n this.fileInfo = options?.fileInfo ?? {};\n }\n /**\n * Read buffer from tokenizer\n * @param uint8Array - Target Uint8Array to fill with data read from the tokenizer-stream\n * @param options - Read behaviour options\n * @returns Promise with number of bytes read\n */\n async readBuffer(uint8Array, options) {\n const normOptions = this.normalizeOptions(uint8Array, options);\n const skipBytes = normOptions.position - this.position;\n if (skipBytes > 0) {\n await this.ignore(skipBytes);\n return this.readBuffer(uint8Array, options);\n }\n if (skipBytes < 0) {\n throw new Error('`options.position` must be equal or greater than `tokenizer.position`');\n }\n if (normOptions.length === 0) {\n return 0;\n }\n const bytesRead = await this.streamReader.read(uint8Array.subarray(0, normOptions.length), normOptions.mayBeLess);\n this.position += bytesRead;\n if ((!options || !options.mayBeLess) && bytesRead < normOptions.length) {\n throw new EndOfStreamError();\n }\n return bytesRead;\n }\n /**\n * Peek (read ahead) buffer from tokenizer\n * @param uint8Array - Uint8Array (or Buffer) to write data to\n * @param options - Read behaviour options\n * @returns Promise with number of bytes peeked\n */\n async peekBuffer(uint8Array, options) {\n const normOptions = this.normalizeOptions(uint8Array, options);\n let bytesRead = 0;\n if (normOptions.position) {\n const skipBytes = normOptions.position - this.position;\n if (skipBytes > 0) {\n const skipBuffer = new Uint8Array(normOptions.length + skipBytes);\n bytesRead = await this.peekBuffer(skipBuffer, { mayBeLess: normOptions.mayBeLess });\n uint8Array.set(skipBuffer.subarray(skipBytes));\n return bytesRead - skipBytes;\n }\n if (skipBytes < 0) {\n throw new Error('Cannot peek from a negative offset in a stream');\n }\n }\n if (normOptions.length > 0) {\n try {\n bytesRead = await this.streamReader.peek(uint8Array.subarray(0, normOptions.length), normOptions.mayBeLess);\n }\n catch (err) {\n if (options?.mayBeLess && err instanceof EndOfStreamError) {\n return 0;\n }\n throw err;\n }\n if ((!normOptions.mayBeLess) && bytesRead < normOptions.length) {\n throw new EndOfStreamError();\n }\n }\n return bytesRead;\n }\n async ignore(length) {\n // debug(`ignore ${this.position}...${this.position + length - 1}`);\n const bufSize = Math.min(maxBufferSize, length);\n const buf = new Uint8Array(bufSize);\n let totBytesRead = 0;\n while (totBytesRead < length) {\n const remaining = length - totBytesRead;\n const bytesRead = await this.readBuffer(buf, { length: Math.min(bufSize, remaining) });\n if (bytesRead < 0) {\n return bytesRead;\n }\n totBytesRead += bytesRead;\n }\n return totBytesRead;\n }\n abort() {\n return this.streamReader.abort();\n }\n async close() {\n return this.streamReader.close();\n }\n supportsRandomAccess() {\n return false;\n }\n}\n","import { EndOfStreamError } from './stream/index.js';\nimport { AbstractTokenizer } from './AbstractTokenizer.js';\nexport class BufferTokenizer extends AbstractTokenizer {\n /**\n * Construct BufferTokenizer\n * @param uint8Array - Uint8Array to tokenize\n * @param options Tokenizer options\n */\n constructor(uint8Array, options) {\n super(options);\n this.uint8Array = uint8Array;\n this.fileInfo = { ...options?.fileInfo ?? {}, ...{ size: uint8Array.length } };\n }\n /**\n * Read buffer from tokenizer\n * @param uint8Array - Uint8Array to tokenize\n * @param options - Read behaviour options\n * @returns {Promise<number>}\n */\n async readBuffer(uint8Array, options) {\n if (options?.position) {\n this.position = options.position;\n }\n const bytesRead = await this.peekBuffer(uint8Array, options);\n this.position += bytesRead;\n return bytesRead;\n }\n /**\n * Peek (read ahead) buffer from tokenizer\n * @param uint8Array\n * @param options - Read behaviour options\n * @returns {Promise<number>}\n */\n async peekBuffer(uint8Array, options) {\n const normOptions = this.normalizeOptions(uint8Array, options);\n const bytes2read = Math.min(this.uint8Array.length - normOptions.position, normOptions.length);\n if ((!normOptions.mayBeLess) && bytes2read < normOptions.length) {\n throw new EndOfStreamError();\n }\n uint8Array.set(this.uint8Array.subarray(normOptions.position, normOptions.position + bytes2read));\n return bytes2read;\n }\n close() {\n return super.close();\n }\n supportsRandomAccess() {\n return true;\n }\n setPosition(position) {\n this.position = position;\n }\n}\n","import { EndOfStreamError } from './stream/index.js';\nimport { AbstractTokenizer } from './AbstractTokenizer.js';\nexport class BlobTokenizer extends AbstractTokenizer {\n /**\n * Construct BufferTokenizer\n * @param blob - Uint8Array to tokenize\n * @param options Tokenizer options\n */\n constructor(blob, options) {\n super(options);\n this.blob = blob;\n this.fileInfo = { ...options?.fileInfo ?? {}, ...{ size: blob.size, mimeType: blob.type } };\n }\n /**\n * Read buffer from tokenizer\n * @param uint8Array - Uint8Array to tokenize\n * @param options - Read behaviour options\n * @returns {Promise<number>}\n */\n async readBuffer(uint8Array, options) {\n if (options?.position) {\n this.position = options.position;\n }\n const bytesRead = await this.peekBuffer(uint8Array, options);\n this.position += bytesRead;\n return bytesRead;\n }\n /**\n * Peek (read ahead) buffer from tokenizer\n * @param buffer\n * @param options - Read behaviour options\n * @returns {Promise<number>}\n */\n async peekBuffer(buffer, options) {\n const normOptions = this.normalizeOptions(buffer, options);\n const bytes2read = Math.min(this.blob.size - normOptions.position, normOptions.length);\n if ((!normOptions.mayBeLess) && bytes2read < normOptions.length) {\n throw new EndOfStreamError();\n }\n const arrayBuffer = await this.blob.slice(normOptions.position, normOptions.position + bytes2read).arrayBuffer();\n buffer.set(new Uint8Array(arrayBuffer));\n return bytes2read;\n }\n close() {\n return super.close();\n }\n supportsRandomAccess() {\n return true;\n }\n setPosition(position) {\n this.position = position;\n }\n}\n","import { StreamReader, makeWebStreamReader } from './stream/index.js';\nimport { ReadStreamTokenizer } from './ReadStreamTokenizer.js';\nimport { BufferTokenizer } from './BufferTokenizer.js';\nimport { BlobTokenizer } from './BlobTokenizer.js';\nexport { EndOfStreamError, AbortError } from './stream/index.js';\nexport { AbstractTokenizer } from './AbstractTokenizer.js';\n/**\n * Construct ReadStreamTokenizer from given Stream.\n * Will set fileSize, if provided given Stream has set the .path property/\n * @param stream - Read from Node.js Stream.Readable\n * @param options - Tokenizer options\n * @returns ReadStreamTokenizer\n */\nexport function fromStream(stream, options) {\n const streamReader = new StreamReader(stream);\n const _options = options ?? {};\n const chainedClose = _options.onClose;\n _options.onClose = async () => {\n await streamReader.close();\n if (chainedClose) {\n return chainedClose();\n }\n };\n return new ReadStreamTokenizer(streamReader, _options);\n}\n/**\n * Construct ReadStreamTokenizer from given ReadableStream (WebStream API).\n * Will set fileSize, if provided given Stream has set the .path property/\n * @param webStream - Read from Node.js Stream.Readable (must be a byte stream)\n * @param options - Tokenizer options\n * @returns ReadStreamTokenizer\n */\nexport function fromWebStream(webStream, options) {\n const webStreamReader = makeWebStreamReader(webStream);\n const _options = options ?? {};\n const chainedClose = _options.onClose;\n _options.onClose = async () => {\n await webStreamReader.close();\n if (chainedClose) {\n return chainedClose();\n }\n };\n return new ReadStreamTokenizer(webStreamReader, _options);\n}\n/**\n * Construct ReadStreamTokenizer from given Buffer.\n * @param uint8Array - Uint8Array to tokenize\n * @param options - Tokenizer options\n * @returns BufferTokenizer\n */\nexport function fromBuffer(uint8Array, options) {\n return new BufferTokenizer(uint8Array, options);\n}\n/**\n * Construct ReadStreamTokenizer from given Blob.\n * @param blob - Uint8Array to tokenize\n * @param options - Tokenizer options\n * @returns BufferTokenizer\n */\nexport function fromBlob(blob, options) {\n return new BlobTokenizer(blob, options);\n}\n","import { AbstractTokenizer } from './AbstractTokenizer.js';\nimport { EndOfStreamError } from './stream/index.js';\nimport { open as fsOpen } from 'node:fs/promises';\nexport class FileTokenizer extends AbstractTokenizer {\n /**\n * Create tokenizer from provided file path\n * @param sourceFilePath File path\n */\n static async fromFile(sourceFilePath) {\n const fileHandle = await fsOpen(sourceFilePath, 'r');\n const stat = await fileHandle.stat();\n return new FileTokenizer(fileHandle, { fileInfo: { path: sourceFilePath, size: stat.size } });\n }\n constructor(fileHandle, options) {\n super(options);\n this.fileHandle = fileHandle;\n this.fileInfo = options.fileInfo;\n }\n /**\n * Read buffer from file\n * @param uint8Array - Uint8Array to write result to\n * @param options - Read behaviour options\n * @returns Promise number of bytes read\n */\n async readBuffer(uint8Array, options) {\n const normOptions = this.normalizeOptions(uint8Array, options);\n this.position = normOptions.position;\n if (normOptions.length === 0)\n return 0;\n const res = await this.fileHandle.read(uint8Array, 0, normOptions.length, normOptions.position);\n this.position += res.bytesRead;\n if (res.bytesRead < normOptions.length && (!options || !options.mayBeLess)) {\n throw new EndOfStreamError();\n }\n return res.bytesRead;\n }\n /**\n * Peek buffer from file\n * @param uint8Array - Uint8Array (or Buffer) to write data to\n * @param options - Read behaviour options\n * @returns Promise number of bytes read\n */\n async peekBuffer(uint8Array, options) {\n const normOptions = this.normalizeOptions(uint8Array, options);\n const res = await this.fileHandle.read(uint8Array, 0, normOptions.length, normOptions.position);\n if ((!normOptions.mayBeLess) && res.bytesRead < normOptions.length) {\n throw new EndOfStreamError();\n }\n return res.bytesRead;\n }\n async close() {\n await this.fileHandle.close();\n return super.close();\n }\n setPosition(position) {\n this.position = position;\n }\n supportsRandomAccess() {\n return true;\n }\n}\n","import { stat as fsStat } from 'node:fs/promises';\nimport { fromStream as coreFromStream } from './core.js';\nimport { FileTokenizer } from \"./FileTokenizer.js\";\nexport { FileTokenizer } from './FileTokenizer.js';\nexport * from './core.js';\n/**\n * Construct ReadStreamTokenizer from given Stream.\n * Will set fileSize, if provided given Stream has set the .path property.\n * @param stream - Node.js Stream.Readable\n * @param options - Pass additional file information to the tokenizer\n * @returns Tokenizer\n */\nexport async function fromStream(stream, options) {\n const rst = coreFromStream(stream, options);\n if (stream.path) {\n const stat = await fsStat(stream.path);\n rst.fileInfo.path = stream.path;\n rst.fileInfo.size = stat.size;\n }\n return rst;\n}\nexport const fromFile = FileTokenizer.fromFile;\n","// text-polyfill.ts\n// Minimal encode/decode for utf-8, utf-16le, ascii, latin1, windows-1252\nconst WINDOWS_1252_EXTRA = {\n 0x80: \"€\", 0x82: \"‚\", 0x83: \"ƒ\", 0x84: \"„\", 0x85: \"…\", 0x86: \"†\",\n 0x87: \"‡\", 0x88: \"ˆ\", 0x89: \"‰\", 0x8a: \"Š\", 0x8b: \"‹\", 0x8c: \"Œ\",\n 0x8e: \"Ž\", 0x91: \"‘\", 0x92: \"’\", 0x93: \"“\", 0x94: \"”\", 0x95: \"•\",\n 0x96: \"–\", 0x97: \"—\", 0x98: \"˜\", 0x99: \"™\", 0x9a: \"š\", 0x9b: \"›\",\n 0x9c: \"œ\", 0x9e: \"ž\", 0x9f: \"Ÿ\",\n};\nconst WINDOWS_1252_REVERSE = {};\nfor (const [code, char] of Object.entries(WINDOWS_1252_EXTRA)) {\n WINDOWS_1252_REVERSE[char] = Number.parseInt(code);\n}\n/**\n * Decode text from binary data\n * @param bytes Binary data\n * @param encoding Encoding\n */\nexport function textDecode(bytes, encoding = \"utf-8\") {\n switch (encoding.toLowerCase()) {\n case \"utf-8\":\n case \"utf8\":\n if (typeof globalThis.TextDecoder !== \"undefined\") {\n return new globalThis.TextDecoder(\"utf-8\").decode(bytes);\n }\n return decodeUTF8(bytes);\n case \"utf-16le\":\n return decodeUTF16LE(bytes);\n case \"ascii\":\n return decodeASCII(bytes);\n case \"latin1\":\n case \"iso-8859-1\":\n return decodeLatin1(bytes);\n case \"windows-1252\":\n return decodeWindows1252(bytes);\n default:\n throw new RangeError(`Encoding '${encoding}' not supported`);\n }\n}\nexport function textEncode(input = \"\", encoding = \"utf-8\") {\n switch (encoding.toLowerCase()) {\n case \"utf-8\":\n case \"utf8\":\n if (typeof globalThis.TextEncoder !== \"undefined\") {\n return new globalThis.TextEncoder().encode(input);\n }\n return encodeUTF8(input);\n case \"utf-16le\":\n return encodeUTF16LE(input);\n case \"ascii\":\n return encodeASCII(input);\n case \"latin1\":\n case \"iso-8859-1\":\n return encodeLatin1(input);\n case \"windows-1252\":\n return encodeWindows1252(input);\n default:\n throw new RangeError(`Encoding '${encoding}' not supported`);\n }\n}\n// --- Internal helpers ---\nfunction decodeUTF8(bytes) {\n let out = \"\";\n let i = 0;\n while (i < bytes.length) {\n const b1 = bytes[i++];\n if (b1 < 0x80) {\n out += String.fromCharCode(b1);\n }\n else if (b1 < 0xe0) {\n const b2 = bytes[i++] & 0x3f;\n out += String.fromCharCode(((b1 & 0x1f) << 6) | b2);\n }\n else if (b1 < 0xf0) {\n const b2 = bytes[i++] & 0x3f;\n const b3 = bytes[i++] & 0x3f;\n out += String.fromCharCode(((b1 & 0x0f) << 12) | (b2 << 6) | b3);\n }\n else {\n const b2 = bytes[i++] & 0x3f;\n const b3 = bytes[i++] & 0x3f;\n const b4 = bytes[i++] & 0x3f;\n let cp = ((b1 & 0x07) << 18) |\n (b2 << 12) |\n (b3 << 6) |\n b4;\n cp -= 0x10000;\n out += String.fromCharCode(0xd800 + ((cp >> 10) & 0x3ff), 0xdc00 + (cp & 0x3ff));\n }\n }\n return out;\n}\nfunction decodeUTF16LE(bytes) {\n let out = \"\";\n for (let i = 0; i < bytes.length; i += 2) {\n out += String.fromCharCode(bytes[i] | (bytes[i + 1] << 8));\n }\n return out;\n}\nfunction decodeASCII(bytes) {\n return String.fromCharCode(...bytes.map((b) => b & 0x7f));\n}\nfunction decodeLatin1(bytes) {\n return String.fromCharCode(...bytes);\n}\nfunction decodeWindows1252(bytes) {\n let out = \"\";\n for (const b of bytes) {\n if (b >= 0x80 && b <= 0x9f && WINDOWS_1252_EXTRA[b]) {\n out += WINDOWS_1252_EXTRA[b];\n }\n else {\n out += String.fromCharCode(b);\n }\n }\n return out;\n}\nfunction encodeUTF8(str) {\n const out = [];\n for (let i = 0; i < str.length; i++) {\n const cp = str.charCodeAt(i);\n if (cp < 0x80) {\n out.push(cp);\n }\n else if (cp < 0x800) {\n out.push(0xc0 | (cp >> 6), 0x80 | (cp & 0x3f));\n }\n else if (cp < 0x10000) {\n out.push(0xe0 | (cp >> 12), 0x80 | ((cp >> 6) & 0x3f), 0x80 | (cp & 0x3f));\n }\n else {\n out.push(0xf0 | (cp >> 18), 0x80 | ((cp >> 12) & 0x3f), 0x80 | ((cp >> 6) & 0x3f), 0x80 | (cp & 0x3f));\n }\n }\n return new Uint8Array(out);\n}\nfunction encodeUTF16LE(str) {\n const out = new Uint8Array(str.length * 2);\n for (let i = 0; i < str.length; i++) {\n const code = str.charCodeAt(i);\n out[i * 2] = code & 0xff;\n out[i * 2 + 1] = code >> 8;\n }\n return out;\n}\nfunction encodeASCII(str) {\n return new Uint8Array([...str].map((ch) => ch.charCodeAt(0) & 0x7f));\n}\nfunction encodeLatin1(str) {\n return new Uint8Array([...str].map((ch) => ch.charCodeAt(0) & 0xff));\n}\nfunction encodeWindows1252(str) {\n return new Uint8Array([...str].map((ch) => {\n const code = ch.charCodeAt(0);\n if (code <= 0xff)\n return code;\n if (WINDOWS_1252_REVERSE[ch] !== undefined)\n return WINDOWS_1252_REVERSE[ch];\n return 0x3f; // '?'\n }));\n}\n","import * as ieee754 from 'ieee754';\nimport { textDecode } from \"@borewit/text-codec\";\n// Primitive types\nfunction dv(array) {\n return new DataView(array.buffer, array.byteOffset);\n}\n/*\n * 8-bit unsigned integer\n */\nexport const UINT8 = {\n len: 1,\n get(array, offset) {\n return dv(array).getUint8(offset);\n },\n put(array, offset, value) {\n dv(array).setUint8(offset, value);\n return offset + 1;\n }\n};\n/**\n * 16-bit unsigned integer, Little Endian byte order\n */\nexport const UINT16_LE = {\n len: 2,\n get(array, offset) {\n return dv(array).getUint16(offset, true);\n },\n put(array, offset, value) {\n dv(array).setUint16(offset, value, true);\n return offset + 2;\n }\n};\n/**\n * 16-bit unsigned integer, Big Endian byte order\n */\nexport const UINT16_BE = {\n len: 2,\n get(array, offset) {\n return dv(array).getUint16(offset);\n },\n put(array, offset, value) {\n dv(array).setUint16(offset, value);\n return offset + 2;\n }\n};\n/**\n * 24-bit unsigned integer, Little Endian byte order\n */\nexport const UINT24_LE = {\n len: 3,\n get(array, offset) {\n const dataView = dv(array);\n return dataView.getUint8(offset) + (dataView.getUint16(offset + 1, true) << 8);\n },\n put(array, offset, value) {\n const dataView = dv(array);\n dataView.setUint8(offset, value & 0xff);\n dataView.setUint16(offset + 1, value >> 8, true);\n return offset + 3;\n }\n};\n/**\n * 24-bit unsigned integer, Big Endian byte order\n */\nexport const UINT24_BE = {\n len: 3,\n get(array, offset) {\n const dataView = dv(array);\n return (dataView.getUint16(offset) << 8) + dataView.getUint8(offset + 2);\n },\n put(array, offset, value) {\n const dataView = dv(array);\n dataView.setUint16(offset, value >> 8);\n dataView.setUint8(offset + 2, value & 0xff);\n return offset + 3;\n }\n};\n/**\n * 32-bit unsigned integer, Little Endian byte order\n */\nexport const UINT32_LE = {\n len: 4,\n get(array, offset) {\n return dv(array).getUint32(offset, true);\n },\n put(array, offset, value) {\n dv(array).setUint32(offset, value, true);\n return offset + 4;\n }\n};\n/**\n * 32-bit unsigned integer, Big Endian byte order\n */\nexport const UINT32_BE = {\n len: 4,\n get(array, offset) {\n return dv(array).getUint32(offset);\n },\n put(array, offset, value) {\n dv(array).setUint32(offset, value);\n return offset + 4;\n }\n};\n/**\n * 8-bit signed integer\n */\nexport const INT8 = {\n len: 1,\n get(array, offset) {\n return dv(array).getInt8(offset);\n },\n put(array, offset, value) {\n dv(array).setInt8(offset, value);\n return offset + 1;\n }\n};\n/**\n * 16-bit signed integer, Big Endian byte order\n */\nexport const INT16_BE = {\n len: 2,\n get(array, offset) {\n return dv(array).getInt16(offset);\n },\n put(array, offset, value) {\n dv(array).setInt16(offset, value);\n return offset + 2;\n }\n};\n/**\n * 16-bit signed integer, Little Endian byte order\n */\nexport const INT16_LE = {\n len: 2,\n get(array, offset) {\n return dv(array).getInt16(offset, true);\n },\n put(array, offset, value) {\n dv(array).setInt16(offset, value, true);\n return offset + 2;\n }\n};\n/**\n * 24-bit signed integer, Little Endian byte order\n */\nexport const INT24_LE = {\n len: 3,\n get(array, offset) {\n const unsigned = UINT24_LE.get(array, offset);\n return unsigned > 0x7fffff ? unsigned - 0x1000000 : unsigned;\n },\n put(array, offset, value) {\n const dataView = dv(array);\n dataView.setUint8(offset, value & 0xff);\n dataView.setUint16(offset + 1, value >> 8, true);\n return offset + 3;\n }\n};\n/**\n * 24-bit signed integer, Big Endian byte order\n */\nexport const INT24_BE = {\n len: 3,\n get(array, offset) {\n const unsigned = UINT24_BE.get(array, offset);\n return unsigned > 0x7fffff ? unsigned - 0x1000000 : unsigned;\n },\n put(array, offset, value) {\n const dataView = dv(array);\n dataView.setUint16(offset, value >> 8);\n dataView.setUint8(offset + 2, value & 0xff);\n return offset + 3;\n }\n};\n/**\n * 32-bit signed integer, Big Endian byte order\n */\nexport const INT32_BE = {\n len: 4,\n get(array, offset) {\n return dv(array).getInt32(offset);\n },\n put(array, offset, value) {\n dv(array).setInt32(offset, value);\n return offset + 4;\n }\n};\n/**\n * 32-bit signed integer, Big Endian byte order\n */\nexport const INT32_LE = {\n len: 4,\n get(array, offset) {\n return dv(array).getInt32(offset, true);\n },\n put(array, offset, value) {\n dv(array).setInt32(offset, value, true);\n return offset + 4;\n }\n};\n/**\n * 64-bit unsigned integer, Little Endian byte order\n */\nexport const UINT64_LE = {\n len: 8,\n get(array, offset) {\n return dv(array).getBigUint64(offset, true);\n },\n put(array, offset, value) {\n dv(array).setBigUint64(offset, value, true);\n return offset + 8;\n }\n};\n/**\n * 64-bit signed integer, Little Endian byte order\n */\nexport const INT64_LE = {\n len: 8,\n get(array, offset) {\n return dv(array).getBigInt64(offset, true);\n },\n put(array, offset, value) {\n dv(array).setBigInt64(offset, value, true);\n return offset + 8;\n }\n};\n/**\n * 64-bit unsigned integer, Big Endian byte order\n */\nexport const UINT64_BE = {\n len: 8,\n get(array, offset) {\n return dv(array).getBigUint64(offset);\n },\n put(array, offset, value) {\n dv(array).setBigUint64(offset, value);\n return offset + 8;\n }\n};\n/**\n * 64-bit signed integer, Big Endian byte order\n */\nexport const INT64_BE = {\n len: 8,\n get(array, offset) {\n return dv(array).getBigInt64(offset);\n },\n put(array, offset, value) {\n dv(array).setBigInt64(offset, value);\n return offset + 8;\n }\n};\n/**\n * IEEE 754 16-bit (half precision) float, big endian\n */\nexport const Float16_BE = {\n len: 2,\n get(dataView, offset) {\n return ieee754.read(dataView, offset, false, 10, this.len);\n },\n put(dataView, offset, value) {\n ieee754.write(dataView, value, offset, false, 10, this.len);\n return offset + this.len;\n }\n};\n/**\n * IEEE 754 16-bit (half precision) float, little endian\n */\nexport const Float16_LE = {\n len: 2,\n get(array, offset) {\n return ieee754.read(array, offset, true, 10, this.len);\n },\n put(array, offset, value) {\n ieee754.write(array, value, offset, true, 10, this.len);\n return offset + this.len;\n }\n};\n/**\n * IEEE 754 32-bit (single precision) float, big endian\n */\nexport const Float32_BE = {\n len: 4,\n get(array, offset) {\n return dv(array).getFloat32(offset);\n },\n put(array, offset, value) {\n dv(array).setFloat32(offset, value);\n return offset + 4;\n }\n};\n/**\n * IEEE 754 32-bit (single precision) float, little endian\n */\nexport const Float32_LE = {\n len: 4,\n get(array, offset) {\n return dv(array).getFloat32(offset, true);\n },\n put(array, offset, value) {\n dv(array).setFloat32(offset, value, true);\n return offset + 4;\n }\n};\n/**\n * IEEE 754 64-bit (double precision) float, big endian\n */\nexport const Float64_BE = {\n len: 8,\n get(array, offset) {\n return dv(array).getFloat64(offset);\n },\n put(array, offset, value) {\n dv(array).setFloat64(offset, value);\n return offset + 8;\n }\n};\n/**\n * IEEE 754 64-bit (double precision) float, little endian\n */\nexport const Float64_LE = {\n len: 8,\n get(array, offset) {\n return dv(array).getFloat64(offset, true);\n },\n put(array, offset, value) {\n dv(array).setFloat64(offset, value, true);\n return offset + 8;\n }\n};\n/**\n * IEEE 754 80-bit (extended precision) float, big endian\n */\nexport const Float80_BE = {\n len: 10,\n get(array, offset) {\n return ieee754.read(array, offset, false, 63, this.len);\n },\n put(array, offset, value) {\n ieee754.write(array, value, offset, false, 63, this.len);\n return offset + this.len;\n }\n};\n/**\n * IEEE 754 80-bit (extended precision) float, little endian\n */\nexport const Float80_LE = {\n len: 10,\n get(array, offset) {\n return ieee754.read(array, offset, true, 63, this.len);\n },\n put(array, offset, value) {\n ieee754.write(array, value, offset, true, 63, this.len);\n return offset + this.len;\n }\n};\n/**\n * Ignore a given number of bytes\n */\nexport class IgnoreType {\n /**\n * @param len number of bytes to ignore\n */\n constructor(len) {\n this.len = len;\n }\n // ToDo: don't read, but skip data\n get(_array, _off) {\n }\n}\nexport class Uint8ArrayType {\n constructor(len) {\n this.len = len;\n }\n get(array, offset) {\n return array.subarray(offset, offset + this.len);\n }\n}\n/**\n * Consume a fixed number of bytes from the stream and return a string with a specified encoding.\n * Supports all encodings supported by TextDecoder, plus 'windows-1252'.\n */\nexport class StringType {\n constructor(len, encoding) {\n this.len = len;\n this.encoding = encoding;\n }\n get(data, offset = 0) {\n const bytes = data.subarray(offset, offset + this.len);\n return textDecode(bytes, this.encoding);\n }\n}\n/**\n * ANSI Latin 1 String using Windows-1252 (Code Page 1252)\n * Windows-1252 is a superset of ISO 8859-1 / Latin-1.\n */\nexport class AnsiStringType extends StringType {\n constructor(len) {\n super(len, 'windows-1252');\n }\n}\n","/**\n * Helpers.\n */\n\nvar s = 1000;\nvar m = s * 60;\nvar h = m * 60;\nvar d = h * 24;\nvar w = d * 7;\nvar y = d * 365.25;\n\n/**\n * Parse or format the given `val`.\n *\n * Options:\n *\n * - `long` verbose formatting [false]\n *\n * @param {String|Number} val\n * @param {Object} [options]\n * @throws {Error} throw an error if val is not a non-empty string or a number\n * @return {String|Number}\n * @api public\n */\n\nmodule.exports = function (val, options) {\n options = options || {};\n var type = typeof val;\n if (type === 'string' && val.length > 0) {\n return parse(val);\n } else if (type === 'number' && isFinite(val)) {\n return options.long ? fmtLong(val) : fmtShort(val);\n }\n throw new Error(\n 'val is not a non-empty string or a valid number. val=' +\n JSON.stringify(val)\n );\n};\n\n/**\n * Parse the given `str` and return milliseconds.\n *\n * @param {String} str\n * @return {Number}\n * @api private\n */\n\nfunction parse(str) {\n str = String(str);\n if (str.length > 100) {\n return;\n }\n var match = /^(-?(?:\\d+)?\\.?\\d+) *(milliseconds?|msecs?|ms|seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|weeks?|w|years?|yrs?|y)?$/i.exec(\n str\n );\n if (!match) {\n return;\n }\n var n = parseFloat(match[1]);\n var type = (match[2] || 'ms').toLowerCase();\n switch (type) {\n case 'years':\n case 'year':\n case 'yrs':\n case 'yr':\n case 'y':\n return n * y;\n case 'weeks':\n case 'week':\n case 'w':\n return n * w;\n case 'days':\n case 'day':\n case 'd':\n return n * d;\n case 'hours':\n case 'hour':\n case 'hrs':\n case 'hr':\n case 'h':\n return n * h;\n case 'minutes':\n case 'minute':\n case 'mins':\n case 'min':\n case 'm':\n return n * m;\n case 'seconds':\n case 'second':\n case 'secs':\n case 'sec':\n case 's':\n return n * s;\n case 'milliseconds':\n case 'millisecond':\n case 'msecs':\n case 'msec':\n case 'ms':\n return n;\n default:\n return undefined;\n }\n}\n\n/**\n * Short format for `ms`.\n *\n * @param {Number} ms\n * @return {String}\n * @api private\n */\n\nfunction fmtShort(ms) {\n var msAbs = Math.abs(ms);\n if (msAbs >= d) {\n return Math.round(ms / d) + 'd';\n }\n if (msAbs >= h) {\n return Math.round(ms / h) + 'h';\n }\n if (msAbs >= m) {\n return Math.round(ms / m) + 'm';\n }\n if (msAbs >= s) {\n return Math.round(ms / s) + 's';\n }\n return ms + 'ms';\n}\n\n/**\n * Long format for `ms`.\n *\n * @param {Number} ms\n * @return {String}\n * @api private\n */\n\nfunction fmtLong(ms) {\n var msAbs = Math.abs(ms);\n if (msAbs >= d) {\n return plural(ms, msAbs, d, 'day');\n }\n if (msAbs >= h) {\n return plural(ms, msAbs, h, 'hour');\n }\n if (msAbs >= m) {\n return plural(ms, msAbs, m, 'minute');\n }\n if (msAbs >= s) {\n return plural(ms, msAbs, s, 'second');\n }\n return ms + ' ms';\n}\n\n/**\n * Pluralization helper.\n */\n\nfunction plural(ms, msAbs, n, name) {\n var isPlural = msAbs >= n * 1.5;\n return Math.round(ms / n) + ' ' + name + (isPlural ? 's' : '');\n}\n","\n/**\n * This is the common logic for both the Node.js and web browser\n * implementations of `debug()`.\n */\n\nfunction setup(env) {\n\tcreateDebug.debug = createDebug;\n\tcreateDebug.default = createDebug;\n\tcreateDebug.coerce = coerce;\n\tcreateDebug.disable = disable;\n\tcreateDebug.enable = enable;\n\tcreateDebug.enabled = enabled;\n\tcreateDebug.humanize = require('ms');\n\tcreateDebug.destroy = destroy;\n\n\tObject.keys(env).forEach(key => {\n\t\tcreateDebug[key] = env[key];\n\t});\n\n\t/**\n\t* The currently active debug mode names, and names to skip.\n\t*/\n\n\tcreateDebug.names = [];\n\tcreateDebug.skips = [];\n\n\t/**\n\t* Map of special \"%n\" handling functions, for the debug \"format\" argument.\n\t*\n\t* Valid key names are a single, lower or upper-case letter, i.e. \"n\" and \"N\".\n\t*/\n\tcreateDebug.formatters = {};\n\n\t/**\n\t* Selects a color for a debug namespace\n\t* @param {String} namespace The namespace string for the debug instance to be colored\n\t* @return {Number|String} An ANSI color code for the given namespace\n\t* @api private\n\t*/\n\tfunction selectColor(namespace) {\n\t\tlet hash = 0;\n\n\t\tfor (let i = 0; i < namespace.length; i++) {\n\t\t\thash = ((hash << 5) - hash) + namespace.charCodeAt(i);\n\t\t\thash |= 0; // Convert to 32bit integer\n\t\t}\n\n\t\treturn createDebug.colors[Math.abs(hash) % createDebug.colors.length];\n\t}\n\tcreateDebug.selectColor = selectColor;\n\n\t/**\n\t* Create a debugger with the given `namespace`.\n\t*\n\t* @param {String} namespace\n\t* @return {Function}\n\t* @api public\n\t*/\n\tfunction createDebug(namespace) {\n\t\tlet prevTime;\n\t\tlet enableOverride = null;\n\t\tlet namespacesCache;\n\t\tlet enabledCache;\n\n\t\tfunction debug(...args) {\n\t\t\t// Disabled?\n\t\t\tif (!debug.enabled) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tconst self = debug;\n\n\t\t\t// Set `diff` timestamp\n\t\t\tconst curr = Number(new Date());\n\t\t\tconst ms = curr - (prevTime || curr);\n\t\t\tself.diff = ms;\n\t\t\tself.prev = prevTime;\n\t\t\tself.curr = curr;\n\t\t\tprevTime = curr;\n\n\t\t\targs[0] = createDebug.coerce(args[0]);\n\n\t\t\tif (typeof args[0] !== 'string') {\n\t\t\t\t// Anything else let's inspect with %O\n\t\t\t\targs.unshift('%O');\n\t\t\t}\n\n\t\t\t// Apply any `formatters` transformations\n\t\t\tlet index = 0;\n\t\t\targs[0] = args[0].replace(/%([a-zA-Z%])/g, (match, format) => {\n\t\t\t\t// If we encounter an escaped % then don't increase the array index\n\t\t\t\tif (match === '%%') {\n\t\t\t\t\treturn '%';\n\t\t\t\t}\n\t\t\t\tindex++;\n\t\t\t\tconst formatter = createDebug.formatters[format];\n\t\t\t\tif (typeof formatter === 'function') {\n\t\t\t\t\tconst val = args[index];\n\t\t\t\t\tmatch = formatter.call(self, val);\n\n\t\t\t\t\t// Now we need to remove `args[index]` since it's inlined in the `format`\n\t\t\t\t\targs.splice(index, 1);\n\t\t\t\t\tindex--;\n\t\t\t\t}\n\t\t\t\treturn match;\n\t\t\t});\n\n\t\t\t// Apply env-specific formatting (colors, etc.)\n\t\t\tcreateDebug.formatArgs.call(self, args);\n\n\t\t\tconst logFn = self.log || createDebug.log;\n\t\t\tlogFn.apply(self, args);\n\t\t}\n\n\t\tdebug.namespace = namespace;\n\t\tdebug.useColors = createDebug.useColors();\n\t\tdebug.color = createDebug.selectColor(namespace);\n\t\tdebug.extend = extend;\n\t\tdebug.destroy = createDebug.destroy; // XXX Temporary. Will be removed in the next major release.\n\n\t\tObject.defineProperty(debug, 'enabled', {\n\t\t\tenumerable: true,\n\t\t\tconfigurable: false,\n\t\t\tget: () => {\n\t\t\t\tif (enableOverride !== null) {\n\t\t\t\t\treturn enableOverride;\n\t\t\t\t}\n\t\t\t\tif (namespacesCache !== createDebug.namespaces) {\n\t\t\t\t\tnamespacesCache = createDebug.namespaces;\n\t\t\t\t\tenabledCache = createDebug.enabled(namespace);\n\t\t\t\t}\n\n\t\t\t\treturn enabledCache;\n\t\t\t},\n\t\t\tset: v => {\n\t\t\t\tenableOverride = v;\n\t\t\t}\n\t\t});\n\n\t\t// Env-specific initialization logic for debug instances\n\t\tif (typeof createDebug.init === 'function') {\n\t\t\tcreateDebug.init(debug);\n\t\t}\n\n\t\treturn debug;\n\t}\n\n\tfunction extend(namespace, delimiter) {\n\t\tconst newDebug = createDebug(this.namespace + (typeof delimiter === 'undefined' ? ':' : delimiter) + namespace);\n\t\tnewDebug.log = this.log;\n\t\treturn newDebug;\n\t}\n\n\t/**\n\t* Enables a debug mode by namespaces. This can include modes\n\t* separated by a colon and wildcards.\n\t*\n\t* @param {String} namespaces\n\t* @api public\n\t*/\n\tfunction enable(namespaces) {\n\t\tcreateDebug.save(namespaces);\n\t\tcreateDebug.namespaces = namespaces;\n\n\t\tcreateDebug.names = [];\n\t\tcreateDebug.skips = [];\n\n\t\tconst split = (typeof namespaces === 'string' ? namespaces : '')\n\t\t\t.trim()\n\t\t\t.replace(/\\s+/g, ',')\n\t\t\t.split(',')\n\t\t\t.filter(Boolean);\n\n\t\tfor (const ns of split) {\n\t\t\tif (ns[0] === '-') {\n\t\t\t\tcreateDebug.skips.push(ns.slice(1));\n\t\t\t} else {\n\t\t\t\tcreateDebug.names.push(ns);\n\t\t\t}\n\t\t}\n\t}\n\n\t/**\n\t * Checks if the given string matches a namespace template, honoring\n\t * asterisks as wildcards.\n\t *\n\t * @param {String} search\n\t * @param {String} template\n\t * @return {Boolean}\n\t */\n\tfunction matchesTemplate(search, template) {\n\t\tlet searchIndex = 0;\n\t\tlet templateIndex = 0;\n\t\tlet starIndex = -1;\n\t\tlet matchIndex = 0;\n\n\t\twhile (searchIndex < search.length) {\n\t\t\tif (templateIndex < template.length && (template[templateIndex] === search[searchIndex] || template[templateIndex] === '*')) {\n\t\t\t\t// Match character or proceed with wildcard\n\t\t\t\tif (template[templateIndex] === '*') {\n\t\t\t\t\tstarIndex = templateIndex;\n\t\t\t\t\tmatchIndex = searchIndex;\n\t\t\t\t\ttemplateIndex++; // Skip the '*'\n\t\t\t\t} else {\n\t\t\t\t\tsearchIndex++;\n\t\t\t\t\ttemplateIndex++;\n\t\t\t\t}\n\t\t\t} else if (starIndex !== -1) { // eslint-disable-line no-negated-condition\n\t\t\t\t// Backtrack to the last '*' and try to match more characters\n\t\t\t\ttemplateIndex = starIndex + 1;\n\t\t\t\tmatchIndex++;\n\t\t\t\tsearchIndex = matchIndex;\n\t\t\t} else {\n\t\t\t\treturn false; // No match\n\t\t\t}\n\t\t}\n\n\t\t// Handle trailing '*' in template\n\t\twhile (templateIndex < template.length && template[templateIndex] === '*') {\n\t\t\ttemplateIndex++;\n\t\t}\n\n\t\treturn templateIndex === template.length;\n\t}\n\n\t/**\n\t* Disable debug output.\n\t*\n\t* @return {String} namespaces\n\t* @api public\n\t*/\n\tfunction disable() {\n\t\tconst namespaces = [\n\t\t\t...createDebug.names,\n\t\t\t...createDebug.skips.map(namespace => '-' + namespace)\n\t\t].join(',');\n\t\tcreateDebug.enable('');\n\t\treturn namespaces;\n\t}\n\n\t/**\n\t* Returns true if the given mode name is enabled, false otherwise.\n\t*\n\t* @param {String} name\n\t* @return {Boolean}\n\t* @api public\n\t*/\n\tfunction enabled(name) {\n\t\tfor (const skip of createDebug.skips) {\n\t\t\tif (matchesTemplate(name, skip)) {\n\t\t\t\treturn false;\n\t\t\t}\n\t\t}\n\n\t\tfor (const ns of createDebug.names) {\n\t\t\tif (matchesTemplate(name, ns)) {\n\t\t\t\treturn true;\n\t\t\t}\n\t\t}\n\n\t\treturn false;\n\t}\n\n\t/**\n\t* Coerce `val`.\n\t*\n\t* @param {Mixed} val\n\t* @return {Mixed}\n\t* @api private\n\t*/\n\tfunction coerce(val) {\n\t\tif (val instanceof Error) {\n\t\t\treturn val.stack || val.message;\n\t\t}\n\t\treturn val;\n\t}\n\n\t/**\n\t* XXX DO NOT USE. This is a temporary stub function.\n\t* XXX It WILL be removed in the next major release.\n\t*/\n\tfunction destroy() {\n\t\tconsole.warn('Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`.');\n\t}\n\n\tcreateDebug.enable(createDebug.load());\n\n\treturn createDebug;\n}\n\nmodule.exports = setup;\n","/* eslint-env browser */\n\n/**\n * This is the web browser implementation of `debug()`.\n */\n\nexports.formatArgs = formatArgs;\nexports.save = save;\nexports.load = load;\nexports.useColors = useColors;\nexports.storage = localstorage();\nexports.destroy = (() => {\n\tlet warned = false;\n\n\treturn () => {\n\t\tif (!warned) {\n\t\t\twarned = true;\n\t\t\tconsole.warn('Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`.');\n\t\t}\n\t};\n})();\n\n/**\n * Colors.\n */\n\nexports.colors = [\n\t'#0000CC',\n\t'#0000FF',\n\t'#0033CC',\n\t'#0033FF',\n\t'#0066CC',\n\t'#0066FF',\n\t'#0099CC',\n\t'#0099FF',\n\t'#00CC00',\n\t'#00CC33',\n\t'#00CC66',\n\t'#00CC99',\n\t'#00CCCC',\n\t'#00CCFF',\n\t'#3300CC',\n\t'#3300FF',\n\t'#3333CC',\n\t'#3333FF',\n\t'#3366CC',\n\t'#3366FF',\n\t'#3399CC',\n\t'#3399FF',\n\t'#33CC00',\n\t'#33CC33',\n\t'#33CC66',\n\t'#33CC99',\n\t'#33CCCC',\n\t'#33CCFF',\n\t'#6600CC',\n\t'#6600FF',\n\t'#6633CC',\n\t'#6633FF',\n\t'#66CC00',\n\t'#66CC33',\n\t'#9900CC',\n\t'#9900FF',\n\t'#9933CC',\n\t'#9933FF',\n\t'#99CC00',\n\t'#99CC33',\n\t'#CC0000',\n\t'#CC0033',\n\t'#CC0066',\n\t'#CC0099',\n\t'#CC00CC',\n\t'#CC00FF',\n\t'#CC3300',\n\t'#CC3333',\n\t'#CC3366',\n\t'#CC3399',\n\t'#CC33CC',\n\t'#CC33FF',\n\t'#CC6600',\n\t'#CC6633',\n\t'#CC9900',\n\t'#CC9933',\n\t'#CCCC00',\n\t'#CCCC33',\n\t'#FF0000',\n\t'#FF0033',\n\t'#FF0066',\n\t'#FF0099',\n\t'#FF00CC',\n\t'#FF00FF',\n\t'#FF3300',\n\t'#FF3333',\n\t'#FF3366',\n\t'#FF3399',\n\t'#FF33CC',\n\t'#FF33FF',\n\t'#FF6600',\n\t'#FF6633',\n\t'#FF9900',\n\t'#FF9933',\n\t'#FFCC00',\n\t'#FFCC33'\n];\n\n/**\n * Currently only WebKit-based Web Inspectors, Firefox >= v31,\n * and the Firebug extension (any Firefox version) are known\n * to support \"%c\" CSS customizations.\n *\n * TODO: add a `localStorage` variable to explicitly enable/disable colors\n */\n\n// eslint-disable-next-line complexity\nfunction useColors() {\n\t// NB: In an Electron preload script, document will be defined but not fully\n\t// initialized. Since we know we're in Chrome, we'll just detect this case\n\t// explicitly\n\tif (typeof window !== 'undefined' && window.process && (window.process.type === 'renderer' || window.process.__nwjs)) {\n\t\treturn true;\n\t}\n\n\t// Internet Explorer and Edge do not support colors.\n\tif (typeof navigator !== 'undefined' && navigator.userAgent && navigator.userAgent.toLowerCase().match(/(edge|trident)\\/(\\d+)/)) {\n\t\treturn false;\n\t}\n\n\tlet m;\n\n\t// Is webkit? http://stackoverflow.com/a/16459606/376773\n\t// document is undefined in react-native: https://github.com/facebook/react-native/pull/1632\n\t// eslint-disable-next-line no-return-assign\n\treturn (typeof document !== 'undefined' && document.documentElement && document.documentElement.style && document.documentElement.style.WebkitAppearance) ||\n\t\t// Is firebug? http://stackoverflow.com/a/398120/376773\n\t\t(typeof window !== 'undefined' && window.console && (window.console.firebug || (window.console.exception && window.console.table))) ||\n\t\t// Is firefox >= v31?\n\t\t// https://developer.mozilla.org/en-US/docs/Tools/Web_Console#Styling_messages\n\t\t(typeof navigator !== 'undefined' && navigator.userAgent && (m = navigator.userAgent.toLowerCase().match(/firefox\\/(\\d+)/)) && parseInt(m[1], 10) >= 31) ||\n\t\t// Double check webkit in userAgent just in case we are in a worker\n\t\t(typeof navigator !== 'undefined' && navigator.userAgent && navigator.userAgent.toLowerCase().match(/applewebkit\\/(\\d+)/));\n}\n\n/**\n * Colorize log arguments if enabled.\n *\n * @api public\n */\n\nfunction formatArgs(args) {\n\targs[0] = (this.useColors ? '%c' : '') +\n\t\tthis.namespace +\n\t\t(this.useColors ? ' %c' : ' ') +\n\t\targs[0] +\n\t\t(this.useColors ? '%c ' : ' ') +\n\t\t'+' + module.exports.humanize(this.diff);\n\n\tif (!this.useColors) {\n\t\treturn;\n\t}\n\n\tconst c = 'color: ' + this.color;\n\targs.splice(1, 0, c, 'color: inherit');\n\n\t// The final \"%c\" is somewhat tricky, because there could be other\n\t// arguments passed either before or after the %c, so we need to\n\t// figure out the correct index to insert the CSS into\n\tlet index = 0;\n\tlet lastC = 0;\n\targs[0].replace(/%[a-zA-Z%]/g, match => {\n\t\tif (match === '%%') {\n\t\t\treturn;\n\t\t}\n\t\tindex++;\n\t\tif (match === '%c') {\n\t\t\t// We only are interested in the *last* %c\n\t\t\t// (the user may have provided their own)\n\t\t\tlastC = index;\n\t\t}\n\t});\n\n\targs.splice(lastC, 0, c);\n}\n\n/**\n * Invokes `console.debug()` when available.\n * No-op when `console.debug` is not a \"function\".\n * If `console.debug` is not available, falls back\n * to `console.log`.\n *\n * @api public\n */\nexports.log = console.debug || console.log || (() => {});\n\n/**\n * Save `namespaces`.\n *\n * @param {String} namespaces\n * @api private\n */\nfunction save(namespaces) {\n\ttry {\n\t\tif (namespaces) {\n\t\t\texports.storage.setItem('debug', namespaces);\n\t\t} else {\n\t\t\texports.storage.removeItem('debug');\n\t\t}\n\t} catch (error) {\n\t\t// Swallow\n\t\t// XXX (@Qix-) should we be logging these?\n\t}\n}\n\n/**\n * Load `namespaces`.\n *\n * @return {String} returns the previously persisted debug modes\n * @api private\n */\nfunction load() {\n\tlet r;\n\ttry {\n\t\tr = exports.storage.getItem('debug') || exports.storage.getItem('DEBUG') ;\n\t} catch (error) {\n\t\t// Swallow\n\t\t// XXX (@Qix-) should we be logging these?\n\t}\n\n\t// If debug isn't set in LS, and we're in Electron, try to load $DEBUG\n\tif (!r && typeof process !== 'undefined' && 'env' in process) {\n\t\tr = process.env.DEBUG;\n\t}\n\n\treturn r;\n}\n\n/**\n * Localstorage attempts to return the localstorage.\n *\n * This is necessary because safari throws\n * when a user disables cookies/localstorage\n * and you attempt to access it.\n *\n * @return {LocalStorage}\n * @api private\n */\n\nfunction localstorage() {\n\ttry {\n\t\t// TVMLKit (Apple TV JS Runtime) does not have a window object, just localStorage in the global context\n\t\t// The Browser also has localStorage in the global context.\n\t\treturn localStorage;\n\t} catch (error) {\n\t\t// Swallow\n\t\t// XXX (@Qix-) should we be logging these?\n\t}\n}\n\nmodule.exports = require('./common')(exports);\n\nconst {formatters} = module.exports;\n\n/**\n * Map %j to `JSON.stringify()`, since no Web Inspectors do that by default.\n */\n\nformatters.j = function (v) {\n\ttry {\n\t\treturn JSON.stringify(v);\n\t} catch (error) {\n\t\treturn '[UnexpectedJSONParseError]: ' + error.message;\n\t}\n};\n","'use strict';\n\nmodule.exports = (flag, argv = process.argv) => {\n\tconst prefix = flag.startsWith('-') ? '' : (flag.length === 1 ? '-' : '--');\n\tconst position = argv.indexOf(prefix + flag);\n\tconst terminatorPosition = argv.indexOf('--');\n\treturn position !== -1 && (terminatorPosition === -1 || position < terminatorPosition);\n};\n","'use strict';\nconst os = require('os');\nconst tty = require('tty');\nconst hasFlag = require('has-flag');\n\nconst {env} = process;\n\nlet forceColor;\nif (hasFlag('no-color') ||\n\thasFlag('no-colors') ||\n\thasFlag('color=false') ||\n\thasFlag('color=never')) {\n\tforceColor = 0;\n} else if (hasFlag('color') ||\n\thasFlag('colors') ||\n\thasFlag('color=true') ||\n\thasFlag('color=always')) {\n\tforceColor = 1;\n}\n\nif ('FORCE_COLOR' in env) {\n\tif (env.FORCE_COLOR === 'true') {\n\t\tforceColor = 1;\n\t} else if (env.FORCE_COLOR === 'false') {\n\t\tforceColor = 0;\n\t} else {\n\t\tforceColor = env.FORCE_COLOR.length === 0 ? 1 : Math.min(parseInt(env.FORCE_COLOR, 10), 3);\n\t}\n}\n\nfunction translateLevel(level) {\n\tif (level === 0) {\n\t\treturn false;\n\t}\n\n\treturn {\n\t\tlevel,\n\t\thasBasic: true,\n\t\thas256: level >= 2,\n\t\thas16m: level >= 3\n\t};\n}\n\nfunction supportsColor(haveStream, streamIsTTY) {\n\tif (forceColor === 0) {\n\t\treturn 0;\n\t}\n\n\tif (hasFlag('color=16m') ||\n\t\thasFlag('color=full') ||\n\t\thasFlag('color=truecolor')) {\n\t\treturn 3;\n\t}\n\n\tif (hasFlag('color=256')) {\n\t\treturn 2;\n\t}\n\n\tif (haveStream && !streamIsTTY && forceColor === undefined) {\n\t\treturn 0;\n\t}\n\n\tconst min = forceColor || 0;\n\n\tif (env.TERM === 'dumb') {\n\t\treturn min;\n\t}\n\n\tif (process.platform === 'win32') {\n\t\t// Windows 10 build 10586 is the first Windows release that supports 256 colors.\n\t\t// Windows 10 build 14931 is the first release that supports 16m/TrueColor.\n\t\tconst osRelease = os.release().split('.');\n\t\tif (\n\t\t\tNumber(osRelease[0]) >= 10 &&\n\t\t\tNumber(osRelease[2]) >= 10586\n\t\t) {\n\t\t\treturn Number(osRelease[2]) >= 14931 ? 3 : 2;\n\t\t}\n\n\t\treturn 1;\n\t}\n\n\tif ('CI' in env) {\n\t\tif (['TRAVIS', 'CIRCLECI', 'APPVEYOR', 'GITLAB_CI', 'GITHUB_ACTIONS', 'BUILDKITE'].some(sign => sign in env) || env.CI_NAME === 'codeship') {\n\t\t\treturn 1;\n\t\t}\n\n\t\treturn min;\n\t}\n\n\tif ('TEAMCITY_VERSION' in env) {\n\t\treturn /^(9\\.(0*[1-9]\\d*)\\.|\\d{2,}\\.)/.test(env.TEAMCITY_VERSION) ? 1 : 0;\n\t}\n\n\tif (env.COLORTERM === 'truecolor') {\n\t\treturn 3;\n\t}\n\n\tif ('TERM_PROGRAM' in env) {\n\t\tconst version = parseInt((env.TERM_PROGRAM_VERSION || '').split('.')[0], 10);\n\n\t\tswitch (env.TERM_PROGRAM) {\n\t\t\tcase 'iTerm.app':\n\t\t\t\treturn version >= 3 ? 3 : 2;\n\t\t\tcase 'Apple_Terminal':\n\t\t\t\treturn 2;\n\t\t\t// No default\n\t\t}\n\t}\n\n\tif (/-256(color)?$/i.test(env.TERM)) {\n\t\treturn 2;\n\t}\n\n\tif (/^screen|^xterm|^vt100|^vt220|^rxvt|color|ansi|cygwin|linux/i.test(env.TERM)) {\n\t\treturn 1;\n\t}\n\n\tif ('COLORTERM' in env) {\n\t\treturn 1;\n\t}\n\n\treturn min;\n}\n\nfunction getSupportLevel(stream) {\n\tconst level = supportsColor(stream, stream && stream.isTTY);\n\treturn translateLevel(level);\n}\n\nmodule.exports = {\n\tsupportsColor: getSupportLevel,\n\tstdout: translateLevel(supportsColor(true, tty.isatty(1))),\n\tstderr: translateLevel(supportsColor(true, tty.isatty(2)))\n};\n","/**\n * Module dependencies.\n */\n\nconst tty = require('tty');\nconst util = require('util');\n\n/**\n * This is the Node.js implementation of `debug()`.\n */\n\nexports.init = init;\nexports.log = log;\nexports.formatArgs = formatArgs;\nexports.save = save;\nexports.load = load;\nexports.useColors = useColors;\nexports.destroy = util.deprecate(\n\t() => {},\n\t'Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`.'\n);\n\n/**\n * Colors.\n */\n\nexports.colors = [6, 2, 3, 4, 5, 1];\n\ntry {\n\t// Optional dependency (as in, doesn't need to be installed, NOT like optionalDependencies in package.json)\n\t// eslint-disable-next-line import/no-extraneous-dependencies\n\tconst supportsColor = require('supports-color');\n\n\tif (supportsColor && (supportsColor.stderr || supportsColor).level >= 2) {\n\t\texports.colors = [\n\t\t\t20,\n\t\t\t21,\n\t\t\t26,\n\t\t\t27,\n\t\t\t32,\n\t\t\t33,\n\t\t\t38,\n\t\t\t39,\n\t\t\t40,\n\t\t\t41,\n\t\t\t42,\n\t\t\t43,\n\t\t\t44,\n\t\t\t45,\n\t\t\t56,\n\t\t\t57,\n\t\t\t62,\n\t\t\t63,\n\t\t\t68,\n\t\t\t69,\n\t\t\t74,\n\t\t\t75,\n\t\t\t76,\n\t\t\t77,\n\t\t\t78,\n\t\t\t79,\n\t\t\t80,\n\t\t\t81,\n\t\t\t92,\n\t\t\t93,\n\t\t\t98,\n\t\t\t99,\n\t\t\t112,\n\t\t\t113,\n\t\t\t128,\n\t\t\t129,\n\t\t\t134,\n\t\t\t135,\n\t\t\t148,\n\t\t\t149,\n\t\t\t160,\n\t\t\t161,\n\t\t\t162,\n\t\t\t163,\n\t\t\t164,\n\t\t\t165,\n\t\t\t166,\n\t\t\t167,\n\t\t\t168,\n\t\t\t169,\n\t\t\t170,\n\t\t\t171,\n\t\t\t172,\n\t\t\t173,\n\t\t\t178,\n\t\t\t179,\n\t\t\t184,\n\t\t\t185,\n\t\t\t196,\n\t\t\t197,\n\t\t\t198,\n\t\t\t199,\n\t\t\t200,\n\t\t\t201,\n\t\t\t202,\n\t\t\t203,\n\t\t\t204,\n\t\t\t205,\n\t\t\t206,\n\t\t\t207,\n\t\t\t208,\n\t\t\t209,\n\t\t\t214,\n\t\t\t215,\n\t\t\t220,\n\t\t\t221\n\t\t];\n\t}\n} catch (error) {\n\t// Swallow - we only care if `supports-color` is available; it doesn't have to be.\n}\n\n/**\n * Build up the default `inspectOpts` object from the environment variables.\n *\n * $ DEBUG_COLORS=no DEBUG_DEPTH=10 DEBUG_SHOW_HIDDEN=enabled node script.js\n */\n\nexports.inspectOpts = Object.keys(process.env).filter(key => {\n\treturn /^debug_/i.test(key);\n}).reduce((obj, key) => {\n\t// Camel-case\n\tconst prop = key\n\t\t.substring(6)\n\t\t.toLowerCase()\n\t\t.replace(/_([a-z])/g, (_, k) => {\n\t\t\treturn k.toUpperCase();\n\t\t});\n\n\t// Coerce string value into JS value\n\tlet val = process.env[key];\n\tif (/^(yes|on|true|enabled)$/i.test(val)) {\n\t\tval = true;\n\t} else if (/^(no|off|false|disabled)$/i.test(val)) {\n\t\tval = false;\n\t} else if (val === 'null') {\n\t\tval = null;\n\t} else {\n\t\tval = Number(val);\n\t}\n\n\tobj[prop] = val;\n\treturn obj;\n}, {});\n\n/**\n * Is stdout a TTY? Colored output is enabled when `true`.\n */\n\nfunction useColors() {\n\treturn 'colors' in exports.inspectOpts ?\n\t\tBoolean(exports.inspectOpts.colors) :\n\t\ttty.isatty(process.stderr.fd);\n}\n\n/**\n * Adds ANSI color escape codes if enabled.\n *\n * @api public\n */\n\nfunction formatArgs(args) {\n\tconst {namespace: name, useColors} = this;\n\n\tif (useColors) {\n\t\tconst c = this.color;\n\t\tconst colorCode = '\\u001B[3' + (c < 8 ? c : '8;5;' + c);\n\t\tconst prefix = ` ${colorCode};1m${name} \\u001B[0m`;\n\n\t\targs[0] = prefix + args[0].split('\\n').join('\\n' + prefix);\n\t\targs.push(colorCode + 'm+' + module.exports.humanize(this.diff) + '\\u001B[0m');\n\t} else {\n\t\targs[0] = getDate() + name + ' ' + args[0];\n\t}\n}\n\nfunction getDate() {\n\tif (exports.inspectOpts.hideDate) {\n\t\treturn '';\n\t}\n\treturn new Date().toISOString() + ' ';\n}\n\n/**\n * Invokes `util.formatWithOptions()` with the specified arguments and writes to stderr.\n */\n\nfunction log(...args) {\n\treturn process.stderr.write(util.formatWithOptions(exports.inspectOpts, ...args) + '\\n');\n}\n\n/**\n * Save `namespaces`.\n *\n * @param {String} namespaces\n * @api private\n */\nfunction save(namespaces) {\n\tif (namespaces) {\n\t\tprocess.env.DEBUG = namespaces;\n\t} else {\n\t\t// If you set a process.env field to null or undefined, it gets cast to the\n\t\t// string 'null' or 'undefined'. Just delete instead.\n\t\tdelete process.env.DEBUG;\n\t}\n}\n\n/**\n * Load `namespaces`.\n *\n * @return {String} returns the previously persisted debug modes\n * @api private\n */\n\nfunction load() {\n\treturn process.env.DEBUG;\n}\n\n/**\n * Init logic for `debug` instances.\n *\n * Create a new `inspectOpts` object in case `useColors` is set\n * differently for a particular `debug` instance.\n */\n\nfunction init(debug) {\n\tdebug.inspectOpts = {};\n\n\tconst keys = Object.keys(exports.inspectOpts);\n\tfor (let i = 0; i < keys.length; i++) {\n\t\tdebug.inspectOpts[keys[i]] = exports.inspectOpts[keys[i]];\n\t}\n}\n\nmodule.exports = require('./common')(exports);\n\nconst {formatters} = module.exports;\n\n/**\n * Map %o to `util.inspect()`, all on a single line.\n */\n\nformatters.o = function (v) {\n\tthis.inspectOpts.colors = this.useColors;\n\treturn util.inspect(v, this.inspectOpts)\n\t\t.split('\\n')\n\t\t.map(str => str.trim())\n\t\t.join(' ');\n};\n\n/**\n * Map %O to `util.inspect()`, allowing multiple lines if needed.\n */\n\nformatters.O = function (v) {\n\tthis.inspectOpts.colors = this.useColors;\n\treturn util.inspect(v, this.inspectOpts);\n};\n","/**\n * Detect Electron renderer / nwjs process, which is node, but we should\n * treat as a browser.\n */\n\nif (typeof process === 'undefined' || process.type === 'renderer' || process.browser === true || process.__nwjs) {\n\tmodule.exports = require('./browser.js');\n} else {\n\tmodule.exports = require('./node.js');\n}\n","/**\n * Ref https://pkware.cachefly.net/webdocs/casestudies/APPNOTE.TXT\n */\nimport { UINT16_LE, UINT32_LE } from \"token-types\";\nexport const Signature = {\n LocalFileHeader: 0x04034b50,\n DataDescriptor: 0x08074b50,\n CentralFileHeader: 0x02014b50,\n EndOfCentralDirectory: 0x06054b50\n};\nexport const DataDescriptor = {\n get(array) {\n return {\n signature: UINT32_LE.get(array, 0),\n compressedSize: UINT32_LE.get(array, 8),\n uncompressedSize: UINT32_LE.get(array, 12),\n };\n }, len: 16\n};\n/**\n * First part of the ZIP Local File Header\n * Offset | Bytes| Description\n * -------|------+-------------------------------------------------------------------\n * 0 | 4 | Signature (0x04034b50)\n * 4 | 2 | Minimum version needed to extract\n * 6 | 2 | Bit flag\n * 8 | 2 | Compression method\n * 10 | 2 | File last modification time (MS-DOS format)\n * 12 | 2 | File last modification date (MS-DOS format)\n * 14 | 4 | CRC-32 of uncompressed data\n * 18 | 4 | Compressed size\n * 22 | 4 | Uncompressed size\n * 26 | 2 | File name length (n)\n * 28 | 2 | Extra field length (m)\n * 30 | n | File name\n * 30 + n | m | Extra field\n */\nexport const LocalFileHeaderToken = {\n get(array) {\n const flags = UINT16_LE.get(array, 6);\n return {\n signature: UINT32_LE.get(array, 0),\n minVersion: UINT16_LE.get(array, 4),\n dataDescriptor: !!(flags & 0x0008),\n compressedMethod: UINT16_LE.get(array, 8),\n compressedSize: UINT32_LE.get(array, 18),\n uncompressedSize: UINT32_LE.get(array, 22),\n filenameLength: UINT16_LE.get(array, 26),\n extraFieldLength: UINT16_LE.get(array, 28),\n filename: null\n };\n }, len: 30\n};\n/**\n * 4.3.16 End of central directory record:\n * end of central dir signature (0x06064b50) 4 bytes\n * number of this disk 2 bytes\n * number of the disk with the start of the central directory 2 bytes\n * total number of entries in the central directory on this disk 2 bytes\n * total number of entries in the size of the central directory 2 bytes\n * sizeOfTheCentralDirectory 4 bytes\n * offset of start of central directory with respect to the starting disk number 4 bytes\n * .ZIP file comment length 2 bytes\n * .ZIP file comment (variable size)\n */\nexport const EndOfCentralDirectoryRecordToken = {\n get(array) {\n return {\n signature: UINT32_LE.get(array, 0),\n nrOfThisDisk: UINT16_LE.get(array, 4),\n nrOfThisDiskWithTheStart: UINT16_LE.get(array, 6),\n nrOfEntriesOnThisDisk: UINT16_LE.get(array, 8),\n nrOfEntriesOfSize: UINT16_LE.get(array, 10),\n sizeOfCd: UINT32_LE.get(array, 12),\n offsetOfStartOfCd: UINT32_LE.get(array, 16),\n zipFileCommentLength: UINT16_LE.get(array, 20),\n };\n }, len: 22\n};\n/**\n * File header:\n * central file header signature 4 bytes 0 (0x02014b50)\n * version made by 2 bytes 4\n * version needed to extract 2 bytes 6\n * general purpose bit flag 2 bytes 8\n * compression method 2 bytes 10\n * last mod file time 2 bytes 12\n * last mod file date 2 bytes 14\n * crc-32 4 bytes 16\n * compressed size 4 bytes 20\n * uncompressed size 4 bytes 24\n * file name length 2 bytes 28\n * extra field length 2 bytes 30\n * file comment length 2 bytes 32\n * disk number start 2 bytes 34\n * internal file attributes 2 bytes 36\n * external file attributes 4 bytes 38\n * relative offset of local header 4 bytes 42\n */\nexport const FileHeader = {\n get(array) {\n const flags = UINT16_LE.get(array, 8);\n return {\n signature: UINT32_LE.get(array, 0),\n minVersion: UINT16_LE.get(array, 6),\n dataDescriptor: !!(flags & 0x0008),\n compressedMethod: UINT16_LE.get(array, 10),\n compressedSize: UINT32_LE.get(array, 20),\n uncompressedSize: UINT32_LE.get(array, 24),\n filenameLength: UINT16_LE.get(array, 28),\n extraFieldLength: UINT16_LE.get(array, 30),\n fileCommentLength: UINT16_LE.get(array, 32),\n relativeOffsetOfLocalHeader: UINT32_LE.get(array, 42),\n filename: null\n };\n }, len: 46\n};\n","import { StringType, UINT32_LE } from 'token-types';\nimport initDebug from 'debug';\nimport { DataDescriptor, EndOfCentralDirectoryRecordToken, FileHeader, LocalFileHeaderToken, Signature } from \"./ZipToken.js\";\nfunction signatureToArray(signature) {\n const signatureBytes = new Uint8Array(UINT32_LE.len);\n UINT32_LE.put(signatureBytes, 0, signature);\n return signatureBytes;\n}\nconst debug = initDebug('tokenizer:inflate');\nconst syncBufferSize = 256 * 1024;\nconst ddSignatureArray = signatureToArray(Signature.DataDescriptor);\nconst eocdSignatureBytes = signatureToArray(Signature.EndOfCentralDirectory);\nexport class ZipHandler {\n constructor(tokenizer) {\n this.tokenizer = tokenizer;\n this.syncBuffer = new Uint8Array(syncBufferSize);\n }\n async isZip() {\n return await this.peekSignature() === Signature.LocalFileHeader;\n }\n peekSignature() {\n return this.tokenizer.peekToken(UINT32_LE);\n }\n async findEndOfCentralDirectoryLocator() {\n const randomReadTokenizer = this.tokenizer;\n const chunkLength = Math.min(16 * 1024, randomReadTokenizer.fileInfo.size);\n const buffer = this.syncBuffer.subarray(0, chunkLength);\n await this.tokenizer.readBuffer(buffer, { position: randomReadTokenizer.fileInfo.size - chunkLength });\n // Search the buffer from end to beginning for EOCD signature\n // const signature = 0x06054b50;\n for (let i = buffer.length - 4; i >= 0; i--) {\n // Compare 4 bytes directly without calling readUInt32LE\n if (buffer[i] === eocdSignatureBytes[0] &&\n buffer[i + 1] === eocdSignatureBytes[1] &&\n buffer[i + 2] === eocdSignatureBytes[2] &&\n buffer[i + 3] === eocdSignatureBytes[3]) {\n return randomReadTokenizer.fileInfo.size - chunkLength + i;\n }\n }\n return -1;\n }\n async readCentralDirectory() {\n if (!this.tokenizer.supportsRandomAccess()) {\n debug('Cannot reading central-directory without random-read support');\n return;\n }\n debug('Reading central-directory...');\n const pos = this.tokenizer.position;\n const offset = await this.findEndOfCentralDirectoryLocator();\n if (offset > 0) {\n debug('Central-directory 32-bit signature found');\n const eocdHeader = await this.tokenizer.readToken(EndOfCentralDirectoryRecordToken, offset);\n const files = [];\n this.tokenizer.setPosition(eocdHeader.offsetOfStartOfCd);\n for (let n = 0; n < eocdHeader.nrOfEntriesOfSize; ++n) {\n const entry = await this.tokenizer.readToken(FileHeader);\n if (entry.signature !== Signature.CentralFileHeader) {\n throw new Error('Expected Central-File-Header signature');\n }\n entry.filename = await this.tokenizer.readToken(new StringType(entry.filenameLength, 'utf-8'));\n await this.tokenizer.ignore(entry.extraFieldLength);\n await this.tokenizer.ignore(entry.fileCommentLength);\n files.push(entry);\n debug(`Add central-directory file-entry: n=${n + 1}/${files.length}: filename=${files[n].filename}`);\n }\n this.tokenizer.setPosition(pos);\n return files;\n }\n this.tokenizer.setPosition(pos);\n }\n async unzip(fileCb) {\n const entries = await this.readCentralDirectory();\n if (entries) {\n // Use Central Directory to iterate over files\n return this.iterateOverCentralDirectory(entries, fileCb);\n }\n // Scan Zip files for local-file-header\n let stop = false;\n do {\n const zipHeader = await this.readLocalFileHeader();\n if (!zipHeader)\n break;\n const next = fileCb(zipHeader);\n stop = !!next.stop;\n let fileData;\n await this.tokenizer.ignore(zipHeader.extraFieldLength);\n if (zipHeader.dataDescriptor && zipHeader.compressedSize === 0) {\n const chunks = [];\n let len = syncBufferSize;\n debug('Compressed-file-size unknown, scanning for next data-descriptor-signature....');\n let nextHeaderIndex = -1;\n while (nextHeaderIndex < 0 && len === syncBufferSize) {\n len = await this.tokenizer.peekBuffer(this.syncBuffer, { mayBeLess: true });\n nextHeaderIndex = indexOf(this.syncBuffer.subarray(0, len), ddSignatureArray);\n const size = nextHeaderIndex >= 0 ? nextHeaderIndex : len;\n if (next.handler) {\n const data = new Uint8Array(size);\n await this.tokenizer.readBuffer(data);\n chunks.push(data);\n }\n else {\n // Move position to the next header if found, skip the whole buffer otherwise\n await this.tokenizer.ignore(size);\n }\n }\n debug(`Found data-descriptor-signature at pos=${this.tokenizer.position}`);\n if (next.handler) {\n await this.inflate(zipHeader, mergeArrays(chunks), next.handler);\n }\n }\n else {\n if (next.handler) {\n debug(`Reading compressed-file-data: ${zipHeader.compressedSize} bytes`);\n fileData = new Uint8Array(zipHeader.compressedSize);\n await this.tokenizer.readBuffer(fileData);\n await this.inflate(zipHeader, fileData, next.handler);\n }\n else {\n debug(`Ignoring compressed-file-data: ${zipHeader.compressedSize} bytes`);\n await this.tokenizer.ignore(zipHeader.compressedSize);\n }\n }\n debug(`Reading data-descriptor at pos=${this.tokenizer.position}`);\n if (zipHeader.dataDescriptor) {\n // await this.tokenizer.ignore(DataDescriptor.len);\n const dataDescriptor = await this.tokenizer.readToken(DataDescriptor);\n if (dataDescriptor.signature !== 0x08074b50) {\n throw new Error(`Expected data-descriptor-signature at position ${this.tokenizer.position - DataDescriptor.len}`);\n }\n }\n } while (!stop);\n }\n async iterateOverCentralDirectory(entries, fileCb) {\n for (const fileHeader of entries) {\n const next = fileCb(fileHeader);\n if (next.handler) {\n this.tokenizer.setPosition(fileHeader.relativeOffsetOfLocalHeader);\n const zipHeader = await this.readLocalFileHeader();\n if (zipHeader) {\n await this.tokenizer.ignore(zipHeader.extraFieldLength);\n const fileData = new Uint8Array(fileHeader.compressedSize);\n await this.tokenizer.readBuffer(fileData);\n await this.inflate(zipHeader, fileData, next.handler);\n }\n }\n if (next.stop)\n break;\n }\n }\n async inflate(zipHeader, fileData, cb) {\n if (zipHeader.compressedMethod === 0) {\n // Stored (uncompressed)\n return cb(fileData);\n }\n if (zipHeader.compressedMethod !== 8) {\n throw new Error(`Unsupported ZIP compression method: ${zipHeader.compressedMethod}`);\n }\n debug(`Decompress filename=${zipHeader.filename}, compressed-size=${fileData.length}`);\n const uncompressedData = await ZipHandler.decompressDeflateRaw(fileData);\n return cb(uncompressedData);\n }\n static async decompressDeflateRaw(data) {\n // Wrap Uint8Array in a ReadableStream without copying\n const input = new ReadableStream({\n start(controller) {\n controller.enqueue(data);\n controller.close();\n }\n });\n const ds = new DecompressionStream(\"deflate-raw\");\n const output = input.pipeThrough(ds);\n try {\n // Collect decompressed bytes from the output stream\n const response = new Response(output);\n const buffer = await response.arrayBuffer();\n return new Uint8Array(buffer);\n }\n catch (err) {\n // Provide ZIP-specific error context\n const message = err instanceof Error\n ? `Failed to deflate ZIP entry: ${err.message}`\n : \"Unknown decompression error in ZIP entry\";\n throw new TypeError(message);\n }\n }\n async readLocalFileHeader() {\n const signature = await this.tokenizer.peekToken(UINT32_LE);\n if (signature === Signature.LocalFileHeader) {\n const header = await this.tokenizer.readToken(LocalFileHeaderToken);\n header.filename = await this.tokenizer.readToken(new StringType(header.filenameLength, 'utf-8'));\n return header;\n }\n if (signature === Signature.CentralFileHeader) {\n return false;\n }\n if (signature === 0xE011CFD0) {\n throw new Error('Encrypted ZIP');\n }\n throw new Error('Unexpected signature');\n }\n}\nfunction indexOf(buffer, portion) {\n const bufferLength = buffer.length;\n const portionLength = portion.length;\n // Return -1 if the portion is longer than the buffer\n if (portionLength > bufferLength)\n return -1;\n // Search for the portion in the buffer\n for (let i = 0; i <= bufferLength - portionLength; i++) {\n let found = true;\n for (let j = 0; j < portionLength; j++) {\n if (buffer[i + j] !== portion[j]) {\n found = false;\n break;\n }\n }\n if (found) {\n return i; // Return the starting offset\n }\n }\n return -1; // Not found\n}\nfunction mergeArrays(chunks) {\n // Concatenate chunks into a single Uint8Array\n const totalLength = chunks.reduce((acc, curr) => acc + curr.length, 0);\n const mergedArray = new Uint8Array(totalLength);\n let offset = 0;\n for (const chunk of chunks) {\n mergedArray.set(chunk, offset);\n offset += chunk.length;\n }\n return mergedArray;\n}\n","export class GzipHandler {\n constructor(tokenizer) {\n this.tokenizer = tokenizer;\n }\n inflate() {\n const tokenizer = this.tokenizer;\n return new ReadableStream({\n async pull(controller) {\n const buffer = new Uint8Array(1024);\n const size = await tokenizer.readBuffer(buffer, { mayBeLess: true });\n if (size === 0) {\n controller.close();\n return;\n }\n controller.enqueue(buffer.subarray(0, size));\n }\n }).pipeThrough(new DecompressionStream(\"gzip\"));\n }\n}\n","const objectToString = Object.prototype.toString;\nconst uint8ArrayStringified = '[object Uint8Array]';\nconst arrayBufferStringified = '[object ArrayBuffer]';\n\nfunction isType(value, typeConstructor, typeStringified) {\n\tif (!value) {\n\t\treturn false;\n\t}\n\n\tif (value.constructor === typeConstructor) {\n\t\treturn true;\n\t}\n\n\treturn objectToString.call(value) === typeStringified;\n}\n\nexport function isUint8Array(value) {\n\treturn isType(value, Uint8Array, uint8ArrayStringified);\n}\n\nfunction isArrayBuffer(value) {\n\treturn isType(value, ArrayBuffer, arrayBufferStringified);\n}\n\nfunction isUint8ArrayOrArrayBuffer(value) {\n\treturn isUint8Array(value) || isArrayBuffer(value);\n}\n\nexport function assertUint8Array(value) {\n\tif (!isUint8Array(value)) {\n\t\tthrow new TypeError(`Expected \\`Uint8Array\\`, got \\`${typeof value}\\``);\n\t}\n}\n\nexport function assertUint8ArrayOrArrayBuffer(value) {\n\tif (!isUint8ArrayOrArrayBuffer(value)) {\n\t\tthrow new TypeError(`Expected \\`Uint8Array\\` or \\`ArrayBuffer\\`, got \\`${typeof value}\\``);\n\t}\n}\n\nexport function toUint8Array(value) {\n\tif (value instanceof ArrayBuffer) {\n\t\treturn new Uint8Array(value);\n\t}\n\n\tif (ArrayBuffer.isView(value)) {\n\t\treturn new Uint8Array(value.buffer, value.byteOffset, value.byteLength);\n\t}\n\n\tthrow new TypeError(`Unsupported value, got \\`${typeof value}\\`.`);\n}\n\nexport function concatUint8Arrays(arrays, totalLength) {\n\tif (arrays.length === 0) {\n\t\treturn new Uint8Array(0);\n\t}\n\n\ttotalLength ??= arrays.reduce((accumulator, currentValue) => accumulator + currentValue.length, 0);\n\n\tconst returnValue = new Uint8Array(totalLength);\n\n\tlet offset = 0;\n\tfor (const array of arrays) {\n\t\tassertUint8Array(array);\n\t\treturnValue.set(array, offset);\n\t\toffset += array.length;\n\t}\n\n\treturn returnValue;\n}\n\nexport function areUint8ArraysEqual(a, b) {\n\tassertUint8Array(a);\n\tassertUint8Array(b);\n\n\tif (a === b) {\n\t\treturn true;\n\t}\n\n\tif (a.length !== b.length) {\n\t\treturn false;\n\t}\n\n\t// eslint-disable-next-line unicorn/no-for-loop\n\tfor (let index = 0; index < a.length; index++) {\n\t\tif (a[index] !== b[index]) {\n\t\t\treturn false;\n\t\t}\n\t}\n\n\treturn true;\n}\n\nexport function compareUint8Arrays(a, b) {\n\tassertUint8Array(a);\n\tassertUint8Array(b);\n\n\tconst length = Math.min(a.length, b.length);\n\n\tfor (let index = 0; index < length; index++) {\n\t\tconst diff = a[index] - b[index];\n\t\tif (diff !== 0) {\n\t\t\treturn Math.sign(diff);\n\t\t}\n\t}\n\n\t// At this point, all the compared elements are equal.\n\t// The shorter array should come first if the arrays are of different lengths.\n\treturn Math.sign(a.length - b.length);\n}\n\nconst cachedDecoders = {\n\tutf8: new globalThis.TextDecoder('utf8'),\n};\n\nexport function uint8ArrayToString(array, encoding = 'utf8') {\n\tassertUint8ArrayOrArrayBuffer(array);\n\tcachedDecoders[encoding] ??= new globalThis.TextDecoder(encoding);\n\treturn cachedDecoders[encoding].decode(array);\n}\n\nfunction assertString(value) {\n\tif (typeof value !== 'string') {\n\t\tthrow new TypeError(`Expected \\`string\\`, got \\`${typeof value}\\``);\n\t}\n}\n\nconst cachedEncoder = new globalThis.TextEncoder();\n\nexport function stringToUint8Array(string) {\n\tassertString(string);\n\treturn cachedEncoder.encode(string);\n}\n\nfunction base64ToBase64Url(base64) {\n\treturn base64.replaceAll('+', '-').replaceAll('/', '_').replace(/=+$/, '');\n}\n\nfunction base64UrlToBase64(base64url) {\n\tconst base64 = base64url.replaceAll('-', '+').replaceAll('_', '/');\n\tconst padding = (4 - (base64.length % 4)) % 4;\n\treturn base64 + '='.repeat(padding);\n}\n\n// Reference: https://phuoc.ng/collection/this-vs-that/concat-vs-push/\n// Important: Keep this value divisible by 3 so intermediate chunks produce no Base64 padding.\nconst MAX_BLOCK_SIZE = 65_535;\n\nexport function uint8ArrayToBase64(array, {urlSafe = false} = {}) {\n\tassertUint8Array(array);\n\n\tlet base64 = '';\n\n\tfor (let index = 0; index < array.length; index += MAX_BLOCK_SIZE) {\n\t\tconst chunk = array.subarray(index, index + MAX_BLOCK_SIZE);\n\t\t// Required as `btoa` and `atob` don't properly support Unicode: https://developer.mozilla.org/en-US/docs/Glossary/Base64#the_unicode_problem\n\t\tbase64 += globalThis.btoa(String.fromCodePoint.apply(undefined, chunk));\n\t}\n\n\treturn urlSafe ? base64ToBase64Url(base64) : base64;\n}\n\nexport function base64ToUint8Array(base64String) {\n\tassertString(base64String);\n\treturn Uint8Array.from(globalThis.atob(base64UrlToBase64(base64String)), x => x.codePointAt(0));\n}\n\nexport function stringToBase64(string, {urlSafe = false} = {}) {\n\tassertString(string);\n\treturn uint8ArrayToBase64(stringToUint8Array(string), {urlSafe});\n}\n\nexport function base64ToString(base64String) {\n\tassertString(base64String);\n\treturn uint8ArrayToString(base64ToUint8Array(base64String));\n}\n\nconst byteToHexLookupTable = Array.from({length: 256}, (_, index) => index.toString(16).padStart(2, '0'));\n\nexport function uint8ArrayToHex(array) {\n\tassertUint8Array(array);\n\n\t// Concatenating a string is faster than using an array.\n\tlet hexString = '';\n\n\t// eslint-disable-next-line unicorn/no-for-loop -- Max performance is critical.\n\tfor (let index = 0; index < array.length; index++) {\n\t\thexString += byteToHexLookupTable[array[index]];\n\t}\n\n\treturn hexString;\n}\n\nconst hexToDecimalLookupTable = {\n\t0: 0,\n\t1: 1,\n\t2: 2,\n\t3: 3,\n\t4: 4,\n\t5: 5,\n\t6: 6,\n\t7: 7,\n\t8: 8,\n\t9: 9,\n\ta: 10,\n\tb: 11,\n\tc: 12,\n\td: 13,\n\te: 14,\n\tf: 15,\n\tA: 10,\n\tB: 11,\n\tC: 12,\n\tD: 13,\n\tE: 14,\n\tF: 15,\n};\n\nexport function hexToUint8Array(hexString) {\n\tassertString(hexString);\n\n\tif (hexString.length % 2 !== 0) {\n\t\tthrow new Error('Invalid Hex string length.');\n\t}\n\n\tconst resultLength = hexString.length / 2;\n\tconst bytes = new Uint8Array(resultLength);\n\n\tfor (let index = 0; index < resultLength; index++) {\n\t\tconst highNibble = hexToDecimalLookupTable[hexString[index * 2]];\n\t\tconst lowNibble = hexToDecimalLookupTable[hexString[(index * 2) + 1]];\n\n\t\tif (highNibble === undefined || lowNibble === undefined) {\n\t\t\tthrow new Error(`Invalid Hex character encountered at position ${index * 2}`);\n\t\t}\n\n\t\tbytes[index] = (highNibble << 4) | lowNibble; // eslint-disable-line no-bitwise\n\t}\n\n\treturn bytes;\n}\n\n/**\n@param {DataView} view\n@returns {number}\n*/\nexport function getUintBE(view) {\n\tconst {byteLength} = view;\n\n\tif (byteLength === 6) {\n\t\treturn (view.getUint16(0) * (2 ** 32)) + view.getUint32(2);\n\t}\n\n\tif (byteLength === 5) {\n\t\treturn (view.getUint8(0) * (2 ** 32)) + view.getUint32(1);\n\t}\n\n\tif (byteLength === 4) {\n\t\treturn view.getUint32(0);\n\t}\n\n\tif (byteLength === 3) {\n\t\treturn (view.getUint8(0) * (2 ** 16)) + view.getUint16(1);\n\t}\n\n\tif (byteLength === 2) {\n\t\treturn view.getUint16(0);\n\t}\n\n\tif (byteLength === 1) {\n\t\treturn view.getUint8(0);\n\t}\n}\n\n/**\n@param {Uint8Array} array\n@param {Uint8Array} value\n@returns {number}\n*/\nexport function indexOf(array, value) {\n\tconst arrayLength = array.length;\n\tconst valueLength = value.length;\n\n\tif (valueLength === 0) {\n\t\treturn -1;\n\t}\n\n\tif (valueLength > arrayLength) {\n\t\treturn -1;\n\t}\n\n\tconst validOffsetLength = arrayLength - valueLength;\n\n\tfor (let index = 0; index <= validOffsetLength; index++) {\n\t\tlet isMatch = true;\n\t\tfor (let index2 = 0; index2 < valueLength; index2++) {\n\t\t\tif (array[index + index2] !== value[index2]) {\n\t\t\t\tisMatch = false;\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\n\t\tif (isMatch) {\n\t\t\treturn index;\n\t\t}\n\t}\n\n\treturn -1;\n}\n\n/**\n@param {Uint8Array} array\n@param {Uint8Array} value\n@returns {boolean}\n*/\nexport function includes(array, value) {\n\treturn indexOf(array, value) !== -1;\n}\n","import {StringType} from 'token-types';\n\nexport function stringToBytes(string, encoding) {\n\tif (encoding === 'utf-16le') {\n\t\tconst bytes = [];\n\t\tfor (let index = 0; index < string.length; index++) {\n\t\t\tconst code = string.charCodeAt(index); // eslint-disable-line unicorn/prefer-code-point\n\t\t\tbytes.push(code & 0xFF, (code >> 8) & 0xFF); // High byte\n\t\t}\n\n\t\treturn bytes;\n\t}\n\n\tif (encoding === 'utf-16be') {\n\t\tconst bytes = [];\n\t\tfor (let index = 0; index < string.length; index++) {\n\t\t\tconst code = string.charCodeAt(index); // eslint-disable-line unicorn/prefer-code-point\n\t\t\tbytes.push((code >> 8) & 0xFF, code & 0xFF); // Low byte\n\t\t}\n\n\t\treturn bytes;\n\t}\n\n\treturn [...string].map(character => character.charCodeAt(0)); // eslint-disable-line unicorn/prefer-code-point\n}\n\n/**\nChecks whether the TAR checksum is valid.\n\n@param {Uint8Array} arrayBuffer - The TAR header `[offset ... offset + 512]`.\n@param {number} offset - TAR header offset.\n@returns {boolean} `true` if the TAR checksum is valid, otherwise `false`.\n*/\nexport function tarHeaderChecksumMatches(arrayBuffer, offset = 0) {\n\tconst readSum = Number.parseInt(new StringType(6).get(arrayBuffer, 148).replace(/\\0.*$/, '').trim(), 8); // Read sum in header\n\tif (Number.isNaN(readSum)) {\n\t\treturn false;\n\t}\n\n\tlet sum = 8 * 0x20; // Initialize signed bit sum\n\n\tfor (let index = offset; index < offset + 148; index++) {\n\t\tsum += arrayBuffer[index];\n\t}\n\n\tfor (let index = offset + 156; index < offset + 512; index++) {\n\t\tsum += arrayBuffer[index];\n\t}\n\n\treturn readSum === sum;\n}\n\n/**\nID3 UINT32 sync-safe tokenizer token.\n28 bits (representing up to 256MB) integer, the msb is 0 to avoid \"false syncsignals\".\n*/\nexport const uint32SyncSafeToken = {\n\tget: (buffer, offset) => (buffer[offset + 3] & 0x7F) | ((buffer[offset + 2]) << 7) | ((buffer[offset + 1]) << 14) | ((buffer[offset]) << 21),\n\tlen: 4,\n};\n","export const extensions = [\n\t'jpg',\n\t'png',\n\t'apng',\n\t'gif',\n\t'webp',\n\t'flif',\n\t'xcf',\n\t'cr2',\n\t'cr3',\n\t'orf',\n\t'arw',\n\t'dng',\n\t'nef',\n\t'rw2',\n\t'raf',\n\t'tif',\n\t'bmp',\n\t'icns',\n\t'jxr',\n\t'psd',\n\t'indd',\n\t'zip',\n\t'tar',\n\t'rar',\n\t'gz',\n\t'bz2',\n\t'7z',\n\t'dmg',\n\t'mp4',\n\t'mid',\n\t'mkv',\n\t'webm',\n\t'mov',\n\t'avi',\n\t'mpg',\n\t'mp2',\n\t'mp3',\n\t'm4a',\n\t'oga',\n\t'ogg',\n\t'ogv',\n\t'opus',\n\t'flac',\n\t'wav',\n\t'spx',\n\t'amr',\n\t'pdf',\n\t'epub',\n\t'elf',\n\t'macho',\n\t'exe',\n\t'swf',\n\t'rtf',\n\t'wasm',\n\t'woff',\n\t'woff2',\n\t'eot',\n\t'ttf',\n\t'otf',\n\t'ttc',\n\t'ico',\n\t'flv',\n\t'ps',\n\t'xz',\n\t'sqlite',\n\t'nes',\n\t'crx',\n\t'xpi',\n\t'cab',\n\t'deb',\n\t'ar',\n\t'rpm',\n\t'Z',\n\t'lz',\n\t'cfb',\n\t'mxf',\n\t'mts',\n\t'blend',\n\t'bpg',\n\t'docx',\n\t'pptx',\n\t'xlsx',\n\t'3gp',\n\t'3g2',\n\t'j2c',\n\t'jp2',\n\t'jpm',\n\t'jpx',\n\t'mj2',\n\t'aif',\n\t'qcp',\n\t'odt',\n\t'ods',\n\t'odp',\n\t'xml',\n\t'mobi',\n\t'heic',\n\t'cur',\n\t'ktx',\n\t'ape',\n\t'wv',\n\t'dcm',\n\t'ics',\n\t'glb',\n\t'pcap',\n\t'dsf',\n\t'lnk',\n\t'alias',\n\t'voc',\n\t'ac3',\n\t'm4v',\n\t'm4p',\n\t'm4b',\n\t'f4v',\n\t'f4p',\n\t'f4b',\n\t'f4a',\n\t'mie',\n\t'asf',\n\t'ogm',\n\t'ogx',\n\t'mpc',\n\t'arrow',\n\t'shp',\n\t'aac',\n\t'mp1',\n\t'it',\n\t's3m',\n\t'xm',\n\t'skp',\n\t'avif',\n\t'eps',\n\t'lzh',\n\t'pgp',\n\t'asar',\n\t'stl',\n\t'chm',\n\t'3mf',\n\t'zst',\n\t'jxl',\n\t'vcf',\n\t'jls',\n\t'pst',\n\t'dwg',\n\t'parquet',\n\t'class',\n\t'arj',\n\t'cpio',\n\t'ace',\n\t'avro',\n\t'icc',\n\t'fbx',\n\t'vsdx',\n\t'vtt',\n\t'apk',\n\t'drc',\n\t'lz4',\n\t'potx',\n\t'xltx',\n\t'dotx',\n\t'xltm',\n\t'ott',\n\t'ots',\n\t'otp',\n\t'odg',\n\t'otg',\n\t'xlsm',\n\t'docm',\n\t'dotm',\n\t'potm',\n\t'pptm',\n\t'jar',\n\t'rm',\n\t'ppsm',\n\t'ppsx',\n\t'tar.gz',\n\t'reg',\n\t'dat',\n];\n\nexport const mimeTypes = [\n\t'image/jpeg',\n\t'image/png',\n\t'image/gif',\n\t'image/webp',\n\t'image/flif',\n\t'image/x-xcf',\n\t'image/x-canon-cr2',\n\t'image/x-canon-cr3',\n\t'image/tiff',\n\t'image/bmp',\n\t'image/vnd.ms-photo',\n\t'image/vnd.adobe.photoshop',\n\t'application/x-indesign',\n\t'application/epub+zip',\n\t'application/x-xpinstall',\n\t'application/vnd.ms-powerpoint.slideshow.macroenabled.12',\n\t'application/vnd.oasis.opendocument.text',\n\t'application/vnd.oasis.opendocument.spreadsheet',\n\t'application/vnd.oasis.opendocument.presentation',\n\t'application/vnd.openxmlformats-officedocument.wordprocessingml.document',\n\t'application/vnd.openxmlformats-officedocument.presentationml.presentation',\n\t'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet',\n\t'application/vnd.openxmlformats-officedocument.presentationml.slideshow',\n\t'application/zip',\n\t'application/x-tar',\n\t'application/x-rar-compressed',\n\t'application/gzip',\n\t'application/x-bzip2',\n\t'application/x-7z-compressed',\n\t'application/x-apple-diskimage',\n\t'application/vnd.apache.arrow.file',\n\t'video/mp4',\n\t'audio/midi',\n\t'video/matroska',\n\t'video/webm',\n\t'video/quicktime',\n\t'video/vnd.avi',\n\t'audio/wav',\n\t'audio/qcelp',\n\t'audio/x-ms-asf',\n\t'video/x-ms-asf',\n\t'application/vnd.ms-asf',\n\t'video/mpeg',\n\t'video/3gpp',\n\t'audio/mpeg',\n\t'audio/mp4', // RFC 4337\n\t'video/ogg',\n\t'audio/ogg',\n\t'audio/ogg; codecs=opus',\n\t'application/ogg',\n\t'audio/flac',\n\t'audio/ape',\n\t'audio/wavpack',\n\t'audio/amr',\n\t'application/pdf',\n\t'application/x-elf',\n\t'application/x-mach-binary',\n\t'application/x-msdownload',\n\t'application/x-shockwave-flash',\n\t'application/rtf',\n\t'application/wasm',\n\t'font/woff',\n\t'font/woff2',\n\t'application/vnd.ms-fontobject',\n\t'font/ttf',\n\t'font/otf',\n\t'font/collection',\n\t'image/x-icon',\n\t'video/x-flv',\n\t'application/postscript',\n\t'application/eps',\n\t'application/x-xz',\n\t'application/x-sqlite3',\n\t'application/x-nintendo-nes-rom',\n\t'application/x-google-chrome-extension',\n\t'application/vnd.ms-cab-compressed',\n\t'application/x-deb',\n\t'application/x-unix-archive',\n\t'application/x-rpm',\n\t'application/x-compress',\n\t'application/x-lzip',\n\t'application/x-cfb',\n\t'application/x-mie',\n\t'application/mxf',\n\t'video/mp2t',\n\t'application/x-blender',\n\t'image/bpg',\n\t'image/j2c',\n\t'image/jp2',\n\t'image/jpx',\n\t'image/jpm',\n\t'image/mj2',\n\t'audio/aiff',\n\t'application/xml',\n\t'application/x-mobipocket-ebook',\n\t'image/heif',\n\t'image/heif-sequence',\n\t'image/heic',\n\t'image/heic-sequence',\n\t'image/icns',\n\t'image/ktx',\n\t'application/dicom',\n\t'audio/x-musepack',\n\t'text/calendar',\n\t'text/vcard',\n\t'text/vtt',\n\t'model/gltf-binary',\n\t'application/vnd.tcpdump.pcap',\n\t'audio/x-dsf', // Non-standard\n\t'application/x.ms.shortcut', // Invented by us\n\t'application/x.apple.alias', // Invented by us\n\t'audio/x-voc',\n\t'audio/vnd.dolby.dd-raw',\n\t'audio/x-m4a',\n\t'image/apng',\n\t'image/x-olympus-orf',\n\t'image/x-sony-arw',\n\t'image/x-adobe-dng',\n\t'image/x-nikon-nef',\n\t'image/x-panasonic-rw2',\n\t'image/x-fujifilm-raf',\n\t'video/x-m4v',\n\t'video/3gpp2',\n\t'application/x-esri-shape',\n\t'audio/aac',\n\t'audio/x-it',\n\t'audio/x-s3m',\n\t'audio/x-xm',\n\t'video/MP1S',\n\t'video/MP2P',\n\t'application/vnd.sketchup.skp',\n\t'image/avif',\n\t'application/x-lzh-compressed',\n\t'application/pgp-encrypted',\n\t'application/x-asar',\n\t'model/stl',\n\t'application/vnd.ms-htmlhelp',\n\t'model/3mf',\n\t'image/jxl',\n\t'application/zstd',\n\t'image/jls',\n\t'application/vnd.ms-outlook',\n\t'image/vnd.dwg',\n\t'application/vnd.apache.parquet',\n\t'application/java-vm',\n\t'application/x-arj',\n\t'application/x-cpio',\n\t'application/x-ace-compressed',\n\t'application/avro',\n\t'application/vnd.iccprofile',\n\t'application/x.autodesk.fbx', // Invented by us\n\t'application/vnd.visio',\n\t'application/vnd.android.package-archive',\n\t'application/vnd.google.draco', // Invented by us\n\t'application/x-lz4', // Invented by us\n\t'application/vnd.openxmlformats-officedocument.presentationml.template',\n\t'application/vnd.openxmlformats-officedocument.spreadsheetml.template',\n\t'application/vnd.openxmlformats-officedocument.wordprocessingml.template',\n\t'application/vnd.ms-excel.template.macroenabled.12',\n\t'application/vnd.oasis.opendocument.text-template',\n\t'application/vnd.oasis.opendocument.spreadsheet-template',\n\t'application/vnd.oasis.opendocument.presentation-template',\n\t'application/vnd.oasis.opendocument.graphics',\n\t'application/vnd.oasis.opendocument.graphics-template',\n\t'application/vnd.ms-excel.sheet.macroenabled.12',\n\t'application/vnd.ms-word.document.macroenabled.12',\n\t'application/vnd.ms-word.template.macroenabled.12',\n\t'application/vnd.ms-powerpoint.template.macroenabled.12',\n\t'application/vnd.ms-powerpoint.presentation.macroenabled.12',\n\t'application/java-archive',\n\t'application/vnd.rn-realmedia',\n\t'application/x-ms-regedit',\n\t'application/x-ft-windows-registry-hive',\n];\n","/**\nPrimary entry point, Node.js specific entry point is index.js\n*/\n\nimport * as Token from 'token-types';\nimport * as strtok3 from 'strtok3/core';\nimport {ZipHandler, GzipHandler} from '@tokenizer/inflate';\nimport {getUintBE} from 'uint8array-extras';\nimport {\n\tstringToBytes,\n\ttarHeaderChecksumMatches,\n\tuint32SyncSafeToken,\n} from './util.js';\nimport {extensions, mimeTypes} from './supported.js';\n\nexport const reasonableDetectionSizeInBytes = 4100; // A fair amount of file-types are detectable within this range.\n\nexport async function fileTypeFromStream(stream, options) {\n\treturn new FileTypeParser(options).fromStream(stream);\n}\n\nexport async function fileTypeFromBuffer(input, options) {\n\treturn new FileTypeParser(options).fromBuffer(input);\n}\n\nexport async function fileTypeFromBlob(blob, options) {\n\treturn new FileTypeParser(options).fromBlob(blob);\n}\n\nfunction getFileTypeFromMimeType(mimeType) {\n\tmimeType = mimeType.toLowerCase();\n\tswitch (mimeType) {\n\t\tcase 'application/epub+zip':\n\t\t\treturn {\n\t\t\t\text: 'epub',\n\t\t\t\tmime: mimeType,\n\t\t\t};\n\t\tcase 'application/vnd.oasis.opendocument.text':\n\t\t\treturn {\n\t\t\t\text: 'odt',\n\t\t\t\tmime: mimeType,\n\t\t\t};\n\t\tcase 'application/vnd.oasis.opendocument.text-template':\n\t\t\treturn {\n\t\t\t\text: 'ott',\n\t\t\t\tmime: mimeType,\n\t\t\t};\n\t\tcase 'application/vnd.oasis.opendocument.spreadsheet':\n\t\t\treturn {\n\t\t\t\text: 'ods',\n\t\t\t\tmime: mimeType,\n\t\t\t};\n\t\tcase 'application/vnd.oasis.opendocument.spreadsheet-template':\n\t\t\treturn {\n\t\t\t\text: 'ots',\n\t\t\t\tmime: mimeType,\n\t\t\t};\n\t\tcase 'application/vnd.oasis.opendocument.presentation':\n\t\t\treturn {\n\t\t\t\text: 'odp',\n\t\t\t\tmime: mimeType,\n\t\t\t};\n\t\tcase 'application/vnd.oasis.opendocument.presentation-template':\n\t\t\treturn {\n\t\t\t\text: 'otp',\n\t\t\t\tmime: mimeType,\n\t\t\t};\n\t\tcase 'application/vnd.oasis.opendocument.graphics':\n\t\t\treturn {\n\t\t\t\text: 'odg',\n\t\t\t\tmime: mimeType,\n\t\t\t};\n\t\tcase 'application/vnd.oasis.opendocument.graphics-template':\n\t\t\treturn {\n\t\t\t\text: 'otg',\n\t\t\t\tmime: mimeType,\n\t\t\t};\n\t\tcase 'application/vnd.openxmlformats-officedocument.presentationml.slideshow':\n\t\t\treturn {\n\t\t\t\text: 'ppsx',\n\t\t\t\tmime: mimeType,\n\t\t\t};\n\t\tcase 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet':\n\t\t\treturn {\n\t\t\t\text: 'xlsx',\n\t\t\t\tmime: mimeType,\n\t\t\t};\n\t\tcase 'application/vnd.ms-excel.sheet.macroenabled':\n\t\t\treturn {\n\t\t\t\text: 'xlsm',\n\t\t\t\tmime: 'application/vnd.ms-excel.sheet.macroenabled.12',\n\t\t\t};\n\t\tcase 'application/vnd.openxmlformats-officedocument.spreadsheetml.template':\n\t\t\treturn {\n\t\t\t\text: 'xltx',\n\t\t\t\tmime: mimeType,\n\t\t\t};\n\t\tcase 'application/vnd.ms-excel.template.macroenabled':\n\t\t\treturn {\n\t\t\t\text: 'xltm',\n\t\t\t\tmime: 'application/vnd.ms-excel.template.macroenabled.12',\n\t\t\t};\n\t\tcase 'application/vnd.ms-powerpoint.slideshow.macroenabled':\n\t\t\treturn {\n\t\t\t\text: 'ppsm',\n\t\t\t\tmime: 'application/vnd.ms-powerpoint.slideshow.macroenabled.12',\n\t\t\t};\n\t\tcase 'application/vnd.openxmlformats-officedocument.wordprocessingml.document':\n\t\t\treturn {\n\t\t\t\text: 'docx',\n\t\t\t\tmime: mimeType,\n\t\t\t};\n\t\tcase 'application/vnd.ms-word.document.macroenabled':\n\t\t\treturn {\n\t\t\t\text: 'docm',\n\t\t\t\tmime: 'application/vnd.ms-word.document.macroenabled.12',\n\t\t\t};\n\t\tcase 'application/vnd.openxmlformats-officedocument.wordprocessingml.template':\n\t\t\treturn {\n\t\t\t\text: 'dotx',\n\t\t\t\tmime: mimeType,\n\t\t\t};\n\t\tcase 'application/vnd.ms-word.template.macroenabledtemplate':\n\t\t\treturn {\n\t\t\t\text: 'dotm',\n\t\t\t\tmime: 'application/vnd.ms-word.template.macroenabled.12',\n\t\t\t};\n\t\tcase 'application/vnd.openxmlformats-officedocument.presentationml.template':\n\t\t\treturn {\n\t\t\t\text: 'potx',\n\t\t\t\tmime: mimeType,\n\t\t\t};\n\t\tcase 'application/vnd.ms-powerpoint.template.macroenabled':\n\t\t\treturn {\n\t\t\t\text: 'potm',\n\t\t\t\tmime: 'application/vnd.ms-powerpoint.template.macroenabled.12',\n\t\t\t};\n\t\tcase 'application/vnd.openxmlformats-officedocument.presentationml.presentation':\n\t\t\treturn {\n\t\t\t\text: 'pptx',\n\t\t\t\tmime: mimeType,\n\t\t\t};\n\t\tcase 'application/vnd.ms-powerpoint.presentation.macroenabled':\n\t\t\treturn {\n\t\t\t\text: 'pptm',\n\t\t\t\tmime: 'application/vnd.ms-powerpoint.presentation.macroenabled.12',\n\t\t\t};\n\t\tcase 'application/vnd.ms-visio.drawing':\n\t\t\treturn {\n\t\t\t\text: 'vsdx',\n\t\t\t\tmime: 'application/vnd.visio',\n\t\t\t};\n\t\tcase 'application/vnd.ms-package.3dmanufacturing-3dmodel+xml':\n\t\t\treturn {\n\t\t\t\text: '3mf',\n\t\t\t\tmime: 'model/3mf',\n\t\t\t};\n\t\tdefault:\n\t}\n}\n\nfunction _check(buffer, headers, options) {\n\toptions = {\n\t\toffset: 0,\n\t\t...options,\n\t};\n\n\tfor (const [index, header] of headers.entries()) {\n\t\t// If a bitmask is set\n\t\tif (options.mask) {\n\t\t\t// If header doesn't equal `buf` with bits masked off\n\t\t\tif (header !== (options.mask[index] & buffer[index + options.offset])) {\n\t\t\t\treturn false;\n\t\t\t}\n\t\t} else if (header !== buffer[index + options.offset]) {\n\t\t\treturn false;\n\t\t}\n\t}\n\n\treturn true;\n}\n\nexport async function fileTypeFromTokenizer(tokenizer, options) {\n\treturn new FileTypeParser(options).fromTokenizer(tokenizer);\n}\n\nexport async function fileTypeStream(webStream, options) {\n\treturn new FileTypeParser(options).toDetectionStream(webStream, options);\n}\n\nexport class FileTypeParser {\n\tconstructor(options) {\n\t\tthis.options = {\n\t\t\tmpegOffsetTolerance: 0,\n\t\t\t...options,\n\t\t};\n\n\t\tthis.detectors = [...(options?.customDetectors ?? []),\n\t\t\t{id: 'core', detect: this.detectConfident},\n\t\t\t{id: 'core.imprecise', detect: this.detectImprecise}];\n\t\tthis.tokenizerOptions = {\n\t\t\tabortSignal: options?.signal,\n\t\t};\n\t}\n\n\tasync fromTokenizer(tokenizer) {\n\t\tconst initialPosition = tokenizer.position;\n\n\t\t// Iterate through all file-type detectors\n\t\tfor (const detector of this.detectors) {\n\t\t\tconst fileType = await detector.detect(tokenizer);\n\t\t\tif (fileType) {\n\t\t\t\treturn fileType;\n\t\t\t}\n\n\t\t\tif (initialPosition !== tokenizer.position) {\n\t\t\t\treturn undefined; // Cannot proceed scanning of the tokenizer is at an arbitrary position\n\t\t\t}\n\t\t}\n\t}\n\n\tasync fromBuffer(input) {\n\t\tif (!(input instanceof Uint8Array || input instanceof ArrayBuffer)) {\n\t\t\tthrow new TypeError(`Expected the \\`input\\` argument to be of type \\`Uint8Array\\` or \\`ArrayBuffer\\`, got \\`${typeof input}\\``);\n\t\t}\n\n\t\tconst buffer = input instanceof Uint8Array ? input : new Uint8Array(input);\n\n\t\tif (!(buffer?.length > 1)) {\n\t\t\treturn;\n\t\t}\n\n\t\treturn this.fromTokenizer(strtok3.fromBuffer(buffer, this.tokenizerOptions));\n\t}\n\n\tasync fromBlob(blob) {\n\t\tconst tokenizer = strtok3.fromBlob(blob, this.tokenizerOptions);\n\t\ttry {\n\t\t\treturn await this.fromTokenizer(tokenizer);\n\t\t} finally {\n\t\t\tawait tokenizer.close();\n\t\t}\n\t}\n\n\tasync fromStream(stream) {\n\t\tconst tokenizer = strtok3.fromWebStream(stream, this.tokenizerOptions);\n\t\ttry {\n\t\t\treturn await this.fromTokenizer(tokenizer);\n\t\t} finally {\n\t\t\tawait tokenizer.close();\n\t\t}\n\t}\n\n\tasync toDetectionStream(stream, options) {\n\t\tconst {sampleSize = reasonableDetectionSizeInBytes} = options;\n\t\tlet detectedFileType;\n\t\tlet firstChunk;\n\n\t\tconst reader = stream.getReader({mode: 'byob'});\n\t\ttry {\n\t\t\t// Read the first chunk from the stream\n\t\t\tconst {value: chunk, done} = await reader.read(new Uint8Array(sampleSize));\n\t\t\tfirstChunk = chunk;\n\t\t\tif (!done && chunk) {\n\t\t\t\ttry {\n\t\t\t\t\t// Attempt to detect the file type from the chunk\n\t\t\t\t\tdetectedFileType = await this.fromBuffer(chunk.subarray(0, sampleSize));\n\t\t\t\t} catch (error) {\n\t\t\t\t\tif (!(error instanceof strtok3.EndOfStreamError)) {\n\t\t\t\t\t\tthrow error; // Re-throw non-EndOfStreamError\n\t\t\t\t\t}\n\n\t\t\t\t\tdetectedFileType = undefined;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tfirstChunk = chunk;\n\t\t} finally {\n\t\t\treader.releaseLock(); // Ensure the reader is released\n\t\t}\n\n\t\t// Create a new ReadableStream to manage locking issues\n\t\tconst transformStream = new TransformStream({\n\t\t\tasync start(controller) {\n\t\t\t\tcontroller.enqueue(firstChunk); // Enqueue the initial chunk\n\t\t\t},\n\t\t\ttransform(chunk, controller) {\n\t\t\t\t// Pass through the chunks without modification\n\t\t\t\tcontroller.enqueue(chunk);\n\t\t\t},\n\t\t});\n\n\t\tconst newStream = stream.pipeThrough(transformStream);\n\t\tnewStream.fileType = detectedFileType;\n\n\t\treturn newStream;\n\t}\n\n\tcheck(header, options) {\n\t\treturn _check(this.buffer, header, options);\n\t}\n\n\tcheckString(header, options) {\n\t\treturn this.check(stringToBytes(header, options?.encoding), options);\n\t}\n\n\t// Detections with a high degree of certainty in identifying the correct file type\n\tdetectConfident = async tokenizer => {\n\t\tthis.buffer = new Uint8Array(reasonableDetectionSizeInBytes);\n\n\t\t// Keep reading until EOF if the file size is unknown.\n\t\tif (tokenizer.fileInfo.size === undefined) {\n\t\t\ttokenizer.fileInfo.size = Number.MAX_SAFE_INTEGER;\n\t\t}\n\n\t\tthis.tokenizer = tokenizer;\n\n\t\tawait tokenizer.peekBuffer(this.buffer, {length: 32, mayBeLess: true});\n\n\t\t// -- 2-byte signatures --\n\n\t\tif (this.check([0x42, 0x4D])) {\n\t\t\treturn {\n\t\t\t\text: 'bmp',\n\t\t\t\tmime: 'image/bmp',\n\t\t\t};\n\t\t}\n\n\t\tif (this.check([0x0B, 0x77])) {\n\t\t\treturn {\n\t\t\t\text: 'ac3',\n\t\t\t\tmime: 'audio/vnd.dolby.dd-raw',\n\t\t\t};\n\t\t}\n\n\t\tif (this.check([0x78, 0x01])) {\n\t\t\treturn {\n\t\t\t\text: 'dmg',\n\t\t\t\tmime: 'application/x-apple-diskimage',\n\t\t\t};\n\t\t}\n\n\t\tif (this.check([0x4D, 0x5A])) {\n\t\t\treturn {\n\t\t\t\text: 'exe',\n\t\t\t\tmime: 'application/x-msdownload',\n\t\t\t};\n\t\t}\n\n\t\tif (this.check([0x25, 0x21])) {\n\t\t\tawait tokenizer.peekBuffer(this.buffer, {length: 24, mayBeLess: true});\n\n\t\t\tif (\n\t\t\t\tthis.checkString('PS-Adobe-', {offset: 2})\n\t\t\t\t&& this.checkString(' EPSF-', {offset: 14})\n\t\t\t) {\n\t\t\t\treturn {\n\t\t\t\t\text: 'eps',\n\t\t\t\t\tmime: 'application/eps',\n\t\t\t\t};\n\t\t\t}\n\n\t\t\treturn {\n\t\t\t\text: 'ps',\n\t\t\t\tmime: 'application/postscript',\n\t\t\t};\n\t\t}\n\n\t\tif (\n\t\t\tthis.check([0x1F, 0xA0])\n\t\t\t|| this.check([0x1F, 0x9D])\n\t\t) {\n\t\t\treturn {\n\t\t\t\text: 'Z',\n\t\t\t\tmime: 'application/x-compress',\n\t\t\t};\n\t\t}\n\n\t\tif (this.check([0xC7, 0x71])) {\n\t\t\treturn {\n\t\t\t\text: 'cpio',\n\t\t\t\tmime: 'application/x-cpio',\n\t\t\t};\n\t\t}\n\n\t\tif (this.check([0x60, 0xEA])) {\n\t\t\treturn {\n\t\t\t\text: 'arj',\n\t\t\t\tmime: 'application/x-arj',\n\t\t\t};\n\t\t}\n\n\t\t// -- 3-byte signatures --\n\n\t\tif (this.check([0xEF, 0xBB, 0xBF])) { // UTF-8-BOM\n\t\t\t// Strip off UTF-8-BOM\n\t\t\tthis.tokenizer.ignore(3);\n\t\t\treturn this.detectConfident(tokenizer);\n\t\t}\n\n\t\tif (this.check([0x47, 0x49, 0x46])) {\n\t\t\treturn {\n\t\t\t\text: 'gif',\n\t\t\t\tmime: 'image/gif',\n\t\t\t};\n\t\t}\n\n\t\tif (this.check([0x49, 0x49, 0xBC])) {\n\t\t\treturn {\n\t\t\t\text: 'jxr',\n\t\t\t\tmime: 'image/vnd.ms-photo',\n\t\t\t};\n\t\t}\n\n\t\tif (this.check([0x1F, 0x8B, 0x8])) {\n\t\t\tconst gzipHandler = new GzipHandler(tokenizer);\n\n\t\t\tconst stream = gzipHandler.inflate();\n\t\t\tlet shouldCancelStream = true;\n\t\t\ttry {\n\t\t\t\tlet compressedFileType;\n\t\t\t\ttry {\n\t\t\t\t\tcompressedFileType = await this.fromStream(stream);\n\t\t\t\t} catch {\n\t\t\t\t\tshouldCancelStream = false;\n\t\t\t\t}\n\n\t\t\t\tif (compressedFileType && compressedFileType.ext === 'tar') {\n\t\t\t\t\treturn {\n\t\t\t\t\t\text: 'tar.gz',\n\t\t\t\t\t\tmime: 'application/gzip',\n\t\t\t\t\t};\n\t\t\t\t}\n\t\t\t} finally {\n\t\t\t\tif (shouldCancelStream) {\n\t\t\t\t\tawait stream.cancel();\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treturn {\n\t\t\t\text: 'gz',\n\t\t\t\tmime: 'application/gzip',\n\t\t\t};\n\t\t}\n\n\t\tif (this.check([0x42, 0x5A, 0x68])) {\n\t\t\treturn {\n\t\t\t\text: 'bz2',\n\t\t\t\tmime: 'application/x-bzip2',\n\t\t\t};\n\t\t}\n\n\t\tif (this.checkString('ID3')) {\n\t\t\tawait tokenizer.ignore(6); // Skip ID3 header until the header size\n\t\t\tconst id3HeaderLength = await tokenizer.readToken(uint32SyncSafeToken);\n\t\t\tif (tokenizer.position + id3HeaderLength > tokenizer.fileInfo.size) {\n\t\t\t\t// Guess file type based on ID3 header for backward compatibility\n\t\t\t\treturn {\n\t\t\t\t\text: 'mp3',\n\t\t\t\t\tmime: 'audio/mpeg',\n\t\t\t\t};\n\t\t\t}\n\n\t\t\tawait tokenizer.ignore(id3HeaderLength);\n\t\t\treturn this.fromTokenizer(tokenizer); // Skip ID3 header, recursion\n\t\t}\n\n\t\t// Musepack, SV7\n\t\tif (this.checkString('MP+')) {\n\t\t\treturn {\n\t\t\t\text: 'mpc',\n\t\t\t\tmime: 'audio/x-musepack',\n\t\t\t};\n\t\t}\n\n\t\tif (\n\t\t\t(this.buffer[0] === 0x43 || this.buffer[0] === 0x46)\n\t\t\t&& this.check([0x57, 0x53], {offset: 1})\n\t\t) {\n\t\t\treturn {\n\t\t\t\text: 'swf',\n\t\t\t\tmime: 'application/x-shockwave-flash',\n\t\t\t};\n\t\t}\n\n\t\t// -- 4-byte signatures --\n\n\t\t// Requires a sample size of 4 bytes\n\t\tif (this.check([0xFF, 0xD8, 0xFF])) {\n\t\t\tif (this.check([0xF7], {offset: 3})) { // JPG7/SOF55, indicating a ISO/IEC 14495 / JPEG-LS file\n\t\t\t\treturn {\n\t\t\t\t\text: 'jls',\n\t\t\t\t\tmime: 'image/jls',\n\t\t\t\t};\n\t\t\t}\n\n\t\t\treturn {\n\t\t\t\text: 'jpg',\n\t\t\t\tmime: 'image/jpeg',\n\t\t\t};\n\t\t}\n\n\t\tif (this.check([0x4F, 0x62, 0x6A, 0x01])) {\n\t\t\treturn {\n\t\t\t\text: 'avro',\n\t\t\t\tmime: 'application/avro',\n\t\t\t};\n\t\t}\n\n\t\tif (this.checkString('FLIF')) {\n\t\t\treturn {\n\t\t\t\text: 'flif',\n\t\t\t\tmime: 'image/flif',\n\t\t\t};\n\t\t}\n\n\t\tif (this.checkString('8BPS')) {\n\t\t\treturn {\n\t\t\t\text: 'psd',\n\t\t\t\tmime: 'image/vnd.adobe.photoshop',\n\t\t\t};\n\t\t}\n\n\t\t// Musepack, SV8\n\t\tif (this.checkString('MPCK')) {\n\t\t\treturn {\n\t\t\t\text: 'mpc',\n\t\t\t\tmime: 'audio/x-musepack',\n\t\t\t};\n\t\t}\n\n\t\tif (this.checkString('FORM')) {\n\t\t\treturn {\n\t\t\t\text: 'aif',\n\t\t\t\tmime: 'audio/aiff',\n\t\t\t};\n\t\t}\n\n\t\tif (this.checkString('icns', {offset: 0})) {\n\t\t\treturn {\n\t\t\t\text: 'icns',\n\t\t\t\tmime: 'image/icns',\n\t\t\t};\n\t\t}\n\n\t\t// Zip-based file formats\n\t\t// Need to be before the `zip` check\n\t\tif (this.check([0x50, 0x4B, 0x3, 0x4])) { // Local file header signature\n\t\t\tlet fileType;\n\t\t\tawait new ZipHandler(tokenizer).unzip(zipHeader => {\n\t\t\t\tswitch (zipHeader.filename) {\n\t\t\t\t\tcase 'META-INF/mozilla.rsa':\n\t\t\t\t\t\tfileType = {\n\t\t\t\t\t\t\text: 'xpi',\n\t\t\t\t\t\t\tmime: 'application/x-xpinstall',\n\t\t\t\t\t\t};\n\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\tstop: true,\n\t\t\t\t\t\t};\n\t\t\t\t\tcase 'META-INF/MANIFEST.MF':\n\t\t\t\t\t\tfileType = {\n\t\t\t\t\t\t\text: 'jar',\n\t\t\t\t\t\t\tmime: 'application/java-archive',\n\t\t\t\t\t\t};\n\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\tstop: true,\n\t\t\t\t\t\t};\n\t\t\t\t\tcase 'mimetype':\n\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\tasync handler(fileData) {\n\t\t\t\t\t\t\t\t// Use TextDecoder to decode the UTF-8 encoded data\n\t\t\t\t\t\t\t\tconst mimeType = new TextDecoder('utf-8').decode(fileData).trim();\n\t\t\t\t\t\t\t\tfileType = getFileTypeFromMimeType(mimeType);\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\tstop: true,\n\t\t\t\t\t\t};\n\n\t\t\t\t\tcase '[Content_Types].xml':\n\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\tasync handler(fileData) {\n\t\t\t\t\t\t\t\t// Use TextDecoder to decode the UTF-8 encoded data\n\t\t\t\t\t\t\t\tlet xmlContent = new TextDecoder('utf-8').decode(fileData);\n\t\t\t\t\t\t\t\tconst endPos = xmlContent.indexOf('.main+xml\"');\n\t\t\t\t\t\t\t\tif (endPos === -1) {\n\t\t\t\t\t\t\t\t\tconst mimeType = 'application/vnd.ms-package.3dmanufacturing-3dmodel+xml';\n\t\t\t\t\t\t\t\t\tif (xmlContent.includes(`ContentType=\"${mimeType}\"`)) {\n\t\t\t\t\t\t\t\t\t\tfileType = getFileTypeFromMimeType(mimeType);\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\txmlContent = xmlContent.slice(0, Math.max(0, endPos));\n\t\t\t\t\t\t\t\t\tconst firstPos = xmlContent.lastIndexOf('\"');\n\t\t\t\t\t\t\t\t\tconst mimeType = xmlContent.slice(Math.max(0, firstPos + 1));\n\t\t\t\t\t\t\t\t\tfileType = getFileTypeFromMimeType(mimeType);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\tstop: true,\n\t\t\t\t\t\t};\n\t\t\t\t\tdefault:\n\t\t\t\t\t\tif (/classes\\d*\\.dex/.test(zipHeader.filename)) {\n\t\t\t\t\t\t\tfileType = {\n\t\t\t\t\t\t\t\text: 'apk',\n\t\t\t\t\t\t\t\tmime: 'application/vnd.android.package-archive',\n\t\t\t\t\t\t\t};\n\t\t\t\t\t\t\treturn {stop: true};\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\treturn {};\n\t\t\t\t}\n\t\t\t}).catch(error => {\n\t\t\t\tif (!(error instanceof strtok3.EndOfStreamError)) {\n\t\t\t\t\tthrow error; // Re-throw non-EndOfStreamError\n\t\t\t\t}\n\t\t\t});\n\n\t\t\treturn fileType ?? {\n\t\t\t\text: 'zip',\n\t\t\t\tmime: 'application/zip',\n\t\t\t};\n\t\t}\n\n\t\tif (this.checkString('OggS')) {\n\t\t\t// This is an OGG container\n\t\t\tawait tokenizer.ignore(28);\n\t\t\tconst type = new Uint8Array(8);\n\t\t\tawait tokenizer.readBuffer(type);\n\n\t\t\t// Needs to be before `ogg` check\n\t\t\tif (_check(type, [0x4F, 0x70, 0x75, 0x73, 0x48, 0x65, 0x61, 0x64])) {\n\t\t\t\treturn {\n\t\t\t\t\text: 'opus',\n\t\t\t\t\tmime: 'audio/ogg; codecs=opus',\n\t\t\t\t};\n\t\t\t}\n\n\t\t\t// If ' theora' in header.\n\t\t\tif (_check(type, [0x80, 0x74, 0x68, 0x65, 0x6F, 0x72, 0x61])) {\n\t\t\t\treturn {\n\t\t\t\t\text: 'ogv',\n\t\t\t\t\tmime: 'video/ogg',\n\t\t\t\t};\n\t\t\t}\n\n\t\t\t// If '\\x01video' in header.\n\t\t\tif (_check(type, [0x01, 0x76, 0x69, 0x64, 0x65, 0x6F, 0x00])) {\n\t\t\t\treturn {\n\t\t\t\t\text: 'ogm',\n\t\t\t\t\tmime: 'video/ogg',\n\t\t\t\t};\n\t\t\t}\n\n\t\t\t// If ' FLAC' in header https://xiph.org/flac/faq.html\n\t\t\tif (_check(type, [0x7F, 0x46, 0x4C, 0x41, 0x43])) {\n\t\t\t\treturn {\n\t\t\t\t\text: 'oga',\n\t\t\t\t\tmime: 'audio/ogg',\n\t\t\t\t};\n\t\t\t}\n\n\t\t\t// 'Speex ' in header https://en.wikipedia.org/wiki/Speex\n\t\t\tif (_check(type, [0x53, 0x70, 0x65, 0x65, 0x78, 0x20, 0x20])) {\n\t\t\t\treturn {\n\t\t\t\t\text: 'spx',\n\t\t\t\t\tmime: 'audio/ogg',\n\t\t\t\t};\n\t\t\t}\n\n\t\t\t// If '\\x01vorbis' in header\n\t\t\tif (_check(type, [0x01, 0x76, 0x6F, 0x72, 0x62, 0x69, 0x73])) {\n\t\t\t\treturn {\n\t\t\t\t\text: 'ogg',\n\t\t\t\t\tmime: 'audio/ogg',\n\t\t\t\t};\n\t\t\t}\n\n\t\t\t// Default OGG container https://www.iana.org/assignments/media-types/application/ogg\n\t\t\treturn {\n\t\t\t\text: 'ogx',\n\t\t\t\tmime: 'application/ogg',\n\t\t\t};\n\t\t}\n\n\t\tif (\n\t\t\tthis.check([0x50, 0x4B])\n\t\t\t&& (this.buffer[2] === 0x3 || this.buffer[2] === 0x5 || this.buffer[2] === 0x7)\n\t\t\t&& (this.buffer[3] === 0x4 || this.buffer[3] === 0x6 || this.buffer[3] === 0x8)\n\t\t) {\n\t\t\treturn {\n\t\t\t\text: 'zip',\n\t\t\t\tmime: 'application/zip',\n\t\t\t};\n\t\t}\n\n\t\tif (this.checkString('MThd')) {\n\t\t\treturn {\n\t\t\t\text: 'mid',\n\t\t\t\tmime: 'audio/midi',\n\t\t\t};\n\t\t}\n\n\t\tif (\n\t\t\tthis.checkString('wOFF')\n\t\t\t&& (\n\t\t\t\tthis.check([0x00, 0x01, 0x00, 0x00], {offset: 4})\n\t\t\t\t|| this.checkString('OTTO', {offset: 4})\n\t\t\t)\n\t\t) {\n\t\t\treturn {\n\t\t\t\text: 'woff',\n\t\t\t\tmime: 'font/woff',\n\t\t\t};\n\t\t}\n\n\t\tif (\n\t\t\tthis.checkString('wOF2')\n\t\t\t&& (\n\t\t\t\tthis.check([0x00, 0x01, 0x00, 0x00], {offset: 4})\n\t\t\t\t|| this.checkString('OTTO', {offset: 4})\n\t\t\t)\n\t\t) {\n\t\t\treturn {\n\t\t\t\text: 'woff2',\n\t\t\t\tmime: 'font/woff2',\n\t\t\t};\n\t\t}\n\n\t\tif (this.check([0xD4, 0xC3, 0xB2, 0xA1]) || this.check([0xA1, 0xB2, 0xC3, 0xD4])) {\n\t\t\treturn {\n\t\t\t\text: 'pcap',\n\t\t\t\tmime: 'application/vnd.tcpdump.pcap',\n\t\t\t};\n\t\t}\n\n\t\t// Sony DSD Stream File (DSF)\n\t\tif (this.checkString('DSD ')) {\n\t\t\treturn {\n\t\t\t\text: 'dsf',\n\t\t\t\tmime: 'audio/x-dsf', // Non-standard\n\t\t\t};\n\t\t}\n\n\t\tif (this.checkString('LZIP')) {\n\t\t\treturn {\n\t\t\t\text: 'lz',\n\t\t\t\tmime: 'application/x-lzip',\n\t\t\t};\n\t\t}\n\n\t\tif (this.checkString('fLaC')) {\n\t\t\treturn {\n\t\t\t\text: 'flac',\n\t\t\t\tmime: 'audio/flac',\n\t\t\t};\n\t\t}\n\n\t\tif (this.check([0x42, 0x50, 0x47, 0xFB])) {\n\t\t\treturn {\n\t\t\t\text: 'bpg',\n\t\t\t\tmime: 'image/bpg',\n\t\t\t};\n\t\t}\n\n\t\tif (this.checkString('wvpk')) {\n\t\t\treturn {\n\t\t\t\text: 'wv',\n\t\t\t\tmime: 'audio/wavpack',\n\t\t\t};\n\t\t}\n\n\t\tif (this.checkString('%PDF')) {\n\t\t\t// Assume this is just a normal PDF\n\t\t\treturn {\n\t\t\t\text: 'pdf',\n\t\t\t\tmime: 'application/pdf',\n\t\t\t};\n\t\t}\n\n\t\tif (this.check([0x00, 0x61, 0x73, 0x6D])) {\n\t\t\treturn {\n\t\t\t\text: 'wasm',\n\t\t\t\tmime: 'application/wasm',\n\t\t\t};\n\t\t}\n\n\t\t// TIFF, little-endian type\n\t\tif (this.check([0x49, 0x49])) {\n\t\t\tconst fileType = await this.readTiffHeader(false);\n\t\t\tif (fileType) {\n\t\t\t\treturn fileType;\n\t\t\t}\n\t\t}\n\n\t\t// TIFF, big-endian type\n\t\tif (this.check([0x4D, 0x4D])) {\n\t\t\tconst fileType = await this.readTiffHeader(true);\n\t\t\tif (fileType) {\n\t\t\t\treturn fileType;\n\t\t\t}\n\t\t}\n\n\t\tif (this.checkString('MAC ')) {\n\t\t\treturn {\n\t\t\t\text: 'ape',\n\t\t\t\tmime: 'audio/ape',\n\t\t\t};\n\t\t}\n\n\t\t// https://github.com/file/file/blob/master/magic/Magdir/matroska\n\t\tif (this.check([0x1A, 0x45, 0xDF, 0xA3])) { // Root element: EBML\n\t\t\tasync function readField() {\n\t\t\t\tconst msb = await tokenizer.peekNumber(Token.UINT8);\n\t\t\t\tlet mask = 0x80;\n\t\t\t\tlet ic = 0; // 0 = A, 1 = B, 2 = C, 3 = D\n\n\t\t\t\twhile ((msb & mask) === 0 && mask !== 0) {\n\t\t\t\t\t++ic;\n\t\t\t\t\tmask >>= 1;\n\t\t\t\t}\n\n\t\t\t\tconst id = new Uint8Array(ic + 1);\n\t\t\t\tawait tokenizer.readBuffer(id);\n\t\t\t\treturn id;\n\t\t\t}\n\n\t\t\tasync function readElement() {\n\t\t\t\tconst idField = await readField();\n\t\t\t\tconst lengthField = await readField();\n\n\t\t\t\tlengthField[0] ^= 0x80 >> (lengthField.length - 1);\n\t\t\t\tconst nrLength = Math.min(6, lengthField.length); // JavaScript can max read 6 bytes integer\n\n\t\t\t\tconst idView = new DataView(idField.buffer);\n\t\t\t\tconst lengthView = new DataView(lengthField.buffer, lengthField.length - nrLength, nrLength);\n\n\t\t\t\treturn {\n\t\t\t\t\tid: getUintBE(idView),\n\t\t\t\t\tlen: getUintBE(lengthView),\n\t\t\t\t};\n\t\t\t}\n\n\t\t\tasync function readChildren(children) {\n\t\t\t\twhile (children > 0) {\n\t\t\t\t\tconst element = await readElement();\n\t\t\t\t\tif (element.id === 0x42_82) {\n\t\t\t\t\t\tconst rawValue = await tokenizer.readToken(new Token.StringType(element.len));\n\t\t\t\t\t\treturn rawValue.replaceAll(/\\00.*$/g, ''); // Return DocType\n\t\t\t\t\t}\n\n\t\t\t\t\tawait tokenizer.ignore(element.len); // ignore payload\n\t\t\t\t\t--children;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tconst re = await readElement();\n\t\t\tconst documentType = await readChildren(re.len);\n\n\t\t\tswitch (documentType) {\n\t\t\t\tcase 'webm':\n\t\t\t\t\treturn {\n\t\t\t\t\t\text: 'webm',\n\t\t\t\t\t\tmime: 'video/webm',\n\t\t\t\t\t};\n\n\t\t\t\tcase 'matroska':\n\t\t\t\t\treturn {\n\t\t\t\t\t\text: 'mkv',\n\t\t\t\t\t\tmime: 'video/matroska',\n\t\t\t\t\t};\n\n\t\t\t\tdefault:\n\t\t\t\t\treturn;\n\t\t\t}\n\t\t}\n\n\t\tif (this.checkString('SQLi')) {\n\t\t\treturn {\n\t\t\t\text: 'sqlite',\n\t\t\t\tmime: 'application/x-sqlite3',\n\t\t\t};\n\t\t}\n\n\t\tif (this.check([0x4E, 0x45, 0x53, 0x1A])) {\n\t\t\treturn {\n\t\t\t\text: 'nes',\n\t\t\t\tmime: 'application/x-nintendo-nes-rom',\n\t\t\t};\n\t\t}\n\n\t\tif (this.checkString('Cr24')) {\n\t\t\treturn {\n\t\t\t\text: 'crx',\n\t\t\t\tmime: 'application/x-google-chrome-extension',\n\t\t\t};\n\t\t}\n\n\t\tif (\n\t\t\tthis.checkString('MSCF')\n\t\t\t|| this.checkString('ISc(')\n\t\t) {\n\t\t\treturn {\n\t\t\t\text: 'cab',\n\t\t\t\tmime: 'application/vnd.ms-cab-compressed',\n\t\t\t};\n\t\t}\n\n\t\tif (this.check([0xED, 0xAB, 0xEE, 0xDB])) {\n\t\t\treturn {\n\t\t\t\text: 'rpm',\n\t\t\t\tmime: 'application/x-rpm',\n\t\t\t};\n\t\t}\n\n\t\tif (this.check([0xC5, 0xD0, 0xD3, 0xC6])) {\n\t\t\treturn {\n\t\t\t\text: 'eps',\n\t\t\t\tmime: 'application/eps',\n\t\t\t};\n\t\t}\n\n\t\tif (this.check([0x28, 0xB5, 0x2F, 0xFD])) {\n\t\t\treturn {\n\t\t\t\text: 'zst',\n\t\t\t\tmime: 'application/zstd',\n\t\t\t};\n\t\t}\n\n\t\tif (this.check([0x7F, 0x45, 0x4C, 0x46])) {\n\t\t\treturn {\n\t\t\t\text: 'elf',\n\t\t\t\tmime: 'application/x-elf',\n\t\t\t};\n\t\t}\n\n\t\tif (this.check([0x21, 0x42, 0x44, 0x4E])) {\n\t\t\treturn {\n\t\t\t\text: 'pst',\n\t\t\t\tmime: 'application/vnd.ms-outlook',\n\t\t\t};\n\t\t}\n\n\t\tif (this.checkString('PAR1') || this.checkString('PARE')) {\n\t\t\treturn {\n\t\t\t\text: 'parquet',\n\t\t\t\tmime: 'application/vnd.apache.parquet',\n\t\t\t};\n\t\t}\n\n\t\tif (this.checkString('ttcf')) {\n\t\t\treturn {\n\t\t\t\text: 'ttc',\n\t\t\t\tmime: 'font/collection',\n\t\t\t};\n\t\t}\n\n\t\tif (this.check([0xCF, 0xFA, 0xED, 0xFE])) {\n\t\t\treturn {\n\t\t\t\text: 'macho',\n\t\t\t\tmime: 'application/x-mach-binary',\n\t\t\t};\n\t\t}\n\n\t\tif (this.check([0x04, 0x22, 0x4D, 0x18])) {\n\t\t\treturn {\n\t\t\t\text: 'lz4',\n\t\t\t\tmime: 'application/x-lz4', // Invented by us\n\t\t\t};\n\t\t}\n\n\t\tif (this.checkString('regf')) {\n\t\t\treturn {\n\t\t\t\text: 'dat',\n\t\t\t\tmime: 'application/x-ft-windows-registry-hive',\n\t\t\t};\n\t\t}\n\n\t\t// -- 5-byte signatures --\n\n\t\tif (this.check([0x4F, 0x54, 0x54, 0x4F, 0x00])) {\n\t\t\treturn {\n\t\t\t\text: 'otf',\n\t\t\t\tmime: 'font/otf',\n\t\t\t};\n\t\t}\n\n\t\tif (this.checkString('#!AMR')) {\n\t\t\treturn {\n\t\t\t\text: 'amr',\n\t\t\t\tmime: 'audio/amr',\n\t\t\t};\n\t\t}\n\n\t\tif (this.checkString('{\\\\rtf')) {\n\t\t\treturn {\n\t\t\t\text: 'rtf',\n\t\t\t\tmime: 'application/rtf',\n\t\t\t};\n\t\t}\n\n\t\tif (this.check([0x46, 0x4C, 0x56, 0x01])) {\n\t\t\treturn {\n\t\t\t\text: 'flv',\n\t\t\t\tmime: 'video/x-flv',\n\t\t\t};\n\t\t}\n\n\t\tif (this.checkString('IMPM')) {\n\t\t\treturn {\n\t\t\t\text: 'it',\n\t\t\t\tmime: 'audio/x-it',\n\t\t\t};\n\t\t}\n\n\t\tif (\n\t\t\tthis.checkString('-lh0-', {offset: 2})\n\t\t\t|| this.checkString('-lh1-', {offset: 2})\n\t\t\t|| this.checkString('-lh2-', {offset: 2})\n\t\t\t|| this.checkString('-lh3-', {offset: 2})\n\t\t\t|| this.checkString('-lh4-', {offset: 2})\n\t\t\t|| this.checkString('-lh5-', {offset: 2})\n\t\t\t|| this.checkString('-lh6-', {offset: 2})\n\t\t\t|| this.checkString('-lh7-', {offset: 2})\n\t\t\t|| this.checkString('-lzs-', {offset: 2})\n\t\t\t|| this.checkString('-lz4-', {offset: 2})\n\t\t\t|| this.checkString('-lz5-', {offset: 2})\n\t\t\t|| this.checkString('-lhd-', {offset: 2})\n\t\t) {\n\t\t\treturn {\n\t\t\t\text: 'lzh',\n\t\t\t\tmime: 'application/x-lzh-compressed',\n\t\t\t};\n\t\t}\n\n\t\t// MPEG program stream (PS or MPEG-PS)\n\t\tif (this.check([0x00, 0x00, 0x01, 0xBA])) {\n\t\t\t// MPEG-PS, MPEG-1 Part 1\n\t\t\tif (this.check([0x21], {offset: 4, mask: [0xF1]})) {\n\t\t\t\treturn {\n\t\t\t\t\text: 'mpg', // May also be .ps, .mpeg\n\t\t\t\t\tmime: 'video/MP1S',\n\t\t\t\t};\n\t\t\t}\n\n\t\t\t// MPEG-PS, MPEG-2 Part 1\n\t\t\tif (this.check([0x44], {offset: 4, mask: [0xC4]})) {\n\t\t\t\treturn {\n\t\t\t\t\text: 'mpg', // May also be .mpg, .m2p, .vob or .sub\n\t\t\t\t\tmime: 'video/MP2P',\n\t\t\t\t};\n\t\t\t}\n\t\t}\n\n\t\tif (this.checkString('ITSF')) {\n\t\t\treturn {\n\t\t\t\text: 'chm',\n\t\t\t\tmime: 'application/vnd.ms-htmlhelp',\n\t\t\t};\n\t\t}\n\n\t\tif (this.check([0xCA, 0xFE, 0xBA, 0xBE])) {\n\t\t\treturn {\n\t\t\t\text: 'class',\n\t\t\t\tmime: 'application/java-vm',\n\t\t\t};\n\t\t}\n\n\t\tif (this.checkString('.RMF')) {\n\t\t\treturn {\n\t\t\t\text: 'rm',\n\t\t\t\tmime: 'application/vnd.rn-realmedia',\n\t\t\t};\n\t\t}\n\n\t\t// -- 5-byte signatures --\n\n\t\tif (this.checkString('DRACO')) {\n\t\t\treturn {\n\t\t\t\text: 'drc',\n\t\t\t\tmime: 'application/vnd.google.draco', // Invented by us\n\t\t\t};\n\t\t}\n\n\t\t// -- 6-byte signatures --\n\n\t\tif (this.check([0xFD, 0x37, 0x7A, 0x58, 0x5A, 0x00])) {\n\t\t\treturn {\n\t\t\t\text: 'xz',\n\t\t\t\tmime: 'application/x-xz',\n\t\t\t};\n\t\t}\n\n\t\tif (this.checkString('<?xml ')) {\n\t\t\treturn {\n\t\t\t\text: 'xml',\n\t\t\t\tmime: 'application/xml',\n\t\t\t};\n\t\t}\n\n\t\tif (this.check([0x37, 0x7A, 0xBC, 0xAF, 0x27, 0x1C])) {\n\t\t\treturn {\n\t\t\t\text: '7z',\n\t\t\t\tmime: 'application/x-7z-compressed',\n\t\t\t};\n\t\t}\n\n\t\tif (\n\t\t\tthis.check([0x52, 0x61, 0x72, 0x21, 0x1A, 0x7])\n\t\t\t&& (this.buffer[6] === 0x0 || this.buffer[6] === 0x1)\n\t\t) {\n\t\t\treturn {\n\t\t\t\text: 'rar',\n\t\t\t\tmime: 'application/x-rar-compressed',\n\t\t\t};\n\t\t}\n\n\t\tif (this.checkString('solid ')) {\n\t\t\treturn {\n\t\t\t\text: 'stl',\n\t\t\t\tmime: 'model/stl',\n\t\t\t};\n\t\t}\n\n\t\tif (this.checkString('AC')) {\n\t\t\tconst version = new Token.StringType(4, 'latin1').get(this.buffer, 2);\n\t\t\tif (version.match('^d*') && version >= 1000 && version <= 1050) {\n\t\t\t\treturn {\n\t\t\t\t\text: 'dwg',\n\t\t\t\t\tmime: 'image/vnd.dwg',\n\t\t\t\t};\n\t\t\t}\n\t\t}\n\n\t\tif (this.checkString('070707')) {\n\t\t\treturn {\n\t\t\t\text: 'cpio',\n\t\t\t\tmime: 'application/x-cpio',\n\t\t\t};\n\t\t}\n\n\t\t// -- 7-byte signatures --\n\n\t\tif (this.checkString('BLENDER')) {\n\t\t\treturn {\n\t\t\t\text: 'blend',\n\t\t\t\tmime: 'application/x-blender',\n\t\t\t};\n\t\t}\n\n\t\tif (this.checkString('!<arch>')) {\n\t\t\tawait tokenizer.ignore(8);\n\t\t\tconst string = await tokenizer.readToken(new Token.StringType(13, 'ascii'));\n\t\t\tif (string === 'debian-binary') {\n\t\t\t\treturn {\n\t\t\t\t\text: 'deb',\n\t\t\t\t\tmime: 'application/x-deb',\n\t\t\t\t};\n\t\t\t}\n\n\t\t\treturn {\n\t\t\t\text: 'ar',\n\t\t\t\tmime: 'application/x-unix-archive',\n\t\t\t};\n\t\t}\n\n\t\tif (\n\t\t\tthis.checkString('WEBVTT')\n\t\t\t&&\t(\n\t\t\t\t// One of LF, CR, tab, space, or end of file must follow \"WEBVTT\" per the spec (see `fixture/fixture-vtt-*.vtt` for examples). Note that `\\0` is technically the null character (there is no such thing as an EOF character). However, checking for `\\0` gives us the same result as checking for the end of the stream.\n\t\t\t\t(['\\n', '\\r', '\\t', ' ', '\\0'].some(char7 => this.checkString(char7, {offset: 6}))))\n\t\t) {\n\t\t\treturn {\n\t\t\t\text: 'vtt',\n\t\t\t\tmime: 'text/vtt',\n\t\t\t};\n\t\t}\n\n\t\t// -- 8-byte signatures --\n\n\t\tif (this.check([0x89, 0x50, 0x4E, 0x47, 0x0D, 0x0A, 0x1A, 0x0A])) {\n\t\t\t// APNG format (https://wiki.mozilla.org/APNG_Specification)\n\t\t\t// 1. Find the first IDAT (image data) chunk (49 44 41 54)\n\t\t\t// 2. Check if there is an \"acTL\" chunk before the IDAT one (61 63 54 4C)\n\n\t\t\t// Offset calculated as follows:\n\t\t\t// - 8 bytes: PNG signature\n\t\t\t// - 4 (length) + 4 (chunk type) + 13 (chunk data) + 4 (CRC): IHDR chunk\n\n\t\t\tawait tokenizer.ignore(8); // ignore PNG signature\n\n\t\t\tasync function readChunkHeader() {\n\t\t\t\treturn {\n\t\t\t\t\tlength: await tokenizer.readToken(Token.INT32_BE),\n\t\t\t\t\ttype: await tokenizer.readToken(new Token.StringType(4, 'latin1')),\n\t\t\t\t};\n\t\t\t}\n\n\t\t\tdo {\n\t\t\t\tconst chunk = await readChunkHeader();\n\t\t\t\tif (chunk.length < 0) {\n\t\t\t\t\treturn; // Invalid chunk length\n\t\t\t\t}\n\n\t\t\t\tswitch (chunk.type) {\n\t\t\t\t\tcase 'IDAT':\n\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\text: 'png',\n\t\t\t\t\t\t\tmime: 'image/png',\n\t\t\t\t\t\t};\n\t\t\t\t\tcase 'acTL':\n\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\text: 'apng',\n\t\t\t\t\t\t\tmime: 'image/apng',\n\t\t\t\t\t\t};\n\t\t\t\t\tdefault:\n\t\t\t\t\t\tawait tokenizer.ignore(chunk.length + 4); // Ignore chunk-data + CRC\n\t\t\t\t}\n\t\t\t} while (tokenizer.position + 8 < tokenizer.fileInfo.size);\n\n\t\t\treturn {\n\t\t\t\text: 'png',\n\t\t\t\tmime: 'image/png',\n\t\t\t};\n\t\t}\n\n\t\tif (this.check([0x41, 0x52, 0x52, 0x4F, 0x57, 0x31, 0x00, 0x00])) {\n\t\t\treturn {\n\t\t\t\text: 'arrow',\n\t\t\t\tmime: 'application/vnd.apache.arrow.file',\n\t\t\t};\n\t\t}\n\n\t\tif (this.check([0x67, 0x6C, 0x54, 0x46, 0x02, 0x00, 0x00, 0x00])) {\n\t\t\treturn {\n\t\t\t\text: 'glb',\n\t\t\t\tmime: 'model/gltf-binary',\n\t\t\t};\n\t\t}\n\n\t\t// `mov` format variants\n\t\tif (\n\t\t\tthis.check([0x66, 0x72, 0x65, 0x65], {offset: 4}) // `free`\n\t\t\t|| this.check([0x6D, 0x64, 0x61, 0x74], {offset: 4}) // `mdat` MJPEG\n\t\t\t|| this.check([0x6D, 0x6F, 0x6F, 0x76], {offset: 4}) // `moov`\n\t\t\t|| this.check([0x77, 0x69, 0x64, 0x65], {offset: 4}) // `wide`\n\t\t) {\n\t\t\treturn {\n\t\t\t\text: 'mov',\n\t\t\t\tmime: 'video/quicktime',\n\t\t\t};\n\t\t}\n\n\t\t// -- 9-byte signatures --\n\n\t\tif (this.check([0x49, 0x49, 0x52, 0x4F, 0x08, 0x00, 0x00, 0x00, 0x18])) {\n\t\t\treturn {\n\t\t\t\text: 'orf',\n\t\t\t\tmime: 'image/x-olympus-orf',\n\t\t\t};\n\t\t}\n\n\t\tif (this.checkString('gimp xcf ')) {\n\t\t\treturn {\n\t\t\t\text: 'xcf',\n\t\t\t\tmime: 'image/x-xcf',\n\t\t\t};\n\t\t}\n\n\t\t// File Type Box (https://en.wikipedia.org/wiki/ISO_base_media_file_format)\n\t\t// It's not required to be first, but it's recommended to be. Almost all ISO base media files start with `ftyp` box.\n\t\t// `ftyp` box must contain a brand major identifier, which must consist of ISO 8859-1 printable characters.\n\t\t// Here we check for 8859-1 printable characters (for simplicity, it's a mask which also catches one non-printable character).\n\t\tif (\n\t\t\tthis.checkString('ftyp', {offset: 4})\n\t\t\t&& (this.buffer[8] & 0x60) !== 0x00 // Brand major, first character ASCII?\n\t\t) {\n\t\t\t// They all can have MIME `video/mp4` except `application/mp4` special-case which is hard to detect.\n\t\t\t// For some cases, we're specific, everything else falls to `video/mp4` with `mp4` extension.\n\t\t\tconst brandMajor = new Token.StringType(4, 'latin1').get(this.buffer, 8).replace('\\0', ' ').trim();\n\t\t\tswitch (brandMajor) {\n\t\t\t\tcase 'avif':\n\t\t\t\tcase 'avis':\n\t\t\t\t\treturn {ext: 'avif', mime: 'image/avif'};\n\t\t\t\tcase 'mif1':\n\t\t\t\t\treturn {ext: 'heic', mime: 'image/heif'};\n\t\t\t\tcase 'msf1':\n\t\t\t\t\treturn {ext: 'heic', mime: 'image/heif-sequence'};\n\t\t\t\tcase 'heic':\n\t\t\t\tcase 'heix':\n\t\t\t\t\treturn {ext: 'heic', mime: 'image/heic'};\n\t\t\t\tcase 'hevc':\n\t\t\t\tcase 'hevx':\n\t\t\t\t\treturn {ext: 'heic', mime: 'image/heic-sequence'};\n\t\t\t\tcase 'qt':\n\t\t\t\t\treturn {ext: 'mov', mime: 'video/quicktime'};\n\t\t\t\tcase 'M4V':\n\t\t\t\tcase 'M4VH':\n\t\t\t\tcase 'M4VP':\n\t\t\t\t\treturn {ext: 'm4v', mime: 'video/x-m4v'};\n\t\t\t\tcase 'M4P':\n\t\t\t\t\treturn {ext: 'm4p', mime: 'video/mp4'};\n\t\t\t\tcase 'M4B':\n\t\t\t\t\treturn {ext: 'm4b', mime: 'audio/mp4'};\n\t\t\t\tcase 'M4A':\n\t\t\t\t\treturn {ext: 'm4a', mime: 'audio/x-m4a'};\n\t\t\t\tcase 'F4V':\n\t\t\t\t\treturn {ext: 'f4v', mime: 'video/mp4'};\n\t\t\t\tcase 'F4P':\n\t\t\t\t\treturn {ext: 'f4p', mime: 'video/mp4'};\n\t\t\t\tcase 'F4A':\n\t\t\t\t\treturn {ext: 'f4a', mime: 'audio/mp4'};\n\t\t\t\tcase 'F4B':\n\t\t\t\t\treturn {ext: 'f4b', mime: 'audio/mp4'};\n\t\t\t\tcase 'crx':\n\t\t\t\t\treturn {ext: 'cr3', mime: 'image/x-canon-cr3'};\n\t\t\t\tdefault:\n\t\t\t\t\tif (brandMajor.startsWith('3g')) {\n\t\t\t\t\t\tif (brandMajor.startsWith('3g2')) {\n\t\t\t\t\t\t\treturn {ext: '3g2', mime: 'video/3gpp2'};\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\treturn {ext: '3gp', mime: 'video/3gpp'};\n\t\t\t\t\t}\n\n\t\t\t\t\treturn {ext: 'mp4', mime: 'video/mp4'};\n\t\t\t}\n\t\t}\n\n\t\t// -- 10-byte signatures --\n\n\t\tif (this.checkString('REGEDIT4\\r\\n')) {\n\t\t\treturn {\n\t\t\t\text: 'reg',\n\t\t\t\tmime: 'application/x-ms-regedit',\n\t\t\t};\n\t\t}\n\n\t\t// -- 12-byte signatures --\n\n\t\t// RIFF file format which might be AVI, WAV, QCP, etc\n\t\tif (this.check([0x52, 0x49, 0x46, 0x46])) {\n\t\t\tif (this.checkString('WEBP', {offset: 8})) {\n\t\t\t\treturn {\n\t\t\t\t\text: 'webp',\n\t\t\t\t\tmime: 'image/webp',\n\t\t\t\t};\n\t\t\t}\n\n\t\t\tif (this.check([0x41, 0x56, 0x49], {offset: 8})) {\n\t\t\t\treturn {\n\t\t\t\t\text: 'avi',\n\t\t\t\t\tmime: 'video/vnd.avi',\n\t\t\t\t};\n\t\t\t}\n\n\t\t\tif (this.check([0x57, 0x41, 0x56, 0x45], {offset: 8})) {\n\t\t\t\treturn {\n\t\t\t\t\text: 'wav',\n\t\t\t\t\tmime: 'audio/wav',\n\t\t\t\t};\n\t\t\t}\n\n\t\t\t// QLCM, QCP file\n\t\t\tif (this.check([0x51, 0x4C, 0x43, 0x4D], {offset: 8})) {\n\t\t\t\treturn {\n\t\t\t\t\text: 'qcp',\n\t\t\t\t\tmime: 'audio/qcelp',\n\t\t\t\t};\n\t\t\t}\n\t\t}\n\n\t\tif (this.check([0x49, 0x49, 0x55, 0x00, 0x18, 0x00, 0x00, 0x00, 0x88, 0xE7, 0x74, 0xD8])) {\n\t\t\treturn {\n\t\t\t\text: 'rw2',\n\t\t\t\tmime: 'image/x-panasonic-rw2',\n\t\t\t};\n\t\t}\n\n\t\t// ASF_Header_Object first 80 bytes\n\t\tif (this.check([0x30, 0x26, 0xB2, 0x75, 0x8E, 0x66, 0xCF, 0x11, 0xA6, 0xD9])) {\n\t\t\tasync function readHeader() {\n\t\t\t\tconst guid = new Uint8Array(16);\n\t\t\t\tawait tokenizer.readBuffer(guid);\n\t\t\t\treturn {\n\t\t\t\t\tid: guid,\n\t\t\t\t\tsize: Number(await tokenizer.readToken(Token.UINT64_LE)),\n\t\t\t\t};\n\t\t\t}\n\n\t\t\tawait tokenizer.ignore(30);\n\t\t\t// Search for header should be in first 1KB of file.\n\t\t\twhile (tokenizer.position + 24 < tokenizer.fileInfo.size) {\n\t\t\t\tconst header = await readHeader();\n\t\t\t\tlet payload = header.size - 24;\n\t\t\t\tif (_check(header.id, [0x91, 0x07, 0xDC, 0xB7, 0xB7, 0xA9, 0xCF, 0x11, 0x8E, 0xE6, 0x00, 0xC0, 0x0C, 0x20, 0x53, 0x65])) {\n\t\t\t\t\t// Sync on Stream-Properties-Object (B7DC0791-A9B7-11CF-8EE6-00C00C205365)\n\t\t\t\t\tconst typeId = new Uint8Array(16);\n\t\t\t\t\tpayload -= await tokenizer.readBuffer(typeId);\n\n\t\t\t\t\tif (_check(typeId, [0x40, 0x9E, 0x69, 0xF8, 0x4D, 0x5B, 0xCF, 0x11, 0xA8, 0xFD, 0x00, 0x80, 0x5F, 0x5C, 0x44, 0x2B])) {\n\t\t\t\t\t\t// Found audio:\n\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\text: 'asf',\n\t\t\t\t\t\t\tmime: 'audio/x-ms-asf',\n\t\t\t\t\t\t};\n\t\t\t\t\t}\n\n\t\t\t\t\tif (_check(typeId, [0xC0, 0xEF, 0x19, 0xBC, 0x4D, 0x5B, 0xCF, 0x11, 0xA8, 0xFD, 0x00, 0x80, 0x5F, 0x5C, 0x44, 0x2B])) {\n\t\t\t\t\t\t// Found video:\n\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\text: 'asf',\n\t\t\t\t\t\t\tmime: 'video/x-ms-asf',\n\t\t\t\t\t\t};\n\t\t\t\t\t}\n\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\n\t\t\t\tawait tokenizer.ignore(payload);\n\t\t\t}\n\n\t\t\t// Default to ASF generic extension\n\t\t\treturn {\n\t\t\t\text: 'asf',\n\t\t\t\tmime: 'application/vnd.ms-asf',\n\t\t\t};\n\t\t}\n\n\t\tif (this.check([0xAB, 0x4B, 0x54, 0x58, 0x20, 0x31, 0x31, 0xBB, 0x0D, 0x0A, 0x1A, 0x0A])) {\n\t\t\treturn {\n\t\t\t\text: 'ktx',\n\t\t\t\tmime: 'image/ktx',\n\t\t\t};\n\t\t}\n\n\t\tif ((this.check([0x7E, 0x10, 0x04]) || this.check([0x7E, 0x18, 0x04])) && this.check([0x30, 0x4D, 0x49, 0x45], {offset: 4})) {\n\t\t\treturn {\n\t\t\t\text: 'mie',\n\t\t\t\tmime: 'application/x-mie',\n\t\t\t};\n\t\t}\n\n\t\tif (this.check([0x27, 0x0A, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00], {offset: 2})) {\n\t\t\treturn {\n\t\t\t\text: 'shp',\n\t\t\t\tmime: 'application/x-esri-shape',\n\t\t\t};\n\t\t}\n\n\t\tif (this.check([0xFF, 0x4F, 0xFF, 0x51])) {\n\t\t\treturn {\n\t\t\t\text: 'j2c',\n\t\t\t\tmime: 'image/j2c',\n\t\t\t};\n\t\t}\n\n\t\tif (this.check([0x00, 0x00, 0x00, 0x0C, 0x6A, 0x50, 0x20, 0x20, 0x0D, 0x0A, 0x87, 0x0A])) {\n\t\t\t// JPEG-2000 family\n\n\t\t\tawait tokenizer.ignore(20);\n\t\t\tconst type = await tokenizer.readToken(new Token.StringType(4, 'ascii'));\n\t\t\tswitch (type) {\n\t\t\t\tcase 'jp2 ':\n\t\t\t\t\treturn {\n\t\t\t\t\t\text: 'jp2',\n\t\t\t\t\t\tmime: 'image/jp2',\n\t\t\t\t\t};\n\t\t\t\tcase 'jpx ':\n\t\t\t\t\treturn {\n\t\t\t\t\t\text: 'jpx',\n\t\t\t\t\t\tmime: 'image/jpx',\n\t\t\t\t\t};\n\t\t\t\tcase 'jpm ':\n\t\t\t\t\treturn {\n\t\t\t\t\t\text: 'jpm',\n\t\t\t\t\t\tmime: 'image/jpm',\n\t\t\t\t\t};\n\t\t\t\tcase 'mjp2':\n\t\t\t\t\treturn {\n\t\t\t\t\t\text: 'mj2',\n\t\t\t\t\t\tmime: 'image/mj2',\n\t\t\t\t\t};\n\t\t\t\tdefault:\n\t\t\t\t\treturn;\n\t\t\t}\n\t\t}\n\n\t\tif (\n\t\t\tthis.check([0xFF, 0x0A])\n\t\t\t|| this.check([0x00, 0x00, 0x00, 0x0C, 0x4A, 0x58, 0x4C, 0x20, 0x0D, 0x0A, 0x87, 0x0A])\n\t\t) {\n\t\t\treturn {\n\t\t\t\text: 'jxl',\n\t\t\t\tmime: 'image/jxl',\n\t\t\t};\n\t\t}\n\n\t\tif (this.check([0xFE, 0xFF])) { // UTF-16-BOM-BE\n\t\t\tif (this.checkString('<?xml ', {offset: 2, encoding: 'utf-16be'})) {\n\t\t\t\treturn {\n\t\t\t\t\text: 'xml',\n\t\t\t\t\tmime: 'application/xml',\n\t\t\t\t};\n\t\t\t}\n\n\t\t\treturn undefined; // Some unknown text based format\n\t\t}\n\n\t\tif (this.check([0xD0, 0xCF, 0x11, 0xE0, 0xA1, 0xB1, 0x1A, 0xE1])) {\n\t\t\t// Detected Microsoft Compound File Binary File (MS-CFB) Format.\n\t\t\treturn {\n\t\t\t\text: 'cfb',\n\t\t\t\tmime: 'application/x-cfb',\n\t\t\t};\n\t\t}\n\n\t\t// Increase sample size from 32 to 256.\n\t\tawait tokenizer.peekBuffer(this.buffer, {length: Math.min(256, tokenizer.fileInfo.size), mayBeLess: true});\n\n\t\tif (this.check([0x61, 0x63, 0x73, 0x70], {offset: 36})) {\n\t\t\treturn {\n\t\t\t\text: 'icc',\n\t\t\t\tmime: 'application/vnd.iccprofile',\n\t\t\t};\n\t\t}\n\n\t\t// ACE: requires 14 bytes in the buffer\n\t\tif (this.checkString('**ACE', {offset: 7}) && this.checkString('**', {offset: 12})) {\n\t\t\treturn {\n\t\t\t\text: 'ace',\n\t\t\t\tmime: 'application/x-ace-compressed',\n\t\t\t};\n\t\t}\n\n\t\t// -- 15-byte signatures --\n\n\t\tif (this.checkString('BEGIN:')) {\n\t\t\tif (this.checkString('VCARD', {offset: 6})) {\n\t\t\t\treturn {\n\t\t\t\t\text: 'vcf',\n\t\t\t\t\tmime: 'text/vcard',\n\t\t\t\t};\n\t\t\t}\n\n\t\t\tif (this.checkString('VCALENDAR', {offset: 6})) {\n\t\t\t\treturn {\n\t\t\t\t\text: 'ics',\n\t\t\t\t\tmime: 'text/calendar',\n\t\t\t\t};\n\t\t\t}\n\t\t}\n\n\t\t// `raf` is here just to keep all the raw image detectors together.\n\t\tif (this.checkString('FUJIFILMCCD-RAW')) {\n\t\t\treturn {\n\t\t\t\text: 'raf',\n\t\t\t\tmime: 'image/x-fujifilm-raf',\n\t\t\t};\n\t\t}\n\n\t\tif (this.checkString('Extended Module:')) {\n\t\t\treturn {\n\t\t\t\text: 'xm',\n\t\t\t\tmime: 'audio/x-xm',\n\t\t\t};\n\t\t}\n\n\t\tif (this.checkString('Creative Voice File')) {\n\t\t\treturn {\n\t\t\t\text: 'voc',\n\t\t\t\tmime: 'audio/x-voc',\n\t\t\t};\n\t\t}\n\n\t\tif (this.check([0x04, 0x00, 0x00, 0x00]) && this.buffer.length >= 16) { // Rough & quick check Pickle/ASAR\n\t\t\tconst jsonSize = new DataView(this.buffer.buffer).getUint32(12, true);\n\n\t\t\tif (jsonSize > 12 && this.buffer.length >= jsonSize + 16) {\n\t\t\t\ttry {\n\t\t\t\t\tconst header = new TextDecoder().decode(this.buffer.subarray(16, jsonSize + 16));\n\t\t\t\t\tconst json = JSON.parse(header);\n\t\t\t\t\t// Check if Pickle is ASAR\n\t\t\t\t\tif (json.files) { // Final check, assuring Pickle/ASAR format\n\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\text: 'asar',\n\t\t\t\t\t\t\tmime: 'application/x-asar',\n\t\t\t\t\t\t};\n\t\t\t\t\t}\n\t\t\t\t} catch {}\n\t\t\t}\n\t\t}\n\n\t\tif (this.check([0x06, 0x0E, 0x2B, 0x34, 0x02, 0x05, 0x01, 0x01, 0x0D, 0x01, 0x02, 0x01, 0x01, 0x02])) {\n\t\t\treturn {\n\t\t\t\text: 'mxf',\n\t\t\t\tmime: 'application/mxf',\n\t\t\t};\n\t\t}\n\n\t\tif (this.checkString('SCRM', {offset: 44})) {\n\t\t\treturn {\n\t\t\t\text: 's3m',\n\t\t\t\tmime: 'audio/x-s3m',\n\t\t\t};\n\t\t}\n\n\t\t// Raw MPEG-2 transport stream (188-byte packets)\n\t\tif (this.check([0x47]) && this.check([0x47], {offset: 188})) {\n\t\t\treturn {\n\t\t\t\text: 'mts',\n\t\t\t\tmime: 'video/mp2t',\n\t\t\t};\n\t\t}\n\n\t\t// Blu-ray Disc Audio-Video (BDAV) MPEG-2 transport stream has 4-byte TP_extra_header before each 188-byte packet\n\t\tif (this.check([0x47], {offset: 4}) && this.check([0x47], {offset: 196})) {\n\t\t\treturn {\n\t\t\t\text: 'mts',\n\t\t\t\tmime: 'video/mp2t',\n\t\t\t};\n\t\t}\n\n\t\tif (this.check([0x42, 0x4F, 0x4F, 0x4B, 0x4D, 0x4F, 0x42, 0x49], {offset: 60})) {\n\t\t\treturn {\n\t\t\t\text: 'mobi',\n\t\t\t\tmime: 'application/x-mobipocket-ebook',\n\t\t\t};\n\t\t}\n\n\t\tif (this.check([0x44, 0x49, 0x43, 0x4D], {offset: 128})) {\n\t\t\treturn {\n\t\t\t\text: 'dcm',\n\t\t\t\tmime: 'application/dicom',\n\t\t\t};\n\t\t}\n\n\t\tif (this.check([0x4C, 0x00, 0x00, 0x00, 0x01, 0x14, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46])) {\n\t\t\treturn {\n\t\t\t\text: 'lnk',\n\t\t\t\tmime: 'application/x.ms.shortcut', // Invented by us\n\t\t\t};\n\t\t}\n\n\t\tif (this.check([0x62, 0x6F, 0x6F, 0x6B, 0x00, 0x00, 0x00, 0x00, 0x6D, 0x61, 0x72, 0x6B, 0x00, 0x00, 0x00, 0x00])) {\n\t\t\treturn {\n\t\t\t\text: 'alias',\n\t\t\t\tmime: 'application/x.apple.alias', // Invented by us\n\t\t\t};\n\t\t}\n\n\t\tif (this.checkString('Kaydara FBX Binary \\u0000')) {\n\t\t\treturn {\n\t\t\t\text: 'fbx',\n\t\t\t\tmime: 'application/x.autodesk.fbx', // Invented by us\n\t\t\t};\n\t\t}\n\n\t\tif (\n\t\t\tthis.check([0x4C, 0x50], {offset: 34})\n\t\t\t&& (\n\t\t\t\tthis.check([0x00, 0x00, 0x01], {offset: 8})\n\t\t\t\t|| this.check([0x01, 0x00, 0x02], {offset: 8})\n\t\t\t\t|| this.check([0x02, 0x00, 0x02], {offset: 8})\n\t\t\t)\n\t\t) {\n\t\t\treturn {\n\t\t\t\text: 'eot',\n\t\t\t\tmime: 'application/vnd.ms-fontobject',\n\t\t\t};\n\t\t}\n\n\t\tif (this.check([0x06, 0x06, 0xED, 0xF5, 0xD8, 0x1D, 0x46, 0xE5, 0xBD, 0x31, 0xEF, 0xE7, 0xFE, 0x74, 0xB7, 0x1D])) {\n\t\t\treturn {\n\t\t\t\text: 'indd',\n\t\t\t\tmime: 'application/x-indesign',\n\t\t\t};\n\t\t}\n\n\t\t// Increase sample size from 256 to 512\n\t\tawait tokenizer.peekBuffer(this.buffer, {length: Math.min(512, tokenizer.fileInfo.size), mayBeLess: true});\n\n\t\t// Requires a buffer size of 512 bytes\n\t\tif ((this.checkString('ustar', {offset: 257}) && (this.checkString('\\0', {offset: 262}) || this.checkString(' ', {offset: 262})))\n\t\t\t|| (this.check([0, 0, 0, 0, 0, 0], {offset: 257}) && tarHeaderChecksumMatches(this.buffer))) {\n\t\t\treturn {\n\t\t\t\text: 'tar',\n\t\t\t\tmime: 'application/x-tar',\n\t\t\t};\n\t\t}\n\n\t\tif (this.check([0xFF, 0xFE])) { // UTF-16-BOM-LE\n\t\t\tconst encoding = 'utf-16le';\n\t\t\tif (this.checkString('<?xml ', {offset: 2, encoding})) {\n\t\t\t\treturn {\n\t\t\t\t\text: 'xml',\n\t\t\t\t\tmime: 'application/xml',\n\t\t\t\t};\n\t\t\t}\n\n\t\t\tif (this.check([0xFF, 0x0E], {offset: 2}) && this.checkString('SketchUp Model', {offset: 4, encoding})) {\n\t\t\t\treturn {\n\t\t\t\t\text: 'skp',\n\t\t\t\t\tmime: 'application/vnd.sketchup.skp',\n\t\t\t\t};\n\t\t\t}\n\n\t\t\tif (this.checkString('Windows Registry Editor Version 5.00\\r\\n', {offset: 2, encoding})) {\n\t\t\t\treturn {\n\t\t\t\t\text: 'reg',\n\t\t\t\t\tmime: 'application/x-ms-regedit',\n\t\t\t\t};\n\t\t\t}\n\n\t\t\treturn undefined; // Some text based format\n\t\t}\n\n\t\tif (this.checkString('-----BEGIN PGP MESSAGE-----')) {\n\t\t\treturn {\n\t\t\t\text: 'pgp',\n\t\t\t\tmime: 'application/pgp-encrypted',\n\t\t\t};\n\t\t}\n\t};\n\t// Detections with limited supporting data, resulting in a higher likelihood of false positives\n\tdetectImprecise = async tokenizer => {\n\t\tthis.buffer = new Uint8Array(reasonableDetectionSizeInBytes);\n\n\t\t// Read initial sample size of 8 bytes\n\t\tawait tokenizer.peekBuffer(this.buffer, {length: Math.min(8, tokenizer.fileInfo.size), mayBeLess: true});\n\n\t\tif (\n\t\t\tthis.check([0x0, 0x0, 0x1, 0xBA])\n\t\t\t|| this.check([0x0, 0x0, 0x1, 0xB3])\n\t\t) {\n\t\t\treturn {\n\t\t\t\text: 'mpg',\n\t\t\t\tmime: 'video/mpeg',\n\t\t\t};\n\t\t}\n\n\t\tif (this.check([0x00, 0x01, 0x00, 0x00, 0x00])) {\n\t\t\treturn {\n\t\t\t\text: 'ttf',\n\t\t\t\tmime: 'font/ttf',\n\t\t\t};\n\t\t}\n\n\t\tif (this.check([0x00, 0x00, 0x01, 0x00])) {\n\t\t\treturn {\n\t\t\t\text: 'ico',\n\t\t\t\tmime: 'image/x-icon',\n\t\t\t};\n\t\t}\n\n\t\tif (this.check([0x00, 0x00, 0x02, 0x00])) {\n\t\t\treturn {\n\t\t\t\text: 'cur',\n\t\t\t\tmime: 'image/x-icon',\n\t\t\t};\n\t\t}\n\n\t\t// Adjust buffer to `mpegOffsetTolerance`\n\t\tawait tokenizer.peekBuffer(this.buffer, {length: Math.min(2 + this.options.mpegOffsetTolerance, tokenizer.fileInfo.size), mayBeLess: true});\n\n\t\t// Check MPEG 1 or 2 Layer 3 header, or 'layer 0' for ADTS (MPEG sync-word 0xFFE)\n\t\tif (this.buffer.length >= (2 + this.options.mpegOffsetTolerance)) {\n\t\t\tfor (let depth = 0; depth <= this.options.mpegOffsetTolerance; ++depth) {\n\t\t\t\tconst type = this.scanMpeg(depth);\n\t\t\t\tif (type) {\n\t\t\t\t\treturn type;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t};\n\n\tasync readTiffTag(bigEndian) {\n\t\tconst tagId = await this.tokenizer.readToken(bigEndian ? Token.UINT16_BE : Token.UINT16_LE);\n\t\tthis.tokenizer.ignore(10);\n\t\tswitch (tagId) {\n\t\t\tcase 50_341:\n\t\t\t\treturn {\n\t\t\t\t\text: 'arw',\n\t\t\t\t\tmime: 'image/x-sony-arw',\n\t\t\t\t};\n\t\t\tcase 50_706:\n\t\t\t\treturn {\n\t\t\t\t\text: 'dng',\n\t\t\t\t\tmime: 'image/x-adobe-dng',\n\t\t\t\t};\n\t\t\tdefault:\n\t\t}\n\t}\n\n\tasync readTiffIFD(bigEndian) {\n\t\tconst numberOfTags = await this.tokenizer.readToken(bigEndian ? Token.UINT16_BE : Token.UINT16_LE);\n\t\tfor (let n = 0; n < numberOfTags; ++n) {\n\t\t\tconst fileType = await this.readTiffTag(bigEndian);\n\t\t\tif (fileType) {\n\t\t\t\treturn fileType;\n\t\t\t}\n\t\t}\n\t}\n\n\tasync readTiffHeader(bigEndian) {\n\t\tconst version = (bigEndian ? Token.UINT16_BE : Token.UINT16_LE).get(this.buffer, 2);\n\t\tconst ifdOffset = (bigEndian ? Token.UINT32_BE : Token.UINT32_LE).get(this.buffer, 4);\n\n\t\tif (version === 42) {\n\t\t\t// TIFF file header\n\t\t\tif (ifdOffset >= 6) {\n\t\t\t\tif (this.checkString('CR', {offset: 8})) {\n\t\t\t\t\treturn {\n\t\t\t\t\t\text: 'cr2',\n\t\t\t\t\t\tmime: 'image/x-canon-cr2',\n\t\t\t\t\t};\n\t\t\t\t}\n\n\t\t\t\tif (ifdOffset >= 8) {\n\t\t\t\t\tconst someId1 = (bigEndian ? Token.UINT16_BE : Token.UINT16_LE).get(this.buffer, 8);\n\t\t\t\t\tconst someId2 = (bigEndian ? Token.UINT16_BE : Token.UINT16_LE).get(this.buffer, 10);\n\n\t\t\t\t\tif (\n\t\t\t\t\t\t(someId1 === 0x1C && someId2 === 0xFE)\n\t\t\t\t\t\t|| (someId1 === 0x1F && someId2 === 0x0B)) {\n\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\text: 'nef',\n\t\t\t\t\t\t\tmime: 'image/x-nikon-nef',\n\t\t\t\t\t\t};\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tawait this.tokenizer.ignore(ifdOffset);\n\t\t\tconst fileType = await this.readTiffIFD(bigEndian);\n\t\t\treturn fileType ?? {\n\t\t\t\text: 'tif',\n\t\t\t\tmime: 'image/tiff',\n\t\t\t};\n\t\t}\n\n\t\tif (version === 43) {\t// Big TIFF file header\n\t\t\treturn {\n\t\t\t\text: 'tif',\n\t\t\t\tmime: 'image/tiff',\n\t\t\t};\n\t\t}\n\t}\n\n\t/**\n\tScan check MPEG 1 or 2 Layer 3 header, or 'layer 0' for ADTS (MPEG sync-word 0xFFE).\n\n\t@param offset - Offset to scan for sync-preamble.\n\t@returns {{ext: string, mime: string}}\n\t*/\n\tscanMpeg(offset) {\n\t\tif (this.check([0xFF, 0xE0], {offset, mask: [0xFF, 0xE0]})) {\n\t\t\tif (this.check([0x10], {offset: offset + 1, mask: [0x16]})) {\n\t\t\t\t// Check for (ADTS) MPEG-2\n\t\t\t\tif (this.check([0x08], {offset: offset + 1, mask: [0x08]})) {\n\t\t\t\t\treturn {\n\t\t\t\t\t\text: 'aac',\n\t\t\t\t\t\tmime: 'audio/aac',\n\t\t\t\t\t};\n\t\t\t\t}\n\n\t\t\t\t// Must be (ADTS) MPEG-4\n\t\t\t\treturn {\n\t\t\t\t\text: 'aac',\n\t\t\t\t\tmime: 'audio/aac',\n\t\t\t\t};\n\t\t\t}\n\n\t\t\t// MPEG 1 or 2 Layer 3 header\n\t\t\t// Check for MPEG layer 3\n\t\t\tif (this.check([0x02], {offset: offset + 1, mask: [0x06]})) {\n\t\t\t\treturn {\n\t\t\t\t\text: 'mp3',\n\t\t\t\t\tmime: 'audio/mpeg',\n\t\t\t\t};\n\t\t\t}\n\n\t\t\t// Check for MPEG layer 2\n\t\t\tif (this.check([0x04], {offset: offset + 1, mask: [0x06]})) {\n\t\t\t\treturn {\n\t\t\t\t\text: 'mp2',\n\t\t\t\t\tmime: 'audio/mpeg',\n\t\t\t\t};\n\t\t\t}\n\n\t\t\t// Check for MPEG layer 1\n\t\t\tif (this.check([0x06], {offset: offset + 1, mask: [0x06]})) {\n\t\t\t\treturn {\n\t\t\t\t\text: 'mp1',\n\t\t\t\t\tmime: 'audio/mpeg',\n\t\t\t\t};\n\t\t\t}\n\t\t}\n\t}\n}\n\nexport const supportedExtensions = new Set(extensions);\nexport const supportedMimeTypes = new Set(mimeTypes);\n","/**\nNode.js specific entry point.\n*/\n\nimport {ReadableStream as WebReadableStream} from 'node:stream/web';\nimport {pipeline, PassThrough, Readable} from 'node:stream';\nimport * as strtok3 from 'strtok3';\nimport {FileTypeParser as DefaultFileTypeParser, reasonableDetectionSizeInBytes} from './core.js';\n\nexport class FileTypeParser extends DefaultFileTypeParser {\n\tasync fromStream(stream) {\n\t\tconst tokenizer = await (stream instanceof WebReadableStream ? strtok3.fromWebStream(stream, this.tokenizerOptions) : strtok3.fromStream(stream, this.tokenizerOptions));\n\t\ttry {\n\t\t\treturn await super.fromTokenizer(tokenizer);\n\t\t} finally {\n\t\t\tawait tokenizer.close();\n\t\t}\n\t}\n\n\tasync fromFile(path) {\n\t\tconst tokenizer = await strtok3.fromFile(path);\n\t\ttry {\n\t\t\treturn await super.fromTokenizer(tokenizer);\n\t\t} finally {\n\t\t\tawait tokenizer.close();\n\t\t}\n\t}\n\n\tasync toDetectionStream(readableStream, options = {}) {\n\t\tif (!(readableStream instanceof Readable)) {\n\t\t\treturn super.toDetectionStream(readableStream, options);\n\t\t}\n\n\t\tconst {sampleSize = reasonableDetectionSizeInBytes} = options;\n\n\t\treturn new Promise((resolve, reject) => {\n\t\t\treadableStream.on('error', reject);\n\n\t\t\treadableStream.once('readable', () => {\n\t\t\t\t(async () => {\n\t\t\t\t\ttry {\n\t\t\t\t\t\t// Set up output stream\n\t\t\t\t\t\tconst pass = new PassThrough();\n\t\t\t\t\t\tconst outputStream = pipeline ? pipeline(readableStream, pass, () => {}) : readableStream.pipe(pass);\n\n\t\t\t\t\t\t// Read the input stream and detect the filetype\n\t\t\t\t\t\tconst chunk = readableStream.read(sampleSize) ?? readableStream.read() ?? new Uint8Array(0);\n\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\tpass.fileType = await this.fromBuffer(chunk);\n\t\t\t\t\t\t} catch (error) {\n\t\t\t\t\t\t\tif (error instanceof strtok3.EndOfStreamError) {\n\t\t\t\t\t\t\t\tpass.fileType = undefined;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\treject(error);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tresolve(outputStream);\n\t\t\t\t\t} catch (error) {\n\t\t\t\t\t\treject(error);\n\t\t\t\t\t}\n\t\t\t\t})();\n\t\t\t});\n\t\t});\n\t}\n}\n\nexport async function fileTypeFromFile(path, options) {\n\treturn (new FileTypeParser(options)).fromFile(path, options);\n}\n\nexport async function fileTypeFromStream(stream, options) {\n\treturn (new FileTypeParser(options)).fromStream(stream);\n}\n\nexport async function fileTypeStream(readableStream, options = {}) {\n\treturn new FileTypeParser(options).toDetectionStream(readableStream, options);\n}\n\nexport {\n\tfileTypeFromTokenizer,\n\tfileTypeFromBuffer,\n\tfileTypeFromBlob,\n\tsupportedMimeTypes,\n\tsupportedExtensions,\n} from './core.js';\n","/**\n * 用于检测基于 binary signatures (magic numbers) 的文件格式,而不是基于文本的格式,如 .txt , .csv , .svg 等\n * 默认读取文件的前 4100 字节(足以检测大多数类型)\n *\n * supportedExtensions {Set<string>} 返回支持的文件扩展名\n * supportedMimeTypes {Set<string>} 返回支持的 MIME 类型\n *\n * FileTypeParser {Class} 自定义检测器\n * fileTypeFromTokenizer {Function} 自定义读取函数\n *\n * fileTypeFromBuffer {Function} 从 ArrayBuffer 检测文件类型 - Node & Browser\n * fileTypeFromStream {Function} 从流检测文件类型 - Node & Browser\n * fileTypeStream {Function} 从流检测文件类型 - Node & Browser\n *\n * fileTypeFromBlob {Function} 从 Blob 对象检测文件类型 - Node(<=18) & Browser\n * fileTypeFromFile {Function} 从文件路径检测文件类型 - Node & Browser(不支持)\n *\n * 源码中 FileTypeParser、fileTypeFromFile、fileTypeFromStream、fileTypeStream 在 node 端重新实现\n */\nimport type {\n AnyWebReadableByteStreamWithFileType as _AnyWebReadableByteStreamWithFileType,\n FileTypeOptions as _FileTypeOptions,\n FileTypeResult as _FileTypeResult,\n StreamOptions as _StreamOptions,\n} from 'file-type/node'\nimport {\n fileTypeFromBlob as _fileTypeFromBlob,\n fileTypeFromBuffer as _fileTypeFromBuffer,\n fileTypeFromStream as _fileTypeFromStream,\n fileTypeFromTokenizer as _fileTypeFromTokenizer,\n FileTypeParser as _FileTypeParser,\n fileTypeStream as _fileTypeStream,\n supportedExtensions as _supportedExtensions,\n supportedMimeTypes as _supportedMimeTypes,\n} from 'file-type/node'\n\nexport type AnyWebReadableByteStreamWithFileType = _AnyWebReadableByteStreamWithFileType\nexport type FileTypeOptions = _FileTypeOptions\nexport type FileTypeResult = _FileTypeResult\nexport type StreamOptions = _StreamOptions\n\nexport const fileTypeFromBlob = _fileTypeFromBlob\nexport const fileTypeFromBuffer = _fileTypeFromBuffer\nexport const fileTypeFromStream = _fileTypeFromStream\nexport const fileTypeFromTokenizer = _fileTypeFromTokenizer\nexport const FileTypeParser = _FileTypeParser\nexport const fileTypeStream = _fileTypeStream\nexport const fileTypeSupportedExtensions = _supportedExtensions\nexport const fileTypeSupportedMimeTypes = _supportedMimeTypes\n","exports.entityMap = {\n lt: '<',\n gt: '>',\n amp: '&',\n quot: '\"',\n apos: \"'\",\n Agrave: \"À\",\n Aacute: \"Á\",\n Acirc: \"Â\",\n Atilde: \"Ã\",\n Auml: \"Ä\",\n Aring: \"Å\",\n AElig: \"Æ\",\n Ccedil: \"Ç\",\n Egrave: \"È\",\n Eacute: \"É\",\n Ecirc: \"Ê\",\n Euml: \"Ë\",\n Igrave: \"Ì\",\n Iacute: \"Í\",\n Icirc: \"Î\",\n Iuml: \"Ï\",\n ETH: \"Ð\",\n Ntilde: \"Ñ\",\n Ograve: \"Ò\",\n Oacute: \"Ó\",\n Ocirc: \"Ô\",\n Otilde: \"Õ\",\n Ouml: \"Ö\",\n Oslash: \"Ø\",\n Ugrave: \"Ù\",\n Uacute: \"Ú\",\n Ucirc: \"Û\",\n Uuml: \"Ü\",\n Yacute: \"Ý\",\n THORN: \"Þ\",\n szlig: \"ß\",\n agrave: \"à\",\n aacute: \"á\",\n acirc: \"â\",\n atilde: \"ã\",\n auml: \"ä\",\n aring: \"å\",\n aelig: \"æ\",\n ccedil: \"ç\",\n egrave: \"è\",\n eacute: \"é\",\n ecirc: \"ê\",\n euml: \"ë\",\n igrave: \"ì\",\n iacute: \"í\",\n icirc: \"î\",\n iuml: \"ï\",\n eth: \"ð\",\n ntilde: \"ñ\",\n ograve: \"ò\",\n oacute: \"ó\",\n ocirc: \"ô\",\n otilde: \"õ\",\n ouml: \"ö\",\n oslash: \"ø\",\n ugrave: \"ù\",\n uacute: \"ú\",\n ucirc: \"û\",\n uuml: \"ü\",\n yacute: \"ý\",\n thorn: \"þ\",\n yuml: \"ÿ\",\n nbsp: \"\\u00a0\",\n iexcl: \"¡\",\n cent: \"¢\",\n pound: \"£\",\n curren: \"¤\",\n yen: \"¥\",\n brvbar: \"¦\",\n sect: \"§\",\n uml: \"¨\",\n copy: \"©\",\n ordf: \"ª\",\n laquo: \"«\",\n not: \"¬\",\n shy: \"\",\n reg: \"®\",\n macr: \"¯\",\n deg: \"°\",\n plusmn: \"±\",\n sup2: \"²\",\n sup3: \"³\",\n acute: \"´\",\n micro: \"µ\",\n para: \"¶\",\n middot: \"·\",\n cedil: \"¸\",\n sup1: \"¹\",\n ordm: \"º\",\n raquo: \"»\",\n frac14: \"¼\",\n frac12: \"½\",\n frac34: \"¾\",\n iquest: \"¿\",\n times: \"×\",\n divide: \"÷\",\n forall: \"∀\",\n part: \"∂\",\n exist: \"∃\",\n empty: \"∅\",\n nabla: \"∇\",\n isin: \"∈\",\n notin: \"∉\",\n ni: \"∋\",\n prod: \"∏\",\n sum: \"∑\",\n minus: \"−\",\n lowast: \"∗\",\n radic: \"√\",\n prop: \"∝\",\n infin: \"∞\",\n ang: \"∠\",\n and: \"∧\",\n or: \"∨\",\n cap: \"∩\",\n cup: \"∪\",\n 'int': \"∫\",\n there4: \"∴\",\n sim: \"∼\",\n cong: \"≅\",\n asymp: \"≈\",\n ne: \"≠\",\n equiv: \"≡\",\n le: \"≤\",\n ge: \"≥\",\n sub: \"⊂\",\n sup: \"⊃\",\n nsub: \"⊄\",\n sube: \"⊆\",\n supe: \"⊇\",\n oplus: \"⊕\",\n otimes: \"⊗\",\n perp: \"⊥\",\n sdot: \"⋅\",\n Alpha: \"Α\",\n Beta: \"Β\",\n Gamma: \"Γ\",\n Delta: \"Δ\",\n Epsilon: \"Ε\",\n Zeta: \"Ζ\",\n Eta: \"Η\",\n Theta: \"Θ\",\n Iota: \"Ι\",\n Kappa: \"Κ\",\n Lambda: \"Λ\",\n Mu: \"Μ\",\n Nu: \"Ν\",\n Xi: \"Ξ\",\n Omicron: \"Ο\",\n Pi: \"Π\",\n Rho: \"Ρ\",\n Sigma: \"Σ\",\n Tau: \"Τ\",\n Upsilon: \"Υ\",\n Phi: \"Φ\",\n Chi: \"Χ\",\n Psi: \"Ψ\",\n Omega: \"Ω\",\n alpha: \"α\",\n beta: \"β\",\n gamma: \"γ\",\n delta: \"δ\",\n epsilon: \"ε\",\n zeta: \"ζ\",\n eta: \"η\",\n theta: \"θ\",\n iota: \"ι\",\n kappa: \"κ\",\n lambda: \"λ\",\n mu: \"μ\",\n nu: \"ν\",\n xi: \"ξ\",\n omicron: \"ο\",\n pi: \"π\",\n rho: \"ρ\",\n sigmaf: \"ς\",\n sigma: \"σ\",\n tau: \"τ\",\n upsilon: \"υ\",\n phi: \"φ\",\n chi: \"χ\",\n psi: \"ψ\",\n omega: \"ω\",\n thetasym: \"ϑ\",\n upsih: \"ϒ\",\n piv: \"ϖ\",\n OElig: \"Œ\",\n oelig: \"œ\",\n Scaron: \"Š\",\n scaron: \"š\",\n Yuml: \"Ÿ\",\n fnof: \"ƒ\",\n circ: \"ˆ\",\n tilde: \"˜\",\n ensp: \" \",\n emsp: \" \",\n thinsp: \" \",\n zwnj: \"\",\n zwj: \"\",\n lrm: \"\",\n rlm: \"\",\n ndash: \"–\",\n mdash: \"—\",\n lsquo: \"‘\",\n rsquo: \"’\",\n sbquo: \"‚\",\n ldquo: \"“\",\n rdquo: \"”\",\n bdquo: \"„\",\n dagger: \"†\",\n Dagger: \"‡\",\n bull: \"•\",\n hellip: \"…\",\n permil: \"‰\",\n prime: \"′\",\n Prime: \"″\",\n lsaquo: \"‹\",\n rsaquo: \"›\",\n oline: \"‾\",\n euro: \"€\",\n trade: \"™\",\n larr: \"←\",\n uarr: \"↑\",\n rarr: \"→\",\n darr: \"↓\",\n harr: \"↔\",\n crarr: \"↵\",\n lceil: \"⌈\",\n rceil: \"⌉\",\n lfloor: \"⌊\",\n rfloor: \"⌋\",\n loz: \"◊\",\n spades: \"♠\",\n clubs: \"♣\",\n hearts: \"♥\",\n diams: \"♦\"\n};\n","//[4] \tNameStartChar\t ::= \t\":\" | [A-Z] | \"_\" | [a-z] | [#xC0-#xD6] | [#xD8-#xF6] | [#xF8-#x2FF] | [#x370-#x37D] | [#x37F-#x1FFF] | [#x200C-#x200D] | [#x2070-#x218F] | [#x2C00-#x2FEF] | [#x3001-#xD7FF] | [#xF900-#xFDCF] | [#xFDF0-#xFFFD] | [#x10000-#xEFFFF]\n//[4a] \tNameChar\t ::= \tNameStartChar | \"-\" | \".\" | [0-9] | #xB7 | [#x0300-#x036F] | [#x203F-#x2040]\n//[5] \tName\t ::= \tNameStartChar (NameChar)*\nvar nameStartChar = /[A-Z_a-z\\xC0-\\xD6\\xD8-\\xF6\\u00F8-\\u02FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD]///\\u10000-\\uEFFFF\nvar nameChar = new RegExp(\"[\\\\-\\\\.0-9\"+nameStartChar.source.slice(1,-1)+\"\\\\u00B7\\\\u0300-\\\\u036F\\\\u203F-\\\\u2040]\");\nvar tagNamePattern = new RegExp('^'+nameStartChar.source+nameChar.source+'*(?:\\:'+nameStartChar.source+nameChar.source+'*)?$');\n//var tagNamePattern = /^[a-zA-Z_][\\w\\-\\.]*(?:\\:[a-zA-Z_][\\w\\-\\.]*)?$/\n//var handlers = 'resolveEntity,getExternalSubset,characters,endDocument,endElement,endPrefixMapping,ignorableWhitespace,processingInstruction,setDocumentLocator,skippedEntity,startDocument,startElement,startPrefixMapping,notationDecl,unparsedEntityDecl,error,fatalError,warning,attributeDecl,elementDecl,externalEntityDecl,internalEntityDecl,comment,endCDATA,endDTD,endEntity,startCDATA,startDTD,startEntity'.split(',')\n\n//S_TAG,\tS_ATTR,\tS_EQ,\tS_ATTR_NOQUOT_VALUE\n//S_ATTR_SPACE,\tS_ATTR_END,\tS_TAG_SPACE, S_TAG_CLOSE\nvar S_TAG = 0;//tag name offerring\nvar S_ATTR = 1;//attr name offerring \nvar S_ATTR_SPACE=2;//attr name end and space offer\nvar S_EQ = 3;//=space?\nvar S_ATTR_NOQUOT_VALUE = 4;//attr value(no quot value only)\nvar S_ATTR_END = 5;//attr value end and no space(quot end)\nvar S_TAG_SPACE = 6;//(attr value end || tag end ) && (space offer)\nvar S_TAG_CLOSE = 7;//closed el<el />\n\n/**\n * Creates an error that will not be caught by XMLReader aka the SAX parser.\n *\n * @param {string} message\n * @param {any?} locator Optional, can provide details about the location in the source\n * @constructor\n */\nfunction ParseError(message, locator) {\n\tthis.message = message\n\tthis.locator = locator\n\tif(Error.captureStackTrace) Error.captureStackTrace(this, ParseError);\n}\nParseError.prototype = new Error();\nParseError.prototype.name = ParseError.name\n\nfunction XMLReader(){\n\t\n}\n\nXMLReader.prototype = {\n\tparse:function(source,defaultNSMap,entityMap){\n\t\tvar domBuilder = this.domBuilder;\n\t\tdomBuilder.startDocument();\n\t\t_copy(defaultNSMap ,defaultNSMap = {})\n\t\tparse(source,defaultNSMap,entityMap,\n\t\t\t\tdomBuilder,this.errorHandler);\n\t\tdomBuilder.endDocument();\n\t}\n}\nfunction parse(source,defaultNSMapCopy,entityMap,domBuilder,errorHandler){\n\tfunction fixedFromCharCode(code) {\n\t\t// String.prototype.fromCharCode does not supports\n\t\t// > 2 bytes unicode chars directly\n\t\tif (code > 0xffff) {\n\t\t\tcode -= 0x10000;\n\t\t\tvar surrogate1 = 0xd800 + (code >> 10)\n\t\t\t\t, surrogate2 = 0xdc00 + (code & 0x3ff);\n\n\t\t\treturn String.fromCharCode(surrogate1, surrogate2);\n\t\t} else {\n\t\t\treturn String.fromCharCode(code);\n\t\t}\n\t}\n\tfunction entityReplacer(a){\n\t\tvar k = a.slice(1,-1);\n\t\tif(k in entityMap){\n\t\t\treturn entityMap[k]; \n\t\t}else if(k.charAt(0) === '#'){\n\t\t\treturn fixedFromCharCode(parseInt(k.substr(1).replace('x','0x')))\n\t\t}else{\n\t\t\terrorHandler.error('entity not found:'+a);\n\t\t\treturn a;\n\t\t}\n\t}\n\tfunction appendText(end){//has some bugs\n\t\tif(end>start){\n\t\t\tvar xt = source.substring(start,end).replace(/&#?\\w+;/g,entityReplacer);\n\t\t\tlocator&&position(start);\n\t\t\tdomBuilder.characters(xt,0,end-start);\n\t\t\tstart = end\n\t\t}\n\t}\n\tfunction position(p,m){\n\t\twhile(p>=lineEnd && (m = linePattern.exec(source))){\n\t\t\tlineStart = m.index;\n\t\t\tlineEnd = lineStart + m[0].length;\n\t\t\tlocator.lineNumber++;\n\t\t\t//console.log('line++:',locator,startPos,endPos)\n\t\t}\n\t\tlocator.columnNumber = p-lineStart+1;\n\t}\n\tvar lineStart = 0;\n\tvar lineEnd = 0;\n\tvar linePattern = /.*(?:\\r\\n?|\\n)|.*$/g\n\tvar locator = domBuilder.locator;\n\t\n\tvar parseStack = [{currentNSMap:defaultNSMapCopy}]\n\tvar closeMap = {};\n\tvar start = 0;\n\twhile(true){\n\t\ttry{\n\t\t\tvar tagStart = source.indexOf('<',start);\n\t\t\tif(tagStart<0){\n\t\t\t\tif(!source.substr(start).match(/^\\s*$/)){\n\t\t\t\t\tvar doc = domBuilder.doc;\n\t \t\t\tvar text = doc.createTextNode(source.substr(start));\n\t \t\t\tdoc.appendChild(text);\n\t \t\t\tdomBuilder.currentElement = text;\n\t\t\t\t}\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tif(tagStart>start){\n\t\t\t\tappendText(tagStart);\n\t\t\t}\n\t\t\tswitch(source.charAt(tagStart+1)){\n\t\t\tcase '/':\n\t\t\t\tvar end = source.indexOf('>',tagStart+3);\n\t\t\t\tvar tagName = source.substring(tagStart+2,end);\n\t\t\t\tvar config = parseStack.pop();\n\t\t\t\tif(end<0){\n\t\t\t\t\t\n\t \t\ttagName = source.substring(tagStart+2).replace(/[\\s<].*/,'');\n\t \t\terrorHandler.error(\"end tag name: \"+tagName+' is not complete:'+config.tagName);\n\t \t\tend = tagStart+1+tagName.length;\n\t \t}else if(tagName.match(/\\s</)){\n\t \t\ttagName = tagName.replace(/[\\s<].*/,'');\n\t \t\terrorHandler.error(\"end tag name: \"+tagName+' maybe not complete');\n\t \t\tend = tagStart+1+tagName.length;\n\t\t\t\t}\n\t\t\t\tvar localNSMap = config.localNSMap;\n\t\t\t\tvar endMatch = config.tagName == tagName;\n\t\t\t\tvar endIgnoreCaseMach = endMatch || config.tagName&&config.tagName.toLowerCase() == tagName.toLowerCase()\n\t\t if(endIgnoreCaseMach){\n\t\t \tdomBuilder.endElement(config.uri,config.localName,tagName);\n\t\t\t\t\tif(localNSMap){\n\t\t\t\t\t\tfor(var prefix in localNSMap){\n\t\t\t\t\t\t\tdomBuilder.endPrefixMapping(prefix) ;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tif(!endMatch){\n\t\t \terrorHandler.fatalError(\"end tag name: \"+tagName+' is not match the current start tagName:'+config.tagName ); // No known test case\n\t\t\t\t\t}\n\t\t }else{\n\t\t \tparseStack.push(config)\n\t\t }\n\t\t\t\t\n\t\t\t\tend++;\n\t\t\t\tbreak;\n\t\t\t\t// end elment\n\t\t\tcase '?':// <?...?>\n\t\t\t\tlocator&&position(tagStart);\n\t\t\t\tend = parseInstruction(source,tagStart,domBuilder);\n\t\t\t\tbreak;\n\t\t\tcase '!':// <!doctype,<![CDATA,<!--\n\t\t\t\tlocator&&position(tagStart);\n\t\t\t\tend = parseDCC(source,tagStart,domBuilder,errorHandler);\n\t\t\t\tbreak;\n\t\t\tdefault:\n\t\t\t\tlocator&&position(tagStart);\n\t\t\t\tvar el = new ElementAttributes();\n\t\t\t\tvar currentNSMap = parseStack[parseStack.length-1].currentNSMap;\n\t\t\t\t//elStartEnd\n\t\t\t\tvar end = parseElementStartPart(source,tagStart,el,currentNSMap,entityReplacer,errorHandler);\n\t\t\t\tvar len = el.length;\n\t\t\t\t\n\t\t\t\t\n\t\t\t\tif(!el.closed && fixSelfClosed(source,end,el.tagName,closeMap)){\n\t\t\t\t\tel.closed = true;\n\t\t\t\t\tif(!entityMap.nbsp){\n\t\t\t\t\t\terrorHandler.warning('unclosed xml attribute');\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tif(locator && len){\n\t\t\t\t\tvar locator2 = copyLocator(locator,{});\n\t\t\t\t\t//try{//attribute position fixed\n\t\t\t\t\tfor(var i = 0;i<len;i++){\n\t\t\t\t\t\tvar a = el[i];\n\t\t\t\t\t\tposition(a.offset);\n\t\t\t\t\t\ta.locator = copyLocator(locator,{});\n\t\t\t\t\t}\n\t\t\t\t\tdomBuilder.locator = locator2\n\t\t\t\t\tif(appendElement(el,domBuilder,currentNSMap)){\n\t\t\t\t\t\tparseStack.push(el)\n\t\t\t\t\t}\n\t\t\t\t\tdomBuilder.locator = locator;\n\t\t\t\t}else{\n\t\t\t\t\tif(appendElement(el,domBuilder,currentNSMap)){\n\t\t\t\t\t\tparseStack.push(el)\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\tif(el.uri === 'http://www.w3.org/1999/xhtml' && !el.closed){\n\t\t\t\t\tend = parseHtmlSpecialContent(source,end,el.tagName,entityReplacer,domBuilder)\n\t\t\t\t}else{\n\t\t\t\t\tend++;\n\t\t\t\t}\n\t\t\t}\n\t\t}catch(e){\n\t\t\tif (e instanceof ParseError) {\n\t\t\t\tthrow e;\n\t\t\t}\n\t\t\terrorHandler.error('element parse error: '+e)\n\t\t\tend = -1;\n\t\t}\n\t\tif(end>start){\n\t\t\tstart = end;\n\t\t}else{\n\t\t\t//TODO: 这里有可能sax回退,有位置错误风险\n\t\t\tappendText(Math.max(tagStart,start)+1);\n\t\t}\n\t}\n}\nfunction copyLocator(f,t){\n\tt.lineNumber = f.lineNumber;\n\tt.columnNumber = f.columnNumber;\n\treturn t;\n}\n\n/**\n * @see #appendElement(source,elStartEnd,el,selfClosed,entityReplacer,domBuilder,parseStack);\n * @return end of the elementStartPart(end of elementEndPart for selfClosed el)\n */\nfunction parseElementStartPart(source,start,el,currentNSMap,entityReplacer,errorHandler){\n\n\t/**\n\t * @param {string} qname\n\t * @param {string} value\n\t * @param {number} startIndex\n\t */\n\tfunction addAttribute(qname, value, startIndex) {\n\t\tif (qname in el.attributeNames) errorHandler.fatalError('Attribute ' + qname + ' redefined')\n\t\tel.addValue(qname, value, startIndex)\n\t}\n\tvar attrName;\n\tvar value;\n\tvar p = ++start;\n\tvar s = S_TAG;//status\n\twhile(true){\n\t\tvar c = source.charAt(p);\n\t\tswitch(c){\n\t\tcase '=':\n\t\t\tif(s === S_ATTR){//attrName\n\t\t\t\tattrName = source.slice(start,p);\n\t\t\t\ts = S_EQ;\n\t\t\t}else if(s === S_ATTR_SPACE){\n\t\t\t\ts = S_EQ;\n\t\t\t}else{\n\t\t\t\t//fatalError: equal must after attrName or space after attrName\n\t\t\t\tthrow new Error('attribute equal must after attrName'); // No known test case\n\t\t\t}\n\t\t\tbreak;\n\t\tcase '\\'':\n\t\tcase '\"':\n\t\t\tif(s === S_EQ || s === S_ATTR //|| s == S_ATTR_SPACE\n\t\t\t\t){//equal\n\t\t\t\tif(s === S_ATTR){\n\t\t\t\t\terrorHandler.warning('attribute value must after \"=\"')\n\t\t\t\t\tattrName = source.slice(start,p)\n\t\t\t\t}\n\t\t\t\tstart = p+1;\n\t\t\t\tp = source.indexOf(c,start)\n\t\t\t\tif(p>0){\n\t\t\t\t\tvalue = source.slice(start,p).replace(/&#?\\w+;/g,entityReplacer);\n\t\t\t\t\taddAttribute(attrName, value, start-1);\n\t\t\t\t\ts = S_ATTR_END;\n\t\t\t\t}else{\n\t\t\t\t\t//fatalError: no end quot match\n\t\t\t\t\tthrow new Error('attribute value no end \\''+c+'\\' match');\n\t\t\t\t}\n\t\t\t}else if(s == S_ATTR_NOQUOT_VALUE){\n\t\t\t\tvalue = source.slice(start,p).replace(/&#?\\w+;/g,entityReplacer);\n\t\t\t\t//console.log(attrName,value,start,p)\n\t\t\t\taddAttribute(attrName, value, start);\n\t\t\t\t//console.dir(el)\n\t\t\t\terrorHandler.warning('attribute \"'+attrName+'\" missed start quot('+c+')!!');\n\t\t\t\tstart = p+1;\n\t\t\t\ts = S_ATTR_END\n\t\t\t}else{\n\t\t\t\t//fatalError: no equal before\n\t\t\t\tthrow new Error('attribute value must after \"=\"'); // No known test case\n\t\t\t}\n\t\t\tbreak;\n\t\tcase '/':\n\t\t\tswitch(s){\n\t\t\tcase S_TAG:\n\t\t\t\tel.setTagName(source.slice(start,p));\n\t\t\tcase S_ATTR_END:\n\t\t\tcase S_TAG_SPACE:\n\t\t\tcase S_TAG_CLOSE:\n\t\t\t\ts =S_TAG_CLOSE;\n\t\t\t\tel.closed = true;\n\t\t\tcase S_ATTR_NOQUOT_VALUE:\n\t\t\tcase S_ATTR:\n\t\t\tcase S_ATTR_SPACE:\n\t\t\t\tbreak;\n\t\t\t//case S_EQ:\n\t\t\tdefault:\n\t\t\t\tthrow new Error(\"attribute invalid close char('/')\") // No known test case\n\t\t\t}\n\t\t\tbreak;\n\t\tcase ''://end document\n\t\t\terrorHandler.error('unexpected end of input');\n\t\t\tif(s == S_TAG){\n\t\t\t\tel.setTagName(source.slice(start,p));\n\t\t\t}\n\t\t\treturn p;\n\t\tcase '>':\n\t\t\tswitch(s){\n\t\t\tcase S_TAG:\n\t\t\t\tel.setTagName(source.slice(start,p));\n\t\t\tcase S_ATTR_END:\n\t\t\tcase S_TAG_SPACE:\n\t\t\tcase S_TAG_CLOSE:\n\t\t\t\tbreak;//normal\n\t\t\tcase S_ATTR_NOQUOT_VALUE://Compatible state\n\t\t\tcase S_ATTR:\n\t\t\t\tvalue = source.slice(start,p);\n\t\t\t\tif(value.slice(-1) === '/'){\n\t\t\t\t\tel.closed = true;\n\t\t\t\t\tvalue = value.slice(0,-1)\n\t\t\t\t}\n\t\t\tcase S_ATTR_SPACE:\n\t\t\t\tif(s === S_ATTR_SPACE){\n\t\t\t\t\tvalue = attrName;\n\t\t\t\t}\n\t\t\t\tif(s == S_ATTR_NOQUOT_VALUE){\n\t\t\t\t\terrorHandler.warning('attribute \"'+value+'\" missed quot(\")!');\n\t\t\t\t\taddAttribute(attrName, value.replace(/&#?\\w+;/g,entityReplacer), start)\n\t\t\t\t}else{\n\t\t\t\t\tif(currentNSMap[''] !== 'http://www.w3.org/1999/xhtml' || !value.match(/^(?:disabled|checked|selected)$/i)){\n\t\t\t\t\t\terrorHandler.warning('attribute \"'+value+'\" missed value!! \"'+value+'\" instead!!')\n\t\t\t\t\t}\n\t\t\t\t\taddAttribute(value, value, start)\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t\tcase S_EQ:\n\t\t\t\tthrow new Error('attribute value missed!!');\n\t\t\t}\n//\t\t\tconsole.log(tagName,tagNamePattern,tagNamePattern.test(tagName))\n\t\t\treturn p;\n\t\t/*xml space '\\x20' | #x9 | #xD | #xA; */\n\t\tcase '\\u0080':\n\t\t\tc = ' ';\n\t\tdefault:\n\t\t\tif(c<= ' '){//space\n\t\t\t\tswitch(s){\n\t\t\t\tcase S_TAG:\n\t\t\t\t\tel.setTagName(source.slice(start,p));//tagName\n\t\t\t\t\ts = S_TAG_SPACE;\n\t\t\t\t\tbreak;\n\t\t\t\tcase S_ATTR:\n\t\t\t\t\tattrName = source.slice(start,p)\n\t\t\t\t\ts = S_ATTR_SPACE;\n\t\t\t\t\tbreak;\n\t\t\t\tcase S_ATTR_NOQUOT_VALUE:\n\t\t\t\t\tvar value = source.slice(start,p).replace(/&#?\\w+;/g,entityReplacer);\n\t\t\t\t\terrorHandler.warning('attribute \"'+value+'\" missed quot(\")!!');\n\t\t\t\t\taddAttribute(attrName, value, start)\n\t\t\t\tcase S_ATTR_END:\n\t\t\t\t\ts = S_TAG_SPACE;\n\t\t\t\t\tbreak;\n\t\t\t\t//case S_TAG_SPACE:\n\t\t\t\t//case S_EQ:\n\t\t\t\t//case S_ATTR_SPACE:\n\t\t\t\t//\tvoid();break;\n\t\t\t\t//case S_TAG_CLOSE:\n\t\t\t\t\t//ignore warning\n\t\t\t\t}\n\t\t\t}else{//not space\n//S_TAG,\tS_ATTR,\tS_EQ,\tS_ATTR_NOQUOT_VALUE\n//S_ATTR_SPACE,\tS_ATTR_END,\tS_TAG_SPACE, S_TAG_CLOSE\n\t\t\t\tswitch(s){\n\t\t\t\t//case S_TAG:void();break;\n\t\t\t\t//case S_ATTR:void();break;\n\t\t\t\t//case S_ATTR_NOQUOT_VALUE:void();break;\n\t\t\t\tcase S_ATTR_SPACE:\n\t\t\t\t\tvar tagName = el.tagName;\n\t\t\t\t\tif(currentNSMap[''] !== 'http://www.w3.org/1999/xhtml' || !attrName.match(/^(?:disabled|checked|selected)$/i)){\n\t\t\t\t\t\terrorHandler.warning('attribute \"'+attrName+'\" missed value!! \"'+attrName+'\" instead2!!')\n\t\t\t\t\t}\n\t\t\t\t\taddAttribute(attrName, attrName, start);\n\t\t\t\t\tstart = p;\n\t\t\t\t\ts = S_ATTR;\n\t\t\t\t\tbreak;\n\t\t\t\tcase S_ATTR_END:\n\t\t\t\t\terrorHandler.warning('attribute space is required\"'+attrName+'\"!!')\n\t\t\t\tcase S_TAG_SPACE:\n\t\t\t\t\ts = S_ATTR;\n\t\t\t\t\tstart = p;\n\t\t\t\t\tbreak;\n\t\t\t\tcase S_EQ:\n\t\t\t\t\ts = S_ATTR_NOQUOT_VALUE;\n\t\t\t\t\tstart = p;\n\t\t\t\t\tbreak;\n\t\t\t\tcase S_TAG_CLOSE:\n\t\t\t\t\tthrow new Error(\"elements closed character '/' and '>' must be connected to\");\n\t\t\t\t}\n\t\t\t}\n\t\t}//end outer switch\n\t\t//console.log('p++',p)\n\t\tp++;\n\t}\n}\n/**\n * @return true if has new namespace define\n */\nfunction appendElement(el,domBuilder,currentNSMap){\n\tvar tagName = el.tagName;\n\tvar localNSMap = null;\n\t//var currentNSMap = parseStack[parseStack.length-1].currentNSMap;\n\tvar i = el.length;\n\twhile(i--){\n\t\tvar a = el[i];\n\t\tvar qName = a.qName;\n\t\tvar value = a.value;\n\t\tvar nsp = qName.indexOf(':');\n\t\tif(nsp>0){\n\t\t\tvar prefix = a.prefix = qName.slice(0,nsp);\n\t\t\tvar localName = qName.slice(nsp+1);\n\t\t\tvar nsPrefix = prefix === 'xmlns' && localName\n\t\t}else{\n\t\t\tlocalName = qName;\n\t\t\tprefix = null\n\t\t\tnsPrefix = qName === 'xmlns' && ''\n\t\t}\n\t\t//can not set prefix,because prefix !== ''\n\t\ta.localName = localName ;\n\t\t//prefix == null for no ns prefix attribute \n\t\tif(nsPrefix !== false){//hack!!\n\t\t\tif(localNSMap == null){\n\t\t\t\tlocalNSMap = {}\n\t\t\t\t//console.log(currentNSMap,0)\n\t\t\t\t_copy(currentNSMap,currentNSMap={})\n\t\t\t\t//console.log(currentNSMap,1)\n\t\t\t}\n\t\t\tcurrentNSMap[nsPrefix] = localNSMap[nsPrefix] = value;\n\t\t\ta.uri = 'http://www.w3.org/2000/xmlns/'\n\t\t\tdomBuilder.startPrefixMapping(nsPrefix, value) \n\t\t}\n\t}\n\tvar i = el.length;\n\twhile(i--){\n\t\ta = el[i];\n\t\tvar prefix = a.prefix;\n\t\tif(prefix){//no prefix attribute has no namespace\n\t\t\tif(prefix === 'xml'){\n\t\t\t\ta.uri = 'http://www.w3.org/XML/1998/namespace';\n\t\t\t}if(prefix !== 'xmlns'){\n\t\t\t\ta.uri = currentNSMap[prefix || '']\n\t\t\t\t\n\t\t\t\t//{console.log('###'+a.qName,domBuilder.locator.systemId+'',currentNSMap,a.uri)}\n\t\t\t}\n\t\t}\n\t}\n\tvar nsp = tagName.indexOf(':');\n\tif(nsp>0){\n\t\tprefix = el.prefix = tagName.slice(0,nsp);\n\t\tlocalName = el.localName = tagName.slice(nsp+1);\n\t}else{\n\t\tprefix = null;//important!!\n\t\tlocalName = el.localName = tagName;\n\t}\n\t//no prefix element has default namespace\n\tvar ns = el.uri = currentNSMap[prefix || ''];\n\tdomBuilder.startElement(ns,localName,tagName,el);\n\t//endPrefixMapping and startPrefixMapping have not any help for dom builder\n\t//localNSMap = null\n\tif(el.closed){\n\t\tdomBuilder.endElement(ns,localName,tagName);\n\t\tif(localNSMap){\n\t\t\tfor(prefix in localNSMap){\n\t\t\t\tdomBuilder.endPrefixMapping(prefix) \n\t\t\t}\n\t\t}\n\t}else{\n\t\tel.currentNSMap = currentNSMap;\n\t\tel.localNSMap = localNSMap;\n\t\t//parseStack.push(el);\n\t\treturn true;\n\t}\n}\nfunction parseHtmlSpecialContent(source,elStartEnd,tagName,entityReplacer,domBuilder){\n\tif(/^(?:script|textarea)$/i.test(tagName)){\n\t\tvar elEndStart = source.indexOf('</'+tagName+'>',elStartEnd);\n\t\tvar text = source.substring(elStartEnd+1,elEndStart);\n\t\tif(/[&<]/.test(text)){\n\t\t\tif(/^script$/i.test(tagName)){\n\t\t\t\t//if(!/\\]\\]>/.test(text)){\n\t\t\t\t\t//lexHandler.startCDATA();\n\t\t\t\t\tdomBuilder.characters(text,0,text.length);\n\t\t\t\t\t//lexHandler.endCDATA();\n\t\t\t\t\treturn elEndStart;\n\t\t\t\t//}\n\t\t\t}//}else{//text area\n\t\t\t\ttext = text.replace(/&#?\\w+;/g,entityReplacer);\n\t\t\t\tdomBuilder.characters(text,0,text.length);\n\t\t\t\treturn elEndStart;\n\t\t\t//}\n\t\t\t\n\t\t}\n\t}\n\treturn elStartEnd+1;\n}\nfunction fixSelfClosed(source,elStartEnd,tagName,closeMap){\n\t//if(tagName in closeMap){\n\tvar pos = closeMap[tagName];\n\tif(pos == null){\n\t\t//console.log(tagName)\n\t\tpos = source.lastIndexOf('</'+tagName+'>')\n\t\tif(pos<elStartEnd){//忘记闭合\n\t\t\tpos = source.lastIndexOf('</'+tagName)\n\t\t}\n\t\tcloseMap[tagName] =pos\n\t}\n\treturn pos<elStartEnd;\n\t//} \n}\nfunction _copy(source,target){\n\tfor(var n in source){target[n] = source[n]}\n}\nfunction parseDCC(source,start,domBuilder,errorHandler){//sure start with '<!'\n\tvar next= source.charAt(start+2)\n\tswitch(next){\n\tcase '-':\n\t\tif(source.charAt(start + 3) === '-'){\n\t\t\tvar end = source.indexOf('-->',start+4);\n\t\t\t//append comment source.substring(4,end)//<!--\n\t\t\tif(end>start){\n\t\t\t\tdomBuilder.comment(source,start+4,end-start-4);\n\t\t\t\treturn end+3;\n\t\t\t}else{\n\t\t\t\terrorHandler.error(\"Unclosed comment\");\n\t\t\t\treturn -1;\n\t\t\t}\n\t\t}else{\n\t\t\t//error\n\t\t\treturn -1;\n\t\t}\n\tdefault:\n\t\tif(source.substr(start+3,6) == 'CDATA['){\n\t\t\tvar end = source.indexOf(']]>',start+9);\n\t\t\tdomBuilder.startCDATA();\n\t\t\tdomBuilder.characters(source,start+9,end-start-9);\n\t\t\tdomBuilder.endCDATA() \n\t\t\treturn end+3;\n\t\t}\n\t\t//<!DOCTYPE\n\t\t//startDTD(java.lang.String name, java.lang.String publicId, java.lang.String systemId) \n\t\tvar matchs = split(source,start);\n\t\tvar len = matchs.length;\n\t\tif(len>1 && /!doctype/i.test(matchs[0][0])){\n\t\t\tvar name = matchs[1][0];\n\t\t\tvar pubid = false;\n\t\t\tvar sysid = false;\n\t\t\tif(len>3){\n\t\t\t\tif(/^public$/i.test(matchs[2][0])){\n\t\t\t\t\tpubid = matchs[3][0];\n\t\t\t\t\tsysid = len>4 && matchs[4][0];\n\t\t\t\t}else if(/^system$/i.test(matchs[2][0])){\n\t\t\t\t\tsysid = matchs[3][0];\n\t\t\t\t}\n\t\t\t}\n\t\t\tvar lastMatch = matchs[len-1]\n\t\t\tdomBuilder.startDTD(name, pubid, sysid);\n\t\t\tdomBuilder.endDTD();\n\t\t\t\n\t\t\treturn lastMatch.index+lastMatch[0].length\n\t\t}\n\t}\n\treturn -1;\n}\n\n\n\nfunction parseInstruction(source,start,domBuilder){\n\tvar end = source.indexOf('?>',start);\n\tif(end){\n\t\tvar match = source.substring(start,end).match(/^<\\?(\\S*)\\s*([\\s\\S]*?)\\s*$/);\n\t\tif(match){\n\t\t\tvar len = match[0].length;\n\t\t\tdomBuilder.processingInstruction(match[1], match[2]) ;\n\t\t\treturn end+2;\n\t\t}else{//error\n\t\t\treturn -1;\n\t\t}\n\t}\n\treturn -1;\n}\n\nfunction ElementAttributes(){\n\tthis.attributeNames = {}\n}\nElementAttributes.prototype = {\n\tsetTagName:function(tagName){\n\t\tif(!tagNamePattern.test(tagName)){\n\t\t\tthrow new Error('invalid tagName:'+tagName)\n\t\t}\n\t\tthis.tagName = tagName\n\t},\n\taddValue:function(qName, value, offset) {\n\t\tif(!tagNamePattern.test(qName)){\n\t\t\tthrow new Error('invalid attribute:'+qName)\n\t\t}\n\t\tthis.attributeNames[qName] = this.length;\n\t\tthis[this.length++] = {qName:qName,value:value,offset:offset}\n\t},\n\tlength:0,\n\tgetLocalName:function(i){return this[i].localName},\n\tgetLocator:function(i){return this[i].locator},\n\tgetQName:function(i){return this[i].qName},\n\tgetURI:function(i){return this[i].uri},\n\tgetValue:function(i){return this[i].value}\n//\t,getIndex:function(uri, localName)){\n//\t\tif(localName){\n//\t\t\t\n//\t\t}else{\n//\t\t\tvar qName = uri\n//\t\t}\n//\t},\n//\tgetValue:function(){return this.getValue(this.getIndex.apply(this,arguments))},\n//\tgetType:function(uri,localName){}\n//\tgetType:function(i){},\n}\n\n\n\nfunction split(source,start){\n\tvar match;\n\tvar buf = [];\n\tvar reg = /'[^']+'|\"[^\"]+\"|[^\\s<>\\/=]+=?|(\\/?\\s*>|<)/g;\n\treg.lastIndex = start;\n\treg.exec(source);//skip <\n\twhile(match = reg.exec(source)){\n\t\tbuf.push(match);\n\t\tif(match[1])return buf;\n\t}\n}\n\nexports.XMLReader = XMLReader;\nexports.ParseError = ParseError;\n","function copy(src,dest){\n\tfor(var p in src){\n\t\tdest[p] = src[p];\n\t}\n}\n/**\n^\\w+\\.prototype\\.([_\\w]+)\\s*=\\s*((?:.*\\{\\s*?[\\r\\n][\\s\\S]*?^})|\\S.*?(?=[;\\r\\n]));?\n^\\w+\\.prototype\\.([_\\w]+)\\s*=\\s*(\\S.*?(?=[;\\r\\n]));?\n */\nfunction _extends(Class,Super){\n\tvar pt = Class.prototype;\n\tif(!(pt instanceof Super)){\n\t\tfunction t(){};\n\t\tt.prototype = Super.prototype;\n\t\tt = new t();\n\t\tcopy(pt,t);\n\t\tClass.prototype = pt = t;\n\t}\n\tif(pt.constructor != Class){\n\t\tif(typeof Class != 'function'){\n\t\t\tconsole.error(\"unknow Class:\"+Class)\n\t\t}\n\t\tpt.constructor = Class\n\t}\n}\nvar htmlns = 'http://www.w3.org/1999/xhtml' ;\n// Node Types\nvar NodeType = {}\nvar ELEMENT_NODE = NodeType.ELEMENT_NODE = 1;\nvar ATTRIBUTE_NODE = NodeType.ATTRIBUTE_NODE = 2;\nvar TEXT_NODE = NodeType.TEXT_NODE = 3;\nvar CDATA_SECTION_NODE = NodeType.CDATA_SECTION_NODE = 4;\nvar ENTITY_REFERENCE_NODE = NodeType.ENTITY_REFERENCE_NODE = 5;\nvar ENTITY_NODE = NodeType.ENTITY_NODE = 6;\nvar PROCESSING_INSTRUCTION_NODE = NodeType.PROCESSING_INSTRUCTION_NODE = 7;\nvar COMMENT_NODE = NodeType.COMMENT_NODE = 8;\nvar DOCUMENT_NODE = NodeType.DOCUMENT_NODE = 9;\nvar DOCUMENT_TYPE_NODE = NodeType.DOCUMENT_TYPE_NODE = 10;\nvar DOCUMENT_FRAGMENT_NODE = NodeType.DOCUMENT_FRAGMENT_NODE = 11;\nvar NOTATION_NODE = NodeType.NOTATION_NODE = 12;\n\n// ExceptionCode\nvar ExceptionCode = {}\nvar ExceptionMessage = {};\nvar INDEX_SIZE_ERR = ExceptionCode.INDEX_SIZE_ERR = ((ExceptionMessage[1]=\"Index size error\"),1);\nvar DOMSTRING_SIZE_ERR = ExceptionCode.DOMSTRING_SIZE_ERR = ((ExceptionMessage[2]=\"DOMString size error\"),2);\nvar HIERARCHY_REQUEST_ERR = ExceptionCode.HIERARCHY_REQUEST_ERR = ((ExceptionMessage[3]=\"Hierarchy request error\"),3);\nvar WRONG_DOCUMENT_ERR = ExceptionCode.WRONG_DOCUMENT_ERR = ((ExceptionMessage[4]=\"Wrong document\"),4);\nvar INVALID_CHARACTER_ERR = ExceptionCode.INVALID_CHARACTER_ERR = ((ExceptionMessage[5]=\"Invalid character\"),5);\nvar NO_DATA_ALLOWED_ERR = ExceptionCode.NO_DATA_ALLOWED_ERR = ((ExceptionMessage[6]=\"No data allowed\"),6);\nvar NO_MODIFICATION_ALLOWED_ERR = ExceptionCode.NO_MODIFICATION_ALLOWED_ERR = ((ExceptionMessage[7]=\"No modification allowed\"),7);\nvar NOT_FOUND_ERR = ExceptionCode.NOT_FOUND_ERR = ((ExceptionMessage[8]=\"Not found\"),8);\nvar NOT_SUPPORTED_ERR = ExceptionCode.NOT_SUPPORTED_ERR = ((ExceptionMessage[9]=\"Not supported\"),9);\nvar INUSE_ATTRIBUTE_ERR = ExceptionCode.INUSE_ATTRIBUTE_ERR = ((ExceptionMessage[10]=\"Attribute in use\"),10);\n//level2\nvar INVALID_STATE_ERR \t= ExceptionCode.INVALID_STATE_ERR \t= ((ExceptionMessage[11]=\"Invalid state\"),11);\nvar SYNTAX_ERR \t= ExceptionCode.SYNTAX_ERR \t= ((ExceptionMessage[12]=\"Syntax error\"),12);\nvar INVALID_MODIFICATION_ERR \t= ExceptionCode.INVALID_MODIFICATION_ERR \t= ((ExceptionMessage[13]=\"Invalid modification\"),13);\nvar NAMESPACE_ERR \t= ExceptionCode.NAMESPACE_ERR \t= ((ExceptionMessage[14]=\"Invalid namespace\"),14);\nvar INVALID_ACCESS_ERR \t= ExceptionCode.INVALID_ACCESS_ERR \t= ((ExceptionMessage[15]=\"Invalid access\"),15);\n\n/**\n * DOM Level 2\n * Object DOMException\n * @see http://www.w3.org/TR/2000/REC-DOM-Level-2-Core-20001113/ecma-script-binding.html\n * @see http://www.w3.org/TR/REC-DOM-Level-1/ecma-script-language-binding.html\n */\nfunction DOMException(code, message) {\n\tif(message instanceof Error){\n\t\tvar error = message;\n\t}else{\n\t\terror = this;\n\t\tError.call(this, ExceptionMessage[code]);\n\t\tthis.message = ExceptionMessage[code];\n\t\tif(Error.captureStackTrace) Error.captureStackTrace(this, DOMException);\n\t}\n\terror.code = code;\n\tif(message) this.message = this.message + \": \" + message;\n\treturn error;\n};\nDOMException.prototype = Error.prototype;\ncopy(ExceptionCode,DOMException)\n/**\n * @see http://www.w3.org/TR/2000/REC-DOM-Level-2-Core-20001113/core.html#ID-536297177\n * The NodeList interface provides the abstraction of an ordered collection of nodes, without defining or constraining how this collection is implemented. NodeList objects in the DOM are live.\n * The items in the NodeList are accessible via an integral index, starting from 0.\n */\nfunction NodeList() {\n};\nNodeList.prototype = {\n\t/**\n\t * The number of nodes in the list. The range of valid child node indices is 0 to length-1 inclusive.\n\t * @standard level1\n\t */\n\tlength:0, \n\t/**\n\t * Returns the indexth item in the collection. If index is greater than or equal to the number of nodes in the list, this returns null.\n\t * @standard level1\n\t * @param index unsigned long \n\t * Index into the collection.\n\t * @return Node\n\t * \tThe node at the indexth position in the NodeList, or null if that is not a valid index. \n\t */\n\titem: function(index) {\n\t\treturn this[index] || null;\n\t},\n\ttoString:function(isHTML,nodeFilter){\n\t\tfor(var buf = [], i = 0;i<this.length;i++){\n\t\t\tserializeToString(this[i],buf,isHTML,nodeFilter);\n\t\t}\n\t\treturn buf.join('');\n\t}\n};\nfunction LiveNodeList(node,refresh){\n\tthis._node = node;\n\tthis._refresh = refresh\n\t_updateLiveList(this);\n}\nfunction _updateLiveList(list){\n\tvar inc = list._node._inc || list._node.ownerDocument._inc;\n\tif(list._inc != inc){\n\t\tvar ls = list._refresh(list._node);\n\t\t//console.log(ls.length)\n\t\t__set__(list,'length',ls.length);\n\t\tcopy(ls,list);\n\t\tlist._inc = inc;\n\t}\n}\nLiveNodeList.prototype.item = function(i){\n\t_updateLiveList(this);\n\treturn this[i];\n}\n\n_extends(LiveNodeList,NodeList);\n/**\n * \n * Objects implementing the NamedNodeMap interface are used to represent collections of nodes that can be accessed by name. Note that NamedNodeMap does not inherit from NodeList; NamedNodeMaps are not maintained in any particular order. Objects contained in an object implementing NamedNodeMap may also be accessed by an ordinal index, but this is simply to allow convenient enumeration of the contents of a NamedNodeMap, and does not imply that the DOM specifies an order to these Nodes.\n * NamedNodeMap objects in the DOM are live.\n * used for attributes or DocumentType entities \n */\nfunction NamedNodeMap() {\n};\n\nfunction _findNodeIndex(list,node){\n\tvar i = list.length;\n\twhile(i--){\n\t\tif(list[i] === node){return i}\n\t}\n}\n\nfunction _addNamedNode(el,list,newAttr,oldAttr){\n\tif(oldAttr){\n\t\tlist[_findNodeIndex(list,oldAttr)] = newAttr;\n\t}else{\n\t\tlist[list.length++] = newAttr;\n\t}\n\tif(el){\n\t\tnewAttr.ownerElement = el;\n\t\tvar doc = el.ownerDocument;\n\t\tif(doc){\n\t\t\toldAttr && _onRemoveAttribute(doc,el,oldAttr);\n\t\t\t_onAddAttribute(doc,el,newAttr);\n\t\t}\n\t}\n}\nfunction _removeNamedNode(el,list,attr){\n\t//console.log('remove attr:'+attr)\n\tvar i = _findNodeIndex(list,attr);\n\tif(i>=0){\n\t\tvar lastIndex = list.length-1\n\t\twhile(i<lastIndex){\n\t\t\tlist[i] = list[++i]\n\t\t}\n\t\tlist.length = lastIndex;\n\t\tif(el){\n\t\t\tvar doc = el.ownerDocument;\n\t\t\tif(doc){\n\t\t\t\t_onRemoveAttribute(doc,el,attr);\n\t\t\t\tattr.ownerElement = null;\n\t\t\t}\n\t\t}\n\t}else{\n\t\tthrow DOMException(NOT_FOUND_ERR,new Error(el.tagName+'@'+attr))\n\t}\n}\nNamedNodeMap.prototype = {\n\tlength:0,\n\titem:NodeList.prototype.item,\n\tgetNamedItem: function(key) {\n//\t\tif(key.indexOf(':')>0 || key == 'xmlns'){\n//\t\t\treturn null;\n//\t\t}\n\t\t//console.log()\n\t\tvar i = this.length;\n\t\twhile(i--){\n\t\t\tvar attr = this[i];\n\t\t\t//console.log(attr.nodeName,key)\n\t\t\tif(attr.nodeName == key){\n\t\t\t\treturn attr;\n\t\t\t}\n\t\t}\n\t},\n\tsetNamedItem: function(attr) {\n\t\tvar el = attr.ownerElement;\n\t\tif(el && el!=this._ownerElement){\n\t\t\tthrow new DOMException(INUSE_ATTRIBUTE_ERR);\n\t\t}\n\t\tvar oldAttr = this.getNamedItem(attr.nodeName);\n\t\t_addNamedNode(this._ownerElement,this,attr,oldAttr);\n\t\treturn oldAttr;\n\t},\n\t/* returns Node */\n\tsetNamedItemNS: function(attr) {// raises: WRONG_DOCUMENT_ERR,NO_MODIFICATION_ALLOWED_ERR,INUSE_ATTRIBUTE_ERR\n\t\tvar el = attr.ownerElement, oldAttr;\n\t\tif(el && el!=this._ownerElement){\n\t\t\tthrow new DOMException(INUSE_ATTRIBUTE_ERR);\n\t\t}\n\t\toldAttr = this.getNamedItemNS(attr.namespaceURI,attr.localName);\n\t\t_addNamedNode(this._ownerElement,this,attr,oldAttr);\n\t\treturn oldAttr;\n\t},\n\n\t/* returns Node */\n\tremoveNamedItem: function(key) {\n\t\tvar attr = this.getNamedItem(key);\n\t\t_removeNamedNode(this._ownerElement,this,attr);\n\t\treturn attr;\n\t\t\n\t\t\n\t},// raises: NOT_FOUND_ERR,NO_MODIFICATION_ALLOWED_ERR\n\t\n\t//for level2\n\tremoveNamedItemNS:function(namespaceURI,localName){\n\t\tvar attr = this.getNamedItemNS(namespaceURI,localName);\n\t\t_removeNamedNode(this._ownerElement,this,attr);\n\t\treturn attr;\n\t},\n\tgetNamedItemNS: function(namespaceURI, localName) {\n\t\tvar i = this.length;\n\t\twhile(i--){\n\t\t\tvar node = this[i];\n\t\t\tif(node.localName == localName && node.namespaceURI == namespaceURI){\n\t\t\t\treturn node;\n\t\t\t}\n\t\t}\n\t\treturn null;\n\t}\n};\n/**\n * @see http://www.w3.org/TR/REC-DOM-Level-1/level-one-core.html#ID-102161490\n */\nfunction DOMImplementation(/* Object */ features) {\n\tthis._features = {};\n\tif (features) {\n\t\tfor (var feature in features) {\n\t\t\t this._features = features[feature];\n\t\t}\n\t}\n};\n\nDOMImplementation.prototype = {\n\thasFeature: function(/* string */ feature, /* string */ version) {\n\t\tvar versions = this._features[feature.toLowerCase()];\n\t\tif (versions && (!version || version in versions)) {\n\t\t\treturn true;\n\t\t} else {\n\t\t\treturn false;\n\t\t}\n\t},\n\t// Introduced in DOM Level 2:\n\tcreateDocument:function(namespaceURI, qualifiedName, doctype){// raises:INVALID_CHARACTER_ERR,NAMESPACE_ERR,WRONG_DOCUMENT_ERR\n\t\tvar doc = new Document();\n\t\tdoc.implementation = this;\n\t\tdoc.childNodes = new NodeList();\n\t\tdoc.doctype = doctype;\n\t\tif(doctype){\n\t\t\tdoc.appendChild(doctype);\n\t\t}\n\t\tif(qualifiedName){\n\t\t\tvar root = doc.createElementNS(namespaceURI,qualifiedName);\n\t\t\tdoc.appendChild(root);\n\t\t}\n\t\treturn doc;\n\t},\n\t// Introduced in DOM Level 2:\n\tcreateDocumentType:function(qualifiedName, publicId, systemId){// raises:INVALID_CHARACTER_ERR,NAMESPACE_ERR\n\t\tvar node = new DocumentType();\n\t\tnode.name = qualifiedName;\n\t\tnode.nodeName = qualifiedName;\n\t\tnode.publicId = publicId;\n\t\tnode.systemId = systemId;\n\t\t// Introduced in DOM Level 2:\n\t\t//readonly attribute DOMString internalSubset;\n\t\t\n\t\t//TODO:..\n\t\t// readonly attribute NamedNodeMap entities;\n\t\t// readonly attribute NamedNodeMap notations;\n\t\treturn node;\n\t}\n};\n\n\n/**\n * @see http://www.w3.org/TR/2000/REC-DOM-Level-2-Core-20001113/core.html#ID-1950641247\n */\n\nfunction Node() {\n};\n\nNode.prototype = {\n\tfirstChild : null,\n\tlastChild : null,\n\tpreviousSibling : null,\n\tnextSibling : null,\n\tattributes : null,\n\tparentNode : null,\n\tchildNodes : null,\n\townerDocument : null,\n\tnodeValue : null,\n\tnamespaceURI : null,\n\tprefix : null,\n\tlocalName : null,\n\t// Modified in DOM Level 2:\n\tinsertBefore:function(newChild, refChild){//raises \n\t\treturn _insertBefore(this,newChild,refChild);\n\t},\n\treplaceChild:function(newChild, oldChild){//raises \n\t\tthis.insertBefore(newChild,oldChild);\n\t\tif(oldChild){\n\t\t\tthis.removeChild(oldChild);\n\t\t}\n\t},\n\tremoveChild:function(oldChild){\n\t\treturn _removeChild(this,oldChild);\n\t},\n\tappendChild:function(newChild){\n\t\treturn this.insertBefore(newChild,null);\n\t},\n\thasChildNodes:function(){\n\t\treturn this.firstChild != null;\n\t},\n\tcloneNode:function(deep){\n\t\treturn cloneNode(this.ownerDocument||this,this,deep);\n\t},\n\t// Modified in DOM Level 2:\n\tnormalize:function(){\n\t\tvar child = this.firstChild;\n\t\twhile(child){\n\t\t\tvar next = child.nextSibling;\n\t\t\tif(next && next.nodeType == TEXT_NODE && child.nodeType == TEXT_NODE){\n\t\t\t\tthis.removeChild(next);\n\t\t\t\tchild.appendData(next.data);\n\t\t\t}else{\n\t\t\t\tchild.normalize();\n\t\t\t\tchild = next;\n\t\t\t}\n\t\t}\n\t},\n \t// Introduced in DOM Level 2:\n\tisSupported:function(feature, version){\n\t\treturn this.ownerDocument.implementation.hasFeature(feature,version);\n\t},\n // Introduced in DOM Level 2:\n hasAttributes:function(){\n \treturn this.attributes.length>0;\n },\n lookupPrefix:function(namespaceURI){\n \tvar el = this;\n \twhile(el){\n \t\tvar map = el._nsMap;\n \t\t//console.dir(map)\n \t\tif(map){\n \t\t\tfor(var n in map){\n \t\t\t\tif(map[n] == namespaceURI){\n \t\t\t\t\treturn n;\n \t\t\t\t}\n \t\t\t}\n \t\t}\n \t\tel = el.nodeType == ATTRIBUTE_NODE?el.ownerDocument : el.parentNode;\n \t}\n \treturn null;\n },\n // Introduced in DOM Level 3:\n lookupNamespaceURI:function(prefix){\n \tvar el = this;\n \twhile(el){\n \t\tvar map = el._nsMap;\n \t\t//console.dir(map)\n \t\tif(map){\n \t\t\tif(prefix in map){\n \t\t\t\treturn map[prefix] ;\n \t\t\t}\n \t\t}\n \t\tel = el.nodeType == ATTRIBUTE_NODE?el.ownerDocument : el.parentNode;\n \t}\n \treturn null;\n },\n // Introduced in DOM Level 3:\n isDefaultNamespace:function(namespaceURI){\n \tvar prefix = this.lookupPrefix(namespaceURI);\n \treturn prefix == null;\n }\n};\n\n\nfunction _xmlEncoder(c){\n\treturn c == '<' && '<' ||\n c == '>' && '>' ||\n c == '&' && '&' ||\n c == '\"' && '"' ||\n '&#'+c.charCodeAt()+';'\n}\n\n\ncopy(NodeType,Node);\ncopy(NodeType,Node.prototype);\n\n/**\n * @param callback return true for continue,false for break\n * @return boolean true: break visit;\n */\nfunction _visitNode(node,callback){\n\tif(callback(node)){\n\t\treturn true;\n\t}\n\tif(node = node.firstChild){\n\t\tdo{\n\t\t\tif(_visitNode(node,callback)){return true}\n }while(node=node.nextSibling)\n }\n}\n\n\n\nfunction Document(){\n}\nfunction _onAddAttribute(doc,el,newAttr){\n\tdoc && doc._inc++;\n\tvar ns = newAttr.namespaceURI ;\n\tif(ns == 'http://www.w3.org/2000/xmlns/'){\n\t\t//update namespace\n\t\tel._nsMap[newAttr.prefix?newAttr.localName:''] = newAttr.value\n\t}\n}\nfunction _onRemoveAttribute(doc,el,newAttr,remove){\n\tdoc && doc._inc++;\n\tvar ns = newAttr.namespaceURI ;\n\tif(ns == 'http://www.w3.org/2000/xmlns/'){\n\t\t//update namespace\n\t\tdelete el._nsMap[newAttr.prefix?newAttr.localName:'']\n\t}\n}\nfunction _onUpdateChild(doc,el,newChild){\n\tif(doc && doc._inc){\n\t\tdoc._inc++;\n\t\t//update childNodes\n\t\tvar cs = el.childNodes;\n\t\tif(newChild){\n\t\t\tcs[cs.length++] = newChild;\n\t\t}else{\n\t\t\t//console.log(1)\n\t\t\tvar child = el.firstChild;\n\t\t\tvar i = 0;\n\t\t\twhile(child){\n\t\t\t\tcs[i++] = child;\n\t\t\t\tchild =child.nextSibling;\n\t\t\t}\n\t\t\tcs.length = i;\n\t\t}\n\t}\n}\n\n/**\n * attributes;\n * children;\n * \n * writeable properties:\n * nodeValue,Attr:value,CharacterData:data\n * prefix\n */\nfunction _removeChild(parentNode,child){\n\tvar previous = child.previousSibling;\n\tvar next = child.nextSibling;\n\tif(previous){\n\t\tprevious.nextSibling = next;\n\t}else{\n\t\tparentNode.firstChild = next\n\t}\n\tif(next){\n\t\tnext.previousSibling = previous;\n\t}else{\n\t\tparentNode.lastChild = previous;\n\t}\n\t_onUpdateChild(parentNode.ownerDocument,parentNode);\n\treturn child;\n}\n/**\n * preformance key(refChild == null)\n */\nfunction _insertBefore(parentNode,newChild,nextChild){\n\tvar cp = newChild.parentNode;\n\tif(cp){\n\t\tcp.removeChild(newChild);//remove and update\n\t}\n\tif(newChild.nodeType === DOCUMENT_FRAGMENT_NODE){\n\t\tvar newFirst = newChild.firstChild;\n\t\tif (newFirst == null) {\n\t\t\treturn newChild;\n\t\t}\n\t\tvar newLast = newChild.lastChild;\n\t}else{\n\t\tnewFirst = newLast = newChild;\n\t}\n\tvar pre = nextChild ? nextChild.previousSibling : parentNode.lastChild;\n\n\tnewFirst.previousSibling = pre;\n\tnewLast.nextSibling = nextChild;\n\t\n\t\n\tif(pre){\n\t\tpre.nextSibling = newFirst;\n\t}else{\n\t\tparentNode.firstChild = newFirst;\n\t}\n\tif(nextChild == null){\n\t\tparentNode.lastChild = newLast;\n\t}else{\n\t\tnextChild.previousSibling = newLast;\n\t}\n\tdo{\n\t\tnewFirst.parentNode = parentNode;\n\t}while(newFirst !== newLast && (newFirst= newFirst.nextSibling))\n\t_onUpdateChild(parentNode.ownerDocument||parentNode,parentNode);\n\t//console.log(parentNode.lastChild.nextSibling == null)\n\tif (newChild.nodeType == DOCUMENT_FRAGMENT_NODE) {\n\t\tnewChild.firstChild = newChild.lastChild = null;\n\t}\n\treturn newChild;\n}\nfunction _appendSingleChild(parentNode,newChild){\n\tvar cp = newChild.parentNode;\n\tif(cp){\n\t\tvar pre = parentNode.lastChild;\n\t\tcp.removeChild(newChild);//remove and update\n\t\tvar pre = parentNode.lastChild;\n\t}\n\tvar pre = parentNode.lastChild;\n\tnewChild.parentNode = parentNode;\n\tnewChild.previousSibling = pre;\n\tnewChild.nextSibling = null;\n\tif(pre){\n\t\tpre.nextSibling = newChild;\n\t}else{\n\t\tparentNode.firstChild = newChild;\n\t}\n\tparentNode.lastChild = newChild;\n\t_onUpdateChild(parentNode.ownerDocument,parentNode,newChild);\n\treturn newChild;\n\t//console.log(\"__aa\",parentNode.lastChild.nextSibling == null)\n}\nDocument.prototype = {\n\t//implementation : null,\n\tnodeName : '#document',\n\tnodeType : DOCUMENT_NODE,\n\tdoctype : null,\n\tdocumentElement : null,\n\t_inc : 1,\n\t\n\tinsertBefore : function(newChild, refChild){//raises \n\t\tif(newChild.nodeType == DOCUMENT_FRAGMENT_NODE){\n\t\t\tvar child = newChild.firstChild;\n\t\t\twhile(child){\n\t\t\t\tvar next = child.nextSibling;\n\t\t\t\tthis.insertBefore(child,refChild);\n\t\t\t\tchild = next;\n\t\t\t}\n\t\t\treturn newChild;\n\t\t}\n\t\tif(this.documentElement == null && newChild.nodeType == ELEMENT_NODE){\n\t\t\tthis.documentElement = newChild;\n\t\t}\n\t\t\n\t\treturn _insertBefore(this,newChild,refChild),(newChild.ownerDocument = this),newChild;\n\t},\n\tremoveChild : function(oldChild){\n\t\tif(this.documentElement == oldChild){\n\t\t\tthis.documentElement = null;\n\t\t}\n\t\treturn _removeChild(this,oldChild);\n\t},\n\t// Introduced in DOM Level 2:\n\timportNode : function(importedNode,deep){\n\t\treturn importNode(this,importedNode,deep);\n\t},\n\t// Introduced in DOM Level 2:\n\tgetElementById :\tfunction(id){\n\t\tvar rtv = null;\n\t\t_visitNode(this.documentElement,function(node){\n\t\t\tif(node.nodeType == ELEMENT_NODE){\n\t\t\t\tif(node.getAttribute('id') == id){\n\t\t\t\t\trtv = node;\n\t\t\t\t\treturn true;\n\t\t\t\t}\n\t\t\t}\n\t\t})\n\t\treturn rtv;\n\t},\n\t\n\tgetElementsByClassName: function(className) {\n\t\tvar pattern = new RegExp(\"(^|\\\\s)\" + className + \"(\\\\s|$)\");\n\t\treturn new LiveNodeList(this, function(base) {\n\t\t\tvar ls = [];\n\t\t\t_visitNode(base.documentElement, function(node) {\n\t\t\t\tif(node !== base && node.nodeType == ELEMENT_NODE) {\n\t\t\t\t\tif(pattern.test(node.getAttribute('class'))) {\n\t\t\t\t\t\tls.push(node);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t});\n\t\t\treturn ls;\n\t\t});\n\t},\n\t\n\t//document factory method:\n\tcreateElement :\tfunction(tagName){\n\t\tvar node = new Element();\n\t\tnode.ownerDocument = this;\n\t\tnode.nodeName = tagName;\n\t\tnode.tagName = tagName;\n\t\tnode.childNodes = new NodeList();\n\t\tvar attrs\t= node.attributes = new NamedNodeMap();\n\t\tattrs._ownerElement = node;\n\t\treturn node;\n\t},\n\tcreateDocumentFragment :\tfunction(){\n\t\tvar node = new DocumentFragment();\n\t\tnode.ownerDocument = this;\n\t\tnode.childNodes = new NodeList();\n\t\treturn node;\n\t},\n\tcreateTextNode :\tfunction(data){\n\t\tvar node = new Text();\n\t\tnode.ownerDocument = this;\n\t\tnode.appendData(data)\n\t\treturn node;\n\t},\n\tcreateComment :\tfunction(data){\n\t\tvar node = new Comment();\n\t\tnode.ownerDocument = this;\n\t\tnode.appendData(data)\n\t\treturn node;\n\t},\n\tcreateCDATASection :\tfunction(data){\n\t\tvar node = new CDATASection();\n\t\tnode.ownerDocument = this;\n\t\tnode.appendData(data)\n\t\treturn node;\n\t},\n\tcreateProcessingInstruction :\tfunction(target,data){\n\t\tvar node = new ProcessingInstruction();\n\t\tnode.ownerDocument = this;\n\t\tnode.tagName = node.target = target;\n\t\tnode.nodeValue= node.data = data;\n\t\treturn node;\n\t},\n\tcreateAttribute :\tfunction(name){\n\t\tvar node = new Attr();\n\t\tnode.ownerDocument\t= this;\n\t\tnode.name = name;\n\t\tnode.nodeName\t= name;\n\t\tnode.localName = name;\n\t\tnode.specified = true;\n\t\treturn node;\n\t},\n\tcreateEntityReference :\tfunction(name){\n\t\tvar node = new EntityReference();\n\t\tnode.ownerDocument\t= this;\n\t\tnode.nodeName\t= name;\n\t\treturn node;\n\t},\n\t// Introduced in DOM Level 2:\n\tcreateElementNS :\tfunction(namespaceURI,qualifiedName){\n\t\tvar node = new Element();\n\t\tvar pl = qualifiedName.split(':');\n\t\tvar attrs\t= node.attributes = new NamedNodeMap();\n\t\tnode.childNodes = new NodeList();\n\t\tnode.ownerDocument = this;\n\t\tnode.nodeName = qualifiedName;\n\t\tnode.tagName = qualifiedName;\n\t\tnode.namespaceURI = namespaceURI;\n\t\tif(pl.length == 2){\n\t\t\tnode.prefix = pl[0];\n\t\t\tnode.localName = pl[1];\n\t\t}else{\n\t\t\t//el.prefix = null;\n\t\t\tnode.localName = qualifiedName;\n\t\t}\n\t\tattrs._ownerElement = node;\n\t\treturn node;\n\t},\n\t// Introduced in DOM Level 2:\n\tcreateAttributeNS :\tfunction(namespaceURI,qualifiedName){\n\t\tvar node = new Attr();\n\t\tvar pl = qualifiedName.split(':');\n\t\tnode.ownerDocument = this;\n\t\tnode.nodeName = qualifiedName;\n\t\tnode.name = qualifiedName;\n\t\tnode.namespaceURI = namespaceURI;\n\t\tnode.specified = true;\n\t\tif(pl.length == 2){\n\t\t\tnode.prefix = pl[0];\n\t\t\tnode.localName = pl[1];\n\t\t}else{\n\t\t\t//el.prefix = null;\n\t\t\tnode.localName = qualifiedName;\n\t\t}\n\t\treturn node;\n\t}\n};\n_extends(Document,Node);\n\n\nfunction Element() {\n\tthis._nsMap = {};\n};\nElement.prototype = {\n\tnodeType : ELEMENT_NODE,\n\thasAttribute : function(name){\n\t\treturn this.getAttributeNode(name)!=null;\n\t},\n\tgetAttribute : function(name){\n\t\tvar attr = this.getAttributeNode(name);\n\t\treturn attr && attr.value || '';\n\t},\n\tgetAttributeNode : function(name){\n\t\treturn this.attributes.getNamedItem(name);\n\t},\n\tsetAttribute : function(name, value){\n\t\tvar attr = this.ownerDocument.createAttribute(name);\n\t\tattr.value = attr.nodeValue = \"\" + value;\n\t\tthis.setAttributeNode(attr)\n\t},\n\tremoveAttribute : function(name){\n\t\tvar attr = this.getAttributeNode(name)\n\t\tattr && this.removeAttributeNode(attr);\n\t},\n\t\n\t//four real opeartion method\n\tappendChild:function(newChild){\n\t\tif(newChild.nodeType === DOCUMENT_FRAGMENT_NODE){\n\t\t\treturn this.insertBefore(newChild,null);\n\t\t}else{\n\t\t\treturn _appendSingleChild(this,newChild);\n\t\t}\n\t},\n\tsetAttributeNode : function(newAttr){\n\t\treturn this.attributes.setNamedItem(newAttr);\n\t},\n\tsetAttributeNodeNS : function(newAttr){\n\t\treturn this.attributes.setNamedItemNS(newAttr);\n\t},\n\tremoveAttributeNode : function(oldAttr){\n\t\t//console.log(this == oldAttr.ownerElement)\n\t\treturn this.attributes.removeNamedItem(oldAttr.nodeName);\n\t},\n\t//get real attribute name,and remove it by removeAttributeNode\n\tremoveAttributeNS : function(namespaceURI, localName){\n\t\tvar old = this.getAttributeNodeNS(namespaceURI, localName);\n\t\told && this.removeAttributeNode(old);\n\t},\n\t\n\thasAttributeNS : function(namespaceURI, localName){\n\t\treturn this.getAttributeNodeNS(namespaceURI, localName)!=null;\n\t},\n\tgetAttributeNS : function(namespaceURI, localName){\n\t\tvar attr = this.getAttributeNodeNS(namespaceURI, localName);\n\t\treturn attr && attr.value || '';\n\t},\n\tsetAttributeNS : function(namespaceURI, qualifiedName, value){\n\t\tvar attr = this.ownerDocument.createAttributeNS(namespaceURI, qualifiedName);\n\t\tattr.value = attr.nodeValue = \"\" + value;\n\t\tthis.setAttributeNode(attr)\n\t},\n\tgetAttributeNodeNS : function(namespaceURI, localName){\n\t\treturn this.attributes.getNamedItemNS(namespaceURI, localName);\n\t},\n\t\n\tgetElementsByTagName : function(tagName){\n\t\treturn new LiveNodeList(this,function(base){\n\t\t\tvar ls = [];\n\t\t\t_visitNode(base,function(node){\n\t\t\t\tif(node !== base && node.nodeType == ELEMENT_NODE && (tagName === '*' || node.tagName == tagName)){\n\t\t\t\t\tls.push(node);\n\t\t\t\t}\n\t\t\t});\n\t\t\treturn ls;\n\t\t});\n\t},\n\tgetElementsByTagNameNS : function(namespaceURI, localName){\n\t\treturn new LiveNodeList(this,function(base){\n\t\t\tvar ls = [];\n\t\t\t_visitNode(base,function(node){\n\t\t\t\tif(node !== base && node.nodeType === ELEMENT_NODE && (namespaceURI === '*' || node.namespaceURI === namespaceURI) && (localName === '*' || node.localName == localName)){\n\t\t\t\t\tls.push(node);\n\t\t\t\t}\n\t\t\t});\n\t\t\treturn ls;\n\t\t\t\n\t\t});\n\t}\n};\nDocument.prototype.getElementsByTagName = Element.prototype.getElementsByTagName;\nDocument.prototype.getElementsByTagNameNS = Element.prototype.getElementsByTagNameNS;\n\n\n_extends(Element,Node);\nfunction Attr() {\n};\nAttr.prototype.nodeType = ATTRIBUTE_NODE;\n_extends(Attr,Node);\n\n\nfunction CharacterData() {\n};\nCharacterData.prototype = {\n\tdata : '',\n\tsubstringData : function(offset, count) {\n\t\treturn this.data.substring(offset, offset+count);\n\t},\n\tappendData: function(text) {\n\t\ttext = this.data+text;\n\t\tthis.nodeValue = this.data = text;\n\t\tthis.length = text.length;\n\t},\n\tinsertData: function(offset,text) {\n\t\tthis.replaceData(offset,0,text);\n\t\n\t},\n\tappendChild:function(newChild){\n\t\tthrow new Error(ExceptionMessage[HIERARCHY_REQUEST_ERR])\n\t},\n\tdeleteData: function(offset, count) {\n\t\tthis.replaceData(offset,count,\"\");\n\t},\n\treplaceData: function(offset, count, text) {\n\t\tvar start = this.data.substring(0,offset);\n\t\tvar end = this.data.substring(offset+count);\n\t\ttext = start + text + end;\n\t\tthis.nodeValue = this.data = text;\n\t\tthis.length = text.length;\n\t}\n}\n_extends(CharacterData,Node);\nfunction Text() {\n};\nText.prototype = {\n\tnodeName : \"#text\",\n\tnodeType : TEXT_NODE,\n\tsplitText : function(offset) {\n\t\tvar text = this.data;\n\t\tvar newText = text.substring(offset);\n\t\ttext = text.substring(0, offset);\n\t\tthis.data = this.nodeValue = text;\n\t\tthis.length = text.length;\n\t\tvar newNode = this.ownerDocument.createTextNode(newText);\n\t\tif(this.parentNode){\n\t\t\tthis.parentNode.insertBefore(newNode, this.nextSibling);\n\t\t}\n\t\treturn newNode;\n\t}\n}\n_extends(Text,CharacterData);\nfunction Comment() {\n};\nComment.prototype = {\n\tnodeName : \"#comment\",\n\tnodeType : COMMENT_NODE\n}\n_extends(Comment,CharacterData);\n\nfunction CDATASection() {\n};\nCDATASection.prototype = {\n\tnodeName : \"#cdata-section\",\n\tnodeType : CDATA_SECTION_NODE\n}\n_extends(CDATASection,CharacterData);\n\n\nfunction DocumentType() {\n};\nDocumentType.prototype.nodeType = DOCUMENT_TYPE_NODE;\n_extends(DocumentType,Node);\n\nfunction Notation() {\n};\nNotation.prototype.nodeType = NOTATION_NODE;\n_extends(Notation,Node);\n\nfunction Entity() {\n};\nEntity.prototype.nodeType = ENTITY_NODE;\n_extends(Entity,Node);\n\nfunction EntityReference() {\n};\nEntityReference.prototype.nodeType = ENTITY_REFERENCE_NODE;\n_extends(EntityReference,Node);\n\nfunction DocumentFragment() {\n};\nDocumentFragment.prototype.nodeName =\t\"#document-fragment\";\nDocumentFragment.prototype.nodeType =\tDOCUMENT_FRAGMENT_NODE;\n_extends(DocumentFragment,Node);\n\n\nfunction ProcessingInstruction() {\n}\nProcessingInstruction.prototype.nodeType = PROCESSING_INSTRUCTION_NODE;\n_extends(ProcessingInstruction,Node);\nfunction XMLSerializer(){}\nXMLSerializer.prototype.serializeToString = function(node,isHtml,nodeFilter){\n\treturn nodeSerializeToString.call(node,isHtml,nodeFilter);\n}\nNode.prototype.toString = nodeSerializeToString;\nfunction nodeSerializeToString(isHtml,nodeFilter){\n\tvar buf = [];\n\tvar refNode = this.nodeType == 9 && this.documentElement || this;\n\tvar prefix = refNode.prefix;\n\tvar uri = refNode.namespaceURI;\n\t\n\tif(uri && prefix == null){\n\t\t//console.log(prefix)\n\t\tvar prefix = refNode.lookupPrefix(uri);\n\t\tif(prefix == null){\n\t\t\t//isHTML = true;\n\t\t\tvar visibleNamespaces=[\n\t\t\t{namespace:uri,prefix:null}\n\t\t\t//{namespace:uri,prefix:''}\n\t\t\t]\n\t\t}\n\t}\n\tserializeToString(this,buf,isHtml,nodeFilter,visibleNamespaces);\n\t//console.log('###',this.nodeType,uri,prefix,buf.join(''))\n\treturn buf.join('');\n}\nfunction needNamespaceDefine(node,isHTML, visibleNamespaces) {\n\tvar prefix = node.prefix||'';\n\tvar uri = node.namespaceURI;\n\tif (!prefix && !uri){\n\t\treturn false;\n\t}\n\tif (prefix === \"xml\" && uri === \"http://www.w3.org/XML/1998/namespace\" \n\t\t|| uri == 'http://www.w3.org/2000/xmlns/'){\n\t\treturn false;\n\t}\n\t\n\tvar i = visibleNamespaces.length \n\t//console.log('@@@@',node.tagName,prefix,uri,visibleNamespaces)\n\twhile (i--) {\n\t\tvar ns = visibleNamespaces[i];\n\t\t// get namespace prefix\n\t\t//console.log(node.nodeType,node.tagName,ns.prefix,prefix)\n\t\tif (ns.prefix == prefix){\n\t\t\treturn ns.namespace != uri;\n\t\t}\n\t}\n\t//console.log(isHTML,uri,prefix=='')\n\t//if(isHTML && prefix ==null && uri == 'http://www.w3.org/1999/xhtml'){\n\t//\treturn false;\n\t//}\n\t//node.flag = '11111'\n\t//console.error(3,true,node.flag,node.prefix,node.namespaceURI)\n\treturn true;\n}\nfunction serializeToString(node,buf,isHTML,nodeFilter,visibleNamespaces){\n\tif(nodeFilter){\n\t\tnode = nodeFilter(node);\n\t\tif(node){\n\t\t\tif(typeof node == 'string'){\n\t\t\t\tbuf.push(node);\n\t\t\t\treturn;\n\t\t\t}\n\t\t}else{\n\t\t\treturn;\n\t\t}\n\t\t//buf.sort.apply(attrs, attributeSorter);\n\t}\n\tswitch(node.nodeType){\n\tcase ELEMENT_NODE:\n\t\tif (!visibleNamespaces) visibleNamespaces = [];\n\t\tvar startVisibleNamespaces = visibleNamespaces.length;\n\t\tvar attrs = node.attributes;\n\t\tvar len = attrs.length;\n\t\tvar child = node.firstChild;\n\t\tvar nodeName = node.tagName;\n\t\t\n\t\tisHTML = (htmlns === node.namespaceURI) ||isHTML \n\t\tbuf.push('<',nodeName);\n\t\t\n\t\t\n\t\t\n\t\tfor(var i=0;i<len;i++){\n\t\t\t// add namespaces for attributes\n\t\t\tvar attr = attrs.item(i);\n\t\t\tif (attr.prefix == 'xmlns') {\n\t\t\t\tvisibleNamespaces.push({ prefix: attr.localName, namespace: attr.value });\n\t\t\t}else if(attr.nodeName == 'xmlns'){\n\t\t\t\tvisibleNamespaces.push({ prefix: '', namespace: attr.value });\n\t\t\t}\n\t\t}\n\t\tfor(var i=0;i<len;i++){\n\t\t\tvar attr = attrs.item(i);\n\t\t\tif (needNamespaceDefine(attr,isHTML, visibleNamespaces)) {\n\t\t\t\tvar prefix = attr.prefix||'';\n\t\t\t\tvar uri = attr.namespaceURI;\n\t\t\t\tvar ns = prefix ? ' xmlns:' + prefix : \" xmlns\";\n\t\t\t\tbuf.push(ns, '=\"' , uri , '\"');\n\t\t\t\tvisibleNamespaces.push({ prefix: prefix, namespace:uri });\n\t\t\t}\n\t\t\tserializeToString(attr,buf,isHTML,nodeFilter,visibleNamespaces);\n\t\t}\n\t\t// add namespace for current node\t\t\n\t\tif (needNamespaceDefine(node,isHTML, visibleNamespaces)) {\n\t\t\tvar prefix = node.prefix||'';\n\t\t\tvar uri = node.namespaceURI;\n\t\t\tif (uri) {\n\t\t\t\t// Avoid empty namespace value like xmlns:ds=\"\"\n\t\t\t\t// Empty namespace URL will we produce an invalid XML document\n\t\t\t\tvar ns = prefix ? ' xmlns:' + prefix : \" xmlns\";\n\t\t\t\tbuf.push(ns, '=\"' , uri , '\"');\n\t\t\t\tvisibleNamespaces.push({ prefix: prefix, namespace:uri });\n\t\t\t}\n\t\t}\n\t\t\n\t\tif(child || isHTML && !/^(?:meta|link|img|br|hr|input)$/i.test(nodeName)){\n\t\t\tbuf.push('>');\n\t\t\t//if is cdata child node\n\t\t\tif(isHTML && /^script$/i.test(nodeName)){\n\t\t\t\twhile(child){\n\t\t\t\t\tif(child.data){\n\t\t\t\t\t\tbuf.push(child.data);\n\t\t\t\t\t}else{\n\t\t\t\t\t\tserializeToString(child,buf,isHTML,nodeFilter,visibleNamespaces);\n\t\t\t\t\t}\n\t\t\t\t\tchild = child.nextSibling;\n\t\t\t\t}\n\t\t\t}else\n\t\t\t{\n\t\t\t\twhile(child){\n\t\t\t\t\tserializeToString(child,buf,isHTML,nodeFilter,visibleNamespaces);\n\t\t\t\t\tchild = child.nextSibling;\n\t\t\t\t}\n\t\t\t}\n\t\t\tbuf.push('</',nodeName,'>');\n\t\t}else{\n\t\t\tbuf.push('/>');\n\t\t}\n\t\t// remove added visible namespaces\n\t\t//visibleNamespaces.length = startVisibleNamespaces;\n\t\treturn;\n\tcase DOCUMENT_NODE:\n\tcase DOCUMENT_FRAGMENT_NODE:\n\t\tvar child = node.firstChild;\n\t\twhile(child){\n\t\t\tserializeToString(child,buf,isHTML,nodeFilter,visibleNamespaces);\n\t\t\tchild = child.nextSibling;\n\t\t}\n\t\treturn;\n\tcase ATTRIBUTE_NODE:\n\t\t/**\n\t\t * Well-formedness constraint: No < in Attribute Values\n\t\t * The replacement text of any entity referred to directly or indirectly in an attribute value must not contain a <.\n\t\t * @see https://www.w3.org/TR/xml/#CleanAttrVals\n\t\t * @see https://www.w3.org/TR/xml/#NT-AttValue\n\t\t */\n\t\treturn buf.push(' ', node.name, '=\"', node.value.replace(/[<&\"]/g,_xmlEncoder), '\"');\n\tcase TEXT_NODE:\n\t\t/**\n\t\t * The ampersand character (&) and the left angle bracket (<) must not appear in their literal form,\n\t\t * except when used as markup delimiters, or within a comment, a processing instruction, or a CDATA section.\n\t\t * If they are needed elsewhere, they must be escaped using either numeric character references or the strings\n\t\t * `&` and `<` respectively.\n\t\t * The right angle bracket (>) may be represented using the string \" > \", and must, for compatibility,\n\t\t * be escaped using either `>` or a character reference when it appears in the string `]]>` in content,\n\t\t * when that string is not marking the end of a CDATA section.\n\t\t *\n\t\t * In the content of elements, character data is any string of characters\n\t\t * which does not contain the start-delimiter of any markup\n\t\t * and does not include the CDATA-section-close delimiter, `]]>`.\n\t\t *\n\t\t * @see https://www.w3.org/TR/xml/#NT-CharData\n\t\t */\n\t\treturn buf.push(node.data\n\t\t\t.replace(/[<&]/g,_xmlEncoder)\n\t\t\t.replace(/]]>/g, ']]>')\n\t\t);\n\tcase CDATA_SECTION_NODE:\n\t\treturn buf.push( '<![CDATA[',node.data,']]>');\n\tcase COMMENT_NODE:\n\t\treturn buf.push( \"<!--\",node.data,\"-->\");\n\tcase DOCUMENT_TYPE_NODE:\n\t\tvar pubid = node.publicId;\n\t\tvar sysid = node.systemId;\n\t\tbuf.push('<!DOCTYPE ',node.name);\n\t\tif(pubid){\n\t\t\tbuf.push(' PUBLIC ', pubid);\n\t\t\tif (sysid && sysid!='.') {\n\t\t\t\tbuf.push(' ', sysid);\n\t\t\t}\n\t\t\tbuf.push('>');\n\t\t}else if(sysid && sysid!='.'){\n\t\t\tbuf.push(' SYSTEM ', sysid, '>');\n\t\t}else{\n\t\t\tvar sub = node.internalSubset;\n\t\t\tif(sub){\n\t\t\t\tbuf.push(\" [\",sub,\"]\");\n\t\t\t}\n\t\t\tbuf.push(\">\");\n\t\t}\n\t\treturn;\n\tcase PROCESSING_INSTRUCTION_NODE:\n\t\treturn buf.push( \"<?\",node.target,\" \",node.data,\"?>\");\n\tcase ENTITY_REFERENCE_NODE:\n\t\treturn buf.push( '&',node.nodeName,';');\n\t//case ENTITY_NODE:\n\t//case NOTATION_NODE:\n\tdefault:\n\t\tbuf.push('??',node.nodeName);\n\t}\n}\nfunction importNode(doc,node,deep){\n\tvar node2;\n\tswitch (node.nodeType) {\n\tcase ELEMENT_NODE:\n\t\tnode2 = node.cloneNode(false);\n\t\tnode2.ownerDocument = doc;\n\t\t//var attrs = node2.attributes;\n\t\t//var len = attrs.length;\n\t\t//for(var i=0;i<len;i++){\n\t\t\t//node2.setAttributeNodeNS(importNode(doc,attrs.item(i),deep));\n\t\t//}\n\tcase DOCUMENT_FRAGMENT_NODE:\n\t\tbreak;\n\tcase ATTRIBUTE_NODE:\n\t\tdeep = true;\n\t\tbreak;\n\t//case ENTITY_REFERENCE_NODE:\n\t//case PROCESSING_INSTRUCTION_NODE:\n\t////case TEXT_NODE:\n\t//case CDATA_SECTION_NODE:\n\t//case COMMENT_NODE:\n\t//\tdeep = false;\n\t//\tbreak;\n\t//case DOCUMENT_NODE:\n\t//case DOCUMENT_TYPE_NODE:\n\t//cannot be imported.\n\t//case ENTITY_NODE:\n\t//case NOTATION_NODE:\n\t//can not hit in level3\n\t//default:throw e;\n\t}\n\tif(!node2){\n\t\tnode2 = node.cloneNode(false);//false\n\t}\n\tnode2.ownerDocument = doc;\n\tnode2.parentNode = null;\n\tif(deep){\n\t\tvar child = node.firstChild;\n\t\twhile(child){\n\t\t\tnode2.appendChild(importNode(doc,child,deep));\n\t\t\tchild = child.nextSibling;\n\t\t}\n\t}\n\treturn node2;\n}\n//\n//var _relationMap = {firstChild:1,lastChild:1,previousSibling:1,nextSibling:1,\n//\t\t\t\t\tattributes:1,childNodes:1,parentNode:1,documentElement:1,doctype,};\nfunction cloneNode(doc,node,deep){\n\tvar node2 = new node.constructor();\n\tfor(var n in node){\n\t\tvar v = node[n];\n\t\tif(typeof v != 'object' ){\n\t\t\tif(v != node2[n]){\n\t\t\t\tnode2[n] = v;\n\t\t\t}\n\t\t}\n\t}\n\tif(node.childNodes){\n\t\tnode2.childNodes = new NodeList();\n\t}\n\tnode2.ownerDocument = doc;\n\tswitch (node2.nodeType) {\n\tcase ELEMENT_NODE:\n\t\tvar attrs\t= node.attributes;\n\t\tvar attrs2\t= node2.attributes = new NamedNodeMap();\n\t\tvar len = attrs.length\n\t\tattrs2._ownerElement = node2;\n\t\tfor(var i=0;i<len;i++){\n\t\t\tnode2.setAttributeNode(cloneNode(doc,attrs.item(i),true));\n\t\t}\n\t\tbreak;;\n\tcase ATTRIBUTE_NODE:\n\t\tdeep = true;\n\t}\n\tif(deep){\n\t\tvar child = node.firstChild;\n\t\twhile(child){\n\t\t\tnode2.appendChild(cloneNode(doc,child,deep));\n\t\t\tchild = child.nextSibling;\n\t\t}\n\t}\n\treturn node2;\n}\n\nfunction __set__(object,key,value){\n\tobject[key] = value\n}\n//do dynamic\ntry{\n\tif(Object.defineProperty){\n\t\tObject.defineProperty(LiveNodeList.prototype,'length',{\n\t\t\tget:function(){\n\t\t\t\t_updateLiveList(this);\n\t\t\t\treturn this.$$length;\n\t\t\t}\n\t\t});\n\t\tObject.defineProperty(Node.prototype,'textContent',{\n\t\t\tget:function(){\n\t\t\t\treturn getTextContent(this);\n\t\t\t},\n\t\t\tset:function(data){\n\t\t\t\tswitch(this.nodeType){\n\t\t\t\tcase ELEMENT_NODE:\n\t\t\t\tcase DOCUMENT_FRAGMENT_NODE:\n\t\t\t\t\twhile(this.firstChild){\n\t\t\t\t\t\tthis.removeChild(this.firstChild);\n\t\t\t\t\t}\n\t\t\t\t\tif(data || String(data)){\n\t\t\t\t\t\tthis.appendChild(this.ownerDocument.createTextNode(data));\n\t\t\t\t\t}\n\t\t\t\t\tbreak;\n\t\t\t\tdefault:\n\t\t\t\t\t//TODO:\n\t\t\t\t\tthis.data = data;\n\t\t\t\t\tthis.value = data;\n\t\t\t\t\tthis.nodeValue = data;\n\t\t\t\t}\n\t\t\t}\n\t\t})\n\t\t\n\t\tfunction getTextContent(node){\n\t\t\tswitch(node.nodeType){\n\t\t\tcase ELEMENT_NODE:\n\t\t\tcase DOCUMENT_FRAGMENT_NODE:\n\t\t\t\tvar buf = [];\n\t\t\t\tnode = node.firstChild;\n\t\t\t\twhile(node){\n\t\t\t\t\tif(node.nodeType!==7 && node.nodeType !==8){\n\t\t\t\t\t\tbuf.push(getTextContent(node));\n\t\t\t\t\t}\n\t\t\t\t\tnode = node.nextSibling;\n\t\t\t\t}\n\t\t\t\treturn buf.join('');\n\t\t\tdefault:\n\t\t\t\treturn node.nodeValue;\n\t\t\t}\n\t\t}\n\t\t__set__ = function(object,key,value){\n\t\t\t//console.log(value)\n\t\t\tobject['$$'+key] = value\n\t\t}\n\t}\n}catch(e){//ie8\n}\n\n//if(typeof require == 'function'){\n\texports.Node = Node;\n\texports.DOMException = DOMException;\n\texports.DOMImplementation = DOMImplementation;\n\texports.XMLSerializer = XMLSerializer;\n//}\n","function DOMParser(options){\n\tthis.options = options ||{locator:{}};\n}\n\nDOMParser.prototype.parseFromString = function(source,mimeType){\n\tvar options = this.options;\n\tvar sax = new XMLReader();\n\tvar domBuilder = options.domBuilder || new DOMHandler();//contentHandler and LexicalHandler\n\tvar errorHandler = options.errorHandler;\n\tvar locator = options.locator;\n\tvar defaultNSMap = options.xmlns||{};\n\tvar isHTML = /\\/x?html?$/.test(mimeType);//mimeType.toLowerCase().indexOf('html') > -1;\n \tvar entityMap = isHTML?htmlEntity.entityMap:{'lt':'<','gt':'>','amp':'&','quot':'\"','apos':\"'\"};\n\tif(locator){\n\t\tdomBuilder.setDocumentLocator(locator)\n\t}\n\n\tsax.errorHandler = buildErrorHandler(errorHandler,domBuilder,locator);\n\tsax.domBuilder = options.domBuilder || domBuilder;\n\tif(isHTML){\n\t\tdefaultNSMap['']= 'http://www.w3.org/1999/xhtml';\n\t}\n\tdefaultNSMap.xml = defaultNSMap.xml || 'http://www.w3.org/XML/1998/namespace';\n\tif(source && typeof source === 'string'){\n\t\tsax.parse(source,defaultNSMap,entityMap);\n\t}else{\n\t\tsax.errorHandler.error(\"invalid doc source\");\n\t}\n\treturn domBuilder.doc;\n}\nfunction buildErrorHandler(errorImpl,domBuilder,locator){\n\tif(!errorImpl){\n\t\tif(domBuilder instanceof DOMHandler){\n\t\t\treturn domBuilder;\n\t\t}\n\t\terrorImpl = domBuilder ;\n\t}\n\tvar errorHandler = {}\n\tvar isCallback = errorImpl instanceof Function;\n\tlocator = locator||{}\n\tfunction build(key){\n\t\tvar fn = errorImpl[key];\n\t\tif(!fn && isCallback){\n\t\t\tfn = errorImpl.length == 2?function(msg){errorImpl(key,msg)}:errorImpl;\n\t\t}\n\t\terrorHandler[key] = fn && function(msg){\n\t\t\tfn('[xmldom '+key+']\\t'+msg+_locator(locator));\n\t\t}||function(){};\n\t}\n\tbuild('warning');\n\tbuild('error');\n\tbuild('fatalError');\n\treturn errorHandler;\n}\n\n//console.log('#\\n\\n\\n\\n\\n\\n\\n####')\n/**\n * +ContentHandler+ErrorHandler\n * +LexicalHandler+EntityResolver2\n * -DeclHandler-DTDHandler\n *\n * DefaultHandler:EntityResolver, DTDHandler, ContentHandler, ErrorHandler\n * DefaultHandler2:DefaultHandler,LexicalHandler, DeclHandler, EntityResolver2\n * @link http://www.saxproject.org/apidoc/org/xml/sax/helpers/DefaultHandler.html\n */\nfunction DOMHandler() {\n this.cdata = false;\n}\nfunction position(locator,node){\n\tnode.lineNumber = locator.lineNumber;\n\tnode.columnNumber = locator.columnNumber;\n}\n/**\n * @see org.xml.sax.ContentHandler#startDocument\n * @link http://www.saxproject.org/apidoc/org/xml/sax/ContentHandler.html\n */\nDOMHandler.prototype = {\n\tstartDocument : function() {\n \tthis.doc = new DOMImplementation().createDocument(null, null, null);\n \tif (this.locator) {\n \tthis.doc.documentURI = this.locator.systemId;\n \t}\n\t},\n\tstartElement:function(namespaceURI, localName, qName, attrs) {\n\t\tvar doc = this.doc;\n\t var el = doc.createElementNS(namespaceURI, qName||localName);\n\t var len = attrs.length;\n\t appendElement(this, el);\n\t this.currentElement = el;\n\n\t\tthis.locator && position(this.locator,el)\n\t for (var i = 0 ; i < len; i++) {\n\t var namespaceURI = attrs.getURI(i);\n\t var value = attrs.getValue(i);\n\t var qName = attrs.getQName(i);\n\t\t\tvar attr = doc.createAttributeNS(namespaceURI, qName);\n\t\t\tthis.locator &&position(attrs.getLocator(i),attr);\n\t\t\tattr.value = attr.nodeValue = value;\n\t\t\tel.setAttributeNode(attr)\n\t }\n\t},\n\tendElement:function(namespaceURI, localName, qName) {\n\t\tvar current = this.currentElement\n\t\tvar tagName = current.tagName;\n\t\tthis.currentElement = current.parentNode;\n\t},\n\tstartPrefixMapping:function(prefix, uri) {\n\t},\n\tendPrefixMapping:function(prefix) {\n\t},\n\tprocessingInstruction:function(target, data) {\n\t var ins = this.doc.createProcessingInstruction(target, data);\n\t this.locator && position(this.locator,ins)\n\t appendElement(this, ins);\n\t},\n\tignorableWhitespace:function(ch, start, length) {\n\t},\n\tcharacters:function(chars, start, length) {\n\t\tchars = _toString.apply(this,arguments)\n\t\t//console.log(chars)\n\t\tif(chars){\n\t\t\tif (this.cdata) {\n\t\t\t\tvar charNode = this.doc.createCDATASection(chars);\n\t\t\t} else {\n\t\t\t\tvar charNode = this.doc.createTextNode(chars);\n\t\t\t}\n\t\t\tif(this.currentElement){\n\t\t\t\tthis.currentElement.appendChild(charNode);\n\t\t\t}else if(/^\\s*$/.test(chars)){\n\t\t\t\tthis.doc.appendChild(charNode);\n\t\t\t\t//process xml\n\t\t\t}\n\t\t\tthis.locator && position(this.locator,charNode)\n\t\t}\n\t},\n\tskippedEntity:function(name) {\n\t},\n\tendDocument:function() {\n\t\tthis.doc.normalize();\n\t},\n\tsetDocumentLocator:function (locator) {\n\t if(this.locator = locator){// && !('lineNumber' in locator)){\n\t \tlocator.lineNumber = 0;\n\t }\n\t},\n\t//LexicalHandler\n\tcomment:function(chars, start, length) {\n\t\tchars = _toString.apply(this,arguments)\n\t var comm = this.doc.createComment(chars);\n\t this.locator && position(this.locator,comm)\n\t appendElement(this, comm);\n\t},\n\n\tstartCDATA:function() {\n\t //used in characters() methods\n\t this.cdata = true;\n\t},\n\tendCDATA:function() {\n\t this.cdata = false;\n\t},\n\n\tstartDTD:function(name, publicId, systemId) {\n\t\tvar impl = this.doc.implementation;\n\t if (impl && impl.createDocumentType) {\n\t var dt = impl.createDocumentType(name, publicId, systemId);\n\t this.locator && position(this.locator,dt)\n\t appendElement(this, dt);\n\t }\n\t},\n\t/**\n\t * @see org.xml.sax.ErrorHandler\n\t * @link http://www.saxproject.org/apidoc/org/xml/sax/ErrorHandler.html\n\t */\n\twarning:function(error) {\n\t\tconsole.warn('[xmldom warning]\\t'+error,_locator(this.locator));\n\t},\n\terror:function(error) {\n\t\tconsole.error('[xmldom error]\\t'+error,_locator(this.locator));\n\t},\n\tfatalError:function(error) {\n\t\tthrow new ParseError(error, this.locator);\n\t}\n}\nfunction _locator(l){\n\tif(l){\n\t\treturn '\\n@'+(l.systemId ||'')+'#[line:'+l.lineNumber+',col:'+l.columnNumber+']'\n\t}\n}\nfunction _toString(chars,start,length){\n\tif(typeof chars == 'string'){\n\t\treturn chars.substr(start,length)\n\t}else{//java sax connect width xmldom on rhino(what about: \"? && !(chars instanceof String)\")\n\t\tif(chars.length >= start+length || start){\n\t\t\treturn new java.lang.String(chars,start,length)+'';\n\t\t}\n\t\treturn chars;\n\t}\n}\n\n/*\n * @link http://www.saxproject.org/apidoc/org/xml/sax/ext/LexicalHandler.html\n * used method of org.xml.sax.ext.LexicalHandler:\n * #comment(chars, start, length)\n * #startCDATA()\n * #endCDATA()\n * #startDTD(name, publicId, systemId)\n *\n *\n * IGNORED method of org.xml.sax.ext.LexicalHandler:\n * #endDTD()\n * #startEntity(name)\n * #endEntity(name)\n *\n *\n * @link http://www.saxproject.org/apidoc/org/xml/sax/ext/DeclHandler.html\n * IGNORED method of org.xml.sax.ext.DeclHandler\n * \t#attributeDecl(eName, aName, type, mode, value)\n * #elementDecl(name, model)\n * #externalEntityDecl(name, publicId, systemId)\n * #internalEntityDecl(name, value)\n * @link http://www.saxproject.org/apidoc/org/xml/sax/ext/EntityResolver2.html\n * IGNORED method of org.xml.sax.EntityResolver2\n * #resolveEntity(String name,String publicId,String baseURI,String systemId)\n * #resolveEntity(publicId, systemId)\n * #getExternalSubset(name, baseURI)\n * @link http://www.saxproject.org/apidoc/org/xml/sax/DTDHandler.html\n * IGNORED method of org.xml.sax.DTDHandler\n * #notationDecl(name, publicId, systemId) {};\n * #unparsedEntityDecl(name, publicId, systemId, notationName) {};\n */\n\"endDTD,startEntity,endEntity,attributeDecl,elementDecl,externalEntityDecl,internalEntityDecl,resolveEntity,getExternalSubset,notationDecl,unparsedEntityDecl\".replace(/\\w+/g,function(key){\n\tDOMHandler.prototype[key] = function(){return null}\n})\n\n/* Private static helpers treated below as private instance methods, so don't need to add these to the public API; we might use a Relator to also get rid of non-standard public properties */\nfunction appendElement (hander,node) {\n if (!hander.currentElement) {\n hander.doc.appendChild(node);\n } else {\n hander.currentElement.appendChild(node);\n }\n}//appendChild and setAttributeNS are preformance key\n\n//if(typeof require == 'function'){\nvar htmlEntity = require('./entities');\nvar sax = require('./sax');\nvar XMLReader = sax.XMLReader;\nvar ParseError = sax.ParseError;\nvar DOMImplementation = exports.DOMImplementation = require('./dom').DOMImplementation;\nexports.XMLSerializer = require('./dom').XMLSerializer ;\nexports.DOMParser = DOMParser;\nexports.__DOMHandler = DOMHandler;\n//}\n","import {\n DOMParser as _DOMParser,\n XMLSerializer as _XMLSerializer,\n} from 'xmldom'\n\nexport const DOMParser = _DOMParser\nexport const XMLSerializer = _XMLSerializer\n","/* eslint-disable no-undefined,no-param-reassign,no-shadow */\n\n/**\n * Throttle execution of a function. Especially useful for rate limiting\n * execution of handlers on events like resize and scroll.\n *\n * @param {number} delay - A zero-or-greater delay in milliseconds. For event callbacks, values around 100 or 250 (or even higher)\n * are most useful.\n * @param {Function} callback - A function to be executed after delay milliseconds. The `this` context and all arguments are passed through,\n * as-is, to `callback` when the throttled-function is executed.\n * @param {object} [options] - An object to configure options.\n * @param {boolean} [options.noTrailing] - Optional, defaults to false. If noTrailing is true, callback will only execute every `delay` milliseconds\n * while the throttled-function is being called. If noTrailing is false or unspecified, callback will be executed\n * one final time after the last throttled-function call. (After the throttled-function has not been called for\n * `delay` milliseconds, the internal counter is reset).\n * @param {boolean} [options.noLeading] - Optional, defaults to false. If noLeading is false, the first throttled-function call will execute callback\n * immediately. If noLeading is true, the first the callback execution will be skipped. It should be noted that\n * callback will never executed if both noLeading = true and noTrailing = true.\n * @param {boolean} [options.debounceMode] - If `debounceMode` is true (at begin), schedule `clear` to execute after `delay` ms. If `debounceMode` is\n * false (at end), schedule `callback` to execute after `delay` ms.\n *\n * @returns {Function} A new, throttled, function.\n */\nfunction throttle (delay, callback, options) {\n var _ref = options || {},\n _ref$noTrailing = _ref.noTrailing,\n noTrailing = _ref$noTrailing === void 0 ? false : _ref$noTrailing,\n _ref$noLeading = _ref.noLeading,\n noLeading = _ref$noLeading === void 0 ? false : _ref$noLeading,\n _ref$debounceMode = _ref.debounceMode,\n debounceMode = _ref$debounceMode === void 0 ? undefined : _ref$debounceMode;\n /*\n * After wrapper has stopped being called, this timeout ensures that\n * `callback` is executed at the proper times in `throttle` and `end`\n * debounce modes.\n */\n var timeoutID;\n var cancelled = false;\n\n // Keep track of the last time `callback` was executed.\n var lastExec = 0;\n\n // Function to clear existing timeout\n function clearExistingTimeout() {\n if (timeoutID) {\n clearTimeout(timeoutID);\n }\n }\n\n // Function to cancel next exec\n function cancel(options) {\n var _ref2 = options || {},\n _ref2$upcomingOnly = _ref2.upcomingOnly,\n upcomingOnly = _ref2$upcomingOnly === void 0 ? false : _ref2$upcomingOnly;\n clearExistingTimeout();\n cancelled = !upcomingOnly;\n }\n\n /*\n * The `wrapper` function encapsulates all of the throttling / debouncing\n * functionality and when executed will limit the rate at which `callback`\n * is executed.\n */\n function wrapper() {\n for (var _len = arguments.length, arguments_ = new Array(_len), _key = 0; _key < _len; _key++) {\n arguments_[_key] = arguments[_key];\n }\n var self = this;\n var elapsed = Date.now() - lastExec;\n if (cancelled) {\n return;\n }\n\n // Execute `callback` and update the `lastExec` timestamp.\n function exec() {\n lastExec = Date.now();\n callback.apply(self, arguments_);\n }\n\n /*\n * If `debounceMode` is true (at begin) this is used to clear the flag\n * to allow future `callback` executions.\n */\n function clear() {\n timeoutID = undefined;\n }\n if (!noLeading && debounceMode && !timeoutID) {\n /*\n * Since `wrapper` is being called for the first time and\n * `debounceMode` is true (at begin), execute `callback`\n * and noLeading != true.\n */\n exec();\n }\n clearExistingTimeout();\n if (debounceMode === undefined && elapsed > delay) {\n if (noLeading) {\n /*\n * In throttle mode with noLeading, if `delay` time has\n * been exceeded, update `lastExec` and schedule `callback`\n * to execute after `delay` ms.\n */\n lastExec = Date.now();\n if (!noTrailing) {\n timeoutID = setTimeout(debounceMode ? clear : exec, delay);\n }\n } else {\n /*\n * In throttle mode without noLeading, if `delay` time has been exceeded, execute\n * `callback`.\n */\n exec();\n }\n } else if (noTrailing !== true) {\n /*\n * In trailing throttle mode, since `delay` time has not been\n * exceeded, schedule `callback` to execute `delay` ms after most\n * recent execution.\n *\n * If `debounceMode` is true (at begin), schedule `clear` to execute\n * after `delay` ms.\n *\n * If `debounceMode` is false (at end), schedule `callback` to\n * execute after `delay` ms.\n */\n timeoutID = setTimeout(debounceMode ? clear : exec, debounceMode === undefined ? delay - elapsed : delay);\n }\n }\n wrapper.cancel = cancel;\n\n // Return the wrapper function.\n return wrapper;\n}\n\n/* eslint-disable no-undefined */\n\n/**\n * Debounce execution of a function. Debouncing, unlike throttling,\n * guarantees that a function is only executed a single time, either at the\n * very beginning of a series of calls, or at the very end.\n *\n * @param {number} delay - A zero-or-greater delay in milliseconds. For event callbacks, values around 100 or 250 (or even higher) are most useful.\n * @param {Function} callback - A function to be executed after delay milliseconds. The `this` context and all arguments are passed through, as-is,\n * to `callback` when the debounced-function is executed.\n * @param {object} [options] - An object to configure options.\n * @param {boolean} [options.atBegin] - Optional, defaults to false. If atBegin is false or unspecified, callback will only be executed `delay` milliseconds\n * after the last debounced-function call. If atBegin is true, callback will be executed only at the first debounced-function call.\n * (After the throttled-function has not been called for `delay` milliseconds, the internal counter is reset).\n *\n * @returns {Function} A new, debounced function.\n */\nfunction debounce (delay, callback, options) {\n var _ref = options || {},\n _ref$atBegin = _ref.atBegin,\n atBegin = _ref$atBegin === void 0 ? false : _ref$atBegin;\n return throttle(delay, callback, {\n debounceMode: atBegin !== false\n });\n}\n\nexport { debounce, throttle };\n//# sourceMappingURL=index.js.map\n","import { debounce, throttle } from 'throttle-debounce'\n\nexport const functionDebounce = debounce\nexport const functionThrottle = throttle\n","import { cloneDeep, cloneDeepWith } from 'es-toolkit'\nimport { isFunction, isPlainObject } from '../is'\n\nexport function objectClone<T>(obj: T, cloneValue?: { transfer?: Transferable[] }): T\nexport function objectClone<T>(obj: T, cloneValue?: (value: any, key: PropertyKey | undefined, obj: T, stack: Map<any, any>) => any): T\n\n/**\n * 深度克隆给定的对象\n * @template T -对象的类型\n * @param {T} obj -要克隆的对象\n * @param {Function | object | undefined} cloneValue - cloneDeepWith的第二个参数/structuredClone的第二个参数\n * @returns {T} -给定对象的深度克隆\n *\n * @reference https://developer.mozilla.org/zh-CN/docs/Web/API/Window/structuredClone\n * @reference https://es-toolkit.dev/zh_hans/reference/object/cloneDeepWith.html\n */\nexport function objectClone<T>(obj: T, cloneValue?: any): T {\n if (structuredClone) {\n return isPlainObject(cloneValue) ? structuredClone(obj, cloneValue) : structuredClone(obj)\n }\n return isFunction(cloneValue) ? cloneDeepWith(obj, cloneValue) : cloneDeep(obj)\n}\n","(function (global, factory) {\n\ttypeof exports === 'object' && typeof module !== 'undefined' ? factory(exports) :\n\ttypeof define === 'function' && define.amd ? define(['exports'], factory) :\n\t(factory((global.awaitToJs = {})));\n}(this, (function (exports) { 'use strict';\n\n/**\n * @param { Promise } promise\n * @param { Object= } errorExt - Additional Information you can pass to the err object\n * @return { Promise }\n */\nfunction to(promise, errorExt) {\n return promise\n .then(function (data) { return [null, data]; })\n .catch(function (err) {\n if (errorExt) {\n Object.assign(err, errorExt);\n }\n return [err, undefined];\n });\n}\n\nexports.to = to;\nexports['default'] = to;\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\n})));\n//# sourceMappingURL=await-to-js.umd.js.map\n","import { to } from 'await-to-js'\n\nexport const promiseAwaitTo = to\n","/*\nHow it works:\n`this.#head` is an instance of `Node` which keeps track of its current value and nests another instance of `Node` that keeps the value that comes after it. When a value is provided to `.enqueue()`, the code needs to iterate through `this.#head`, going deeper and deeper to find the last value. However, iterating through every single item is slow. This problem is solved by saving a reference to the last value as `this.#tail` so that it can reference it to add a new value.\n*/\n\nclass Node {\n\tvalue;\n\tnext;\n\n\tconstructor(value) {\n\t\tthis.value = value;\n\t}\n}\n\nexport default class Queue {\n\t#head;\n\t#tail;\n\t#size;\n\n\tconstructor() {\n\t\tthis.clear();\n\t}\n\n\tenqueue(value) {\n\t\tconst node = new Node(value);\n\n\t\tif (this.#head) {\n\t\t\tthis.#tail.next = node;\n\t\t\tthis.#tail = node;\n\t\t} else {\n\t\t\tthis.#head = node;\n\t\t\tthis.#tail = node;\n\t\t}\n\n\t\tthis.#size++;\n\t}\n\n\tdequeue() {\n\t\tconst current = this.#head;\n\t\tif (!current) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis.#head = this.#head.next;\n\t\tthis.#size--;\n\n\t\t// Clean up tail reference when queue becomes empty\n\t\tif (!this.#head) {\n\t\t\tthis.#tail = undefined;\n\t\t}\n\n\t\treturn current.value;\n\t}\n\n\tpeek() {\n\t\tif (!this.#head) {\n\t\t\treturn;\n\t\t}\n\n\t\treturn this.#head.value;\n\n\t\t// TODO: Node.js 18.\n\t\t// return this.#head?.value;\n\t}\n\n\tclear() {\n\t\tthis.#head = undefined;\n\t\tthis.#tail = undefined;\n\t\tthis.#size = 0;\n\t}\n\n\tget size() {\n\t\treturn this.#size;\n\t}\n\n\t* [Symbol.iterator]() {\n\t\tlet current = this.#head;\n\n\t\twhile (current) {\n\t\t\tyield current.value;\n\t\t\tcurrent = current.next;\n\t\t}\n\t}\n\n\t* drain() {\n\t\twhile (this.#head) {\n\t\t\tyield this.dequeue();\n\t\t}\n\t}\n}\n","import Queue from 'yocto-queue';\n\nexport default function pLimit(concurrency) {\n\tvalidateConcurrency(concurrency);\n\n\tconst queue = new Queue();\n\tlet activeCount = 0;\n\n\tconst resumeNext = () => {\n\t\t// Process the next queued function if we're under the concurrency limit\n\t\tif (activeCount < concurrency && queue.size > 0) {\n\t\t\tactiveCount++;\n\t\t\tqueue.dequeue()();\n\t\t}\n\t};\n\n\tconst next = () => {\n\t\tactiveCount--;\n\t\tresumeNext();\n\t};\n\n\tconst run = async (function_, resolve, arguments_) => {\n\t\t// Execute the function and capture the result promise\n\t\tconst result = (async () => function_(...arguments_))();\n\n\t\t// Resolve immediately with the promise (don't wait for completion)\n\t\tresolve(result);\n\n\t\t// Wait for the function to complete (success or failure)\n\t\t// We catch errors here to prevent unhandled rejections,\n\t\t// but the original promise rejection is preserved for the caller\n\t\ttry {\n\t\t\tawait result;\n\t\t} catch {}\n\n\t\t// Decrement active count and process next queued function\n\t\tnext();\n\t};\n\n\tconst enqueue = (function_, resolve, arguments_) => {\n\t\t// Queue the internal resolve function instead of the run function\n\t\t// to preserve the asynchronous execution context.\n\t\tnew Promise(internalResolve => { // eslint-disable-line promise/param-names\n\t\t\tqueue.enqueue(internalResolve);\n\t\t}).then(run.bind(undefined, function_, resolve, arguments_)); // eslint-disable-line promise/prefer-await-to-then\n\n\t\t// Start processing immediately if we haven't reached the concurrency limit\n\t\tif (activeCount < concurrency) {\n\t\t\tresumeNext();\n\t\t}\n\t};\n\n\tconst generator = (function_, ...arguments_) => new Promise(resolve => {\n\t\tenqueue(function_, resolve, arguments_);\n\t});\n\n\tObject.defineProperties(generator, {\n\t\tactiveCount: {\n\t\t\tget: () => activeCount,\n\t\t},\n\t\tpendingCount: {\n\t\t\tget: () => queue.size,\n\t\t},\n\t\tclearQueue: {\n\t\t\tvalue() {\n\t\t\t\tqueue.clear();\n\t\t\t},\n\t\t},\n\t\tconcurrency: {\n\t\t\tget: () => concurrency,\n\n\t\t\tset(newConcurrency) {\n\t\t\t\tvalidateConcurrency(newConcurrency);\n\t\t\t\tconcurrency = newConcurrency;\n\n\t\t\t\tqueueMicrotask(() => {\n\t\t\t\t\t// eslint-disable-next-line no-unmodified-loop-condition\n\t\t\t\t\twhile (activeCount < concurrency && queue.size > 0) {\n\t\t\t\t\t\tresumeNext();\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t},\n\t\t},\n\t\tmap: {\n\t\t\tasync value(iterable, function_) {\n\t\t\t\tconst promises = Array.from(iterable, (value, index) => this(function_, value, index));\n\t\t\t\treturn Promise.all(promises);\n\t\t\t},\n\t\t},\n\t});\n\n\treturn generator;\n}\n\nexport function limitFunction(function_, options) {\n\tconst {concurrency} = options;\n\tconst limit = pLimit(concurrency);\n\n\treturn (...arguments_) => limit(() => function_(...arguments_));\n}\n\nfunction validateConcurrency(concurrency) {\n\tif (!((Number.isInteger(concurrency) || concurrency === Number.POSITIVE_INFINITY) && concurrency > 0)) {\n\t\tthrow new TypeError('Expected `concurrency` to be a number from 1 and up');\n\t}\n}\n","import type { LimitFunction, Options } from 'p-limit'\nimport pLimit, { limitFunction } from 'p-limit'\n\nexport type PromiseLimitFunctionOptions = Options\nexport type PromiseLimitFunction = LimitFunction\n\nexport const promiseLimit = pLimit\nexport const promiseLimitFunction = limitFunction\n","export const anyRuleWithBracket = {\n // 参考:\n // https://www.runoob.com/w3cnote/java-capture-group.html\n title: '匹配中/方括号',\n rule: /\\[([^\\]]+)\\]/g,\n examples: ['h[e]llo'],\n}\nexport const anyRuleWithBrace = {\n title: '匹配大/花括号',\n rule: /\\{([^}]+)\\}/g,\n examples: ['h{e}llo'],\n}\n","/* eslint-disable eslint-comments/no-unlimited-disable */\n/* eslint-disable */\n/* Generated by any-rule@0.3.18 */\nexport const anyRule1 = {\n title: '火车车次',\n rule: /^[GCDZTSPKXLY1-9]\\d{1,4}$/,\n examples: ['G1868', 'D102', 'D9', 'Z5', 'Z24', 'Z17']\n}\nexport const anyRule2 = {\n title: '手机机身码(IMEI)',\n rule: /^\\d{15,17}$/,\n examples: ['123456789012345', '1234567890123456', '12345678901234567']\n}\nexport const anyRule3 = {\n title: '必须带端口号的网址(或ip)',\n rule: /^((ht|f)tps?:\\/\\/)?[\\w-]+(\\.[\\w-]+)+:\\d{1,5}\\/?$/,\n examples: ['https://www.qq.com:8080', '127.0.0.1:5050', 'baidu.com:8001', 'http://192.168.1.1:9090'],\n counterExamples: ['192.168.1.1', 'https://www.jd.com']\n}\nexport const anyRule4 = {\n // 参考: \n // https://baike.baidu.com/item/%E9%A1%B6%E7%BA%A7%E5%9F%9F%E5%90%8D#4_1\n // https://baike.baidu.com/item/%E9%A1%B6%E7%BA%A7%E5%9F%9F%E5%90%8D#7\n // 也参考谷歌浏览器的地址栏, 如果输入非字母不会被识别为域名\n title: '网址(URL)',\n rule: /^(((ht|f)tps?):\\/\\/)?([^!@#$%^&*?.\\s-]([^!@#$%^&*?.\\s]{0,63}[^!@#$%^&*?.\\s])?\\.)+[a-z]{2,6}\\/?/,\n examples: ['www.qq.com', 'https://vuejs.org/v2/api/#v-model', 'www.qq.99', '//www.qq.com', 'www.腾讯.cs', 'ftp://baidu.qq', 'http://baidu.com', 'https://www.amap.com/search?id=BV10060895&city=420111&geoobj=113.207951%7C29.992557%7C115.785782%7C31.204369&query_type=IDQ&query=%E5%85%89%E8%B0%B7%E5%B9%BF%E5%9C%BA(%E5%9C%B0%E9%93%81%E7%AB%99)&zoom=10.15', '360.com:8080/vue/#/a=1&b=2'],\n counterExamples: ['....']\n}\nexport const anyRule5 = {\n title: '统一社会信用代码',\n rule: /^[0-9A-HJ-NPQRTUWXY]{2}\\d{6}[0-9A-HJ-NPQRTUWXY]{10}$/,\n examples: ['91230184MA1BUFLT44', '92371000MA3MXH0E3W'],\n}\nexport const anyRule6 = {\n title: '统一社会信用代码(宽松匹配)(15位/18位/20位数字/字母)',\n rule: /^(([0-9A-Za-z]{15})|([0-9A-Za-z]{18})|([0-9A-Za-z]{20}))$/,\n examples: ['91110108772551611J', '911101085923662400']\n}\nexport const anyRule7 = {\n title: '迅雷链接',\n rule: /^thunderx?:\\/\\/[a-zA-Z\\d]+=$/,\n examples: ['thunder://QUEsICdtYWduZXQ6P3h0PXVybjpidGloOjBCQTE0RTUxRkUwNjU1RjE0Qzc4NjE4RjY4NDY0QjZFNTEyNjcyOUMnWlo='],\n}\nexport const anyRule8 = {\n title: 'ed2k链接(宽松匹配)',\n rule: /^ed2k:\\/\\/\\|file\\|.+\\|\\/$/,\n examples: ['ed2k://|file|%E5%AF%84%E7%94%9F%E8%99%AB.PARASITE.2019.HD-1080p.X264.AAC-UUMp4(ED2000.COM).mp4|2501554832|C0B93E0879C6071CBED732C20CE577A3|h=5HTKZPQFYRKORN52I3M7GQ4QQCIHFIBV|/'],\n}\nexport const anyRule9 = {\n title: '磁力链接(宽松匹配)',\n rule: /^magnet:\\?xt=urn:btih:[0-9a-fA-F]{40,}.*$/,\n examples: ['magnet:?xt=urn:btih:40A89A6F4FB1498A98087109D012A9A851FBE0FC'],\n}\nexport const anyRule10 = {\n title: '子网掩码(不包含 0.0.0.0)',\n rule: /^(254|252|248|240|224|192|128)\\.0\\.0\\.0|255\\.(254|252|248|240|224|192|128|0)\\.0\\.0|255\\.255\\.(254|252|248|240|224|192|128|0)\\.0|255\\.255\\.255\\.(255|254|252|248|240|224|192|128|0)$/,\n examples: ['255.255.255.0', '255.255.255.255', '255.240.0.0']\n}\nexport const anyRule11 = {\n title: 'linux\"隐藏文件\"路径',\n rule: /^\\/(?:[^/]+\\/)*\\.[^/]*/,\n examples: ['/usr/ad/.dd', '/root/.gitignore', '/.gitignore']\n}\nexport const anyRule12 = {\n title: 'linux文件夹路径',\n rule: /^\\/(?:[^/]+\\/)*$/,\n examples: ['/usr/ad/dd/', '/', '/root/', '/ a a / a / a a /']\n}\nexport const anyRule13 = {\n title: 'linux文件路径',\n rule: /^\\/(?:[^/]+\\/)*[^/]+$/,\n examples: ['/root/b.ts', '/root/abc']\n}\nexport const anyRule14 = {\n title: 'window\"文件夹\"路径',\n rule: /^[a-zA-Z]:\\\\(?:\\w+\\\\?)*$/,\n examples: ['C:\\\\Users\\\\Administrator\\\\Desktop', 'e:\\\\m\\\\']\n}\nexport const anyRule15 = {\n title: 'window下\"文件\"路径',\n rule: /^[a-zA-Z]:\\\\(?:\\w+\\\\)*\\w+\\.\\w+$/,\n examples: ['C:\\\\Users\\\\Administrator\\\\Desktop\\\\qq.link', 'e:\\\\m\\\\vscode.exe']\n}\nexport const anyRule16 = {\n title: '股票代码(A股)',\n rule: /^(s[hz]|S[HZ])(000[\\d]{3}|002[\\d]{3}|300[\\d]{3}|600[\\d]{3}|60[\\d]{4})$/,\n examples: ['sz000858', 'SZ002136', 'sz300675', 'SH600600', 'sh601155']\n}\nexport const anyRule17 = {\n title: '大于等于0, 小于等于150, 支持小数位出现5, 如145.5, 用于判断考卷分数',\n rule: /^150$|^(?:\\d|[1-9]\\d|1[0-4]\\d)(?:\\.5)?$/,\n examples: [150, 100.5]\n}\nexport const anyRule18 = {\n title: 'html注释',\n rule: /<!--[\\s\\S]*?-->/g,\n examples: ['<!--<div class=\"_bubble\"></div>--><div>chenguzhen87</div><div class=\"_bubble\"></div>-->']\n}\nexport const anyRule19 = {\n title: 'md5格式(32位)',\n rule: /^[a-fA-F0-9]{32}$/,\n examples: ['21fe181c5bfc16306a6828c1f7b762e8'],\n}\nexport const anyRule20 = {\n title: 'GUID/UUID',\n rule: /^[a-f\\d]{4}(?:[a-f\\d]{4}-){4}[a-f\\d]{12}$/i,\n examples: ['e155518c-ca1b-443c-9be9-fe90fdab7345', '41E3DAF5-6E37-4BCC-9F8E-0D9521E2AA8D', '00000000-0000-0000-0000-000000000000'],\n}\nexport const anyRule21 = {\n title: '版本号(version)格式必须为X.Y.Z',\n rule: /^\\d+(?:\\.\\d+){2}$/,\n examples: ['16.3.10']\n}\nexport const anyRule22 = {\n title: '视频(video)链接地址(视频格式可按需增删)',\n rule: /^https?:\\/\\/(.+\\/)+.+(\\.(swf|avi|flv|mpg|rm|mov|wav|asf|3gp|mkv|rmvb|mp4))$/i,\n examples: ['http://www.abc.com/video/wc.avi']\n}\nexport const anyRule23 = {\n title: '图片(image)链接地址(图片格式可按需增删)',\n rule: /^https?:\\/\\/(.+\\/)+.+(\\.(gif|png|jpg|jpeg|webp|svg|psd|bmp|tif))$/i,\n examples: ['https://www.abc.com/logo.png', 'http://www.abc.com/logo.png']\n}\nexport const anyRule24 = {\n title: '24小时制时间(HH:mm:ss)',\n rule: /^(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d$/,\n examples: ['23:34:55']\n}\nexport const anyRule25 = {\n title: '12小时制时间(hh:mm:ss)',\n rule: /^(?:1[0-2]|0?[1-9]):[0-5]\\d:[0-5]\\d$/,\n examples: ['11:34:55'],\n counterExamples: ['23:34:55']\n}\nexport const anyRule26 = {\n title: 'base64格式',\n rule: /^\\s*data:(?:[a-z]+\\/[a-z0-9-+.]+(?:;[a-z-]+=[a-z0-9-]+)?)?(?:;base64)?,([a-z0-9!$&',()*+;=\\-._~:@/?%\\s]*?)\\s*$/i,\n examples: ['data:image/gif;base64,xxxx==']\n}\nexport const anyRule27 = {\n title: '数字/货币金额(支持负数、千分位分隔符)',\n rule: /^-?\\d{1,3}(,\\d{3})*(\\.\\d{1,2})?$/ ,\n examples: [100, -0.99, 3, 234.32, -1, 900, 235.09, '12,345,678.90']\n}\nexport const anyRule28 = {\n title: '银行卡号(10到30位, 覆盖对公/私账户, 参考[微信支付](https://pay.weixin.qq.com/wiki/doc/api/xiaowei.php?chapter=22_1))',\n rule: /^[1-9]\\d{9,29}$/,\n examples: [6234567890, 6222026006705354217]\n}\nexport const anyRule29 = {\n title: '中文姓名',\n rule: /^(?:[\\u4e00-\\u9fa5·]{2,16})$/,\n examples: ['葛二蛋', '凯文·杜兰特', '德克·维尔纳·诺维茨基']\n}\nexport const anyRule30 = {\n title: '英文姓名',\n rule: /(^[a-zA-Z][a-zA-Z\\s]{0,20}[a-zA-Z]$)/,\n examples: ['James', 'Kevin Wayne Durant', 'Dirk Nowitzki']\n}\nexport const anyRule31 = {\n title: '车牌号(新能源)',\n rule: /^[京津沪渝冀豫云辽黑湘皖鲁新苏浙赣鄂桂甘晋蒙陕吉闽贵粤青藏川宁琼使领][A-HJ-NP-Z](([DF]((?![IO])[a-zA-Z0-9](?![IO]))[0-9]{4})|([0-9]{5}[DF]))$/,\n examples: ['京AD92035', '甘G23459F', '京A19203D'],\n}\nexport const anyRule32 = {\n title: '车牌号(非新能源)',\n rule: /^[京津沪渝冀豫云辽黑湘皖鲁新苏浙赣鄂桂甘晋蒙陕吉闽贵粤青藏川宁琼使领][A-HJ-NP-Z][A-HJ-NP-Z0-9]{4}[A-HJ-NP-Z0-9挂学警港澳]$/,\n examples: ['京A00599', '黑D23908']\n}\nexport const anyRule33 = {\n title: '车牌号(新能源+非新能源)',\n rule: /^[京津沪渝冀豫云辽黑湘皖鲁新苏浙赣鄂桂甘晋蒙陕吉闽贵粤青藏川宁琼使领][A-HJ-NP-Z][A-HJ-NP-Z0-9]{4,5}[A-HJ-NP-Z0-9挂学警港澳]$/,\n examples: ['京A12345D', '京A00599', '京AD92035', '甘G23459F', '京AA92035'],\n counterExamples: ['宁AD1234555555', '浙苏H6F681']\n}\nexport const anyRule34 = {\n title: '手机号(mobile phone)中国(严谨), 根据工信部最新公布的手机号段',\n rule: /^(?:(?:\\+|00)86)?1(?:(?:3[\\d])|(?:4[5-79])|(?:5[0-35-9])|(?:6[5-7])|(?:7[0-8])|(?:8[\\d])|(?:9[01256789]))\\d{8}$/,\n examples: ['008618311006933', '+8617888829981', '19119255642', '19519255642']\n}\nexport const anyRule35 = {\n title: '手机号(mobile phone)中国(宽松), 只要是13,14,15,16,17,18,19开头即可',\n rule: /^(?:(?:\\+|00)86)?1[3-9]\\d{9}$/,\n examples: ['008618311006933', '+8617888829981', '19119255642']\n}\nexport const anyRule36 = {\n title: '手机号(mobile phone)中国(最宽松), 只要是1开头即可, 如果你的手机号是用来接收短信, 优先建议选择这一条',\n rule: /^(?:(?:\\+|00)86)?1\\d{10}$/,\n examples: ['008618311006933', '+8617888829981', '19119255642']\n}\nexport const anyRule37 = {\n title: '日期(宽松)',\n rule: /^\\d{1,4}(-)(1[0-2]|0?[1-9])\\1(0?[1-9]|[1-2]\\d|30|31)$/,\n examples: ['1990-12-12', '1-1-1', '0000-1-1'],\n counterExamples: ['2020-00-01']\n}\nexport const anyRule38 = {\n title: '日期(严谨, 支持闰年判断)',\n rule: /^(([0-9]{3}[1-9]|[0-9]{2}[1-9][0-9]{1}|[0-9]{1}[1-9][0-9]{2}|[1-9][0-9]{3})-(((0[13578]|1[02])-(0[1-9]|[12][0-9]|3[01]))|((0[469]|11)-(0[1-9]|[12][0-9]|30))|(02-(0[1-9]|[1][0-9]|2[0-8]))))|((([0-9]{2})(0[48]|[2468][048]|[13579][26])|((0[48]|[2468][048]|[3579][26])00))-02-29)$/,\n examples: ['1990-12-12', '2000-02-29'],\n counterExamples: ['2021-02-29']\n}\nexport const anyRule39 = {\n title: '中国省',\n rule: /^浙江|上海|北京|天津|重庆|黑龙江|吉林|辽宁|内蒙古|河北|新疆|甘肃|青海|陕西|宁夏|河南|山东|山西|安徽|湖北|湖南|江苏|四川|贵州|云南|广西|西藏|江西|广东|福建|台湾|海南|香港|澳门$/,\n examples: ['浙江', '台湾'],\n counterExamples: ['哈尔滨']\n}\nexport const anyRule40 = {\n title: '可以被moment转化成功的时间 YYYYMMDD HH:mm:ss',\n rule: /^\\d{4}([/:-\\S])(1[0-2]|0?[1-9])\\1(0?[1-9]|[1-2]\\d|30|31) (?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d$/,\n examples: ['2020/01/01 23:59:59', '2020-01-01 00:00:00', '20200101 11:11:11'],\n counterExamples: ['2020/00/01 23:59:59', '2020-01/01 23:59:59', '2020-01-01 23:59:61', '2020-01-0100:00:00',]\n}\nexport const anyRule41 = {\n title: 'email(邮箱)',\n rule: /^(([^<>()[\\]\\\\.,;:\\s@\"]+(\\.[^<>()[\\]\\\\.,;:\\s@\"]+)*)|(\".+\"))@((\\[[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\])|(([a-zA-Z\\-0-9]+\\.)+[a-zA-Z]{2,}))$/,\n examples: ['90203918@qq.com', 'nbilly@126.com', '汉字@qq.com']\n}\nexport const anyRule42 = {\n title: '座机(tel phone)电话(国内),如: 0341-86091234',\n rule: /^(?:(?:\\d{3}-)?\\d{8}|^(?:\\d{4}-)?\\d{7,8})(?:-\\d+)?$/,\n examples: ['0936-4211235', '89076543', '010-12345678-1234']\n}\nexport const anyRule43 = {\n title: '身份证号(1代,15位数字)',\n rule: /^[1-9]\\d{7}(?:0\\d|10|11|12)(?:0[1-9]|[1-2][\\d]|30|31)\\d{3}$/,\n examples: ['123456991010193']\n}\nexport const anyRule44 = {\n title: '身份证号(2代,18位数字),最后一位是校验位,可能为数字或字符X',\n rule: /^[1-9]\\d{5}(?:18|19|20)\\d{2}(?:0[1-9]|10|11|12)(?:0[1-9]|[1-2]\\d|30|31)\\d{3}[\\dXx]$/,\n examples: ['12345619991205131x']\n}\nexport const anyRule45 = {\n title: '身份证号, 支持1/2代(15位/18位数字)',\n rule: /^\\d{6}((((((19|20)\\d{2})(0[13-9]|1[012])(0[1-9]|[12]\\d|30))|(((19|20)\\d{2})(0[13578]|1[02])31)|((19|20)\\d{2})02(0[1-9]|1\\d|2[0-8])|((((19|20)([13579][26]|[2468][048]|0[48]))|(2000))0229))\\d{3})|((((\\d{2})(0[13-9]|1[012])(0[1-9]|[12]\\d|30))|((\\d{2})(0[13578]|1[02])31)|((\\d{2})02(0[1-9]|1\\d|2[0-8]))|(([13579][26]|[2468][048]|0[048])0229))\\d{2}))(\\d|X|x)$/,\n examples: ['622223199912051311', '12345619991205131x', '123456991010193']\n}\nexport const anyRule46 = {\n title: '护照(包含香港、澳门)',\n rule: /(^[EeKkGgDdSsPpHh]\\d{8}$)|(^(([Ee][a-fA-F])|([DdSsPp][Ee])|([Kk][Jj])|([Mm][Aa])|(1[45]))\\d{7}$)/,\n examples: ['s28233515', '141234567', '159203084', 'MA1234567', 'K25345719']\n}\nexport const anyRule47 = {\n title: '帐号是否合法(字母开头,允许5-16字节,允许字母数字下划线组合',\n rule: /^[a-zA-Z]\\w{4,15}$/,\n examples: ['justin', 'justin1989', 'justin_666']\n}\nexport const anyRule48 = {\n title: '中文/汉字',\n // rule: /^[\\u4E00-\\u9FA5]+$/,\n rule: /^(?:[\\u3400-\\u4DB5\\u4E00-\\u9FEA\\uFA0E\\uFA0F\\uFA11\\uFA13\\uFA14\\uFA1F\\uFA21\\uFA23\\uFA24\\uFA27-\\uFA29]|[\\uD840-\\uD868\\uD86A-\\uD86C\\uD86F-\\uD872\\uD874-\\uD879][\\uDC00-\\uDFFF]|\\uD869[\\uDC00-\\uDED6\\uDF00-\\uDFFF]|\\uD86D[\\uDC00-\\uDF34\\uDF40-\\uDFFF]|\\uD86E[\\uDC00-\\uDC1D\\uDC20-\\uDFFF]|\\uD873[\\uDC00-\\uDEA1\\uDEB0-\\uDFFF]|\\uD87A[\\uDC00-\\uDFE0])+$/,\n examples: ['正则', '前端']\n}\nexport const anyRule49 = {\n title: '小数(支持科学计数)',\n rule: /^[+-]?(\\d+([.]\\d*)?([eE][+-]?\\d+)?|[.]\\d+([eE][+-]?\\d+)?)$/,\n examples: ['0.0', '0.09','4E+4']\n}\nexport const anyRule50 = {\n title: '只包含数字',\n rule: /^\\d+$/,\n examples: [12345678]\n}\nexport const anyRule51 = {\n title: 'html标签(宽松匹配)',\n rule: /<(\\w+)[^>]*>(.*?<\\/\\1>)?/,\n examples: ['<div id=\"app\"> 2333 </div>', '<input type=\"text\">', '<br>']\n}\nexport const anyRule52 = {\n title: '匹配中文汉字和中文标点',\n rule: /[\\u4e00-\\u9fa5|\\u3002|\\uff1f|\\uff01|\\uff0c|\\u3001|\\uff1b|\\uff1a|\\u201c|\\u201d|\\u2018|\\u2019|\\uff08|\\uff09|\\u300a|\\u300b|\\u3008|\\u3009|\\u3010|\\u3011|\\u300e|\\u300f|\\u300c|\\u300d|\\ufe43|\\ufe44|\\u3014|\\u3015|\\u2026|\\u2014|\\uff5e|\\ufe4f|\\uffe5]/,\n examples: [\"匹配中文汉字以及中文标点符号 。 ? ! , 、 ; : “ ” ‘ ' ( ) 《 》 〈 〉 【 】 『 』 「 」 ﹃ ﹄ 〔 〕 … — ~ ﹏ ¥\"]\n}\nexport const anyRule53 = {\n title: 'qq号格式正确',\n rule: /^[1-9][0-9]{4,10}$/,\n examples: [903013545, 9020304]\n}\nexport const anyRule54 = {\n title: '数字和字母组成',\n rule: /^[A-Za-z0-9]+$/,\n examples: ['james666', 'haha233hi']\n}\nexport const anyRule55 = {\n title: '英文字母',\n rule: /^[a-zA-Z]+$/,\n examples: ['Russel']\n}\nexport const anyRule56 = {\n title: '小写英文字母组成',\n rule: /^[a-z]+$/,\n examples: ['russel']\n}\nexport const anyRule57 = {\n title: '大写英文字母',\n rule: /^[A-Z]+$/,\n examples: ['ABC', 'KD']\n}\nexport const anyRule58 = {\n title: '密码强度校验,最少6位,包括至少1个大写字母,1个小写字母,1个数字,1个特殊字符',\n rule: /^\\S*(?=\\S{6,})(?=\\S*\\d)(?=\\S*[A-Z])(?=\\S*[a-z])(?=\\S*[!@#$%^&*? ])\\S*$/,\n examples: ['Kd@curry666']\n}\nexport const anyRule59 = {\n title: '用户名校验,4到16位(字母,数字,下划线,减号)',\n rule: /^[\\w-]{4,16}$/,\n examples: ['xiaohua_qq']\n}\nexport const anyRule60 = {\n title: 'ip-v4[:端口]',\n rule: /^((\\d|[1-9]\\d|1\\d\\d|2[0-4]\\d|25[0-5])\\.){3}(\\d|[1-9]\\d|1\\d\\d|2[0-4]\\d|25[0-5])(?::(?:[0-9]|[1-9][0-9]{1,3}|[1-5][0-9]{4}|6[0-4][0-9]{3}|65[0-4][0-9]{2}|655[0-2][0-9]|6553[0-5]))?$/,\n examples: ['172.16.0.0', '172.16.0.0:8080', '127.0.0.0', '127.0.0.0:998']\n}\nexport const anyRule61 = {\n title: 'ip-v6[:端口]',\n rule: /(^(?:(?:(?:[0-9A-Fa-f]{1,4}:){7}[0-9A-Fa-f]{1,4})|(([0-9A-Fa-f]{1,4}:){6}:[0-9A-Fa-f]{1,4})|(([0-9A-Fa-f]{1,4}:){5}:([0-9A-Fa-f]{1,4}:)?[0-9A-Fa-f]{1,4})|(([0-9A-Fa-f]{1,4}:){4}:([0-9A-Fa-f]{1,4}:){0,2}[0-9A-Fa-f]{1,4})|(([0-9A-Fa-f]{1,4}:){3}:([0-9A-Fa-f]{1,4}:){0,3}[0-9A-Fa-f]{1,4})|(([0-9A-Fa-f]{1,4}:){2}:([0-9A-Fa-f]{1,4}:){0,4}[0-9A-Fa-f]{1,4})|(([0-9A-Fa-f]{1,4}:){6}((\\b((25[0-5])|(1\\d{2})|(2[0-4]\\d)|(\\d{1,2}))\\b)\\.){3}(\\b((25[0-5])|(1\\d{2})|(2[0-4]\\d)|(\\d{1,2}))\\b))|(([0-9A-Fa-f]{1,4}:){0,5}:((\\b((25[0-5])|(1\\d{2})|(2[0-4]\\d)|(\\d{1,2}))\\b)\\.){3}(\\b((25[0-5])|(1\\d{2})|(2[0-4]\\d)|(\\d{1,2}))\\b))|(::([0-9A-Fa-f]{1,4}:){0,5}((\\b((25[0-5])|(1\\d{2})|(2[0-4]\\d)|(\\d{1,2}))\\b)\\.){3}(\\b((25[0-5])|(1\\d{2})|(2[0-4]\\d)|(\\d{1,2}))\\b))|([0-9A-Fa-f]{1,4}::([0-9A-Fa-f]{1,4}:){0,5}[0-9A-Fa-f]{1,4})|(::([0-9A-Fa-f]{1,4}:){0,6}[0-9A-Fa-f]{1,4})|(([0-9A-Fa-f]{1,4}:){1,7}:))$)|(^\\[(?:(?:(?:[0-9A-Fa-f]{1,4}:){7}[0-9A-Fa-f]{1,4})|(([0-9A-Fa-f]{1,4}:){6}:[0-9A-Fa-f]{1,4})|(([0-9A-Fa-f]{1,4}:){5}:([0-9A-Fa-f]{1,4}:)?[0-9A-Fa-f]{1,4})|(([0-9A-Fa-f]{1,4}:){4}:([0-9A-Fa-f]{1,4}:){0,2}[0-9A-Fa-f]{1,4})|(([0-9A-Fa-f]{1,4}:){3}:([0-9A-Fa-f]{1,4}:){0,3}[0-9A-Fa-f]{1,4})|(([0-9A-Fa-f]{1,4}:){2}:([0-9A-Fa-f]{1,4}:){0,4}[0-9A-Fa-f]{1,4})|(([0-9A-Fa-f]{1,4}:){6}((\\b((25[0-5])|(1\\d{2})|(2[0-4]\\d)|(\\d{1,2}))\\b)\\.){3}(\\b((25[0-5])|(1\\d{2})|(2[0-4]\\d)|(\\d{1,2}))\\b))|(([0-9A-Fa-f]{1,4}:){0,5}:((\\b((25[0-5])|(1\\d{2})|(2[0-4]\\d)|(\\d{1,2}))\\b)\\.){3}(\\b((25[0-5])|(1\\d{2})|(2[0-4]\\d)|(\\d{1,2}))\\b))|(::([0-9A-Fa-f]{1,4}:){0,5}((\\b((25[0-5])|(1\\d{2})|(2[0-4]\\d)|(\\d{1,2}))\\b)\\.){3}(\\b((25[0-5])|(1\\d{2})|(2[0-4]\\d)|(\\d{1,2}))\\b))|([0-9A-Fa-f]{1,4}::([0-9A-Fa-f]{1,4}:){0,5}[0-9A-Fa-f]{1,4})|(::([0-9A-Fa-f]{1,4}:){0,6}[0-9A-Fa-f]{1,4})|(([0-9A-Fa-f]{1,4}:){1,7}:))\\](?::(?:[0-9]|[1-9][0-9]{1,3}|[1-5][0-9]{4}|6[0-4][0-9]{3}|65[0-4][0-9]{2}|655[0-2][0-9]|6553[0-5]))?$)/i,\n examples: ['2031:0000:130f:0000:0000:09c0:876a:130b', '[2031:0000:130f:0000:0000:09c0:876a:130b]:8080']\n}\nexport const anyRule62 = {\n title: '16进制颜色',\n rule: /^#?([a-fA-F0-9]{6}|[a-fA-F0-9]{3}|[a-fA-F0-9]{8}|[a-fA-F0-9]{4})$/,\n examples: ['#f00', '#F90', '#000', '#fe9de8', '#f8f8f8ff', '#f003']\n}\nexport const anyRule63 = {\n title: '微信号(wx),6至20位,以字母开头,字母,数字,减号,下划线',\n rule: /^[a-zA-Z][-_a-zA-Z0-9]{5,19}$/,\n examples: ['github666', 'kd_-666']\n}\nexport const anyRule64 = {\n title: '邮政编码(中国)',\n rule: /^(0[1-7]|1[0-356]|2[0-7]|3[0-6]|4[0-7]|5[1-7]|6[1-7]|7[0-5]|8[013-6])\\d{4}$/,\n examples: ['734500', '100101']\n}\nexport const anyRule65 = {\n title: '中文和数字',\n rule: /^((?:[\\u3400-\\u4DB5\\u4E00-\\u9FEA\\uFA0E\\uFA0F\\uFA11\\uFA13\\uFA14\\uFA1F\\uFA21\\uFA23\\uFA24\\uFA27-\\uFA29]|[\\uD840-\\uD868\\uD86A-\\uD86C\\uD86F-\\uD872\\uD874-\\uD879][\\uDC00-\\uDFFF]|\\uD869[\\uDC00-\\uDED6\\uDF00-\\uDFFF]|\\uD86D[\\uDC00-\\uDF34\\uDF40-\\uDFFF]|\\uD86E[\\uDC00-\\uDC1D\\uDC20-\\uDFFF]|\\uD873[\\uDC00-\\uDEA1\\uDEB0-\\uDFFF]|\\uD87A[\\uDC00-\\uDFE0])|(\\d))+$/,\n examples: ['哈哈哈', '你好6啊']\n}\nexport const anyRule66 = {\n title: '不能包含字母',\n rule: /^[^A-Za-z]*$/,\n examples: ['你好6啊', '@¥()!']\n}\nexport const anyRule67 = {\n title: 'java包名',\n rule: /^([a-zA-Z_]\\w*)+([.][a-zA-Z_]\\w*)+$/,\n examples: ['com.bbb.name']\n}\nexport const anyRule68 = {\n title: 'mac地址',\n rule: /^(([a-f0-9][0,2,4,6,8,a,c,e]:([a-f0-9]{2}:){4})|([a-f0-9][0,2,4,6,8,a,c,e]-([a-f0-9]{2}-){4}))[a-f0-9]{2}$/i,\n examples: ['38:f9:d3:4b:f5:51', '00-0C-29-CA-E4-66']\n}\nexport const anyRule69 = {\n title: '匹配连续重复的字符',\n rule: /(.)\\1+/,\n examples: ['我我我', '112233', '11234']\n}\nexport const anyRule70 = {\n title: '数字和英文字母组成,并且同时含有数字和英文字母',\n rule: /^(?=.*[a-zA-Z])(?=.*\\d).+$/,\n examples: ['我a我1我', 'a对1']\n}\nexport const anyRule71 = {\n title: '香港身份证 ',\n rule: /^[a-zA-Z]\\d{6}\\([\\dA]\\)$/,\n examples: ['K034169(1)']\n}\nexport const anyRule72 = {\n // 参考: \n // https://baike.baidu.com/item/%E6%BE%B3%E9%97%A8%E5%B1%85%E6%B0%91%E8%BA%AB%E4%BB%BD%E8%AF%81/12509098?fr=aladdin#5\n title: '澳门身份证 ',\n rule: /^[1|5|7]\\d{6}\\(\\d\\)$/,\n examples: ['5686611(1)']\n}\nexport const anyRule73 = {\n title: '台湾身份证 ',\n rule: /^[a-zA-Z][0-9]{9}$/,\n examples: ['U193683453']\n}\nexport const anyRule74 = {\n title: '大写字母,小写字母,数字,特殊符号 `@#$%^&*`~()-+=` 中任意3项密码',\n rule: /^(?![a-zA-Z]+$)(?![A-Z0-9]+$)(?![A-Z\\W_!@#$%^&*`~()-+=]+$)(?![a-z0-9]+$)(?![a-z\\W_!@#$%^&*`~()-+=]+$)(?![0-9\\W_!@#$%^&*`~()-+=]+$)[a-zA-Z0-9\\W_!@#$%^&*`~()-+=]/,\n examples: ['a1@', 'A1@', 'Aa@']\n}\nexport const anyRule75 = {\n title: 'ASCII码表中的全部的特殊字符',\n rule: /[\\x21-\\x2F\\x3A-\\x40\\x5B-\\x60\\x7B-\\x7E]+/,\n examples: [\"[\", \".\", \"^\", \"&3%\"]\n}\nexport const anyRule76 = {\n title: '正整数,不包含0',\n rule: /^\\+?[1-9]\\d*$/,\n examples: [1231]\n}\nexport const anyRule77 = {\n title: '负整数,不包含0',\n rule: /^-[1-9]\\d*$/,\n examples: [-1231]\n}\nexport const anyRule78 = {\n title: '整数',\n rule: /^(?:0|(?:-?[1-9]\\d*))$/,\n examples: [-1231, 123, 0],\n counterExamples: ['01']\n}\nexport const anyRule79 = {\n title: '浮点数',\n rule: /^(-?[1-9]\\d*\\.\\d+|-?0\\.\\d*[1-9]\\d*|0\\.0+)$/,\n examples: [\"1.23\", \"-1.01\", \"0.00\"]\n // allow \"1.23\", allow \"-0.1\", allow \"0.00\", ban \"-0.00\", ban \"2.\", allow \"2.0\"\n}\nexport const anyRule80 = {\n title: '浮点数(严格)',\n rule: /^(-?[1-9]\\d*\\.\\d+|-?0\\.\\d*[1-9])$/,\n examples: [\"1.23\", \"-1.01\"]\n // allow \"1.23\", allow \"-0.1\", ban \"2.\", ban \"2.0\"\n}\nexport const anyRule81 = {\n title: 'email(支持中文邮箱)',\n rule: /^[A-Za-z0-9\\u4e00-\\u9fa5]+@[a-zA-Z0-9_-]+(\\.[a-zA-Z0-9_-]+)+$/,\n examples: ['90203918@qq.com', 'nbilly@126.com', '啦啦啦@126.com']\n}\nexport const anyRule82 = {\n title: '域名(非网址, 不包含协议)',\n rule: /^([0-9a-zA-Z-]{1,}\\.)+([a-zA-Z]{2,})$/,\n examples: ['www.baidu.com',\n 'baidu.com',\n 'baidu.com.cn',\n 'api.baidu.com',\n 'nodejs.org',\n 'nodejs.cn'],\n counterExamples: ['http://baidu.com', 'https://baidu.com', 'www.百度.com']\n}\nexport const anyRule83 = {\n title: '军官/士兵证',\n rule: /^[\\u4E00-\\u9FA5](字第)([0-9a-zA-Z]{4,8})(号?)$/,\n examples: ['军字第2001988号', '士字第P011816X号'],\n}\nexport const anyRule84 = {\n title: '户口薄',\n rule: /(^\\d{15}$)|(^\\d{18}$)|(^\\d{17}(\\d|X|x)$)/,\n examples: ['441421999707223115'],\n}\n","'use strict';\n\n/**\n * Create a bound version of a function with a specified `this` context\n *\n * @param {Function} fn - The function to bind\n * @param {*} thisArg - The value to be passed as the `this` parameter\n * @returns {Function} A new function that will call the original function with the specified `this` context\n */\nexport default function bind(fn, thisArg) {\n return function wrap() {\n return fn.apply(thisArg, arguments);\n };\n}\n","'use strict';\n\nimport bind from './helpers/bind.js';\n\n// utils is a library of generic helper functions non-specific to axios\n\nconst {toString} = Object.prototype;\nconst {getPrototypeOf} = Object;\nconst {iterator, toStringTag} = Symbol;\n\nconst kindOf = (cache => thing => {\n const str = toString.call(thing);\n return cache[str] || (cache[str] = str.slice(8, -1).toLowerCase());\n})(Object.create(null));\n\nconst kindOfTest = (type) => {\n type = type.toLowerCase();\n return (thing) => kindOf(thing) === type\n}\n\nconst typeOfTest = type => thing => typeof thing === type;\n\n/**\n * Determine if a value is an Array\n *\n * @param {Object} val The value to test\n *\n * @returns {boolean} True if value is an Array, otherwise false\n */\nconst {isArray} = Array;\n\n/**\n * Determine if a value is undefined\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if the value is undefined, otherwise false\n */\nconst isUndefined = typeOfTest('undefined');\n\n/**\n * Determine if a value is a Buffer\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a Buffer, otherwise false\n */\nfunction isBuffer(val) {\n return val !== null && !isUndefined(val) && val.constructor !== null && !isUndefined(val.constructor)\n && isFunction(val.constructor.isBuffer) && val.constructor.isBuffer(val);\n}\n\n/**\n * Determine if a value is an ArrayBuffer\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is an ArrayBuffer, otherwise false\n */\nconst isArrayBuffer = kindOfTest('ArrayBuffer');\n\n\n/**\n * Determine if a value is a view on an ArrayBuffer\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a view on an ArrayBuffer, otherwise false\n */\nfunction isArrayBufferView(val) {\n let result;\n if ((typeof ArrayBuffer !== 'undefined') && (ArrayBuffer.isView)) {\n result = ArrayBuffer.isView(val);\n } else {\n result = (val) && (val.buffer) && (isArrayBuffer(val.buffer));\n }\n return result;\n}\n\n/**\n * Determine if a value is a String\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a String, otherwise false\n */\nconst isString = typeOfTest('string');\n\n/**\n * Determine if a value is a Function\n *\n * @param {*} val The value to test\n * @returns {boolean} True if value is a Function, otherwise false\n */\nconst isFunction = typeOfTest('function');\n\n/**\n * Determine if a value is a Number\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a Number, otherwise false\n */\nconst isNumber = typeOfTest('number');\n\n/**\n * Determine if a value is an Object\n *\n * @param {*} thing The value to test\n *\n * @returns {boolean} True if value is an Object, otherwise false\n */\nconst isObject = (thing) => thing !== null && typeof thing === 'object';\n\n/**\n * Determine if a value is a Boolean\n *\n * @param {*} thing The value to test\n * @returns {boolean} True if value is a Boolean, otherwise false\n */\nconst isBoolean = thing => thing === true || thing === false;\n\n/**\n * Determine if a value is a plain Object\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a plain Object, otherwise false\n */\nconst isPlainObject = (val) => {\n if (kindOf(val) !== 'object') {\n return false;\n }\n\n const prototype = getPrototypeOf(val);\n return (prototype === null || prototype === Object.prototype || Object.getPrototypeOf(prototype) === null) && !(toStringTag in val) && !(iterator in val);\n}\n\n/**\n * Determine if a value is an empty object (safely handles Buffers)\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is an empty object, otherwise false\n */\nconst isEmptyObject = (val) => {\n // Early return for non-objects or Buffers to prevent RangeError\n if (!isObject(val) || isBuffer(val)) {\n return false;\n }\n\n try {\n return Object.keys(val).length === 0 && Object.getPrototypeOf(val) === Object.prototype;\n } catch (e) {\n // Fallback for any other objects that might cause RangeError with Object.keys()\n return false;\n }\n}\n\n/**\n * Determine if a value is a Date\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a Date, otherwise false\n */\nconst isDate = kindOfTest('Date');\n\n/**\n * Determine if a value is a File\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a File, otherwise false\n */\nconst isFile = kindOfTest('File');\n\n/**\n * Determine if a value is a Blob\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a Blob, otherwise false\n */\nconst isBlob = kindOfTest('Blob');\n\n/**\n * Determine if a value is a FileList\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a File, otherwise false\n */\nconst isFileList = kindOfTest('FileList');\n\n/**\n * Determine if a value is a Stream\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a Stream, otherwise false\n */\nconst isStream = (val) => isObject(val) && isFunction(val.pipe);\n\n/**\n * Determine if a value is a FormData\n *\n * @param {*} thing The value to test\n *\n * @returns {boolean} True if value is an FormData, otherwise false\n */\nconst isFormData = (thing) => {\n let kind;\n return thing && (\n (typeof FormData === 'function' && thing instanceof FormData) || (\n isFunction(thing.append) && (\n (kind = kindOf(thing)) === 'formdata' ||\n // detect form-data instance\n (kind === 'object' && isFunction(thing.toString) && thing.toString() === '[object FormData]')\n )\n )\n )\n}\n\n/**\n * Determine if a value is a URLSearchParams object\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a URLSearchParams object, otherwise false\n */\nconst isURLSearchParams = kindOfTest('URLSearchParams');\n\nconst [isReadableStream, isRequest, isResponse, isHeaders] = ['ReadableStream', 'Request', 'Response', 'Headers'].map(kindOfTest);\n\n/**\n * Trim excess whitespace off the beginning and end of a string\n *\n * @param {String} str The String to trim\n *\n * @returns {String} The String freed of excess whitespace\n */\nconst trim = (str) => str.trim ?\n str.trim() : str.replace(/^[\\s\\uFEFF\\xA0]+|[\\s\\uFEFF\\xA0]+$/g, '');\n\n/**\n * Iterate over an Array or an Object invoking a function for each item.\n *\n * If `obj` is an Array callback will be called passing\n * the value, index, and complete array for each item.\n *\n * If 'obj' is an Object callback will be called passing\n * the value, key, and complete object for each property.\n *\n * @param {Object|Array} obj The object to iterate\n * @param {Function} fn The callback to invoke for each item\n *\n * @param {Boolean} [allOwnKeys = false]\n * @returns {any}\n */\nfunction forEach(obj, fn, {allOwnKeys = false} = {}) {\n // Don't bother if no value provided\n if (obj === null || typeof obj === 'undefined') {\n return;\n }\n\n let i;\n let l;\n\n // Force an array if not already something iterable\n if (typeof obj !== 'object') {\n /*eslint no-param-reassign:0*/\n obj = [obj];\n }\n\n if (isArray(obj)) {\n // Iterate over array values\n for (i = 0, l = obj.length; i < l; i++) {\n fn.call(null, obj[i], i, obj);\n }\n } else {\n // Buffer check\n if (isBuffer(obj)) {\n return;\n }\n\n // Iterate over object keys\n const keys = allOwnKeys ? Object.getOwnPropertyNames(obj) : Object.keys(obj);\n const len = keys.length;\n let key;\n\n for (i = 0; i < len; i++) {\n key = keys[i];\n fn.call(null, obj[key], key, obj);\n }\n }\n}\n\nfunction findKey(obj, key) {\n if (isBuffer(obj)){\n return null;\n }\n\n key = key.toLowerCase();\n const keys = Object.keys(obj);\n let i = keys.length;\n let _key;\n while (i-- > 0) {\n _key = keys[i];\n if (key === _key.toLowerCase()) {\n return _key;\n }\n }\n return null;\n}\n\nconst _global = (() => {\n /*eslint no-undef:0*/\n if (typeof globalThis !== \"undefined\") return globalThis;\n return typeof self !== \"undefined\" ? self : (typeof window !== 'undefined' ? window : global)\n})();\n\nconst isContextDefined = (context) => !isUndefined(context) && context !== _global;\n\n/**\n * Accepts varargs expecting each argument to be an object, then\n * immutably merges the properties of each object and returns result.\n *\n * When multiple objects contain the same key the later object in\n * the arguments list will take precedence.\n *\n * Example:\n *\n * ```js\n * var result = merge({foo: 123}, {foo: 456});\n * console.log(result.foo); // outputs 456\n * ```\n *\n * @param {Object} obj1 Object to merge\n *\n * @returns {Object} Result of all merge properties\n */\nfunction merge(/* obj1, obj2, obj3, ... */) {\n const {caseless, skipUndefined} = isContextDefined(this) && this || {};\n const result = {};\n const assignValue = (val, key) => {\n const targetKey = caseless && findKey(result, key) || key;\n if (isPlainObject(result[targetKey]) && isPlainObject(val)) {\n result[targetKey] = merge(result[targetKey], val);\n } else if (isPlainObject(val)) {\n result[targetKey] = merge({}, val);\n } else if (isArray(val)) {\n result[targetKey] = val.slice();\n } else if (!skipUndefined || !isUndefined(val)) {\n result[targetKey] = val;\n }\n }\n\n for (let i = 0, l = arguments.length; i < l; i++) {\n arguments[i] && forEach(arguments[i], assignValue);\n }\n return result;\n}\n\n/**\n * Extends object a by mutably adding to it the properties of object b.\n *\n * @param {Object} a The object to be extended\n * @param {Object} b The object to copy properties from\n * @param {Object} thisArg The object to bind function to\n *\n * @param {Boolean} [allOwnKeys]\n * @returns {Object} The resulting value of object a\n */\nconst extend = (a, b, thisArg, {allOwnKeys}= {}) => {\n forEach(b, (val, key) => {\n if (thisArg && isFunction(val)) {\n a[key] = bind(val, thisArg);\n } else {\n a[key] = val;\n }\n }, {allOwnKeys});\n return a;\n}\n\n/**\n * Remove byte order marker. This catches EF BB BF (the UTF-8 BOM)\n *\n * @param {string} content with BOM\n *\n * @returns {string} content value without BOM\n */\nconst stripBOM = (content) => {\n if (content.charCodeAt(0) === 0xFEFF) {\n content = content.slice(1);\n }\n return content;\n}\n\n/**\n * Inherit the prototype methods from one constructor into another\n * @param {function} constructor\n * @param {function} superConstructor\n * @param {object} [props]\n * @param {object} [descriptors]\n *\n * @returns {void}\n */\nconst inherits = (constructor, superConstructor, props, descriptors) => {\n constructor.prototype = Object.create(superConstructor.prototype, descriptors);\n constructor.prototype.constructor = constructor;\n Object.defineProperty(constructor, 'super', {\n value: superConstructor.prototype\n });\n props && Object.assign(constructor.prototype, props);\n}\n\n/**\n * Resolve object with deep prototype chain to a flat object\n * @param {Object} sourceObj source object\n * @param {Object} [destObj]\n * @param {Function|Boolean} [filter]\n * @param {Function} [propFilter]\n *\n * @returns {Object}\n */\nconst toFlatObject = (sourceObj, destObj, filter, propFilter) => {\n let props;\n let i;\n let prop;\n const merged = {};\n\n destObj = destObj || {};\n // eslint-disable-next-line no-eq-null,eqeqeq\n if (sourceObj == null) return destObj;\n\n do {\n props = Object.getOwnPropertyNames(sourceObj);\n i = props.length;\n while (i-- > 0) {\n prop = props[i];\n if ((!propFilter || propFilter(prop, sourceObj, destObj)) && !merged[prop]) {\n destObj[prop] = sourceObj[prop];\n merged[prop] = true;\n }\n }\n sourceObj = filter !== false && getPrototypeOf(sourceObj);\n } while (sourceObj && (!filter || filter(sourceObj, destObj)) && sourceObj !== Object.prototype);\n\n return destObj;\n}\n\n/**\n * Determines whether a string ends with the characters of a specified string\n *\n * @param {String} str\n * @param {String} searchString\n * @param {Number} [position= 0]\n *\n * @returns {boolean}\n */\nconst endsWith = (str, searchString, position) => {\n str = String(str);\n if (position === undefined || position > str.length) {\n position = str.length;\n }\n position -= searchString.length;\n const lastIndex = str.indexOf(searchString, position);\n return lastIndex !== -1 && lastIndex === position;\n}\n\n\n/**\n * Returns new array from array like object or null if failed\n *\n * @param {*} [thing]\n *\n * @returns {?Array}\n */\nconst toArray = (thing) => {\n if (!thing) return null;\n if (isArray(thing)) return thing;\n let i = thing.length;\n if (!isNumber(i)) return null;\n const arr = new Array(i);\n while (i-- > 0) {\n arr[i] = thing[i];\n }\n return arr;\n}\n\n/**\n * Checking if the Uint8Array exists and if it does, it returns a function that checks if the\n * thing passed in is an instance of Uint8Array\n *\n * @param {TypedArray}\n *\n * @returns {Array}\n */\n// eslint-disable-next-line func-names\nconst isTypedArray = (TypedArray => {\n // eslint-disable-next-line func-names\n return thing => {\n return TypedArray && thing instanceof TypedArray;\n };\n})(typeof Uint8Array !== 'undefined' && getPrototypeOf(Uint8Array));\n\n/**\n * For each entry in the object, call the function with the key and value.\n *\n * @param {Object<any, any>} obj - The object to iterate over.\n * @param {Function} fn - The function to call for each entry.\n *\n * @returns {void}\n */\nconst forEachEntry = (obj, fn) => {\n const generator = obj && obj[iterator];\n\n const _iterator = generator.call(obj);\n\n let result;\n\n while ((result = _iterator.next()) && !result.done) {\n const pair = result.value;\n fn.call(obj, pair[0], pair[1]);\n }\n}\n\n/**\n * It takes a regular expression and a string, and returns an array of all the matches\n *\n * @param {string} regExp - The regular expression to match against.\n * @param {string} str - The string to search.\n *\n * @returns {Array<boolean>}\n */\nconst matchAll = (regExp, str) => {\n let matches;\n const arr = [];\n\n while ((matches = regExp.exec(str)) !== null) {\n arr.push(matches);\n }\n\n return arr;\n}\n\n/* Checking if the kindOfTest function returns true when passed an HTMLFormElement. */\nconst isHTMLForm = kindOfTest('HTMLFormElement');\n\nconst toCamelCase = str => {\n return str.toLowerCase().replace(/[-_\\s]([a-z\\d])(\\w*)/g,\n function replacer(m, p1, p2) {\n return p1.toUpperCase() + p2;\n }\n );\n};\n\n/* Creating a function that will check if an object has a property. */\nconst hasOwnProperty = (({hasOwnProperty}) => (obj, prop) => hasOwnProperty.call(obj, prop))(Object.prototype);\n\n/**\n * Determine if a value is a RegExp object\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a RegExp object, otherwise false\n */\nconst isRegExp = kindOfTest('RegExp');\n\nconst reduceDescriptors = (obj, reducer) => {\n const descriptors = Object.getOwnPropertyDescriptors(obj);\n const reducedDescriptors = {};\n\n forEach(descriptors, (descriptor, name) => {\n let ret;\n if ((ret = reducer(descriptor, name, obj)) !== false) {\n reducedDescriptors[name] = ret || descriptor;\n }\n });\n\n Object.defineProperties(obj, reducedDescriptors);\n}\n\n/**\n * Makes all methods read-only\n * @param {Object} obj\n */\n\nconst freezeMethods = (obj) => {\n reduceDescriptors(obj, (descriptor, name) => {\n // skip restricted props in strict mode\n if (isFunction(obj) && ['arguments', 'caller', 'callee'].indexOf(name) !== -1) {\n return false;\n }\n\n const value = obj[name];\n\n if (!isFunction(value)) return;\n\n descriptor.enumerable = false;\n\n if ('writable' in descriptor) {\n descriptor.writable = false;\n return;\n }\n\n if (!descriptor.set) {\n descriptor.set = () => {\n throw Error('Can not rewrite read-only method \\'' + name + '\\'');\n };\n }\n });\n}\n\nconst toObjectSet = (arrayOrString, delimiter) => {\n const obj = {};\n\n const define = (arr) => {\n arr.forEach(value => {\n obj[value] = true;\n });\n }\n\n isArray(arrayOrString) ? define(arrayOrString) : define(String(arrayOrString).split(delimiter));\n\n return obj;\n}\n\nconst noop = () => {}\n\nconst toFiniteNumber = (value, defaultValue) => {\n return value != null && Number.isFinite(value = +value) ? value : defaultValue;\n}\n\n\n\n/**\n * If the thing is a FormData object, return true, otherwise return false.\n *\n * @param {unknown} thing - The thing to check.\n *\n * @returns {boolean}\n */\nfunction isSpecCompliantForm(thing) {\n return !!(thing && isFunction(thing.append) && thing[toStringTag] === 'FormData' && thing[iterator]);\n}\n\nconst toJSONObject = (obj) => {\n const stack = new Array(10);\n\n const visit = (source, i) => {\n\n if (isObject(source)) {\n if (stack.indexOf(source) >= 0) {\n return;\n }\n\n //Buffer check\n if (isBuffer(source)) {\n return source;\n }\n\n if(!('toJSON' in source)) {\n stack[i] = source;\n const target = isArray(source) ? [] : {};\n\n forEach(source, (value, key) => {\n const reducedValue = visit(value, i + 1);\n !isUndefined(reducedValue) && (target[key] = reducedValue);\n });\n\n stack[i] = undefined;\n\n return target;\n }\n }\n\n return source;\n }\n\n return visit(obj, 0);\n}\n\nconst isAsyncFn = kindOfTest('AsyncFunction');\n\nconst isThenable = (thing) =>\n thing && (isObject(thing) || isFunction(thing)) && isFunction(thing.then) && isFunction(thing.catch);\n\n// original code\n// https://github.com/DigitalBrainJS/AxiosPromise/blob/16deab13710ec09779922131f3fa5954320f83ab/lib/utils.js#L11-L34\n\nconst _setImmediate = ((setImmediateSupported, postMessageSupported) => {\n if (setImmediateSupported) {\n return setImmediate;\n }\n\n return postMessageSupported ? ((token, callbacks) => {\n _global.addEventListener(\"message\", ({source, data}) => {\n if (source === _global && data === token) {\n callbacks.length && callbacks.shift()();\n }\n }, false);\n\n return (cb) => {\n callbacks.push(cb);\n _global.postMessage(token, \"*\");\n }\n })(`axios@${Math.random()}`, []) : (cb) => setTimeout(cb);\n})(\n typeof setImmediate === 'function',\n isFunction(_global.postMessage)\n);\n\nconst asap = typeof queueMicrotask !== 'undefined' ?\n queueMicrotask.bind(_global) : ( typeof process !== 'undefined' && process.nextTick || _setImmediate);\n\n// *********************\n\n\nconst isIterable = (thing) => thing != null && isFunction(thing[iterator]);\n\n\nexport default {\n isArray,\n isArrayBuffer,\n isBuffer,\n isFormData,\n isArrayBufferView,\n isString,\n isNumber,\n isBoolean,\n isObject,\n isPlainObject,\n isEmptyObject,\n isReadableStream,\n isRequest,\n isResponse,\n isHeaders,\n isUndefined,\n isDate,\n isFile,\n isBlob,\n isRegExp,\n isFunction,\n isStream,\n isURLSearchParams,\n isTypedArray,\n isFileList,\n forEach,\n merge,\n extend,\n trim,\n stripBOM,\n inherits,\n toFlatObject,\n kindOf,\n kindOfTest,\n endsWith,\n toArray,\n forEachEntry,\n matchAll,\n isHTMLForm,\n hasOwnProperty,\n hasOwnProp: hasOwnProperty, // an alias to avoid ESLint no-prototype-builtins detection\n reduceDescriptors,\n freezeMethods,\n toObjectSet,\n toCamelCase,\n noop,\n toFiniteNumber,\n findKey,\n global: _global,\n isContextDefined,\n isSpecCompliantForm,\n toJSONObject,\n isAsyncFn,\n isThenable,\n setImmediate: _setImmediate,\n asap,\n isIterable\n};\n","'use strict';\n\nimport utils from '../utils.js';\n\n/**\n * Create an Error with the specified message, config, error code, request and response.\n *\n * @param {string} message The error message.\n * @param {string} [code] The error code (for example, 'ECONNABORTED').\n * @param {Object} [config] The config.\n * @param {Object} [request] The request.\n * @param {Object} [response] The response.\n *\n * @returns {Error} The created error.\n */\nfunction AxiosError(message, code, config, request, response) {\n Error.call(this);\n\n if (Error.captureStackTrace) {\n Error.captureStackTrace(this, this.constructor);\n } else {\n this.stack = (new Error()).stack;\n }\n\n this.message = message;\n this.name = 'AxiosError';\n code && (this.code = code);\n config && (this.config = config);\n request && (this.request = request);\n if (response) {\n this.response = response;\n this.status = response.status ? response.status : null;\n }\n}\n\nutils.inherits(AxiosError, Error, {\n toJSON: function toJSON() {\n return {\n // Standard\n message: this.message,\n name: this.name,\n // Microsoft\n description: this.description,\n number: this.number,\n // Mozilla\n fileName: this.fileName,\n lineNumber: this.lineNumber,\n columnNumber: this.columnNumber,\n stack: this.stack,\n // Axios\n config: utils.toJSONObject(this.config),\n code: this.code,\n status: this.status\n };\n }\n});\n\nconst prototype = AxiosError.prototype;\nconst descriptors = {};\n\n[\n 'ERR_BAD_OPTION_VALUE',\n 'ERR_BAD_OPTION',\n 'ECONNABORTED',\n 'ETIMEDOUT',\n 'ERR_NETWORK',\n 'ERR_FR_TOO_MANY_REDIRECTS',\n 'ERR_DEPRECATED',\n 'ERR_BAD_RESPONSE',\n 'ERR_BAD_REQUEST',\n 'ERR_CANCELED',\n 'ERR_NOT_SUPPORT',\n 'ERR_INVALID_URL'\n// eslint-disable-next-line func-names\n].forEach(code => {\n descriptors[code] = {value: code};\n});\n\nObject.defineProperties(AxiosError, descriptors);\nObject.defineProperty(prototype, 'isAxiosError', {value: true});\n\n// eslint-disable-next-line func-names\nAxiosError.from = (error, code, config, request, response, customProps) => {\n const axiosError = Object.create(prototype);\n\n utils.toFlatObject(error, axiosError, function filter(obj) {\n return obj !== Error.prototype;\n }, prop => {\n return prop !== 'isAxiosError';\n });\n\n const msg = error && error.message ? error.message : 'Error';\n\n // Prefer explicit code; otherwise copy the low-level error's code (e.g. ECONNREFUSED)\n const errCode = code == null && error ? error.code : code;\n AxiosError.call(axiosError, msg, errCode, config, request, response);\n\n // Chain the original error on the standard field; non-enumerable to avoid JSON noise\n if (error && axiosError.cause == null) {\n Object.defineProperty(axiosError, 'cause', { value: error, configurable: true });\n }\n\n axiosError.name = (error && error.name) || 'Error';\n\n customProps && Object.assign(axiosError, customProps);\n\n return axiosError;\n};\n\nexport default AxiosError;\n","var Stream = require('stream').Stream;\nvar util = require('util');\n\nmodule.exports = DelayedStream;\nfunction DelayedStream() {\n this.source = null;\n this.dataSize = 0;\n this.maxDataSize = 1024 * 1024;\n this.pauseStream = true;\n\n this._maxDataSizeExceeded = false;\n this._released = false;\n this._bufferedEvents = [];\n}\nutil.inherits(DelayedStream, Stream);\n\nDelayedStream.create = function(source, options) {\n var delayedStream = new this();\n\n options = options || {};\n for (var option in options) {\n delayedStream[option] = options[option];\n }\n\n delayedStream.source = source;\n\n var realEmit = source.emit;\n source.emit = function() {\n delayedStream._handleEmit(arguments);\n return realEmit.apply(source, arguments);\n };\n\n source.on('error', function() {});\n if (delayedStream.pauseStream) {\n source.pause();\n }\n\n return delayedStream;\n};\n\nObject.defineProperty(DelayedStream.prototype, 'readable', {\n configurable: true,\n enumerable: true,\n get: function() {\n return this.source.readable;\n }\n});\n\nDelayedStream.prototype.setEncoding = function() {\n return this.source.setEncoding.apply(this.source, arguments);\n};\n\nDelayedStream.prototype.resume = function() {\n if (!this._released) {\n this.release();\n }\n\n this.source.resume();\n};\n\nDelayedStream.prototype.pause = function() {\n this.source.pause();\n};\n\nDelayedStream.prototype.release = function() {\n this._released = true;\n\n this._bufferedEvents.forEach(function(args) {\n this.emit.apply(this, args);\n }.bind(this));\n this._bufferedEvents = [];\n};\n\nDelayedStream.prototype.pipe = function() {\n var r = Stream.prototype.pipe.apply(this, arguments);\n this.resume();\n return r;\n};\n\nDelayedStream.prototype._handleEmit = function(args) {\n if (this._released) {\n this.emit.apply(this, args);\n return;\n }\n\n if (args[0] === 'data') {\n this.dataSize += args[1].length;\n this._checkIfMaxDataSizeExceeded();\n }\n\n this._bufferedEvents.push(args);\n};\n\nDelayedStream.prototype._checkIfMaxDataSizeExceeded = function() {\n if (this._maxDataSizeExceeded) {\n return;\n }\n\n if (this.dataSize <= this.maxDataSize) {\n return;\n }\n\n this._maxDataSizeExceeded = true;\n var message =\n 'DelayedStream#maxDataSize of ' + this.maxDataSize + ' bytes exceeded.'\n this.emit('error', new Error(message));\n};\n","var util = require('util');\nvar Stream = require('stream').Stream;\nvar DelayedStream = require('delayed-stream');\n\nmodule.exports = CombinedStream;\nfunction CombinedStream() {\n this.writable = false;\n this.readable = true;\n this.dataSize = 0;\n this.maxDataSize = 2 * 1024 * 1024;\n this.pauseStreams = true;\n\n this._released = false;\n this._streams = [];\n this._currentStream = null;\n this._insideLoop = false;\n this._pendingNext = false;\n}\nutil.inherits(CombinedStream, Stream);\n\nCombinedStream.create = function(options) {\n var combinedStream = new this();\n\n options = options || {};\n for (var option in options) {\n combinedStream[option] = options[option];\n }\n\n return combinedStream;\n};\n\nCombinedStream.isStreamLike = function(stream) {\n return (typeof stream !== 'function')\n && (typeof stream !== 'string')\n && (typeof stream !== 'boolean')\n && (typeof stream !== 'number')\n && (!Buffer.isBuffer(stream));\n};\n\nCombinedStream.prototype.append = function(stream) {\n var isStreamLike = CombinedStream.isStreamLike(stream);\n\n if (isStreamLike) {\n if (!(stream instanceof DelayedStream)) {\n var newStream = DelayedStream.create(stream, {\n maxDataSize: Infinity,\n pauseStream: this.pauseStreams,\n });\n stream.on('data', this._checkDataSize.bind(this));\n stream = newStream;\n }\n\n this._handleErrors(stream);\n\n if (this.pauseStreams) {\n stream.pause();\n }\n }\n\n this._streams.push(stream);\n return this;\n};\n\nCombinedStream.prototype.pipe = function(dest, options) {\n Stream.prototype.pipe.call(this, dest, options);\n this.resume();\n return dest;\n};\n\nCombinedStream.prototype._getNext = function() {\n this._currentStream = null;\n\n if (this._insideLoop) {\n this._pendingNext = true;\n return; // defer call\n }\n\n this._insideLoop = true;\n try {\n do {\n this._pendingNext = false;\n this._realGetNext();\n } while (this._pendingNext);\n } finally {\n this._insideLoop = false;\n }\n};\n\nCombinedStream.prototype._realGetNext = function() {\n var stream = this._streams.shift();\n\n\n if (typeof stream == 'undefined') {\n this.end();\n return;\n }\n\n if (typeof stream !== 'function') {\n this._pipeNext(stream);\n return;\n }\n\n var getStream = stream;\n getStream(function(stream) {\n var isStreamLike = CombinedStream.isStreamLike(stream);\n if (isStreamLike) {\n stream.on('data', this._checkDataSize.bind(this));\n this._handleErrors(stream);\n }\n\n this._pipeNext(stream);\n }.bind(this));\n};\n\nCombinedStream.prototype._pipeNext = function(stream) {\n this._currentStream = stream;\n\n var isStreamLike = CombinedStream.isStreamLike(stream);\n if (isStreamLike) {\n stream.on('end', this._getNext.bind(this));\n stream.pipe(this, {end: false});\n return;\n }\n\n var value = stream;\n this.write(value);\n this._getNext();\n};\n\nCombinedStream.prototype._handleErrors = function(stream) {\n var self = this;\n stream.on('error', function(err) {\n self._emitError(err);\n });\n};\n\nCombinedStream.prototype.write = function(data) {\n this.emit('data', data);\n};\n\nCombinedStream.prototype.pause = function() {\n if (!this.pauseStreams) {\n return;\n }\n\n if(this.pauseStreams && this._currentStream && typeof(this._currentStream.pause) == 'function') this._currentStream.pause();\n this.emit('pause');\n};\n\nCombinedStream.prototype.resume = function() {\n if (!this._released) {\n this._released = true;\n this.writable = true;\n this._getNext();\n }\n\n if(this.pauseStreams && this._currentStream && typeof(this._currentStream.resume) == 'function') this._currentStream.resume();\n this.emit('resume');\n};\n\nCombinedStream.prototype.end = function() {\n this._reset();\n this.emit('end');\n};\n\nCombinedStream.prototype.destroy = function() {\n this._reset();\n this.emit('close');\n};\n\nCombinedStream.prototype._reset = function() {\n this.writable = false;\n this._streams = [];\n this._currentStream = null;\n};\n\nCombinedStream.prototype._checkDataSize = function() {\n this._updateDataSize();\n if (this.dataSize <= this.maxDataSize) {\n return;\n }\n\n var message =\n 'DelayedStream#maxDataSize of ' + this.maxDataSize + ' bytes exceeded.';\n this._emitError(new Error(message));\n};\n\nCombinedStream.prototype._updateDataSize = function() {\n this.dataSize = 0;\n\n var self = this;\n this._streams.forEach(function(stream) {\n if (!stream.dataSize) {\n return;\n }\n\n self.dataSize += stream.dataSize;\n });\n\n if (this._currentStream && this._currentStream.dataSize) {\n this.dataSize += this._currentStream.dataSize;\n }\n};\n\nCombinedStream.prototype._emitError = function(err) {\n this._reset();\n this.emit('error', err);\n};\n","{\n \"application/1d-interleaved-parityfec\": {\n \"source\": \"iana\"\n },\n \"application/3gpdash-qoe-report+xml\": {\n \"source\": \"iana\",\n \"charset\": \"UTF-8\",\n \"compressible\": true\n },\n \"application/3gpp-ims+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/3gpphal+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/3gpphalforms+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/a2l\": {\n \"source\": \"iana\"\n },\n \"application/ace+cbor\": {\n \"source\": \"iana\"\n },\n \"application/activemessage\": {\n \"source\": \"iana\"\n },\n \"application/activity+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/alto-costmap+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/alto-costmapfilter+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/alto-directory+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/alto-endpointcost+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/alto-endpointcostparams+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/alto-endpointprop+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/alto-endpointpropparams+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/alto-error+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/alto-networkmap+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/alto-networkmapfilter+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/alto-updatestreamcontrol+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/alto-updatestreamparams+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/aml\": {\n \"source\": \"iana\"\n },\n \"application/andrew-inset\": {\n \"source\": \"iana\",\n \"extensions\": [\"ez\"]\n },\n \"application/applefile\": {\n \"source\": \"iana\"\n },\n \"application/applixware\": {\n \"source\": \"apache\",\n \"extensions\": [\"aw\"]\n },\n \"application/at+jwt\": {\n \"source\": \"iana\"\n },\n \"application/atf\": {\n \"source\": \"iana\"\n },\n \"application/atfx\": {\n \"source\": \"iana\"\n },\n \"application/atom+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"atom\"]\n },\n \"application/atomcat+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"atomcat\"]\n },\n \"application/atomdeleted+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"atomdeleted\"]\n },\n \"application/atomicmail\": {\n \"source\": \"iana\"\n },\n \"application/atomsvc+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"atomsvc\"]\n },\n \"application/atsc-dwd+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"dwd\"]\n },\n \"application/atsc-dynamic-event-message\": {\n \"source\": \"iana\"\n },\n \"application/atsc-held+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"held\"]\n },\n \"application/atsc-rdt+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/atsc-rsat+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"rsat\"]\n },\n \"application/atxml\": {\n \"source\": \"iana\"\n },\n \"application/auth-policy+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/bacnet-xdd+zip\": {\n \"source\": \"iana\",\n \"compressible\": false\n },\n \"application/batch-smtp\": {\n \"source\": \"iana\"\n },\n \"application/bdoc\": {\n \"compressible\": false,\n \"extensions\": [\"bdoc\"]\n },\n \"application/beep+xml\": {\n \"source\": \"iana\",\n \"charset\": \"UTF-8\",\n \"compressible\": true\n },\n \"application/calendar+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/calendar+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"xcs\"]\n },\n \"application/call-completion\": {\n \"source\": \"iana\"\n },\n \"application/cals-1840\": {\n \"source\": \"iana\"\n },\n \"application/captive+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/cbor\": {\n \"source\": \"iana\"\n },\n \"application/cbor-seq\": {\n \"source\": \"iana\"\n },\n \"application/cccex\": {\n \"source\": \"iana\"\n },\n \"application/ccmp+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/ccxml+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"ccxml\"]\n },\n \"application/cdfx+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"cdfx\"]\n },\n \"application/cdmi-capability\": {\n \"source\": \"iana\",\n \"extensions\": [\"cdmia\"]\n },\n \"application/cdmi-container\": {\n \"source\": \"iana\",\n \"extensions\": [\"cdmic\"]\n },\n \"application/cdmi-domain\": {\n \"source\": \"iana\",\n \"extensions\": [\"cdmid\"]\n },\n \"application/cdmi-object\": {\n \"source\": \"iana\",\n \"extensions\": [\"cdmio\"]\n },\n \"application/cdmi-queue\": {\n \"source\": \"iana\",\n \"extensions\": [\"cdmiq\"]\n },\n \"application/cdni\": {\n \"source\": \"iana\"\n },\n \"application/cea\": {\n \"source\": \"iana\"\n },\n \"application/cea-2018+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/cellml+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/cfw\": {\n \"source\": \"iana\"\n },\n \"application/city+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/clr\": {\n \"source\": \"iana\"\n },\n \"application/clue+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/clue_info+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/cms\": {\n \"source\": \"iana\"\n },\n \"application/cnrp+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/coap-group+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/coap-payload\": {\n \"source\": \"iana\"\n },\n \"application/commonground\": {\n \"source\": \"iana\"\n },\n \"application/conference-info+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/cose\": {\n \"source\": \"iana\"\n },\n \"application/cose-key\": {\n \"source\": \"iana\"\n },\n \"application/cose-key-set\": {\n \"source\": \"iana\"\n },\n \"application/cpl+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"cpl\"]\n },\n \"application/csrattrs\": {\n \"source\": \"iana\"\n },\n \"application/csta+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/cstadata+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/csvm+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/cu-seeme\": {\n \"source\": \"apache\",\n \"extensions\": [\"cu\"]\n },\n \"application/cwt\": {\n \"source\": \"iana\"\n },\n \"application/cybercash\": {\n \"source\": \"iana\"\n },\n \"application/dart\": {\n \"compressible\": true\n },\n \"application/dash+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"mpd\"]\n },\n \"application/dash-patch+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"mpp\"]\n },\n \"application/dashdelta\": {\n \"source\": \"iana\"\n },\n \"application/davmount+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"davmount\"]\n },\n \"application/dca-rft\": {\n \"source\": \"iana\"\n },\n \"application/dcd\": {\n \"source\": \"iana\"\n },\n \"application/dec-dx\": {\n \"source\": \"iana\"\n },\n \"application/dialog-info+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/dicom\": {\n \"source\": \"iana\"\n },\n \"application/dicom+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/dicom+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/dii\": {\n \"source\": \"iana\"\n },\n \"application/dit\": {\n \"source\": \"iana\"\n },\n \"application/dns\": {\n \"source\": \"iana\"\n },\n \"application/dns+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/dns-message\": {\n \"source\": \"iana\"\n },\n \"application/docbook+xml\": {\n \"source\": \"apache\",\n \"compressible\": true,\n \"extensions\": [\"dbk\"]\n },\n \"application/dots+cbor\": {\n \"source\": \"iana\"\n },\n \"application/dskpp+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/dssc+der\": {\n \"source\": \"iana\",\n \"extensions\": [\"dssc\"]\n },\n \"application/dssc+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"xdssc\"]\n },\n \"application/dvcs\": {\n \"source\": \"iana\"\n },\n \"application/ecmascript\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"es\",\"ecma\"]\n },\n \"application/edi-consent\": {\n \"source\": \"iana\"\n },\n \"application/edi-x12\": {\n \"source\": \"iana\",\n \"compressible\": false\n },\n \"application/edifact\": {\n \"source\": \"iana\",\n \"compressible\": false\n },\n \"application/efi\": {\n \"source\": \"iana\"\n },\n \"application/elm+json\": {\n \"source\": \"iana\",\n \"charset\": \"UTF-8\",\n \"compressible\": true\n },\n \"application/elm+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/emergencycalldata.cap+xml\": {\n \"source\": \"iana\",\n \"charset\": \"UTF-8\",\n \"compressible\": true\n },\n \"application/emergencycalldata.comment+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/emergencycalldata.control+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/emergencycalldata.deviceinfo+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/emergencycalldata.ecall.msd\": {\n \"source\": \"iana\"\n },\n \"application/emergencycalldata.providerinfo+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/emergencycalldata.serviceinfo+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/emergencycalldata.subscriberinfo+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/emergencycalldata.veds+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/emma+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"emma\"]\n },\n \"application/emotionml+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"emotionml\"]\n },\n \"application/encaprtp\": {\n \"source\": \"iana\"\n },\n \"application/epp+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/epub+zip\": {\n \"source\": \"iana\",\n \"compressible\": false,\n \"extensions\": [\"epub\"]\n },\n \"application/eshop\": {\n \"source\": \"iana\"\n },\n \"application/exi\": {\n \"source\": \"iana\",\n \"extensions\": [\"exi\"]\n },\n \"application/expect-ct-report+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/express\": {\n \"source\": \"iana\",\n \"extensions\": [\"exp\"]\n },\n \"application/fastinfoset\": {\n \"source\": \"iana\"\n },\n \"application/fastsoap\": {\n \"source\": \"iana\"\n },\n \"application/fdt+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"fdt\"]\n },\n \"application/fhir+json\": {\n \"source\": \"iana\",\n \"charset\": \"UTF-8\",\n \"compressible\": true\n },\n \"application/fhir+xml\": {\n \"source\": \"iana\",\n \"charset\": \"UTF-8\",\n \"compressible\": true\n },\n \"application/fido.trusted-apps+json\": {\n \"compressible\": true\n },\n \"application/fits\": {\n \"source\": \"iana\"\n },\n \"application/flexfec\": {\n \"source\": \"iana\"\n },\n \"application/font-sfnt\": {\n \"source\": \"iana\"\n },\n \"application/font-tdpfr\": {\n \"source\": \"iana\",\n \"extensions\": [\"pfr\"]\n },\n \"application/font-woff\": {\n \"source\": \"iana\",\n \"compressible\": false\n },\n \"application/framework-attributes+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/geo+json\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"geojson\"]\n },\n \"application/geo+json-seq\": {\n \"source\": \"iana\"\n },\n \"application/geopackage+sqlite3\": {\n \"source\": \"iana\"\n },\n \"application/geoxacml+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/gltf-buffer\": {\n \"source\": \"iana\"\n },\n \"application/gml+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"gml\"]\n },\n \"application/gpx+xml\": {\n \"source\": \"apache\",\n \"compressible\": true,\n \"extensions\": [\"gpx\"]\n },\n \"application/gxf\": {\n \"source\": \"apache\",\n \"extensions\": [\"gxf\"]\n },\n \"application/gzip\": {\n \"source\": \"iana\",\n \"compressible\": false,\n \"extensions\": [\"gz\"]\n },\n \"application/h224\": {\n \"source\": \"iana\"\n },\n \"application/held+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/hjson\": {\n \"extensions\": [\"hjson\"]\n },\n \"application/http\": {\n \"source\": \"iana\"\n },\n \"application/hyperstudio\": {\n \"source\": \"iana\",\n \"extensions\": [\"stk\"]\n },\n \"application/ibe-key-request+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/ibe-pkg-reply+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/ibe-pp-data\": {\n \"source\": \"iana\"\n },\n \"application/iges\": {\n \"source\": \"iana\"\n },\n \"application/im-iscomposing+xml\": {\n \"source\": \"iana\",\n \"charset\": \"UTF-8\",\n \"compressible\": true\n },\n \"application/index\": {\n \"source\": \"iana\"\n },\n \"application/index.cmd\": {\n \"source\": \"iana\"\n },\n \"application/index.obj\": {\n \"source\": \"iana\"\n },\n \"application/index.response\": {\n \"source\": \"iana\"\n },\n \"application/index.vnd\": {\n \"source\": \"iana\"\n },\n \"application/inkml+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"ink\",\"inkml\"]\n },\n \"application/iotp\": {\n \"source\": \"iana\"\n },\n \"application/ipfix\": {\n \"source\": \"iana\",\n \"extensions\": [\"ipfix\"]\n },\n \"application/ipp\": {\n \"source\": \"iana\"\n },\n \"application/isup\": {\n \"source\": \"iana\"\n },\n \"application/its+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"its\"]\n },\n \"application/java-archive\": {\n \"source\": \"apache\",\n \"compressible\": false,\n \"extensions\": [\"jar\",\"war\",\"ear\"]\n },\n \"application/java-serialized-object\": {\n \"source\": \"apache\",\n \"compressible\": false,\n \"extensions\": [\"ser\"]\n },\n \"application/java-vm\": {\n \"source\": \"apache\",\n \"compressible\": false,\n \"extensions\": [\"class\"]\n },\n \"application/javascript\": {\n \"source\": \"iana\",\n \"charset\": \"UTF-8\",\n \"compressible\": true,\n \"extensions\": [\"js\",\"mjs\"]\n },\n \"application/jf2feed+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/jose\": {\n \"source\": \"iana\"\n },\n \"application/jose+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/jrd+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/jscalendar+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/json\": {\n \"source\": \"iana\",\n \"charset\": \"UTF-8\",\n \"compressible\": true,\n \"extensions\": [\"json\",\"map\"]\n },\n \"application/json-patch+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/json-seq\": {\n \"source\": \"iana\"\n },\n \"application/json5\": {\n \"extensions\": [\"json5\"]\n },\n \"application/jsonml+json\": {\n \"source\": \"apache\",\n \"compressible\": true,\n \"extensions\": [\"jsonml\"]\n },\n \"application/jwk+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/jwk-set+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/jwt\": {\n \"source\": \"iana\"\n },\n \"application/kpml-request+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/kpml-response+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/ld+json\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"jsonld\"]\n },\n \"application/lgr+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"lgr\"]\n },\n \"application/link-format\": {\n \"source\": \"iana\"\n },\n \"application/load-control+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/lost+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"lostxml\"]\n },\n \"application/lostsync+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/lpf+zip\": {\n \"source\": \"iana\",\n \"compressible\": false\n },\n \"application/lxf\": {\n \"source\": \"iana\"\n },\n \"application/mac-binhex40\": {\n \"source\": \"iana\",\n \"extensions\": [\"hqx\"]\n },\n \"application/mac-compactpro\": {\n \"source\": \"apache\",\n \"extensions\": [\"cpt\"]\n },\n \"application/macwriteii\": {\n \"source\": \"iana\"\n },\n \"application/mads+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"mads\"]\n },\n \"application/manifest+json\": {\n \"source\": \"iana\",\n \"charset\": \"UTF-8\",\n \"compressible\": true,\n \"extensions\": [\"webmanifest\"]\n },\n \"application/marc\": {\n \"source\": \"iana\",\n \"extensions\": [\"mrc\"]\n },\n \"application/marcxml+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"mrcx\"]\n },\n \"application/mathematica\": {\n \"source\": \"iana\",\n \"extensions\": [\"ma\",\"nb\",\"mb\"]\n },\n \"application/mathml+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"mathml\"]\n },\n \"application/mathml-content+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/mathml-presentation+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/mbms-associated-procedure-description+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/mbms-deregister+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/mbms-envelope+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/mbms-msk+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/mbms-msk-response+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/mbms-protection-description+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/mbms-reception-report+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/mbms-register+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/mbms-register-response+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/mbms-schedule+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/mbms-user-service-description+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/mbox\": {\n \"source\": \"iana\",\n \"extensions\": [\"mbox\"]\n },\n \"application/media-policy-dataset+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"mpf\"]\n },\n \"application/media_control+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/mediaservercontrol+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"mscml\"]\n },\n \"application/merge-patch+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/metalink+xml\": {\n \"source\": \"apache\",\n \"compressible\": true,\n \"extensions\": [\"metalink\"]\n },\n \"application/metalink4+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"meta4\"]\n },\n \"application/mets+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"mets\"]\n },\n \"application/mf4\": {\n \"source\": \"iana\"\n },\n \"application/mikey\": {\n \"source\": \"iana\"\n },\n \"application/mipc\": {\n \"source\": \"iana\"\n },\n \"application/missing-blocks+cbor-seq\": {\n \"source\": \"iana\"\n },\n \"application/mmt-aei+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"maei\"]\n },\n \"application/mmt-usd+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"musd\"]\n },\n \"application/mods+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"mods\"]\n },\n \"application/moss-keys\": {\n \"source\": \"iana\"\n },\n \"application/moss-signature\": {\n \"source\": \"iana\"\n },\n \"application/mosskey-data\": {\n \"source\": \"iana\"\n },\n \"application/mosskey-request\": {\n \"source\": \"iana\"\n },\n \"application/mp21\": {\n \"source\": \"iana\",\n \"extensions\": [\"m21\",\"mp21\"]\n },\n \"application/mp4\": {\n \"source\": \"iana\",\n \"extensions\": [\"mp4s\",\"m4p\"]\n },\n \"application/mpeg4-generic\": {\n \"source\": \"iana\"\n },\n \"application/mpeg4-iod\": {\n \"source\": \"iana\"\n },\n \"application/mpeg4-iod-xmt\": {\n \"source\": \"iana\"\n },\n \"application/mrb-consumer+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/mrb-publish+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/msc-ivr+xml\": {\n \"source\": \"iana\",\n \"charset\": \"UTF-8\",\n \"compressible\": true\n },\n \"application/msc-mixer+xml\": {\n \"source\": \"iana\",\n \"charset\": \"UTF-8\",\n \"compressible\": true\n },\n \"application/msword\": {\n \"source\": \"iana\",\n \"compressible\": false,\n \"extensions\": [\"doc\",\"dot\"]\n },\n \"application/mud+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/multipart-core\": {\n \"source\": \"iana\"\n },\n \"application/mxf\": {\n \"source\": \"iana\",\n \"extensions\": [\"mxf\"]\n },\n \"application/n-quads\": {\n \"source\": \"iana\",\n \"extensions\": [\"nq\"]\n },\n \"application/n-triples\": {\n \"source\": \"iana\",\n \"extensions\": [\"nt\"]\n },\n \"application/nasdata\": {\n \"source\": \"iana\"\n },\n \"application/news-checkgroups\": {\n \"source\": \"iana\",\n \"charset\": \"US-ASCII\"\n },\n \"application/news-groupinfo\": {\n \"source\": \"iana\",\n \"charset\": \"US-ASCII\"\n },\n \"application/news-transmission\": {\n \"source\": \"iana\"\n },\n \"application/nlsml+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/node\": {\n \"source\": \"iana\",\n \"extensions\": [\"cjs\"]\n },\n \"application/nss\": {\n \"source\": \"iana\"\n },\n \"application/oauth-authz-req+jwt\": {\n \"source\": \"iana\"\n },\n \"application/oblivious-dns-message\": {\n \"source\": \"iana\"\n },\n \"application/ocsp-request\": {\n \"source\": \"iana\"\n },\n \"application/ocsp-response\": {\n \"source\": \"iana\"\n },\n \"application/octet-stream\": {\n \"source\": \"iana\",\n \"compressible\": false,\n \"extensions\": [\"bin\",\"dms\",\"lrf\",\"mar\",\"so\",\"dist\",\"distz\",\"pkg\",\"bpk\",\"dump\",\"elc\",\"deploy\",\"exe\",\"dll\",\"deb\",\"dmg\",\"iso\",\"img\",\"msi\",\"msp\",\"msm\",\"buffer\"]\n },\n \"application/oda\": {\n \"source\": \"iana\",\n \"extensions\": [\"oda\"]\n },\n \"application/odm+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/odx\": {\n \"source\": \"iana\"\n },\n \"application/oebps-package+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"opf\"]\n },\n \"application/ogg\": {\n \"source\": \"iana\",\n \"compressible\": false,\n \"extensions\": [\"ogx\"]\n },\n \"application/omdoc+xml\": {\n \"source\": \"apache\",\n \"compressible\": true,\n \"extensions\": [\"omdoc\"]\n },\n \"application/onenote\": {\n \"source\": \"apache\",\n \"extensions\": [\"onetoc\",\"onetoc2\",\"onetmp\",\"onepkg\"]\n },\n \"application/opc-nodeset+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/oscore\": {\n \"source\": \"iana\"\n },\n \"application/oxps\": {\n \"source\": \"iana\",\n \"extensions\": [\"oxps\"]\n },\n \"application/p21\": {\n \"source\": \"iana\"\n },\n \"application/p21+zip\": {\n \"source\": \"iana\",\n \"compressible\": false\n },\n \"application/p2p-overlay+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"relo\"]\n },\n \"application/parityfec\": {\n \"source\": \"iana\"\n },\n \"application/passport\": {\n \"source\": \"iana\"\n },\n \"application/patch-ops-error+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"xer\"]\n },\n \"application/pdf\": {\n \"source\": \"iana\",\n \"compressible\": false,\n \"extensions\": [\"pdf\"]\n },\n \"application/pdx\": {\n \"source\": \"iana\"\n },\n \"application/pem-certificate-chain\": {\n \"source\": \"iana\"\n },\n \"application/pgp-encrypted\": {\n \"source\": \"iana\",\n \"compressible\": false,\n \"extensions\": [\"pgp\"]\n },\n \"application/pgp-keys\": {\n \"source\": \"iana\",\n \"extensions\": [\"asc\"]\n },\n \"application/pgp-signature\": {\n \"source\": \"iana\",\n \"extensions\": [\"asc\",\"sig\"]\n },\n \"application/pics-rules\": {\n \"source\": \"apache\",\n \"extensions\": [\"prf\"]\n },\n \"application/pidf+xml\": {\n \"source\": \"iana\",\n \"charset\": \"UTF-8\",\n \"compressible\": true\n },\n \"application/pidf-diff+xml\": {\n \"source\": \"iana\",\n \"charset\": \"UTF-8\",\n \"compressible\": true\n },\n \"application/pkcs10\": {\n \"source\": \"iana\",\n \"extensions\": [\"p10\"]\n },\n \"application/pkcs12\": {\n \"source\": \"iana\"\n },\n \"application/pkcs7-mime\": {\n \"source\": \"iana\",\n \"extensions\": [\"p7m\",\"p7c\"]\n },\n \"application/pkcs7-signature\": {\n \"source\": \"iana\",\n \"extensions\": [\"p7s\"]\n },\n \"application/pkcs8\": {\n \"source\": \"iana\",\n \"extensions\": [\"p8\"]\n },\n \"application/pkcs8-encrypted\": {\n \"source\": \"iana\"\n },\n \"application/pkix-attr-cert\": {\n \"source\": \"iana\",\n \"extensions\": [\"ac\"]\n },\n \"application/pkix-cert\": {\n \"source\": \"iana\",\n \"extensions\": [\"cer\"]\n },\n \"application/pkix-crl\": {\n \"source\": \"iana\",\n \"extensions\": [\"crl\"]\n },\n \"application/pkix-pkipath\": {\n \"source\": \"iana\",\n \"extensions\": [\"pkipath\"]\n },\n \"application/pkixcmp\": {\n \"source\": \"iana\",\n \"extensions\": [\"pki\"]\n },\n \"application/pls+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"pls\"]\n },\n \"application/poc-settings+xml\": {\n \"source\": \"iana\",\n \"charset\": \"UTF-8\",\n \"compressible\": true\n },\n \"application/postscript\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"ai\",\"eps\",\"ps\"]\n },\n \"application/ppsp-tracker+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/problem+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/problem+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/provenance+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"provx\"]\n },\n \"application/prs.alvestrand.titrax-sheet\": {\n \"source\": \"iana\"\n },\n \"application/prs.cww\": {\n \"source\": \"iana\",\n \"extensions\": [\"cww\"]\n },\n \"application/prs.cyn\": {\n \"source\": \"iana\",\n \"charset\": \"7-BIT\"\n },\n \"application/prs.hpub+zip\": {\n \"source\": \"iana\",\n \"compressible\": false\n },\n \"application/prs.nprend\": {\n \"source\": \"iana\"\n },\n \"application/prs.plucker\": {\n \"source\": \"iana\"\n },\n \"application/prs.rdf-xml-crypt\": {\n \"source\": \"iana\"\n },\n \"application/prs.xsf+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/pskc+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"pskcxml\"]\n },\n \"application/pvd+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/qsig\": {\n \"source\": \"iana\"\n },\n \"application/raml+yaml\": {\n \"compressible\": true,\n \"extensions\": [\"raml\"]\n },\n \"application/raptorfec\": {\n \"source\": \"iana\"\n },\n \"application/rdap+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/rdf+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"rdf\",\"owl\"]\n },\n \"application/reginfo+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"rif\"]\n },\n \"application/relax-ng-compact-syntax\": {\n \"source\": \"iana\",\n \"extensions\": [\"rnc\"]\n },\n \"application/remote-printing\": {\n \"source\": \"iana\"\n },\n \"application/reputon+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/resource-lists+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"rl\"]\n },\n \"application/resource-lists-diff+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"rld\"]\n },\n \"application/rfc+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/riscos\": {\n \"source\": \"iana\"\n },\n \"application/rlmi+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/rls-services+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"rs\"]\n },\n \"application/route-apd+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"rapd\"]\n },\n \"application/route-s-tsid+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"sls\"]\n },\n \"application/route-usd+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"rusd\"]\n },\n \"application/rpki-ghostbusters\": {\n \"source\": \"iana\",\n \"extensions\": [\"gbr\"]\n },\n \"application/rpki-manifest\": {\n \"source\": \"iana\",\n \"extensions\": [\"mft\"]\n },\n \"application/rpki-publication\": {\n \"source\": \"iana\"\n },\n \"application/rpki-roa\": {\n \"source\": \"iana\",\n \"extensions\": [\"roa\"]\n },\n \"application/rpki-updown\": {\n \"source\": \"iana\"\n },\n \"application/rsd+xml\": {\n \"source\": \"apache\",\n \"compressible\": true,\n \"extensions\": [\"rsd\"]\n },\n \"application/rss+xml\": {\n \"source\": \"apache\",\n \"compressible\": true,\n \"extensions\": [\"rss\"]\n },\n \"application/rtf\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"rtf\"]\n },\n \"application/rtploopback\": {\n \"source\": \"iana\"\n },\n \"application/rtx\": {\n \"source\": \"iana\"\n },\n \"application/samlassertion+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/samlmetadata+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/sarif+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/sarif-external-properties+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/sbe\": {\n \"source\": \"iana\"\n },\n \"application/sbml+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"sbml\"]\n },\n \"application/scaip+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/scim+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/scvp-cv-request\": {\n \"source\": \"iana\",\n \"extensions\": [\"scq\"]\n },\n \"application/scvp-cv-response\": {\n \"source\": \"iana\",\n \"extensions\": [\"scs\"]\n },\n \"application/scvp-vp-request\": {\n \"source\": \"iana\",\n \"extensions\": [\"spq\"]\n },\n \"application/scvp-vp-response\": {\n \"source\": \"iana\",\n \"extensions\": [\"spp\"]\n },\n \"application/sdp\": {\n \"source\": \"iana\",\n \"extensions\": [\"sdp\"]\n },\n \"application/secevent+jwt\": {\n \"source\": \"iana\"\n },\n \"application/senml+cbor\": {\n \"source\": \"iana\"\n },\n \"application/senml+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/senml+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"senmlx\"]\n },\n \"application/senml-etch+cbor\": {\n \"source\": \"iana\"\n },\n \"application/senml-etch+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/senml-exi\": {\n \"source\": \"iana\"\n },\n \"application/sensml+cbor\": {\n \"source\": \"iana\"\n },\n \"application/sensml+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/sensml+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"sensmlx\"]\n },\n \"application/sensml-exi\": {\n \"source\": \"iana\"\n },\n \"application/sep+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/sep-exi\": {\n \"source\": \"iana\"\n },\n \"application/session-info\": {\n \"source\": \"iana\"\n },\n \"application/set-payment\": {\n \"source\": \"iana\"\n },\n \"application/set-payment-initiation\": {\n \"source\": \"iana\",\n \"extensions\": [\"setpay\"]\n },\n \"application/set-registration\": {\n \"source\": \"iana\"\n },\n \"application/set-registration-initiation\": {\n \"source\": \"iana\",\n \"extensions\": [\"setreg\"]\n },\n \"application/sgml\": {\n \"source\": \"iana\"\n },\n \"application/sgml-open-catalog\": {\n \"source\": \"iana\"\n },\n \"application/shf+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"shf\"]\n },\n \"application/sieve\": {\n \"source\": \"iana\",\n \"extensions\": [\"siv\",\"sieve\"]\n },\n \"application/simple-filter+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/simple-message-summary\": {\n \"source\": \"iana\"\n },\n \"application/simplesymbolcontainer\": {\n \"source\": \"iana\"\n },\n \"application/sipc\": {\n \"source\": \"iana\"\n },\n \"application/slate\": {\n \"source\": \"iana\"\n },\n \"application/smil\": {\n \"source\": \"iana\"\n },\n \"application/smil+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"smi\",\"smil\"]\n },\n \"application/smpte336m\": {\n \"source\": \"iana\"\n },\n \"application/soap+fastinfoset\": {\n \"source\": \"iana\"\n },\n \"application/soap+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/sparql-query\": {\n \"source\": \"iana\",\n \"extensions\": [\"rq\"]\n },\n \"application/sparql-results+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"srx\"]\n },\n \"application/spdx+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/spirits-event+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/sql\": {\n \"source\": \"iana\"\n },\n \"application/srgs\": {\n \"source\": \"iana\",\n \"extensions\": [\"gram\"]\n },\n \"application/srgs+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"grxml\"]\n },\n \"application/sru+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"sru\"]\n },\n \"application/ssdl+xml\": {\n \"source\": \"apache\",\n \"compressible\": true,\n \"extensions\": [\"ssdl\"]\n },\n \"application/ssml+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"ssml\"]\n },\n \"application/stix+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/swid+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"swidtag\"]\n },\n \"application/tamp-apex-update\": {\n \"source\": \"iana\"\n },\n \"application/tamp-apex-update-confirm\": {\n \"source\": \"iana\"\n },\n \"application/tamp-community-update\": {\n \"source\": \"iana\"\n },\n \"application/tamp-community-update-confirm\": {\n \"source\": \"iana\"\n },\n \"application/tamp-error\": {\n \"source\": \"iana\"\n },\n \"application/tamp-sequence-adjust\": {\n \"source\": \"iana\"\n },\n \"application/tamp-sequence-adjust-confirm\": {\n \"source\": \"iana\"\n },\n \"application/tamp-status-query\": {\n \"source\": \"iana\"\n },\n \"application/tamp-status-response\": {\n \"source\": \"iana\"\n },\n \"application/tamp-update\": {\n \"source\": \"iana\"\n },\n \"application/tamp-update-confirm\": {\n \"source\": \"iana\"\n },\n \"application/tar\": {\n \"compressible\": true\n },\n \"application/taxii+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/td+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/tei+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"tei\",\"teicorpus\"]\n },\n \"application/tetra_isi\": {\n \"source\": \"iana\"\n },\n \"application/thraud+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"tfi\"]\n },\n \"application/timestamp-query\": {\n \"source\": \"iana\"\n },\n \"application/timestamp-reply\": {\n \"source\": \"iana\"\n },\n \"application/timestamped-data\": {\n \"source\": \"iana\",\n \"extensions\": [\"tsd\"]\n },\n \"application/tlsrpt+gzip\": {\n \"source\": \"iana\"\n },\n \"application/tlsrpt+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/tnauthlist\": {\n \"source\": \"iana\"\n },\n \"application/token-introspection+jwt\": {\n \"source\": \"iana\"\n },\n \"application/toml\": {\n \"compressible\": true,\n \"extensions\": [\"toml\"]\n },\n \"application/trickle-ice-sdpfrag\": {\n \"source\": \"iana\"\n },\n \"application/trig\": {\n \"source\": \"iana\",\n \"extensions\": [\"trig\"]\n },\n \"application/ttml+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"ttml\"]\n },\n \"application/tve-trigger\": {\n \"source\": \"iana\"\n },\n \"application/tzif\": {\n \"source\": \"iana\"\n },\n \"application/tzif-leap\": {\n \"source\": \"iana\"\n },\n \"application/ubjson\": {\n \"compressible\": false,\n \"extensions\": [\"ubj\"]\n },\n \"application/ulpfec\": {\n \"source\": \"iana\"\n },\n \"application/urc-grpsheet+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/urc-ressheet+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"rsheet\"]\n },\n \"application/urc-targetdesc+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"td\"]\n },\n \"application/urc-uisocketdesc+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vcard+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vcard+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vemmi\": {\n \"source\": \"iana\"\n },\n \"application/vividence.scriptfile\": {\n \"source\": \"apache\"\n },\n \"application/vnd.1000minds.decision-model+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"1km\"]\n },\n \"application/vnd.3gpp-prose+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.3gpp-prose-pc3ch+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.3gpp-v2x-local-service-information\": {\n \"source\": \"iana\"\n },\n \"application/vnd.3gpp.5gnas\": {\n \"source\": \"iana\"\n },\n \"application/vnd.3gpp.access-transfer-events+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.3gpp.bsf+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.3gpp.gmop+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.3gpp.gtpc\": {\n \"source\": \"iana\"\n },\n \"application/vnd.3gpp.interworking-data\": {\n \"source\": \"iana\"\n },\n \"application/vnd.3gpp.lpp\": {\n \"source\": \"iana\"\n },\n \"application/vnd.3gpp.mc-signalling-ear\": {\n \"source\": \"iana\"\n },\n \"application/vnd.3gpp.mcdata-affiliation-command+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.3gpp.mcdata-info+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.3gpp.mcdata-payload\": {\n \"source\": \"iana\"\n },\n \"application/vnd.3gpp.mcdata-service-config+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.3gpp.mcdata-signalling\": {\n \"source\": \"iana\"\n },\n \"application/vnd.3gpp.mcdata-ue-config+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.3gpp.mcdata-user-profile+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.3gpp.mcptt-affiliation-command+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.3gpp.mcptt-floor-request+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.3gpp.mcptt-info+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.3gpp.mcptt-location-info+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.3gpp.mcptt-mbms-usage-info+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.3gpp.mcptt-service-config+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.3gpp.mcptt-signed+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.3gpp.mcptt-ue-config+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.3gpp.mcptt-ue-init-config+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.3gpp.mcptt-user-profile+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.3gpp.mcvideo-affiliation-command+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.3gpp.mcvideo-affiliation-info+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.3gpp.mcvideo-info+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.3gpp.mcvideo-location-info+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.3gpp.mcvideo-mbms-usage-info+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.3gpp.mcvideo-service-config+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.3gpp.mcvideo-transmission-request+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.3gpp.mcvideo-ue-config+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.3gpp.mcvideo-user-profile+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.3gpp.mid-call+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.3gpp.ngap\": {\n \"source\": \"iana\"\n },\n \"application/vnd.3gpp.pfcp\": {\n \"source\": \"iana\"\n },\n \"application/vnd.3gpp.pic-bw-large\": {\n \"source\": \"iana\",\n \"extensions\": [\"plb\"]\n },\n \"application/vnd.3gpp.pic-bw-small\": {\n \"source\": \"iana\",\n \"extensions\": [\"psb\"]\n },\n \"application/vnd.3gpp.pic-bw-var\": {\n \"source\": \"iana\",\n \"extensions\": [\"pvb\"]\n },\n \"application/vnd.3gpp.s1ap\": {\n \"source\": \"iana\"\n },\n \"application/vnd.3gpp.sms\": {\n \"source\": \"iana\"\n },\n \"application/vnd.3gpp.sms+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.3gpp.srvcc-ext+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.3gpp.srvcc-info+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.3gpp.state-and-event-info+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.3gpp.ussd+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.3gpp2.bcmcsinfo+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.3gpp2.sms\": {\n \"source\": \"iana\"\n },\n \"application/vnd.3gpp2.tcap\": {\n \"source\": \"iana\",\n \"extensions\": [\"tcap\"]\n },\n \"application/vnd.3lightssoftware.imagescal\": {\n \"source\": \"iana\"\n },\n \"application/vnd.3m.post-it-notes\": {\n \"source\": \"iana\",\n \"extensions\": [\"pwn\"]\n },\n \"application/vnd.accpac.simply.aso\": {\n \"source\": \"iana\",\n \"extensions\": [\"aso\"]\n },\n \"application/vnd.accpac.simply.imp\": {\n \"source\": \"iana\",\n \"extensions\": [\"imp\"]\n },\n \"application/vnd.acucobol\": {\n \"source\": \"iana\",\n \"extensions\": [\"acu\"]\n },\n \"application/vnd.acucorp\": {\n \"source\": \"iana\",\n \"extensions\": [\"atc\",\"acutc\"]\n },\n \"application/vnd.adobe.air-application-installer-package+zip\": {\n \"source\": \"apache\",\n \"compressible\": false,\n \"extensions\": [\"air\"]\n },\n \"application/vnd.adobe.flash.movie\": {\n \"source\": \"iana\"\n },\n \"application/vnd.adobe.formscentral.fcdt\": {\n \"source\": \"iana\",\n \"extensions\": [\"fcdt\"]\n },\n \"application/vnd.adobe.fxp\": {\n \"source\": \"iana\",\n \"extensions\": [\"fxp\",\"fxpl\"]\n },\n \"application/vnd.adobe.partial-upload\": {\n \"source\": \"iana\"\n },\n \"application/vnd.adobe.xdp+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"xdp\"]\n },\n \"application/vnd.adobe.xfdf\": {\n \"source\": \"iana\",\n \"extensions\": [\"xfdf\"]\n },\n \"application/vnd.aether.imp\": {\n \"source\": \"iana\"\n },\n \"application/vnd.afpc.afplinedata\": {\n \"source\": \"iana\"\n },\n \"application/vnd.afpc.afplinedata-pagedef\": {\n \"source\": \"iana\"\n },\n \"application/vnd.afpc.cmoca-cmresource\": {\n \"source\": \"iana\"\n },\n \"application/vnd.afpc.foca-charset\": {\n \"source\": \"iana\"\n },\n \"application/vnd.afpc.foca-codedfont\": {\n \"source\": \"iana\"\n },\n \"application/vnd.afpc.foca-codepage\": {\n \"source\": \"iana\"\n },\n \"application/vnd.afpc.modca\": {\n \"source\": \"iana\"\n },\n \"application/vnd.afpc.modca-cmtable\": {\n \"source\": \"iana\"\n },\n \"application/vnd.afpc.modca-formdef\": {\n \"source\": \"iana\"\n },\n \"application/vnd.afpc.modca-mediummap\": {\n \"source\": \"iana\"\n },\n \"application/vnd.afpc.modca-objectcontainer\": {\n \"source\": \"iana\"\n },\n \"application/vnd.afpc.modca-overlay\": {\n \"source\": \"iana\"\n },\n \"application/vnd.afpc.modca-pagesegment\": {\n \"source\": \"iana\"\n },\n \"application/vnd.age\": {\n \"source\": \"iana\",\n \"extensions\": [\"age\"]\n },\n \"application/vnd.ah-barcode\": {\n \"source\": \"iana\"\n },\n \"application/vnd.ahead.space\": {\n \"source\": \"iana\",\n \"extensions\": [\"ahead\"]\n },\n \"application/vnd.airzip.filesecure.azf\": {\n \"source\": \"iana\",\n \"extensions\": [\"azf\"]\n },\n \"application/vnd.airzip.filesecure.azs\": {\n \"source\": \"iana\",\n \"extensions\": [\"azs\"]\n },\n \"application/vnd.amadeus+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.amazon.ebook\": {\n \"source\": \"apache\",\n \"extensions\": [\"azw\"]\n },\n \"application/vnd.amazon.mobi8-ebook\": {\n \"source\": \"iana\"\n },\n \"application/vnd.americandynamics.acc\": {\n \"source\": \"iana\",\n \"extensions\": [\"acc\"]\n },\n \"application/vnd.amiga.ami\": {\n \"source\": \"iana\",\n \"extensions\": [\"ami\"]\n },\n \"application/vnd.amundsen.maze+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.android.ota\": {\n \"source\": \"iana\"\n },\n \"application/vnd.android.package-archive\": {\n \"source\": \"apache\",\n \"compressible\": false,\n \"extensions\": [\"apk\"]\n },\n \"application/vnd.anki\": {\n \"source\": \"iana\"\n },\n \"application/vnd.anser-web-certificate-issue-initiation\": {\n \"source\": \"iana\",\n \"extensions\": [\"cii\"]\n },\n \"application/vnd.anser-web-funds-transfer-initiation\": {\n \"source\": \"apache\",\n \"extensions\": [\"fti\"]\n },\n \"application/vnd.antix.game-component\": {\n \"source\": \"iana\",\n \"extensions\": [\"atx\"]\n },\n \"application/vnd.apache.arrow.file\": {\n \"source\": \"iana\"\n },\n \"application/vnd.apache.arrow.stream\": {\n \"source\": \"iana\"\n },\n \"application/vnd.apache.thrift.binary\": {\n \"source\": \"iana\"\n },\n \"application/vnd.apache.thrift.compact\": {\n \"source\": \"iana\"\n },\n \"application/vnd.apache.thrift.json\": {\n \"source\": \"iana\"\n },\n \"application/vnd.api+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.aplextor.warrp+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.apothekende.reservation+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.apple.installer+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"mpkg\"]\n },\n \"application/vnd.apple.keynote\": {\n \"source\": \"iana\",\n \"extensions\": [\"key\"]\n },\n \"application/vnd.apple.mpegurl\": {\n \"source\": \"iana\",\n \"extensions\": [\"m3u8\"]\n },\n \"application/vnd.apple.numbers\": {\n \"source\": \"iana\",\n \"extensions\": [\"numbers\"]\n },\n \"application/vnd.apple.pages\": {\n \"source\": \"iana\",\n \"extensions\": [\"pages\"]\n },\n \"application/vnd.apple.pkpass\": {\n \"compressible\": false,\n \"extensions\": [\"pkpass\"]\n },\n \"application/vnd.arastra.swi\": {\n \"source\": \"iana\"\n },\n \"application/vnd.aristanetworks.swi\": {\n \"source\": \"iana\",\n \"extensions\": [\"swi\"]\n },\n \"application/vnd.artisan+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.artsquare\": {\n \"source\": \"iana\"\n },\n \"application/vnd.astraea-software.iota\": {\n \"source\": \"iana\",\n \"extensions\": [\"iota\"]\n },\n \"application/vnd.audiograph\": {\n \"source\": \"iana\",\n \"extensions\": [\"aep\"]\n },\n \"application/vnd.autopackage\": {\n \"source\": \"iana\"\n },\n \"application/vnd.avalon+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.avistar+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.balsamiq.bmml+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"bmml\"]\n },\n \"application/vnd.balsamiq.bmpr\": {\n \"source\": \"iana\"\n },\n \"application/vnd.banana-accounting\": {\n \"source\": \"iana\"\n },\n \"application/vnd.bbf.usp.error\": {\n \"source\": \"iana\"\n },\n \"application/vnd.bbf.usp.msg\": {\n \"source\": \"iana\"\n },\n \"application/vnd.bbf.usp.msg+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.bekitzur-stech+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.bint.med-content\": {\n \"source\": \"iana\"\n },\n \"application/vnd.biopax.rdf+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.blink-idb-value-wrapper\": {\n \"source\": \"iana\"\n },\n \"application/vnd.blueice.multipass\": {\n \"source\": \"iana\",\n \"extensions\": [\"mpm\"]\n },\n \"application/vnd.bluetooth.ep.oob\": {\n \"source\": \"iana\"\n },\n \"application/vnd.bluetooth.le.oob\": {\n \"source\": \"iana\"\n },\n \"application/vnd.bmi\": {\n \"source\": \"iana\",\n \"extensions\": [\"bmi\"]\n },\n \"application/vnd.bpf\": {\n \"source\": \"iana\"\n },\n \"application/vnd.bpf3\": {\n \"source\": \"iana\"\n },\n \"application/vnd.businessobjects\": {\n \"source\": \"iana\",\n \"extensions\": [\"rep\"]\n },\n \"application/vnd.byu.uapi+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.cab-jscript\": {\n \"source\": \"iana\"\n },\n \"application/vnd.canon-cpdl\": {\n \"source\": \"iana\"\n },\n \"application/vnd.canon-lips\": {\n \"source\": \"iana\"\n },\n \"application/vnd.capasystems-pg+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.cendio.thinlinc.clientconf\": {\n \"source\": \"iana\"\n },\n \"application/vnd.century-systems.tcp_stream\": {\n \"source\": \"iana\"\n },\n \"application/vnd.chemdraw+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"cdxml\"]\n },\n \"application/vnd.chess-pgn\": {\n \"source\": \"iana\"\n },\n \"application/vnd.chipnuts.karaoke-mmd\": {\n \"source\": \"iana\",\n \"extensions\": [\"mmd\"]\n },\n \"application/vnd.ciedi\": {\n \"source\": \"iana\"\n },\n \"application/vnd.cinderella\": {\n \"source\": \"iana\",\n \"extensions\": [\"cdy\"]\n },\n \"application/vnd.cirpack.isdn-ext\": {\n \"source\": \"iana\"\n },\n \"application/vnd.citationstyles.style+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"csl\"]\n },\n \"application/vnd.claymore\": {\n \"source\": \"iana\",\n \"extensions\": [\"cla\"]\n },\n \"application/vnd.cloanto.rp9\": {\n \"source\": \"iana\",\n \"extensions\": [\"rp9\"]\n },\n \"application/vnd.clonk.c4group\": {\n \"source\": \"iana\",\n \"extensions\": [\"c4g\",\"c4d\",\"c4f\",\"c4p\",\"c4u\"]\n },\n \"application/vnd.cluetrust.cartomobile-config\": {\n \"source\": \"iana\",\n \"extensions\": [\"c11amc\"]\n },\n \"application/vnd.cluetrust.cartomobile-config-pkg\": {\n \"source\": \"iana\",\n \"extensions\": [\"c11amz\"]\n },\n \"application/vnd.coffeescript\": {\n \"source\": \"iana\"\n },\n \"application/vnd.collabio.xodocuments.document\": {\n \"source\": \"iana\"\n },\n \"application/vnd.collabio.xodocuments.document-template\": {\n \"source\": \"iana\"\n },\n \"application/vnd.collabio.xodocuments.presentation\": {\n \"source\": \"iana\"\n },\n \"application/vnd.collabio.xodocuments.presentation-template\": {\n \"source\": \"iana\"\n },\n \"application/vnd.collabio.xodocuments.spreadsheet\": {\n \"source\": \"iana\"\n },\n \"application/vnd.collabio.xodocuments.spreadsheet-template\": {\n \"source\": \"iana\"\n },\n \"application/vnd.collection+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.collection.doc+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.collection.next+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.comicbook+zip\": {\n \"source\": \"iana\",\n \"compressible\": false\n },\n \"application/vnd.comicbook-rar\": {\n \"source\": \"iana\"\n },\n \"application/vnd.commerce-battelle\": {\n \"source\": \"iana\"\n },\n \"application/vnd.commonspace\": {\n \"source\": \"iana\",\n \"extensions\": [\"csp\"]\n },\n \"application/vnd.contact.cmsg\": {\n \"source\": \"iana\",\n \"extensions\": [\"cdbcmsg\"]\n },\n \"application/vnd.coreos.ignition+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.cosmocaller\": {\n \"source\": \"iana\",\n \"extensions\": [\"cmc\"]\n },\n \"application/vnd.crick.clicker\": {\n \"source\": \"iana\",\n \"extensions\": [\"clkx\"]\n },\n \"application/vnd.crick.clicker.keyboard\": {\n \"source\": \"iana\",\n \"extensions\": [\"clkk\"]\n },\n \"application/vnd.crick.clicker.palette\": {\n \"source\": \"iana\",\n \"extensions\": [\"clkp\"]\n },\n \"application/vnd.crick.clicker.template\": {\n \"source\": \"iana\",\n \"extensions\": [\"clkt\"]\n },\n \"application/vnd.crick.clicker.wordbank\": {\n \"source\": \"iana\",\n \"extensions\": [\"clkw\"]\n },\n \"application/vnd.criticaltools.wbs+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"wbs\"]\n },\n \"application/vnd.cryptii.pipe+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.crypto-shade-file\": {\n \"source\": \"iana\"\n },\n \"application/vnd.cryptomator.encrypted\": {\n \"source\": \"iana\"\n },\n \"application/vnd.cryptomator.vault\": {\n \"source\": \"iana\"\n },\n \"application/vnd.ctc-posml\": {\n \"source\": \"iana\",\n \"extensions\": [\"pml\"]\n },\n \"application/vnd.ctct.ws+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.cups-pdf\": {\n \"source\": \"iana\"\n },\n \"application/vnd.cups-postscript\": {\n \"source\": \"iana\"\n },\n \"application/vnd.cups-ppd\": {\n \"source\": \"iana\",\n \"extensions\": [\"ppd\"]\n },\n \"application/vnd.cups-raster\": {\n \"source\": \"iana\"\n },\n \"application/vnd.cups-raw\": {\n \"source\": \"iana\"\n },\n \"application/vnd.curl\": {\n \"source\": \"iana\"\n },\n \"application/vnd.curl.car\": {\n \"source\": \"apache\",\n \"extensions\": [\"car\"]\n },\n \"application/vnd.curl.pcurl\": {\n \"source\": \"apache\",\n \"extensions\": [\"pcurl\"]\n },\n \"application/vnd.cyan.dean.root+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.cybank\": {\n \"source\": \"iana\"\n },\n \"application/vnd.cyclonedx+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.cyclonedx+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.d2l.coursepackage1p0+zip\": {\n \"source\": \"iana\",\n \"compressible\": false\n },\n \"application/vnd.d3m-dataset\": {\n \"source\": \"iana\"\n },\n \"application/vnd.d3m-problem\": {\n \"source\": \"iana\"\n },\n \"application/vnd.dart\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"dart\"]\n },\n \"application/vnd.data-vision.rdz\": {\n \"source\": \"iana\",\n \"extensions\": [\"rdz\"]\n },\n \"application/vnd.datapackage+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.dataresource+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.dbf\": {\n \"source\": \"iana\",\n \"extensions\": [\"dbf\"]\n },\n \"application/vnd.debian.binary-package\": {\n \"source\": \"iana\"\n },\n \"application/vnd.dece.data\": {\n \"source\": \"iana\",\n \"extensions\": [\"uvf\",\"uvvf\",\"uvd\",\"uvvd\"]\n },\n \"application/vnd.dece.ttml+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"uvt\",\"uvvt\"]\n },\n \"application/vnd.dece.unspecified\": {\n \"source\": \"iana\",\n \"extensions\": [\"uvx\",\"uvvx\"]\n },\n \"application/vnd.dece.zip\": {\n \"source\": \"iana\",\n \"extensions\": [\"uvz\",\"uvvz\"]\n },\n \"application/vnd.denovo.fcselayout-link\": {\n \"source\": \"iana\",\n \"extensions\": [\"fe_launch\"]\n },\n \"application/vnd.desmume.movie\": {\n \"source\": \"iana\"\n },\n \"application/vnd.dir-bi.plate-dl-nosuffix\": {\n \"source\": \"iana\"\n },\n \"application/vnd.dm.delegation+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.dna\": {\n \"source\": \"iana\",\n \"extensions\": [\"dna\"]\n },\n \"application/vnd.document+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.dolby.mlp\": {\n \"source\": \"apache\",\n \"extensions\": [\"mlp\"]\n },\n \"application/vnd.dolby.mobile.1\": {\n \"source\": \"iana\"\n },\n \"application/vnd.dolby.mobile.2\": {\n \"source\": \"iana\"\n },\n \"application/vnd.doremir.scorecloud-binary-document\": {\n \"source\": \"iana\"\n },\n \"application/vnd.dpgraph\": {\n \"source\": \"iana\",\n \"extensions\": [\"dpg\"]\n },\n \"application/vnd.dreamfactory\": {\n \"source\": \"iana\",\n \"extensions\": [\"dfac\"]\n },\n \"application/vnd.drive+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.ds-keypoint\": {\n \"source\": \"apache\",\n \"extensions\": [\"kpxx\"]\n },\n \"application/vnd.dtg.local\": {\n \"source\": \"iana\"\n },\n \"application/vnd.dtg.local.flash\": {\n \"source\": \"iana\"\n },\n \"application/vnd.dtg.local.html\": {\n \"source\": \"iana\"\n },\n \"application/vnd.dvb.ait\": {\n \"source\": \"iana\",\n \"extensions\": [\"ait\"]\n },\n \"application/vnd.dvb.dvbisl+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.dvb.dvbj\": {\n \"source\": \"iana\"\n },\n \"application/vnd.dvb.esgcontainer\": {\n \"source\": \"iana\"\n },\n \"application/vnd.dvb.ipdcdftnotifaccess\": {\n \"source\": \"iana\"\n },\n \"application/vnd.dvb.ipdcesgaccess\": {\n \"source\": \"iana\"\n },\n \"application/vnd.dvb.ipdcesgaccess2\": {\n \"source\": \"iana\"\n },\n \"application/vnd.dvb.ipdcesgpdd\": {\n \"source\": \"iana\"\n },\n \"application/vnd.dvb.ipdcroaming\": {\n \"source\": \"iana\"\n },\n \"application/vnd.dvb.iptv.alfec-base\": {\n \"source\": \"iana\"\n },\n \"application/vnd.dvb.iptv.alfec-enhancement\": {\n \"source\": \"iana\"\n },\n \"application/vnd.dvb.notif-aggregate-root+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.dvb.notif-container+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.dvb.notif-generic+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.dvb.notif-ia-msglist+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.dvb.notif-ia-registration-request+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.dvb.notif-ia-registration-response+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.dvb.notif-init+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.dvb.pfr\": {\n \"source\": \"iana\"\n },\n \"application/vnd.dvb.service\": {\n \"source\": \"iana\",\n \"extensions\": [\"svc\"]\n },\n \"application/vnd.dxr\": {\n \"source\": \"iana\"\n },\n \"application/vnd.dynageo\": {\n \"source\": \"iana\",\n \"extensions\": [\"geo\"]\n },\n \"application/vnd.dzr\": {\n \"source\": \"iana\"\n },\n \"application/vnd.easykaraoke.cdgdownload\": {\n \"source\": \"iana\"\n },\n \"application/vnd.ecdis-update\": {\n \"source\": \"iana\"\n },\n \"application/vnd.ecip.rlp\": {\n \"source\": \"iana\"\n },\n \"application/vnd.eclipse.ditto+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.ecowin.chart\": {\n \"source\": \"iana\",\n \"extensions\": [\"mag\"]\n },\n \"application/vnd.ecowin.filerequest\": {\n \"source\": \"iana\"\n },\n \"application/vnd.ecowin.fileupdate\": {\n \"source\": \"iana\"\n },\n \"application/vnd.ecowin.series\": {\n \"source\": \"iana\"\n },\n \"application/vnd.ecowin.seriesrequest\": {\n \"source\": \"iana\"\n },\n \"application/vnd.ecowin.seriesupdate\": {\n \"source\": \"iana\"\n },\n \"application/vnd.efi.img\": {\n \"source\": \"iana\"\n },\n \"application/vnd.efi.iso\": {\n \"source\": \"iana\"\n },\n \"application/vnd.emclient.accessrequest+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.enliven\": {\n \"source\": \"iana\",\n \"extensions\": [\"nml\"]\n },\n \"application/vnd.enphase.envoy\": {\n \"source\": \"iana\"\n },\n \"application/vnd.eprints.data+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.epson.esf\": {\n \"source\": \"iana\",\n \"extensions\": [\"esf\"]\n },\n \"application/vnd.epson.msf\": {\n \"source\": \"iana\",\n \"extensions\": [\"msf\"]\n },\n \"application/vnd.epson.quickanime\": {\n \"source\": \"iana\",\n \"extensions\": [\"qam\"]\n },\n \"application/vnd.epson.salt\": {\n \"source\": \"iana\",\n \"extensions\": [\"slt\"]\n },\n \"application/vnd.epson.ssf\": {\n \"source\": \"iana\",\n \"extensions\": [\"ssf\"]\n },\n \"application/vnd.ericsson.quickcall\": {\n \"source\": \"iana\"\n },\n \"application/vnd.espass-espass+zip\": {\n \"source\": \"iana\",\n \"compressible\": false\n },\n \"application/vnd.eszigno3+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"es3\",\"et3\"]\n },\n \"application/vnd.etsi.aoc+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.etsi.asic-e+zip\": {\n \"source\": \"iana\",\n \"compressible\": false\n },\n \"application/vnd.etsi.asic-s+zip\": {\n \"source\": \"iana\",\n \"compressible\": false\n },\n \"application/vnd.etsi.cug+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.etsi.iptvcommand+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.etsi.iptvdiscovery+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.etsi.iptvprofile+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.etsi.iptvsad-bc+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.etsi.iptvsad-cod+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.etsi.iptvsad-npvr+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.etsi.iptvservice+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.etsi.iptvsync+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.etsi.iptvueprofile+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.etsi.mcid+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.etsi.mheg5\": {\n \"source\": \"iana\"\n },\n \"application/vnd.etsi.overload-control-policy-dataset+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.etsi.pstn+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.etsi.sci+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.etsi.simservs+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.etsi.timestamp-token\": {\n \"source\": \"iana\"\n },\n \"application/vnd.etsi.tsl+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.etsi.tsl.der\": {\n \"source\": \"iana\"\n },\n \"application/vnd.eu.kasparian.car+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.eudora.data\": {\n \"source\": \"iana\"\n },\n \"application/vnd.evolv.ecig.profile\": {\n \"source\": \"iana\"\n },\n \"application/vnd.evolv.ecig.settings\": {\n \"source\": \"iana\"\n },\n \"application/vnd.evolv.ecig.theme\": {\n \"source\": \"iana\"\n },\n \"application/vnd.exstream-empower+zip\": {\n \"source\": \"iana\",\n \"compressible\": false\n },\n \"application/vnd.exstream-package\": {\n \"source\": \"iana\"\n },\n \"application/vnd.ezpix-album\": {\n \"source\": \"iana\",\n \"extensions\": [\"ez2\"]\n },\n \"application/vnd.ezpix-package\": {\n \"source\": \"iana\",\n \"extensions\": [\"ez3\"]\n },\n \"application/vnd.f-secure.mobile\": {\n \"source\": \"iana\"\n },\n \"application/vnd.familysearch.gedcom+zip\": {\n \"source\": \"iana\",\n \"compressible\": false\n },\n \"application/vnd.fastcopy-disk-image\": {\n \"source\": \"iana\"\n },\n \"application/vnd.fdf\": {\n \"source\": \"iana\",\n \"extensions\": [\"fdf\"]\n },\n \"application/vnd.fdsn.mseed\": {\n \"source\": \"iana\",\n \"extensions\": [\"mseed\"]\n },\n \"application/vnd.fdsn.seed\": {\n \"source\": \"iana\",\n \"extensions\": [\"seed\",\"dataless\"]\n },\n \"application/vnd.ffsns\": {\n \"source\": \"iana\"\n },\n \"application/vnd.ficlab.flb+zip\": {\n \"source\": \"iana\",\n \"compressible\": false\n },\n \"application/vnd.filmit.zfc\": {\n \"source\": \"iana\"\n },\n \"application/vnd.fints\": {\n \"source\": \"iana\"\n },\n \"application/vnd.firemonkeys.cloudcell\": {\n \"source\": \"iana\"\n },\n \"application/vnd.flographit\": {\n \"source\": \"iana\",\n \"extensions\": [\"gph\"]\n },\n \"application/vnd.fluxtime.clip\": {\n \"source\": \"iana\",\n \"extensions\": [\"ftc\"]\n },\n \"application/vnd.font-fontforge-sfd\": {\n \"source\": \"iana\"\n },\n \"application/vnd.framemaker\": {\n \"source\": \"iana\",\n \"extensions\": [\"fm\",\"frame\",\"maker\",\"book\"]\n },\n \"application/vnd.frogans.fnc\": {\n \"source\": \"iana\",\n \"extensions\": [\"fnc\"]\n },\n \"application/vnd.frogans.ltf\": {\n \"source\": \"iana\",\n \"extensions\": [\"ltf\"]\n },\n \"application/vnd.fsc.weblaunch\": {\n \"source\": \"iana\",\n \"extensions\": [\"fsc\"]\n },\n \"application/vnd.fujifilm.fb.docuworks\": {\n \"source\": \"iana\"\n },\n \"application/vnd.fujifilm.fb.docuworks.binder\": {\n \"source\": \"iana\"\n },\n \"application/vnd.fujifilm.fb.docuworks.container\": {\n \"source\": \"iana\"\n },\n \"application/vnd.fujifilm.fb.jfi+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.fujitsu.oasys\": {\n \"source\": \"iana\",\n \"extensions\": [\"oas\"]\n },\n \"application/vnd.fujitsu.oasys2\": {\n \"source\": \"iana\",\n \"extensions\": [\"oa2\"]\n },\n \"application/vnd.fujitsu.oasys3\": {\n \"source\": \"iana\",\n \"extensions\": [\"oa3\"]\n },\n \"application/vnd.fujitsu.oasysgp\": {\n \"source\": \"iana\",\n \"extensions\": [\"fg5\"]\n },\n \"application/vnd.fujitsu.oasysprs\": {\n \"source\": \"iana\",\n \"extensions\": [\"bh2\"]\n },\n \"application/vnd.fujixerox.art-ex\": {\n \"source\": \"iana\"\n },\n \"application/vnd.fujixerox.art4\": {\n \"source\": \"iana\"\n },\n \"application/vnd.fujixerox.ddd\": {\n \"source\": \"iana\",\n \"extensions\": [\"ddd\"]\n },\n \"application/vnd.fujixerox.docuworks\": {\n \"source\": \"iana\",\n \"extensions\": [\"xdw\"]\n },\n \"application/vnd.fujixerox.docuworks.binder\": {\n \"source\": \"iana\",\n \"extensions\": [\"xbd\"]\n },\n \"application/vnd.fujixerox.docuworks.container\": {\n \"source\": \"iana\"\n },\n \"application/vnd.fujixerox.hbpl\": {\n \"source\": \"iana\"\n },\n \"application/vnd.fut-misnet\": {\n \"source\": \"iana\"\n },\n \"application/vnd.futoin+cbor\": {\n \"source\": \"iana\"\n },\n \"application/vnd.futoin+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.fuzzysheet\": {\n \"source\": \"iana\",\n \"extensions\": [\"fzs\"]\n },\n \"application/vnd.genomatix.tuxedo\": {\n \"source\": \"iana\",\n \"extensions\": [\"txd\"]\n },\n \"application/vnd.gentics.grd+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.geo+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.geocube+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.geogebra.file\": {\n \"source\": \"iana\",\n \"extensions\": [\"ggb\"]\n },\n \"application/vnd.geogebra.slides\": {\n \"source\": \"iana\"\n },\n \"application/vnd.geogebra.tool\": {\n \"source\": \"iana\",\n \"extensions\": [\"ggt\"]\n },\n \"application/vnd.geometry-explorer\": {\n \"source\": \"iana\",\n \"extensions\": [\"gex\",\"gre\"]\n },\n \"application/vnd.geonext\": {\n \"source\": \"iana\",\n \"extensions\": [\"gxt\"]\n },\n \"application/vnd.geoplan\": {\n \"source\": \"iana\",\n \"extensions\": [\"g2w\"]\n },\n \"application/vnd.geospace\": {\n \"source\": \"iana\",\n \"extensions\": [\"g3w\"]\n },\n \"application/vnd.gerber\": {\n \"source\": \"iana\"\n },\n \"application/vnd.globalplatform.card-content-mgt\": {\n \"source\": \"iana\"\n },\n \"application/vnd.globalplatform.card-content-mgt-response\": {\n \"source\": \"iana\"\n },\n \"application/vnd.gmx\": {\n \"source\": \"iana\",\n \"extensions\": [\"gmx\"]\n },\n \"application/vnd.google-apps.document\": {\n \"compressible\": false,\n \"extensions\": [\"gdoc\"]\n },\n \"application/vnd.google-apps.presentation\": {\n \"compressible\": false,\n \"extensions\": [\"gslides\"]\n },\n \"application/vnd.google-apps.spreadsheet\": {\n \"compressible\": false,\n \"extensions\": [\"gsheet\"]\n },\n \"application/vnd.google-earth.kml+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"kml\"]\n },\n \"application/vnd.google-earth.kmz\": {\n \"source\": \"iana\",\n \"compressible\": false,\n \"extensions\": [\"kmz\"]\n },\n \"application/vnd.gov.sk.e-form+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.gov.sk.e-form+zip\": {\n \"source\": \"iana\",\n \"compressible\": false\n },\n \"application/vnd.gov.sk.xmldatacontainer+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.grafeq\": {\n \"source\": \"iana\",\n \"extensions\": [\"gqf\",\"gqs\"]\n },\n \"application/vnd.gridmp\": {\n \"source\": \"iana\"\n },\n \"application/vnd.groove-account\": {\n \"source\": \"iana\",\n \"extensions\": [\"gac\"]\n },\n \"application/vnd.groove-help\": {\n \"source\": \"iana\",\n \"extensions\": [\"ghf\"]\n },\n \"application/vnd.groove-identity-message\": {\n \"source\": \"iana\",\n \"extensions\": [\"gim\"]\n },\n \"application/vnd.groove-injector\": {\n \"source\": \"iana\",\n \"extensions\": [\"grv\"]\n },\n \"application/vnd.groove-tool-message\": {\n \"source\": \"iana\",\n \"extensions\": [\"gtm\"]\n },\n \"application/vnd.groove-tool-template\": {\n \"source\": \"iana\",\n \"extensions\": [\"tpl\"]\n },\n \"application/vnd.groove-vcard\": {\n \"source\": \"iana\",\n \"extensions\": [\"vcg\"]\n },\n \"application/vnd.hal+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.hal+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"hal\"]\n },\n \"application/vnd.handheld-entertainment+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"zmm\"]\n },\n \"application/vnd.hbci\": {\n \"source\": \"iana\",\n \"extensions\": [\"hbci\"]\n },\n \"application/vnd.hc+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.hcl-bireports\": {\n \"source\": \"iana\"\n },\n \"application/vnd.hdt\": {\n \"source\": \"iana\"\n },\n \"application/vnd.heroku+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.hhe.lesson-player\": {\n \"source\": \"iana\",\n \"extensions\": [\"les\"]\n },\n \"application/vnd.hl7cda+xml\": {\n \"source\": \"iana\",\n \"charset\": \"UTF-8\",\n \"compressible\": true\n },\n \"application/vnd.hl7v2+xml\": {\n \"source\": \"iana\",\n \"charset\": \"UTF-8\",\n \"compressible\": true\n },\n \"application/vnd.hp-hpgl\": {\n \"source\": \"iana\",\n \"extensions\": [\"hpgl\"]\n },\n \"application/vnd.hp-hpid\": {\n \"source\": \"iana\",\n \"extensions\": [\"hpid\"]\n },\n \"application/vnd.hp-hps\": {\n \"source\": \"iana\",\n \"extensions\": [\"hps\"]\n },\n \"application/vnd.hp-jlyt\": {\n \"source\": \"iana\",\n \"extensions\": [\"jlt\"]\n },\n \"application/vnd.hp-pcl\": {\n \"source\": \"iana\",\n \"extensions\": [\"pcl\"]\n },\n \"application/vnd.hp-pclxl\": {\n \"source\": \"iana\",\n \"extensions\": [\"pclxl\"]\n },\n \"application/vnd.httphone\": {\n \"source\": \"iana\"\n },\n \"application/vnd.hydrostatix.sof-data\": {\n \"source\": \"iana\",\n \"extensions\": [\"sfd-hdstx\"]\n },\n \"application/vnd.hyper+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.hyper-item+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.hyperdrive+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.hzn-3d-crossword\": {\n \"source\": \"iana\"\n },\n \"application/vnd.ibm.afplinedata\": {\n \"source\": \"iana\"\n },\n \"application/vnd.ibm.electronic-media\": {\n \"source\": \"iana\"\n },\n \"application/vnd.ibm.minipay\": {\n \"source\": \"iana\",\n \"extensions\": [\"mpy\"]\n },\n \"application/vnd.ibm.modcap\": {\n \"source\": \"iana\",\n \"extensions\": [\"afp\",\"listafp\",\"list3820\"]\n },\n \"application/vnd.ibm.rights-management\": {\n \"source\": \"iana\",\n \"extensions\": [\"irm\"]\n },\n \"application/vnd.ibm.secure-container\": {\n \"source\": \"iana\",\n \"extensions\": [\"sc\"]\n },\n \"application/vnd.iccprofile\": {\n \"source\": \"iana\",\n \"extensions\": [\"icc\",\"icm\"]\n },\n \"application/vnd.ieee.1905\": {\n \"source\": \"iana\"\n },\n \"application/vnd.igloader\": {\n \"source\": \"iana\",\n \"extensions\": [\"igl\"]\n },\n \"application/vnd.imagemeter.folder+zip\": {\n \"source\": \"iana\",\n \"compressible\": false\n },\n \"application/vnd.imagemeter.image+zip\": {\n \"source\": \"iana\",\n \"compressible\": false\n },\n \"application/vnd.immervision-ivp\": {\n \"source\": \"iana\",\n \"extensions\": [\"ivp\"]\n },\n \"application/vnd.immervision-ivu\": {\n \"source\": \"iana\",\n \"extensions\": [\"ivu\"]\n },\n \"application/vnd.ims.imsccv1p1\": {\n \"source\": \"iana\"\n },\n \"application/vnd.ims.imsccv1p2\": {\n \"source\": \"iana\"\n },\n \"application/vnd.ims.imsccv1p3\": {\n \"source\": \"iana\"\n },\n \"application/vnd.ims.lis.v2.result+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.ims.lti.v2.toolconsumerprofile+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.ims.lti.v2.toolproxy+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.ims.lti.v2.toolproxy.id+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.ims.lti.v2.toolsettings+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.ims.lti.v2.toolsettings.simple+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.informedcontrol.rms+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.informix-visionary\": {\n \"source\": \"iana\"\n },\n \"application/vnd.infotech.project\": {\n \"source\": \"iana\"\n },\n \"application/vnd.infotech.project+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.innopath.wamp.notification\": {\n \"source\": \"iana\"\n },\n \"application/vnd.insors.igm\": {\n \"source\": \"iana\",\n \"extensions\": [\"igm\"]\n },\n \"application/vnd.intercon.formnet\": {\n \"source\": \"iana\",\n \"extensions\": [\"xpw\",\"xpx\"]\n },\n \"application/vnd.intergeo\": {\n \"source\": \"iana\",\n \"extensions\": [\"i2g\"]\n },\n \"application/vnd.intertrust.digibox\": {\n \"source\": \"iana\"\n },\n \"application/vnd.intertrust.nncp\": {\n \"source\": \"iana\"\n },\n \"application/vnd.intu.qbo\": {\n \"source\": \"iana\",\n \"extensions\": [\"qbo\"]\n },\n \"application/vnd.intu.qfx\": {\n \"source\": \"iana\",\n \"extensions\": [\"qfx\"]\n },\n \"application/vnd.iptc.g2.catalogitem+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.iptc.g2.conceptitem+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.iptc.g2.knowledgeitem+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.iptc.g2.newsitem+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.iptc.g2.newsmessage+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.iptc.g2.packageitem+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.iptc.g2.planningitem+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.ipunplugged.rcprofile\": {\n \"source\": \"iana\",\n \"extensions\": [\"rcprofile\"]\n },\n \"application/vnd.irepository.package+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"irp\"]\n },\n \"application/vnd.is-xpr\": {\n \"source\": \"iana\",\n \"extensions\": [\"xpr\"]\n },\n \"application/vnd.isac.fcs\": {\n \"source\": \"iana\",\n \"extensions\": [\"fcs\"]\n },\n \"application/vnd.iso11783-10+zip\": {\n \"source\": \"iana\",\n \"compressible\": false\n },\n \"application/vnd.jam\": {\n \"source\": \"iana\",\n \"extensions\": [\"jam\"]\n },\n \"application/vnd.japannet-directory-service\": {\n \"source\": \"iana\"\n },\n \"application/vnd.japannet-jpnstore-wakeup\": {\n \"source\": \"iana\"\n },\n \"application/vnd.japannet-payment-wakeup\": {\n \"source\": \"iana\"\n },\n \"application/vnd.japannet-registration\": {\n \"source\": \"iana\"\n },\n \"application/vnd.japannet-registration-wakeup\": {\n \"source\": \"iana\"\n },\n \"application/vnd.japannet-setstore-wakeup\": {\n \"source\": \"iana\"\n },\n \"application/vnd.japannet-verification\": {\n \"source\": \"iana\"\n },\n \"application/vnd.japannet-verification-wakeup\": {\n \"source\": \"iana\"\n },\n \"application/vnd.jcp.javame.midlet-rms\": {\n \"source\": \"iana\",\n \"extensions\": [\"rms\"]\n },\n \"application/vnd.jisp\": {\n \"source\": \"iana\",\n \"extensions\": [\"jisp\"]\n },\n \"application/vnd.joost.joda-archive\": {\n \"source\": \"iana\",\n \"extensions\": [\"joda\"]\n },\n \"application/vnd.jsk.isdn-ngn\": {\n \"source\": \"iana\"\n },\n \"application/vnd.kahootz\": {\n \"source\": \"iana\",\n \"extensions\": [\"ktz\",\"ktr\"]\n },\n \"application/vnd.kde.karbon\": {\n \"source\": \"iana\",\n \"extensions\": [\"karbon\"]\n },\n \"application/vnd.kde.kchart\": {\n \"source\": \"iana\",\n \"extensions\": [\"chrt\"]\n },\n \"application/vnd.kde.kformula\": {\n \"source\": \"iana\",\n \"extensions\": [\"kfo\"]\n },\n \"application/vnd.kde.kivio\": {\n \"source\": \"iana\",\n \"extensions\": [\"flw\"]\n },\n \"application/vnd.kde.kontour\": {\n \"source\": \"iana\",\n \"extensions\": [\"kon\"]\n },\n \"application/vnd.kde.kpresenter\": {\n \"source\": \"iana\",\n \"extensions\": [\"kpr\",\"kpt\"]\n },\n \"application/vnd.kde.kspread\": {\n \"source\": \"iana\",\n \"extensions\": [\"ksp\"]\n },\n \"application/vnd.kde.kword\": {\n \"source\": \"iana\",\n \"extensions\": [\"kwd\",\"kwt\"]\n },\n \"application/vnd.kenameaapp\": {\n \"source\": \"iana\",\n \"extensions\": [\"htke\"]\n },\n \"application/vnd.kidspiration\": {\n \"source\": \"iana\",\n \"extensions\": [\"kia\"]\n },\n \"application/vnd.kinar\": {\n \"source\": \"iana\",\n \"extensions\": [\"kne\",\"knp\"]\n },\n \"application/vnd.koan\": {\n \"source\": \"iana\",\n \"extensions\": [\"skp\",\"skd\",\"skt\",\"skm\"]\n },\n \"application/vnd.kodak-descriptor\": {\n \"source\": \"iana\",\n \"extensions\": [\"sse\"]\n },\n \"application/vnd.las\": {\n \"source\": \"iana\"\n },\n \"application/vnd.las.las+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.las.las+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"lasxml\"]\n },\n \"application/vnd.laszip\": {\n \"source\": \"iana\"\n },\n \"application/vnd.leap+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.liberty-request+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.llamagraphics.life-balance.desktop\": {\n \"source\": \"iana\",\n \"extensions\": [\"lbd\"]\n },\n \"application/vnd.llamagraphics.life-balance.exchange+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"lbe\"]\n },\n \"application/vnd.logipipe.circuit+zip\": {\n \"source\": \"iana\",\n \"compressible\": false\n },\n \"application/vnd.loom\": {\n \"source\": \"iana\"\n },\n \"application/vnd.lotus-1-2-3\": {\n \"source\": \"iana\",\n \"extensions\": [\"123\"]\n },\n \"application/vnd.lotus-approach\": {\n \"source\": \"iana\",\n \"extensions\": [\"apr\"]\n },\n \"application/vnd.lotus-freelance\": {\n \"source\": \"iana\",\n \"extensions\": [\"pre\"]\n },\n \"application/vnd.lotus-notes\": {\n \"source\": \"iana\",\n \"extensions\": [\"nsf\"]\n },\n \"application/vnd.lotus-organizer\": {\n \"source\": \"iana\",\n \"extensions\": [\"org\"]\n },\n \"application/vnd.lotus-screencam\": {\n \"source\": \"iana\",\n \"extensions\": [\"scm\"]\n },\n \"application/vnd.lotus-wordpro\": {\n \"source\": \"iana\",\n \"extensions\": [\"lwp\"]\n },\n \"application/vnd.macports.portpkg\": {\n \"source\": \"iana\",\n \"extensions\": [\"portpkg\"]\n },\n \"application/vnd.mapbox-vector-tile\": {\n \"source\": \"iana\",\n \"extensions\": [\"mvt\"]\n },\n \"application/vnd.marlin.drm.actiontoken+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.marlin.drm.conftoken+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.marlin.drm.license+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.marlin.drm.mdcf\": {\n \"source\": \"iana\"\n },\n \"application/vnd.mason+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.maxar.archive.3tz+zip\": {\n \"source\": \"iana\",\n \"compressible\": false\n },\n \"application/vnd.maxmind.maxmind-db\": {\n \"source\": \"iana\"\n },\n \"application/vnd.mcd\": {\n \"source\": \"iana\",\n \"extensions\": [\"mcd\"]\n },\n \"application/vnd.medcalcdata\": {\n \"source\": \"iana\",\n \"extensions\": [\"mc1\"]\n },\n \"application/vnd.mediastation.cdkey\": {\n \"source\": \"iana\",\n \"extensions\": [\"cdkey\"]\n },\n \"application/vnd.meridian-slingshot\": {\n \"source\": \"iana\"\n },\n \"application/vnd.mfer\": {\n \"source\": \"iana\",\n \"extensions\": [\"mwf\"]\n },\n \"application/vnd.mfmp\": {\n \"source\": \"iana\",\n \"extensions\": [\"mfm\"]\n },\n \"application/vnd.micro+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.micrografx.flo\": {\n \"source\": \"iana\",\n \"extensions\": [\"flo\"]\n },\n \"application/vnd.micrografx.igx\": {\n \"source\": \"iana\",\n \"extensions\": [\"igx\"]\n },\n \"application/vnd.microsoft.portable-executable\": {\n \"source\": \"iana\"\n },\n \"application/vnd.microsoft.windows.thumbnail-cache\": {\n \"source\": \"iana\"\n },\n \"application/vnd.miele+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.mif\": {\n \"source\": \"iana\",\n \"extensions\": [\"mif\"]\n },\n \"application/vnd.minisoft-hp3000-save\": {\n \"source\": \"iana\"\n },\n \"application/vnd.mitsubishi.misty-guard.trustweb\": {\n \"source\": \"iana\"\n },\n \"application/vnd.mobius.daf\": {\n \"source\": \"iana\",\n \"extensions\": [\"daf\"]\n },\n \"application/vnd.mobius.dis\": {\n \"source\": \"iana\",\n \"extensions\": [\"dis\"]\n },\n \"application/vnd.mobius.mbk\": {\n \"source\": \"iana\",\n \"extensions\": [\"mbk\"]\n },\n \"application/vnd.mobius.mqy\": {\n \"source\": \"iana\",\n \"extensions\": [\"mqy\"]\n },\n \"application/vnd.mobius.msl\": {\n \"source\": \"iana\",\n \"extensions\": [\"msl\"]\n },\n \"application/vnd.mobius.plc\": {\n \"source\": \"iana\",\n \"extensions\": [\"plc\"]\n },\n \"application/vnd.mobius.txf\": {\n \"source\": \"iana\",\n \"extensions\": [\"txf\"]\n },\n \"application/vnd.mophun.application\": {\n \"source\": \"iana\",\n \"extensions\": [\"mpn\"]\n },\n \"application/vnd.mophun.certificate\": {\n \"source\": \"iana\",\n \"extensions\": [\"mpc\"]\n },\n \"application/vnd.motorola.flexsuite\": {\n \"source\": \"iana\"\n },\n \"application/vnd.motorola.flexsuite.adsi\": {\n \"source\": \"iana\"\n },\n \"application/vnd.motorola.flexsuite.fis\": {\n \"source\": \"iana\"\n },\n \"application/vnd.motorola.flexsuite.gotap\": {\n \"source\": \"iana\"\n },\n \"application/vnd.motorola.flexsuite.kmr\": {\n \"source\": \"iana\"\n },\n \"application/vnd.motorola.flexsuite.ttc\": {\n \"source\": \"iana\"\n },\n \"application/vnd.motorola.flexsuite.wem\": {\n \"source\": \"iana\"\n },\n \"application/vnd.motorola.iprm\": {\n \"source\": \"iana\"\n },\n \"application/vnd.mozilla.xul+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"xul\"]\n },\n \"application/vnd.ms-3mfdocument\": {\n \"source\": \"iana\"\n },\n \"application/vnd.ms-artgalry\": {\n \"source\": \"iana\",\n \"extensions\": [\"cil\"]\n },\n \"application/vnd.ms-asf\": {\n \"source\": \"iana\"\n },\n \"application/vnd.ms-cab-compressed\": {\n \"source\": \"iana\",\n \"extensions\": [\"cab\"]\n },\n \"application/vnd.ms-color.iccprofile\": {\n \"source\": \"apache\"\n },\n \"application/vnd.ms-excel\": {\n \"source\": \"iana\",\n \"compressible\": false,\n \"extensions\": [\"xls\",\"xlm\",\"xla\",\"xlc\",\"xlt\",\"xlw\"]\n },\n \"application/vnd.ms-excel.addin.macroenabled.12\": {\n \"source\": \"iana\",\n \"extensions\": [\"xlam\"]\n },\n \"application/vnd.ms-excel.sheet.binary.macroenabled.12\": {\n \"source\": \"iana\",\n \"extensions\": [\"xlsb\"]\n },\n \"application/vnd.ms-excel.sheet.macroenabled.12\": {\n \"source\": \"iana\",\n \"extensions\": [\"xlsm\"]\n },\n \"application/vnd.ms-excel.template.macroenabled.12\": {\n \"source\": \"iana\",\n \"extensions\": [\"xltm\"]\n },\n \"application/vnd.ms-fontobject\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"eot\"]\n },\n \"application/vnd.ms-htmlhelp\": {\n \"source\": \"iana\",\n \"extensions\": [\"chm\"]\n },\n \"application/vnd.ms-ims\": {\n \"source\": \"iana\",\n \"extensions\": [\"ims\"]\n },\n \"application/vnd.ms-lrm\": {\n \"source\": \"iana\",\n \"extensions\": [\"lrm\"]\n },\n \"application/vnd.ms-office.activex+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.ms-officetheme\": {\n \"source\": \"iana\",\n \"extensions\": [\"thmx\"]\n },\n \"application/vnd.ms-opentype\": {\n \"source\": \"apache\",\n \"compressible\": true\n },\n \"application/vnd.ms-outlook\": {\n \"compressible\": false,\n \"extensions\": [\"msg\"]\n },\n \"application/vnd.ms-package.obfuscated-opentype\": {\n \"source\": \"apache\"\n },\n \"application/vnd.ms-pki.seccat\": {\n \"source\": \"apache\",\n \"extensions\": [\"cat\"]\n },\n \"application/vnd.ms-pki.stl\": {\n \"source\": \"apache\",\n \"extensions\": [\"stl\"]\n },\n \"application/vnd.ms-playready.initiator+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.ms-powerpoint\": {\n \"source\": \"iana\",\n \"compressible\": false,\n \"extensions\": [\"ppt\",\"pps\",\"pot\"]\n },\n \"application/vnd.ms-powerpoint.addin.macroenabled.12\": {\n \"source\": \"iana\",\n \"extensions\": [\"ppam\"]\n },\n \"application/vnd.ms-powerpoint.presentation.macroenabled.12\": {\n \"source\": \"iana\",\n \"extensions\": [\"pptm\"]\n },\n \"application/vnd.ms-powerpoint.slide.macroenabled.12\": {\n \"source\": \"iana\",\n \"extensions\": [\"sldm\"]\n },\n \"application/vnd.ms-powerpoint.slideshow.macroenabled.12\": {\n \"source\": \"iana\",\n \"extensions\": [\"ppsm\"]\n },\n \"application/vnd.ms-powerpoint.template.macroenabled.12\": {\n \"source\": \"iana\",\n \"extensions\": [\"potm\"]\n },\n \"application/vnd.ms-printdevicecapabilities+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.ms-printing.printticket+xml\": {\n \"source\": \"apache\",\n \"compressible\": true\n },\n \"application/vnd.ms-printschematicket+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.ms-project\": {\n \"source\": \"iana\",\n \"extensions\": [\"mpp\",\"mpt\"]\n },\n \"application/vnd.ms-tnef\": {\n \"source\": \"iana\"\n },\n \"application/vnd.ms-windows.devicepairing\": {\n \"source\": \"iana\"\n },\n \"application/vnd.ms-windows.nwprinting.oob\": {\n \"source\": \"iana\"\n },\n \"application/vnd.ms-windows.printerpairing\": {\n \"source\": \"iana\"\n },\n \"application/vnd.ms-windows.wsd.oob\": {\n \"source\": \"iana\"\n },\n \"application/vnd.ms-wmdrm.lic-chlg-req\": {\n \"source\": \"iana\"\n },\n \"application/vnd.ms-wmdrm.lic-resp\": {\n \"source\": \"iana\"\n },\n \"application/vnd.ms-wmdrm.meter-chlg-req\": {\n \"source\": \"iana\"\n },\n \"application/vnd.ms-wmdrm.meter-resp\": {\n \"source\": \"iana\"\n },\n \"application/vnd.ms-word.document.macroenabled.12\": {\n \"source\": \"iana\",\n \"extensions\": [\"docm\"]\n },\n \"application/vnd.ms-word.template.macroenabled.12\": {\n \"source\": \"iana\",\n \"extensions\": [\"dotm\"]\n },\n \"application/vnd.ms-works\": {\n \"source\": \"iana\",\n \"extensions\": [\"wps\",\"wks\",\"wcm\",\"wdb\"]\n },\n \"application/vnd.ms-wpl\": {\n \"source\": \"iana\",\n \"extensions\": [\"wpl\"]\n },\n \"application/vnd.ms-xpsdocument\": {\n \"source\": \"iana\",\n \"compressible\": false,\n \"extensions\": [\"xps\"]\n },\n \"application/vnd.msa-disk-image\": {\n \"source\": \"iana\"\n },\n \"application/vnd.mseq\": {\n \"source\": \"iana\",\n \"extensions\": [\"mseq\"]\n },\n \"application/vnd.msign\": {\n \"source\": \"iana\"\n },\n \"application/vnd.multiad.creator\": {\n \"source\": \"iana\"\n },\n \"application/vnd.multiad.creator.cif\": {\n \"source\": \"iana\"\n },\n \"application/vnd.music-niff\": {\n \"source\": \"iana\"\n },\n \"application/vnd.musician\": {\n \"source\": \"iana\",\n \"extensions\": [\"mus\"]\n },\n \"application/vnd.muvee.style\": {\n \"source\": \"iana\",\n \"extensions\": [\"msty\"]\n },\n \"application/vnd.mynfc\": {\n \"source\": \"iana\",\n \"extensions\": [\"taglet\"]\n },\n \"application/vnd.nacamar.ybrid+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.ncd.control\": {\n \"source\": \"iana\"\n },\n \"application/vnd.ncd.reference\": {\n \"source\": \"iana\"\n },\n \"application/vnd.nearst.inv+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.nebumind.line\": {\n \"source\": \"iana\"\n },\n \"application/vnd.nervana\": {\n \"source\": \"iana\"\n },\n \"application/vnd.netfpx\": {\n \"source\": \"iana\"\n },\n \"application/vnd.neurolanguage.nlu\": {\n \"source\": \"iana\",\n \"extensions\": [\"nlu\"]\n },\n \"application/vnd.nimn\": {\n \"source\": \"iana\"\n },\n \"application/vnd.nintendo.nitro.rom\": {\n \"source\": \"iana\"\n },\n \"application/vnd.nintendo.snes.rom\": {\n \"source\": \"iana\"\n },\n \"application/vnd.nitf\": {\n \"source\": \"iana\",\n \"extensions\": [\"ntf\",\"nitf\"]\n },\n \"application/vnd.noblenet-directory\": {\n \"source\": \"iana\",\n \"extensions\": [\"nnd\"]\n },\n \"application/vnd.noblenet-sealer\": {\n \"source\": \"iana\",\n \"extensions\": [\"nns\"]\n },\n \"application/vnd.noblenet-web\": {\n \"source\": \"iana\",\n \"extensions\": [\"nnw\"]\n },\n \"application/vnd.nokia.catalogs\": {\n \"source\": \"iana\"\n },\n \"application/vnd.nokia.conml+wbxml\": {\n \"source\": \"iana\"\n },\n \"application/vnd.nokia.conml+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.nokia.iptv.config+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.nokia.isds-radio-presets\": {\n \"source\": \"iana\"\n },\n \"application/vnd.nokia.landmark+wbxml\": {\n \"source\": \"iana\"\n },\n \"application/vnd.nokia.landmark+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.nokia.landmarkcollection+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.nokia.n-gage.ac+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"ac\"]\n },\n \"application/vnd.nokia.n-gage.data\": {\n \"source\": \"iana\",\n \"extensions\": [\"ngdat\"]\n },\n \"application/vnd.nokia.n-gage.symbian.install\": {\n \"source\": \"iana\",\n \"extensions\": [\"n-gage\"]\n },\n \"application/vnd.nokia.ncd\": {\n \"source\": \"iana\"\n },\n \"application/vnd.nokia.pcd+wbxml\": {\n \"source\": \"iana\"\n },\n \"application/vnd.nokia.pcd+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.nokia.radio-preset\": {\n \"source\": \"iana\",\n \"extensions\": [\"rpst\"]\n },\n \"application/vnd.nokia.radio-presets\": {\n \"source\": \"iana\",\n \"extensions\": [\"rpss\"]\n },\n \"application/vnd.novadigm.edm\": {\n \"source\": \"iana\",\n \"extensions\": [\"edm\"]\n },\n \"application/vnd.novadigm.edx\": {\n \"source\": \"iana\",\n \"extensions\": [\"edx\"]\n },\n \"application/vnd.novadigm.ext\": {\n \"source\": \"iana\",\n \"extensions\": [\"ext\"]\n },\n \"application/vnd.ntt-local.content-share\": {\n \"source\": \"iana\"\n },\n \"application/vnd.ntt-local.file-transfer\": {\n \"source\": \"iana\"\n },\n \"application/vnd.ntt-local.ogw_remote-access\": {\n \"source\": \"iana\"\n },\n \"application/vnd.ntt-local.sip-ta_remote\": {\n \"source\": \"iana\"\n },\n \"application/vnd.ntt-local.sip-ta_tcp_stream\": {\n \"source\": \"iana\"\n },\n \"application/vnd.oasis.opendocument.chart\": {\n \"source\": \"iana\",\n \"extensions\": [\"odc\"]\n },\n \"application/vnd.oasis.opendocument.chart-template\": {\n \"source\": \"iana\",\n \"extensions\": [\"otc\"]\n },\n \"application/vnd.oasis.opendocument.database\": {\n \"source\": \"iana\",\n \"extensions\": [\"odb\"]\n },\n \"application/vnd.oasis.opendocument.formula\": {\n \"source\": \"iana\",\n \"extensions\": [\"odf\"]\n },\n \"application/vnd.oasis.opendocument.formula-template\": {\n \"source\": \"iana\",\n \"extensions\": [\"odft\"]\n },\n \"application/vnd.oasis.opendocument.graphics\": {\n \"source\": \"iana\",\n \"compressible\": false,\n \"extensions\": [\"odg\"]\n },\n \"application/vnd.oasis.opendocument.graphics-template\": {\n \"source\": \"iana\",\n \"extensions\": [\"otg\"]\n },\n \"application/vnd.oasis.opendocument.image\": {\n \"source\": \"iana\",\n \"extensions\": [\"odi\"]\n },\n \"application/vnd.oasis.opendocument.image-template\": {\n \"source\": \"iana\",\n \"extensions\": [\"oti\"]\n },\n \"application/vnd.oasis.opendocument.presentation\": {\n \"source\": \"iana\",\n \"compressible\": false,\n \"extensions\": [\"odp\"]\n },\n \"application/vnd.oasis.opendocument.presentation-template\": {\n \"source\": \"iana\",\n \"extensions\": [\"otp\"]\n },\n \"application/vnd.oasis.opendocument.spreadsheet\": {\n \"source\": \"iana\",\n \"compressible\": false,\n \"extensions\": [\"ods\"]\n },\n \"application/vnd.oasis.opendocument.spreadsheet-template\": {\n \"source\": \"iana\",\n \"extensions\": [\"ots\"]\n },\n \"application/vnd.oasis.opendocument.text\": {\n \"source\": \"iana\",\n \"compressible\": false,\n \"extensions\": [\"odt\"]\n },\n \"application/vnd.oasis.opendocument.text-master\": {\n \"source\": \"iana\",\n \"extensions\": [\"odm\"]\n },\n \"application/vnd.oasis.opendocument.text-template\": {\n \"source\": \"iana\",\n \"extensions\": [\"ott\"]\n },\n \"application/vnd.oasis.opendocument.text-web\": {\n \"source\": \"iana\",\n \"extensions\": [\"oth\"]\n },\n \"application/vnd.obn\": {\n \"source\": \"iana\"\n },\n \"application/vnd.ocf+cbor\": {\n \"source\": \"iana\"\n },\n \"application/vnd.oci.image.manifest.v1+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.oftn.l10n+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.oipf.contentaccessdownload+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.oipf.contentaccessstreaming+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.oipf.cspg-hexbinary\": {\n \"source\": \"iana\"\n },\n \"application/vnd.oipf.dae.svg+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.oipf.dae.xhtml+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.oipf.mippvcontrolmessage+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.oipf.pae.gem\": {\n \"source\": \"iana\"\n },\n \"application/vnd.oipf.spdiscovery+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.oipf.spdlist+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.oipf.ueprofile+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.oipf.userprofile+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.olpc-sugar\": {\n \"source\": \"iana\",\n \"extensions\": [\"xo\"]\n },\n \"application/vnd.oma-scws-config\": {\n \"source\": \"iana\"\n },\n \"application/vnd.oma-scws-http-request\": {\n \"source\": \"iana\"\n },\n \"application/vnd.oma-scws-http-response\": {\n \"source\": \"iana\"\n },\n \"application/vnd.oma.bcast.associated-procedure-parameter+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.oma.bcast.drm-trigger+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.oma.bcast.imd+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.oma.bcast.ltkm\": {\n \"source\": \"iana\"\n },\n \"application/vnd.oma.bcast.notification+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.oma.bcast.provisioningtrigger\": {\n \"source\": \"iana\"\n },\n \"application/vnd.oma.bcast.sgboot\": {\n \"source\": \"iana\"\n },\n \"application/vnd.oma.bcast.sgdd+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.oma.bcast.sgdu\": {\n \"source\": \"iana\"\n },\n \"application/vnd.oma.bcast.simple-symbol-container\": {\n \"source\": \"iana\"\n },\n \"application/vnd.oma.bcast.smartcard-trigger+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.oma.bcast.sprov+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.oma.bcast.stkm\": {\n \"source\": \"iana\"\n },\n \"application/vnd.oma.cab-address-book+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.oma.cab-feature-handler+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.oma.cab-pcc+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.oma.cab-subs-invite+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.oma.cab-user-prefs+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.oma.dcd\": {\n \"source\": \"iana\"\n },\n \"application/vnd.oma.dcdc\": {\n \"source\": \"iana\"\n },\n \"application/vnd.oma.dd2+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"dd2\"]\n },\n \"application/vnd.oma.drm.risd+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.oma.group-usage-list+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.oma.lwm2m+cbor\": {\n \"source\": \"iana\"\n },\n \"application/vnd.oma.lwm2m+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.oma.lwm2m+tlv\": {\n \"source\": \"iana\"\n },\n \"application/vnd.oma.pal+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.oma.poc.detailed-progress-report+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.oma.poc.final-report+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.oma.poc.groups+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.oma.poc.invocation-descriptor+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.oma.poc.optimized-progress-report+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.oma.push\": {\n \"source\": \"iana\"\n },\n \"application/vnd.oma.scidm.messages+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.oma.xcap-directory+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.omads-email+xml\": {\n \"source\": \"iana\",\n \"charset\": \"UTF-8\",\n \"compressible\": true\n },\n \"application/vnd.omads-file+xml\": {\n \"source\": \"iana\",\n \"charset\": \"UTF-8\",\n \"compressible\": true\n },\n \"application/vnd.omads-folder+xml\": {\n \"source\": \"iana\",\n \"charset\": \"UTF-8\",\n \"compressible\": true\n },\n \"application/vnd.omaloc-supl-init\": {\n \"source\": \"iana\"\n },\n \"application/vnd.onepager\": {\n \"source\": \"iana\"\n },\n \"application/vnd.onepagertamp\": {\n \"source\": \"iana\"\n },\n \"application/vnd.onepagertamx\": {\n \"source\": \"iana\"\n },\n \"application/vnd.onepagertat\": {\n \"source\": \"iana\"\n },\n \"application/vnd.onepagertatp\": {\n \"source\": \"iana\"\n },\n \"application/vnd.onepagertatx\": {\n \"source\": \"iana\"\n },\n \"application/vnd.openblox.game+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"obgx\"]\n },\n \"application/vnd.openblox.game-binary\": {\n \"source\": \"iana\"\n },\n \"application/vnd.openeye.oeb\": {\n \"source\": \"iana\"\n },\n \"application/vnd.openofficeorg.extension\": {\n \"source\": \"apache\",\n \"extensions\": [\"oxt\"]\n },\n \"application/vnd.openstreetmap.data+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"osm\"]\n },\n \"application/vnd.opentimestamps.ots\": {\n \"source\": \"iana\"\n },\n \"application/vnd.openxmlformats-officedocument.custom-properties+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.openxmlformats-officedocument.customxmlproperties+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.openxmlformats-officedocument.drawing+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.openxmlformats-officedocument.drawingml.chart+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.openxmlformats-officedocument.drawingml.chartshapes+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.openxmlformats-officedocument.drawingml.diagramcolors+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.openxmlformats-officedocument.drawingml.diagramdata+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.openxmlformats-officedocument.drawingml.diagramlayout+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.openxmlformats-officedocument.drawingml.diagramstyle+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.openxmlformats-officedocument.extended-properties+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.openxmlformats-officedocument.presentationml.commentauthors+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.openxmlformats-officedocument.presentationml.comments+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.openxmlformats-officedocument.presentationml.handoutmaster+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.openxmlformats-officedocument.presentationml.notesmaster+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.openxmlformats-officedocument.presentationml.notesslide+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.openxmlformats-officedocument.presentationml.presentation\": {\n \"source\": \"iana\",\n \"compressible\": false,\n \"extensions\": [\"pptx\"]\n },\n \"application/vnd.openxmlformats-officedocument.presentationml.presentation.main+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.openxmlformats-officedocument.presentationml.presprops+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.openxmlformats-officedocument.presentationml.slide\": {\n \"source\": \"iana\",\n \"extensions\": [\"sldx\"]\n },\n \"application/vnd.openxmlformats-officedocument.presentationml.slide+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.openxmlformats-officedocument.presentationml.slidelayout+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.openxmlformats-officedocument.presentationml.slidemaster+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.openxmlformats-officedocument.presentationml.slideshow\": {\n \"source\": \"iana\",\n \"extensions\": [\"ppsx\"]\n },\n \"application/vnd.openxmlformats-officedocument.presentationml.slideshow.main+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.openxmlformats-officedocument.presentationml.slideupdateinfo+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.openxmlformats-officedocument.presentationml.tablestyles+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.openxmlformats-officedocument.presentationml.tags+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.openxmlformats-officedocument.presentationml.template\": {\n \"source\": \"iana\",\n \"extensions\": [\"potx\"]\n },\n \"application/vnd.openxmlformats-officedocument.presentationml.template.main+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.openxmlformats-officedocument.presentationml.viewprops+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.openxmlformats-officedocument.spreadsheetml.calcchain+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.openxmlformats-officedocument.spreadsheetml.chartsheet+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.openxmlformats-officedocument.spreadsheetml.comments+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.openxmlformats-officedocument.spreadsheetml.connections+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.openxmlformats-officedocument.spreadsheetml.dialogsheet+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.openxmlformats-officedocument.spreadsheetml.externallink+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.openxmlformats-officedocument.spreadsheetml.pivotcachedefinition+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.openxmlformats-officedocument.spreadsheetml.pivotcacherecords+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.openxmlformats-officedocument.spreadsheetml.pivottable+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.openxmlformats-officedocument.spreadsheetml.querytable+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.openxmlformats-officedocument.spreadsheetml.revisionheaders+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.openxmlformats-officedocument.spreadsheetml.revisionlog+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.openxmlformats-officedocument.spreadsheetml.sharedstrings+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet\": {\n \"source\": \"iana\",\n \"compressible\": false,\n \"extensions\": [\"xlsx\"]\n },\n \"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet.main+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.openxmlformats-officedocument.spreadsheetml.sheetmetadata+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.openxmlformats-officedocument.spreadsheetml.styles+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.openxmlformats-officedocument.spreadsheetml.table+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.openxmlformats-officedocument.spreadsheetml.tablesinglecells+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.openxmlformats-officedocument.spreadsheetml.template\": {\n \"source\": \"iana\",\n \"extensions\": [\"xltx\"]\n },\n \"application/vnd.openxmlformats-officedocument.spreadsheetml.template.main+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.openxmlformats-officedocument.spreadsheetml.usernames+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.openxmlformats-officedocument.spreadsheetml.volatiledependencies+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.openxmlformats-officedocument.spreadsheetml.worksheet+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.openxmlformats-officedocument.theme+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.openxmlformats-officedocument.themeoverride+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.openxmlformats-officedocument.vmldrawing\": {\n \"source\": \"iana\"\n },\n \"application/vnd.openxmlformats-officedocument.wordprocessingml.comments+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.openxmlformats-officedocument.wordprocessingml.document\": {\n \"source\": \"iana\",\n \"compressible\": false,\n \"extensions\": [\"docx\"]\n },\n \"application/vnd.openxmlformats-officedocument.wordprocessingml.document.glossary+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.openxmlformats-officedocument.wordprocessingml.document.main+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.openxmlformats-officedocument.wordprocessingml.endnotes+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.openxmlformats-officedocument.wordprocessingml.fonttable+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.openxmlformats-officedocument.wordprocessingml.footer+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.openxmlformats-officedocument.wordprocessingml.footnotes+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.openxmlformats-officedocument.wordprocessingml.numbering+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.openxmlformats-officedocument.wordprocessingml.settings+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.openxmlformats-officedocument.wordprocessingml.styles+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.openxmlformats-officedocument.wordprocessingml.template\": {\n \"source\": \"iana\",\n \"extensions\": [\"dotx\"]\n },\n \"application/vnd.openxmlformats-officedocument.wordprocessingml.template.main+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.openxmlformats-officedocument.wordprocessingml.websettings+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.openxmlformats-package.core-properties+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.openxmlformats-package.digital-signature-xmlsignature+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.openxmlformats-package.relationships+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.oracle.resource+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.orange.indata\": {\n \"source\": \"iana\"\n },\n \"application/vnd.osa.netdeploy\": {\n \"source\": \"iana\"\n },\n \"application/vnd.osgeo.mapguide.package\": {\n \"source\": \"iana\",\n \"extensions\": [\"mgp\"]\n },\n \"application/vnd.osgi.bundle\": {\n \"source\": \"iana\"\n },\n \"application/vnd.osgi.dp\": {\n \"source\": \"iana\",\n \"extensions\": [\"dp\"]\n },\n \"application/vnd.osgi.subsystem\": {\n \"source\": \"iana\",\n \"extensions\": [\"esa\"]\n },\n \"application/vnd.otps.ct-kip+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.oxli.countgraph\": {\n \"source\": \"iana\"\n },\n \"application/vnd.pagerduty+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.palm\": {\n \"source\": \"iana\",\n \"extensions\": [\"pdb\",\"pqa\",\"oprc\"]\n },\n \"application/vnd.panoply\": {\n \"source\": \"iana\"\n },\n \"application/vnd.paos.xml\": {\n \"source\": \"iana\"\n },\n \"application/vnd.patentdive\": {\n \"source\": \"iana\"\n },\n \"application/vnd.patientecommsdoc\": {\n \"source\": \"iana\"\n },\n \"application/vnd.pawaafile\": {\n \"source\": \"iana\",\n \"extensions\": [\"paw\"]\n },\n \"application/vnd.pcos\": {\n \"source\": \"iana\"\n },\n \"application/vnd.pg.format\": {\n \"source\": \"iana\",\n \"extensions\": [\"str\"]\n },\n \"application/vnd.pg.osasli\": {\n \"source\": \"iana\",\n \"extensions\": [\"ei6\"]\n },\n \"application/vnd.piaccess.application-licence\": {\n \"source\": \"iana\"\n },\n \"application/vnd.picsel\": {\n \"source\": \"iana\",\n \"extensions\": [\"efif\"]\n },\n \"application/vnd.pmi.widget\": {\n \"source\": \"iana\",\n \"extensions\": [\"wg\"]\n },\n \"application/vnd.poc.group-advertisement+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.pocketlearn\": {\n \"source\": \"iana\",\n \"extensions\": [\"plf\"]\n },\n \"application/vnd.powerbuilder6\": {\n \"source\": \"iana\",\n \"extensions\": [\"pbd\"]\n },\n \"application/vnd.powerbuilder6-s\": {\n \"source\": \"iana\"\n },\n \"application/vnd.powerbuilder7\": {\n \"source\": \"iana\"\n },\n \"application/vnd.powerbuilder7-s\": {\n \"source\": \"iana\"\n },\n \"application/vnd.powerbuilder75\": {\n \"source\": \"iana\"\n },\n \"application/vnd.powerbuilder75-s\": {\n \"source\": \"iana\"\n },\n \"application/vnd.preminet\": {\n \"source\": \"iana\"\n },\n \"application/vnd.previewsystems.box\": {\n \"source\": \"iana\",\n \"extensions\": [\"box\"]\n },\n \"application/vnd.proteus.magazine\": {\n \"source\": \"iana\",\n \"extensions\": [\"mgz\"]\n },\n \"application/vnd.psfs\": {\n \"source\": \"iana\"\n },\n \"application/vnd.publishare-delta-tree\": {\n \"source\": \"iana\",\n \"extensions\": [\"qps\"]\n },\n \"application/vnd.pvi.ptid1\": {\n \"source\": \"iana\",\n \"extensions\": [\"ptid\"]\n },\n \"application/vnd.pwg-multiplexed\": {\n \"source\": \"iana\"\n },\n \"application/vnd.pwg-xhtml-print+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.qualcomm.brew-app-res\": {\n \"source\": \"iana\"\n },\n \"application/vnd.quarantainenet\": {\n \"source\": \"iana\"\n },\n \"application/vnd.quark.quarkxpress\": {\n \"source\": \"iana\",\n \"extensions\": [\"qxd\",\"qxt\",\"qwd\",\"qwt\",\"qxl\",\"qxb\"]\n },\n \"application/vnd.quobject-quoxdocument\": {\n \"source\": \"iana\"\n },\n \"application/vnd.radisys.moml+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.radisys.msml+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.radisys.msml-audit+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.radisys.msml-audit-conf+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.radisys.msml-audit-conn+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.radisys.msml-audit-dialog+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.radisys.msml-audit-stream+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.radisys.msml-conf+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.radisys.msml-dialog+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.radisys.msml-dialog-base+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.radisys.msml-dialog-fax-detect+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.radisys.msml-dialog-fax-sendrecv+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.radisys.msml-dialog-group+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.radisys.msml-dialog-speech+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.radisys.msml-dialog-transform+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.rainstor.data\": {\n \"source\": \"iana\"\n },\n \"application/vnd.rapid\": {\n \"source\": \"iana\"\n },\n \"application/vnd.rar\": {\n \"source\": \"iana\",\n \"extensions\": [\"rar\"]\n },\n \"application/vnd.realvnc.bed\": {\n \"source\": \"iana\",\n \"extensions\": [\"bed\"]\n },\n \"application/vnd.recordare.musicxml\": {\n \"source\": \"iana\",\n \"extensions\": [\"mxl\"]\n },\n \"application/vnd.recordare.musicxml+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"musicxml\"]\n },\n \"application/vnd.renlearn.rlprint\": {\n \"source\": \"iana\"\n },\n \"application/vnd.resilient.logic\": {\n \"source\": \"iana\"\n },\n \"application/vnd.restful+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.rig.cryptonote\": {\n \"source\": \"iana\",\n \"extensions\": [\"cryptonote\"]\n },\n \"application/vnd.rim.cod\": {\n \"source\": \"apache\",\n \"extensions\": [\"cod\"]\n },\n \"application/vnd.rn-realmedia\": {\n \"source\": \"apache\",\n \"extensions\": [\"rm\"]\n },\n \"application/vnd.rn-realmedia-vbr\": {\n \"source\": \"apache\",\n \"extensions\": [\"rmvb\"]\n },\n \"application/vnd.route66.link66+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"link66\"]\n },\n \"application/vnd.rs-274x\": {\n \"source\": \"iana\"\n },\n \"application/vnd.ruckus.download\": {\n \"source\": \"iana\"\n },\n \"application/vnd.s3sms\": {\n \"source\": \"iana\"\n },\n \"application/vnd.sailingtracker.track\": {\n \"source\": \"iana\",\n \"extensions\": [\"st\"]\n },\n \"application/vnd.sar\": {\n \"source\": \"iana\"\n },\n \"application/vnd.sbm.cid\": {\n \"source\": \"iana\"\n },\n \"application/vnd.sbm.mid2\": {\n \"source\": \"iana\"\n },\n \"application/vnd.scribus\": {\n \"source\": \"iana\"\n },\n \"application/vnd.sealed.3df\": {\n \"source\": \"iana\"\n },\n \"application/vnd.sealed.csf\": {\n \"source\": \"iana\"\n },\n \"application/vnd.sealed.doc\": {\n \"source\": \"iana\"\n },\n \"application/vnd.sealed.eml\": {\n \"source\": \"iana\"\n },\n \"application/vnd.sealed.mht\": {\n \"source\": \"iana\"\n },\n \"application/vnd.sealed.net\": {\n \"source\": \"iana\"\n },\n \"application/vnd.sealed.ppt\": {\n \"source\": \"iana\"\n },\n \"application/vnd.sealed.tiff\": {\n \"source\": \"iana\"\n },\n \"application/vnd.sealed.xls\": {\n \"source\": \"iana\"\n },\n \"application/vnd.sealedmedia.softseal.html\": {\n \"source\": \"iana\"\n },\n \"application/vnd.sealedmedia.softseal.pdf\": {\n \"source\": \"iana\"\n },\n \"application/vnd.seemail\": {\n \"source\": \"iana\",\n \"extensions\": [\"see\"]\n },\n \"application/vnd.seis+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.sema\": {\n \"source\": \"iana\",\n \"extensions\": [\"sema\"]\n },\n \"application/vnd.semd\": {\n \"source\": \"iana\",\n \"extensions\": [\"semd\"]\n },\n \"application/vnd.semf\": {\n \"source\": \"iana\",\n \"extensions\": [\"semf\"]\n },\n \"application/vnd.shade-save-file\": {\n \"source\": \"iana\"\n },\n \"application/vnd.shana.informed.formdata\": {\n \"source\": \"iana\",\n \"extensions\": [\"ifm\"]\n },\n \"application/vnd.shana.informed.formtemplate\": {\n \"source\": \"iana\",\n \"extensions\": [\"itp\"]\n },\n \"application/vnd.shana.informed.interchange\": {\n \"source\": \"iana\",\n \"extensions\": [\"iif\"]\n },\n \"application/vnd.shana.informed.package\": {\n \"source\": \"iana\",\n \"extensions\": [\"ipk\"]\n },\n \"application/vnd.shootproof+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.shopkick+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.shp\": {\n \"source\": \"iana\"\n },\n \"application/vnd.shx\": {\n \"source\": \"iana\"\n },\n \"application/vnd.sigrok.session\": {\n \"source\": \"iana\"\n },\n \"application/vnd.simtech-mindmapper\": {\n \"source\": \"iana\",\n \"extensions\": [\"twd\",\"twds\"]\n },\n \"application/vnd.siren+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.smaf\": {\n \"source\": \"iana\",\n \"extensions\": [\"mmf\"]\n },\n \"application/vnd.smart.notebook\": {\n \"source\": \"iana\"\n },\n \"application/vnd.smart.teacher\": {\n \"source\": \"iana\",\n \"extensions\": [\"teacher\"]\n },\n \"application/vnd.snesdev-page-table\": {\n \"source\": \"iana\"\n },\n \"application/vnd.software602.filler.form+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"fo\"]\n },\n \"application/vnd.software602.filler.form-xml-zip\": {\n \"source\": \"iana\"\n },\n \"application/vnd.solent.sdkm+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"sdkm\",\"sdkd\"]\n },\n \"application/vnd.spotfire.dxp\": {\n \"source\": \"iana\",\n \"extensions\": [\"dxp\"]\n },\n \"application/vnd.spotfire.sfs\": {\n \"source\": \"iana\",\n \"extensions\": [\"sfs\"]\n },\n \"application/vnd.sqlite3\": {\n \"source\": \"iana\"\n },\n \"application/vnd.sss-cod\": {\n \"source\": \"iana\"\n },\n \"application/vnd.sss-dtf\": {\n \"source\": \"iana\"\n },\n \"application/vnd.sss-ntf\": {\n \"source\": \"iana\"\n },\n \"application/vnd.stardivision.calc\": {\n \"source\": \"apache\",\n \"extensions\": [\"sdc\"]\n },\n \"application/vnd.stardivision.draw\": {\n \"source\": \"apache\",\n \"extensions\": [\"sda\"]\n },\n \"application/vnd.stardivision.impress\": {\n \"source\": \"apache\",\n \"extensions\": [\"sdd\"]\n },\n \"application/vnd.stardivision.math\": {\n \"source\": \"apache\",\n \"extensions\": [\"smf\"]\n },\n \"application/vnd.stardivision.writer\": {\n \"source\": \"apache\",\n \"extensions\": [\"sdw\",\"vor\"]\n },\n \"application/vnd.stardivision.writer-global\": {\n \"source\": \"apache\",\n \"extensions\": [\"sgl\"]\n },\n \"application/vnd.stepmania.package\": {\n \"source\": \"iana\",\n \"extensions\": [\"smzip\"]\n },\n \"application/vnd.stepmania.stepchart\": {\n \"source\": \"iana\",\n \"extensions\": [\"sm\"]\n },\n \"application/vnd.street-stream\": {\n \"source\": \"iana\"\n },\n \"application/vnd.sun.wadl+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"wadl\"]\n },\n \"application/vnd.sun.xml.calc\": {\n \"source\": \"apache\",\n \"extensions\": [\"sxc\"]\n },\n \"application/vnd.sun.xml.calc.template\": {\n \"source\": \"apache\",\n \"extensions\": [\"stc\"]\n },\n \"application/vnd.sun.xml.draw\": {\n \"source\": \"apache\",\n \"extensions\": [\"sxd\"]\n },\n \"application/vnd.sun.xml.draw.template\": {\n \"source\": \"apache\",\n \"extensions\": [\"std\"]\n },\n \"application/vnd.sun.xml.impress\": {\n \"source\": \"apache\",\n \"extensions\": [\"sxi\"]\n },\n \"application/vnd.sun.xml.impress.template\": {\n \"source\": \"apache\",\n \"extensions\": [\"sti\"]\n },\n \"application/vnd.sun.xml.math\": {\n \"source\": \"apache\",\n \"extensions\": [\"sxm\"]\n },\n \"application/vnd.sun.xml.writer\": {\n \"source\": \"apache\",\n \"extensions\": [\"sxw\"]\n },\n \"application/vnd.sun.xml.writer.global\": {\n \"source\": \"apache\",\n \"extensions\": [\"sxg\"]\n },\n \"application/vnd.sun.xml.writer.template\": {\n \"source\": \"apache\",\n \"extensions\": [\"stw\"]\n },\n \"application/vnd.sus-calendar\": {\n \"source\": \"iana\",\n \"extensions\": [\"sus\",\"susp\"]\n },\n \"application/vnd.svd\": {\n \"source\": \"iana\",\n \"extensions\": [\"svd\"]\n },\n \"application/vnd.swiftview-ics\": {\n \"source\": \"iana\"\n },\n \"application/vnd.sycle+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.syft+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.symbian.install\": {\n \"source\": \"apache\",\n \"extensions\": [\"sis\",\"sisx\"]\n },\n \"application/vnd.syncml+xml\": {\n \"source\": \"iana\",\n \"charset\": \"UTF-8\",\n \"compressible\": true,\n \"extensions\": [\"xsm\"]\n },\n \"application/vnd.syncml.dm+wbxml\": {\n \"source\": \"iana\",\n \"charset\": \"UTF-8\",\n \"extensions\": [\"bdm\"]\n },\n \"application/vnd.syncml.dm+xml\": {\n \"source\": \"iana\",\n \"charset\": \"UTF-8\",\n \"compressible\": true,\n \"extensions\": [\"xdm\"]\n },\n \"application/vnd.syncml.dm.notification\": {\n \"source\": \"iana\"\n },\n \"application/vnd.syncml.dmddf+wbxml\": {\n \"source\": \"iana\"\n },\n \"application/vnd.syncml.dmddf+xml\": {\n \"source\": \"iana\",\n \"charset\": \"UTF-8\",\n \"compressible\": true,\n \"extensions\": [\"ddf\"]\n },\n \"application/vnd.syncml.dmtnds+wbxml\": {\n \"source\": \"iana\"\n },\n \"application/vnd.syncml.dmtnds+xml\": {\n \"source\": \"iana\",\n \"charset\": \"UTF-8\",\n \"compressible\": true\n },\n \"application/vnd.syncml.ds.notification\": {\n \"source\": \"iana\"\n },\n \"application/vnd.tableschema+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.tao.intent-module-archive\": {\n \"source\": \"iana\",\n \"extensions\": [\"tao\"]\n },\n \"application/vnd.tcpdump.pcap\": {\n \"source\": \"iana\",\n \"extensions\": [\"pcap\",\"cap\",\"dmp\"]\n },\n \"application/vnd.think-cell.ppttc+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.tmd.mediaflex.api+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.tml\": {\n \"source\": \"iana\"\n },\n \"application/vnd.tmobile-livetv\": {\n \"source\": \"iana\",\n \"extensions\": [\"tmo\"]\n },\n \"application/vnd.tri.onesource\": {\n \"source\": \"iana\"\n },\n \"application/vnd.trid.tpt\": {\n \"source\": \"iana\",\n \"extensions\": [\"tpt\"]\n },\n \"application/vnd.triscape.mxs\": {\n \"source\": \"iana\",\n \"extensions\": [\"mxs\"]\n },\n \"application/vnd.trueapp\": {\n \"source\": \"iana\",\n \"extensions\": [\"tra\"]\n },\n \"application/vnd.truedoc\": {\n \"source\": \"iana\"\n },\n \"application/vnd.ubisoft.webplayer\": {\n \"source\": \"iana\"\n },\n \"application/vnd.ufdl\": {\n \"source\": \"iana\",\n \"extensions\": [\"ufd\",\"ufdl\"]\n },\n \"application/vnd.uiq.theme\": {\n \"source\": \"iana\",\n \"extensions\": [\"utz\"]\n },\n \"application/vnd.umajin\": {\n \"source\": \"iana\",\n \"extensions\": [\"umj\"]\n },\n \"application/vnd.unity\": {\n \"source\": \"iana\",\n \"extensions\": [\"unityweb\"]\n },\n \"application/vnd.uoml+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"uoml\"]\n },\n \"application/vnd.uplanet.alert\": {\n \"source\": \"iana\"\n },\n \"application/vnd.uplanet.alert-wbxml\": {\n \"source\": \"iana\"\n },\n \"application/vnd.uplanet.bearer-choice\": {\n \"source\": \"iana\"\n },\n \"application/vnd.uplanet.bearer-choice-wbxml\": {\n \"source\": \"iana\"\n },\n \"application/vnd.uplanet.cacheop\": {\n \"source\": \"iana\"\n },\n \"application/vnd.uplanet.cacheop-wbxml\": {\n \"source\": \"iana\"\n },\n \"application/vnd.uplanet.channel\": {\n \"source\": \"iana\"\n },\n \"application/vnd.uplanet.channel-wbxml\": {\n \"source\": \"iana\"\n },\n \"application/vnd.uplanet.list\": {\n \"source\": \"iana\"\n },\n \"application/vnd.uplanet.list-wbxml\": {\n \"source\": \"iana\"\n },\n \"application/vnd.uplanet.listcmd\": {\n \"source\": \"iana\"\n },\n \"application/vnd.uplanet.listcmd-wbxml\": {\n \"source\": \"iana\"\n },\n \"application/vnd.uplanet.signal\": {\n \"source\": \"iana\"\n },\n \"application/vnd.uri-map\": {\n \"source\": \"iana\"\n },\n \"application/vnd.valve.source.material\": {\n \"source\": \"iana\"\n },\n \"application/vnd.vcx\": {\n \"source\": \"iana\",\n \"extensions\": [\"vcx\"]\n },\n \"application/vnd.vd-study\": {\n \"source\": \"iana\"\n },\n \"application/vnd.vectorworks\": {\n \"source\": \"iana\"\n },\n \"application/vnd.vel+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.verimatrix.vcas\": {\n \"source\": \"iana\"\n },\n \"application/vnd.veritone.aion+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.veryant.thin\": {\n \"source\": \"iana\"\n },\n \"application/vnd.ves.encrypted\": {\n \"source\": \"iana\"\n },\n \"application/vnd.vidsoft.vidconference\": {\n \"source\": \"iana\"\n },\n \"application/vnd.visio\": {\n \"source\": \"iana\",\n \"extensions\": [\"vsd\",\"vst\",\"vss\",\"vsw\"]\n },\n \"application/vnd.visionary\": {\n \"source\": \"iana\",\n \"extensions\": [\"vis\"]\n },\n \"application/vnd.vividence.scriptfile\": {\n \"source\": \"iana\"\n },\n \"application/vnd.vsf\": {\n \"source\": \"iana\",\n \"extensions\": [\"vsf\"]\n },\n \"application/vnd.wap.sic\": {\n \"source\": \"iana\"\n },\n \"application/vnd.wap.slc\": {\n \"source\": \"iana\"\n },\n \"application/vnd.wap.wbxml\": {\n \"source\": \"iana\",\n \"charset\": \"UTF-8\",\n \"extensions\": [\"wbxml\"]\n },\n \"application/vnd.wap.wmlc\": {\n \"source\": \"iana\",\n \"extensions\": [\"wmlc\"]\n },\n \"application/vnd.wap.wmlscriptc\": {\n \"source\": \"iana\",\n \"extensions\": [\"wmlsc\"]\n },\n \"application/vnd.webturbo\": {\n \"source\": \"iana\",\n \"extensions\": [\"wtb\"]\n },\n \"application/vnd.wfa.dpp\": {\n \"source\": \"iana\"\n },\n \"application/vnd.wfa.p2p\": {\n \"source\": \"iana\"\n },\n \"application/vnd.wfa.wsc\": {\n \"source\": \"iana\"\n },\n \"application/vnd.windows.devicepairing\": {\n \"source\": \"iana\"\n },\n \"application/vnd.wmc\": {\n \"source\": \"iana\"\n },\n \"application/vnd.wmf.bootstrap\": {\n \"source\": \"iana\"\n },\n \"application/vnd.wolfram.mathematica\": {\n \"source\": \"iana\"\n },\n \"application/vnd.wolfram.mathematica.package\": {\n \"source\": \"iana\"\n },\n \"application/vnd.wolfram.player\": {\n \"source\": \"iana\",\n \"extensions\": [\"nbp\"]\n },\n \"application/vnd.wordperfect\": {\n \"source\": \"iana\",\n \"extensions\": [\"wpd\"]\n },\n \"application/vnd.wqd\": {\n \"source\": \"iana\",\n \"extensions\": [\"wqd\"]\n },\n \"application/vnd.wrq-hp3000-labelled\": {\n \"source\": \"iana\"\n },\n \"application/vnd.wt.stf\": {\n \"source\": \"iana\",\n \"extensions\": [\"stf\"]\n },\n \"application/vnd.wv.csp+wbxml\": {\n \"source\": \"iana\"\n },\n \"application/vnd.wv.csp+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.wv.ssp+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.xacml+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.xara\": {\n \"source\": \"iana\",\n \"extensions\": [\"xar\"]\n },\n \"application/vnd.xfdl\": {\n \"source\": \"iana\",\n \"extensions\": [\"xfdl\"]\n },\n \"application/vnd.xfdl.webform\": {\n \"source\": \"iana\"\n },\n \"application/vnd.xmi+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.xmpie.cpkg\": {\n \"source\": \"iana\"\n },\n \"application/vnd.xmpie.dpkg\": {\n \"source\": \"iana\"\n },\n \"application/vnd.xmpie.plan\": {\n \"source\": \"iana\"\n },\n \"application/vnd.xmpie.ppkg\": {\n \"source\": \"iana\"\n },\n \"application/vnd.xmpie.xlim\": {\n \"source\": \"iana\"\n },\n \"application/vnd.yamaha.hv-dic\": {\n \"source\": \"iana\",\n \"extensions\": [\"hvd\"]\n },\n \"application/vnd.yamaha.hv-script\": {\n \"source\": \"iana\",\n \"extensions\": [\"hvs\"]\n },\n \"application/vnd.yamaha.hv-voice\": {\n \"source\": \"iana\",\n \"extensions\": [\"hvp\"]\n },\n \"application/vnd.yamaha.openscoreformat\": {\n \"source\": \"iana\",\n \"extensions\": [\"osf\"]\n },\n \"application/vnd.yamaha.openscoreformat.osfpvg+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"osfpvg\"]\n },\n \"application/vnd.yamaha.remote-setup\": {\n \"source\": \"iana\"\n },\n \"application/vnd.yamaha.smaf-audio\": {\n \"source\": \"iana\",\n \"extensions\": [\"saf\"]\n },\n \"application/vnd.yamaha.smaf-phrase\": {\n \"source\": \"iana\",\n \"extensions\": [\"spf\"]\n },\n \"application/vnd.yamaha.through-ngn\": {\n \"source\": \"iana\"\n },\n \"application/vnd.yamaha.tunnel-udpencap\": {\n \"source\": \"iana\"\n },\n \"application/vnd.yaoweme\": {\n \"source\": \"iana\"\n },\n \"application/vnd.yellowriver-custom-menu\": {\n \"source\": \"iana\",\n \"extensions\": [\"cmp\"]\n },\n \"application/vnd.youtube.yt\": {\n \"source\": \"iana\"\n },\n \"application/vnd.zul\": {\n \"source\": \"iana\",\n \"extensions\": [\"zir\",\"zirz\"]\n },\n \"application/vnd.zzazz.deck+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"zaz\"]\n },\n \"application/voicexml+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"vxml\"]\n },\n \"application/voucher-cms+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vq-rtcpxr\": {\n \"source\": \"iana\"\n },\n \"application/wasm\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"wasm\"]\n },\n \"application/watcherinfo+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"wif\"]\n },\n \"application/webpush-options+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/whoispp-query\": {\n \"source\": \"iana\"\n },\n \"application/whoispp-response\": {\n \"source\": \"iana\"\n },\n \"application/widget\": {\n \"source\": \"iana\",\n \"extensions\": [\"wgt\"]\n },\n \"application/winhlp\": {\n \"source\": \"apache\",\n \"extensions\": [\"hlp\"]\n },\n \"application/wita\": {\n \"source\": \"iana\"\n },\n \"application/wordperfect5.1\": {\n \"source\": \"iana\"\n },\n \"application/wsdl+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"wsdl\"]\n },\n \"application/wspolicy+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"wspolicy\"]\n },\n \"application/x-7z-compressed\": {\n \"source\": \"apache\",\n \"compressible\": false,\n \"extensions\": [\"7z\"]\n },\n \"application/x-abiword\": {\n \"source\": \"apache\",\n \"extensions\": [\"abw\"]\n },\n \"application/x-ace-compressed\": {\n \"source\": \"apache\",\n \"extensions\": [\"ace\"]\n },\n \"application/x-amf\": {\n \"source\": \"apache\"\n },\n \"application/x-apple-diskimage\": {\n \"source\": \"apache\",\n \"extensions\": [\"dmg\"]\n },\n \"application/x-arj\": {\n \"compressible\": false,\n \"extensions\": [\"arj\"]\n },\n \"application/x-authorware-bin\": {\n \"source\": \"apache\",\n \"extensions\": [\"aab\",\"x32\",\"u32\",\"vox\"]\n },\n \"application/x-authorware-map\": {\n \"source\": \"apache\",\n \"extensions\": [\"aam\"]\n },\n \"application/x-authorware-seg\": {\n \"source\": \"apache\",\n \"extensions\": [\"aas\"]\n },\n \"application/x-bcpio\": {\n \"source\": \"apache\",\n \"extensions\": [\"bcpio\"]\n },\n \"application/x-bdoc\": {\n \"compressible\": false,\n \"extensions\": [\"bdoc\"]\n },\n \"application/x-bittorrent\": {\n \"source\": \"apache\",\n \"extensions\": [\"torrent\"]\n },\n \"application/x-blorb\": {\n \"source\": \"apache\",\n \"extensions\": [\"blb\",\"blorb\"]\n },\n \"application/x-bzip\": {\n \"source\": \"apache\",\n \"compressible\": false,\n \"extensions\": [\"bz\"]\n },\n \"application/x-bzip2\": {\n \"source\": \"apache\",\n \"compressible\": false,\n \"extensions\": [\"bz2\",\"boz\"]\n },\n \"application/x-cbr\": {\n \"source\": \"apache\",\n \"extensions\": [\"cbr\",\"cba\",\"cbt\",\"cbz\",\"cb7\"]\n },\n \"application/x-cdlink\": {\n \"source\": \"apache\",\n \"extensions\": [\"vcd\"]\n },\n \"application/x-cfs-compressed\": {\n \"source\": \"apache\",\n \"extensions\": [\"cfs\"]\n },\n \"application/x-chat\": {\n \"source\": \"apache\",\n \"extensions\": [\"chat\"]\n },\n \"application/x-chess-pgn\": {\n \"source\": \"apache\",\n \"extensions\": [\"pgn\"]\n },\n \"application/x-chrome-extension\": {\n \"extensions\": [\"crx\"]\n },\n \"application/x-cocoa\": {\n \"source\": \"nginx\",\n \"extensions\": [\"cco\"]\n },\n \"application/x-compress\": {\n \"source\": \"apache\"\n },\n \"application/x-conference\": {\n \"source\": \"apache\",\n \"extensions\": [\"nsc\"]\n },\n \"application/x-cpio\": {\n \"source\": \"apache\",\n \"extensions\": [\"cpio\"]\n },\n \"application/x-csh\": {\n \"source\": \"apache\",\n \"extensions\": [\"csh\"]\n },\n \"application/x-deb\": {\n \"compressible\": false\n },\n \"application/x-debian-package\": {\n \"source\": \"apache\",\n \"extensions\": [\"deb\",\"udeb\"]\n },\n \"application/x-dgc-compressed\": {\n \"source\": \"apache\",\n \"extensions\": [\"dgc\"]\n },\n \"application/x-director\": {\n \"source\": \"apache\",\n \"extensions\": [\"dir\",\"dcr\",\"dxr\",\"cst\",\"cct\",\"cxt\",\"w3d\",\"fgd\",\"swa\"]\n },\n \"application/x-doom\": {\n \"source\": \"apache\",\n \"extensions\": [\"wad\"]\n },\n \"application/x-dtbncx+xml\": {\n \"source\": \"apache\",\n \"compressible\": true,\n \"extensions\": [\"ncx\"]\n },\n \"application/x-dtbook+xml\": {\n \"source\": \"apache\",\n \"compressible\": true,\n \"extensions\": [\"dtb\"]\n },\n \"application/x-dtbresource+xml\": {\n \"source\": \"apache\",\n \"compressible\": true,\n \"extensions\": [\"res\"]\n },\n \"application/x-dvi\": {\n \"source\": \"apache\",\n \"compressible\": false,\n \"extensions\": [\"dvi\"]\n },\n \"application/x-envoy\": {\n \"source\": \"apache\",\n \"extensions\": [\"evy\"]\n },\n \"application/x-eva\": {\n \"source\": \"apache\",\n \"extensions\": [\"eva\"]\n },\n \"application/x-font-bdf\": {\n \"source\": \"apache\",\n \"extensions\": [\"bdf\"]\n },\n \"application/x-font-dos\": {\n \"source\": \"apache\"\n },\n \"application/x-font-framemaker\": {\n \"source\": \"apache\"\n },\n \"application/x-font-ghostscript\": {\n \"source\": \"apache\",\n \"extensions\": [\"gsf\"]\n },\n \"application/x-font-libgrx\": {\n \"source\": \"apache\"\n },\n \"application/x-font-linux-psf\": {\n \"source\": \"apache\",\n \"extensions\": [\"psf\"]\n },\n \"application/x-font-pcf\": {\n \"source\": \"apache\",\n \"extensions\": [\"pcf\"]\n },\n \"application/x-font-snf\": {\n \"source\": \"apache\",\n \"extensions\": [\"snf\"]\n },\n \"application/x-font-speedo\": {\n \"source\": \"apache\"\n },\n \"application/x-font-sunos-news\": {\n \"source\": \"apache\"\n },\n \"application/x-font-type1\": {\n \"source\": \"apache\",\n \"extensions\": [\"pfa\",\"pfb\",\"pfm\",\"afm\"]\n },\n \"application/x-font-vfont\": {\n \"source\": \"apache\"\n },\n \"application/x-freearc\": {\n \"source\": \"apache\",\n \"extensions\": [\"arc\"]\n },\n \"application/x-futuresplash\": {\n \"source\": \"apache\",\n \"extensions\": [\"spl\"]\n },\n \"application/x-gca-compressed\": {\n \"source\": \"apache\",\n \"extensions\": [\"gca\"]\n },\n \"application/x-glulx\": {\n \"source\": \"apache\",\n \"extensions\": [\"ulx\"]\n },\n \"application/x-gnumeric\": {\n \"source\": \"apache\",\n \"extensions\": [\"gnumeric\"]\n },\n \"application/x-gramps-xml\": {\n \"source\": \"apache\",\n \"extensions\": [\"gramps\"]\n },\n \"application/x-gtar\": {\n \"source\": \"apache\",\n \"extensions\": [\"gtar\"]\n },\n \"application/x-gzip\": {\n \"source\": \"apache\"\n },\n \"application/x-hdf\": {\n \"source\": \"apache\",\n \"extensions\": [\"hdf\"]\n },\n \"application/x-httpd-php\": {\n \"compressible\": true,\n \"extensions\": [\"php\"]\n },\n \"application/x-install-instructions\": {\n \"source\": \"apache\",\n \"extensions\": [\"install\"]\n },\n \"application/x-iso9660-image\": {\n \"source\": \"apache\",\n \"extensions\": [\"iso\"]\n },\n \"application/x-iwork-keynote-sffkey\": {\n \"extensions\": [\"key\"]\n },\n \"application/x-iwork-numbers-sffnumbers\": {\n \"extensions\": [\"numbers\"]\n },\n \"application/x-iwork-pages-sffpages\": {\n \"extensions\": [\"pages\"]\n },\n \"application/x-java-archive-diff\": {\n \"source\": \"nginx\",\n \"extensions\": [\"jardiff\"]\n },\n \"application/x-java-jnlp-file\": {\n \"source\": \"apache\",\n \"compressible\": false,\n \"extensions\": [\"jnlp\"]\n },\n \"application/x-javascript\": {\n \"compressible\": true\n },\n \"application/x-keepass2\": {\n \"extensions\": [\"kdbx\"]\n },\n \"application/x-latex\": {\n \"source\": \"apache\",\n \"compressible\": false,\n \"extensions\": [\"latex\"]\n },\n \"application/x-lua-bytecode\": {\n \"extensions\": [\"luac\"]\n },\n \"application/x-lzh-compressed\": {\n \"source\": \"apache\",\n \"extensions\": [\"lzh\",\"lha\"]\n },\n \"application/x-makeself\": {\n \"source\": \"nginx\",\n \"extensions\": [\"run\"]\n },\n \"application/x-mie\": {\n \"source\": \"apache\",\n \"extensions\": [\"mie\"]\n },\n \"application/x-mobipocket-ebook\": {\n \"source\": \"apache\",\n \"extensions\": [\"prc\",\"mobi\"]\n },\n \"application/x-mpegurl\": {\n \"compressible\": false\n },\n \"application/x-ms-application\": {\n \"source\": \"apache\",\n \"extensions\": [\"application\"]\n },\n \"application/x-ms-shortcut\": {\n \"source\": \"apache\",\n \"extensions\": [\"lnk\"]\n },\n \"application/x-ms-wmd\": {\n \"source\": \"apache\",\n \"extensions\": [\"wmd\"]\n },\n \"application/x-ms-wmz\": {\n \"source\": \"apache\",\n \"extensions\": [\"wmz\"]\n },\n \"application/x-ms-xbap\": {\n \"source\": \"apache\",\n \"extensions\": [\"xbap\"]\n },\n \"application/x-msaccess\": {\n \"source\": \"apache\",\n \"extensions\": [\"mdb\"]\n },\n \"application/x-msbinder\": {\n \"source\": \"apache\",\n \"extensions\": [\"obd\"]\n },\n \"application/x-mscardfile\": {\n \"source\": \"apache\",\n \"extensions\": [\"crd\"]\n },\n \"application/x-msclip\": {\n \"source\": \"apache\",\n \"extensions\": [\"clp\"]\n },\n \"application/x-msdos-program\": {\n \"extensions\": [\"exe\"]\n },\n \"application/x-msdownload\": {\n \"source\": \"apache\",\n \"extensions\": [\"exe\",\"dll\",\"com\",\"bat\",\"msi\"]\n },\n \"application/x-msmediaview\": {\n \"source\": \"apache\",\n \"extensions\": [\"mvb\",\"m13\",\"m14\"]\n },\n \"application/x-msmetafile\": {\n \"source\": \"apache\",\n \"extensions\": [\"wmf\",\"wmz\",\"emf\",\"emz\"]\n },\n \"application/x-msmoney\": {\n \"source\": \"apache\",\n \"extensions\": [\"mny\"]\n },\n \"application/x-mspublisher\": {\n \"source\": \"apache\",\n \"extensions\": [\"pub\"]\n },\n \"application/x-msschedule\": {\n \"source\": \"apache\",\n \"extensions\": [\"scd\"]\n },\n \"application/x-msterminal\": {\n \"source\": \"apache\",\n \"extensions\": [\"trm\"]\n },\n \"application/x-mswrite\": {\n \"source\": \"apache\",\n \"extensions\": [\"wri\"]\n },\n \"application/x-netcdf\": {\n \"source\": \"apache\",\n \"extensions\": [\"nc\",\"cdf\"]\n },\n \"application/x-ns-proxy-autoconfig\": {\n \"compressible\": true,\n \"extensions\": [\"pac\"]\n },\n \"application/x-nzb\": {\n \"source\": \"apache\",\n \"extensions\": [\"nzb\"]\n },\n \"application/x-perl\": {\n \"source\": \"nginx\",\n \"extensions\": [\"pl\",\"pm\"]\n },\n \"application/x-pilot\": {\n \"source\": \"nginx\",\n \"extensions\": [\"prc\",\"pdb\"]\n },\n \"application/x-pkcs12\": {\n \"source\": \"apache\",\n \"compressible\": false,\n \"extensions\": [\"p12\",\"pfx\"]\n },\n \"application/x-pkcs7-certificates\": {\n \"source\": \"apache\",\n \"extensions\": [\"p7b\",\"spc\"]\n },\n \"application/x-pkcs7-certreqresp\": {\n \"source\": \"apache\",\n \"extensions\": [\"p7r\"]\n },\n \"application/x-pki-message\": {\n \"source\": \"iana\"\n },\n \"application/x-rar-compressed\": {\n \"source\": \"apache\",\n \"compressible\": false,\n \"extensions\": [\"rar\"]\n },\n \"application/x-redhat-package-manager\": {\n \"source\": \"nginx\",\n \"extensions\": [\"rpm\"]\n },\n \"application/x-research-info-systems\": {\n \"source\": \"apache\",\n \"extensions\": [\"ris\"]\n },\n \"application/x-sea\": {\n \"source\": \"nginx\",\n \"extensions\": [\"sea\"]\n },\n \"application/x-sh\": {\n \"source\": \"apache\",\n \"compressible\": true,\n \"extensions\": [\"sh\"]\n },\n \"application/x-shar\": {\n \"source\": \"apache\",\n \"extensions\": [\"shar\"]\n },\n \"application/x-shockwave-flash\": {\n \"source\": \"apache\",\n \"compressible\": false,\n \"extensions\": [\"swf\"]\n },\n \"application/x-silverlight-app\": {\n \"source\": \"apache\",\n \"extensions\": [\"xap\"]\n },\n \"application/x-sql\": {\n \"source\": \"apache\",\n \"extensions\": [\"sql\"]\n },\n \"application/x-stuffit\": {\n \"source\": \"apache\",\n \"compressible\": false,\n \"extensions\": [\"sit\"]\n },\n \"application/x-stuffitx\": {\n \"source\": \"apache\",\n \"extensions\": [\"sitx\"]\n },\n \"application/x-subrip\": {\n \"source\": \"apache\",\n \"extensions\": [\"srt\"]\n },\n \"application/x-sv4cpio\": {\n \"source\": \"apache\",\n \"extensions\": [\"sv4cpio\"]\n },\n \"application/x-sv4crc\": {\n \"source\": \"apache\",\n \"extensions\": [\"sv4crc\"]\n },\n \"application/x-t3vm-image\": {\n \"source\": \"apache\",\n \"extensions\": [\"t3\"]\n },\n \"application/x-tads\": {\n \"source\": \"apache\",\n \"extensions\": [\"gam\"]\n },\n \"application/x-tar\": {\n \"source\": \"apache\",\n \"compressible\": true,\n \"extensions\": [\"tar\"]\n },\n \"application/x-tcl\": {\n \"source\": \"apache\",\n \"extensions\": [\"tcl\",\"tk\"]\n },\n \"application/x-tex\": {\n \"source\": \"apache\",\n \"extensions\": [\"tex\"]\n },\n \"application/x-tex-tfm\": {\n \"source\": \"apache\",\n \"extensions\": [\"tfm\"]\n },\n \"application/x-texinfo\": {\n \"source\": \"apache\",\n \"extensions\": [\"texinfo\",\"texi\"]\n },\n \"application/x-tgif\": {\n \"source\": \"apache\",\n \"extensions\": [\"obj\"]\n },\n \"application/x-ustar\": {\n \"source\": \"apache\",\n \"extensions\": [\"ustar\"]\n },\n \"application/x-virtualbox-hdd\": {\n \"compressible\": true,\n \"extensions\": [\"hdd\"]\n },\n \"application/x-virtualbox-ova\": {\n \"compressible\": true,\n \"extensions\": [\"ova\"]\n },\n \"application/x-virtualbox-ovf\": {\n \"compressible\": true,\n \"extensions\": [\"ovf\"]\n },\n \"application/x-virtualbox-vbox\": {\n \"compressible\": true,\n \"extensions\": [\"vbox\"]\n },\n \"application/x-virtualbox-vbox-extpack\": {\n \"compressible\": false,\n \"extensions\": [\"vbox-extpack\"]\n },\n \"application/x-virtualbox-vdi\": {\n \"compressible\": true,\n \"extensions\": [\"vdi\"]\n },\n \"application/x-virtualbox-vhd\": {\n \"compressible\": true,\n \"extensions\": [\"vhd\"]\n },\n \"application/x-virtualbox-vmdk\": {\n \"compressible\": true,\n \"extensions\": [\"vmdk\"]\n },\n \"application/x-wais-source\": {\n \"source\": \"apache\",\n \"extensions\": [\"src\"]\n },\n \"application/x-web-app-manifest+json\": {\n \"compressible\": true,\n \"extensions\": [\"webapp\"]\n },\n \"application/x-www-form-urlencoded\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/x-x509-ca-cert\": {\n \"source\": \"iana\",\n \"extensions\": [\"der\",\"crt\",\"pem\"]\n },\n \"application/x-x509-ca-ra-cert\": {\n \"source\": \"iana\"\n },\n \"application/x-x509-next-ca-cert\": {\n \"source\": \"iana\"\n },\n \"application/x-xfig\": {\n \"source\": \"apache\",\n \"extensions\": [\"fig\"]\n },\n \"application/x-xliff+xml\": {\n \"source\": \"apache\",\n \"compressible\": true,\n \"extensions\": [\"xlf\"]\n },\n \"application/x-xpinstall\": {\n \"source\": \"apache\",\n \"compressible\": false,\n \"extensions\": [\"xpi\"]\n },\n \"application/x-xz\": {\n \"source\": \"apache\",\n \"extensions\": [\"xz\"]\n },\n \"application/x-zmachine\": {\n \"source\": \"apache\",\n \"extensions\": [\"z1\",\"z2\",\"z3\",\"z4\",\"z5\",\"z6\",\"z7\",\"z8\"]\n },\n \"application/x400-bp\": {\n \"source\": \"iana\"\n },\n \"application/xacml+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/xaml+xml\": {\n \"source\": \"apache\",\n \"compressible\": true,\n \"extensions\": [\"xaml\"]\n },\n \"application/xcap-att+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"xav\"]\n },\n \"application/xcap-caps+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"xca\"]\n },\n \"application/xcap-diff+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"xdf\"]\n },\n \"application/xcap-el+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"xel\"]\n },\n \"application/xcap-error+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/xcap-ns+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"xns\"]\n },\n \"application/xcon-conference-info+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/xcon-conference-info-diff+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/xenc+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"xenc\"]\n },\n \"application/xhtml+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"xhtml\",\"xht\"]\n },\n \"application/xhtml-voice+xml\": {\n \"source\": \"apache\",\n \"compressible\": true\n },\n \"application/xliff+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"xlf\"]\n },\n \"application/xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"xml\",\"xsl\",\"xsd\",\"rng\"]\n },\n \"application/xml-dtd\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"dtd\"]\n },\n \"application/xml-external-parsed-entity\": {\n \"source\": \"iana\"\n },\n \"application/xml-patch+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/xmpp+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/xop+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"xop\"]\n },\n \"application/xproc+xml\": {\n \"source\": \"apache\",\n \"compressible\": true,\n \"extensions\": [\"xpl\"]\n },\n \"application/xslt+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"xsl\",\"xslt\"]\n },\n \"application/xspf+xml\": {\n \"source\": \"apache\",\n \"compressible\": true,\n \"extensions\": [\"xspf\"]\n },\n \"application/xv+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"mxml\",\"xhvml\",\"xvml\",\"xvm\"]\n },\n \"application/yang\": {\n \"source\": \"iana\",\n \"extensions\": [\"yang\"]\n },\n \"application/yang-data+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/yang-data+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/yang-patch+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/yang-patch+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/yin+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"yin\"]\n },\n \"application/zip\": {\n \"source\": \"iana\",\n \"compressible\": false,\n \"extensions\": [\"zip\"]\n },\n \"application/zlib\": {\n \"source\": \"iana\"\n },\n \"application/zstd\": {\n \"source\": \"iana\"\n },\n \"audio/1d-interleaved-parityfec\": {\n \"source\": \"iana\"\n },\n \"audio/32kadpcm\": {\n \"source\": \"iana\"\n },\n \"audio/3gpp\": {\n \"source\": \"iana\",\n \"compressible\": false,\n \"extensions\": [\"3gpp\"]\n },\n \"audio/3gpp2\": {\n \"source\": \"iana\"\n },\n \"audio/aac\": {\n \"source\": \"iana\"\n },\n \"audio/ac3\": {\n \"source\": \"iana\"\n },\n \"audio/adpcm\": {\n \"source\": \"apache\",\n \"extensions\": [\"adp\"]\n },\n \"audio/amr\": {\n \"source\": \"iana\",\n \"extensions\": [\"amr\"]\n },\n \"audio/amr-wb\": {\n \"source\": \"iana\"\n },\n \"audio/amr-wb+\": {\n \"source\": \"iana\"\n },\n \"audio/aptx\": {\n \"source\": \"iana\"\n },\n \"audio/asc\": {\n \"source\": \"iana\"\n },\n \"audio/atrac-advanced-lossless\": {\n \"source\": \"iana\"\n },\n \"audio/atrac-x\": {\n \"source\": \"iana\"\n },\n \"audio/atrac3\": {\n \"source\": \"iana\"\n },\n \"audio/basic\": {\n \"source\": \"iana\",\n \"compressible\": false,\n \"extensions\": [\"au\",\"snd\"]\n },\n \"audio/bv16\": {\n \"source\": \"iana\"\n },\n \"audio/bv32\": {\n \"source\": \"iana\"\n },\n \"audio/clearmode\": {\n \"source\": \"iana\"\n },\n \"audio/cn\": {\n \"source\": \"iana\"\n },\n \"audio/dat12\": {\n \"source\": \"iana\"\n },\n \"audio/dls\": {\n \"source\": \"iana\"\n },\n \"audio/dsr-es201108\": {\n \"source\": \"iana\"\n },\n \"audio/dsr-es202050\": {\n \"source\": \"iana\"\n },\n \"audio/dsr-es202211\": {\n \"source\": \"iana\"\n },\n \"audio/dsr-es202212\": {\n \"source\": \"iana\"\n },\n \"audio/dv\": {\n \"source\": \"iana\"\n },\n \"audio/dvi4\": {\n \"source\": \"iana\"\n },\n \"audio/eac3\": {\n \"source\": \"iana\"\n },\n \"audio/encaprtp\": {\n \"source\": \"iana\"\n },\n \"audio/evrc\": {\n \"source\": \"iana\"\n },\n \"audio/evrc-qcp\": {\n \"source\": \"iana\"\n },\n \"audio/evrc0\": {\n \"source\": \"iana\"\n },\n \"audio/evrc1\": {\n \"source\": \"iana\"\n },\n \"audio/evrcb\": {\n \"source\": \"iana\"\n },\n \"audio/evrcb0\": {\n \"source\": \"iana\"\n },\n \"audio/evrcb1\": {\n \"source\": \"iana\"\n },\n \"audio/evrcnw\": {\n \"source\": \"iana\"\n },\n \"audio/evrcnw0\": {\n \"source\": \"iana\"\n },\n \"audio/evrcnw1\": {\n \"source\": \"iana\"\n },\n \"audio/evrcwb\": {\n \"source\": \"iana\"\n },\n \"audio/evrcwb0\": {\n \"source\": \"iana\"\n },\n \"audio/evrcwb1\": {\n \"source\": \"iana\"\n },\n \"audio/evs\": {\n \"source\": \"iana\"\n },\n \"audio/flexfec\": {\n \"source\": \"iana\"\n },\n \"audio/fwdred\": {\n \"source\": \"iana\"\n },\n \"audio/g711-0\": {\n \"source\": \"iana\"\n },\n \"audio/g719\": {\n \"source\": \"iana\"\n },\n \"audio/g722\": {\n \"source\": \"iana\"\n },\n \"audio/g7221\": {\n \"source\": \"iana\"\n },\n \"audio/g723\": {\n \"source\": \"iana\"\n },\n \"audio/g726-16\": {\n \"source\": \"iana\"\n },\n \"audio/g726-24\": {\n \"source\": \"iana\"\n },\n \"audio/g726-32\": {\n \"source\": \"iana\"\n },\n \"audio/g726-40\": {\n \"source\": \"iana\"\n },\n \"audio/g728\": {\n \"source\": \"iana\"\n },\n \"audio/g729\": {\n \"source\": \"iana\"\n },\n \"audio/g7291\": {\n \"source\": \"iana\"\n },\n \"audio/g729d\": {\n \"source\": \"iana\"\n },\n \"audio/g729e\": {\n \"source\": \"iana\"\n },\n \"audio/gsm\": {\n \"source\": \"iana\"\n },\n \"audio/gsm-efr\": {\n \"source\": \"iana\"\n },\n \"audio/gsm-hr-08\": {\n \"source\": \"iana\"\n },\n \"audio/ilbc\": {\n \"source\": \"iana\"\n },\n \"audio/ip-mr_v2.5\": {\n \"source\": \"iana\"\n },\n \"audio/isac\": {\n \"source\": \"apache\"\n },\n \"audio/l16\": {\n \"source\": \"iana\"\n },\n \"audio/l20\": {\n \"source\": \"iana\"\n },\n \"audio/l24\": {\n \"source\": \"iana\",\n \"compressible\": false\n },\n \"audio/l8\": {\n \"source\": \"iana\"\n },\n \"audio/lpc\": {\n \"source\": \"iana\"\n },\n \"audio/melp\": {\n \"source\": \"iana\"\n },\n \"audio/melp1200\": {\n \"source\": \"iana\"\n },\n \"audio/melp2400\": {\n \"source\": \"iana\"\n },\n \"audio/melp600\": {\n \"source\": \"iana\"\n },\n \"audio/mhas\": {\n \"source\": \"iana\"\n },\n \"audio/midi\": {\n \"source\": \"apache\",\n \"extensions\": [\"mid\",\"midi\",\"kar\",\"rmi\"]\n },\n \"audio/mobile-xmf\": {\n \"source\": \"iana\",\n \"extensions\": [\"mxmf\"]\n },\n \"audio/mp3\": {\n \"compressible\": false,\n \"extensions\": [\"mp3\"]\n },\n \"audio/mp4\": {\n \"source\": \"iana\",\n \"compressible\": false,\n \"extensions\": [\"m4a\",\"mp4a\"]\n },\n \"audio/mp4a-latm\": {\n \"source\": \"iana\"\n },\n \"audio/mpa\": {\n \"source\": \"iana\"\n },\n \"audio/mpa-robust\": {\n \"source\": \"iana\"\n },\n \"audio/mpeg\": {\n \"source\": \"iana\",\n \"compressible\": false,\n \"extensions\": [\"mpga\",\"mp2\",\"mp2a\",\"mp3\",\"m2a\",\"m3a\"]\n },\n \"audio/mpeg4-generic\": {\n \"source\": \"iana\"\n },\n \"audio/musepack\": {\n \"source\": \"apache\"\n },\n \"audio/ogg\": {\n \"source\": \"iana\",\n \"compressible\": false,\n \"extensions\": [\"oga\",\"ogg\",\"spx\",\"opus\"]\n },\n \"audio/opus\": {\n \"source\": \"iana\"\n },\n \"audio/parityfec\": {\n \"source\": \"iana\"\n },\n \"audio/pcma\": {\n \"source\": \"iana\"\n },\n \"audio/pcma-wb\": {\n \"source\": \"iana\"\n },\n \"audio/pcmu\": {\n \"source\": \"iana\"\n },\n \"audio/pcmu-wb\": {\n \"source\": \"iana\"\n },\n \"audio/prs.sid\": {\n \"source\": \"iana\"\n },\n \"audio/qcelp\": {\n \"source\": \"iana\"\n },\n \"audio/raptorfec\": {\n \"source\": \"iana\"\n },\n \"audio/red\": {\n \"source\": \"iana\"\n },\n \"audio/rtp-enc-aescm128\": {\n \"source\": \"iana\"\n },\n \"audio/rtp-midi\": {\n \"source\": \"iana\"\n },\n \"audio/rtploopback\": {\n \"source\": \"iana\"\n },\n \"audio/rtx\": {\n \"source\": \"iana\"\n },\n \"audio/s3m\": {\n \"source\": \"apache\",\n \"extensions\": [\"s3m\"]\n },\n \"audio/scip\": {\n \"source\": \"iana\"\n },\n \"audio/silk\": {\n \"source\": \"apache\",\n \"extensions\": [\"sil\"]\n },\n \"audio/smv\": {\n \"source\": \"iana\"\n },\n \"audio/smv-qcp\": {\n \"source\": \"iana\"\n },\n \"audio/smv0\": {\n \"source\": \"iana\"\n },\n \"audio/sofa\": {\n \"source\": \"iana\"\n },\n \"audio/sp-midi\": {\n \"source\": \"iana\"\n },\n \"audio/speex\": {\n \"source\": \"iana\"\n },\n \"audio/t140c\": {\n \"source\": \"iana\"\n },\n \"audio/t38\": {\n \"source\": \"iana\"\n },\n \"audio/telephone-event\": {\n \"source\": \"iana\"\n },\n \"audio/tetra_acelp\": {\n \"source\": \"iana\"\n },\n \"audio/tetra_acelp_bb\": {\n \"source\": \"iana\"\n },\n \"audio/tone\": {\n \"source\": \"iana\"\n },\n \"audio/tsvcis\": {\n \"source\": \"iana\"\n },\n \"audio/uemclip\": {\n \"source\": \"iana\"\n },\n \"audio/ulpfec\": {\n \"source\": \"iana\"\n },\n \"audio/usac\": {\n \"source\": \"iana\"\n },\n \"audio/vdvi\": {\n \"source\": \"iana\"\n },\n \"audio/vmr-wb\": {\n \"source\": \"iana\"\n },\n \"audio/vnd.3gpp.iufp\": {\n \"source\": \"iana\"\n },\n \"audio/vnd.4sb\": {\n \"source\": \"iana\"\n },\n \"audio/vnd.audiokoz\": {\n \"source\": \"iana\"\n },\n \"audio/vnd.celp\": {\n \"source\": \"iana\"\n },\n \"audio/vnd.cisco.nse\": {\n \"source\": \"iana\"\n },\n \"audio/vnd.cmles.radio-events\": {\n \"source\": \"iana\"\n },\n \"audio/vnd.cns.anp1\": {\n \"source\": \"iana\"\n },\n \"audio/vnd.cns.inf1\": {\n \"source\": \"iana\"\n },\n \"audio/vnd.dece.audio\": {\n \"source\": \"iana\",\n \"extensions\": [\"uva\",\"uvva\"]\n },\n \"audio/vnd.digital-winds\": {\n \"source\": \"iana\",\n \"extensions\": [\"eol\"]\n },\n \"audio/vnd.dlna.adts\": {\n \"source\": \"iana\"\n },\n \"audio/vnd.dolby.heaac.1\": {\n \"source\": \"iana\"\n },\n \"audio/vnd.dolby.heaac.2\": {\n \"source\": \"iana\"\n },\n \"audio/vnd.dolby.mlp\": {\n \"source\": \"iana\"\n },\n \"audio/vnd.dolby.mps\": {\n \"source\": \"iana\"\n },\n \"audio/vnd.dolby.pl2\": {\n \"source\": \"iana\"\n },\n \"audio/vnd.dolby.pl2x\": {\n \"source\": \"iana\"\n },\n \"audio/vnd.dolby.pl2z\": {\n \"source\": \"iana\"\n },\n \"audio/vnd.dolby.pulse.1\": {\n \"source\": \"iana\"\n },\n \"audio/vnd.dra\": {\n \"source\": \"iana\",\n \"extensions\": [\"dra\"]\n },\n \"audio/vnd.dts\": {\n \"source\": \"iana\",\n \"extensions\": [\"dts\"]\n },\n \"audio/vnd.dts.hd\": {\n \"source\": \"iana\",\n \"extensions\": [\"dtshd\"]\n },\n \"audio/vnd.dts.uhd\": {\n \"source\": \"iana\"\n },\n \"audio/vnd.dvb.file\": {\n \"source\": \"iana\"\n },\n \"audio/vnd.everad.plj\": {\n \"source\": \"iana\"\n },\n \"audio/vnd.hns.audio\": {\n \"source\": \"iana\"\n },\n \"audio/vnd.lucent.voice\": {\n \"source\": \"iana\",\n \"extensions\": [\"lvp\"]\n },\n \"audio/vnd.ms-playready.media.pya\": {\n \"source\": \"iana\",\n \"extensions\": [\"pya\"]\n },\n \"audio/vnd.nokia.mobile-xmf\": {\n \"source\": \"iana\"\n },\n \"audio/vnd.nortel.vbk\": {\n \"source\": \"iana\"\n },\n \"audio/vnd.nuera.ecelp4800\": {\n \"source\": \"iana\",\n \"extensions\": [\"ecelp4800\"]\n },\n \"audio/vnd.nuera.ecelp7470\": {\n \"source\": \"iana\",\n \"extensions\": [\"ecelp7470\"]\n },\n \"audio/vnd.nuera.ecelp9600\": {\n \"source\": \"iana\",\n \"extensions\": [\"ecelp9600\"]\n },\n \"audio/vnd.octel.sbc\": {\n \"source\": \"iana\"\n },\n \"audio/vnd.presonus.multitrack\": {\n \"source\": \"iana\"\n },\n \"audio/vnd.qcelp\": {\n \"source\": \"iana\"\n },\n \"audio/vnd.rhetorex.32kadpcm\": {\n \"source\": \"iana\"\n },\n \"audio/vnd.rip\": {\n \"source\": \"iana\",\n \"extensions\": [\"rip\"]\n },\n \"audio/vnd.rn-realaudio\": {\n \"compressible\": false\n },\n \"audio/vnd.sealedmedia.softseal.mpeg\": {\n \"source\": \"iana\"\n },\n \"audio/vnd.vmx.cvsd\": {\n \"source\": \"iana\"\n },\n \"audio/vnd.wave\": {\n \"compressible\": false\n },\n \"audio/vorbis\": {\n \"source\": \"iana\",\n \"compressible\": false\n },\n \"audio/vorbis-config\": {\n \"source\": \"iana\"\n },\n \"audio/wav\": {\n \"compressible\": false,\n \"extensions\": [\"wav\"]\n },\n \"audio/wave\": {\n \"compressible\": false,\n \"extensions\": [\"wav\"]\n },\n \"audio/webm\": {\n \"source\": \"apache\",\n \"compressible\": false,\n \"extensions\": [\"weba\"]\n },\n \"audio/x-aac\": {\n \"source\": \"apache\",\n \"compressible\": false,\n \"extensions\": [\"aac\"]\n },\n \"audio/x-aiff\": {\n \"source\": \"apache\",\n \"extensions\": [\"aif\",\"aiff\",\"aifc\"]\n },\n \"audio/x-caf\": {\n \"source\": \"apache\",\n \"compressible\": false,\n \"extensions\": [\"caf\"]\n },\n \"audio/x-flac\": {\n \"source\": \"apache\",\n \"extensions\": [\"flac\"]\n },\n \"audio/x-m4a\": {\n \"source\": \"nginx\",\n \"extensions\": [\"m4a\"]\n },\n \"audio/x-matroska\": {\n \"source\": \"apache\",\n \"extensions\": [\"mka\"]\n },\n \"audio/x-mpegurl\": {\n \"source\": \"apache\",\n \"extensions\": [\"m3u\"]\n },\n \"audio/x-ms-wax\": {\n \"source\": \"apache\",\n \"extensions\": [\"wax\"]\n },\n \"audio/x-ms-wma\": {\n \"source\": \"apache\",\n \"extensions\": [\"wma\"]\n },\n \"audio/x-pn-realaudio\": {\n \"source\": \"apache\",\n \"extensions\": [\"ram\",\"ra\"]\n },\n \"audio/x-pn-realaudio-plugin\": {\n \"source\": \"apache\",\n \"extensions\": [\"rmp\"]\n },\n \"audio/x-realaudio\": {\n \"source\": \"nginx\",\n \"extensions\": [\"ra\"]\n },\n \"audio/x-tta\": {\n \"source\": \"apache\"\n },\n \"audio/x-wav\": {\n \"source\": \"apache\",\n \"extensions\": [\"wav\"]\n },\n \"audio/xm\": {\n \"source\": \"apache\",\n \"extensions\": [\"xm\"]\n },\n \"chemical/x-cdx\": {\n \"source\": \"apache\",\n \"extensions\": [\"cdx\"]\n },\n \"chemical/x-cif\": {\n \"source\": \"apache\",\n \"extensions\": [\"cif\"]\n },\n \"chemical/x-cmdf\": {\n \"source\": \"apache\",\n \"extensions\": [\"cmdf\"]\n },\n \"chemical/x-cml\": {\n \"source\": \"apache\",\n \"extensions\": [\"cml\"]\n },\n \"chemical/x-csml\": {\n \"source\": \"apache\",\n \"extensions\": [\"csml\"]\n },\n \"chemical/x-pdb\": {\n \"source\": \"apache\"\n },\n \"chemical/x-xyz\": {\n \"source\": \"apache\",\n \"extensions\": [\"xyz\"]\n },\n \"font/collection\": {\n \"source\": \"iana\",\n \"extensions\": [\"ttc\"]\n },\n \"font/otf\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"otf\"]\n },\n \"font/sfnt\": {\n \"source\": \"iana\"\n },\n \"font/ttf\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"ttf\"]\n },\n \"font/woff\": {\n \"source\": \"iana\",\n \"extensions\": [\"woff\"]\n },\n \"font/woff2\": {\n \"source\": \"iana\",\n \"extensions\": [\"woff2\"]\n },\n \"image/aces\": {\n \"source\": \"iana\",\n \"extensions\": [\"exr\"]\n },\n \"image/apng\": {\n \"compressible\": false,\n \"extensions\": [\"apng\"]\n },\n \"image/avci\": {\n \"source\": \"iana\",\n \"extensions\": [\"avci\"]\n },\n \"image/avcs\": {\n \"source\": \"iana\",\n \"extensions\": [\"avcs\"]\n },\n \"image/avif\": {\n \"source\": \"iana\",\n \"compressible\": false,\n \"extensions\": [\"avif\"]\n },\n \"image/bmp\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"bmp\"]\n },\n \"image/cgm\": {\n \"source\": \"iana\",\n \"extensions\": [\"cgm\"]\n },\n \"image/dicom-rle\": {\n \"source\": \"iana\",\n \"extensions\": [\"drle\"]\n },\n \"image/emf\": {\n \"source\": \"iana\",\n \"extensions\": [\"emf\"]\n },\n \"image/fits\": {\n \"source\": \"iana\",\n \"extensions\": [\"fits\"]\n },\n \"image/g3fax\": {\n \"source\": \"iana\",\n \"extensions\": [\"g3\"]\n },\n \"image/gif\": {\n \"source\": \"iana\",\n \"compressible\": false,\n \"extensions\": [\"gif\"]\n },\n \"image/heic\": {\n \"source\": \"iana\",\n \"extensions\": [\"heic\"]\n },\n \"image/heic-sequence\": {\n \"source\": \"iana\",\n \"extensions\": [\"heics\"]\n },\n \"image/heif\": {\n \"source\": \"iana\",\n \"extensions\": [\"heif\"]\n },\n \"image/heif-sequence\": {\n \"source\": \"iana\",\n \"extensions\": [\"heifs\"]\n },\n \"image/hej2k\": {\n \"source\": \"iana\",\n \"extensions\": [\"hej2\"]\n },\n \"image/hsj2\": {\n \"source\": \"iana\",\n \"extensions\": [\"hsj2\"]\n },\n \"image/ief\": {\n \"source\": \"iana\",\n \"extensions\": [\"ief\"]\n },\n \"image/jls\": {\n \"source\": \"iana\",\n \"extensions\": [\"jls\"]\n },\n \"image/jp2\": {\n \"source\": \"iana\",\n \"compressible\": false,\n \"extensions\": [\"jp2\",\"jpg2\"]\n },\n \"image/jpeg\": {\n \"source\": \"iana\",\n \"compressible\": false,\n \"extensions\": [\"jpeg\",\"jpg\",\"jpe\"]\n },\n \"image/jph\": {\n \"source\": \"iana\",\n \"extensions\": [\"jph\"]\n },\n \"image/jphc\": {\n \"source\": \"iana\",\n \"extensions\": [\"jhc\"]\n },\n \"image/jpm\": {\n \"source\": \"iana\",\n \"compressible\": false,\n \"extensions\": [\"jpm\"]\n },\n \"image/jpx\": {\n \"source\": \"iana\",\n \"compressible\": false,\n \"extensions\": [\"jpx\",\"jpf\"]\n },\n \"image/jxr\": {\n \"source\": \"iana\",\n \"extensions\": [\"jxr\"]\n },\n \"image/jxra\": {\n \"source\": \"iana\",\n \"extensions\": [\"jxra\"]\n },\n \"image/jxrs\": {\n \"source\": \"iana\",\n \"extensions\": [\"jxrs\"]\n },\n \"image/jxs\": {\n \"source\": \"iana\",\n \"extensions\": [\"jxs\"]\n },\n \"image/jxsc\": {\n \"source\": \"iana\",\n \"extensions\": [\"jxsc\"]\n },\n \"image/jxsi\": {\n \"source\": \"iana\",\n \"extensions\": [\"jxsi\"]\n },\n \"image/jxss\": {\n \"source\": \"iana\",\n \"extensions\": [\"jxss\"]\n },\n \"image/ktx\": {\n \"source\": \"iana\",\n \"extensions\": [\"ktx\"]\n },\n \"image/ktx2\": {\n \"source\": \"iana\",\n \"extensions\": [\"ktx2\"]\n },\n \"image/naplps\": {\n \"source\": \"iana\"\n },\n \"image/pjpeg\": {\n \"compressible\": false\n },\n \"image/png\": {\n \"source\": \"iana\",\n \"compressible\": false,\n \"extensions\": [\"png\"]\n },\n \"image/prs.btif\": {\n \"source\": \"iana\",\n \"extensions\": [\"btif\"]\n },\n \"image/prs.pti\": {\n \"source\": \"iana\",\n \"extensions\": [\"pti\"]\n },\n \"image/pwg-raster\": {\n \"source\": \"iana\"\n },\n \"image/sgi\": {\n \"source\": \"apache\",\n \"extensions\": [\"sgi\"]\n },\n \"image/svg+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"svg\",\"svgz\"]\n },\n \"image/t38\": {\n \"source\": \"iana\",\n \"extensions\": [\"t38\"]\n },\n \"image/tiff\": {\n \"source\": \"iana\",\n \"compressible\": false,\n \"extensions\": [\"tif\",\"tiff\"]\n },\n \"image/tiff-fx\": {\n \"source\": \"iana\",\n \"extensions\": [\"tfx\"]\n },\n \"image/vnd.adobe.photoshop\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"psd\"]\n },\n \"image/vnd.airzip.accelerator.azv\": {\n \"source\": \"iana\",\n \"extensions\": [\"azv\"]\n },\n \"image/vnd.cns.inf2\": {\n \"source\": \"iana\"\n },\n \"image/vnd.dece.graphic\": {\n \"source\": \"iana\",\n \"extensions\": [\"uvi\",\"uvvi\",\"uvg\",\"uvvg\"]\n },\n \"image/vnd.djvu\": {\n \"source\": \"iana\",\n \"extensions\": [\"djvu\",\"djv\"]\n },\n \"image/vnd.dvb.subtitle\": {\n \"source\": \"iana\",\n \"extensions\": [\"sub\"]\n },\n \"image/vnd.dwg\": {\n \"source\": \"iana\",\n \"extensions\": [\"dwg\"]\n },\n \"image/vnd.dxf\": {\n \"source\": \"iana\",\n \"extensions\": [\"dxf\"]\n },\n \"image/vnd.fastbidsheet\": {\n \"source\": \"iana\",\n \"extensions\": [\"fbs\"]\n },\n \"image/vnd.fpx\": {\n \"source\": \"iana\",\n \"extensions\": [\"fpx\"]\n },\n \"image/vnd.fst\": {\n \"source\": \"iana\",\n \"extensions\": [\"fst\"]\n },\n \"image/vnd.fujixerox.edmics-mmr\": {\n \"source\": \"iana\",\n \"extensions\": [\"mmr\"]\n },\n \"image/vnd.fujixerox.edmics-rlc\": {\n \"source\": \"iana\",\n \"extensions\": [\"rlc\"]\n },\n \"image/vnd.globalgraphics.pgb\": {\n \"source\": \"iana\"\n },\n \"image/vnd.microsoft.icon\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"ico\"]\n },\n \"image/vnd.mix\": {\n \"source\": \"iana\"\n },\n \"image/vnd.mozilla.apng\": {\n \"source\": \"iana\"\n },\n \"image/vnd.ms-dds\": {\n \"compressible\": true,\n \"extensions\": [\"dds\"]\n },\n \"image/vnd.ms-modi\": {\n \"source\": \"iana\",\n \"extensions\": [\"mdi\"]\n },\n \"image/vnd.ms-photo\": {\n \"source\": \"apache\",\n \"extensions\": [\"wdp\"]\n },\n \"image/vnd.net-fpx\": {\n \"source\": \"iana\",\n \"extensions\": [\"npx\"]\n },\n \"image/vnd.pco.b16\": {\n \"source\": \"iana\",\n \"extensions\": [\"b16\"]\n },\n \"image/vnd.radiance\": {\n \"source\": \"iana\"\n },\n \"image/vnd.sealed.png\": {\n \"source\": \"iana\"\n },\n \"image/vnd.sealedmedia.softseal.gif\": {\n \"source\": \"iana\"\n },\n \"image/vnd.sealedmedia.softseal.jpg\": {\n \"source\": \"iana\"\n },\n \"image/vnd.svf\": {\n \"source\": \"iana\"\n },\n \"image/vnd.tencent.tap\": {\n \"source\": \"iana\",\n \"extensions\": [\"tap\"]\n },\n \"image/vnd.valve.source.texture\": {\n \"source\": \"iana\",\n \"extensions\": [\"vtf\"]\n },\n \"image/vnd.wap.wbmp\": {\n \"source\": \"iana\",\n \"extensions\": [\"wbmp\"]\n },\n \"image/vnd.xiff\": {\n \"source\": \"iana\",\n \"extensions\": [\"xif\"]\n },\n \"image/vnd.zbrush.pcx\": {\n \"source\": \"iana\",\n \"extensions\": [\"pcx\"]\n },\n \"image/webp\": {\n \"source\": \"apache\",\n \"extensions\": [\"webp\"]\n },\n \"image/wmf\": {\n \"source\": \"iana\",\n \"extensions\": [\"wmf\"]\n },\n \"image/x-3ds\": {\n \"source\": \"apache\",\n \"extensions\": [\"3ds\"]\n },\n \"image/x-cmu-raster\": {\n \"source\": \"apache\",\n \"extensions\": [\"ras\"]\n },\n \"image/x-cmx\": {\n \"source\": \"apache\",\n \"extensions\": [\"cmx\"]\n },\n \"image/x-freehand\": {\n \"source\": \"apache\",\n \"extensions\": [\"fh\",\"fhc\",\"fh4\",\"fh5\",\"fh7\"]\n },\n \"image/x-icon\": {\n \"source\": \"apache\",\n \"compressible\": true,\n \"extensions\": [\"ico\"]\n },\n \"image/x-jng\": {\n \"source\": \"nginx\",\n \"extensions\": [\"jng\"]\n },\n \"image/x-mrsid-image\": {\n \"source\": \"apache\",\n \"extensions\": [\"sid\"]\n },\n \"image/x-ms-bmp\": {\n \"source\": \"nginx\",\n \"compressible\": true,\n \"extensions\": [\"bmp\"]\n },\n \"image/x-pcx\": {\n \"source\": \"apache\",\n \"extensions\": [\"pcx\"]\n },\n \"image/x-pict\": {\n \"source\": \"apache\",\n \"extensions\": [\"pic\",\"pct\"]\n },\n \"image/x-portable-anymap\": {\n \"source\": \"apache\",\n \"extensions\": [\"pnm\"]\n },\n \"image/x-portable-bitmap\": {\n \"source\": \"apache\",\n \"extensions\": [\"pbm\"]\n },\n \"image/x-portable-graymap\": {\n \"source\": \"apache\",\n \"extensions\": [\"pgm\"]\n },\n \"image/x-portable-pixmap\": {\n \"source\": \"apache\",\n \"extensions\": [\"ppm\"]\n },\n \"image/x-rgb\": {\n \"source\": \"apache\",\n \"extensions\": [\"rgb\"]\n },\n \"image/x-tga\": {\n \"source\": \"apache\",\n \"extensions\": [\"tga\"]\n },\n \"image/x-xbitmap\": {\n \"source\": \"apache\",\n \"extensions\": [\"xbm\"]\n },\n \"image/x-xcf\": {\n \"compressible\": false\n },\n \"image/x-xpixmap\": {\n \"source\": \"apache\",\n \"extensions\": [\"xpm\"]\n },\n \"image/x-xwindowdump\": {\n \"source\": \"apache\",\n \"extensions\": [\"xwd\"]\n },\n \"message/cpim\": {\n \"source\": \"iana\"\n },\n \"message/delivery-status\": {\n \"source\": \"iana\"\n },\n \"message/disposition-notification\": {\n \"source\": \"iana\",\n \"extensions\": [\n \"disposition-notification\"\n ]\n },\n \"message/external-body\": {\n \"source\": \"iana\"\n },\n \"message/feedback-report\": {\n \"source\": \"iana\"\n },\n \"message/global\": {\n \"source\": \"iana\",\n \"extensions\": [\"u8msg\"]\n },\n \"message/global-delivery-status\": {\n \"source\": \"iana\",\n \"extensions\": [\"u8dsn\"]\n },\n \"message/global-disposition-notification\": {\n \"source\": \"iana\",\n \"extensions\": [\"u8mdn\"]\n },\n \"message/global-headers\": {\n \"source\": \"iana\",\n \"extensions\": [\"u8hdr\"]\n },\n \"message/http\": {\n \"source\": \"iana\",\n \"compressible\": false\n },\n \"message/imdn+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"message/news\": {\n \"source\": \"iana\"\n },\n \"message/partial\": {\n \"source\": \"iana\",\n \"compressible\": false\n },\n \"message/rfc822\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"eml\",\"mime\"]\n },\n \"message/s-http\": {\n \"source\": \"iana\"\n },\n \"message/sip\": {\n \"source\": \"iana\"\n },\n \"message/sipfrag\": {\n \"source\": \"iana\"\n },\n \"message/tracking-status\": {\n \"source\": \"iana\"\n },\n \"message/vnd.si.simp\": {\n \"source\": \"iana\"\n },\n \"message/vnd.wfa.wsc\": {\n \"source\": \"iana\",\n \"extensions\": [\"wsc\"]\n },\n \"model/3mf\": {\n \"source\": \"iana\",\n \"extensions\": [\"3mf\"]\n },\n \"model/e57\": {\n \"source\": \"iana\"\n },\n \"model/gltf+json\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"gltf\"]\n },\n \"model/gltf-binary\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"glb\"]\n },\n \"model/iges\": {\n \"source\": \"iana\",\n \"compressible\": false,\n \"extensions\": [\"igs\",\"iges\"]\n },\n \"model/mesh\": {\n \"source\": \"iana\",\n \"compressible\": false,\n \"extensions\": [\"msh\",\"mesh\",\"silo\"]\n },\n \"model/mtl\": {\n \"source\": \"iana\",\n \"extensions\": [\"mtl\"]\n },\n \"model/obj\": {\n \"source\": \"iana\",\n \"extensions\": [\"obj\"]\n },\n \"model/step\": {\n \"source\": \"iana\"\n },\n \"model/step+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"stpx\"]\n },\n \"model/step+zip\": {\n \"source\": \"iana\",\n \"compressible\": false,\n \"extensions\": [\"stpz\"]\n },\n \"model/step-xml+zip\": {\n \"source\": \"iana\",\n \"compressible\": false,\n \"extensions\": [\"stpxz\"]\n },\n \"model/stl\": {\n \"source\": \"iana\",\n \"extensions\": [\"stl\"]\n },\n \"model/vnd.collada+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"dae\"]\n },\n \"model/vnd.dwf\": {\n \"source\": \"iana\",\n \"extensions\": [\"dwf\"]\n },\n \"model/vnd.flatland.3dml\": {\n \"source\": \"iana\"\n },\n \"model/vnd.gdl\": {\n \"source\": \"iana\",\n \"extensions\": [\"gdl\"]\n },\n \"model/vnd.gs-gdl\": {\n \"source\": \"apache\"\n },\n \"model/vnd.gs.gdl\": {\n \"source\": \"iana\"\n },\n \"model/vnd.gtw\": {\n \"source\": \"iana\",\n \"extensions\": [\"gtw\"]\n },\n \"model/vnd.moml+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"model/vnd.mts\": {\n \"source\": \"iana\",\n \"extensions\": [\"mts\"]\n },\n \"model/vnd.opengex\": {\n \"source\": \"iana\",\n \"extensions\": [\"ogex\"]\n },\n \"model/vnd.parasolid.transmit.binary\": {\n \"source\": \"iana\",\n \"extensions\": [\"x_b\"]\n },\n \"model/vnd.parasolid.transmit.text\": {\n \"source\": \"iana\",\n \"extensions\": [\"x_t\"]\n },\n \"model/vnd.pytha.pyox\": {\n \"source\": \"iana\"\n },\n \"model/vnd.rosette.annotated-data-model\": {\n \"source\": \"iana\"\n },\n \"model/vnd.sap.vds\": {\n \"source\": \"iana\",\n \"extensions\": [\"vds\"]\n },\n \"model/vnd.usdz+zip\": {\n \"source\": \"iana\",\n \"compressible\": false,\n \"extensions\": [\"usdz\"]\n },\n \"model/vnd.valve.source.compiled-map\": {\n \"source\": \"iana\",\n \"extensions\": [\"bsp\"]\n },\n \"model/vnd.vtu\": {\n \"source\": \"iana\",\n \"extensions\": [\"vtu\"]\n },\n \"model/vrml\": {\n \"source\": \"iana\",\n \"compressible\": false,\n \"extensions\": [\"wrl\",\"vrml\"]\n },\n \"model/x3d+binary\": {\n \"source\": \"apache\",\n \"compressible\": false,\n \"extensions\": [\"x3db\",\"x3dbz\"]\n },\n \"model/x3d+fastinfoset\": {\n \"source\": \"iana\",\n \"extensions\": [\"x3db\"]\n },\n \"model/x3d+vrml\": {\n \"source\": \"apache\",\n \"compressible\": false,\n \"extensions\": [\"x3dv\",\"x3dvz\"]\n },\n \"model/x3d+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"x3d\",\"x3dz\"]\n },\n \"model/x3d-vrml\": {\n \"source\": \"iana\",\n \"extensions\": [\"x3dv\"]\n },\n \"multipart/alternative\": {\n \"source\": \"iana\",\n \"compressible\": false\n },\n \"multipart/appledouble\": {\n \"source\": \"iana\"\n },\n \"multipart/byteranges\": {\n \"source\": \"iana\"\n },\n \"multipart/digest\": {\n \"source\": \"iana\"\n },\n \"multipart/encrypted\": {\n \"source\": \"iana\",\n \"compressible\": false\n },\n \"multipart/form-data\": {\n \"source\": \"iana\",\n \"compressible\": false\n },\n \"multipart/header-set\": {\n \"source\": \"iana\"\n },\n \"multipart/mixed\": {\n \"source\": \"iana\"\n },\n \"multipart/multilingual\": {\n \"source\": \"iana\"\n },\n \"multipart/parallel\": {\n \"source\": \"iana\"\n },\n \"multipart/related\": {\n \"source\": \"iana\",\n \"compressible\": false\n },\n \"multipart/report\": {\n \"source\": \"iana\"\n },\n \"multipart/signed\": {\n \"source\": \"iana\",\n \"compressible\": false\n },\n \"multipart/vnd.bint.med-plus\": {\n \"source\": \"iana\"\n },\n \"multipart/voice-message\": {\n \"source\": \"iana\"\n },\n \"multipart/x-mixed-replace\": {\n \"source\": \"iana\"\n },\n \"text/1d-interleaved-parityfec\": {\n \"source\": \"iana\"\n },\n \"text/cache-manifest\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"appcache\",\"manifest\"]\n },\n \"text/calendar\": {\n \"source\": \"iana\",\n \"extensions\": [\"ics\",\"ifb\"]\n },\n \"text/calender\": {\n \"compressible\": true\n },\n \"text/cmd\": {\n \"compressible\": true\n },\n \"text/coffeescript\": {\n \"extensions\": [\"coffee\",\"litcoffee\"]\n },\n \"text/cql\": {\n \"source\": \"iana\"\n },\n \"text/cql-expression\": {\n \"source\": \"iana\"\n },\n \"text/cql-identifier\": {\n \"source\": \"iana\"\n },\n \"text/css\": {\n \"source\": \"iana\",\n \"charset\": \"UTF-8\",\n \"compressible\": true,\n \"extensions\": [\"css\"]\n },\n \"text/csv\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"csv\"]\n },\n \"text/csv-schema\": {\n \"source\": \"iana\"\n },\n \"text/directory\": {\n \"source\": \"iana\"\n },\n \"text/dns\": {\n \"source\": \"iana\"\n },\n \"text/ecmascript\": {\n \"source\": \"iana\"\n },\n \"text/encaprtp\": {\n \"source\": \"iana\"\n },\n \"text/enriched\": {\n \"source\": \"iana\"\n },\n \"text/fhirpath\": {\n \"source\": \"iana\"\n },\n \"text/flexfec\": {\n \"source\": \"iana\"\n },\n \"text/fwdred\": {\n \"source\": \"iana\"\n },\n \"text/gff3\": {\n \"source\": \"iana\"\n },\n \"text/grammar-ref-list\": {\n \"source\": \"iana\"\n },\n \"text/html\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"html\",\"htm\",\"shtml\"]\n },\n \"text/jade\": {\n \"extensions\": [\"jade\"]\n },\n \"text/javascript\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"text/jcr-cnd\": {\n \"source\": \"iana\"\n },\n \"text/jsx\": {\n \"compressible\": true,\n \"extensions\": [\"jsx\"]\n },\n \"text/less\": {\n \"compressible\": true,\n \"extensions\": [\"less\"]\n },\n \"text/markdown\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"markdown\",\"md\"]\n },\n \"text/mathml\": {\n \"source\": \"nginx\",\n \"extensions\": [\"mml\"]\n },\n \"text/mdx\": {\n \"compressible\": true,\n \"extensions\": [\"mdx\"]\n },\n \"text/mizar\": {\n \"source\": \"iana\"\n },\n \"text/n3\": {\n \"source\": \"iana\",\n \"charset\": \"UTF-8\",\n \"compressible\": true,\n \"extensions\": [\"n3\"]\n },\n \"text/parameters\": {\n \"source\": \"iana\",\n \"charset\": \"UTF-8\"\n },\n \"text/parityfec\": {\n \"source\": \"iana\"\n },\n \"text/plain\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"txt\",\"text\",\"conf\",\"def\",\"list\",\"log\",\"in\",\"ini\"]\n },\n \"text/provenance-notation\": {\n \"source\": \"iana\",\n \"charset\": \"UTF-8\"\n },\n \"text/prs.fallenstein.rst\": {\n \"source\": \"iana\"\n },\n \"text/prs.lines.tag\": {\n \"source\": \"iana\",\n \"extensions\": [\"dsc\"]\n },\n \"text/prs.prop.logic\": {\n \"source\": \"iana\"\n },\n \"text/raptorfec\": {\n \"source\": \"iana\"\n },\n \"text/red\": {\n \"source\": \"iana\"\n },\n \"text/rfc822-headers\": {\n \"source\": \"iana\"\n },\n \"text/richtext\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"rtx\"]\n },\n \"text/rtf\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"rtf\"]\n },\n \"text/rtp-enc-aescm128\": {\n \"source\": \"iana\"\n },\n \"text/rtploopback\": {\n \"source\": \"iana\"\n },\n \"text/rtx\": {\n \"source\": \"iana\"\n },\n \"text/sgml\": {\n \"source\": \"iana\",\n \"extensions\": [\"sgml\",\"sgm\"]\n },\n \"text/shaclc\": {\n \"source\": \"iana\"\n },\n \"text/shex\": {\n \"source\": \"iana\",\n \"extensions\": [\"shex\"]\n },\n \"text/slim\": {\n \"extensions\": [\"slim\",\"slm\"]\n },\n \"text/spdx\": {\n \"source\": \"iana\",\n \"extensions\": [\"spdx\"]\n },\n \"text/strings\": {\n \"source\": \"iana\"\n },\n \"text/stylus\": {\n \"extensions\": [\"stylus\",\"styl\"]\n },\n \"text/t140\": {\n \"source\": \"iana\"\n },\n \"text/tab-separated-values\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"tsv\"]\n },\n \"text/troff\": {\n \"source\": \"iana\",\n \"extensions\": [\"t\",\"tr\",\"roff\",\"man\",\"me\",\"ms\"]\n },\n \"text/turtle\": {\n \"source\": \"iana\",\n \"charset\": \"UTF-8\",\n \"extensions\": [\"ttl\"]\n },\n \"text/ulpfec\": {\n \"source\": \"iana\"\n },\n \"text/uri-list\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"uri\",\"uris\",\"urls\"]\n },\n \"text/vcard\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"vcard\"]\n },\n \"text/vnd.a\": {\n \"source\": \"iana\"\n },\n \"text/vnd.abc\": {\n \"source\": \"iana\"\n },\n \"text/vnd.ascii-art\": {\n \"source\": \"iana\"\n },\n \"text/vnd.curl\": {\n \"source\": \"iana\",\n \"extensions\": [\"curl\"]\n },\n \"text/vnd.curl.dcurl\": {\n \"source\": \"apache\",\n \"extensions\": [\"dcurl\"]\n },\n \"text/vnd.curl.mcurl\": {\n \"source\": \"apache\",\n \"extensions\": [\"mcurl\"]\n },\n \"text/vnd.curl.scurl\": {\n \"source\": \"apache\",\n \"extensions\": [\"scurl\"]\n },\n \"text/vnd.debian.copyright\": {\n \"source\": \"iana\",\n \"charset\": \"UTF-8\"\n },\n \"text/vnd.dmclientscript\": {\n \"source\": \"iana\"\n },\n \"text/vnd.dvb.subtitle\": {\n \"source\": \"iana\",\n \"extensions\": [\"sub\"]\n },\n \"text/vnd.esmertec.theme-descriptor\": {\n \"source\": \"iana\",\n \"charset\": \"UTF-8\"\n },\n \"text/vnd.familysearch.gedcom\": {\n \"source\": \"iana\",\n \"extensions\": [\"ged\"]\n },\n \"text/vnd.ficlab.flt\": {\n \"source\": \"iana\"\n },\n \"text/vnd.fly\": {\n \"source\": \"iana\",\n \"extensions\": [\"fly\"]\n },\n \"text/vnd.fmi.flexstor\": {\n \"source\": \"iana\",\n \"extensions\": [\"flx\"]\n },\n \"text/vnd.gml\": {\n \"source\": \"iana\"\n },\n \"text/vnd.graphviz\": {\n \"source\": \"iana\",\n \"extensions\": [\"gv\"]\n },\n \"text/vnd.hans\": {\n \"source\": \"iana\"\n },\n \"text/vnd.hgl\": {\n \"source\": \"iana\"\n },\n \"text/vnd.in3d.3dml\": {\n \"source\": \"iana\",\n \"extensions\": [\"3dml\"]\n },\n \"text/vnd.in3d.spot\": {\n \"source\": \"iana\",\n \"extensions\": [\"spot\"]\n },\n \"text/vnd.iptc.newsml\": {\n \"source\": \"iana\"\n },\n \"text/vnd.iptc.nitf\": {\n \"source\": \"iana\"\n },\n \"text/vnd.latex-z\": {\n \"source\": \"iana\"\n },\n \"text/vnd.motorola.reflex\": {\n \"source\": \"iana\"\n },\n \"text/vnd.ms-mediapackage\": {\n \"source\": \"iana\"\n },\n \"text/vnd.net2phone.commcenter.command\": {\n \"source\": \"iana\"\n },\n \"text/vnd.radisys.msml-basic-layout\": {\n \"source\": \"iana\"\n },\n \"text/vnd.senx.warpscript\": {\n \"source\": \"iana\"\n },\n \"text/vnd.si.uricatalogue\": {\n \"source\": \"iana\"\n },\n \"text/vnd.sosi\": {\n \"source\": \"iana\"\n },\n \"text/vnd.sun.j2me.app-descriptor\": {\n \"source\": \"iana\",\n \"charset\": \"UTF-8\",\n \"extensions\": [\"jad\"]\n },\n \"text/vnd.trolltech.linguist\": {\n \"source\": \"iana\",\n \"charset\": \"UTF-8\"\n },\n \"text/vnd.wap.si\": {\n \"source\": \"iana\"\n },\n \"text/vnd.wap.sl\": {\n \"source\": \"iana\"\n },\n \"text/vnd.wap.wml\": {\n \"source\": \"iana\",\n \"extensions\": [\"wml\"]\n },\n \"text/vnd.wap.wmlscript\": {\n \"source\": \"iana\",\n \"extensions\": [\"wmls\"]\n },\n \"text/vtt\": {\n \"source\": \"iana\",\n \"charset\": \"UTF-8\",\n \"compressible\": true,\n \"extensions\": [\"vtt\"]\n },\n \"text/x-asm\": {\n \"source\": \"apache\",\n \"extensions\": [\"s\",\"asm\"]\n },\n \"text/x-c\": {\n \"source\": \"apache\",\n \"extensions\": [\"c\",\"cc\",\"cxx\",\"cpp\",\"h\",\"hh\",\"dic\"]\n },\n \"text/x-component\": {\n \"source\": \"nginx\",\n \"extensions\": [\"htc\"]\n },\n \"text/x-fortran\": {\n \"source\": \"apache\",\n \"extensions\": [\"f\",\"for\",\"f77\",\"f90\"]\n },\n \"text/x-gwt-rpc\": {\n \"compressible\": true\n },\n \"text/x-handlebars-template\": {\n \"extensions\": [\"hbs\"]\n },\n \"text/x-java-source\": {\n \"source\": \"apache\",\n \"extensions\": [\"java\"]\n },\n \"text/x-jquery-tmpl\": {\n \"compressible\": true\n },\n \"text/x-lua\": {\n \"extensions\": [\"lua\"]\n },\n \"text/x-markdown\": {\n \"compressible\": true,\n \"extensions\": [\"mkd\"]\n },\n \"text/x-nfo\": {\n \"source\": \"apache\",\n \"extensions\": [\"nfo\"]\n },\n \"text/x-opml\": {\n \"source\": \"apache\",\n \"extensions\": [\"opml\"]\n },\n \"text/x-org\": {\n \"compressible\": true,\n \"extensions\": [\"org\"]\n },\n \"text/x-pascal\": {\n \"source\": \"apache\",\n \"extensions\": [\"p\",\"pas\"]\n },\n \"text/x-processing\": {\n \"compressible\": true,\n \"extensions\": [\"pde\"]\n },\n \"text/x-sass\": {\n \"extensions\": [\"sass\"]\n },\n \"text/x-scss\": {\n \"extensions\": [\"scss\"]\n },\n \"text/x-setext\": {\n \"source\": \"apache\",\n \"extensions\": [\"etx\"]\n },\n \"text/x-sfv\": {\n \"source\": \"apache\",\n \"extensions\": [\"sfv\"]\n },\n \"text/x-suse-ymp\": {\n \"compressible\": true,\n \"extensions\": [\"ymp\"]\n },\n \"text/x-uuencode\": {\n \"source\": \"apache\",\n \"extensions\": [\"uu\"]\n },\n \"text/x-vcalendar\": {\n \"source\": \"apache\",\n \"extensions\": [\"vcs\"]\n },\n \"text/x-vcard\": {\n \"source\": \"apache\",\n \"extensions\": [\"vcf\"]\n },\n \"text/xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"xml\"]\n },\n \"text/xml-external-parsed-entity\": {\n \"source\": \"iana\"\n },\n \"text/yaml\": {\n \"compressible\": true,\n \"extensions\": [\"yaml\",\"yml\"]\n },\n \"video/1d-interleaved-parityfec\": {\n \"source\": \"iana\"\n },\n \"video/3gpp\": {\n \"source\": \"iana\",\n \"extensions\": [\"3gp\",\"3gpp\"]\n },\n \"video/3gpp-tt\": {\n \"source\": \"iana\"\n },\n \"video/3gpp2\": {\n \"source\": \"iana\",\n \"extensions\": [\"3g2\"]\n },\n \"video/av1\": {\n \"source\": \"iana\"\n },\n \"video/bmpeg\": {\n \"source\": \"iana\"\n },\n \"video/bt656\": {\n \"source\": \"iana\"\n },\n \"video/celb\": {\n \"source\": \"iana\"\n },\n \"video/dv\": {\n \"source\": \"iana\"\n },\n \"video/encaprtp\": {\n \"source\": \"iana\"\n },\n \"video/ffv1\": {\n \"source\": \"iana\"\n },\n \"video/flexfec\": {\n \"source\": \"iana\"\n },\n \"video/h261\": {\n \"source\": \"iana\",\n \"extensions\": [\"h261\"]\n },\n \"video/h263\": {\n \"source\": \"iana\",\n \"extensions\": [\"h263\"]\n },\n \"video/h263-1998\": {\n \"source\": \"iana\"\n },\n \"video/h263-2000\": {\n \"source\": \"iana\"\n },\n \"video/h264\": {\n \"source\": \"iana\",\n \"extensions\": [\"h264\"]\n },\n \"video/h264-rcdo\": {\n \"source\": \"iana\"\n },\n \"video/h264-svc\": {\n \"source\": \"iana\"\n },\n \"video/h265\": {\n \"source\": \"iana\"\n },\n \"video/iso.segment\": {\n \"source\": \"iana\",\n \"extensions\": [\"m4s\"]\n },\n \"video/jpeg\": {\n \"source\": \"iana\",\n \"extensions\": [\"jpgv\"]\n },\n \"video/jpeg2000\": {\n \"source\": \"iana\"\n },\n \"video/jpm\": {\n \"source\": \"apache\",\n \"extensions\": [\"jpm\",\"jpgm\"]\n },\n \"video/jxsv\": {\n \"source\": \"iana\"\n },\n \"video/mj2\": {\n \"source\": \"iana\",\n \"extensions\": [\"mj2\",\"mjp2\"]\n },\n \"video/mp1s\": {\n \"source\": \"iana\"\n },\n \"video/mp2p\": {\n \"source\": \"iana\"\n },\n \"video/mp2t\": {\n \"source\": \"iana\",\n \"extensions\": [\"ts\"]\n },\n \"video/mp4\": {\n \"source\": \"iana\",\n \"compressible\": false,\n \"extensions\": [\"mp4\",\"mp4v\",\"mpg4\"]\n },\n \"video/mp4v-es\": {\n \"source\": \"iana\"\n },\n \"video/mpeg\": {\n \"source\": \"iana\",\n \"compressible\": false,\n \"extensions\": [\"mpeg\",\"mpg\",\"mpe\",\"m1v\",\"m2v\"]\n },\n \"video/mpeg4-generic\": {\n \"source\": \"iana\"\n },\n \"video/mpv\": {\n \"source\": \"iana\"\n },\n \"video/nv\": {\n \"source\": \"iana\"\n },\n \"video/ogg\": {\n \"source\": \"iana\",\n \"compressible\": false,\n \"extensions\": [\"ogv\"]\n },\n \"video/parityfec\": {\n \"source\": \"iana\"\n },\n \"video/pointer\": {\n \"source\": \"iana\"\n },\n \"video/quicktime\": {\n \"source\": \"iana\",\n \"compressible\": false,\n \"extensions\": [\"qt\",\"mov\"]\n },\n \"video/raptorfec\": {\n \"source\": \"iana\"\n },\n \"video/raw\": {\n \"source\": \"iana\"\n },\n \"video/rtp-enc-aescm128\": {\n \"source\": \"iana\"\n },\n \"video/rtploopback\": {\n \"source\": \"iana\"\n },\n \"video/rtx\": {\n \"source\": \"iana\"\n },\n \"video/scip\": {\n \"source\": \"iana\"\n },\n \"video/smpte291\": {\n \"source\": \"iana\"\n },\n \"video/smpte292m\": {\n \"source\": \"iana\"\n },\n \"video/ulpfec\": {\n \"source\": \"iana\"\n },\n \"video/vc1\": {\n \"source\": \"iana\"\n },\n \"video/vc2\": {\n \"source\": \"iana\"\n },\n \"video/vnd.cctv\": {\n \"source\": \"iana\"\n },\n \"video/vnd.dece.hd\": {\n \"source\": \"iana\",\n \"extensions\": [\"uvh\",\"uvvh\"]\n },\n \"video/vnd.dece.mobile\": {\n \"source\": \"iana\",\n \"extensions\": [\"uvm\",\"uvvm\"]\n },\n \"video/vnd.dece.mp4\": {\n \"source\": \"iana\"\n },\n \"video/vnd.dece.pd\": {\n \"source\": \"iana\",\n \"extensions\": [\"uvp\",\"uvvp\"]\n },\n \"video/vnd.dece.sd\": {\n \"source\": \"iana\",\n \"extensions\": [\"uvs\",\"uvvs\"]\n },\n \"video/vnd.dece.video\": {\n \"source\": \"iana\",\n \"extensions\": [\"uvv\",\"uvvv\"]\n },\n \"video/vnd.directv.mpeg\": {\n \"source\": \"iana\"\n },\n \"video/vnd.directv.mpeg-tts\": {\n \"source\": \"iana\"\n },\n \"video/vnd.dlna.mpeg-tts\": {\n \"source\": \"iana\"\n },\n \"video/vnd.dvb.file\": {\n \"source\": \"iana\",\n \"extensions\": [\"dvb\"]\n },\n \"video/vnd.fvt\": {\n \"source\": \"iana\",\n \"extensions\": [\"fvt\"]\n },\n \"video/vnd.hns.video\": {\n \"source\": \"iana\"\n },\n \"video/vnd.iptvforum.1dparityfec-1010\": {\n \"source\": \"iana\"\n },\n \"video/vnd.iptvforum.1dparityfec-2005\": {\n \"source\": \"iana\"\n },\n \"video/vnd.iptvforum.2dparityfec-1010\": {\n \"source\": \"iana\"\n },\n \"video/vnd.iptvforum.2dparityfec-2005\": {\n \"source\": \"iana\"\n },\n \"video/vnd.iptvforum.ttsavc\": {\n \"source\": \"iana\"\n },\n \"video/vnd.iptvforum.ttsmpeg2\": {\n \"source\": \"iana\"\n },\n \"video/vnd.motorola.video\": {\n \"source\": \"iana\"\n },\n \"video/vnd.motorola.videop\": {\n \"source\": \"iana\"\n },\n \"video/vnd.mpegurl\": {\n \"source\": \"iana\",\n \"extensions\": [\"mxu\",\"m4u\"]\n },\n \"video/vnd.ms-playready.media.pyv\": {\n \"source\": \"iana\",\n \"extensions\": [\"pyv\"]\n },\n \"video/vnd.nokia.interleaved-multimedia\": {\n \"source\": \"iana\"\n },\n \"video/vnd.nokia.mp4vr\": {\n \"source\": \"iana\"\n },\n \"video/vnd.nokia.videovoip\": {\n \"source\": \"iana\"\n },\n \"video/vnd.objectvideo\": {\n \"source\": \"iana\"\n },\n \"video/vnd.radgamettools.bink\": {\n \"source\": \"iana\"\n },\n \"video/vnd.radgamettools.smacker\": {\n \"source\": \"iana\"\n },\n \"video/vnd.sealed.mpeg1\": {\n \"source\": \"iana\"\n },\n \"video/vnd.sealed.mpeg4\": {\n \"source\": \"iana\"\n },\n \"video/vnd.sealed.swf\": {\n \"source\": \"iana\"\n },\n \"video/vnd.sealedmedia.softseal.mov\": {\n \"source\": \"iana\"\n },\n \"video/vnd.uvvu.mp4\": {\n \"source\": \"iana\",\n \"extensions\": [\"uvu\",\"uvvu\"]\n },\n \"video/vnd.vivo\": {\n \"source\": \"iana\",\n \"extensions\": [\"viv\"]\n },\n \"video/vnd.youtube.yt\": {\n \"source\": \"iana\"\n },\n \"video/vp8\": {\n \"source\": \"iana\"\n },\n \"video/vp9\": {\n \"source\": \"iana\"\n },\n \"video/webm\": {\n \"source\": \"apache\",\n \"compressible\": false,\n \"extensions\": [\"webm\"]\n },\n \"video/x-f4v\": {\n \"source\": \"apache\",\n \"extensions\": [\"f4v\"]\n },\n \"video/x-fli\": {\n \"source\": \"apache\",\n \"extensions\": [\"fli\"]\n },\n \"video/x-flv\": {\n \"source\": \"apache\",\n \"compressible\": false,\n \"extensions\": [\"flv\"]\n },\n \"video/x-m4v\": {\n \"source\": \"apache\",\n \"extensions\": [\"m4v\"]\n },\n \"video/x-matroska\": {\n \"source\": \"apache\",\n \"compressible\": false,\n \"extensions\": [\"mkv\",\"mk3d\",\"mks\"]\n },\n \"video/x-mng\": {\n \"source\": \"apache\",\n \"extensions\": [\"mng\"]\n },\n \"video/x-ms-asf\": {\n \"source\": \"apache\",\n \"extensions\": [\"asf\",\"asx\"]\n },\n \"video/x-ms-vob\": {\n \"source\": \"apache\",\n \"extensions\": [\"vob\"]\n },\n \"video/x-ms-wm\": {\n \"source\": \"apache\",\n \"extensions\": [\"wm\"]\n },\n \"video/x-ms-wmv\": {\n \"source\": \"apache\",\n \"compressible\": false,\n \"extensions\": [\"wmv\"]\n },\n \"video/x-ms-wmx\": {\n \"source\": \"apache\",\n \"extensions\": [\"wmx\"]\n },\n \"video/x-ms-wvx\": {\n \"source\": \"apache\",\n \"extensions\": [\"wvx\"]\n },\n \"video/x-msvideo\": {\n \"source\": \"apache\",\n \"extensions\": [\"avi\"]\n },\n \"video/x-sgi-movie\": {\n \"source\": \"apache\",\n \"extensions\": [\"movie\"]\n },\n \"video/x-smv\": {\n \"source\": \"apache\",\n \"extensions\": [\"smv\"]\n },\n \"x-conference/x-cooltalk\": {\n \"source\": \"apache\",\n \"extensions\": [\"ice\"]\n },\n \"x-shader/x-fragment\": {\n \"compressible\": true\n },\n \"x-shader/x-vertex\": {\n \"compressible\": true\n }\n}\n","/*!\n * mime-db\n * Copyright(c) 2014 Jonathan Ong\n * Copyright(c) 2015-2022 Douglas Christopher Wilson\n * MIT Licensed\n */\n\n/**\n * Module exports.\n */\n\nmodule.exports = require('./db.json')\n","/*!\n * mime-types\n * Copyright(c) 2014 Jonathan Ong\n * Copyright(c) 2015 Douglas Christopher Wilson\n * MIT Licensed\n */\n\n'use strict'\n\n/**\n * Module dependencies.\n * @private\n */\n\nvar db = require('mime-db')\nvar extname = require('path').extname\n\n/**\n * Module variables.\n * @private\n */\n\nvar EXTRACT_TYPE_REGEXP = /^\\s*([^;\\s]*)(?:;|\\s|$)/\nvar TEXT_TYPE_REGEXP = /^text\\//i\n\n/**\n * Module exports.\n * @public\n */\n\nexports.charset = charset\nexports.charsets = { lookup: charset }\nexports.contentType = contentType\nexports.extension = extension\nexports.extensions = Object.create(null)\nexports.lookup = lookup\nexports.types = Object.create(null)\n\n// Populate the extensions/types maps\npopulateMaps(exports.extensions, exports.types)\n\n/**\n * Get the default charset for a MIME type.\n *\n * @param {string} type\n * @return {boolean|string}\n */\n\nfunction charset (type) {\n if (!type || typeof type !== 'string') {\n return false\n }\n\n // TODO: use media-typer\n var match = EXTRACT_TYPE_REGEXP.exec(type)\n var mime = match && db[match[1].toLowerCase()]\n\n if (mime && mime.charset) {\n return mime.charset\n }\n\n // default text/* to utf-8\n if (match && TEXT_TYPE_REGEXP.test(match[1])) {\n return 'UTF-8'\n }\n\n return false\n}\n\n/**\n * Create a full Content-Type header given a MIME type or extension.\n *\n * @param {string} str\n * @return {boolean|string}\n */\n\nfunction contentType (str) {\n // TODO: should this even be in this module?\n if (!str || typeof str !== 'string') {\n return false\n }\n\n var mime = str.indexOf('/') === -1\n ? exports.lookup(str)\n : str\n\n if (!mime) {\n return false\n }\n\n // TODO: use content-type or other module\n if (mime.indexOf('charset') === -1) {\n var charset = exports.charset(mime)\n if (charset) mime += '; charset=' + charset.toLowerCase()\n }\n\n return mime\n}\n\n/**\n * Get the default extension for a MIME type.\n *\n * @param {string} type\n * @return {boolean|string}\n */\n\nfunction extension (type) {\n if (!type || typeof type !== 'string') {\n return false\n }\n\n // TODO: use media-typer\n var match = EXTRACT_TYPE_REGEXP.exec(type)\n\n // get extensions\n var exts = match && exports.extensions[match[1].toLowerCase()]\n\n if (!exts || !exts.length) {\n return false\n }\n\n return exts[0]\n}\n\n/**\n * Lookup the MIME type for a file path/extension.\n *\n * @param {string} path\n * @return {boolean|string}\n */\n\nfunction lookup (path) {\n if (!path || typeof path !== 'string') {\n return false\n }\n\n // get the extension (\"ext\" or \".ext\" or full path)\n var extension = extname('x.' + path)\n .toLowerCase()\n .substr(1)\n\n if (!extension) {\n return false\n }\n\n return exports.types[extension] || false\n}\n\n/**\n * Populate the extensions and types maps.\n * @private\n */\n\nfunction populateMaps (extensions, types) {\n // source preference (least -> most)\n var preference = ['nginx', 'apache', undefined, 'iana']\n\n Object.keys(db).forEach(function forEachMimeType (type) {\n var mime = db[type]\n var exts = mime.extensions\n\n if (!exts || !exts.length) {\n return\n }\n\n // mime -> extensions\n extensions[type] = exts\n\n // extension -> mime\n for (var i = 0; i < exts.length; i++) {\n var extension = exts[i]\n\n if (types[extension]) {\n var from = preference.indexOf(db[types[extension]].source)\n var to = preference.indexOf(mime.source)\n\n if (types[extension] !== 'application/octet-stream' &&\n (from > to || (from === to && types[extension].substr(0, 12) === 'application/'))) {\n // skip the remapping\n continue\n }\n }\n\n // set the extension -> mime\n types[extension] = type\n }\n })\n}\n","module.exports = defer;\n\n/**\n * Runs provided function on next iteration of the event loop\n *\n * @param {function} fn - function to run\n */\nfunction defer(fn)\n{\n var nextTick = typeof setImmediate == 'function'\n ? setImmediate\n : (\n typeof process == 'object' && typeof process.nextTick == 'function'\n ? process.nextTick\n : null\n );\n\n if (nextTick)\n {\n nextTick(fn);\n }\n else\n {\n setTimeout(fn, 0);\n }\n}\n","var defer = require('./defer.js');\n\n// API\nmodule.exports = async;\n\n/**\n * Runs provided callback asynchronously\n * even if callback itself is not\n *\n * @param {function} callback - callback to invoke\n * @returns {function} - augmented callback\n */\nfunction async(callback)\n{\n var isAsync = false;\n\n // check if async happened\n defer(function() { isAsync = true; });\n\n return function async_callback(err, result)\n {\n if (isAsync)\n {\n callback(err, result);\n }\n else\n {\n defer(function nextTick_callback()\n {\n callback(err, result);\n });\n }\n };\n}\n","// API\nmodule.exports = abort;\n\n/**\n * Aborts leftover active jobs\n *\n * @param {object} state - current state object\n */\nfunction abort(state)\n{\n Object.keys(state.jobs).forEach(clean.bind(state));\n\n // reset leftover jobs\n state.jobs = {};\n}\n\n/**\n * Cleans up leftover job by invoking abort function for the provided job id\n *\n * @this state\n * @param {string|number} key - job id to abort\n */\nfunction clean(key)\n{\n if (typeof this.jobs[key] == 'function')\n {\n this.jobs[key]();\n }\n}\n","var async = require('./async.js')\n , abort = require('./abort.js')\n ;\n\n// API\nmodule.exports = iterate;\n\n/**\n * Iterates over each job object\n *\n * @param {array|object} list - array or object (named list) to iterate over\n * @param {function} iterator - iterator to run\n * @param {object} state - current job status\n * @param {function} callback - invoked when all elements processed\n */\nfunction iterate(list, iterator, state, callback)\n{\n // store current index\n var key = state['keyedList'] ? state['keyedList'][state.index] : state.index;\n\n state.jobs[key] = runJob(iterator, key, list[key], function(error, output)\n {\n // don't repeat yourself\n // skip secondary callbacks\n if (!(key in state.jobs))\n {\n return;\n }\n\n // clean up jobs\n delete state.jobs[key];\n\n if (error)\n {\n // don't process rest of the results\n // stop still active jobs\n // and reset the list\n abort(state);\n }\n else\n {\n state.results[key] = output;\n }\n\n // return salvaged results\n callback(error, state.results);\n });\n}\n\n/**\n * Runs iterator over provided job element\n *\n * @param {function} iterator - iterator to invoke\n * @param {string|number} key - key/index of the element in the list of jobs\n * @param {mixed} item - job description\n * @param {function} callback - invoked after iterator is done with the job\n * @returns {function|mixed} - job abort function or something else\n */\nfunction runJob(iterator, key, item, callback)\n{\n var aborter;\n\n // allow shortcut if iterator expects only two arguments\n if (iterator.length == 2)\n {\n aborter = iterator(item, async(callback));\n }\n // otherwise go with full three arguments\n else\n {\n aborter = iterator(item, key, async(callback));\n }\n\n return aborter;\n}\n","// API\nmodule.exports = state;\n\n/**\n * Creates initial state object\n * for iteration over list\n *\n * @param {array|object} list - list to iterate over\n * @param {function|null} sortMethod - function to use for keys sort,\n * or `null` to keep them as is\n * @returns {object} - initial state object\n */\nfunction state(list, sortMethod)\n{\n var isNamedList = !Array.isArray(list)\n , initState =\n {\n index : 0,\n keyedList: isNamedList || sortMethod ? Object.keys(list) : null,\n jobs : {},\n results : isNamedList ? {} : [],\n size : isNamedList ? Object.keys(list).length : list.length\n }\n ;\n\n if (sortMethod)\n {\n // sort array keys based on it's values\n // sort object's keys just on own merit\n initState.keyedList.sort(isNamedList ? sortMethod : function(a, b)\n {\n return sortMethod(list[a], list[b]);\n });\n }\n\n return initState;\n}\n","var abort = require('./abort.js')\n , async = require('./async.js')\n ;\n\n// API\nmodule.exports = terminator;\n\n/**\n * Terminates jobs in the attached state context\n *\n * @this AsyncKitState#\n * @param {function} callback - final callback to invoke after termination\n */\nfunction terminator(callback)\n{\n if (!Object.keys(this.jobs).length)\n {\n return;\n }\n\n // fast forward iteration index\n this.index = this.size;\n\n // abort jobs\n abort(this);\n\n // send back results we have so far\n async(callback)(null, this.results);\n}\n","var iterate = require('./lib/iterate.js')\n , initState = require('./lib/state.js')\n , terminator = require('./lib/terminator.js')\n ;\n\n// Public API\nmodule.exports = parallel;\n\n/**\n * Runs iterator over provided array elements in parallel\n *\n * @param {array|object} list - array or object (named list) to iterate over\n * @param {function} iterator - iterator to run\n * @param {function} callback - invoked when all elements processed\n * @returns {function} - jobs terminator\n */\nfunction parallel(list, iterator, callback)\n{\n var state = initState(list);\n\n while (state.index < (state['keyedList'] || list).length)\n {\n iterate(list, iterator, state, function(error, result)\n {\n if (error)\n {\n callback(error, result);\n return;\n }\n\n // looks like it's the last one\n if (Object.keys(state.jobs).length === 0)\n {\n callback(null, state.results);\n return;\n }\n });\n\n state.index++;\n }\n\n return terminator.bind(state, callback);\n}\n","var iterate = require('./lib/iterate.js')\n , initState = require('./lib/state.js')\n , terminator = require('./lib/terminator.js')\n ;\n\n// Public API\nmodule.exports = serialOrdered;\n// sorting helpers\nmodule.exports.ascending = ascending;\nmodule.exports.descending = descending;\n\n/**\n * Runs iterator over provided sorted array elements in series\n *\n * @param {array|object} list - array or object (named list) to iterate over\n * @param {function} iterator - iterator to run\n * @param {function} sortMethod - custom sort function\n * @param {function} callback - invoked when all elements processed\n * @returns {function} - jobs terminator\n */\nfunction serialOrdered(list, iterator, sortMethod, callback)\n{\n var state = initState(list, sortMethod);\n\n iterate(list, iterator, state, function iteratorHandler(error, result)\n {\n if (error)\n {\n callback(error, result);\n return;\n }\n\n state.index++;\n\n // are we there yet?\n if (state.index < (state['keyedList'] || list).length)\n {\n iterate(list, iterator, state, iteratorHandler);\n return;\n }\n\n // done here\n callback(null, state.results);\n });\n\n return terminator.bind(state, callback);\n}\n\n/*\n * -- Sort methods\n */\n\n/**\n * sort helper to sort array elements in ascending order\n *\n * @param {mixed} a - an item to compare\n * @param {mixed} b - an item to compare\n * @returns {number} - comparison result\n */\nfunction ascending(a, b)\n{\n return a < b ? -1 : a > b ? 1 : 0;\n}\n\n/**\n * sort helper to sort array elements in descending order\n *\n * @param {mixed} a - an item to compare\n * @param {mixed} b - an item to compare\n * @returns {number} - comparison result\n */\nfunction descending(a, b)\n{\n return -1 * ascending(a, b);\n}\n","var serialOrdered = require('./serialOrdered.js');\n\n// Public API\nmodule.exports = serial;\n\n/**\n * Runs iterator over provided array elements in series\n *\n * @param {array|object} list - array or object (named list) to iterate over\n * @param {function} iterator - iterator to run\n * @param {function} callback - invoked when all elements processed\n * @returns {function} - jobs terminator\n */\nfunction serial(list, iterator, callback)\n{\n return serialOrdered(list, iterator, null, callback);\n}\n","module.exports =\n{\n parallel : require('./parallel.js'),\n serial : require('./serial.js'),\n serialOrdered : require('./serialOrdered.js')\n};\n","'use strict';\n\n/** @type {import('.')} */\nmodule.exports = Object;\n","'use strict';\n\n/** @type {import('.')} */\nmodule.exports = Error;\n","'use strict';\n\n/** @type {import('./eval')} */\nmodule.exports = EvalError;\n","'use strict';\n\n/** @type {import('./range')} */\nmodule.exports = RangeError;\n","'use strict';\n\n/** @type {import('./ref')} */\nmodule.exports = ReferenceError;\n","'use strict';\n\n/** @type {import('./syntax')} */\nmodule.exports = SyntaxError;\n","'use strict';\n\n/** @type {import('./type')} */\nmodule.exports = TypeError;\n","'use strict';\n\n/** @type {import('./uri')} */\nmodule.exports = URIError;\n","'use strict';\n\n/** @type {import('./abs')} */\nmodule.exports = Math.abs;\n","'use strict';\n\n/** @type {import('./floor')} */\nmodule.exports = Math.floor;\n","'use strict';\n\n/** @type {import('./max')} */\nmodule.exports = Math.max;\n","'use strict';\n\n/** @type {import('./min')} */\nmodule.exports = Math.min;\n","'use strict';\n\n/** @type {import('./pow')} */\nmodule.exports = Math.pow;\n","'use strict';\n\n/** @type {import('./round')} */\nmodule.exports = Math.round;\n","'use strict';\n\n/** @type {import('./isNaN')} */\nmodule.exports = Number.isNaN || function isNaN(a) {\n\treturn a !== a;\n};\n","'use strict';\n\nvar $isNaN = require('./isNaN');\n\n/** @type {import('./sign')} */\nmodule.exports = function sign(number) {\n\tif ($isNaN(number) || number === 0) {\n\t\treturn number;\n\t}\n\treturn number < 0 ? -1 : +1;\n};\n","'use strict';\n\n/** @type {import('./gOPD')} */\nmodule.exports = Object.getOwnPropertyDescriptor;\n","'use strict';\n\n/** @type {import('.')} */\nvar $gOPD = require('./gOPD');\n\nif ($gOPD) {\n\ttry {\n\t\t$gOPD([], 'length');\n\t} catch (e) {\n\t\t// IE 8 has a broken gOPD\n\t\t$gOPD = null;\n\t}\n}\n\nmodule.exports = $gOPD;\n","'use strict';\n\n/** @type {import('.')} */\nvar $defineProperty = Object.defineProperty || false;\nif ($defineProperty) {\n\ttry {\n\t\t$defineProperty({}, 'a', { value: 1 });\n\t} catch (e) {\n\t\t// IE 8 has a broken defineProperty\n\t\t$defineProperty = false;\n\t}\n}\n\nmodule.exports = $defineProperty;\n","'use strict';\n\n/** @type {import('./shams')} */\n/* eslint complexity: [2, 18], max-statements: [2, 33] */\nmodule.exports = function hasSymbols() {\n\tif (typeof Symbol !== 'function' || typeof Object.getOwnPropertySymbols !== 'function') { return false; }\n\tif (typeof Symbol.iterator === 'symbol') { return true; }\n\n\t/** @type {{ [k in symbol]?: unknown }} */\n\tvar obj = {};\n\tvar sym = Symbol('test');\n\tvar symObj = Object(sym);\n\tif (typeof sym === 'string') { return false; }\n\n\tif (Object.prototype.toString.call(sym) !== '[object Symbol]') { return false; }\n\tif (Object.prototype.toString.call(symObj) !== '[object Symbol]') { return false; }\n\n\t// temp disabled per https://github.com/ljharb/object.assign/issues/17\n\t// if (sym instanceof Symbol) { return false; }\n\t// temp disabled per https://github.com/WebReflection/get-own-property-symbols/issues/4\n\t// if (!(symObj instanceof Symbol)) { return false; }\n\n\t// if (typeof Symbol.prototype.toString !== 'function') { return false; }\n\t// if (String(sym) !== Symbol.prototype.toString.call(sym)) { return false; }\n\n\tvar symVal = 42;\n\tobj[sym] = symVal;\n\tfor (var _ in obj) { return false; } // eslint-disable-line no-restricted-syntax, no-unreachable-loop\n\tif (typeof Object.keys === 'function' && Object.keys(obj).length !== 0) { return false; }\n\n\tif (typeof Object.getOwnPropertyNames === 'function' && Object.getOwnPropertyNames(obj).length !== 0) { return false; }\n\n\tvar syms = Object.getOwnPropertySymbols(obj);\n\tif (syms.length !== 1 || syms[0] !== sym) { return false; }\n\n\tif (!Object.prototype.propertyIsEnumerable.call(obj, sym)) { return false; }\n\n\tif (typeof Object.getOwnPropertyDescriptor === 'function') {\n\t\t// eslint-disable-next-line no-extra-parens\n\t\tvar descriptor = /** @type {PropertyDescriptor} */ (Object.getOwnPropertyDescriptor(obj, sym));\n\t\tif (descriptor.value !== symVal || descriptor.enumerable !== true) { return false; }\n\t}\n\n\treturn true;\n};\n","'use strict';\n\nvar origSymbol = typeof Symbol !== 'undefined' && Symbol;\nvar hasSymbolSham = require('./shams');\n\n/** @type {import('.')} */\nmodule.exports = function hasNativeSymbols() {\n\tif (typeof origSymbol !== 'function') { return false; }\n\tif (typeof Symbol !== 'function') { return false; }\n\tif (typeof origSymbol('foo') !== 'symbol') { return false; }\n\tif (typeof Symbol('bar') !== 'symbol') { return false; }\n\n\treturn hasSymbolSham();\n};\n","'use strict';\n\n/** @type {import('./Reflect.getPrototypeOf')} */\nmodule.exports = (typeof Reflect !== 'undefined' && Reflect.getPrototypeOf) || null;\n","'use strict';\n\nvar $Object = require('es-object-atoms');\n\n/** @type {import('./Object.getPrototypeOf')} */\nmodule.exports = $Object.getPrototypeOf || null;\n","'use strict';\n\n/* eslint no-invalid-this: 1 */\n\nvar ERROR_MESSAGE = 'Function.prototype.bind called on incompatible ';\nvar toStr = Object.prototype.toString;\nvar max = Math.max;\nvar funcType = '[object Function]';\n\nvar concatty = function concatty(a, b) {\n var arr = [];\n\n for (var i = 0; i < a.length; i += 1) {\n arr[i] = a[i];\n }\n for (var j = 0; j < b.length; j += 1) {\n arr[j + a.length] = b[j];\n }\n\n return arr;\n};\n\nvar slicy = function slicy(arrLike, offset) {\n var arr = [];\n for (var i = offset || 0, j = 0; i < arrLike.length; i += 1, j += 1) {\n arr[j] = arrLike[i];\n }\n return arr;\n};\n\nvar joiny = function (arr, joiner) {\n var str = '';\n for (var i = 0; i < arr.length; i += 1) {\n str += arr[i];\n if (i + 1 < arr.length) {\n str += joiner;\n }\n }\n return str;\n};\n\nmodule.exports = function bind(that) {\n var target = this;\n if (typeof target !== 'function' || toStr.apply(target) !== funcType) {\n throw new TypeError(ERROR_MESSAGE + target);\n }\n var args = slicy(arguments, 1);\n\n var bound;\n var binder = function () {\n if (this instanceof bound) {\n var result = target.apply(\n this,\n concatty(args, arguments)\n );\n if (Object(result) === result) {\n return result;\n }\n return this;\n }\n return target.apply(\n that,\n concatty(args, arguments)\n );\n\n };\n\n var boundLength = max(0, target.length - args.length);\n var boundArgs = [];\n for (var i = 0; i < boundLength; i++) {\n boundArgs[i] = '$' + i;\n }\n\n bound = Function('binder', 'return function (' + joiny(boundArgs, ',') + '){ return binder.apply(this,arguments); }')(binder);\n\n if (target.prototype) {\n var Empty = function Empty() {};\n Empty.prototype = target.prototype;\n bound.prototype = new Empty();\n Empty.prototype = null;\n }\n\n return bound;\n};\n","'use strict';\n\nvar implementation = require('./implementation');\n\nmodule.exports = Function.prototype.bind || implementation;\n","'use strict';\n\n/** @type {import('./functionCall')} */\nmodule.exports = Function.prototype.call;\n","'use strict';\n\n/** @type {import('./functionApply')} */\nmodule.exports = Function.prototype.apply;\n","'use strict';\n\n/** @type {import('./reflectApply')} */\nmodule.exports = typeof Reflect !== 'undefined' && Reflect && Reflect.apply;\n","'use strict';\n\nvar bind = require('function-bind');\n\nvar $apply = require('./functionApply');\nvar $call = require('./functionCall');\nvar $reflectApply = require('./reflectApply');\n\n/** @type {import('./actualApply')} */\nmodule.exports = $reflectApply || bind.call($call, $apply);\n","'use strict';\n\nvar bind = require('function-bind');\nvar $TypeError = require('es-errors/type');\n\nvar $call = require('./functionCall');\nvar $actualApply = require('./actualApply');\n\n/** @type {(args: [Function, thisArg?: unknown, ...args: unknown[]]) => Function} TODO FIXME, find a way to use import('.') */\nmodule.exports = function callBindBasic(args) {\n\tif (args.length < 1 || typeof args[0] !== 'function') {\n\t\tthrow new $TypeError('a function is required');\n\t}\n\treturn $actualApply(bind, $call, args);\n};\n","'use strict';\n\nvar callBind = require('call-bind-apply-helpers');\nvar gOPD = require('gopd');\n\nvar hasProtoAccessor;\ntry {\n\t// eslint-disable-next-line no-extra-parens, no-proto\n\thasProtoAccessor = /** @type {{ __proto__?: typeof Array.prototype }} */ ([]).__proto__ === Array.prototype;\n} catch (e) {\n\tif (!e || typeof e !== 'object' || !('code' in e) || e.code !== 'ERR_PROTO_ACCESS') {\n\t\tthrow e;\n\t}\n}\n\n// eslint-disable-next-line no-extra-parens\nvar desc = !!hasProtoAccessor && gOPD && gOPD(Object.prototype, /** @type {keyof typeof Object.prototype} */ ('__proto__'));\n\nvar $Object = Object;\nvar $getPrototypeOf = $Object.getPrototypeOf;\n\n/** @type {import('./get')} */\nmodule.exports = desc && typeof desc.get === 'function'\n\t? callBind([desc.get])\n\t: typeof $getPrototypeOf === 'function'\n\t\t? /** @type {import('./get')} */ function getDunder(value) {\n\t\t\t// eslint-disable-next-line eqeqeq\n\t\t\treturn $getPrototypeOf(value == null ? value : $Object(value));\n\t\t}\n\t\t: false;\n","'use strict';\n\nvar reflectGetProto = require('./Reflect.getPrototypeOf');\nvar originalGetProto = require('./Object.getPrototypeOf');\n\nvar getDunderProto = require('dunder-proto/get');\n\n/** @type {import('.')} */\nmodule.exports = reflectGetProto\n\t? function getProto(O) {\n\t\t// @ts-expect-error TS can't narrow inside a closure, for some reason\n\t\treturn reflectGetProto(O);\n\t}\n\t: originalGetProto\n\t\t? function getProto(O) {\n\t\t\tif (!O || (typeof O !== 'object' && typeof O !== 'function')) {\n\t\t\t\tthrow new TypeError('getProto: not an object');\n\t\t\t}\n\t\t\t// @ts-expect-error TS can't narrow inside a closure, for some reason\n\t\t\treturn originalGetProto(O);\n\t\t}\n\t\t: getDunderProto\n\t\t\t? function getProto(O) {\n\t\t\t\t// @ts-expect-error TS can't narrow inside a closure, for some reason\n\t\t\t\treturn getDunderProto(O);\n\t\t\t}\n\t\t\t: null;\n","'use strict';\n\nvar call = Function.prototype.call;\nvar $hasOwn = Object.prototype.hasOwnProperty;\nvar bind = require('function-bind');\n\n/** @type {import('.')} */\nmodule.exports = bind.call(call, $hasOwn);\n","'use strict';\n\nvar undefined;\n\nvar $Object = require('es-object-atoms');\n\nvar $Error = require('es-errors');\nvar $EvalError = require('es-errors/eval');\nvar $RangeError = require('es-errors/range');\nvar $ReferenceError = require('es-errors/ref');\nvar $SyntaxError = require('es-errors/syntax');\nvar $TypeError = require('es-errors/type');\nvar $URIError = require('es-errors/uri');\n\nvar abs = require('math-intrinsics/abs');\nvar floor = require('math-intrinsics/floor');\nvar max = require('math-intrinsics/max');\nvar min = require('math-intrinsics/min');\nvar pow = require('math-intrinsics/pow');\nvar round = require('math-intrinsics/round');\nvar sign = require('math-intrinsics/sign');\n\nvar $Function = Function;\n\n// eslint-disable-next-line consistent-return\nvar getEvalledConstructor = function (expressionSyntax) {\n\ttry {\n\t\treturn $Function('\"use strict\"; return (' + expressionSyntax + ').constructor;')();\n\t} catch (e) {}\n};\n\nvar $gOPD = require('gopd');\nvar $defineProperty = require('es-define-property');\n\nvar throwTypeError = function () {\n\tthrow new $TypeError();\n};\nvar ThrowTypeError = $gOPD\n\t? (function () {\n\t\ttry {\n\t\t\t// eslint-disable-next-line no-unused-expressions, no-caller, no-restricted-properties\n\t\t\targuments.callee; // IE 8 does not throw here\n\t\t\treturn throwTypeError;\n\t\t} catch (calleeThrows) {\n\t\t\ttry {\n\t\t\t\t// IE 8 throws on Object.getOwnPropertyDescriptor(arguments, '')\n\t\t\t\treturn $gOPD(arguments, 'callee').get;\n\t\t\t} catch (gOPDthrows) {\n\t\t\t\treturn throwTypeError;\n\t\t\t}\n\t\t}\n\t}())\n\t: throwTypeError;\n\nvar hasSymbols = require('has-symbols')();\n\nvar getProto = require('get-proto');\nvar $ObjectGPO = require('get-proto/Object.getPrototypeOf');\nvar $ReflectGPO = require('get-proto/Reflect.getPrototypeOf');\n\nvar $apply = require('call-bind-apply-helpers/functionApply');\nvar $call = require('call-bind-apply-helpers/functionCall');\n\nvar needsEval = {};\n\nvar TypedArray = typeof Uint8Array === 'undefined' || !getProto ? undefined : getProto(Uint8Array);\n\nvar INTRINSICS = {\n\t__proto__: null,\n\t'%AggregateError%': typeof AggregateError === 'undefined' ? undefined : AggregateError,\n\t'%Array%': Array,\n\t'%ArrayBuffer%': typeof ArrayBuffer === 'undefined' ? undefined : ArrayBuffer,\n\t'%ArrayIteratorPrototype%': hasSymbols && getProto ? getProto([][Symbol.iterator]()) : undefined,\n\t'%AsyncFromSyncIteratorPrototype%': undefined,\n\t'%AsyncFunction%': needsEval,\n\t'%AsyncGenerator%': needsEval,\n\t'%AsyncGeneratorFunction%': needsEval,\n\t'%AsyncIteratorPrototype%': needsEval,\n\t'%Atomics%': typeof Atomics === 'undefined' ? undefined : Atomics,\n\t'%BigInt%': typeof BigInt === 'undefined' ? undefined : BigInt,\n\t'%BigInt64Array%': typeof BigInt64Array === 'undefined' ? undefined : BigInt64Array,\n\t'%BigUint64Array%': typeof BigUint64Array === 'undefined' ? undefined : BigUint64Array,\n\t'%Boolean%': Boolean,\n\t'%DataView%': typeof DataView === 'undefined' ? undefined : DataView,\n\t'%Date%': Date,\n\t'%decodeURI%': decodeURI,\n\t'%decodeURIComponent%': decodeURIComponent,\n\t'%encodeURI%': encodeURI,\n\t'%encodeURIComponent%': encodeURIComponent,\n\t'%Error%': $Error,\n\t'%eval%': eval, // eslint-disable-line no-eval\n\t'%EvalError%': $EvalError,\n\t'%Float16Array%': typeof Float16Array === 'undefined' ? undefined : Float16Array,\n\t'%Float32Array%': typeof Float32Array === 'undefined' ? undefined : Float32Array,\n\t'%Float64Array%': typeof Float64Array === 'undefined' ? undefined : Float64Array,\n\t'%FinalizationRegistry%': typeof FinalizationRegistry === 'undefined' ? undefined : FinalizationRegistry,\n\t'%Function%': $Function,\n\t'%GeneratorFunction%': needsEval,\n\t'%Int8Array%': typeof Int8Array === 'undefined' ? undefined : Int8Array,\n\t'%Int16Array%': typeof Int16Array === 'undefined' ? undefined : Int16Array,\n\t'%Int32Array%': typeof Int32Array === 'undefined' ? undefined : Int32Array,\n\t'%isFinite%': isFinite,\n\t'%isNaN%': isNaN,\n\t'%IteratorPrototype%': hasSymbols && getProto ? getProto(getProto([][Symbol.iterator]())) : undefined,\n\t'%JSON%': typeof JSON === 'object' ? JSON : undefined,\n\t'%Map%': typeof Map === 'undefined' ? undefined : Map,\n\t'%MapIteratorPrototype%': typeof Map === 'undefined' || !hasSymbols || !getProto ? undefined : getProto(new Map()[Symbol.iterator]()),\n\t'%Math%': Math,\n\t'%Number%': Number,\n\t'%Object%': $Object,\n\t'%Object.getOwnPropertyDescriptor%': $gOPD,\n\t'%parseFloat%': parseFloat,\n\t'%parseInt%': parseInt,\n\t'%Promise%': typeof Promise === 'undefined' ? undefined : Promise,\n\t'%Proxy%': typeof Proxy === 'undefined' ? undefined : Proxy,\n\t'%RangeError%': $RangeError,\n\t'%ReferenceError%': $ReferenceError,\n\t'%Reflect%': typeof Reflect === 'undefined' ? undefined : Reflect,\n\t'%RegExp%': RegExp,\n\t'%Set%': typeof Set === 'undefined' ? undefined : Set,\n\t'%SetIteratorPrototype%': typeof Set === 'undefined' || !hasSymbols || !getProto ? undefined : getProto(new Set()[Symbol.iterator]()),\n\t'%SharedArrayBuffer%': typeof SharedArrayBuffer === 'undefined' ? undefined : SharedArrayBuffer,\n\t'%String%': String,\n\t'%StringIteratorPrototype%': hasSymbols && getProto ? getProto(''[Symbol.iterator]()) : undefined,\n\t'%Symbol%': hasSymbols ? Symbol : undefined,\n\t'%SyntaxError%': $SyntaxError,\n\t'%ThrowTypeError%': ThrowTypeError,\n\t'%TypedArray%': TypedArray,\n\t'%TypeError%': $TypeError,\n\t'%Uint8Array%': typeof Uint8Array === 'undefined' ? undefined : Uint8Array,\n\t'%Uint8ClampedArray%': typeof Uint8ClampedArray === 'undefined' ? undefined : Uint8ClampedArray,\n\t'%Uint16Array%': typeof Uint16Array === 'undefined' ? undefined : Uint16Array,\n\t'%Uint32Array%': typeof Uint32Array === 'undefined' ? undefined : Uint32Array,\n\t'%URIError%': $URIError,\n\t'%WeakMap%': typeof WeakMap === 'undefined' ? undefined : WeakMap,\n\t'%WeakRef%': typeof WeakRef === 'undefined' ? undefined : WeakRef,\n\t'%WeakSet%': typeof WeakSet === 'undefined' ? undefined : WeakSet,\n\n\t'%Function.prototype.call%': $call,\n\t'%Function.prototype.apply%': $apply,\n\t'%Object.defineProperty%': $defineProperty,\n\t'%Object.getPrototypeOf%': $ObjectGPO,\n\t'%Math.abs%': abs,\n\t'%Math.floor%': floor,\n\t'%Math.max%': max,\n\t'%Math.min%': min,\n\t'%Math.pow%': pow,\n\t'%Math.round%': round,\n\t'%Math.sign%': sign,\n\t'%Reflect.getPrototypeOf%': $ReflectGPO\n};\n\nif (getProto) {\n\ttry {\n\t\tnull.error; // eslint-disable-line no-unused-expressions\n\t} catch (e) {\n\t\t// https://github.com/tc39/proposal-shadowrealm/pull/384#issuecomment-1364264229\n\t\tvar errorProto = getProto(getProto(e));\n\t\tINTRINSICS['%Error.prototype%'] = errorProto;\n\t}\n}\n\nvar doEval = function doEval(name) {\n\tvar value;\n\tif (name === '%AsyncFunction%') {\n\t\tvalue = getEvalledConstructor('async function () {}');\n\t} else if (name === '%GeneratorFunction%') {\n\t\tvalue = getEvalledConstructor('function* () {}');\n\t} else if (name === '%AsyncGeneratorFunction%') {\n\t\tvalue = getEvalledConstructor('async function* () {}');\n\t} else if (name === '%AsyncGenerator%') {\n\t\tvar fn = doEval('%AsyncGeneratorFunction%');\n\t\tif (fn) {\n\t\t\tvalue = fn.prototype;\n\t\t}\n\t} else if (name === '%AsyncIteratorPrototype%') {\n\t\tvar gen = doEval('%AsyncGenerator%');\n\t\tif (gen && getProto) {\n\t\t\tvalue = getProto(gen.prototype);\n\t\t}\n\t}\n\n\tINTRINSICS[name] = value;\n\n\treturn value;\n};\n\nvar LEGACY_ALIASES = {\n\t__proto__: null,\n\t'%ArrayBufferPrototype%': ['ArrayBuffer', 'prototype'],\n\t'%ArrayPrototype%': ['Array', 'prototype'],\n\t'%ArrayProto_entries%': ['Array', 'prototype', 'entries'],\n\t'%ArrayProto_forEach%': ['Array', 'prototype', 'forEach'],\n\t'%ArrayProto_keys%': ['Array', 'prototype', 'keys'],\n\t'%ArrayProto_values%': ['Array', 'prototype', 'values'],\n\t'%AsyncFunctionPrototype%': ['AsyncFunction', 'prototype'],\n\t'%AsyncGenerator%': ['AsyncGeneratorFunction', 'prototype'],\n\t'%AsyncGeneratorPrototype%': ['AsyncGeneratorFunction', 'prototype', 'prototype'],\n\t'%BooleanPrototype%': ['Boolean', 'prototype'],\n\t'%DataViewPrototype%': ['DataView', 'prototype'],\n\t'%DatePrototype%': ['Date', 'prototype'],\n\t'%ErrorPrototype%': ['Error', 'prototype'],\n\t'%EvalErrorPrototype%': ['EvalError', 'prototype'],\n\t'%Float32ArrayPrototype%': ['Float32Array', 'prototype'],\n\t'%Float64ArrayPrototype%': ['Float64Array', 'prototype'],\n\t'%FunctionPrototype%': ['Function', 'prototype'],\n\t'%Generator%': ['GeneratorFunction', 'prototype'],\n\t'%GeneratorPrototype%': ['GeneratorFunction', 'prototype', 'prototype'],\n\t'%Int8ArrayPrototype%': ['Int8Array', 'prototype'],\n\t'%Int16ArrayPrototype%': ['Int16Array', 'prototype'],\n\t'%Int32ArrayPrototype%': ['Int32Array', 'prototype'],\n\t'%JSONParse%': ['JSON', 'parse'],\n\t'%JSONStringify%': ['JSON', 'stringify'],\n\t'%MapPrototype%': ['Map', 'prototype'],\n\t'%NumberPrototype%': ['Number', 'prototype'],\n\t'%ObjectPrototype%': ['Object', 'prototype'],\n\t'%ObjProto_toString%': ['Object', 'prototype', 'toString'],\n\t'%ObjProto_valueOf%': ['Object', 'prototype', 'valueOf'],\n\t'%PromisePrototype%': ['Promise', 'prototype'],\n\t'%PromiseProto_then%': ['Promise', 'prototype', 'then'],\n\t'%Promise_all%': ['Promise', 'all'],\n\t'%Promise_reject%': ['Promise', 'reject'],\n\t'%Promise_resolve%': ['Promise', 'resolve'],\n\t'%RangeErrorPrototype%': ['RangeError', 'prototype'],\n\t'%ReferenceErrorPrototype%': ['ReferenceError', 'prototype'],\n\t'%RegExpPrototype%': ['RegExp', 'prototype'],\n\t'%SetPrototype%': ['Set', 'prototype'],\n\t'%SharedArrayBufferPrototype%': ['SharedArrayBuffer', 'prototype'],\n\t'%StringPrototype%': ['String', 'prototype'],\n\t'%SymbolPrototype%': ['Symbol', 'prototype'],\n\t'%SyntaxErrorPrototype%': ['SyntaxError', 'prototype'],\n\t'%TypedArrayPrototype%': ['TypedArray', 'prototype'],\n\t'%TypeErrorPrototype%': ['TypeError', 'prototype'],\n\t'%Uint8ArrayPrototype%': ['Uint8Array', 'prototype'],\n\t'%Uint8ClampedArrayPrototype%': ['Uint8ClampedArray', 'prototype'],\n\t'%Uint16ArrayPrototype%': ['Uint16Array', 'prototype'],\n\t'%Uint32ArrayPrototype%': ['Uint32Array', 'prototype'],\n\t'%URIErrorPrototype%': ['URIError', 'prototype'],\n\t'%WeakMapPrototype%': ['WeakMap', 'prototype'],\n\t'%WeakSetPrototype%': ['WeakSet', 'prototype']\n};\n\nvar bind = require('function-bind');\nvar hasOwn = require('hasown');\nvar $concat = bind.call($call, Array.prototype.concat);\nvar $spliceApply = bind.call($apply, Array.prototype.splice);\nvar $replace = bind.call($call, String.prototype.replace);\nvar $strSlice = bind.call($call, String.prototype.slice);\nvar $exec = bind.call($call, RegExp.prototype.exec);\n\n/* adapted from https://github.com/lodash/lodash/blob/4.17.15/dist/lodash.js#L6735-L6744 */\nvar rePropName = /[^%.[\\]]+|\\[(?:(-?\\d+(?:\\.\\d+)?)|([\"'])((?:(?!\\2)[^\\\\]|\\\\.)*?)\\2)\\]|(?=(?:\\.|\\[\\])(?:\\.|\\[\\]|%$))/g;\nvar reEscapeChar = /\\\\(\\\\)?/g; /** Used to match backslashes in property paths. */\nvar stringToPath = function stringToPath(string) {\n\tvar first = $strSlice(string, 0, 1);\n\tvar last = $strSlice(string, -1);\n\tif (first === '%' && last !== '%') {\n\t\tthrow new $SyntaxError('invalid intrinsic syntax, expected closing `%`');\n\t} else if (last === '%' && first !== '%') {\n\t\tthrow new $SyntaxError('invalid intrinsic syntax, expected opening `%`');\n\t}\n\tvar result = [];\n\t$replace(string, rePropName, function (match, number, quote, subString) {\n\t\tresult[result.length] = quote ? $replace(subString, reEscapeChar, '$1') : number || match;\n\t});\n\treturn result;\n};\n/* end adaptation */\n\nvar getBaseIntrinsic = function getBaseIntrinsic(name, allowMissing) {\n\tvar intrinsicName = name;\n\tvar alias;\n\tif (hasOwn(LEGACY_ALIASES, intrinsicName)) {\n\t\talias = LEGACY_ALIASES[intrinsicName];\n\t\tintrinsicName = '%' + alias[0] + '%';\n\t}\n\n\tif (hasOwn(INTRINSICS, intrinsicName)) {\n\t\tvar value = INTRINSICS[intrinsicName];\n\t\tif (value === needsEval) {\n\t\t\tvalue = doEval(intrinsicName);\n\t\t}\n\t\tif (typeof value === 'undefined' && !allowMissing) {\n\t\t\tthrow new $TypeError('intrinsic ' + name + ' exists, but is not available. Please file an issue!');\n\t\t}\n\n\t\treturn {\n\t\t\talias: alias,\n\t\t\tname: intrinsicName,\n\t\t\tvalue: value\n\t\t};\n\t}\n\n\tthrow new $SyntaxError('intrinsic ' + name + ' does not exist!');\n};\n\nmodule.exports = function GetIntrinsic(name, allowMissing) {\n\tif (typeof name !== 'string' || name.length === 0) {\n\t\tthrow new $TypeError('intrinsic name must be a non-empty string');\n\t}\n\tif (arguments.length > 1 && typeof allowMissing !== 'boolean') {\n\t\tthrow new $TypeError('\"allowMissing\" argument must be a boolean');\n\t}\n\n\tif ($exec(/^%?[^%]*%?$/, name) === null) {\n\t\tthrow new $SyntaxError('`%` may not be present anywhere but at the beginning and end of the intrinsic name');\n\t}\n\tvar parts = stringToPath(name);\n\tvar intrinsicBaseName = parts.length > 0 ? parts[0] : '';\n\n\tvar intrinsic = getBaseIntrinsic('%' + intrinsicBaseName + '%', allowMissing);\n\tvar intrinsicRealName = intrinsic.name;\n\tvar value = intrinsic.value;\n\tvar skipFurtherCaching = false;\n\n\tvar alias = intrinsic.alias;\n\tif (alias) {\n\t\tintrinsicBaseName = alias[0];\n\t\t$spliceApply(parts, $concat([0, 1], alias));\n\t}\n\n\tfor (var i = 1, isOwn = true; i < parts.length; i += 1) {\n\t\tvar part = parts[i];\n\t\tvar first = $strSlice(part, 0, 1);\n\t\tvar last = $strSlice(part, -1);\n\t\tif (\n\t\t\t(\n\t\t\t\t(first === '\"' || first === \"'\" || first === '`')\n\t\t\t\t|| (last === '\"' || last === \"'\" || last === '`')\n\t\t\t)\n\t\t\t&& first !== last\n\t\t) {\n\t\t\tthrow new $SyntaxError('property names with quotes must have matching quotes');\n\t\t}\n\t\tif (part === 'constructor' || !isOwn) {\n\t\t\tskipFurtherCaching = true;\n\t\t}\n\n\t\tintrinsicBaseName += '.' + part;\n\t\tintrinsicRealName = '%' + intrinsicBaseName + '%';\n\n\t\tif (hasOwn(INTRINSICS, intrinsicRealName)) {\n\t\t\tvalue = INTRINSICS[intrinsicRealName];\n\t\t} else if (value != null) {\n\t\t\tif (!(part in value)) {\n\t\t\t\tif (!allowMissing) {\n\t\t\t\t\tthrow new $TypeError('base intrinsic for ' + name + ' exists, but the property is not available.');\n\t\t\t\t}\n\t\t\t\treturn void undefined;\n\t\t\t}\n\t\t\tif ($gOPD && (i + 1) >= parts.length) {\n\t\t\t\tvar desc = $gOPD(value, part);\n\t\t\t\tisOwn = !!desc;\n\n\t\t\t\t// By convention, when a data property is converted to an accessor\n\t\t\t\t// property to emulate a data property that does not suffer from\n\t\t\t\t// the override mistake, that accessor's getter is marked with\n\t\t\t\t// an `originalValue` property. Here, when we detect this, we\n\t\t\t\t// uphold the illusion by pretending to see that original data\n\t\t\t\t// property, i.e., returning the value rather than the getter\n\t\t\t\t// itself.\n\t\t\t\tif (isOwn && 'get' in desc && !('originalValue' in desc.get)) {\n\t\t\t\t\tvalue = desc.get;\n\t\t\t\t} else {\n\t\t\t\t\tvalue = value[part];\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tisOwn = hasOwn(value, part);\n\t\t\t\tvalue = value[part];\n\t\t\t}\n\n\t\t\tif (isOwn && !skipFurtherCaching) {\n\t\t\t\tINTRINSICS[intrinsicRealName] = value;\n\t\t\t}\n\t\t}\n\t}\n\treturn value;\n};\n","'use strict';\n\nvar hasSymbols = require('has-symbols/shams');\n\n/** @type {import('.')} */\nmodule.exports = function hasToStringTagShams() {\n\treturn hasSymbols() && !!Symbol.toStringTag;\n};\n","'use strict';\n\nvar GetIntrinsic = require('get-intrinsic');\n\nvar $defineProperty = GetIntrinsic('%Object.defineProperty%', true);\n\nvar hasToStringTag = require('has-tostringtag/shams')();\nvar hasOwn = require('hasown');\nvar $TypeError = require('es-errors/type');\n\nvar toStringTag = hasToStringTag ? Symbol.toStringTag : null;\n\n/** @type {import('.')} */\nmodule.exports = function setToStringTag(object, value) {\n\tvar overrideIfSet = arguments.length > 2 && !!arguments[2] && arguments[2].force;\n\tvar nonConfigurable = arguments.length > 2 && !!arguments[2] && arguments[2].nonConfigurable;\n\tif (\n\t\t(typeof overrideIfSet !== 'undefined' && typeof overrideIfSet !== 'boolean')\n\t\t|| (typeof nonConfigurable !== 'undefined' && typeof nonConfigurable !== 'boolean')\n\t) {\n\t\tthrow new $TypeError('if provided, the `overrideIfSet` and `nonConfigurable` options must be booleans');\n\t}\n\tif (toStringTag && (overrideIfSet || !hasOwn(object, toStringTag))) {\n\t\tif ($defineProperty) {\n\t\t\t$defineProperty(object, toStringTag, {\n\t\t\t\tconfigurable: !nonConfigurable,\n\t\t\t\tenumerable: false,\n\t\t\t\tvalue: value,\n\t\t\t\twritable: false\n\t\t\t});\n\t\t} else {\n\t\t\tobject[toStringTag] = value; // eslint-disable-line no-param-reassign\n\t\t}\n\t}\n};\n","'use strict';\n\n// populates missing values\nmodule.exports = function (dst, src) {\n Object.keys(src).forEach(function (prop) {\n dst[prop] = dst[prop] || src[prop]; // eslint-disable-line no-param-reassign\n });\n\n return dst;\n};\n","'use strict';\n\nvar CombinedStream = require('combined-stream');\nvar util = require('util');\nvar path = require('path');\nvar http = require('http');\nvar https = require('https');\nvar parseUrl = require('url').parse;\nvar fs = require('fs');\nvar Stream = require('stream').Stream;\nvar crypto = require('crypto');\nvar mime = require('mime-types');\nvar asynckit = require('asynckit');\nvar setToStringTag = require('es-set-tostringtag');\nvar hasOwn = require('hasown');\nvar populate = require('./populate.js');\n\n/**\n * Create readable \"multipart/form-data\" streams.\n * Can be used to submit forms\n * and file uploads to other web applications.\n *\n * @constructor\n * @param {object} options - Properties to be added/overriden for FormData and CombinedStream\n */\nfunction FormData(options) {\n if (!(this instanceof FormData)) {\n return new FormData(options);\n }\n\n this._overheadLength = 0;\n this._valueLength = 0;\n this._valuesToMeasure = [];\n\n CombinedStream.call(this);\n\n options = options || {}; // eslint-disable-line no-param-reassign\n for (var option in options) { // eslint-disable-line no-restricted-syntax\n this[option] = options[option];\n }\n}\n\n// make it a Stream\nutil.inherits(FormData, CombinedStream);\n\nFormData.LINE_BREAK = '\\r\\n';\nFormData.DEFAULT_CONTENT_TYPE = 'application/octet-stream';\n\nFormData.prototype.append = function (field, value, options) {\n options = options || {}; // eslint-disable-line no-param-reassign\n\n // allow filename as single option\n if (typeof options === 'string') {\n options = { filename: options }; // eslint-disable-line no-param-reassign\n }\n\n var append = CombinedStream.prototype.append.bind(this);\n\n // all that streamy business can't handle numbers\n if (typeof value === 'number' || value == null) {\n value = String(value); // eslint-disable-line no-param-reassign\n }\n\n // https://github.com/felixge/node-form-data/issues/38\n if (Array.isArray(value)) {\n /*\n * Please convert your array into string\n * the way web server expects it\n */\n this._error(new Error('Arrays are not supported.'));\n return;\n }\n\n var header = this._multiPartHeader(field, value, options);\n var footer = this._multiPartFooter();\n\n append(header);\n append(value);\n append(footer);\n\n // pass along options.knownLength\n this._trackLength(header, value, options);\n};\n\nFormData.prototype._trackLength = function (header, value, options) {\n var valueLength = 0;\n\n /*\n * used w/ getLengthSync(), when length is known.\n * e.g. for streaming directly from a remote server,\n * w/ a known file a size, and not wanting to wait for\n * incoming file to finish to get its size.\n */\n if (options.knownLength != null) {\n valueLength += Number(options.knownLength);\n } else if (Buffer.isBuffer(value)) {\n valueLength = value.length;\n } else if (typeof value === 'string') {\n valueLength = Buffer.byteLength(value);\n }\n\n this._valueLength += valueLength;\n\n // @check why add CRLF? does this account for custom/multiple CRLFs?\n this._overheadLength += Buffer.byteLength(header) + FormData.LINE_BREAK.length;\n\n // empty or either doesn't have path or not an http response or not a stream\n if (!value || (!value.path && !(value.readable && hasOwn(value, 'httpVersion')) && !(value instanceof Stream))) {\n return;\n }\n\n // no need to bother with the length\n if (!options.knownLength) {\n this._valuesToMeasure.push(value);\n }\n};\n\nFormData.prototype._lengthRetriever = function (value, callback) {\n if (hasOwn(value, 'fd')) {\n // take read range into a account\n // `end` = Infinity –> read file till the end\n //\n // TODO: Looks like there is bug in Node fs.createReadStream\n // it doesn't respect `end` options without `start` options\n // Fix it when node fixes it.\n // https://github.com/joyent/node/issues/7819\n if (value.end != undefined && value.end != Infinity && value.start != undefined) {\n // when end specified\n // no need to calculate range\n // inclusive, starts with 0\n callback(null, value.end + 1 - (value.start ? value.start : 0)); // eslint-disable-line callback-return\n\n // not that fast snoopy\n } else {\n // still need to fetch file size from fs\n fs.stat(value.path, function (err, stat) {\n if (err) {\n callback(err);\n return;\n }\n\n // update final size based on the range options\n var fileSize = stat.size - (value.start ? value.start : 0);\n callback(null, fileSize);\n });\n }\n\n // or http response\n } else if (hasOwn(value, 'httpVersion')) {\n callback(null, Number(value.headers['content-length'])); // eslint-disable-line callback-return\n\n // or request stream http://github.com/mikeal/request\n } else if (hasOwn(value, 'httpModule')) {\n // wait till response come back\n value.on('response', function (response) {\n value.pause();\n callback(null, Number(response.headers['content-length']));\n });\n value.resume();\n\n // something else\n } else {\n callback('Unknown stream'); // eslint-disable-line callback-return\n }\n};\n\nFormData.prototype._multiPartHeader = function (field, value, options) {\n /*\n * custom header specified (as string)?\n * it becomes responsible for boundary\n * (e.g. to handle extra CRLFs on .NET servers)\n */\n if (typeof options.header === 'string') {\n return options.header;\n }\n\n var contentDisposition = this._getContentDisposition(value, options);\n var contentType = this._getContentType(value, options);\n\n var contents = '';\n var headers = {\n // add custom disposition as third element or keep it two elements if not\n 'Content-Disposition': ['form-data', 'name=\"' + field + '\"'].concat(contentDisposition || []),\n // if no content type. allow it to be empty array\n 'Content-Type': [].concat(contentType || [])\n };\n\n // allow custom headers.\n if (typeof options.header === 'object') {\n populate(headers, options.header);\n }\n\n var header;\n for (var prop in headers) { // eslint-disable-line no-restricted-syntax\n if (hasOwn(headers, prop)) {\n header = headers[prop];\n\n // skip nullish headers.\n if (header == null) {\n continue; // eslint-disable-line no-restricted-syntax, no-continue\n }\n\n // convert all headers to arrays.\n if (!Array.isArray(header)) {\n header = [header];\n }\n\n // add non-empty headers.\n if (header.length) {\n contents += prop + ': ' + header.join('; ') + FormData.LINE_BREAK;\n }\n }\n }\n\n return '--' + this.getBoundary() + FormData.LINE_BREAK + contents + FormData.LINE_BREAK;\n};\n\nFormData.prototype._getContentDisposition = function (value, options) { // eslint-disable-line consistent-return\n var filename;\n\n if (typeof options.filepath === 'string') {\n // custom filepath for relative paths\n filename = path.normalize(options.filepath).replace(/\\\\/g, '/');\n } else if (options.filename || (value && (value.name || value.path))) {\n /*\n * custom filename take precedence\n * formidable and the browser add a name property\n * fs- and request- streams have path property\n */\n filename = path.basename(options.filename || (value && (value.name || value.path)));\n } else if (value && value.readable && hasOwn(value, 'httpVersion')) {\n // or try http response\n filename = path.basename(value.client._httpMessage.path || '');\n }\n\n if (filename) {\n return 'filename=\"' + filename + '\"';\n }\n};\n\nFormData.prototype._getContentType = function (value, options) {\n // use custom content-type above all\n var contentType = options.contentType;\n\n // or try `name` from formidable, browser\n if (!contentType && value && value.name) {\n contentType = mime.lookup(value.name);\n }\n\n // or try `path` from fs-, request- streams\n if (!contentType && value && value.path) {\n contentType = mime.lookup(value.path);\n }\n\n // or if it's http-reponse\n if (!contentType && value && value.readable && hasOwn(value, 'httpVersion')) {\n contentType = value.headers['content-type'];\n }\n\n // or guess it from the filepath or filename\n if (!contentType && (options.filepath || options.filename)) {\n contentType = mime.lookup(options.filepath || options.filename);\n }\n\n // fallback to the default content type if `value` is not simple value\n if (!contentType && value && typeof value === 'object') {\n contentType = FormData.DEFAULT_CONTENT_TYPE;\n }\n\n return contentType;\n};\n\nFormData.prototype._multiPartFooter = function () {\n return function (next) {\n var footer = FormData.LINE_BREAK;\n\n var lastPart = this._streams.length === 0;\n if (lastPart) {\n footer += this._lastBoundary();\n }\n\n next(footer);\n }.bind(this);\n};\n\nFormData.prototype._lastBoundary = function () {\n return '--' + this.getBoundary() + '--' + FormData.LINE_BREAK;\n};\n\nFormData.prototype.getHeaders = function (userHeaders) {\n var header;\n var formHeaders = {\n 'content-type': 'multipart/form-data; boundary=' + this.getBoundary()\n };\n\n for (header in userHeaders) { // eslint-disable-line no-restricted-syntax\n if (hasOwn(userHeaders, header)) {\n formHeaders[header.toLowerCase()] = userHeaders[header];\n }\n }\n\n return formHeaders;\n};\n\nFormData.prototype.setBoundary = function (boundary) {\n if (typeof boundary !== 'string') {\n throw new TypeError('FormData boundary must be a string');\n }\n this._boundary = boundary;\n};\n\nFormData.prototype.getBoundary = function () {\n if (!this._boundary) {\n this._generateBoundary();\n }\n\n return this._boundary;\n};\n\nFormData.prototype.getBuffer = function () {\n var dataBuffer = new Buffer.alloc(0); // eslint-disable-line new-cap\n var boundary = this.getBoundary();\n\n // Create the form content. Add Line breaks to the end of data.\n for (var i = 0, len = this._streams.length; i < len; i++) {\n if (typeof this._streams[i] !== 'function') {\n // Add content to the buffer.\n if (Buffer.isBuffer(this._streams[i])) {\n dataBuffer = Buffer.concat([dataBuffer, this._streams[i]]);\n } else {\n dataBuffer = Buffer.concat([dataBuffer, Buffer.from(this._streams[i])]);\n }\n\n // Add break after content.\n if (typeof this._streams[i] !== 'string' || this._streams[i].substring(2, boundary.length + 2) !== boundary) {\n dataBuffer = Buffer.concat([dataBuffer, Buffer.from(FormData.LINE_BREAK)]);\n }\n }\n }\n\n // Add the footer and return the Buffer object.\n return Buffer.concat([dataBuffer, Buffer.from(this._lastBoundary())]);\n};\n\nFormData.prototype._generateBoundary = function () {\n // This generates a 50 character boundary similar to those used by Firefox.\n\n // They are optimized for boyer-moore parsing.\n this._boundary = '--------------------------' + crypto.randomBytes(12).toString('hex');\n};\n\n// Note: getLengthSync DOESN'T calculate streams length\n// As workaround one can calculate file size manually and add it as knownLength option\nFormData.prototype.getLengthSync = function () {\n var knownLength = this._overheadLength + this._valueLength;\n\n // Don't get confused, there are 3 \"internal\" streams for each keyval pair so it basically checks if there is any value added to the form\n if (this._streams.length) {\n knownLength += this._lastBoundary().length;\n }\n\n // https://github.com/form-data/form-data/issues/40\n if (!this.hasKnownLength()) {\n /*\n * Some async length retrievers are present\n * therefore synchronous length calculation is false.\n * Please use getLength(callback) to get proper length\n */\n this._error(new Error('Cannot calculate proper length in synchronous way.'));\n }\n\n return knownLength;\n};\n\n// Public API to check if length of added values is known\n// https://github.com/form-data/form-data/issues/196\n// https://github.com/form-data/form-data/issues/262\nFormData.prototype.hasKnownLength = function () {\n var hasKnownLength = true;\n\n if (this._valuesToMeasure.length) {\n hasKnownLength = false;\n }\n\n return hasKnownLength;\n};\n\nFormData.prototype.getLength = function (cb) {\n var knownLength = this._overheadLength + this._valueLength;\n\n if (this._streams.length) {\n knownLength += this._lastBoundary().length;\n }\n\n if (!this._valuesToMeasure.length) {\n process.nextTick(cb.bind(this, null, knownLength));\n return;\n }\n\n asynckit.parallel(this._valuesToMeasure, this._lengthRetriever, function (err, values) {\n if (err) {\n cb(err);\n return;\n }\n\n values.forEach(function (length) {\n knownLength += length;\n });\n\n cb(null, knownLength);\n });\n};\n\nFormData.prototype.submit = function (params, cb) {\n var request;\n var options;\n var defaults = { method: 'post' };\n\n // parse provided url if it's string or treat it as options object\n if (typeof params === 'string') {\n params = parseUrl(params); // eslint-disable-line no-param-reassign\n /* eslint sort-keys: 0 */\n options = populate({\n port: params.port,\n path: params.pathname,\n host: params.hostname,\n protocol: params.protocol\n }, defaults);\n } else { // use custom params\n options = populate(params, defaults);\n // if no port provided use default one\n if (!options.port) {\n options.port = options.protocol === 'https:' ? 443 : 80;\n }\n }\n\n // put that good code in getHeaders to some use\n options.headers = this.getHeaders(params.headers);\n\n // https if specified, fallback to http in any other case\n if (options.protocol === 'https:') {\n request = https.request(options);\n } else {\n request = http.request(options);\n }\n\n // get content length and fire away\n this.getLength(function (err, length) {\n if (err && err !== 'Unknown stream') {\n this._error(err);\n return;\n }\n\n // add content length\n if (length) {\n request.setHeader('Content-Length', length);\n }\n\n this.pipe(request);\n if (cb) {\n var onResponse;\n\n var callback = function (error, responce) {\n request.removeListener('error', callback);\n request.removeListener('response', onResponse);\n\n return cb.call(this, error, responce);\n };\n\n onResponse = callback.bind(this, null);\n\n request.on('error', callback);\n request.on('response', onResponse);\n }\n }.bind(this));\n\n return request;\n};\n\nFormData.prototype._error = function (err) {\n if (!this.error) {\n this.error = err;\n this.pause();\n this.emit('error', err);\n }\n};\n\nFormData.prototype.toString = function () {\n return '[object FormData]';\n};\nsetToStringTag(FormData.prototype, 'FormData');\n\n// Public API\nmodule.exports = FormData;\n","import FormData from 'form-data';\n\nexport default FormData;\n","'use strict';\n\nimport utils from '../utils.js';\nimport AxiosError from '../core/AxiosError.js';\n// temporary hotfix to avoid circular references until AxiosURLSearchParams is refactored\nimport PlatformFormData from '../platform/node/classes/FormData.js';\n\n/**\n * Determines if the given thing is a array or js object.\n *\n * @param {string} thing - The object or array to be visited.\n *\n * @returns {boolean}\n */\nfunction isVisitable(thing) {\n return utils.isPlainObject(thing) || utils.isArray(thing);\n}\n\n/**\n * It removes the brackets from the end of a string\n *\n * @param {string} key - The key of the parameter.\n *\n * @returns {string} the key without the brackets.\n */\nfunction removeBrackets(key) {\n return utils.endsWith(key, '[]') ? key.slice(0, -2) : key;\n}\n\n/**\n * It takes a path, a key, and a boolean, and returns a string\n *\n * @param {string} path - The path to the current key.\n * @param {string} key - The key of the current object being iterated over.\n * @param {string} dots - If true, the key will be rendered with dots instead of brackets.\n *\n * @returns {string} The path to the current key.\n */\nfunction renderKey(path, key, dots) {\n if (!path) return key;\n return path.concat(key).map(function each(token, i) {\n // eslint-disable-next-line no-param-reassign\n token = removeBrackets(token);\n return !dots && i ? '[' + token + ']' : token;\n }).join(dots ? '.' : '');\n}\n\n/**\n * If the array is an array and none of its elements are visitable, then it's a flat array.\n *\n * @param {Array<any>} arr - The array to check\n *\n * @returns {boolean}\n */\nfunction isFlatArray(arr) {\n return utils.isArray(arr) && !arr.some(isVisitable);\n}\n\nconst predicates = utils.toFlatObject(utils, {}, null, function filter(prop) {\n return /^is[A-Z]/.test(prop);\n});\n\n/**\n * Convert a data object to FormData\n *\n * @param {Object} obj\n * @param {?Object} [formData]\n * @param {?Object} [options]\n * @param {Function} [options.visitor]\n * @param {Boolean} [options.metaTokens = true]\n * @param {Boolean} [options.dots = false]\n * @param {?Boolean} [options.indexes = false]\n *\n * @returns {Object}\n **/\n\n/**\n * It converts an object into a FormData object\n *\n * @param {Object<any, any>} obj - The object to convert to form data.\n * @param {string} formData - The FormData object to append to.\n * @param {Object<string, any>} options\n *\n * @returns\n */\nfunction toFormData(obj, formData, options) {\n if (!utils.isObject(obj)) {\n throw new TypeError('target must be an object');\n }\n\n // eslint-disable-next-line no-param-reassign\n formData = formData || new (PlatformFormData || FormData)();\n\n // eslint-disable-next-line no-param-reassign\n options = utils.toFlatObject(options, {\n metaTokens: true,\n dots: false,\n indexes: false\n }, false, function defined(option, source) {\n // eslint-disable-next-line no-eq-null,eqeqeq\n return !utils.isUndefined(source[option]);\n });\n\n const metaTokens = options.metaTokens;\n // eslint-disable-next-line no-use-before-define\n const visitor = options.visitor || defaultVisitor;\n const dots = options.dots;\n const indexes = options.indexes;\n const _Blob = options.Blob || typeof Blob !== 'undefined' && Blob;\n const useBlob = _Blob && utils.isSpecCompliantForm(formData);\n\n if (!utils.isFunction(visitor)) {\n throw new TypeError('visitor must be a function');\n }\n\n function convertValue(value) {\n if (value === null) return '';\n\n if (utils.isDate(value)) {\n return value.toISOString();\n }\n\n if (utils.isBoolean(value)) {\n return value.toString();\n }\n\n if (!useBlob && utils.isBlob(value)) {\n throw new AxiosError('Blob is not supported. Use a Buffer instead.');\n }\n\n if (utils.isArrayBuffer(value) || utils.isTypedArray(value)) {\n return useBlob && typeof Blob === 'function' ? new Blob([value]) : Buffer.from(value);\n }\n\n return value;\n }\n\n /**\n * Default visitor.\n *\n * @param {*} value\n * @param {String|Number} key\n * @param {Array<String|Number>} path\n * @this {FormData}\n *\n * @returns {boolean} return true to visit the each prop of the value recursively\n */\n function defaultVisitor(value, key, path) {\n let arr = value;\n\n if (value && !path && typeof value === 'object') {\n if (utils.endsWith(key, '{}')) {\n // eslint-disable-next-line no-param-reassign\n key = metaTokens ? key : key.slice(0, -2);\n // eslint-disable-next-line no-param-reassign\n value = JSON.stringify(value);\n } else if (\n (utils.isArray(value) && isFlatArray(value)) ||\n ((utils.isFileList(value) || utils.endsWith(key, '[]')) && (arr = utils.toArray(value))\n )) {\n // eslint-disable-next-line no-param-reassign\n key = removeBrackets(key);\n\n arr.forEach(function each(el, index) {\n !(utils.isUndefined(el) || el === null) && formData.append(\n // eslint-disable-next-line no-nested-ternary\n indexes === true ? renderKey([key], index, dots) : (indexes === null ? key : key + '[]'),\n convertValue(el)\n );\n });\n return false;\n }\n }\n\n if (isVisitable(value)) {\n return true;\n }\n\n formData.append(renderKey(path, key, dots), convertValue(value));\n\n return false;\n }\n\n const stack = [];\n\n const exposedHelpers = Object.assign(predicates, {\n defaultVisitor,\n convertValue,\n isVisitable\n });\n\n function build(value, path) {\n if (utils.isUndefined(value)) return;\n\n if (stack.indexOf(value) !== -1) {\n throw Error('Circular reference detected in ' + path.join('.'));\n }\n\n stack.push(value);\n\n utils.forEach(value, function each(el, key) {\n const result = !(utils.isUndefined(el) || el === null) && visitor.call(\n formData, el, utils.isString(key) ? key.trim() : key, path, exposedHelpers\n );\n\n if (result === true) {\n build(el, path ? path.concat(key) : [key]);\n }\n });\n\n stack.pop();\n }\n\n if (!utils.isObject(obj)) {\n throw new TypeError('data must be an object');\n }\n\n build(obj);\n\n return formData;\n}\n\nexport default toFormData;\n","'use strict';\n\nimport toFormData from './toFormData.js';\n\n/**\n * It encodes a string by replacing all characters that are not in the unreserved set with\n * their percent-encoded equivalents\n *\n * @param {string} str - The string to encode.\n *\n * @returns {string} The encoded string.\n */\nfunction encode(str) {\n const charMap = {\n '!': '%21',\n \"'\": '%27',\n '(': '%28',\n ')': '%29',\n '~': '%7E',\n '%20': '+',\n '%00': '\\x00'\n };\n return encodeURIComponent(str).replace(/[!'()~]|%20|%00/g, function replacer(match) {\n return charMap[match];\n });\n}\n\n/**\n * It takes a params object and converts it to a FormData object\n *\n * @param {Object<string, any>} params - The parameters to be converted to a FormData object.\n * @param {Object<string, any>} options - The options object passed to the Axios constructor.\n *\n * @returns {void}\n */\nfunction AxiosURLSearchParams(params, options) {\n this._pairs = [];\n\n params && toFormData(params, this, options);\n}\n\nconst prototype = AxiosURLSearchParams.prototype;\n\nprototype.append = function append(name, value) {\n this._pairs.push([name, value]);\n};\n\nprototype.toString = function toString(encoder) {\n const _encode = encoder ? function(value) {\n return encoder.call(this, value, encode);\n } : encode;\n\n return this._pairs.map(function each(pair) {\n return _encode(pair[0]) + '=' + _encode(pair[1]);\n }, '').join('&');\n};\n\nexport default AxiosURLSearchParams;\n","'use strict';\n\nimport utils from '../utils.js';\nimport AxiosURLSearchParams from '../helpers/AxiosURLSearchParams.js';\n\n/**\n * It replaces all instances of the characters `:`, `$`, `,`, `+`, `[`, and `]` with their\n * URI encoded counterparts\n *\n * @param {string} val The value to be encoded.\n *\n * @returns {string} The encoded value.\n */\nfunction encode(val) {\n return encodeURIComponent(val).\n replace(/%3A/gi, ':').\n replace(/%24/g, '$').\n replace(/%2C/gi, ',').\n replace(/%20/g, '+');\n}\n\n/**\n * Build a URL by appending params to the end\n *\n * @param {string} url The base of the url (e.g., http://www.google.com)\n * @param {object} [params] The params to be appended\n * @param {?(object|Function)} options\n *\n * @returns {string} The formatted url\n */\nexport default function buildURL(url, params, options) {\n /*eslint no-param-reassign:0*/\n if (!params) {\n return url;\n }\n \n const _encode = options && options.encode || encode;\n\n if (utils.isFunction(options)) {\n options = {\n serialize: options\n };\n } \n\n const serializeFn = options && options.serialize;\n\n let serializedParams;\n\n if (serializeFn) {\n serializedParams = serializeFn(params, options);\n } else {\n serializedParams = utils.isURLSearchParams(params) ?\n params.toString() :\n new AxiosURLSearchParams(params, options).toString(_encode);\n }\n\n if (serializedParams) {\n const hashmarkIndex = url.indexOf(\"#\");\n\n if (hashmarkIndex !== -1) {\n url = url.slice(0, hashmarkIndex);\n }\n url += (url.indexOf('?') === -1 ? '?' : '&') + serializedParams;\n }\n\n return url;\n}\n","'use strict';\n\nimport utils from './../utils.js';\n\nclass InterceptorManager {\n constructor() {\n this.handlers = [];\n }\n\n /**\n * Add a new interceptor to the stack\n *\n * @param {Function} fulfilled The function to handle `then` for a `Promise`\n * @param {Function} rejected The function to handle `reject` for a `Promise`\n *\n * @return {Number} An ID used to remove interceptor later\n */\n use(fulfilled, rejected, options) {\n this.handlers.push({\n fulfilled,\n rejected,\n synchronous: options ? options.synchronous : false,\n runWhen: options ? options.runWhen : null\n });\n return this.handlers.length - 1;\n }\n\n /**\n * Remove an interceptor from the stack\n *\n * @param {Number} id The ID that was returned by `use`\n *\n * @returns {void}\n */\n eject(id) {\n if (this.handlers[id]) {\n this.handlers[id] = null;\n }\n }\n\n /**\n * Clear all interceptors from the stack\n *\n * @returns {void}\n */\n clear() {\n if (this.handlers) {\n this.handlers = [];\n }\n }\n\n /**\n * Iterate over all the registered interceptors\n *\n * This method is particularly useful for skipping over any\n * interceptors that may have become `null` calling `eject`.\n *\n * @param {Function} fn The function to call for each interceptor\n *\n * @returns {void}\n */\n forEach(fn) {\n utils.forEach(this.handlers, function forEachHandler(h) {\n if (h !== null) {\n fn(h);\n }\n });\n }\n}\n\nexport default InterceptorManager;\n","'use strict';\n\nexport default {\n silentJSONParsing: true,\n forcedJSONParsing: true,\n clarifyTimeoutError: false\n};\n","'use strict';\n\nimport url from 'url';\nexport default url.URLSearchParams;\n","import crypto from 'crypto';\nimport URLSearchParams from './classes/URLSearchParams.js'\nimport FormData from './classes/FormData.js'\n\nconst ALPHA = 'abcdefghijklmnopqrstuvwxyz'\n\nconst DIGIT = '0123456789';\n\nconst ALPHABET = {\n DIGIT,\n ALPHA,\n ALPHA_DIGIT: ALPHA + ALPHA.toUpperCase() + DIGIT\n}\n\nconst generateString = (size = 16, alphabet = ALPHABET.ALPHA_DIGIT) => {\n let str = '';\n const {length} = alphabet;\n const randomValues = new Uint32Array(size);\n crypto.randomFillSync(randomValues);\n for (let i = 0; i < size; i++) {\n str += alphabet[randomValues[i] % length];\n }\n\n return str;\n}\n\n\nexport default {\n isNode: true,\n classes: {\n URLSearchParams,\n FormData,\n Blob: typeof Blob !== 'undefined' && Blob || null\n },\n ALPHABET,\n generateString,\n protocols: [ 'http', 'https', 'file', 'data' ]\n};\n","const hasBrowserEnv = typeof window !== 'undefined' && typeof document !== 'undefined';\n\nconst _navigator = typeof navigator === 'object' && navigator || undefined;\n\n/**\n * Determine if we're running in a standard browser environment\n *\n * This allows axios to run in a web worker, and react-native.\n * Both environments support XMLHttpRequest, but not fully standard globals.\n *\n * web workers:\n * typeof window -> undefined\n * typeof document -> undefined\n *\n * react-native:\n * navigator.product -> 'ReactNative'\n * nativescript\n * navigator.product -> 'NativeScript' or 'NS'\n *\n * @returns {boolean}\n */\nconst hasStandardBrowserEnv = hasBrowserEnv &&\n (!_navigator || ['ReactNative', 'NativeScript', 'NS'].indexOf(_navigator.product) < 0);\n\n/**\n * Determine if we're running in a standard browser webWorker environment\n *\n * Although the `isStandardBrowserEnv` method indicates that\n * `allows axios to run in a web worker`, the WebWorker will still be\n * filtered out due to its judgment standard\n * `typeof window !== 'undefined' && typeof document !== 'undefined'`.\n * This leads to a problem when axios post `FormData` in webWorker\n */\nconst hasStandardBrowserWebWorkerEnv = (() => {\n return (\n typeof WorkerGlobalScope !== 'undefined' &&\n // eslint-disable-next-line no-undef\n self instanceof WorkerGlobalScope &&\n typeof self.importScripts === 'function'\n );\n})();\n\nconst origin = hasBrowserEnv && window.location.href || 'http://localhost';\n\nexport {\n hasBrowserEnv,\n hasStandardBrowserWebWorkerEnv,\n hasStandardBrowserEnv,\n _navigator as navigator,\n origin\n}\n","import platform from './node/index.js';\nimport * as utils from './common/utils.js';\n\nexport default {\n ...utils,\n ...platform\n}\n","'use strict';\n\nimport utils from '../utils.js';\nimport toFormData from './toFormData.js';\nimport platform from '../platform/index.js';\n\nexport default function toURLEncodedForm(data, options) {\n return toFormData(data, new platform.classes.URLSearchParams(), {\n visitor: function(value, key, path, helpers) {\n if (platform.isNode && utils.isBuffer(value)) {\n this.append(key, value.toString('base64'));\n return false;\n }\n\n return helpers.defaultVisitor.apply(this, arguments);\n },\n ...options\n });\n}\n","'use strict';\n\nimport utils from '../utils.js';\n\n/**\n * It takes a string like `foo[x][y][z]` and returns an array like `['foo', 'x', 'y', 'z']\n *\n * @param {string} name - The name of the property to get.\n *\n * @returns An array of strings.\n */\nfunction parsePropPath(name) {\n // foo[x][y][z]\n // foo.x.y.z\n // foo-x-y-z\n // foo x y z\n return utils.matchAll(/\\w+|\\[(\\w*)]/g, name).map(match => {\n return match[0] === '[]' ? '' : match[1] || match[0];\n });\n}\n\n/**\n * Convert an array to an object.\n *\n * @param {Array<any>} arr - The array to convert to an object.\n *\n * @returns An object with the same keys and values as the array.\n */\nfunction arrayToObject(arr) {\n const obj = {};\n const keys = Object.keys(arr);\n let i;\n const len = keys.length;\n let key;\n for (i = 0; i < len; i++) {\n key = keys[i];\n obj[key] = arr[key];\n }\n return obj;\n}\n\n/**\n * It takes a FormData object and returns a JavaScript object\n *\n * @param {string} formData The FormData object to convert to JSON.\n *\n * @returns {Object<string, any> | null} The converted object.\n */\nfunction formDataToJSON(formData) {\n function buildPath(path, value, target, index) {\n let name = path[index++];\n\n if (name === '__proto__') return true;\n\n const isNumericKey = Number.isFinite(+name);\n const isLast = index >= path.length;\n name = !name && utils.isArray(target) ? target.length : name;\n\n if (isLast) {\n if (utils.hasOwnProp(target, name)) {\n target[name] = [target[name], value];\n } else {\n target[name] = value;\n }\n\n return !isNumericKey;\n }\n\n if (!target[name] || !utils.isObject(target[name])) {\n target[name] = [];\n }\n\n const result = buildPath(path, value, target[name], index);\n\n if (result && utils.isArray(target[name])) {\n target[name] = arrayToObject(target[name]);\n }\n\n return !isNumericKey;\n }\n\n if (utils.isFormData(formData) && utils.isFunction(formData.entries)) {\n const obj = {};\n\n utils.forEachEntry(formData, (name, value) => {\n buildPath(parsePropPath(name), value, obj, 0);\n });\n\n return obj;\n }\n\n return null;\n}\n\nexport default formDataToJSON;\n","'use strict';\n\nimport utils from '../utils.js';\nimport AxiosError from '../core/AxiosError.js';\nimport transitionalDefaults from './transitional.js';\nimport toFormData from '../helpers/toFormData.js';\nimport toURLEncodedForm from '../helpers/toURLEncodedForm.js';\nimport platform from '../platform/index.js';\nimport formDataToJSON from '../helpers/formDataToJSON.js';\n\n/**\n * It takes a string, tries to parse it, and if it fails, it returns the stringified version\n * of the input\n *\n * @param {any} rawValue - The value to be stringified.\n * @param {Function} parser - A function that parses a string into a JavaScript object.\n * @param {Function} encoder - A function that takes a value and returns a string.\n *\n * @returns {string} A stringified version of the rawValue.\n */\nfunction stringifySafely(rawValue, parser, encoder) {\n if (utils.isString(rawValue)) {\n try {\n (parser || JSON.parse)(rawValue);\n return utils.trim(rawValue);\n } catch (e) {\n if (e.name !== 'SyntaxError') {\n throw e;\n }\n }\n }\n\n return (encoder || JSON.stringify)(rawValue);\n}\n\nconst defaults = {\n\n transitional: transitionalDefaults,\n\n adapter: ['xhr', 'http', 'fetch'],\n\n transformRequest: [function transformRequest(data, headers) {\n const contentType = headers.getContentType() || '';\n const hasJSONContentType = contentType.indexOf('application/json') > -1;\n const isObjectPayload = utils.isObject(data);\n\n if (isObjectPayload && utils.isHTMLForm(data)) {\n data = new FormData(data);\n }\n\n const isFormData = utils.isFormData(data);\n\n if (isFormData) {\n return hasJSONContentType ? JSON.stringify(formDataToJSON(data)) : data;\n }\n\n if (utils.isArrayBuffer(data) ||\n utils.isBuffer(data) ||\n utils.isStream(data) ||\n utils.isFile(data) ||\n utils.isBlob(data) ||\n utils.isReadableStream(data)\n ) {\n return data;\n }\n if (utils.isArrayBufferView(data)) {\n return data.buffer;\n }\n if (utils.isURLSearchParams(data)) {\n headers.setContentType('application/x-www-form-urlencoded;charset=utf-8', false);\n return data.toString();\n }\n\n let isFileList;\n\n if (isObjectPayload) {\n if (contentType.indexOf('application/x-www-form-urlencoded') > -1) {\n return toURLEncodedForm(data, this.formSerializer).toString();\n }\n\n if ((isFileList = utils.isFileList(data)) || contentType.indexOf('multipart/form-data') > -1) {\n const _FormData = this.env && this.env.FormData;\n\n return toFormData(\n isFileList ? {'files[]': data} : data,\n _FormData && new _FormData(),\n this.formSerializer\n );\n }\n }\n\n if (isObjectPayload || hasJSONContentType ) {\n headers.setContentType('application/json', false);\n return stringifySafely(data);\n }\n\n return data;\n }],\n\n transformResponse: [function transformResponse(data) {\n const transitional = this.transitional || defaults.transitional;\n const forcedJSONParsing = transitional && transitional.forcedJSONParsing;\n const JSONRequested = this.responseType === 'json';\n\n if (utils.isResponse(data) || utils.isReadableStream(data)) {\n return data;\n }\n\n if (data && utils.isString(data) && ((forcedJSONParsing && !this.responseType) || JSONRequested)) {\n const silentJSONParsing = transitional && transitional.silentJSONParsing;\n const strictJSONParsing = !silentJSONParsing && JSONRequested;\n\n try {\n return JSON.parse(data, this.parseReviver);\n } catch (e) {\n if (strictJSONParsing) {\n if (e.name === 'SyntaxError') {\n throw AxiosError.from(e, AxiosError.ERR_BAD_RESPONSE, this, null, this.response);\n }\n throw e;\n }\n }\n }\n\n return data;\n }],\n\n /**\n * A timeout in milliseconds to abort a request. If set to 0 (default) a\n * timeout is not created.\n */\n timeout: 0,\n\n xsrfCookieName: 'XSRF-TOKEN',\n xsrfHeaderName: 'X-XSRF-TOKEN',\n\n maxContentLength: -1,\n maxBodyLength: -1,\n\n env: {\n FormData: platform.classes.FormData,\n Blob: platform.classes.Blob\n },\n\n validateStatus: function validateStatus(status) {\n return status >= 200 && status < 300;\n },\n\n headers: {\n common: {\n 'Accept': 'application/json, text/plain, */*',\n 'Content-Type': undefined\n }\n }\n};\n\nutils.forEach(['delete', 'get', 'head', 'post', 'put', 'patch'], (method) => {\n defaults.headers[method] = {};\n});\n\nexport default defaults;\n","'use strict';\n\nimport utils from './../utils.js';\n\n// RawAxiosHeaders whose duplicates are ignored by node\n// c.f. https://nodejs.org/api/http.html#http_message_headers\nconst ignoreDuplicateOf = utils.toObjectSet([\n 'age', 'authorization', 'content-length', 'content-type', 'etag',\n 'expires', 'from', 'host', 'if-modified-since', 'if-unmodified-since',\n 'last-modified', 'location', 'max-forwards', 'proxy-authorization',\n 'referer', 'retry-after', 'user-agent'\n]);\n\n/**\n * Parse headers into an object\n *\n * ```\n * Date: Wed, 27 Aug 2014 08:58:49 GMT\n * Content-Type: application/json\n * Connection: keep-alive\n * Transfer-Encoding: chunked\n * ```\n *\n * @param {String} rawHeaders Headers needing to be parsed\n *\n * @returns {Object} Headers parsed into an object\n */\nexport default rawHeaders => {\n const parsed = {};\n let key;\n let val;\n let i;\n\n rawHeaders && rawHeaders.split('\\n').forEach(function parser(line) {\n i = line.indexOf(':');\n key = line.substring(0, i).trim().toLowerCase();\n val = line.substring(i + 1).trim();\n\n if (!key || (parsed[key] && ignoreDuplicateOf[key])) {\n return;\n }\n\n if (key === 'set-cookie') {\n if (parsed[key]) {\n parsed[key].push(val);\n } else {\n parsed[key] = [val];\n }\n } else {\n parsed[key] = parsed[key] ? parsed[key] + ', ' + val : val;\n }\n });\n\n return parsed;\n};\n","'use strict';\n\nimport utils from '../utils.js';\nimport parseHeaders from '../helpers/parseHeaders.js';\n\nconst $internals = Symbol('internals');\n\nfunction normalizeHeader(header) {\n return header && String(header).trim().toLowerCase();\n}\n\nfunction normalizeValue(value) {\n if (value === false || value == null) {\n return value;\n }\n\n return utils.isArray(value) ? value.map(normalizeValue) : String(value);\n}\n\nfunction parseTokens(str) {\n const tokens = Object.create(null);\n const tokensRE = /([^\\s,;=]+)\\s*(?:=\\s*([^,;]+))?/g;\n let match;\n\n while ((match = tokensRE.exec(str))) {\n tokens[match[1]] = match[2];\n }\n\n return tokens;\n}\n\nconst isValidHeaderName = (str) => /^[-_a-zA-Z0-9^`|~,!#$%&'*+.]+$/.test(str.trim());\n\nfunction matchHeaderValue(context, value, header, filter, isHeaderNameFilter) {\n if (utils.isFunction(filter)) {\n return filter.call(this, value, header);\n }\n\n if (isHeaderNameFilter) {\n value = header;\n }\n\n if (!utils.isString(value)) return;\n\n if (utils.isString(filter)) {\n return value.indexOf(filter) !== -1;\n }\n\n if (utils.isRegExp(filter)) {\n return filter.test(value);\n }\n}\n\nfunction formatHeader(header) {\n return header.trim()\n .toLowerCase().replace(/([a-z\\d])(\\w*)/g, (w, char, str) => {\n return char.toUpperCase() + str;\n });\n}\n\nfunction buildAccessors(obj, header) {\n const accessorName = utils.toCamelCase(' ' + header);\n\n ['get', 'set', 'has'].forEach(methodName => {\n Object.defineProperty(obj, methodName + accessorName, {\n value: function(arg1, arg2, arg3) {\n return this[methodName].call(this, header, arg1, arg2, arg3);\n },\n configurable: true\n });\n });\n}\n\nclass AxiosHeaders {\n constructor(headers) {\n headers && this.set(headers);\n }\n\n set(header, valueOrRewrite, rewrite) {\n const self = this;\n\n function setHeader(_value, _header, _rewrite) {\n const lHeader = normalizeHeader(_header);\n\n if (!lHeader) {\n throw new Error('header name must be a non-empty string');\n }\n\n const key = utils.findKey(self, lHeader);\n\n if(!key || self[key] === undefined || _rewrite === true || (_rewrite === undefined && self[key] !== false)) {\n self[key || _header] = normalizeValue(_value);\n }\n }\n\n const setHeaders = (headers, _rewrite) =>\n utils.forEach(headers, (_value, _header) => setHeader(_value, _header, _rewrite));\n\n if (utils.isPlainObject(header) || header instanceof this.constructor) {\n setHeaders(header, valueOrRewrite)\n } else if(utils.isString(header) && (header = header.trim()) && !isValidHeaderName(header)) {\n setHeaders(parseHeaders(header), valueOrRewrite);\n } else if (utils.isObject(header) && utils.isIterable(header)) {\n let obj = {}, dest, key;\n for (const entry of header) {\n if (!utils.isArray(entry)) {\n throw TypeError('Object iterator must return a key-value pair');\n }\n\n obj[key = entry[0]] = (dest = obj[key]) ?\n (utils.isArray(dest) ? [...dest, entry[1]] : [dest, entry[1]]) : entry[1];\n }\n\n setHeaders(obj, valueOrRewrite)\n } else {\n header != null && setHeader(valueOrRewrite, header, rewrite);\n }\n\n return this;\n }\n\n get(header, parser) {\n header = normalizeHeader(header);\n\n if (header) {\n const key = utils.findKey(this, header);\n\n if (key) {\n const value = this[key];\n\n if (!parser) {\n return value;\n }\n\n if (parser === true) {\n return parseTokens(value);\n }\n\n if (utils.isFunction(parser)) {\n return parser.call(this, value, key);\n }\n\n if (utils.isRegExp(parser)) {\n return parser.exec(value);\n }\n\n throw new TypeError('parser must be boolean|regexp|function');\n }\n }\n }\n\n has(header, matcher) {\n header = normalizeHeader(header);\n\n if (header) {\n const key = utils.findKey(this, header);\n\n return !!(key && this[key] !== undefined && (!matcher || matchHeaderValue(this, this[key], key, matcher)));\n }\n\n return false;\n }\n\n delete(header, matcher) {\n const self = this;\n let deleted = false;\n\n function deleteHeader(_header) {\n _header = normalizeHeader(_header);\n\n if (_header) {\n const key = utils.findKey(self, _header);\n\n if (key && (!matcher || matchHeaderValue(self, self[key], key, matcher))) {\n delete self[key];\n\n deleted = true;\n }\n }\n }\n\n if (utils.isArray(header)) {\n header.forEach(deleteHeader);\n } else {\n deleteHeader(header);\n }\n\n return deleted;\n }\n\n clear(matcher) {\n const keys = Object.keys(this);\n let i = keys.length;\n let deleted = false;\n\n while (i--) {\n const key = keys[i];\n if(!matcher || matchHeaderValue(this, this[key], key, matcher, true)) {\n delete this[key];\n deleted = true;\n }\n }\n\n return deleted;\n }\n\n normalize(format) {\n const self = this;\n const headers = {};\n\n utils.forEach(this, (value, header) => {\n const key = utils.findKey(headers, header);\n\n if (key) {\n self[key] = normalizeValue(value);\n delete self[header];\n return;\n }\n\n const normalized = format ? formatHeader(header) : String(header).trim();\n\n if (normalized !== header) {\n delete self[header];\n }\n\n self[normalized] = normalizeValue(value);\n\n headers[normalized] = true;\n });\n\n return this;\n }\n\n concat(...targets) {\n return this.constructor.concat(this, ...targets);\n }\n\n toJSON(asStrings) {\n const obj = Object.create(null);\n\n utils.forEach(this, (value, header) => {\n value != null && value !== false && (obj[header] = asStrings && utils.isArray(value) ? value.join(', ') : value);\n });\n\n return obj;\n }\n\n [Symbol.iterator]() {\n return Object.entries(this.toJSON())[Symbol.iterator]();\n }\n\n toString() {\n return Object.entries(this.toJSON()).map(([header, value]) => header + ': ' + value).join('\\n');\n }\n\n getSetCookie() {\n return this.get(\"set-cookie\") || [];\n }\n\n get [Symbol.toStringTag]() {\n return 'AxiosHeaders';\n }\n\n static from(thing) {\n return thing instanceof this ? thing : new this(thing);\n }\n\n static concat(first, ...targets) {\n const computed = new this(first);\n\n targets.forEach((target) => computed.set(target));\n\n return computed;\n }\n\n static accessor(header) {\n const internals = this[$internals] = (this[$internals] = {\n accessors: {}\n });\n\n const accessors = internals.accessors;\n const prototype = this.prototype;\n\n function defineAccessor(_header) {\n const lHeader = normalizeHeader(_header);\n\n if (!accessors[lHeader]) {\n buildAccessors(prototype, _header);\n accessors[lHeader] = true;\n }\n }\n\n utils.isArray(header) ? header.forEach(defineAccessor) : defineAccessor(header);\n\n return this;\n }\n}\n\nAxiosHeaders.accessor(['Content-Type', 'Content-Length', 'Accept', 'Accept-Encoding', 'User-Agent', 'Authorization']);\n\n// reserved names hotfix\nutils.reduceDescriptors(AxiosHeaders.prototype, ({value}, key) => {\n let mapped = key[0].toUpperCase() + key.slice(1); // map `set` => `Set`\n return {\n get: () => value,\n set(headerValue) {\n this[mapped] = headerValue;\n }\n }\n});\n\nutils.freezeMethods(AxiosHeaders);\n\nexport default AxiosHeaders;\n","'use strict';\n\nimport utils from './../utils.js';\nimport defaults from '../defaults/index.js';\nimport AxiosHeaders from '../core/AxiosHeaders.js';\n\n/**\n * Transform the data for a request or a response\n *\n * @param {Array|Function} fns A single function or Array of functions\n * @param {?Object} response The response object\n *\n * @returns {*} The resulting transformed data\n */\nexport default function transformData(fns, response) {\n const config = this || defaults;\n const context = response || config;\n const headers = AxiosHeaders.from(context.headers);\n let data = context.data;\n\n utils.forEach(fns, function transform(fn) {\n data = fn.call(config, data, headers.normalize(), response ? response.status : undefined);\n });\n\n headers.normalize();\n\n return data;\n}\n","'use strict';\n\nexport default function isCancel(value) {\n return !!(value && value.__CANCEL__);\n}\n","'use strict';\n\nimport AxiosError from '../core/AxiosError.js';\nimport utils from '../utils.js';\n\n/**\n * A `CanceledError` is an object that is thrown when an operation is canceled.\n *\n * @param {string=} message The message.\n * @param {Object=} config The config.\n * @param {Object=} request The request.\n *\n * @returns {CanceledError} The created error.\n */\nfunction CanceledError(message, config, request) {\n // eslint-disable-next-line no-eq-null,eqeqeq\n AxiosError.call(this, message == null ? 'canceled' : message, AxiosError.ERR_CANCELED, config, request);\n this.name = 'CanceledError';\n}\n\nutils.inherits(CanceledError, AxiosError, {\n __CANCEL__: true\n});\n\nexport default CanceledError;\n","'use strict';\n\nimport AxiosError from './AxiosError.js';\n\n/**\n * Resolve or reject a Promise based on response status.\n *\n * @param {Function} resolve A function that resolves the promise.\n * @param {Function} reject A function that rejects the promise.\n * @param {object} response The response.\n *\n * @returns {object} The response.\n */\nexport default function settle(resolve, reject, response) {\n const validateStatus = response.config.validateStatus;\n if (!response.status || !validateStatus || validateStatus(response.status)) {\n resolve(response);\n } else {\n reject(new AxiosError(\n 'Request failed with status code ' + response.status,\n [AxiosError.ERR_BAD_REQUEST, AxiosError.ERR_BAD_RESPONSE][Math.floor(response.status / 100) - 4],\n response.config,\n response.request,\n response\n ));\n }\n}\n","'use strict';\n\n/**\n * Determines whether the specified URL is absolute\n *\n * @param {string} url The URL to test\n *\n * @returns {boolean} True if the specified URL is absolute, otherwise false\n */\nexport default function isAbsoluteURL(url) {\n // A URL is considered absolute if it begins with \"<scheme>://\" or \"//\" (protocol-relative URL).\n // RFC 3986 defines scheme name as a sequence of characters beginning with a letter and followed\n // by any combination of letters, digits, plus, period, or hyphen.\n return /^([a-z][a-z\\d+\\-.]*:)?\\/\\//i.test(url);\n}\n","'use strict';\n\n/**\n * Creates a new URL by combining the specified URLs\n *\n * @param {string} baseURL The base URL\n * @param {string} relativeURL The relative URL\n *\n * @returns {string} The combined URL\n */\nexport default function combineURLs(baseURL, relativeURL) {\n return relativeURL\n ? baseURL.replace(/\\/?\\/$/, '') + '/' + relativeURL.replace(/^\\/+/, '')\n : baseURL;\n}\n","'use strict';\n\nimport isAbsoluteURL from '../helpers/isAbsoluteURL.js';\nimport combineURLs from '../helpers/combineURLs.js';\n\n/**\n * Creates a new URL by combining the baseURL with the requestedURL,\n * only when the requestedURL is not already an absolute URL.\n * If the requestURL is absolute, this function returns the requestedURL untouched.\n *\n * @param {string} baseURL The base URL\n * @param {string} requestedURL Absolute or relative URL to combine\n *\n * @returns {string} The combined full path\n */\nexport default function buildFullPath(baseURL, requestedURL, allowAbsoluteUrls) {\n let isRelativeUrl = !isAbsoluteURL(requestedURL);\n if (baseURL && (isRelativeUrl || allowAbsoluteUrls == false)) {\n return combineURLs(baseURL, requestedURL);\n }\n return requestedURL;\n}\n","'use strict';\n\nvar parseUrl = require('url').parse;\n\nvar DEFAULT_PORTS = {\n ftp: 21,\n gopher: 70,\n http: 80,\n https: 443,\n ws: 80,\n wss: 443,\n};\n\nvar stringEndsWith = String.prototype.endsWith || function(s) {\n return s.length <= this.length &&\n this.indexOf(s, this.length - s.length) !== -1;\n};\n\n/**\n * @param {string|object} url - The URL, or the result from url.parse.\n * @return {string} The URL of the proxy that should handle the request to the\n * given URL. If no proxy is set, this will be an empty string.\n */\nfunction getProxyForUrl(url) {\n var parsedUrl = typeof url === 'string' ? parseUrl(url) : url || {};\n var proto = parsedUrl.protocol;\n var hostname = parsedUrl.host;\n var port = parsedUrl.port;\n if (typeof hostname !== 'string' || !hostname || typeof proto !== 'string') {\n return ''; // Don't proxy URLs without a valid scheme or host.\n }\n\n proto = proto.split(':', 1)[0];\n // Stripping ports in this way instead of using parsedUrl.hostname to make\n // sure that the brackets around IPv6 addresses are kept.\n hostname = hostname.replace(/:\\d*$/, '');\n port = parseInt(port) || DEFAULT_PORTS[proto] || 0;\n if (!shouldProxy(hostname, port)) {\n return ''; // Don't proxy URLs that match NO_PROXY.\n }\n\n var proxy =\n getEnv('npm_config_' + proto + '_proxy') ||\n getEnv(proto + '_proxy') ||\n getEnv('npm_config_proxy') ||\n getEnv('all_proxy');\n if (proxy && proxy.indexOf('://') === -1) {\n // Missing scheme in proxy, default to the requested URL's scheme.\n proxy = proto + '://' + proxy;\n }\n return proxy;\n}\n\n/**\n * Determines whether a given URL should be proxied.\n *\n * @param {string} hostname - The host name of the URL.\n * @param {number} port - The effective port of the URL.\n * @returns {boolean} Whether the given URL should be proxied.\n * @private\n */\nfunction shouldProxy(hostname, port) {\n var NO_PROXY =\n (getEnv('npm_config_no_proxy') || getEnv('no_proxy')).toLowerCase();\n if (!NO_PROXY) {\n return true; // Always proxy if NO_PROXY is not set.\n }\n if (NO_PROXY === '*') {\n return false; // Never proxy if wildcard is set.\n }\n\n return NO_PROXY.split(/[,\\s]/).every(function(proxy) {\n if (!proxy) {\n return true; // Skip zero-length hosts.\n }\n var parsedProxy = proxy.match(/^(.+):(\\d+)$/);\n var parsedProxyHostname = parsedProxy ? parsedProxy[1] : proxy;\n var parsedProxyPort = parsedProxy ? parseInt(parsedProxy[2]) : 0;\n if (parsedProxyPort && parsedProxyPort !== port) {\n return true; // Skip if ports don't match.\n }\n\n if (!/^[.*]/.test(parsedProxyHostname)) {\n // No wildcards, so stop proxying if there is an exact match.\n return hostname !== parsedProxyHostname;\n }\n\n if (parsedProxyHostname.charAt(0) === '*') {\n // Remove leading wildcard.\n parsedProxyHostname = parsedProxyHostname.slice(1);\n }\n // Stop proxying if the hostname ends with the no_proxy host.\n return !stringEndsWith.call(hostname, parsedProxyHostname);\n });\n}\n\n/**\n * Get the value for an environment variable.\n *\n * @param {string} key - The name of the environment variable.\n * @return {string} The value of the environment variable.\n * @private\n */\nfunction getEnv(key) {\n return process.env[key.toLowerCase()] || process.env[key.toUpperCase()] || '';\n}\n\nexports.getProxyForUrl = getProxyForUrl;\n","var debug;\n\nmodule.exports = function () {\n if (!debug) {\n try {\n /* eslint global-require: off */\n debug = require(\"debug\")(\"follow-redirects\");\n }\n catch (error) { /* */ }\n if (typeof debug !== \"function\") {\n debug = function () { /* */ };\n }\n }\n debug.apply(null, arguments);\n};\n","var url = require(\"url\");\nvar URL = url.URL;\nvar http = require(\"http\");\nvar https = require(\"https\");\nvar Writable = require(\"stream\").Writable;\nvar assert = require(\"assert\");\nvar debug = require(\"./debug\");\n\n// Preventive platform detection\n// istanbul ignore next\n(function detectUnsupportedEnvironment() {\n var looksLikeNode = typeof process !== \"undefined\";\n var looksLikeBrowser = typeof window !== \"undefined\" && typeof document !== \"undefined\";\n var looksLikeV8 = isFunction(Error.captureStackTrace);\n if (!looksLikeNode && (looksLikeBrowser || !looksLikeV8)) {\n console.warn(\"The follow-redirects package should be excluded from browser builds.\");\n }\n}());\n\n// Whether to use the native URL object or the legacy url module\nvar useNativeURL = false;\ntry {\n assert(new URL(\"\"));\n}\ncatch (error) {\n useNativeURL = error.code === \"ERR_INVALID_URL\";\n}\n\n// URL fields to preserve in copy operations\nvar preservedUrlFields = [\n \"auth\",\n \"host\",\n \"hostname\",\n \"href\",\n \"path\",\n \"pathname\",\n \"port\",\n \"protocol\",\n \"query\",\n \"search\",\n \"hash\",\n];\n\n// Create handlers that pass events from native requests\nvar events = [\"abort\", \"aborted\", \"connect\", \"error\", \"socket\", \"timeout\"];\nvar eventHandlers = Object.create(null);\nevents.forEach(function (event) {\n eventHandlers[event] = function (arg1, arg2, arg3) {\n this._redirectable.emit(event, arg1, arg2, arg3);\n };\n});\n\n// Error types with codes\nvar InvalidUrlError = createErrorType(\n \"ERR_INVALID_URL\",\n \"Invalid URL\",\n TypeError\n);\nvar RedirectionError = createErrorType(\n \"ERR_FR_REDIRECTION_FAILURE\",\n \"Redirected request failed\"\n);\nvar TooManyRedirectsError = createErrorType(\n \"ERR_FR_TOO_MANY_REDIRECTS\",\n \"Maximum number of redirects exceeded\",\n RedirectionError\n);\nvar MaxBodyLengthExceededError = createErrorType(\n \"ERR_FR_MAX_BODY_LENGTH_EXCEEDED\",\n \"Request body larger than maxBodyLength limit\"\n);\nvar WriteAfterEndError = createErrorType(\n \"ERR_STREAM_WRITE_AFTER_END\",\n \"write after end\"\n);\n\n// istanbul ignore next\nvar destroy = Writable.prototype.destroy || noop;\n\n// An HTTP(S) request that can be redirected\nfunction RedirectableRequest(options, responseCallback) {\n // Initialize the request\n Writable.call(this);\n this._sanitizeOptions(options);\n this._options = options;\n this._ended = false;\n this._ending = false;\n this._redirectCount = 0;\n this._redirects = [];\n this._requestBodyLength = 0;\n this._requestBodyBuffers = [];\n\n // Attach a callback if passed\n if (responseCallback) {\n this.on(\"response\", responseCallback);\n }\n\n // React to responses of native requests\n var self = this;\n this._onNativeResponse = function (response) {\n try {\n self._processResponse(response);\n }\n catch (cause) {\n self.emit(\"error\", cause instanceof RedirectionError ?\n cause : new RedirectionError({ cause: cause }));\n }\n };\n\n // Perform the first request\n this._performRequest();\n}\nRedirectableRequest.prototype = Object.create(Writable.prototype);\n\nRedirectableRequest.prototype.abort = function () {\n destroyRequest(this._currentRequest);\n this._currentRequest.abort();\n this.emit(\"abort\");\n};\n\nRedirectableRequest.prototype.destroy = function (error) {\n destroyRequest(this._currentRequest, error);\n destroy.call(this, error);\n return this;\n};\n\n// Writes buffered data to the current native request\nRedirectableRequest.prototype.write = function (data, encoding, callback) {\n // Writing is not allowed if end has been called\n if (this._ending) {\n throw new WriteAfterEndError();\n }\n\n // Validate input and shift parameters if necessary\n if (!isString(data) && !isBuffer(data)) {\n throw new TypeError(\"data should be a string, Buffer or Uint8Array\");\n }\n if (isFunction(encoding)) {\n callback = encoding;\n encoding = null;\n }\n\n // Ignore empty buffers, since writing them doesn't invoke the callback\n // https://github.com/nodejs/node/issues/22066\n if (data.length === 0) {\n if (callback) {\n callback();\n }\n return;\n }\n // Only write when we don't exceed the maximum body length\n if (this._requestBodyLength + data.length <= this._options.maxBodyLength) {\n this._requestBodyLength += data.length;\n this._requestBodyBuffers.push({ data: data, encoding: encoding });\n this._currentRequest.write(data, encoding, callback);\n }\n // Error when we exceed the maximum body length\n else {\n this.emit(\"error\", new MaxBodyLengthExceededError());\n this.abort();\n }\n};\n\n// Ends the current native request\nRedirectableRequest.prototype.end = function (data, encoding, callback) {\n // Shift parameters if necessary\n if (isFunction(data)) {\n callback = data;\n data = encoding = null;\n }\n else if (isFunction(encoding)) {\n callback = encoding;\n encoding = null;\n }\n\n // Write data if needed and end\n if (!data) {\n this._ended = this._ending = true;\n this._currentRequest.end(null, null, callback);\n }\n else {\n var self = this;\n var currentRequest = this._currentRequest;\n this.write(data, encoding, function () {\n self._ended = true;\n currentRequest.end(null, null, callback);\n });\n this._ending = true;\n }\n};\n\n// Sets a header value on the current native request\nRedirectableRequest.prototype.setHeader = function (name, value) {\n this._options.headers[name] = value;\n this._currentRequest.setHeader(name, value);\n};\n\n// Clears a header value on the current native request\nRedirectableRequest.prototype.removeHeader = function (name) {\n delete this._options.headers[name];\n this._currentRequest.removeHeader(name);\n};\n\n// Global timeout for all underlying requests\nRedirectableRequest.prototype.setTimeout = function (msecs, callback) {\n var self = this;\n\n // Destroys the socket on timeout\n function destroyOnTimeout(socket) {\n socket.setTimeout(msecs);\n socket.removeListener(\"timeout\", socket.destroy);\n socket.addListener(\"timeout\", socket.destroy);\n }\n\n // Sets up a timer to trigger a timeout event\n function startTimer(socket) {\n if (self._timeout) {\n clearTimeout(self._timeout);\n }\n self._timeout = setTimeout(function () {\n self.emit(\"timeout\");\n clearTimer();\n }, msecs);\n destroyOnTimeout(socket);\n }\n\n // Stops a timeout from triggering\n function clearTimer() {\n // Clear the timeout\n if (self._timeout) {\n clearTimeout(self._timeout);\n self._timeout = null;\n }\n\n // Clean up all attached listeners\n self.removeListener(\"abort\", clearTimer);\n self.removeListener(\"error\", clearTimer);\n self.removeListener(\"response\", clearTimer);\n self.removeListener(\"close\", clearTimer);\n if (callback) {\n self.removeListener(\"timeout\", callback);\n }\n if (!self.socket) {\n self._currentRequest.removeListener(\"socket\", startTimer);\n }\n }\n\n // Attach callback if passed\n if (callback) {\n this.on(\"timeout\", callback);\n }\n\n // Start the timer if or when the socket is opened\n if (this.socket) {\n startTimer(this.socket);\n }\n else {\n this._currentRequest.once(\"socket\", startTimer);\n }\n\n // Clean up on events\n this.on(\"socket\", destroyOnTimeout);\n this.on(\"abort\", clearTimer);\n this.on(\"error\", clearTimer);\n this.on(\"response\", clearTimer);\n this.on(\"close\", clearTimer);\n\n return this;\n};\n\n// Proxy all other public ClientRequest methods\n[\n \"flushHeaders\", \"getHeader\",\n \"setNoDelay\", \"setSocketKeepAlive\",\n].forEach(function (method) {\n RedirectableRequest.prototype[method] = function (a, b) {\n return this._currentRequest[method](a, b);\n };\n});\n\n// Proxy all public ClientRequest properties\n[\"aborted\", \"connection\", \"socket\"].forEach(function (property) {\n Object.defineProperty(RedirectableRequest.prototype, property, {\n get: function () { return this._currentRequest[property]; },\n });\n});\n\nRedirectableRequest.prototype._sanitizeOptions = function (options) {\n // Ensure headers are always present\n if (!options.headers) {\n options.headers = {};\n }\n\n // Since http.request treats host as an alias of hostname,\n // but the url module interprets host as hostname plus port,\n // eliminate the host property to avoid confusion.\n if (options.host) {\n // Use hostname if set, because it has precedence\n if (!options.hostname) {\n options.hostname = options.host;\n }\n delete options.host;\n }\n\n // Complete the URL object when necessary\n if (!options.pathname && options.path) {\n var searchPos = options.path.indexOf(\"?\");\n if (searchPos < 0) {\n options.pathname = options.path;\n }\n else {\n options.pathname = options.path.substring(0, searchPos);\n options.search = options.path.substring(searchPos);\n }\n }\n};\n\n\n// Executes the next native request (initial or redirect)\nRedirectableRequest.prototype._performRequest = function () {\n // Load the native protocol\n var protocol = this._options.protocol;\n var nativeProtocol = this._options.nativeProtocols[protocol];\n if (!nativeProtocol) {\n throw new TypeError(\"Unsupported protocol \" + protocol);\n }\n\n // If specified, use the agent corresponding to the protocol\n // (HTTP and HTTPS use different types of agents)\n if (this._options.agents) {\n var scheme = protocol.slice(0, -1);\n this._options.agent = this._options.agents[scheme];\n }\n\n // Create the native request and set up its event handlers\n var request = this._currentRequest =\n nativeProtocol.request(this._options, this._onNativeResponse);\n request._redirectable = this;\n for (var event of events) {\n request.on(event, eventHandlers[event]);\n }\n\n // RFC7230§5.3.1: When making a request directly to an origin server, […]\n // a client MUST send only the absolute path […] as the request-target.\n this._currentUrl = /^\\//.test(this._options.path) ?\n url.format(this._options) :\n // When making a request to a proxy, […]\n // a client MUST send the target URI in absolute-form […].\n this._options.path;\n\n // End a redirected request\n // (The first request must be ended explicitly with RedirectableRequest#end)\n if (this._isRedirect) {\n // Write the request entity and end\n var i = 0;\n var self = this;\n var buffers = this._requestBodyBuffers;\n (function writeNext(error) {\n // Only write if this request has not been redirected yet\n // istanbul ignore else\n if (request === self._currentRequest) {\n // Report any write errors\n // istanbul ignore if\n if (error) {\n self.emit(\"error\", error);\n }\n // Write the next buffer if there are still left\n else if (i < buffers.length) {\n var buffer = buffers[i++];\n // istanbul ignore else\n if (!request.finished) {\n request.write(buffer.data, buffer.encoding, writeNext);\n }\n }\n // End the request if `end` has been called on us\n else if (self._ended) {\n request.end();\n }\n }\n }());\n }\n};\n\n// Processes a response from the current native request\nRedirectableRequest.prototype._processResponse = function (response) {\n // Store the redirected response\n var statusCode = response.statusCode;\n if (this._options.trackRedirects) {\n this._redirects.push({\n url: this._currentUrl,\n headers: response.headers,\n statusCode: statusCode,\n });\n }\n\n // RFC7231§6.4: The 3xx (Redirection) class of status code indicates\n // that further action needs to be taken by the user agent in order to\n // fulfill the request. If a Location header field is provided,\n // the user agent MAY automatically redirect its request to the URI\n // referenced by the Location field value,\n // even if the specific status code is not understood.\n\n // If the response is not a redirect; return it as-is\n var location = response.headers.location;\n if (!location || this._options.followRedirects === false ||\n statusCode < 300 || statusCode >= 400) {\n response.responseUrl = this._currentUrl;\n response.redirects = this._redirects;\n this.emit(\"response\", response);\n\n // Clean up\n this._requestBodyBuffers = [];\n return;\n }\n\n // The response is a redirect, so abort the current request\n destroyRequest(this._currentRequest);\n // Discard the remainder of the response to avoid waiting for data\n response.destroy();\n\n // RFC7231§6.4: A client SHOULD detect and intervene\n // in cyclical redirections (i.e., \"infinite\" redirection loops).\n if (++this._redirectCount > this._options.maxRedirects) {\n throw new TooManyRedirectsError();\n }\n\n // Store the request headers if applicable\n var requestHeaders;\n var beforeRedirect = this._options.beforeRedirect;\n if (beforeRedirect) {\n requestHeaders = Object.assign({\n // The Host header was set by nativeProtocol.request\n Host: response.req.getHeader(\"host\"),\n }, this._options.headers);\n }\n\n // RFC7231§6.4: Automatic redirection needs to done with\n // care for methods not known to be safe, […]\n // RFC7231§6.4.2–3: For historical reasons, a user agent MAY change\n // the request method from POST to GET for the subsequent request.\n var method = this._options.method;\n if ((statusCode === 301 || statusCode === 302) && this._options.method === \"POST\" ||\n // RFC7231§6.4.4: The 303 (See Other) status code indicates that\n // the server is redirecting the user agent to a different resource […]\n // A user agent can perform a retrieval request targeting that URI\n // (a GET or HEAD request if using HTTP) […]\n (statusCode === 303) && !/^(?:GET|HEAD)$/.test(this._options.method)) {\n this._options.method = \"GET\";\n // Drop a possible entity and headers related to it\n this._requestBodyBuffers = [];\n removeMatchingHeaders(/^content-/i, this._options.headers);\n }\n\n // Drop the Host header, as the redirect might lead to a different host\n var currentHostHeader = removeMatchingHeaders(/^host$/i, this._options.headers);\n\n // If the redirect is relative, carry over the host of the last request\n var currentUrlParts = parseUrl(this._currentUrl);\n var currentHost = currentHostHeader || currentUrlParts.host;\n var currentUrl = /^\\w+:/.test(location) ? this._currentUrl :\n url.format(Object.assign(currentUrlParts, { host: currentHost }));\n\n // Create the redirected request\n var redirectUrl = resolveUrl(location, currentUrl);\n debug(\"redirecting to\", redirectUrl.href);\n this._isRedirect = true;\n spreadUrlObject(redirectUrl, this._options);\n\n // Drop confidential headers when redirecting to a less secure protocol\n // or to a different domain that is not a superdomain\n if (redirectUrl.protocol !== currentUrlParts.protocol &&\n redirectUrl.protocol !== \"https:\" ||\n redirectUrl.host !== currentHost &&\n !isSubdomain(redirectUrl.host, currentHost)) {\n removeMatchingHeaders(/^(?:(?:proxy-)?authorization|cookie)$/i, this._options.headers);\n }\n\n // Evaluate the beforeRedirect callback\n if (isFunction(beforeRedirect)) {\n var responseDetails = {\n headers: response.headers,\n statusCode: statusCode,\n };\n var requestDetails = {\n url: currentUrl,\n method: method,\n headers: requestHeaders,\n };\n beforeRedirect(this._options, responseDetails, requestDetails);\n this._sanitizeOptions(this._options);\n }\n\n // Perform the redirected request\n this._performRequest();\n};\n\n// Wraps the key/value object of protocols with redirect functionality\nfunction wrap(protocols) {\n // Default settings\n var exports = {\n maxRedirects: 21,\n maxBodyLength: 10 * 1024 * 1024,\n };\n\n // Wrap each protocol\n var nativeProtocols = {};\n Object.keys(protocols).forEach(function (scheme) {\n var protocol = scheme + \":\";\n var nativeProtocol = nativeProtocols[protocol] = protocols[scheme];\n var wrappedProtocol = exports[scheme] = Object.create(nativeProtocol);\n\n // Executes a request, following redirects\n function request(input, options, callback) {\n // Parse parameters, ensuring that input is an object\n if (isURL(input)) {\n input = spreadUrlObject(input);\n }\n else if (isString(input)) {\n input = spreadUrlObject(parseUrl(input));\n }\n else {\n callback = options;\n options = validateUrl(input);\n input = { protocol: protocol };\n }\n if (isFunction(options)) {\n callback = options;\n options = null;\n }\n\n // Set defaults\n options = Object.assign({\n maxRedirects: exports.maxRedirects,\n maxBodyLength: exports.maxBodyLength,\n }, input, options);\n options.nativeProtocols = nativeProtocols;\n if (!isString(options.host) && !isString(options.hostname)) {\n options.hostname = \"::1\";\n }\n\n assert.equal(options.protocol, protocol, \"protocol mismatch\");\n debug(\"options\", options);\n return new RedirectableRequest(options, callback);\n }\n\n // Executes a GET request, following redirects\n function get(input, options, callback) {\n var wrappedRequest = wrappedProtocol.request(input, options, callback);\n wrappedRequest.end();\n return wrappedRequest;\n }\n\n // Expose the properties on the wrapped protocol\n Object.defineProperties(wrappedProtocol, {\n request: { value: request, configurable: true, enumerable: true, writable: true },\n get: { value: get, configurable: true, enumerable: true, writable: true },\n });\n });\n return exports;\n}\n\nfunction noop() { /* empty */ }\n\nfunction parseUrl(input) {\n var parsed;\n // istanbul ignore else\n if (useNativeURL) {\n parsed = new URL(input);\n }\n else {\n // Ensure the URL is valid and absolute\n parsed = validateUrl(url.parse(input));\n if (!isString(parsed.protocol)) {\n throw new InvalidUrlError({ input });\n }\n }\n return parsed;\n}\n\nfunction resolveUrl(relative, base) {\n // istanbul ignore next\n return useNativeURL ? new URL(relative, base) : parseUrl(url.resolve(base, relative));\n}\n\nfunction validateUrl(input) {\n if (/^\\[/.test(input.hostname) && !/^\\[[:0-9a-f]+\\]$/i.test(input.hostname)) {\n throw new InvalidUrlError({ input: input.href || input });\n }\n if (/^\\[/.test(input.host) && !/^\\[[:0-9a-f]+\\](:\\d+)?$/i.test(input.host)) {\n throw new InvalidUrlError({ input: input.href || input });\n }\n return input;\n}\n\nfunction spreadUrlObject(urlObject, target) {\n var spread = target || {};\n for (var key of preservedUrlFields) {\n spread[key] = urlObject[key];\n }\n\n // Fix IPv6 hostname\n if (spread.hostname.startsWith(\"[\")) {\n spread.hostname = spread.hostname.slice(1, -1);\n }\n // Ensure port is a number\n if (spread.port !== \"\") {\n spread.port = Number(spread.port);\n }\n // Concatenate path\n spread.path = spread.search ? spread.pathname + spread.search : spread.pathname;\n\n return spread;\n}\n\nfunction removeMatchingHeaders(regex, headers) {\n var lastValue;\n for (var header in headers) {\n if (regex.test(header)) {\n lastValue = headers[header];\n delete headers[header];\n }\n }\n return (lastValue === null || typeof lastValue === \"undefined\") ?\n undefined : String(lastValue).trim();\n}\n\nfunction createErrorType(code, message, baseClass) {\n // Create constructor\n function CustomError(properties) {\n // istanbul ignore else\n if (isFunction(Error.captureStackTrace)) {\n Error.captureStackTrace(this, this.constructor);\n }\n Object.assign(this, properties || {});\n this.code = code;\n this.message = this.cause ? message + \": \" + this.cause.message : message;\n }\n\n // Attach constructor and set default properties\n CustomError.prototype = new (baseClass || Error)();\n Object.defineProperties(CustomError.prototype, {\n constructor: {\n value: CustomError,\n enumerable: false,\n },\n name: {\n value: \"Error [\" + code + \"]\",\n enumerable: false,\n },\n });\n return CustomError;\n}\n\nfunction destroyRequest(request, error) {\n for (var event of events) {\n request.removeListener(event, eventHandlers[event]);\n }\n request.on(\"error\", noop);\n request.destroy(error);\n}\n\nfunction isSubdomain(subdomain, domain) {\n assert(isString(subdomain) && isString(domain));\n var dot = subdomain.length - domain.length - 1;\n return dot > 0 && subdomain[dot] === \".\" && subdomain.endsWith(domain);\n}\n\nfunction isString(value) {\n return typeof value === \"string\" || value instanceof String;\n}\n\nfunction isFunction(value) {\n return typeof value === \"function\";\n}\n\nfunction isBuffer(value) {\n return typeof value === \"object\" && (\"length\" in value);\n}\n\nfunction isURL(value) {\n return URL && value instanceof URL;\n}\n\n// Exports\nmodule.exports = wrap({ http: http, https: https });\nmodule.exports.wrap = wrap;\n","export const VERSION = \"1.13.2\";","'use strict';\n\nexport default function parseProtocol(url) {\n const match = /^([-+\\w]{1,25})(:?\\/\\/|:)/.exec(url);\n return match && match[1] || '';\n}\n","'use strict';\n\nimport AxiosError from '../core/AxiosError.js';\nimport parseProtocol from './parseProtocol.js';\nimport platform from '../platform/index.js';\n\nconst DATA_URL_PATTERN = /^(?:([^;]+);)?(?:[^;]+;)?(base64|),([\\s\\S]*)$/;\n\n/**\n * Parse data uri to a Buffer or Blob\n *\n * @param {String} uri\n * @param {?Boolean} asBlob\n * @param {?Object} options\n * @param {?Function} options.Blob\n *\n * @returns {Buffer|Blob}\n */\nexport default function fromDataURI(uri, asBlob, options) {\n const _Blob = options && options.Blob || platform.classes.Blob;\n const protocol = parseProtocol(uri);\n\n if (asBlob === undefined && _Blob) {\n asBlob = true;\n }\n\n if (protocol === 'data') {\n uri = protocol.length ? uri.slice(protocol.length + 1) : uri;\n\n const match = DATA_URL_PATTERN.exec(uri);\n\n if (!match) {\n throw new AxiosError('Invalid URL', AxiosError.ERR_INVALID_URL);\n }\n\n const mime = match[1];\n const isBase64 = match[2];\n const body = match[3];\n const buffer = Buffer.from(decodeURIComponent(body), isBase64 ? 'base64' : 'utf8');\n\n if (asBlob) {\n if (!_Blob) {\n throw new AxiosError('Blob is not supported', AxiosError.ERR_NOT_SUPPORT);\n }\n\n return new _Blob([buffer], {type: mime});\n }\n\n return buffer;\n }\n\n throw new AxiosError('Unsupported protocol ' + protocol, AxiosError.ERR_NOT_SUPPORT);\n}\n","'use strict';\n\nimport stream from 'stream';\nimport utils from '../utils.js';\n\nconst kInternals = Symbol('internals');\n\nclass AxiosTransformStream extends stream.Transform{\n constructor(options) {\n options = utils.toFlatObject(options, {\n maxRate: 0,\n chunkSize: 64 * 1024,\n minChunkSize: 100,\n timeWindow: 500,\n ticksRate: 2,\n samplesCount: 15\n }, null, (prop, source) => {\n return !utils.isUndefined(source[prop]);\n });\n\n super({\n readableHighWaterMark: options.chunkSize\n });\n\n const internals = this[kInternals] = {\n timeWindow: options.timeWindow,\n chunkSize: options.chunkSize,\n maxRate: options.maxRate,\n minChunkSize: options.minChunkSize,\n bytesSeen: 0,\n isCaptured: false,\n notifiedBytesLoaded: 0,\n ts: Date.now(),\n bytes: 0,\n onReadCallback: null\n };\n\n this.on('newListener', event => {\n if (event === 'progress') {\n if (!internals.isCaptured) {\n internals.isCaptured = true;\n }\n }\n });\n }\n\n _read(size) {\n const internals = this[kInternals];\n\n if (internals.onReadCallback) {\n internals.onReadCallback();\n }\n\n return super._read(size);\n }\n\n _transform(chunk, encoding, callback) {\n const internals = this[kInternals];\n const maxRate = internals.maxRate;\n\n const readableHighWaterMark = this.readableHighWaterMark;\n\n const timeWindow = internals.timeWindow;\n\n const divider = 1000 / timeWindow;\n const bytesThreshold = (maxRate / divider);\n const minChunkSize = internals.minChunkSize !== false ? Math.max(internals.minChunkSize, bytesThreshold * 0.01) : 0;\n\n const pushChunk = (_chunk, _callback) => {\n const bytes = Buffer.byteLength(_chunk);\n internals.bytesSeen += bytes;\n internals.bytes += bytes;\n\n internals.isCaptured && this.emit('progress', internals.bytesSeen);\n\n if (this.push(_chunk)) {\n process.nextTick(_callback);\n } else {\n internals.onReadCallback = () => {\n internals.onReadCallback = null;\n process.nextTick(_callback);\n };\n }\n }\n\n const transformChunk = (_chunk, _callback) => {\n const chunkSize = Buffer.byteLength(_chunk);\n let chunkRemainder = null;\n let maxChunkSize = readableHighWaterMark;\n let bytesLeft;\n let passed = 0;\n\n if (maxRate) {\n const now = Date.now();\n\n if (!internals.ts || (passed = (now - internals.ts)) >= timeWindow) {\n internals.ts = now;\n bytesLeft = bytesThreshold - internals.bytes;\n internals.bytes = bytesLeft < 0 ? -bytesLeft : 0;\n passed = 0;\n }\n\n bytesLeft = bytesThreshold - internals.bytes;\n }\n\n if (maxRate) {\n if (bytesLeft <= 0) {\n // next time window\n return setTimeout(() => {\n _callback(null, _chunk);\n }, timeWindow - passed);\n }\n\n if (bytesLeft < maxChunkSize) {\n maxChunkSize = bytesLeft;\n }\n }\n\n if (maxChunkSize && chunkSize > maxChunkSize && (chunkSize - maxChunkSize) > minChunkSize) {\n chunkRemainder = _chunk.subarray(maxChunkSize);\n _chunk = _chunk.subarray(0, maxChunkSize);\n }\n\n pushChunk(_chunk, chunkRemainder ? () => {\n process.nextTick(_callback, null, chunkRemainder);\n } : _callback);\n };\n\n transformChunk(chunk, function transformNextChunk(err, _chunk) {\n if (err) {\n return callback(err);\n }\n\n if (_chunk) {\n transformChunk(_chunk, transformNextChunk);\n } else {\n callback(null);\n }\n });\n }\n}\n\nexport default AxiosTransformStream;\n","const {asyncIterator} = Symbol;\n\nconst readBlob = async function* (blob) {\n if (blob.stream) {\n yield* blob.stream()\n } else if (blob.arrayBuffer) {\n yield await blob.arrayBuffer()\n } else if (blob[asyncIterator]) {\n yield* blob[asyncIterator]();\n } else {\n yield blob;\n }\n}\n\nexport default readBlob;\n","import util from 'util';\nimport {Readable} from 'stream';\nimport utils from \"../utils.js\";\nimport readBlob from \"./readBlob.js\";\nimport platform from \"../platform/index.js\";\n\nconst BOUNDARY_ALPHABET = platform.ALPHABET.ALPHA_DIGIT + '-_';\n\nconst textEncoder = typeof TextEncoder === 'function' ? new TextEncoder() : new util.TextEncoder();\n\nconst CRLF = '\\r\\n';\nconst CRLF_BYTES = textEncoder.encode(CRLF);\nconst CRLF_BYTES_COUNT = 2;\n\nclass FormDataPart {\n constructor(name, value) {\n const {escapeName} = this.constructor;\n const isStringValue = utils.isString(value);\n\n let headers = `Content-Disposition: form-data; name=\"${escapeName(name)}\"${\n !isStringValue && value.name ? `; filename=\"${escapeName(value.name)}\"` : ''\n }${CRLF}`;\n\n if (isStringValue) {\n value = textEncoder.encode(String(value).replace(/\\r?\\n|\\r\\n?/g, CRLF));\n } else {\n headers += `Content-Type: ${value.type || \"application/octet-stream\"}${CRLF}`\n }\n\n this.headers = textEncoder.encode(headers + CRLF);\n\n this.contentLength = isStringValue ? value.byteLength : value.size;\n\n this.size = this.headers.byteLength + this.contentLength + CRLF_BYTES_COUNT;\n\n this.name = name;\n this.value = value;\n }\n\n async *encode(){\n yield this.headers;\n\n const {value} = this;\n\n if(utils.isTypedArray(value)) {\n yield value;\n } else {\n yield* readBlob(value);\n }\n\n yield CRLF_BYTES;\n }\n\n static escapeName(name) {\n return String(name).replace(/[\\r\\n\"]/g, (match) => ({\n '\\r' : '%0D',\n '\\n' : '%0A',\n '\"' : '%22',\n }[match]));\n }\n}\n\nconst formDataToStream = (form, headersHandler, options) => {\n const {\n tag = 'form-data-boundary',\n size = 25,\n boundary = tag + '-' + platform.generateString(size, BOUNDARY_ALPHABET)\n } = options || {};\n\n if(!utils.isFormData(form)) {\n throw TypeError('FormData instance required');\n }\n\n if (boundary.length < 1 || boundary.length > 70) {\n throw Error('boundary must be 10-70 characters long')\n }\n\n const boundaryBytes = textEncoder.encode('--' + boundary + CRLF);\n const footerBytes = textEncoder.encode('--' + boundary + '--' + CRLF);\n let contentLength = footerBytes.byteLength;\n\n const parts = Array.from(form.entries()).map(([name, value]) => {\n const part = new FormDataPart(name, value);\n contentLength += part.size;\n return part;\n });\n\n contentLength += boundaryBytes.byteLength * parts.length;\n\n contentLength = utils.toFiniteNumber(contentLength);\n\n const computedHeaders = {\n 'Content-Type': `multipart/form-data; boundary=${boundary}`\n }\n\n if (Number.isFinite(contentLength)) {\n computedHeaders['Content-Length'] = contentLength;\n }\n\n headersHandler && headersHandler(computedHeaders);\n\n return Readable.from((async function *() {\n for(const part of parts) {\n yield boundaryBytes;\n yield* part.encode();\n }\n\n yield footerBytes;\n })());\n};\n\nexport default formDataToStream;\n","\"use strict\";\n\nimport stream from \"stream\";\n\nclass ZlibHeaderTransformStream extends stream.Transform {\n __transform(chunk, encoding, callback) {\n this.push(chunk);\n callback();\n }\n\n _transform(chunk, encoding, callback) {\n if (chunk.length !== 0) {\n this._transform = this.__transform;\n\n // Add Default Compression headers if no zlib headers are present\n if (chunk[0] !== 120) { // Hex: 78\n const header = Buffer.alloc(2);\n header[0] = 120; // Hex: 78\n header[1] = 156; // Hex: 9C \n this.push(header, encoding);\n }\n }\n\n this.__transform(chunk, encoding, callback);\n }\n}\n\nexport default ZlibHeaderTransformStream;\n","import utils from \"../utils.js\";\n\nconst callbackify = (fn, reducer) => {\n return utils.isAsyncFn(fn) ? function (...args) {\n const cb = args.pop();\n fn.apply(this, args).then((value) => {\n try {\n reducer ? cb(null, ...reducer(value)) : cb(null, value);\n } catch (err) {\n cb(err);\n }\n }, cb);\n } : fn;\n}\n\nexport default callbackify;\n","'use strict';\n\n/**\n * Calculate data maxRate\n * @param {Number} [samplesCount= 10]\n * @param {Number} [min= 1000]\n * @returns {Function}\n */\nfunction speedometer(samplesCount, min) {\n samplesCount = samplesCount || 10;\n const bytes = new Array(samplesCount);\n const timestamps = new Array(samplesCount);\n let head = 0;\n let tail = 0;\n let firstSampleTS;\n\n min = min !== undefined ? min : 1000;\n\n return function push(chunkLength) {\n const now = Date.now();\n\n const startedAt = timestamps[tail];\n\n if (!firstSampleTS) {\n firstSampleTS = now;\n }\n\n bytes[head] = chunkLength;\n timestamps[head] = now;\n\n let i = tail;\n let bytesCount = 0;\n\n while (i !== head) {\n bytesCount += bytes[i++];\n i = i % samplesCount;\n }\n\n head = (head + 1) % samplesCount;\n\n if (head === tail) {\n tail = (tail + 1) % samplesCount;\n }\n\n if (now - firstSampleTS < min) {\n return;\n }\n\n const passed = startedAt && now - startedAt;\n\n return passed ? Math.round(bytesCount * 1000 / passed) : undefined;\n };\n}\n\nexport default speedometer;\n","/**\n * Throttle decorator\n * @param {Function} fn\n * @param {Number} freq\n * @return {Function}\n */\nfunction throttle(fn, freq) {\n let timestamp = 0;\n let threshold = 1000 / freq;\n let lastArgs;\n let timer;\n\n const invoke = (args, now = Date.now()) => {\n timestamp = now;\n lastArgs = null;\n if (timer) {\n clearTimeout(timer);\n timer = null;\n }\n fn(...args);\n }\n\n const throttled = (...args) => {\n const now = Date.now();\n const passed = now - timestamp;\n if ( passed >= threshold) {\n invoke(args, now);\n } else {\n lastArgs = args;\n if (!timer) {\n timer = setTimeout(() => {\n timer = null;\n invoke(lastArgs)\n }, threshold - passed);\n }\n }\n }\n\n const flush = () => lastArgs && invoke(lastArgs);\n\n return [throttled, flush];\n}\n\nexport default throttle;\n","import speedometer from \"./speedometer.js\";\nimport throttle from \"./throttle.js\";\nimport utils from \"../utils.js\";\n\nexport const progressEventReducer = (listener, isDownloadStream, freq = 3) => {\n let bytesNotified = 0;\n const _speedometer = speedometer(50, 250);\n\n return throttle(e => {\n const loaded = e.loaded;\n const total = e.lengthComputable ? e.total : undefined;\n const progressBytes = loaded - bytesNotified;\n const rate = _speedometer(progressBytes);\n const inRange = loaded <= total;\n\n bytesNotified = loaded;\n\n const data = {\n loaded,\n total,\n progress: total ? (loaded / total) : undefined,\n bytes: progressBytes,\n rate: rate ? rate : undefined,\n estimated: rate && total && inRange ? (total - loaded) / rate : undefined,\n event: e,\n lengthComputable: total != null,\n [isDownloadStream ? 'download' : 'upload']: true\n };\n\n listener(data);\n }, freq);\n}\n\nexport const progressEventDecorator = (total, throttled) => {\n const lengthComputable = total != null;\n\n return [(loaded) => throttled[0]({\n lengthComputable,\n total,\n loaded\n }), throttled[1]];\n}\n\nexport const asyncDecorator = (fn) => (...args) => utils.asap(() => fn(...args));\n","/**\n * Estimate decoded byte length of a data:// URL *without* allocating large buffers.\n * - For base64: compute exact decoded size using length and padding;\n * handle %XX at the character-count level (no string allocation).\n * - For non-base64: use UTF-8 byteLength of the encoded body as a safe upper bound.\n *\n * @param {string} url\n * @returns {number}\n */\nexport default function estimateDataURLDecodedBytes(url) {\n if (!url || typeof url !== 'string') return 0;\n if (!url.startsWith('data:')) return 0;\n\n const comma = url.indexOf(',');\n if (comma < 0) return 0;\n\n const meta = url.slice(5, comma);\n const body = url.slice(comma + 1);\n const isBase64 = /;base64/i.test(meta);\n\n if (isBase64) {\n let effectiveLen = body.length;\n const len = body.length; // cache length\n\n for (let i = 0; i < len; i++) {\n if (body.charCodeAt(i) === 37 /* '%' */ && i + 2 < len) {\n const a = body.charCodeAt(i + 1);\n const b = body.charCodeAt(i + 2);\n const isHex =\n ((a >= 48 && a <= 57) || (a >= 65 && a <= 70) || (a >= 97 && a <= 102)) &&\n ((b >= 48 && b <= 57) || (b >= 65 && b <= 70) || (b >= 97 && b <= 102));\n\n if (isHex) {\n effectiveLen -= 2;\n i += 2;\n }\n }\n }\n\n let pad = 0;\n let idx = len - 1;\n\n const tailIsPct3D = (j) =>\n j >= 2 &&\n body.charCodeAt(j - 2) === 37 && // '%'\n body.charCodeAt(j - 1) === 51 && // '3'\n (body.charCodeAt(j) === 68 || body.charCodeAt(j) === 100); // 'D' or 'd'\n\n if (idx >= 0) {\n if (body.charCodeAt(idx) === 61 /* '=' */) {\n pad++;\n idx--;\n } else if (tailIsPct3D(idx)) {\n pad++;\n idx -= 3;\n }\n }\n\n if (pad === 1 && idx >= 0) {\n if (body.charCodeAt(idx) === 61 /* '=' */) {\n pad++;\n } else if (tailIsPct3D(idx)) {\n pad++;\n }\n }\n\n const groups = Math.floor(effectiveLen / 4);\n const bytes = groups * 3 - (pad || 0);\n return bytes > 0 ? bytes : 0;\n }\n\n return Buffer.byteLength(body, 'utf8');\n}\n","import utils from './../utils.js';\nimport settle from './../core/settle.js';\nimport buildFullPath from '../core/buildFullPath.js';\nimport buildURL from './../helpers/buildURL.js';\nimport proxyFromEnv from 'proxy-from-env';\nimport http from 'http';\nimport https from 'https';\nimport http2 from 'http2';\nimport util from 'util';\nimport followRedirects from 'follow-redirects';\nimport zlib from 'zlib';\nimport {VERSION} from '../env/data.js';\nimport transitionalDefaults from '../defaults/transitional.js';\nimport AxiosError from '../core/AxiosError.js';\nimport CanceledError from '../cancel/CanceledError.js';\nimport platform from '../platform/index.js';\nimport fromDataURI from '../helpers/fromDataURI.js';\nimport stream from 'stream';\nimport AxiosHeaders from '../core/AxiosHeaders.js';\nimport AxiosTransformStream from '../helpers/AxiosTransformStream.js';\nimport {EventEmitter} from 'events';\nimport formDataToStream from \"../helpers/formDataToStream.js\";\nimport readBlob from \"../helpers/readBlob.js\";\nimport ZlibHeaderTransformStream from '../helpers/ZlibHeaderTransformStream.js';\nimport callbackify from \"../helpers/callbackify.js\";\nimport {progressEventReducer, progressEventDecorator, asyncDecorator} from \"../helpers/progressEventReducer.js\";\nimport estimateDataURLDecodedBytes from '../helpers/estimateDataURLDecodedBytes.js';\n\nconst zlibOptions = {\n flush: zlib.constants.Z_SYNC_FLUSH,\n finishFlush: zlib.constants.Z_SYNC_FLUSH\n};\n\nconst brotliOptions = {\n flush: zlib.constants.BROTLI_OPERATION_FLUSH,\n finishFlush: zlib.constants.BROTLI_OPERATION_FLUSH\n}\n\nconst isBrotliSupported = utils.isFunction(zlib.createBrotliDecompress);\n\nconst {http: httpFollow, https: httpsFollow} = followRedirects;\n\nconst isHttps = /https:?/;\n\nconst supportedProtocols = platform.protocols.map(protocol => {\n return protocol + ':';\n});\n\n\nconst flushOnFinish = (stream, [throttled, flush]) => {\n stream\n .on('end', flush)\n .on('error', flush);\n\n return throttled;\n}\n\nclass Http2Sessions {\n constructor() {\n this.sessions = Object.create(null);\n }\n\n getSession(authority, options) {\n options = Object.assign({\n sessionTimeout: 1000\n }, options);\n\n let authoritySessions = this.sessions[authority];\n\n if (authoritySessions) {\n let len = authoritySessions.length;\n\n for (let i = 0; i < len; i++) {\n const [sessionHandle, sessionOptions] = authoritySessions[i];\n if (!sessionHandle.destroyed && !sessionHandle.closed && util.isDeepStrictEqual(sessionOptions, options)) {\n return sessionHandle;\n }\n }\n }\n\n const session = http2.connect(authority, options);\n\n let removed;\n\n const removeSession = () => {\n if (removed) {\n return;\n }\n\n removed = true;\n\n let entries = authoritySessions, len = entries.length, i = len;\n\n while (i--) {\n if (entries[i][0] === session) {\n if (len === 1) {\n delete this.sessions[authority];\n } else {\n entries.splice(i, 1);\n }\n return;\n }\n }\n };\n\n const originalRequestFn = session.request;\n\n const {sessionTimeout} = options;\n\n if(sessionTimeout != null) {\n\n let timer;\n let streamsCount = 0;\n\n session.request = function () {\n const stream = originalRequestFn.apply(this, arguments);\n\n streamsCount++;\n\n if (timer) {\n clearTimeout(timer);\n timer = null;\n }\n\n stream.once('close', () => {\n if (!--streamsCount) {\n timer = setTimeout(() => {\n timer = null;\n removeSession();\n }, sessionTimeout);\n }\n });\n\n return stream;\n }\n }\n\n session.once('close', removeSession);\n\n let entry = [\n session,\n options\n ];\n\n authoritySessions ? authoritySessions.push(entry) : authoritySessions = this.sessions[authority] = [entry];\n\n return session;\n }\n}\n\nconst http2Sessions = new Http2Sessions();\n\n\n/**\n * If the proxy or config beforeRedirects functions are defined, call them with the options\n * object.\n *\n * @param {Object<string, any>} options - The options object that was passed to the request.\n *\n * @returns {Object<string, any>}\n */\nfunction dispatchBeforeRedirect(options, responseDetails) {\n if (options.beforeRedirects.proxy) {\n options.beforeRedirects.proxy(options);\n }\n if (options.beforeRedirects.config) {\n options.beforeRedirects.config(options, responseDetails);\n }\n}\n\n/**\n * If the proxy or config afterRedirects functions are defined, call them with the options\n *\n * @param {http.ClientRequestArgs} options\n * @param {AxiosProxyConfig} configProxy configuration from Axios options object\n * @param {string} location\n *\n * @returns {http.ClientRequestArgs}\n */\nfunction setProxy(options, configProxy, location) {\n let proxy = configProxy;\n if (!proxy && proxy !== false) {\n const proxyUrl = proxyFromEnv.getProxyForUrl(location);\n if (proxyUrl) {\n proxy = new URL(proxyUrl);\n }\n }\n if (proxy) {\n // Basic proxy authorization\n if (proxy.username) {\n proxy.auth = (proxy.username || '') + ':' + (proxy.password || '');\n }\n\n if (proxy.auth) {\n // Support proxy auth object form\n if (proxy.auth.username || proxy.auth.password) {\n proxy.auth = (proxy.auth.username || '') + ':' + (proxy.auth.password || '');\n }\n const base64 = Buffer\n .from(proxy.auth, 'utf8')\n .toString('base64');\n options.headers['Proxy-Authorization'] = 'Basic ' + base64;\n }\n\n options.headers.host = options.hostname + (options.port ? ':' + options.port : '');\n const proxyHost = proxy.hostname || proxy.host;\n options.hostname = proxyHost;\n // Replace 'host' since options is not a URL object\n options.host = proxyHost;\n options.port = proxy.port;\n options.path = location;\n if (proxy.protocol) {\n options.protocol = proxy.protocol.includes(':') ? proxy.protocol : `${proxy.protocol}:`;\n }\n }\n\n options.beforeRedirects.proxy = function beforeRedirect(redirectOptions) {\n // Configure proxy for redirected request, passing the original config proxy to apply\n // the exact same logic as if the redirected request was performed by axios directly.\n setProxy(redirectOptions, configProxy, redirectOptions.href);\n };\n}\n\nconst isHttpAdapterSupported = typeof process !== 'undefined' && utils.kindOf(process) === 'process';\n\n// temporary hotfix\n\nconst wrapAsync = (asyncExecutor) => {\n return new Promise((resolve, reject) => {\n let onDone;\n let isDone;\n\n const done = (value, isRejected) => {\n if (isDone) return;\n isDone = true;\n onDone && onDone(value, isRejected);\n }\n\n const _resolve = (value) => {\n done(value);\n resolve(value);\n };\n\n const _reject = (reason) => {\n done(reason, true);\n reject(reason);\n }\n\n asyncExecutor(_resolve, _reject, (onDoneHandler) => (onDone = onDoneHandler)).catch(_reject);\n })\n};\n\nconst resolveFamily = ({address, family}) => {\n if (!utils.isString(address)) {\n throw TypeError('address must be a string');\n }\n return ({\n address,\n family: family || (address.indexOf('.') < 0 ? 6 : 4)\n });\n}\n\nconst buildAddressEntry = (address, family) => resolveFamily(utils.isObject(address) ? address : {address, family});\n\nconst http2Transport = {\n request(options, cb) {\n const authority = options.protocol + '//' + options.hostname + ':' + (options.port || 80);\n\n const {http2Options, headers} = options;\n\n const session = http2Sessions.getSession(authority, http2Options);\n\n const {\n HTTP2_HEADER_SCHEME,\n HTTP2_HEADER_METHOD,\n HTTP2_HEADER_PATH,\n HTTP2_HEADER_STATUS\n } = http2.constants;\n\n const http2Headers = {\n [HTTP2_HEADER_SCHEME]: options.protocol.replace(':', ''),\n [HTTP2_HEADER_METHOD]: options.method,\n [HTTP2_HEADER_PATH]: options.path,\n }\n\n utils.forEach(headers, (header, name) => {\n name.charAt(0) !== ':' && (http2Headers[name] = header);\n });\n\n const req = session.request(http2Headers);\n\n req.once('response', (responseHeaders) => {\n const response = req; //duplex\n\n responseHeaders = Object.assign({}, responseHeaders);\n\n const status = responseHeaders[HTTP2_HEADER_STATUS];\n\n delete responseHeaders[HTTP2_HEADER_STATUS];\n\n response.headers = responseHeaders;\n\n response.statusCode = +status;\n\n cb(response);\n })\n\n return req;\n }\n}\n\n/*eslint consistent-return:0*/\nexport default isHttpAdapterSupported && function httpAdapter(config) {\n return wrapAsync(async function dispatchHttpRequest(resolve, reject, onDone) {\n let {data, lookup, family, httpVersion = 1, http2Options} = config;\n const {responseType, responseEncoding} = config;\n const method = config.method.toUpperCase();\n let isDone;\n let rejected = false;\n let req;\n\n httpVersion = +httpVersion;\n\n if (Number.isNaN(httpVersion)) {\n throw TypeError(`Invalid protocol version: '${config.httpVersion}' is not a number`);\n }\n\n if (httpVersion !== 1 && httpVersion !== 2) {\n throw TypeError(`Unsupported protocol version '${httpVersion}'`);\n }\n\n const isHttp2 = httpVersion === 2;\n\n if (lookup) {\n const _lookup = callbackify(lookup, (value) => utils.isArray(value) ? value : [value]);\n // hotfix to support opt.all option which is required for node 20.x\n lookup = (hostname, opt, cb) => {\n _lookup(hostname, opt, (err, arg0, arg1) => {\n if (err) {\n return cb(err);\n }\n\n const addresses = utils.isArray(arg0) ? arg0.map(addr => buildAddressEntry(addr)) : [buildAddressEntry(arg0, arg1)];\n\n opt.all ? cb(err, addresses) : cb(err, addresses[0].address, addresses[0].family);\n });\n }\n }\n\n const abortEmitter = new EventEmitter();\n\n function abort(reason) {\n try {\n abortEmitter.emit('abort', !reason || reason.type ? new CanceledError(null, config, req) : reason);\n } catch(err) {\n console.warn('emit error', err);\n }\n }\n\n abortEmitter.once('abort', reject);\n\n const onFinished = () => {\n if (config.cancelToken) {\n config.cancelToken.unsubscribe(abort);\n }\n\n if (config.signal) {\n config.signal.removeEventListener('abort', abort);\n }\n\n abortEmitter.removeAllListeners();\n }\n\n if (config.cancelToken || config.signal) {\n config.cancelToken && config.cancelToken.subscribe(abort);\n if (config.signal) {\n config.signal.aborted ? abort() : config.signal.addEventListener('abort', abort);\n }\n }\n\n onDone((response, isRejected) => {\n isDone = true;\n\n if (isRejected) {\n rejected = true;\n onFinished();\n return;\n }\n\n const {data} = response;\n\n if (data instanceof stream.Readable || data instanceof stream.Duplex) {\n const offListeners = stream.finished(data, () => {\n offListeners();\n onFinished();\n });\n } else {\n onFinished();\n }\n });\n\n\n\n\n\n // Parse url\n const fullPath = buildFullPath(config.baseURL, config.url, config.allowAbsoluteUrls);\n const parsed = new URL(fullPath, platform.hasBrowserEnv ? platform.origin : undefined);\n const protocol = parsed.protocol || supportedProtocols[0];\n\n if (protocol === 'data:') {\n // Apply the same semantics as HTTP: only enforce if a finite, non-negative cap is set.\n if (config.maxContentLength > -1) {\n // Use the exact string passed to fromDataURI (config.url); fall back to fullPath if needed.\n const dataUrl = String(config.url || fullPath || '');\n const estimated = estimateDataURLDecodedBytes(dataUrl);\n\n if (estimated > config.maxContentLength) {\n return reject(new AxiosError(\n 'maxContentLength size of ' + config.maxContentLength + ' exceeded',\n AxiosError.ERR_BAD_RESPONSE,\n config\n ));\n }\n }\n\n let convertedData;\n\n if (method !== 'GET') {\n return settle(resolve, reject, {\n status: 405,\n statusText: 'method not allowed',\n headers: {},\n config\n });\n }\n\n try {\n convertedData = fromDataURI(config.url, responseType === 'blob', {\n Blob: config.env && config.env.Blob\n });\n } catch (err) {\n throw AxiosError.from(err, AxiosError.ERR_BAD_REQUEST, config);\n }\n\n if (responseType === 'text') {\n convertedData = convertedData.toString(responseEncoding);\n\n if (!responseEncoding || responseEncoding === 'utf8') {\n convertedData = utils.stripBOM(convertedData);\n }\n } else if (responseType === 'stream') {\n convertedData = stream.Readable.from(convertedData);\n }\n\n return settle(resolve, reject, {\n data: convertedData,\n status: 200,\n statusText: 'OK',\n headers: new AxiosHeaders(),\n config\n });\n }\n\n if (supportedProtocols.indexOf(protocol) === -1) {\n return reject(new AxiosError(\n 'Unsupported protocol ' + protocol,\n AxiosError.ERR_BAD_REQUEST,\n config\n ));\n }\n\n const headers = AxiosHeaders.from(config.headers).normalize();\n\n // Set User-Agent (required by some servers)\n // See https://github.com/axios/axios/issues/69\n // User-Agent is specified; handle case where no UA header is desired\n // Only set header if it hasn't been set in config\n headers.set('User-Agent', 'axios/' + VERSION, false);\n\n const {onUploadProgress, onDownloadProgress} = config;\n const maxRate = config.maxRate;\n let maxUploadRate = undefined;\n let maxDownloadRate = undefined;\n\n // support for spec compliant FormData objects\n if (utils.isSpecCompliantForm(data)) {\n const userBoundary = headers.getContentType(/boundary=([-_\\w\\d]{10,70})/i);\n\n data = formDataToStream(data, (formHeaders) => {\n headers.set(formHeaders);\n }, {\n tag: `axios-${VERSION}-boundary`,\n boundary: userBoundary && userBoundary[1] || undefined\n });\n // support for https://www.npmjs.com/package/form-data api\n } else if (utils.isFormData(data) && utils.isFunction(data.getHeaders)) {\n headers.set(data.getHeaders());\n\n if (!headers.hasContentLength()) {\n try {\n const knownLength = await util.promisify(data.getLength).call(data);\n Number.isFinite(knownLength) && knownLength >= 0 && headers.setContentLength(knownLength);\n /*eslint no-empty:0*/\n } catch (e) {\n }\n }\n } else if (utils.isBlob(data) || utils.isFile(data)) {\n data.size && headers.setContentType(data.type || 'application/octet-stream');\n headers.setContentLength(data.size || 0);\n data = stream.Readable.from(readBlob(data));\n } else if (data && !utils.isStream(data)) {\n if (Buffer.isBuffer(data)) {\n // Nothing to do...\n } else if (utils.isArrayBuffer(data)) {\n data = Buffer.from(new Uint8Array(data));\n } else if (utils.isString(data)) {\n data = Buffer.from(data, 'utf-8');\n } else {\n return reject(new AxiosError(\n 'Data after transformation must be a string, an ArrayBuffer, a Buffer, or a Stream',\n AxiosError.ERR_BAD_REQUEST,\n config\n ));\n }\n\n // Add Content-Length header if data exists\n headers.setContentLength(data.length, false);\n\n if (config.maxBodyLength > -1 && data.length > config.maxBodyLength) {\n return reject(new AxiosError(\n 'Request body larger than maxBodyLength limit',\n AxiosError.ERR_BAD_REQUEST,\n config\n ));\n }\n }\n\n const contentLength = utils.toFiniteNumber(headers.getContentLength());\n\n if (utils.isArray(maxRate)) {\n maxUploadRate = maxRate[0];\n maxDownloadRate = maxRate[1];\n } else {\n maxUploadRate = maxDownloadRate = maxRate;\n }\n\n if (data && (onUploadProgress || maxUploadRate)) {\n if (!utils.isStream(data)) {\n data = stream.Readable.from(data, {objectMode: false});\n }\n\n data = stream.pipeline([data, new AxiosTransformStream({\n maxRate: utils.toFiniteNumber(maxUploadRate)\n })], utils.noop);\n\n onUploadProgress && data.on('progress', flushOnFinish(\n data,\n progressEventDecorator(\n contentLength,\n progressEventReducer(asyncDecorator(onUploadProgress), false, 3)\n )\n ));\n }\n\n // HTTP basic authentication\n let auth = undefined;\n if (config.auth) {\n const username = config.auth.username || '';\n const password = config.auth.password || '';\n auth = username + ':' + password;\n }\n\n if (!auth && parsed.username) {\n const urlUsername = parsed.username;\n const urlPassword = parsed.password;\n auth = urlUsername + ':' + urlPassword;\n }\n\n auth && headers.delete('authorization');\n\n let path;\n\n try {\n path = buildURL(\n parsed.pathname + parsed.search,\n config.params,\n config.paramsSerializer\n ).replace(/^\\?/, '');\n } catch (err) {\n const customErr = new Error(err.message);\n customErr.config = config;\n customErr.url = config.url;\n customErr.exists = true;\n return reject(customErr);\n }\n\n headers.set(\n 'Accept-Encoding',\n 'gzip, compress, deflate' + (isBrotliSupported ? ', br' : ''), false\n );\n\n const options = {\n path,\n method: method,\n headers: headers.toJSON(),\n agents: { http: config.httpAgent, https: config.httpsAgent },\n auth,\n protocol,\n family,\n beforeRedirect: dispatchBeforeRedirect,\n beforeRedirects: {},\n http2Options\n };\n\n // cacheable-lookup integration hotfix\n !utils.isUndefined(lookup) && (options.lookup = lookup);\n\n if (config.socketPath) {\n options.socketPath = config.socketPath;\n } else {\n options.hostname = parsed.hostname.startsWith(\"[\") ? parsed.hostname.slice(1, -1) : parsed.hostname;\n options.port = parsed.port;\n setProxy(options, config.proxy, protocol + '//' + parsed.hostname + (parsed.port ? ':' + parsed.port : '') + options.path);\n }\n\n let transport;\n const isHttpsRequest = isHttps.test(options.protocol);\n options.agent = isHttpsRequest ? config.httpsAgent : config.httpAgent;\n\n if (isHttp2) {\n transport = http2Transport;\n } else {\n if (config.transport) {\n transport = config.transport;\n } else if (config.maxRedirects === 0) {\n transport = isHttpsRequest ? https : http;\n } else {\n if (config.maxRedirects) {\n options.maxRedirects = config.maxRedirects;\n }\n if (config.beforeRedirect) {\n options.beforeRedirects.config = config.beforeRedirect;\n }\n transport = isHttpsRequest ? httpsFollow : httpFollow;\n }\n }\n\n if (config.maxBodyLength > -1) {\n options.maxBodyLength = config.maxBodyLength;\n } else {\n // follow-redirects does not skip comparison, so it should always succeed for axios -1 unlimited\n options.maxBodyLength = Infinity;\n }\n\n if (config.insecureHTTPParser) {\n options.insecureHTTPParser = config.insecureHTTPParser;\n }\n\n // Create the request\n req = transport.request(options, function handleResponse(res) {\n if (req.destroyed) return;\n\n const streams = [res];\n\n const responseLength = utils.toFiniteNumber(res.headers['content-length']);\n\n if (onDownloadProgress || maxDownloadRate) {\n const transformStream = new AxiosTransformStream({\n maxRate: utils.toFiniteNumber(maxDownloadRate)\n });\n\n onDownloadProgress && transformStream.on('progress', flushOnFinish(\n transformStream,\n progressEventDecorator(\n responseLength,\n progressEventReducer(asyncDecorator(onDownloadProgress), true, 3)\n )\n ));\n\n streams.push(transformStream);\n }\n\n // decompress the response body transparently if required\n let responseStream = res;\n\n // return the last request in case of redirects\n const lastRequest = res.req || req;\n\n // if decompress disabled we should not decompress\n if (config.decompress !== false && res.headers['content-encoding']) {\n // if no content, but headers still say that it is encoded,\n // remove the header not confuse downstream operations\n if (method === 'HEAD' || res.statusCode === 204) {\n delete res.headers['content-encoding'];\n }\n\n switch ((res.headers['content-encoding'] || '').toLowerCase()) {\n /*eslint default-case:0*/\n case 'gzip':\n case 'x-gzip':\n case 'compress':\n case 'x-compress':\n // add the unzipper to the body stream processing pipeline\n streams.push(zlib.createUnzip(zlibOptions));\n\n // remove the content-encoding in order to not confuse downstream operations\n delete res.headers['content-encoding'];\n break;\n case 'deflate':\n streams.push(new ZlibHeaderTransformStream());\n\n // add the unzipper to the body stream processing pipeline\n streams.push(zlib.createUnzip(zlibOptions));\n\n // remove the content-encoding in order to not confuse downstream operations\n delete res.headers['content-encoding'];\n break;\n case 'br':\n if (isBrotliSupported) {\n streams.push(zlib.createBrotliDecompress(brotliOptions));\n delete res.headers['content-encoding'];\n }\n }\n }\n\n responseStream = streams.length > 1 ? stream.pipeline(streams, utils.noop) : streams[0];\n\n\n\n const response = {\n status: res.statusCode,\n statusText: res.statusMessage,\n headers: new AxiosHeaders(res.headers),\n config,\n request: lastRequest\n };\n\n if (responseType === 'stream') {\n response.data = responseStream;\n settle(resolve, reject, response);\n } else {\n const responseBuffer = [];\n let totalResponseBytes = 0;\n\n responseStream.on('data', function handleStreamData(chunk) {\n responseBuffer.push(chunk);\n totalResponseBytes += chunk.length;\n\n // make sure the content length is not over the maxContentLength if specified\n if (config.maxContentLength > -1 && totalResponseBytes > config.maxContentLength) {\n // stream.destroy() emit aborted event before calling reject() on Node.js v16\n rejected = true;\n responseStream.destroy();\n abort(new AxiosError('maxContentLength size of ' + config.maxContentLength + ' exceeded',\n AxiosError.ERR_BAD_RESPONSE, config, lastRequest));\n }\n });\n\n responseStream.on('aborted', function handlerStreamAborted() {\n if (rejected) {\n return;\n }\n\n const err = new AxiosError(\n 'stream has been aborted',\n AxiosError.ERR_BAD_RESPONSE,\n config,\n lastRequest\n );\n responseStream.destroy(err);\n reject(err);\n });\n\n responseStream.on('error', function handleStreamError(err) {\n if (req.destroyed) return;\n reject(AxiosError.from(err, null, config, lastRequest));\n });\n\n responseStream.on('end', function handleStreamEnd() {\n try {\n let responseData = responseBuffer.length === 1 ? responseBuffer[0] : Buffer.concat(responseBuffer);\n if (responseType !== 'arraybuffer') {\n responseData = responseData.toString(responseEncoding);\n if (!responseEncoding || responseEncoding === 'utf8') {\n responseData = utils.stripBOM(responseData);\n }\n }\n response.data = responseData;\n } catch (err) {\n return reject(AxiosError.from(err, null, config, response.request, response));\n }\n settle(resolve, reject, response);\n });\n }\n\n abortEmitter.once('abort', err => {\n if (!responseStream.destroyed) {\n responseStream.emit('error', err);\n responseStream.destroy();\n }\n });\n });\n\n abortEmitter.once('abort', err => {\n if (req.close) {\n req.close();\n } else {\n req.destroy(err);\n }\n });\n\n // Handle errors\n req.on('error', function handleRequestError(err) {\n // @todo remove\n // if (req.aborted && err.code !== AxiosError.ERR_FR_TOO_MANY_REDIRECTS) return;\n reject(AxiosError.from(err, null, config, req));\n });\n\n // set tcp keep alive to prevent drop connection by peer\n req.on('socket', function handleRequestSocket(socket) {\n // default interval of sending ack packet is 1 minute\n socket.setKeepAlive(true, 1000 * 60);\n });\n\n // Handle request timeout\n if (config.timeout) {\n // This is forcing a int timeout to avoid problems if the `req` interface doesn't handle other types.\n const timeout = parseInt(config.timeout, 10);\n\n if (Number.isNaN(timeout)) {\n abort(new AxiosError(\n 'error trying to parse `config.timeout` to int',\n AxiosError.ERR_BAD_OPTION_VALUE,\n config,\n req\n ));\n\n return;\n }\n\n // Sometime, the response will be very slow, and does not respond, the connect event will be block by event loop system.\n // And timer callback will be fired, and abort() will be invoked before connection, then get \"socket hang up\" and code ECONNRESET.\n // At this time, if we have a large number of request, nodejs will hang up some socket on background. and the number will up and up.\n // And then these socket which be hang up will devouring CPU little by little.\n // ClientRequest.setTimeout will be fired on the specify milliseconds, and can make sure that abort() will be fired after connect.\n req.setTimeout(timeout, function handleRequestTimeout() {\n if (isDone) return;\n let timeoutErrorMessage = config.timeout ? 'timeout of ' + config.timeout + 'ms exceeded' : 'timeout exceeded';\n const transitional = config.transitional || transitionalDefaults;\n if (config.timeoutErrorMessage) {\n timeoutErrorMessage = config.timeoutErrorMessage;\n }\n abort(new AxiosError(\n timeoutErrorMessage,\n transitional.clarifyTimeoutError ? AxiosError.ETIMEDOUT : AxiosError.ECONNABORTED,\n config,\n req\n ));\n });\n } else {\n // explicitly reset the socket timeout value for a possible `keep-alive` request\n req.setTimeout(0);\n }\n\n\n // Send the request\n if (utils.isStream(data)) {\n let ended = false;\n let errored = false;\n\n data.on('end', () => {\n ended = true;\n });\n\n data.once('error', err => {\n errored = true;\n req.destroy(err);\n });\n\n data.on('close', () => {\n if (!ended && !errored) {\n abort(new CanceledError('Request stream has been aborted', config, req));\n }\n });\n\n data.pipe(req);\n } else {\n data && req.write(data);\n req.end();\n }\n });\n}\n\nexport const __setProxy = setProxy;\n","import platform from '../platform/index.js';\n\nexport default platform.hasStandardBrowserEnv ? ((origin, isMSIE) => (url) => {\n url = new URL(url, platform.origin);\n\n return (\n origin.protocol === url.protocol &&\n origin.host === url.host &&\n (isMSIE || origin.port === url.port)\n );\n})(\n new URL(platform.origin),\n platform.navigator && /(msie|trident)/i.test(platform.navigator.userAgent)\n) : () => true;\n","import utils from './../utils.js';\nimport platform from '../platform/index.js';\n\nexport default platform.hasStandardBrowserEnv ?\n\n // Standard browser envs support document.cookie\n {\n write(name, value, expires, path, domain, secure, sameSite) {\n if (typeof document === 'undefined') return;\n\n const cookie = [`${name}=${encodeURIComponent(value)}`];\n\n if (utils.isNumber(expires)) {\n cookie.push(`expires=${new Date(expires).toUTCString()}`);\n }\n if (utils.isString(path)) {\n cookie.push(`path=${path}`);\n }\n if (utils.isString(domain)) {\n cookie.push(`domain=${domain}`);\n }\n if (secure === true) {\n cookie.push('secure');\n }\n if (utils.isString(sameSite)) {\n cookie.push(`SameSite=${sameSite}`);\n }\n\n document.cookie = cookie.join('; ');\n },\n\n read(name) {\n if (typeof document === 'undefined') return null;\n const match = document.cookie.match(new RegExp('(?:^|; )' + name + '=([^;]*)'));\n return match ? decodeURIComponent(match[1]) : null;\n },\n\n remove(name) {\n this.write(name, '', Date.now() - 86400000, '/');\n }\n }\n\n :\n\n // Non-standard browser env (web workers, react-native) lack needed support.\n {\n write() {},\n read() {\n return null;\n },\n remove() {}\n };\n\n","'use strict';\n\nimport utils from '../utils.js';\nimport AxiosHeaders from \"./AxiosHeaders.js\";\n\nconst headersToObject = (thing) => thing instanceof AxiosHeaders ? { ...thing } : thing;\n\n/**\n * Config-specific merge-function which creates a new config-object\n * by merging two configuration objects together.\n *\n * @param {Object} config1\n * @param {Object} config2\n *\n * @returns {Object} New object resulting from merging config2 to config1\n */\nexport default function mergeConfig(config1, config2) {\n // eslint-disable-next-line no-param-reassign\n config2 = config2 || {};\n const config = {};\n\n function getMergedValue(target, source, prop, caseless) {\n if (utils.isPlainObject(target) && utils.isPlainObject(source)) {\n return utils.merge.call({caseless}, target, source);\n } else if (utils.isPlainObject(source)) {\n return utils.merge({}, source);\n } else if (utils.isArray(source)) {\n return source.slice();\n }\n return source;\n }\n\n // eslint-disable-next-line consistent-return\n function mergeDeepProperties(a, b, prop, caseless) {\n if (!utils.isUndefined(b)) {\n return getMergedValue(a, b, prop, caseless);\n } else if (!utils.isUndefined(a)) {\n return getMergedValue(undefined, a, prop, caseless);\n }\n }\n\n // eslint-disable-next-line consistent-return\n function valueFromConfig2(a, b) {\n if (!utils.isUndefined(b)) {\n return getMergedValue(undefined, b);\n }\n }\n\n // eslint-disable-next-line consistent-return\n function defaultToConfig2(a, b) {\n if (!utils.isUndefined(b)) {\n return getMergedValue(undefined, b);\n } else if (!utils.isUndefined(a)) {\n return getMergedValue(undefined, a);\n }\n }\n\n // eslint-disable-next-line consistent-return\n function mergeDirectKeys(a, b, prop) {\n if (prop in config2) {\n return getMergedValue(a, b);\n } else if (prop in config1) {\n return getMergedValue(undefined, a);\n }\n }\n\n const mergeMap = {\n url: valueFromConfig2,\n method: valueFromConfig2,\n data: valueFromConfig2,\n baseURL: defaultToConfig2,\n transformRequest: defaultToConfig2,\n transformResponse: defaultToConfig2,\n paramsSerializer: defaultToConfig2,\n timeout: defaultToConfig2,\n timeoutMessage: defaultToConfig2,\n withCredentials: defaultToConfig2,\n withXSRFToken: defaultToConfig2,\n adapter: defaultToConfig2,\n responseType: defaultToConfig2,\n xsrfCookieName: defaultToConfig2,\n xsrfHeaderName: defaultToConfig2,\n onUploadProgress: defaultToConfig2,\n onDownloadProgress: defaultToConfig2,\n decompress: defaultToConfig2,\n maxContentLength: defaultToConfig2,\n maxBodyLength: defaultToConfig2,\n beforeRedirect: defaultToConfig2,\n transport: defaultToConfig2,\n httpAgent: defaultToConfig2,\n httpsAgent: defaultToConfig2,\n cancelToken: defaultToConfig2,\n socketPath: defaultToConfig2,\n responseEncoding: defaultToConfig2,\n validateStatus: mergeDirectKeys,\n headers: (a, b, prop) => mergeDeepProperties(headersToObject(a), headersToObject(b), prop, true)\n };\n\n utils.forEach(Object.keys({...config1, ...config2}), function computeConfigValue(prop) {\n const merge = mergeMap[prop] || mergeDeepProperties;\n const configValue = merge(config1[prop], config2[prop], prop);\n (utils.isUndefined(configValue) && merge !== mergeDirectKeys) || (config[prop] = configValue);\n });\n\n return config;\n}\n","import platform from \"../platform/index.js\";\nimport utils from \"../utils.js\";\nimport isURLSameOrigin from \"./isURLSameOrigin.js\";\nimport cookies from \"./cookies.js\";\nimport buildFullPath from \"../core/buildFullPath.js\";\nimport mergeConfig from \"../core/mergeConfig.js\";\nimport AxiosHeaders from \"../core/AxiosHeaders.js\";\nimport buildURL from \"./buildURL.js\";\n\nexport default (config) => {\n const newConfig = mergeConfig({}, config);\n\n let { data, withXSRFToken, xsrfHeaderName, xsrfCookieName, headers, auth } = newConfig;\n\n newConfig.headers = headers = AxiosHeaders.from(headers);\n\n newConfig.url = buildURL(buildFullPath(newConfig.baseURL, newConfig.url, newConfig.allowAbsoluteUrls), config.params, config.paramsSerializer);\n\n // HTTP basic authentication\n if (auth) {\n headers.set('Authorization', 'Basic ' +\n btoa((auth.username || '') + ':' + (auth.password ? unescape(encodeURIComponent(auth.password)) : ''))\n );\n }\n\n if (utils.isFormData(data)) {\n if (platform.hasStandardBrowserEnv || platform.hasStandardBrowserWebWorkerEnv) {\n headers.setContentType(undefined); // browser handles it\n } else if (utils.isFunction(data.getHeaders)) {\n // Node.js FormData (like form-data package)\n const formHeaders = data.getHeaders();\n // Only set safe headers to avoid overwriting security headers\n const allowedHeaders = ['content-type', 'content-length'];\n Object.entries(formHeaders).forEach(([key, val]) => {\n if (allowedHeaders.includes(key.toLowerCase())) {\n headers.set(key, val);\n }\n });\n }\n } \n\n // Add xsrf header\n // This is only done if running in a standard browser environment.\n // Specifically not if we're in a web worker, or react-native.\n\n if (platform.hasStandardBrowserEnv) {\n withXSRFToken && utils.isFunction(withXSRFToken) && (withXSRFToken = withXSRFToken(newConfig));\n\n if (withXSRFToken || (withXSRFToken !== false && isURLSameOrigin(newConfig.url))) {\n // Add xsrf header\n const xsrfValue = xsrfHeaderName && xsrfCookieName && cookies.read(xsrfCookieName);\n\n if (xsrfValue) {\n headers.set(xsrfHeaderName, xsrfValue);\n }\n }\n }\n\n return newConfig;\n}\n\n","import utils from './../utils.js';\nimport settle from './../core/settle.js';\nimport transitionalDefaults from '../defaults/transitional.js';\nimport AxiosError from '../core/AxiosError.js';\nimport CanceledError from '../cancel/CanceledError.js';\nimport parseProtocol from '../helpers/parseProtocol.js';\nimport platform from '../platform/index.js';\nimport AxiosHeaders from '../core/AxiosHeaders.js';\nimport {progressEventReducer} from '../helpers/progressEventReducer.js';\nimport resolveConfig from \"../helpers/resolveConfig.js\";\n\nconst isXHRAdapterSupported = typeof XMLHttpRequest !== 'undefined';\n\nexport default isXHRAdapterSupported && function (config) {\n return new Promise(function dispatchXhrRequest(resolve, reject) {\n const _config = resolveConfig(config);\n let requestData = _config.data;\n const requestHeaders = AxiosHeaders.from(_config.headers).normalize();\n let {responseType, onUploadProgress, onDownloadProgress} = _config;\n let onCanceled;\n let uploadThrottled, downloadThrottled;\n let flushUpload, flushDownload;\n\n function done() {\n flushUpload && flushUpload(); // flush events\n flushDownload && flushDownload(); // flush events\n\n _config.cancelToken && _config.cancelToken.unsubscribe(onCanceled);\n\n _config.signal && _config.signal.removeEventListener('abort', onCanceled);\n }\n\n let request = new XMLHttpRequest();\n\n request.open(_config.method.toUpperCase(), _config.url, true);\n\n // Set the request timeout in MS\n request.timeout = _config.timeout;\n\n function onloadend() {\n if (!request) {\n return;\n }\n // Prepare the response\n const responseHeaders = AxiosHeaders.from(\n 'getAllResponseHeaders' in request && request.getAllResponseHeaders()\n );\n const responseData = !responseType || responseType === 'text' || responseType === 'json' ?\n request.responseText : request.response;\n const response = {\n data: responseData,\n status: request.status,\n statusText: request.statusText,\n headers: responseHeaders,\n config,\n request\n };\n\n settle(function _resolve(value) {\n resolve(value);\n done();\n }, function _reject(err) {\n reject(err);\n done();\n }, response);\n\n // Clean up request\n request = null;\n }\n\n if ('onloadend' in request) {\n // Use onloadend if available\n request.onloadend = onloadend;\n } else {\n // Listen for ready state to emulate onloadend\n request.onreadystatechange = function handleLoad() {\n if (!request || request.readyState !== 4) {\n return;\n }\n\n // The request errored out and we didn't get a response, this will be\n // handled by onerror instead\n // With one exception: request that using file: protocol, most browsers\n // will return status as 0 even though it's a successful request\n if (request.status === 0 && !(request.responseURL && request.responseURL.indexOf('file:') === 0)) {\n return;\n }\n // readystate handler is calling before onerror or ontimeout handlers,\n // so we should call onloadend on the next 'tick'\n setTimeout(onloadend);\n };\n }\n\n // Handle browser request cancellation (as opposed to a manual cancellation)\n request.onabort = function handleAbort() {\n if (!request) {\n return;\n }\n\n reject(new AxiosError('Request aborted', AxiosError.ECONNABORTED, config, request));\n\n // Clean up request\n request = null;\n };\n\n // Handle low level network errors\n request.onerror = function handleError(event) {\n // Browsers deliver a ProgressEvent in XHR onerror\n // (message may be empty; when present, surface it)\n // See https://developer.mozilla.org/docs/Web/API/XMLHttpRequest/error_event\n const msg = event && event.message ? event.message : 'Network Error';\n const err = new AxiosError(msg, AxiosError.ERR_NETWORK, config, request);\n // attach the underlying event for consumers who want details\n err.event = event || null;\n reject(err);\n request = null;\n };\n \n // Handle timeout\n request.ontimeout = function handleTimeout() {\n let timeoutErrorMessage = _config.timeout ? 'timeout of ' + _config.timeout + 'ms exceeded' : 'timeout exceeded';\n const transitional = _config.transitional || transitionalDefaults;\n if (_config.timeoutErrorMessage) {\n timeoutErrorMessage = _config.timeoutErrorMessage;\n }\n reject(new AxiosError(\n timeoutErrorMessage,\n transitional.clarifyTimeoutError ? AxiosError.ETIMEDOUT : AxiosError.ECONNABORTED,\n config,\n request));\n\n // Clean up request\n request = null;\n };\n\n // Remove Content-Type if data is undefined\n requestData === undefined && requestHeaders.setContentType(null);\n\n // Add headers to the request\n if ('setRequestHeader' in request) {\n utils.forEach(requestHeaders.toJSON(), function setRequestHeader(val, key) {\n request.setRequestHeader(key, val);\n });\n }\n\n // Add withCredentials to request if needed\n if (!utils.isUndefined(_config.withCredentials)) {\n request.withCredentials = !!_config.withCredentials;\n }\n\n // Add responseType to request if needed\n if (responseType && responseType !== 'json') {\n request.responseType = _config.responseType;\n }\n\n // Handle progress if needed\n if (onDownloadProgress) {\n ([downloadThrottled, flushDownload] = progressEventReducer(onDownloadProgress, true));\n request.addEventListener('progress', downloadThrottled);\n }\n\n // Not all browsers support upload events\n if (onUploadProgress && request.upload) {\n ([uploadThrottled, flushUpload] = progressEventReducer(onUploadProgress));\n\n request.upload.addEventListener('progress', uploadThrottled);\n\n request.upload.addEventListener('loadend', flushUpload);\n }\n\n if (_config.cancelToken || _config.signal) {\n // Handle cancellation\n // eslint-disable-next-line func-names\n onCanceled = cancel => {\n if (!request) {\n return;\n }\n reject(!cancel || cancel.type ? new CanceledError(null, config, request) : cancel);\n request.abort();\n request = null;\n };\n\n _config.cancelToken && _config.cancelToken.subscribe(onCanceled);\n if (_config.signal) {\n _config.signal.aborted ? onCanceled() : _config.signal.addEventListener('abort', onCanceled);\n }\n }\n\n const protocol = parseProtocol(_config.url);\n\n if (protocol && platform.protocols.indexOf(protocol) === -1) {\n reject(new AxiosError('Unsupported protocol ' + protocol + ':', AxiosError.ERR_BAD_REQUEST, config));\n return;\n }\n\n\n // Send the request\n request.send(requestData || null);\n });\n}\n","import CanceledError from \"../cancel/CanceledError.js\";\nimport AxiosError from \"../core/AxiosError.js\";\nimport utils from '../utils.js';\n\nconst composeSignals = (signals, timeout) => {\n const {length} = (signals = signals ? signals.filter(Boolean) : []);\n\n if (timeout || length) {\n let controller = new AbortController();\n\n let aborted;\n\n const onabort = function (reason) {\n if (!aborted) {\n aborted = true;\n unsubscribe();\n const err = reason instanceof Error ? reason : this.reason;\n controller.abort(err instanceof AxiosError ? err : new CanceledError(err instanceof Error ? err.message : err));\n }\n }\n\n let timer = timeout && setTimeout(() => {\n timer = null;\n onabort(new AxiosError(`timeout ${timeout} of ms exceeded`, AxiosError.ETIMEDOUT))\n }, timeout)\n\n const unsubscribe = () => {\n if (signals) {\n timer && clearTimeout(timer);\n timer = null;\n signals.forEach(signal => {\n signal.unsubscribe ? signal.unsubscribe(onabort) : signal.removeEventListener('abort', onabort);\n });\n signals = null;\n }\n }\n\n signals.forEach((signal) => signal.addEventListener('abort', onabort));\n\n const {signal} = controller;\n\n signal.unsubscribe = () => utils.asap(unsubscribe);\n\n return signal;\n }\n}\n\nexport default composeSignals;\n","\nexport const streamChunk = function* (chunk, chunkSize) {\n let len = chunk.byteLength;\n\n if (!chunkSize || len < chunkSize) {\n yield chunk;\n return;\n }\n\n let pos = 0;\n let end;\n\n while (pos < len) {\n end = pos + chunkSize;\n yield chunk.slice(pos, end);\n pos = end;\n }\n}\n\nexport const readBytes = async function* (iterable, chunkSize) {\n for await (const chunk of readStream(iterable)) {\n yield* streamChunk(chunk, chunkSize);\n }\n}\n\nconst readStream = async function* (stream) {\n if (stream[Symbol.asyncIterator]) {\n yield* stream;\n return;\n }\n\n const reader = stream.getReader();\n try {\n for (;;) {\n const {done, value} = await reader.read();\n if (done) {\n break;\n }\n yield value;\n }\n } finally {\n await reader.cancel();\n }\n}\n\nexport const trackStream = (stream, chunkSize, onProgress, onFinish) => {\n const iterator = readBytes(stream, chunkSize);\n\n let bytes = 0;\n let done;\n let _onFinish = (e) => {\n if (!done) {\n done = true;\n onFinish && onFinish(e);\n }\n }\n\n return new ReadableStream({\n async pull(controller) {\n try {\n const {done, value} = await iterator.next();\n\n if (done) {\n _onFinish();\n controller.close();\n return;\n }\n\n let len = value.byteLength;\n if (onProgress) {\n let loadedBytes = bytes += len;\n onProgress(loadedBytes);\n }\n controller.enqueue(new Uint8Array(value));\n } catch (err) {\n _onFinish(err);\n throw err;\n }\n },\n cancel(reason) {\n _onFinish(reason);\n return iterator.return();\n }\n }, {\n highWaterMark: 2\n })\n}\n","import platform from \"../platform/index.js\";\nimport utils from \"../utils.js\";\nimport AxiosError from \"../core/AxiosError.js\";\nimport composeSignals from \"../helpers/composeSignals.js\";\nimport {trackStream} from \"../helpers/trackStream.js\";\nimport AxiosHeaders from \"../core/AxiosHeaders.js\";\nimport {progressEventReducer, progressEventDecorator, asyncDecorator} from \"../helpers/progressEventReducer.js\";\nimport resolveConfig from \"../helpers/resolveConfig.js\";\nimport settle from \"../core/settle.js\";\n\nconst DEFAULT_CHUNK_SIZE = 64 * 1024;\n\nconst {isFunction} = utils;\n\nconst globalFetchAPI = (({Request, Response}) => ({\n Request, Response\n}))(utils.global);\n\nconst {\n ReadableStream, TextEncoder\n} = utils.global;\n\n\nconst test = (fn, ...args) => {\n try {\n return !!fn(...args);\n } catch (e) {\n return false\n }\n}\n\nconst factory = (env) => {\n env = utils.merge.call({\n skipUndefined: true\n }, globalFetchAPI, env);\n\n const {fetch: envFetch, Request, Response} = env;\n const isFetchSupported = envFetch ? isFunction(envFetch) : typeof fetch === 'function';\n const isRequestSupported = isFunction(Request);\n const isResponseSupported = isFunction(Response);\n\n if (!isFetchSupported) {\n return false;\n }\n\n const isReadableStreamSupported = isFetchSupported && isFunction(ReadableStream);\n\n const encodeText = isFetchSupported && (typeof TextEncoder === 'function' ?\n ((encoder) => (str) => encoder.encode(str))(new TextEncoder()) :\n async (str) => new Uint8Array(await new Request(str).arrayBuffer())\n );\n\n const supportsRequestStream = isRequestSupported && isReadableStreamSupported && test(() => {\n let duplexAccessed = false;\n\n const hasContentType = new Request(platform.origin, {\n body: new ReadableStream(),\n method: 'POST',\n get duplex() {\n duplexAccessed = true;\n return 'half';\n },\n }).headers.has('Content-Type');\n\n return duplexAccessed && !hasContentType;\n });\n\n const supportsResponseStream = isResponseSupported && isReadableStreamSupported &&\n test(() => utils.isReadableStream(new Response('').body));\n\n const resolvers = {\n stream: supportsResponseStream && ((res) => res.body)\n };\n\n isFetchSupported && ((() => {\n ['text', 'arrayBuffer', 'blob', 'formData', 'stream'].forEach(type => {\n !resolvers[type] && (resolvers[type] = (res, config) => {\n let method = res && res[type];\n\n if (method) {\n return method.call(res);\n }\n\n throw new AxiosError(`Response type '${type}' is not supported`, AxiosError.ERR_NOT_SUPPORT, config);\n })\n });\n })());\n\n const getBodyLength = async (body) => {\n if (body == null) {\n return 0;\n }\n\n if (utils.isBlob(body)) {\n return body.size;\n }\n\n if (utils.isSpecCompliantForm(body)) {\n const _request = new Request(platform.origin, {\n method: 'POST',\n body,\n });\n return (await _request.arrayBuffer()).byteLength;\n }\n\n if (utils.isArrayBufferView(body) || utils.isArrayBuffer(body)) {\n return body.byteLength;\n }\n\n if (utils.isURLSearchParams(body)) {\n body = body + '';\n }\n\n if (utils.isString(body)) {\n return (await encodeText(body)).byteLength;\n }\n }\n\n const resolveBodyLength = async (headers, body) => {\n const length = utils.toFiniteNumber(headers.getContentLength());\n\n return length == null ? getBodyLength(body) : length;\n }\n\n return async (config) => {\n let {\n url,\n method,\n data,\n signal,\n cancelToken,\n timeout,\n onDownloadProgress,\n onUploadProgress,\n responseType,\n headers,\n withCredentials = 'same-origin',\n fetchOptions\n } = resolveConfig(config);\n\n let _fetch = envFetch || fetch;\n\n responseType = responseType ? (responseType + '').toLowerCase() : 'text';\n\n let composedSignal = composeSignals([signal, cancelToken && cancelToken.toAbortSignal()], timeout);\n\n let request = null;\n\n const unsubscribe = composedSignal && composedSignal.unsubscribe && (() => {\n composedSignal.unsubscribe();\n });\n\n let requestContentLength;\n\n try {\n if (\n onUploadProgress && supportsRequestStream && method !== 'get' && method !== 'head' &&\n (requestContentLength = await resolveBodyLength(headers, data)) !== 0\n ) {\n let _request = new Request(url, {\n method: 'POST',\n body: data,\n duplex: \"half\"\n });\n\n let contentTypeHeader;\n\n if (utils.isFormData(data) && (contentTypeHeader = _request.headers.get('content-type'))) {\n headers.setContentType(contentTypeHeader)\n }\n\n if (_request.body) {\n const [onProgress, flush] = progressEventDecorator(\n requestContentLength,\n progressEventReducer(asyncDecorator(onUploadProgress))\n );\n\n data = trackStream(_request.body, DEFAULT_CHUNK_SIZE, onProgress, flush);\n }\n }\n\n if (!utils.isString(withCredentials)) {\n withCredentials = withCredentials ? 'include' : 'omit';\n }\n\n // Cloudflare Workers throws when credentials are defined\n // see https://github.com/cloudflare/workerd/issues/902\n const isCredentialsSupported = isRequestSupported && \"credentials\" in Request.prototype;\n\n const resolvedOptions = {\n ...fetchOptions,\n signal: composedSignal,\n method: method.toUpperCase(),\n headers: headers.normalize().toJSON(),\n body: data,\n duplex: \"half\",\n credentials: isCredentialsSupported ? withCredentials : undefined\n };\n\n request = isRequestSupported && new Request(url, resolvedOptions);\n\n let response = await (isRequestSupported ? _fetch(request, fetchOptions) : _fetch(url, resolvedOptions));\n\n const isStreamResponse = supportsResponseStream && (responseType === 'stream' || responseType === 'response');\n\n if (supportsResponseStream && (onDownloadProgress || (isStreamResponse && unsubscribe))) {\n const options = {};\n\n ['status', 'statusText', 'headers'].forEach(prop => {\n options[prop] = response[prop];\n });\n\n const responseContentLength = utils.toFiniteNumber(response.headers.get('content-length'));\n\n const [onProgress, flush] = onDownloadProgress && progressEventDecorator(\n responseContentLength,\n progressEventReducer(asyncDecorator(onDownloadProgress), true)\n ) || [];\n\n response = new Response(\n trackStream(response.body, DEFAULT_CHUNK_SIZE, onProgress, () => {\n flush && flush();\n unsubscribe && unsubscribe();\n }),\n options\n );\n }\n\n responseType = responseType || 'text';\n\n let responseData = await resolvers[utils.findKey(resolvers, responseType) || 'text'](response, config);\n\n !isStreamResponse && unsubscribe && unsubscribe();\n\n return await new Promise((resolve, reject) => {\n settle(resolve, reject, {\n data: responseData,\n headers: AxiosHeaders.from(response.headers),\n status: response.status,\n statusText: response.statusText,\n config,\n request\n })\n })\n } catch (err) {\n unsubscribe && unsubscribe();\n\n if (err && err.name === 'TypeError' && /Load failed|fetch/i.test(err.message)) {\n throw Object.assign(\n new AxiosError('Network Error', AxiosError.ERR_NETWORK, config, request),\n {\n cause: err.cause || err\n }\n )\n }\n\n throw AxiosError.from(err, err && err.code, config, request);\n }\n }\n}\n\nconst seedCache = new Map();\n\nexport const getFetch = (config) => {\n let env = (config && config.env) || {};\n const {fetch, Request, Response} = env;\n const seeds = [\n Request, Response, fetch\n ];\n\n let len = seeds.length, i = len,\n seed, target, map = seedCache;\n\n while (i--) {\n seed = seeds[i];\n target = map.get(seed);\n\n target === undefined && map.set(seed, target = (i ? new Map() : factory(env)))\n\n map = target;\n }\n\n return target;\n};\n\nconst adapter = getFetch();\n\nexport default adapter;\n","import utils from '../utils.js';\nimport httpAdapter from './http.js';\nimport xhrAdapter from './xhr.js';\nimport * as fetchAdapter from './fetch.js';\nimport AxiosError from \"../core/AxiosError.js\";\n\n/**\n * Known adapters mapping.\n * Provides environment-specific adapters for Axios:\n * - `http` for Node.js\n * - `xhr` for browsers\n * - `fetch` for fetch API-based requests\n * \n * @type {Object<string, Function|Object>}\n */\nconst knownAdapters = {\n http: httpAdapter,\n xhr: xhrAdapter,\n fetch: {\n get: fetchAdapter.getFetch,\n }\n};\n\n// Assign adapter names for easier debugging and identification\nutils.forEach(knownAdapters, (fn, value) => {\n if (fn) {\n try {\n Object.defineProperty(fn, 'name', { value });\n } catch (e) {\n // eslint-disable-next-line no-empty\n }\n Object.defineProperty(fn, 'adapterName', { value });\n }\n});\n\n/**\n * Render a rejection reason string for unknown or unsupported adapters\n * \n * @param {string} reason\n * @returns {string}\n */\nconst renderReason = (reason) => `- ${reason}`;\n\n/**\n * Check if the adapter is resolved (function, null, or false)\n * \n * @param {Function|null|false} adapter\n * @returns {boolean}\n */\nconst isResolvedHandle = (adapter) => utils.isFunction(adapter) || adapter === null || adapter === false;\n\n/**\n * Get the first suitable adapter from the provided list.\n * Tries each adapter in order until a supported one is found.\n * Throws an AxiosError if no adapter is suitable.\n * \n * @param {Array<string|Function>|string|Function} adapters - Adapter(s) by name or function.\n * @param {Object} config - Axios request configuration\n * @throws {AxiosError} If no suitable adapter is available\n * @returns {Function} The resolved adapter function\n */\nfunction getAdapter(adapters, config) {\n adapters = utils.isArray(adapters) ? adapters : [adapters];\n\n const { length } = adapters;\n let nameOrAdapter;\n let adapter;\n\n const rejectedReasons = {};\n\n for (let i = 0; i < length; i++) {\n nameOrAdapter = adapters[i];\n let id;\n\n adapter = nameOrAdapter;\n\n if (!isResolvedHandle(nameOrAdapter)) {\n adapter = knownAdapters[(id = String(nameOrAdapter)).toLowerCase()];\n\n if (adapter === undefined) {\n throw new AxiosError(`Unknown adapter '${id}'`);\n }\n }\n\n if (adapter && (utils.isFunction(adapter) || (adapter = adapter.get(config)))) {\n break;\n }\n\n rejectedReasons[id || '#' + i] = adapter;\n }\n\n if (!adapter) {\n const reasons = Object.entries(rejectedReasons)\n .map(([id, state]) => `adapter ${id} ` +\n (state === false ? 'is not supported by the environment' : 'is not available in the build')\n );\n\n let s = length ?\n (reasons.length > 1 ? 'since :\\n' + reasons.map(renderReason).join('\\n') : ' ' + renderReason(reasons[0])) :\n 'as no adapter specified';\n\n throw new AxiosError(\n `There is no suitable adapter to dispatch the request ` + s,\n 'ERR_NOT_SUPPORT'\n );\n }\n\n return adapter;\n}\n\n/**\n * Exports Axios adapters and utility to resolve an adapter\n */\nexport default {\n /**\n * Resolve an adapter from a list of adapter names or functions.\n * @type {Function}\n */\n getAdapter,\n\n /**\n * Exposes all known adapters\n * @type {Object<string, Function|Object>}\n */\n adapters: knownAdapters\n};\n","'use strict';\n\nimport transformData from './transformData.js';\nimport isCancel from '../cancel/isCancel.js';\nimport defaults from '../defaults/index.js';\nimport CanceledError from '../cancel/CanceledError.js';\nimport AxiosHeaders from '../core/AxiosHeaders.js';\nimport adapters from \"../adapters/adapters.js\";\n\n/**\n * Throws a `CanceledError` if cancellation has been requested.\n *\n * @param {Object} config The config that is to be used for the request\n *\n * @returns {void}\n */\nfunction throwIfCancellationRequested(config) {\n if (config.cancelToken) {\n config.cancelToken.throwIfRequested();\n }\n\n if (config.signal && config.signal.aborted) {\n throw new CanceledError(null, config);\n }\n}\n\n/**\n * Dispatch a request to the server using the configured adapter.\n *\n * @param {object} config The config that is to be used for the request\n *\n * @returns {Promise} The Promise to be fulfilled\n */\nexport default function dispatchRequest(config) {\n throwIfCancellationRequested(config);\n\n config.headers = AxiosHeaders.from(config.headers);\n\n // Transform request data\n config.data = transformData.call(\n config,\n config.transformRequest\n );\n\n if (['post', 'put', 'patch'].indexOf(config.method) !== -1) {\n config.headers.setContentType('application/x-www-form-urlencoded', false);\n }\n\n const adapter = adapters.getAdapter(config.adapter || defaults.adapter, config);\n\n return adapter(config).then(function onAdapterResolution(response) {\n throwIfCancellationRequested(config);\n\n // Transform response data\n response.data = transformData.call(\n config,\n config.transformResponse,\n response\n );\n\n response.headers = AxiosHeaders.from(response.headers);\n\n return response;\n }, function onAdapterRejection(reason) {\n if (!isCancel(reason)) {\n throwIfCancellationRequested(config);\n\n // Transform response data\n if (reason && reason.response) {\n reason.response.data = transformData.call(\n config,\n config.transformResponse,\n reason.response\n );\n reason.response.headers = AxiosHeaders.from(reason.response.headers);\n }\n }\n\n return Promise.reject(reason);\n });\n}\n","'use strict';\n\nimport {VERSION} from '../env/data.js';\nimport AxiosError from '../core/AxiosError.js';\n\nconst validators = {};\n\n// eslint-disable-next-line func-names\n['object', 'boolean', 'number', 'function', 'string', 'symbol'].forEach((type, i) => {\n validators[type] = function validator(thing) {\n return typeof thing === type || 'a' + (i < 1 ? 'n ' : ' ') + type;\n };\n});\n\nconst deprecatedWarnings = {};\n\n/**\n * Transitional option validator\n *\n * @param {function|boolean?} validator - set to false if the transitional option has been removed\n * @param {string?} version - deprecated version / removed since version\n * @param {string?} message - some message with additional info\n *\n * @returns {function}\n */\nvalidators.transitional = function transitional(validator, version, message) {\n function formatMessage(opt, desc) {\n return '[Axios v' + VERSION + '] Transitional option \\'' + opt + '\\'' + desc + (message ? '. ' + message : '');\n }\n\n // eslint-disable-next-line func-names\n return (value, opt, opts) => {\n if (validator === false) {\n throw new AxiosError(\n formatMessage(opt, ' has been removed' + (version ? ' in ' + version : '')),\n AxiosError.ERR_DEPRECATED\n );\n }\n\n if (version && !deprecatedWarnings[opt]) {\n deprecatedWarnings[opt] = true;\n // eslint-disable-next-line no-console\n console.warn(\n formatMessage(\n opt,\n ' has been deprecated since v' + version + ' and will be removed in the near future'\n )\n );\n }\n\n return validator ? validator(value, opt, opts) : true;\n };\n};\n\nvalidators.spelling = function spelling(correctSpelling) {\n return (value, opt) => {\n // eslint-disable-next-line no-console\n console.warn(`${opt} is likely a misspelling of ${correctSpelling}`);\n return true;\n }\n};\n\n/**\n * Assert object's properties type\n *\n * @param {object} options\n * @param {object} schema\n * @param {boolean?} allowUnknown\n *\n * @returns {object}\n */\n\nfunction assertOptions(options, schema, allowUnknown) {\n if (typeof options !== 'object') {\n throw new AxiosError('options must be an object', AxiosError.ERR_BAD_OPTION_VALUE);\n }\n const keys = Object.keys(options);\n let i = keys.length;\n while (i-- > 0) {\n const opt = keys[i];\n const validator = schema[opt];\n if (validator) {\n const value = options[opt];\n const result = value === undefined || validator(value, opt, options);\n if (result !== true) {\n throw new AxiosError('option ' + opt + ' must be ' + result, AxiosError.ERR_BAD_OPTION_VALUE);\n }\n continue;\n }\n if (allowUnknown !== true) {\n throw new AxiosError('Unknown option ' + opt, AxiosError.ERR_BAD_OPTION);\n }\n }\n}\n\nexport default {\n assertOptions,\n validators\n};\n","'use strict';\n\nimport utils from './../utils.js';\nimport buildURL from '../helpers/buildURL.js';\nimport InterceptorManager from './InterceptorManager.js';\nimport dispatchRequest from './dispatchRequest.js';\nimport mergeConfig from './mergeConfig.js';\nimport buildFullPath from './buildFullPath.js';\nimport validator from '../helpers/validator.js';\nimport AxiosHeaders from './AxiosHeaders.js';\n\nconst validators = validator.validators;\n\n/**\n * Create a new instance of Axios\n *\n * @param {Object} instanceConfig The default config for the instance\n *\n * @return {Axios} A new instance of Axios\n */\nclass Axios {\n constructor(instanceConfig) {\n this.defaults = instanceConfig || {};\n this.interceptors = {\n request: new InterceptorManager(),\n response: new InterceptorManager()\n };\n }\n\n /**\n * Dispatch a request\n *\n * @param {String|Object} configOrUrl The config specific for this request (merged with this.defaults)\n * @param {?Object} config\n *\n * @returns {Promise} The Promise to be fulfilled\n */\n async request(configOrUrl, config) {\n try {\n return await this._request(configOrUrl, config);\n } catch (err) {\n if (err instanceof Error) {\n let dummy = {};\n\n Error.captureStackTrace ? Error.captureStackTrace(dummy) : (dummy = new Error());\n\n // slice off the Error: ... line\n const stack = dummy.stack ? dummy.stack.replace(/^.+\\n/, '') : '';\n try {\n if (!err.stack) {\n err.stack = stack;\n // match without the 2 top stack lines\n } else if (stack && !String(err.stack).endsWith(stack.replace(/^.+\\n.+\\n/, ''))) {\n err.stack += '\\n' + stack\n }\n } catch (e) {\n // ignore the case where \"stack\" is an un-writable property\n }\n }\n\n throw err;\n }\n }\n\n _request(configOrUrl, config) {\n /*eslint no-param-reassign:0*/\n // Allow for axios('example/url'[, config]) a la fetch API\n if (typeof configOrUrl === 'string') {\n config = config || {};\n config.url = configOrUrl;\n } else {\n config = configOrUrl || {};\n }\n\n config = mergeConfig(this.defaults, config);\n\n const {transitional, paramsSerializer, headers} = config;\n\n if (transitional !== undefined) {\n validator.assertOptions(transitional, {\n silentJSONParsing: validators.transitional(validators.boolean),\n forcedJSONParsing: validators.transitional(validators.boolean),\n clarifyTimeoutError: validators.transitional(validators.boolean)\n }, false);\n }\n\n if (paramsSerializer != null) {\n if (utils.isFunction(paramsSerializer)) {\n config.paramsSerializer = {\n serialize: paramsSerializer\n }\n } else {\n validator.assertOptions(paramsSerializer, {\n encode: validators.function,\n serialize: validators.function\n }, true);\n }\n }\n\n // Set config.allowAbsoluteUrls\n if (config.allowAbsoluteUrls !== undefined) {\n // do nothing\n } else if (this.defaults.allowAbsoluteUrls !== undefined) {\n config.allowAbsoluteUrls = this.defaults.allowAbsoluteUrls;\n } else {\n config.allowAbsoluteUrls = true;\n }\n\n validator.assertOptions(config, {\n baseUrl: validators.spelling('baseURL'),\n withXsrfToken: validators.spelling('withXSRFToken')\n }, true);\n\n // Set config.method\n config.method = (config.method || this.defaults.method || 'get').toLowerCase();\n\n // Flatten headers\n let contextHeaders = headers && utils.merge(\n headers.common,\n headers[config.method]\n );\n\n headers && utils.forEach(\n ['delete', 'get', 'head', 'post', 'put', 'patch', 'common'],\n (method) => {\n delete headers[method];\n }\n );\n\n config.headers = AxiosHeaders.concat(contextHeaders, headers);\n\n // filter out skipped interceptors\n const requestInterceptorChain = [];\n let synchronousRequestInterceptors = true;\n this.interceptors.request.forEach(function unshiftRequestInterceptors(interceptor) {\n if (typeof interceptor.runWhen === 'function' && interceptor.runWhen(config) === false) {\n return;\n }\n\n synchronousRequestInterceptors = synchronousRequestInterceptors && interceptor.synchronous;\n\n requestInterceptorChain.unshift(interceptor.fulfilled, interceptor.rejected);\n });\n\n const responseInterceptorChain = [];\n this.interceptors.response.forEach(function pushResponseInterceptors(interceptor) {\n responseInterceptorChain.push(interceptor.fulfilled, interceptor.rejected);\n });\n\n let promise;\n let i = 0;\n let len;\n\n if (!synchronousRequestInterceptors) {\n const chain = [dispatchRequest.bind(this), undefined];\n chain.unshift(...requestInterceptorChain);\n chain.push(...responseInterceptorChain);\n len = chain.length;\n\n promise = Promise.resolve(config);\n\n while (i < len) {\n promise = promise.then(chain[i++], chain[i++]);\n }\n\n return promise;\n }\n\n len = requestInterceptorChain.length;\n\n let newConfig = config;\n\n while (i < len) {\n const onFulfilled = requestInterceptorChain[i++];\n const onRejected = requestInterceptorChain[i++];\n try {\n newConfig = onFulfilled(newConfig);\n } catch (error) {\n onRejected.call(this, error);\n break;\n }\n }\n\n try {\n promise = dispatchRequest.call(this, newConfig);\n } catch (error) {\n return Promise.reject(error);\n }\n\n i = 0;\n len = responseInterceptorChain.length;\n\n while (i < len) {\n promise = promise.then(responseInterceptorChain[i++], responseInterceptorChain[i++]);\n }\n\n return promise;\n }\n\n getUri(config) {\n config = mergeConfig(this.defaults, config);\n const fullPath = buildFullPath(config.baseURL, config.url, config.allowAbsoluteUrls);\n return buildURL(fullPath, config.params, config.paramsSerializer);\n }\n}\n\n// Provide aliases for supported request methods\nutils.forEach(['delete', 'get', 'head', 'options'], function forEachMethodNoData(method) {\n /*eslint func-names:0*/\n Axios.prototype[method] = function(url, config) {\n return this.request(mergeConfig(config || {}, {\n method,\n url,\n data: (config || {}).data\n }));\n };\n});\n\nutils.forEach(['post', 'put', 'patch'], function forEachMethodWithData(method) {\n /*eslint func-names:0*/\n\n function generateHTTPMethod(isForm) {\n return function httpMethod(url, data, config) {\n return this.request(mergeConfig(config || {}, {\n method,\n headers: isForm ? {\n 'Content-Type': 'multipart/form-data'\n } : {},\n url,\n data\n }));\n };\n }\n\n Axios.prototype[method] = generateHTTPMethod();\n\n Axios.prototype[method + 'Form'] = generateHTTPMethod(true);\n});\n\nexport default Axios;\n","'use strict';\n\nimport CanceledError from './CanceledError.js';\n\n/**\n * A `CancelToken` is an object that can be used to request cancellation of an operation.\n *\n * @param {Function} executor The executor function.\n *\n * @returns {CancelToken}\n */\nclass CancelToken {\n constructor(executor) {\n if (typeof executor !== 'function') {\n throw new TypeError('executor must be a function.');\n }\n\n let resolvePromise;\n\n this.promise = new Promise(function promiseExecutor(resolve) {\n resolvePromise = resolve;\n });\n\n const token = this;\n\n // eslint-disable-next-line func-names\n this.promise.then(cancel => {\n if (!token._listeners) return;\n\n let i = token._listeners.length;\n\n while (i-- > 0) {\n token._listeners[i](cancel);\n }\n token._listeners = null;\n });\n\n // eslint-disable-next-line func-names\n this.promise.then = onfulfilled => {\n let _resolve;\n // eslint-disable-next-line func-names\n const promise = new Promise(resolve => {\n token.subscribe(resolve);\n _resolve = resolve;\n }).then(onfulfilled);\n\n promise.cancel = function reject() {\n token.unsubscribe(_resolve);\n };\n\n return promise;\n };\n\n executor(function cancel(message, config, request) {\n if (token.reason) {\n // Cancellation has already been requested\n return;\n }\n\n token.reason = new CanceledError(message, config, request);\n resolvePromise(token.reason);\n });\n }\n\n /**\n * Throws a `CanceledError` if cancellation has been requested.\n */\n throwIfRequested() {\n if (this.reason) {\n throw this.reason;\n }\n }\n\n /**\n * Subscribe to the cancel signal\n */\n\n subscribe(listener) {\n if (this.reason) {\n listener(this.reason);\n return;\n }\n\n if (this._listeners) {\n this._listeners.push(listener);\n } else {\n this._listeners = [listener];\n }\n }\n\n /**\n * Unsubscribe from the cancel signal\n */\n\n unsubscribe(listener) {\n if (!this._listeners) {\n return;\n }\n const index = this._listeners.indexOf(listener);\n if (index !== -1) {\n this._listeners.splice(index, 1);\n }\n }\n\n toAbortSignal() {\n const controller = new AbortController();\n\n const abort = (err) => {\n controller.abort(err);\n };\n\n this.subscribe(abort);\n\n controller.signal.unsubscribe = () => this.unsubscribe(abort);\n\n return controller.signal;\n }\n\n /**\n * Returns an object that contains a new `CancelToken` and a function that, when called,\n * cancels the `CancelToken`.\n */\n static source() {\n let cancel;\n const token = new CancelToken(function executor(c) {\n cancel = c;\n });\n return {\n token,\n cancel\n };\n }\n}\n\nexport default CancelToken;\n","'use strict';\n\n/**\n * Syntactic sugar for invoking a function and expanding an array for arguments.\n *\n * Common use case would be to use `Function.prototype.apply`.\n *\n * ```js\n * function f(x, y, z) {}\n * var args = [1, 2, 3];\n * f.apply(null, args);\n * ```\n *\n * With `spread` this example can be re-written.\n *\n * ```js\n * spread(function(x, y, z) {})([1, 2, 3]);\n * ```\n *\n * @param {Function} callback\n *\n * @returns {Function}\n */\nexport default function spread(callback) {\n return function wrap(arr) {\n return callback.apply(null, arr);\n };\n}\n","'use strict';\n\nimport utils from './../utils.js';\n\n/**\n * Determines whether the payload is an error thrown by Axios\n *\n * @param {*} payload The value to test\n *\n * @returns {boolean} True if the payload is an error thrown by Axios, otherwise false\n */\nexport default function isAxiosError(payload) {\n return utils.isObject(payload) && (payload.isAxiosError === true);\n}\n","const HttpStatusCode = {\n Continue: 100,\n SwitchingProtocols: 101,\n Processing: 102,\n EarlyHints: 103,\n Ok: 200,\n Created: 201,\n Accepted: 202,\n NonAuthoritativeInformation: 203,\n NoContent: 204,\n ResetContent: 205,\n PartialContent: 206,\n MultiStatus: 207,\n AlreadyReported: 208,\n ImUsed: 226,\n MultipleChoices: 300,\n MovedPermanently: 301,\n Found: 302,\n SeeOther: 303,\n NotModified: 304,\n UseProxy: 305,\n Unused: 306,\n TemporaryRedirect: 307,\n PermanentRedirect: 308,\n BadRequest: 400,\n Unauthorized: 401,\n PaymentRequired: 402,\n Forbidden: 403,\n NotFound: 404,\n MethodNotAllowed: 405,\n NotAcceptable: 406,\n ProxyAuthenticationRequired: 407,\n RequestTimeout: 408,\n Conflict: 409,\n Gone: 410,\n LengthRequired: 411,\n PreconditionFailed: 412,\n PayloadTooLarge: 413,\n UriTooLong: 414,\n UnsupportedMediaType: 415,\n RangeNotSatisfiable: 416,\n ExpectationFailed: 417,\n ImATeapot: 418,\n MisdirectedRequest: 421,\n UnprocessableEntity: 422,\n Locked: 423,\n FailedDependency: 424,\n TooEarly: 425,\n UpgradeRequired: 426,\n PreconditionRequired: 428,\n TooManyRequests: 429,\n RequestHeaderFieldsTooLarge: 431,\n UnavailableForLegalReasons: 451,\n InternalServerError: 500,\n NotImplemented: 501,\n BadGateway: 502,\n ServiceUnavailable: 503,\n GatewayTimeout: 504,\n HttpVersionNotSupported: 505,\n VariantAlsoNegotiates: 506,\n InsufficientStorage: 507,\n LoopDetected: 508,\n NotExtended: 510,\n NetworkAuthenticationRequired: 511,\n WebServerIsDown: 521,\n ConnectionTimedOut: 522,\n OriginIsUnreachable: 523,\n TimeoutOccurred: 524,\n SslHandshakeFailed: 525,\n InvalidSslCertificate: 526,\n};\n\nObject.entries(HttpStatusCode).forEach(([key, value]) => {\n HttpStatusCode[value] = key;\n});\n\nexport default HttpStatusCode;\n","'use strict';\n\nimport utils from './utils.js';\nimport bind from './helpers/bind.js';\nimport Axios from './core/Axios.js';\nimport mergeConfig from './core/mergeConfig.js';\nimport defaults from './defaults/index.js';\nimport formDataToJSON from './helpers/formDataToJSON.js';\nimport CanceledError from './cancel/CanceledError.js';\nimport CancelToken from './cancel/CancelToken.js';\nimport isCancel from './cancel/isCancel.js';\nimport {VERSION} from './env/data.js';\nimport toFormData from './helpers/toFormData.js';\nimport AxiosError from './core/AxiosError.js';\nimport spread from './helpers/spread.js';\nimport isAxiosError from './helpers/isAxiosError.js';\nimport AxiosHeaders from \"./core/AxiosHeaders.js\";\nimport adapters from './adapters/adapters.js';\nimport HttpStatusCode from './helpers/HttpStatusCode.js';\n\n/**\n * Create an instance of Axios\n *\n * @param {Object} defaultConfig The default config for the instance\n *\n * @returns {Axios} A new instance of Axios\n */\nfunction createInstance(defaultConfig) {\n const context = new Axios(defaultConfig);\n const instance = bind(Axios.prototype.request, context);\n\n // Copy axios.prototype to instance\n utils.extend(instance, Axios.prototype, context, {allOwnKeys: true});\n\n // Copy context to instance\n utils.extend(instance, context, null, {allOwnKeys: true});\n\n // Factory for creating new instances\n instance.create = function create(instanceConfig) {\n return createInstance(mergeConfig(defaultConfig, instanceConfig));\n };\n\n return instance;\n}\n\n// Create the default instance to be exported\nconst axios = createInstance(defaults);\n\n// Expose Axios class to allow class inheritance\naxios.Axios = Axios;\n\n// Expose Cancel & CancelToken\naxios.CanceledError = CanceledError;\naxios.CancelToken = CancelToken;\naxios.isCancel = isCancel;\naxios.VERSION = VERSION;\naxios.toFormData = toFormData;\n\n// Expose AxiosError class\naxios.AxiosError = AxiosError;\n\n// alias for CanceledError for backward compatibility\naxios.Cancel = axios.CanceledError;\n\n// Expose all/spread\naxios.all = function all(promises) {\n return Promise.all(promises);\n};\n\naxios.spread = spread;\n\n// Expose isAxiosError\naxios.isAxiosError = isAxiosError;\n\n// Expose mergeConfig\naxios.mergeConfig = mergeConfig;\n\naxios.AxiosHeaders = AxiosHeaders;\n\naxios.formToJSON = thing => formDataToJSON(utils.isHTMLForm(thing) ? new FormData(thing) : thing);\n\naxios.getAdapter = adapters.getAdapter;\n\naxios.HttpStatusCode = HttpStatusCode;\n\naxios.default = axios;\n\n// this module should only have a default export\nexport default axios\n","import axios from './lib/axios.js';\n\n// This module is intended to unwrap Axios default export as named.\n// Keep top-level export same with static properties\n// so that it can keep same with es module or cjs\nconst {\n Axios,\n AxiosError,\n CanceledError,\n isCancel,\n CancelToken,\n VERSION,\n all,\n Cancel,\n isAxiosError,\n spread,\n toFormData,\n AxiosHeaders,\n HttpStatusCode,\n formToJSON,\n getAdapter,\n mergeConfig\n} = axios;\n\nexport {\n axios as default,\n Axios,\n AxiosError,\n CanceledError,\n isCancel,\n CancelToken,\n VERSION,\n all,\n Cancel,\n isAxiosError,\n spread,\n toFormData,\n AxiosHeaders,\n HttpStatusCode,\n formToJSON,\n getAdapter,\n mergeConfig\n}\n","/*!\n\tCopyright (c) 2018 Jed Watson.\n\tLicensed under the MIT License (MIT), see\n\thttp://jedwatson.github.io/classnames\n*/\n/* global define */\n\n(function () {\n\t'use strict';\n\n\tvar hasOwn = {}.hasOwnProperty;\n\n\tfunction classNames () {\n\t\tvar classes = '';\n\n\t\tfor (var i = 0; i < arguments.length; i++) {\n\t\t\tvar arg = arguments[i];\n\t\t\tif (arg) {\n\t\t\t\tclasses = appendClass(classes, parseValue(arg));\n\t\t\t}\n\t\t}\n\n\t\treturn classes;\n\t}\n\n\tfunction parseValue (arg) {\n\t\tif (typeof arg === 'string' || typeof arg === 'number') {\n\t\t\treturn arg;\n\t\t}\n\n\t\tif (typeof arg !== 'object') {\n\t\t\treturn '';\n\t\t}\n\n\t\tif (Array.isArray(arg)) {\n\t\t\treturn classNames.apply(null, arg);\n\t\t}\n\n\t\tif (arg.toString !== Object.prototype.toString && !arg.toString.toString().includes('[native code]')) {\n\t\t\treturn arg.toString();\n\t\t}\n\n\t\tvar classes = '';\n\n\t\tfor (var key in arg) {\n\t\t\tif (hasOwn.call(arg, key) && arg[key]) {\n\t\t\t\tclasses = appendClass(classes, key);\n\t\t\t}\n\t\t}\n\n\t\treturn classes;\n\t}\n\n\tfunction appendClass (value, newClass) {\n\t\tif (!newClass) {\n\t\t\treturn value;\n\t\t}\n\t\n\t\tif (value) {\n\t\t\treturn value + ' ' + newClass;\n\t\t}\n\t\n\t\treturn value + newClass;\n\t}\n\n\tif (typeof module !== 'undefined' && module.exports) {\n\t\tclassNames.default = classNames;\n\t\tmodule.exports = classNames;\n\t} else if (typeof define === 'function' && typeof define.amd === 'object' && define.amd) {\n\t\t// register as 'classnames', consistent with npm package name\n\t\tdefine('classnames', [], function () {\n\t\t\treturn classNames;\n\t\t});\n\t} else {\n\t\twindow.classNames = classNames;\n\t}\n}());\n","function r(e){var t,f,n=\"\";if(\"string\"==typeof e||\"number\"==typeof e)n+=e;else if(\"object\"==typeof e)if(Array.isArray(e)){var o=e.length;for(t=0;t<o;t++)e[t]&&(f=r(e[t]))&&(n&&(n+=\" \"),n+=f)}else for(f in e)e[f]&&(n&&(n+=\" \"),n+=f);return n}export function clsx(){for(var e,t,f=0,n=\"\",o=arguments.length;f<o;f++)(e=arguments[f])&&(t=r(e))&&(n&&(n+=\" \"),n+=t);return n}export default clsx;","import type { Argument } from 'classnames'\nimport type { ClassValue } from 'clsx'\nimport clsn from 'classnames'\nimport clsx from 'clsx'\n\nexport type StringClsnValue = Argument\nexport type StringClsxValue = ClassValue\n\nexport const stringClsn = (...args: Argument[]): string => clsn(...args)\nexport const stringClsx = clsx\n","import { at, head } from 'es-toolkit'\nimport { isNotNumber, isUndefined } from '../is'\n\n/**\n * 方法 `String.prototype.replace` 的第二个参数的快捷实现,可根据对象的键值对进行替换\n *\n * @example args = [ 'h', 0, 'hello' ]\n * @example args = [ '[h]', 'h', 0, '[h][e][l][l][o]' ]\n */\nexport function stringReplaceParametersWithObj(obj: Record<string, string>) {\n return (...args: any[]): string => {\n const substring = at(args, [-3])[0]\n if (substring && Object.prototype.hasOwnProperty.call(obj, substring)) {\n return obj[substring]\n }\n return head(args)\n }\n}\n\n/**\n * 方法 `String.prototype.slice` 的参数,额外支持索引区间排序问题\n *\n * @reference https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/slice\n * @reference https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/substring\n * @reference https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/substr\n */\nexport function stringSliceParametersWithSort(start?: number, end?: number): [number, number?] {\n const startArg = (Number.isSafeInteger(start) ? start : 0) as number // 不允许 undefined\n const endArg = !isNotNumber(end) ? end : 0 // 允许 undefined\n\n if (isUndefined(endArg)) {\n return [startArg]\n }\n if (startArg >= 0 && endArg < 0) {\n return [startArg, endArg]\n }\n if (startArg < 0 && endArg >= 0) {\n return [endArg, startArg]\n }\n // 相同区间按数值大小升序排列\n return ([startArg, endArg].sort((a, b) => a - b)) as [number, number]\n}\n","/* eslint-disable eslint-comments/no-unlimited-disable */\nimport type { AxiosInstance, AxiosRequestConfig, AxiosResponse, InternalAxiosRequestConfig } from 'axios'\nimport type { AxiosCreateDefaultsWrapper, AxiosInterceptorParameters, AxiosRequestConfigWrapper, AxiosResponseWrapper } from './interface'\nimport axios, { AxiosError } from 'axios'\nimport { CONSTANT_EMPTY_OBJECT } from '../constants'\nimport { isEmpty, isError, isNil } from '../is'\nimport { anyRuleWithBracket } from '../regexp'\nimport { stringReplaceParametersWithObj } from '../string'\n\n/**\n * 自定义 axios 请求\n * @function 1. 请求体: 支持 argsRegexp、args 实现动态路径\n * @function 2. 拦截器: 在不改变 axios 原始行为的前提下,实现对应拦截器的特性开关 (不推荐: runWhen 仅支持请求拦截器,不支持响应拦截器)\n * @function 3. 响应体: 在 safeRequest 实现错误优先\n * @reference https://axios-http.com/zh/docs/req_config\n */\nexport class Request<CustomOptions extends Record<string, any> = Record<string, any>> {\n /**\n * axios 实例\n */\n #instance: AxiosInstance\n\n /**\n * 在拦截器内获取指定名称的配置选项\n * @param {InternalAxiosRequestConfig} config 当前请求的配置\n * @param {string} optionName 配置选项名称\n * @returns {any} 配置选项的值\n */\n static getOptionValue<Value = any, ReqData = any>(config: InternalAxiosRequestConfig<ReqData>, optionName: string): Value {\n // @ts-expect-error 获取指定的配置选项的值\n return config?.fetchOptions?.[optionName]\n }\n\n /**\n * 将额外的自定义 options 合并到 fetchOptions 并往下传递\n * @function 自定义功能: 贯穿整个请求流程,实现对应拦截器的特性开关\n * @param {AxiosRequestConfigWrapper} config 请求配置对象\n * @returns {Record<string, any>} 最终的 config.fetchOptions 对象\n */\n #getInternalOptions(config: AxiosRequestConfigWrapper<CustomOptions>): Record<string, any> {\n const { fetchOptions, options } = config\n\n const mergedFetchOptions = Object.assign({}, fetchOptions, options)\n\n return mergedFetchOptions\n }\n\n /**\n * 全局注册拦截器,且不会被移除,通过特性开关外部控制\n * @description 拦截器是洋葱模型 - 拦截器 request 先注册后执行,拦截器 response 先注册先执行\n * @description 内置属性 transformRequest 和 transformResponse 是洋葱结构的最内层,可以当作特殊的拦截器\n * @param {Record<string, AxiosInterceptorParameters>} interceptors 待注册的拦截器\n * @returns {void} 无返回值\n */\n #registerInterceptors(interceptors: Array<AxiosInterceptorParameters> = []): void {\n for (const interceptor of interceptors) {\n const { request, response } = interceptor\n request && this.#instance.interceptors.request.use(request.onFulfilled, request.onRejected, request.options)\n response && this.#instance.interceptors.response.use(response.onFulfilled, response.onRejected)\n }\n }\n\n /**\n * 可复用的请求体处理逻辑,返回处理后的请求配置对象\n * @param {AxiosRequestConfigWrapper} config 请求配置对象\n * @returns {AxiosRequestConfig} 处理后的请求配置对象\n */\n #beforeRequest<\n CustomReqData = any,\n CustomReqParams = any,\n CustomReqArgs extends Record<string, any> = Record<string, any>,\n >(\n config: AxiosRequestConfigWrapper<CustomOptions, CustomReqData, CustomReqParams, CustomReqArgs>,\n ): AxiosRequestConfig<CustomReqData> {\n const {\n /** 动态路径 */\n // eslint-disable-next-line\n url, argsRegexp, args,\n /** fetchOptions 对象 */\n // eslint-disable-next-line\n fetchOptions, options,\n // 其他配置\n ...restConfig\n } = config\n\n const mergedUrl = this.getUri({ url, argsRegexp, args })\n const mergedFetchOptions = this.#getInternalOptions({ fetchOptions, options })\n const mergedConfig: AxiosRequestConfig<CustomReqData> = { ...restConfig, url: mergedUrl, fetchOptions: mergedFetchOptions }\n return mergedConfig\n }\n\n constructor(createAxiosDefaults: AxiosCreateDefaultsWrapper<CustomOptions>) {\n const { fetchOptions, options, interceptors, ...restCreateAxiosDefaults } = createAxiosDefaults\n\n const mergedFetchOptions = this.#getInternalOptions({ fetchOptions, options })\n const mergedConfig = { ...restCreateAxiosDefaults, fetchOptions: mergedFetchOptions }\n\n this.#instance = axios.create(mergedConfig)\n this.#registerInterceptors(interceptors)\n }\n\n /**\n * 获取最终的请求路径\n * @function 自定义功能: 若只包含 `{ url?; argsRegexp?; args?; }`,则仅执行动态路径参数替换\n * @param {AxiosRequestConfigWrapper} config 请求配置对象\n * @returns {string} 最终的请求路径\n */\n getUri<\n CustomReqData = any,\n CustomReqParams = any,\n CustomReqArgs extends Record<string, any> = Record<string, any>,\n >(\n config: AxiosRequestConfigWrapper<CustomOptions, CustomReqData, CustomReqParams, CustomReqArgs>,\n ): string {\n const { url = '', argsRegexp, args, ...restConfig } = config\n\n const mergedArgsRegexp = argsRegexp ?? anyRuleWithBracket.rule\n const mergedArgs = args ?? CONSTANT_EMPTY_OBJECT\n const mergedUrl = url.replace(mergedArgsRegexp, stringReplaceParametersWithObj(mergedArgs))\n\n if (isEmpty(restConfig)) return mergedUrl\n return this.#instance.getUri({ ...restConfig, url: mergedUrl })\n }\n\n /**\n * 包装请求方法\n * @param {AxiosRequestConfigWrapper} config 请求体\n * @returns {SafeRequestReturnValue} 响应体\n */\n async request<\n CustomRes = AxiosResponse<any>,\n CustomReqData = any,\n CustomReqParams = any,\n CustomReqArgs extends Record<string, any> = Record<string, any>,\n >(\n config: AxiosRequestConfigWrapper<CustomOptions, CustomReqData, CustomReqParams, CustomReqArgs>,\n ): Promise<CustomRes> {\n const mergedConfig = this.#beforeRequest(config)\n\n return this.#instance.request<any, CustomRes, CustomReqData>(mergedConfig)\n }\n\n /**\n * 包装错误优先的请求方法\n * @param {AxiosRequestConfigWrapper} config 请求体\n * @returns {SafeRequestReturnValue} 响应体\n */\n async safeRequest<\n CustomRes = AxiosResponse<any>,\n CustomReqData = any,\n CustomReqParams = any,\n CustomReqArgs extends Record<string, any> = Record<string, any>,\n >(\n config: AxiosRequestConfigWrapper<CustomOptions, CustomReqData, CustomReqParams, CustomReqArgs>,\n ): Promise<AxiosResponseWrapper<AxiosError<any, CustomReqData>, CustomRes>> {\n const mergedConfig = this.#beforeRequest(config)\n\n return this.#instance.request<any, CustomRes, CustomReqData>(mergedConfig)\n .then<AxiosResponseWrapper<AxiosError<any, CustomReqData>, CustomRes>>((response) => {\n // 不正确应用: 由于 AxiosResponseInterceptor.onRejected 未设置返回值\n if (isNil(response)) {\n return [new AxiosError('The error occurred because no return value was set in AxiosRequestInterceptor or AxiosResponseInterceptor', 'ERR_INTERCEPTOR'), undefined]\n }\n // 不正确应用: 在 AxiosResponseInterceptor.onRejected 内 `返回值为 AxiosError`\n // 不正确应用: 在 AxiosResponseInterceptor.onFulfilled 内 `返回值为 AxiosError`\n if (isError(response) && (response as any).isAxiosError) {\n return [response as unknown as AxiosError<any, CustomReqData>, undefined]\n }\n // 此处 msw 模拟网络请求的响应体不能根据 [object Response] 来判断类型,所以未对其类型进一步判断,不能防止返回其他非 response 类型\n return [null, response]\n })\n .catch<AxiosResponseWrapper<AxiosError<any, CustomReqData>, CustomRes>>((err: AxiosError<any, CustomReqData>) => {\n // 默认 reject 逻辑: `error => !status`、`AxiosRequestConfig['validateStatus']: (status) => status >= 200 && status < 300`\n // 不正确应用: 在 AxiosResponseInterceptor.onFulfilled 内 `throw AxiosError`\n return [err, undefined]\n })\n }\n}\n","/* eslint-disable no-console */\nimport type { AxiosInterceptorParameters } from './interface'\nimport { AxiosError } from 'axios'\nimport { FileBuffer } from '../file/node'\nimport { isJSONString, isNull, isString } from '../is'\nimport { Request } from './instance'\n\n/**\n * 预设拦截器 - 响应耗时\n */\nexport const presetInterceptorWithResponseLog: AxiosInterceptorParameters = {\n response: {\n onFulfilled(res) {\n const { config } = res\n const requestId = config.headers['X-Request-Id']\n const enableTimeConsuming = Request.getOptionValue<boolean | undefined>(config, 'enableTimeConsuming')\n enableTimeConsuming && console.timeEnd(`[presetInterceptorWithLog] ${requestId}`)\n return res\n },\n onRejected(err) {\n const requestId = err.config.headers['X-Request-Id']\n const enableTimeConsuming = Request.getOptionValue<boolean | undefined>(err.config, 'enableTimeConsuming')\n enableTimeConsuming && console.timeEnd(`[presetInterceptorWithLog] ${requestId}`)\n throw err\n },\n },\n}\n\n/**\n * 预设拦截器 - 响应尝试 JSON 解析,若解析成功,则将解析结果赋值给 res.dataJSON,不会影响后续拦截器的参数\n * @description 若 responseType 为 json 或 forcedJSONParsing 为 true ,则尝试解析响应体为 JSON 字符串\n * @description 其中前提是通过 `transformResponse: []` 覆盖内置的默认 transformResponse 函数\n */\nexport const presetInterceptorWithResponseJSON: AxiosInterceptorParameters = {\n response: {\n async onFulfilled(res) {\n const { config, request, data } = res\n const responseType = config.responseType\n const JSONRequested = responseType === 'json'\n const allowJSONRequested = JSONRequested || (config.transitional?.forcedJSONParsing ?? true)\n\n let tempData: string | null = null\n // 类型为字符串,且 allowJSONRequested 为 true ,则尝试解析\n if (isString(data) && allowJSONRequested) {\n tempData = data\n }\n // 类型为 Blob ,且 mime type 为 application/json ,且 allowJSONRequested 为 true ,则尝试解析\n else if (FileBuffer.isBlob(data) && data.type === 'application/json' && allowJSONRequested) {\n const buf = await FileBuffer.fromBlob(data)\n tempData = buf.toString()\n }\n\n // 不满足上述条件,直接返回\n if (isNull(tempData)) return res\n // 通过 parseReviver 尝试解析 tempData 字符串\n const [err, json] = isJSONString<any>(tempData, config.parseReviver)\n // 优先处理错误,若 silentJSONParsing 为 false ,则抛出错误;否则返回原始值\n if (err) {\n const silentJSONParsing = config.transitional?.silentJSONParsing ?? false\n if (!silentJSONParsing) {\n throw err.name === 'SyntaxError' ? AxiosError.from(err, AxiosError.ERR_BAD_RESPONSE, config, request, res) : err\n }\n return res\n }\n // 若解析成功,则返回解析结果\n (res as any).dataJSON = json\n return res\n },\n },\n}\n\n/**\n * 预设拦截器 - 请求耗时\n */\nexport const presetInterceptorWithRequestLog: AxiosInterceptorParameters = {\n request: {\n onFulfilled(config) {\n const requestId = Date.now().toString()\n config.headers['X-Request-Id'] = requestId\n const enableTimeConsuming = Request.getOptionValue<boolean | undefined>(config, 'enableTimeConsuming')\n enableTimeConsuming && console.time(`[presetInterceptorWithLog] ${requestId}`)\n return config\n },\n },\n}\n\n/**\n * 预设拦截器 - 请求认证\n */\nexport const presetInterceptorWithRequestAuth: AxiosInterceptorParameters = {\n request: {\n onFulfilled(config) {\n config.headers.setAuthorization(`Bearer ${sessionStorage.getItem('Authorization') || ''}`)\n return config\n },\n },\n}\n","import type { TreeFilterParams, TreeOptions } from './interface'\nimport { isArray } from '../is'\n\n/**\n * 递归过滤节点 - 保留匹配节点及其所有父节点路径\n * @param {TreeFilterParams} params 递归过滤节点的参数\n * @param {Required<Pick<TreeOptions, 'childrenKey' | 'filter'>>} options 递归过滤节点的选项\n * @returns {[boolean, any]} [过滤结果, 过滤后的节点]\n */\nfunction treeFilterNode(params: TreeFilterParams, options: Required<Pick<TreeOptions, 'childrenKey' | 'filter'>>): [boolean, any] {\n const { node, index, level } = params\n const { childrenKey, filter } = options\n\n // 存储当前节点有匹配的子节点\n const filteredChildren: any[] = []\n // 得到子节点,并遍历子节点,递归处理子节点\n const children = node[childrenKey]\n if (isArray(children) && children.length > 0) {\n for (let i = 0; i < children.length; i++) {\n const [flag, filteredNode] = treeFilterNode({ node: children[i], index: i, level: level + 1 }, options)\n // 如果子节点被保留(可能是匹配节点或包含匹配子节点的节点)\n flag && filteredChildren.push(filteredNode)\n }\n }\n // 如果有过滤后的子节点,更新子节点列表, 则直接返回\n if (filteredChildren.length > 0) {\n return [true, { ...node, [childrenKey]: filteredChildren }]\n }\n\n // 如果没有过滤后的子节点,则需检查当前节点是否匹配,则清空 children 属性并返回\n const matched = filter(node, index, level)\n if (matched) {\n return [true, { ...node, [childrenKey]: [] }]\n }\n\n // 当前节点既不匹配也没有匹配的子节点,则不保留该节点\n return [false, null]\n}\n\n/**\n * 过滤树形结构 -保留匹配节点及其完整父节点路径\n * @param items 原始树形数据数组\n * @param options 配置选项\n * @returns {any[]} 过滤后的树形数据\n */\nexport function treeFilter(items: any[], options?: Pick<TreeOptions, 'childrenKey' | 'filter'>): any[] {\n const { childrenKey = 'children', filter } = options || {}\n\n // 如果没有提供过滤函数,直接返回原始数据\n if (!filter) return items\n\n // 处理根节点数组\n const result: any[] = []\n for (let i = 0; i < items.length; i++) {\n const [flag, filteredNode] = treeFilterNode({ node: items[i], index: i, level: 0 }, { childrenKey, filter })\n flag && result.push(filteredNode)\n }\n\n return result\n}\n","import type { TreeOptions } from './interface'\nimport { isArray } from '../is'\n\n/**\n * @title 借助对象的引用将树形结构转化为平铺结构\n * @param {any[]} items 树形结构数组\n * @param {any} options 配置项\n * @param {any} options.childrenKey 配置项,默认值为 'children'\n * @returns 平铺结构数组\n */\nexport function treeFlatten(items: any[], options?: Pick<TreeOptions, 'childrenKey'>): any[] {\n const { childrenKey = 'children' } = options || {}\n\n // 平铺结构最终结果\n const aFlatten: any[] = []\n\n for (const item of items) {\n const { [childrenKey]: children, ...restItem } = item\n aFlatten.push(restItem)\n // item 若包含 children 则递归调用\n if (isArray(children) && children.length) {\n aFlatten.push(...treeFlatten(children, options))\n }\n }\n\n return aFlatten\n}\n","import type { TreeOptions } from './interface'\n\n/**\n * @title 借助对象的引用将平铺结构转化为树形结构\n * @param {any[]} items 平铺结构数组\n * @param {Omit<TreeOptions, 'filter'>} options 配置项\n * @returns 树形结构数组\n *\n * @reference https://juejin.cn/post/6983904373508145189#heading-8\n */\nexport function treeGenerate(items: any[], options?: Omit<TreeOptions, 'filter'>): any[] {\n const { parentIdKey = 'pid', primaryIdKey = 'id', childrenKey = 'children', rootValue = null } = options || {}\n\n // 树形结构最终结果\n const aTree: any[] = []\n // 原始数据项的主键映射\n const oItem: Record<PropertyKey, any> = {}\n\n for (const item of items) {\n const primaryId = item[primaryIdKey] as PropertyKey\n const parentId = item[parentIdKey] as PropertyKey\n\n // 更新映射\n if (!oItem[primaryId]) {\n oItem[primaryId] = { ...item, [childrenKey]: [] }\n }\n else {\n oItem[primaryId] = { ...item, [childrenKey]: oItem[primaryId][childrenKey] }\n }\n\n const treeItem = oItem[primaryId]\n // 根节点直接添加到树形结构最终结果,非根节点则添加到父节点的 children 数组中(注意此时父节点可能未加入 oItem 映射)\n if (parentId === rootValue) {\n aTree.push(treeItem)\n }\n else {\n if (!oItem[parentId]) {\n oItem[parentId] = { [childrenKey]: [] }\n }\n oItem[parentId][childrenKey].push(treeItem)\n }\n }\n\n return aTree\n}\n"],"x_google_ignoreList":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,37,38,39,40,41,42,47,48,50,51,52,53,54,55,56,57,60,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,95,96,97,98,100,103,105,106,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223],"mappings":"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GACjB,CACD,iCAAkC,CAChC,OAAU,OACV,aAAgB,GACjB,CACD,iDAAkD,CAChD,OAAU,OACV,aAAgB,GACjB,CACD,kDAAmD,CACjD,OAAU,OACV,aAAgB,GACjB,CACD,sCAAuC,CACrC,OAAU,OACX,CACD,mCAAoC,CAClC,OAAU,OACV,aAAgB,GACjB,CACD,qCAAsC,CACpC,OAAU,OACV,aAAgB,GACjB,CACD,+CAAgD,CAC9C,OAAU,OACV,aAAgB,GACjB,CACD,+BAAgC,CAC9B,OAAU,OACX,CACD,uCAAwC,CACtC,OAAU,OACV,aAAgB,GACjB,CACD,mCAAoC,CAClC,OAAU,OACV,aAAgB,GACjB,CACD,qCAAsC,CACpC,OAAU,OACV,aAAgB,GACjB,CACD,uCAAwC,CACtC,OAAU,OACV,aAAgB,GACjB,CACD,6BAA8B,CAC5B,OAAU,OACV,WAAc,CAAC,KAAK,CACrB,CACD,kCAAmC,CACjC,OAAU,OACX,CACD,wCAAyC,CACvC,OAAU,OACX,CACD,yCAA0C,CACxC,OAAU,OACX,CACD,+DAAgE,CAC9D,OAAU,OACV,aAAgB,GACjB,CACD,4CAA6C,CAC3C,OAAU,OACV,aAAgB,GACjB,CACD,oCAAqC,CACnC,OAAU,OACV,aAAgB,GACjB,CACD,iCAAkC,CAChC,OAAU,OACX,CACD,6CAA8C,CAC5C,OAAU,OACV,aAAgB,GACjB,CACD,gDAAiD,CAC/C,OAAU,OACX,CACD,mCAAoC,CAClC,OAAU,OACX,CACD,qCAAsC,CACpC,OAAU,OACV,aAAgB,GACjB,CACD,iCAAkC,CAChC,OAAU,OACX,CACD,oDAAqD,CACnD,OAAU,OACX,CACD,kDAAmD,CACjD,OAAU,OACV,aAAgB,GACjB,CACD,sCAAuC,CACrC,OAAU,OACV,aAAgB,GACjB,CACD,iCAAkC,CAChC,OAAU,OACX,CACD,2CAA4C,CAC1C,OAAU,OACV,aAAgB,GACjB,CACD,8CAA+C,CAC7C,OAAU,OACV,aAAgB,GACjB,CACD,kCAAmC,CACjC,OAAU,OACV,aAAgB,GACjB,CACD,0CAA2C,CACzC,OAAU,OACV,aAAgB,GAC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c,CACZ,OAAU,OACX,CACD,YAAa,CACX,OAAU,OACX,CACD,gCAAiC,CAC/B,OAAU,OACX,CACD,gBAAiB,CACf,OAAU,OACX,CACD,eAAgB,CACd,OAAU,OACX,CACD,cAAe,CACb,OAAU,OACV,aAAgB,GAChB,WAAc,CAAC,KAAK,MAAM,CAC3B,CACD,aAAc,CACZ,OAAU,OACX,CACD,aAAc,CACZ,OAAU,OACX,CACD,kBAAmB,CACjB,OAAU,OACX,CACD,WAAY,CACV,OAAU,OACX,CACD,cAAe,CACb,OAAU,OACX,CACD,YAAa,CACX,OAAU,OACX,CACD,qBAAsB,CACpB,OAAU,OACX,CACD,qBAAsB,CACpB,OAAU,OACX,CACD,qBAAsB,CACpB,OAAU,OACX,CACD,qBAAsB,CACpB,OAAU,OACX,CACD,WAAY,CACV,OAAU,OACX,CACD,aAAc,CACZ,OAAU,OACX,CACD,aAAc,CACZ,OAAU,OACX,CACD,iBAAkB,CAChB,OAAU,OACX,CACD,aAAc,CACZ,OAAU,OACX,CACD,iBAAkB,CAChB,OAAU,OACX,CACD,cAAe,CACb,OAAU,OACX,CACD,cAAe,CACb,OAAU,OACX,CACD,cAAe,CACb,OAAU,OACX,CACD,eAAgB,CACd,OAAU,OACX,CACD,eAAgB,CACd,OAAU,OACX,CACD,eAAgB,CACd,OAAU,OACX,CACD,gBAAiB,CACf,OAAU,OACX,CACD,gBAAiB,CACf,OAAU,OACX,CACD,eAAgB,CACd,OAAU,OACX,CACD,gBAAiB,CACf,OAAU,OACX,CACD,gBAAiB,CACf,OAAU,OACX,CACD,YAAa,CACX,OAAU,OACX,CACD,gBAAiB,CACf,OAAU,OACX,CACD,eAAgB,CACd,OAAU,OACX,CACD,eAAgB,CACd,OAAU,OACX,CACD,aAAc,CACZ,OAAU,OACX,CACD,aAAc,CACZ,OAAU,OACX,CACD,cAAe,CACb,OAAU,OACX,CACD,aAAc,CACZ,OAAU,OACX,CACD,gBAAiB,CACf,OAAU,OACX,CACD,gBAAiB,CACf,OAAU,OACX,CACD,gBAAiB,CACf,OAAU,OACX,CACD,gBAAiB,CACf,OAAU,OACX,CACD,aAAc,CACZ,OAAU,OACX,CACD,aAAc,CACZ,OAAU,OACX,CACD,cAAe,CACb,OAAU,OACX,CACD,cAAe,CACb,OAAU,OACX,CACD,cAAe,CACb,OAAU,OACX,CACD,YAAa,CACX,OAAU,OACX,CACD,gBAAiB,CACf,OAAU,OACX,CACD,kBAAmB,CACjB,OAAU,OACX,CACD,aAAc,CACZ,OAAU,OACX,CACD,mBAAoB,CAClB,OAAU,OACX,CACD,aAAc,CACZ,OAAU,SACX,CACD,YAAa,CACX,OAAU,OACX,CACD,YAAa,CACX,OAAU,OACX,CACD,YAAa,CACX,OAAU,OACV,aAAgB,GACjB,CACD,WAAY,CACV,OAAU,OACX,CACD,YAAa,CACX,OAAU,OACX,CACD,aAAc,CACZ,OAAU,OACX,CACD,iBAAkB,CAChB,OAAU,OACX,CACD,iBAAkB,CAChB,OAAU,OACX,CACD,gBAAiB,CACf,OAAU,OACX,CACD,aAAc,CACZ,OAAU,OACX,CACD,aAAc,CACZ,OAAU,SACV,WAAc,CAAC,MAAM,OAAO,MAAM,MAAM,CACzC,CACD,mBAAoB,CAClB,OAAU,OACV,WAAc,CAAC,OAAO,CACvB,CACD,YAAa,CACX,aAAgB,GAChB,WAAc,CAAC,MAAM,CACtB,CACD,YAAa,CACX,OAAU,OACV,aAAgB,GAChB,WAAc,CAAC,MAAM,OAAO,CAC7B,CACD,kBAAmB,CACjB,OAAU,OACX,CACD,YAAa,CACX,OAAU,OACX,CACD,mBAAoB,CAClB,OAAU,OACX,CACD,aAAc,CACZ,OAAU,OACV,aAAgB,GAChB,WAAc,CAAC,OAAO,MAAM,OAAO,MAAM,MAAM,MAAM,CACtD,CACD,sBAAuB,CACrB,OAAU,OACX,CACD,iBAAkB,CAChB,OAAU,SACX,CACD,YAAa,CACX,OAAU,OACV,aAAgB,GAChB,WAAc,CAAC,MAAM,MAAM,MAAM,OAAO,CACzC,CACD,aAAc,CACZ,OAAU,OACX,CACD,kBAAmB,CACjB,OAAU,OACX,CACD,aAAc,CACZ,OAAU,OACX,CACD,gBAAiB,CACf,OAAU,OACX,CACD,aAAc,CACZ,OAAU,OACX,CACD,gBAAiB,CACf,OAAU,OACX,CACD,gBAAiB,CACf,OAAU,OACX,CACD,cAAe,CACb,OAAU,OACX,CACD,kBAAmB,CACjB,OAAU,OACX,CACD,YAAa,CACX,OAAU,OACX,CACD,yBAA0B,CACxB,OAAU,OACX,CACD,iBAAkB,CAChB,OAAU,OACX,CACD,oBAAqB,CACnB,OAAU,OACX,CACD,YAAa,CACX,OAAU,OACX,CACD,YAAa,CACX,OAAU,SACV,WAAc,CAAC,MAAM,CACtB,CACD,aAAc,CACZ,OAAU,OACX,CACD,aAAc,CACZ,OAAU,SACV,WAAc,CAAC,MAAM,CACtB,CACD,YAAa,CACX,OAAU,OACX,CACD,gBAAiB,CACf,OAAU,OACX,CACD,aAAc,CACZ,OAAU,OACX,CACD,aAAc,CACZ,OAAU,OACX,CACD,gBAAiB,CACf,OAAU,OACX,CACD,cAAe,CACb,OAAU,OACX,CACD,cAAe,CACb,OAAU,OACX,CACD,YAAa,CACX,OAAU,OACX,CACD,wBAAyB,CACvB,OAAU,OACX,CACD,oBAAqB,CACnB,OAAU,OACX,CACD,uBAAwB,CACtB,OAAU,OACX,CACD,aAAc,CACZ,OAAU,OACX,CACD,eAAgB,CACd,OAAU,OACX,CACD,gBAAiB,CACf,OAAU,OACX,CACD,eAAgB,CACd,OAAU,OACX,CACD,aAAc,CACZ,OAAU,OACX,CACD,aAAc,CACZ,OAAU,OACX,CACD,eAAgB,CACd,OAAU,OACX,CACD,sBAAuB,CACrB,OAAU,OACX,CACD,gBAAiB,CACf,OAAU,OACX,CACD,qBAAsB,CACpB,OAAU,OACX,CACD,iBAAkB,CAChB,OAAU,OACX,CACD,sBAAuB,CACrB,OAAU,OACX,CACD,+BAAgC,CAC9B,OAAU,OACX,CACD,qBAAsB,CACpB,OAAU,OACX,CACD,qBAAsB,CACpB,OAAU,OACX,CACD,uBAAwB,CACtB,OAAU,OACV,WAAc,CAAC,MAAM,OAAO,CAC7B,CACD,0BAA2B,CACzB,OAAU,OACV,WAAc,CAAC,MAAM,CACtB,CACD,sBAAuB,CACrB,OAAU,OACX,CACD,0BAA2B,CACzB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"}
|