{"version":3,"sources":["jsdelivr-header.js","/npm/tfjs-npy@0.0.3/dist/npy.js"],"names":[],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA,ACNA;;;;;;;;;;;;GAaA,IAAI,UAAa,MAAQ,KAAK,WAAc,SAAU,EAAS,EAAY,EAAG,GAC1E,OAAO,IAAK,IAAM,EAAI,WAAU,SAAU,EAAS,GAC/C,SAAS,EAAU,GAAS,IAAM,EAAK,EAAU,KAAK,GAAS,CAAE,MAAO,GAAK,EAAO,EAAI,CAAE,CAC1F,SAAS,EAAS,GAAS,IAAM,EAAK,EAAiB,MAAE,GAAS,CAAE,MAAO,GAAK,EAAO,EAAI,CAAE,CAC7F,SAAS,EAAK,GAAU,EAAO,KAAO,EAAQ,EAAO,OAAS,IAAI,GAAE,SAAU,GAAW,EAAQ,EAAO,MAAQ,IAAG,KAAK,EAAW,EAAW,CAC9I,GAAM,EAAY,EAAU,MAAM,EAAS,GAAc,KAAK,OAClE,GACJ,EACI,YAAe,MAAQ,KAAK,aAAgB,SAAU,EAAS,GAC/D,IAAsG,EAAG,EAAG,EAAG,EAA3G,EAAI,CAAE,MAAO,EAAG,KAAM,WAAa,GAAW,EAAP,EAAE,GAAQ,MAAM,EAAE,GAAI,OAAO,EAAE,EAAI,EAAG,KAAM,GAAI,IAAK,IAChG,OAAO,EAAI,CAAE,KAAM,EAAK,GAAI,MAAS,EAAK,GAAI,OAAU,EAAK,IAAwB,mBAAX,SAA0B,EAAE,OAAO,UAAY,WAAa,OAAO,IAAM,GAAI,EACvJ,SAAS,EAAK,GAAK,OAAO,SAAU,GAAK,OACzC,SAAc,GACV,GAAI,EAAG,MAAM,IAAI,UAAU,mCAC3B,KAAO,OACH,GAAI,EAAI,EAAG,IAAM,EAAI,EAAU,EAAR,EAAG,GAAS,SAAW,EAAG,GAAK,QAAU,YAAc,EAAI,EAAE,KAAK,EAAG,EAAG,KAAK,KAAM,OAAO,EAEjH,OADI,EAAI,EAAG,IAAG,EAAK,CAAC,EAAG,EAAE,QACjB,EAAG,IACP,KAAK,EAAG,KAAK,EAAG,EAAI,EAAI,MACxB,KAAK,EAAc,OAAX,EAAE,QAAgB,CAAE,MAAO,EAAG,GAAI,MAAM,GAChD,KAAK,EAAG,EAAE,QAAS,EAAI,EAAG,GAAI,EAAK,CAAC,GAAI,SACxC,KAAK,EAAG,EAAK,EAAE,IAAI,MAAO,EAAE,KAAK,MAAO,SACxC,QACI,KAAM,EAAI,EAAE,MAAM,EAAI,EAAE,OAAS,GAAK,EAAE,EAAE,OAAS,KAAkB,IAAV,EAAG,IAAsB,IAAV,EAAG,IAAW,CAAE,EAAI,EAAG,QAAU,CAC3G,GAAc,IAAV,EAAG,MAAc,GAAM,EAAG,GAAK,EAAE,IAAM,EAAG,GAAK,EAAE,IAAM,CAAE,EAAE,MAAQ,EAAG,GAAI,KAAO,CACrF,GAAc,IAAV,EAAG,IAAY,EAAE,MAAQ,EAAE,GAAI,CAAE,EAAE,MAAQ,EAAE,GAAI,EAAI,EAAI,KAAO,CACpE,GAAI,GAAK,EAAE,MAAQ,EAAE,GAAI,CAAE,EAAE,MAAQ,EAAE,GAAI,EAAE,IAAI,KAAK,GAAK,KAAO,CAC9D,EAAE,IAAI,EAAE,IAAI,MAChB,EAAE,KAAK,MAAO,SAEtB,EAAK,EAAK,KAAK,EAAS,EAC5B,CAAE,MAAO,GAAK,EAAK,CAAC,EAAG,GAAI,EAAI,CAAG,CAAE,QAAU,EAAI,EAAI,CAAG,CACzD,GAAY,EAAR,EAAG,GAAQ,MAAM,EAAG,GAAI,MAAO,CAAE,MAAO,EAAG,GAAK,EAAG,QAAK,EAAQ,MAAM,EAC9E,CAtBgD,CAAK,CAAC,EAAG,GAAK,CAAG,CAuBrE,EACA,OAAO,eAAe,QAAS,aAAc,CAAE,OAAO,IACtD,IAAI,GAAK,QAAQ,yBACjB,SAAS,UAAU,GACf,OAAO,UAAU,UAAM,OAAQ,GAAQ,WACnC,IAAI,EAAO,EAAsB,EAAc,EAAQ,EAAgB,EAA0B,EAAS,EAAW,EAAI,EAAM,EAAK,EAAM,EAC1I,OAAO,YAAY,MAAM,SAAU,GAC/B,OAAQ,EAAG,OACP,KAAK,EAyBD,OAxBA,EAAQ,IAAI,IAAI,CACZ,CAAC,UAAW,OACZ,CAAC,QAAS,SACX,IAAI,EAAO,OACd,EAAW,QACE,MACb,EAAK,CAAC,EAAO,QAAS,EAAO,MAAM,KAAK,KAAO,KAE/C,EAAiB,IADjB,EAAS,cADgD,EAAG,GAC/B,uBADwC,EAAG,GACb,eADqB,EAAG,GACH,QAEjE,OACf,EAAU,IAAI,QAAQ,GAAK,EAAiB,IAAM,IAClD,GAAU,EACV,aAAa,EAAiB,EAAQ,QAAU,GAAI,GAClC,EAClB,EADkB,EACU,OAAO,EAAO,OAC1C,EAAY,EAAiB,EAAQ,OAAS,EAC9C,EAAK,IAAI,YAAY,GACrB,EAAO,IAAI,SAAS,GACpB,EAAM,EACN,EAAK,SAAS,IAAO,KACrB,EAAM,mBAAmB,EAAM,EAflB,MAeyC,GACtD,EAAK,UAAU,EAAK,EAAO,QAAQ,GAEnC,EAAM,mBAAmB,EAAM,EAD/B,GAAO,GAEA,CAAC,EAAG,EAAO,QACtB,KAAK,EAGD,IADA,aADA,EAAO,EAAG,QACO,OAAQ,OAAO,EAAO,QAClC,EAAI,EAAG,EAAI,EAAK,OAAQ,IACzB,OAAQ,EAAO,OACX,IAAK,UACD,EAAK,WAAW,EAAK,EAAK,IAAI,GAC9B,GAAO,EACP,MACJ,IAAK,QACD,EAAK,SAAS,EAAK,EAAK,IAAI,GAC5B,GAAO,EAInB,MAAO,CAAC,EAAG,GAEvB,GACJ,GACJ,CAEA,SAAS,MAAM,GACX,OAAO,EAAG,WAAa,GACvB,IAAI,EAAO,IAAI,SAAS,GACpB,EAAM,EACN,EAAQ,EAAK,SAAS,KACtB,EAAW,gBAAgB,IAAI,SAAS,EAAI,EAAK,IAErD,GADA,GAAO,EACO,MAAV,GAA+B,UAAb,EAClB,MAAM,MAAM,qBAEhB,GAAgB,QADF,CAAC,EAAK,SAAS,KAAQ,EAAK,SAAS,MAAQ,KAAK,KAE5D,MAAM,MAAM,wBAChB,IAAI,EAAY,EAAK,UAAU,GAAK,GACpC,GAAO,EACP,IAAI,EAAW,gBAAgB,IAAI,SAAS,EAAI,EAAK,IACrD,GAAO,EACP,IAAI,EAAY,EAAK,WAAa,EAC9B,EAAa,EAAS,QAAQ,OAAQ,QACrC,QAAQ,QAAS,SACjB,QAAQ,KAAM,KACd,QAAQ,QAAS,MACjB,QAAQ,OAAQ,KAChB,QAAQ,IAAK,KACd,EAAS,KAAK,MAAM,GACxB,GAAI,EAAO,cACP,MAAM,MAAM,kCAEhB,IAAI,EAAO,OAAO,EAAO,OACzB,GAAwB,QAApB,EAAc,MAAa,CAC3B,YAAY,EAAkB,EAAP,GACvB,IAAI,EAAI,EAAG,MAAM,EAAK,EAAa,EAAP,GACxB,EAAK,IAAI,aAAa,IAAI,aAAa,IAC3C,OAAO,GAAG,OAAO,EAAI,EAAO,MAAO,UACvC,CACK,GAAwB,QAApB,EAAc,MAAa,CAChC,YAAY,EAAkB,EAAP,GACnB,EAAI,EAAG,MAAM,EAAK,EAAa,EAAP,GACxB,EAAK,IAAI,aAAa,GAC1B,OAAO,GAAG,OAAO,EAAI,EAAO,MAAO,UACvC,CACK,GAAwB,QAApB,EAAc,MAAa,CAChC,YAAY,EAAkB,EAAP,GACnB,EAAI,EAAG,MAAM,EAAK,EAAa,EAAP,GACxB,EAAK,IAAI,WAAW,GAAG,QAAO,SAAU,EAAK,GAAK,OAAO,EAAI,GAAM,CAAG,IAC1E,OAAO,GAAG,OAAO,EAAI,EAAO,MAAO,QACvC,CACK,GAAwB,QAApB,EAAc,MAAa,CAChC,YAAY,EAAW,GACnB,EAAI,EAAG,MAAM,EAAK,EAAM,GACxB,EAAK,IAAI,WAAW,GACxB,OAAO,GAAG,OAAO,EAAI,EAAO,MAAO,QACvC,CAEI,MAAM,MAAM,kBAAqB,EAAc,MAAI,mBAE3D,CAEA,SAAS,OAAO,GACZ,OAAqB,IAAjB,EAAM,OACC,EAGA,EAAM,QAAO,SAAU,EAAG,GAAK,OAAO,EAAI,CAAG,GAE5D,CACA,SAAS,mBAAmB,EAAM,EAAK,GACnC,IAAK,IAAI,EAAI,EAAG,EAAI,EAAI,OAAQ,IAC5B,EAAK,QAAQ,EAAM,EAAG,EAAI,WAAW,IAEzC,OAAO,EAAM,EAAI,MACrB,CACA,SAAS,YAAY,EAAQ,GACzB,OAAO,IAAW,EAAU,UAAY,EAAS,0BAA4B,EACjF,CACA,SAAS,OAAO,EAAM,GAClB,IAAK,EACD,MAAM,MAAM,GAAO,gBAE3B,CACA,SAAS,gBAAgB,GAErB,IADA,IAAI,EAAM,GACD,EAAI,EAAG,EAAI,EAAG,WAAY,IAAK,CACpC,IAAI,EAAM,EAAG,SAAS,GACtB,GAAY,IAAR,EACA,MAEJ,GAAO,OAAO,aAAa,EAC/B,CACA,OAAO,CACX,CA1FA,QAAQ,UAAY,UAyDpB,QAAQ,MAAQ","file":"/npm/tfjs-npy@0.0.3/dist/npy.js","sourceRoot":"","sourcesContent":["/**\n * Minified by jsDelivr using Terser v5.19.2.\n * Original file: /npm/tfjs-npy@0.0.3/dist/npy.js\n *\n * Do NOT use SRI with dynamically generated files! More information: https://www.jsdelivr.com/using-sri-with-dynamic-files\n */\n","\"use strict\";\n/*!\n Copyright 2018 Propel http://propel.site/.  All rights reserved.\n Licensed under the Apache License, Version 2.0 (the \"License\");\n you may not use this file except in compliance with the License.\n You may obtain a copy of the License at\n http://www.apache.org/licenses/LICENSE-2.0\n Unless required by applicable law or agreed to in writing, software\n distributed under the License is distributed on an \"AS IS\" BASIS,\n WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n See the License for the specific language governing permissions and\n limitations under the License.\n */\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n    return new (P || (P = Promise))(function (resolve, reject) {\n        function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n        function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n        function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); }\n        step((generator = generator.apply(thisArg, _arguments || [])).next());\n    });\n};\nvar __generator = (this && this.__generator) || function (thisArg, body) {\n    var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\n    return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n    function verb(n) { return function (v) { return step([n, v]); }; }\n    function step(op) {\n        if (f) throw new TypeError(\"Generator is already executing.\");\n        while (_) try {\n            if (f = 1, y && (t = y[op[0] & 2 ? \"return\" : op[0] ? \"throw\" : \"next\"]) && !(t = t.call(y, op[1])).done) return t;\n            if (y = 0, t) op = [0, t.value];\n            switch (op[0]) {\n                case 0: case 1: t = op; break;\n                case 4: _.label++; return { value: op[1], done: false };\n                case 5: _.label++; y = op[1]; op = [0]; continue;\n                case 7: op = _.ops.pop(); _.trys.pop(); continue;\n                default:\n                    if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n                    if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n                    if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n                    if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n                    if (t[2]) _.ops.pop();\n                    _.trys.pop(); continue;\n            }\n            op = body.call(thisArg, _);\n        } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n        if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n    }\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar tf = require(\"@tensorflow/tfjs-core\");\nfunction serialize(tensor) {\n    return __awaiter(this, void 0, void 0, function () {\n        var descr, magicStr, versionStr, _a, d, fo, s, header, unpaddedLength, padding, bytesPerElement, dataLen, totalSize, ab, view, pos, data, i;\n        return __generator(this, function (_b) {\n            switch (_b.label) {\n                case 0:\n                    descr = new Map([\n                        [\"float32\", \"<f4\"],\n                        [\"int32\", \"<i4\"],\n                    ]).get(tensor.dtype);\n                    magicStr = \"NUMPY\";\n                    versionStr = \"\\x01\\x00\";\n                    _a = [descr, \"False\", tensor.shape.join(\",\") + \",\"], d = _a[0], fo = _a[1], s = _a[2];\n                    header = \"{'descr': '\" + d + \"', 'fortran_order': \" + fo + \", 'shape': (\" + s + \"), }\";\n                    unpaddedLength = 1 + magicStr.length + versionStr.length +\n                        2 + header.length;\n                    padding = \" \".repeat((16 - unpaddedLength % 16) % 16);\n                    header += padding;\n                    assertEqual((unpaddedLength + padding.length) % 16, 0);\n                    bytesPerElement = 4;\n                    dataLen = bytesPerElement * numEls(tensor.shape);\n                    totalSize = unpaddedLength + padding.length + dataLen;\n                    ab = new ArrayBuffer(totalSize);\n                    view = new DataView(ab);\n                    pos = 0;\n                    view.setUint8(pos++, 0x93);\n                    pos = writeStrToDataView(view, magicStr + versionStr, pos);\n                    view.setUint16(pos, header.length, true);\n                    pos += 2;\n                    pos = writeStrToDataView(view, header, pos);\n                    return [4, tensor.data()];\n                case 1:\n                    data = _b.sent();\n                    assertEqual(data.length, numEls(tensor.shape));\n                    for (i = 0; i < data.length; i++) {\n                        switch (tensor.dtype) {\n                            case \"float32\":\n                                view.setFloat32(pos, data[i], true);\n                                pos += 4;\n                                break;\n                            case \"int32\":\n                                view.setInt32(pos, data[i], true);\n                                pos += 4;\n                                break;\n                        }\n                    }\n                    return [2, ab];\n            }\n        });\n    });\n}\nexports.serialize = serialize;\nfunction parse(ab) {\n    assert(ab.byteLength > 5);\n    var view = new DataView(ab);\n    var pos = 0;\n    var byte0 = view.getUint8(pos++);\n    var magicStr = dataViewToAscii(new DataView(ab, pos, 5));\n    pos += 5;\n    if (byte0 !== 0x93 || magicStr !== \"NUMPY\")\n        throw Error(\"Not a numpy file.\");\n    var version = [view.getUint8(pos++), view.getUint8(pos++)].join(\".\");\n    if (version !== \"1.0\")\n        throw Error(\"Unsupported version.\");\n    var headerLen = view.getUint16(pos, true);\n    pos += 2;\n    var headerPy = dataViewToAscii(new DataView(ab, pos, headerLen));\n    pos += headerLen;\n    var bytesLeft = view.byteLength - pos;\n    var headerJson = headerPy.replace(\"True\", \"true\")\n        .replace(\"False\", \"false\")\n        .replace(/'/g, \"\\\"\")\n        .replace(/,\\s*}/, \" }\")\n        .replace(/,?\\)/, \"]\")\n        .replace(\"(\", \"[\");\n    var header = JSON.parse(headerJson);\n    if (header.fortran_order) {\n        throw Error(\"NPY parse error. Implement me.\");\n    }\n    var size = numEls(header.shape);\n    if (header[\"descr\"] === \"<f8\") {\n        assertEqual(bytesLeft, size * 8);\n        var s = ab.slice(pos, pos + size * 8);\n        var ta = new Float32Array(new Float64Array(s));\n        return tf.tensor(ta, header.shape, \"float32\");\n    }\n    else if (header[\"descr\"] === \"<f4\") {\n        assertEqual(bytesLeft, size * 4);\n        var s = ab.slice(pos, pos + size * 4);\n        var ta = new Float32Array(s);\n        return tf.tensor(ta, header.shape, \"float32\");\n    }\n    else if (header[\"descr\"] === \"<i8\") {\n        assertEqual(bytesLeft, size * 8);\n        var s = ab.slice(pos, pos + size * 8);\n        var ta = new Int32Array(s).filter(function (val, i) { return i % 2 === 0; });\n        return tf.tensor(ta, header.shape, \"int32\");\n    }\n    else if (header[\"descr\"] === \"|u1\") {\n        assertEqual(bytesLeft, size);\n        var s = ab.slice(pos, pos + size);\n        var ta = new Uint8Array(s);\n        return tf.tensor(ta, header.shape, \"int32\");\n    }\n    else {\n        throw Error(\"Unknown dtype \\\"\" + header[\"descr\"] + \"\\\". Implement me.\");\n    }\n}\nexports.parse = parse;\nfunction numEls(shape) {\n    if (shape.length === 0) {\n        return 1;\n    }\n    else {\n        return shape.reduce(function (a, b) { return a * b; });\n    }\n}\nfunction writeStrToDataView(view, str, pos) {\n    for (var i = 0; i < str.length; i++) {\n        view.setInt8(pos + i, str.charCodeAt(i));\n    }\n    return pos + str.length;\n}\nfunction assertEqual(actual, expected) {\n    assert(actual === expected, \"actual \" + actual + \" not equal to expected \" + expected);\n}\nfunction assert(cond, msg) {\n    if (!cond) {\n        throw Error(msg || \"assert failed\");\n    }\n}\nfunction dataViewToAscii(dv) {\n    var out = '';\n    for (var i = 0; i < dv.byteLength; i++) {\n        var val = dv.getUint8(i);\n        if (val === 0) {\n            break;\n        }\n        out += String.fromCharCode(val);\n    }\n    return out;\n}\n"]}