From 8b7c134b1068d7b06d0ee492c166e8898da2252d Mon Sep 17 00:00:00 2001 From: Vladimir Mandic Date: Mon, 9 Nov 2020 09:31:11 -0500 Subject: [PATCH] added additional gestures --- assets/facemesh.png | Bin 0 -> 1117521 bytes dist/demo-browser-index.js | 17 +++++++++++------ dist/demo-browser-index.js.map | 4 ++-- dist/demo-browser-index.json | 8 ++++---- dist/human.esm-nobundle.js | 10 +++++----- dist/human.esm-nobundle.js.map | 4 ++-- dist/human.esm-nobundle.json | 8 ++++---- dist/human.esm.js | 4 ++-- dist/human.esm.js.map | 4 ++-- dist/human.esm.json | 8 ++++---- dist/human.js | 4 ++-- dist/human.js.map | 4 ++-- dist/human.json | 8 ++++---- dist/human.node-nobundle.js | 10 +++++----- dist/human.node-nobundle.js.map | 4 ++-- dist/human.node.js | 4 ++-- dist/human.node.js.map | 4 ++-- dist/human.node.json | 8 ++++---- src/gesture.js | 13 ++++++++++--- src/human.js | 2 +- wiki | 2 +- 21 files changed, 71 insertions(+), 59 deletions(-) create mode 100644 assets/facemesh.png diff --git a/assets/facemesh.png b/assets/facemesh.png new file mode 100644 index 0000000000000000000000000000000000000000..a976dd4dc3a845be4d8b1d15402e433d8b8f4955 GIT binary patch literal 1117521 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

-NP7H=xW@E_^8eqxEO-1{}4>S@( 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

    @`1Po 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

    M4kEf9TLEZnHyfM&;Zd^} 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 z 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 z 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

    sc%tQj`X&uqKt)t)XC9 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

    n})B4&%5KBHe#u!$RWNrx@gyB}n>~j}07=`uSv? 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 V!fG`N5EjFJCnu#WSuJ4_{67(?6#4)F literal 0 HcmV?d00001 diff --git a/dist/demo-browser-index.js b/dist/demo-browser-index.js index 5895f45e..1d882562 100644 --- a/dist/demo-browser-index.js +++ b/dist/demo-browser-index.js @@ -32959,11 +32959,16 @@ var rL = we((pc) => { return []; const t = []; for (const e of n) { - e.annotations.rightCheek && e.annotations.leftCheek && e.annotations.rightCheek.length > 0 && e.annotations.leftCheek.length > 0 && t.push(`facing ${e.annotations.rightCheek[0][2] > 0 || e.annotations.leftCheek[0][2] < 0 ? "right" : "left"}`); - const r = Math.abs(e.mesh[374][1] - e.mesh[386][1]) / Math.abs(e.mesh[443][1] - e.mesh[450][1]); - r < 0.2 && t.push("blink left eye"); - const i = Math.abs(e.mesh[145][1] - e.mesh[159][1]) / Math.abs(e.mesh[223][1] - e.mesh[230][1]); - i < 0.2 && t.push("blink right eye"); + const r = e.mesh[35][2] - e.mesh[263][2]; + Math.abs(r) < 10 ? t.push("facing camera") : t.push(`facing ${r < 0 ? "right" : "left"}`); + const i = Math.abs(e.mesh[374][1] - e.mesh[386][1]) / Math.abs(e.mesh[443][1] - e.mesh[450][1]); + i < 0.2 && t.push("blink left eye"); + const a = Math.abs(e.mesh[145][1] - e.mesh[159][1]) / Math.abs(e.mesh[223][1] - e.mesh[230][1]); + a < 0.2 && t.push("blink right eye"); + const s = Math.min(100, 500 * Math.abs(e.mesh[13][1] - e.mesh[14][1]) / Math.abs(e.mesh[10][1] - e.mesh[152][1])); + s > 10 && t.push(`mouth ${Math.trunc(s)}% open`); + const o = e.mesh[152][2]; + Math.abs(o) > 10 && t.push(`head ${o < 0 ? "up" : "down"}`); } return t; }; @@ -33258,7 +33263,7 @@ class hG { const l = sG.process(n, this.config); this.perf.image = Math.trunc(ut() - e), this.analyze("Get Image:"), this.config.async ? (o = this.config.face.enabled ? this.detectFace(l.tensor) : [], this.perf.face && delete this.perf.face) : (this.state = "run:face", e = ut(), o = this.config.face.enabled ? await this.detectFace(l.tensor) : [], this.perf.face = Math.trunc(ut() - e)), this.analyze("Start Body:"), this.config.async ? (a = this.config.body.enabled ? this.models.posenet.estimatePoses(l.tensor, this.config) : [], this.perf.body && delete this.perf.body) : (this.state = "run:body", e = ut(), a = this.config.body.enabled ? await this.models.posenet.estimatePoses(l.tensor, this.config) : [], this.perf.body = Math.trunc(ut() - e)), this.analyze("End Body:"), this.analyze("Start Hand:"), this.config.async ? (s = this.config.hand.enabled ? this.models.handpose.estimateHands(l.tensor, this.config.hand) : [], this.perf.hand && delete this.perf.hand) : (this.state = "run:hand", e = ut(), s = this.config.hand.enabled ? await this.models.handpose.estimateHands(l.tensor, this.config.hand) : [], this.perf.hand = Math.trunc(ut() - e)), this.config.async && ([o, a, s] = await Promise.all([o, a, s])), l.tensor.dispose(), this.config.scoped && Kt.engine().endScope(), this.analyze("End Scope:"); let u = []; - this.config.gesture.enabled && (e = ut(), u = {body: nf.body(a), hand: nf.hand(s), face: nf.face(o)}, this.config.async ? this.perf.gesture && delete this.perf.gesture : this.perf.gesture = Math.trunc(ut() - e)), this.perf.total = Math.trunc(ut() - c), this.state = "idle", i({face: o, body: a, hand: s, gesture: u, performance: this.perf, canvas: l.canvas}); + this.config.gesture.enabled && (e = ut(), u = {face: nf.face(o), body: nf.body(a), hand: nf.hand(s)}, this.config.async ? this.perf.gesture && delete this.perf.gesture : this.perf.gesture = Math.trunc(ut() - e)), this.perf.total = Math.trunc(ut() - c), this.state = "idle", i({face: o, body: a, hand: s, gesture: u, performance: this.perf, canvas: l.canvas}); }); } } diff --git a/dist/demo-browser-index.js.map b/dist/demo-browser-index.js.map index 8ab0b5bd..1c931669 100644 --- a/dist/demo-browser-index.js.map +++ b/dist/demo-browser-index.js.map @@ -1,7 +1,7 @@ { "version": 3, "sources": ["empty:/home/vlado/dev/human/node_modules/node-fetch/browser.js", "empty:util", "empty:crypto", "../node_modules/@tensorflow/tfjs-core/src/backends/backend.ts", "../node_modules/@tensorflow/tfjs-core/src/util_base.ts", "../node_modules/@tensorflow/tfjs-core/src/environment.ts", "../node_modules/@tensorflow/tfjs-core/src/global_util.ts", "../node_modules/@tensorflow/tfjs-core/src/kernel_names.ts", "../node_modules/@tensorflow/tfjs-core/src/kernel_registry.ts", "../node_modules/@tensorflow/tfjs-core/src/util.ts", "../node_modules/@tensorflow/tfjs-core/src/profiler.ts", "../node_modules/@tensorflow/tfjs-core/src/tape.ts", "../node_modules/@tensorflow/tfjs-core/src/tensor_format.ts", "../node_modules/@tensorflow/tfjs-core/src/tensor.ts", "../node_modules/@tensorflow/tfjs-core/src/types.ts", "../node_modules/@tensorflow/tfjs-core/src/tensor_util.ts", "../node_modules/@tensorflow/tfjs-core/src/engine.ts", "../node_modules/@tensorflow/tfjs-core/src/device_util.ts", "../node_modules/@tensorflow/tfjs-core/src/flags.ts", "../node_modules/@tensorflow/tfjs-core/src/tensor_util_env.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/operation.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/complex.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/tensor_ops_util.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/tensor.ts", "../node_modules/@tensorflow/tfjs-core/src/io/types.ts", "../node_modules/@tensorflow/tfjs-core/src/io/io_utils.ts", "../node_modules/@tensorflow/tfjs-core/src/io/router_registry.ts", "../node_modules/@tensorflow/tfjs-core/src/io/indexed_db.ts", "../node_modules/@tensorflow/tfjs-core/src/io/local_storage.ts", "../node_modules/@tensorflow/tfjs-core/src/io/model_management.ts", "../node_modules/@tensorflow/tfjs-core/src/platforms/platform_browser.ts", "../node_modules/@tensorflow/tfjs-core/src/platforms/platform_node.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/buffer.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/cast.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/clone.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/print.ts", "../node_modules/@tensorflow/tfjs-core/src/base_side_effects.ts", "../node_modules/@tensorflow/tfjs-core/src/io/browser_files.ts", "../node_modules/@tensorflow/tfjs-core/src/io/progress.ts", "../node_modules/@tensorflow/tfjs-core/src/io/weights_loader.ts", "../node_modules/@tensorflow/tfjs-core/src/io/http.ts", "../node_modules/@tensorflow/tfjs-core/src/io/passthrough.ts", "../node_modules/@tensorflow/tfjs-core/src/io/io.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/reshape.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/mat_mul.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/one_hot.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/transpose.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/confusion_matrix.ts", "../node_modules/@tensorflow/tfjs-core/src/math.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/tensor3d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/browser.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/gather_nd_util.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/scatter_nd_util.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/slice_util.ts", "../node_modules/@tensorflow/tfjs-core/src/serialization.ts", "../node_modules/@tensorflow/tfjs-core/src/test_util.ts", "../node_modules/@tensorflow/tfjs-core/src/version.ts", "../node_modules/@tensorflow/tfjs-core/src/globals.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/add.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/floorDiv.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/div.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/mul.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/abs.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/acos.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/acosh.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/add_n.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/axis_util.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/all.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/any.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/arg_max.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/arg_min.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/asin.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/asinh.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/atan.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/atan2.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/atanh.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/conv_util.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/avg_pool.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/avg_pool_3d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/concat_util.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/concat.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/sigmoid.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/slice.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/tanh.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/basic_lstm_cell.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/batch_to_space_nd.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/batchnorm_util.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/batchnorm.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/batchnorm2d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/batchnorm3d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/batchnorm4d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/broadcast_to.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/ceil.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/clip_by_value.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/concat_1d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/concat_2d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/concat_3d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/concat_4d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/conv2d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/conv1d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/conv2d_backprop_input.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/conv2d_transpose.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/conv3d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/conv3d_backprop_input.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/conv3d_transpose.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/cos.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/cosh.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/cumsum.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/depth_to_space.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/depthwise_conv2d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/diag.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/dilation2d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/broadcast_util.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/equal.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/where.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/zeros_like.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/div_no_nan.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/dot.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/elu.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/erf.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/exp.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/expand_dims.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/expm1.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/tile.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/eye.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/fill.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/floor.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/reduce_util.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/segment_util.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/gather.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/greater.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/greater_equal.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/imag.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/is_finite.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/is_inf.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/is_nan.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/maximum.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/scalar.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/leaky_relu.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/less.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/less_equal.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/linspace.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/local_response_normalization.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/log.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/log1p.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/neg.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/softplus.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/log_sigmoid.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/max.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/sub.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/sum.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/log_softmax.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/log_sum_exp.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/logical_and.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/logical_not.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/logical_or.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/logical_xor.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/max_pool.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/max_pool_3d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/max_pool_with_argmax.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/zeros.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/ones.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/mean.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/min.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/minimum.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/mirror_pad.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/mod.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/square.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/moments.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/multi_rnn_cell.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/multinomial.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/not_equal.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/real.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/ones_like.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/outer_product.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/pad.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/pad1d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/pad2d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/pad3d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/pad4d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/space_to_batch_nd.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/pool.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/pow.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/prelu.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/prod.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/rand.ts", "../node_modules/@tensorflow/tfjs-core/node_modules/seedrandom/lib/alea.js", "../node_modules/@tensorflow/tfjs-core/node_modules/seedrandom/lib/xor128.js", "../node_modules/@tensorflow/tfjs-core/node_modules/seedrandom/lib/xorwow.js", "../node_modules/@tensorflow/tfjs-core/node_modules/seedrandom/lib/xorshift7.js", "../node_modules/@tensorflow/tfjs-core/node_modules/seedrandom/lib/xor4096.js", "../node_modules/@tensorflow/tfjs-core/node_modules/seedrandom/lib/tychei.js", "../node_modules/@tensorflow/tfjs-core/node_modules/seedrandom/seedrandom.js", "../node_modules/@tensorflow/tfjs-core/node_modules/seedrandom/index.js", "../node_modules/@tensorflow/tfjs-core/src/ops/rand_util.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/random_gamma.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/random_normal.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/random_uniform.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/tensor1d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/range.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/reciprocal.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/relu.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/relu6.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/reverse.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/reverse_1d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/reverse_2d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/reverse_3d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/reverse_4d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/round.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/rsqrt.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/selu.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/separable_conv2d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/setdiff1d_async.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/sign.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/sin.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/sinh.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/slice1d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/slice2d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/slice3d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/slice4d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/softmax.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/spectral/fft.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/spectral/ifft.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/spectral/irfft.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/split_util.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/split.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/spectral/rfft.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/sqrt.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/squared_difference.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/squeeze.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/stack.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/step.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/strided_slice.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/tan.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/tensor2d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/tensor4d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/tensor5d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/tensor6d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/topk.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/truncated_normal.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/unique.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/unsorted_segment_sum.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/unstack.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/variable.ts", "../node_modules/@tensorflow/tfjs-core/src/backends/where_impl.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/where_async.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/boolean_mask.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/compare.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/binary_ops.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/norm.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/moving_average.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/scatter_nd.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/sparse_to_dense_util.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/sparse_to_dense.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/gather_nd.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/dropout_util.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/dropout.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/signal_ops_util.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/in_top_k.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/conv2d_backprop_filter.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/fused_util.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/fused/conv2d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/depthwise_conv2d_native_backprop_filter.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/depthwise_conv2d_native_backprop_input.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/fused/depthwise_conv2d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/fused/mat_mul.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/fused_ops.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/signal/hamming_window.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/signal/hann_window.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/signal/frame.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/signal/stft.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/image/crop_and_resize.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/image/flip_left_right.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/image/rotate_with_offset.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/nonmax_util.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/image/non_max_suppression.ts", "../node_modules/@tensorflow/tfjs-core/src/backends/array_util.ts", "../node_modules/@tensorflow/tfjs-core/src/backends/non_max_suppression_impl.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/image/non_max_suppression_async.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/image/non_max_suppression_with_score.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/image/non_max_suppression_with_score_async.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/image/non_max_suppression_padded.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/image/non_max_suppression_padded_async.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/image/resize_bilinear.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/image/resize_nearest_neighbor.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/linalg/band_part.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/linalg/gram_schmidt.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/linalg/qr.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/loss_ops_utils.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/losses/compute_weighted_loss.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/losses/absolute_difference.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/losses/cosine_distance.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/losses/hinge_loss.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/losses/huber_loss.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/losses/log_loss.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/losses/mean_squared_error.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/losses/sigmoid_cross_entropy.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/losses/softmax_cross_entropy.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/ops.ts", "../node_modules/@tensorflow/tfjs-core/src/optimizers/optimizer.ts", "../node_modules/@tensorflow/tfjs-core/src/optimizers/adadelta_optimizer.ts", "../node_modules/@tensorflow/tfjs-core/src/optimizers/adagrad_optimizer.ts", "../node_modules/@tensorflow/tfjs-core/src/optimizers/adam_optimizer.ts", "../node_modules/@tensorflow/tfjs-core/src/optimizers/adamax_optimizer.ts", "../node_modules/@tensorflow/tfjs-core/src/optimizers/sgd_optimizer.ts", "../node_modules/@tensorflow/tfjs-core/src/optimizers/momentum_optimizer.ts", "../node_modules/@tensorflow/tfjs-core/src/optimizers/rmsprop_optimizer.ts", "../node_modules/@tensorflow/tfjs-core/src/optimizers/optimizer_constructors.ts", "../node_modules/@tensorflow/tfjs-core/src/train.ts", "../node_modules/@tensorflow/tfjs-core/src/browser_util.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/rotate_util.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/array_ops_util.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/selu_util.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/erf_util.ts", "../node_modules/@tensorflow/tfjs-core/src/log.ts", "../node_modules/@tensorflow/tfjs-core/src/backends/complex_util.ts", "../node_modules/@tensorflow/tfjs-core/src/backends/backend_util.ts", "../node_modules/@tensorflow/tfjs-core/src/backends/split_shared.ts", "../node_modules/@tensorflow/tfjs-core/src/backends/tile_impl.ts", "../node_modules/@tensorflow/tfjs-core/src/backends/topk_impl.ts", "../node_modules/@tensorflow/tfjs-core/src/backends/kernel_impls.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Abs_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Acos_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Acosh_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Add_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/AddN_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/ArgMax_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/ArgMin_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Asin_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Asinh_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Atan2_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Atan_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Atanh_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/avg_pool_3d_backprop.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/AvgPool3D_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/avg_pool_backprop.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/AvgPool_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/BatchMatMul_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/BatchToSpaceND_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/BroadcastTo_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Cast_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Ceil_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/ClipByValue_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Concat_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Conv2D_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Conv2DBackpropInput_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/conv3d_backprop_filter.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Conv3D_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Cos_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Cosh_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Cumsum_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/DepthwiseConv2dNative_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Dilation2D_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Div_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Elu_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Erf_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Exp_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Expm1_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Floor_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/FloorDiv_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/FusedBatchNorm_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/GatherV2_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/GreaterEqual_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Identity_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/IsFinite_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/IsInf_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/IsNan_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Log1p_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Log_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/LogSoftmax_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/local_response_normalization_backprop.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/LRN_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/min_max_grad_util.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Max_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Maximum_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/max_pool_3d_backprop.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/MaxPool3D_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/max_pool_backprop.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/MaxPool_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Min_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Minimum_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/MirrorPad_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Mod_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Multiply_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Negate_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/OneHot_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/OnesLike_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/PadV2_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Pow_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Prelu_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Reciprocal_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Relu6_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Relu_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Reshape_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/ResizeBilinear_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/ResizeNearestNeighbor_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Reverse_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Round_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Rsqrt_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/SelectV2_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Selu_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Sigmoid_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Sign_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Sin_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Sinh_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Slice_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Softmax_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Softplus_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/SpaceToBatchND_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/SplitV_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Sqrt_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Square_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/SquaredDifference_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Step_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Sub_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Sum_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Tan_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Tanh_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Tile_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Transpose_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Unpack_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/UnsortedSegmentSum_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/ZerosLike_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/register_all_gradients.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/abs.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/acos.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/acosh.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/add_strict.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/add.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/all.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/any.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/arg_max.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/arg_min.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/as_scalar.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/as_type.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/as1d.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/as2d.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/as3d.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/as4d.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/as5d.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/asin.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/asinh.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/atan.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/atan2.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/atanh.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/avg_pool.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/batch_to_space_nd.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/batchnorm.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/broadcast_to.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/cast.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/ceil.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/clip_by_value.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/concat.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/conv1d.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/conv2d_transpose.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/conv2d.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/cos.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/cosh.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/cumsum.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/depth_to_space.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/depthwise_conv2D_deprecated.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/depthwise_conv2d.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/dilation2d.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/div_no_nan.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/div_strict.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/div.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/dot.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/elu.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/equal_strict.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/equal.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/erf.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/exp.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/expand_dims.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/expm1.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/fft.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/flatten.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/floor.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/floorDiv.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/gather.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/greater_equal_strict.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/greater_equal.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/greater_strict.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/greater.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/ifft.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/irfft.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/is_finite.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/is_inf.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/is_nan.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/leaky_relu.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/less_equal_strict.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/less_equal.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/less_strict.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/less.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/local_response_normalization.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/log_sigmoid.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/log_softmax.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/log_sum_exp.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/log.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/log1p.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/logical_and.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/logical_not.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/logical_or.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/logical_xor.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/mat_mul.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/max_pool.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/max.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/maximum_strict.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/maximum.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/mean.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/min.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/minimum_strict.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/minimum.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/mirror_pad.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/mod_strict.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/mod.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/mul_strict.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/mul.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/neg.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/norm.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/not_equal_strict.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/not_equal.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/one_hot.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/ones_like.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/pad.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/pool.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/pow_strict.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/pow.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/prelu.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/prod.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/reciprocal.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/relu.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/relu6.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/reshape_as.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/reshape.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/resize_bilinear.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/resize_nearest_neighbor.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/reverse.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/rfft.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/round.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/rsqrt.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/selu.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/separable_conv2d.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/sigmoid.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/sign.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/sin.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/sinh.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/slice.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/softmax.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/softplus.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/space_to_batch_nd.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/split.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/sqrt.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/square.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/squared_difference.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/squared_difference_strict.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/squeeze.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/stack.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/step.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/strided_slice.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/sub_strict.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/sub.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/sum.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/tan.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/tanh.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/tile.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/to_bool.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/to_float.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/to_int.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/topk.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/transpose.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/unique.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/unsorted_segment_sum.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/unstack.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/where.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/zeros_like.ts", "../node_modules/@tensorflow/tfjs-layers/src/backend/common.ts", "../node_modules/@tensorflow/tfjs-layers/src/errors.ts", "../node_modules/@tensorflow/tfjs-layers/src/utils/generic_utils.ts", "../node_modules/@tensorflow/tfjs-layers/src/constraints.ts", "../node_modules/@tensorflow/tfjs-layers/src/exports_constraints.ts", "../node_modules/@tensorflow/tfjs-layers/src/keras_format/common.ts", "../node_modules/@tensorflow/tfjs-layers/src/common.ts", "../node_modules/@tensorflow/tfjs-layers/src/utils/math_utils.ts", "../node_modules/@tensorflow/tfjs-layers/src/backend/tfjs_backend.ts", "../node_modules/@tensorflow/tfjs-layers/src/keras_format/initializer_config.ts", "../node_modules/@tensorflow/tfjs-layers/src/initializers.ts", "../node_modules/@tensorflow/tfjs-layers/src/exports_initializers.ts", "../node_modules/@tensorflow/tfjs-layers/src/backend/state.ts", "../node_modules/@tensorflow/tfjs-layers/src/utils/types_utils.ts", "../node_modules/@tensorflow/tfjs-layers/src/utils/variable_utils.ts", "../node_modules/@tensorflow/tfjs-layers/src/variables.ts", "../node_modules/@tensorflow/tfjs-layers/src/engine/topology.ts", "../node_modules/@tensorflow/tfjs-layers/src/engine/input_layer.ts", "../node_modules/@tensorflow/tfjs-layers/src/logs.ts", "../node_modules/@tensorflow/tfjs-layers/src/base_callbacks.ts", "../node_modules/@tensorflow/tfjs-layers/src/layers/serialization.ts", "../node_modules/@tensorflow/tfjs-layers/src/losses.ts", "../node_modules/@tensorflow/tfjs-layers/src/metrics.ts", "../node_modules/@tensorflow/tfjs-layers/src/optimizers.ts", "../node_modules/@tensorflow/tfjs-layers/src/user_defined_metadata.ts", "../node_modules/@tensorflow/tfjs-layers/src/utils/layer_utils.ts", "../node_modules/@tensorflow/tfjs-layers/src/utils/serialization_utils.ts", "../node_modules/@tensorflow/tfjs-layers/src/version.ts", "../node_modules/@tensorflow/tfjs-layers/src/engine/executor.ts", "../node_modules/@tensorflow/tfjs-layers/src/engine/container.ts", "../node_modules/@tensorflow/tfjs-layers/src/engine/training_utils.ts", "../node_modules/@tensorflow/tfjs-layers/src/engine/training_dataset.ts", "../node_modules/@tensorflow/tfjs-layers/src/engine/training_tensors.ts", "../node_modules/@tensorflow/tfjs-layers/src/engine/training.ts", "../node_modules/@tensorflow/tfjs-layers/src/models.ts", "../node_modules/@tensorflow/tfjs-layers/src/exports.ts", "../node_modules/@tensorflow/tfjs-layers/src/activations.ts", "../node_modules/@tensorflow/tfjs-layers/src/regularizers.ts", "../node_modules/@tensorflow/tfjs-layers/src/layers/advanced_activations.ts", "../node_modules/@tensorflow/tfjs-layers/src/utils/conv_utils.ts", "../node_modules/@tensorflow/tfjs-layers/src/layers/convolutional.ts", "../node_modules/@tensorflow/tfjs-layers/src/layers/convolutional_depthwise.ts", "../node_modules/@tensorflow/tfjs-layers/src/layers/recurrent.ts", "../node_modules/@tensorflow/tfjs-layers/src/layers/convolutional_recurrent.ts", "../node_modules/@tensorflow/tfjs-layers/src/layers/core.ts", "../node_modules/@tensorflow/tfjs-layers/src/layers/embeddings.ts", "../node_modules/@tensorflow/tfjs-layers/src/layers/merge.ts", "../node_modules/@tensorflow/tfjs-layers/src/layers/noise.ts", "../node_modules/@tensorflow/tfjs-layers/src/layers/normalization.ts", "../node_modules/@tensorflow/tfjs-layers/src/layers/padding.ts", "../node_modules/@tensorflow/tfjs-layers/src/layers/pooling.ts", "../node_modules/@tensorflow/tfjs-layers/src/layers/wrappers.ts", "../node_modules/@tensorflow/tfjs-layers/src/exports_layers.ts", "../node_modules/@tensorflow/tfjs-layers/src/exports_metrics.ts", "../node_modules/@tensorflow/tfjs-layers/src/exports_models.ts", "../node_modules/@tensorflow/tfjs-layers/src/exports_regularizers.ts", "../node_modules/@tensorflow/tfjs-layers/src/callbacks.ts", "../node_modules/@tensorflow/tfjs-converter/src/data/compiled_api.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/custom_op/register.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/executors/utils.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/op_list/arithmetic.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/op_list/basic_math.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/op_list/control.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/op_list/convolution.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/op_list/creation.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/op_list/dynamic.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/op_list/evaluation.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/op_list/graph.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/op_list/hash_table.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/op_list/image.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/op_list/logical.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/op_list/matrices.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/op_list/normalization.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/op_list/reduction.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/op_list/slice_join.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/op_list/spectral.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/op_list/transformation.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/operation_mapper.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/custom_op/node_value_impl.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/executors/arithmetic_executor.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/executors/basic_math_executor.ts", "../node_modules/@tensorflow/tfjs-converter/src/executor/tensor_utils.ts", "../node_modules/@tensorflow/tfjs-converter/src/executor/tensor_array.ts", "../node_modules/@tensorflow/tfjs-converter/src/executor/tensor_list.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/executors/control_executor.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/executors/convolution_executor.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/executors/creation_executor.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/executors/dynamic_executor.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/executors/evaluation_executor.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/executors/graph_executor.ts", "../node_modules/@tensorflow/tfjs-converter/src/executor/hash_table.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/executors/hash_table_executor.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/executors/image_executor.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/executors/logical_executor.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/executors/matrices_executor.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/executors/normalization_executor.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/executors/reduction_executor.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/executors/slice_join_executor.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/executors/spectral_executor.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/executors/transformation_executor.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/operation_executor.ts", "../node_modules/@tensorflow/tfjs-converter/src/executor/execution_context.ts", "../node_modules/@tensorflow/tfjs-converter/src/executor/model_analysis.ts", "../node_modules/@tensorflow/tfjs-converter/src/executor/graph_executor.ts", "../node_modules/@tensorflow/tfjs-converter/src/executor/resource_manager.ts", "../node_modules/@tensorflow/tfjs-converter/src/executor/graph_model.ts", "../node_modules/@tensorflow/tfjs-converter/src/version.ts", "empty:/home/vlado/dev/human/node_modules/string_decoder/lib/string_decoder.js", "../node_modules/@tensorflow/tfjs-data/node_modules/seedrandom/lib/alea.js", "../node_modules/@tensorflow/tfjs-data/node_modules/seedrandom/lib/xor128.js", "../node_modules/@tensorflow/tfjs-data/node_modules/seedrandom/lib/xorwow.js", "../node_modules/@tensorflow/tfjs-data/node_modules/seedrandom/lib/xorshift7.js", "../node_modules/@tensorflow/tfjs-data/node_modules/seedrandom/lib/xor4096.js", "../node_modules/@tensorflow/tfjs-data/node_modules/seedrandom/lib/tychei.js", "../node_modules/@tensorflow/tfjs-data/node_modules/seedrandom/seedrandom.js", "../node_modules/@tensorflow/tfjs-data/node_modules/seedrandom/index.js", "../node_modules/@tensorflow/tfjs-data/src/util/deep_map.ts", "../node_modules/@tensorflow/tfjs-data/src/util/deep_clone.ts", "../node_modules/@tensorflow/tfjs-data/src/util/ring_buffer.ts", "../node_modules/@tensorflow/tfjs-data/src/util/growing_ring_buffer.ts", "../node_modules/@tensorflow/tfjs-data/src/iterators/lazy_iterator.ts", "../node_modules/@tensorflow/tfjs-data/src/dataset.ts", "../node_modules/@tensorflow/tfjs-data/src/datasets/text_line_dataset.ts", "../node_modules/@tensorflow/tfjs-data/src/datasets/csv_dataset.ts", "../node_modules/@tensorflow/tfjs-data/src/iterators/microphone_iterator.ts", "../node_modules/@tensorflow/tfjs-data/src/iterators/webcam_iterator.ts", "../node_modules/@tensorflow/tfjs-data/src/datasource.ts", "../node_modules/@tensorflow/tfjs-data/src/iterators/string_iterator.ts", "../node_modules/@tensorflow/tfjs-data/src/iterators/byte_chunk_iterator.ts", "../node_modules/@tensorflow/tfjs-data/src/iterators/file_chunk_iterator.ts", "../node_modules/@tensorflow/tfjs-data/src/iterators/url_chunk_iterator.ts", "../node_modules/@tensorflow/tfjs-data/src/util/source_util.ts", "../node_modules/@tensorflow/tfjs-data/src/sources/file_data_source.ts", "../node_modules/@tensorflow/tfjs-data/src/sources/url_data_source.ts", "../node_modules/@tensorflow/tfjs-data/src/readers.ts", "../node_modules/@tensorflow/tfjs-data/src/version.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/node_modules/seedrandom/lib/alea.js", "../node_modules/@tensorflow/tfjs-backend-cpu/node_modules/seedrandom/lib/xor128.js", "../node_modules/@tensorflow/tfjs-backend-cpu/node_modules/seedrandom/lib/xorwow.js", "../node_modules/@tensorflow/tfjs-backend-cpu/node_modules/seedrandom/lib/xorshift7.js", "../node_modules/@tensorflow/tfjs-backend-cpu/node_modules/seedrandom/lib/xor4096.js", "../node_modules/@tensorflow/tfjs-backend-cpu/node_modules/seedrandom/lib/tychei.js", "../node_modules/@tensorflow/tfjs-backend-cpu/node_modules/seedrandom/seedrandom.js", "../node_modules/@tensorflow/tfjs-backend-cpu/node_modules/seedrandom/index.js", "../node_modules/@tensorflow/tfjs-backend-cpu/src/cpu_util.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/backend_cpu.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Abs.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/utils/binary_impl.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Complex.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Identity.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Real.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Cast.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/utils/kernel_utils.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Add.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/utils/unary_impl.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/utils/unary_utils.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Ceil.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Exp.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Expm1.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Floor.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Log.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Max_impl.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Multiply.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/NotEqual.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Rsqrt.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Slice.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/SquaredDifference.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Sub.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Transpose_impl.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Unique_impl.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/shared.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/version.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/base.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Elu.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Prelu.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Relu.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Relu6.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/utils/fused_utils.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Reshape.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/BatchMatMul.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/_FusedMatMul.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Acos.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Acosh.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Asin.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Asinh.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Atan.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Atanh.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/utils/pool_utils.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/AvgPool.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/AvgPoolBackprop.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/BatchNorm.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Clip.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Imag.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Concat.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Conv2D.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Conv2DBackpropFilter.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Conv2DBackpropInput.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Conv3D.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Conv3DBackpropFilterV2.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Conv3DBackpropInputV2.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Cos.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Cosh.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/DepthwiseConv2dNative.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/DepthwiseConv2dNativeBackpropFilter.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/DepthwiseConv2dNativeBackpropInput.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Dilation2D.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Dilation2DBackpropFilter.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Dilation2DBackpropInput.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Div.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Erf.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/utils/fft_utils.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/FFT.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Fill.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/FlipLeftRight.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/FusedConv2D.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/FusedDepthwiseConv2D.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/IFFT.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/IsFinite.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/IsInf.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/IsNaN.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Log1p.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/LogicalNot.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Max.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/MaxPool.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/MaxPoolBackprop.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/MaxPoolWithArgmax_impl.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/MaxPoolWithArgmax.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/MirrorPad.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/NonMaxSuppressionV4.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/NonMaxSuppressionV5.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/PadV2.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Reciprocal.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/RotateWithOffset.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Round.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Selu.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Sigmoid.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Sign.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Sin.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Sinh.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Softplus.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Transpose.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/SpaceToBatchND.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Sqrt.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Square.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Step.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Tan.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Tanh.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Unique.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/register_all_kernels.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/canvas_util.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/tex_util.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/webgl_util.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/flags_webgl.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Abs.js", "../node_modules/@tensorflow/tfjs-backend-webgl/node_modules/@tensorflow/tfjs-backend-cpu/dist/utils/binary_impl.js", "../node_modules/@tensorflow/tfjs-backend-webgl/node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Add.js", "../node_modules/@tensorflow/tfjs-backend-webgl/node_modules/@tensorflow/tfjs-backend-cpu/dist/utils/unary_impl.js", "../node_modules/@tensorflow/tfjs-backend-webgl/node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Ceil.js", "../node_modules/@tensorflow/tfjs-backend-webgl/node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Exp.js", "../node_modules/@tensorflow/tfjs-backend-webgl/node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Expm1.js", "../node_modules/@tensorflow/tfjs-backend-webgl/node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Floor.js", "../node_modules/@tensorflow/tfjs-backend-webgl/node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Log.js", "../node_modules/@tensorflow/tfjs-backend-webgl/node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Max_impl.js", "../node_modules/@tensorflow/tfjs-backend-webgl/node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Multiply.js", "../node_modules/@tensorflow/tfjs-backend-webgl/node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Rsqrt.js", "../node_modules/@tensorflow/tfjs-backend-webgl/node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Slice.js", "../node_modules/@tensorflow/tfjs-backend-webgl/node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Sub.js", "../node_modules/@tensorflow/tfjs-backend-webgl/node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Transpose_impl.js", "../node_modules/@tensorflow/tfjs-backend-webgl/node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Unique_impl.js", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernel_utils/shared.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/addn_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/addn_packed_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/argminmax_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/packing_util.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/glsl_version.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/shader_compiler_util.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/shader_compiler.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/argminmax_packed_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/avg_pool_backprop_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/binaryop_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/binaryop_packed_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/clip_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/clip_packed_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/complex_abs_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/conv_backprop_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/conv_backprop_gpu_depthwise.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/conv_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/conv_gpu_depthwise.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/conv_packed_gpu_depthwise.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/crop_and_resize_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/cumsum_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/decode_matrix_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/decode_matrix_packed_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/depth_to_space_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/diag_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/encode_float_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/encode_float_packed_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/encode_matrix_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/encode_matrix_packed_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/fill_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/gather_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/gather_nd_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/gpgpu_util.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/gpgpu_context.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/gpgpu_math.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/im2col_packed_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/lrn_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/lrn_grad_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/lrn_packed_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/max_pool_backprop_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/mulmat_packed_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/multinomial_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/onehot_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/pack_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/pad_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/pad_packed_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/pool_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/reduce_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/reshape_packed_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/resize_bilinear_backprop_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/resize_bilinear_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/resize_bilinear_packed_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/resize_nearest_neighbor_backprop_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/resize_nearest_neighbor_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/reverse_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/reverse_packed_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/scatter_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/segment_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/select_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/slice_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/slice_packed_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/strided_slice_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/texture_manager.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/tile_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/unaryop_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/unaryop_packed_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/unpack_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/backend_webgl.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/version.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/webgl.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/base.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Identity.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Complex.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernel_utils/kernel_funcs_utils.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Add.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Atan2.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/AvgPool.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/AvgPoolBackprop.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/batchnorm_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/batchnorm_packed_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/BatchNorm.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/NotEqual.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Real.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernel_utils/int.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Cast.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/concat_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/concat_packed_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Imag.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernel_utils/reshape.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Reshape.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Concat_impl.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Concat.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Cos.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Div.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/fft_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/FFT_impl.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/FFT.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/flip_left_right_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/FlipLeftRight.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/FromPixels_utils/from_pixels_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/FromPixels_utils/from_pixels_packed_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/FromPixels.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/IFFT.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/mean_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernel_utils/reduce.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Max_impl.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/transpose_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/transpose_packed_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Transpose_impl.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Max.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/MaxPool.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/MaxPoolBackprop.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/MaxPoolWithArgmax_impl.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/MaxPoolWithArgmax.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Mean_impl.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Mean.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/mirror_pad_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/mirror_pad_packed_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/MirrorPad.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/binaryop_complex_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Multiply.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/NonMaxSuppressionV3.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/NonMaxSuppressionV4.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/NonMaxSuppressionV5.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/rotate_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/RotateWithOffset.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Sin.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Square.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/SquaredDifference.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Sub.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Tan.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Transpose.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Unique.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/register_all_kernels.ts", "../node_modules/@tensorflow/tfjs/src/version.ts", "../node_modules/@tensorflow/tfjs/src/index.ts", "../src/face/blazeface.js", "../src/face/keypoints.js", "../src/face/box.js", "../src/face/util.js", "../src/face/facepipeline.js", "../src/face/uvcoords.js", "../src/face/triangulation.js", "../src/face/facemesh.js", "../src/profile.js", "../src/age/age.js", "../src/gender/gender.js", "../src/emotion/emotion.js", "../src/body/modelBase.js", "../src/body/modelMobileNet.js", "../src/body/heapSort.js", "../src/body/buildParts.js", "../src/body/keypoints.js", "../src/body/vectors.js", "../src/body/decodePose.js", "../src/body/decodeMultiple.js", "../src/body/util.js", "../src/body/modelPoseNet.js", "../src/body/posenet.js", "../src/hand/box.js", "../src/hand/handdetector.js", "../src/hand/util.js", "../src/hand/handpipeline.js", "../src/hand/anchors.js", "../src/hand/handpose.js", "../src/gesture.js", "../src/imagefx.js", "../src/image.js", "../config.js", "../src/human.js", "../demo/draw.js", "../demo/menu.js", "../demo/browser.js"], - "sourcesContent": ["", "", "", "/**\n * @license\n * Copyright 2020 Google LLC. 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 *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\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 * =============================================================================\n */\n\nimport {Conv2DInfo, Conv3DInfo} from '../ops/conv_util';\nimport {FusedBatchMatMulConfig, FusedConv2DConfig} from '../ops/fused_types';\nimport {Backend, DataId, Scalar, Tensor, Tensor1D, Tensor2D, Tensor3D, Tensor4D, Tensor5D} from '../tensor';\nimport {BackendValues, DataType, Rank, ShapeMap} from '../types';\n\nexport const EPSILON_FLOAT32 = 1e-7;\nexport const EPSILON_FLOAT16 = 1e-4;\n\n// Required information for all backends.\nexport interface BackendTimingInfo {\n kernelMs: number|{error: string};\n getExtraProfileInfo?(): string; // a field for additional timing information\n // e.g. packing / unpacking for WebGL backend\n}\n\nexport interface TensorStorage {\n read(dataId: DataId): Promise;\n readSync(dataId: DataId): BackendValues;\n disposeData(dataId: DataId): void;\n write(values: BackendValues, shape: number[], dtype: DataType): DataId;\n move(dataId: DataId, values: BackendValues, shape: number[], dtype: DataType):\n void;\n memory(): {unreliable: boolean;}; // Backend-specific information.\n /** Returns number of data ids currently in the storage. */\n numDataIds(): number;\n}\n\n/** Convenient class for storing tensor-related data. */\nexport class DataStorage {\n private data = new WeakMap();\n private dataIdsCount = 0;\n\n constructor(private backend: KernelBackend, private dataMover: DataMover) {}\n\n get(dataId: DataId) {\n if (!this.data.has(dataId)) {\n this.dataMover.moveData(this.backend, dataId);\n }\n return this.data.get(dataId);\n }\n\n set(dataId: DataId, value: T): void {\n this.dataIdsCount++;\n this.data.set(dataId, value);\n }\n\n has(dataId: DataId): boolean {\n return this.data.has(dataId);\n }\n\n delete(dataId: DataId): boolean {\n this.dataIdsCount--;\n return this.data.delete(dataId);\n }\n\n numDataIds(): number {\n return this.dataIdsCount;\n }\n}\n\nexport interface DataMover {\n /**\n * To be called by backends whenever they see a dataId that they don't own.\n * Upon calling this method, the mover will fetch the tensor from another\n * backend and register it with the current active backend.\n */\n moveData(backend: KernelBackend, dataId: DataId): void;\n}\n\nexport interface BackendTimer {\n time(f: () => void): Promise;\n}\n\n/**\n * The interface that defines the kernels that should be implemented when\n * adding a new backend. New backends don't need to implement every one of the\n * methods, this can be done gradually (throw an error for unimplemented\n * methods).\n */\nexport class KernelBackend implements TensorStorage, Backend, BackendTimer {\n time(f: () => void): Promise {\n return notYetImplemented('time');\n }\n read(dataId: object): Promise {\n return notYetImplemented('read');\n }\n readSync(dataId: object): BackendValues {\n return notYetImplemented('readSync');\n }\n numDataIds(): number {\n return notYetImplemented('numDataIds');\n }\n disposeData(dataId: object): void {\n return notYetImplemented('disposeData');\n }\n write(values: BackendValues, shape: number[], dtype: DataType): DataId {\n return notYetImplemented('write');\n }\n move(dataId: DataId, values: BackendValues, shape: number[], dtype: DataType):\n void {\n return notYetImplemented('move');\n }\n memory(): {unreliable: boolean; reasons?: string[]} {\n return notYetImplemented('memory');\n }\n /** Returns the highest precision for floats in bits (e.g. 16 or 32) */\n floatPrecision(): 16|32 {\n return notYetImplemented('floatPrecision');\n }\n /** Returns the smallest representable number. */\n epsilon(): number {\n return this.floatPrecision() === 32 ? EPSILON_FLOAT32 : EPSILON_FLOAT16;\n }\n\n batchMatMul(\n a: Tensor3D, b: Tensor3D, transposeA: boolean,\n transposeB: boolean): Tensor3D {\n return notYetImplemented('batchMatMul');\n }\n\n fusedBatchMatMul(\n {a, b, transposeA, transposeB, bias, activation, preluActivationWeights}:\n FusedBatchMatMulConfig): Tensor3D {\n return notYetImplemented('fusedBatchMatMul');\n }\n\n slice(x: T, begin: number[], size: number[]): T {\n return notYetImplemented('slice');\n }\n stridedSlice(\n x: T, begin: number[], end: number[], strides: number[]): T {\n return notYetImplemented('stridedSlice');\n }\n unstack(x: Tensor, axis: number): Tensor[] {\n return notYetImplemented('unstack');\n }\n reverse(a: T, axis: number[]): T {\n return notYetImplemented('reverse');\n }\n\n concat(tensors: Tensor[], axis: number): Tensor {\n return notYetImplemented('concat');\n }\n\n neg(a: T): T {\n return notYetImplemented('neg');\n }\n\n add(a: Tensor, b: Tensor): Tensor {\n return notYetImplemented('add');\n }\n addN(tensors: T[]): T {\n return notYetImplemented('addN');\n }\n subtract(a: Tensor, b: Tensor): Tensor {\n return notYetImplemented('subtract');\n }\n multiply(a: Tensor, b: Tensor): Tensor {\n return notYetImplemented('multiply');\n }\n realDivide(a: Tensor, b: Tensor): Tensor {\n return notYetImplemented('realDivide');\n }\n floorDiv(a: Tensor, b: Tensor): Tensor {\n return notYetImplemented('floorDiv');\n }\n\n sum(x: Tensor, axes: number[]): Tensor {\n return notYetImplemented('sum');\n }\n prod(x: Tensor, axes: number[]): Tensor {\n return notYetImplemented('prod');\n }\n\n unsortedSegmentSum(\n x: T, segmentIds: Tensor1D, numSegments: number): Tensor {\n return notYetImplemented('unsortedSegmentSum');\n }\n\n argMin(x: Tensor, axis: number): Tensor {\n return notYetImplemented('argMin');\n }\n argMax(x: Tensor, axis: number): Tensor {\n return notYetImplemented('argMax');\n }\n\n equal(a: Tensor, b: Tensor): Tensor {\n return notYetImplemented('equal');\n }\n notEqual(a: Tensor, b: Tensor): Tensor {\n return notYetImplemented('notEqual');\n }\n\n less(a: Tensor, b: Tensor): Tensor {\n return notYetImplemented('less');\n }\n lessEqual(a: Tensor, b: Tensor): Tensor {\n return notYetImplemented('lessEqual');\n }\n\n greater(a: Tensor, b: Tensor): Tensor {\n return notYetImplemented('greater');\n }\n greaterEqual(a: Tensor, b: Tensor): Tensor {\n return notYetImplemented('greaterEqual');\n }\n\n logicalNot(a: T): T {\n return notYetImplemented('logicalNot');\n }\n logicalAnd(a: Tensor, b: Tensor): Tensor {\n return notYetImplemented('logicalAnd');\n }\n logicalOr(a: Tensor, b: Tensor): Tensor {\n return notYetImplemented('logicalOr');\n }\n\n where(condition: Tensor): Tensor2D {\n return notYetImplemented('where');\n }\n select(condition: Tensor, a: Tensor, b: Tensor): Tensor {\n return notYetImplemented('select');\n }\n\n topk(x: T, k: number, sorted: boolean): [T, T] {\n return notYetImplemented('topk');\n }\n\n min(x: Tensor, axes: number[]): Tensor {\n return notYetImplemented('min');\n }\n minimum(a: Tensor, b: Tensor): Tensor {\n return notYetImplemented('minimum');\n }\n\n mod(a: Tensor, b: Tensor): Tensor {\n return notYetImplemented('mod');\n }\n\n max(x: Tensor, axes: number[]): Tensor {\n return notYetImplemented('max');\n }\n maximum(a: Tensor, b: Tensor): Tensor {\n return notYetImplemented('maximum');\n }\n\n all(x: Tensor, axes: number[]): Tensor {\n return notYetImplemented('all');\n }\n any(x: Tensor, axes: number[]): Tensor {\n return notYetImplemented('any');\n }\n\n squaredDifference(a: Tensor, b: Tensor): Tensor {\n return notYetImplemented('squaredDifference');\n }\n\n ceil(x: T): T {\n return notYetImplemented('ceil');\n }\n floor(x: T): T {\n return notYetImplemented('floor');\n }\n round(x: T): T {\n return notYetImplemented('round');\n }\n\n sign(x: T): T {\n return notYetImplemented('sign');\n }\n\n isNaN(x: T): T {\n return notYetImplemented('isNaN');\n }\n isInf(x: T): T {\n return notYetImplemented('isInf');\n }\n isFinite(x: T): T {\n return notYetImplemented('isFinite');\n }\n\n pow(a: T, b: Tensor): T {\n return notYetImplemented('pow');\n }\n exp(x: T): T {\n return notYetImplemented('exp');\n }\n expm1(x: T): T {\n return notYetImplemented('expm1');\n }\n softmax(x: T, dim: number): T {\n return notYetImplemented('softmax');\n }\n log(x: T): T {\n return notYetImplemented('log');\n }\n log1p(x: T): T {\n return notYetImplemented('log1p');\n }\n sqrt(x: T): T {\n return notYetImplemented('sqrt');\n }\n rsqrt(x: T): T {\n return notYetImplemented('rsqrt');\n }\n square(x: T): T {\n return notYetImplemented('square');\n }\n reciprocal(x: T): T {\n return notYetImplemented('reciprocal');\n }\n relu(x: T): T {\n return notYetImplemented('relu');\n }\n relu6(x: T): T {\n return notYetImplemented('relu6');\n }\n prelu(x: T, a: T): T {\n return notYetImplemented('prelu');\n }\n elu(x: T): T {\n return notYetImplemented('elu');\n }\n eluDer(dy: T, y: T): T {\n return notYetImplemented('eluDer');\n }\n selu(x: T): T {\n return notYetImplemented('selu');\n }\n int(x: T): T {\n return notYetImplemented('int');\n }\n\n clip(x: T, min: number, max: number): T {\n return notYetImplemented('clip');\n }\n\n abs(x: T): T {\n return notYetImplemented('abs');\n }\n complexAbs(x: T): T {\n return notYetImplemented('complexAbs');\n }\n\n sigmoid(x: T): T {\n return notYetImplemented('sigmoid');\n }\n\n softplus(x: T): T {\n return notYetImplemented('softplus');\n }\n\n sin(x: T): T {\n return notYetImplemented('sin');\n }\n cos(x: T): T {\n return notYetImplemented('cos');\n }\n tan(x: T): T {\n return notYetImplemented('tan');\n }\n\n asin(x: T): T {\n return notYetImplemented('asin');\n }\n acos(x: T): T {\n return notYetImplemented('acos');\n }\n atan(x: T): T {\n return notYetImplemented('atan');\n }\n atan2(a: T, b: T): T {\n return notYetImplemented('atan2');\n }\n\n sinh(x: T): T {\n return notYetImplemented('sinh');\n }\n cosh(x: T): T {\n return notYetImplemented('cosh');\n }\n tanh(x: T): T {\n return notYetImplemented('tanh');\n }\n\n asinh(x: T): T {\n return notYetImplemented('asinh');\n }\n acosh(x: T): T {\n return notYetImplemented('acosh');\n }\n atanh(x: T): T {\n return notYetImplemented('atanh');\n }\n\n erf(x: T): T {\n return notYetImplemented('erf');\n }\n\n step(x: T, alpha: number): T {\n return notYetImplemented('step');\n }\n\n fusedConv2d(\n {input, filter, convInfo, bias, activation, preluActivationWeights}:\n FusedConv2DConfig): Tensor4D {\n return notYetImplemented('fusedConv2d');\n }\n\n conv2d(x: Tensor4D, filter: Tensor4D, convInfo: Conv2DInfo): Tensor4D {\n return notYetImplemented('conv2d');\n }\n conv2dDerInput(dy: Tensor4D, filter: Tensor4D, convInfo: Conv2DInfo):\n Tensor4D {\n return notYetImplemented('conv2dDerInput');\n }\n conv2dDerFilter(x: Tensor4D, dY: Tensor4D, convInfo: Conv2DInfo): Tensor4D {\n return notYetImplemented('conv2dDerFilter');\n }\n\n fusedDepthwiseConv2D(\n {input, filter, convInfo, bias, activation, preluActivationWeights}:\n FusedConv2DConfig): Tensor4D {\n return notYetImplemented('fusedDepthwiseConv2D');\n }\n\n depthwiseConv2D(input: Tensor4D, filter: Tensor4D, convInfo: Conv2DInfo):\n Tensor4D {\n return notYetImplemented('depthwiseConv2D');\n }\n depthwiseConv2DDerInput(dy: Tensor4D, filter: Tensor4D, convInfo: Conv2DInfo):\n Tensor4D {\n return notYetImplemented('depthwiseConv2DDerInput');\n }\n depthwiseConv2DDerFilter(x: Tensor4D, dY: Tensor4D, convInfo: Conv2DInfo):\n Tensor4D {\n return notYetImplemented('depthwiseConv2DDerFilter');\n }\n conv3d(x: Tensor5D, filter: Tensor5D, convInfo: Conv3DInfo): Tensor5D {\n return notYetImplemented('conv3d');\n }\n conv3dDerInput(dy: Tensor5D, filter: Tensor5D, convInfo: Conv3DInfo):\n Tensor5D {\n return notYetImplemented('conv3dDerInput');\n }\n conv3dDerFilter(x: Tensor5D, dY: Tensor5D, convInfo: Conv3DInfo): Tensor5D {\n return notYetImplemented('conv3dDerFilter');\n }\n maxPool(x: Tensor4D, convInfo: Conv2DInfo): Tensor4D {\n return notYetImplemented('maxPool');\n }\n maxPoolBackprop(dy: Tensor4D, x: Tensor4D, y: Tensor4D, convInfo: Conv2DInfo):\n Tensor4D {\n return notYetImplemented('maxPoolBackprop');\n }\n avgPool(x: Tensor4D, convInfo: Conv2DInfo): Tensor4D {\n return notYetImplemented('avgPool');\n }\n avgPoolBackprop(dy: Tensor4D, x: Tensor4D, convInfo: Conv2DInfo): Tensor4D {\n return notYetImplemented('avgPoolBackprop');\n }\n avgPool3d(x: Tensor5D, convInfo: Conv3DInfo): Tensor5D {\n return notYetImplemented('avgPool3d');\n }\n avgPool3dBackprop(dy: Tensor5D, x: Tensor5D, convInfo: Conv3DInfo): Tensor5D {\n return notYetImplemented('avgPool3dBackprop');\n }\n maxPool3d(x: Tensor5D, convInfo: Conv3DInfo): Tensor5D {\n return notYetImplemented('maxPool3d');\n }\n maxPool3dBackprop(\n dy: Tensor5D, x: Tensor5D, y: Tensor5D, convInfo: Conv3DInfo): Tensor5D {\n return notYetImplemented('maxPool3dBackprop');\n }\n\n reshape(x: T, shape: ShapeMap[R]):\n Tensor {\n return notYetImplemented('reshape');\n }\n cast(x: T, dtype: DataType): T {\n return notYetImplemented('cast');\n }\n\n tile(x: T, reps: number[]): T {\n return notYetImplemented('tile');\n }\n\n pad(\n x: T, paddings: Array<[number, number]>, constantValue: number): T {\n return notYetImplemented('pad');\n }\n\n transpose(x: T, perm: number[]): T {\n return notYetImplemented('transpose');\n }\n\n gather(x: T, indices: Tensor1D, axis: number): T {\n return notYetImplemented('gather');\n }\n\n gatherND(x: Tensor, indices: Tensor): Tensor {\n return notYetImplemented('gatherND');\n }\n\n scatterND(\n indices: Tensor, updates: Tensor, shape: ShapeMap[R]): Tensor {\n return notYetImplemented('scatterND');\n }\n\n batchToSpaceND(\n x: T, blockShape: number[], crops: number[][]): T {\n return notYetImplemented('batchToSpaceND');\n }\n\n spaceToBatchND(\n x: T, blockShape: number[], paddings: number[][]): T {\n return notYetImplemented('spaceToBatchND');\n }\n\n resizeBilinear(\n x: Tensor4D, newHeight: number, newWidth: number,\n alignCorners: boolean): Tensor4D {\n return notYetImplemented('resizeBilinear');\n }\n\n resizeBilinearBackprop(dy: Tensor4D, x: Tensor4D, alignCorners: boolean):\n Tensor4D {\n return notYetImplemented('resizeBilinearBackprop');\n }\n\n resizeNearestNeighbor(\n x: Tensor4D, newHEight: number, newWidth: number,\n alignCorners: boolean): Tensor4D {\n return notYetImplemented('resizeNearestNeighbor');\n }\n\n resizeNearestNeighborBackprop(\n dy: Tensor4D, x: Tensor4D, alignCorners: boolean): Tensor4D {\n return notYetImplemented('resizeNearestNeighborBackprop');\n }\n\n batchNorm(\n x: Tensor4D, mean: Tensor4D|Tensor1D, variance: Tensor4D|Tensor1D,\n offset?: Tensor4D|Tensor1D, scale?: Tensor4D|Tensor1D,\n varianceEpsilon?: number): Tensor4D {\n return notYetImplemented('batchNorm');\n }\n\n localResponseNormalization4D(\n x: Tensor4D, radius: number, bias: number, alpha: number,\n beta: number): Tensor4D {\n return notYetImplemented('localResponseNormalization4D');\n }\n\n LRNGrad(\n dy: Tensor4D, inputImage: Tensor4D, outputImage: Tensor4D, radius: number,\n bias: number, alpha: number, beta: number): Tensor4D {\n return notYetImplemented('LRNGrad');\n }\n\n multinomial(\n logits: Tensor2D, normalized: boolean, numSamples: number,\n seed: number): Tensor2D {\n return notYetImplemented('multinomial');\n }\n\n oneHot(indices: Tensor1D, depth: number, onValue: number, offValue: number):\n Tensor2D {\n return notYetImplemented('oneHot');\n }\n\n cumsum(x: Tensor, axis: number, exclusive: boolean, reverse: boolean):\n Tensor {\n return notYetImplemented('cumsum');\n }\n\n nonMaxSuppression(\n boxes: Tensor2D, scores: Tensor1D, maxOutputSize: number,\n iouThreshold: number, scoreThreshold?: number): Tensor1D {\n return notYetImplemented('nonMaxSuppression');\n }\n\n fft(x: Tensor2D): Tensor2D {\n return notYetImplemented('fft');\n }\n ifft(x: Tensor2D): Tensor2D {\n return notYetImplemented('ifft');\n }\n complex(real: T, imag: T): T {\n return notYetImplemented('complex');\n }\n real(input: T): T {\n return notYetImplemented('real');\n }\n imag(input: T): T {\n return notYetImplemented('imag');\n }\n\n cropAndResize(\n image: Tensor4D, boxes: Tensor2D, boxIndex: Tensor1D,\n cropSize: [number, number], method: 'bilinear'|'nearest',\n extrapolationValue: number): Tensor4D {\n return notYetImplemented('cropAndResize');\n }\n\n depthToSpace(x: Tensor4D, blockSize: number, dataFormat: string): Tensor4D {\n return notYetImplemented('depthToSpace');\n }\n\n // Aligns with the \"SplitV\" kernel in TensorFlow.\n split(value: T, sizeSplits: number[], axis: number): T[] {\n return notYetImplemented('split');\n }\n\n sparseToDense(\n sparseIndices: Tensor, sparseValues: Tensor, outputShape: ShapeMap[R],\n defaultValue: Scalar): Tensor {\n return notYetImplemented('sparseToDense');\n }\n\n diag(x: Tensor): Tensor {\n return notYetImplemented('diag');\n }\n\n fill(\n shape: ShapeMap[R], value: number|string, dtype?: DataType): Tensor {\n return notYetImplemented('fill');\n }\n\n onesLike(x: Tensor): Tensor {\n return notYetImplemented('onesLike');\n }\n\n zerosLike(x: Tensor): Tensor {\n return notYetImplemented('zerosLike');\n }\n\n linspace(start: number, stop: number, num: number): Tensor1D {\n return notYetImplemented('linspace');\n }\n\n dispose(): void {\n return notYetImplemented('dispose');\n }\n}\n\nfunction notYetImplemented(kernelName: string): never {\n throw new Error(\n `'${kernelName}' not yet implemented or not found in the registry. ` +\n `This kernel may not be supported by the tfjs backend you have chosen`);\n}\n", "/**\n * @license\n * Copyright 2020 Google LLC. 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 *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\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 * =============================================================================\n */\n\nimport {DataType, DataTypeMap, FlatVector, NumericDataType, RecursiveArray, TensorLike, TypedArray} from './types';\n\n/**\n * Shuffles the array in-place using Fisher-Yates algorithm.\n *\n * ```js\n * const a = [1, 2, 3, 4, 5];\n * tf.util.shuffle(a);\n * console.log(a);\n * ```\n *\n * @param array The array to shuffle in-place.\n *\n * @doc {heading: 'Util', namespace: 'util'}\n */\n// tslint:disable-next-line:no-any\nexport function shuffle(array: any[]|Uint32Array|Int32Array|\n Float32Array): void {\n let counter = array.length;\n let temp = 0;\n let index = 0;\n // While there are elements in the array\n while (counter > 0) {\n // Pick a random index\n index = (Math.random() * counter) | 0;\n // Decrease counter by 1\n counter--;\n // And swap the last element with it\n temp = array[counter];\n array[counter] = array[index];\n array[index] = temp;\n }\n}\n\n/** Clamps a value to a specified range. */\nexport function clamp(min: number, x: number, max: number): number {\n return Math.max(min, Math.min(x, max));\n}\n\nexport function nearestLargerEven(val: number): number {\n return val % 2 === 0 ? val : val + 1;\n}\n\nexport function sum(arr: number[]): number {\n let sum = 0;\n for (let i = 0; i < arr.length; i++) {\n sum += arr[i];\n }\n return sum;\n}\n\n/**\n * Returns a sample from a uniform [a, b) distribution.\n *\n * @param a The minimum support (inclusive).\n * @param b The maximum support (exclusive).\n * @return A pseudorandom number on the half-open interval [a,b).\n */\nexport function randUniform(a: number, b: number) {\n const r = Math.random();\n return (b * r) + (1 - r) * a;\n}\n\n/** Returns the squared Euclidean distance between two vectors. */\nexport function distSquared(a: FlatVector, b: FlatVector): number {\n let result = 0;\n for (let i = 0; i < a.length; i++) {\n const diff = Number(a[i]) - Number(b[i]);\n result += diff * diff;\n }\n return result;\n}\n\n/**\n * Asserts that the expression is true. Otherwise throws an error with the\n * provided message.\n *\n * ```js\n * const x = 2;\n * tf.util.assert(x === 2, 'x is not 2');\n * ```\n *\n * @param expr The expression to assert (as a boolean).\n * @param msg A function that returns the message to report when throwing an\n * error. We use a function for performance reasons.\n *\n * @doc {heading: 'Util', namespace: 'util'}\n */\nexport function assert(expr: boolean, msg: () => string) {\n if (!expr) {\n throw new Error(typeof msg === 'string' ? msg : msg());\n }\n}\n\nexport function assertShapesMatch(\n shapeA: number[], shapeB: number[], errorMessagePrefix = ''): void {\n assert(\n arraysEqual(shapeA, shapeB),\n () => errorMessagePrefix + ` Shapes ${shapeA} and ${shapeB} must match`);\n}\n\nexport function assertNonNull(a: TensorLike): void {\n assert(\n a != null,\n () => `The input to the tensor constructor must be a non-null value.`);\n}\n\n// NOTE: We explicitly type out what T extends instead of any so that\n// util.flatten on a nested array of number doesn't try to infer T as a\n// number[][], causing us to explicitly type util.flatten().\n/**\n * Flattens an arbitrarily nested array.\n *\n * ```js\n * const a = [[1, 2], [3, 4], [5, [6, [7]]]];\n * const flat = tf.util.flatten(a);\n * console.log(flat);\n * ```\n *\n * @param arr The nested array to flatten.\n * @param result The destination array which holds the elements.\n * @param skipTypedArray If true, avoids flattening the typed arrays. Defaults\n * to false.\n *\n * @doc {heading: 'Util', namespace: 'util'}\n */\nexport function\nflatten|TypedArray>(\n arr: T|RecursiveArray, result: T[] = [], skipTypedArray = false): T[] {\n if (result == null) {\n result = [];\n }\n if (Array.isArray(arr) || isTypedArray(arr) && !skipTypedArray) {\n for (let i = 0; i < arr.length; ++i) {\n flatten(arr[i], result, skipTypedArray);\n }\n } else {\n result.push(arr as T);\n }\n return result;\n}\n\n/**\n * Returns the size (number of elements) of the tensor given its shape.\n *\n * ```js\n * const shape = [3, 4, 2];\n * const size = tf.util.sizeFromShape(shape);\n * console.log(size);\n * ```\n *\n * @doc {heading: 'Util', namespace: 'util'}\n */\nexport function sizeFromShape(shape: number[]): number {\n if (shape.length === 0) {\n // Scalar.\n return 1;\n }\n let size = shape[0];\n for (let i = 1; i < shape.length; i++) {\n size *= shape[i];\n }\n return size;\n}\n\nexport function isScalarShape(shape: number[]): boolean {\n return shape.length === 0;\n}\n\nexport function arraysEqual(n1: FlatVector, n2: FlatVector) {\n if (n1 === n2) {\n return true;\n }\n if (n1 == null || n2 == null) {\n return false;\n }\n\n if (n1.length !== n2.length) {\n return false;\n }\n for (let i = 0; i < n1.length; i++) {\n if (n1[i] !== n2[i]) {\n return false;\n }\n }\n return true;\n}\n\nexport function isInt(a: number): boolean {\n return a % 1 === 0;\n}\n\nexport function tanh(x: number): number {\n // tslint:disable-next-line:no-any\n if ((Math as any).tanh != null) {\n // tslint:disable-next-line:no-any\n return (Math as any).tanh(x);\n }\n if (x === Infinity) {\n return 1;\n } else if (x === -Infinity) {\n return -1;\n } else {\n const e2x = Math.exp(2 * x);\n return (e2x - 1) / (e2x + 1);\n }\n}\n\nexport function sizeToSquarishShape(size: number): [number, number] {\n const width = Math.ceil(Math.sqrt(size));\n return [width, Math.ceil(size / width)];\n}\n\n/**\n * Creates a new array with randomized indicies to a given quantity.\n *\n * ```js\n * const randomTen = tf.util.createShuffledIndices(10);\n * console.log(randomTen);\n * ```\n *\n * @param number Quantity of how many shuffled indicies to create.\n *\n * @doc {heading: 'Util', namespace: 'util'}\n */\nexport function createShuffledIndices(n: number): Uint32Array {\n const shuffledIndices = new Uint32Array(n);\n for (let i = 0; i < n; ++i) {\n shuffledIndices[i] = i;\n }\n shuffle(shuffledIndices);\n return shuffledIndices;\n}\n\nexport function rightPad(a: string, size: number): string {\n if (size <= a.length) {\n return a;\n }\n return a + ' '.repeat(size - a.length);\n}\n\nexport function repeatedTry(\n checkFn: () => boolean, delayFn = (counter: number) => 0,\n maxCounter?: number): Promise {\n return new Promise((resolve, reject) => {\n let tryCount = 0;\n\n const tryFn = () => {\n if (checkFn()) {\n resolve();\n return;\n }\n\n tryCount++;\n\n const nextBackoff = delayFn(tryCount);\n\n if (maxCounter != null && tryCount >= maxCounter) {\n reject();\n return;\n }\n setTimeout(tryFn, nextBackoff);\n };\n\n tryFn();\n });\n}\n\n/**\n * Given the full size of the array and a shape that may contain -1 as the\n * implicit dimension, returns the inferred shape where -1 is replaced.\n * E.g. For shape=[2, -1, 3] and size=24, it will return [2, 4, 3].\n *\n * @param shape The shape, which may contain -1 in some dimension.\n * @param size The full size (number of elements) of the array.\n * @return The inferred shape where -1 is replaced with the inferred size.\n */\nexport function inferFromImplicitShape(\n shape: number[], size: number): number[] {\n let shapeProd = 1;\n let implicitIdx = -1;\n\n for (let i = 0; i < shape.length; ++i) {\n if (shape[i] >= 0) {\n shapeProd *= shape[i];\n } else if (shape[i] === -1) {\n if (implicitIdx !== -1) {\n throw Error(\n `Shapes can only have 1 implicit size. ` +\n `Found -1 at dim ${implicitIdx} and dim ${i}`);\n }\n implicitIdx = i;\n } else if (shape[i] < 0) {\n throw Error(`Shapes can not be < 0. Found ${shape[i]} at dim ${i}`);\n }\n }\n\n if (implicitIdx === -1) {\n if (size > 0 && size !== shapeProd) {\n throw Error(`Size(${size}) must match the product of shape ${shape}`);\n }\n return shape;\n }\n\n if (shapeProd === 0) {\n throw Error(\n `Cannot infer the missing size in [${shape}] when ` +\n `there are 0 elements`);\n }\n if (size % shapeProd !== 0) {\n throw Error(\n `The implicit shape can't be a fractional number. ` +\n `Got ${size} / ${shapeProd}`);\n }\n\n const newShape = shape.slice();\n newShape[implicitIdx] = size / shapeProd;\n return newShape;\n}\n\nexport function parseAxisParam(\n axis: number|number[], shape: number[]): number[] {\n const rank = shape.length;\n\n // Normalize input\n axis = axis == null ? shape.map((s, i) => i) : [].concat(axis);\n\n // Check for valid range\n assert(\n axis.every(ax => ax >= -rank && ax < rank),\n () =>\n `All values in axis param must be in range [-${rank}, ${rank}) but ` +\n `got axis ${axis}`);\n\n // Check for only integers\n assert(\n axis.every(ax => isInt(ax)),\n () => `All values in axis param must be integers but ` +\n `got axis ${axis}`);\n\n // Handle negative axis.\n return axis.map(a => a < 0 ? rank + a : a);\n}\n\n/** Reduces the shape by removing all dimensions of shape 1. */\nexport function squeezeShape(shape: number[], axis?: number[]):\n {newShape: number[], keptDims: number[]} {\n const newShape: number[] = [];\n const keptDims: number[] = [];\n const isEmptyArray = axis != null && Array.isArray(axis) && axis.length === 0;\n const axes = (axis == null || isEmptyArray) ?\n null :\n parseAxisParam(axis, shape).sort();\n let j = 0;\n for (let i = 0; i < shape.length; ++i) {\n if (axes != null) {\n if (axes[j] === i && shape[i] !== 1) {\n throw new Error(\n `Can't squeeze axis ${i} since its dim '${shape[i]}' is not 1`);\n }\n if ((axes[j] == null || axes[j] > i) && shape[i] === 1) {\n newShape.push(shape[i]);\n keptDims.push(i);\n }\n if (axes[j] <= i) {\n j++;\n }\n }\n if (shape[i] !== 1) {\n newShape.push(shape[i]);\n keptDims.push(i);\n }\n }\n return {newShape, keptDims};\n}\n\nexport function getTypedArrayFromDType(\n dtype: D, size: number): DataTypeMap[D] {\n let values = null;\n if (dtype == null || dtype === 'float32') {\n values = new Float32Array(size);\n } else if (dtype === 'int32') {\n values = new Int32Array(size);\n } else if (dtype === 'bool') {\n values = new Uint8Array(size);\n } else {\n throw new Error(`Unknown data type ${dtype}`);\n }\n return values as DataTypeMap[D];\n}\n\nexport function getArrayFromDType(\n dtype: D, size: number): DataTypeMap[D] {\n let values = null;\n if (dtype == null || dtype === 'float32') {\n values = new Float32Array(size);\n } else if (dtype === 'int32') {\n values = new Int32Array(size);\n } else if (dtype === 'bool') {\n values = new Uint8Array(size);\n } else if (dtype === 'string') {\n values = new Array<'string'>(size);\n } else {\n throw new Error(`Unknown data type ${dtype}`);\n }\n return values as DataTypeMap[D];\n}\n\nexport function checkConversionForErrors(\n vals: DataTypeMap[D]|number[], dtype: D): void {\n for (let i = 0; i < vals.length; i++) {\n const num = vals[i] as number;\n if (isNaN(num) || !isFinite(num)) {\n throw Error(`A tensor of type ${dtype} being uploaded contains ${num}.`);\n }\n }\n}\n\n/** Returns true if the dtype is valid. */\nexport function isValidDtype(dtype: DataType): boolean {\n return dtype === 'bool' || dtype === 'complex64' || dtype === 'float32' ||\n dtype === 'int32' || dtype === 'string';\n}\n\n/**\n * Returns true if the new type can't encode the old type without loss of\n * precision.\n */\nexport function hasEncodingLoss(oldType: DataType, newType: DataType): boolean {\n if (newType === 'complex64') {\n return false;\n }\n if (newType === 'float32' && oldType !== 'complex64') {\n return false;\n }\n if (newType === 'int32' && oldType !== 'float32' && oldType !== 'complex64') {\n return false;\n }\n if (newType === 'bool' && oldType === 'bool') {\n return false;\n }\n return true;\n}\n\nexport function isTypedArray(a: {}): a is Float32Array|Int32Array|Uint8Array {\n return a instanceof Float32Array || a instanceof Int32Array ||\n a instanceof Uint8Array;\n}\n\nexport function bytesPerElement(dtype: DataType): number {\n if (dtype === 'float32' || dtype === 'int32') {\n return 4;\n } else if (dtype === 'complex64') {\n return 8;\n } else if (dtype === 'bool') {\n return 1;\n } else {\n throw new Error(`Unknown dtype ${dtype}`);\n }\n}\n\n/**\n * Returns the approximate number of bytes allocated in the string array - 2\n * bytes per character. Computing the exact bytes for a native string in JS is\n * not possible since it depends on the encoding of the html page that serves\n * the website.\n */\nexport function bytesFromStringArray(arr: Uint8Array[]): number {\n if (arr == null) {\n return 0;\n }\n let bytes = 0;\n arr.forEach(x => bytes += x.length);\n return bytes;\n}\n\n/** Returns true if the value is a string. */\nexport function isString(value: {}): value is string {\n return typeof value === 'string' || value instanceof String;\n}\n\nexport function isBoolean(value: {}): boolean {\n return typeof value === 'boolean';\n}\n\nexport function isNumber(value: {}): boolean {\n return typeof value === 'number';\n}\n\nexport function inferDtype(values: TensorLike): DataType {\n if (Array.isArray(values)) {\n return inferDtype(values[0]);\n }\n if (values instanceof Float32Array) {\n return 'float32';\n } else if (values instanceof Int32Array || values instanceof Uint8Array) {\n return 'int32';\n } else if (isNumber(values)) {\n return 'float32';\n } else if (isString(values)) {\n return 'string';\n } else if (isBoolean(values)) {\n return 'bool';\n }\n return 'float32';\n}\n\nexport function isFunction(f: Function) {\n return !!(f && f.constructor && f.call && f.apply);\n}\n\nexport function nearestDivisor(size: number, start: number): number {\n for (let i = start; i < size; ++i) {\n if (size % i === 0) {\n return i;\n }\n }\n return size;\n}\n\nexport function computeStrides(shape: number[]): number[] {\n const rank = shape.length;\n if (rank < 2) {\n return [];\n }\n\n // Last dimension has implicit stride of 1, thus having D-1 (instead of D)\n // strides.\n const strides = new Array(rank - 1);\n strides[rank - 2] = shape[rank - 1];\n for (let i = rank - 3; i >= 0; --i) {\n strides[i] = strides[i + 1] * shape[i + 1];\n }\n return strides;\n}\n\nfunction createNestedArray(offset: number, shape: number[], a: TypedArray) {\n const ret = new Array();\n if (shape.length === 1) {\n const d = shape[0];\n for (let i = 0; i < d; i++) {\n ret[i] = a[offset + i];\n }\n } else {\n const d = shape[0];\n const rest = shape.slice(1);\n const len = rest.reduce((acc, c) => acc * c);\n for (let i = 0; i < d; i++) {\n ret[i] = createNestedArray(offset + i * len, rest, a);\n }\n }\n return ret;\n}\n\n// Provide a nested array of TypedArray in given shape.\nexport function toNestedArray(shape: number[], a: TypedArray) {\n if (shape.length === 0) {\n // Scalar type should return a single number.\n return a[0];\n }\n const size = shape.reduce((acc, c) => acc * c);\n if (size === 0) {\n // A tensor with shape zero should be turned into empty list.\n return [];\n }\n if (size !== a.length) {\n throw new Error(`[${shape}] does not match the input size ${a.length}.`);\n }\n\n return createNestedArray(0, shape, a);\n}\n\nexport function makeOnesTypedArray(\n size: number, dtype: D): DataTypeMap[D] {\n const array = makeZerosTypedArray(size, dtype);\n for (let i = 0; i < array.length; i++) {\n array[i] = 1;\n }\n return array;\n}\n\nexport function makeZerosTypedArray(\n size: number, dtype: D): DataTypeMap[D] {\n if (dtype == null || dtype === 'float32' || dtype === 'complex64') {\n return new Float32Array(size) as DataTypeMap[D];\n } else if (dtype === 'int32') {\n return new Int32Array(size) as DataTypeMap[D];\n } else if (dtype === 'bool') {\n return new Uint8Array(size) as DataTypeMap[D];\n } else {\n throw new Error(`Unknown data type ${dtype}`);\n }\n}\n\n/**\n * Make nested `TypedArray` filled with zeros.\n * @param shape The shape information for the nested array.\n * @param dtype dtype of the array element.\n */\nexport function makeZerosNestedTypedArray(\n shape: number[], dtype: D) {\n const size = shape.reduce((prev, curr) => prev * curr, 1);\n if (dtype == null || dtype === 'float32') {\n return toNestedArray(shape, new Float32Array(size));\n } else if (dtype === 'int32') {\n return toNestedArray(shape, new Int32Array(size));\n } else if (dtype === 'bool') {\n return toNestedArray(shape, new Uint8Array(size));\n } else {\n throw new Error(`Unknown data type ${dtype}`);\n }\n}\n\nexport function assertNonNegativeIntegerDimensions(shape: number[]) {\n shape.forEach(dimSize => {\n assert(\n Number.isInteger(dimSize) && dimSize >= 0,\n () =>\n `Tensor must have a shape comprised of positive integers but got ` +\n `shape [${shape}].`);\n });\n}\n\n/**\n * Computes flat index for a given location (multidimentionsal index) in a\n * Tensor/multidimensional array.\n *\n * @param locs Location in the tensor.\n * @param rank Rank of the tensor.\n * @param strides Tensor strides.\n */\nexport function locToIndex(\n locs: number[], rank: number, strides: number[]): number {\n if (rank === 0) {\n return 0;\n } else if (rank === 1) {\n return locs[0];\n }\n let index = locs[locs.length - 1];\n for (let i = 0; i < locs.length - 1; ++i) {\n index += strides[i] * locs[i];\n }\n return index;\n}\n\n/**\n * Computes the location (multidimensional index) in a tensor/multidimentional\n * array for a given flat index.\n *\n * @param index Index in flat array.\n * @param rank Rank of tensor.\n * @param strides Strides of tensor.\n */\nexport function indexToLoc(\n index: number, rank: number, strides: number[]): number[] {\n if (rank === 0) {\n return [];\n } else if (rank === 1) {\n return [index];\n }\n const locs: number[] = new Array(rank);\n for (let i = 0; i < locs.length - 1; ++i) {\n locs[i] = Math.floor(index / strides[i]);\n index -= locs[i] * strides[i];\n }\n locs[locs.length - 1] = index;\n return locs;\n}\n\n/**\n * This method asserts whether an object is a Promise instance.\n * @param object\n */\n// tslint:disable-next-line: no-any\nexport function isPromise(object: any) {\n // We chose to not use 'obj instanceOf Promise' for two reasons:\n // 1. It only reliably works for es6 Promise, not other Promise\n // implementations.\n // 2. It doesn't work with framework that uses zone.js. zone.js monkey patch\n // the async calls, so it is possible the obj (patched) is comparing to a\n // pre-patched Promise.\n return object && object.then && typeof object.then === 'function';\n}\n", "/**\n * @license\n * Copyright 2017 Google LLC. 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 *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\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 * =============================================================================\n */\n\nimport {Platform} from './platforms/platform';\nimport {isPromise} from './util_base';\n\n// Expects flags from URL in the format ?tfjsflags=FLAG1:1,FLAG2:true.\nconst TENSORFLOWJS_FLAGS_PREFIX = 'tfjsflags';\n\ntype FlagValue = number|boolean;\ntype FlagEvaluationFn = (() => FlagValue)|(() => Promise);\nexport type Flags = {\n [featureName: string]: FlagValue\n};\nexport type FlagRegistryEntry = {\n evaluationFn: FlagEvaluationFn;\n setHook?: (value: FlagValue) => void;\n};\n\n/**\n * The environment contains evaluated flags as well as the registered platform.\n * This is always used as a global singleton and can be retrieved with\n * `tf.env()`.\n *\n * @doc {heading: 'Environment'}\n */\nexport class Environment {\n private flags: Flags = {};\n private flagRegistry: {[flagName: string]: FlagRegistryEntry} = {};\n\n private urlFlags: Flags = {};\n\n platformName: string;\n platform: Platform;\n\n // tslint:disable-next-line: no-any\n constructor(public global: any) {\n this.populateURLFlags();\n }\n\n setPlatform(platformName: string, platform: Platform) {\n if (this.platform != null) {\n console.warn(\n `Platform ${this.platformName} has already been set. ` +\n `Overwriting the platform with ${platform}.`);\n }\n this.platformName = platformName;\n this.platform = platform;\n }\n\n registerFlag(\n flagName: string, evaluationFn: FlagEvaluationFn,\n setHook?: (value: FlagValue) => void) {\n this.flagRegistry[flagName] = {evaluationFn, setHook};\n\n // Override the flag value from the URL. This has to happen here because the\n // environment is initialized before flags get registered.\n if (this.urlFlags[flagName] != null) {\n const flagValue = this.urlFlags[flagName];\n console.warn(\n `Setting feature override from URL ${flagName}: ${flagValue}.`);\n this.set(flagName, flagValue);\n }\n }\n\n async getAsync(flagName: string): Promise {\n if (flagName in this.flags) {\n return this.flags[flagName];\n }\n\n this.flags[flagName] = await this.evaluateFlag(flagName);\n return this.flags[flagName];\n }\n\n get(flagName: string): FlagValue {\n if (flagName in this.flags) {\n return this.flags[flagName];\n }\n\n const flagValue = this.evaluateFlag(flagName);\n if (isPromise(flagValue)) {\n throw new Error(\n `Flag ${flagName} cannot be synchronously evaluated. ` +\n `Please use getAsync() instead.`);\n }\n\n this.flags[flagName] = flagValue as number | boolean;\n\n return this.flags[flagName];\n }\n\n getNumber(flagName: string): number {\n return this.get(flagName) as number;\n }\n\n getBool(flagName: string): boolean {\n return this.get(flagName) as boolean;\n }\n\n getFlags(): Flags {\n return this.flags;\n }\n // For backwards compatibility.\n get features(): Flags {\n return this.flags;\n }\n\n set(flagName: string, value: FlagValue): void {\n if (this.flagRegistry[flagName] == null) {\n throw new Error(\n `Cannot set flag ${flagName} as it has not been registered.`);\n }\n this.flags[flagName] = value;\n if (this.flagRegistry[flagName].setHook != null) {\n this.flagRegistry[flagName].setHook(value);\n }\n }\n\n private evaluateFlag(flagName: string): FlagValue|Promise {\n if (this.flagRegistry[flagName] == null) {\n throw new Error(\n `Cannot evaluate flag '${flagName}': no evaluation function found.`);\n }\n return this.flagRegistry[flagName].evaluationFn();\n }\n\n setFlags(flags: Flags) {\n this.flags = Object.assign({}, flags);\n }\n\n reset() {\n this.flags = {};\n this.urlFlags = {};\n this.populateURLFlags();\n }\n\n private populateURLFlags(): void {\n if (typeof this.global === 'undefined' ||\n typeof this.global.location === 'undefined' ||\n typeof this.global.location.search === 'undefined') {\n return;\n }\n\n const urlParams = getQueryParams(this.global.location.search);\n if (TENSORFLOWJS_FLAGS_PREFIX in urlParams) {\n const keyValues = urlParams[TENSORFLOWJS_FLAGS_PREFIX].split(',');\n keyValues.forEach(keyValue => {\n const [key, value] = keyValue.split(':') as [string, string];\n this.urlFlags[key] = parseValue(key, value);\n });\n }\n }\n}\n\nexport function getQueryParams(queryString: string): {[key: string]: string} {\n const params = {};\n queryString.replace(/[?&]([^=?&]+)(?:=([^&]*))?/g, (s, ...t) => {\n decodeParam(params, t[0], t[1]);\n return t.join('=');\n });\n return params;\n}\n\nfunction decodeParam(\n params: {[key: string]: string}, name: string, value?: string) {\n params[decodeURIComponent(name)] = decodeURIComponent(value || '');\n}\n\nfunction parseValue(flagName: string, value: string): FlagValue {\n value = value.toLowerCase();\n if (value === 'true' || value === 'false') {\n return value === 'true';\n } else if (`${+ value}` === value) {\n return +value;\n }\n throw new Error(\n `Could not parse value flag value ${value} for flag ${flagName}.`);\n}\n\n/**\n * Returns the current environment (a global singleton).\n *\n * The environment object contains the evaluated feature values as well as the\n * active platform.\n *\n * @doc {heading: 'Environment'}\n */\nexport function env() {\n return ENV;\n}\n\nexport let ENV: Environment = null;\nexport function setEnvironmentGlobal(environment: Environment) {\n ENV = environment;\n}\n", "/**\n * @license\n * Copyright 2020 Google LLC. 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 *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\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 * =============================================================================\n */\n\n// Note that the identifier globalNameSpace is scoped to this module, but will\n// always resolve to the same global object regardless of how the module is\n// resolved.\n// tslint:disable-next-line:no-any\nlet globalNameSpace: {_tfGlobals: Map};\n// tslint:disable-next-line:no-any\nexport function getGlobalNamespace(): {_tfGlobals: Map} {\n if (globalNameSpace == null) {\n // tslint:disable-next-line:no-any\n let ns: any;\n if (typeof (window) !== 'undefined') {\n ns = window;\n } else if (typeof (global) !== 'undefined') {\n ns = global;\n } else if (typeof (process) !== 'undefined') {\n ns = process;\n } else if (typeof (self) !== 'undefined') {\n ns = self;\n } else {\n throw new Error('Could not find a global object');\n }\n globalNameSpace = ns;\n }\n return globalNameSpace;\n}\n\n// tslint:disable-next-line:no-any\nfunction getGlobalMap(): Map {\n const ns = getGlobalNamespace();\n if (ns._tfGlobals == null) {\n ns._tfGlobals = new Map();\n }\n return ns._tfGlobals;\n}\n\n/**\n * Returns a globally accessible 'singleton' object.\n *\n * @param key the name of the object\n * @param init a function to initialize to initialize this object\n * the first time it is fetched.\n */\nexport function getGlobal(key: string, init: () => T): T {\n const globalMap = getGlobalMap();\n if (globalMap.has(key)) {\n return globalMap.get(key);\n } else {\n const singleton = init();\n globalMap.set(key, singleton);\n return globalMap.get(key);\n }\n}\n", "/**\n * @license\n * Copyright 2020 Google LLC. 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 *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\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 * =============================================================================\n */\n// Allow UpperCamelCase variable names\n// tslint:disable: variable-name\n// Unfortunately just enabling PascalCase per file (tslint:enable:\n// allow-pascal-case) doesn't work.\nimport {NamedTensorInfoMap, TensorInfo} from './kernel_registry';\nimport {ExplicitPadding} from './ops/conv_util';\nimport {Activation} from './ops/fused_types';\nimport {DataType, PixelData} from './types';\n\nexport const Abs = 'Abs';\nexport type AbsInputs = UnaryInputs;\n\nexport const Acos = 'Acos';\nexport type AcosInputs = UnaryInputs;\n\nexport const Acosh = 'Acosh';\nexport type AcoshInputs = UnaryInputs;\n\nexport const Add = 'Add';\nexport type AddInputs = BinaryInputs;\n\nexport const AddN = 'AddN';\nexport type AddNInputs = TensorInfo[];\n\nexport const All = 'All';\nexport type AllInputs = Pick;\nexport interface AllAttrs {\n axis: number|number[];\n keepDims: boolean;\n}\n\nexport const Any = 'Any';\nexport type AnyInputs = Pick;\nexport interface AnyAttrs {\n axis: number|number[];\n keepDims: boolean;\n}\n\nexport const ArgMax = 'ArgMax';\nexport type ArgMaxInputs = Pick;\nexport interface ArgMaxAttrs {\n axis: number;\n}\n\nexport const ArgMin = 'ArgMin';\nexport type ArgMinInputs = Pick;\nexport interface ArgMinAttrs {\n axis: number;\n}\n\nexport const Asin = 'Asin';\nexport type AsinInputs = UnaryInputs;\n\nexport const Asinh = 'Asinh';\nexport type AsinhInputs = UnaryInputs;\n\nexport const Atan = 'Atan';\nexport type AtanInputs = UnaryInputs;\n\nexport const Atanh = 'Atanh';\nexport type AtanhInputs = UnaryInputs;\n\nexport const Atan2 = 'Atan2';\nexport type Atan2Inputs = BinaryInputs;\n\nexport const AvgPool = 'AvgPool';\nexport type AvgPoolInputs = Pick;\nexport interface AvgPoolAttrs {\n filterSize: [number, number]|number;\n strides: [number, number]|number;\n pad: 'valid'|'same'|number;\n dimRoundingMode?: 'floor'|'round'|'ceil';\n}\n\nexport const AvgPoolBackprop = 'AvgPoolBackprop';\nexport type AvgPoolBackpropInputs = Pick;\nexport interface AvgPoolBackpropAttrs {\n filterSize: [number, number]|number;\n strides: [number, number]|number;\n pad: 'valid'|'same'|number;\n}\n\nexport const AvgPool3D = 'AvgPool3D';\nexport type AvgPool3DInputs = Pick;\nexport interface AvgPool3DAttrs {\n filterSize: [number, number, number]|number;\n strides: [number, number, number]|number;\n pad: 'valid'|'same'|number;\n dimRoundingMode?: 'floor'|'round'|'ceil';\n dataFormat: 'NDHWC'|'NCDHW';\n dilations?: [number, number, number]|number;\n}\n\nexport const AvgPool3DBackprop = 'AvgPool3DBackprop';\nexport type AvgPool3DBackpropInputs = Pick;\nexport interface AvgPool3DBackpropAttrs {\n filterSize: [number, number, number]|number;\n strides: [number, number, number]|number;\n pad: 'valid'|'same'|number;\n dilations: [number, number, number]|number;\n dimRoundingMode?: 'floor'|'round'|'ceil';\n}\n\nexport const BatchMatMul = 'BatchMatMul';\nexport type BatchMatMulInputs = Pick;\nexport interface BatchMatMulAttrs {\n transposeA: boolean;\n transposeB: boolean;\n}\n\nexport const BatchToSpaceND = 'BatchToSpaceND';\nexport type BatchToSpaceNDInputs = Pick;\nexport interface BatchToSpaceNDAttrs {\n blockShape: number[];\n crops: number[][];\n}\n\nexport type BinaryInputs = Pick;\n\nexport const BroadcastTo = 'BroadcastTo';\nexport type BroadcastToInputs = Pick;\nexport interface BroadCastToAttrs {\n shape: number[];\n inputShape: number[]; // for gradient\n}\n\nexport const Cast = 'Cast';\nexport type CastInputs = UnaryInputs;\nexport interface CastAttrs {\n dtype: DataType;\n}\n\nexport const Ceil = 'Ceil';\nexport type CeilInputs = UnaryInputs;\n\nexport const ClipByValue = 'ClipByValue';\nexport type ClipByValueInputs = UnaryInputs;\nexport interface ClipByValueAttrs {\n clipValueMin: number;\n clipValueMax: number;\n}\n\nexport const Complex = 'Complex';\nexport type ComplexInputs = Pick;\n\nexport const Concat = 'Concat';\nexport type ConcatInputs = TensorInfo[];\nexport interface ConcatAttrs {\n axis: number;\n}\n\nexport const Conv2D = 'Conv2D';\nexport type Conv2DInputs = Pick;\nexport interface Conv2DAttrs {\n strides: [number, number]|number;\n pad: 'valid'|'same'|number|ExplicitPadding;\n dataFormat: 'NHWC'|'NCHW';\n dilations: [number, number]|number;\n dimRoundingMode?: 'floor'|'round'|'ceil';\n}\n\nexport const Conv2DBackpropFilter = 'Conv2DBackpropFilter';\nexport type Conv2DBackpropFilterInputs = Pick;\nexport interface Conv2DBackpropFilterAttrs {\n strides: [number, number]|number;\n pad: 'valid'|'same'|number|ExplicitPadding;\n dataFormat: 'NHWC'|'NCHW';\n dimRoundingMode?: 'floor'|'round'|'ceil';\n filterShape: [number, number, number, number];\n}\n\nexport const Conv2DBackpropInput = 'Conv2DBackpropInput';\nexport type Conv2DBackpropInputInputs = Pick;\nexport interface Conv2DBackpropInputAttrs {\n strides: [number, number]|number;\n pad: 'valid'|'same'|number|ExplicitPadding;\n dataFormat: 'NHWC'|'NCHW';\n dimRoundingMode?: 'floor'|'round'|'ceil';\n inputShape: [number, number, number, number];\n}\n\nexport const Conv3D = 'Conv3D';\nexport type Conv3DInputs = Pick;\nexport interface Conv3DAttrs {\n strides: [number, number, number]|number;\n pad: 'valid'|'same';\n dataFormat: 'NDHWC'|'NCDHW';\n dilations: [number, number, number]|number;\n}\n\nexport const Conv3DBackpropFilterV2 = 'Conv3DBackpropFilterV2';\nexport type Conv3DBackpropFilterInputs = Pick;\n\nexport interface Conv3DBackpropFilterAttrs {\n strides: [number, number, number]|number;\n pad: 'valid'|'same';\n filterShape: [number, number, number, number, number];\n}\n\nexport const Conv3DBackpropInputV2 = 'Conv3DBackpropInputV2';\nexport type Conv3DBackpropInputInputs = Pick;\nexport interface Conv3DBackpropInputAttrs {\n strides: [number, number, number]|number;\n pad: 'valid'|'same';\n inputShape: [number, number, number, number, number];\n}\n\nexport const Cos = 'Cos';\nexport type CosInputs = UnaryInputs;\n\nexport const Cosh = 'Cosh';\nexport type CoshInputs = UnaryInputs;\n\nexport const Cumsum = 'Cumsum';\nexport type CumsumInputs = Pick;\nexport interface CumsumAttrs {\n axis: number;\n exclusive: boolean;\n reverse: boolean;\n}\n\nexport const CropAndResize = 'CropAndResize';\nexport type CropAndResizeInputs =\n Pick;\nexport interface CropAndResizeAttrs {\n cropSize: [number, number];\n method: 'bilinear'|'nearest';\n extrapolationValue: number;\n}\n\nexport const DepthToSpace = 'DepthToSpace';\nexport type DepthToSpaceInputs = Pick;\nexport interface DepthToSpaceAttrs {\n blockSize: number;\n dataFormat: 'NHWC'|'NCHW';\n}\n\nexport const DepthwiseConv2dNative = 'DepthwiseConv2dNative';\nexport type DepthwiseConv2dNativeInputs =\n Pick;\nexport interface DepthwiseConv2dNativeAttrs {\n strides: [number, number]|number;\n pad: 'valid'|'same'|number;\n dataFormat: 'NHWC'|'NCHW';\n dilations: [number, number]|number;\n dimRoundingMode?: 'floor'|'round'|'ceil';\n}\n\nexport const DepthwiseConv2dNativeBackpropFilter =\n 'DepthwiseConv2dNativeBackpropFilter';\nexport type DepthwiseConv2dNativeBackpropFilterInputs =\n Pick;\nexport interface DepthwiseConv2dNativeBackpropFilterAttrs {\n strides: [number, number]|number;\n dilations: [number, number]|number;\n pad: 'valid'|'same'|number;\n dimRoundingMode?: 'floor'|'round'|'ceil';\n filterShape: [number, number, number, number];\n}\n\nexport const DepthwiseConv2dNativeBackpropInput =\n 'DepthwiseConv2dNativeBackpropInput';\nexport type DepthwiseConv2dNativeBackpropInputInputs =\n Pick;\nexport interface DepthwiseConv2dNativeBackpropInputAttrs {\n strides: [number, number]|number;\n dilations: [number, number]|number;\n pad: 'valid'|'same'|number;\n dimRoundingMode?: 'floor'|'round'|'ceil';\n inputShape: [number, number, number, number];\n}\n\nexport const Diag = 'Diag';\nexport type DiagInputs = Pick;\n\nexport const Dilation2D = 'Dilation2D';\nexport type Dilation2DInputs = Pick;\nexport interface Dilation2DAttrs {\n strides: [number, number]|number;\n pad: 'valid'|'same'|number;\n dilations: [number, number]|number;\n}\n\nexport const Dilation2DBackpropInput = 'Dilation2DBackpropInput';\nexport type Dilation2DBackpropInputInputs =\n Pick;\n\nexport const Dilation2DBackpropFilter = 'Dilation2DBackpropFilter';\nexport type Dilation2DBackpropFilterInputs =\n Pick;\n\nexport const Div = 'Div';\nexport type DivInputs = BinaryInputs;\n\nexport const Elu = 'Elu';\nexport type EluInputs = Pick;\n\nexport const EluGrad = 'EluGrad';\nexport type EluGradInputs = Pick;\n\nexport const Erf = 'Erf';\nexport type ErfInputs = UnaryInputs;\n\nexport const Equal = 'Equal';\nexport type EqualInputs = BinaryInputs;\n\nexport const Exp = 'Exp';\nexport type ExpInputs = UnaryInputs;\n\nexport const Expm1 = 'Expm1';\nexport type Expm1Inputs = UnaryInputs;\n\nexport const FFT = 'FFT';\nexport type FFTInputs = Pick;\n\nexport const Fill = 'Fill';\nexport interface FillAttrs {\n shape: number[];\n value: number|string;\n dtype: DataType;\n}\n\nexport const FlipLeftRight = 'FlipLeftRight';\nexport type FlipLeftRightInputs = Pick;\n\nexport const Floor = 'Floor';\nexport type FloorInputs = UnaryInputs;\n\nexport const FloorDiv = 'FloorDiv';\nexport type FloorDivInputs = BinaryInputs;\n\nexport const FusedBatchNorm = 'FusedBatchNorm';\nexport type FusedBatchNormInputs =\n Pick;\nexport interface FusedBatchNormAttrs {\n varianceEpsilon: number;\n}\n\nexport const GatherV2 = 'GatherV2';\nexport type GatherV2Inputs = Pick;\nexport interface GatherV2Attrs {\n axis: number;\n}\n\nexport const GatherNd = 'GatherNd';\nexport type GatherNdInputs = Pick;\n\nexport const Greater = 'Greater';\nexport type GreaterInputs = BinaryInputs;\n\nexport const GreaterEqual = 'GreaterEqual';\nexport type GreaterEqualInputs = BinaryInputs;\n\nexport const Identity = 'Identity';\nexport type IdentityInputs = Pick;\n\nexport const IFFT = 'IFFT';\nexport type IFFTInputs = Pick;\n\nexport const Imag = 'Imag';\nexport type ImagInputs = Pick;\n\nexport const IsFinite = 'IsFinite';\nexport type IsFiniteInputs = UnaryInputs;\n\nexport const IsInf = 'IsInf';\nexport type IsInfInputs = UnaryInputs;\n\nexport const IsNan = 'IsNan';\nexport type IsNanInputs = UnaryInputs;\n\nexport const Less = 'Less';\nexport type LessInputs = BinaryInputs;\n\nexport const LessEqual = 'LessEqual';\nexport type LessEqualInputs = BinaryInputs;\n\nexport const LinSpace = 'LinSpace';\nexport interface LinSpaceAttrs {\n start: number;\n stop: number;\n num: number;\n}\nexport const Log = 'Log';\nexport type LogInputs = UnaryInputs;\n\nexport const Log1p = 'Log1p';\nexport type Log1pInputs = UnaryInputs;\n\nexport const LogicalAnd = 'LogicalAnd';\nexport type LogicalAndInputs = BinaryInputs;\n\nexport const LogicalNot = 'LogicalNot';\nexport type LogicalNotInputs = Pick;\n\nexport const LogicalOr = 'LogicalOr';\nexport type LogicalOrInputs = BinaryInputs;\n\nexport const LogSoftmax = 'LogSoftmax';\nexport type LogSoftmaxInputs = Pick;\nexport interface LogSoftmaxAttrs {\n axis: number;\n}\n\nexport const LRN = 'LRN';\nexport type LRNInputs = Pick;\nexport interface LRNAttrs {\n depthRadius: number;\n bias: number;\n alpha: number;\n beta: number;\n}\n\nexport const LRNBackprop = 'LRNBackprop';\nexport type LRNBackpropInputs = Pick;\nexport interface LRNBackpropAttrs {\n depthRadius: number;\n bias: number;\n alpha: number;\n beta: number;\n}\n\nexport const Max = 'Max';\nexport type MaxInputs = Pick;\nexport interface MaxAttrs {\n reductionIndices: number|number[];\n keepDims: boolean;\n}\n\nexport const Maximum = 'Maximum';\nexport type MaximumInputs = BinaryInputs;\n\nexport const MaxPool = 'MaxPool';\nexport type MaxPoolInputs = Pick;\nexport interface MaxPoolAttrs {\n filterSize: [number, number]|number;\n strides: [number, number]|number;\n pad: 'valid'|'same'|number;\n dimRoundingMode?: 'floor'|'round'|'ceil';\n}\n\nexport const MaxPoolBackprop = 'MaxPoolBackprop';\nexport type MaxPoolBackpropInputs =\n Pick;\nexport interface MaxPoolBackpropAttrs {\n filterSize: [number, number]|number;\n strides: [number, number]|number;\n pad: 'valid'|'same'|number;\n dimRoundingMode?: 'floor'|'round'|'ceil';\n}\n\nexport const MaxPool3D = 'MaxPool3D';\nexport type MaxPool3DInputs = Pick;\nexport interface MaxPool3DAttrs {\n filterSize: [number, number, number]|number;\n strides: [number, number, number]|number;\n pad: 'valid'|'same'|number;\n dataFormat: 'NDHWC'|'NCDHW';\n dilations?: [number, number, number]|number;\n dimRoundingMode?: 'floor'|'round'|'ceil';\n}\n\nexport const MaxPool3DBackprop = 'MaxPool3DBackprop';\nexport type MaxPool3DBackpropInputs =\n Pick;\nexport interface MaxPool3DBackpropAttrs {\n filterSize: [number, number, number]|number;\n strides: [number, number, number]|number;\n pad: 'valid'|'same'|number;\n dilations?: [number, number, number]|number;\n dimRoundingMode?: 'floor'|'round'|'ceil';\n}\n\nexport const MaxPoolWithArgmax = 'MaxPoolWithArgmax';\nexport type MaxPoolWithArgmaxInputs = Pick;\nexport interface MaxPoolWithArgmaxAttrs {\n filterSize: [number, number]|number;\n strides: [number, number]|number;\n pad: 'valid'|'same'|number;\n includeBatchInIndex: boolean;\n}\n\nexport const Mean = 'Mean';\nexport type MeanInputs = Pick;\nexport interface MeanAttrs {\n axis: number|number[];\n keepDims: boolean;\n}\n\nexport const Min = 'Min';\nexport type MinInputs = Pick;\nexport interface MinAttrs {\n axis: number|number[];\n keepDims: boolean;\n}\n\nexport const Minimum = 'Minimum';\nexport type MinimumInputs = BinaryInputs;\n\nexport const MirrorPad = 'MirrorPad';\nexport type MirrorPadInputs = Pick;\nexport interface MirrorPadAttrs {\n paddings: Array<[number, number]>;\n mode: 'reflect'|'symmetric';\n}\n\nexport const Mod = 'Mod';\nexport type ModInputs = BinaryInputs;\n\nexport const Multiply = 'Multiply';\nexport type MultiplyInputs = BinaryInputs;\n\nexport const Negate = 'Negate';\nexport type NegateInputs = UnaryInputs;\n\nexport const NotEqual = 'NotEqual';\nexport type NotEqualInputs = BinaryInputs;\n\nexport const NonMaxSuppressionV3 = 'NonMaxSuppressionV3';\nexport type NonMaxSuppressionV3Inputs =\n Pick;\nexport interface NonMaxSuppressionV3Attrs {\n maxOutputSize: number;\n iouThreshold: number;\n scoreThreshold: number;\n}\n\nexport const NonMaxSuppressionV4 = 'NonMaxSuppressionV4';\nexport type NonMaxSuppressionV4Inputs =\n Pick;\nexport interface NonMaxSuppressionV4Attrs {\n maxOutputSize: number;\n iouThreshold: number;\n scoreThreshold: number;\n padToMaxOutputSize: boolean;\n}\n\nexport const NonMaxSuppressionV5 = 'NonMaxSuppressionV5';\nexport type NonMaxSuppressionV5Inputs =\n Pick;\nexport interface NonMaxSuppressionV5Attrs {\n maxOutputSize: number;\n iouThreshold: number;\n scoreThreshold: number;\n softNmsSigma: number;\n}\n\nexport const OnesLike = 'OnesLike';\nexport type OnesLikeInputs = UnaryInputs;\n\nexport const OneHot = 'OneHot';\nexport type OneHotInputs = Pick;\nexport interface OneHotAttrs {\n depth: number;\n onValue: number;\n offValue: number;\n}\n\nexport const PadV2 = 'PadV2';\nexport type PadV2Inputs = Pick;\nexport interface PadV2Attrs {\n paddings: Array<[number, number]>;\n constantValue: number;\n}\n\nexport const Pool = 'Pool';\nexport type PoolInputs = Pick;\n\nexport const Pow = 'Pow';\nexport type PowInputs = BinaryInputs;\n\nexport const Prelu = 'Prelu';\nexport type PreluInputs = Pick;\n\nexport const Prod = 'Prod';\nexport type ProdInputs = Pick;\nexport interface ProdAttrs {\n axis: number|number[];\n keepDims: boolean;\n}\n\nexport const Range = 'Range';\nexport interface RangeAttrs {\n start: number;\n stop: number;\n step: number;\n dtype: 'float32'|'int32';\n}\n\nexport const Real = 'Real';\nexport type RealInputs = Pick;\n\nexport const Reciprocal = 'Reciprocal';\nexport type ReciprocalInputs = UnaryInputs;\n\nexport const Relu = 'Relu';\nexport type ReluInputs = Pick;\n\nexport const Reshape = 'Reshape';\nexport type ReshapeInputs = Pick;\nexport interface ReshapeAttrs {\n shape: number[];\n}\n\nexport const ResizeNearestNeighbor = 'ResizeNearestNeighbor';\nexport type ResizeNearestNeighborInputs = Pick;\nexport interface ResizeNearestNeighborAttrs {\n alignCorners: boolean;\n size: [number, number];\n}\n\nexport const ResizeNearestNeighborGrad = 'ResizeNearestNeighborGrad';\nexport type ResizeNearestNeighborGradInputs =\n Pick;\n\nexport const ResizeBilinear = 'ResizeBilinear';\nexport type ResizeBilinearInputs = Pick;\nexport interface ResizeBilinearAttrs {\n alignCorners: boolean;\n size: [number, number];\n}\n\nexport const ResizeBilinearGrad = 'ResizeBilinearGrad';\nexport type ResizeBilinearGradInputs = Pick;\n\nexport const Relu6 = 'Relu6';\nexport type Relu6Inputs = Pick;\n\nexport const Reverse = 'Reverse';\nexport type ReverseInputs = Pick;\nexport interface ReverseAttrs {\n dims: number|number[];\n}\n\nexport const Round = 'Round';\nexport type RoundInputs = UnaryInputs;\n\nexport const Rsqrt = 'Rsqrt';\nexport type RsqrtInputs = UnaryInputs;\n\nexport const ScatterNd = 'ScatterNd';\nexport type ScatterNdInputs = Pick;\nexport interface ScatterNdAttrs {\n shape: number[];\n}\n\nexport const SelectV2 = 'SelectV2';\nexport type SelectV2Inputs = Pick;\n\nexport const Selu = 'Selu';\nexport type SeluInputs = Pick;\n\nexport const Slice = 'Slice';\nexport type SliceInputs = Pick;\nexport interface SliceAttrs {\n begin: number|number[];\n size: number|number[];\n}\nexport const Sin = 'Sin';\nexport type SinInputs = UnaryInputs;\n\nexport const Sinh = 'Sinh';\nexport type SinhInputs = UnaryInputs;\n\nexport const Sign = 'Sign';\nexport type SignInputs = UnaryInputs;\n\nexport const Sigmoid = 'Sigmoid';\nexport type SigmoidInputs = UnaryInputs;\n\nexport const Softplus = 'Softplus';\nexport type SoftplusInputs = UnaryInputs;\n\nexport const Sqrt = 'Sqrt';\nexport type SqrtInputs = UnaryInputs;\n\nexport const Sum = 'Sum';\nexport type SumInputs = Pick;\nexport interface SumAttrs {\n axis: number|number[];\n keepDims: boolean;\n}\n\nexport const SpaceToBatchND = 'SpaceToBatchND';\nexport type SpaceToBatchNDInputs = Pick;\nexport interface SpaceToBatchNDAttrs {\n blockShape: number[];\n paddings: number[][];\n}\n\nexport const SplitV = 'SplitV';\nexport type SplitVInputs = Pick;\nexport interface SplitVAttrs {\n numOrSizeSplits: number[]|number;\n axis: number;\n}\n\nexport const Softmax = 'Softmax';\nexport type SoftmaxInputs = Pick;\nexport interface SoftmaxAttrs {\n dim: number;\n}\n\nexport const SquaredDifference = 'SquaredDifference';\nexport type SquaredDifferenceInputs = BinaryInputs;\n\nexport const Square = 'Square';\nexport type SquareInputs = Pick;\n\nexport const Sub = 'Sub';\nexport type SubInputs = BinaryInputs;\n\nexport const SparseToDense = 'SparseToDense';\nexport type SparseToDenseInputs =\n Pick;\nexport interface SparseToDenseAttrs {\n outputShape: number[];\n}\n\nexport const StridedSlice = 'StridedSlice';\nexport type StridedSliceInputs = Pick;\nexport interface StridedSliceAttrs {\n begin: number[];\n end: number[];\n strides: number[];\n beginMask: number;\n endMask: number;\n ellipsisMask: number;\n newAxisMask: number;\n shrinkAxisMask: number;\n}\n\nexport const Tan = 'Tan';\nexport type TanInputs = UnaryInputs;\n\nexport const Tanh = 'Tanh';\nexport type TanhInputs = UnaryInputs;\n\nexport const Tile = 'Tile';\nexport type TileInputs = Pick;\nexport interface TileAttrs {\n reps: number[];\n}\n\nexport const TopK = 'TopK';\nexport type TopKInputs = Pick;\nexport interface TopKAttrs {\n k: number;\n sorted: boolean;\n}\n\nexport const Transpose = 'Transpose';\nexport type TransposeInputs = Pick;\nexport interface TransposeAttrs {\n perm: number[];\n}\n\nexport const Unique = 'Unique';\nexport type UniqueInputs = Pick;\nexport interface UniqueAttrs {\n axis: number;\n}\n\nexport type UnaryInputs = Pick;\n\nexport const Unpack = 'Unpack';\nexport type UnpackInputs = Pick;\nexport interface UnpackAttrs {\n axis: number;\n}\n\nexport const UnsortedSegmentSum = 'UnsortedSegmentSum';\nexport type UnsortedSegmentSumInputs =\n Pick;\nexport interface UnsortedSegmentSumAttrs {\n numSegments: number;\n}\n\nexport const ZerosLike = 'ZerosLike';\nexport type ZerosLikeInputs = UnaryInputs;\n\n/**\n * TensorFlow.js-only kernels\n */\nexport const Step = 'Step';\nexport type StepInputs = UnaryInputs;\nexport interface StepAttrs {\n alpha: number;\n}\n\nexport const FromPixels = 'FromPixels';\nexport interface FromPixelsInputs {\n pixels: PixelData|ImageData|HTMLImageElement|HTMLCanvasElement|\n HTMLVideoElement;\n}\nexport interface FromPixelsAttrs {\n numChannels: number;\n}\n\nexport const RotateWithOffset = 'RotateWithOffset';\nexport type RotateWithOffsetInputs = Pick;\nexport interface RotateWithOffsetAttrs {\n radians: number;\n fillValue: number|[number, number, number];\n center: number|[number, number];\n}\n\nexport const _FusedMatMul = '_FusedMatMul';\n// tslint:disable-next-line: class-name\nexport interface _FusedMatMulInputs extends NamedTensorInfoMap {\n a: TensorInfo;\n b: TensorInfo;\n bias?: TensorInfo;\n preluActivationWeights?: TensorInfo;\n}\n// tslint:disable-next-line: class-name\nexport interface _FusedMatMulAttrs {\n transposeA: boolean;\n transposeB: boolean;\n activation: Activation;\n}\n\nexport const FusedConv2D = 'FusedConv2D';\nexport interface FusedConv2DInputs extends NamedTensorInfoMap {\n x: TensorInfo;\n filter: TensorInfo;\n bias?: TensorInfo;\n preluActivationWeights?: TensorInfo;\n}\nexport interface FusedConv2DAttrs {\n strides: [number, number]|number;\n pad: 'valid'|'same'|number|ExplicitPadding;\n dataFormat: 'NHWC'|'NCHW';\n dilations: [number, number]|number;\n dimRoundingMode: 'floor'|'round'|'ceil';\n activation: Activation;\n}\n\nexport const FusedDepthwiseConv2D = 'FusedDepthwiseConv2D';\nexport interface FusedDepthwiseConv2DInputs extends NamedTensorInfoMap {\n x: TensorInfo;\n filter: TensorInfo;\n bias?: TensorInfo;\n preluActivationWeights?: TensorInfo;\n}\nexport interface FusedDepthwiseConv2DAttrs {\n strides: [number, number]|number;\n pad: 'valid'|'same'|number;\n dataFormat: 'NHWC'|'NCHW';\n dilations: [number, number]|number;\n dimRoundingMode: 'floor'|'round'|'ceil';\n activation: Activation;\n}\n", "/**\n * @license\n * Copyright 2019 Google LLC. 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 *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\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 * =============================================================================\n */\nimport {env} from './environment';\n\nimport {getGlobal} from './global_util';\nimport {NamedGradientMap} from './tape';\nimport {Tensor} from './tensor';\nimport {DataType, RecursiveArray} from './types';\n\nconst kernelRegistry =\n getGlobal('kernelRegistry', () => new Map());\nconst gradRegistry =\n getGlobal('gradRegistry', () => new Map());\n\nexport type DataId = object;\n\ntype AttributeValue =\n number|number[]|boolean|boolean[]|string|string[]|NamedAttrMap;\n\n/** These are extra non-tensor/primitive params passed to kernel functions. */\nexport type Attribute = AttributeValue|RecursiveArray;\n\n/** Specifies the code to run when executing a kernel. */\nexport type KernelFunc = (params: {\n inputs: NamedTensorInfoMap,\n backend: {},\n attrs?: NamedAttrMap,\n}) => TensorInfo|TensorInfo[];\n\n/** The function to run when computing a gradient during backprop. */\nexport type GradFunc =\n (dy: Tensor|Tensor[], saved: Tensor[], attrs: NamedAttrMap) =>\n NamedGradientMap;\n\n/** Function that gets called after the backend initializes. */\nexport type KernelSetupFunc = (backend: {}) => void;\n/** Function that gets called right before the backend is disposed. */\nexport type KernelDisposeFunc = KernelSetupFunc;\n\n/** Config object for registering a kernel in the global registry. */\nexport interface KernelConfig {\n kernelName: string;\n backendName: string;\n kernelFunc: KernelFunc;\n setupFunc?: KernelSetupFunc;\n disposeFunc?: KernelDisposeFunc;\n}\n\n/** Config object for registering a gradient in the global registry. */\nexport interface GradConfig {\n kernelName: string;\n inputsToSave?: string[];\n // When saveAllInputs is true, all inputs will be saved. Only use this flag\n // if inputs is an array of Tensors.\n saveAllInputs?: boolean;\n outputsToSave?: boolean[];\n gradFunc: GradFunc;\n}\n\n/** Holds metadata for a given tensor. */\nexport interface TensorInfo {\n dataId: DataId;\n shape: number[];\n dtype: DataType;\n}\n\nexport interface NamedTensorInfoMap {\n [name: string]: TensorInfo;\n}\n\nexport interface NamedAttrMap {\n [name: string]: Attribute;\n}\n\n/**\n * Returns the kernel function (code) associated with the provided names.\n *\n * @param kernelName The official name of the kernel.\n * @param backendName The official name of the backend.\n */\nexport function getKernel(\n kernelName: string, backendName: string): KernelConfig {\n const key = makeKey(kernelName, backendName);\n return kernelRegistry.get(key);\n}\n\n/**\n * Returns the registered gradient info associated with the provided kernel.\n * @param kernelName The official TF kernel name.\n */\nexport function getGradient(kernelName: string): GradConfig {\n return gradRegistry.get(kernelName);\n}\n\nexport function getKernelsForBackend(backendName: string): KernelConfig[] {\n const it = kernelRegistry.entries();\n const result: KernelConfig[] = [];\n\n while (true) {\n const {done, value} = it.next();\n if (done) {\n break;\n }\n const [key, config] = value;\n const [backend, ] = key.split('_');\n if (backend === backendName) {\n result.push(config);\n }\n }\n return result;\n}\n\n/**\n * Registers the function (forward pass) for the kernel in a global registry.\n *\n * @param config A config object with the following properties:\n * - `kernelName` The official name of the kernel.\n * - `backendName` The official name of the backend.\n * - `kernelFunc` The function to run during the forward pass of the kernel.\n * - `setupFunc` Optional. Gets called once, after the backend initializes.\n * - `disposeFunc` Optional. Gets called once, right before the backend is\n * disposed.\n */\nexport function registerKernel(config: KernelConfig) {\n const {kernelName, backendName} = config;\n const key = makeKey(kernelName, backendName);\n if (kernelRegistry.has(key)) {\n console.warn(\n `The kernel '${kernelName}' for backend ` +\n `'${backendName}' is already registered`);\n }\n kernelRegistry.set(key, config);\n}\n\n/**\n * Registers a gradient function for a given kernel in the global registry,\n * to be used during the back-propagation of that kernel.\n *\n * @param config An object with the following properties:\n * - `kernelName` The name of the kernel that the gradient function is for.\n * - `gradFunc` The function to run during back-propagation.\n */\nexport function registerGradient(config: GradConfig) {\n const {kernelName} = config;\n\n if (gradRegistry.has(kernelName)) {\n // TODO (yassogba) after 3.0 assess whether we need to keep this gated\n // to debug mode.\n if (env().getBool('DEBUG')) {\n console.warn(`Overriding the gradient for '${kernelName}'`);\n }\n }\n gradRegistry.set(kernelName, config);\n}\n\n/**\n * Removes the kernel function from the registry.\n *\n * @param kernelName The official name of the kernel.\n * @param backendName The official name of the backend.\n *\n */\nexport function unregisterKernel(\n kernelName: string, backendName: string): void {\n const key = makeKey(kernelName, backendName);\n if (!kernelRegistry.has(key)) {\n throw new Error(\n `The kernel '${kernelName}' for backend ` +\n `'${backendName}' is not registered`);\n }\n kernelRegistry.delete(key);\n}\n\n/** Removes the registered gradient from the global registry. */\nexport function unregisterGradient(kernelName: string): void {\n if (!gradRegistry.has(kernelName)) {\n throw new Error(\n `The gradient '${kernelName}' for backend is not registered`);\n }\n gradRegistry.delete(kernelName);\n}\n\n/**\n * Finds kernels that have already been registered to a backend and re-registers\n * them for a new backend. Useful for registering custom backends.\n * @param registeredBackendName Already registered backend.\n * @param newBackendName New backend.\n */\nexport function copyRegisteredKernels(\n registeredBackendName: string, newBackendName: string): void {\n const kernels = getKernelsForBackend(registeredBackendName);\n kernels.forEach(kernelConfig => {\n const newKernelConfig =\n Object.assign({}, kernelConfig, {backendName: newBackendName});\n registerKernel(newKernelConfig);\n });\n}\n\nfunction makeKey(kernelName: string, backendName: string) {\n return `${backendName}_${kernelName}`;\n}\n", "/**\n * @license\n * Copyright 2017 Google LLC. 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 *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\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 * =============================================================================\n */\n\nimport {env} from './environment';\nimport {BackendValues, DataType, TensorLike, TypedArray} from './types';\nimport * as base from './util_base';\nexport * from './util_base';\n\n/**\n * Create typed array for scalar value. Used for storing in `DataStorage`.\n */\nexport function createScalarValue(\n value: DataType, dtype: DataType): BackendValues {\n if (dtype === 'string') {\n return encodeString(value);\n }\n\n return toTypedArray([value], dtype);\n}\n\nfunction noConversionNeeded(a: TensorLike, dtype: DataType): boolean {\n return (a instanceof Float32Array && dtype === 'float32') ||\n (a instanceof Int32Array && dtype === 'int32') ||\n (a instanceof Uint8Array && dtype === 'bool');\n}\n\nexport function toTypedArray(a: TensorLike, dtype: DataType): TypedArray {\n if (dtype === 'string') {\n throw new Error('Cannot convert a string[] to a TypedArray');\n }\n if (Array.isArray(a)) {\n a = base.flatten(a);\n }\n\n if (env().getBool('DEBUG')) {\n base.checkConversionForErrors(a as number[], dtype);\n }\n if (noConversionNeeded(a, dtype)) {\n return a as TypedArray;\n }\n if (dtype == null || dtype === 'float32' || dtype === 'complex64') {\n return new Float32Array(a as number[]);\n } else if (dtype === 'int32') {\n return new Int32Array(a as number[]);\n } else if (dtype === 'bool') {\n const bool = new Uint8Array((a as number[]).length);\n for (let i = 0; i < bool.length; ++i) {\n if (Math.round((a as number[])[i]) !== 0) {\n bool[i] = 1;\n }\n }\n return bool;\n } else {\n throw new Error(`Unknown data type ${dtype}`);\n }\n}\n\n/**\n * Returns the current high-resolution time in milliseconds relative to an\n * arbitrary time in the past. It works across different platforms (node.js,\n * browsers).\n *\n * ```js\n * console.log(tf.util.now());\n * ```\n *\n * @doc {heading: 'Util', namespace: 'util'}\n */\nexport function now(): number {\n return env().platform.now();\n}\n\n/**\n * Returns a platform-specific implementation of\n * [`fetch`](https://developer.mozilla.org/en-US/docs/Web/API/Fetch_API).\n *\n * If `fetch` is defined on the global object (`window`, `process`, etc.),\n * `tf.util.fetch` returns that function.\n *\n * If not, `tf.util.fetch` returns a platform-specific solution.\n *\n * ```js\n * const resource = await tf.util.fetch('https://unpkg.com/@tensorflow/tfjs');\n * // handle response\n * ```\n *\n * @doc {heading: 'Util'}\n */\nexport function fetch(\n path: string, requestInits?: RequestInit): Promise {\n return env().platform.fetch(path, requestInits);\n}\n\n/**\n * Encodes the provided string into bytes using the provided encoding scheme.\n *\n * @param s The string to encode.\n * @param encoding The encoding scheme. Defaults to utf-8.\n *\n * @doc {heading: 'Util'}\n */\nexport function encodeString(s: string, encoding = 'utf-8'): Uint8Array {\n encoding = encoding || 'utf-8';\n return env().platform.encode(s, encoding);\n}\n\n/**\n * Decodes the provided bytes into a string using the provided encoding scheme.\n * @param bytes The bytes to decode.\n *\n * @param encoding The encoding scheme. Defaults to utf-8.\n *\n * @doc {heading: 'Util'}\n */\nexport function decodeString(bytes: Uint8Array, encoding = 'utf-8'): string {\n encoding = encoding || 'utf-8';\n return env().platform.decode(bytes, encoding);\n}\n", "/**\n * @license\n * Copyright 2018 Google LLC. 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 *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\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 * =============================================================================\n */\n\nimport {BackendTimer} from './backends/backend';\nimport {Tensor} from './tensor';\nimport {NamedTensorMap} from './tensor_types';\nimport {DataType, DataTypeMap, TypedArray} from './types';\nimport * as util from './util';\n\nexport type KernelProfile = {\n kernelName: string,\n outputs: Tensor[],\n inputs: NamedTensorMap,\n timeMs: Promise,\n extraInfo: Promise\n};\n\nexport class Profiler {\n constructor(private backendTimer: BackendTimer, private logger?: Logger) {\n if (logger == null) {\n this.logger = new Logger();\n }\n }\n\n profileKernel(kernelName: string, inputs: NamedTensorMap, f: () => Tensor[]):\n KernelProfile {\n let outputs: Tensor[];\n const holdResultWrapperFn = () => {\n outputs = f();\n };\n const timer = this.backendTimer.time(holdResultWrapperFn);\n\n for (let i = 0; i < outputs.length; i++) {\n const output = outputs[i];\n // Dangling promise here because we don't want to propagate up\n // asynchronicity.\n output.data().then(tensorVals => {\n checkComputationForErrors(tensorVals, output.dtype, kernelName);\n });\n }\n\n const kernelProfile = {\n kernelName,\n outputs,\n inputs,\n timeMs: timer.then(timing => timing.kernelMs),\n extraInfo: timer.then(\n timing => timing.getExtraProfileInfo != null ?\n timing.getExtraProfileInfo() :\n '')\n };\n return kernelProfile;\n }\n\n logKernelProfile(kernelProfile: KernelProfile): void {\n const {kernelName, outputs, timeMs, inputs, extraInfo} = kernelProfile;\n\n outputs.forEach(result => {\n Promise.all([result.data(), timeMs, extraInfo]).then(valueContainer => {\n this.logger.logKernelProfile(\n kernelName, result, valueContainer[0], valueContainer[1], inputs,\n valueContainer[2]);\n });\n });\n }\n}\n\nexport function checkComputationForErrors(\n vals: DataTypeMap[D], dtype: D, kernelName: string): boolean {\n if (dtype !== 'float32') {\n // Only floating point computations will generate NaN values\n return false;\n }\n for (let i = 0; i < vals.length; i++) {\n const num = vals[i] as number;\n if (isNaN(num) || !isFinite(num)) {\n // Throwing custom exception so behavior is testable.\n console.warn(`Found ${num} in the result of '${kernelName}'`);\n return true;\n }\n }\n return false;\n}\n\nexport class Logger {\n logKernelProfile(\n name: string, result: Tensor, vals: TypedArray,\n timeMs: number|{error: string}, inputs: NamedTensorMap,\n extraInfo?: string) {\n const time = typeof timeMs === 'number' ? util.rightPad(`${timeMs}ms`, 9) :\n timeMs['error'];\n const paddedName = util.rightPad(name, 25);\n const rank = result.rank;\n const size = result.size;\n const shape = util.rightPad(result.shape.toString(), 14);\n let inputShapesDescription = '';\n\n for (const name in inputs) {\n const input = inputs[name];\n if (input != null) {\n // The input might be a non-tensor (e.g HTMLImageElement), in which case\n // we claim the output shape as input shape.\n const inputShape = input.shape || result.shape;\n const inputRank = inputShape.length;\n inputShapesDescription +=\n `${name}: ${inputRank}D ${inputRank > 0 ? inputShape : ''} `;\n }\n }\n\n console.log(\n `%c${paddedName}\\t%c${time}\\t%c${rank}D ${shape}\\t%c${size}\\t%c${\n inputShapesDescription}\\t%c${extraInfo}`,\n 'font-weight:bold', 'color:red', 'color:blue', 'color: orange',\n 'color: green', 'color: steelblue');\n }\n}\n", "/**\n * @license\n * Copyright 2017 Google LLC. 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 *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\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 * =============================================================================\n */\n\nimport {Tensor} from './tensor';\nimport {NamedTensorMap} from './tensor_types';\nimport * as util from './util';\n\nexport interface TapeNode {\n id: number;\n kernelName: string;\n outputs: Tensor[];\n inputs: NamedTensorMap;\n // Optional params, defined only for ops with gradient impl.\n gradient?: (dys: Tensor[]) => NamedGradientMap;\n saved?: Tensor[];\n}\n\nexport type NamedGradientMap = {\n [inputName: string]: () => Tensor;\n};\n\n/**\n * Computes a list of TapeNodes that connect x to y, filtering everything else\n * out and preserving the order of the original tape elements.\n *\n * @param tape The tape elements to filter.\n * @param xs The input Tensors.\n * @param y The output Tensor.\n */\nexport function getFilteredNodesXToY(\n tape: TapeNode[], xs: Tensor[], y: Tensor): TapeNode[] {\n // Forward pass to compute all the nodes and Tensors that are transitively a\n // function of x.\n const tensorsFromX: {[tensorId: number]: boolean} = {};\n const nodesFromX: {[nodeId: number]: boolean} = {};\n for (let i = 0; i < xs.length; i++) {\n tensorsFromX[xs[i].id] = true;\n }\n\n for (let i = 0; i < tape.length; i++) {\n const node = tape[i];\n const nodeInputs = node.inputs;\n for (const inputName in nodeInputs) {\n const input = nodeInputs[inputName];\n\n let anyInputFromX = false;\n for (let j = 0; j < xs.length; j++) {\n if (tensorsFromX[input.id]) {\n node.outputs.forEach(output => tensorsFromX[output.id] = true);\n anyInputFromX = true;\n nodesFromX[node.id] = true;\n break;\n }\n }\n\n if (anyInputFromX) {\n break;\n }\n }\n }\n\n // Backward pass to find all of the nodes and Tensors that lead to y.\n const tensorsLeadToY: {[tensorId: number]: boolean} = {};\n tensorsLeadToY[y.id] = true;\n const nodesToY: {[nodeId: number]: boolean} = {};\n\n for (let i = tape.length - 1; i >= 0; i--) {\n const node = tape[i];\n const nodeInputs = node.inputs;\n\n // If any of the outputs lead to y, mark all of the inputs as leading to y.\n for (let j = 0; j < node.outputs.length; j++) {\n if (tensorsLeadToY[node.outputs[j].id]) {\n for (const inputName in nodeInputs) {\n tensorsLeadToY[nodeInputs[inputName].id] = true;\n nodesToY[node.id] = true;\n }\n break;\n }\n }\n }\n\n // Return the paths that come from x and lead to y.\n const filteredTape: TapeNode[] = [];\n for (let i = 0; i < tape.length; i++) {\n const node = tape[i];\n\n if (nodesFromX[node.id] && nodesToY[node.id]) {\n // Prune the inputs from the node that aren't a function of x.\n const prunedInputs: {[inputName: string]: Tensor} = {};\n for (const inputName in node.inputs) {\n const nodeInput = node.inputs[inputName];\n if (tensorsFromX[nodeInput.id]) {\n prunedInputs[inputName] = nodeInput;\n }\n }\n\n // Copy the node and overwrite inputsAndArgs to the pruned version.\n const prunedNode = Object.assign({}, node);\n prunedNode.inputs = prunedInputs;\n prunedNode.outputs = node.outputs;\n\n filteredTape.push(prunedNode);\n }\n }\n\n return filteredTape;\n}\n\n/**\n * Backpropagate gradients through the filtered TapeNodes.\n *\n * @param tensorAccumulatedGradientMap A map of Tensor to its gradient. This map\n * is mutated by this method.\n * @param filteredTape The filtered TapeNodes to backprop through.\n */\nexport function backpropagateGradients(\n tensorAccumulatedGradientMap: {[tensorId: number]: Tensor},\n filteredTape: TapeNode[], tidy: (f: Function) => Tensor,\n add: (a: Tensor, b: Tensor) => Tensor) {\n // Walk the tape backward and keep a map of Tensor to its gradient.\n for (let i = filteredTape.length - 1; i >= 0; i--) {\n const node = filteredTape[i];\n\n const dys: Tensor[] = [];\n node.outputs.forEach(o => {\n const gradTensor = tensorAccumulatedGradientMap[o.id];\n if (gradTensor != null) {\n dys.push(gradTensor);\n } else {\n // This particular output is not in the back-propagation subgraph, so it\n // does not affect the final output, thus we put null for its dy.\n dys.push(null);\n }\n });\n\n if (node.gradient == null) {\n throw new Error(\n `Cannot compute gradient: gradient function not found ` +\n `for ${node.kernelName}.`);\n }\n\n // Backprop dy through this node and accumulate gradients over the inputs.\n const inputGradients = node.gradient(dys);\n\n for (const inputName in node.inputs) {\n if (!(inputName in inputGradients)) {\n throw new Error(\n `Cannot backprop through input ${inputName}. ` +\n `Available gradients found: ${Object.keys(inputGradients)}.`);\n }\n\n // Call the gradient function.\n const dx = tidy(() => inputGradients[inputName]());\n if (dx.dtype !== 'float32') {\n throw new Error(\n `Error in gradient for op ${\n node.kernelName}. The gradient of input ` +\n `${inputName} must have 'float32' dtype, but has '${dx.dtype}'`);\n }\n const x = node.inputs[inputName];\n if (!util.arraysEqual(dx.shape, x.shape)) {\n throw new Error(\n `Error in gradient for op ${\n node.kernelName}. The gradient of input ` +\n `'${inputName}' has shape '${dx.shape}', which does not match ` +\n `the shape of the input '${x.shape}'`);\n }\n\n if (tensorAccumulatedGradientMap[x.id] == null) {\n tensorAccumulatedGradientMap[x.id] = dx;\n } else {\n const curGradient = tensorAccumulatedGradientMap[x.id];\n tensorAccumulatedGradientMap[x.id] = add(curGradient, dx);\n curGradient.dispose();\n }\n }\n }\n}\n", "/**\n * @license\n * Copyright 2018 Google LLC. 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 *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\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 * =============================================================================\n */\n\nimport {DataType, TypedArray} from './types';\nimport {computeStrides, isString, rightPad, sizeFromShape} from './util';\n\n// Maximum number of values before we decide to show ellipsis.\nconst FORMAT_LIMIT_NUM_VALS = 20;\n// Number of first and last values to show when displaying a, b,...,y, z.\nconst FORMAT_NUM_FIRST_LAST_VALS = 3;\n// Number of significant digits to show.\nconst FORMAT_NUM_SIG_DIGITS = 7;\n\nexport function tensorToString(\n vals: TypedArray|string[], shape: number[], dtype: DataType,\n verbose: boolean) {\n const strides = computeStrides(shape);\n const padPerCol = computeMaxSizePerColumn(vals, shape, dtype, strides);\n const rank = shape.length;\n const valsLines = subTensorToString(vals, shape, dtype, strides, padPerCol);\n const lines = ['Tensor'];\n if (verbose) {\n lines.push(` dtype: ${dtype}`);\n lines.push(` rank: ${rank}`);\n lines.push(` shape: [${shape}]`);\n lines.push(` values:`);\n }\n lines.push(valsLines.map(l => ' ' + l).join('\\n'));\n return lines.join('\\n');\n}\n\nfunction computeMaxSizePerColumn(\n vals: TypedArray|string[], shape: number[], dtype: DataType,\n strides: number[]): number[] {\n const n = sizeFromShape(shape);\n const numCols = strides[strides.length - 1];\n const padPerCol = new Array(numCols).fill(0);\n const rank = shape.length;\n const valuesOrTuples =\n dtype === 'complex64' ? createComplexTuples(vals) : vals;\n\n if (rank > 1) {\n for (let row = 0; row < n / numCols; row++) {\n const offset = row * numCols;\n for (let j = 0; j < numCols; j++) {\n padPerCol[j] = Math.max(\n padPerCol[j],\n valToString(valuesOrTuples[offset + j], 0, dtype).length);\n }\n }\n }\n return padPerCol;\n}\n\nfunction valToString(\n val: number|string|[number, number], pad: number, dtype: DataType) {\n let valStr: string;\n if (Array.isArray(val)) {\n valStr = `${parseFloat(val[0].toFixed(FORMAT_NUM_SIG_DIGITS))} + ` +\n `${parseFloat(val[1].toFixed(FORMAT_NUM_SIG_DIGITS))}j`;\n } else if (isString(val)) {\n valStr = `'${val}'`;\n } else if (dtype === 'bool') {\n valStr = boolNumToString(val);\n } else {\n valStr = parseFloat(val.toFixed(FORMAT_NUM_SIG_DIGITS)).toString();\n }\n\n return rightPad(valStr, pad);\n}\n\nfunction boolNumToString(v: number): string {\n return v === 0 ? 'false' : 'true';\n}\n\nfunction subTensorToString(\n vals: TypedArray|string[], shape: number[], dtype: DataType,\n strides: number[], padPerCol: number[], isLast = true): string[] {\n const storagePerElement = dtype === 'complex64' ? 2 : 1;\n\n const size = shape[0];\n const rank = shape.length;\n if (rank === 0) {\n if (dtype === 'complex64') {\n const complexTuple = createComplexTuples(vals);\n return [valToString(complexTuple[0], 0, dtype)];\n }\n if (dtype === 'bool') {\n return [boolNumToString(vals[0] as number)];\n }\n return [vals[0].toString()];\n }\n\n if (rank === 1) {\n if (size > FORMAT_LIMIT_NUM_VALS) {\n const firstValsSize = FORMAT_NUM_FIRST_LAST_VALS * storagePerElement;\n\n let firstVals = Array.from(\n vals.slice(0, firstValsSize));\n let lastVals = Array.from(vals.slice(\n (size - FORMAT_NUM_FIRST_LAST_VALS) * storagePerElement,\n size * storagePerElement));\n if (dtype === 'complex64') {\n firstVals = createComplexTuples(firstVals);\n lastVals = createComplexTuples(lastVals);\n }\n return [\n '[' +\n firstVals.map((x, i) => valToString(x, padPerCol[i], dtype))\n .join(', ') +\n ', ..., ' +\n lastVals\n .map(\n (x, i) => valToString(\n x, padPerCol[size - FORMAT_NUM_FIRST_LAST_VALS + i], dtype))\n .join(', ') +\n ']'\n ];\n }\n const displayVals: Array =\n dtype === 'complex64' ? createComplexTuples(vals) :\n Array.from(vals);\n\n return [\n '[' +\n displayVals.map((x, i) => valToString(x, padPerCol[i], dtype))\n .join(', ') +\n ']'\n ];\n }\n\n // The array is rank 2 or more.\n const subshape = shape.slice(1);\n const substrides = strides.slice(1);\n const stride = strides[0] * storagePerElement;\n const lines: string[] = [];\n if (size > FORMAT_LIMIT_NUM_VALS) {\n for (let i = 0; i < FORMAT_NUM_FIRST_LAST_VALS; i++) {\n const start = i * stride;\n const end = start + stride;\n lines.push(...subTensorToString(\n vals.slice(start, end), subshape, dtype, substrides, padPerCol,\n false /* isLast */));\n }\n lines.push('...');\n for (let i = size - FORMAT_NUM_FIRST_LAST_VALS; i < size; i++) {\n const start = i * stride;\n const end = start + stride;\n lines.push(...subTensorToString(\n vals.slice(start, end), subshape, dtype, substrides, padPerCol,\n i === size - 1 /* isLast */));\n }\n } else {\n for (let i = 0; i < size; i++) {\n const start = i * stride;\n const end = start + stride;\n lines.push(...subTensorToString(\n vals.slice(start, end), subshape, dtype, substrides, padPerCol,\n i === size - 1 /* isLast */));\n }\n }\n const sep = rank === 2 ? ',' : '';\n lines[0] = '[' + lines[0] + sep;\n for (let i = 1; i < lines.length - 1; i++) {\n lines[i] = ' ' + lines[i] + sep;\n }\n let newLineSep = ',\\n';\n for (let i = 2; i < rank; i++) {\n newLineSep += '\\n';\n }\n lines[lines.length - 1] =\n ' ' + lines[lines.length - 1] + ']' + (isLast ? '' : newLineSep);\n return lines;\n}\n\nfunction createComplexTuples(vals: Array<{}>|\n TypedArray): Array<[number, number]> {\n const complexTuples: Array<[number, number]> = [];\n for (let i = 0; i < vals.length; i += 2) {\n complexTuples.push([vals[i], vals[i + 1]] as [number, number]);\n }\n return complexTuples;\n}\n", "/**\n * @license\n * Copyright 2017 Google LLC. 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 *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\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 * =============================================================================\n */\n\nimport {tensorToString} from './tensor_format';\nimport {ArrayMap, BackendValues, DataType, DataTypeMap, DataValues, NumericDataType, Rank, ShapeMap, SingleValueMap, TypedArray} from './types';\nimport * as util from './util';\nimport {computeStrides, toNestedArray} from './util';\n\nexport interface TensorData {\n dataId?: DataId;\n values?: DataTypeMap[D];\n}\n\n// This interface mimics KernelBackend (in backend.ts), which would create a\n// circular dependency if imported.\nexport interface Backend {}\n\n/**\n * A mutable object, similar to `tf.Tensor`, that allows users to set values\n * at locations before converting to an immutable `tf.Tensor`.\n *\n * See `tf.buffer` for creating a tensor buffer.\n *\n * @doc {heading: 'Tensors', subheading: 'Classes'}\n */\nexport class TensorBuffer {\n size: number;\n shape: ShapeMap[R];\n strides: number[];\n values: DataTypeMap[D];\n\n constructor(shape: ShapeMap[R], public dtype: D, values?: DataTypeMap[D]) {\n this.shape = shape.slice() as ShapeMap[R];\n this.size = util.sizeFromShape(shape);\n\n if (values != null) {\n const n = values.length;\n util.assert(\n n === this.size,\n () => `Length of values '${n}' does not match the size ` +\n `inferred by the shape '${this.size}'.`);\n }\n if (dtype === 'complex64') {\n throw new Error(\n `complex64 dtype TensorBuffers are not supported. Please create ` +\n `a TensorBuffer for the real and imaginary parts separately and ` +\n `call tf.complex(real, imag).`);\n }\n this.values = values || util.getArrayFromDType(dtype, this.size);\n this.strides = computeStrides(shape);\n }\n\n /**\n * Sets a value in the buffer at a given location.\n *\n * @param value The value to set.\n * @param locs The location indices.\n *\n * @doc {heading: 'Tensors', subheading: 'Creation'}\n */\n set(value: SingleValueMap[D], ...locs: number[]): void {\n if (locs.length === 0) {\n locs = [0];\n }\n util.assert(\n locs.length === this.rank,\n () => `The number of provided coordinates (${locs.length}) must ` +\n `match the rank (${this.rank})`);\n\n const index = this.locToIndex(locs);\n this.values[index] = value as number;\n }\n\n /**\n * Returns the value in the buffer at the provided location.\n *\n * @param locs The location indices.\n *\n * @doc {heading: 'Tensors', subheading: 'Creation'}\n */\n get(...locs: number[]): SingleValueMap[D] {\n if (locs.length === 0) {\n locs = [0];\n }\n let i = 0;\n for (const loc of locs) {\n if (loc < 0 || loc >= this.shape[i]) {\n const msg = `Requested out of range element at ${locs}. ` +\n ` Buffer shape=${this.shape}`;\n throw new Error(msg);\n }\n i++;\n }\n let index = locs[locs.length - 1];\n for (let i = 0; i < locs.length - 1; ++i) {\n index += this.strides[i] * locs[i];\n }\n return this.values[index] as SingleValueMap[D];\n }\n\n locToIndex(locs: number[]): number {\n if (this.rank === 0) {\n return 0;\n } else if (this.rank === 1) {\n return locs[0];\n }\n let index = locs[locs.length - 1];\n for (let i = 0; i < locs.length - 1; ++i) {\n index += this.strides[i] * locs[i];\n }\n return index;\n }\n\n indexToLoc(index: number): number[] {\n if (this.rank === 0) {\n return [];\n } else if (this.rank === 1) {\n return [index];\n }\n const locs: number[] = new Array(this.shape.length);\n for (let i = 0; i < locs.length - 1; ++i) {\n locs[i] = Math.floor(index / this.strides[i]);\n index -= locs[i] * this.strides[i];\n }\n locs[locs.length - 1] = index;\n return locs;\n }\n\n get rank() {\n return this.shape.length;\n }\n\n /**\n * Creates an immutable `tf.Tensor` object from the buffer.\n *\n * @doc {heading: 'Tensors', subheading: 'Creation'}\n */\n toTensor(): Tensor {\n return trackerFn().makeTensor(this.values, this.shape, this.dtype) as\n Tensor;\n }\n}\n\nexport interface TensorTracker {\n makeTensor(\n values: DataValues, shape: number[], dtype: DataType,\n backend?: Backend): Tensor;\n makeVariable(\n initialValue: Tensor, trainable?: boolean, name?: string,\n dtype?: DataType): Variable;\n incRef(a: Tensor, backend: Backend): void;\n disposeTensor(t: Tensor): void;\n disposeVariable(v: Variable): void;\n read(dataId: DataId): Promise;\n readSync(dataId: DataId): BackendValues;\n}\n\n/**\n * The Tensor class calls into this handler to delegate chaining operations.\n */\nexport interface OpHandler {\n cast(x: T, dtype: DataType): T;\n buffer(\n shape: ShapeMap[R], dtype: D,\n values?: DataTypeMap[D]): TensorBuffer;\n print(x: T, verbose: boolean): void;\n clone(x: T): T;\n // TODO(yassogba) bring reshape back?\n}\n\n// For tracking tensor creation and disposal.\nlet trackerFn: () => TensorTracker = null;\n// Used by chaining methods to call into ops.\nlet opHandler: OpHandler = null;\n// Used to warn about deprecated methods.\nlet deprecationWarningFn: (msg: string) => void = null;\n// This here so that we can use this method on dev branches and keep the\n// functionality at master.\n// tslint:disable-next-line:no-unused-expression\n[deprecationWarningFn];\n\n/**\n * An external consumer can register itself as the tensor tracker. This way\n * the Tensor class can notify the tracker for every tensor created and\n * disposed.\n */\nexport function setTensorTracker(fn: () => TensorTracker) {\n trackerFn = fn;\n}\n\n/**\n * An external consumer can register itself as the op handler. This way the\n * Tensor class can have chaining methods that call into ops via the op\n * handler.\n */\nexport function setOpHandler(handler: OpHandler) {\n opHandler = handler;\n}\n\n/**\n * Sets the deprecation warning function to be used by this file. This way the\n * Tensor class can be a leaf but still use the environment.\n */\nexport function setDeprecationWarningFn(fn: (msg: string) => void) {\n deprecationWarningFn = fn;\n}\n\n/**\n * We wrap data id since we use weak map to avoid memory leaks.\n * Since we have our own memory management, we have a reference counter\n * mapping a tensor to its data, so there is always a pointer (even if that\n * data is otherwise garbage collectable).\n * See https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/\n * Global_Objects/WeakMap\n */\nexport type DataId = object; // object instead of {} to force non-primitive.\n\n// Declare this namespace to make Tensor class augmentation work in google3.\nexport declare namespace Tensor {}\n/**\n * A `tf.Tensor` object represents an immutable, multidimensional array of\n * numbers that has a shape and a data type.\n *\n * See `tf.tensor` for details on how to create a `tf.Tensor`.\n *\n * @doc {heading: 'Tensors', subheading: 'Classes'}\n */\nexport class Tensor {\n /** Unique id of this tensor. */\n readonly id: number;\n /**\n * Id of the bucket holding the data for this tensor. Multiple arrays can\n * point to the same bucket (e.g. when calling array.reshape()).\n */\n dataId: DataId;\n /** The shape of the tensor. */\n readonly shape: ShapeMap[R];\n /** Number of elements in the tensor. */\n readonly size: number;\n /** The data type for the array. */\n readonly dtype: DataType;\n /** The rank type for the array (see `Rank` enum). */\n readonly rankType: R;\n\n /** Whether this tensor has been globally kept. */\n kept = false;\n /** The id of the scope this tensor is being tracked in. */\n scopeId: number;\n\n /**\n * Number of elements to skip in each dimension when indexing. See\n * https://docs.scipy.org/doc/numpy/reference/generated/\\\n * numpy.ndarray.strides.html\n */\n readonly strides: number[];\n\n constructor(shape: ShapeMap[R], dtype: DataType, dataId: DataId, id: number) {\n this.shape = shape.slice() as ShapeMap[R];\n this.dtype = dtype || 'float32';\n this.size = util.sizeFromShape(shape);\n this.strides = computeStrides(shape);\n this.dataId = dataId;\n this.id = id;\n this.rankType = (this.rank < 5 ? this.rank.toString() : 'higher') as R;\n }\n\n get rank(): number {\n return this.shape.length;\n }\n\n /**\n * Returns a promise of `tf.TensorBuffer` that holds the underlying data.\n *\n * @doc {heading: 'Tensors', subheading: 'Classes'}\n */\n async buffer(): Promise> {\n const vals = await this.data();\n return opHandler.buffer(this.shape, this.dtype as D, vals);\n }\n\n /**\n * Returns a `tf.TensorBuffer` that holds the underlying data.\n * @doc {heading: 'Tensors', subheading: 'Classes'}\n */\n bufferSync(): TensorBuffer {\n return opHandler.buffer(this.shape, this.dtype as D, this.dataSync());\n }\n\n /**\n * Returns the tensor data as a nested array. The transfer of data is done\n * asynchronously.\n *\n * @doc {heading: 'Tensors', subheading: 'Classes'}\n */\n async array(): Promise {\n const vals = await this.data();\n return toNestedArray(this.shape, vals) as ArrayMap[R];\n }\n\n /**\n * Returns the tensor data as a nested array. The transfer of data is done\n * synchronously.\n *\n * @doc {heading: 'Tensors', subheading: 'Classes'}\n */\n arraySync(): ArrayMap[R] {\n return toNestedArray(this.shape, this.dataSync()) as ArrayMap[R];\n }\n\n /**\n * Asynchronously downloads the values from the `tf.Tensor`. Returns a\n * promise of `TypedArray` that resolves when the computation has finished.\n *\n * @doc {heading: 'Tensors', subheading: 'Classes'}\n */\n async data(): Promise {\n this.throwIfDisposed();\n const data = trackerFn().read(this.dataId);\n if (this.dtype === 'string') {\n const bytes = await data as Uint8Array[];\n try {\n return bytes.map(b => util.decodeString(b)) as DataTypeMap[D];\n } catch {\n throw new Error(\n 'Failed to decode the string bytes into utf-8. ' +\n 'To get the original bytes, call tensor.bytes().');\n }\n }\n return data as Promise;\n }\n\n /**\n * Synchronously downloads the values from the `tf.Tensor`. This blocks the\n * UI thread until the values are ready, which can cause performance issues.\n *\n * @doc {heading: 'Tensors', subheading: 'Classes'}\n */\n dataSync(): DataTypeMap[D] {\n this.throwIfDisposed();\n const data = trackerFn().readSync(this.dataId);\n if (this.dtype === 'string') {\n try {\n return (data as Uint8Array[]).map(b => util.decodeString(b)) as\n DataTypeMap[D];\n } catch {\n throw new Error(\n 'Failed to decode the string bytes into utf-8. ' +\n 'To get the original bytes, call tensor.bytes().');\n }\n }\n return data as DataTypeMap[D];\n }\n\n /** Returns the underlying bytes of the tensor's data. */\n async bytes(): Promise {\n this.throwIfDisposed();\n const data = await trackerFn().read(this.dataId);\n if (this.dtype === 'string') {\n return data as Uint8Array[];\n } else {\n return new Uint8Array((data as TypedArray).buffer);\n }\n }\n\n /**\n * Disposes `tf.Tensor` from memory.\n *\n * @doc {heading: 'Tensors', subheading: 'Classes'}\n */\n dispose(): void {\n if (this.isDisposed) {\n return;\n }\n trackerFn().disposeTensor(this);\n this.isDisposedInternal = true;\n }\n\n protected isDisposedInternal = false;\n get isDisposed(): boolean {\n return this.isDisposedInternal;\n }\n\n throwIfDisposed() {\n if (this.isDisposed) {\n throw new Error(`Tensor is disposed.`);\n }\n }\n\n /**\n * Prints the `tf.Tensor`. See `tf.print` for details.\n *\n * @param verbose Whether to print verbose information about the tensor,\n * including dtype and size.\n *\n * @doc {heading: 'Tensors', subheading: 'Classes'}\n */\n print(verbose = false): void {\n return opHandler.print(this, verbose);\n }\n\n /**\n * Returns a copy of the tensor. See `tf.clone` for details.\n * @doc {heading: 'Tensors', subheading: 'Classes'}\n */\n clone(this: T): T {\n this.throwIfDisposed();\n return opHandler.clone(this);\n }\n\n /**\n * Returns a human-readable description of the tensor. Useful for logging.\n *\n * @doc {heading: 'Tensors', subheading: 'Classes'}\n */\n toString(verbose = false): string {\n const vals = this.dataSync();\n return tensorToString(vals, this.shape, this.dtype, verbose);\n }\n\n cast(dtype: DataType): T {\n this.throwIfDisposed();\n return opHandler.cast(this as T, dtype);\n }\n variable(trainable = true, name?: string, dtype?: DataType): Variable {\n this.throwIfDisposed();\n return trackerFn().makeVariable(this, trainable, name, dtype) as\n Variable;\n }\n}\nObject.defineProperty(Tensor, Symbol.hasInstance, {\n value: (instance: Tensor) => {\n // Implementation note: we should use properties of the object that will be\n // defined before the constructor body has finished executing (methods).\n // This is because when this code is transpiled by babel, babel will call\n // classCallCheck before the constructor body is run.\n // See https://github.com/tensorflow/tfjs/issues/3384 for backstory.\n return !!instance && instance.data != null && instance.dataSync != null &&\n instance.throwIfDisposed != null;\n }\n});\n\nexport interface NumericTensor extends Tensor {\n dtype: NumericDataType;\n dataSync(): DataTypeMap[D];\n data(): Promise;\n}\n\nexport interface StringTensor extends Tensor {\n dtype: 'string';\n dataSync(): DataTypeMap[D];\n data(): Promise;\n}\n\n/** @doclink Tensor */\nexport type Scalar = Tensor;\n/** @doclink Tensor */\nexport type Tensor1D = Tensor;\n/** @doclink Tensor */\nexport type Tensor2D = Tensor;\n/** @doclink Tensor */\nexport type Tensor3D = Tensor;\n/** @doclink Tensor */\nexport type Tensor4D = Tensor;\n/** @doclink Tensor */\nexport type Tensor5D = Tensor;\n/** @doclink Tensor */\nexport type Tensor6D = Tensor;\n\n/**\n * A mutable `tf.Tensor`, useful for persisting state, e.g. for training.\n *\n * @doc {heading: 'Tensors', subheading: 'Classes'}\n */\nexport class Variable extends Tensor {\n name: string;\n\n constructor(\n initialValue: Tensor, public trainable: boolean, name: string,\n tensorId: number) {\n super(\n initialValue.shape, initialValue.dtype, initialValue.dataId, tensorId);\n this.name = name;\n }\n\n /**\n * Assign a new `tf.Tensor` to this variable. The new `tf.Tensor` must have\n * the same shape and dtype as the old `tf.Tensor`.\n *\n * @param newValue New tensor to be assigned to this variable.\n *\n * @doc {heading: 'Tensors', subheading: 'Classes'}\n */\n assign(newValue: Tensor): void {\n if (newValue.dtype !== this.dtype) {\n throw new Error(\n `dtype of the new value (${newValue.dtype}) and ` +\n `previous value (${this.dtype}) must match`);\n }\n if (!util.arraysEqual(newValue.shape, this.shape)) {\n throw new Error(\n `shape of the new value (${newValue.shape}) and ` +\n `previous value (${this.shape}) must match`);\n }\n trackerFn().disposeTensor(this);\n this.dataId = newValue.dataId;\n trackerFn().incRef(this, null /* backend */);\n }\n\n dispose(): void {\n trackerFn().disposeVariable(this);\n this.isDisposedInternal = true;\n }\n}\n\nObject.defineProperty(Variable, Symbol.hasInstance, {\n value: (instance: Variable) => {\n return instance instanceof Tensor && instance.assign != null &&\n instance.assign instanceof Function;\n }\n});\n", "/**\n * @license\n * Copyright 2017 Google LLC. 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 *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\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 * =============================================================================\n */\n\n/** @docalias number[] */\nexport interface ShapeMap {\n R0: number[];\n R1: [number];\n R2: [number, number];\n R3: [number, number, number];\n R4: [number, number, number, number];\n R5: [number, number, number, number, number];\n R6: [number, number, number, number, number, number];\n}\n\n/** @docalias number[] */\nexport interface ArrayMap {\n R0: number;\n R1: number[];\n R2: number[][];\n R3: number[][][];\n R4: number[][][][];\n R5: number[][][][][];\n R6: number[][][][][][];\n}\n\nexport interface DataTypeMap {\n float32: Float32Array;\n int32: Int32Array;\n bool: Uint8Array;\n complex64: Float32Array;\n string: string[];\n}\n\nexport interface SingleValueMap {\n bool: boolean;\n int32: number;\n float32: number;\n complex64: number;\n string: string;\n}\n\n/** @docalias 'float32'|'int32'|'bool'|'complex64'|'string' */\nexport type DataType = keyof DataTypeMap;\nexport type NumericDataType = 'float32'|'int32'|'bool'|'complex64';\nexport type TypedArray = Float32Array|Int32Array|Uint8Array;\n/** Tensor data used in tensor creation and user-facing API. */\nexport type DataValues = DataTypeMap[DataType];\n/** The underlying tensor data that gets stored in a backend. */\nexport type BackendValues = Float32Array|Int32Array|Uint8Array|Uint8Array[];\n\nexport enum Rank {\n R0 = 'R0',\n R1 = 'R1',\n R2 = 'R2',\n R3 = 'R3',\n R4 = 'R4',\n R5 = 'R5',\n R6 = 'R6'\n}\n\nexport type FlatVector = boolean[]|number[]|TypedArray;\nexport type RegularArray =\n T[]|T[][]|T[][][]|T[][][][]|T[][][][][]|T[][][][][][];\n\n// tslint:disable-next-line:no-any\nexport interface RecursiveArray {\n [index: number]: T|RecursiveArray;\n}\n\n// Looks for upcasting types. Used, for example, in operations with mixed dtype\n// inputs.\nenum UpcastInt32AndMap {\n 'float32' = 'float32',\n 'int32' = 'int32',\n 'bool' = 'int32',\n 'complex64' = 'complex64'\n}\n\nenum UpcastBoolAndMap {\n 'float32' = 'float32',\n 'int32' = 'int32',\n 'bool' = 'bool',\n 'complex64' = 'complex64'\n}\n\nenum UpcastFloat32AndMap {\n 'float32' = 'float32',\n 'int32' = 'float32',\n 'bool' = 'float32',\n 'complex64' = 'complex64'\n}\n\nenum UpcastComplex64AndMap {\n 'float32' = 'complex64',\n 'int32' = 'complex64',\n 'bool' = 'complex64',\n 'complex64' = 'complex64'\n}\n\nconst upcastTypeMap = {\n 'float32': UpcastFloat32AndMap,\n 'int32': UpcastInt32AndMap,\n 'bool': UpcastBoolAndMap,\n 'complex64': UpcastComplex64AndMap\n};\n\nexport function upcastType(typeA: DataType, typeB: DataType): DataType {\n if (typeA === 'string' || typeB === 'string') {\n if (typeA === 'string' && typeB === 'string') {\n return 'string';\n }\n throw new Error(`Can not upcast ${typeA} with ${typeB}`);\n }\n return upcastTypeMap[typeA][typeB];\n}\n\n/** Returns the output type after summation. */\nexport function sumOutType(type: DataType): DataType {\n return upcastType(type, 'int32');\n}\n\n/** @docalias TypedArray|Array */\nexport type TensorLike =\n TypedArray|number|boolean|string|RecursiveArray|\n RecursiveArray|RecursiveArray|Uint8Array[];\nexport type ScalarLike = number|boolean|string|Uint8Array;\n/** @docalias TypedArray|Array */\nexport type TensorLike1D = TypedArray|number[]|boolean[]|string[]|Uint8Array[];\n/** @docalias TypedArray|Array */\nexport type TensorLike2D = TypedArray|number[]|number[][]|boolean[]|boolean[][]|\n string[]|string[][]|Uint8Array[]|Uint8Array[][];\n/** @docalias TypedArray|Array */\nexport type TensorLike3D = TypedArray|number[]|number[][][]|boolean[]|\n boolean[][][]|string[]|string[][][]|Uint8Array[]|Uint8Array[][][];\n/** @docalias TypedArray|Array */\nexport type TensorLike4D = TypedArray|number[]|number[][][][]|boolean[]|\n boolean[][][][]|string[]|string[][][][]|Uint8Array[]|Uint8Array[][][][];\n/** @docalias TypedArray|Array */\nexport type TensorLike5D =\n TypedArray|number[]|number[][][][][]|boolean[]|boolean[][][][][]|string[]|\n string[][][][][]|Uint8Array[]|Uint8Array[][][][][];\n/** @docalias TypedArray|Array */\nexport type TensorLike6D =\n TypedArray|number[]|number[][][][][][]|boolean[]|boolean[][][][][][]|\n string[]|string[][][][][][]|Uint8Array[]|Uint8Array[][][][][];\n\n/** Type for representing image dat in Uint8Array type. */\nexport interface PixelData {\n width: number;\n height: number;\n data: Uint8Array;\n}\n", "/**\n * @license\n * Copyright 2018 Google LLC. 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 *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\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 * =============================================================================\n */\n\nimport {Tensor} from './tensor';\nimport {TensorContainer, TensorContainerArray} from './tensor_types';\nimport {upcastType} from './types';\nimport {assert} from './util';\n\nexport function makeTypesMatch(a: T, b: T): [T, T] {\n if (a.dtype === b.dtype) {\n return [a, b];\n }\n const dtype = upcastType(a.dtype, b.dtype);\n return [a.cast(dtype), b.cast(dtype)];\n}\n\nexport function assertTypesMatch(a: Tensor, b: Tensor): void {\n assert(\n a.dtype === b.dtype,\n () => `The dtypes of the first(${a.dtype}) and` +\n ` second(${b.dtype}) input must match`);\n}\n\nexport function isTensorInList(tensor: Tensor, tensorList: Tensor[]): boolean {\n return tensorList.some(x => x.id === tensor.id);\n}\n\n/**\n * Extracts any `Tensor`s found within the provided object.\n *\n * @param container an object that may be a `Tensor` or may directly contain\n * `Tensor`s, such as a `Tensor[]` or `{key: Tensor, ...}`. In general it\n * is safe to pass any object here, except that `Promise`s are not\n * supported.\n * @returns An array of `Tensors` found within the passed object. If the\n * argument is simply a `Tensor', a list containing that `Tensor` is\n * returned. If the object is not a `Tensor` or does not\n * contain `Tensors`, an empty list is returned.\n */\nexport function getTensorsInContainer(result: TensorContainer): Tensor[] {\n const list: Tensor[] = [];\n const seen = new Set<{}|void>();\n walkTensorContainer(result, list, seen);\n return list;\n}\n\nfunction walkTensorContainer(\n container: TensorContainer, list: Tensor[], seen: Set<{}|void>): void {\n if (container == null) {\n return;\n }\n if (container instanceof Tensor) {\n list.push(container);\n return;\n }\n if (!isIterable(container)) {\n return;\n }\n // Iteration over keys works also for arrays.\n const iterable = container as TensorContainerArray;\n for (const k in iterable) {\n const val = iterable[k];\n if (!seen.has(val)) {\n seen.add(val);\n walkTensorContainer(val, list, seen);\n }\n }\n}\n\n// tslint:disable-next-line:no-any\nfunction isIterable(obj: any): boolean {\n return Array.isArray(obj) || typeof obj === 'object';\n}\n", "/**\n * @license\n * Copyright 2018 Google LLC. 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 *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\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 * =============================================================================\n */\n\nimport {BackendTimingInfo, DataMover, KernelBackend} from './backends/backend';\nimport {Environment, setEnvironmentGlobal} from './environment';\nimport {getGlobalNamespace} from './global_util';\nimport {Add, Cast} from './kernel_names';\nimport {getGradient, getKernel, getKernelsForBackend, GradFunc, NamedAttrMap, TensorInfo} from './kernel_registry';\nimport {KernelProfile, Profiler} from './profiler';\nimport {backpropagateGradients, getFilteredNodesXToY, TapeNode} from './tape';\nimport {DataId, setTensorTracker, Tensor, TensorTracker, Variable} from './tensor';\nimport {GradSaveFunc, NamedTensorMap, NamedVariableMap, TensorContainer} from './tensor_types';\nimport {getTensorsInContainer} from './tensor_util';\nimport {BackendValues, DataType, DataValues} from './types';\nimport * as util from './util';\nimport {bytesFromStringArray, makeOnesTypedArray, now, sizeFromShape} from './util';\n\n/**\n * A function that computes an output. The save function is for saving tensors\n * computed in the forward pass, that we need in the backward pass.\n */\nexport type ForwardFunc = (backend: KernelBackend, save?: GradSaveFunc) => T;\n\n/**\n * @docalias (a: Tensor, b: Tensor,..., save?: Function) => {\n * value: Tensor,\n * gradFunc: (dy: Tensor, saved?: NamedTensorMap) => Tensor | Tensor[]\n * }\n */\nexport type CustomGradientFunc =\n (...inputs: Array) => {\n value: T;\n gradFunc: (dy: T, saved: Tensor[]) => Tensor | Tensor[];\n };\n\nexport type MemoryInfo = {\n numTensors: number; numDataBuffers: number; numBytes: number;\n unreliable?: boolean; reasons: string[];\n};\n\ntype KernelInfo = {\n name: string; bytesAdded: number; totalBytesSnapshot: number;\n tensorsAdded: number;\n totalTensorsSnapshot: number;\n inputShapes: number[][];\n outputShapes: number[][];\n kernelTimeMs: number | {error: string} | Promise;\n extraInfo: string | Promise;\n};\n\nexport type ProfileInfo = {\n newBytes: number; newTensors: number; peakBytes: number;\n kernels: KernelInfo[];\n result: TensorContainer;\n};\n\nexport interface TimingInfo extends BackendTimingInfo {\n wallMs: number;\n}\n\n/** @docalias Function */\nexport type ScopeFn = () => T;\n\ninterface ScopeState {\n track: Tensor[];\n name: string;\n id: number;\n}\n\nclass EngineState {\n // Public since optimizers will use it.\n registeredVariables: NamedVariableMap = {};\n\n nextTapeNodeId = 0;\n numBytes = 0;\n numTensors = 0;\n numStringTensors = 0;\n numDataBuffers = 0;\n\n activeTape: TapeNode[];\n // Number of nested tf.grad() statements when computing higher-order\n // gradients. E.g. `1` for first-order gradients and `2` for second-order\n // gradients. Used to track if the tape should be removed after a backprop.\n gradientDepth = 0;\n // Number of nested kernel calls. When kernel depth is greater than 1, we turn\n // off the tape.\n kernelDepth = 0;\n\n // Keep Tensors that parallel the tapes.\n activeScope: ScopeState;\n scopeStack: ScopeState[] = [];\n /**\n * Keeps track of the number of data moves during a kernel execution. We\n * maintain a stack since kernels can call other kernels, recursively.\n */\n numDataMovesStack: number[] = [];\n nextScopeId = 0;\n\n tensorInfo = new WeakMap();\n\n profiling = false;\n activeProfile: ProfileInfo =\n {newBytes: 0, newTensors: 0, peakBytes: 0, kernels: [], result: null};\n\n dispose() {\n for (const variableName in this.registeredVariables) {\n this.registeredVariables[variableName].dispose();\n }\n }\n}\n\nexport class Engine implements TensorTracker, DataMover {\n state: EngineState;\n backendName: string;\n registry: {[id: string]: KernelBackend} = {};\n registryFactory: {\n [id: string]: {\n factory: () => KernelBackend | Promise,\n priority: number\n }\n } = {};\n\n private profiler: Profiler;\n private backendInstance: KernelBackend;\n private pendingBackendInit: Promise;\n private pendingBackendInitId = 0;\n\n constructor(public ENV: Environment) {\n this.state = new EngineState();\n }\n\n async ready(): Promise {\n if (this.pendingBackendInit != null) {\n return this.pendingBackendInit.then(() => {});\n }\n if (this.backendInstance != null) {\n return;\n }\n const sortedBackends = this.getSortedBackends();\n\n for (let i = 0; i < sortedBackends.length; i++) {\n const backendName = sortedBackends[i];\n const success = await this.initializeBackend(backendName).success;\n if (success) {\n await this.setBackend(backendName);\n return;\n }\n }\n\n throw new Error(\n `Could not initialize any backends, all backend initializations ` +\n `failed.`);\n }\n\n get backend(): KernelBackend {\n if (this.pendingBackendInit != null) {\n throw new Error(\n `Backend '${this.backendName}' has not yet been initialized. Make ` +\n `sure to await tf.ready() or await tf.setBackend() before calling ` +\n `other methods`);\n }\n if (this.backendInstance == null) {\n const {name, asyncInit} = this.initializeBackendsAndReturnBest();\n if (asyncInit) {\n throw new Error(\n `The highest priority backend '${name}' has not yet been ` +\n `initialized. Make sure to await tf.ready() or ` +\n `await tf.setBackend() before calling other methods`);\n }\n this.setBackend(name);\n }\n return this.backendInstance;\n }\n\n backendNames(): string[] {\n return Object.keys(this.registryFactory);\n }\n\n findBackend(backendName: string): KernelBackend {\n if (!(backendName in this.registry)) {\n // If the backend hasn't been initialized but we have a registry entry for\n // it, initialize it and return it.\n if (backendName in this.registryFactory) {\n const {asyncInit} = this.initializeBackend(backendName);\n if (asyncInit) {\n // Backend is not ready yet.\n return null;\n }\n } else {\n return null;\n }\n }\n return this.registry[backendName];\n }\n\n findBackendFactory(backendName: string):\n () => KernelBackend | Promise {\n if (!(backendName in this.registryFactory)) {\n return null;\n }\n return this.registryFactory[backendName].factory;\n }\n\n registerBackend(\n backendName: string,\n factory: () => KernelBackend | Promise,\n priority = 1): boolean {\n if (backendName in this.registryFactory) {\n console.warn(\n `${backendName} backend was already registered. ` +\n `Reusing existing backend factory.`);\n return false;\n }\n this.registryFactory[backendName] = {factory, priority};\n return true;\n }\n\n async setBackend(backendName: string): Promise {\n if (this.registryFactory[backendName] == null) {\n throw new Error(`Backend name '${backendName}' not found in registry`);\n }\n this.backendName = backendName;\n if (this.registry[backendName] == null) {\n this.backendInstance = null;\n const {success, asyncInit} = this.initializeBackend(backendName);\n const result = asyncInit ? await success : success;\n if (!result) {\n return false;\n }\n }\n this.backendInstance = this.registry[backendName];\n this.setupRegisteredKernels();\n // Reset the profiler.\n this.profiler = new Profiler(this.backendInstance);\n\n return true;\n }\n\n private setupRegisteredKernels(): void {\n const kernels = getKernelsForBackend(this.backendName);\n kernels.forEach(kernel => {\n if (kernel.setupFunc != null) {\n kernel.setupFunc(this.backendInstance);\n }\n });\n }\n\n private disposeRegisteredKernels(backendName: string): void {\n const kernels = getKernelsForBackend(backendName);\n kernels.forEach(kernel => {\n if (kernel.disposeFunc != null) {\n kernel.disposeFunc(this.registry[backendName]);\n }\n });\n }\n\n /**\n * Initializes a backend by looking up the backend name in the factory\n * registry and calling the factory method. Returns a boolean representing\n * whether the initialization of the backend suceeded. Throws an error if\n * there is no backend in the factory registry.\n */\n private initializeBackend(backendName: string):\n {success: boolean|Promise, asyncInit: boolean} {\n const registryFactoryEntry = this.registryFactory[backendName];\n if (registryFactoryEntry == null) {\n throw new Error(\n `Cannot initialize backend ${backendName}, no registration found.`);\n }\n\n try {\n const backend = registryFactoryEntry.factory();\n /* Test if the factory returns a promise.\n Done in a more liberal way than\n previous 'Promise.resolve(backend)===backend'\n as we needed to account for custom Promise\n implementations (e.g. Angular) */\n if (backend && !(backend instanceof KernelBackend)\n && typeof backend.then === 'function') {\n const promiseId = ++this.pendingBackendInitId;\n const success =\n backend\n .then(backendInstance => {\n // Outdated promise. Another backend was set in the meantime.\n if (promiseId < this.pendingBackendInitId) {\n return false;\n }\n this.registry[backendName] = backendInstance;\n this.pendingBackendInit = null;\n return true;\n })\n .catch(err => {\n // Outdated promise. Another backend was set in the meantime.\n if (promiseId < this.pendingBackendInitId) {\n return false;\n }\n this.pendingBackendInit = null;\n console.warn(\n `Initialization of backend ${backendName} failed`);\n console.warn(err.stack || err.message);\n return false;\n });\n this.pendingBackendInit = success;\n return {success, asyncInit: true};\n } else {\n this.registry[backendName] = backend as KernelBackend;\n return {success: true, asyncInit: false};\n }\n } catch (err) {\n console.warn(`Initialization of backend ${backendName} failed`);\n console.warn(err.stack || err.message);\n return {success: false, asyncInit: false};\n }\n }\n\n removeBackend(backendName: string): void {\n if (!(backendName in this.registryFactory)) {\n throw new Error(`${backendName} backend not found in registry`);\n }\n if (this.backendName === backendName && this.pendingBackendInit != null) {\n // There is a pending promise of the backend we want to remove. Make it\n // obsolete.\n this.pendingBackendInitId++;\n }\n\n if (backendName in this.registry) {\n this.disposeRegisteredKernels(backendName);\n this.registry[backendName].dispose();\n delete this.registry[backendName];\n }\n\n delete this.registryFactory[backendName];\n\n // Unset the backend if it is active.\n if (this.backendName === backendName) {\n this.pendingBackendInit = null;\n this.backendName = null;\n this.backendInstance = null;\n }\n }\n\n private getSortedBackends(): string[] {\n if (Object.keys(this.registryFactory).length === 0) {\n throw new Error('No backend found in registry.');\n }\n return Object.keys(this.registryFactory).sort((a: string, b: string) => {\n // Highest priority comes first.\n return this.registryFactory[b].priority -\n this.registryFactory[a].priority;\n });\n }\n\n private initializeBackendsAndReturnBest():\n {name: string, asyncInit: boolean} {\n const sortedBackends = this.getSortedBackends();\n\n for (let i = 0; i < sortedBackends.length; i++) {\n const backendName = sortedBackends[i];\n const {success, asyncInit} = this.initializeBackend(backendName);\n if (asyncInit || success) {\n return {name: backendName, asyncInit};\n }\n }\n throw new Error(\n `Could not initialize any backends, all backend initializations ` +\n `failed.`);\n }\n\n moveData(backend: KernelBackend, dataId: DataId) {\n const info = this.state.tensorInfo.get(dataId);\n const srcBackend = info.backend;\n const values = this.readSync(dataId);\n // Delete the tensor from the old backend and move it to the new\n // backend.\n srcBackend.disposeData(dataId);\n info.backend = backend;\n backend.move(dataId, values, info.shape, info.dtype);\n if (this.shouldCheckForMemLeaks()) {\n // Track the number of moves during a kernel execution to correctly\n // detect memory leaks.\n this.state.numDataMovesStack[this.state.numDataMovesStack.length - 1]++;\n }\n }\n\n tidy(nameOrFn: string|ScopeFn, fn?: ScopeFn):\n T {\n let name: string = null;\n if (fn == null) {\n // Called with only 1 argument.\n if (typeof nameOrFn !== 'function') {\n throw new Error('Please provide a function to tidy()');\n }\n fn = nameOrFn;\n } else {\n // Called with 2 arguments.\n if (typeof nameOrFn !== 'string' && !(nameOrFn instanceof String)) {\n throw new Error(\n 'When calling with two arguments, the first argument ' +\n 'to tidy() must be a string');\n }\n if (typeof fn !== 'function') {\n throw new Error(\n 'When calling with two arguments, the 2nd argument ' +\n 'to tidy() must be a function');\n }\n name = nameOrFn as string;\n // TODO(nsthorat,smilkov): Do operation logging and performance\n // profiling.\n }\n let result: T;\n return this.scopedRun(\n () => this.startScope(name), () => this.endScope(result), () => {\n result = fn();\n if (result instanceof Promise) {\n console.error('Cannot return a Promise inside of tidy.');\n }\n return result;\n });\n }\n\n private scopedRun(start: () => void, end: () => void, f: () => T): T {\n start();\n try {\n const res = f();\n end();\n return res;\n } catch (ex) {\n end();\n throw ex;\n }\n }\n\n private static nextTensorId = 0;\n private nextTensorId(): number {\n return Engine.nextTensorId++;\n }\n\n private static nextVariableId = 0;\n private nextVariableId(): number {\n return Engine.nextVariableId++;\n }\n\n /**\n * This method is called instead of the public-facing tensor.clone() when\n * saving a tensor for backwards pass. It makes sure to add the clone\n * operation to the tape regardless of being called inside a kernel\n * execution.\n *\n * This method will go away once all kernels are modularized since we won't\n * need to turn off the tape inside runKernel().\n */\n private clone(x: Tensor): Tensor {\n const y = this.makeTensorFromDataId(x.dataId, x.shape, x.dtype);\n const inputs = {x};\n const grad = (dy: Tensor) => ({\n x: () => {\n const dtype = 'float32';\n const gradInputs = {x: dy};\n const attrs = {dtype};\n\n return ENGINE.runKernelFunc(\n backend => backend.cast(dy, dtype),\n gradInputs as {} as NamedTensorMap, null /* grad */, Cast,\n attrs as {} as NamedAttrMap);\n }\n });\n const saved: Tensor[] = [];\n this.addTapeNode(this.state.activeScope.name, inputs, [y], grad, saved, {});\n return y;\n }\n\n /**\n * Execute a kernel with the given name and return the output tensor.\n *\n * @param kernelName The name of the kernel to execute.\n * @param inputs A map of input names to tensors.\n * @param attrs A map of attribute names to their values. An attribute is a\n * primitive (non-tensor) input to the kernel.\n * @param inputsToSave A list of tensors, inputs to save for the backprop\n * computation.\n * @param outputsToSave A list of booleans, specifying which output to save\n * for the backprop computation. These are booleans since the output\n * tensors are not visible to the user.\n */\n runKernel(\n kernelName: string, inputs: NamedTensorMap, attrs: NamedAttrMap,\n inputsToSave?: Tensor[], outputsToSave?: boolean[]): Tensor|Tensor[] {\n const forwardFunc: null = null;\n const backwardsFunc: null = null;\n // Call runKernel as a stop-gap until we modularize all kernels.\n // Once we modularize all kernels, we will remove the existing\n // `runKernelFunc`.\n return this.runKernelFunc(\n forwardFunc, inputs, backwardsFunc, kernelName, attrs, inputsToSave,\n outputsToSave);\n }\n\n private shouldCheckForMemLeaks(): boolean {\n return this.ENV.getBool('IS_TEST');\n }\n\n private checkKernelForMemLeak(\n kernelName: string, numDataIdsBefore: number,\n outInfos: TensorInfo[]): void {\n const numDataIdsAfter = this.backend.numDataIds();\n\n // Count the number of data ids associated with the result of the kernel.\n let numOutputDataIds = 0;\n outInfos.forEach(info => {\n // Complex numbers allocate 3 data ids, one for 'real', one for\n // 'imaginary', and one for the container that holds the former two.\n numOutputDataIds += (info.dtype === 'complex64' ? 3 : 1);\n });\n\n // Account for the number of moves during kernel execution. A \"data move\"\n // can happen in the middle of a kernel execution, placing a new (key,value)\n // pair in the data storage. Since data moves have net zero effect (we\n // always remove the data from the old backend), we have to cancel them out\n // when detecting memory leaks.\n const numMoves =\n this.state.numDataMovesStack[this.state.numDataMovesStack.length - 1];\n const dataIdsLeaked =\n numDataIdsAfter - numDataIdsBefore - numOutputDataIds - numMoves;\n if (dataIdsLeaked > 0) {\n throw new Error(\n `Backend '${this.backendName}' has an internal memory leak ` +\n `(${dataIdsLeaked} data ids) after running '${kernelName}'`);\n }\n }\n\n /**\n * @deprecated Use `runKernel` for newly added kernels. Keep using this method\n * only for kernels that are not yet fully modularized.\n */\n runKernelFunc(\n forwardFunc: ForwardFunc, inputs: I,\n backwardsFunc?: (dy: T, saved: Tensor[]) => {[P in keyof I]: () => I[P]},\n kernelName?: string, attrs?: NamedAttrMap, inputsToSave?: Tensor[],\n outputsToSave?: boolean[]): T {\n let outputs: Tensor[];\n let saved: Tensor[] = [];\n const isTapeOn = this.isTapeOn();\n if (kernelName == null) {\n kernelName =\n this.state.activeScope != null ? this.state.activeScope.name : '';\n }\n\n const startingBytecount = this.state.numBytes;\n const startingNumTensors = this.state.numTensors;\n\n if (this.shouldCheckForMemLeaks()) {\n this.state.numDataMovesStack.push(0);\n }\n\n let kernelFunc: () => Tensor[];\n const kernel = getKernel(kernelName, this.backendName);\n let out: TensorInfo|TensorInfo[];\n if (kernel != null) {\n kernelFunc = () => {\n const numDataIdsBefore = this.backend.numDataIds();\n out = kernel.kernelFunc({inputs, attrs, backend: this.backend});\n const outInfos = Array.isArray(out) ? out : [out];\n if (this.shouldCheckForMemLeaks()) {\n this.checkKernelForMemLeak(kernelName, numDataIdsBefore, outInfos);\n }\n const outTensors = outInfos.map(\n ({dataId, shape, dtype}) =>\n this.makeTensorFromDataId(dataId, shape, dtype));\n\n // Save the inputs and outputs.\n // Do not save unless we are recording to the tape. Otherwise it would\n // cause a mem leak since we would never run backprop, which disposes\n // the kept tensors.\n if (isTapeOn) {\n let tensorsToSave =\n this.getTensorsForGradient(kernelName, inputs, outTensors);\n if (tensorsToSave == null) {\n // Fallback for ops that call runKernelFunc and pass in\n // inputsToSave and outputsToSave. Currently this is the set of ops\n // with kernel support in the WASM backend. Once those ops and\n // respective gradients are modularised we can remove this path.\n if (outputsToSave == null) {\n outputsToSave = [];\n }\n const outsToSave = outTensors.filter((_, i) => outputsToSave[i]);\n tensorsToSave = (inputsToSave || []).slice().concat(outsToSave);\n }\n saved = this.saveTensorsForBackwardMode(tensorsToSave);\n }\n return outTensors;\n };\n } else {\n const saveFunc: GradSaveFunc = (tensors) => {\n // Do not save unless we are recording to the tape. Otherwise it would\n // cause a mem leak since we would never run backprop, which disposes\n // the kept tensors.\n if (!isTapeOn) {\n return;\n }\n saved = tensors.map(tensor => this.keep(this.clone(tensor)));\n };\n\n kernelFunc = () => {\n const numDataIdsBefore = this.backend.numDataIds();\n out = this.tidy(() => forwardFunc(this.backend, saveFunc));\n const outs = (Array.isArray(out) ? out : [out]) as Tensor[];\n if (this.shouldCheckForMemLeaks()) {\n this.checkKernelForMemLeak(kernelName, numDataIdsBefore, outs);\n }\n return outs;\n };\n }\n\n // Stop recording to a tape when running a kernel.\n let kernelProfile: KernelProfile;\n this.scopedRun(\n () => this.state.kernelDepth++, () => this.state.kernelDepth--, () => {\n if (!this.ENV.getBool('DEBUG') && !this.state.profiling) {\n outputs = kernelFunc();\n } else {\n kernelProfile = this.profiler.profileKernel(\n kernelName, inputs, () => kernelFunc());\n if (this.ENV.getBool('DEBUG')) {\n this.profiler.logKernelProfile(kernelProfile);\n }\n outputs = kernelProfile.outputs;\n }\n });\n\n if (isTapeOn) {\n this.addTapeNode(\n kernelName, inputs, outputs, backwardsFunc, saved, attrs);\n }\n\n if (this.state.profiling) {\n this.state.activeProfile.kernels.push({\n name: kernelName,\n bytesAdded: this.state.numBytes - startingBytecount,\n totalBytesSnapshot: this.state.numBytes,\n tensorsAdded: this.state.numTensors - startingNumTensors,\n totalTensorsSnapshot: this.state.numTensors,\n inputShapes: Object.keys(inputs).map(\n key => inputs[key] != null ? inputs[key].shape : null),\n outputShapes: outputs.map(item => item.shape),\n kernelTimeMs: kernelProfile.timeMs,\n extraInfo: kernelProfile.extraInfo\n });\n }\n return (Array.isArray(out) ? outputs : outputs[0]) as T;\n }\n\n /**\n * Saves tensors used in forward mode for use in backward mode.\n *\n * @param tensors the list of tensors to save.\n */\n private saveTensorsForBackwardMode(tensors: Tensor[]): Tensor[] {\n const saved = tensors.map(tensor => this.keep(this.clone(tensor)));\n return saved;\n }\n\n /**\n * Returns a list of tensors to save for a given gradient calculation.\n *\n * Returns undefined if their is no registered gradient for this kernel in the\n * gradient registry.\n *\n * @param kernelName name of kernel to look up gradient for.\n * @param inputs a map of input tensors.\n * @param outputs an array of output tensors from forward mode of kernel.\n */\n private getTensorsForGradient(\n kernelName: string, inputs: NamedTensorMap,\n outputs: Tensor[]): Tensor[]|null {\n const gradConfig = getGradient(kernelName);\n if (gradConfig != null) {\n const inputsToSave: string[] = gradConfig.inputsToSave || [];\n const outputsToSave: boolean[] = gradConfig.outputsToSave || [];\n\n // If saveAllInputs is true, all inputs will be saved. Otherwise, inputs\n // specified in inputsToSave will be saved.\n let inputTensorsToSave: Tensor[];\n if (gradConfig.saveAllInputs) {\n util.assert(\n Array.isArray(inputs),\n () => 'saveAllInputs is true, expected inputs to be an array.');\n\n inputTensorsToSave = Object.keys(inputs).map((key) => inputs[key]);\n } else {\n inputTensorsToSave = inputsToSave.map((inputName) => inputs[inputName]);\n }\n\n const outputTensorsToSave: Tensor[] =\n outputs.filter((_, i) => outputsToSave[i]);\n\n return inputTensorsToSave.concat(outputTensorsToSave);\n }\n // TODO(yassogba) throw exception here once all runkernelFunc calls with\n // inputsToSave/outputsToSave are removed\n return null;\n }\n\n /**\n * Internal method used by public APIs for tensor creation. Makes a new\n * tensor with the provided shape, dtype and values. It always\n * creates a new data id and writes the values to the underlying backend.\n */\n makeTensor(\n values: DataValues, shape: number[], dtype: DataType,\n backend?: KernelBackend): Tensor {\n if (values == null) {\n throw new Error('Values passed to engine.makeTensor() are null');\n }\n dtype = dtype || 'float32';\n backend = backend || this.backend;\n let backendVals = values as BackendValues;\n if (dtype === 'string' && util.isString(values[0])) {\n backendVals = (values as string[]).map(d => util.encodeString(d));\n }\n const dataId = backend.write(backendVals, shape, dtype);\n const t = new Tensor(shape, dtype, dataId, this.nextTensorId());\n this.incRef(t, backend);\n\n // Count bytes for string tensors.\n if (dtype === 'string') {\n const info = this.state.tensorInfo.get(dataId);\n const newBytes = bytesFromStringArray(backendVals as Uint8Array[]);\n this.state.numBytes += newBytes - info.bytes;\n info.bytes = newBytes;\n }\n return t;\n }\n\n /**\n * Internal method used by backends. Makes a new tensor\n * that is a wrapper around an existing data id. It doesn't create\n * a new data id, only increments the ref count used in memory tracking.\n */\n makeTensorFromDataId(\n dataId: DataId, shape: number[], dtype: DataType,\n backend?: KernelBackend): Tensor {\n dtype = dtype || 'float32';\n const t = new Tensor(shape, dtype, dataId, this.nextTensorId());\n this.incRef(t, backend);\n return t;\n }\n\n makeVariable(\n initialValue: Tensor, trainable = true, name?: string,\n dtype?: DataType): Variable {\n name = name || this.nextVariableId().toString();\n if (dtype != null && dtype !== initialValue.dtype) {\n initialValue = initialValue.cast(dtype);\n }\n const v = new Variable(initialValue, trainable, name, this.nextTensorId());\n if (this.state.registeredVariables[v.name] != null) {\n throw new Error(`Variable with name ${v.name} was already registered`);\n }\n this.state.registeredVariables[v.name] = v;\n this.incRef(v, this.backend);\n return v;\n }\n\n incRef(a: Tensor, backend: KernelBackend): void {\n const refCount = this.state.tensorInfo.has(a.dataId) ?\n this.state.tensorInfo.get(a.dataId).refCount :\n 0;\n this.state.numTensors++;\n if (a.dtype === 'string') {\n this.state.numStringTensors++;\n }\n if (refCount === 0) {\n this.state.numDataBuffers++;\n\n // Bytes for complex numbers are counted by their components. Bytes for\n // string tensors are counted when writing values.\n let bytes = 0;\n if (a.dtype !== 'complex64' && a.dtype !== 'string') {\n bytes = a.size * util.bytesPerElement(a.dtype);\n }\n this.state.tensorInfo.set(a.dataId, {\n backend: backend || this.backend,\n dtype: a.dtype,\n shape: a.shape,\n bytes,\n refCount: 0\n });\n this.state.numBytes += bytes;\n }\n\n this.state.tensorInfo.get(a.dataId).refCount++;\n\n if (!(a instanceof Variable)) {\n this.track(a);\n }\n }\n\n disposeTensor(a: Tensor): void {\n if (!this.state.tensorInfo.has(a.dataId)) {\n return;\n }\n\n this.state.numTensors--;\n if (a.dtype === 'string') {\n this.state.numStringTensors--;\n }\n const info = this.state.tensorInfo.get(a.dataId);\n const refCount = info.refCount;\n\n if (refCount <= 1) {\n // Don't count bytes for complex numbers as they are counted by their\n // components.\n if (a.dtype !== 'complex64') {\n this.state.numBytes -= info.bytes;\n }\n this.state.numDataBuffers--;\n\n info.backend.disposeData(a.dataId);\n this.state.tensorInfo.delete(a.dataId);\n } else {\n this.state.tensorInfo.get(a.dataId).refCount--;\n }\n // TODO(nsthorat): Construct an error and save the stack trace for\n // debugging when in debug mode. Creating a stack trace is too expensive\n // to do unconditionally.\n }\n\n disposeVariables(): void {\n for (const varName in this.state.registeredVariables) {\n const v = this.state.registeredVariables[varName];\n this.disposeVariable(v);\n }\n }\n\n disposeVariable(v: Variable): void {\n this.disposeTensor(v);\n if (this.state.registeredVariables[v.name] != null) {\n delete this.state.registeredVariables[v.name];\n }\n }\n\n memory(): MemoryInfo {\n const info = this.backend.memory() as MemoryInfo;\n info.numTensors = this.state.numTensors;\n info.numDataBuffers = this.state.numDataBuffers;\n info.numBytes = this.state.numBytes;\n if (this.state.numStringTensors > 0) {\n info.unreliable = true;\n if (info.reasons == null) {\n info.reasons = [];\n }\n info.reasons.push(\n 'Memory usage by string tensors is approximate ' +\n '(2 bytes per character)');\n }\n return info;\n }\n\n async profile(query: () => (TensorContainer | Promise)):\n Promise {\n this.state.profiling = true;\n\n const startBytes = this.state.numBytes;\n const startNumTensors = this.state.numTensors;\n\n this.state.activeProfile.kernels = [];\n this.state.activeProfile.result = await query();\n\n this.state.profiling = false;\n\n this.state.activeProfile.peakBytes = Math.max(\n ...this.state.activeProfile.kernels.map(d => d.totalBytesSnapshot));\n this.state.activeProfile.newBytes = this.state.numBytes - startBytes;\n this.state.activeProfile.newTensors =\n this.state.numTensors - startNumTensors;\n for (const kernel of this.state.activeProfile.kernels) {\n kernel.kernelTimeMs = await kernel.kernelTimeMs;\n kernel.extraInfo = await kernel.extraInfo;\n }\n return this.state.activeProfile;\n }\n\n isTapeOn(): boolean {\n return this.state.gradientDepth > 0 && this.state.kernelDepth === 0;\n }\n\n private addTapeNode(\n kernelName: string, inputs: NamedTensorMap, outputs: Tensor[],\n gradientsFunc: GradFunc, saved: Tensor[], attrs: NamedAttrMap): void {\n const tapeNode: TapeNode =\n {id: this.state.nextTapeNodeId++, kernelName, inputs, outputs, saved};\n\n const gradConfig = getGradient(kernelName);\n if (gradConfig != null) {\n gradientsFunc = gradConfig.gradFunc;\n }\n if (gradientsFunc != null) {\n tapeNode.gradient = (dys: Tensor[]) => {\n // TODO(smilkov): To optimize back-prop, pass dys that are not used in\n // the backprop graph to the user as null instead of zeros\n dys = dys.map((dy, i) => {\n if (dy == null) {\n const output = outputs[i];\n const vals = util.makeZerosTypedArray(output.size, output.dtype);\n return this.makeTensor(vals, output.shape, output.dtype);\n }\n return dy;\n });\n // Grad functions of ops with single outputs expect a dy, while ops\n // with multiple outputs expect dys (array of dy).\n return gradientsFunc(dys.length > 1 ? dys : dys[0], saved, attrs);\n };\n }\n this.state.activeTape.push(tapeNode);\n }\n\n keep(result: T): T {\n result.kept = true;\n return result;\n }\n\n private startTape() {\n if (this.state.gradientDepth === 0) {\n this.state.activeTape = [];\n }\n this.state.gradientDepth++;\n }\n\n private endTape() {\n this.state.gradientDepth--;\n }\n\n /**\n * Start a scope. Use this with endScope() to achieve the same functionality\n * as scope() without the need for a function closure.\n */\n startScope(name?: string) {\n const scopeInfo: ScopeState = {\n track: [],\n name: 'unnamed scope',\n id: this.state.nextScopeId++\n };\n if (name) {\n scopeInfo.name = name;\n }\n this.state.scopeStack.push(scopeInfo);\n this.state.activeScope = scopeInfo;\n }\n\n /**\n * End a scope. Use this with startScope() to achieve the same functionality\n * as scope() without the need for a function closure.\n */\n endScope(result?: TensorContainer) {\n const tensorsToTrackInParent = getTensorsInContainer(result);\n const tensorsToTrackInParentSet =\n new Set(tensorsToTrackInParent.map(t => t.id));\n\n // Dispose the arrays tracked in this scope.\n for (let i = 0; i < this.state.activeScope.track.length; i++) {\n const tensor = this.state.activeScope.track[i];\n if (!tensor.kept && !tensorsToTrackInParentSet.has(tensor.id)) {\n tensor.dispose();\n }\n }\n\n const oldScope = this.state.scopeStack.pop();\n this.state.activeScope = this.state.scopeStack.length === 0 ?\n null :\n this.state.scopeStack[this.state.scopeStack.length - 1];\n\n // Track the current result in the parent scope.\n tensorsToTrackInParent.forEach(tensor => {\n // Only track the tensor if was allocated in the inner scope and is not\n // globally kept.\n if (!tensor.kept && tensor.scopeId === oldScope.id) {\n this.track(tensor);\n }\n });\n }\n\n /**\n * Returns gradients of `f` with respect to each of the `xs`. The gradients\n * returned are of the same length as `xs`, but some might be null if `f`\n * was not a function of that `x`. It also takes optional dy to multiply the\n * gradient, which defaults to `1`.\n */\n gradients(\n f: () => T, xs: Tensor[], dy?: T,\n allowNoGradients = false): {value: T, grads: Tensor[]} {\n util.assert(\n xs.length > 0, () => 'gradients() received an empty list of xs.');\n if (dy != null && dy.dtype !== 'float32') {\n throw new Error(`dy must have 'float32' dtype, but has '${dy.dtype}'`);\n }\n\n const y = this.scopedRun(\n () => this.startTape(), () => this.endTape(),\n () => this.tidy('forward', f));\n\n util.assert(\n y instanceof Tensor,\n () => 'The result y returned by f() must be a tensor.');\n // Filter out the nodes that don't connect x => y.\n const filteredTape = getFilteredNodesXToY(this.state.activeTape, xs, y);\n if (!allowNoGradients && filteredTape.length === 0 && xs.length > 0) {\n throw new Error(\n 'Cannot compute gradient of y=f(x) with respect to x. Make sure ' +\n 'that the f you passed encloses all operations that lead from x ' +\n 'to y.');\n }\n\n return this.tidy('backward', () => {\n const accumulatedGradientMap: {[tensorId: number]: Tensor} = {};\n accumulatedGradientMap[y.id] = (dy == null) ? ones(y.shape) : dy;\n\n // Backprop gradients through the filtered nodes.\n backpropagateGradients(\n accumulatedGradientMap, filteredTape,\n // Pass the tidy function to avoid circular dep with `tape.ts`.\n f => this.tidy(f as ScopeFn),\n // Pass an add function to avoide a circular dep with `tape.ts`.\n add);\n const grads = xs.map(x => accumulatedGradientMap[x.id]);\n\n if (this.state.gradientDepth === 0) {\n // This means that we are not computing higher-order gradients\n // and can clean up the tape.\n this.state.activeTape.forEach(node => {\n for (const tensor of node.saved) {\n tensor.dispose();\n }\n });\n this.state.activeTape = null;\n }\n return {value: y, grads};\n });\n }\n\n customGrad(f: CustomGradientFunc):\n (...args: Array) => T {\n util.assert(\n util.isFunction(f),\n () => 'The f passed in customGrad(f) must be a function.');\n return (...inputs: Tensor[]): T => {\n util.assert(\n inputs.every(t => t instanceof Tensor),\n () => 'The args passed in customGrad(f)(x1, x2,...) must all be ' +\n 'tensors');\n\n let res: {\n value: T,\n gradFunc: (dy: T, saved: Tensor[]) => Tensor | Tensor[],\n };\n const inputMap: NamedTensorMap = {};\n inputs.forEach((input, i) => {\n inputMap[i] = input;\n });\n return this.runKernelFunc(\n (_, save) => {\n res = f(...[...inputs, save]);\n util.assert(\n res.value instanceof Tensor,\n () => 'The function f passed in customGrad(f) must return an ' +\n 'object where `obj.value` is a tensor');\n util.assert(\n util.isFunction(res.gradFunc),\n () => 'The function f passed in customGrad(f) must return an ' +\n 'object where `obj.gradFunc` is a function.');\n return res.value;\n },\n inputMap,\n (dy: T, saved: Tensor[]) => {\n const gradRes = res.gradFunc(dy, saved);\n const grads: Tensor[] =\n Array.isArray(gradRes) ? gradRes : [gradRes];\n util.assert(\n grads.length === inputs.length,\n () => 'The function f passed in customGrad(f) must return an ' +\n 'object where `obj.gradFunc` is a function that returns ' +\n 'the same number of tensors as inputs passed to f(...).');\n util.assert(\n grads.every(t => t instanceof Tensor),\n () => 'The function f passed in customGrad(f) must return an ' +\n 'object where `obj.gradFunc` is a function that returns ' +\n 'a list of only tensors.');\n const gradMap: {[key: string]: () => Tensor} = {};\n grads.forEach((grad, i) => {\n gradMap[i] = () => grad;\n });\n return gradMap;\n });\n };\n }\n\n readSync(dataId: DataId): BackendValues {\n // Route the read to the correct backend.\n const info = this.state.tensorInfo.get(dataId);\n return info.backend.readSync(dataId);\n }\n read(dataId: DataId): Promise {\n // Route the read to the correct backend.\n const info = this.state.tensorInfo.get(dataId);\n return info.backend.read(dataId);\n }\n\n async time(query: () => void): Promise {\n const start = now();\n const timingInfo = await this.backend.time(query) as TimingInfo;\n timingInfo.wallMs = now() - start;\n return timingInfo;\n }\n\n /**\n * Tracks a Tensor in the current scope to be automatically cleaned up\n * when the current scope ends, and returns the value.\n *\n * @param result The Tensor to track in the current scope.\n */\n private track(result: T): T {\n if (this.state.activeScope != null) {\n result.scopeId = this.state.activeScope.id;\n this.state.activeScope.track.push(result);\n }\n\n return result;\n }\n\n get registeredVariables(): NamedVariableMap {\n return this.state.registeredVariables;\n }\n\n /**\n * Resets the engine state. Removes all backends but does not remove\n * registered backend factories.\n */\n reset(): void {\n // Make any pending promise obsolete.\n this.pendingBackendInitId++;\n\n this.state.dispose();\n this.ENV.reset();\n this.state = new EngineState();\n\n for (const backendName in this.registry) {\n this.disposeRegisteredKernels(backendName);\n this.registry[backendName].dispose();\n delete this.registry[backendName];\n }\n this.backendName = null;\n this.backendInstance = null;\n this.pendingBackendInit = null;\n }\n}\n\nfunction ones(shape: number[]): Tensor {\n const values = makeOnesTypedArray(sizeFromShape(shape), 'float32');\n return ENGINE.makeTensor(values, shape, 'float32');\n}\n\nexport function getOrMakeEngine(): Engine {\n const ns = getGlobalNamespace() as {} as {_tfengine: Engine};\n if (ns._tfengine == null) {\n const environment = new Environment(ns);\n ns._tfengine = new Engine(environment);\n }\n setEnvironmentGlobal(ns._tfengine.ENV);\n\n // Tell the current tensor interface that the global engine is responsible\n // for tracking.\n setTensorTracker(() => ns._tfengine);\n return ns._tfengine;\n}\n\nexport const ENGINE = getOrMakeEngine();\n\n/**\n * A implementation of the add op for use within engine and tape.\n *\n * This allows us to avoid a circular dependency between add.ts and engine.\n * It is exported to be available in tape tests.\n */\nexport function add(a: Tensor, b: Tensor): Tensor {\n // We duplicate Add here to avoid a circular dependency with add.ts.\n const inputs = {a, b};\n return ENGINE.runKernelFunc((backend, save) => {\n const res = backend.add(a, b);\n save([a, b]);\n return res;\n }, inputs as {} as NamedTensorMap, null /* gradient */, Add);\n}\n", "/**\n * @license\n * Copyright 2017 Google LLC. 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 *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\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 * =============================================================================\n */\n\n// tslint:disable-next-line:no-any\nfunction _isNavigatorDefined(): boolean {\n return typeof navigator !== 'undefined' && navigator != null;\n}\n\nexport function isMobile(): boolean {\n if (_isNavigatorDefined()) {\n // tslint:disable-next-line:no-any\n const a = navigator.userAgent || navigator.vendor || (window as any).opera;\n // tslint:disable-next-line:max-line-length\n return /(android|bb\\d+|meego).+mobile|avantgo|bada\\/|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od)|iris|kindle|lge |maemo|midp|mmp|mobile.+firefox|netfront|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)\\/|plucker|pocket|psp|series(4|6)0|symbian|treo|up\\.(browser|link)|vodafone|wap|windows ce|xda|xiino/i\n .test(a) ||\n // tslint:disable-next-line:max-line-length\n /1207|6310|6590|3gso|4thp|50[1-6]i|770s|802s|a wa|abac|ac(er|oo|s\\-)|ai(ko|rn)|al(av|ca|co)|amoi|an(ex|ny|yw)|aptu|ar(ch|go)|as(te|us)|attw|au(di|\\-m|r |s )|avan|be(ck|ll|nq)|bi(lb|rd)|bl(ac|az)|br(e|v)w|bumb|bw\\-(n|u)|c55\\/|capi|ccwa|cdm\\-|cell|chtm|cldc|cmd\\-|co(mp|nd)|craw|da(it|ll|ng)|dbte|dc\\-s|devi|dica|dmob|do(c|p)o|ds(12|\\-d)|el(49|ai)|em(l2|ul)|er(ic|k0)|esl8|ez([4-7]0|os|wa|ze)|fetc|fly(\\-|_)|g1 u|g560|gene|gf\\-5|g\\-mo|go(\\.w|od)|gr(ad|un)|haie|hcit|hd\\-(m|p|t)|hei\\-|hi(pt|ta)|hp( i|ip)|hs\\-c|ht(c(\\-| |_|a|g|p|s|t)|tp)|hu(aw|tc)|i\\-(20|go|ma)|i230|iac( |\\-|\\/)|ibro|idea|ig01|ikom|im1k|inno|ipaq|iris|ja(t|v)a|jbro|jemu|jigs|kddi|keji|kgt( |\\/)|klon|kpt |kwc\\-|kyo(c|k)|le(no|xi)|lg( g|\\/(k|l|u)|50|54|\\-[a-w])|libw|lynx|m1\\-w|m3ga|m50\\/|ma(te|ui|xo)|mc(01|21|ca)|m\\-cr|me(rc|ri)|mi(o8|oa|ts)|mmef|mo(01|02|bi|de|do|t(\\-| |o|v)|zz)|mt(50|p1|v )|mwbp|mywa|n10[0-2]|n20[2-3]|n30(0|2)|n50(0|2|5)|n7(0(0|1)|10)|ne((c|m)\\-|on|tf|wf|wg|wt)|nok(6|i)|nzph|o2im|op(ti|wv)|oran|owg1|p800|pan(a|d|t)|pdxg|pg(13|\\-([1-8]|c))|phil|pire|pl(ay|uc)|pn\\-2|po(ck|rt|se)|prox|psio|pt\\-g|qa\\-a|qc(07|12|21|32|60|\\-[2-7]|i\\-)|qtek|r380|r600|raks|rim9|ro(ve|zo)|s55\\/|sa(ge|ma|mm|ms|ny|va)|sc(01|h\\-|oo|p\\-)|sdk\\/|se(c(\\-|0|1)|47|mc|nd|ri)|sgh\\-|shar|sie(\\-|m)|sk\\-0|sl(45|id)|sm(al|ar|b3|it|t5)|so(ft|ny)|sp(01|h\\-|v\\-|v )|sy(01|mb)|t2(18|50)|t6(00|10|18)|ta(gt|lk)|tcl\\-|tdg\\-|tel(i|m)|tim\\-|t\\-mo|to(pl|sh)|ts(70|m\\-|m3|m5)|tx\\-9|up(\\.b|g1|si)|utst|v400|v750|veri|vi(rg|te)|vk(40|5[0-3]|\\-v)|vm40|voda|vulc|vx(52|53|60|61|70|80|81|83|85|98)|w3c(\\-| )|webc|whit|wi(g |nc|nw)|wmlb|wonu|x700|yas\\-|your|zeto|zte\\-/i\n .test(a.substr(0, 4));\n }\n return false;\n}\n\nexport function isBrowser(): boolean {\n return (typeof window !== 'undefined' && window.document != null) ||\n //@ts-ignore\n (typeof WorkerGlobalScope !== 'undefined');\n}\n", "/**\n * @license\n * Copyright 2019 Google LLC. 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 *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\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 * =============================================================================\n */\nimport './engine';\n\nimport * as device_util from './device_util';\nimport {env} from './environment';\n\nconst ENV = env();\n\n/**\n * This file contains environment-related flag registrations.\n */\n\n/** Whether to enable debug mode. */\nENV.registerFlag('DEBUG', () => false, debugValue => {\n if (debugValue) {\n console.warn(\n 'Debugging mode is ON. The output of every math call will ' +\n 'be downloaded to CPU and checked for NaNs. ' +\n 'This significantly impacts performance.');\n }\n});\n\n/** Whether we are in a browser (as versus, say, node.js) environment. */\nENV.registerFlag('IS_BROWSER', () => device_util.isBrowser());\n\n/** Whether we are in a browser (as versus, say, node.js) environment. */\nENV.registerFlag(\n 'IS_NODE',\n () => (typeof process !== 'undefined') &&\n (typeof process.versions !== 'undefined') &&\n (typeof process.versions.node !== 'undefined'));\n\n/** Whether this browser is Chrome. */\nENV.registerFlag(\n 'IS_CHROME',\n () => typeof navigator !== 'undefined' && navigator != null &&\n navigator.userAgent != null && /Chrome/.test(navigator.userAgent) &&\n /Google Inc/.test(navigator.vendor));\n\n/**\n * True when the environment is \"production\" where we disable safety checks\n * to gain performance.\n */\nENV.registerFlag('PROD', () => false);\n\n/**\n * Whether to do sanity checks when inferring a shape from user-provided\n * values, used when creating a new tensor.\n */\nENV.registerFlag(\n 'TENSORLIKE_CHECK_SHAPE_CONSISTENCY', () => ENV.getBool('DEBUG'));\n\n/** Whether deprecation warnings are enabled. */\nENV.registerFlag('DEPRECATION_WARNINGS_ENABLED', () => true);\n\n/** True if running unit tests. */\nENV.registerFlag('IS_TEST', () => false);\n", "/**\n * @license\n * Copyright 2018 Google LLC. 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 *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\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 * =============================================================================\n */\n\nimport {ENGINE} from './engine';\nimport {env} from './environment';\nimport {Tensor} from './tensor';\nimport {DataType, TensorLike} from './types';\nimport {assert, flatten, inferDtype, isTypedArray, toTypedArray} from './util';\n\nexport function inferShape(val: TensorLike, dtype?: DataType): number[] {\n let firstElem: typeof val = val;\n\n if (isTypedArray(val)) {\n return dtype === 'string' ? [] : [val.length];\n }\n if (!Array.isArray(val)) {\n return []; // Scalar.\n }\n const shape: number[] = [];\n\n while (Array.isArray(firstElem) ||\n isTypedArray(firstElem) && dtype !== 'string') {\n shape.push(firstElem.length);\n firstElem = firstElem[0];\n }\n if (Array.isArray(val) &&\n env().getBool('TENSORLIKE_CHECK_SHAPE_CONSISTENCY')) {\n deepAssertShapeConsistency(val, shape, []);\n }\n\n return shape;\n}\n\nfunction deepAssertShapeConsistency(\n val: TensorLike, shape: number[], indices: number[]) {\n indices = indices || [];\n if (!(Array.isArray(val)) && !isTypedArray(val)) {\n assert(\n shape.length === 0,\n () => `Element arr[${indices.join('][')}] is a primitive, ` +\n `but should be an array/TypedArray of ${shape[0]} elements`);\n return;\n }\n assert(\n shape.length > 0,\n () => `Element arr[${indices.join('][')}] should be a primitive, ` +\n `but is an array of ${val.length} elements`);\n assert(\n val.length === shape[0],\n () => `Element arr[${indices.join('][')}] should have ${shape[0]} ` +\n `elements, but has ${val.length} elements`);\n const subShape = shape.slice(1);\n for (let i = 0; i < val.length; ++i) {\n deepAssertShapeConsistency(val[i], subShape, indices.concat(i));\n }\n}\n\nfunction assertDtype(\n expectedDtype: DataType|'numeric', actualDType: DataType, argName: string,\n functionName: string) {\n if (expectedDtype == null) {\n return;\n }\n if (expectedDtype !== 'numeric' && expectedDtype !== actualDType ||\n expectedDtype === 'numeric' && actualDType === 'string') {\n throw new Error(\n `Argument '${argName}' passed to '${functionName}' must ` +\n `be ${expectedDtype} tensor, but got ${actualDType} tensor`);\n }\n}\n\nexport function convertToTensor(\n x: T|TensorLike, argName: string, functionName: string,\n parseAsDtype: DataType|'numeric' = 'numeric'): T {\n if (x instanceof Tensor) {\n assertDtype(parseAsDtype, x.dtype, argName, functionName);\n return x;\n }\n let inferredDtype = inferDtype(x);\n // If the user expects a bool/int/float, use that info to update the\n // inferredDtype when it is not a string.\n if (inferredDtype !== 'string' &&\n ['bool', 'int32', 'float32'].indexOf(parseAsDtype) >= 0) {\n inferredDtype = parseAsDtype as DataType;\n }\n assertDtype(parseAsDtype, inferredDtype, argName, functionName);\n\n if ((x == null) ||\n (!isTypedArray(x) && !Array.isArray(x) && typeof x !== 'number' &&\n typeof x !== 'boolean' && typeof x !== 'string')) {\n const type = x == null ? 'null' : (x as {}).constructor.name;\n throw new Error(\n `Argument '${argName}' passed to '${functionName}' must be a ` +\n `Tensor or TensorLike, but got '${type}'`);\n }\n const inferredShape = inferShape(x, inferredDtype);\n if (!isTypedArray(x) && !Array.isArray(x)) {\n x = [x] as number[];\n }\n const skipTypedArray = true;\n const values = inferredDtype !== 'string' ?\n toTypedArray(x, inferredDtype as DataType) :\n flatten(x as string[], [], skipTypedArray) as string[];\n return ENGINE.makeTensor(values, inferredShape, inferredDtype) as T;\n}\n\nexport function convertToTensorArray(\n arg: Array, argName: string, functionName: string,\n parseAsDtype: DataType|'numeric' = 'numeric'): T[] {\n if (!Array.isArray(arg)) {\n throw new Error(\n `Argument ${argName} passed to ${functionName} must be a ` +\n '`Tensor[]` or `TensorLike[]`');\n }\n const tensors = arg as T[];\n return tensors.map(\n (t, i) => convertToTensor(t, `${argName}[${i}]`, functionName),\n parseAsDtype);\n}\n", "/**\n * @license\n * Copyright 2018 Google LLC. 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 *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\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 * =============================================================================\n */\nimport {ENGINE} from '../engine';\nimport {isPromise} from '../util';\n\nexport const OP_SCOPE_SUFFIX = '__op';\n\n/**\n * Used for wrapping functions that perform math operations on\n * Tensors. The function will be wrapped in a named scope that cleans all\n * memory usage after the function is done.\n */\nexport function op(f: {[name: string]: T}): T {\n const keys = Object.keys(f);\n if (keys.length !== 1) {\n throw new Error(\n `Please provide an object with a single key ` +\n `(operation name) mapping to a function. Got an object with ` +\n `${keys.length} keys.`);\n }\n\n let opName = keys[0];\n const fn = f[opName];\n\n // Strip the underscore from the end of the function name.\n if (opName.endsWith('_')) {\n opName = opName.substring(0, opName.length - 1);\n }\n\n // add an __op suffix to distinguish ops from kernels in tf.profile\n opName = opName + OP_SCOPE_SUFFIX;\n\n // tslint:disable-next-line:no-any\n const f2 = (...args: any[]) => {\n ENGINE.startScope(opName);\n try {\n const result = fn(...args);\n if (isPromise(result)) {\n console.error('Cannot return a Promise inside of tidy.');\n }\n ENGINE.endScope(result);\n return result;\n } catch (ex) {\n ENGINE.endScope(null);\n throw ex;\n }\n };\n Object.defineProperty(f2, 'name', {value: opName, configurable: true});\n\n // tslint:disable-next-line:no-any\n return f2 as any as T;\n}\n", "/**\n * @license\n * Copyright 2020 Google LLC. 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 *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\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 * =============================================================================\n */\nimport {ENGINE, ForwardFunc} from '../engine';\nimport {Complex, ComplexInputs} from '../kernel_names';\nimport {Tensor} from '../tensor';\nimport {NamedTensorMap} from '../tensor_types';\nimport {convertToTensor} from '../tensor_util_env';\nimport {TensorLike} from '../types';\nimport * as util from '../util';\n\nimport {op} from './operation';\n\n/**\n * Converts two real numbers to a complex number.\n *\n * Given a tensor `real` representing the real part of a complex number, and a\n * tensor `imag` representing the imaginary part of a complex number, this\n * operation returns complex numbers elementwise of the form [r0, i0, r1, i1],\n * where r represents the real part and i represents the imag part.\n *\n * The input tensors real and imag must have the same shape.\n *\n * ```js\n * const real = tf.tensor1d([2.25, 3.25]);\n * const imag = tf.tensor1d([4.75, 5.75]);\n * const complex = tf.complex(real, imag);\n *\n * complex.print();\n * ```\n *\n * @doc {heading: 'Tensors', subheading: 'Creation'}\n */\nfunction complex_(real: T|TensorLike, imag: T|TensorLike): T {\n const $real = convertToTensor(real, 'real', 'complex');\n const $imag = convertToTensor(imag, 'imag', 'complex');\n util.assertShapesMatch(\n $real.shape, $imag.shape,\n `real and imag shapes, ${$real.shape} and ${$imag.shape}, ` +\n `must match in call to tf.complex().`);\n\n const forward: ForwardFunc = (backend) => {\n return backend.complex($real, $imag);\n };\n const inputs: ComplexInputs = {real: $real, imag: $imag};\n return ENGINE.runKernelFunc(\n forward, inputs as {} as NamedTensorMap, null /* gradient */,\n Complex) as T;\n}\n\nexport const complex = op({complex_});\n", "/**\n * @license\n * Copyright 2018 Google LLC. 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 *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\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 * =============================================================================\n */\n\nimport {ENGINE} from '../engine';\nimport {Tensor} from '../tensor';\nimport {TensorLike, TypedArray} from '../types';\nimport {DataType} from '../types';\nimport {assert, assertNonNegativeIntegerDimensions, flatten, inferDtype, isTypedArray, sizeFromShape, toTypedArray} from '../util';\n\n/** This is shared code across all tensor creation methods. */\nexport function makeTensor(\n values: TensorLike, shape: number[], inferredShape: number[],\n dtype?: DataType): Tensor {\n if (dtype == null) {\n dtype = inferDtype(values);\n }\n if (dtype === 'complex64') {\n throw new Error(\n `Cannot construct a complex64 tensor directly. ` +\n `Please use tf.complex(real, imag).`);\n }\n if (!isTypedArray(values) && !Array.isArray(values) &&\n typeof values !== 'number' && typeof values !== 'boolean' &&\n typeof values !== 'string') {\n throw new Error(\n 'values passed to tensor(values) must be a number/boolean/string or ' +\n 'an array of numbers/booleans/strings, or a TypedArray');\n }\n if (shape != null) {\n assertNonNegativeIntegerDimensions(shape);\n\n const providedSize = sizeFromShape(shape);\n const inferredSize = sizeFromShape(inferredShape);\n assert(\n providedSize === inferredSize,\n () =>\n `Based on the provided shape, [${shape}], the tensor should have ` +\n `${providedSize} values but has ${inferredSize}`);\n\n for (let i = 0; i < inferredShape.length; ++i) {\n const inferred = inferredShape[i];\n const flatDimsDontMatch = i === inferredShape.length - 1 ?\n inferred !== sizeFromShape(shape.slice(i)) :\n true;\n assert(\n inferredShape[i] === shape[i] || !flatDimsDontMatch,\n () => `Error creating a new Tensor. Inferred shape ` +\n `(${inferredShape}) does not match the provided ` +\n `shape (${shape}). `);\n }\n }\n\n if (!isTypedArray(values) && !Array.isArray(values)) {\n values = [values] as number[];\n }\n\n shape = shape || inferredShape;\n values = dtype !== 'string' ?\n toTypedArray(values, dtype) :\n flatten(values as string[], [], true) as string[];\n return ENGINE.makeTensor(values as TypedArray, shape, dtype);\n}\n", "/**\n * @license\n * Copyright 2018 Google LLC. 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 *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\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 * =============================================================================\n */\n\nimport {Tensor} from '../tensor';\nimport {inferShape} from '../tensor_util_env';\nimport {TensorLike} from '../types';\nimport {DataType, Rank, ShapeMap} from '../types';\n\nimport {makeTensor} from './tensor_ops_util';\n\n/**\n * Creates a `tf.Tensor` with the provided values, shape and dtype.\n *\n * ```js\n * // Pass an array of values to create a vector.\n * tf.tensor([1, 2, 3, 4]).print();\n * ```\n *\n * ```js\n * // Pass a nested array of values to make a matrix or a higher\n * // dimensional tensor.\n * tf.tensor([[1, 2], [3, 4]]).print();\n * ```\n *\n * ```js\n * // Pass a flat array and specify a shape yourself.\n * tf.tensor([1, 2, 3, 4], [2, 2]).print();\n * ```\n *\n * @param values The values of the tensor. Can be nested array of numbers,\n * or a flat array, or a `TypedArray`. If the values are strings,\n * they will be encoded as utf-8 and kept as `Uint8Array[]`.\n * @param shape The shape of the tensor. Optional. If not provided,\n * it is inferred from `values`.\n * @param dtype The data type.\n *\n * @doc {heading: 'Tensors', subheading: 'Creation'}\n */\nexport function tensor(\n values: TensorLike, shape?: ShapeMap[R], dtype?: DataType): Tensor {\n const inferredShape = inferShape(values, dtype);\n return makeTensor(values, shape, inferredShape, dtype) as Tensor;\n}\n", "/**\n * @license\n * Copyright 2018 Google LLC. 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 *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\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 * =============================================================================\n */\n\n/* Type definitions for exporting and importing of models. */\n\n/**\n * A map from Tensor dtype to number of bytes per element of the Tensor.\n */\nexport const DTYPE_VALUE_SIZE_MAP: {[dtype: string]: number} = {\n 'float32': 4,\n 'float16': 2,\n 'int32': 4,\n 'uint16': 2,\n 'uint8': 1,\n 'bool': 1,\n 'complex64': 8\n};\n\n/**\n * A weight manifest.\n *\n * The weight manifest consists of an ordered list of weight-manifest groups.\n * Each weight-manifest group (\"group\" for short hereafter) consists of a\n * number of weight values stored in a number of paths.\n * See the documentation of `WeightManifestGroupConfig` below for more details.\n */\nexport declare type WeightsManifestConfig = WeightsManifestGroupConfig[];\n\n/**\n * A weight-manifest group.\n *\n * Consists of an ordered list of weight values encoded in binary format,\n * stored in an ordered list of paths.\n */\nexport declare interface WeightsManifestGroupConfig {\n /**\n * An ordered list of paths.\n *\n * Paths are intentionally abstract in order to be general. For example, they\n * can be relative URL paths or relative paths on the file system.\n */\n paths: string[];\n\n /**\n * Specifications of the weights stored in the paths.\n */\n weights: WeightsManifestEntry[];\n}\n\n/**\n * Group to which the weight belongs.\n *\n * - 'optimizer': Weight from a stateful optimizer.\n */\nexport type WeightGroup = 'model'|'optimizer';\n\n/**\n * An entry in the weight manifest.\n *\n * The entry contains specification of a weight.\n */\nexport declare interface WeightsManifestEntry {\n /**\n * Name of the weight, e.g., 'Dense_1/bias'\n */\n name: string;\n\n /**\n * Shape of the weight.\n */\n shape: number[];\n\n /**\n * Data type of the weight.\n */\n dtype: 'float32'|'int32'|'bool'|'string'|'complex64';\n\n /**\n * Type of the weight.\n *\n * Optional.\n *\n * The value 'optimizer' indicates the weight belongs to an optimizer\n * (i.e., used only during model training and not during inference).\n */\n group?: WeightGroup;\n\n /**\n * Information for dequantization of the weight.\n */\n quantization?: {\n scale?: number, // The scaling constant to multiply by.\n min?: number, // The (possibly nudged) minimum weight to add.\n dtype: 'uint16'|'uint8'|'float16' // The dtype of the quantized weights.\n };\n}\n\n/**\n * Options for saving a model.\n * @innamespace io\n */\nexport interface SaveConfig {\n /**\n * Whether to save only the trainable weights of the model, ignoring the\n * non-trainable ones.\n */\n trainableOnly?: boolean;\n\n /**\n * Whether the optimizer will be saved (if exists).\n *\n * Default: `false`.\n */\n includeOptimizer?: boolean;\n}\n\n/**\n * Result of a saving operation.\n */\nexport interface SaveResult {\n /**\n * Information about the model artifacts saved.\n */\n modelArtifactsInfo: ModelArtifactsInfo;\n\n /**\n * HTTP responses from the server that handled the model-saving request (if\n * any). This is applicable only to server-based saving routes.\n */\n responses?: Response[];\n\n /**\n * Error messages and related data (if any).\n */\n errors?: Array<{}|string>;\n}\n\nexport declare interface ModelArtifactsInfo {\n /**\n * Timestamp for when the model is saved.\n */\n dateSaved: Date;\n\n /**\n * TODO (cais,yassogba) consider removing GraphDef as GraphDefs now\n * come in a JSON format and none of our IOHandlers support a non json\n * format. We could conder replacing this with 'Binary' if we want to\n * allow future handlers to save to non json formats (though they will\n * probably want more information than 'Binary').\n * Type of the model topology\n *\n * Type of the model topology\n *\n * Possible values:\n * - JSON: JSON config (human-readable, e.g., Keras JSON).\n * - GraphDef: TensorFlow\n * [GraphDef](https://www.tensorflow.org/extend/tool_developers/#graphdef)\n * protocol buffer (binary).\n */\n modelTopologyType: 'JSON'|'GraphDef';\n\n /**\n * Size of model topology (Keras JSON or GraphDef), in bytes.\n */\n modelTopologyBytes?: number;\n\n /**\n * Size of weight specification or manifest, in bytes.\n */\n weightSpecsBytes?: number;\n\n /**\n * Size of weight value data, in bytes.\n */\n weightDataBytes?: number;\n}\n\n/** Model training configuration. */\nexport declare interface TrainingConfig {\n // TODO(cais): Tighten the typing once keras spec is available to tfjs-core.\n // See\n // tslint:disable-next-line:max-line-length\n // https://github.com/tensorflow/tfjs-layers/blob/master/src/keras_format/training_config.ts\n /** Optimizer used for the model training. */\n optimizer_config: {};\n\n // TODO(cais): Tighten the typing once keras spec is available to tfjs-core.\n /** Loss function(s) for the model's output(s). */\n loss: string|string[]|{[key: string]: string};\n\n // TODO(cais): Tighten the typing once keras spec is available to tfjs-core.\n /** Metric function(s) for the model's output(s). */\n metrics?: string[]|{[key: string]: string};\n\n // TODO(cais): Tighten the typing once keras spec is available to tfjs-core.\n weighted_metrics?: string[];\n\n // TODO(cais): Tighten the typing once keras spec is available to tfjs-core.\n sample_weight_mode?: string;\n\n loss_weights?: number[]|{[key: string]: number};\n}\n\n/**\n * The serialized artifacts of a model, including topology and weights.\n *\n * The `modelTopology`, `trainingConfig`, `weightSpecs` and `weightData` fields\n * of this interface are optional, in order to support topology- or weights-only\n * saving and loading.\n *\n * Note this interface is used internally in IOHandlers. For the file format\n * written to disk as `model.json`, see `ModelJSON`.\n */\nexport declare interface ModelArtifacts {\n /**\n * Model topology.\n *\n * For Keras-style `tf.Model`s, this is a JSON object.\n * For TensorFlow-style models (e.g., `SavedModel`), this is the JSON\n * encoding of the `GraphDef` protocol buffer.\n */\n modelTopology?: {}|ArrayBuffer;\n\n /**\n * Serialized configuration for the model's training.\n */\n trainingConfig?: TrainingConfig;\n\n /**\n * Weight specifications.\n *\n * This corresponds to the weightsData below.\n */\n weightSpecs?: WeightsManifestEntry[];\n\n /**\n * Binary buffer for all weight values concatenated in the order specified\n * by `weightSpecs`.\n */\n weightData?: ArrayBuffer;\n\n /**\n * Hard-coded format name for models saved from TensorFlow.js or converted\n * by TensorFlow.js Converter.\n */\n format?: string;\n\n /**\n * What library is responsible for originally generating this artifact.\n *\n * Used for debugging purposes. E.g., 'TensorFlow.js v1.0.0'.\n */\n generatedBy?: string;\n\n /**\n * What library or tool is responsible for converting the original model\n * to this format, applicable only if the model is output by a converter.\n *\n * Used for debugging purposes. E.g., 'TensorFlow.js Converter v1.0.0'.\n *\n * A value of `null` means the model artifacts are generated without any\n * conversion process (e.g., saved directly from a TensorFlow.js\n * `tf.LayersModel` instance.)\n */\n convertedBy?: string|null;\n\n /**\n * User-defined metadata about the model.\n */\n userDefinedMetadata?: {};\n\n /**\n * Initializer for the model.\n */\n modelInitializer?: {};\n}\n\n/**\n * The on-disk format of the `model.json` file.\n *\n * TF.js 1.0 always populates the optional fields when writing model.json.\n * Prior versions did not provide those fields.\n */\nexport declare interface ModelJSON {\n /**\n * Model topology.\n *\n * For Keras-style `tf.Model`s, this is a JSON object.\n * For TensorFlow-style models (e.g., `SavedModel`), this is the JSON\n * encoding of the `GraphDef` protocol buffer.\n */\n modelTopology: {};\n\n /** Model training configuration. */\n trainingConfig?: TrainingConfig;\n\n /**\n * Weights manifest.\n *\n * The weights manifest consists of an ordered list of weight-manifest\n * groups. Each weight-manifest group consists of a number of weight values\n * stored in a number of paths. See the documentation of\n * `WeightsManifestConfig` for more details.\n */\n weightsManifest: WeightsManifestConfig;\n\n /**\n * Hard-coded format name for models saved from TensorFlow.js or converted\n * by TensorFlow.js Converter.\n */\n format?: string;\n\n /**\n * What library is responsible for originally generating this artifact.\n *\n * Used for debugging purposes. E.g., 'TensorFlow.js v1.0.0'.\n */\n generatedBy?: string;\n\n /**\n * What library or tool is responsible for converting the original model\n * to this format, applicable only if the model is output by a converter.\n *\n * Used for debugging purposes. E.g., 'TensorFlow.js Converter v1.0.0'.\n *\n * A value of `null` means the model artifacts are generated without any\n * conversion process (e.g., saved directly from a TensorFlow.js\n * `tf.LayersModel` instance.)\n */\n convertedBy?: string|null;\n\n /**\n * User-defined metadata about the model.\n */\n userDefinedMetadata?: {};\n\n /**\n * Initializer for the model.\n */\n modelInitializer?: {};\n}\n\n/**\n * Type definition for handlers of loading operations.\n */\nexport type LoadHandler = () => Promise;\n\n/**\n * Type definition for handlers of saving operations.\n */\nexport type SaveHandler = (modelArtifact: ModelArtifacts) =>\n Promise;\n\n/**\n * Interface for a model import/export handler.\n *\n * The `save` and `load` handlers are both optional, in order to allow handlers\n * that support only saving or loading.\n */\n// tslint:disable-next-line:interface-name\nexport interface IOHandler {\n save?: SaveHandler;\n load?: LoadHandler;\n}\n\n/**\n * An interface for the manager of a model store.\n *\n * A model store is defined as a storage medium on which multiple models can\n * be stored. Each stored model has a unique `path` as its identifier.\n * A `ModelStoreManager` for the store allows actions including\n *\n * - Listing the models stored in the store.\n * - Deleting a model from the store.\n */\nexport interface ModelStoreManager {\n /**\n * List all models in the model store.\n *\n * @returns A dictionary mapping paths of existing models to their\n * model artifacts info. Model artifacts info include type of the model's\n * topology, byte sizes of the topology, weights, etc.\n */\n listModels(): Promise<{[path: string]: ModelArtifactsInfo}>;\n\n /**\n * Remove a model specified by `path`.\n *\n * @param path\n * @returns ModelArtifactsInfo of the deleted model (if and only if deletion\n * is successful).\n * @throws Error if deletion fails, e.g., if no model exists at `path`.\n */\n removeModel(path: string): Promise;\n}\n\n/**\n * Callback for the progress of a long-running action such as an HTTP\n * request for a large binary object.\n *\n * `fraction` should be a number in the [0, 1] interval, indicating how\n * much of the action has completed.\n */\nexport type OnProgressCallback = (fraction: number) => void;\n\n/** @innamespace io */\nexport interface LoadOptions {\n /**\n * RequestInit (options) for HTTP requests.\n *\n * For detailed information on the supported fields, see\n * [https://developer.mozilla.org/en-US/docs/Web/API/Request/Request](\n * https://developer.mozilla.org/en-US/docs/Web/API/Request/Request)\n */\n requestInit?: RequestInit;\n\n /**\n * Progress callback.\n */\n onProgress?: OnProgressCallback;\n\n /**\n * A function used to override the `window.fetch` function.\n */\n fetchFunc?: Function;\n\n /**\n * Strict loading model: whether extraneous weights or missing\n * weights should trigger an `Error`.\n *\n * If `true`, require that the provided weights exactly match those\n * required by the layers. `false` means that both extra weights\n * and missing weights will be silently ignored.\n *\n * Default: `true`.\n */\n strict?: boolean;\n\n /**\n * Path prefix for weight files, by default this is calculated from the\n * path of the model JSON file.\n *\n * For instance, if the path to the model JSON file is\n * `http://localhost/foo/model.json`, then the default path prefix will be\n * `http://localhost/foo/`. If a weight file has the path value\n * `group1-shard1of2` in the weight manifest, then the weight file will be\n * loaded from `http://localhost/foo/group1-shard1of2` by default. However,\n * if you provide a `weightPathPrefix` value of\n * `http://localhost/foo/alt-weights`, then the weight file will be loaded\n * from the path `http://localhost/foo/alt-weights/group1-shard1of2` instead.\n */\n weightPathPrefix?: string;\n\n /**\n * Whether the module or model is to be loaded from TF Hub.\n *\n * Setting this to `true` allows passing a TF-Hub module URL, omitting the\n * standard model file name and the query parameters.\n *\n * Default: `false`.\n */\n fromTFHub?: boolean;\n\n /**\n * An async function to convert weight file name to URL. The weight file\n * names are stored in model.json's weightsManifest.paths field. By default we\n * consider weight files are colocated with the model.json file. For example:\n * model.json URL: https://www.google.com/models/1/model.json\n * group1-shard1of1.bin url:\n * https://www.google.com/models/1/group1-shard1of1.bin\n *\n * With this func you can convert the weight file name to any URL.\n */\n weightUrlConverter?: (weightFileName: string) => Promise;\n}\n\n/**\n * Additional options for Platform.fetch\n */\nexport interface RequestDetails {\n /**\n * Is this request for a binary file (as opposed to a json file)\n */\n isBinary?: boolean;\n}\n", "/**\n * @license\n * Copyright 2018 Google LLC. 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 *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\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 * =============================================================================\n */\n\nimport {complex} from '../ops/complex';\n\nimport {tensor} from '../ops/tensor';\nimport {NamedTensor, NamedTensorMap} from '../tensor_types';\nimport {TypedArray} from '../types';\nimport {sizeFromShape} from '../util';\n\nimport {DTYPE_VALUE_SIZE_MAP, ModelArtifacts, ModelArtifactsInfo, WeightGroup, WeightsManifestEntry} from './types';\n\n/** Number of bytes reserved for the length of the string. (32bit integer). */\nconst NUM_BYTES_STRING_LENGTH = 4;\n\n/**\n * Encode a map from names to weight values as an ArrayBuffer, along with an\n * `Array` of `WeightsManifestEntry` as specification of the encoded weights.\n *\n * This function does not perform sharding.\n *\n * This function is the reverse of `decodeWeights`.\n *\n * @param tensors A map (\"dict\") from names to tensors.\n * @param group Group to which the weights belong (optional).\n * @returns A `Promise` of\n * - A flat `ArrayBuffer` with all the binary values of the `Tensor`s\n * concatenated.\n * - An `Array` of `WeightManifestEntry`s, carrying information including\n * tensor names, `dtype`s and shapes.\n * @throws Error: on unsupported tensor `dtype`.\n */\nexport async function encodeWeights(\n tensors: NamedTensorMap|NamedTensor[], group?: WeightGroup):\n Promise<{data: ArrayBuffer, specs: WeightsManifestEntry[]}> {\n // TODO(adarob, cais): Support quantization.\n const specs: WeightsManifestEntry[] = [];\n const dataPromises: Array> = [];\n\n const names: string[] = Array.isArray(tensors) ?\n tensors.map(tensor => tensor.name) :\n Object.keys(tensors);\n\n for (let i = 0; i < names.length; ++i) {\n const name = names[i];\n const t = Array.isArray(tensors) ? tensors[i].tensor : tensors[name];\n if (t.dtype !== 'float32' && t.dtype !== 'int32' && t.dtype !== 'bool' &&\n t.dtype !== 'string' && t.dtype !== 'complex64') {\n throw new Error(`Unsupported dtype in weight '${name}': ${t.dtype}`);\n }\n const spec: WeightsManifestEntry = {name, shape: t.shape, dtype: t.dtype};\n if (t.dtype === 'string') {\n const utf8bytes = new Promise(async resolve => {\n const vals = await t.bytes() as Uint8Array[];\n const totalNumBytes = vals.reduce((p, c) => p + c.length, 0) +\n NUM_BYTES_STRING_LENGTH * vals.length;\n const bytes = new Uint8Array(totalNumBytes);\n let offset = 0;\n for (let i = 0; i < vals.length; i++) {\n const val = vals[i];\n const bytesOfLength =\n new Uint8Array(new Uint32Array([val.length]).buffer);\n bytes.set(bytesOfLength, offset);\n offset += NUM_BYTES_STRING_LENGTH;\n bytes.set(val, offset);\n offset += val.length;\n }\n resolve(bytes);\n });\n dataPromises.push(utf8bytes);\n } else {\n dataPromises.push(t.data());\n }\n if (group != null) {\n spec.group = group;\n }\n specs.push(spec);\n }\n\n const tensorValues = await Promise.all(dataPromises);\n return {data: concatenateTypedArrays(tensorValues), specs};\n}\n\n/**\n * Decode flat ArrayBuffer as weights.\n *\n * This function does not handle sharding.\n *\n * This function is the reverse of `encodeWeights`.\n *\n * @param buffer A flat ArrayBuffer carrying the binary values of the tensors\n * concatenated in the order specified in `specs`.\n * @param specs Specifications of the names, dtypes and shapes of the tensors\n * whose value are encoded by `buffer`.\n * @return A map from tensor name to tensor value, with the names corresponding\n * to names in `specs`.\n * @throws Error, if any of the tensors has unsupported dtype.\n */\nexport function decodeWeights(\n buffer: ArrayBuffer, specs: WeightsManifestEntry[]): NamedTensorMap {\n // TODO(adarob, cais): Support quantization.\n const out: NamedTensorMap = {};\n let float16Decode: (buffer: Uint16Array) => Float32Array | undefined;\n let offset = 0;\n for (const spec of specs) {\n const name = spec.name;\n const dtype = spec.dtype;\n const shape = spec.shape;\n const size = sizeFromShape(shape);\n let values: TypedArray|string[]|Uint8Array[];\n\n if ('quantization' in spec) {\n const quantization = spec.quantization;\n if (quantization.dtype === 'uint8' || quantization.dtype === 'uint16') {\n if (!('min' in quantization && 'scale' in quantization)) {\n throw new Error(\n `Weight ${spec.name} with quantization ${quantization.dtype} ` +\n `doesn't have corresponding metadata min and scale.`);\n }\n } else if (quantization.dtype === 'float16') {\n if (dtype !== 'float32') {\n throw new Error(\n `Weight ${spec.name} is quantized with ${quantization.dtype} ` +\n `which only supports weights of type float32 not ${dtype}.`);\n }\n } else {\n throw new Error(\n `Weight ${spec.name} has unknown ` +\n `quantization dtype ${quantization.dtype}. ` +\n `Supported quantization dtypes are: ` +\n `'uint8', 'uint16', and 'float16'.`);\n }\n const quantizationSizeFactor = DTYPE_VALUE_SIZE_MAP[quantization.dtype];\n const byteBuffer =\n buffer.slice(offset, offset + size * quantizationSizeFactor);\n const quantizedArray = (quantization.dtype === 'uint8') ?\n new Uint8Array(byteBuffer) :\n new Uint16Array(byteBuffer);\n if (dtype === 'float32') {\n if (quantization.dtype === 'uint8' || quantization.dtype === 'uint16') {\n values = new Float32Array(quantizedArray.length);\n for (let i = 0; i < quantizedArray.length; i++) {\n const v = quantizedArray[i];\n values[i] = v * quantization.scale + quantization.min;\n }\n } else if (quantization.dtype === 'float16') {\n if (float16Decode === undefined) {\n float16Decode = getFloat16Decoder();\n }\n values = float16Decode(quantizedArray as Uint16Array);\n } else {\n throw new Error(\n `Unsupported quantization type ${quantization.dtype} ` +\n `for weight type float32.`);\n }\n } else if (dtype === 'int32') {\n if (quantization.dtype !== 'uint8' && quantization.dtype !== 'uint16') {\n throw new Error(\n `Unsupported quantization type ${quantization.dtype} ` +\n `for weight type int32.`);\n }\n values = new Int32Array(quantizedArray.length);\n for (let i = 0; i < quantizedArray.length; i++) {\n const v = quantizedArray[i];\n values[i] = Math.round(v * quantization.scale + quantization.min);\n }\n } else {\n throw new Error(`Unsupported dtype in weight '${name}': ${dtype}`);\n }\n offset += size * quantizationSizeFactor;\n } else if (dtype === 'string') {\n const size = sizeFromShape(spec.shape);\n values = [];\n for (let i = 0; i < size; i++) {\n const byteLength = new Uint32Array(\n buffer.slice(offset, offset + NUM_BYTES_STRING_LENGTH))[0];\n offset += NUM_BYTES_STRING_LENGTH;\n const bytes = new Uint8Array(buffer.slice(offset, offset + byteLength));\n (values as Uint8Array[]).push(bytes);\n offset += byteLength;\n }\n } else {\n const dtypeFactor = DTYPE_VALUE_SIZE_MAP[dtype];\n const byteBuffer = buffer.slice(offset, offset + size * dtypeFactor);\n\n if (dtype === 'float32') {\n values = new Float32Array(byteBuffer);\n } else if (dtype === 'int32') {\n values = new Int32Array(byteBuffer);\n } else if (dtype === 'bool') {\n values = new Uint8Array(byteBuffer);\n } else if (dtype === 'complex64') {\n values = new Float32Array(byteBuffer);\n const real = new Float32Array(values.length / 2);\n const image = new Float32Array(values.length / 2);\n for (let i = 0; i < real.length; i++) {\n real[i] = values[i * 2];\n image[i] = values[i * 2 + 1];\n }\n const realTensor = tensor(real, shape, 'float32');\n const imageTensor = tensor(image, shape, 'float32');\n out[name] = complex(realTensor, imageTensor);\n realTensor.dispose();\n imageTensor.dispose();\n } else {\n throw new Error(`Unsupported dtype in weight '${name}': ${dtype}`);\n }\n offset += size * dtypeFactor;\n }\n if (dtype !== 'complex64') {\n out[name] = tensor(values, shape, dtype);\n }\n }\n return out;\n}\n\n/**\n * Concatenate TypedArrays into an ArrayBuffer.\n */\nexport function concatenateTypedArrays(xs: TypedArray[]): ArrayBuffer {\n // TODO(adarob, cais): Support quantization.\n if (xs === null) {\n throw new Error(`Invalid input value: ${JSON.stringify(xs)}`);\n }\n\n let totalByteLength = 0;\n\n // `normalizedXs` is here for this reason: a `TypedArray`'s `buffer'\n // can have a different byte length from that of the `TypedArray` itself,\n // for example, when the `TypedArray` is created from an offset in an\n // `ArrayBuffer`. `normliazedXs` holds `TypedArray`s whose `buffer`s match\n // the `TypedArray` in byte length. If an element of `xs` does not show\n // this property, a new `TypedArray` that satisfy this property will be\n // constructed and pushed into `normalizedXs`.\n const normalizedXs: TypedArray[] = [];\n xs.forEach((x: TypedArray) => {\n totalByteLength += x.byteLength;\n // tslint:disable:no-any\n normalizedXs.push(\n x.byteLength === x.buffer.byteLength ? x :\n new (x.constructor as any)(x));\n if (!(x as any instanceof Float32Array || x as any instanceof Int32Array ||\n x as any instanceof Uint8Array)) {\n throw new Error(`Unsupported TypedArray subtype: ${x.constructor.name}`);\n }\n // tslint:enable:no-any\n });\n\n const y = new Uint8Array(totalByteLength);\n let offset = 0;\n normalizedXs.forEach((x: TypedArray) => {\n y.set(new Uint8Array(x.buffer), offset);\n offset += x.byteLength;\n });\n\n return y.buffer;\n}\n\n// Use Buffer on Node.js instead of Blob/atob/btoa\nconst useNodeBuffer = typeof Buffer !== 'undefined' &&\n (typeof Blob === 'undefined' || typeof atob === 'undefined' ||\n typeof btoa === 'undefined');\n\n/**\n * Calculate the byte length of a JavaScript string.\n *\n * Note that a JavaScript string can contain wide characters, therefore the\n * length of the string is not necessarily equal to the byte length.\n *\n * @param str Input string.\n * @returns Byte length.\n */\nexport function stringByteLength(str: string): number {\n if (useNodeBuffer) {\n return Buffer.byteLength(str);\n }\n return new Blob([str]).size;\n}\n\n/**\n * Encode an ArrayBuffer as a base64 encoded string.\n *\n * @param buffer `ArrayBuffer` to be converted.\n * @returns A string that base64-encodes `buffer`.\n */\nexport function arrayBufferToBase64String(buffer: ArrayBuffer): string {\n if (useNodeBuffer) {\n return Buffer.from(buffer).toString('base64');\n }\n const buf = new Uint8Array(buffer);\n let s = '';\n for (let i = 0, l = buf.length; i < l; i++) {\n s += String.fromCharCode(buf[i]);\n }\n return btoa(s);\n}\n\n/**\n * Decode a base64 string as an ArrayBuffer.\n *\n * @param str Base64 string.\n * @returns Decoded `ArrayBuffer`.\n */\nexport function base64StringToArrayBuffer(str: string): ArrayBuffer {\n if (useNodeBuffer) {\n const buf = Buffer.from(str, 'base64');\n return buf.buffer.slice(buf.byteOffset, buf.byteOffset + buf.byteLength);\n }\n const s = atob(str);\n const buffer = new Uint8Array(s.length);\n for (let i = 0; i < s.length; ++i) {\n buffer.set([s.charCodeAt(i)], i);\n }\n return buffer.buffer;\n}\n\n/**\n * Concatenate a number of ArrayBuffers into one.\n *\n * @param buffers A number of array buffers to concatenate.\n * @returns Result of concatenating `buffers` in order.\n */\nexport function concatenateArrayBuffers(buffers: ArrayBuffer[]): ArrayBuffer {\n if (buffers.length === 1) {\n return buffers[0];\n }\n\n let totalByteLength = 0;\n buffers.forEach((buffer: ArrayBuffer) => {\n totalByteLength += buffer.byteLength;\n });\n\n const temp = new Uint8Array(totalByteLength);\n let offset = 0;\n buffers.forEach((buffer: ArrayBuffer) => {\n temp.set(new Uint8Array(buffer), offset);\n offset += buffer.byteLength;\n });\n return temp.buffer;\n}\n\n/**\n * Get the basename of a path.\n *\n * Behaves in a way analogous to Linux's basename command.\n *\n * @param path\n */\nexport function basename(path: string): string {\n const SEPARATOR = '/';\n path = path.trim();\n while (path.endsWith(SEPARATOR)) {\n path = path.slice(0, path.length - 1);\n }\n const items = path.split(SEPARATOR);\n return items[items.length - 1];\n}\n\n/**\n * Populate ModelArtifactsInfo fields for a model with JSON topology.\n * @param modelArtifacts\n * @returns A ModelArtifactsInfo object.\n */\nexport function getModelArtifactsInfoForJSON(modelArtifacts: ModelArtifacts):\n ModelArtifactsInfo {\n if (modelArtifacts.modelTopology instanceof ArrayBuffer) {\n throw new Error('Expected JSON model topology, received ArrayBuffer.');\n }\n\n return {\n dateSaved: new Date(),\n modelTopologyType: 'JSON',\n modelTopologyBytes: modelArtifacts.modelTopology == null ?\n 0 :\n stringByteLength(JSON.stringify(modelArtifacts.modelTopology)),\n weightSpecsBytes: modelArtifacts.weightSpecs == null ?\n 0 :\n stringByteLength(JSON.stringify(modelArtifacts.weightSpecs)),\n weightDataBytes: modelArtifacts.weightData == null ?\n 0 :\n modelArtifacts.weightData.byteLength,\n };\n}\n\n/**\n * Computes mantisa table for casting Float16 to Float32\n * See http://www.fox-toolkit.org/ftp/fasthalffloatconversion.pdf\n *\n * @returns Uint32Array, 2048 mantissa lookup values.\n */\nfunction computeFloat16MantisaTable(): Uint32Array {\n const convertMantissa = (i: number): number => {\n let m = i << 13;\n let e = 0;\n\n while ((m & 0x00800000) === 0) {\n e -= 0x00800000;\n m <<= 1;\n }\n m &= ~0x00800000;\n e += 0x38800000;\n\n return m | e;\n };\n\n const mantisaTable = new Uint32Array(2048);\n\n mantisaTable[0] = 0;\n for (let i = 1; i < 1024; i++) {\n mantisaTable[i] = convertMantissa(i);\n }\n for (let i = 1024; i < 2048; i++) {\n mantisaTable[i] = 0x38000000 + ((i - 1024) << 13);\n }\n\n return mantisaTable;\n}\n\n/**\n * Computes exponent table for casting Float16 to Float32\n * See http://www.fox-toolkit.org/ftp/fasthalffloatconversion.pdf\n *\n * @returns Uint32Array, 64 exponent lookup values.\n */\nfunction computeFloat16ExponentTable(): Uint32Array {\n const exponentTable = new Uint32Array(64);\n\n exponentTable[0] = 0;\n exponentTable[31] = 0x47800000;\n exponentTable[32] = 0x80000000;\n exponentTable[63] = 0xc7800000;\n for (let i = 1; i < 31; i++) {\n exponentTable[i] = i << 23;\n }\n for (let i = 33; i < 63; i++) {\n exponentTable[i] = 0x80000000 + ((i - 32) << 23);\n }\n\n return exponentTable;\n}\n\n/**\n * Computes offset table for casting Float16 to Float32\n * See http://www.fox-toolkit.org/ftp/fasthalffloatconversion.pdf\n *\n * @returns Uint32Array, 6d offset values.\n */\nfunction computeFloat16OffsetTable(): Uint32Array {\n const offsetTable = new Uint32Array(64);\n\n for (let i = 0; i < 64; i++) {\n offsetTable[i] = 1024;\n }\n offsetTable[0] = offsetTable[32] = 0;\n\n return offsetTable;\n}\n\n/**\n * Retrieve a Float16 decoder which will decode a ByteArray of Float16 values\n * to a Float32Array.\n *\n * @returns Function (buffer: Uint16Array) => Float32Array which decodes\n * the Uint16Array of Float16 bytes to a Float32Array.\n */\nexport function getFloat16Decoder(): (buffer: Uint16Array) => Float32Array {\n // Algorithm is based off of\n // http://www.fox-toolkit.org/ftp/fasthalffloatconversion.pdf\n\n // Cache lookup tables\n const mantisaTable = computeFloat16MantisaTable();\n const exponentTable = computeFloat16ExponentTable();\n const offsetTable = computeFloat16OffsetTable();\n\n return (quantizedArray: Uint16Array) => {\n const buffer = new ArrayBuffer(4 * quantizedArray.length);\n const bufferUint32View = new Uint32Array(buffer);\n for (let index = 0; index < quantizedArray.length; index++) {\n const float16Bits = quantizedArray[index];\n const float32Bits =\n mantisaTable[offsetTable[float16Bits >> 10] + (float16Bits & 0x3ff)] +\n exponentTable[float16Bits >> 10];\n bufferUint32View[index] = float32Bits;\n }\n return new Float32Array(buffer);\n };\n}\n", "/**\n * @license\n * Copyright 2018 Google LLC. 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 *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\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 * =============================================================================\n */\n\nimport {IOHandler, LoadOptions} from './types';\n\nexport type IORouter = (url: string|string[], loadOptions?: LoadOptions) =>\n IOHandler;\n\nexport class IORouterRegistry {\n // Singleton instance.\n private static instance: IORouterRegistry;\n\n private saveRouters: IORouter[];\n private loadRouters: IORouter[];\n\n private constructor() {\n this.saveRouters = [];\n this.loadRouters = [];\n }\n\n private static getInstance(): IORouterRegistry {\n if (IORouterRegistry.instance == null) {\n IORouterRegistry.instance = new IORouterRegistry();\n }\n return IORouterRegistry.instance;\n }\n\n /**\n * Register a save-handler router.\n *\n * @param saveRouter A function that maps a URL-like string onto an instance\n * of `IOHandler` with the `save` method defined or `null`.\n */\n static registerSaveRouter(saveRouter: IORouter) {\n IORouterRegistry.getInstance().saveRouters.push(saveRouter);\n }\n\n /**\n * Register a load-handler router.\n *\n * @param loadRouter A function that maps a URL-like string onto an instance\n * of `IOHandler` with the `load` method defined or `null`.\n */\n static registerLoadRouter(loadRouter: IORouter) {\n IORouterRegistry.getInstance().loadRouters.push(loadRouter);\n }\n\n /**\n * Look up IOHandler for saving, given a URL-like string.\n *\n * @param url\n * @returns If only one match is found, an instance of IOHandler with the\n * `save` method defined. If no match is found, `null`.\n * @throws Error, if more than one match is found.\n */\n static getSaveHandlers(url: string|string[]): IOHandler[] {\n return IORouterRegistry.getHandlers(url, 'save');\n }\n\n /**\n * Look up IOHandler for loading, given a URL-like string.\n *\n * @param url\n * @param loadOptions Optional, custom load options.\n * @returns All valid handlers for `url`, given the currently registered\n * handler routers.\n */\n static getLoadHandlers(url: string|string[], loadOptions?: LoadOptions):\n IOHandler[] {\n return IORouterRegistry.getHandlers(url, 'load', loadOptions);\n }\n\n private static getHandlers(\n url: string|string[], handlerType: 'save'|'load',\n loadOptions?: LoadOptions): IOHandler[] {\n const validHandlers: IOHandler[] = [];\n const routers = handlerType === 'load' ?\n IORouterRegistry.getInstance().loadRouters :\n IORouterRegistry.getInstance().saveRouters;\n routers.forEach(router => {\n const handler = router(url, loadOptions);\n if (handler !== null) {\n validHandlers.push(handler);\n }\n });\n return validHandlers;\n }\n}\n\nexport const registerSaveRouter = (loudRouter: IORouter) =>\n IORouterRegistry.registerSaveRouter(loudRouter);\nexport const registerLoadRouter = (loudRouter: IORouter) =>\n IORouterRegistry.registerLoadRouter(loudRouter);\nexport const getSaveHandlers = (url: string|string[]) =>\n IORouterRegistry.getSaveHandlers(url);\nexport const getLoadHandlers =\n (url: string|string[], loadOptions?: LoadOptions) =>\n IORouterRegistry.getLoadHandlers(url, loadOptions);\n", "/**\n * @license\n * Copyright 2018 Google LLC. 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 *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\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 * =============================================================================\n */\n\nimport '../flags';\n\nimport {env} from '../environment';\n\nimport {getModelArtifactsInfoForJSON} from './io_utils';\nimport {IORouter, IORouterRegistry} from './router_registry';\nimport {IOHandler, ModelArtifacts, ModelArtifactsInfo, ModelStoreManager, SaveResult} from './types';\n\nconst DATABASE_NAME = 'tensorflowjs';\nconst DATABASE_VERSION = 1;\n\n// Model data and ModelArtifactsInfo (metadata) are stored in two separate\n// stores for efficient access of the list of stored models and their metadata.\n// 1. The object store for model data: topology, weights and weight manifests.\nconst MODEL_STORE_NAME = 'models_store';\n// 2. The object store for ModelArtifactsInfo, including meta-information such\n// as the type of topology (JSON vs binary), byte size of the topology, byte\n// size of the weights, etc.\nconst INFO_STORE_NAME = 'model_info_store';\n\n/**\n * Delete the entire database for tensorflow.js, including the models store.\n */\nexport async function deleteDatabase(): Promise {\n const idbFactory = getIndexedDBFactory();\n\n return new Promise((resolve, reject) => {\n const deleteRequest = idbFactory.deleteDatabase(DATABASE_NAME);\n deleteRequest.onsuccess = () => resolve();\n deleteRequest.onerror = error => reject(error);\n });\n}\n\nfunction getIndexedDBFactory(): IDBFactory {\n if (!env().getBool('IS_BROWSER')) {\n // TODO(cais): Add more info about what IOHandler subtypes are available.\n // Maybe point to a doc page on the web and/or automatically determine\n // the available IOHandlers and print them in the error message.\n throw new Error(\n 'Failed to obtain IndexedDB factory because the current environment' +\n 'is not a web browser.');\n }\n // tslint:disable-next-line:no-any\n const theWindow: any = typeof window === 'undefined' ? self : window;\n const factory = theWindow.indexedDB || theWindow.mozIndexedDB ||\n theWindow.webkitIndexedDB || theWindow.msIndexedDB ||\n theWindow.shimIndexedDB;\n if (factory == null) {\n throw new Error(\n 'The current browser does not appear to support IndexedDB.');\n }\n return factory;\n}\n\nfunction setUpDatabase(openRequest: IDBRequest) {\n const db = openRequest.result as IDBDatabase;\n db.createObjectStore(MODEL_STORE_NAME, {keyPath: 'modelPath'});\n db.createObjectStore(INFO_STORE_NAME, {keyPath: 'modelPath'});\n}\n\n/**\n * IOHandler subclass: Browser IndexedDB.\n *\n * See the doc string of `browserIndexedDB` for more details.\n */\nexport class BrowserIndexedDB implements IOHandler {\n protected readonly indexedDB: IDBFactory;\n protected readonly modelPath: string;\n\n static readonly URL_SCHEME = 'indexeddb://';\n\n constructor(modelPath: string) {\n this.indexedDB = getIndexedDBFactory();\n\n if (modelPath == null || !modelPath) {\n throw new Error(\n 'For IndexedDB, modelPath must not be null, undefined or empty.');\n }\n this.modelPath = modelPath;\n }\n\n async save(modelArtifacts: ModelArtifacts): Promise {\n // TODO(cais): Support saving GraphDef models.\n if (modelArtifacts.modelTopology instanceof ArrayBuffer) {\n throw new Error(\n 'BrowserLocalStorage.save() does not support saving model topology ' +\n 'in binary formats yet.');\n }\n\n return this.databaseAction(this.modelPath, modelArtifacts) as\n Promise;\n }\n\n async load(): Promise {\n return this.databaseAction(this.modelPath) as Promise;\n }\n\n /**\n * Perform database action to put model artifacts into or read model artifacts\n * from IndexedDB object store.\n *\n * Whether the action is put or get depends on whether `modelArtifacts` is\n * specified. If it is specified, the action will be put; otherwise the action\n * will be get.\n *\n * @param modelPath A unique string path for the model.\n * @param modelArtifacts If specified, it will be the model artifacts to be\n * stored in IndexedDB.\n * @returns A `Promise` of `SaveResult`, if the action is put, or a `Promise`\n * of `ModelArtifacts`, if the action is get.\n */\n private databaseAction(modelPath: string, modelArtifacts?: ModelArtifacts):\n Promise {\n return new Promise((resolve, reject) => {\n const openRequest = this.indexedDB.open(DATABASE_NAME, DATABASE_VERSION);\n openRequest.onupgradeneeded = () => setUpDatabase(openRequest);\n\n openRequest.onsuccess = () => {\n const db = openRequest.result;\n\n if (modelArtifacts == null) {\n // Read model out from object store.\n const modelTx = db.transaction(MODEL_STORE_NAME, 'readonly');\n const modelStore = modelTx.objectStore(MODEL_STORE_NAME);\n const getRequest = modelStore.get(this.modelPath);\n getRequest.onsuccess = () => {\n if (getRequest.result == null) {\n db.close();\n return reject(new Error(\n `Cannot find model with path '${this.modelPath}' ` +\n `in IndexedDB.`));\n } else {\n resolve(getRequest.result.modelArtifacts);\n }\n };\n getRequest.onerror = error => {\n db.close();\n return reject(getRequest.error);\n };\n modelTx.oncomplete = () => db.close();\n } else {\n // Put model into object store.\n const modelArtifactsInfo: ModelArtifactsInfo =\n getModelArtifactsInfoForJSON(modelArtifacts);\n // First, put ModelArtifactsInfo into info store.\n const infoTx = db.transaction(INFO_STORE_NAME, 'readwrite');\n let infoStore = infoTx.objectStore(INFO_STORE_NAME);\n const putInfoRequest =\n infoStore.put({modelPath: this.modelPath, modelArtifactsInfo});\n let modelTx: IDBTransaction;\n putInfoRequest.onsuccess = () => {\n // Second, put model data into model store.\n modelTx = db.transaction(MODEL_STORE_NAME, 'readwrite');\n const modelStore = modelTx.objectStore(MODEL_STORE_NAME);\n const putModelRequest = modelStore.put({\n modelPath: this.modelPath,\n modelArtifacts,\n modelArtifactsInfo\n });\n putModelRequest.onsuccess = () => resolve({modelArtifactsInfo});\n putModelRequest.onerror = error => {\n // If the put-model request fails, roll back the info entry as\n // well.\n infoStore = infoTx.objectStore(INFO_STORE_NAME);\n const deleteInfoRequest = infoStore.delete(this.modelPath);\n deleteInfoRequest.onsuccess = () => {\n db.close();\n return reject(putModelRequest.error);\n };\n deleteInfoRequest.onerror = error => {\n db.close();\n return reject(putModelRequest.error);\n };\n };\n };\n putInfoRequest.onerror = error => {\n db.close();\n return reject(putInfoRequest.error);\n };\n infoTx.oncomplete = () => {\n if (modelTx == null) {\n db.close();\n } else {\n modelTx.oncomplete = () => db.close();\n }\n };\n }\n };\n openRequest.onerror = error => reject(openRequest.error);\n });\n }\n}\n\nexport const indexedDBRouter: IORouter = (url: string|string[]) => {\n if (!env().getBool('IS_BROWSER')) {\n return null;\n } else {\n if (!Array.isArray(url) && url.startsWith(BrowserIndexedDB.URL_SCHEME)) {\n return browserIndexedDB(url.slice(BrowserIndexedDB.URL_SCHEME.length));\n } else {\n return null;\n }\n }\n};\nIORouterRegistry.registerSaveRouter(indexedDBRouter);\nIORouterRegistry.registerLoadRouter(indexedDBRouter);\n\n/**\n * Creates a browser IndexedDB IOHandler for saving and loading models.\n *\n * ```js\n * const model = tf.sequential();\n * model.add(\n * tf.layers.dense({units: 1, inputShape: [100], activation: 'sigmoid'}));\n *\n * const saveResult = await model.save('indexeddb://MyModel'));\n * console.log(saveResult);\n * ```\n *\n * @param modelPath A unique identifier for the model to be saved. Must be a\n * non-empty string.\n * @returns An instance of `BrowserIndexedDB` (sublcass of `IOHandler`),\n * which can be used with, e.g., `tf.Model.save`.\n */\nexport function browserIndexedDB(modelPath: string): IOHandler {\n return new BrowserIndexedDB(modelPath);\n}\n\nfunction maybeStripScheme(key: string) {\n return key.startsWith(BrowserIndexedDB.URL_SCHEME) ?\n key.slice(BrowserIndexedDB.URL_SCHEME.length) :\n key;\n}\n\nexport class BrowserIndexedDBManager implements ModelStoreManager {\n private indexedDB: IDBFactory;\n\n constructor() {\n this.indexedDB = getIndexedDBFactory();\n }\n\n async listModels(): Promise<{[path: string]: ModelArtifactsInfo}> {\n return new Promise<{[path: string]: ModelArtifactsInfo}>(\n (resolve, reject) => {\n const openRequest =\n this.indexedDB.open(DATABASE_NAME, DATABASE_VERSION);\n openRequest.onupgradeneeded = () => setUpDatabase(openRequest);\n\n openRequest.onsuccess = () => {\n const db = openRequest.result;\n const tx = db.transaction(INFO_STORE_NAME, 'readonly');\n const store = tx.objectStore(INFO_STORE_NAME);\n // tslint:disable:max-line-length\n // Need to cast `store` as `any` here because TypeScript's DOM\n // library does not have the `getAll()` method even though the\n // method is supported in the latest version of most mainstream\n // browsers:\n // https://developer.mozilla.org/en-US/docs/Web/API/IDBObjectStore/getAll\n // tslint:enable:max-line-length\n // tslint:disable-next-line:no-any\n const getAllInfoRequest = (store as any).getAll() as IDBRequest;\n getAllInfoRequest.onsuccess = () => {\n const out: {[path: string]: ModelArtifactsInfo} = {};\n for (const item of getAllInfoRequest.result) {\n out[item.modelPath] = item.modelArtifactsInfo;\n }\n resolve(out);\n };\n getAllInfoRequest.onerror = error => {\n db.close();\n return reject(getAllInfoRequest.error);\n };\n tx.oncomplete = () => db.close();\n };\n openRequest.onerror = error => reject(openRequest.error);\n });\n }\n\n async removeModel(path: string): Promise {\n path = maybeStripScheme(path);\n return new Promise((resolve, reject) => {\n const openRequest = this.indexedDB.open(DATABASE_NAME, DATABASE_VERSION);\n openRequest.onupgradeneeded = () => setUpDatabase(openRequest);\n\n openRequest.onsuccess = () => {\n const db = openRequest.result;\n const infoTx = db.transaction(INFO_STORE_NAME, 'readwrite');\n const infoStore = infoTx.objectStore(INFO_STORE_NAME);\n\n const getInfoRequest = infoStore.get(path);\n let modelTx: IDBTransaction;\n getInfoRequest.onsuccess = () => {\n if (getInfoRequest.result == null) {\n db.close();\n return reject(new Error(\n `Cannot find model with path '${path}' ` +\n `in IndexedDB.`));\n } else {\n // First, delete the entry in the info store.\n const deleteInfoRequest = infoStore.delete(path);\n const deleteModelData = () => {\n // Second, delete the entry in the model store.\n modelTx = db.transaction(MODEL_STORE_NAME, 'readwrite');\n const modelStore = modelTx.objectStore(MODEL_STORE_NAME);\n const deleteModelRequest = modelStore.delete(path);\n deleteModelRequest.onsuccess = () =>\n resolve(getInfoRequest.result.modelArtifactsInfo);\n deleteModelRequest.onerror = error =>\n reject(getInfoRequest.error);\n };\n // Proceed with deleting model data regardless of whether deletion\n // of info data succeeds or not.\n deleteInfoRequest.onsuccess = deleteModelData;\n deleteInfoRequest.onerror = error => {\n deleteModelData();\n db.close();\n return reject(getInfoRequest.error);\n };\n }\n };\n getInfoRequest.onerror = error => {\n db.close();\n return reject(getInfoRequest.error);\n };\n\n infoTx.oncomplete = () => {\n if (modelTx == null) {\n db.close();\n } else {\n modelTx.oncomplete = () => db.close();\n }\n };\n };\n openRequest.onerror = error => reject(openRequest.error);\n });\n }\n}\n", "/**\n * @license\n * Copyright 2018 Google LLC. 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 *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\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 * =============================================================================\n */\n\nimport '../flags';\nimport {env} from '../environment';\n\nimport {assert} from '../util';\nimport {arrayBufferToBase64String, base64StringToArrayBuffer, getModelArtifactsInfoForJSON} from './io_utils';\nimport {IORouter, IORouterRegistry} from './router_registry';\nimport {IOHandler, ModelArtifacts, ModelArtifactsInfo, ModelStoreManager, SaveResult} from './types';\n\nconst PATH_SEPARATOR = '/';\nconst PATH_PREFIX = 'tensorflowjs_models';\nconst INFO_SUFFIX = 'info';\nconst MODEL_TOPOLOGY_SUFFIX = 'model_topology';\nconst WEIGHT_SPECS_SUFFIX = 'weight_specs';\nconst WEIGHT_DATA_SUFFIX = 'weight_data';\nconst MODEL_METADATA_SUFFIX = 'model_metadata';\n\n/**\n * Purge all tensorflow.js-saved model artifacts from local storage.\n *\n * @returns Paths of the models purged.\n */\nexport function purgeLocalStorageArtifacts(): string[] {\n if (!env().getBool('IS_BROWSER') || typeof window === 'undefined' ||\n typeof window.localStorage === 'undefined') {\n throw new Error(\n 'purgeLocalStorageModels() cannot proceed because local storage is ' +\n 'unavailable in the current environment.');\n }\n const LS = window.localStorage;\n const purgedModelPaths: string[] = [];\n for (let i = 0; i < LS.length; ++i) {\n const key = LS.key(i);\n const prefix = PATH_PREFIX + PATH_SEPARATOR;\n if (key.startsWith(prefix) && key.length > prefix.length) {\n LS.removeItem(key);\n const modelName = getModelPathFromKey(key);\n if (purgedModelPaths.indexOf(modelName) === -1) {\n purgedModelPaths.push(modelName);\n }\n }\n }\n return purgedModelPaths;\n}\n\nfunction getModelKeys(path: string): {\n info: string,\n topology: string,\n weightSpecs: string,\n weightData: string,\n modelMetadata: string\n} {\n return {\n info: [PATH_PREFIX, path, INFO_SUFFIX].join(PATH_SEPARATOR),\n topology: [PATH_PREFIX, path, MODEL_TOPOLOGY_SUFFIX].join(PATH_SEPARATOR),\n weightSpecs: [PATH_PREFIX, path, WEIGHT_SPECS_SUFFIX].join(PATH_SEPARATOR),\n weightData: [PATH_PREFIX, path, WEIGHT_DATA_SUFFIX].join(PATH_SEPARATOR),\n modelMetadata:\n [PATH_PREFIX, path, MODEL_METADATA_SUFFIX].join(PATH_SEPARATOR)\n };\n}\n\n/**\n * Get model path from a local-storage key.\n *\n * E.g., 'tensorflowjs_models/my/model/1/info' --> 'my/model/1'\n *\n * @param key\n */\nfunction getModelPathFromKey(key: string) {\n const items = key.split(PATH_SEPARATOR);\n if (items.length < 3) {\n throw new Error(`Invalid key format: ${key}`);\n }\n return items.slice(1, items.length - 1).join(PATH_SEPARATOR);\n}\n\nfunction maybeStripScheme(key: string) {\n return key.startsWith(BrowserLocalStorage.URL_SCHEME) ?\n key.slice(BrowserLocalStorage.URL_SCHEME.length) :\n key;\n}\n\ndeclare type LocalStorageKeys = {\n info: string,\n topology: string,\n weightSpecs: string,\n weightData: string,\n modelMetadata: string\n};\n\n/**\n * IOHandler subclass: Browser Local Storage.\n *\n * See the doc string to `browserLocalStorage` for more details.\n */\nexport class BrowserLocalStorage implements IOHandler {\n protected readonly LS: Storage;\n protected readonly modelPath: string;\n protected readonly keys: LocalStorageKeys;\n\n static readonly URL_SCHEME = 'localstorage://';\n\n constructor(modelPath: string) {\n if (!env().getBool('IS_BROWSER') || typeof window === 'undefined' ||\n typeof window.localStorage === 'undefined') {\n // TODO(cais): Add more info about what IOHandler subtypes are\n // available.\n // Maybe point to a doc page on the web and/or automatically determine\n // the available IOHandlers and print them in the error message.\n throw new Error(\n 'The current environment does not support local storage.');\n }\n this.LS = window.localStorage;\n\n if (modelPath == null || !modelPath) {\n throw new Error(\n 'For local storage, modelPath must not be null, undefined or empty.');\n }\n this.modelPath = modelPath;\n this.keys = getModelKeys(this.modelPath);\n }\n\n /**\n * Save model artifacts to browser local storage.\n *\n * See the documentation to `browserLocalStorage` for details on the saved\n * artifacts.\n *\n * @param modelArtifacts The model artifacts to be stored.\n * @returns An instance of SaveResult.\n */\n async save(modelArtifacts: ModelArtifacts): Promise {\n if (modelArtifacts.modelTopology instanceof ArrayBuffer) {\n throw new Error(\n 'BrowserLocalStorage.save() does not support saving model topology ' +\n 'in binary formats yet.');\n } else {\n const topology = JSON.stringify(modelArtifacts.modelTopology);\n const weightSpecs = JSON.stringify(modelArtifacts.weightSpecs);\n\n const modelArtifactsInfo: ModelArtifactsInfo =\n getModelArtifactsInfoForJSON(modelArtifacts);\n\n try {\n this.LS.setItem(this.keys.info, JSON.stringify(modelArtifactsInfo));\n this.LS.setItem(this.keys.topology, topology);\n this.LS.setItem(this.keys.weightSpecs, weightSpecs);\n this.LS.setItem(\n this.keys.weightData,\n arrayBufferToBase64String(modelArtifacts.weightData));\n this.LS.setItem(this.keys.modelMetadata, JSON.stringify({\n format: modelArtifacts.format,\n generatedBy: modelArtifacts.generatedBy,\n convertedBy: modelArtifacts.convertedBy,\n userDefinedMetadata: modelArtifacts.userDefinedMetadata\n }));\n\n return {modelArtifactsInfo};\n } catch (err) {\n // If saving failed, clean up all items saved so far.\n this.LS.removeItem(this.keys.info);\n this.LS.removeItem(this.keys.topology);\n this.LS.removeItem(this.keys.weightSpecs);\n this.LS.removeItem(this.keys.weightData);\n this.LS.removeItem(this.keys.modelMetadata);\n\n throw new Error(\n `Failed to save model '${this.modelPath}' to local storage: ` +\n `size quota being exceeded is a possible cause of this failure: ` +\n `modelTopologyBytes=${modelArtifactsInfo.modelTopologyBytes}, ` +\n `weightSpecsBytes=${modelArtifactsInfo.weightSpecsBytes}, ` +\n `weightDataBytes=${modelArtifactsInfo.weightDataBytes}.`);\n }\n }\n }\n\n /**\n * Load a model from local storage.\n *\n * See the documentation to `browserLocalStorage` for details on the saved\n * artifacts.\n *\n * @returns The loaded model (if loading succeeds).\n */\n async load(): Promise {\n const info =\n JSON.parse(this.LS.getItem(this.keys.info)) as ModelArtifactsInfo;\n if (info == null) {\n throw new Error(\n `In local storage, there is no model with name '${this.modelPath}'`);\n }\n\n if (info.modelTopologyType !== 'JSON') {\n throw new Error(\n 'BrowserLocalStorage does not support loading non-JSON model ' +\n 'topology yet.');\n }\n\n const out: ModelArtifacts = {};\n\n // Load topology.\n const topology = JSON.parse(this.LS.getItem(this.keys.topology));\n if (topology == null) {\n throw new Error(\n `In local storage, the topology of model '${this.modelPath}' ` +\n `is missing.`);\n }\n out.modelTopology = topology;\n\n // Load weight specs.\n const weightSpecs = JSON.parse(this.LS.getItem(this.keys.weightSpecs));\n if (weightSpecs == null) {\n throw new Error(\n `In local storage, the weight specs of model '${this.modelPath}' ` +\n `are missing.`);\n }\n out.weightSpecs = weightSpecs;\n\n // Load meta-data fields.\n const metadataString = this.LS.getItem(this.keys.modelMetadata);\n if (metadataString != null) {\n const metadata = JSON.parse(metadataString) as ModelArtifacts;\n out.format = metadata['format'];\n out.generatedBy = metadata['generatedBy'];\n out.convertedBy = metadata['convertedBy'];\n out.userDefinedMetadata = metadata['userDefinedMetadata'];\n }\n\n // Load weight data.\n const weightDataBase64 = this.LS.getItem(this.keys.weightData);\n if (weightDataBase64 == null) {\n throw new Error(\n `In local storage, the binary weight values of model ` +\n `'${this.modelPath}' are missing.`);\n }\n out.weightData = base64StringToArrayBuffer(weightDataBase64);\n\n return out;\n }\n}\n\nexport const localStorageRouter: IORouter = (url: string|string[]) => {\n if (!env().getBool('IS_BROWSER')) {\n return null;\n } else {\n if (!Array.isArray(url) && url.startsWith(BrowserLocalStorage.URL_SCHEME)) {\n return browserLocalStorage(\n url.slice(BrowserLocalStorage.URL_SCHEME.length));\n } else {\n return null;\n }\n }\n};\nIORouterRegistry.registerSaveRouter(localStorageRouter);\nIORouterRegistry.registerLoadRouter(localStorageRouter);\n\n/**\n * Factory function for local storage IOHandler.\n *\n * This `IOHandler` supports both `save` and `load`.\n *\n * For each model's saved artifacts, four items are saved to local storage.\n * - `${PATH_SEPARATOR}/${modelPath}/info`: Contains meta-info about the\n * model, such as date saved, type of the topology, size in bytes, etc.\n * - `${PATH_SEPARATOR}/${modelPath}/topology`: Model topology. For Keras-\n * style models, this is a stringized JSON.\n * - `${PATH_SEPARATOR}/${modelPath}/weight_specs`: Weight specs of the\n * model, can be used to decode the saved binary weight values (see\n * item below).\n * - `${PATH_SEPARATOR}/${modelPath}/weight_data`: Concatenated binary\n * weight values, stored as a base64-encoded string.\n *\n * Saving may throw an `Error` if the total size of the artifacts exceed the\n * browser-specific quota.\n *\n * @param modelPath A unique identifier for the model to be saved. Must be a\n * non-empty string.\n * @returns An instance of `IOHandler`, which can be used with, e.g.,\n * `tf.Model.save`.\n */\nexport function browserLocalStorage(modelPath: string): IOHandler {\n return new BrowserLocalStorage(modelPath);\n}\n\nexport class BrowserLocalStorageManager implements ModelStoreManager {\n private readonly LS: Storage;\n\n constructor() {\n assert(\n env().getBool('IS_BROWSER'),\n () => 'Current environment is not a web browser');\n assert(\n typeof window === 'undefined' ||\n typeof window.localStorage !== 'undefined',\n () => 'Current browser does not appear to support localStorage');\n this.LS = window.localStorage;\n }\n\n async listModels(): Promise<{[path: string]: ModelArtifactsInfo}> {\n const out: {[path: string]: ModelArtifactsInfo} = {};\n const prefix = PATH_PREFIX + PATH_SEPARATOR;\n const suffix = PATH_SEPARATOR + INFO_SUFFIX;\n for (let i = 0; i < this.LS.length; ++i) {\n const key = this.LS.key(i);\n if (key.startsWith(prefix) && key.endsWith(suffix)) {\n const modelPath = getModelPathFromKey(key);\n out[modelPath] = JSON.parse(this.LS.getItem(key)) as ModelArtifactsInfo;\n }\n }\n return out;\n }\n\n async removeModel(path: string): Promise {\n path = maybeStripScheme(path);\n const keys = getModelKeys(path);\n if (this.LS.getItem(keys.info) == null) {\n throw new Error(`Cannot find model at path '${path}'`);\n }\n const info = JSON.parse(this.LS.getItem(keys.info)) as ModelArtifactsInfo;\n\n this.LS.removeItem(keys.info);\n this.LS.removeItem(keys.topology);\n this.LS.removeItem(keys.weightSpecs);\n this.LS.removeItem(keys.weightData);\n return info;\n }\n}\n", "/**\n * @license\n * Copyright 2018 Google LLC. 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 *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\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 * =============================================================================\n */\n\n/**\n * Classes and functions for model management across multiple storage mediums.\n *\n * Supported client actions:\n * - Listing models on all registered storage mediums.\n * - Remove model by URL from any registered storage mediums, by using URL\n * string.\n * - Moving or copying model from one path to another in the same medium or from\n * one medium to another, by using URL strings.\n */\n\nimport {assert} from '../util';\n\nimport {IORouterRegistry} from './router_registry';\nimport {ModelArtifactsInfo, ModelStoreManager} from './types';\n\nconst URL_SCHEME_SUFFIX = '://';\n\nexport class ModelStoreManagerRegistry {\n // Singleton instance.\n private static instance: ModelStoreManagerRegistry;\n\n private managers: {[scheme: string]: ModelStoreManager};\n\n private constructor() {\n this.managers = {};\n }\n\n private static getInstance(): ModelStoreManagerRegistry {\n if (ModelStoreManagerRegistry.instance == null) {\n ModelStoreManagerRegistry.instance = new ModelStoreManagerRegistry();\n }\n return ModelStoreManagerRegistry.instance;\n }\n\n /**\n * Register a save-handler router.\n *\n * @param saveRouter A function that maps a URL-like string onto an instance\n * of `IOHandler` with the `save` method defined or `null`.\n */\n static registerManager(scheme: string, manager: ModelStoreManager) {\n assert(scheme != null, () => 'scheme must not be undefined or null.');\n if (scheme.endsWith(URL_SCHEME_SUFFIX)) {\n scheme = scheme.slice(0, scheme.indexOf(URL_SCHEME_SUFFIX));\n }\n assert(scheme.length > 0, () => 'scheme must not be an empty string.');\n const registry = ModelStoreManagerRegistry.getInstance();\n assert(\n registry.managers[scheme] == null,\n () => `A model store manager is already registered for scheme '${\n scheme}'.`);\n registry.managers[scheme] = manager;\n }\n\n static getManager(scheme: string): ModelStoreManager {\n const manager = this.getInstance().managers[scheme];\n if (manager == null) {\n throw new Error(`Cannot find model manager for scheme '${scheme}'`);\n }\n return manager;\n }\n\n static getSchemes(): string[] {\n return Object.keys(this.getInstance().managers);\n }\n}\n\n/**\n * Helper method for parsing a URL string into a scheme and a path.\n *\n * @param url E.g., 'localstorage://my-model'\n * @returns A dictionary with two fields: scheme and path.\n * Scheme: e.g., 'localstorage' in the example above.\n * Path: e.g., 'my-model' in the example above.\n */\nfunction parseURL(url: string): {scheme: string, path: string} {\n if (url.indexOf(URL_SCHEME_SUFFIX) === -1) {\n throw new Error(\n `The url string provided does not contain a scheme. ` +\n `Supported schemes are: ` +\n `${ModelStoreManagerRegistry.getSchemes().join(',')}`);\n }\n return {\n scheme: url.split(URL_SCHEME_SUFFIX)[0],\n path: url.split(URL_SCHEME_SUFFIX)[1],\n };\n}\n\nasync function cloneModelInternal(\n sourceURL: string, destURL: string,\n deleteSource = false): Promise {\n assert(\n sourceURL !== destURL,\n () => `Old path and new path are the same: '${sourceURL}'`);\n\n const loadHandlers = IORouterRegistry.getLoadHandlers(sourceURL);\n assert(\n loadHandlers.length > 0,\n () => `Copying failed because no load handler is found for source URL ${\n sourceURL}.`);\n assert(\n loadHandlers.length < 2,\n () => `Copying failed because more than one (${loadHandlers.length}) ` +\n `load handlers for source URL ${sourceURL}.`);\n const loadHandler = loadHandlers[0];\n\n const saveHandlers = IORouterRegistry.getSaveHandlers(destURL);\n assert(\n saveHandlers.length > 0,\n () => `Copying failed because no save handler is found for destination ` +\n `URL ${destURL}.`);\n assert(\n saveHandlers.length < 2,\n () => `Copying failed because more than one (${loadHandlers.length}) ` +\n `save handlers for destination URL ${destURL}.`);\n const saveHandler = saveHandlers[0];\n\n const sourceScheme = parseURL(sourceURL).scheme;\n const sourcePath = parseURL(sourceURL).path;\n const sameMedium = sourceScheme === parseURL(sourceURL).scheme;\n\n const modelArtifacts = await loadHandler.load();\n\n // If moving within the same storage medium, remove the old model as soon as\n // the loading is done. Without doing this, it is possible that the combined\n // size of the two models will cause the cloning to fail.\n if (deleteSource && sameMedium) {\n await ModelStoreManagerRegistry.getManager(sourceScheme)\n .removeModel(sourcePath);\n }\n\n const saveResult = await saveHandler.save(modelArtifacts);\n\n // If moving between mediums, the deletion is done after the save succeeds.\n // This guards against the case in which saving to the destination medium\n // fails.\n if (deleteSource && !sameMedium) {\n await ModelStoreManagerRegistry.getManager(sourceScheme)\n .removeModel(sourcePath);\n }\n\n return saveResult.modelArtifactsInfo;\n}\n\n/**\n * List all models stored in registered storage mediums.\n *\n * For a web browser environment, the registered mediums are Local Storage and\n * IndexedDB.\n *\n * ```js\n * // First create and save a model.\n * const model = tf.sequential();\n * model.add(tf.layers.dense(\n * {units: 1, inputShape: [10], activation: 'sigmoid'}));\n * await model.save('localstorage://demo/management/model1');\n *\n * // Then list existing models.\n * console.log(JSON.stringify(await tf.io.listModels()));\n *\n * // Delete the model.\n * await tf.io.removeModel('localstorage://demo/management/model1');\n *\n * // List models again.\n * console.log(JSON.stringify(await tf.io.listModels()));\n * ```\n *\n * @returns A `Promise` of a dictionary mapping URLs of existing models to\n * their model artifacts info. URLs include medium-specific schemes, e.g.,\n * 'indexeddb://my/model/1'. Model artifacts info include type of the\n * model's topology, byte sizes of the topology, weights, etc.\n *\n * @doc {\n * heading: 'Models',\n * subheading: 'Management',\n * namespace: 'io',\n * ignoreCI: true\n * }\n */\nasync function listModels(): Promise<{[url: string]: ModelArtifactsInfo}> {\n const schemes = ModelStoreManagerRegistry.getSchemes();\n const out: {[url: string]: ModelArtifactsInfo} = {};\n for (const scheme of schemes) {\n const schemeOut =\n await ModelStoreManagerRegistry.getManager(scheme).listModels();\n for (const path in schemeOut) {\n const url = scheme + URL_SCHEME_SUFFIX + path;\n out[url] = schemeOut[path];\n }\n }\n return out;\n}\n\n/**\n * Remove a model specified by URL from a reigstered storage medium.\n *\n * ```js\n * // First create and save a model.\n * const model = tf.sequential();\n * model.add(tf.layers.dense(\n * {units: 1, inputShape: [10], activation: 'sigmoid'}));\n * await model.save('localstorage://demo/management/model1');\n *\n * // Then list existing models.\n * console.log(JSON.stringify(await tf.io.listModels()));\n *\n * // Delete the model.\n * await tf.io.removeModel('localstorage://demo/management/model1');\n *\n * // List models again.\n * console.log(JSON.stringify(await tf.io.listModels()));\n * ```\n *\n * @param url A URL to a stored model, with a scheme prefix, e.g.,\n * 'localstorage://my-model-1', 'indexeddb://my/model/2'.\n * @returns ModelArtifactsInfo of the deleted model (if and only if deletion\n * is successful).\n * @throws Error if deletion fails, e.g., if no model exists at `path`.\n *\n * @doc {\n * heading: 'Models',\n * subheading: 'Management',\n * namespace: 'io',\n * ignoreCI: true\n * }\n */\nasync function removeModel(url: string): Promise {\n const schemeAndPath = parseURL(url);\n const manager = ModelStoreManagerRegistry.getManager(schemeAndPath.scheme);\n return manager.removeModel(schemeAndPath.path);\n}\n\n/**\n * Copy a model from one URL to another.\n *\n * This function supports:\n *\n * 1. Copying within a storage medium, e.g.,\n * `tf.io.copyModel('localstorage://model-1', 'localstorage://model-2')`\n * 2. Copying between two storage mediums, e.g.,\n * `tf.io.copyModel('localstorage://model-1', 'indexeddb://model-1')`\n *\n * ```js\n * // First create and save a model.\n * const model = tf.sequential();\n * model.add(tf.layers.dense(\n * {units: 1, inputShape: [10], activation: 'sigmoid'}));\n * await model.save('localstorage://demo/management/model1');\n *\n * // Then list existing models.\n * console.log(JSON.stringify(await tf.io.listModels()));\n *\n * // Copy the model, from Local Storage to IndexedDB.\n * await tf.io.copyModel(\n * 'localstorage://demo/management/model1',\n * 'indexeddb://demo/management/model1');\n *\n * // List models again.\n * console.log(JSON.stringify(await tf.io.listModels()));\n *\n * // Remove both models.\n * await tf.io.removeModel('localstorage://demo/management/model1');\n * await tf.io.removeModel('indexeddb://demo/management/model1');\n * ```\n *\n * @param sourceURL Source URL of copying.\n * @param destURL Destination URL of copying.\n * @returns ModelArtifactsInfo of the copied model (if and only if copying\n * is successful).\n * @throws Error if copying fails, e.g., if no model exists at `sourceURL`, or\n * if `oldPath` and `newPath` are identical.\n *\n * @doc {\n * heading: 'Models',\n * subheading: 'Management',\n * namespace: 'io',\n * ignoreCI: true\n * }\n */\nasync function copyModel(\n sourceURL: string, destURL: string): Promise {\n const deleteSource = false;\n return cloneModelInternal(sourceURL, destURL, deleteSource);\n}\n\n/**\n * Move a model from one URL to another.\n *\n * This function supports:\n *\n * 1. Moving within a storage medium, e.g.,\n * `tf.io.moveModel('localstorage://model-1', 'localstorage://model-2')`\n * 2. Moving between two storage mediums, e.g.,\n * `tf.io.moveModel('localstorage://model-1', 'indexeddb://model-1')`\n *\n * ```js\n * // First create and save a model.\n * const model = tf.sequential();\n * model.add(tf.layers.dense(\n * {units: 1, inputShape: [10], activation: 'sigmoid'}));\n * await model.save('localstorage://demo/management/model1');\n *\n * // Then list existing models.\n * console.log(JSON.stringify(await tf.io.listModels()));\n *\n * // Move the model, from Local Storage to IndexedDB.\n * await tf.io.moveModel(\n * 'localstorage://demo/management/model1',\n * 'indexeddb://demo/management/model1');\n *\n * // List models again.\n * console.log(JSON.stringify(await tf.io.listModels()));\n *\n * // Remove the moved model.\n * await tf.io.removeModel('indexeddb://demo/management/model1');\n * ```\n *\n * @param sourceURL Source URL of moving.\n * @param destURL Destination URL of moving.\n * @returns ModelArtifactsInfo of the copied model (if and only if copying\n * is successful).\n * @throws Error if moving fails, e.g., if no model exists at `sourceURL`, or\n * if `oldPath` and `newPath` are identical.\n *\n * @doc {\n * heading: 'Models',\n * subheading: 'Management',\n * namespace: 'io',\n * ignoreCI: true\n * }\n */\nasync function moveModel(\n sourceURL: string, destURL: string): Promise {\n const deleteSource = true;\n return cloneModelInternal(sourceURL, destURL, deleteSource);\n}\n\nexport {moveModel, copyModel, removeModel, listModels};\n", "/**\n * @license\n * Copyright 2019 Google LLC. 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 *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\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 * =============================================================================\n */\n\nimport '../flags';\n\nimport {env} from '../environment';\nimport {BrowserIndexedDB, BrowserIndexedDBManager} from '../io/indexed_db';\nimport {BrowserLocalStorage, BrowserLocalStorageManager} from '../io/local_storage';\nimport {ModelStoreManagerRegistry} from '../io/model_management';\n\nimport {Platform} from './platform';\n\nexport class PlatformBrowser implements Platform {\n // According to the spec, the built-in encoder can do only UTF-8 encoding.\n // https://developer.mozilla.org/en-US/docs/Web/API/TextEncoder/TextEncoder\n private textEncoder: TextEncoder;\n\n fetch(path: string, init?: RequestInit): Promise {\n return fetch(path, init);\n }\n\n now(): number {\n return performance.now();\n }\n\n encode(text: string, encoding: string): Uint8Array {\n if (encoding !== 'utf-8' && encoding !== 'utf8') {\n throw new Error(\n `Browser's encoder only supports utf-8, but got ${encoding}`);\n }\n if (this.textEncoder == null) {\n this.textEncoder = new TextEncoder();\n }\n return this.textEncoder.encode(text);\n }\n decode(bytes: Uint8Array, encoding: string): string {\n return new TextDecoder(encoding).decode(bytes);\n }\n}\n\nif (env().get('IS_BROWSER')) {\n env().setPlatform('browser', new PlatformBrowser());\n\n // Register LocalStorage IOHandler\n try {\n ModelStoreManagerRegistry.registerManager(\n BrowserLocalStorage.URL_SCHEME, new BrowserLocalStorageManager());\n } catch (err) {\n }\n\n // Register IndexedDB IOHandler\n try {\n ModelStoreManagerRegistry.registerManager(\n BrowserIndexedDB.URL_SCHEME, new BrowserIndexedDBManager());\n } catch (err) {\n }\n}\n", "/**\n * @license\n * Copyright 2019 Google LLC. 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 *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\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 * =============================================================================\n */\nimport {env} from '../environment';\n\nimport {Platform} from './platform';\n\n// We are wrapping this within an object so it can be stubbed by Jasmine.\nexport const getNodeFetch = {\n // tslint:disable-next-line:no-require-imports\n importFetch: () => require('node-fetch')\n};\n\ntype FetchFn = (url: string, init?: RequestInit) => Promise;\nlet systemFetch: FetchFn;\n// These getters and setters are for testing so we don't export a mutable\n// variable.\nexport function resetSystemFetch() {\n systemFetch = null;\n}\nexport function setSystemFetch(fetchFn: FetchFn) {\n systemFetch = fetchFn;\n}\nexport function getSystemFetch(): FetchFn {\n return systemFetch;\n}\n\nexport class PlatformNode implements Platform {\n private textEncoder: TextEncoder;\n // tslint:disable-next-line:no-any\n util: any;\n\n constructor() {\n // tslint:disable-next-line:no-require-imports\n this.util = require('util');\n // According to the spec, the built-in encoder can do only UTF-8 encoding.\n // https://developer.mozilla.org/en-US/docs/Web/API/TextEncoder/TextEncoder\n this.textEncoder = new this.util.TextEncoder();\n }\n\n fetch(path: string, requestInits?: RequestInit): Promise {\n if (env().global.fetch != null) {\n return env().global.fetch(path, requestInits);\n }\n\n if (systemFetch == null) {\n systemFetch = getNodeFetch.importFetch();\n }\n return systemFetch(path, requestInits);\n }\n\n now(): number {\n const time = process.hrtime();\n return time[0] * 1000 + time[1] / 1000000;\n }\n\n encode(text: string, encoding: string): Uint8Array {\n if (encoding !== 'utf-8' && encoding !== 'utf8') {\n throw new Error(\n `Node built-in encoder only supports utf-8, but got ${encoding}`);\n }\n return this.textEncoder.encode(text);\n }\n decode(bytes: Uint8Array, encoding: string): string {\n if (bytes.length === 0) {\n return '';\n }\n return new this.util.TextDecoder(encoding).decode(bytes);\n }\n}\n\nif (env().get('IS_NODE')) {\n env().setPlatform('node', new PlatformNode());\n}\n", "/**\n * @license\n * Copyright 2020 Google Inc. 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 *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\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 * =============================================================================\n */\n\nimport {TensorBuffer} from '../tensor';\nimport {DataType, DataTypeMap, Rank, ShapeMap} from '../types';\nimport * as util from '../util';\n\n/**\n * Creates an empty `tf.TensorBuffer` with the specified `shape` and `dtype`.\n *\n * The values are stored in CPU as `TypedArray`. Fill the buffer using\n * `buffer.set()`, or by modifying directly `buffer.values`.\n *\n * When done, call `buffer.toTensor()` to get an immutable `tf.Tensor` with\n * those values.\n *\n * ```js\n * // Create a buffer and set values at particular indices.\n * const buffer = tf.buffer([2, 2]);\n * buffer.set(3, 0, 0);\n * buffer.set(5, 1, 0);\n *\n * // Convert the buffer back to a tensor.\n * buffer.toTensor().print();\n * ```\n *\n * @param shape An array of integers defining the output tensor shape.\n * @param dtype The dtype of the buffer. Defaults to 'float32'.\n * @param values The values of the buffer as `TypedArray`. Defaults to\n * zeros.\n *\n * @doc {heading: 'Tensors', subheading: 'Creation'}\n */\nexport function buffer(\n shape: ShapeMap[R], dtype: D = 'float32' as D,\n values?: DataTypeMap[D]): TensorBuffer {\n dtype = dtype || 'float32' as D;\n util.assertNonNegativeIntegerDimensions(shape);\n return new TensorBuffer(shape, dtype, values);\n}\n", "/**\n * @license\n * Copyright 2020 Google Inc. 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 *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\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 * =============================================================================\n */\nimport {ENGINE} from '../engine';\nimport {Cast, CastAttrs, CastInputs} from '../kernel_names';\nimport {NamedAttrMap} from '../kernel_registry';\nimport {Tensor} from '../tensor';\nimport {NamedTensorMap} from '../tensor_types';\nimport {convertToTensor} from '../tensor_util_env';\nimport {DataType, TensorLike} from '../types';\nimport * as util from '../util';\n\nimport {op} from './operation';\n\n/**\n * Casts a `tf.Tensor` to a new dtype.\n *\n * ```js\n * const x = tf.tensor1d([1.5, 2.5, 3]);\n * tf.cast(x, 'int32').print();\n * ```\n * @param x The input tensor to be casted.\n * @param dtype The dtype to cast the input tensor to.\n *\n * @doc {heading: 'Tensors', subheading: 'Transformations'}\n */\nfunction cast_(x: T|TensorLike, dtype: DataType): T {\n const $x = convertToTensor(x, 'x', 'cast');\n\n // Sanity checks.\n if (!util.isValidDtype(dtype)) {\n throw new Error(`Failed to cast to unknown dtype ${dtype}`);\n }\n if (dtype === 'string' && $x.dtype !== 'string' ||\n dtype !== 'string' && $x.dtype === 'string') {\n throw new Error('Only strings can be casted to strings');\n }\n\n const inputs: CastInputs = {x: $x};\n const attrs: CastAttrs = {dtype};\n\n return ENGINE.runKernelFunc(\n backend => backend.cast($x, dtype), inputs as {} as NamedTensorMap,\n null /* grad */, Cast, attrs as {} as NamedAttrMap);\n}\n\nexport const cast = op({cast_});\n", "/**\n * @license\n * Copyright 2020 Google LLC. 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 *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\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 * =============================================================================\n */\n\nimport {ENGINE} from '../engine';\nimport {Identity, IdentityInputs} from '../kernel_names';\nimport {Tensor} from '../tensor';\nimport {NamedTensorMap} from '../tensor_types';\nimport {convertToTensor} from '../tensor_util_env';\nimport {TensorLike} from '../types';\n\nimport {op} from './operation';\n\n/**\n * Creates a new tensor with the same values and shape as the specified\n * tensor.\n *\n * ```js\n * const x = tf.tensor([1, 2]);\n *\n * x.clone().print();\n * ```\n *\n * @param x The tensor to clone.\n *\n * @doc {heading: 'Tensors', subheading: 'Creation'}\n */\nfunction clone_(x: T|TensorLike): T {\n const $x = convertToTensor(x, 'x', 'clone', null);\n const forward = () =>\n ENGINE.makeTensorFromDataId($x.dataId, $x.shape, $x.dtype) as T;\n\n const inputs: IdentityInputs = {x: $x};\n\n // Note this op is called tf.identity in python. Hence the kernel name used\n // here.\n return ENGINE.runKernelFunc(\n forward, inputs as {} as NamedTensorMap, null /* grad */, Identity);\n}\n\nexport const clone = op({clone_});\n", "/**\n * @license\n * Copyright 2020 Google Inc. 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 *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\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 * =============================================================================\n */\n\nimport {Tensor} from '../tensor';\n\n/**\n * Prints information about the `tf.Tensor` including its data.\n *\n * ```js\n * const verbose = true;\n * tf.tensor2d([1, 2, 3, 4], [2, 2]).print(verbose);\n * ```\n * @param x The tensor to be printed.\n * @param verbose Whether to print verbose information about the ` Tensor`,\n * including dtype and size.\n *\n * @doc {heading: 'Tensors', subheading: 'Creation'}\n */\nexport function print(x: T, verbose = false): void {\n console.log(x.toString(verbose));\n}\n", "/**\n * @license\n * Copyright 2020 Google Inc. 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 *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\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 * =============================================================================\n */\n\n// Required side effectful code for tfjs-core\n\n// Set up Engine and ENV\nimport {getOrMakeEngine} from './engine';\ngetOrMakeEngine();\n\n// Register backend-agnostic flags.\nimport './flags';\n// Register platforms\nimport './platforms/platform_browser';\nimport './platforms/platform_node';\n\n// Set up OpHandler\nimport {buffer} from './ops/buffer';\nimport {cast} from './ops/cast';\nimport {clone} from './ops/clone';\nimport {print} from './ops/print';\nimport {OpHandler, setOpHandler} from './tensor';\nconst opHandler: OpHandler = {\n buffer,\n cast,\n clone,\n print\n};\nsetOpHandler(opHandler);\n", "/**\n * @license\n * Copyright 2018 Google LLC. 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 *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\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 * =============================================================================\n */\n\n/**\n * IOHandlers related to files, such as browser-triggered file downloads,\n * user-selected files in browser.\n */\n\nimport '../flags';\nimport {env} from '../environment';\n\nimport {basename, concatenateArrayBuffers, getModelArtifactsInfoForJSON} from './io_utils';\nimport {IORouter, IORouterRegistry} from './router_registry';\nimport {IOHandler, ModelArtifacts, ModelJSON, SaveResult, WeightsManifestConfig, WeightsManifestEntry} from './types';\n\nconst DEFAULT_FILE_NAME_PREFIX = 'model';\nconst DEFAULT_JSON_EXTENSION_NAME = '.json';\nconst DEFAULT_WEIGHT_DATA_EXTENSION_NAME = '.weights.bin';\n\nfunction defer(f: () => T): Promise {\n return new Promise(resolve => setTimeout(resolve)).then(f);\n}\n\nexport class BrowserDownloads implements IOHandler {\n private readonly modelTopologyFileName: string;\n private readonly weightDataFileName: string;\n private readonly jsonAnchor: HTMLAnchorElement;\n private readonly weightDataAnchor: HTMLAnchorElement;\n\n static readonly URL_SCHEME = 'downloads://';\n\n constructor(fileNamePrefix?: string) {\n if (!env().getBool('IS_BROWSER')) {\n // TODO(cais): Provide info on what IOHandlers are available under the\n // current environment.\n throw new Error(\n 'browserDownloads() cannot proceed because the current environment ' +\n 'is not a browser.');\n }\n\n if (fileNamePrefix.startsWith(BrowserDownloads.URL_SCHEME)) {\n fileNamePrefix = fileNamePrefix.slice(BrowserDownloads.URL_SCHEME.length);\n }\n if (fileNamePrefix == null || fileNamePrefix.length === 0) {\n fileNamePrefix = DEFAULT_FILE_NAME_PREFIX;\n }\n\n this.modelTopologyFileName = fileNamePrefix + DEFAULT_JSON_EXTENSION_NAME;\n this.weightDataFileName =\n fileNamePrefix + DEFAULT_WEIGHT_DATA_EXTENSION_NAME;\n }\n\n async save(modelArtifacts: ModelArtifacts): Promise {\n if (typeof (document) === 'undefined') {\n throw new Error(\n 'Browser downloads are not supported in ' +\n 'this environment since `document` is not present');\n }\n const weightsURL = window.URL.createObjectURL(new Blob(\n [modelArtifacts.weightData], {type: 'application/octet-stream'}));\n\n if (modelArtifacts.modelTopology instanceof ArrayBuffer) {\n throw new Error(\n 'BrowserDownloads.save() does not support saving model topology ' +\n 'in binary formats yet.');\n } else {\n const weightsManifest: WeightsManifestConfig = [{\n paths: ['./' + this.weightDataFileName],\n weights: modelArtifacts.weightSpecs\n }];\n const modelTopologyAndWeightManifest: ModelJSON = {\n modelTopology: modelArtifacts.modelTopology,\n format: modelArtifacts.format,\n generatedBy: modelArtifacts.generatedBy,\n convertedBy: modelArtifacts.convertedBy,\n weightsManifest\n };\n const modelTopologyAndWeightManifestURL =\n window.URL.createObjectURL(new Blob(\n [JSON.stringify(modelTopologyAndWeightManifest)],\n {type: 'application/json'}));\n\n // If anchor elements are not provided, create them without attaching them\n // to parents, so that the downloaded file names can be controlled.\n const jsonAnchor = this.jsonAnchor == null ? document.createElement('a') :\n this.jsonAnchor;\n jsonAnchor.download = this.modelTopologyFileName;\n jsonAnchor.href = modelTopologyAndWeightManifestURL;\n // Trigger downloads by evoking a click event on the download anchors.\n // When multiple downloads are started synchronously, Firefox will only\n // save the last one.\n await defer(() => jsonAnchor.dispatchEvent(new MouseEvent('click')));\n\n if (modelArtifacts.weightData != null) {\n const weightDataAnchor = this.weightDataAnchor == null ?\n document.createElement('a') :\n this.weightDataAnchor;\n weightDataAnchor.download = this.weightDataFileName;\n weightDataAnchor.href = weightsURL;\n await defer(\n () => weightDataAnchor.dispatchEvent(new MouseEvent('click')));\n }\n\n return {modelArtifactsInfo: getModelArtifactsInfoForJSON(modelArtifacts)};\n }\n }\n}\n\nclass BrowserFiles implements IOHandler {\n private readonly files: File[];\n\n constructor(files: File[]) {\n if (files == null || files.length < 1) {\n throw new Error(\n `When calling browserFiles, at least 1 file is required, ` +\n `but received ${files}`);\n }\n this.files = files;\n }\n\n async load(): Promise {\n const jsonFile = this.files[0];\n const weightFiles = this.files.slice(1);\n\n return new Promise((resolve, reject) => {\n const jsonReader = new FileReader();\n jsonReader.onload = (event: Event) => {\n // tslint:disable-next-line:no-any\n const modelJSON = JSON.parse((event.target as any).result) as ModelJSON;\n const modelTopology = modelJSON.modelTopology;\n if (modelTopology == null) {\n reject(new Error(\n `modelTopology field is missing from file ${jsonFile.name}`));\n return;\n }\n\n if (weightFiles.length === 0) {\n resolve({modelTopology});\n }\n\n const weightsManifest = modelJSON.weightsManifest;\n if (weightsManifest == null) {\n reject(new Error(\n `weightManifest field is missing from file ${jsonFile.name}`));\n return;\n }\n\n let pathToFile: {[path: string]: File};\n try {\n pathToFile =\n this.checkManifestAndWeightFiles(weightsManifest, weightFiles);\n } catch (err) {\n reject(err);\n return;\n }\n\n const weightSpecs: WeightsManifestEntry[] = [];\n const paths: string[] = [];\n const perFileBuffers: ArrayBuffer[] = [];\n weightsManifest.forEach(weightsGroup => {\n weightsGroup.paths.forEach(path => {\n paths.push(path);\n perFileBuffers.push(null);\n });\n weightSpecs.push(...weightsGroup.weights);\n });\n\n weightsManifest.forEach(weightsGroup => {\n weightsGroup.paths.forEach(path => {\n const weightFileReader = new FileReader();\n weightFileReader.onload = (event: Event) => {\n // tslint:disable-next-line:no-any\n const weightData = (event.target as any).result as ArrayBuffer;\n const index = paths.indexOf(path);\n perFileBuffers[index] = weightData;\n if (perFileBuffers.indexOf(null) === -1) {\n resolve({\n modelTopology,\n weightSpecs,\n weightData: concatenateArrayBuffers(perFileBuffers),\n format: modelJSON.format,\n generatedBy: modelJSON.generatedBy,\n convertedBy: modelJSON.convertedBy,\n userDefinedMetadata: modelJSON.userDefinedMetadata\n });\n }\n };\n weightFileReader.onerror = error =>\n reject(`Failed to weights data from file of path '${path}'.`);\n weightFileReader.readAsArrayBuffer(pathToFile[path]);\n });\n });\n };\n jsonReader.onerror = error => reject(\n `Failed to read model topology and weights manifest JSON ` +\n `from file '${jsonFile.name}'. BrowserFiles supports loading ` +\n `Keras-style tf.Model artifacts only.`);\n jsonReader.readAsText(jsonFile);\n });\n }\n\n /**\n * Check the compatibility between weights manifest and weight files.\n */\n private checkManifestAndWeightFiles(\n manifest: WeightsManifestConfig, files: File[]): {[path: string]: File} {\n const basenames: string[] = [];\n const fileNames = files.map(file => basename(file.name));\n const pathToFile: {[path: string]: File} = {};\n for (const group of manifest) {\n group.paths.forEach(path => {\n const pathBasename = basename(path);\n if (basenames.indexOf(pathBasename) !== -1) {\n throw new Error(\n `Duplicate file basename found in weights manifest: ` +\n `'${pathBasename}'`);\n }\n basenames.push(pathBasename);\n if (fileNames.indexOf(pathBasename) === -1) {\n throw new Error(\n `Weight file with basename '${pathBasename}' is not provided.`);\n } else {\n pathToFile[path] = files[fileNames.indexOf(pathBasename)];\n }\n });\n }\n\n if (basenames.length !== files.length) {\n throw new Error(\n `Mismatch in the number of files in weights manifest ` +\n `(${basenames.length}) and the number of weight files provided ` +\n `(${files.length}).`);\n }\n return pathToFile;\n }\n}\n\nexport const browserDownloadsRouter: IORouter = (url: string|string[]) => {\n if (!env().getBool('IS_BROWSER')) {\n return null;\n } else {\n if (!Array.isArray(url) && url.startsWith(BrowserDownloads.URL_SCHEME)) {\n return browserDownloads(url.slice(BrowserDownloads.URL_SCHEME.length));\n } else {\n return null;\n }\n }\n};\nIORouterRegistry.registerSaveRouter(browserDownloadsRouter);\n\n/**\n * Creates an IOHandler that triggers file downloads from the browser.\n *\n * The returned `IOHandler` instance can be used as model exporting methods such\n * as `tf.Model.save` and supports only saving.\n *\n * ```js\n * const model = tf.sequential();\n * model.add(tf.layers.dense(\n * {units: 1, inputShape: [10], activation: 'sigmoid'}));\n * const saveResult = await model.save('downloads://mymodel');\n * // This will trigger downloading of two files:\n * // 'mymodel.json' and 'mymodel.weights.bin'.\n * console.log(saveResult);\n * ```\n *\n * @param fileNamePrefix Prefix name of the files to be downloaded. For use with\n * `tf.Model`, `fileNamePrefix` should follow either of the following two\n * formats:\n * 1. `null` or `undefined`, in which case the default file\n * names will be used:\n * - 'model.json' for the JSON file containing the model topology and\n * weights manifest.\n * - 'model.weights.bin' for the binary file containing the binary weight\n * values.\n * 2. A single string or an Array of a single string, as the file name prefix.\n * For example, if `'foo'` is provided, the downloaded JSON\n * file and binary weights file will be named 'foo.json' and\n * 'foo.weights.bin', respectively.\n * @param config Additional configuration for triggering downloads.\n * @returns An instance of `BrowserDownloads` `IOHandler`.\n *\n * @doc {\n * heading: 'Models',\n * subheading: 'Loading',\n * namespace: 'io',\n * ignoreCI: true\n * }\n */\nexport function browserDownloads(fileNamePrefix = 'model'): IOHandler {\n return new BrowserDownloads(fileNamePrefix);\n}\n\n/**\n * Creates an IOHandler that loads model artifacts from user-selected files.\n *\n * This method can be used for loading from files such as user-selected files\n * in the browser.\n * When used in conjunction with `tf.loadLayersModel`, an instance of\n * `tf.LayersModel` (Keras-style) can be constructed from the loaded artifacts.\n *\n * ```js\n * // Note: This code snippet won't run properly without the actual file input\n * // elements in the HTML DOM.\n *\n * // Suppose there are two HTML file input (``)\n * // elements.\n * const uploadJSONInput = document.getElementById('upload-json');\n * const uploadWeightsInput = document.getElementById('upload-weights');\n * const model = await tf.loadLayersModel(tf.io.browserFiles(\n * [uploadJSONInput.files[0], uploadWeightsInput.files[0]]));\n * ```\n *\n * @param files `File`s to load from. Currently, this function supports only\n * loading from files that contain Keras-style models (i.e., `tf.Model`s), for\n * which an `Array` of `File`s is expected (in that order):\n * - A JSON file containing the model topology and weight manifest.\n * - Optionally, One or more binary files containing the binary weights.\n * These files must have names that match the paths in the `weightsManifest`\n * contained by the aforementioned JSON file, or errors will be thrown\n * during loading. These weights files have the same format as the ones\n * generated by `tensorflowjs_converter` that comes with the `tensorflowjs`\n * Python PIP package. If no weights files are provided, only the model\n * topology will be loaded from the JSON file above.\n * @returns An instance of `Files` `IOHandler`.\n *\n * @doc {\n * heading: 'Models',\n * subheading: 'Loading',\n * namespace: 'io',\n * ignoreCI: true\n * }\n */\nexport function browserFiles(files: File[]): IOHandler {\n return new BrowserFiles(files);\n}\n", "/**\n * @license\n * Copyright 2019 Google LLC. 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 *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\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 * =============================================================================\n */\n\nimport {assert} from '../util';\n\nimport {OnProgressCallback} from './types';\n\n/**\n * Monitor Promise.all progress, fire onProgress callback function.\n *\n * @param promises Promise list going to be monitored\n * @param onProgress Callback function. Fired when a promise resolved.\n * @param startFraction Optional fraction start. Default to 0.\n * @param endFraction Optional fraction end. Default to 1.\n */\nexport function monitorPromisesProgress(\n promises: Array>, onProgress: OnProgressCallback,\n startFraction?: number, endFraction?: number) {\n checkPromises(promises);\n startFraction = startFraction == null ? 0 : startFraction;\n endFraction = endFraction == null ? 1 : endFraction;\n checkFraction(startFraction, endFraction);\n let resolvedPromise = 0;\n\n const registerMonitor = (promise: Promise<{}>) => {\n promise.then(value => {\n const fraction = startFraction +\n ++resolvedPromise / promises.length * (endFraction - startFraction);\n // pass fraction as parameter to callback function.\n onProgress(fraction);\n return value;\n });\n return promise;\n };\n\n function checkPromises(promises: Array>): void {\n assert(\n promises != null && Array.isArray(promises) && promises.length > 0,\n () => 'promises must be a none empty array');\n }\n\n function checkFraction(startFraction: number, endFraction: number): void {\n assert(\n startFraction >= 0 && startFraction <= 1,\n () => `Progress fraction must be in range [0, 1], but ` +\n `got startFraction ${startFraction}`);\n assert(\n endFraction >= 0 && endFraction <= 1,\n () => `Progress fraction must be in range [0, 1], but ` +\n `got endFraction ${endFraction}`);\n assert(\n endFraction >= startFraction,\n () => `startFraction must be no more than endFraction, but ` +\n `got startFraction ${startFraction} and endFraction ` +\n `${endFraction}`);\n }\n\n return Promise.all(promises.map(registerMonitor));\n}\n", "/**\n * @license\n * Copyright 2018 Google LLC. 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 *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\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 * =============================================================================\n */\n\nimport {env} from '../environment';\n\nimport {NamedTensorMap} from '../tensor_types';\nimport * as util from '../util';\nimport {decodeWeights} from './io_utils';\nimport {monitorPromisesProgress} from './progress';\nimport {DTYPE_VALUE_SIZE_MAP, LoadOptions, WeightsManifestConfig, WeightsManifestEntry} from './types';\n\n/**\n * Reads binary weights data from a number of URLs.\n *\n * @param fetchURLs URLs to send the HTTP requests at, using `fetch` calls.\n * @param requestOptions RequestInit (options) for the HTTP requests.\n * @param fetchFunc Optional overriding value for the `window.fetch` function.\n * @param onProgress Optional, progress callback function, fired periodically\n * before the load is completed.\n * @returns A `Promise` of an Array of `ArrayBuffer`. The Array has the same\n * length as `fetchURLs`.\n */\nexport async function loadWeightsAsArrayBuffer(\n fetchURLs: string[], loadOptions?: LoadOptions): Promise {\n if (loadOptions == null) {\n loadOptions = {};\n }\n\n const fetchFunc = loadOptions.fetchFunc == null ? env().platform.fetch :\n loadOptions.fetchFunc;\n\n // Create the requests for all of the weights in parallel.\n const requests = fetchURLs.map(\n fetchURL =>\n fetchFunc(fetchURL, loadOptions.requestInit, {isBinary: true}));\n\n const fetchStartFraction = 0;\n const fetchEndFraction = 0.5;\n\n const responses = loadOptions.onProgress == null ?\n await Promise.all(requests) :\n await monitorPromisesProgress(\n requests, loadOptions.onProgress, fetchStartFraction,\n fetchEndFraction);\n\n const bufferPromises = responses.map(response => response.arrayBuffer());\n\n const bufferStartFraction = 0.5;\n const bufferEndFraction = 1;\n\n const buffers = loadOptions.onProgress == null ?\n await Promise.all(bufferPromises) :\n await monitorPromisesProgress(\n bufferPromises, loadOptions.onProgress, bufferStartFraction,\n bufferEndFraction);\n return buffers;\n}\n\n/**\n * Reads a weights manifest JSON configuration, fetches the weights and\n * returns them as `Tensor`s.\n *\n * @param manifest The weights manifest JSON.\n * @param filePathPrefix The path prefix for filenames given in the manifest.\n * Defaults to the empty string.\n * @param weightNames The names of the weights to be fetched.\n */\nexport async function loadWeights(\n manifest: WeightsManifestConfig, filePathPrefix = '',\n weightNames?: string[],\n requestInit?: RequestInit): Promise {\n // TODO(nsthorat): Groups are currently fetched atomically. If you need a\n // single weight from a group, the whole group will be fetched. At a future\n // date, we should support fetching only the individual shards within a\n // group that are needed to reconstruct the requested weight.\n // TODO(cais): Use `decodeWeights` for implementation.\n\n const fetchWeights = (fetchUrls: string[]) =>\n loadWeightsAsArrayBuffer(fetchUrls, {requestInit});\n const loadWeights = weightsLoaderFactory(fetchWeights);\n\n return loadWeights(manifest, filePathPrefix, weightNames);\n}\n\n/**\n * Creates a function, which reads a weights manifest JSON configuration,\n * fetches the weight files using the specified function and returns them as\n * `Tensor`s.\n *\n * ```js\n * // example for creating a nodejs weight loader, which reads the weight files\n * // from disk using fs.readFileSync\n *\n * import * as fs from 'fs'\n *\n * const fetchWeightsFromDisk = (filePaths: string[]) =>\n * filePaths.map(filePath => fs.readFileSync(filePath).buffer)\n *\n * const loadWeights = tf.io.weightsLoaderFactory(fetchWeightsFromDisk)\n *\n * const manifest = JSON.parse(\n * fs.readFileSync('./my_model-weights_manifest').toString()\n * )\n * const weightMap = await loadWeights(manifest, './')\n * ```\n * @param fetchWeightsFunction The function used for fetching the weight files.\n * @returns Weight loading function.\n */\nexport function weightsLoaderFactory(\n fetchWeightsFunction: (fetchUrls: string[]) => Promise):\n (manifest: WeightsManifestConfig, filePathPrefix?: string,\n weightNames?: string[]) => Promise {\n return async(\n manifest: WeightsManifestConfig, filePathPrefix = '',\n weightNames?: string[]): Promise => {\n // Collect all the groups, weights, and their relative offsets to be\n // fetched.\n const groupIndicesToFetchMap = manifest.map(() => false);\n const groupWeightsToFetch: {\n [group: number]: Array<{\n manifestEntry: WeightsManifestEntry; groupOffset: number;\n sizeBytes: number;\n }>\n } = {};\n const weightsFound =\n weightNames != null ? weightNames.map(() => false) : [];\n const allManifestWeightNames: string[] = [];\n manifest.forEach((manifestGroupConfig, groupIndex) => {\n let groupOffset = 0;\n manifestGroupConfig.weights.forEach(weightsEntry => {\n const rawDtype = ('quantization' in weightsEntry) ?\n weightsEntry.quantization.dtype :\n weightsEntry.dtype;\n\n const weightsBytes = DTYPE_VALUE_SIZE_MAP[rawDtype] *\n util.sizeFromShape(weightsEntry.shape);\n\n const enqueueWeightsForFetchingFn = () => {\n groupIndicesToFetchMap[groupIndex] = true;\n if (groupWeightsToFetch[groupIndex] == null) {\n groupWeightsToFetch[groupIndex] = [];\n }\n\n groupWeightsToFetch[groupIndex].push({\n manifestEntry: weightsEntry,\n groupOffset,\n sizeBytes: weightsBytes\n });\n };\n\n if (weightNames != null) {\n weightNames.forEach((weightName, weightIndex) => {\n if (weightName === weightsEntry.name) {\n enqueueWeightsForFetchingFn();\n weightsFound[weightIndex] = true;\n }\n });\n } else {\n enqueueWeightsForFetchingFn();\n }\n\n allManifestWeightNames.push(weightsEntry.name);\n groupOffset += weightsBytes;\n });\n });\n\n if (!weightsFound.every(found => found)) {\n const weightsNotFound = weightNames.filter((_, i) => !weightsFound[i]);\n throw new Error(\n `Could not find weights in manifest with names: ` +\n `${weightsNotFound.join(', ')}. \\n` +\n `Manifest JSON has weights with names: ` +\n `${allManifestWeightNames.join(', ')}.`);\n }\n\n // Convert the one-hot boolean groupId => shouldFetch map to a list of group\n // IDs.\n const groupIndicesToFetch =\n groupIndicesToFetchMap.reduce((accumulator, shouldFetch, i) => {\n if (shouldFetch) {\n accumulator.push(i);\n }\n return accumulator;\n }, []);\n\n const fetchUrls: string[] = [];\n groupIndicesToFetch.forEach(i => {\n manifest[i].paths.forEach(filepath => {\n const fetchUrl = filePathPrefix +\n (!filePathPrefix.endsWith('/') ? '/' : '') + filepath;\n fetchUrls.push(fetchUrl);\n });\n });\n const buffers = await fetchWeightsFunction(fetchUrls);\n\n const weightsTensorMap: NamedTensorMap = {};\n let bufferIndexOffset = 0;\n groupIndicesToFetch.forEach(i => {\n const numBuffers = manifest[i].paths.length;\n\n let groupBytes = 0;\n for (let i = 0; i < numBuffers; i++) {\n groupBytes += buffers[bufferIndexOffset + i].byteLength;\n }\n\n // Create a buffer for the whole group.\n const groupBuffer = new ArrayBuffer(groupBytes);\n const groupByteBuffer = new Uint8Array(groupBuffer);\n let groupBufferOffset = 0;\n for (let i = 0; i < numBuffers; i++) {\n const buffer = new Uint8Array(buffers[bufferIndexOffset + i]);\n groupByteBuffer.set(buffer, groupBufferOffset);\n groupBufferOffset += buffer.byteLength;\n }\n\n const weightsEntries = groupWeightsToFetch[i];\n weightsEntries.forEach(weightsEntry => {\n const byteBuffer = groupBuffer.slice(\n weightsEntry.groupOffset,\n weightsEntry.groupOffset + weightsEntry.sizeBytes);\n const nameToTensorMap =\n decodeWeights(byteBuffer, [weightsEntry.manifestEntry]);\n for (const name in nameToTensorMap) {\n weightsTensorMap[name] = nameToTensorMap[name];\n }\n });\n\n bufferIndexOffset += numBuffers;\n });\n\n return weightsTensorMap;\n };\n}\n", "/**\n * @license\n * Copyright 2018 Google LLC. 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 *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\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 * =============================================================================\n */\n\n/**\n * IOHandler implementations based on HTTP requests in the web browser.\n *\n * Uses [`fetch`](https://developer.mozilla.org/en-US/docs/Web/API/Fetch_API).\n */\n\nimport {env} from '../environment';\n\nimport {assert} from '../util';\nimport {concatenateArrayBuffers, getModelArtifactsInfoForJSON} from './io_utils';\nimport {IORouter, IORouterRegistry} from './router_registry';\nimport {IOHandler, LoadOptions, ModelArtifacts, ModelJSON, OnProgressCallback, SaveResult, WeightsManifestConfig, WeightsManifestEntry} from './types';\nimport {loadWeightsAsArrayBuffer} from './weights_loader';\n\nconst OCTET_STREAM_MIME_TYPE = 'application/octet-stream';\nconst JSON_TYPE = 'application/json';\nexport class HTTPRequest implements IOHandler {\n protected readonly path: string;\n protected readonly requestInit: RequestInit;\n\n private readonly fetch: Function;\n private readonly weightUrlConverter: (weightName: string) => Promise;\n\n readonly DEFAULT_METHOD = 'POST';\n\n static readonly URL_SCHEME_REGEX = /^https?:\\/\\//;\n\n private readonly weightPathPrefix: string;\n private readonly onProgress: OnProgressCallback;\n\n constructor(path: string, loadOptions?: LoadOptions) {\n if (loadOptions == null) {\n loadOptions = {};\n }\n this.weightPathPrefix = loadOptions.weightPathPrefix;\n this.onProgress = loadOptions.onProgress;\n this.weightUrlConverter = loadOptions.weightUrlConverter;\n\n if (loadOptions.fetchFunc != null) {\n assert(\n typeof loadOptions.fetchFunc === 'function',\n () => 'Must pass a function that matches the signature of ' +\n '`fetch` (see ' +\n 'https://developer.mozilla.org/en-US/docs/Web/API/Fetch_API)');\n this.fetch = loadOptions.fetchFunc;\n } else {\n this.fetch = env().platform.fetch;\n }\n\n assert(\n path != null && path.length > 0,\n () => 'URL path for http must not be null, undefined or ' +\n 'empty.');\n\n if (Array.isArray(path)) {\n assert(\n path.length === 2,\n () => 'URL paths for http must have a length of 2, ' +\n `(actual length is ${path.length}).`);\n }\n this.path = path;\n\n if (loadOptions.requestInit != null &&\n loadOptions.requestInit.body != null) {\n throw new Error(\n 'requestInit is expected to have no pre-existing body, but has one.');\n }\n this.requestInit = loadOptions.requestInit || {};\n }\n\n async save(modelArtifacts: ModelArtifacts): Promise {\n if (modelArtifacts.modelTopology instanceof ArrayBuffer) {\n throw new Error(\n 'BrowserHTTPRequest.save() does not support saving model topology ' +\n 'in binary formats yet.');\n }\n\n const init = Object.assign({method: this.DEFAULT_METHOD}, this.requestInit);\n init.body = new FormData();\n\n const weightsManifest: WeightsManifestConfig = [{\n paths: ['./model.weights.bin'],\n weights: modelArtifacts.weightSpecs,\n }];\n const modelTopologyAndWeightManifest: ModelJSON = {\n modelTopology: modelArtifacts.modelTopology,\n format: modelArtifacts.format,\n generatedBy: modelArtifacts.generatedBy,\n convertedBy: modelArtifacts.convertedBy,\n userDefinedMetadata: modelArtifacts.userDefinedMetadata,\n weightsManifest\n };\n\n init.body.append(\n 'model.json',\n new Blob(\n [JSON.stringify(modelTopologyAndWeightManifest)],\n {type: JSON_TYPE}),\n 'model.json');\n\n if (modelArtifacts.weightData != null) {\n init.body.append(\n 'model.weights.bin',\n new Blob([modelArtifacts.weightData], {type: OCTET_STREAM_MIME_TYPE}),\n 'model.weights.bin');\n }\n\n const response = await this.fetch(this.path, init);\n\n if (response.ok) {\n return {\n modelArtifactsInfo: getModelArtifactsInfoForJSON(modelArtifacts),\n responses: [response],\n };\n } else {\n throw new Error(\n `BrowserHTTPRequest.save() failed due to HTTP response status ` +\n `${response.status}.`);\n }\n }\n\n /**\n * Load model artifacts via HTTP request(s).\n *\n * See the documentation to `tf.io.http` for details on the saved\n * artifacts.\n *\n * @returns The loaded model artifacts (if loading succeeds).\n */\n async load(): Promise {\n const modelConfigRequest = await this.fetch(this.path, this.requestInit);\n\n if (!modelConfigRequest.ok) {\n throw new Error(\n `Request to ${this.path} failed with status code ` +\n `${modelConfigRequest.status}. Please verify this URL points to ` +\n `the model JSON of the model to load.`);\n }\n let modelConfig: ModelJSON;\n try {\n modelConfig = await modelConfigRequest.json();\n } catch (e) {\n let message = `Failed to parse model JSON of response from ${this.path}.`;\n // TODO(nsthorat): Remove this after some time when we're comfortable that\n // .pb files are mostly gone.\n if (this.path.endsWith('.pb')) {\n message += ' Your path contains a .pb file extension. ' +\n 'Support for .pb models have been removed in TensorFlow.js 1.0 ' +\n 'in favor of .json models. You can re-convert your Python ' +\n 'TensorFlow model using the TensorFlow.js 1.0 conversion scripts ' +\n 'or you can convert your.pb models with the \\'pb2json\\'' +\n 'NPM script in the tensorflow/tfjs-converter repository.';\n } else {\n message += ' Please make sure the server is serving valid ' +\n 'JSON for this request.';\n }\n throw new Error(message);\n }\n const modelTopology = modelConfig.modelTopology;\n const weightsManifest = modelConfig.weightsManifest;\n const generatedBy = modelConfig.generatedBy;\n const convertedBy = modelConfig.convertedBy;\n const format = modelConfig.format;\n const userDefinedMetadata = modelConfig.userDefinedMetadata;\n\n // We do not allow both modelTopology and weightsManifest to be missing.\n if (modelTopology == null && weightsManifest == null) {\n throw new Error(\n `The JSON from HTTP path ${this.path} contains neither model ` +\n `topology or manifest for weights.`);\n }\n\n let weightSpecs: WeightsManifestEntry[];\n let weightData: ArrayBuffer;\n if (weightsManifest != null) {\n const results = await this.loadWeights(weightsManifest);\n [weightSpecs, weightData] = results;\n }\n\n const artifacts: ModelArtifacts = {\n modelTopology,\n weightSpecs,\n weightData,\n userDefinedMetadata,\n generatedBy,\n convertedBy,\n format\n };\n\n const initializer = modelConfig.modelInitializer;\n if (initializer) {\n artifacts.modelInitializer = initializer;\n }\n\n return artifacts;\n }\n\n private async loadWeights(weightsManifest: WeightsManifestConfig):\n Promise<[WeightsManifestEntry[], ArrayBuffer]> {\n const weightPath = Array.isArray(this.path) ? this.path[1] : this.path;\n const [prefix, suffix] = parseUrl(weightPath);\n const pathPrefix = this.weightPathPrefix || prefix;\n\n const weightSpecs = [];\n for (const entry of weightsManifest) {\n weightSpecs.push(...entry.weights);\n }\n\n const fetchURLs: string[] = [];\n const urlPromises: Array> = [];\n for (const weightsGroup of weightsManifest) {\n for (const path of weightsGroup.paths) {\n if (this.weightUrlConverter != null) {\n urlPromises.push(this.weightUrlConverter(path));\n } else {\n fetchURLs.push(pathPrefix + path + suffix);\n }\n }\n }\n\n if (this.weightUrlConverter) {\n fetchURLs.push(...await Promise.all(urlPromises));\n }\n\n const buffers = await loadWeightsAsArrayBuffer(fetchURLs, {\n requestInit: this.requestInit,\n fetchFunc: this.fetch,\n onProgress: this.onProgress\n });\n return [weightSpecs, concatenateArrayBuffers(buffers)];\n }\n}\n\n/**\n * Extract the prefix and suffix of the url, where the prefix is the path before\n * the last file, and suffix is the search params after the last file.\n * ```\n * const url = 'http://tfhub.dev/model/1/tensorflowjs_model.pb?tfjs-format=file'\n * [prefix, suffix] = parseUrl(url)\n * // prefix = 'http://tfhub.dev/model/1/'\n * // suffix = '?tfjs-format=file'\n * ```\n * @param url the model url to be parsed.\n */\nexport function parseUrl(url: string): [string, string] {\n const lastSlash = url.lastIndexOf('/');\n const lastSearchParam = url.lastIndexOf('?');\n const prefix = url.substring(0, lastSlash);\n const suffix =\n lastSearchParam > lastSlash ? url.substring(lastSearchParam) : '';\n return [prefix + '/', suffix];\n}\n\nexport function isHTTPScheme(url: string): boolean {\n return url.match(HTTPRequest.URL_SCHEME_REGEX) != null;\n}\n\nexport const httpRouter: IORouter =\n (url: string, loadOptions?: LoadOptions) => {\n if (typeof fetch === 'undefined' &&\n (loadOptions == null || loadOptions.fetchFunc == null)) {\n // `http` uses `fetch` or `node-fetch`, if one wants to use it in\n // an environment that is not the browser or node they have to setup a\n // global fetch polyfill.\n return null;\n } else {\n let isHTTP = true;\n if (Array.isArray(url)) {\n isHTTP = url.every(urlItem => isHTTPScheme(urlItem));\n } else {\n isHTTP = isHTTPScheme(url);\n }\n if (isHTTP) {\n return http(url, loadOptions);\n }\n }\n return null;\n };\nIORouterRegistry.registerSaveRouter(httpRouter);\nIORouterRegistry.registerLoadRouter(httpRouter);\n\n/**\n * Creates an IOHandler subtype that sends model artifacts to HTTP server.\n *\n * An HTTP request of the `multipart/form-data` mime type will be sent to the\n * `path` URL. The form data includes artifacts that represent the topology\n * and/or weights of the model. In the case of Keras-style `tf.Model`, two\n * blobs (files) exist in form-data:\n * - A JSON file consisting of `modelTopology` and `weightsManifest`.\n * - A binary weights file consisting of the concatenated weight values.\n * These files are in the same format as the one generated by\n * [tfjs_converter](https://js.tensorflow.org/tutorials/import-keras.html).\n *\n * The following code snippet exemplifies the client-side code that uses this\n * function:\n *\n * ```js\n * const model = tf.sequential();\n * model.add(\n * tf.layers.dense({units: 1, inputShape: [100], activation: 'sigmoid'}));\n *\n * const saveResult = await model.save(tf.io.http(\n * 'http://model-server:5000/upload', {requestInit: {method: 'PUT'}}));\n * console.log(saveResult);\n * ```\n *\n * If the default `POST` method is to be used, without any custom parameters\n * such as headers, you can simply pass an HTTP or HTTPS URL to `model.save`:\n *\n * ```js\n * const saveResult = await model.save('http://model-server:5000/upload');\n * ```\n *\n * The following GitHub Gist\n * https://gist.github.com/dsmilkov/1b6046fd6132d7408d5257b0976f7864\n * implements a server based on [flask](https://github.com/pallets/flask) that\n * can receive the request. Upon receiving the model artifacts via the requst,\n * this particular server reconsistutes instances of [Keras\n * Models](https://keras.io/models/model/) in memory.\n *\n *\n * @param path A URL path to the model.\n * Can be an absolute HTTP path (e.g.,\n * 'http://localhost:8000/model-upload)') or a relative path (e.g.,\n * './model-upload').\n * @param requestInit Request configurations to be used when sending\n * HTTP request to server using `fetch`. It can contain fields such as\n * `method`, `credentials`, `headers`, `mode`, etc. See\n * https://developer.mozilla.org/en-US/docs/Web/API/Request/Request\n * for more information. `requestInit` must not have a body, because the\n * body will be set by TensorFlow.js. File blobs representing the model\n * topology (filename: 'model.json') and the weights of the model (filename:\n * 'model.weights.bin') will be appended to the body. If `requestInit` has a\n * `body`, an Error will be thrown.\n * @param loadOptions Optional configuration for the loading. It includes the\n * following fields:\n * - weightPathPrefix Optional, this specifies the path prefix for weight\n * files, by default this is calculated from the path param.\n * - fetchFunc Optional, custom `fetch` function. E.g., in Node.js,\n * the `fetch` from node-fetch can be used here.\n * - onProgress Optional, progress callback function, fired periodically\n * before the load is completed.\n * @returns An instance of `IOHandler`.\n *\n * @doc {\n * heading: 'Models',\n * subheading: 'Loading',\n * namespace: 'io',\n * ignoreCI: true\n * }\n */\nexport function http(path: string, loadOptions?: LoadOptions): IOHandler {\n return new HTTPRequest(path, loadOptions);\n}\n\n/**\n * Deprecated. Use `tf.io.http`.\n * @param path\n * @param loadOptions\n */\nexport function browserHTTPRequest(\n path: string, loadOptions?: LoadOptions): IOHandler {\n return http(path, loadOptions);\n}\n", "/**\n * @license\n * Copyright 2018 Google LLC. 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 *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\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 * =============================================================================\n */\n\n/**\n * IOHandlers that pass through the in-memory ModelArtifacts format.\n */\n\nimport {IOHandler, ModelArtifacts, SaveResult, TrainingConfig, WeightsManifestEntry} from './types';\n\nclass PassthroughLoader implements IOHandler {\n constructor(private readonly modelArtifacts?: ModelArtifacts) {}\n\n async load(): Promise {\n return this.modelArtifacts;\n }\n}\n\nclass PassthroughSaver implements IOHandler {\n constructor(\n private readonly saveHandler:\n (artifacts: ModelArtifacts) => Promise) {}\n\n async save(modelArtifacts: ModelArtifacts) {\n return this.saveHandler(modelArtifacts);\n }\n}\n\n/**\n * Creates an IOHandler that loads model artifacts from memory.\n *\n * When used in conjunction with `tf.loadLayersModel`, an instance of\n * `tf.LayersModel` (Keras-style) can be constructed from the loaded artifacts.\n *\n * ```js\n * const model = await tf.loadLayersModel(tf.io.fromMemory(\n * modelTopology, weightSpecs, weightData));\n * ```\n *\n * @param modelArtifacts a object containing model topology (i.e., parsed from\n * the JSON format).\n * @param weightSpecs An array of `WeightsManifestEntry` objects describing the\n * names, shapes, types, and quantization of the weight data.\n * @param weightData A single `ArrayBuffer` containing the weight data,\n * concatenated in the order described by the weightSpecs.\n * @param trainingConfig Model training configuration. Optional.\n *\n * @returns A passthrough `IOHandler` that simply loads the provided data.\n */\nexport function fromMemory(\n modelArtifacts: {}|ModelArtifacts, weightSpecs?: WeightsManifestEntry[],\n weightData?: ArrayBuffer, trainingConfig?: TrainingConfig): IOHandler {\n if (arguments.length === 1) {\n const isModelArtifacts =\n (modelArtifacts as ModelArtifacts).modelTopology != null ||\n (modelArtifacts as ModelArtifacts).weightSpecs != null;\n if (isModelArtifacts) {\n return new PassthroughLoader(modelArtifacts as ModelArtifacts);\n } else {\n // Legacy support: with only modelTopology.\n // TODO(cais): Remove this deprecated API.\n console.warn(\n 'Please call tf.io.fromMemory() with only one argument. ' +\n 'The argument should be of type ModelArtifacts. ' +\n 'The multi-argument signature of tf.io.fromMemory() has been ' +\n 'deprecated and will be removed in a future release.');\n return new PassthroughLoader({modelTopology: modelArtifacts as {}});\n }\n } else {\n // Legacy support.\n // TODO(cais): Remove this deprecated API.\n console.warn(\n 'Please call tf.io.fromMemory() with only one argument. ' +\n 'The argument should be of type ModelArtifacts. ' +\n 'The multi-argument signature of tf.io.fromMemory() has been ' +\n 'deprecated and will be removed in a future release.');\n return new PassthroughLoader({\n modelTopology: modelArtifacts as {},\n weightSpecs,\n weightData,\n trainingConfig\n });\n }\n}\n\n/**\n * Creates an IOHandler that passes saved model artifacts to a callback.\n *\n * ```js\n * function handleSave(artifacts) {\n * // ... do something with the artifacts ...\n * return {modelArtifactsInfo: {...}, ...};\n * }\n *\n * const saveResult = model.save(tf.io.withSaveHandler(handleSave));\n * ```\n *\n * @param saveHandler A function that accepts a `ModelArtifacts` and returns a\n * `SaveResult`.\n */\nexport function withSaveHandler(\n saveHandler: (artifacts: ModelArtifacts) =>\n Promise): IOHandler {\n return new PassthroughSaver(saveHandler);\n}\n", "/**\n * @license\n * Copyright 2018 Google LLC. 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 *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\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 * =============================================================================\n */\n\n// Importing local_storage and indexed_db is necessary for the routers to be\n// registered.\nimport './indexed_db';\nimport './local_storage';\n\nimport {browserFiles} from './browser_files';\nimport {browserHTTPRequest, http, isHTTPScheme} from './http';\nimport {concatenateArrayBuffers, decodeWeights, encodeWeights, getModelArtifactsInfoForJSON} from './io_utils';\nimport {fromMemory, withSaveHandler} from './passthrough';\nimport {getLoadHandlers, getSaveHandlers, registerLoadRouter, registerSaveRouter} from './router_registry';\nimport {IOHandler, LoadHandler, LoadOptions, ModelArtifacts, ModelArtifactsInfo, ModelJSON, ModelStoreManager, OnProgressCallback, RequestDetails, SaveConfig, SaveHandler, SaveResult, WeightGroup, WeightsManifestConfig, WeightsManifestEntry} from './types';\nimport {loadWeights, weightsLoaderFactory} from './weights_loader';\n\nexport {copyModel, listModels, moveModel, removeModel} from './model_management';\nexport {\n browserFiles,\n browserHTTPRequest,\n concatenateArrayBuffers,\n decodeWeights,\n encodeWeights,\n fromMemory,\n getLoadHandlers,\n getModelArtifactsInfoForJSON,\n getSaveHandlers,\n http,\n IOHandler,\n isHTTPScheme,\n LoadHandler,\n LoadOptions,\n loadWeights,\n ModelArtifacts,\n ModelArtifactsInfo,\n ModelJSON,\n ModelStoreManager,\n OnProgressCallback,\n registerLoadRouter,\n registerSaveRouter,\n RequestDetails,\n SaveConfig,\n SaveHandler,\n SaveResult,\n WeightGroup,\n weightsLoaderFactory,\n WeightsManifestConfig,\n WeightsManifestEntry,\n withSaveHandler\n};\n", "/**\n * @license\n * Copyright 2020 Google LLC. 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 *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\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 * =============================================================================\n */\n\nimport {KernelBackend} from '../backends/backend';\nimport {ENGINE, ForwardFunc} from '../engine';\nimport {Reshape, ReshapeAttrs, ReshapeInputs} from '../kernel_names';\nimport {NamedAttrMap} from '../kernel_registry';\nimport {Tensor} from '../tensor';\nimport {GradSaveFunc, NamedTensorMap} from '../tensor_types';\nimport {convertToTensor} from '../tensor_util_env';\nimport {Rank, ShapeMap, TensorLike} from '../types';\nimport * as util from '../util';\n\nimport {op} from './operation';\n\n/**\n * Reshapes a `tf.Tensor` to a given shape.\n *\n * Given an input tensor, returns a new tensor with the same values as the\n * input tensor with shape `shape`.\n *\n * If one component of shape is the special value -1, the size of that\n * dimension is computed so that the total size remains constant. In\n * particular, a shape of [-1] flattens into 1-D. At most one component of\n * shape can be -1.\n *\n * If shape is 1-D or higher, then the operation returns a tensor with shape\n * shape filled with the values of tensor. In this case, the number of\n * elements implied by shape must be the same as the number of elements in\n * tensor.\n *\n * ```js\n * const x = tf.tensor1d([1, 2, 3, 4]);\n * x.reshape([2, 2]).print();\n * ```\n *\n * @param x The input tensor to be reshaped.\n * @param shape An array of integers defining the output tensor shape.\n *\n * @doc {heading: 'Tensors', subheading: 'Transformations'}\n */\nfunction reshape_(\n x: Tensor|TensorLike, shape: ShapeMap[R]): Tensor {\n const $x = convertToTensor(x, 'x', 'reshape', null);\n\n const inputs: ReshapeInputs = {x: $x};\n const attrs: ReshapeAttrs = {shape};\n const forward: ForwardFunc<\n Tensor> = (backend: KernelBackend, save: GradSaveFunc) => {\n shape = util.inferFromImplicitShape(shape, $x.size) as ShapeMap[R];\n util.assert(\n $x.size === util.sizeFromShape(shape),\n () => 'new shape and old shape must have the same number of elements.');\n save([$x]);\n return backend.reshape($x, shape);\n };\n return ENGINE.runKernelFunc(\n forward, inputs as {} as NamedTensorMap, null /* grad */, Reshape,\n attrs as {} as NamedAttrMap);\n}\nexport const reshape = op({reshape_});\n", "/**\n * @license\n * Copyright 2020 Google LLC. 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 *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\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 * =============================================================================\n */\nimport {ENGINE, ForwardFunc} from '../engine';\nimport {BatchMatMul, BatchMatMulAttrs, BatchMatMulInputs} from '../kernel_names';\nimport {NamedAttrMap} from '../kernel_registry';\nimport {Tensor, Tensor3D} from '../tensor';\nimport {NamedTensorMap} from '../tensor_types';\nimport {makeTypesMatch} from '../tensor_util';\nimport {convertToTensor} from '../tensor_util_env';\nimport {TensorLike} from '../types';\nimport * as util from '../util';\n\nimport {op} from './operation';\nimport {reshape} from './reshape';\n\n/**\n * Computes the dot product of two matrices, A * B. These must be matrices.\n *\n * ```js\n * const a = tf.tensor2d([1, 2], [1, 2]);\n * const b = tf.tensor2d([1, 2, 3, 4], [2, 2]);\n *\n * a.matMul(b).print(); // or tf.matMul(a, b)\n * ```\n * @param a First matrix in dot product operation.\n * @param b Second matrix in dot product operation.\n * @param transposeA If true, `a` is transposed before multiplication.\n * @param transposeB If true, `b` is transposed before multiplication.\n *\n * @doc {heading: 'Operations', subheading: 'Matrices'}\n */\nfunction matMul_(\n a: Tensor|TensorLike, b: Tensor|TensorLike, transposeA = false,\n transposeB = false): T {\n let $a = convertToTensor(a, 'a', 'matMul');\n let $b = convertToTensor(b, 'b', 'matMul');\n [$a, $b] = makeTypesMatch($a, $b);\n\n const forward: ForwardFunc = (backend, save) => {\n save([$a, $b]);\n\n const innerShapeA =\n transposeA ? $a.shape[$a.rank - 2] : $a.shape[$a.rank - 1];\n const innerShapeB =\n transposeB ? $b.shape[$b.rank - 1] : $b.shape[$b.rank - 2];\n\n const outerShapeA =\n transposeA ? $a.shape[$a.rank - 1] : $a.shape[$a.rank - 2];\n const outerShapeB =\n transposeB ? $b.shape[$b.rank - 2] : $b.shape[$b.rank - 1];\n\n const outerDimsA = $a.shape.slice(0, -2);\n const outerDimsB = $b.shape.slice(0, -2);\n const batchDimA = util.sizeFromShape(outerDimsA);\n const batchDimB = util.sizeFromShape(outerDimsB);\n\n const batchDimsCompatible =\n batchDimA === batchDimB || batchDimA === 1 || batchDimB === 1;\n\n util.assert(\n $a.rank >= 2 && $b.rank >= 2 && batchDimsCompatible,\n () =>\n `Error in matMul: the input batch dimensions must either be the ` +\n `same or at least one input batch dimension must be 1. Got input ` +\n `batch dimensions of (${outerDimsA}) and (${outerDimsB}).`);\n\n util.assert(\n innerShapeA === innerShapeB,\n () => `Error in matMul: inner shapes (${innerShapeA}) and (` +\n `${innerShapeB}) of Tensors with shapes ${$a.shape} and ` +\n `${$b.shape} and transposeA=${transposeA}` +\n ` and transposeB=${transposeB} must match.`);\n\n const outShapeOuterDims = batchDimA > batchDimB ? outerDimsA : outerDimsB;\n const outShape = outShapeOuterDims.concat([outerShapeA, outerShapeB]);\n\n const a3D = transposeA ?\n reshape($a, [batchDimA, innerShapeA, outerShapeA]) :\n reshape($a, [batchDimA, outerShapeA, innerShapeA]);\n const b3D = transposeB ?\n reshape($b, [batchDimB, outerShapeB, innerShapeB]) :\n reshape($b, [batchDimB, innerShapeB, outerShapeB]);\n\n const res3d = backend.batchMatMul(\n a3D as Tensor3D, b3D as Tensor3D, transposeA, transposeB);\n return reshape(res3d, outShape);\n };\n\n const inputs: BatchMatMulInputs = {a: $a, b: $b};\n const attrs: BatchMatMulAttrs = {transposeA, transposeB};\n\n return ENGINE.runKernelFunc(\n forward, inputs as {} as NamedTensorMap, null /* grad */,\n BatchMatMul, attrs as {} as NamedAttrMap) as T;\n}\n\nexport const matMul = op({matMul_});\n", "/**\n * @license\n * Copyright 2020 Google LLC. 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 *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\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 * =============================================================================\n */\n\nimport {ENGINE, ForwardFunc} from '../engine';\nimport {OneHot, OneHotAttrs, OneHotInputs} from '../kernel_names';\nimport {NamedAttrMap} from '../kernel_registry';\nimport {Tensor} from '../tensor';\nimport {NamedTensorMap} from '../tensor_types';\nimport {convertToTensor} from '../tensor_util_env';\nimport {TensorLike} from '../types';\n\nimport {op} from './operation';\nimport {reshape} from './reshape';\n\n/**\n * Creates a one-hot `tf.Tensor`. The locations represented by `indices` take\n * value `onValue` (defaults to 1), while all other locations take value\n * `offValue` (defaults to 0). If `indices` is rank `R`, the output has rank\n * `R+1` with the last axis of size `depth`.\n *\n * ```js\n * tf.oneHot(tf.tensor1d([0, 1], 'int32'), 3).print();\n * ```\n *\n * @param indices `tf.Tensor` of indices with dtype `int32`.\n * @param depth The depth of the one hot dimension.\n * @param onValue A number used to fill in the output when the index matches\n * the location.\n * @param offValue A number used to fill in the output when the index does\n * not match the location.\n *\n * @doc {heading: 'Tensors', subheading: 'Creation'}\n */\nfunction oneHot_(\n indices: Tensor|TensorLike, depth: number, onValue = 1,\n offValue = 0): Tensor {\n if (depth < 2) {\n throw new Error(`Error in oneHot: depth must be >=2, but it is ${depth}`);\n }\n const $indices = convertToTensor(indices, 'indices', 'oneHot', 'int32');\n const outShape = [...$indices.shape, depth];\n\n const forward: ForwardFunc = (backend, save) => {\n save([$indices]);\n return reshape(\n backend.oneHot(\n reshape($indices, [$indices.size]), depth, onValue, offValue),\n outShape);\n };\n\n const inputs: OneHotInputs = {indices: $indices};\n const attrs: OneHotAttrs = {depth, onValue, offValue};\n\n return ENGINE.runKernelFunc(\n forward, inputs as unknown as NamedTensorMap, null /* grad */, OneHot,\n attrs as unknown as NamedAttrMap);\n}\n\nexport const oneHot = op({oneHot_});\n", "/**\n * @license\n * Copyright 2018 Google LLC. 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 *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\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 * =============================================================================\n */\n\nimport {ENGINE} from '../engine';\nimport {Transpose, TransposeAttrs, TransposeInputs} from '../kernel_names';\nimport {NamedAttrMap} from '../kernel_registry';\nimport {Tensor} from '../tensor';\nimport {NamedTensorMap} from '../tensor_types';\nimport {convertToTensor} from '../tensor_util_env';\nimport {TensorLike} from '../types';\nimport * as util from '../util';\n\nimport {op} from './operation';\n\n/**\n * Transposes the `tf.Tensor`. Permutes the dimensions according to `perm`.\n *\n * The returned `tf.Tensor`'s dimension `i` will correspond to the input\n * dimension `perm[i]`. If `perm` is not given, it is set to `[n-1...0]`,\n * where `n` is the rank of the input `tf.Tensor`. Hence by default, this\n * operation performs a regular matrix transpose on 2-D input `tf.Tensor`s.\n *\n * ```js\n * const a = tf.tensor2d([1, 2, 3, 4, 5, 6], [2, 3]);\n *\n * a.transpose().print(); // or tf.transpose(a)\n * ```\n *\n * @param x The tensor to transpose.\n * @param perm The permutation of the dimensions of a.\n *\n * @doc {heading: 'Operations', subheading: 'Matrices'}\n */\nfunction transpose_(x: T|TensorLike, perm?: number[]): T {\n const $x = convertToTensor(x, 'x', 'transpose');\n\n if (perm == null) {\n perm = $x.shape.map((s, i) => i).reverse();\n }\n util.assert(\n $x.rank === perm.length,\n () => `Error in transpose: rank of input ${$x.rank} ` +\n `must match length of perm ${perm}.`);\n perm.forEach(axis => {\n util.assert(\n axis >= 0 && axis < $x.rank,\n () => `All entries in 'perm' must be between 0 and ${$x.rank - 1}` +\n ` but got ${perm}`);\n });\n\n if ($x.rank <= 1) {\n return $x.clone();\n }\n\n const inputs: TransposeInputs = {x: $x};\n const attrs: TransposeAttrs = {perm};\n\n return ENGINE.runKernelFunc(\n backend => backend.transpose($x, perm), inputs as {} as NamedTensorMap,\n null /* gradient */, Transpose, attrs as {} as NamedAttrMap);\n}\n\nexport const transpose = op({transpose_});\n", "/**\n * @license\n * Copyright 2018 Google LLC. 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 *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\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 * =============================================================================\n */\n\nimport {Tensor1D, Tensor2D} from '../tensor';\nimport {convertToTensor} from '../tensor_util_env';\nimport {TensorLike} from '../types';\nimport * as util from '../util';\n\nimport {cast} from './cast';\nimport {matMul} from './mat_mul';\nimport {oneHot} from './one_hot';\nimport {op} from './operation';\nimport {transpose} from './transpose';\n\n/**\n * Computes the confusion matrix from true labels and predicted labels.\n *\n * ```js\n * const labels = tf.tensor1d([0, 1, 2, 1, 0], 'int32');\n * const predictions = tf.tensor1d([0, 2, 2, 1, 0], 'int32');\n * const numClasses = 3;\n * const out = tf.math.confusionMatrix(labels, predictions, numClasses);\n * out.print();\n * // Expected output matrix:\n * // [[2, 0, 0],\n * // [0, 1, 1],\n * // [0, 0, 1]]\n * ```\n *\n * @param labels The target labels, assumed to be 0-based integers\n * for the classes. The shape is `[numExamples]`, where\n * `numExamples` is the number of examples included.\n * @param predictions The predicted classes, assumed to be\n * 0-based integers for the classes. Must have the same shape as `labels`.\n * @param numClasses Number of all classes, as an integer.\n * Its value must be larger than the largest element in `labels` and\n * `predictions`.\n * @returns The confusion matrix as a int32-type 2D tensor. The value at\n * row `r` and column `c` is the number of times examples of actual class\n * `r` were predicted as class `c`.\n *\n * @doc {heading: 'Operations', subheading: 'Evaluation'}\n */\nexport function confusionMatrix_(\n labels: Tensor1D|TensorLike, predictions: Tensor1D|TensorLike,\n numClasses: number): Tensor2D {\n const $labels = convertToTensor(labels, 'labels', 'confusionMatrix');\n const $predictions =\n convertToTensor(predictions, 'predictions', 'confusionMatrix');\n\n util.assert(\n numClasses == null || numClasses > 0 && Number.isInteger(numClasses),\n () => `If provided, numClasses must be a positive integer, ` +\n `but got ${numClasses}`);\n util.assert(\n $labels.rank === 1,\n () => `Expected the rank of labels to be 1, but got ${$labels.rank}`);\n util.assert(\n $predictions.rank === 1,\n () => `Expected the rank of predictions to be 1, ` +\n `but got ${$predictions.rank}`);\n util.assert(\n $labels.shape[0] === $predictions.shape[0],\n () => `Mismatch in the number of examples: ` +\n `${$labels.shape[0]} vs. ${$predictions.shape[0]}. ` +\n `Labels and predictions should have the same number of elements.`);\n util.assert(\n numClasses > 0 && Number.isInteger(numClasses),\n () => `numClasses is required to be a positive integer, but got ` +\n `${numClasses}`);\n // TODO(cais): In the future, if oneHot supports tensors inputs for\n // `numClasses`, `confusionMatrix` can make `numClasses` optional.\n\n const oneHotLabels = oneHot(cast($labels, 'int32'), numClasses) as Tensor2D;\n const oneHotPredictions =\n oneHot(cast($predictions, 'int32'), numClasses) as Tensor2D;\n const oneHotLabelsT: Tensor2D = transpose(oneHotLabels);\n const product: Tensor2D = matMul(oneHotLabelsT, oneHotPredictions);\n return cast(product, 'int32');\n}\n\nexport const confusionMatrix = op({confusionMatrix_});\n", "/**\n * @license\n * Copyright 2018 Google LLC. 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 *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\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 * =============================================================================\n */\n\n/**\n * Exports under the tf.math.* namespace.\n */\n\nimport {confusionMatrix} from './ops/confusion_matrix';\n\nexport {confusionMatrix};\n", "/**\n * @license\n * Copyright 2018 Google LLC. 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 *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\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 * =============================================================================\n */\n\nimport {Tensor3D} from '../tensor';\nimport {inferShape} from '../tensor_util_env';\nimport {TensorLike3D} from '../types';\nimport {DataType} from '../types';\nimport {assertNonNull} from '../util';\nimport {makeTensor} from './tensor_ops_util';\n\n/**\n * Creates rank-3 `tf.Tensor` with the provided values, shape and dtype.\n *\n * The same functionality can be achieved with `tf.tensor`, but in general\n * we recommend using `tf.tensor3d` as it makes the code more readable.\n *\n * ```js\n * // Pass a nested array.\n * tf.tensor3d([[[1], [2]], [[3], [4]]]).print();\n * ```\n * ```js\n * // Pass a flat array and specify a shape.\n * tf.tensor3d([1, 2, 3, 4], [2, 2, 1]).print();\n * ```\n *\n * @param values The values of the tensor. Can be nested array of numbers,\n * or a flat array, or a `TypedArray`.\n * @param shape The shape of the tensor. If not provided, it is inferred from\n * `values`.\n * @param dtype The data type.\n *\n * @doc {heading: 'Tensors', subheading: 'Creation'}\n */\nexport function tensor3d(\n values: TensorLike3D, shape?: [number, number, number],\n dtype?: DataType): Tensor3D {\n assertNonNull(values);\n if (shape != null && shape.length !== 3) {\n throw new Error('tensor3d() requires shape to have three numbers');\n }\n const inferredShape = inferShape(values, dtype);\n if (inferredShape.length !== 3 && inferredShape.length !== 1) {\n throw new Error(\n 'tensor3d() requires values to be number[][][] or flat/TypedArray');\n }\n if (inferredShape.length === 1 && shape == null) {\n throw new Error(\n 'tensor3d() requires shape to be provided when `values` ' +\n 'are a flat array');\n }\n return makeTensor(values, shape, inferredShape, dtype) as Tensor3D;\n}\n", "/**\n * @license\n * Copyright 2019 Google LLC. 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 *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\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 * =============================================================================\n */\n\nimport {ENGINE} from '../engine';\nimport {FromPixels, FromPixelsAttrs, FromPixelsInputs} from '../kernel_names';\nimport {getKernel, NamedAttrMap} from '../kernel_registry';\nimport {Tensor, Tensor2D, Tensor3D} from '../tensor';\nimport {NamedTensorMap} from '../tensor_types';\nimport {convertToTensor} from '../tensor_util_env';\nimport {PixelData, TensorLike} from '../types';\n\nimport {cast} from './cast';\nimport {op} from './operation';\nimport {tensor3d} from './tensor3d';\n\nlet fromPixels2DContext: CanvasRenderingContext2D;\n\n/**\n * Creates a `tf.Tensor` from an image.\n *\n * ```js\n * const image = new ImageData(1, 1);\n * image.data[0] = 100;\n * image.data[1] = 150;\n * image.data[2] = 200;\n * image.data[3] = 255;\n *\n * tf.browser.fromPixels(image).print();\n * ```\n *\n * @param pixels The input image to construct the tensor from. The\n * supported image types are all 4-channel. You can also pass in an image\n * object with following attributes:\n * `{data: Uint8Array; width: number; height: number}`\n * @param numChannels The number of channels of the output tensor. A\n * numChannels value less than 4 allows you to ignore channels. Defaults to\n * 3 (ignores alpha channel of input image).\n *\n * @doc {heading: 'Browser', namespace: 'browser', ignoreCI: true}\n */\nfunction fromPixels_(\n pixels: PixelData|ImageData|HTMLImageElement|HTMLCanvasElement|\n HTMLVideoElement,\n numChannels = 3): Tensor3D {\n // Sanity checks.\n if (numChannels > 4) {\n throw new Error(\n 'Cannot construct Tensor with more than 4 channels from pixels.');\n }\n if (pixels == null) {\n throw new Error('pixels passed to tf.browser.fromPixels() can not be null');\n }\n let isPixelData = false;\n let isImageData = false;\n let isVideo = false;\n let isImage = false;\n let isCanvasLike = false;\n if ((pixels as PixelData).data instanceof Uint8Array) {\n isPixelData = true;\n } else if (\n typeof (ImageData) !== 'undefined' && pixels instanceof ImageData) {\n isImageData = true;\n } else if (\n typeof (HTMLVideoElement) !== 'undefined' &&\n pixels instanceof HTMLVideoElement) {\n isVideo = true;\n } else if (\n typeof (HTMLImageElement) !== 'undefined' &&\n pixels instanceof HTMLImageElement) {\n isImage = true;\n // tslint:disable-next-line: no-any\n } else if ((pixels as any).getContext != null) {\n isCanvasLike = true;\n } else {\n throw new Error(\n 'pixels passed to tf.browser.fromPixels() must be either an ' +\n `HTMLVideoElement, HTMLImageElement, HTMLCanvasElement, ImageData ` +\n `in browser, or OffscreenCanvas, ImageData in webworker` +\n ` or {data: Uint32Array, width: number, height: number}, ` +\n `but was ${(pixels as {}).constructor.name}`);\n }\n if (isVideo) {\n const HAVE_CURRENT_DATA_READY_STATE = 2;\n if (isVideo &&\n (pixels as HTMLVideoElement).readyState <\n HAVE_CURRENT_DATA_READY_STATE) {\n throw new Error(\n 'The video element has not loaded data yet. Please wait for ' +\n '`loadeddata` event on the

    ${title}`;\n this.container.appendChild(el);\n el.addEventListener('change', (evt) => {\n object[variable] = evt.target.checked;\n if (callback) callback(evt.target.checked);\n });\n return el;\n }\n\n async addList(title, items, selected, callback) {\n const el = document.createElement('div');\n el.className = 'menu-item';\n let options = '';\n for (const item of items) {\n const def = item === selected ? 'selected' : '';\n options += ``;\n }\n el.innerHTML = `
    ${title}`;\n el.style.fontFamily = document.body.style.fontFamily;\n el.style.fontSize = document.body.style.fontSize;\n el.style.fontVariant = document.body.style.fontVariant;\n this.container.appendChild(el);\n el.addEventListener('change', (evt) => {\n if (callback) callback(items[evt.target.selectedIndex]);\n });\n return el;\n }\n\n addRange(title, object, variable, min, max, step, callback) {\n const el = document.createElement('div');\n el.className = 'menu-item';\n el.innerHTML = `${title}`;\n this.container.appendChild(el);\n el.addEventListener('change', (evt) => {\n object[variable] = parseInt(evt.target.value) === parseFloat(evt.target.value) ? parseInt(evt.target.value) : parseFloat(evt.target.value);\n evt.target.setAttribute('value', evt.target.value);\n if (callback) callback(evt.target.value);\n });\n el.input = el.children[0];\n return el;\n }\n\n addHTML(html) {\n const el = document.createElement('div');\n el.className = 'menu-item';\n el.id = this.newID;\n if (html) el.innerHTML = html;\n this.container.appendChild(el);\n return el;\n }\n\n addButton(titleOn, titleOff, callback) {\n const el = document.createElement('button');\n el.className = 'menu-item menu-button';\n el.style.fontFamily = document.body.style.fontFamily;\n el.style.fontSize = document.body.style.fontSize;\n el.style.fontVariant = document.body.style.fontVariant;\n el.type = 'button';\n el.id = this.newID;\n el.innerText = titleOn;\n this.container.appendChild(el);\n el.addEventListener('click', () => {\n if (el.innerText === titleOn) el.innerText = titleOff;\n else el.innerText = titleOn;\n if (callback) callback(el.innerText !== titleOn);\n });\n return el;\n }\n\n addValue(title, val, suffix = '') {\n const el = document.createElement('div');\n el.className = 'menu-item';\n el.id = `menu-val-${title}`;\n el.innerText = `${title}: ${val}${suffix}`;\n this.container.appendChild(el);\n return el;\n }\n\n // eslint-disable-next-line class-methods-use-this\n updateValue(title, val, suffix = '') {\n const el = document.getElementById(`menu-val-${title}`);\n if (el) el.innerText = `${title}: ${val}${suffix}`;\n else this.addValue(title, val);\n }\n\n addChart(title, id, width = 200, height = 40, color) {\n if (color) theme.chartColor = color;\n const el = document.createElement('div');\n el.className = 'menu-item menu-chart-title';\n el.id = this.newID;\n el.innerHTML = `${title}`;\n this.container.appendChild(el);\n return el;\n }\n\n // eslint-disable-next-line class-methods-use-this\n async updateChart(id, values) {\n if (!values || (values.length === 0)) return;\n const canvas = document.getElementById(`menu-canvas-${id}`);\n if (!canvas) return;\n const ctx = canvas.getContext('2d');\n ctx.fillStyle = theme.background;\n ctx.fillRect(0, 0, canvas.width, canvas.height);\n const width = canvas.width / values.length;\n const max = 1 + Math.max(...values);\n const height = canvas.height / max;\n for (const i in values) {\n const gradient = ctx.createLinearGradient(0, (max - values[i]) * height, 0, 0);\n gradient.addColorStop(0.1, theme.chartColor);\n gradient.addColorStop(0.4, theme.background);\n ctx.fillStyle = gradient;\n ctx.fillRect(i * width, 0, width - 4, canvas.height);\n ctx.fillStyle = theme.background;\n ctx.font = `${width / 1.5}px \"Segoe UI\"`;\n ctx.fillText(Math.round(values[i]), i * width + 1, canvas.height - 1, width - 1);\n }\n }\n}\n\nexport default Menu;\n", "import Human from '../dist/human.esm.js';\nimport draw from './draw.js';\nimport Menu from './menu.js';\n\nconst human = new Human();\n\nconst userConfig = {}; // add any user configuration overrides\n\n// ui options\nconst ui = {\n baseColor: 'rgba(173, 216, 230, 0.3)', // 'lightblue' with light alpha channel\n baseBackground: 'rgba(50, 50, 50, 1)', // 'grey'\n baseLabel: 'rgba(173, 216, 230, 0.9)', // 'lightblue' with dark alpha channel\n baseFontProto: 'small-caps {size} \"Segoe UI\"',\n baseLineWidth: 12,\n baseLineHeightProto: 2,\n crop: true,\n columns: 2,\n busy: false,\n facing: true,\n useWorker: false,\n worker: 'demo/worker.js',\n samples: ['../assets/sample6.jpg', '../assets/sample1.jpg', '../assets/sample4.jpg', '../assets/sample5.jpg', '../assets/sample3.jpg', '../assets/sample2.jpg'],\n drawBoxes: true,\n drawPoints: false,\n drawPolygons: true,\n fillPolygons: false,\n useDepth: true,\n console: true,\n maxFrames: 10,\n modelsPreload: true,\n modelsWarmup: true,\n menuWidth: 0,\n menuHeight: 0,\n camera: {},\n fps: [],\n};\n\n// global variables\nlet menu;\nlet menuFX;\nlet worker;\nlet timeStamp;\n\n// helper function: translates json to human readable string\nfunction str(...msg) {\n if (!Array.isArray(msg)) return msg;\n let line = '';\n for (const entry of msg) {\n if (typeof entry === 'object') line += JSON.stringify(entry).replace(/{|}|\"|\\[|\\]/g, '').replace(/,/g, ', ');\n else line += entry;\n }\n return line;\n}\n\n// helper function: wrapper around console output\nconst log = (...msg) => {\n // eslint-disable-next-line no-console\n if (ui.console) console.log(...msg);\n};\n\nconst status = (msg) => {\n // eslint-disable-next-line no-console\n document.getElementById('status').innerText = msg;\n};\n\n// draws processed results and starts processing of a next frame\nfunction drawResults(input, result, canvas) {\n // update fps data\n const elapsed = performance.now() - timeStamp;\n ui.fps.push(1000 / elapsed);\n if (ui.fps.length > ui.maxFrames) ui.fps.shift();\n\n // enable for continous performance monitoring\n // console.log(result.performance);\n\n // immediate loop before we even draw results, but limit frame rate to 30\n if (input.srcObject) {\n // eslint-disable-next-line no-use-before-define\n if (elapsed > 33) requestAnimationFrame(() => runHumanDetect(input, canvas));\n // eslint-disable-next-line no-use-before-define\n else setTimeout(() => runHumanDetect(input, canvas), 33 - elapsed);\n }\n // draw fps chart\n menu.updateChart('FPS', ui.fps);\n // draw image from video\n const ctx = canvas.getContext('2d');\n ctx.fillStyle = ui.baseBackground;\n ctx.fillRect(0, 0, canvas.width, canvas.height);\n if (result.canvas) {\n if (result.canvas.width !== canvas.width) canvas.width = result.canvas.width;\n if (result.canvas.height !== canvas.height) canvas.height = result.canvas.height;\n ctx.drawImage(result.canvas, 0, 0, result.canvas.width, result.canvas.height, 0, 0, result.canvas.width, result.canvas.height);\n } else {\n ctx.drawImage(input, 0, 0, input.width, input.height, 0, 0, canvas.width, canvas.height);\n }\n // draw all results\n draw.face(result.face, canvas, ui, human.facemesh.triangulation);\n draw.body(result.body, canvas, ui);\n draw.hand(result.hand, canvas, ui);\n draw.gesture(result.gesture, canvas, ui);\n // update log\n const engine = human.tf.engine();\n const gpu = engine.backendInstance ? `gpu: ${(engine.backendInstance.numBytesInGPU ? engine.backendInstance.numBytesInGPU : 0).toLocaleString()} bytes` : '';\n const memory = `system: ${engine.state.numBytes.toLocaleString()} bytes ${gpu} | tensors: ${engine.state.numTensors.toLocaleString()}`;\n const processing = result.canvas ? `processing: ${result.canvas.width} x ${result.canvas.height}` : '';\n const avg = Math.trunc(10 * ui.fps.reduce((a, b) => a + b) / ui.fps.length) / 10;\n document.getElementById('log').innerText = `\n video: ${ui.camera.name} | facing: ${ui.camera.facing} | resolution: ${ui.camera.width} x ${ui.camera.height} ${processing}\n backend: ${human.tf.getBackend()} | ${memory}\n performance: ${str(result.performance)} FPS:${avg}\n `;\n}\n\n// setup webcam\nasync function setupCamera() {\n if (ui.busy) return null;\n ui.busy = true;\n const video = document.getElementById('video');\n const canvas = document.getElementById('canvas');\n const output = document.getElementById('log');\n const live = video.srcObject ? ((video.srcObject.getVideoTracks()[0].readyState === 'live') && (video.readyState > 2) && (!video.paused)) : false;\n let msg = '';\n status('setting up camera');\n // setup webcam. note that navigator.mediaDevices requires that page is accessed via https\n if (!navigator.mediaDevices) {\n msg = 'camera access not supported';\n output.innerText += `\\n${msg}`;\n log(msg);\n status(msg);\n return null;\n }\n let stream;\n const constraints = {\n audio: false,\n video: {\n facingMode: (ui.facing ? 'user' : 'environment'),\n resizeMode: ui.crop ? 'crop-and-scale' : 'none',\n width: { ideal: window.innerWidth },\n height: { ideal: window.innerHeight },\n },\n };\n try {\n // if (window.innerWidth > window.innerHeight) constraints.video.width = { ideal: window.innerWidth };\n // else constraints.video.height = { ideal: window.innerHeight };\n stream = await navigator.mediaDevices.getUserMedia(constraints);\n } catch (err) {\n if (err.name === 'PermissionDeniedError') msg = 'camera permission denied';\n else if (err.name === 'SourceUnavailableError') msg = 'camera not available';\n else msg = 'camera error';\n output.innerText += `\\n${msg}`;\n status(msg);\n log(err);\n }\n if (stream) video.srcObject = stream;\n else return null;\n const track = stream.getVideoTracks()[0];\n const settings = track.getSettings();\n // log('camera constraints:', constraints, 'window:', { width: window.innerWidth, height: window.innerHeight }, 'settings:', settings, 'track:', track);\n ui.camera = { name: track.label, width: settings.width, height: settings.height, facing: settings.facingMode === 'user' ? 'front' : 'back' };\n return new Promise((resolve) => {\n video.onloadeddata = async () => {\n video.width = video.videoWidth;\n video.height = video.videoHeight;\n canvas.width = video.width;\n canvas.height = video.height;\n canvas.style.width = canvas.width > canvas.height ? '100vw' : '';\n canvas.style.height = canvas.width > canvas.height ? '' : '100vh';\n ui.menuWidth.input.setAttribute('value', video.width);\n ui.menuHeight.input.setAttribute('value', video.height);\n // silly font resizing for paint-on-canvas since viewport can be zoomed\n const size = 14 + (6 * canvas.width / window.innerWidth);\n ui.baseFont = ui.baseFontProto.replace(/{size}/, `${size}px`);\n if (live) video.play();\n ui.busy = false;\n // do once more because onresize events can be delayed or skipped\n // if (video.width > window.innerWidth) await setupCamera();\n status('');\n resolve(video);\n };\n });\n}\n\n// wrapper for worker.postmessage that creates worker if one does not exist\nfunction webWorker(input, image, canvas) {\n if (!worker) {\n // create new webworker and add event handler only once\n log('creating worker thread');\n worker = new Worker(ui.worker, { type: 'module' });\n worker.warned = false;\n // after receiving message from webworker, parse&draw results and send new frame for processing\n worker.addEventListener('message', (msg) => {\n if (!worker.warned) {\n log('warning: cannot transfer canvas from worked thread');\n log('warning: image will not show filter effects');\n worker.warned = true;\n }\n drawResults(input, msg.data.result, canvas);\n });\n }\n // pass image data as arraybuffer to worker by reference to avoid copy\n worker.postMessage({ image: image.data.buffer, width: canvas.width, height: canvas.height }, [image.data.buffer]);\n}\n\n// main processing function when input is webcam, can use direct invocation or web worker\nfunction runHumanDetect(input, canvas) {\n timeStamp = performance.now();\n // if live video\n const live = input.srcObject && (input.srcObject.getVideoTracks()[0].readyState === 'live') && (input.readyState > 2) && (!input.paused);\n if (!live && input.srcObject) {\n // if we want to continue and camera not ready, retry in 0.5sec, else just give up\n if (input.paused) log('camera paused');\n else if ((input.srcObject.getVideoTracks()[0].readyState === 'live') && (input.readyState <= 2)) setTimeout(() => runHumanDetect(input, canvas), 500);\n else log(`camera not ready: track state: ${input.srcObject?.getVideoTracks()[0].readyState} stream state: ${input.readyState}`);\n return;\n }\n status('');\n if (ui.useWorker) {\n // get image data from video as we cannot send html objects to webworker\n const offscreen = new OffscreenCanvas(canvas.width, canvas.height);\n const ctx = offscreen.getContext('2d');\n ctx.drawImage(input, 0, 0, input.width, input.height, 0, 0, canvas.width, canvas.height);\n const data = ctx.getImageData(0, 0, canvas.width, canvas.height);\n // perform detection in worker\n webWorker(input, data, canvas, userConfig);\n } else {\n human.detect(input, userConfig).then((result) => {\n if (result.error) log(result.error);\n else drawResults(input, result, canvas);\n });\n }\n}\n\n// main processing function when input is image, can use direct invocation or web worker\nasync function processImage(input) {\n timeStamp = performance.now();\n return new Promise((resolve) => {\n const image = new Image();\n image.onload = async () => {\n log('Processing image:', image.src);\n const canvas = document.getElementById('canvas');\n image.width = image.naturalWidth;\n image.height = image.naturalHeight;\n canvas.width = human.config.filter.width && human.config.filter.width > 0 ? human.config.filter.width : image.naturalWidth;\n canvas.height = human.config.filter.height && human.config.filter.height > 0 ? human.config.filter.height : image.naturalHeight;\n const result = await human.detect(image, userConfig);\n drawResults(image, result, canvas);\n const thumb = document.createElement('canvas');\n thumb.className = 'thumbnail';\n thumb.width = window.innerWidth / (ui.columns + 0.1);\n thumb.height = canvas.height / (window.innerWidth / thumb.width);\n const ctx = thumb.getContext('2d');\n ctx.drawImage(canvas, 0, 0, canvas.width, canvas.height, 0, 0, thumb.width, thumb.height);\n document.getElementById('samples-container').appendChild(thumb);\n image.src = '';\n resolve(true);\n };\n image.src = input;\n });\n}\n\n// just initialize everything and call main function\nasync function detectVideo() {\n human.config.videoOptimized = true;\n document.getElementById('samples-container').style.display = 'none';\n document.getElementById('canvas').style.display = 'block';\n const video = document.getElementById('video');\n const canvas = document.getElementById('canvas');\n ui.baseLineHeight = ui.baseLineHeightProto;\n if ((video.srcObject !== null) && !video.paused) {\n document.getElementById('play').style.display = 'block';\n status('paused');\n video.pause();\n } else {\n await setupCamera();\n document.getElementById('play').style.display = 'none';\n status('');\n video.play();\n }\n runHumanDetect(video, canvas);\n}\n\n// just initialize everything and call main function\nasync function detectSampleImages() {\n document.getElementById('play').style.display = 'none';\n human.config.videoOptimized = false;\n const size = 12 + Math.trunc(12 * ui.columns * window.innerWidth / document.body.clientWidth);\n ui.baseFont = ui.baseFontProto.replace(/{size}/, `${size}px`);\n ui.baseLineHeight = ui.baseLineHeightProto * ui.columns;\n document.getElementById('canvas').style.display = 'none';\n document.getElementById('samples-container').style.display = 'block';\n log('Running detection of sample images');\n status('processing images');\n document.getElementById('samples-container').innerHTML = '';\n for (const sample of ui.samples) await processImage(sample);\n status('');\n}\n\nfunction setupMenu() {\n menu = new Menu(document.body, '', { top: '1rem', right: '1rem' });\n const btn = menu.addButton('start video', 'pause video', () => detectVideo());\n menu.addButton('process images', 'process images', () => detectSampleImages());\n document.getElementById('play').addEventListener('click', () => btn.click());\n\n menu.addHTML('
    ');\n menu.addList('backend', ['cpu', 'webgl', 'wasm', 'webgpu'], human.config.backend, (val) => human.config.backend = val);\n menu.addBool('async operations', human.config, 'async', (val) => human.config.async = val);\n menu.addBool('enable profiler', human.config, 'profile', (val) => human.config.profile = val);\n menu.addBool('memory shield', human.config, 'deallocate', (val) => human.config.deallocate = val);\n menu.addBool('use web worker', ui, 'useWorker');\n menu.addHTML('
    ');\n menu.addLabel('enabled models');\n menu.addBool('face detect', human.config.face, 'enabled');\n menu.addBool('face mesh', human.config.face.mesh, 'enabled');\n menu.addBool('face iris', human.config.face.iris, 'enabled');\n menu.addBool('face age', human.config.face.age, 'enabled');\n menu.addBool('face gender', human.config.face.gender, 'enabled');\n menu.addBool('face emotion', human.config.face.emotion, 'enabled');\n menu.addBool('body pose', human.config.body, 'enabled');\n menu.addBool('hand pose', human.config.hand, 'enabled');\n menu.addBool('gesture analysis', human.config.gesture, 'enabled');\n\n menu.addHTML('
    ');\n menu.addLabel('model parameters');\n menu.addRange('max objects', human.config.face.detector, 'maxFaces', 1, 50, 1, (val) => {\n human.config.face.detector.maxFaces = parseInt(val);\n human.config.body.maxDetections = parseInt(val);\n human.config.hand.maxHands = parseInt(val);\n });\n menu.addRange('skip frames', human.config.face.detector, 'skipFrames', 0, 50, 1, (val) => {\n human.config.face.detector.skipFrames = parseInt(val);\n human.config.face.emotion.skipFrames = parseInt(val);\n human.config.face.age.skipFrames = parseInt(val);\n human.config.hand.skipFrames = parseInt(val);\n });\n menu.addRange('min confidence', human.config.face.detector, 'minConfidence', 0.0, 1.0, 0.05, (val) => {\n human.config.face.detector.minConfidence = parseFloat(val);\n human.config.face.gender.minConfidence = parseFloat(val);\n human.config.face.emotion.minConfidence = parseFloat(val);\n human.config.hand.minConfidence = parseFloat(val);\n });\n menu.addRange('score threshold', human.config.face.detector, 'scoreThreshold', 0.1, 1.0, 0.05, (val) => {\n human.config.face.detector.scoreThreshold = parseFloat(val);\n human.config.hand.scoreThreshold = parseFloat(val);\n human.config.body.scoreThreshold = parseFloat(val);\n });\n menu.addRange('overlap', human.config.face.detector, 'iouThreshold', 0.1, 1.0, 0.05, (val) => {\n human.config.face.detector.iouThreshold = parseFloat(val);\n human.config.hand.iouThreshold = parseFloat(val);\n });\n\n menu.addHTML('
    ');\n menu.addChart('FPS', 'FPS');\n\n menuFX = new Menu(document.body, '', { top: '1rem', right: '18rem' });\n menuFX.addLabel('ui options');\n menuFX.addBool('crop & scale', ui, 'crop', () => setupCamera());\n menuFX.addBool('camera front/back', ui, 'facing', () => setupCamera());\n menuFX.addBool('use 3D depth', ui, 'useDepth');\n menuFX.addBool('draw boxes', ui, 'drawBoxes');\n menuFX.addBool('draw polygons', ui, 'drawPolygons');\n menuFX.addBool('Fill Polygons', ui, 'fillPolygons');\n menuFX.addBool('draw points', ui, 'drawPoints');\n menuFX.addHTML('
    ');\n menuFX.addLabel('image processing');\n menuFX.addBool('enabled', human.config.filter, 'enabled');\n ui.menuWidth = menuFX.addRange('image width', human.config.filter, 'width', 0, 3840, 10, (val) => human.config.filter.width = parseInt(val));\n ui.menuHeight = menuFX.addRange('image height', human.config.filter, 'height', 0, 2160, 10, (val) => human.config.filter.height = parseInt(val));\n menuFX.addRange('brightness', human.config.filter, 'brightness', -1.0, 1.0, 0.05, (val) => human.config.filter.brightness = parseFloat(val));\n menuFX.addRange('contrast', human.config.filter, 'contrast', -1.0, 1.0, 0.05, (val) => human.config.filter.contrast = parseFloat(val));\n menuFX.addRange('sharpness', human.config.filter, 'sharpness', 0, 1.0, 0.05, (val) => human.config.filter.sharpness = parseFloat(val));\n menuFX.addRange('blur', human.config.filter, 'blur', 0, 20, 1, (val) => human.config.filter.blur = parseInt(val));\n menuFX.addRange('saturation', human.config.filter, 'saturation', -1.0, 1.0, 0.05, (val) => human.config.filter.saturation = parseFloat(val));\n menuFX.addRange('hue', human.config.filter, 'hue', 0, 360, 5, (val) => human.config.filter.hue = parseInt(val));\n menuFX.addRange('pixelate', human.config.filter, 'pixelate', 0, 32, 1, (val) => human.config.filter.pixelate = parseInt(val));\n menuFX.addBool('negative', human.config.filter, 'negative');\n menuFX.addBool('sepia', human.config.filter, 'sepia');\n menuFX.addBool('vintage', human.config.filter, 'vintage');\n menuFX.addBool('kodachrome', human.config.filter, 'kodachrome');\n menuFX.addBool('technicolor', human.config.filter, 'technicolor');\n menuFX.addBool('polaroid', human.config.filter, 'polaroid');\n}\n\nasync function main() {\n log('Human: demo starting ...');\n setupMenu();\n document.getElementById('log').innerText = `Human: version ${human.version} TensorFlow/JS: version ${human.tf.version_core}`;\n // this is not required, just pre-loads all models\n if (ui.modelsPreload) {\n status('loading');\n await human.load(userConfig);\n }\n // this is not required, just pre-warms all models for faster initial inference\n if (ui.modelsWarmup) {\n status('initializing');\n const warmup = new ImageData(256, 256);\n await human.detect(warmup, userConfig);\n }\n status('human: ready');\n document.getElementById('loader').style.display = 'none';\n document.getElementById('play').style.display = 'block';\n}\n\nwindow.onload = main;\nwindow.onresize = setupCamera;\n"], - "mappings": "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;AACR,YAAuC,OAChC,EAAA,UACU,GAAiC;AAClD,WAAO,CAAC,GAAG;AAAM,aAAA,GAAU,GAAI;;;ACR5B,WAAqC,CAC1C,YAAY,IACZ,UAAU;AACR,YAAiC,OAC1B,EAAA;AACP,WAAO,CAAC,OAAO;AAAM,aAAA,GAAM,GAAI;;;ACI5B,WAAiD,CACtD,YAAY,IACZ,cAAc,CAAC,eACf,UAAU;AACD,YAAA,EAAA,QAEM;AACX,aAAO,GAAoB,GAAI;;AAEjC,WAAO,CAAC,GAAG;;AAIf;AAQE,iBAJ2B,GAAQ,GAAS,GAAU,SACrC,GAAO,GAAG,QACV,GAAa,GAAS,GAAO,GAAG,eAChC,EAAS,OAAO,EAAW,UAC/B,GAAG,IAAI,GAAU,EAAE;AAC9B,UAAa,GAAW,GAAY,IAAI;AAE1C,QAAa,GAAW,GAAY,GAAK,EAAS,OAAO;AACzD,YAAkB,GAAU;AAC5B,WAAO,GAAM,GAAY,GAAU;;AClC9B,WAAwC,CAC7C,YAAY,IACZ,UAAU;AACR,WAAO,CAAC,GAAG;AAAM,aAAA,GAAU;;;AC0F/B,WAAkC,CAChC,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA;AAGF,gBAA6B,QAAA,IAAA,KAAA,GAAA,QAAA;AAAxB,aAAoB,GAAA;AACvB,OAAiB;;AC9LnB,IAAO,UAAU,MAAM;AACrB,WAAA,KAAK,mBA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AU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,UAAU,UACV,WAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,SAAU,UACV,UAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,SAAU,UACV,UAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,SAAU,UACV,UAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,SAAU,UACV,UAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,SAAU,UACV,UAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,SAAU,UACV,UAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,SAAU,UACV,UAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,SAAU,UACV,UAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,SAAU,UACV,UAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,SAAU,UACV,UAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,SAAU,UACV,UAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,SAAU,UACV,UAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,SAAU,UACV,UAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,SAAU,UACV,UAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,SAAU,UACV,UAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,SAAU,UACV,UAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,SAAU,UACV,UAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,SAAU,UACV,UAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,SAAU,UACV,UAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,SAAU,UACV,UAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,SAAU,UACV,UAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,SAAU,UACV,UAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,SAAU,UACV,UAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,SAAU,UACV,UAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,SAAU,UACV,UAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,SAAU,UACV,UAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,SAAU,UACV,UAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,SAAU,UACV,UAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,SAAU,UACV,UAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,SAAU,UACV,UAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,SAAU,UACV,UAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,SAAU,UACV,UAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,SAAU,UACV,UAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,SAAU,UACV,UAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,SAAU,UACV,UAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,SAAU,UACV,UAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,SAAU,UACV,UAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,SAAU,UACV,UAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,SAAU,UACV,UAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,SAAU,UACV,UAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,SAAU,UACV,UAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,SAAU,UACV,UAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,SAAU,UACV,UAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,SAAU,UACV,UAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,SAAU,UACV,UAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,SAAU,UACV,UAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,SAAU,UACV,UAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,SAAU,UACV,UAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,SAAU,UACV,UAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,SAAU,UACV,UAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,SAAU,UACV,UAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,SAAU,UACV,UAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,SAAU,UACV,UAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,SAAU,UACV,UAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,SAAU,UACV,UAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,SAAU,UACV,UAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,SAAU,UACV,UAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,SAAU,UACV,UAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,SAAU,UACV,UAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,SAAU,UACV,UAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,SAAU,UACV,UAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,SAAU,UACV,UAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,SAAU,UACV,UAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,SAAU,UACV,UAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,SAAU,UACV,UAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,SAAU,UACV,UAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,SAAU,UACV,UAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,SAAU,UACV,UAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,SAAU,UACV,UAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,SAAU,UACV,UAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,SAAU,UACV,UAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,SAAU,UACV,UAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,SAAU,UACV,UAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,SAAU,UACV,UAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,SAAU,UACV,UAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,SAAU,UACV,UAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,SAAU,UACV,UAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,SAAU,UACV,UAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,SAAU,UACV,UAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,SAAU,UACV,UAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,SAAU,UACV,UAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,SAAU,UACV,UAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,SAAU,UACV,UAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,SAAU,UACV,UAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,SAAU,UACV,UAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,SAAU,UACV,UAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,SAAU,UACV,UAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,SAAU,UACV,UAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,SAAU,UACV,UAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,SAAU,UACV,UAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,SAAU,UACV,UAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,SAAU,UACV,UAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,SAAU,UACV,UAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,SAAU,UACV,UAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,SAAU,UACV,UAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,SAAU,UACV,UAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,SAAU,UACV,UAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,SAAU,UACV,UAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,SAAU,UACV,UAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,SAAU,UACV,UAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,SAAU,UACV,UAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,SAAU,UACV,UAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,SAAU,UACV,UAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,SAAU,UACV,UAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,SAAU,UACV,UAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,SAAU,UACV,UAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,SAAU,UACV,UAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,SAAU,UACV,UAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,SAAU,UACV,UAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,SAAU,UACV,UAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,SAAU,UACV,UAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,SAAU,UACV,UAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,SAAU,UACV,UAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,SAAU,UACV,UAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,SAAU,UACV,UAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,SAAU,UACV,UAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,SAAU,UACV,UAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,SAAU,UACV,UAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,SAAU,UACV,UAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,SAAU,UACV,UAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,SAAU,UACV,UAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,SAAU,UACV,UAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,SAAU,UACV,UAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,SAAU,UACV,UAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,SAAU,UACV,UAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,SAAU,UACV,UAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,SAAU,UACV,UAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,SAAU,UACV,UAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,SAAU,UACV,UAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,SAAU,UACV,UAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,SAAU,UACV,UAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,SAAU,UACV,UAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,SAAU,UACV,UAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,SAAU,UACV,UAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,SAAU,UACV,UAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,SAAU,UACV,UAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,SAAU,UACV,UAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,SAAU,UACV,UAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,SAAU,UACV,UAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,SAAU,UACV,UAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,SAAU,UACV,UAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,SAAU,UACV,UAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,SAAU,UACV,UAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,SAAU,UACV,UAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,SAAU,UACV,UAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,SAAU,UACV,UAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,SAAU,UACV,UAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,SAAU,UACV,UAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,SAAU,UACV,UAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,SAAU,UACV,UAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,SAAU,UACV,UAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,SAAU,UACV,UAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,SAAU,UACV,UAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,SAAU,UACV,UAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,SAAU,UACV,UAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,SAAU,UACV,UAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,SAAU,UACV,UAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,SAAU,UACV,UAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,SAAU,UACV,UAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,SAAU,UACV,UAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,SAAU,UACV,UAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,SAAU,UACV,UAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,SAAU,UACV,UAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,SAAU,UACV,UAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,SAAU,UACV,UAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,SAAU,UACV,UAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,SAAU,UACV,UAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,SAAU,UACV,UAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,SAAU,UACV,UAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,SAAU,UACV,UAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,SAAU,UACV,UAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,SAAU,UACV,UAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,SAAU,UACV,UAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,SAAU,UACV,UAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,SAAU,UACV,UAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,SAAU,UACV,UAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,SAAU,UACV,UAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,SAAU,UACV,UAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,SAAU,UACV,UAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,SAAU,UACV,UAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,SAAU,UACV,UAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,SAAU,UACV,UAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,SAAU,UACV,UAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,SAAU,UACV,UAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,SAAU,UACV,UAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,SAAU,UACV,UAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,SAAU,UACV,UAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,SAAU,UACV,UAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,SAAU,UACV,UAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,SAAU,UACV,UAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,SAAU,UACV,UAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,SAAU,UACV,UAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,SAAU,UACV,UAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,SAAU,UACV,UAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,SAAU,UACV,UAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,SAAU,UACV,UAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,SAAU,UACV,UAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,SAAU,UACV,UAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,SAAU,UACV,UAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,SAAU,UACV,UAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,SAAU,UACV,UAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,SAAU,UACV,UAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,SAAU,UACV,UAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,SAAU,UACV,UAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,SAAU,UACV,UAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,SAAU,UACV,UAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,SAAU,UACV,UAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,SAAU,UACV,UAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,SAAU,UACV,UAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,SAAU,UACV,UAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,SAAU,UACV,UAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,SAAU,UACV,UAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,SAAU,UACV,UAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,SAAU,UACV,UAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,SAAU,UACV,UAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,SAAU,UACV,UAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,SAAU,UACV,UAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,SAAU,UACV,UAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,SAAU,UACV,UAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,SAAU,UACV,UAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,SAAU,UACV,UAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,SAAU,UACV,UAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,SAAU,UACV,UAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,SAAU,UACV,UAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,SAAU,UACV,UAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,SAAU,UACV,UAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,SAAU,UACV,UAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,SAAU,UACV,UAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,SAAU,UACV,UAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,SAAU,UACV,UAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,SAAU,UACV,UAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,SAAU,UACV,UAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,SAAU,UACV,UAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,SAAU,UACV,UAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,SAAU,UACV,UAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,SAAU,UACV,UAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,SAAU,UACV,UAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,SAAU,UACV,UAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,SAAU,UACV,UAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,SAAU,UACV,UAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,SAAU,UACV,UAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,SAAU,UACV,UAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,SAAU,UACV,UAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,SAAU,UACV,UAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,SAAU,UACV,UAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,SAAU,UACV,UAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,SAAU,UACV,UAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,SAAU,UACV,UAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,SAAU,UACV,UAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,SAAU,UACV,UAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,SAAU,UACV,UAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,SAAU,UACV,UAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,SAAU,UACV,UAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,SAAU,UACV,UAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,SAAU,UACV,UAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,SAAU,UACV,UAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,SAAU,UACV,UAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,SAAU,UACV,UAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,SAAU,UACV,UAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,SAAU,UACV,UAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,SAAU,UACV,UAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,SAAU,UACV,UAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,SAAU,UACV,UAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,SAAU,UACV,UAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,SAAU,UACV,UAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,SAAU,UACV,UAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,SAAU,UACV,UAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,SAAU,UACV,UAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,SAAU,UACV,UAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,SAAU,UACV,UAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,SAAU,UACV,UAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,SAAU,UACV,UAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,SAAU,UACV,UAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,SAAU,UACV,UAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,SAAU,UACV,UAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,SAAU,UACV,UAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,SAAU,UACV,UAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,SAAU,UACV,UAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,SAAU,UACV,UAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,SAAU,UACV,UAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,SAAU,UACV,UAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,SAAU,UACV,UAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,SAAU,UACV,UAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,SAAU,UACV,UAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,SAAU,UACV,UAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,SAAU,UACV,UAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,SAAU,UACV,UAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,SAAU,UACV,UAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,SAAU,UACV,UAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,SAAU,UACV,UAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,SAAU,UACV,UAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,SAAU,UACV,UAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,SAAU,UACV,UAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,SAAU,UACV,UAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,SAAU,UACV,UAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,SAAU,UACV,UAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,SAAU,UACV,UAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,SAAU,UACV,UAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,SAAU,UACV,UAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,SAAU,UACV,UAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,SAAU,UACV,UAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,SAAU,UACV,UAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,SAAU,UACV,UAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,SAAU,UACV,UAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,SAAU,UACV,UAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,SAAU,UACV,UAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,SAAU,UACV,UAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,SAAU,UACV,UAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,SAAU,UACV,UAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,SAAU,UACV,UAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,SAAU,UACV,UAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,SAAU,UACV,UAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,SAAU,UACV,UAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,SAAU,UACV,UAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,SAAU,UACV,UAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,SAAU,UACV,UAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,SAAU,UACV,UAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,SAAU,UACV,UAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,SAAU,UACV,UAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,SAAU,UACV,UAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,SAAU,UACV,UAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,SAAU,UACV,UAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,SAAU,UACV,UAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,SAAU,UACV,UAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,SAAU,UACV,UAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,SAAU,UACV,UAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,SAAU,UACV,UAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,SAAU,UACV,UAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,SAAU,UACV,UAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,SAAU,UACV,UAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,SAAU,UACV,UAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,SAAU,UACV,UAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,SAAU,UACV,UAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,SAAU,UACV,UAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,SAAU,UACV,UAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,SAAU,UACV,UAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,SAAU,UACV,UAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,SAAU,UACV,UAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,SAAU,UACV,UAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,SAAU,UACV,UAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,SAAU,UACV,UAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,SAAU,UACV,UAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,SAAU,UACV,UAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,SAAU,UACV,UAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,SAAU,UACV,UAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,SAAU,UACV,UAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,SAAU,UACV,UAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,SAAU,UACV,UAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,SAAU,UACV,UAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,SAAU,UACV,UAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,SAAU,UACV,UAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,SAAU,UACV,UAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,SAAU,UACV,UAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,SAAU,UACV,UAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,SAAU,UACV,UAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,SAAU,UACV,UAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,SAAU,UACV,UAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,SAAU,UACV,UAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,SAAU,UACV,UAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,SAAU,UACV,UAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,SAAU,UACV,UAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,SAAU,UACV,UAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,SAAU,UACV,UAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,SAAU,UACV,UAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,SAAU,UACV,UAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,SAAU,UACV,UAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,SAAU,UACV,UAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,SAAU,UACV,UAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,SAAU,UACV,UAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,SAAU,UACV,UAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,SAAU,UACV,UAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,SAAU,UACV,UAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,SAAU,UACV,UAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,SAAU,UACV,UAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,SAAU,UACV,UAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,SAAU,UACV,UAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,SAAU,UACV,UAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,SAAU,UACV,UAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,SAAU,UACV,UAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,SAAU,UACV,UAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,SAAU,UACV,UAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,SAAU,UACV,UAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,SAAU,UACV,UAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,SAAU,UACV,UAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,SAAU,UACV,UAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,SAAU,UACV,UAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,SAAU,UACV,UAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,SAAU,UACV,UAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,SAAU,UACV,UAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,SAAU,UACV,UAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,SAAU,UACV,UAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,SAAU,UACV,UAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,SAAU,UACV,UAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,SAAU,UACV,UAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,SAAU,UACV,UAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,SAAU,UACV,UAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,SAAU,UACV,UAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,SAAU,UACV,UAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,SAAU,UACV,UAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,SAAU,UACV,UAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,SAAU,UACV,UAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,SAAU,UACV,UAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,SAAU,UACV,UAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,SAAU,UACV,UAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,SAAU,UACV,UAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,SAAU,UACV,UAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,SAAU,UACV,UAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,SAAU,UACV,UAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,SAAU,UACV,UAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,SAAU,UACV,UAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,SAAU,UACV,UAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,SAAU,UACV,UAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,SAAU,UACV,UAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,SAAU,UACV,UAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,SAAU,UACV,UAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,SAAU,UACV,UAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,SAAU,UACV,UAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,SAAU,UACV,UAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,SAAU,UACV,UAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,SAAU,UACV,UAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,SAAU,UACV,UAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,SAAU,UACV,UAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,SAAU,UACV,UAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,SAAU,UACV,UAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,SAAU,UACV,UAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,SAAU,UACV,UAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,SAAU,UACV,UAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,SAAU,UACV,UAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,SAAU,UACV,UAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,SAAU,UACV,UAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,SAAU,UACV,UAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,SAAU,UACV,UAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,SAAU,UACV,UAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,SAAU,UACV,UAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,SAAU,UACV,UAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,SAAU,UACV,UAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,SAAU,UACV,UAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,SAAU,UACV,UAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,SAAU,UACV,UAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,SAAU,UACV,UAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,SAAU,UACV,UAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,SAAU,UACV,UAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,SAAU,UACV,UAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,SAAU,UACV,UAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,SAAU,UACV,UAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,SAAU,UACV,UAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,SAAU,UACV,UAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,SAAU,UACV,UAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,SAAU,UACV,UAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,SAAU,UACV,UAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,SAAU,UACV,UAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,SAAU,UACV,UAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,SAAU,UACV,UAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,SAAU,UACV,UAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,SAAU,UACV,UAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,SAAU,UACV,UAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,SAAU,UACV,UAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,SAAU,UACV,UAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,SAAU,UACV,UAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,SAAU,UACV,UAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,SAAU,UACV,UAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,SAAU,UACV,UAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,SAAU,UACV,UAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,SAAU,UACV,UAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,SAAU,UACV,UAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,SAAU,UACV,UAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,SAAU,UACV,UAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,SAAU,UACV,UAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,SAAU,UACV,UAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,SAAU,UACV,UAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,SAAU,UACV,UAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,SAAU,UACV,UAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,SAAU,UACV,UAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,SAAU,UACV,UAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,SAAU,UACV,UAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,SAAU,UACV,UAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,SAAU,UACV,UAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,SAAU,UACV,UAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,SAAU,UACV,UAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,SAAU,UACV,UAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,SAAU,UACV,UAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,SAAU,UACV,UAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,SAAU,UACV,UAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,SAAU,UACV,UAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,SAAU,UACV,UAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,SAAU,UACV,UAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,SAAU,UACV,UAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,SAAU,UACV,UAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,SAAU,UACV,UAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,SAAU,UACV,UAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,SAAU,UACV,UAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,SAAU,UACV,UAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,SAAU,UACV,UAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,SAAU,UACV,UAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,SAAU,UACV,UAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,SAAU,UACV,UAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,SAAU,UACV,UAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,SAAU,UACV,UAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,SAAU,UACV,UAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,SAAU,UACV,UAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,SAAU,UACV,UAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,SAAU,UACV,UAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,SAAU,UACV,UAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,SAAU,UACV,UAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,SAAU,UACV,UAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,SAAU,UACV,UAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,SAAU,UACV,UAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,SAAU,UACV,UAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,SAAU,UACV,UAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,SAAU,UACV,UAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,SAAU,UACV,UAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,SAAU,UACV,UAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,QAAU,UACV,SAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,QAAU,UACV,SAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,QAAU,UACV,SAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,QAAU,UACV,SAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,QAAU,UACV,SAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,QAAU,UACV,SAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,QAAU,UACV,SAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,QAAU,UACV,SAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,QAAU,UACV,SAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,QAAU,UACV,SAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,QAAU,UACV,SAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,QAAU,UACV,SAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,QAAU,UACV,SAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,QAAU,UACV,SAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,QAAU,UACV,SAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,QAAU,UACV,SAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,QAAU,UACV,SAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,QAAU,UACV,SAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,QAAU,UACV,SAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,QAAU,UACV,SAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,QAAU,UACV,SAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,QAAU,UACV,SAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,QAAU,UACV,SAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,QAAU,UACV,SAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,QAAU,UACV,SAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,QAAU,UACV,SAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,QAAU,UACV,SAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,QAAU,UACV,SAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,QAAU,UACV,SAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,QAAU,UACV,SAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,QAAU,UACV,SAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,QAAU,UACV,SAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,QAAU,UACV,SAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,QAAU,UACV,SAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,QAAU,UACV,SAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,QAAU,UACV,SAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,QAAU,UACV,SAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,QAAU,UACV,SAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,QAAU,UACV,SAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,QAAU,UACV,SAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,QAAU,UACV,SAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,QAAU,UACV,SAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,QAAU,UACV,SAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,QAAU,UACV,SAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,QAAU,UACV,SAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,QAAU,UACV,SAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,QAAU,UACV,SAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,QAAU,UACV,SAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,QAAU,UACV,SAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,QAAU,UACV,SAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,QAAU,UACV,SAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,QAAU,UACV,SAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,QAAU,UACV,SAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,QAAU,UACV,SAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,QAAU,UACV,SAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,QAAU,UACV,SAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,QAAU,UACV,SAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,QAAU,UACV,SAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,QAAU,UACV,SAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,QAAU,UACV,SAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,QAAU,UACV,SAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,QAAU,UACV,SAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,QAAU,UACV,SAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,QAAU,UACV,SAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,QAAU,UACV,SAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,QAAU,UACV,SAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,QAAU,UACV,SAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,QAAU,UACV,SAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,QAAU,UACV,SAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,QAAU,UACV,SAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,QAAU,UACV,SAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,QAAU,UACV,SAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,QAAU,UACV,SAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,QAAU,UACV,SAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,QAAU,UACV,SAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,QAAU,UACV,SAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,QAAU,UACV,SAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,QAAU,UACV,SAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,QAAU,UACV,SAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,QAAU,UACV,SAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,QAAU,UACV,SAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,QAAU,UACV,SAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,QAAU,UACV,SAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,QAAU,UACV,SAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,QAAU,UACV,SAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,QAAU,UACV,SAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,QAAU,UACV,SAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,QAAU,UACV,SAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,QAAU,UACV,SAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,QAAU,UACV,SAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,QAAU,UACV,SAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,QAAU,UACV,SAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,QAAU,UACV,SAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,QAAU,UACV,SAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,QAAU,UACV,SAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,QAAU,UACV,SAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,QAAU,UACV,SAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,QAAU,UACV,SAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,QAAU,UACV,SAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,QAAU,UACV,SAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,QAAU,UACV,SAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,QAAU,UACV,SAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,QAAU,UACV,SAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,QAAU,UACV,SAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,QAAU,UACV,SAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,QAAU,UACV,SAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,QAAU,UACV,SAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,QAAU,UACV,SAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,QAAU,UACV,SAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,QAAU,UACV,SAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,QAAU,UACV,SAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,QAAU,UACV,SAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,QAAU,UACV,SAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,QAAU,UACV,SAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,QAAU,UACV,SAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,QAAU,UACV,SAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,QAAU,UACV,SAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,QAAU,UACV,SAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,QAAU,UACV,SAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,QAAU,UACV,SAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,QAAU,UACV,SAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,QAAU,UACV,SAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,QAAU,UACV,SAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,QAAU,UACV,SAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,QAAU,UACV,SAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,QAAU,UACV,SAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,QAAU,UACV,SAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,QAAU,UACV,SAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,QAAU,UACV,SAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,QAAU,UACV,SAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,QAAU,UACV,SAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,QAAU,UACV,SAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,QAAU,UACV,SAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,QAAU,UACV,SAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,QAAU,UACV,SAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,QAAU,UACV,SAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,QAAU,UACV,SAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,QAAU,UACV,SAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,QAAU,UACV,SAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,QAAU,UACV,SAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,QAAU,UACV,SAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,QAAU,UACV,SAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,QAAU,UACV,SAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,QAAU,UACV,SAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,QAAU,UACV,SAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,QAAU,UACV,SAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,QAAU,UACV,SAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,QAAU,UACV,SAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,QAAU,UACV,SAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,QAAU,UACV,SAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,QAAU,UACV,SAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,QAAU,UACV,SAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,QAAU,UACV,SAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,QAAU,UACV,SAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,QAAU,UACV,SAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,QAAU,UACV,SAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,QAAU,UACV,SAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,QAAU,UACV,SAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,QAAU,UACV,SAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,QAAU,UACV,SAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,QAAU,UACV,SAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,QAAU,UACV,SAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,QAAU,UACV,SAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,QAAU,UACV,SAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,QAAU,UACV,SAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,QAAU,UACV,SAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,QAAU,UACV,SAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,QAAU,UACV,SAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,QAAU,UACV,SAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,QAAU,UACV,SAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,QAAU,UACV,SAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,QAAU,UACV,SAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,QAAU,UACV,SAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,QAAU,UACV,SAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,QAAU,UACV,SAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,QAAU,UACV,SAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,QAAU,UACV,SAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,QAAU,UACV,SAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,QAAU,UACV,SAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,QAAU,UACV,SAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,QAAU,UACV,SAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,QAAU,UACV,SAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,QAAU,UACV,SAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,QAAU,UACV,SAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,QAAU,UACV,SAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,QAAU,UACV,SAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,QAAU,UACV,SAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,QAAU,UACV,SAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,QAAU,UACV,SAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,QAAU,UACV,SAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,QAAU,UACV,SAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,QAAU,UACV,SAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,QAAU,UACV,SAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,QAAU,UACV,SAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,QAAU,UACV,SAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,QAAU,UACV,SAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,QAAU,UACV,SAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,QAAU,UACV,SAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,QAAU,UACV,SAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,QAAU,UACV,SAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,QAAU,UACV,SAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,QAAU,UACV,SAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,QAAU,UACV,SAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,QAAU,UACV,SAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,QAAU,UACV,SAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,QAAU,UACV,SAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,QAAU,UACV,SAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,QAAU,UACV,SAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,QAAU,UACV,SAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,QAAU,UACV,SAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,QAAU,UACV,SAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,QAAU,UACV,SAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,QAAU,UACV,SAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,QAAU,UACV,SAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,QAAU,UACV,SAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,QAAU,UACV,SAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,QAAU,UACV,SAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,QAAU,UACV,SAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,QAAU,UACV,SAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,QAAU,UACV,SAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,QAAU,UACV,SAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,QAAU,UACV,SAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,QAAU,UACV,SAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,QAAU,UACV,SAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,QAAU,UACV,SAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,QAAU,UACV,SAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,QAAU,UACV,SAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,QAAU,UACV,SAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,QAAU,UACV,SAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,QAAU,UACV,SAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,QAAU,UACV,SAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,QAAU,UACV,SAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,QAAU,UACV,SAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,QAAU,UACV,SAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,QAAU,UACV,SAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,QAAU,UACV,SAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,QAAU,UACV,SAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,QAAU,UACV,SAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,QAAU,UACV,SAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,QAAU,UACV,SAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,QAAU,UACV,SAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,QAAU,UACV,SAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,QAAU,UACV,SAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,QAAU,UACV,SAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,QAAU,UACV,SAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,QAAU,UACV,SAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,QAAU,UACV,SAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,QAAU,UACV,SAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,QAAU,UACV,SAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,QAAU,UACV,SAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,QAAU,UACV,SAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,QAAU,UACV,SAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,QAAU,UACV,SAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,QAAU,UACV,SAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,QAAU,UACV,SAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,QAAU,UACV,SAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,QAAU,UACV,SAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,QAAU,UACV,SAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,QAAU,UACV,SAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,QAAU,UACV,SAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,QAAU,UACV,SAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,QAAU,UACV,SAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,QAAU,UACV,SAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,QAAU,UACV,SAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,QAAU,UACV,SAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,QAAU,UACV,SAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,QAAU,UACV,SAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,QAAU,UACV,SAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,QAAU,UACV,SAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,QAAU,UACV,SAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,QAAU,UACV,SAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,QAAU,UACV,SAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,QAAU,UACV,SAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,QAAU,UACV,SAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,QAAU,UACV,SAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,QAAU,UACV,SAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,QAAU,UACV,SAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,QAAU,UACV,SAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,QAAU,UACV,SAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,QAAU,UACV,SAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,QAAU,UACV,SAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,QAAU,UACV,SAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,QAAU,UACV,SAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,QAAU,UACV,SAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,QAAU,UACV,SAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,QAAU,UACV,SAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,QAAU,UACV,SAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,QAAU,UACV,SAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,QAAU,UACV,SAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,QAAU,UACV,SAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,QAAU,UACV,SAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,QAAU,UACV,SAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,QAAU,UACV,SAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,QAAU,UACV,SAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,QAAU,UACV,SAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,QAAU,UACV,SAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,QAAU,UACV,SAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,QAAU,UACV,SAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,QAAU,UACV,SAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,QAAU,UACV,SAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,QAAU,UACV,SAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,QAAU,UACV,SAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,QAAU,UACV,SAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,QAAU,UACV,SAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,QAAU,UACV,SAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,QAAU,UACV,SAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,QAAU,UACV,SAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,QAAU,UACV,SAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,QAAU,UACV,SAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,QAAU,UACV,SAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,QAAU,UACV,SAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,QAAU,UACV,SAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,QAAU,UACV,SAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,QAAU,UACV,SAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,QAAU,UACV,SAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,QAAU,UACV,SAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,QAAU,UACV,SAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,QAAU,UACV,SAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,QAAU,UACV,SAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,QAAU,UACV,SAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,QAAU,UACV,SAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,QAAU,UACV,SAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,QAAU,UACV,SAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,QAAU,UACV,SAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,QAAU,UACV,SAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,QAAU,UACV,SAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,QAAU,UACV,SAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,QAAU,UACV,SAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,QAAU,UACV,SAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,QAAU,UACV,SAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,QAAU,UACV,SAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,QAAU,UACV,SAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,QAAU,UACV,SAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,QAAU,UACV,SAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,QAAU,UACV,SAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,QAAU,UACV,SAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,QAAU,UACV,SAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,QAAU,UACV,SAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,QAAU,UACV,SAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,QAAU,UACV,SAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,QAAU,UACV,SAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,QAAU,UACV,SAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,QAAU,UACV,SAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,QAAU,UACV,SAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,QAAU,UACV,SAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,QAAU,UACV,SAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,QAAU,UACV,SAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,QAAU,UACV,SAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,QAAU,UACV,SAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,QAAU,UACV,SAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,QAAU,UACV,SAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,QAAU,UACV,SAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,QAAU,UACV,SAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,QAAU,UACV,SAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,QAAU,UACV,SAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,QAAU,UACV,SAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,QAAU,UACV,SAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,QAAU,UACV,SAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,QAAU,UACV,SAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,QAAU,UACV,SAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,QAAU,UACV,SAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,QAAU,UACV,SAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,QAAU,UACV,SAAU,CAAA,GAAA,GAGV,GAAG,GACH,UACA,QAAU,UACV,SAAU,CAAA,GAAA,GAGV,GA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", + "sourcesContent": ["", "", "", "/**\n * @license\n * Copyright 2020 Google LLC. 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 *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\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 * =============================================================================\n */\n\nimport {Conv2DInfo, Conv3DInfo} from '../ops/conv_util';\nimport {FusedBatchMatMulConfig, FusedConv2DConfig} from '../ops/fused_types';\nimport {Backend, DataId, Scalar, Tensor, Tensor1D, Tensor2D, Tensor3D, Tensor4D, Tensor5D} from '../tensor';\nimport {BackendValues, DataType, Rank, ShapeMap} from '../types';\n\nexport const EPSILON_FLOAT32 = 1e-7;\nexport const EPSILON_FLOAT16 = 1e-4;\n\n// Required information for all backends.\nexport interface BackendTimingInfo {\n kernelMs: number|{error: string};\n getExtraProfileInfo?(): string; // a field for additional timing information\n // e.g. packing / unpacking for WebGL backend\n}\n\nexport interface TensorStorage {\n read(dataId: DataId): Promise;\n readSync(dataId: DataId): BackendValues;\n disposeData(dataId: DataId): void;\n write(values: BackendValues, shape: number[], dtype: DataType): DataId;\n move(dataId: DataId, values: BackendValues, shape: number[], dtype: DataType):\n void;\n memory(): {unreliable: boolean;}; // Backend-specific information.\n /** Returns number of data ids currently in the storage. */\n numDataIds(): number;\n}\n\n/** Convenient class for storing tensor-related data. */\nexport class DataStorage {\n private data = new WeakMap();\n private dataIdsCount = 0;\n\n constructor(private backend: KernelBackend, private dataMover: DataMover) {}\n\n get(dataId: DataId) {\n if (!this.data.has(dataId)) {\n this.dataMover.moveData(this.backend, dataId);\n }\n return this.data.get(dataId);\n }\n\n set(dataId: DataId, value: T): void {\n this.dataIdsCount++;\n this.data.set(dataId, value);\n }\n\n has(dataId: DataId): boolean {\n return this.data.has(dataId);\n }\n\n delete(dataId: DataId): boolean {\n this.dataIdsCount--;\n return this.data.delete(dataId);\n }\n\n numDataIds(): number {\n return this.dataIdsCount;\n }\n}\n\nexport interface DataMover {\n /**\n * To be called by backends whenever they see a dataId that they don't own.\n * Upon calling this method, the mover will fetch the tensor from another\n * backend and register it with the current active backend.\n */\n moveData(backend: KernelBackend, dataId: DataId): void;\n}\n\nexport interface BackendTimer {\n time(f: () => void): Promise;\n}\n\n/**\n * The interface that defines the kernels that should be implemented when\n * adding a new backend. New backends don't need to implement every one of the\n * methods, this can be done gradually (throw an error for unimplemented\n * methods).\n */\nexport class KernelBackend implements TensorStorage, Backend, BackendTimer {\n time(f: () => void): Promise {\n return notYetImplemented('time');\n }\n read(dataId: object): Promise {\n return notYetImplemented('read');\n }\n readSync(dataId: object): BackendValues {\n return notYetImplemented('readSync');\n }\n numDataIds(): number {\n return notYetImplemented('numDataIds');\n }\n disposeData(dataId: object): void {\n return notYetImplemented('disposeData');\n }\n write(values: BackendValues, shape: number[], dtype: DataType): DataId {\n return notYetImplemented('write');\n }\n move(dataId: DataId, values: BackendValues, shape: number[], dtype: DataType):\n void {\n return notYetImplemented('move');\n }\n memory(): {unreliable: boolean; reasons?: string[]} {\n return notYetImplemented('memory');\n }\n /** Returns the highest precision for floats in bits (e.g. 16 or 32) */\n floatPrecision(): 16|32 {\n return notYetImplemented('floatPrecision');\n }\n /** Returns the smallest representable number. */\n epsilon(): number {\n return this.floatPrecision() === 32 ? EPSILON_FLOAT32 : EPSILON_FLOAT16;\n }\n\n batchMatMul(\n a: Tensor3D, b: Tensor3D, transposeA: boolean,\n transposeB: boolean): Tensor3D {\n return notYetImplemented('batchMatMul');\n }\n\n fusedBatchMatMul(\n {a, b, transposeA, transposeB, bias, activation, preluActivationWeights}:\n FusedBatchMatMulConfig): Tensor3D {\n return notYetImplemented('fusedBatchMatMul');\n }\n\n slice(x: T, begin: number[], size: number[]): T {\n return notYetImplemented('slice');\n }\n stridedSlice(\n x: T, begin: number[], end: number[], strides: number[]): T {\n return notYetImplemented('stridedSlice');\n }\n unstack(x: Tensor, axis: number): Tensor[] {\n return notYetImplemented('unstack');\n }\n reverse(a: T, axis: number[]): T {\n return notYetImplemented('reverse');\n }\n\n concat(tensors: Tensor[], axis: number): Tensor {\n return notYetImplemented('concat');\n }\n\n neg(a: T): T {\n return notYetImplemented('neg');\n }\n\n add(a: Tensor, b: Tensor): Tensor {\n return notYetImplemented('add');\n }\n addN(tensors: T[]): T {\n return notYetImplemented('addN');\n }\n subtract(a: Tensor, b: Tensor): Tensor {\n return notYetImplemented('subtract');\n }\n multiply(a: Tensor, b: Tensor): Tensor {\n return notYetImplemented('multiply');\n }\n realDivide(a: Tensor, b: Tensor): Tensor {\n return notYetImplemented('realDivide');\n }\n floorDiv(a: Tensor, b: Tensor): Tensor {\n return notYetImplemented('floorDiv');\n }\n\n sum(x: Tensor, axes: number[]): Tensor {\n return notYetImplemented('sum');\n }\n prod(x: Tensor, axes: number[]): Tensor {\n return notYetImplemented('prod');\n }\n\n unsortedSegmentSum(\n x: T, segmentIds: Tensor1D, numSegments: number): Tensor {\n return notYetImplemented('unsortedSegmentSum');\n }\n\n argMin(x: Tensor, axis: number): Tensor {\n return notYetImplemented('argMin');\n }\n argMax(x: Tensor, axis: number): Tensor {\n return notYetImplemented('argMax');\n }\n\n equal(a: Tensor, b: Tensor): Tensor {\n return notYetImplemented('equal');\n }\n notEqual(a: Tensor, b: Tensor): Tensor {\n return notYetImplemented('notEqual');\n }\n\n less(a: Tensor, b: Tensor): Tensor {\n return notYetImplemented('less');\n }\n lessEqual(a: Tensor, b: Tensor): Tensor {\n return notYetImplemented('lessEqual');\n }\n\n greater(a: Tensor, b: Tensor): Tensor {\n return notYetImplemented('greater');\n }\n greaterEqual(a: Tensor, b: Tensor): Tensor {\n return notYetImplemented('greaterEqual');\n }\n\n logicalNot(a: T): T {\n return notYetImplemented('logicalNot');\n }\n logicalAnd(a: Tensor, b: Tensor): Tensor {\n return notYetImplemented('logicalAnd');\n }\n logicalOr(a: Tensor, b: Tensor): Tensor {\n return notYetImplemented('logicalOr');\n }\n\n where(condition: Tensor): Tensor2D {\n return notYetImplemented('where');\n }\n select(condition: Tensor, a: Tensor, b: Tensor): Tensor {\n return notYetImplemented('select');\n }\n\n topk(x: T, k: number, sorted: boolean): [T, T] {\n return notYetImplemented('topk');\n }\n\n min(x: Tensor, axes: number[]): Tensor {\n return notYetImplemented('min');\n }\n minimum(a: Tensor, b: Tensor): Tensor {\n return notYetImplemented('minimum');\n }\n\n mod(a: Tensor, b: Tensor): Tensor {\n return notYetImplemented('mod');\n }\n\n max(x: Tensor, axes: number[]): Tensor {\n return notYetImplemented('max');\n }\n maximum(a: Tensor, b: Tensor): Tensor {\n return notYetImplemented('maximum');\n }\n\n all(x: Tensor, axes: number[]): Tensor {\n return notYetImplemented('all');\n }\n any(x: Tensor, axes: number[]): Tensor {\n return notYetImplemented('any');\n }\n\n squaredDifference(a: Tensor, b: Tensor): Tensor {\n return notYetImplemented('squaredDifference');\n }\n\n ceil(x: T): T {\n return notYetImplemented('ceil');\n }\n floor(x: T): T {\n return notYetImplemented('floor');\n }\n round(x: T): T {\n return notYetImplemented('round');\n }\n\n sign(x: T): T {\n return notYetImplemented('sign');\n }\n\n isNaN(x: T): T {\n return notYetImplemented('isNaN');\n }\n isInf(x: T): T {\n return notYetImplemented('isInf');\n }\n isFinite(x: T): T {\n return notYetImplemented('isFinite');\n }\n\n pow(a: T, b: Tensor): T {\n return notYetImplemented('pow');\n }\n exp(x: T): T {\n return notYetImplemented('exp');\n }\n expm1(x: T): T {\n return notYetImplemented('expm1');\n }\n softmax(x: T, dim: number): T {\n return notYetImplemented('softmax');\n }\n log(x: T): T {\n return notYetImplemented('log');\n }\n log1p(x: T): T {\n return notYetImplemented('log1p');\n }\n sqrt(x: T): T {\n return notYetImplemented('sqrt');\n }\n rsqrt(x: T): T {\n return notYetImplemented('rsqrt');\n }\n square(x: T): T {\n return notYetImplemented('square');\n }\n reciprocal(x: T): T {\n return notYetImplemented('reciprocal');\n }\n relu(x: T): T {\n return notYetImplemented('relu');\n }\n relu6(x: T): T {\n return notYetImplemented('relu6');\n }\n prelu(x: T, a: T): T {\n return notYetImplemented('prelu');\n }\n elu(x: T): T {\n return notYetImplemented('elu');\n }\n eluDer(dy: T, y: T): T {\n return notYetImplemented('eluDer');\n }\n selu(x: T): T {\n return notYetImplemented('selu');\n }\n int(x: T): T {\n return notYetImplemented('int');\n }\n\n clip(x: T, min: number, max: number): T {\n return notYetImplemented('clip');\n }\n\n abs(x: T): T {\n return notYetImplemented('abs');\n }\n complexAbs(x: T): T {\n return notYetImplemented('complexAbs');\n }\n\n sigmoid(x: T): T {\n return notYetImplemented('sigmoid');\n }\n\n softplus(x: T): T {\n return notYetImplemented('softplus');\n }\n\n sin(x: T): T {\n return notYetImplemented('sin');\n }\n cos(x: T): T {\n return notYetImplemented('cos');\n }\n tan(x: T): T {\n return notYetImplemented('tan');\n }\n\n asin(x: T): T {\n return notYetImplemented('asin');\n }\n acos(x: T): T {\n return notYetImplemented('acos');\n }\n atan(x: T): T {\n return notYetImplemented('atan');\n }\n atan2(a: T, b: T): T {\n return notYetImplemented('atan2');\n }\n\n sinh(x: T): T {\n return notYetImplemented('sinh');\n }\n cosh(x: T): T {\n return notYetImplemented('cosh');\n }\n tanh(x: T): T {\n return notYetImplemented('tanh');\n }\n\n asinh(x: T): T {\n return notYetImplemented('asinh');\n }\n acosh(x: T): T {\n return notYetImplemented('acosh');\n }\n atanh(x: T): T {\n return notYetImplemented('atanh');\n }\n\n erf(x: T): T {\n return notYetImplemented('erf');\n }\n\n step(x: T, alpha: number): T {\n return notYetImplemented('step');\n }\n\n fusedConv2d(\n {input, filter, convInfo, bias, activation, preluActivationWeights}:\n FusedConv2DConfig): Tensor4D {\n return notYetImplemented('fusedConv2d');\n }\n\n conv2d(x: Tensor4D, filter: Tensor4D, convInfo: Conv2DInfo): Tensor4D {\n return notYetImplemented('conv2d');\n }\n conv2dDerInput(dy: Tensor4D, filter: Tensor4D, convInfo: Conv2DInfo):\n Tensor4D {\n return notYetImplemented('conv2dDerInput');\n }\n conv2dDerFilter(x: Tensor4D, dY: Tensor4D, convInfo: Conv2DInfo): Tensor4D {\n return notYetImplemented('conv2dDerFilter');\n }\n\n fusedDepthwiseConv2D(\n {input, filter, convInfo, bias, activation, preluActivationWeights}:\n FusedConv2DConfig): Tensor4D {\n return notYetImplemented('fusedDepthwiseConv2D');\n }\n\n depthwiseConv2D(input: Tensor4D, filter: Tensor4D, convInfo: Conv2DInfo):\n Tensor4D {\n return notYetImplemented('depthwiseConv2D');\n }\n depthwiseConv2DDerInput(dy: Tensor4D, filter: Tensor4D, convInfo: Conv2DInfo):\n Tensor4D {\n return notYetImplemented('depthwiseConv2DDerInput');\n }\n depthwiseConv2DDerFilter(x: Tensor4D, dY: Tensor4D, convInfo: Conv2DInfo):\n Tensor4D {\n return notYetImplemented('depthwiseConv2DDerFilter');\n }\n conv3d(x: Tensor5D, filter: Tensor5D, convInfo: Conv3DInfo): Tensor5D {\n return notYetImplemented('conv3d');\n }\n conv3dDerInput(dy: Tensor5D, filter: Tensor5D, convInfo: Conv3DInfo):\n Tensor5D {\n return notYetImplemented('conv3dDerInput');\n }\n conv3dDerFilter(x: Tensor5D, dY: Tensor5D, convInfo: Conv3DInfo): Tensor5D {\n return notYetImplemented('conv3dDerFilter');\n }\n maxPool(x: Tensor4D, convInfo: Conv2DInfo): Tensor4D {\n return notYetImplemented('maxPool');\n }\n maxPoolBackprop(dy: Tensor4D, x: Tensor4D, y: Tensor4D, convInfo: Conv2DInfo):\n Tensor4D {\n return notYetImplemented('maxPoolBackprop');\n }\n avgPool(x: Tensor4D, convInfo: Conv2DInfo): Tensor4D {\n return notYetImplemented('avgPool');\n }\n avgPoolBackprop(dy: Tensor4D, x: Tensor4D, convInfo: Conv2DInfo): Tensor4D {\n return notYetImplemented('avgPoolBackprop');\n }\n avgPool3d(x: Tensor5D, convInfo: Conv3DInfo): Tensor5D {\n return notYetImplemented('avgPool3d');\n }\n avgPool3dBackprop(dy: Tensor5D, x: Tensor5D, convInfo: Conv3DInfo): Tensor5D {\n return notYetImplemented('avgPool3dBackprop');\n }\n maxPool3d(x: Tensor5D, convInfo: Conv3DInfo): Tensor5D {\n return notYetImplemented('maxPool3d');\n }\n maxPool3dBackprop(\n dy: Tensor5D, x: Tensor5D, y: Tensor5D, convInfo: Conv3DInfo): Tensor5D {\n return notYetImplemented('maxPool3dBackprop');\n }\n\n reshape(x: T, shape: ShapeMap[R]):\n Tensor {\n return notYetImplemented('reshape');\n }\n cast(x: T, dtype: DataType): T {\n return notYetImplemented('cast');\n }\n\n tile(x: T, reps: number[]): T {\n return notYetImplemented('tile');\n }\n\n pad(\n x: T, paddings: Array<[number, number]>, constantValue: number): T {\n return notYetImplemented('pad');\n }\n\n transpose(x: T, perm: number[]): T {\n return notYetImplemented('transpose');\n }\n\n gather(x: T, indices: Tensor1D, axis: number): T {\n return notYetImplemented('gather');\n }\n\n gatherND(x: Tensor, indices: Tensor): Tensor {\n return notYetImplemented('gatherND');\n }\n\n scatterND(\n indices: Tensor, updates: Tensor, shape: ShapeMap[R]): Tensor {\n return notYetImplemented('scatterND');\n }\n\n batchToSpaceND(\n x: T, blockShape: number[], crops: number[][]): T {\n return notYetImplemented('batchToSpaceND');\n }\n\n spaceToBatchND(\n x: T, blockShape: number[], paddings: number[][]): T {\n return notYetImplemented('spaceToBatchND');\n }\n\n resizeBilinear(\n x: Tensor4D, newHeight: number, newWidth: number,\n alignCorners: boolean): Tensor4D {\n return notYetImplemented('resizeBilinear');\n }\n\n resizeBilinearBackprop(dy: Tensor4D, x: Tensor4D, alignCorners: boolean):\n Tensor4D {\n return notYetImplemented('resizeBilinearBackprop');\n }\n\n resizeNearestNeighbor(\n x: Tensor4D, newHEight: number, newWidth: number,\n alignCorners: boolean): Tensor4D {\n return notYetImplemented('resizeNearestNeighbor');\n }\n\n resizeNearestNeighborBackprop(\n dy: Tensor4D, x: Tensor4D, alignCorners: boolean): Tensor4D {\n return notYetImplemented('resizeNearestNeighborBackprop');\n }\n\n batchNorm(\n x: Tensor4D, mean: Tensor4D|Tensor1D, variance: Tensor4D|Tensor1D,\n offset?: Tensor4D|Tensor1D, scale?: Tensor4D|Tensor1D,\n varianceEpsilon?: number): Tensor4D {\n return notYetImplemented('batchNorm');\n }\n\n localResponseNormalization4D(\n x: Tensor4D, radius: number, bias: number, alpha: number,\n beta: number): Tensor4D {\n return notYetImplemented('localResponseNormalization4D');\n }\n\n LRNGrad(\n dy: Tensor4D, inputImage: Tensor4D, outputImage: Tensor4D, radius: number,\n bias: number, alpha: number, beta: number): Tensor4D {\n return notYetImplemented('LRNGrad');\n }\n\n multinomial(\n logits: Tensor2D, normalized: boolean, numSamples: number,\n seed: number): Tensor2D {\n return notYetImplemented('multinomial');\n }\n\n oneHot(indices: Tensor1D, depth: number, onValue: number, offValue: number):\n Tensor2D {\n return notYetImplemented('oneHot');\n }\n\n cumsum(x: Tensor, axis: number, exclusive: boolean, reverse: boolean):\n Tensor {\n return notYetImplemented('cumsum');\n }\n\n nonMaxSuppression(\n boxes: Tensor2D, scores: Tensor1D, maxOutputSize: number,\n iouThreshold: number, scoreThreshold?: number): Tensor1D {\n return notYetImplemented('nonMaxSuppression');\n }\n\n fft(x: Tensor2D): Tensor2D {\n return notYetImplemented('fft');\n }\n ifft(x: Tensor2D): Tensor2D {\n return notYetImplemented('ifft');\n }\n complex(real: T, imag: T): T {\n return notYetImplemented('complex');\n }\n real(input: T): T {\n return notYetImplemented('real');\n }\n imag(input: T): T {\n return notYetImplemented('imag');\n }\n\n cropAndResize(\n image: Tensor4D, boxes: Tensor2D, boxIndex: Tensor1D,\n cropSize: [number, number], method: 'bilinear'|'nearest',\n extrapolationValue: number): Tensor4D {\n return notYetImplemented('cropAndResize');\n }\n\n depthToSpace(x: Tensor4D, blockSize: number, dataFormat: string): Tensor4D {\n return notYetImplemented('depthToSpace');\n }\n\n // Aligns with the \"SplitV\" kernel in TensorFlow.\n split(value: T, sizeSplits: number[], axis: number): T[] {\n return notYetImplemented('split');\n }\n\n sparseToDense(\n sparseIndices: Tensor, sparseValues: Tensor, outputShape: ShapeMap[R],\n defaultValue: Scalar): Tensor {\n return notYetImplemented('sparseToDense');\n }\n\n diag(x: Tensor): Tensor {\n return notYetImplemented('diag');\n }\n\n fill(\n shape: ShapeMap[R], value: number|string, dtype?: DataType): Tensor {\n return notYetImplemented('fill');\n }\n\n onesLike(x: Tensor): Tensor {\n return notYetImplemented('onesLike');\n }\n\n zerosLike(x: Tensor): Tensor {\n return notYetImplemented('zerosLike');\n }\n\n linspace(start: number, stop: number, num: number): Tensor1D {\n return notYetImplemented('linspace');\n }\n\n dispose(): void {\n return notYetImplemented('dispose');\n }\n}\n\nfunction notYetImplemented(kernelName: string): never {\n throw new Error(\n `'${kernelName}' not yet implemented or not found in the registry. ` +\n `This kernel may not be supported by the tfjs backend you have chosen`);\n}\n", "/**\n * @license\n * Copyright 2020 Google LLC. 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 *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\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 * =============================================================================\n */\n\nimport {DataType, DataTypeMap, FlatVector, NumericDataType, RecursiveArray, TensorLike, TypedArray} from './types';\n\n/**\n * Shuffles the array in-place using Fisher-Yates algorithm.\n *\n * ```js\n * const a = [1, 2, 3, 4, 5];\n * tf.util.shuffle(a);\n * console.log(a);\n * ```\n *\n * @param array The array to shuffle in-place.\n *\n * @doc {heading: 'Util', namespace: 'util'}\n */\n// tslint:disable-next-line:no-any\nexport function shuffle(array: any[]|Uint32Array|Int32Array|\n Float32Array): void {\n let counter = array.length;\n let temp = 0;\n let index = 0;\n // While there are elements in the array\n while (counter > 0) {\n // Pick a random index\n index = (Math.random() * counter) | 0;\n // Decrease counter by 1\n counter--;\n // And swap the last element with it\n temp = array[counter];\n array[counter] = array[index];\n array[index] = temp;\n }\n}\n\n/** Clamps a value to a specified range. */\nexport function clamp(min: number, x: number, max: number): number {\n return Math.max(min, Math.min(x, max));\n}\n\nexport function nearestLargerEven(val: number): number {\n return val % 2 === 0 ? val : val + 1;\n}\n\nexport function sum(arr: number[]): number {\n let sum = 0;\n for (let i = 0; i < arr.length; i++) {\n sum += arr[i];\n }\n return sum;\n}\n\n/**\n * Returns a sample from a uniform [a, b) distribution.\n *\n * @param a The minimum support (inclusive).\n * @param b The maximum support (exclusive).\n * @return A pseudorandom number on the half-open interval [a,b).\n */\nexport function randUniform(a: number, b: number) {\n const r = Math.random();\n return (b * r) + (1 - r) * a;\n}\n\n/** Returns the squared Euclidean distance between two vectors. */\nexport function distSquared(a: FlatVector, b: FlatVector): number {\n let result = 0;\n for (let i = 0; i < a.length; i++) {\n const diff = Number(a[i]) - Number(b[i]);\n result += diff * diff;\n }\n return result;\n}\n\n/**\n * Asserts that the expression is true. Otherwise throws an error with the\n * provided message.\n *\n * ```js\n * const x = 2;\n * tf.util.assert(x === 2, 'x is not 2');\n * ```\n *\n * @param expr The expression to assert (as a boolean).\n * @param msg A function that returns the message to report when throwing an\n * error. We use a function for performance reasons.\n *\n * @doc {heading: 'Util', namespace: 'util'}\n */\nexport function assert(expr: boolean, msg: () => string) {\n if (!expr) {\n throw new Error(typeof msg === 'string' ? msg : msg());\n }\n}\n\nexport function assertShapesMatch(\n shapeA: number[], shapeB: number[], errorMessagePrefix = ''): void {\n assert(\n arraysEqual(shapeA, shapeB),\n () => errorMessagePrefix + ` Shapes ${shapeA} and ${shapeB} must match`);\n}\n\nexport function assertNonNull(a: TensorLike): void {\n assert(\n a != null,\n () => `The input to the tensor constructor must be a non-null value.`);\n}\n\n// NOTE: We explicitly type out what T extends instead of any so that\n// util.flatten on a nested array of number doesn't try to infer T as a\n// number[][], causing us to explicitly type util.flatten().\n/**\n * Flattens an arbitrarily nested array.\n *\n * ```js\n * const a = [[1, 2], [3, 4], [5, [6, [7]]]];\n * const flat = tf.util.flatten(a);\n * console.log(flat);\n * ```\n *\n * @param arr The nested array to flatten.\n * @param result The destination array which holds the elements.\n * @param skipTypedArray If true, avoids flattening the typed arrays. Defaults\n * to false.\n *\n * @doc {heading: 'Util', namespace: 'util'}\n */\nexport function\nflatten|TypedArray>(\n arr: T|RecursiveArray, result: T[] = [], skipTypedArray = false): T[] {\n if (result == null) {\n result = [];\n }\n if (Array.isArray(arr) || isTypedArray(arr) && !skipTypedArray) {\n for (let i = 0; i < arr.length; ++i) {\n flatten(arr[i], result, skipTypedArray);\n }\n } else {\n result.push(arr as T);\n }\n return result;\n}\n\n/**\n * Returns the size (number of elements) of the tensor given its shape.\n *\n * ```js\n * const shape = [3, 4, 2];\n * const size = tf.util.sizeFromShape(shape);\n * console.log(size);\n * ```\n *\n * @doc {heading: 'Util', namespace: 'util'}\n */\nexport function sizeFromShape(shape: number[]): number {\n if (shape.length === 0) {\n // Scalar.\n return 1;\n }\n let size = shape[0];\n for (let i = 1; i < shape.length; i++) {\n size *= shape[i];\n }\n return size;\n}\n\nexport function isScalarShape(shape: number[]): boolean {\n return shape.length === 0;\n}\n\nexport function arraysEqual(n1: FlatVector, n2: FlatVector) {\n if (n1 === n2) {\n return true;\n }\n if (n1 == null || n2 == null) {\n return false;\n }\n\n if (n1.length !== n2.length) {\n return false;\n }\n for (let i = 0; i < n1.length; i++) {\n if (n1[i] !== n2[i]) {\n return false;\n }\n }\n return true;\n}\n\nexport function isInt(a: number): boolean {\n return a % 1 === 0;\n}\n\nexport function tanh(x: number): number {\n // tslint:disable-next-line:no-any\n if ((Math as any).tanh != null) {\n // tslint:disable-next-line:no-any\n return (Math as any).tanh(x);\n }\n if (x === Infinity) {\n return 1;\n } else if (x === -Infinity) {\n return -1;\n } else {\n const e2x = Math.exp(2 * x);\n return (e2x - 1) / (e2x + 1);\n }\n}\n\nexport function sizeToSquarishShape(size: number): [number, number] {\n const width = Math.ceil(Math.sqrt(size));\n return [width, Math.ceil(size / width)];\n}\n\n/**\n * Creates a new array with randomized indicies to a given quantity.\n *\n * ```js\n * const randomTen = tf.util.createShuffledIndices(10);\n * console.log(randomTen);\n * ```\n *\n * @param number Quantity of how many shuffled indicies to create.\n *\n * @doc {heading: 'Util', namespace: 'util'}\n */\nexport function createShuffledIndices(n: number): Uint32Array {\n const shuffledIndices = new Uint32Array(n);\n for (let i = 0; i < n; ++i) {\n shuffledIndices[i] = i;\n }\n shuffle(shuffledIndices);\n return shuffledIndices;\n}\n\nexport function rightPad(a: string, size: number): string {\n if (size <= a.length) {\n return a;\n }\n return a + ' '.repeat(size - a.length);\n}\n\nexport function repeatedTry(\n checkFn: () => boolean, delayFn = (counter: number) => 0,\n maxCounter?: number): Promise {\n return new Promise((resolve, reject) => {\n let tryCount = 0;\n\n const tryFn = () => {\n if (checkFn()) {\n resolve();\n return;\n }\n\n tryCount++;\n\n const nextBackoff = delayFn(tryCount);\n\n if (maxCounter != null && tryCount >= maxCounter) {\n reject();\n return;\n }\n setTimeout(tryFn, nextBackoff);\n };\n\n tryFn();\n });\n}\n\n/**\n * Given the full size of the array and a shape that may contain -1 as the\n * implicit dimension, returns the inferred shape where -1 is replaced.\n * E.g. For shape=[2, -1, 3] and size=24, it will return [2, 4, 3].\n *\n * @param shape The shape, which may contain -1 in some dimension.\n * @param size The full size (number of elements) of the array.\n * @return The inferred shape where -1 is replaced with the inferred size.\n */\nexport function inferFromImplicitShape(\n shape: number[], size: number): number[] {\n let shapeProd = 1;\n let implicitIdx = -1;\n\n for (let i = 0; i < shape.length; ++i) {\n if (shape[i] >= 0) {\n shapeProd *= shape[i];\n } else if (shape[i] === -1) {\n if (implicitIdx !== -1) {\n throw Error(\n `Shapes can only have 1 implicit size. ` +\n `Found -1 at dim ${implicitIdx} and dim ${i}`);\n }\n implicitIdx = i;\n } else if (shape[i] < 0) {\n throw Error(`Shapes can not be < 0. Found ${shape[i]} at dim ${i}`);\n }\n }\n\n if (implicitIdx === -1) {\n if (size > 0 && size !== shapeProd) {\n throw Error(`Size(${size}) must match the product of shape ${shape}`);\n }\n return shape;\n }\n\n if (shapeProd === 0) {\n throw Error(\n `Cannot infer the missing size in [${shape}] when ` +\n `there are 0 elements`);\n }\n if (size % shapeProd !== 0) {\n throw Error(\n `The implicit shape can't be a fractional number. ` +\n `Got ${size} / ${shapeProd}`);\n }\n\n const newShape = shape.slice();\n newShape[implicitIdx] = size / shapeProd;\n return newShape;\n}\n\nexport function parseAxisParam(\n axis: number|number[], shape: number[]): number[] {\n const rank = shape.length;\n\n // Normalize input\n axis = axis == null ? shape.map((s, i) => i) : [].concat(axis);\n\n // Check for valid range\n assert(\n axis.every(ax => ax >= -rank && ax < rank),\n () =>\n `All values in axis param must be in range [-${rank}, ${rank}) but ` +\n `got axis ${axis}`);\n\n // Check for only integers\n assert(\n axis.every(ax => isInt(ax)),\n () => `All values in axis param must be integers but ` +\n `got axis ${axis}`);\n\n // Handle negative axis.\n return axis.map(a => a < 0 ? rank + a : a);\n}\n\n/** Reduces the shape by removing all dimensions of shape 1. */\nexport function squeezeShape(shape: number[], axis?: number[]):\n {newShape: number[], keptDims: number[]} {\n const newShape: number[] = [];\n const keptDims: number[] = [];\n const isEmptyArray = axis != null && Array.isArray(axis) && axis.length === 0;\n const axes = (axis == null || isEmptyArray) ?\n null :\n parseAxisParam(axis, shape).sort();\n let j = 0;\n for (let i = 0; i < shape.length; ++i) {\n if (axes != null) {\n if (axes[j] === i && shape[i] !== 1) {\n throw new Error(\n `Can't squeeze axis ${i} since its dim '${shape[i]}' is not 1`);\n }\n if ((axes[j] == null || axes[j] > i) && shape[i] === 1) {\n newShape.push(shape[i]);\n keptDims.push(i);\n }\n if (axes[j] <= i) {\n j++;\n }\n }\n if (shape[i] !== 1) {\n newShape.push(shape[i]);\n keptDims.push(i);\n }\n }\n return {newShape, keptDims};\n}\n\nexport function getTypedArrayFromDType(\n dtype: D, size: number): DataTypeMap[D] {\n let values = null;\n if (dtype == null || dtype === 'float32') {\n values = new Float32Array(size);\n } else if (dtype === 'int32') {\n values = new Int32Array(size);\n } else if (dtype === 'bool') {\n values = new Uint8Array(size);\n } else {\n throw new Error(`Unknown data type ${dtype}`);\n }\n return values as DataTypeMap[D];\n}\n\nexport function getArrayFromDType(\n dtype: D, size: number): DataTypeMap[D] {\n let values = null;\n if (dtype == null || dtype === 'float32') {\n values = new Float32Array(size);\n } else if (dtype === 'int32') {\n values = new Int32Array(size);\n } else if (dtype === 'bool') {\n values = new Uint8Array(size);\n } else if (dtype === 'string') {\n values = new Array<'string'>(size);\n } else {\n throw new Error(`Unknown data type ${dtype}`);\n }\n return values as DataTypeMap[D];\n}\n\nexport function checkConversionForErrors(\n vals: DataTypeMap[D]|number[], dtype: D): void {\n for (let i = 0; i < vals.length; i++) {\n const num = vals[i] as number;\n if (isNaN(num) || !isFinite(num)) {\n throw Error(`A tensor of type ${dtype} being uploaded contains ${num}.`);\n }\n }\n}\n\n/** Returns true if the dtype is valid. */\nexport function isValidDtype(dtype: DataType): boolean {\n return dtype === 'bool' || dtype === 'complex64' || dtype === 'float32' ||\n dtype === 'int32' || dtype === 'string';\n}\n\n/**\n * Returns true if the new type can't encode the old type without loss of\n * precision.\n */\nexport function hasEncodingLoss(oldType: DataType, newType: DataType): boolean {\n if (newType === 'complex64') {\n return false;\n }\n if (newType === 'float32' && oldType !== 'complex64') {\n return false;\n }\n if (newType === 'int32' && oldType !== 'float32' && oldType !== 'complex64') {\n return false;\n }\n if (newType === 'bool' && oldType === 'bool') {\n return false;\n }\n return true;\n}\n\nexport function isTypedArray(a: {}): a is Float32Array|Int32Array|Uint8Array {\n return a instanceof Float32Array || a instanceof Int32Array ||\n a instanceof Uint8Array;\n}\n\nexport function bytesPerElement(dtype: DataType): number {\n if (dtype === 'float32' || dtype === 'int32') {\n return 4;\n } else if (dtype === 'complex64') {\n return 8;\n } else if (dtype === 'bool') {\n return 1;\n } else {\n throw new Error(`Unknown dtype ${dtype}`);\n }\n}\n\n/**\n * Returns the approximate number of bytes allocated in the string array - 2\n * bytes per character. Computing the exact bytes for a native string in JS is\n * not possible since it depends on the encoding of the html page that serves\n * the website.\n */\nexport function bytesFromStringArray(arr: Uint8Array[]): number {\n if (arr == null) {\n return 0;\n }\n let bytes = 0;\n arr.forEach(x => bytes += x.length);\n return bytes;\n}\n\n/** Returns true if the value is a string. */\nexport function isString(value: {}): value is string {\n return typeof value === 'string' || value instanceof String;\n}\n\nexport function isBoolean(value: {}): boolean {\n return typeof value === 'boolean';\n}\n\nexport function isNumber(value: {}): boolean {\n return typeof value === 'number';\n}\n\nexport function inferDtype(values: TensorLike): DataType {\n if (Array.isArray(values)) {\n return inferDtype(values[0]);\n }\n if (values instanceof Float32Array) {\n return 'float32';\n } else if (values instanceof Int32Array || values instanceof Uint8Array) {\n return 'int32';\n } else if (isNumber(values)) {\n return 'float32';\n } else if (isString(values)) {\n return 'string';\n } else if (isBoolean(values)) {\n return 'bool';\n }\n return 'float32';\n}\n\nexport function isFunction(f: Function) {\n return !!(f && f.constructor && f.call && f.apply);\n}\n\nexport function nearestDivisor(size: number, start: number): number {\n for (let i = start; i < size; ++i) {\n if (size % i === 0) {\n return i;\n }\n }\n return size;\n}\n\nexport function computeStrides(shape: number[]): number[] {\n const rank = shape.length;\n if (rank < 2) {\n return [];\n }\n\n // Last dimension has implicit stride of 1, thus having D-1 (instead of D)\n // strides.\n const strides = new Array(rank - 1);\n strides[rank - 2] = shape[rank - 1];\n for (let i = rank - 3; i >= 0; --i) {\n strides[i] = strides[i + 1] * shape[i + 1];\n }\n return strides;\n}\n\nfunction createNestedArray(offset: number, shape: number[], a: TypedArray) {\n const ret = new Array();\n if (shape.length === 1) {\n const d = shape[0];\n for (let i = 0; i < d; i++) {\n ret[i] = a[offset + i];\n }\n } else {\n const d = shape[0];\n const rest = shape.slice(1);\n const len = rest.reduce((acc, c) => acc * c);\n for (let i = 0; i < d; i++) {\n ret[i] = createNestedArray(offset + i * len, rest, a);\n }\n }\n return ret;\n}\n\n// Provide a nested array of TypedArray in given shape.\nexport function toNestedArray(shape: number[], a: TypedArray) {\n if (shape.length === 0) {\n // Scalar type should return a single number.\n return a[0];\n }\n const size = shape.reduce((acc, c) => acc * c);\n if (size === 0) {\n // A tensor with shape zero should be turned into empty list.\n return [];\n }\n if (size !== a.length) {\n throw new Error(`[${shape}] does not match the input size ${a.length}.`);\n }\n\n return createNestedArray(0, shape, a);\n}\n\nexport function makeOnesTypedArray(\n size: number, dtype: D): DataTypeMap[D] {\n const array = makeZerosTypedArray(size, dtype);\n for (let i = 0; i < array.length; i++) {\n array[i] = 1;\n }\n return array;\n}\n\nexport function makeZerosTypedArray(\n size: number, dtype: D): DataTypeMap[D] {\n if (dtype == null || dtype === 'float32' || dtype === 'complex64') {\n return new Float32Array(size) as DataTypeMap[D];\n } else if (dtype === 'int32') {\n return new Int32Array(size) as DataTypeMap[D];\n } else if (dtype === 'bool') {\n return new Uint8Array(size) as DataTypeMap[D];\n } else {\n throw new Error(`Unknown data type ${dtype}`);\n }\n}\n\n/**\n * Make nested `TypedArray` filled with zeros.\n * @param shape The shape information for the nested array.\n * @param dtype dtype of the array element.\n */\nexport function makeZerosNestedTypedArray(\n shape: number[], dtype: D) {\n const size = shape.reduce((prev, curr) => prev * curr, 1);\n if (dtype == null || dtype === 'float32') {\n return toNestedArray(shape, new Float32Array(size));\n } else if (dtype === 'int32') {\n return toNestedArray(shape, new Int32Array(size));\n } else if (dtype === 'bool') {\n return toNestedArray(shape, new Uint8Array(size));\n } else {\n throw new Error(`Unknown data type ${dtype}`);\n }\n}\n\nexport function assertNonNegativeIntegerDimensions(shape: number[]) {\n shape.forEach(dimSize => {\n assert(\n Number.isInteger(dimSize) && dimSize >= 0,\n () =>\n `Tensor must have a shape comprised of positive integers but got ` +\n `shape [${shape}].`);\n });\n}\n\n/**\n * Computes flat index for a given location (multidimentionsal index) in a\n * Tensor/multidimensional array.\n *\n * @param locs Location in the tensor.\n * @param rank Rank of the tensor.\n * @param strides Tensor strides.\n */\nexport function locToIndex(\n locs: number[], rank: number, strides: number[]): number {\n if (rank === 0) {\n return 0;\n } else if (rank === 1) {\n return locs[0];\n }\n let index = locs[locs.length - 1];\n for (let i = 0; i < locs.length - 1; ++i) {\n index += strides[i] * locs[i];\n }\n return index;\n}\n\n/**\n * Computes the location (multidimensional index) in a tensor/multidimentional\n * array for a given flat index.\n *\n * @param index Index in flat array.\n * @param rank Rank of tensor.\n * @param strides Strides of tensor.\n */\nexport function indexToLoc(\n index: number, rank: number, strides: number[]): number[] {\n if (rank === 0) {\n return [];\n } else if (rank === 1) {\n return [index];\n }\n const locs: number[] = new Array(rank);\n for (let i = 0; i < locs.length - 1; ++i) {\n locs[i] = Math.floor(index / strides[i]);\n index -= locs[i] * strides[i];\n }\n locs[locs.length - 1] = index;\n return locs;\n}\n\n/**\n * This method asserts whether an object is a Promise instance.\n * @param object\n */\n// tslint:disable-next-line: no-any\nexport function isPromise(object: any) {\n // We chose to not use 'obj instanceOf Promise' for two reasons:\n // 1. It only reliably works for es6 Promise, not other Promise\n // implementations.\n // 2. It doesn't work with framework that uses zone.js. zone.js monkey patch\n // the async calls, so it is possible the obj (patched) is comparing to a\n // pre-patched Promise.\n return object && object.then && typeof object.then === 'function';\n}\n", "/**\n * @license\n * Copyright 2017 Google LLC. 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 *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\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 * =============================================================================\n */\n\nimport {Platform} from './platforms/platform';\nimport {isPromise} from './util_base';\n\n// Expects flags from URL in the format ?tfjsflags=FLAG1:1,FLAG2:true.\nconst TENSORFLOWJS_FLAGS_PREFIX = 'tfjsflags';\n\ntype FlagValue = number|boolean;\ntype FlagEvaluationFn = (() => FlagValue)|(() => Promise);\nexport type Flags = {\n [featureName: string]: FlagValue\n};\nexport type FlagRegistryEntry = {\n evaluationFn: FlagEvaluationFn;\n setHook?: (value: FlagValue) => void;\n};\n\n/**\n * The environment contains evaluated flags as well as the registered platform.\n * This is always used as a global singleton and can be retrieved with\n * `tf.env()`.\n *\n * @doc {heading: 'Environment'}\n */\nexport class Environment {\n private flags: Flags = {};\n private flagRegistry: {[flagName: string]: FlagRegistryEntry} = {};\n\n private urlFlags: Flags = {};\n\n platformName: string;\n platform: Platform;\n\n // tslint:disable-next-line: no-any\n constructor(public global: any) {\n this.populateURLFlags();\n }\n\n setPlatform(platformName: string, platform: Platform) {\n if (this.platform != null) {\n console.warn(\n `Platform ${this.platformName} has already been set. ` +\n `Overwriting the platform with ${platform}.`);\n }\n this.platformName = platformName;\n this.platform = platform;\n }\n\n registerFlag(\n flagName: string, evaluationFn: FlagEvaluationFn,\n setHook?: (value: FlagValue) => void) {\n this.flagRegistry[flagName] = {evaluationFn, setHook};\n\n // Override the flag value from the URL. This has to happen here because the\n // environment is initialized before flags get registered.\n if (this.urlFlags[flagName] != null) {\n const flagValue = this.urlFlags[flagName];\n console.warn(\n `Setting feature override from URL ${flagName}: ${flagValue}.`);\n this.set(flagName, flagValue);\n }\n }\n\n async getAsync(flagName: string): Promise {\n if (flagName in this.flags) {\n return this.flags[flagName];\n }\n\n this.flags[flagName] = await this.evaluateFlag(flagName);\n return this.flags[flagName];\n }\n\n get(flagName: string): FlagValue {\n if (flagName in this.flags) {\n return this.flags[flagName];\n }\n\n const flagValue = this.evaluateFlag(flagName);\n if (isPromise(flagValue)) {\n throw new Error(\n `Flag ${flagName} cannot be synchronously evaluated. ` +\n `Please use getAsync() instead.`);\n }\n\n this.flags[flagName] = flagValue as number | boolean;\n\n return this.flags[flagName];\n }\n\n getNumber(flagName: string): number {\n return this.get(flagName) as number;\n }\n\n getBool(flagName: string): boolean {\n return this.get(flagName) as boolean;\n }\n\n getFlags(): Flags {\n return this.flags;\n }\n // For backwards compatibility.\n get features(): Flags {\n return this.flags;\n }\n\n set(flagName: string, value: FlagValue): void {\n if (this.flagRegistry[flagName] == null) {\n throw new Error(\n `Cannot set flag ${flagName} as it has not been registered.`);\n }\n this.flags[flagName] = value;\n if (this.flagRegistry[flagName].setHook != null) {\n this.flagRegistry[flagName].setHook(value);\n }\n }\n\n private evaluateFlag(flagName: string): FlagValue|Promise {\n if (this.flagRegistry[flagName] == null) {\n throw new Error(\n `Cannot evaluate flag '${flagName}': no evaluation function found.`);\n }\n return this.flagRegistry[flagName].evaluationFn();\n }\n\n setFlags(flags: Flags) {\n this.flags = Object.assign({}, flags);\n }\n\n reset() {\n this.flags = {};\n this.urlFlags = {};\n this.populateURLFlags();\n }\n\n private populateURLFlags(): void {\n if (typeof this.global === 'undefined' ||\n typeof this.global.location === 'undefined' ||\n typeof this.global.location.search === 'undefined') {\n return;\n }\n\n const urlParams = getQueryParams(this.global.location.search);\n if (TENSORFLOWJS_FLAGS_PREFIX in urlParams) {\n const keyValues = urlParams[TENSORFLOWJS_FLAGS_PREFIX].split(',');\n keyValues.forEach(keyValue => {\n const [key, value] = keyValue.split(':') as [string, string];\n this.urlFlags[key] = parseValue(key, value);\n });\n }\n }\n}\n\nexport function getQueryParams(queryString: string): {[key: string]: string} {\n const params = {};\n queryString.replace(/[?&]([^=?&]+)(?:=([^&]*))?/g, (s, ...t) => {\n decodeParam(params, t[0], t[1]);\n return t.join('=');\n });\n return params;\n}\n\nfunction decodeParam(\n params: {[key: string]: string}, name: string, value?: string) {\n params[decodeURIComponent(name)] = decodeURIComponent(value || '');\n}\n\nfunction parseValue(flagName: string, value: string): FlagValue {\n value = value.toLowerCase();\n if (value === 'true' || value === 'false') {\n return value === 'true';\n } else if (`${+ value}` === value) {\n return +value;\n }\n throw new Error(\n `Could not parse value flag value ${value} for flag ${flagName}.`);\n}\n\n/**\n * Returns the current environment (a global singleton).\n *\n * The environment object contains the evaluated feature values as well as the\n * active platform.\n *\n * @doc {heading: 'Environment'}\n */\nexport function env() {\n return ENV;\n}\n\nexport let ENV: Environment = null;\nexport function setEnvironmentGlobal(environment: Environment) {\n ENV = environment;\n}\n", "/**\n * @license\n * Copyright 2020 Google LLC. 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 *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\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 * =============================================================================\n */\n\n// Note that the identifier globalNameSpace is scoped to this module, but will\n// always resolve to the same global object regardless of how the module is\n// resolved.\n// tslint:disable-next-line:no-any\nlet globalNameSpace: {_tfGlobals: Map};\n// tslint:disable-next-line:no-any\nexport function getGlobalNamespace(): {_tfGlobals: Map} {\n if (globalNameSpace == null) {\n // tslint:disable-next-line:no-any\n let ns: any;\n if (typeof (window) !== 'undefined') {\n ns = window;\n } else if (typeof (global) !== 'undefined') {\n ns = global;\n } else if (typeof (process) !== 'undefined') {\n ns = process;\n } else if (typeof (self) !== 'undefined') {\n ns = self;\n } else {\n throw new Error('Could not find a global object');\n }\n globalNameSpace = ns;\n }\n return globalNameSpace;\n}\n\n// tslint:disable-next-line:no-any\nfunction getGlobalMap(): Map {\n const ns = getGlobalNamespace();\n if (ns._tfGlobals == null) {\n ns._tfGlobals = new Map();\n }\n return ns._tfGlobals;\n}\n\n/**\n * Returns a globally accessible 'singleton' object.\n *\n * @param key the name of the object\n * @param init a function to initialize to initialize this object\n * the first time it is fetched.\n */\nexport function getGlobal(key: string, init: () => T): T {\n const globalMap = getGlobalMap();\n if (globalMap.has(key)) {\n return globalMap.get(key);\n } else {\n const singleton = init();\n globalMap.set(key, singleton);\n return globalMap.get(key);\n }\n}\n", "/**\n * @license\n * Copyright 2020 Google LLC. 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 *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\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 * =============================================================================\n */\n// Allow UpperCamelCase variable names\n// tslint:disable: variable-name\n// Unfortunately just enabling PascalCase per file (tslint:enable:\n// allow-pascal-case) doesn't work.\nimport {NamedTensorInfoMap, TensorInfo} from './kernel_registry';\nimport {ExplicitPadding} from './ops/conv_util';\nimport {Activation} from './ops/fused_types';\nimport {DataType, PixelData} from './types';\n\nexport const Abs = 'Abs';\nexport type AbsInputs = UnaryInputs;\n\nexport const Acos = 'Acos';\nexport type AcosInputs = UnaryInputs;\n\nexport const Acosh = 'Acosh';\nexport type AcoshInputs = UnaryInputs;\n\nexport const Add = 'Add';\nexport type AddInputs = BinaryInputs;\n\nexport const AddN = 'AddN';\nexport type AddNInputs = TensorInfo[];\n\nexport const All = 'All';\nexport type AllInputs = Pick;\nexport interface AllAttrs {\n axis: number|number[];\n keepDims: boolean;\n}\n\nexport const Any = 'Any';\nexport type AnyInputs = Pick;\nexport interface AnyAttrs {\n axis: number|number[];\n keepDims: boolean;\n}\n\nexport const ArgMax = 'ArgMax';\nexport type ArgMaxInputs = Pick;\nexport interface ArgMaxAttrs {\n axis: number;\n}\n\nexport const ArgMin = 'ArgMin';\nexport type ArgMinInputs = Pick;\nexport interface ArgMinAttrs {\n axis: number;\n}\n\nexport const Asin = 'Asin';\nexport type AsinInputs = UnaryInputs;\n\nexport const Asinh = 'Asinh';\nexport type AsinhInputs = UnaryInputs;\n\nexport const Atan = 'Atan';\nexport type AtanInputs = UnaryInputs;\n\nexport const Atanh = 'Atanh';\nexport type AtanhInputs = UnaryInputs;\n\nexport const Atan2 = 'Atan2';\nexport type Atan2Inputs = BinaryInputs;\n\nexport const AvgPool = 'AvgPool';\nexport type AvgPoolInputs = Pick;\nexport interface AvgPoolAttrs {\n filterSize: [number, number]|number;\n strides: [number, number]|number;\n pad: 'valid'|'same'|number;\n dimRoundingMode?: 'floor'|'round'|'ceil';\n}\n\nexport const AvgPoolBackprop = 'AvgPoolBackprop';\nexport type AvgPoolBackpropInputs = Pick;\nexport interface AvgPoolBackpropAttrs {\n filterSize: [number, number]|number;\n strides: [number, number]|number;\n pad: 'valid'|'same'|number;\n}\n\nexport const AvgPool3D = 'AvgPool3D';\nexport type AvgPool3DInputs = Pick;\nexport interface AvgPool3DAttrs {\n filterSize: [number, number, number]|number;\n strides: [number, number, number]|number;\n pad: 'valid'|'same'|number;\n dimRoundingMode?: 'floor'|'round'|'ceil';\n dataFormat: 'NDHWC'|'NCDHW';\n dilations?: [number, number, number]|number;\n}\n\nexport const AvgPool3DBackprop = 'AvgPool3DBackprop';\nexport type AvgPool3DBackpropInputs = Pick;\nexport interface AvgPool3DBackpropAttrs {\n filterSize: [number, number, number]|number;\n strides: [number, number, number]|number;\n pad: 'valid'|'same'|number;\n dilations: [number, number, number]|number;\n dimRoundingMode?: 'floor'|'round'|'ceil';\n}\n\nexport const BatchMatMul = 'BatchMatMul';\nexport type BatchMatMulInputs = Pick;\nexport interface BatchMatMulAttrs {\n transposeA: boolean;\n transposeB: boolean;\n}\n\nexport const BatchToSpaceND = 'BatchToSpaceND';\nexport type BatchToSpaceNDInputs = Pick;\nexport interface BatchToSpaceNDAttrs {\n blockShape: number[];\n crops: number[][];\n}\n\nexport type BinaryInputs = Pick;\n\nexport const BroadcastTo = 'BroadcastTo';\nexport type BroadcastToInputs = Pick;\nexport interface BroadCastToAttrs {\n shape: number[];\n inputShape: number[]; // for gradient\n}\n\nexport const Cast = 'Cast';\nexport type CastInputs = UnaryInputs;\nexport interface CastAttrs {\n dtype: DataType;\n}\n\nexport const Ceil = 'Ceil';\nexport type CeilInputs = UnaryInputs;\n\nexport const ClipByValue = 'ClipByValue';\nexport type ClipByValueInputs = UnaryInputs;\nexport interface ClipByValueAttrs {\n clipValueMin: number;\n clipValueMax: number;\n}\n\nexport const Complex = 'Complex';\nexport type ComplexInputs = Pick;\n\nexport const Concat = 'Concat';\nexport type ConcatInputs = TensorInfo[];\nexport interface ConcatAttrs {\n axis: number;\n}\n\nexport const Conv2D = 'Conv2D';\nexport type Conv2DInputs = Pick;\nexport interface Conv2DAttrs {\n strides: [number, number]|number;\n pad: 'valid'|'same'|number|ExplicitPadding;\n dataFormat: 'NHWC'|'NCHW';\n dilations: [number, number]|number;\n dimRoundingMode?: 'floor'|'round'|'ceil';\n}\n\nexport const Conv2DBackpropFilter = 'Conv2DBackpropFilter';\nexport type Conv2DBackpropFilterInputs = Pick;\nexport interface Conv2DBackpropFilterAttrs {\n strides: [number, number]|number;\n pad: 'valid'|'same'|number|ExplicitPadding;\n dataFormat: 'NHWC'|'NCHW';\n dimRoundingMode?: 'floor'|'round'|'ceil';\n filterShape: [number, number, number, number];\n}\n\nexport const Conv2DBackpropInput = 'Conv2DBackpropInput';\nexport type Conv2DBackpropInputInputs = Pick;\nexport interface Conv2DBackpropInputAttrs {\n strides: [number, number]|number;\n pad: 'valid'|'same'|number|ExplicitPadding;\n dataFormat: 'NHWC'|'NCHW';\n dimRoundingMode?: 'floor'|'round'|'ceil';\n inputShape: [number, number, number, number];\n}\n\nexport const Conv3D = 'Conv3D';\nexport type Conv3DInputs = Pick;\nexport interface Conv3DAttrs {\n strides: [number, number, number]|number;\n pad: 'valid'|'same';\n dataFormat: 'NDHWC'|'NCDHW';\n dilations: [number, number, number]|number;\n}\n\nexport const Conv3DBackpropFilterV2 = 'Conv3DBackpropFilterV2';\nexport type Conv3DBackpropFilterInputs = Pick;\n\nexport interface Conv3DBackpropFilterAttrs {\n strides: [number, number, number]|number;\n pad: 'valid'|'same';\n filterShape: [number, number, number, number, number];\n}\n\nexport const Conv3DBackpropInputV2 = 'Conv3DBackpropInputV2';\nexport type Conv3DBackpropInputInputs = Pick;\nexport interface Conv3DBackpropInputAttrs {\n strides: [number, number, number]|number;\n pad: 'valid'|'same';\n inputShape: [number, number, number, number, number];\n}\n\nexport const Cos = 'Cos';\nexport type CosInputs = UnaryInputs;\n\nexport const Cosh = 'Cosh';\nexport type CoshInputs = UnaryInputs;\n\nexport const Cumsum = 'Cumsum';\nexport type CumsumInputs = Pick;\nexport interface CumsumAttrs {\n axis: number;\n exclusive: boolean;\n reverse: boolean;\n}\n\nexport const CropAndResize = 'CropAndResize';\nexport type CropAndResizeInputs =\n Pick;\nexport interface CropAndResizeAttrs {\n cropSize: [number, number];\n method: 'bilinear'|'nearest';\n extrapolationValue: number;\n}\n\nexport const DepthToSpace = 'DepthToSpace';\nexport type DepthToSpaceInputs = Pick;\nexport interface DepthToSpaceAttrs {\n blockSize: number;\n dataFormat: 'NHWC'|'NCHW';\n}\n\nexport const DepthwiseConv2dNative = 'DepthwiseConv2dNative';\nexport type DepthwiseConv2dNativeInputs =\n Pick;\nexport interface DepthwiseConv2dNativeAttrs {\n strides: [number, number]|number;\n pad: 'valid'|'same'|number;\n dataFormat: 'NHWC'|'NCHW';\n dilations: [number, number]|number;\n dimRoundingMode?: 'floor'|'round'|'ceil';\n}\n\nexport const DepthwiseConv2dNativeBackpropFilter =\n 'DepthwiseConv2dNativeBackpropFilter';\nexport type DepthwiseConv2dNativeBackpropFilterInputs =\n Pick;\nexport interface DepthwiseConv2dNativeBackpropFilterAttrs {\n strides: [number, number]|number;\n dilations: [number, number]|number;\n pad: 'valid'|'same'|number;\n dimRoundingMode?: 'floor'|'round'|'ceil';\n filterShape: [number, number, number, number];\n}\n\nexport const DepthwiseConv2dNativeBackpropInput =\n 'DepthwiseConv2dNativeBackpropInput';\nexport type DepthwiseConv2dNativeBackpropInputInputs =\n Pick;\nexport interface DepthwiseConv2dNativeBackpropInputAttrs {\n strides: [number, number]|number;\n dilations: [number, number]|number;\n pad: 'valid'|'same'|number;\n dimRoundingMode?: 'floor'|'round'|'ceil';\n inputShape: [number, number, number, number];\n}\n\nexport const Diag = 'Diag';\nexport type DiagInputs = Pick;\n\nexport const Dilation2D = 'Dilation2D';\nexport type Dilation2DInputs = Pick;\nexport interface Dilation2DAttrs {\n strides: [number, number]|number;\n pad: 'valid'|'same'|number;\n dilations: [number, number]|number;\n}\n\nexport const Dilation2DBackpropInput = 'Dilation2DBackpropInput';\nexport type Dilation2DBackpropInputInputs =\n Pick;\n\nexport const Dilation2DBackpropFilter = 'Dilation2DBackpropFilter';\nexport type Dilation2DBackpropFilterInputs =\n Pick;\n\nexport const Div = 'Div';\nexport type DivInputs = BinaryInputs;\n\nexport const Elu = 'Elu';\nexport type EluInputs = Pick;\n\nexport const EluGrad = 'EluGrad';\nexport type EluGradInputs = Pick;\n\nexport const Erf = 'Erf';\nexport type ErfInputs = UnaryInputs;\n\nexport const Equal = 'Equal';\nexport type EqualInputs = BinaryInputs;\n\nexport const Exp = 'Exp';\nexport type ExpInputs = UnaryInputs;\n\nexport const Expm1 = 'Expm1';\nexport type Expm1Inputs = UnaryInputs;\n\nexport const FFT = 'FFT';\nexport type FFTInputs = Pick;\n\nexport const Fill = 'Fill';\nexport interface FillAttrs {\n shape: number[];\n value: number|string;\n dtype: DataType;\n}\n\nexport const FlipLeftRight = 'FlipLeftRight';\nexport type FlipLeftRightInputs = Pick;\n\nexport const Floor = 'Floor';\nexport type FloorInputs = UnaryInputs;\n\nexport const FloorDiv = 'FloorDiv';\nexport type FloorDivInputs = BinaryInputs;\n\nexport const FusedBatchNorm = 'FusedBatchNorm';\nexport type FusedBatchNormInputs =\n Pick;\nexport interface FusedBatchNormAttrs {\n varianceEpsilon: number;\n}\n\nexport const GatherV2 = 'GatherV2';\nexport type GatherV2Inputs = Pick;\nexport interface GatherV2Attrs {\n axis: number;\n}\n\nexport const GatherNd = 'GatherNd';\nexport type GatherNdInputs = Pick;\n\nexport const Greater = 'Greater';\nexport type GreaterInputs = BinaryInputs;\n\nexport const GreaterEqual = 'GreaterEqual';\nexport type GreaterEqualInputs = BinaryInputs;\n\nexport const Identity = 'Identity';\nexport type IdentityInputs = Pick;\n\nexport const IFFT = 'IFFT';\nexport type IFFTInputs = Pick;\n\nexport const Imag = 'Imag';\nexport type ImagInputs = Pick;\n\nexport const IsFinite = 'IsFinite';\nexport type IsFiniteInputs = UnaryInputs;\n\nexport const IsInf = 'IsInf';\nexport type IsInfInputs = UnaryInputs;\n\nexport const IsNan = 'IsNan';\nexport type IsNanInputs = UnaryInputs;\n\nexport const Less = 'Less';\nexport type LessInputs = BinaryInputs;\n\nexport const LessEqual = 'LessEqual';\nexport type LessEqualInputs = BinaryInputs;\n\nexport const LinSpace = 'LinSpace';\nexport interface LinSpaceAttrs {\n start: number;\n stop: number;\n num: number;\n}\nexport const Log = 'Log';\nexport type LogInputs = UnaryInputs;\n\nexport const Log1p = 'Log1p';\nexport type Log1pInputs = UnaryInputs;\n\nexport const LogicalAnd = 'LogicalAnd';\nexport type LogicalAndInputs = BinaryInputs;\n\nexport const LogicalNot = 'LogicalNot';\nexport type LogicalNotInputs = Pick;\n\nexport const LogicalOr = 'LogicalOr';\nexport type LogicalOrInputs = BinaryInputs;\n\nexport const LogSoftmax = 'LogSoftmax';\nexport type LogSoftmaxInputs = Pick;\nexport interface LogSoftmaxAttrs {\n axis: number;\n}\n\nexport const LRN = 'LRN';\nexport type LRNInputs = Pick;\nexport interface LRNAttrs {\n depthRadius: number;\n bias: number;\n alpha: number;\n beta: number;\n}\n\nexport const LRNBackprop = 'LRNBackprop';\nexport type LRNBackpropInputs = Pick;\nexport interface LRNBackpropAttrs {\n depthRadius: number;\n bias: number;\n alpha: number;\n beta: number;\n}\n\nexport const Max = 'Max';\nexport type MaxInputs = Pick;\nexport interface MaxAttrs {\n reductionIndices: number|number[];\n keepDims: boolean;\n}\n\nexport const Maximum = 'Maximum';\nexport type MaximumInputs = BinaryInputs;\n\nexport const MaxPool = 'MaxPool';\nexport type MaxPoolInputs = Pick;\nexport interface MaxPoolAttrs {\n filterSize: [number, number]|number;\n strides: [number, number]|number;\n pad: 'valid'|'same'|number;\n dimRoundingMode?: 'floor'|'round'|'ceil';\n}\n\nexport const MaxPoolBackprop = 'MaxPoolBackprop';\nexport type MaxPoolBackpropInputs =\n Pick;\nexport interface MaxPoolBackpropAttrs {\n filterSize: [number, number]|number;\n strides: [number, number]|number;\n pad: 'valid'|'same'|number;\n dimRoundingMode?: 'floor'|'round'|'ceil';\n}\n\nexport const MaxPool3D = 'MaxPool3D';\nexport type MaxPool3DInputs = Pick;\nexport interface MaxPool3DAttrs {\n filterSize: [number, number, number]|number;\n strides: [number, number, number]|number;\n pad: 'valid'|'same'|number;\n dataFormat: 'NDHWC'|'NCDHW';\n dilations?: [number, number, number]|number;\n dimRoundingMode?: 'floor'|'round'|'ceil';\n}\n\nexport const MaxPool3DBackprop = 'MaxPool3DBackprop';\nexport type MaxPool3DBackpropInputs =\n Pick;\nexport interface MaxPool3DBackpropAttrs {\n filterSize: [number, number, number]|number;\n strides: [number, number, number]|number;\n pad: 'valid'|'same'|number;\n dilations?: [number, number, number]|number;\n dimRoundingMode?: 'floor'|'round'|'ceil';\n}\n\nexport const MaxPoolWithArgmax = 'MaxPoolWithArgmax';\nexport type MaxPoolWithArgmaxInputs = Pick;\nexport interface MaxPoolWithArgmaxAttrs {\n filterSize: [number, number]|number;\n strides: [number, number]|number;\n pad: 'valid'|'same'|number;\n includeBatchInIndex: boolean;\n}\n\nexport const Mean = 'Mean';\nexport type MeanInputs = Pick;\nexport interface MeanAttrs {\n axis: number|number[];\n keepDims: boolean;\n}\n\nexport const Min = 'Min';\nexport type MinInputs = Pick;\nexport interface MinAttrs {\n axis: number|number[];\n keepDims: boolean;\n}\n\nexport const Minimum = 'Minimum';\nexport type MinimumInputs = BinaryInputs;\n\nexport const MirrorPad = 'MirrorPad';\nexport type MirrorPadInputs = Pick;\nexport interface MirrorPadAttrs {\n paddings: Array<[number, number]>;\n mode: 'reflect'|'symmetric';\n}\n\nexport const Mod = 'Mod';\nexport type ModInputs = BinaryInputs;\n\nexport const Multiply = 'Multiply';\nexport type MultiplyInputs = BinaryInputs;\n\nexport const Negate = 'Negate';\nexport type NegateInputs = UnaryInputs;\n\nexport const NotEqual = 'NotEqual';\nexport type NotEqualInputs = BinaryInputs;\n\nexport const NonMaxSuppressionV3 = 'NonMaxSuppressionV3';\nexport type NonMaxSuppressionV3Inputs =\n Pick;\nexport interface NonMaxSuppressionV3Attrs {\n maxOutputSize: number;\n iouThreshold: number;\n scoreThreshold: number;\n}\n\nexport const NonMaxSuppressionV4 = 'NonMaxSuppressionV4';\nexport type NonMaxSuppressionV4Inputs =\n Pick;\nexport interface NonMaxSuppressionV4Attrs {\n maxOutputSize: number;\n iouThreshold: number;\n scoreThreshold: number;\n padToMaxOutputSize: boolean;\n}\n\nexport const NonMaxSuppressionV5 = 'NonMaxSuppressionV5';\nexport type NonMaxSuppressionV5Inputs =\n Pick;\nexport interface NonMaxSuppressionV5Attrs {\n maxOutputSize: number;\n iouThreshold: number;\n scoreThreshold: number;\n softNmsSigma: number;\n}\n\nexport const OnesLike = 'OnesLike';\nexport type OnesLikeInputs = UnaryInputs;\n\nexport const OneHot = 'OneHot';\nexport type OneHotInputs = Pick;\nexport interface OneHotAttrs {\n depth: number;\n onValue: number;\n offValue: number;\n}\n\nexport const PadV2 = 'PadV2';\nexport type PadV2Inputs = Pick;\nexport interface PadV2Attrs {\n paddings: Array<[number, number]>;\n constantValue: number;\n}\n\nexport const Pool = 'Pool';\nexport type PoolInputs = Pick;\n\nexport const Pow = 'Pow';\nexport type PowInputs = BinaryInputs;\n\nexport const Prelu = 'Prelu';\nexport type PreluInputs = Pick;\n\nexport const Prod = 'Prod';\nexport type ProdInputs = Pick;\nexport interface ProdAttrs {\n axis: number|number[];\n keepDims: boolean;\n}\n\nexport const Range = 'Range';\nexport interface RangeAttrs {\n start: number;\n stop: number;\n step: number;\n dtype: 'float32'|'int32';\n}\n\nexport const Real = 'Real';\nexport type RealInputs = Pick;\n\nexport const Reciprocal = 'Reciprocal';\nexport type ReciprocalInputs = UnaryInputs;\n\nexport const Relu = 'Relu';\nexport type ReluInputs = Pick;\n\nexport const Reshape = 'Reshape';\nexport type ReshapeInputs = Pick;\nexport interface ReshapeAttrs {\n shape: number[];\n}\n\nexport const ResizeNearestNeighbor = 'ResizeNearestNeighbor';\nexport type ResizeNearestNeighborInputs = Pick;\nexport interface ResizeNearestNeighborAttrs {\n alignCorners: boolean;\n size: [number, number];\n}\n\nexport const ResizeNearestNeighborGrad = 'ResizeNearestNeighborGrad';\nexport type ResizeNearestNeighborGradInputs =\n Pick;\n\nexport const ResizeBilinear = 'ResizeBilinear';\nexport type ResizeBilinearInputs = Pick;\nexport interface ResizeBilinearAttrs {\n alignCorners: boolean;\n size: [number, number];\n}\n\nexport const ResizeBilinearGrad = 'ResizeBilinearGrad';\nexport type ResizeBilinearGradInputs = Pick;\n\nexport const Relu6 = 'Relu6';\nexport type Relu6Inputs = Pick;\n\nexport const Reverse = 'Reverse';\nexport type ReverseInputs = Pick;\nexport interface ReverseAttrs {\n dims: number|number[];\n}\n\nexport const Round = 'Round';\nexport type RoundInputs = UnaryInputs;\n\nexport const Rsqrt = 'Rsqrt';\nexport type RsqrtInputs = UnaryInputs;\n\nexport const ScatterNd = 'ScatterNd';\nexport type ScatterNdInputs = Pick;\nexport interface ScatterNdAttrs {\n shape: number[];\n}\n\nexport const SelectV2 = 'SelectV2';\nexport type SelectV2Inputs = Pick;\n\nexport const Selu = 'Selu';\nexport type SeluInputs = Pick;\n\nexport const Slice = 'Slice';\nexport type SliceInputs = Pick;\nexport interface SliceAttrs {\n begin: number|number[];\n size: number|number[];\n}\nexport const Sin = 'Sin';\nexport type SinInputs = UnaryInputs;\n\nexport const Sinh = 'Sinh';\nexport type SinhInputs = UnaryInputs;\n\nexport const Sign = 'Sign';\nexport type SignInputs = UnaryInputs;\n\nexport const Sigmoid = 'Sigmoid';\nexport type SigmoidInputs = UnaryInputs;\n\nexport const Softplus = 'Softplus';\nexport type SoftplusInputs = UnaryInputs;\n\nexport const Sqrt = 'Sqrt';\nexport type SqrtInputs = UnaryInputs;\n\nexport const Sum = 'Sum';\nexport type SumInputs = Pick;\nexport interface SumAttrs {\n axis: number|number[];\n keepDims: boolean;\n}\n\nexport const SpaceToBatchND = 'SpaceToBatchND';\nexport type SpaceToBatchNDInputs = Pick;\nexport interface SpaceToBatchNDAttrs {\n blockShape: number[];\n paddings: number[][];\n}\n\nexport const SplitV = 'SplitV';\nexport type SplitVInputs = Pick;\nexport interface SplitVAttrs {\n numOrSizeSplits: number[]|number;\n axis: number;\n}\n\nexport const Softmax = 'Softmax';\nexport type SoftmaxInputs = Pick;\nexport interface SoftmaxAttrs {\n dim: number;\n}\n\nexport const SquaredDifference = 'SquaredDifference';\nexport type SquaredDifferenceInputs = BinaryInputs;\n\nexport const Square = 'Square';\nexport type SquareInputs = Pick;\n\nexport const Sub = 'Sub';\nexport type SubInputs = BinaryInputs;\n\nexport const SparseToDense = 'SparseToDense';\nexport type SparseToDenseInputs =\n Pick;\nexport interface SparseToDenseAttrs {\n outputShape: number[];\n}\n\nexport const StridedSlice = 'StridedSlice';\nexport type StridedSliceInputs = Pick;\nexport interface StridedSliceAttrs {\n begin: number[];\n end: number[];\n strides: number[];\n beginMask: number;\n endMask: number;\n ellipsisMask: number;\n newAxisMask: number;\n shrinkAxisMask: number;\n}\n\nexport const Tan = 'Tan';\nexport type TanInputs = UnaryInputs;\n\nexport const Tanh = 'Tanh';\nexport type TanhInputs = UnaryInputs;\n\nexport const Tile = 'Tile';\nexport type TileInputs = Pick;\nexport interface TileAttrs {\n reps: number[];\n}\n\nexport const TopK = 'TopK';\nexport type TopKInputs = Pick;\nexport interface TopKAttrs {\n k: number;\n sorted: boolean;\n}\n\nexport const Transpose = 'Transpose';\nexport type TransposeInputs = Pick;\nexport interface TransposeAttrs {\n perm: number[];\n}\n\nexport const Unique = 'Unique';\nexport type UniqueInputs = Pick;\nexport interface UniqueAttrs {\n axis: number;\n}\n\nexport type UnaryInputs = Pick;\n\nexport const Unpack = 'Unpack';\nexport type UnpackInputs = Pick;\nexport interface UnpackAttrs {\n axis: number;\n}\n\nexport const UnsortedSegmentSum = 'UnsortedSegmentSum';\nexport type UnsortedSegmentSumInputs =\n Pick;\nexport interface UnsortedSegmentSumAttrs {\n numSegments: number;\n}\n\nexport const ZerosLike = 'ZerosLike';\nexport type ZerosLikeInputs = UnaryInputs;\n\n/**\n * TensorFlow.js-only kernels\n */\nexport const Step = 'Step';\nexport type StepInputs = UnaryInputs;\nexport interface StepAttrs {\n alpha: number;\n}\n\nexport const FromPixels = 'FromPixels';\nexport interface FromPixelsInputs {\n pixels: PixelData|ImageData|HTMLImageElement|HTMLCanvasElement|\n HTMLVideoElement;\n}\nexport interface FromPixelsAttrs {\n numChannels: number;\n}\n\nexport const RotateWithOffset = 'RotateWithOffset';\nexport type RotateWithOffsetInputs = Pick;\nexport interface RotateWithOffsetAttrs {\n radians: number;\n fillValue: number|[number, number, number];\n center: number|[number, number];\n}\n\nexport const _FusedMatMul = '_FusedMatMul';\n// tslint:disable-next-line: class-name\nexport interface _FusedMatMulInputs extends NamedTensorInfoMap {\n a: TensorInfo;\n b: TensorInfo;\n bias?: TensorInfo;\n preluActivationWeights?: TensorInfo;\n}\n// tslint:disable-next-line: class-name\nexport interface _FusedMatMulAttrs {\n transposeA: boolean;\n transposeB: boolean;\n activation: Activation;\n}\n\nexport const FusedConv2D = 'FusedConv2D';\nexport interface FusedConv2DInputs extends NamedTensorInfoMap {\n x: TensorInfo;\n filter: TensorInfo;\n bias?: TensorInfo;\n preluActivationWeights?: TensorInfo;\n}\nexport interface FusedConv2DAttrs {\n strides: [number, number]|number;\n pad: 'valid'|'same'|number|ExplicitPadding;\n dataFormat: 'NHWC'|'NCHW';\n dilations: [number, number]|number;\n dimRoundingMode: 'floor'|'round'|'ceil';\n activation: Activation;\n}\n\nexport const FusedDepthwiseConv2D = 'FusedDepthwiseConv2D';\nexport interface FusedDepthwiseConv2DInputs extends NamedTensorInfoMap {\n x: TensorInfo;\n filter: TensorInfo;\n bias?: TensorInfo;\n preluActivationWeights?: TensorInfo;\n}\nexport interface FusedDepthwiseConv2DAttrs {\n strides: [number, number]|number;\n pad: 'valid'|'same'|number;\n dataFormat: 'NHWC'|'NCHW';\n dilations: [number, number]|number;\n dimRoundingMode: 'floor'|'round'|'ceil';\n activation: Activation;\n}\n", "/**\n * @license\n * Copyright 2019 Google LLC. 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 *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\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 * =============================================================================\n */\nimport {env} from './environment';\n\nimport {getGlobal} from './global_util';\nimport {NamedGradientMap} from './tape';\nimport {Tensor} from './tensor';\nimport {DataType, RecursiveArray} from './types';\n\nconst kernelRegistry =\n getGlobal('kernelRegistry', () => new Map());\nconst gradRegistry =\n getGlobal('gradRegistry', () => new Map());\n\nexport type DataId = object;\n\ntype AttributeValue =\n number|number[]|boolean|boolean[]|string|string[]|NamedAttrMap;\n\n/** These are extra non-tensor/primitive params passed to kernel functions. */\nexport type Attribute = AttributeValue|RecursiveArray;\n\n/** Specifies the code to run when executing a kernel. */\nexport type KernelFunc = (params: {\n inputs: NamedTensorInfoMap,\n backend: {},\n attrs?: NamedAttrMap,\n}) => TensorInfo|TensorInfo[];\n\n/** The function to run when computing a gradient during backprop. */\nexport type GradFunc =\n (dy: Tensor|Tensor[], saved: Tensor[], attrs: NamedAttrMap) =>\n NamedGradientMap;\n\n/** Function that gets called after the backend initializes. */\nexport type KernelSetupFunc = (backend: {}) => void;\n/** Function that gets called right before the backend is disposed. */\nexport type KernelDisposeFunc = KernelSetupFunc;\n\n/** Config object for registering a kernel in the global registry. */\nexport interface KernelConfig {\n kernelName: string;\n backendName: string;\n kernelFunc: KernelFunc;\n setupFunc?: KernelSetupFunc;\n disposeFunc?: KernelDisposeFunc;\n}\n\n/** Config object for registering a gradient in the global registry. */\nexport interface GradConfig {\n kernelName: string;\n inputsToSave?: string[];\n // When saveAllInputs is true, all inputs will be saved. Only use this flag\n // if inputs is an array of Tensors.\n saveAllInputs?: boolean;\n outputsToSave?: boolean[];\n gradFunc: GradFunc;\n}\n\n/** Holds metadata for a given tensor. */\nexport interface TensorInfo {\n dataId: DataId;\n shape: number[];\n dtype: DataType;\n}\n\nexport interface NamedTensorInfoMap {\n [name: string]: TensorInfo;\n}\n\nexport interface NamedAttrMap {\n [name: string]: Attribute;\n}\n\n/**\n * Returns the kernel function (code) associated with the provided names.\n *\n * @param kernelName The official name of the kernel.\n * @param backendName The official name of the backend.\n */\nexport function getKernel(\n kernelName: string, backendName: string): KernelConfig {\n const key = makeKey(kernelName, backendName);\n return kernelRegistry.get(key);\n}\n\n/**\n * Returns the registered gradient info associated with the provided kernel.\n * @param kernelName The official TF kernel name.\n */\nexport function getGradient(kernelName: string): GradConfig {\n return gradRegistry.get(kernelName);\n}\n\nexport function getKernelsForBackend(backendName: string): KernelConfig[] {\n const it = kernelRegistry.entries();\n const result: KernelConfig[] = [];\n\n while (true) {\n const {done, value} = it.next();\n if (done) {\n break;\n }\n const [key, config] = value;\n const [backend, ] = key.split('_');\n if (backend === backendName) {\n result.push(config);\n }\n }\n return result;\n}\n\n/**\n * Registers the function (forward pass) for the kernel in a global registry.\n *\n * @param config A config object with the following properties:\n * - `kernelName` The official name of the kernel.\n * - `backendName` The official name of the backend.\n * - `kernelFunc` The function to run during the forward pass of the kernel.\n * - `setupFunc` Optional. Gets called once, after the backend initializes.\n * - `disposeFunc` Optional. Gets called once, right before the backend is\n * disposed.\n */\nexport function registerKernel(config: KernelConfig) {\n const {kernelName, backendName} = config;\n const key = makeKey(kernelName, backendName);\n if (kernelRegistry.has(key)) {\n console.warn(\n `The kernel '${kernelName}' for backend ` +\n `'${backendName}' is already registered`);\n }\n kernelRegistry.set(key, config);\n}\n\n/**\n * Registers a gradient function for a given kernel in the global registry,\n * to be used during the back-propagation of that kernel.\n *\n * @param config An object with the following properties:\n * - `kernelName` The name of the kernel that the gradient function is for.\n * - `gradFunc` The function to run during back-propagation.\n */\nexport function registerGradient(config: GradConfig) {\n const {kernelName} = config;\n\n if (gradRegistry.has(kernelName)) {\n // TODO (yassogba) after 3.0 assess whether we need to keep this gated\n // to debug mode.\n if (env().getBool('DEBUG')) {\n console.warn(`Overriding the gradient for '${kernelName}'`);\n }\n }\n gradRegistry.set(kernelName, config);\n}\n\n/**\n * Removes the kernel function from the registry.\n *\n * @param kernelName The official name of the kernel.\n * @param backendName The official name of the backend.\n *\n */\nexport function unregisterKernel(\n kernelName: string, backendName: string): void {\n const key = makeKey(kernelName, backendName);\n if (!kernelRegistry.has(key)) {\n throw new Error(\n `The kernel '${kernelName}' for backend ` +\n `'${backendName}' is not registered`);\n }\n kernelRegistry.delete(key);\n}\n\n/** Removes the registered gradient from the global registry. */\nexport function unregisterGradient(kernelName: string): void {\n if (!gradRegistry.has(kernelName)) {\n throw new Error(\n `The gradient '${kernelName}' for backend is not registered`);\n }\n gradRegistry.delete(kernelName);\n}\n\n/**\n * Finds kernels that have already been registered to a backend and re-registers\n * them for a new backend. Useful for registering custom backends.\n * @param registeredBackendName Already registered backend.\n * @param newBackendName New backend.\n */\nexport function copyRegisteredKernels(\n registeredBackendName: string, newBackendName: string): void {\n const kernels = getKernelsForBackend(registeredBackendName);\n kernels.forEach(kernelConfig => {\n const newKernelConfig =\n Object.assign({}, kernelConfig, {backendName: newBackendName});\n registerKernel(newKernelConfig);\n });\n}\n\nfunction makeKey(kernelName: string, backendName: string) {\n return `${backendName}_${kernelName}`;\n}\n", "/**\n * @license\n * Copyright 2017 Google LLC. 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 *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\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 * =============================================================================\n */\n\nimport {env} from './environment';\nimport {BackendValues, DataType, TensorLike, TypedArray} from './types';\nimport * as base from './util_base';\nexport * from './util_base';\n\n/**\n * Create typed array for scalar value. Used for storing in `DataStorage`.\n */\nexport function createScalarValue(\n value: DataType, dtype: DataType): BackendValues {\n if (dtype === 'string') {\n return encodeString(value);\n }\n\n return toTypedArray([value], dtype);\n}\n\nfunction noConversionNeeded(a: TensorLike, dtype: DataType): boolean {\n return (a instanceof Float32Array && dtype === 'float32') ||\n (a instanceof Int32Array && dtype === 'int32') ||\n (a instanceof Uint8Array && dtype === 'bool');\n}\n\nexport function toTypedArray(a: TensorLike, dtype: DataType): TypedArray {\n if (dtype === 'string') {\n throw new Error('Cannot convert a string[] to a TypedArray');\n }\n if (Array.isArray(a)) {\n a = base.flatten(a);\n }\n\n if (env().getBool('DEBUG')) {\n base.checkConversionForErrors(a as number[], dtype);\n }\n if (noConversionNeeded(a, dtype)) {\n return a as TypedArray;\n }\n if (dtype == null || dtype === 'float32' || dtype === 'complex64') {\n return new Float32Array(a as number[]);\n } else if (dtype === 'int32') {\n return new Int32Array(a as number[]);\n } else if (dtype === 'bool') {\n const bool = new Uint8Array((a as number[]).length);\n for (let i = 0; i < bool.length; ++i) {\n if (Math.round((a as number[])[i]) !== 0) {\n bool[i] = 1;\n }\n }\n return bool;\n } else {\n throw new Error(`Unknown data type ${dtype}`);\n }\n}\n\n/**\n * Returns the current high-resolution time in milliseconds relative to an\n * arbitrary time in the past. It works across different platforms (node.js,\n * browsers).\n *\n * ```js\n * console.log(tf.util.now());\n * ```\n *\n * @doc {heading: 'Util', namespace: 'util'}\n */\nexport function now(): number {\n return env().platform.now();\n}\n\n/**\n * Returns a platform-specific implementation of\n * [`fetch`](https://developer.mozilla.org/en-US/docs/Web/API/Fetch_API).\n *\n * If `fetch` is defined on the global object (`window`, `process`, etc.),\n * `tf.util.fetch` returns that function.\n *\n * If not, `tf.util.fetch` returns a platform-specific solution.\n *\n * ```js\n * const resource = await tf.util.fetch('https://unpkg.com/@tensorflow/tfjs');\n * // handle response\n * ```\n *\n * @doc {heading: 'Util'}\n */\nexport function fetch(\n path: string, requestInits?: RequestInit): Promise {\n return env().platform.fetch(path, requestInits);\n}\n\n/**\n * Encodes the provided string into bytes using the provided encoding scheme.\n *\n * @param s The string to encode.\n * @param encoding The encoding scheme. Defaults to utf-8.\n *\n * @doc {heading: 'Util'}\n */\nexport function encodeString(s: string, encoding = 'utf-8'): Uint8Array {\n encoding = encoding || 'utf-8';\n return env().platform.encode(s, encoding);\n}\n\n/**\n * Decodes the provided bytes into a string using the provided encoding scheme.\n * @param bytes The bytes to decode.\n *\n * @param encoding The encoding scheme. Defaults to utf-8.\n *\n * @doc {heading: 'Util'}\n */\nexport function decodeString(bytes: Uint8Array, encoding = 'utf-8'): string {\n encoding = encoding || 'utf-8';\n return env().platform.decode(bytes, encoding);\n}\n", "/**\n * @license\n * Copyright 2018 Google LLC. 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 *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\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 * =============================================================================\n */\n\nimport {BackendTimer} from './backends/backend';\nimport {Tensor} from './tensor';\nimport {NamedTensorMap} from './tensor_types';\nimport {DataType, DataTypeMap, TypedArray} from './types';\nimport * as util from './util';\n\nexport type KernelProfile = {\n kernelName: string,\n outputs: Tensor[],\n inputs: NamedTensorMap,\n timeMs: Promise,\n extraInfo: Promise\n};\n\nexport class Profiler {\n constructor(private backendTimer: BackendTimer, private logger?: Logger) {\n if (logger == null) {\n this.logger = new Logger();\n }\n }\n\n profileKernel(kernelName: string, inputs: NamedTensorMap, f: () => Tensor[]):\n KernelProfile {\n let outputs: Tensor[];\n const holdResultWrapperFn = () => {\n outputs = f();\n };\n const timer = this.backendTimer.time(holdResultWrapperFn);\n\n for (let i = 0; i < outputs.length; i++) {\n const output = outputs[i];\n // Dangling promise here because we don't want to propagate up\n // asynchronicity.\n output.data().then(tensorVals => {\n checkComputationForErrors(tensorVals, output.dtype, kernelName);\n });\n }\n\n const kernelProfile = {\n kernelName,\n outputs,\n inputs,\n timeMs: timer.then(timing => timing.kernelMs),\n extraInfo: timer.then(\n timing => timing.getExtraProfileInfo != null ?\n timing.getExtraProfileInfo() :\n '')\n };\n return kernelProfile;\n }\n\n logKernelProfile(kernelProfile: KernelProfile): void {\n const {kernelName, outputs, timeMs, inputs, extraInfo} = kernelProfile;\n\n outputs.forEach(result => {\n Promise.all([result.data(), timeMs, extraInfo]).then(valueContainer => {\n this.logger.logKernelProfile(\n kernelName, result, valueContainer[0], valueContainer[1], inputs,\n valueContainer[2]);\n });\n });\n }\n}\n\nexport function checkComputationForErrors(\n vals: DataTypeMap[D], dtype: D, kernelName: string): boolean {\n if (dtype !== 'float32') {\n // Only floating point computations will generate NaN values\n return false;\n }\n for (let i = 0; i < vals.length; i++) {\n const num = vals[i] as number;\n if (isNaN(num) || !isFinite(num)) {\n // Throwing custom exception so behavior is testable.\n console.warn(`Found ${num} in the result of '${kernelName}'`);\n return true;\n }\n }\n return false;\n}\n\nexport class Logger {\n logKernelProfile(\n name: string, result: Tensor, vals: TypedArray,\n timeMs: number|{error: string}, inputs: NamedTensorMap,\n extraInfo?: string) {\n const time = typeof timeMs === 'number' ? util.rightPad(`${timeMs}ms`, 9) :\n timeMs['error'];\n const paddedName = util.rightPad(name, 25);\n const rank = result.rank;\n const size = result.size;\n const shape = util.rightPad(result.shape.toString(), 14);\n let inputShapesDescription = '';\n\n for (const name in inputs) {\n const input = inputs[name];\n if (input != null) {\n // The input might be a non-tensor (e.g HTMLImageElement), in which case\n // we claim the output shape as input shape.\n const inputShape = input.shape || result.shape;\n const inputRank = inputShape.length;\n inputShapesDescription +=\n `${name}: ${inputRank}D ${inputRank > 0 ? inputShape : ''} `;\n }\n }\n\n console.log(\n `%c${paddedName}\\t%c${time}\\t%c${rank}D ${shape}\\t%c${size}\\t%c${\n inputShapesDescription}\\t%c${extraInfo}`,\n 'font-weight:bold', 'color:red', 'color:blue', 'color: orange',\n 'color: green', 'color: steelblue');\n }\n}\n", "/**\n * @license\n * Copyright 2017 Google LLC. 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 *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\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 * =============================================================================\n */\n\nimport {Tensor} from './tensor';\nimport {NamedTensorMap} from './tensor_types';\nimport * as util from './util';\n\nexport interface TapeNode {\n id: number;\n kernelName: string;\n outputs: Tensor[];\n inputs: NamedTensorMap;\n // Optional params, defined only for ops with gradient impl.\n gradient?: (dys: Tensor[]) => NamedGradientMap;\n saved?: Tensor[];\n}\n\nexport type NamedGradientMap = {\n [inputName: string]: () => Tensor;\n};\n\n/**\n * Computes a list of TapeNodes that connect x to y, filtering everything else\n * out and preserving the order of the original tape elements.\n *\n * @param tape The tape elements to filter.\n * @param xs The input Tensors.\n * @param y The output Tensor.\n */\nexport function getFilteredNodesXToY(\n tape: TapeNode[], xs: Tensor[], y: Tensor): TapeNode[] {\n // Forward pass to compute all the nodes and Tensors that are transitively a\n // function of x.\n const tensorsFromX: {[tensorId: number]: boolean} = {};\n const nodesFromX: {[nodeId: number]: boolean} = {};\n for (let i = 0; i < xs.length; i++) {\n tensorsFromX[xs[i].id] = true;\n }\n\n for (let i = 0; i < tape.length; i++) {\n const node = tape[i];\n const nodeInputs = node.inputs;\n for (const inputName in nodeInputs) {\n const input = nodeInputs[inputName];\n\n let anyInputFromX = false;\n for (let j = 0; j < xs.length; j++) {\n if (tensorsFromX[input.id]) {\n node.outputs.forEach(output => tensorsFromX[output.id] = true);\n anyInputFromX = true;\n nodesFromX[node.id] = true;\n break;\n }\n }\n\n if (anyInputFromX) {\n break;\n }\n }\n }\n\n // Backward pass to find all of the nodes and Tensors that lead to y.\n const tensorsLeadToY: {[tensorId: number]: boolean} = {};\n tensorsLeadToY[y.id] = true;\n const nodesToY: {[nodeId: number]: boolean} = {};\n\n for (let i = tape.length - 1; i >= 0; i--) {\n const node = tape[i];\n const nodeInputs = node.inputs;\n\n // If any of the outputs lead to y, mark all of the inputs as leading to y.\n for (let j = 0; j < node.outputs.length; j++) {\n if (tensorsLeadToY[node.outputs[j].id]) {\n for (const inputName in nodeInputs) {\n tensorsLeadToY[nodeInputs[inputName].id] = true;\n nodesToY[node.id] = true;\n }\n break;\n }\n }\n }\n\n // Return the paths that come from x and lead to y.\n const filteredTape: TapeNode[] = [];\n for (let i = 0; i < tape.length; i++) {\n const node = tape[i];\n\n if (nodesFromX[node.id] && nodesToY[node.id]) {\n // Prune the inputs from the node that aren't a function of x.\n const prunedInputs: {[inputName: string]: Tensor} = {};\n for (const inputName in node.inputs) {\n const nodeInput = node.inputs[inputName];\n if (tensorsFromX[nodeInput.id]) {\n prunedInputs[inputName] = nodeInput;\n }\n }\n\n // Copy the node and overwrite inputsAndArgs to the pruned version.\n const prunedNode = Object.assign({}, node);\n prunedNode.inputs = prunedInputs;\n prunedNode.outputs = node.outputs;\n\n filteredTape.push(prunedNode);\n }\n }\n\n return filteredTape;\n}\n\n/**\n * Backpropagate gradients through the filtered TapeNodes.\n *\n * @param tensorAccumulatedGradientMap A map of Tensor to its gradient. This map\n * is mutated by this method.\n * @param filteredTape The filtered TapeNodes to backprop through.\n */\nexport function backpropagateGradients(\n tensorAccumulatedGradientMap: {[tensorId: number]: Tensor},\n filteredTape: TapeNode[], tidy: (f: Function) => Tensor,\n add: (a: Tensor, b: Tensor) => Tensor) {\n // Walk the tape backward and keep a map of Tensor to its gradient.\n for (let i = filteredTape.length - 1; i >= 0; i--) {\n const node = filteredTape[i];\n\n const dys: Tensor[] = [];\n node.outputs.forEach(o => {\n const gradTensor = tensorAccumulatedGradientMap[o.id];\n if (gradTensor != null) {\n dys.push(gradTensor);\n } else {\n // This particular output is not in the back-propagation subgraph, so it\n // does not affect the final output, thus we put null for its dy.\n dys.push(null);\n }\n });\n\n if (node.gradient == null) {\n throw new Error(\n `Cannot compute gradient: gradient function not found ` +\n `for ${node.kernelName}.`);\n }\n\n // Backprop dy through this node and accumulate gradients over the inputs.\n const inputGradients = node.gradient(dys);\n\n for (const inputName in node.inputs) {\n if (!(inputName in inputGradients)) {\n throw new Error(\n `Cannot backprop through input ${inputName}. ` +\n `Available gradients found: ${Object.keys(inputGradients)}.`);\n }\n\n // Call the gradient function.\n const dx = tidy(() => inputGradients[inputName]());\n if (dx.dtype !== 'float32') {\n throw new Error(\n `Error in gradient for op ${\n node.kernelName}. The gradient of input ` +\n `${inputName} must have 'float32' dtype, but has '${dx.dtype}'`);\n }\n const x = node.inputs[inputName];\n if (!util.arraysEqual(dx.shape, x.shape)) {\n throw new Error(\n `Error in gradient for op ${\n node.kernelName}. The gradient of input ` +\n `'${inputName}' has shape '${dx.shape}', which does not match ` +\n `the shape of the input '${x.shape}'`);\n }\n\n if (tensorAccumulatedGradientMap[x.id] == null) {\n tensorAccumulatedGradientMap[x.id] = dx;\n } else {\n const curGradient = tensorAccumulatedGradientMap[x.id];\n tensorAccumulatedGradientMap[x.id] = add(curGradient, dx);\n curGradient.dispose();\n }\n }\n }\n}\n", "/**\n * @license\n * Copyright 2018 Google LLC. 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 *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\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 * =============================================================================\n */\n\nimport {DataType, TypedArray} from './types';\nimport {computeStrides, isString, rightPad, sizeFromShape} from './util';\n\n// Maximum number of values before we decide to show ellipsis.\nconst FORMAT_LIMIT_NUM_VALS = 20;\n// Number of first and last values to show when displaying a, b,...,y, z.\nconst FORMAT_NUM_FIRST_LAST_VALS = 3;\n// Number of significant digits to show.\nconst FORMAT_NUM_SIG_DIGITS = 7;\n\nexport function tensorToString(\n vals: TypedArray|string[], shape: number[], dtype: DataType,\n verbose: boolean) {\n const strides = computeStrides(shape);\n const padPerCol = computeMaxSizePerColumn(vals, shape, dtype, strides);\n const rank = shape.length;\n const valsLines = subTensorToString(vals, shape, dtype, strides, padPerCol);\n const lines = ['Tensor'];\n if (verbose) {\n lines.push(` dtype: ${dtype}`);\n lines.push(` rank: ${rank}`);\n lines.push(` shape: [${shape}]`);\n lines.push(` values:`);\n }\n lines.push(valsLines.map(l => ' ' + l).join('\\n'));\n return lines.join('\\n');\n}\n\nfunction computeMaxSizePerColumn(\n vals: TypedArray|string[], shape: number[], dtype: DataType,\n strides: number[]): number[] {\n const n = sizeFromShape(shape);\n const numCols = strides[strides.length - 1];\n const padPerCol = new Array(numCols).fill(0);\n const rank = shape.length;\n const valuesOrTuples =\n dtype === 'complex64' ? createComplexTuples(vals) : vals;\n\n if (rank > 1) {\n for (let row = 0; row < n / numCols; row++) {\n const offset = row * numCols;\n for (let j = 0; j < numCols; j++) {\n padPerCol[j] = Math.max(\n padPerCol[j],\n valToString(valuesOrTuples[offset + j], 0, dtype).length);\n }\n }\n }\n return padPerCol;\n}\n\nfunction valToString(\n val: number|string|[number, number], pad: number, dtype: DataType) {\n let valStr: string;\n if (Array.isArray(val)) {\n valStr = `${parseFloat(val[0].toFixed(FORMAT_NUM_SIG_DIGITS))} + ` +\n `${parseFloat(val[1].toFixed(FORMAT_NUM_SIG_DIGITS))}j`;\n } else if (isString(val)) {\n valStr = `'${val}'`;\n } else if (dtype === 'bool') {\n valStr = boolNumToString(val);\n } else {\n valStr = parseFloat(val.toFixed(FORMAT_NUM_SIG_DIGITS)).toString();\n }\n\n return rightPad(valStr, pad);\n}\n\nfunction boolNumToString(v: number): string {\n return v === 0 ? 'false' : 'true';\n}\n\nfunction subTensorToString(\n vals: TypedArray|string[], shape: number[], dtype: DataType,\n strides: number[], padPerCol: number[], isLast = true): string[] {\n const storagePerElement = dtype === 'complex64' ? 2 : 1;\n\n const size = shape[0];\n const rank = shape.length;\n if (rank === 0) {\n if (dtype === 'complex64') {\n const complexTuple = createComplexTuples(vals);\n return [valToString(complexTuple[0], 0, dtype)];\n }\n if (dtype === 'bool') {\n return [boolNumToString(vals[0] as number)];\n }\n return [vals[0].toString()];\n }\n\n if (rank === 1) {\n if (size > FORMAT_LIMIT_NUM_VALS) {\n const firstValsSize = FORMAT_NUM_FIRST_LAST_VALS * storagePerElement;\n\n let firstVals = Array.from(\n vals.slice(0, firstValsSize));\n let lastVals = Array.from(vals.slice(\n (size - FORMAT_NUM_FIRST_LAST_VALS) * storagePerElement,\n size * storagePerElement));\n if (dtype === 'complex64') {\n firstVals = createComplexTuples(firstVals);\n lastVals = createComplexTuples(lastVals);\n }\n return [\n '[' +\n firstVals.map((x, i) => valToString(x, padPerCol[i], dtype))\n .join(', ') +\n ', ..., ' +\n lastVals\n .map(\n (x, i) => valToString(\n x, padPerCol[size - FORMAT_NUM_FIRST_LAST_VALS + i], dtype))\n .join(', ') +\n ']'\n ];\n }\n const displayVals: Array =\n dtype === 'complex64' ? createComplexTuples(vals) :\n Array.from(vals);\n\n return [\n '[' +\n displayVals.map((x, i) => valToString(x, padPerCol[i], dtype))\n .join(', ') +\n ']'\n ];\n }\n\n // The array is rank 2 or more.\n const subshape = shape.slice(1);\n const substrides = strides.slice(1);\n const stride = strides[0] * storagePerElement;\n const lines: string[] = [];\n if (size > FORMAT_LIMIT_NUM_VALS) {\n for (let i = 0; i < FORMAT_NUM_FIRST_LAST_VALS; i++) {\n const start = i * stride;\n const end = start + stride;\n lines.push(...subTensorToString(\n vals.slice(start, end), subshape, dtype, substrides, padPerCol,\n false /* isLast */));\n }\n lines.push('...');\n for (let i = size - FORMAT_NUM_FIRST_LAST_VALS; i < size; i++) {\n const start = i * stride;\n const end = start + stride;\n lines.push(...subTensorToString(\n vals.slice(start, end), subshape, dtype, substrides, padPerCol,\n i === size - 1 /* isLast */));\n }\n } else {\n for (let i = 0; i < size; i++) {\n const start = i * stride;\n const end = start + stride;\n lines.push(...subTensorToString(\n vals.slice(start, end), subshape, dtype, substrides, padPerCol,\n i === size - 1 /* isLast */));\n }\n }\n const sep = rank === 2 ? ',' : '';\n lines[0] = '[' + lines[0] + sep;\n for (let i = 1; i < lines.length - 1; i++) {\n lines[i] = ' ' + lines[i] + sep;\n }\n let newLineSep = ',\\n';\n for (let i = 2; i < rank; i++) {\n newLineSep += '\\n';\n }\n lines[lines.length - 1] =\n ' ' + lines[lines.length - 1] + ']' + (isLast ? '' : newLineSep);\n return lines;\n}\n\nfunction createComplexTuples(vals: Array<{}>|\n TypedArray): Array<[number, number]> {\n const complexTuples: Array<[number, number]> = [];\n for (let i = 0; i < vals.length; i += 2) {\n complexTuples.push([vals[i], vals[i + 1]] as [number, number]);\n }\n return complexTuples;\n}\n", "/**\n * @license\n * Copyright 2017 Google LLC. 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 *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\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 * =============================================================================\n */\n\nimport {tensorToString} from './tensor_format';\nimport {ArrayMap, BackendValues, DataType, DataTypeMap, DataValues, NumericDataType, Rank, ShapeMap, SingleValueMap, TypedArray} from './types';\nimport * as util from './util';\nimport {computeStrides, toNestedArray} from './util';\n\nexport interface TensorData {\n dataId?: DataId;\n values?: DataTypeMap[D];\n}\n\n// This interface mimics KernelBackend (in backend.ts), which would create a\n// circular dependency if imported.\nexport interface Backend {}\n\n/**\n * A mutable object, similar to `tf.Tensor`, that allows users to set values\n * at locations before converting to an immutable `tf.Tensor`.\n *\n * See `tf.buffer` for creating a tensor buffer.\n *\n * @doc {heading: 'Tensors', subheading: 'Classes'}\n */\nexport class TensorBuffer {\n size: number;\n shape: ShapeMap[R];\n strides: number[];\n values: DataTypeMap[D];\n\n constructor(shape: ShapeMap[R], public dtype: D, values?: DataTypeMap[D]) {\n this.shape = shape.slice() as ShapeMap[R];\n this.size = util.sizeFromShape(shape);\n\n if (values != null) {\n const n = values.length;\n util.assert(\n n === this.size,\n () => `Length of values '${n}' does not match the size ` +\n `inferred by the shape '${this.size}'.`);\n }\n if (dtype === 'complex64') {\n throw new Error(\n `complex64 dtype TensorBuffers are not supported. Please create ` +\n `a TensorBuffer for the real and imaginary parts separately and ` +\n `call tf.complex(real, imag).`);\n }\n this.values = values || util.getArrayFromDType(dtype, this.size);\n this.strides = computeStrides(shape);\n }\n\n /**\n * Sets a value in the buffer at a given location.\n *\n * @param value The value to set.\n * @param locs The location indices.\n *\n * @doc {heading: 'Tensors', subheading: 'Creation'}\n */\n set(value: SingleValueMap[D], ...locs: number[]): void {\n if (locs.length === 0) {\n locs = [0];\n }\n util.assert(\n locs.length === this.rank,\n () => `The number of provided coordinates (${locs.length}) must ` +\n `match the rank (${this.rank})`);\n\n const index = this.locToIndex(locs);\n this.values[index] = value as number;\n }\n\n /**\n * Returns the value in the buffer at the provided location.\n *\n * @param locs The location indices.\n *\n * @doc {heading: 'Tensors', subheading: 'Creation'}\n */\n get(...locs: number[]): SingleValueMap[D] {\n if (locs.length === 0) {\n locs = [0];\n }\n let i = 0;\n for (const loc of locs) {\n if (loc < 0 || loc >= this.shape[i]) {\n const msg = `Requested out of range element at ${locs}. ` +\n ` Buffer shape=${this.shape}`;\n throw new Error(msg);\n }\n i++;\n }\n let index = locs[locs.length - 1];\n for (let i = 0; i < locs.length - 1; ++i) {\n index += this.strides[i] * locs[i];\n }\n return this.values[index] as SingleValueMap[D];\n }\n\n locToIndex(locs: number[]): number {\n if (this.rank === 0) {\n return 0;\n } else if (this.rank === 1) {\n return locs[0];\n }\n let index = locs[locs.length - 1];\n for (let i = 0; i < locs.length - 1; ++i) {\n index += this.strides[i] * locs[i];\n }\n return index;\n }\n\n indexToLoc(index: number): number[] {\n if (this.rank === 0) {\n return [];\n } else if (this.rank === 1) {\n return [index];\n }\n const locs: number[] = new Array(this.shape.length);\n for (let i = 0; i < locs.length - 1; ++i) {\n locs[i] = Math.floor(index / this.strides[i]);\n index -= locs[i] * this.strides[i];\n }\n locs[locs.length - 1] = index;\n return locs;\n }\n\n get rank() {\n return this.shape.length;\n }\n\n /**\n * Creates an immutable `tf.Tensor` object from the buffer.\n *\n * @doc {heading: 'Tensors', subheading: 'Creation'}\n */\n toTensor(): Tensor {\n return trackerFn().makeTensor(this.values, this.shape, this.dtype) as\n Tensor;\n }\n}\n\nexport interface TensorTracker {\n makeTensor(\n values: DataValues, shape: number[], dtype: DataType,\n backend?: Backend): Tensor;\n makeVariable(\n initialValue: Tensor, trainable?: boolean, name?: string,\n dtype?: DataType): Variable;\n incRef(a: Tensor, backend: Backend): void;\n disposeTensor(t: Tensor): void;\n disposeVariable(v: Variable): void;\n read(dataId: DataId): Promise;\n readSync(dataId: DataId): BackendValues;\n}\n\n/**\n * The Tensor class calls into this handler to delegate chaining operations.\n */\nexport interface OpHandler {\n cast(x: T, dtype: DataType): T;\n buffer(\n shape: ShapeMap[R], dtype: D,\n values?: DataTypeMap[D]): TensorBuffer;\n print(x: T, verbose: boolean): void;\n clone(x: T): T;\n // TODO(yassogba) bring reshape back?\n}\n\n// For tracking tensor creation and disposal.\nlet trackerFn: () => TensorTracker = null;\n// Used by chaining methods to call into ops.\nlet opHandler: OpHandler = null;\n// Used to warn about deprecated methods.\nlet deprecationWarningFn: (msg: string) => void = null;\n// This here so that we can use this method on dev branches and keep the\n// functionality at master.\n// tslint:disable-next-line:no-unused-expression\n[deprecationWarningFn];\n\n/**\n * An external consumer can register itself as the tensor tracker. This way\n * the Tensor class can notify the tracker for every tensor created and\n * disposed.\n */\nexport function setTensorTracker(fn: () => TensorTracker) {\n trackerFn = fn;\n}\n\n/**\n * An external consumer can register itself as the op handler. This way the\n * Tensor class can have chaining methods that call into ops via the op\n * handler.\n */\nexport function setOpHandler(handler: OpHandler) {\n opHandler = handler;\n}\n\n/**\n * Sets the deprecation warning function to be used by this file. This way the\n * Tensor class can be a leaf but still use the environment.\n */\nexport function setDeprecationWarningFn(fn: (msg: string) => void) {\n deprecationWarningFn = fn;\n}\n\n/**\n * We wrap data id since we use weak map to avoid memory leaks.\n * Since we have our own memory management, we have a reference counter\n * mapping a tensor to its data, so there is always a pointer (even if that\n * data is otherwise garbage collectable).\n * See https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/\n * Global_Objects/WeakMap\n */\nexport type DataId = object; // object instead of {} to force non-primitive.\n\n// Declare this namespace to make Tensor class augmentation work in google3.\nexport declare namespace Tensor {}\n/**\n * A `tf.Tensor` object represents an immutable, multidimensional array of\n * numbers that has a shape and a data type.\n *\n * See `tf.tensor` for details on how to create a `tf.Tensor`.\n *\n * @doc {heading: 'Tensors', subheading: 'Classes'}\n */\nexport class Tensor {\n /** Unique id of this tensor. */\n readonly id: number;\n /**\n * Id of the bucket holding the data for this tensor. Multiple arrays can\n * point to the same bucket (e.g. when calling array.reshape()).\n */\n dataId: DataId;\n /** The shape of the tensor. */\n readonly shape: ShapeMap[R];\n /** Number of elements in the tensor. */\n readonly size: number;\n /** The data type for the array. */\n readonly dtype: DataType;\n /** The rank type for the array (see `Rank` enum). */\n readonly rankType: R;\n\n /** Whether this tensor has been globally kept. */\n kept = false;\n /** The id of the scope this tensor is being tracked in. */\n scopeId: number;\n\n /**\n * Number of elements to skip in each dimension when indexing. See\n * https://docs.scipy.org/doc/numpy/reference/generated/\\\n * numpy.ndarray.strides.html\n */\n readonly strides: number[];\n\n constructor(shape: ShapeMap[R], dtype: DataType, dataId: DataId, id: number) {\n this.shape = shape.slice() as ShapeMap[R];\n this.dtype = dtype || 'float32';\n this.size = util.sizeFromShape(shape);\n this.strides = computeStrides(shape);\n this.dataId = dataId;\n this.id = id;\n this.rankType = (this.rank < 5 ? this.rank.toString() : 'higher') as R;\n }\n\n get rank(): number {\n return this.shape.length;\n }\n\n /**\n * Returns a promise of `tf.TensorBuffer` that holds the underlying data.\n *\n * @doc {heading: 'Tensors', subheading: 'Classes'}\n */\n async buffer(): Promise> {\n const vals = await this.data();\n return opHandler.buffer(this.shape, this.dtype as D, vals);\n }\n\n /**\n * Returns a `tf.TensorBuffer` that holds the underlying data.\n * @doc {heading: 'Tensors', subheading: 'Classes'}\n */\n bufferSync(): TensorBuffer {\n return opHandler.buffer(this.shape, this.dtype as D, this.dataSync());\n }\n\n /**\n * Returns the tensor data as a nested array. The transfer of data is done\n * asynchronously.\n *\n * @doc {heading: 'Tensors', subheading: 'Classes'}\n */\n async array(): Promise {\n const vals = await this.data();\n return toNestedArray(this.shape, vals) as ArrayMap[R];\n }\n\n /**\n * Returns the tensor data as a nested array. The transfer of data is done\n * synchronously.\n *\n * @doc {heading: 'Tensors', subheading: 'Classes'}\n */\n arraySync(): ArrayMap[R] {\n return toNestedArray(this.shape, this.dataSync()) as ArrayMap[R];\n }\n\n /**\n * Asynchronously downloads the values from the `tf.Tensor`. Returns a\n * promise of `TypedArray` that resolves when the computation has finished.\n *\n * @doc {heading: 'Tensors', subheading: 'Classes'}\n */\n async data(): Promise {\n this.throwIfDisposed();\n const data = trackerFn().read(this.dataId);\n if (this.dtype === 'string') {\n const bytes = await data as Uint8Array[];\n try {\n return bytes.map(b => util.decodeString(b)) as DataTypeMap[D];\n } catch {\n throw new Error(\n 'Failed to decode the string bytes into utf-8. ' +\n 'To get the original bytes, call tensor.bytes().');\n }\n }\n return data as Promise;\n }\n\n /**\n * Synchronously downloads the values from the `tf.Tensor`. This blocks the\n * UI thread until the values are ready, which can cause performance issues.\n *\n * @doc {heading: 'Tensors', subheading: 'Classes'}\n */\n dataSync(): DataTypeMap[D] {\n this.throwIfDisposed();\n const data = trackerFn().readSync(this.dataId);\n if (this.dtype === 'string') {\n try {\n return (data as Uint8Array[]).map(b => util.decodeString(b)) as\n DataTypeMap[D];\n } catch {\n throw new Error(\n 'Failed to decode the string bytes into utf-8. ' +\n 'To get the original bytes, call tensor.bytes().');\n }\n }\n return data as DataTypeMap[D];\n }\n\n /** Returns the underlying bytes of the tensor's data. */\n async bytes(): Promise {\n this.throwIfDisposed();\n const data = await trackerFn().read(this.dataId);\n if (this.dtype === 'string') {\n return data as Uint8Array[];\n } else {\n return new Uint8Array((data as TypedArray).buffer);\n }\n }\n\n /**\n * Disposes `tf.Tensor` from memory.\n *\n * @doc {heading: 'Tensors', subheading: 'Classes'}\n */\n dispose(): void {\n if (this.isDisposed) {\n return;\n }\n trackerFn().disposeTensor(this);\n this.isDisposedInternal = true;\n }\n\n protected isDisposedInternal = false;\n get isDisposed(): boolean {\n return this.isDisposedInternal;\n }\n\n throwIfDisposed() {\n if (this.isDisposed) {\n throw new Error(`Tensor is disposed.`);\n }\n }\n\n /**\n * Prints the `tf.Tensor`. See `tf.print` for details.\n *\n * @param verbose Whether to print verbose information about the tensor,\n * including dtype and size.\n *\n * @doc {heading: 'Tensors', subheading: 'Classes'}\n */\n print(verbose = false): void {\n return opHandler.print(this, verbose);\n }\n\n /**\n * Returns a copy of the tensor. See `tf.clone` for details.\n * @doc {heading: 'Tensors', subheading: 'Classes'}\n */\n clone(this: T): T {\n this.throwIfDisposed();\n return opHandler.clone(this);\n }\n\n /**\n * Returns a human-readable description of the tensor. Useful for logging.\n *\n * @doc {heading: 'Tensors', subheading: 'Classes'}\n */\n toString(verbose = false): string {\n const vals = this.dataSync();\n return tensorToString(vals, this.shape, this.dtype, verbose);\n }\n\n cast(dtype: DataType): T {\n this.throwIfDisposed();\n return opHandler.cast(this as T, dtype);\n }\n variable(trainable = true, name?: string, dtype?: DataType): Variable {\n this.throwIfDisposed();\n return trackerFn().makeVariable(this, trainable, name, dtype) as\n Variable;\n }\n}\nObject.defineProperty(Tensor, Symbol.hasInstance, {\n value: (instance: Tensor) => {\n // Implementation note: we should use properties of the object that will be\n // defined before the constructor body has finished executing (methods).\n // This is because when this code is transpiled by babel, babel will call\n // classCallCheck before the constructor body is run.\n // See https://github.com/tensorflow/tfjs/issues/3384 for backstory.\n return !!instance && instance.data != null && instance.dataSync != null &&\n instance.throwIfDisposed != null;\n }\n});\n\nexport interface NumericTensor extends Tensor {\n dtype: NumericDataType;\n dataSync(): DataTypeMap[D];\n data(): Promise;\n}\n\nexport interface StringTensor extends Tensor {\n dtype: 'string';\n dataSync(): DataTypeMap[D];\n data(): Promise;\n}\n\n/** @doclink Tensor */\nexport type Scalar = Tensor;\n/** @doclink Tensor */\nexport type Tensor1D = Tensor;\n/** @doclink Tensor */\nexport type Tensor2D = Tensor;\n/** @doclink Tensor */\nexport type Tensor3D = Tensor;\n/** @doclink Tensor */\nexport type Tensor4D = Tensor;\n/** @doclink Tensor */\nexport type Tensor5D = Tensor;\n/** @doclink Tensor */\nexport type Tensor6D = Tensor;\n\n/**\n * A mutable `tf.Tensor`, useful for persisting state, e.g. for training.\n *\n * @doc {heading: 'Tensors', subheading: 'Classes'}\n */\nexport class Variable extends Tensor {\n name: string;\n\n constructor(\n initialValue: Tensor, public trainable: boolean, name: string,\n tensorId: number) {\n super(\n initialValue.shape, initialValue.dtype, initialValue.dataId, tensorId);\n this.name = name;\n }\n\n /**\n * Assign a new `tf.Tensor` to this variable. The new `tf.Tensor` must have\n * the same shape and dtype as the old `tf.Tensor`.\n *\n * @param newValue New tensor to be assigned to this variable.\n *\n * @doc {heading: 'Tensors', subheading: 'Classes'}\n */\n assign(newValue: Tensor): void {\n if (newValue.dtype !== this.dtype) {\n throw new Error(\n `dtype of the new value (${newValue.dtype}) and ` +\n `previous value (${this.dtype}) must match`);\n }\n if (!util.arraysEqual(newValue.shape, this.shape)) {\n throw new Error(\n `shape of the new value (${newValue.shape}) and ` +\n `previous value (${this.shape}) must match`);\n }\n trackerFn().disposeTensor(this);\n this.dataId = newValue.dataId;\n trackerFn().incRef(this, null /* backend */);\n }\n\n dispose(): void {\n trackerFn().disposeVariable(this);\n this.isDisposedInternal = true;\n }\n}\n\nObject.defineProperty(Variable, Symbol.hasInstance, {\n value: (instance: Variable) => {\n return instance instanceof Tensor && instance.assign != null &&\n instance.assign instanceof Function;\n }\n});\n", "/**\n * @license\n * Copyright 2017 Google LLC. 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 *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\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 * =============================================================================\n */\n\n/** @docalias number[] */\nexport interface ShapeMap {\n R0: number[];\n R1: [number];\n R2: [number, number];\n R3: [number, number, number];\n R4: [number, number, number, number];\n R5: [number, number, number, number, number];\n R6: [number, number, number, number, number, number];\n}\n\n/** @docalias number[] */\nexport interface ArrayMap {\n R0: number;\n R1: number[];\n R2: number[][];\n R3: number[][][];\n R4: number[][][][];\n R5: number[][][][][];\n R6: number[][][][][][];\n}\n\nexport interface DataTypeMap {\n float32: Float32Array;\n int32: Int32Array;\n bool: Uint8Array;\n complex64: Float32Array;\n string: string[];\n}\n\nexport interface SingleValueMap {\n bool: boolean;\n int32: number;\n float32: number;\n complex64: number;\n string: string;\n}\n\n/** @docalias 'float32'|'int32'|'bool'|'complex64'|'string' */\nexport type DataType = keyof DataTypeMap;\nexport type NumericDataType = 'float32'|'int32'|'bool'|'complex64';\nexport type TypedArray = Float32Array|Int32Array|Uint8Array;\n/** Tensor data used in tensor creation and user-facing API. */\nexport type DataValues = DataTypeMap[DataType];\n/** The underlying tensor data that gets stored in a backend. */\nexport type BackendValues = Float32Array|Int32Array|Uint8Array|Uint8Array[];\n\nexport enum Rank {\n R0 = 'R0',\n R1 = 'R1',\n R2 = 'R2',\n R3 = 'R3',\n R4 = 'R4',\n R5 = 'R5',\n R6 = 'R6'\n}\n\nexport type FlatVector = boolean[]|number[]|TypedArray;\nexport type RegularArray =\n T[]|T[][]|T[][][]|T[][][][]|T[][][][][]|T[][][][][][];\n\n// tslint:disable-next-line:no-any\nexport interface RecursiveArray {\n [index: number]: T|RecursiveArray;\n}\n\n// Looks for upcasting types. Used, for example, in operations with mixed dtype\n// inputs.\nenum UpcastInt32AndMap {\n 'float32' = 'float32',\n 'int32' = 'int32',\n 'bool' = 'int32',\n 'complex64' = 'complex64'\n}\n\nenum UpcastBoolAndMap {\n 'float32' = 'float32',\n 'int32' = 'int32',\n 'bool' = 'bool',\n 'complex64' = 'complex64'\n}\n\nenum UpcastFloat32AndMap {\n 'float32' = 'float32',\n 'int32' = 'float32',\n 'bool' = 'float32',\n 'complex64' = 'complex64'\n}\n\nenum UpcastComplex64AndMap {\n 'float32' = 'complex64',\n 'int32' = 'complex64',\n 'bool' = 'complex64',\n 'complex64' = 'complex64'\n}\n\nconst upcastTypeMap = {\n 'float32': UpcastFloat32AndMap,\n 'int32': UpcastInt32AndMap,\n 'bool': UpcastBoolAndMap,\n 'complex64': UpcastComplex64AndMap\n};\n\nexport function upcastType(typeA: DataType, typeB: DataType): DataType {\n if (typeA === 'string' || typeB === 'string') {\n if (typeA === 'string' && typeB === 'string') {\n return 'string';\n }\n throw new Error(`Can not upcast ${typeA} with ${typeB}`);\n }\n return upcastTypeMap[typeA][typeB];\n}\n\n/** Returns the output type after summation. */\nexport function sumOutType(type: DataType): DataType {\n return upcastType(type, 'int32');\n}\n\n/** @docalias TypedArray|Array */\nexport type TensorLike =\n TypedArray|number|boolean|string|RecursiveArray|\n RecursiveArray|RecursiveArray|Uint8Array[];\nexport type ScalarLike = number|boolean|string|Uint8Array;\n/** @docalias TypedArray|Array */\nexport type TensorLike1D = TypedArray|number[]|boolean[]|string[]|Uint8Array[];\n/** @docalias TypedArray|Array */\nexport type TensorLike2D = TypedArray|number[]|number[][]|boolean[]|boolean[][]|\n string[]|string[][]|Uint8Array[]|Uint8Array[][];\n/** @docalias TypedArray|Array */\nexport type TensorLike3D = TypedArray|number[]|number[][][]|boolean[]|\n boolean[][][]|string[]|string[][][]|Uint8Array[]|Uint8Array[][][];\n/** @docalias TypedArray|Array */\nexport type TensorLike4D = TypedArray|number[]|number[][][][]|boolean[]|\n boolean[][][][]|string[]|string[][][][]|Uint8Array[]|Uint8Array[][][][];\n/** @docalias TypedArray|Array */\nexport type TensorLike5D =\n TypedArray|number[]|number[][][][][]|boolean[]|boolean[][][][][]|string[]|\n string[][][][][]|Uint8Array[]|Uint8Array[][][][][];\n/** @docalias TypedArray|Array */\nexport type TensorLike6D =\n TypedArray|number[]|number[][][][][][]|boolean[]|boolean[][][][][][]|\n string[]|string[][][][][][]|Uint8Array[]|Uint8Array[][][][][];\n\n/** Type for representing image dat in Uint8Array type. */\nexport interface PixelData {\n width: number;\n height: number;\n data: Uint8Array;\n}\n", "/**\n * @license\n * Copyright 2018 Google LLC. 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 *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\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 * =============================================================================\n */\n\nimport {Tensor} from './tensor';\nimport {TensorContainer, TensorContainerArray} from './tensor_types';\nimport {upcastType} from './types';\nimport {assert} from './util';\n\nexport function makeTypesMatch(a: T, b: T): [T, T] {\n if (a.dtype === b.dtype) {\n return [a, b];\n }\n const dtype = upcastType(a.dtype, b.dtype);\n return [a.cast(dtype), b.cast(dtype)];\n}\n\nexport function assertTypesMatch(a: Tensor, b: Tensor): void {\n assert(\n a.dtype === b.dtype,\n () => `The dtypes of the first(${a.dtype}) and` +\n ` second(${b.dtype}) input must match`);\n}\n\nexport function isTensorInList(tensor: Tensor, tensorList: Tensor[]): boolean {\n return tensorList.some(x => x.id === tensor.id);\n}\n\n/**\n * Extracts any `Tensor`s found within the provided object.\n *\n * @param container an object that may be a `Tensor` or may directly contain\n * `Tensor`s, such as a `Tensor[]` or `{key: Tensor, ...}`. In general it\n * is safe to pass any object here, except that `Promise`s are not\n * supported.\n * @returns An array of `Tensors` found within the passed object. If the\n * argument is simply a `Tensor', a list containing that `Tensor` is\n * returned. If the object is not a `Tensor` or does not\n * contain `Tensors`, an empty list is returned.\n */\nexport function getTensorsInContainer(result: TensorContainer): Tensor[] {\n const list: Tensor[] = [];\n const seen = new Set<{}|void>();\n walkTensorContainer(result, list, seen);\n return list;\n}\n\nfunction walkTensorContainer(\n container: TensorContainer, list: Tensor[], seen: Set<{}|void>): void {\n if (container == null) {\n return;\n }\n if (container instanceof Tensor) {\n list.push(container);\n return;\n }\n if (!isIterable(container)) {\n return;\n }\n // Iteration over keys works also for arrays.\n const iterable = container as TensorContainerArray;\n for (const k in iterable) {\n const val = iterable[k];\n if (!seen.has(val)) {\n seen.add(val);\n walkTensorContainer(val, list, seen);\n }\n }\n}\n\n// tslint:disable-next-line:no-any\nfunction isIterable(obj: any): boolean {\n return Array.isArray(obj) || typeof obj === 'object';\n}\n", "/**\n * @license\n * Copyright 2018 Google LLC. 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 *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\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 * =============================================================================\n */\n\nimport {BackendTimingInfo, DataMover, KernelBackend} from './backends/backend';\nimport {Environment, setEnvironmentGlobal} from './environment';\nimport {getGlobalNamespace} from './global_util';\nimport {Add, Cast} from './kernel_names';\nimport {getGradient, getKernel, getKernelsForBackend, GradFunc, NamedAttrMap, TensorInfo} from './kernel_registry';\nimport {KernelProfile, Profiler} from './profiler';\nimport {backpropagateGradients, getFilteredNodesXToY, TapeNode} from './tape';\nimport {DataId, setTensorTracker, Tensor, TensorTracker, Variable} from './tensor';\nimport {GradSaveFunc, NamedTensorMap, NamedVariableMap, TensorContainer} from './tensor_types';\nimport {getTensorsInContainer} from './tensor_util';\nimport {BackendValues, DataType, DataValues} from './types';\nimport * as util from './util';\nimport {bytesFromStringArray, makeOnesTypedArray, now, sizeFromShape} from './util';\n\n/**\n * A function that computes an output. The save function is for saving tensors\n * computed in the forward pass, that we need in the backward pass.\n */\nexport type ForwardFunc = (backend: KernelBackend, save?: GradSaveFunc) => T;\n\n/**\n * @docalias (a: Tensor, b: Tensor,..., save?: Function) => {\n * value: Tensor,\n * gradFunc: (dy: Tensor, saved?: NamedTensorMap) => Tensor | Tensor[]\n * }\n */\nexport type CustomGradientFunc =\n (...inputs: Array) => {\n value: T;\n gradFunc: (dy: T, saved: Tensor[]) => Tensor | Tensor[];\n };\n\nexport type MemoryInfo = {\n numTensors: number; numDataBuffers: number; numBytes: number;\n unreliable?: boolean; reasons: string[];\n};\n\ntype KernelInfo = {\n name: string; bytesAdded: number; totalBytesSnapshot: number;\n tensorsAdded: number;\n totalTensorsSnapshot: number;\n inputShapes: number[][];\n outputShapes: number[][];\n kernelTimeMs: number | {error: string} | Promise;\n extraInfo: string | Promise;\n};\n\nexport type ProfileInfo = {\n newBytes: number; newTensors: number; peakBytes: number;\n kernels: KernelInfo[];\n result: TensorContainer;\n};\n\nexport interface TimingInfo extends BackendTimingInfo {\n wallMs: number;\n}\n\n/** @docalias Function */\nexport type ScopeFn = () => T;\n\ninterface ScopeState {\n track: Tensor[];\n name: string;\n id: number;\n}\n\nclass EngineState {\n // Public since optimizers will use it.\n registeredVariables: NamedVariableMap = {};\n\n nextTapeNodeId = 0;\n numBytes = 0;\n numTensors = 0;\n numStringTensors = 0;\n numDataBuffers = 0;\n\n activeTape: TapeNode[];\n // Number of nested tf.grad() statements when computing higher-order\n // gradients. E.g. `1` for first-order gradients and `2` for second-order\n // gradients. Used to track if the tape should be removed after a backprop.\n gradientDepth = 0;\n // Number of nested kernel calls. When kernel depth is greater than 1, we turn\n // off the tape.\n kernelDepth = 0;\n\n // Keep Tensors that parallel the tapes.\n activeScope: ScopeState;\n scopeStack: ScopeState[] = [];\n /**\n * Keeps track of the number of data moves during a kernel execution. We\n * maintain a stack since kernels can call other kernels, recursively.\n */\n numDataMovesStack: number[] = [];\n nextScopeId = 0;\n\n tensorInfo = new WeakMap();\n\n profiling = false;\n activeProfile: ProfileInfo =\n {newBytes: 0, newTensors: 0, peakBytes: 0, kernels: [], result: null};\n\n dispose() {\n for (const variableName in this.registeredVariables) {\n this.registeredVariables[variableName].dispose();\n }\n }\n}\n\nexport class Engine implements TensorTracker, DataMover {\n state: EngineState;\n backendName: string;\n registry: {[id: string]: KernelBackend} = {};\n registryFactory: {\n [id: string]: {\n factory: () => KernelBackend | Promise,\n priority: number\n }\n } = {};\n\n private profiler: Profiler;\n private backendInstance: KernelBackend;\n private pendingBackendInit: Promise;\n private pendingBackendInitId = 0;\n\n constructor(public ENV: Environment) {\n this.state = new EngineState();\n }\n\n async ready(): Promise {\n if (this.pendingBackendInit != null) {\n return this.pendingBackendInit.then(() => {});\n }\n if (this.backendInstance != null) {\n return;\n }\n const sortedBackends = this.getSortedBackends();\n\n for (let i = 0; i < sortedBackends.length; i++) {\n const backendName = sortedBackends[i];\n const success = await this.initializeBackend(backendName).success;\n if (success) {\n await this.setBackend(backendName);\n return;\n }\n }\n\n throw new Error(\n `Could not initialize any backends, all backend initializations ` +\n `failed.`);\n }\n\n get backend(): KernelBackend {\n if (this.pendingBackendInit != null) {\n throw new Error(\n `Backend '${this.backendName}' has not yet been initialized. Make ` +\n `sure to await tf.ready() or await tf.setBackend() before calling ` +\n `other methods`);\n }\n if (this.backendInstance == null) {\n const {name, asyncInit} = this.initializeBackendsAndReturnBest();\n if (asyncInit) {\n throw new Error(\n `The highest priority backend '${name}' has not yet been ` +\n `initialized. Make sure to await tf.ready() or ` +\n `await tf.setBackend() before calling other methods`);\n }\n this.setBackend(name);\n }\n return this.backendInstance;\n }\n\n backendNames(): string[] {\n return Object.keys(this.registryFactory);\n }\n\n findBackend(backendName: string): KernelBackend {\n if (!(backendName in this.registry)) {\n // If the backend hasn't been initialized but we have a registry entry for\n // it, initialize it and return it.\n if (backendName in this.registryFactory) {\n const {asyncInit} = this.initializeBackend(backendName);\n if (asyncInit) {\n // Backend is not ready yet.\n return null;\n }\n } else {\n return null;\n }\n }\n return this.registry[backendName];\n }\n\n findBackendFactory(backendName: string):\n () => KernelBackend | Promise {\n if (!(backendName in this.registryFactory)) {\n return null;\n }\n return this.registryFactory[backendName].factory;\n }\n\n registerBackend(\n backendName: string,\n factory: () => KernelBackend | Promise,\n priority = 1): boolean {\n if (backendName in this.registryFactory) {\n console.warn(\n `${backendName} backend was already registered. ` +\n `Reusing existing backend factory.`);\n return false;\n }\n this.registryFactory[backendName] = {factory, priority};\n return true;\n }\n\n async setBackend(backendName: string): Promise {\n if (this.registryFactory[backendName] == null) {\n throw new Error(`Backend name '${backendName}' not found in registry`);\n }\n this.backendName = backendName;\n if (this.registry[backendName] == null) {\n this.backendInstance = null;\n const {success, asyncInit} = this.initializeBackend(backendName);\n const result = asyncInit ? await success : success;\n if (!result) {\n return false;\n }\n }\n this.backendInstance = this.registry[backendName];\n this.setupRegisteredKernels();\n // Reset the profiler.\n this.profiler = new Profiler(this.backendInstance);\n\n return true;\n }\n\n private setupRegisteredKernels(): void {\n const kernels = getKernelsForBackend(this.backendName);\n kernels.forEach(kernel => {\n if (kernel.setupFunc != null) {\n kernel.setupFunc(this.backendInstance);\n }\n });\n }\n\n private disposeRegisteredKernels(backendName: string): void {\n const kernels = getKernelsForBackend(backendName);\n kernels.forEach(kernel => {\n if (kernel.disposeFunc != null) {\n kernel.disposeFunc(this.registry[backendName]);\n }\n });\n }\n\n /**\n * Initializes a backend by looking up the backend name in the factory\n * registry and calling the factory method. Returns a boolean representing\n * whether the initialization of the backend suceeded. Throws an error if\n * there is no backend in the factory registry.\n */\n private initializeBackend(backendName: string):\n {success: boolean|Promise, asyncInit: boolean} {\n const registryFactoryEntry = this.registryFactory[backendName];\n if (registryFactoryEntry == null) {\n throw new Error(\n `Cannot initialize backend ${backendName}, no registration found.`);\n }\n\n try {\n const backend = registryFactoryEntry.factory();\n /* Test if the factory returns a promise.\n Done in a more liberal way than\n previous 'Promise.resolve(backend)===backend'\n as we needed to account for custom Promise\n implementations (e.g. Angular) */\n if (backend && !(backend instanceof KernelBackend)\n && typeof backend.then === 'function') {\n const promiseId = ++this.pendingBackendInitId;\n const success =\n backend\n .then(backendInstance => {\n // Outdated promise. Another backend was set in the meantime.\n if (promiseId < this.pendingBackendInitId) {\n return false;\n }\n this.registry[backendName] = backendInstance;\n this.pendingBackendInit = null;\n return true;\n })\n .catch(err => {\n // Outdated promise. Another backend was set in the meantime.\n if (promiseId < this.pendingBackendInitId) {\n return false;\n }\n this.pendingBackendInit = null;\n console.warn(\n `Initialization of backend ${backendName} failed`);\n console.warn(err.stack || err.message);\n return false;\n });\n this.pendingBackendInit = success;\n return {success, asyncInit: true};\n } else {\n this.registry[backendName] = backend as KernelBackend;\n return {success: true, asyncInit: false};\n }\n } catch (err) {\n console.warn(`Initialization of backend ${backendName} failed`);\n console.warn(err.stack || err.message);\n return {success: false, asyncInit: false};\n }\n }\n\n removeBackend(backendName: string): void {\n if (!(backendName in this.registryFactory)) {\n throw new Error(`${backendName} backend not found in registry`);\n }\n if (this.backendName === backendName && this.pendingBackendInit != null) {\n // There is a pending promise of the backend we want to remove. Make it\n // obsolete.\n this.pendingBackendInitId++;\n }\n\n if (backendName in this.registry) {\n this.disposeRegisteredKernels(backendName);\n this.registry[backendName].dispose();\n delete this.registry[backendName];\n }\n\n delete this.registryFactory[backendName];\n\n // Unset the backend if it is active.\n if (this.backendName === backendName) {\n this.pendingBackendInit = null;\n this.backendName = null;\n this.backendInstance = null;\n }\n }\n\n private getSortedBackends(): string[] {\n if (Object.keys(this.registryFactory).length === 0) {\n throw new Error('No backend found in registry.');\n }\n return Object.keys(this.registryFactory).sort((a: string, b: string) => {\n // Highest priority comes first.\n return this.registryFactory[b].priority -\n this.registryFactory[a].priority;\n });\n }\n\n private initializeBackendsAndReturnBest():\n {name: string, asyncInit: boolean} {\n const sortedBackends = this.getSortedBackends();\n\n for (let i = 0; i < sortedBackends.length; i++) {\n const backendName = sortedBackends[i];\n const {success, asyncInit} = this.initializeBackend(backendName);\n if (asyncInit || success) {\n return {name: backendName, asyncInit};\n }\n }\n throw new Error(\n `Could not initialize any backends, all backend initializations ` +\n `failed.`);\n }\n\n moveData(backend: KernelBackend, dataId: DataId) {\n const info = this.state.tensorInfo.get(dataId);\n const srcBackend = info.backend;\n const values = this.readSync(dataId);\n // Delete the tensor from the old backend and move it to the new\n // backend.\n srcBackend.disposeData(dataId);\n info.backend = backend;\n backend.move(dataId, values, info.shape, info.dtype);\n if (this.shouldCheckForMemLeaks()) {\n // Track the number of moves during a kernel execution to correctly\n // detect memory leaks.\n this.state.numDataMovesStack[this.state.numDataMovesStack.length - 1]++;\n }\n }\n\n tidy(nameOrFn: string|ScopeFn, fn?: ScopeFn):\n T {\n let name: string = null;\n if (fn == null) {\n // Called with only 1 argument.\n if (typeof nameOrFn !== 'function') {\n throw new Error('Please provide a function to tidy()');\n }\n fn = nameOrFn;\n } else {\n // Called with 2 arguments.\n if (typeof nameOrFn !== 'string' && !(nameOrFn instanceof String)) {\n throw new Error(\n 'When calling with two arguments, the first argument ' +\n 'to tidy() must be a string');\n }\n if (typeof fn !== 'function') {\n throw new Error(\n 'When calling with two arguments, the 2nd argument ' +\n 'to tidy() must be a function');\n }\n name = nameOrFn as string;\n // TODO(nsthorat,smilkov): Do operation logging and performance\n // profiling.\n }\n let result: T;\n return this.scopedRun(\n () => this.startScope(name), () => this.endScope(result), () => {\n result = fn();\n if (result instanceof Promise) {\n console.error('Cannot return a Promise inside of tidy.');\n }\n return result;\n });\n }\n\n private scopedRun(start: () => void, end: () => void, f: () => T): T {\n start();\n try {\n const res = f();\n end();\n return res;\n } catch (ex) {\n end();\n throw ex;\n }\n }\n\n private static nextTensorId = 0;\n private nextTensorId(): number {\n return Engine.nextTensorId++;\n }\n\n private static nextVariableId = 0;\n private nextVariableId(): number {\n return Engine.nextVariableId++;\n }\n\n /**\n * This method is called instead of the public-facing tensor.clone() when\n * saving a tensor for backwards pass. It makes sure to add the clone\n * operation to the tape regardless of being called inside a kernel\n * execution.\n *\n * This method will go away once all kernels are modularized since we won't\n * need to turn off the tape inside runKernel().\n */\n private clone(x: Tensor): Tensor {\n const y = this.makeTensorFromDataId(x.dataId, x.shape, x.dtype);\n const inputs = {x};\n const grad = (dy: Tensor) => ({\n x: () => {\n const dtype = 'float32';\n const gradInputs = {x: dy};\n const attrs = {dtype};\n\n return ENGINE.runKernelFunc(\n backend => backend.cast(dy, dtype),\n gradInputs as {} as NamedTensorMap, null /* grad */, Cast,\n attrs as {} as NamedAttrMap);\n }\n });\n const saved: Tensor[] = [];\n this.addTapeNode(this.state.activeScope.name, inputs, [y], grad, saved, {});\n return y;\n }\n\n /**\n * Execute a kernel with the given name and return the output tensor.\n *\n * @param kernelName The name of the kernel to execute.\n * @param inputs A map of input names to tensors.\n * @param attrs A map of attribute names to their values. An attribute is a\n * primitive (non-tensor) input to the kernel.\n * @param inputsToSave A list of tensors, inputs to save for the backprop\n * computation.\n * @param outputsToSave A list of booleans, specifying which output to save\n * for the backprop computation. These are booleans since the output\n * tensors are not visible to the user.\n */\n runKernel(\n kernelName: string, inputs: NamedTensorMap, attrs: NamedAttrMap,\n inputsToSave?: Tensor[], outputsToSave?: boolean[]): Tensor|Tensor[] {\n const forwardFunc: null = null;\n const backwardsFunc: null = null;\n // Call runKernel as a stop-gap until we modularize all kernels.\n // Once we modularize all kernels, we will remove the existing\n // `runKernelFunc`.\n return this.runKernelFunc(\n forwardFunc, inputs, backwardsFunc, kernelName, attrs, inputsToSave,\n outputsToSave);\n }\n\n private shouldCheckForMemLeaks(): boolean {\n return this.ENV.getBool('IS_TEST');\n }\n\n private checkKernelForMemLeak(\n kernelName: string, numDataIdsBefore: number,\n outInfos: TensorInfo[]): void {\n const numDataIdsAfter = this.backend.numDataIds();\n\n // Count the number of data ids associated with the result of the kernel.\n let numOutputDataIds = 0;\n outInfos.forEach(info => {\n // Complex numbers allocate 3 data ids, one for 'real', one for\n // 'imaginary', and one for the container that holds the former two.\n numOutputDataIds += (info.dtype === 'complex64' ? 3 : 1);\n });\n\n // Account for the number of moves during kernel execution. A \"data move\"\n // can happen in the middle of a kernel execution, placing a new (key,value)\n // pair in the data storage. Since data moves have net zero effect (we\n // always remove the data from the old backend), we have to cancel them out\n // when detecting memory leaks.\n const numMoves =\n this.state.numDataMovesStack[this.state.numDataMovesStack.length - 1];\n const dataIdsLeaked =\n numDataIdsAfter - numDataIdsBefore - numOutputDataIds - numMoves;\n if (dataIdsLeaked > 0) {\n throw new Error(\n `Backend '${this.backendName}' has an internal memory leak ` +\n `(${dataIdsLeaked} data ids) after running '${kernelName}'`);\n }\n }\n\n /**\n * @deprecated Use `runKernel` for newly added kernels. Keep using this method\n * only for kernels that are not yet fully modularized.\n */\n runKernelFunc(\n forwardFunc: ForwardFunc, inputs: I,\n backwardsFunc?: (dy: T, saved: Tensor[]) => {[P in keyof I]: () => I[P]},\n kernelName?: string, attrs?: NamedAttrMap, inputsToSave?: Tensor[],\n outputsToSave?: boolean[]): T {\n let outputs: Tensor[];\n let saved: Tensor[] = [];\n const isTapeOn = this.isTapeOn();\n if (kernelName == null) {\n kernelName =\n this.state.activeScope != null ? this.state.activeScope.name : '';\n }\n\n const startingBytecount = this.state.numBytes;\n const startingNumTensors = this.state.numTensors;\n\n if (this.shouldCheckForMemLeaks()) {\n this.state.numDataMovesStack.push(0);\n }\n\n let kernelFunc: () => Tensor[];\n const kernel = getKernel(kernelName, this.backendName);\n let out: TensorInfo|TensorInfo[];\n if (kernel != null) {\n kernelFunc = () => {\n const numDataIdsBefore = this.backend.numDataIds();\n out = kernel.kernelFunc({inputs, attrs, backend: this.backend});\n const outInfos = Array.isArray(out) ? out : [out];\n if (this.shouldCheckForMemLeaks()) {\n this.checkKernelForMemLeak(kernelName, numDataIdsBefore, outInfos);\n }\n const outTensors = outInfos.map(\n ({dataId, shape, dtype}) =>\n this.makeTensorFromDataId(dataId, shape, dtype));\n\n // Save the inputs and outputs.\n // Do not save unless we are recording to the tape. Otherwise it would\n // cause a mem leak since we would never run backprop, which disposes\n // the kept tensors.\n if (isTapeOn) {\n let tensorsToSave =\n this.getTensorsForGradient(kernelName, inputs, outTensors);\n if (tensorsToSave == null) {\n // Fallback for ops that call runKernelFunc and pass in\n // inputsToSave and outputsToSave. Currently this is the set of ops\n // with kernel support in the WASM backend. Once those ops and\n // respective gradients are modularised we can remove this path.\n if (outputsToSave == null) {\n outputsToSave = [];\n }\n const outsToSave = outTensors.filter((_, i) => outputsToSave[i]);\n tensorsToSave = (inputsToSave || []).slice().concat(outsToSave);\n }\n saved = this.saveTensorsForBackwardMode(tensorsToSave);\n }\n return outTensors;\n };\n } else {\n const saveFunc: GradSaveFunc = (tensors) => {\n // Do not save unless we are recording to the tape. Otherwise it would\n // cause a mem leak since we would never run backprop, which disposes\n // the kept tensors.\n if (!isTapeOn) {\n return;\n }\n saved = tensors.map(tensor => this.keep(this.clone(tensor)));\n };\n\n kernelFunc = () => {\n const numDataIdsBefore = this.backend.numDataIds();\n out = this.tidy(() => forwardFunc(this.backend, saveFunc));\n const outs = (Array.isArray(out) ? out : [out]) as Tensor[];\n if (this.shouldCheckForMemLeaks()) {\n this.checkKernelForMemLeak(kernelName, numDataIdsBefore, outs);\n }\n return outs;\n };\n }\n\n // Stop recording to a tape when running a kernel.\n let kernelProfile: KernelProfile;\n this.scopedRun(\n () => this.state.kernelDepth++, () => this.state.kernelDepth--, () => {\n if (!this.ENV.getBool('DEBUG') && !this.state.profiling) {\n outputs = kernelFunc();\n } else {\n kernelProfile = this.profiler.profileKernel(\n kernelName, inputs, () => kernelFunc());\n if (this.ENV.getBool('DEBUG')) {\n this.profiler.logKernelProfile(kernelProfile);\n }\n outputs = kernelProfile.outputs;\n }\n });\n\n if (isTapeOn) {\n this.addTapeNode(\n kernelName, inputs, outputs, backwardsFunc, saved, attrs);\n }\n\n if (this.state.profiling) {\n this.state.activeProfile.kernels.push({\n name: kernelName,\n bytesAdded: this.state.numBytes - startingBytecount,\n totalBytesSnapshot: this.state.numBytes,\n tensorsAdded: this.state.numTensors - startingNumTensors,\n totalTensorsSnapshot: this.state.numTensors,\n inputShapes: Object.keys(inputs).map(\n key => inputs[key] != null ? inputs[key].shape : null),\n outputShapes: outputs.map(item => item.shape),\n kernelTimeMs: kernelProfile.timeMs,\n extraInfo: kernelProfile.extraInfo\n });\n }\n return (Array.isArray(out) ? outputs : outputs[0]) as T;\n }\n\n /**\n * Saves tensors used in forward mode for use in backward mode.\n *\n * @param tensors the list of tensors to save.\n */\n private saveTensorsForBackwardMode(tensors: Tensor[]): Tensor[] {\n const saved = tensors.map(tensor => this.keep(this.clone(tensor)));\n return saved;\n }\n\n /**\n * Returns a list of tensors to save for a given gradient calculation.\n *\n * Returns undefined if their is no registered gradient for this kernel in the\n * gradient registry.\n *\n * @param kernelName name of kernel to look up gradient for.\n * @param inputs a map of input tensors.\n * @param outputs an array of output tensors from forward mode of kernel.\n */\n private getTensorsForGradient(\n kernelName: string, inputs: NamedTensorMap,\n outputs: Tensor[]): Tensor[]|null {\n const gradConfig = getGradient(kernelName);\n if (gradConfig != null) {\n const inputsToSave: string[] = gradConfig.inputsToSave || [];\n const outputsToSave: boolean[] = gradConfig.outputsToSave || [];\n\n // If saveAllInputs is true, all inputs will be saved. Otherwise, inputs\n // specified in inputsToSave will be saved.\n let inputTensorsToSave: Tensor[];\n if (gradConfig.saveAllInputs) {\n util.assert(\n Array.isArray(inputs),\n () => 'saveAllInputs is true, expected inputs to be an array.');\n\n inputTensorsToSave = Object.keys(inputs).map((key) => inputs[key]);\n } else {\n inputTensorsToSave = inputsToSave.map((inputName) => inputs[inputName]);\n }\n\n const outputTensorsToSave: Tensor[] =\n outputs.filter((_, i) => outputsToSave[i]);\n\n return inputTensorsToSave.concat(outputTensorsToSave);\n }\n // TODO(yassogba) throw exception here once all runkernelFunc calls with\n // inputsToSave/outputsToSave are removed\n return null;\n }\n\n /**\n * Internal method used by public APIs for tensor creation. Makes a new\n * tensor with the provided shape, dtype and values. It always\n * creates a new data id and writes the values to the underlying backend.\n */\n makeTensor(\n values: DataValues, shape: number[], dtype: DataType,\n backend?: KernelBackend): Tensor {\n if (values == null) {\n throw new Error('Values passed to engine.makeTensor() are null');\n }\n dtype = dtype || 'float32';\n backend = backend || this.backend;\n let backendVals = values as BackendValues;\n if (dtype === 'string' && util.isString(values[0])) {\n backendVals = (values as string[]).map(d => util.encodeString(d));\n }\n const dataId = backend.write(backendVals, shape, dtype);\n const t = new Tensor(shape, dtype, dataId, this.nextTensorId());\n this.incRef(t, backend);\n\n // Count bytes for string tensors.\n if (dtype === 'string') {\n const info = this.state.tensorInfo.get(dataId);\n const newBytes = bytesFromStringArray(backendVals as Uint8Array[]);\n this.state.numBytes += newBytes - info.bytes;\n info.bytes = newBytes;\n }\n return t;\n }\n\n /**\n * Internal method used by backends. Makes a new tensor\n * that is a wrapper around an existing data id. It doesn't create\n * a new data id, only increments the ref count used in memory tracking.\n */\n makeTensorFromDataId(\n dataId: DataId, shape: number[], dtype: DataType,\n backend?: KernelBackend): Tensor {\n dtype = dtype || 'float32';\n const t = new Tensor(shape, dtype, dataId, this.nextTensorId());\n this.incRef(t, backend);\n return t;\n }\n\n makeVariable(\n initialValue: Tensor, trainable = true, name?: string,\n dtype?: DataType): Variable {\n name = name || this.nextVariableId().toString();\n if (dtype != null && dtype !== initialValue.dtype) {\n initialValue = initialValue.cast(dtype);\n }\n const v = new Variable(initialValue, trainable, name, this.nextTensorId());\n if (this.state.registeredVariables[v.name] != null) {\n throw new Error(`Variable with name ${v.name} was already registered`);\n }\n this.state.registeredVariables[v.name] = v;\n this.incRef(v, this.backend);\n return v;\n }\n\n incRef(a: Tensor, backend: KernelBackend): void {\n const refCount = this.state.tensorInfo.has(a.dataId) ?\n this.state.tensorInfo.get(a.dataId).refCount :\n 0;\n this.state.numTensors++;\n if (a.dtype === 'string') {\n this.state.numStringTensors++;\n }\n if (refCount === 0) {\n this.state.numDataBuffers++;\n\n // Bytes for complex numbers are counted by their components. Bytes for\n // string tensors are counted when writing values.\n let bytes = 0;\n if (a.dtype !== 'complex64' && a.dtype !== 'string') {\n bytes = a.size * util.bytesPerElement(a.dtype);\n }\n this.state.tensorInfo.set(a.dataId, {\n backend: backend || this.backend,\n dtype: a.dtype,\n shape: a.shape,\n bytes,\n refCount: 0\n });\n this.state.numBytes += bytes;\n }\n\n this.state.tensorInfo.get(a.dataId).refCount++;\n\n if (!(a instanceof Variable)) {\n this.track(a);\n }\n }\n\n disposeTensor(a: Tensor): void {\n if (!this.state.tensorInfo.has(a.dataId)) {\n return;\n }\n\n this.state.numTensors--;\n if (a.dtype === 'string') {\n this.state.numStringTensors--;\n }\n const info = this.state.tensorInfo.get(a.dataId);\n const refCount = info.refCount;\n\n if (refCount <= 1) {\n // Don't count bytes for complex numbers as they are counted by their\n // components.\n if (a.dtype !== 'complex64') {\n this.state.numBytes -= info.bytes;\n }\n this.state.numDataBuffers--;\n\n info.backend.disposeData(a.dataId);\n this.state.tensorInfo.delete(a.dataId);\n } else {\n this.state.tensorInfo.get(a.dataId).refCount--;\n }\n // TODO(nsthorat): Construct an error and save the stack trace for\n // debugging when in debug mode. Creating a stack trace is too expensive\n // to do unconditionally.\n }\n\n disposeVariables(): void {\n for (const varName in this.state.registeredVariables) {\n const v = this.state.registeredVariables[varName];\n this.disposeVariable(v);\n }\n }\n\n disposeVariable(v: Variable): void {\n this.disposeTensor(v);\n if (this.state.registeredVariables[v.name] != null) {\n delete this.state.registeredVariables[v.name];\n }\n }\n\n memory(): MemoryInfo {\n const info = this.backend.memory() as MemoryInfo;\n info.numTensors = this.state.numTensors;\n info.numDataBuffers = this.state.numDataBuffers;\n info.numBytes = this.state.numBytes;\n if (this.state.numStringTensors > 0) {\n info.unreliable = true;\n if (info.reasons == null) {\n info.reasons = [];\n }\n info.reasons.push(\n 'Memory usage by string tensors is approximate ' +\n '(2 bytes per character)');\n }\n return info;\n }\n\n async profile(query: () => (TensorContainer | Promise)):\n Promise {\n this.state.profiling = true;\n\n const startBytes = this.state.numBytes;\n const startNumTensors = this.state.numTensors;\n\n this.state.activeProfile.kernels = [];\n this.state.activeProfile.result = await query();\n\n this.state.profiling = false;\n\n this.state.activeProfile.peakBytes = Math.max(\n ...this.state.activeProfile.kernels.map(d => d.totalBytesSnapshot));\n this.state.activeProfile.newBytes = this.state.numBytes - startBytes;\n this.state.activeProfile.newTensors =\n this.state.numTensors - startNumTensors;\n for (const kernel of this.state.activeProfile.kernels) {\n kernel.kernelTimeMs = await kernel.kernelTimeMs;\n kernel.extraInfo = await kernel.extraInfo;\n }\n return this.state.activeProfile;\n }\n\n isTapeOn(): boolean {\n return this.state.gradientDepth > 0 && this.state.kernelDepth === 0;\n }\n\n private addTapeNode(\n kernelName: string, inputs: NamedTensorMap, outputs: Tensor[],\n gradientsFunc: GradFunc, saved: Tensor[], attrs: NamedAttrMap): void {\n const tapeNode: TapeNode =\n {id: this.state.nextTapeNodeId++, kernelName, inputs, outputs, saved};\n\n const gradConfig = getGradient(kernelName);\n if (gradConfig != null) {\n gradientsFunc = gradConfig.gradFunc;\n }\n if (gradientsFunc != null) {\n tapeNode.gradient = (dys: Tensor[]) => {\n // TODO(smilkov): To optimize back-prop, pass dys that are not used in\n // the backprop graph to the user as null instead of zeros\n dys = dys.map((dy, i) => {\n if (dy == null) {\n const output = outputs[i];\n const vals = util.makeZerosTypedArray(output.size, output.dtype);\n return this.makeTensor(vals, output.shape, output.dtype);\n }\n return dy;\n });\n // Grad functions of ops with single outputs expect a dy, while ops\n // with multiple outputs expect dys (array of dy).\n return gradientsFunc(dys.length > 1 ? dys : dys[0], saved, attrs);\n };\n }\n this.state.activeTape.push(tapeNode);\n }\n\n keep(result: T): T {\n result.kept = true;\n return result;\n }\n\n private startTape() {\n if (this.state.gradientDepth === 0) {\n this.state.activeTape = [];\n }\n this.state.gradientDepth++;\n }\n\n private endTape() {\n this.state.gradientDepth--;\n }\n\n /**\n * Start a scope. Use this with endScope() to achieve the same functionality\n * as scope() without the need for a function closure.\n */\n startScope(name?: string) {\n const scopeInfo: ScopeState = {\n track: [],\n name: 'unnamed scope',\n id: this.state.nextScopeId++\n };\n if (name) {\n scopeInfo.name = name;\n }\n this.state.scopeStack.push(scopeInfo);\n this.state.activeScope = scopeInfo;\n }\n\n /**\n * End a scope. Use this with startScope() to achieve the same functionality\n * as scope() without the need for a function closure.\n */\n endScope(result?: TensorContainer) {\n const tensorsToTrackInParent = getTensorsInContainer(result);\n const tensorsToTrackInParentSet =\n new Set(tensorsToTrackInParent.map(t => t.id));\n\n // Dispose the arrays tracked in this scope.\n for (let i = 0; i < this.state.activeScope.track.length; i++) {\n const tensor = this.state.activeScope.track[i];\n if (!tensor.kept && !tensorsToTrackInParentSet.has(tensor.id)) {\n tensor.dispose();\n }\n }\n\n const oldScope = this.state.scopeStack.pop();\n this.state.activeScope = this.state.scopeStack.length === 0 ?\n null :\n this.state.scopeStack[this.state.scopeStack.length - 1];\n\n // Track the current result in the parent scope.\n tensorsToTrackInParent.forEach(tensor => {\n // Only track the tensor if was allocated in the inner scope and is not\n // globally kept.\n if (!tensor.kept && tensor.scopeId === oldScope.id) {\n this.track(tensor);\n }\n });\n }\n\n /**\n * Returns gradients of `f` with respect to each of the `xs`. The gradients\n * returned are of the same length as `xs`, but some might be null if `f`\n * was not a function of that `x`. It also takes optional dy to multiply the\n * gradient, which defaults to `1`.\n */\n gradients(\n f: () => T, xs: Tensor[], dy?: T,\n allowNoGradients = false): {value: T, grads: Tensor[]} {\n util.assert(\n xs.length > 0, () => 'gradients() received an empty list of xs.');\n if (dy != null && dy.dtype !== 'float32') {\n throw new Error(`dy must have 'float32' dtype, but has '${dy.dtype}'`);\n }\n\n const y = this.scopedRun(\n () => this.startTape(), () => this.endTape(),\n () => this.tidy('forward', f));\n\n util.assert(\n y instanceof Tensor,\n () => 'The result y returned by f() must be a tensor.');\n // Filter out the nodes that don't connect x => y.\n const filteredTape = getFilteredNodesXToY(this.state.activeTape, xs, y);\n if (!allowNoGradients && filteredTape.length === 0 && xs.length > 0) {\n throw new Error(\n 'Cannot compute gradient of y=f(x) with respect to x. Make sure ' +\n 'that the f you passed encloses all operations that lead from x ' +\n 'to y.');\n }\n\n return this.tidy('backward', () => {\n const accumulatedGradientMap: {[tensorId: number]: Tensor} = {};\n accumulatedGradientMap[y.id] = (dy == null) ? ones(y.shape) : dy;\n\n // Backprop gradients through the filtered nodes.\n backpropagateGradients(\n accumulatedGradientMap, filteredTape,\n // Pass the tidy function to avoid circular dep with `tape.ts`.\n f => this.tidy(f as ScopeFn),\n // Pass an add function to avoide a circular dep with `tape.ts`.\n add);\n const grads = xs.map(x => accumulatedGradientMap[x.id]);\n\n if (this.state.gradientDepth === 0) {\n // This means that we are not computing higher-order gradients\n // and can clean up the tape.\n this.state.activeTape.forEach(node => {\n for (const tensor of node.saved) {\n tensor.dispose();\n }\n });\n this.state.activeTape = null;\n }\n return {value: y, grads};\n });\n }\n\n customGrad(f: CustomGradientFunc):\n (...args: Array) => T {\n util.assert(\n util.isFunction(f),\n () => 'The f passed in customGrad(f) must be a function.');\n return (...inputs: Tensor[]): T => {\n util.assert(\n inputs.every(t => t instanceof Tensor),\n () => 'The args passed in customGrad(f)(x1, x2,...) must all be ' +\n 'tensors');\n\n let res: {\n value: T,\n gradFunc: (dy: T, saved: Tensor[]) => Tensor | Tensor[],\n };\n const inputMap: NamedTensorMap = {};\n inputs.forEach((input, i) => {\n inputMap[i] = input;\n });\n return this.runKernelFunc(\n (_, save) => {\n res = f(...[...inputs, save]);\n util.assert(\n res.value instanceof Tensor,\n () => 'The function f passed in customGrad(f) must return an ' +\n 'object where `obj.value` is a tensor');\n util.assert(\n util.isFunction(res.gradFunc),\n () => 'The function f passed in customGrad(f) must return an ' +\n 'object where `obj.gradFunc` is a function.');\n return res.value;\n },\n inputMap,\n (dy: T, saved: Tensor[]) => {\n const gradRes = res.gradFunc(dy, saved);\n const grads: Tensor[] =\n Array.isArray(gradRes) ? gradRes : [gradRes];\n util.assert(\n grads.length === inputs.length,\n () => 'The function f passed in customGrad(f) must return an ' +\n 'object where `obj.gradFunc` is a function that returns ' +\n 'the same number of tensors as inputs passed to f(...).');\n util.assert(\n grads.every(t => t instanceof Tensor),\n () => 'The function f passed in customGrad(f) must return an ' +\n 'object where `obj.gradFunc` is a function that returns ' +\n 'a list of only tensors.');\n const gradMap: {[key: string]: () => Tensor} = {};\n grads.forEach((grad, i) => {\n gradMap[i] = () => grad;\n });\n return gradMap;\n });\n };\n }\n\n readSync(dataId: DataId): BackendValues {\n // Route the read to the correct backend.\n const info = this.state.tensorInfo.get(dataId);\n return info.backend.readSync(dataId);\n }\n read(dataId: DataId): Promise {\n // Route the read to the correct backend.\n const info = this.state.tensorInfo.get(dataId);\n return info.backend.read(dataId);\n }\n\n async time(query: () => void): Promise {\n const start = now();\n const timingInfo = await this.backend.time(query) as TimingInfo;\n timingInfo.wallMs = now() - start;\n return timingInfo;\n }\n\n /**\n * Tracks a Tensor in the current scope to be automatically cleaned up\n * when the current scope ends, and returns the value.\n *\n * @param result The Tensor to track in the current scope.\n */\n private track(result: T): T {\n if (this.state.activeScope != null) {\n result.scopeId = this.state.activeScope.id;\n this.state.activeScope.track.push(result);\n }\n\n return result;\n }\n\n get registeredVariables(): NamedVariableMap {\n return this.state.registeredVariables;\n }\n\n /**\n * Resets the engine state. Removes all backends but does not remove\n * registered backend factories.\n */\n reset(): void {\n // Make any pending promise obsolete.\n this.pendingBackendInitId++;\n\n this.state.dispose();\n this.ENV.reset();\n this.state = new EngineState();\n\n for (const backendName in this.registry) {\n this.disposeRegisteredKernels(backendName);\n this.registry[backendName].dispose();\n delete this.registry[backendName];\n }\n this.backendName = null;\n this.backendInstance = null;\n this.pendingBackendInit = null;\n }\n}\n\nfunction ones(shape: number[]): Tensor {\n const values = makeOnesTypedArray(sizeFromShape(shape), 'float32');\n return ENGINE.makeTensor(values, shape, 'float32');\n}\n\nexport function getOrMakeEngine(): Engine {\n const ns = getGlobalNamespace() as {} as {_tfengine: Engine};\n if (ns._tfengine == null) {\n const environment = new Environment(ns);\n ns._tfengine = new Engine(environment);\n }\n setEnvironmentGlobal(ns._tfengine.ENV);\n\n // Tell the current tensor interface that the global engine is responsible\n // for tracking.\n setTensorTracker(() => ns._tfengine);\n return ns._tfengine;\n}\n\nexport const ENGINE = getOrMakeEngine();\n\n/**\n * A implementation of the add op for use within engine and tape.\n *\n * This allows us to avoid a circular dependency between add.ts and engine.\n * It is exported to be available in tape tests.\n */\nexport function add(a: Tensor, b: Tensor): Tensor {\n // We duplicate Add here to avoid a circular dependency with add.ts.\n const inputs = {a, b};\n return ENGINE.runKernelFunc((backend, save) => {\n const res = backend.add(a, b);\n save([a, b]);\n return res;\n }, inputs as {} as NamedTensorMap, null /* gradient */, Add);\n}\n", "/**\n * @license\n * Copyright 2017 Google LLC. 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 *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\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 * =============================================================================\n */\n\n// tslint:disable-next-line:no-any\nfunction _isNavigatorDefined(): boolean {\n return typeof navigator !== 'undefined' && navigator != null;\n}\n\nexport function isMobile(): boolean {\n if (_isNavigatorDefined()) {\n // tslint:disable-next-line:no-any\n const a = navigator.userAgent || navigator.vendor || (window as any).opera;\n // tslint:disable-next-line:max-line-length\n return /(android|bb\\d+|meego).+mobile|avantgo|bada\\/|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od)|iris|kindle|lge |maemo|midp|mmp|mobile.+firefox|netfront|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)\\/|plucker|pocket|psp|series(4|6)0|symbian|treo|up\\.(browser|link)|vodafone|wap|windows ce|xda|xiino/i\n .test(a) ||\n // tslint:disable-next-line:max-line-length\n /1207|6310|6590|3gso|4thp|50[1-6]i|770s|802s|a wa|abac|ac(er|oo|s\\-)|ai(ko|rn)|al(av|ca|co)|amoi|an(ex|ny|yw)|aptu|ar(ch|go)|as(te|us)|attw|au(di|\\-m|r |s )|avan|be(ck|ll|nq)|bi(lb|rd)|bl(ac|az)|br(e|v)w|bumb|bw\\-(n|u)|c55\\/|capi|ccwa|cdm\\-|cell|chtm|cldc|cmd\\-|co(mp|nd)|craw|da(it|ll|ng)|dbte|dc\\-s|devi|dica|dmob|do(c|p)o|ds(12|\\-d)|el(49|ai)|em(l2|ul)|er(ic|k0)|esl8|ez([4-7]0|os|wa|ze)|fetc|fly(\\-|_)|g1 u|g560|gene|gf\\-5|g\\-mo|go(\\.w|od)|gr(ad|un)|haie|hcit|hd\\-(m|p|t)|hei\\-|hi(pt|ta)|hp( i|ip)|hs\\-c|ht(c(\\-| |_|a|g|p|s|t)|tp)|hu(aw|tc)|i\\-(20|go|ma)|i230|iac( |\\-|\\/)|ibro|idea|ig01|ikom|im1k|inno|ipaq|iris|ja(t|v)a|jbro|jemu|jigs|kddi|keji|kgt( |\\/)|klon|kpt |kwc\\-|kyo(c|k)|le(no|xi)|lg( g|\\/(k|l|u)|50|54|\\-[a-w])|libw|lynx|m1\\-w|m3ga|m50\\/|ma(te|ui|xo)|mc(01|21|ca)|m\\-cr|me(rc|ri)|mi(o8|oa|ts)|mmef|mo(01|02|bi|de|do|t(\\-| |o|v)|zz)|mt(50|p1|v )|mwbp|mywa|n10[0-2]|n20[2-3]|n30(0|2)|n50(0|2|5)|n7(0(0|1)|10)|ne((c|m)\\-|on|tf|wf|wg|wt)|nok(6|i)|nzph|o2im|op(ti|wv)|oran|owg1|p800|pan(a|d|t)|pdxg|pg(13|\\-([1-8]|c))|phil|pire|pl(ay|uc)|pn\\-2|po(ck|rt|se)|prox|psio|pt\\-g|qa\\-a|qc(07|12|21|32|60|\\-[2-7]|i\\-)|qtek|r380|r600|raks|rim9|ro(ve|zo)|s55\\/|sa(ge|ma|mm|ms|ny|va)|sc(01|h\\-|oo|p\\-)|sdk\\/|se(c(\\-|0|1)|47|mc|nd|ri)|sgh\\-|shar|sie(\\-|m)|sk\\-0|sl(45|id)|sm(al|ar|b3|it|t5)|so(ft|ny)|sp(01|h\\-|v\\-|v )|sy(01|mb)|t2(18|50)|t6(00|10|18)|ta(gt|lk)|tcl\\-|tdg\\-|tel(i|m)|tim\\-|t\\-mo|to(pl|sh)|ts(70|m\\-|m3|m5)|tx\\-9|up(\\.b|g1|si)|utst|v400|v750|veri|vi(rg|te)|vk(40|5[0-3]|\\-v)|vm40|voda|vulc|vx(52|53|60|61|70|80|81|83|85|98)|w3c(\\-| )|webc|whit|wi(g |nc|nw)|wmlb|wonu|x700|yas\\-|your|zeto|zte\\-/i\n .test(a.substr(0, 4));\n }\n return false;\n}\n\nexport function isBrowser(): boolean {\n return (typeof window !== 'undefined' && window.document != null) ||\n //@ts-ignore\n (typeof WorkerGlobalScope !== 'undefined');\n}\n", "/**\n * @license\n * Copyright 2019 Google LLC. 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 *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\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 * =============================================================================\n */\nimport './engine';\n\nimport * as device_util from './device_util';\nimport {env} from './environment';\n\nconst ENV = env();\n\n/**\n * This file contains environment-related flag registrations.\n */\n\n/** Whether to enable debug mode. */\nENV.registerFlag('DEBUG', () => false, debugValue => {\n if (debugValue) {\n console.warn(\n 'Debugging mode is ON. The output of every math call will ' +\n 'be downloaded to CPU and checked for NaNs. ' +\n 'This significantly impacts performance.');\n }\n});\n\n/** Whether we are in a browser (as versus, say, node.js) environment. */\nENV.registerFlag('IS_BROWSER', () => device_util.isBrowser());\n\n/** Whether we are in a browser (as versus, say, node.js) environment. */\nENV.registerFlag(\n 'IS_NODE',\n () => (typeof process !== 'undefined') &&\n (typeof process.versions !== 'undefined') &&\n (typeof process.versions.node !== 'undefined'));\n\n/** Whether this browser is Chrome. */\nENV.registerFlag(\n 'IS_CHROME',\n () => typeof navigator !== 'undefined' && navigator != null &&\n navigator.userAgent != null && /Chrome/.test(navigator.userAgent) &&\n /Google Inc/.test(navigator.vendor));\n\n/**\n * True when the environment is \"production\" where we disable safety checks\n * to gain performance.\n */\nENV.registerFlag('PROD', () => false);\n\n/**\n * Whether to do sanity checks when inferring a shape from user-provided\n * values, used when creating a new tensor.\n */\nENV.registerFlag(\n 'TENSORLIKE_CHECK_SHAPE_CONSISTENCY', () => ENV.getBool('DEBUG'));\n\n/** Whether deprecation warnings are enabled. */\nENV.registerFlag('DEPRECATION_WARNINGS_ENABLED', () => true);\n\n/** True if running unit tests. */\nENV.registerFlag('IS_TEST', () => false);\n", "/**\n * @license\n * Copyright 2018 Google LLC. 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 *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\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 * =============================================================================\n */\n\nimport {ENGINE} from './engine';\nimport {env} from './environment';\nimport {Tensor} from './tensor';\nimport {DataType, TensorLike} from './types';\nimport {assert, flatten, inferDtype, isTypedArray, toTypedArray} from './util';\n\nexport function inferShape(val: TensorLike, dtype?: DataType): number[] {\n let firstElem: typeof val = val;\n\n if (isTypedArray(val)) {\n return dtype === 'string' ? [] : [val.length];\n }\n if (!Array.isArray(val)) {\n return []; // Scalar.\n }\n const shape: number[] = [];\n\n while (Array.isArray(firstElem) ||\n isTypedArray(firstElem) && dtype !== 'string') {\n shape.push(firstElem.length);\n firstElem = firstElem[0];\n }\n if (Array.isArray(val) &&\n env().getBool('TENSORLIKE_CHECK_SHAPE_CONSISTENCY')) {\n deepAssertShapeConsistency(val, shape, []);\n }\n\n return shape;\n}\n\nfunction deepAssertShapeConsistency(\n val: TensorLike, shape: number[], indices: number[]) {\n indices = indices || [];\n if (!(Array.isArray(val)) && !isTypedArray(val)) {\n assert(\n shape.length === 0,\n () => `Element arr[${indices.join('][')}] is a primitive, ` +\n `but should be an array/TypedArray of ${shape[0]} elements`);\n return;\n }\n assert(\n shape.length > 0,\n () => `Element arr[${indices.join('][')}] should be a primitive, ` +\n `but is an array of ${val.length} elements`);\n assert(\n val.length === shape[0],\n () => `Element arr[${indices.join('][')}] should have ${shape[0]} ` +\n `elements, but has ${val.length} elements`);\n const subShape = shape.slice(1);\n for (let i = 0; i < val.length; ++i) {\n deepAssertShapeConsistency(val[i], subShape, indices.concat(i));\n }\n}\n\nfunction assertDtype(\n expectedDtype: DataType|'numeric', actualDType: DataType, argName: string,\n functionName: string) {\n if (expectedDtype == null) {\n return;\n }\n if (expectedDtype !== 'numeric' && expectedDtype !== actualDType ||\n expectedDtype === 'numeric' && actualDType === 'string') {\n throw new Error(\n `Argument '${argName}' passed to '${functionName}' must ` +\n `be ${expectedDtype} tensor, but got ${actualDType} tensor`);\n }\n}\n\nexport function convertToTensor(\n x: T|TensorLike, argName: string, functionName: string,\n parseAsDtype: DataType|'numeric' = 'numeric'): T {\n if (x instanceof Tensor) {\n assertDtype(parseAsDtype, x.dtype, argName, functionName);\n return x;\n }\n let inferredDtype = inferDtype(x);\n // If the user expects a bool/int/float, use that info to update the\n // inferredDtype when it is not a string.\n if (inferredDtype !== 'string' &&\n ['bool', 'int32', 'float32'].indexOf(parseAsDtype) >= 0) {\n inferredDtype = parseAsDtype as DataType;\n }\n assertDtype(parseAsDtype, inferredDtype, argName, functionName);\n\n if ((x == null) ||\n (!isTypedArray(x) && !Array.isArray(x) && typeof x !== 'number' &&\n typeof x !== 'boolean' && typeof x !== 'string')) {\n const type = x == null ? 'null' : (x as {}).constructor.name;\n throw new Error(\n `Argument '${argName}' passed to '${functionName}' must be a ` +\n `Tensor or TensorLike, but got '${type}'`);\n }\n const inferredShape = inferShape(x, inferredDtype);\n if (!isTypedArray(x) && !Array.isArray(x)) {\n x = [x] as number[];\n }\n const skipTypedArray = true;\n const values = inferredDtype !== 'string' ?\n toTypedArray(x, inferredDtype as DataType) :\n flatten(x as string[], [], skipTypedArray) as string[];\n return ENGINE.makeTensor(values, inferredShape, inferredDtype) as T;\n}\n\nexport function convertToTensorArray(\n arg: Array, argName: string, functionName: string,\n parseAsDtype: DataType|'numeric' = 'numeric'): T[] {\n if (!Array.isArray(arg)) {\n throw new Error(\n `Argument ${argName} passed to ${functionName} must be a ` +\n '`Tensor[]` or `TensorLike[]`');\n }\n const tensors = arg as T[];\n return tensors.map(\n (t, i) => convertToTensor(t, `${argName}[${i}]`, functionName),\n parseAsDtype);\n}\n", "/**\n * @license\n * Copyright 2018 Google LLC. 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 *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\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 * =============================================================================\n */\nimport {ENGINE} from '../engine';\nimport {isPromise} from '../util';\n\nexport const OP_SCOPE_SUFFIX = '__op';\n\n/**\n * Used for wrapping functions that perform math operations on\n * Tensors. The function will be wrapped in a named scope that cleans all\n * memory usage after the function is done.\n */\nexport function op(f: {[name: string]: T}): T {\n const keys = Object.keys(f);\n if (keys.length !== 1) {\n throw new Error(\n `Please provide an object with a single key ` +\n `(operation name) mapping to a function. Got an object with ` +\n `${keys.length} keys.`);\n }\n\n let opName = keys[0];\n const fn = f[opName];\n\n // Strip the underscore from the end of the function name.\n if (opName.endsWith('_')) {\n opName = opName.substring(0, opName.length - 1);\n }\n\n // add an __op suffix to distinguish ops from kernels in tf.profile\n opName = opName + OP_SCOPE_SUFFIX;\n\n // tslint:disable-next-line:no-any\n const f2 = (...args: any[]) => {\n ENGINE.startScope(opName);\n try {\n const result = fn(...args);\n if (isPromise(result)) {\n console.error('Cannot return a Promise inside of tidy.');\n }\n ENGINE.endScope(result);\n return result;\n } catch (ex) {\n ENGINE.endScope(null);\n throw ex;\n }\n };\n Object.defineProperty(f2, 'name', {value: opName, configurable: true});\n\n // tslint:disable-next-line:no-any\n return f2 as any as T;\n}\n", "/**\n * @license\n * Copyright 2020 Google LLC. 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 *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\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 * =============================================================================\n */\nimport {ENGINE, ForwardFunc} from '../engine';\nimport {Complex, ComplexInputs} from '../kernel_names';\nimport {Tensor} from '../tensor';\nimport {NamedTensorMap} from '../tensor_types';\nimport {convertToTensor} from '../tensor_util_env';\nimport {TensorLike} from '../types';\nimport * as util from '../util';\n\nimport {op} from './operation';\n\n/**\n * Converts two real numbers to a complex number.\n *\n * Given a tensor `real` representing the real part of a complex number, and a\n * tensor `imag` representing the imaginary part of a complex number, this\n * operation returns complex numbers elementwise of the form [r0, i0, r1, i1],\n * where r represents the real part and i represents the imag part.\n *\n * The input tensors real and imag must have the same shape.\n *\n * ```js\n * const real = tf.tensor1d([2.25, 3.25]);\n * const imag = tf.tensor1d([4.75, 5.75]);\n * const complex = tf.complex(real, imag);\n *\n * complex.print();\n * ```\n *\n * @doc {heading: 'Tensors', subheading: 'Creation'}\n */\nfunction complex_(real: T|TensorLike, imag: T|TensorLike): T {\n const $real = convertToTensor(real, 'real', 'complex');\n const $imag = convertToTensor(imag, 'imag', 'complex');\n util.assertShapesMatch(\n $real.shape, $imag.shape,\n `real and imag shapes, ${$real.shape} and ${$imag.shape}, ` +\n `must match in call to tf.complex().`);\n\n const forward: ForwardFunc = (backend) => {\n return backend.complex($real, $imag);\n };\n const inputs: ComplexInputs = {real: $real, imag: $imag};\n return ENGINE.runKernelFunc(\n forward, inputs as {} as NamedTensorMap, null /* gradient */,\n Complex) as T;\n}\n\nexport const complex = op({complex_});\n", "/**\n * @license\n * Copyright 2018 Google LLC. 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 *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\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 * =============================================================================\n */\n\nimport {ENGINE} from '../engine';\nimport {Tensor} from '../tensor';\nimport {TensorLike, TypedArray} from '../types';\nimport {DataType} from '../types';\nimport {assert, assertNonNegativeIntegerDimensions, flatten, inferDtype, isTypedArray, sizeFromShape, toTypedArray} from '../util';\n\n/** This is shared code across all tensor creation methods. */\nexport function makeTensor(\n values: TensorLike, shape: number[], inferredShape: number[],\n dtype?: DataType): Tensor {\n if (dtype == null) {\n dtype = inferDtype(values);\n }\n if (dtype === 'complex64') {\n throw new Error(\n `Cannot construct a complex64 tensor directly. ` +\n `Please use tf.complex(real, imag).`);\n }\n if (!isTypedArray(values) && !Array.isArray(values) &&\n typeof values !== 'number' && typeof values !== 'boolean' &&\n typeof values !== 'string') {\n throw new Error(\n 'values passed to tensor(values) must be a number/boolean/string or ' +\n 'an array of numbers/booleans/strings, or a TypedArray');\n }\n if (shape != null) {\n assertNonNegativeIntegerDimensions(shape);\n\n const providedSize = sizeFromShape(shape);\n const inferredSize = sizeFromShape(inferredShape);\n assert(\n providedSize === inferredSize,\n () =>\n `Based on the provided shape, [${shape}], the tensor should have ` +\n `${providedSize} values but has ${inferredSize}`);\n\n for (let i = 0; i < inferredShape.length; ++i) {\n const inferred = inferredShape[i];\n const flatDimsDontMatch = i === inferredShape.length - 1 ?\n inferred !== sizeFromShape(shape.slice(i)) :\n true;\n assert(\n inferredShape[i] === shape[i] || !flatDimsDontMatch,\n () => `Error creating a new Tensor. Inferred shape ` +\n `(${inferredShape}) does not match the provided ` +\n `shape (${shape}). `);\n }\n }\n\n if (!isTypedArray(values) && !Array.isArray(values)) {\n values = [values] as number[];\n }\n\n shape = shape || inferredShape;\n values = dtype !== 'string' ?\n toTypedArray(values, dtype) :\n flatten(values as string[], [], true) as string[];\n return ENGINE.makeTensor(values as TypedArray, shape, dtype);\n}\n", "/**\n * @license\n * Copyright 2018 Google LLC. 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 *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\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 * =============================================================================\n */\n\nimport {Tensor} from '../tensor';\nimport {inferShape} from '../tensor_util_env';\nimport {TensorLike} from '../types';\nimport {DataType, Rank, ShapeMap} from '../types';\n\nimport {makeTensor} from './tensor_ops_util';\n\n/**\n * Creates a `tf.Tensor` with the provided values, shape and dtype.\n *\n * ```js\n * // Pass an array of values to create a vector.\n * tf.tensor([1, 2, 3, 4]).print();\n * ```\n *\n * ```js\n * // Pass a nested array of values to make a matrix or a higher\n * // dimensional tensor.\n * tf.tensor([[1, 2], [3, 4]]).print();\n * ```\n *\n * ```js\n * // Pass a flat array and specify a shape yourself.\n * tf.tensor([1, 2, 3, 4], [2, 2]).print();\n * ```\n *\n * @param values The values of the tensor. Can be nested array of numbers,\n * or a flat array, or a `TypedArray`. If the values are strings,\n * they will be encoded as utf-8 and kept as `Uint8Array[]`.\n * @param shape The shape of the tensor. Optional. If not provided,\n * it is inferred from `values`.\n * @param dtype The data type.\n *\n * @doc {heading: 'Tensors', subheading: 'Creation'}\n */\nexport function tensor(\n values: TensorLike, shape?: ShapeMap[R], dtype?: DataType): Tensor {\n const inferredShape = inferShape(values, dtype);\n return makeTensor(values, shape, inferredShape, dtype) as Tensor;\n}\n", "/**\n * @license\n * Copyright 2018 Google LLC. 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 *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\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 * =============================================================================\n */\n\n/* Type definitions for exporting and importing of models. */\n\n/**\n * A map from Tensor dtype to number of bytes per element of the Tensor.\n */\nexport const DTYPE_VALUE_SIZE_MAP: {[dtype: string]: number} = {\n 'float32': 4,\n 'float16': 2,\n 'int32': 4,\n 'uint16': 2,\n 'uint8': 1,\n 'bool': 1,\n 'complex64': 8\n};\n\n/**\n * A weight manifest.\n *\n * The weight manifest consists of an ordered list of weight-manifest groups.\n * Each weight-manifest group (\"group\" for short hereafter) consists of a\n * number of weight values stored in a number of paths.\n * See the documentation of `WeightManifestGroupConfig` below for more details.\n */\nexport declare type WeightsManifestConfig = WeightsManifestGroupConfig[];\n\n/**\n * A weight-manifest group.\n *\n * Consists of an ordered list of weight values encoded in binary format,\n * stored in an ordered list of paths.\n */\nexport declare interface WeightsManifestGroupConfig {\n /**\n * An ordered list of paths.\n *\n * Paths are intentionally abstract in order to be general. For example, they\n * can be relative URL paths or relative paths on the file system.\n */\n paths: string[];\n\n /**\n * Specifications of the weights stored in the paths.\n */\n weights: WeightsManifestEntry[];\n}\n\n/**\n * Group to which the weight belongs.\n *\n * - 'optimizer': Weight from a stateful optimizer.\n */\nexport type WeightGroup = 'model'|'optimizer';\n\n/**\n * An entry in the weight manifest.\n *\n * The entry contains specification of a weight.\n */\nexport declare interface WeightsManifestEntry {\n /**\n * Name of the weight, e.g., 'Dense_1/bias'\n */\n name: string;\n\n /**\n * Shape of the weight.\n */\n shape: number[];\n\n /**\n * Data type of the weight.\n */\n dtype: 'float32'|'int32'|'bool'|'string'|'complex64';\n\n /**\n * Type of the weight.\n *\n * Optional.\n *\n * The value 'optimizer' indicates the weight belongs to an optimizer\n * (i.e., used only during model training and not during inference).\n */\n group?: WeightGroup;\n\n /**\n * Information for dequantization of the weight.\n */\n quantization?: {\n scale?: number, // The scaling constant to multiply by.\n min?: number, // The (possibly nudged) minimum weight to add.\n dtype: 'uint16'|'uint8'|'float16' // The dtype of the quantized weights.\n };\n}\n\n/**\n * Options for saving a model.\n * @innamespace io\n */\nexport interface SaveConfig {\n /**\n * Whether to save only the trainable weights of the model, ignoring the\n * non-trainable ones.\n */\n trainableOnly?: boolean;\n\n /**\n * Whether the optimizer will be saved (if exists).\n *\n * Default: `false`.\n */\n includeOptimizer?: boolean;\n}\n\n/**\n * Result of a saving operation.\n */\nexport interface SaveResult {\n /**\n * Information about the model artifacts saved.\n */\n modelArtifactsInfo: ModelArtifactsInfo;\n\n /**\n * HTTP responses from the server that handled the model-saving request (if\n * any). This is applicable only to server-based saving routes.\n */\n responses?: Response[];\n\n /**\n * Error messages and related data (if any).\n */\n errors?: Array<{}|string>;\n}\n\nexport declare interface ModelArtifactsInfo {\n /**\n * Timestamp for when the model is saved.\n */\n dateSaved: Date;\n\n /**\n * TODO (cais,yassogba) consider removing GraphDef as GraphDefs now\n * come in a JSON format and none of our IOHandlers support a non json\n * format. We could conder replacing this with 'Binary' if we want to\n * allow future handlers to save to non json formats (though they will\n * probably want more information than 'Binary').\n * Type of the model topology\n *\n * Type of the model topology\n *\n * Possible values:\n * - JSON: JSON config (human-readable, e.g., Keras JSON).\n * - GraphDef: TensorFlow\n * [GraphDef](https://www.tensorflow.org/extend/tool_developers/#graphdef)\n * protocol buffer (binary).\n */\n modelTopologyType: 'JSON'|'GraphDef';\n\n /**\n * Size of model topology (Keras JSON or GraphDef), in bytes.\n */\n modelTopologyBytes?: number;\n\n /**\n * Size of weight specification or manifest, in bytes.\n */\n weightSpecsBytes?: number;\n\n /**\n * Size of weight value data, in bytes.\n */\n weightDataBytes?: number;\n}\n\n/** Model training configuration. */\nexport declare interface TrainingConfig {\n // TODO(cais): Tighten the typing once keras spec is available to tfjs-core.\n // See\n // tslint:disable-next-line:max-line-length\n // https://github.com/tensorflow/tfjs-layers/blob/master/src/keras_format/training_config.ts\n /** Optimizer used for the model training. */\n optimizer_config: {};\n\n // TODO(cais): Tighten the typing once keras spec is available to tfjs-core.\n /** Loss function(s) for the model's output(s). */\n loss: string|string[]|{[key: string]: string};\n\n // TODO(cais): Tighten the typing once keras spec is available to tfjs-core.\n /** Metric function(s) for the model's output(s). */\n metrics?: string[]|{[key: string]: string};\n\n // TODO(cais): Tighten the typing once keras spec is available to tfjs-core.\n weighted_metrics?: string[];\n\n // TODO(cais): Tighten the typing once keras spec is available to tfjs-core.\n sample_weight_mode?: string;\n\n loss_weights?: number[]|{[key: string]: number};\n}\n\n/**\n * The serialized artifacts of a model, including topology and weights.\n *\n * The `modelTopology`, `trainingConfig`, `weightSpecs` and `weightData` fields\n * of this interface are optional, in order to support topology- or weights-only\n * saving and loading.\n *\n * Note this interface is used internally in IOHandlers. For the file format\n * written to disk as `model.json`, see `ModelJSON`.\n */\nexport declare interface ModelArtifacts {\n /**\n * Model topology.\n *\n * For Keras-style `tf.Model`s, this is a JSON object.\n * For TensorFlow-style models (e.g., `SavedModel`), this is the JSON\n * encoding of the `GraphDef` protocol buffer.\n */\n modelTopology?: {}|ArrayBuffer;\n\n /**\n * Serialized configuration for the model's training.\n */\n trainingConfig?: TrainingConfig;\n\n /**\n * Weight specifications.\n *\n * This corresponds to the weightsData below.\n */\n weightSpecs?: WeightsManifestEntry[];\n\n /**\n * Binary buffer for all weight values concatenated in the order specified\n * by `weightSpecs`.\n */\n weightData?: ArrayBuffer;\n\n /**\n * Hard-coded format name for models saved from TensorFlow.js or converted\n * by TensorFlow.js Converter.\n */\n format?: string;\n\n /**\n * What library is responsible for originally generating this artifact.\n *\n * Used for debugging purposes. E.g., 'TensorFlow.js v1.0.0'.\n */\n generatedBy?: string;\n\n /**\n * What library or tool is responsible for converting the original model\n * to this format, applicable only if the model is output by a converter.\n *\n * Used for debugging purposes. E.g., 'TensorFlow.js Converter v1.0.0'.\n *\n * A value of `null` means the model artifacts are generated without any\n * conversion process (e.g., saved directly from a TensorFlow.js\n * `tf.LayersModel` instance.)\n */\n convertedBy?: string|null;\n\n /**\n * User-defined metadata about the model.\n */\n userDefinedMetadata?: {};\n\n /**\n * Initializer for the model.\n */\n modelInitializer?: {};\n}\n\n/**\n * The on-disk format of the `model.json` file.\n *\n * TF.js 1.0 always populates the optional fields when writing model.json.\n * Prior versions did not provide those fields.\n */\nexport declare interface ModelJSON {\n /**\n * Model topology.\n *\n * For Keras-style `tf.Model`s, this is a JSON object.\n * For TensorFlow-style models (e.g., `SavedModel`), this is the JSON\n * encoding of the `GraphDef` protocol buffer.\n */\n modelTopology: {};\n\n /** Model training configuration. */\n trainingConfig?: TrainingConfig;\n\n /**\n * Weights manifest.\n *\n * The weights manifest consists of an ordered list of weight-manifest\n * groups. Each weight-manifest group consists of a number of weight values\n * stored in a number of paths. See the documentation of\n * `WeightsManifestConfig` for more details.\n */\n weightsManifest: WeightsManifestConfig;\n\n /**\n * Hard-coded format name for models saved from TensorFlow.js or converted\n * by TensorFlow.js Converter.\n */\n format?: string;\n\n /**\n * What library is responsible for originally generating this artifact.\n *\n * Used for debugging purposes. E.g., 'TensorFlow.js v1.0.0'.\n */\n generatedBy?: string;\n\n /**\n * What library or tool is responsible for converting the original model\n * to this format, applicable only if the model is output by a converter.\n *\n * Used for debugging purposes. E.g., 'TensorFlow.js Converter v1.0.0'.\n *\n * A value of `null` means the model artifacts are generated without any\n * conversion process (e.g., saved directly from a TensorFlow.js\n * `tf.LayersModel` instance.)\n */\n convertedBy?: string|null;\n\n /**\n * User-defined metadata about the model.\n */\n userDefinedMetadata?: {};\n\n /**\n * Initializer for the model.\n */\n modelInitializer?: {};\n}\n\n/**\n * Type definition for handlers of loading operations.\n */\nexport type LoadHandler = () => Promise;\n\n/**\n * Type definition for handlers of saving operations.\n */\nexport type SaveHandler = (modelArtifact: ModelArtifacts) =>\n Promise;\n\n/**\n * Interface for a model import/export handler.\n *\n * The `save` and `load` handlers are both optional, in order to allow handlers\n * that support only saving or loading.\n */\n// tslint:disable-next-line:interface-name\nexport interface IOHandler {\n save?: SaveHandler;\n load?: LoadHandler;\n}\n\n/**\n * An interface for the manager of a model store.\n *\n * A model store is defined as a storage medium on which multiple models can\n * be stored. Each stored model has a unique `path` as its identifier.\n * A `ModelStoreManager` for the store allows actions including\n *\n * - Listing the models stored in the store.\n * - Deleting a model from the store.\n */\nexport interface ModelStoreManager {\n /**\n * List all models in the model store.\n *\n * @returns A dictionary mapping paths of existing models to their\n * model artifacts info. Model artifacts info include type of the model's\n * topology, byte sizes of the topology, weights, etc.\n */\n listModels(): Promise<{[path: string]: ModelArtifactsInfo}>;\n\n /**\n * Remove a model specified by `path`.\n *\n * @param path\n * @returns ModelArtifactsInfo of the deleted model (if and only if deletion\n * is successful).\n * @throws Error if deletion fails, e.g., if no model exists at `path`.\n */\n removeModel(path: string): Promise;\n}\n\n/**\n * Callback for the progress of a long-running action such as an HTTP\n * request for a large binary object.\n *\n * `fraction` should be a number in the [0, 1] interval, indicating how\n * much of the action has completed.\n */\nexport type OnProgressCallback = (fraction: number) => void;\n\n/** @innamespace io */\nexport interface LoadOptions {\n /**\n * RequestInit (options) for HTTP requests.\n *\n * For detailed information on the supported fields, see\n * [https://developer.mozilla.org/en-US/docs/Web/API/Request/Request](\n * https://developer.mozilla.org/en-US/docs/Web/API/Request/Request)\n */\n requestInit?: RequestInit;\n\n /**\n * Progress callback.\n */\n onProgress?: OnProgressCallback;\n\n /**\n * A function used to override the `window.fetch` function.\n */\n fetchFunc?: Function;\n\n /**\n * Strict loading model: whether extraneous weights or missing\n * weights should trigger an `Error`.\n *\n * If `true`, require that the provided weights exactly match those\n * required by the layers. `false` means that both extra weights\n * and missing weights will be silently ignored.\n *\n * Default: `true`.\n */\n strict?: boolean;\n\n /**\n * Path prefix for weight files, by default this is calculated from the\n * path of the model JSON file.\n *\n * For instance, if the path to the model JSON file is\n * `http://localhost/foo/model.json`, then the default path prefix will be\n * `http://localhost/foo/`. If a weight file has the path value\n * `group1-shard1of2` in the weight manifest, then the weight file will be\n * loaded from `http://localhost/foo/group1-shard1of2` by default. However,\n * if you provide a `weightPathPrefix` value of\n * `http://localhost/foo/alt-weights`, then the weight file will be loaded\n * from the path `http://localhost/foo/alt-weights/group1-shard1of2` instead.\n */\n weightPathPrefix?: string;\n\n /**\n * Whether the module or model is to be loaded from TF Hub.\n *\n * Setting this to `true` allows passing a TF-Hub module URL, omitting the\n * standard model file name and the query parameters.\n *\n * Default: `false`.\n */\n fromTFHub?: boolean;\n\n /**\n * An async function to convert weight file name to URL. The weight file\n * names are stored in model.json's weightsManifest.paths field. By default we\n * consider weight files are colocated with the model.json file. For example:\n * model.json URL: https://www.google.com/models/1/model.json\n * group1-shard1of1.bin url:\n * https://www.google.com/models/1/group1-shard1of1.bin\n *\n * With this func you can convert the weight file name to any URL.\n */\n weightUrlConverter?: (weightFileName: string) => Promise;\n}\n\n/**\n * Additional options for Platform.fetch\n */\nexport interface RequestDetails {\n /**\n * Is this request for a binary file (as opposed to a json file)\n */\n isBinary?: boolean;\n}\n", "/**\n * @license\n * Copyright 2018 Google LLC. 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 *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\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 * =============================================================================\n */\n\nimport {complex} from '../ops/complex';\n\nimport {tensor} from '../ops/tensor';\nimport {NamedTensor, NamedTensorMap} from '../tensor_types';\nimport {TypedArray} from '../types';\nimport {sizeFromShape} from '../util';\n\nimport {DTYPE_VALUE_SIZE_MAP, ModelArtifacts, ModelArtifactsInfo, WeightGroup, WeightsManifestEntry} from './types';\n\n/** Number of bytes reserved for the length of the string. (32bit integer). */\nconst NUM_BYTES_STRING_LENGTH = 4;\n\n/**\n * Encode a map from names to weight values as an ArrayBuffer, along with an\n * `Array` of `WeightsManifestEntry` as specification of the encoded weights.\n *\n * This function does not perform sharding.\n *\n * This function is the reverse of `decodeWeights`.\n *\n * @param tensors A map (\"dict\") from names to tensors.\n * @param group Group to which the weights belong (optional).\n * @returns A `Promise` of\n * - A flat `ArrayBuffer` with all the binary values of the `Tensor`s\n * concatenated.\n * - An `Array` of `WeightManifestEntry`s, carrying information including\n * tensor names, `dtype`s and shapes.\n * @throws Error: on unsupported tensor `dtype`.\n */\nexport async function encodeWeights(\n tensors: NamedTensorMap|NamedTensor[], group?: WeightGroup):\n Promise<{data: ArrayBuffer, specs: WeightsManifestEntry[]}> {\n // TODO(adarob, cais): Support quantization.\n const specs: WeightsManifestEntry[] = [];\n const dataPromises: Array> = [];\n\n const names: string[] = Array.isArray(tensors) ?\n tensors.map(tensor => tensor.name) :\n Object.keys(tensors);\n\n for (let i = 0; i < names.length; ++i) {\n const name = names[i];\n const t = Array.isArray(tensors) ? tensors[i].tensor : tensors[name];\n if (t.dtype !== 'float32' && t.dtype !== 'int32' && t.dtype !== 'bool' &&\n t.dtype !== 'string' && t.dtype !== 'complex64') {\n throw new Error(`Unsupported dtype in weight '${name}': ${t.dtype}`);\n }\n const spec: WeightsManifestEntry = {name, shape: t.shape, dtype: t.dtype};\n if (t.dtype === 'string') {\n const utf8bytes = new Promise(async resolve => {\n const vals = await t.bytes() as Uint8Array[];\n const totalNumBytes = vals.reduce((p, c) => p + c.length, 0) +\n NUM_BYTES_STRING_LENGTH * vals.length;\n const bytes = new Uint8Array(totalNumBytes);\n let offset = 0;\n for (let i = 0; i < vals.length; i++) {\n const val = vals[i];\n const bytesOfLength =\n new Uint8Array(new Uint32Array([val.length]).buffer);\n bytes.set(bytesOfLength, offset);\n offset += NUM_BYTES_STRING_LENGTH;\n bytes.set(val, offset);\n offset += val.length;\n }\n resolve(bytes);\n });\n dataPromises.push(utf8bytes);\n } else {\n dataPromises.push(t.data());\n }\n if (group != null) {\n spec.group = group;\n }\n specs.push(spec);\n }\n\n const tensorValues = await Promise.all(dataPromises);\n return {data: concatenateTypedArrays(tensorValues), specs};\n}\n\n/**\n * Decode flat ArrayBuffer as weights.\n *\n * This function does not handle sharding.\n *\n * This function is the reverse of `encodeWeights`.\n *\n * @param buffer A flat ArrayBuffer carrying the binary values of the tensors\n * concatenated in the order specified in `specs`.\n * @param specs Specifications of the names, dtypes and shapes of the tensors\n * whose value are encoded by `buffer`.\n * @return A map from tensor name to tensor value, with the names corresponding\n * to names in `specs`.\n * @throws Error, if any of the tensors has unsupported dtype.\n */\nexport function decodeWeights(\n buffer: ArrayBuffer, specs: WeightsManifestEntry[]): NamedTensorMap {\n // TODO(adarob, cais): Support quantization.\n const out: NamedTensorMap = {};\n let float16Decode: (buffer: Uint16Array) => Float32Array | undefined;\n let offset = 0;\n for (const spec of specs) {\n const name = spec.name;\n const dtype = spec.dtype;\n const shape = spec.shape;\n const size = sizeFromShape(shape);\n let values: TypedArray|string[]|Uint8Array[];\n\n if ('quantization' in spec) {\n const quantization = spec.quantization;\n if (quantization.dtype === 'uint8' || quantization.dtype === 'uint16') {\n if (!('min' in quantization && 'scale' in quantization)) {\n throw new Error(\n `Weight ${spec.name} with quantization ${quantization.dtype} ` +\n `doesn't have corresponding metadata min and scale.`);\n }\n } else if (quantization.dtype === 'float16') {\n if (dtype !== 'float32') {\n throw new Error(\n `Weight ${spec.name} is quantized with ${quantization.dtype} ` +\n `which only supports weights of type float32 not ${dtype}.`);\n }\n } else {\n throw new Error(\n `Weight ${spec.name} has unknown ` +\n `quantization dtype ${quantization.dtype}. ` +\n `Supported quantization dtypes are: ` +\n `'uint8', 'uint16', and 'float16'.`);\n }\n const quantizationSizeFactor = DTYPE_VALUE_SIZE_MAP[quantization.dtype];\n const byteBuffer =\n buffer.slice(offset, offset + size * quantizationSizeFactor);\n const quantizedArray = (quantization.dtype === 'uint8') ?\n new Uint8Array(byteBuffer) :\n new Uint16Array(byteBuffer);\n if (dtype === 'float32') {\n if (quantization.dtype === 'uint8' || quantization.dtype === 'uint16') {\n values = new Float32Array(quantizedArray.length);\n for (let i = 0; i < quantizedArray.length; i++) {\n const v = quantizedArray[i];\n values[i] = v * quantization.scale + quantization.min;\n }\n } else if (quantization.dtype === 'float16') {\n if (float16Decode === undefined) {\n float16Decode = getFloat16Decoder();\n }\n values = float16Decode(quantizedArray as Uint16Array);\n } else {\n throw new Error(\n `Unsupported quantization type ${quantization.dtype} ` +\n `for weight type float32.`);\n }\n } else if (dtype === 'int32') {\n if (quantization.dtype !== 'uint8' && quantization.dtype !== 'uint16') {\n throw new Error(\n `Unsupported quantization type ${quantization.dtype} ` +\n `for weight type int32.`);\n }\n values = new Int32Array(quantizedArray.length);\n for (let i = 0; i < quantizedArray.length; i++) {\n const v = quantizedArray[i];\n values[i] = Math.round(v * quantization.scale + quantization.min);\n }\n } else {\n throw new Error(`Unsupported dtype in weight '${name}': ${dtype}`);\n }\n offset += size * quantizationSizeFactor;\n } else if (dtype === 'string') {\n const size = sizeFromShape(spec.shape);\n values = [];\n for (let i = 0; i < size; i++) {\n const byteLength = new Uint32Array(\n buffer.slice(offset, offset + NUM_BYTES_STRING_LENGTH))[0];\n offset += NUM_BYTES_STRING_LENGTH;\n const bytes = new Uint8Array(buffer.slice(offset, offset + byteLength));\n (values as Uint8Array[]).push(bytes);\n offset += byteLength;\n }\n } else {\n const dtypeFactor = DTYPE_VALUE_SIZE_MAP[dtype];\n const byteBuffer = buffer.slice(offset, offset + size * dtypeFactor);\n\n if (dtype === 'float32') {\n values = new Float32Array(byteBuffer);\n } else if (dtype === 'int32') {\n values = new Int32Array(byteBuffer);\n } else if (dtype === 'bool') {\n values = new Uint8Array(byteBuffer);\n } else if (dtype === 'complex64') {\n values = new Float32Array(byteBuffer);\n const real = new Float32Array(values.length / 2);\n const image = new Float32Array(values.length / 2);\n for (let i = 0; i < real.length; i++) {\n real[i] = values[i * 2];\n image[i] = values[i * 2 + 1];\n }\n const realTensor = tensor(real, shape, 'float32');\n const imageTensor = tensor(image, shape, 'float32');\n out[name] = complex(realTensor, imageTensor);\n realTensor.dispose();\n imageTensor.dispose();\n } else {\n throw new Error(`Unsupported dtype in weight '${name}': ${dtype}`);\n }\n offset += size * dtypeFactor;\n }\n if (dtype !== 'complex64') {\n out[name] = tensor(values, shape, dtype);\n }\n }\n return out;\n}\n\n/**\n * Concatenate TypedArrays into an ArrayBuffer.\n */\nexport function concatenateTypedArrays(xs: TypedArray[]): ArrayBuffer {\n // TODO(adarob, cais): Support quantization.\n if (xs === null) {\n throw new Error(`Invalid input value: ${JSON.stringify(xs)}`);\n }\n\n let totalByteLength = 0;\n\n // `normalizedXs` is here for this reason: a `TypedArray`'s `buffer'\n // can have a different byte length from that of the `TypedArray` itself,\n // for example, when the `TypedArray` is created from an offset in an\n // `ArrayBuffer`. `normliazedXs` holds `TypedArray`s whose `buffer`s match\n // the `TypedArray` in byte length. If an element of `xs` does not show\n // this property, a new `TypedArray` that satisfy this property will be\n // constructed and pushed into `normalizedXs`.\n const normalizedXs: TypedArray[] = [];\n xs.forEach((x: TypedArray) => {\n totalByteLength += x.byteLength;\n // tslint:disable:no-any\n normalizedXs.push(\n x.byteLength === x.buffer.byteLength ? x :\n new (x.constructor as any)(x));\n if (!(x as any instanceof Float32Array || x as any instanceof Int32Array ||\n x as any instanceof Uint8Array)) {\n throw new Error(`Unsupported TypedArray subtype: ${x.constructor.name}`);\n }\n // tslint:enable:no-any\n });\n\n const y = new Uint8Array(totalByteLength);\n let offset = 0;\n normalizedXs.forEach((x: TypedArray) => {\n y.set(new Uint8Array(x.buffer), offset);\n offset += x.byteLength;\n });\n\n return y.buffer;\n}\n\n// Use Buffer on Node.js instead of Blob/atob/btoa\nconst useNodeBuffer = typeof Buffer !== 'undefined' &&\n (typeof Blob === 'undefined' || typeof atob === 'undefined' ||\n typeof btoa === 'undefined');\n\n/**\n * Calculate the byte length of a JavaScript string.\n *\n * Note that a JavaScript string can contain wide characters, therefore the\n * length of the string is not necessarily equal to the byte length.\n *\n * @param str Input string.\n * @returns Byte length.\n */\nexport function stringByteLength(str: string): number {\n if (useNodeBuffer) {\n return Buffer.byteLength(str);\n }\n return new Blob([str]).size;\n}\n\n/**\n * Encode an ArrayBuffer as a base64 encoded string.\n *\n * @param buffer `ArrayBuffer` to be converted.\n * @returns A string that base64-encodes `buffer`.\n */\nexport function arrayBufferToBase64String(buffer: ArrayBuffer): string {\n if (useNodeBuffer) {\n return Buffer.from(buffer).toString('base64');\n }\n const buf = new Uint8Array(buffer);\n let s = '';\n for (let i = 0, l = buf.length; i < l; i++) {\n s += String.fromCharCode(buf[i]);\n }\n return btoa(s);\n}\n\n/**\n * Decode a base64 string as an ArrayBuffer.\n *\n * @param str Base64 string.\n * @returns Decoded `ArrayBuffer`.\n */\nexport function base64StringToArrayBuffer(str: string): ArrayBuffer {\n if (useNodeBuffer) {\n const buf = Buffer.from(str, 'base64');\n return buf.buffer.slice(buf.byteOffset, buf.byteOffset + buf.byteLength);\n }\n const s = atob(str);\n const buffer = new Uint8Array(s.length);\n for (let i = 0; i < s.length; ++i) {\n buffer.set([s.charCodeAt(i)], i);\n }\n return buffer.buffer;\n}\n\n/**\n * Concatenate a number of ArrayBuffers into one.\n *\n * @param buffers A number of array buffers to concatenate.\n * @returns Result of concatenating `buffers` in order.\n */\nexport function concatenateArrayBuffers(buffers: ArrayBuffer[]): ArrayBuffer {\n if (buffers.length === 1) {\n return buffers[0];\n }\n\n let totalByteLength = 0;\n buffers.forEach((buffer: ArrayBuffer) => {\n totalByteLength += buffer.byteLength;\n });\n\n const temp = new Uint8Array(totalByteLength);\n let offset = 0;\n buffers.forEach((buffer: ArrayBuffer) => {\n temp.set(new Uint8Array(buffer), offset);\n offset += buffer.byteLength;\n });\n return temp.buffer;\n}\n\n/**\n * Get the basename of a path.\n *\n * Behaves in a way analogous to Linux's basename command.\n *\n * @param path\n */\nexport function basename(path: string): string {\n const SEPARATOR = '/';\n path = path.trim();\n while (path.endsWith(SEPARATOR)) {\n path = path.slice(0, path.length - 1);\n }\n const items = path.split(SEPARATOR);\n return items[items.length - 1];\n}\n\n/**\n * Populate ModelArtifactsInfo fields for a model with JSON topology.\n * @param modelArtifacts\n * @returns A ModelArtifactsInfo object.\n */\nexport function getModelArtifactsInfoForJSON(modelArtifacts: ModelArtifacts):\n ModelArtifactsInfo {\n if (modelArtifacts.modelTopology instanceof ArrayBuffer) {\n throw new Error('Expected JSON model topology, received ArrayBuffer.');\n }\n\n return {\n dateSaved: new Date(),\n modelTopologyType: 'JSON',\n modelTopologyBytes: modelArtifacts.modelTopology == null ?\n 0 :\n stringByteLength(JSON.stringify(modelArtifacts.modelTopology)),\n weightSpecsBytes: modelArtifacts.weightSpecs == null ?\n 0 :\n stringByteLength(JSON.stringify(modelArtifacts.weightSpecs)),\n weightDataBytes: modelArtifacts.weightData == null ?\n 0 :\n modelArtifacts.weightData.byteLength,\n };\n}\n\n/**\n * Computes mantisa table for casting Float16 to Float32\n * See http://www.fox-toolkit.org/ftp/fasthalffloatconversion.pdf\n *\n * @returns Uint32Array, 2048 mantissa lookup values.\n */\nfunction computeFloat16MantisaTable(): Uint32Array {\n const convertMantissa = (i: number): number => {\n let m = i << 13;\n let e = 0;\n\n while ((m & 0x00800000) === 0) {\n e -= 0x00800000;\n m <<= 1;\n }\n m &= ~0x00800000;\n e += 0x38800000;\n\n return m | e;\n };\n\n const mantisaTable = new Uint32Array(2048);\n\n mantisaTable[0] = 0;\n for (let i = 1; i < 1024; i++) {\n mantisaTable[i] = convertMantissa(i);\n }\n for (let i = 1024; i < 2048; i++) {\n mantisaTable[i] = 0x38000000 + ((i - 1024) << 13);\n }\n\n return mantisaTable;\n}\n\n/**\n * Computes exponent table for casting Float16 to Float32\n * See http://www.fox-toolkit.org/ftp/fasthalffloatconversion.pdf\n *\n * @returns Uint32Array, 64 exponent lookup values.\n */\nfunction computeFloat16ExponentTable(): Uint32Array {\n const exponentTable = new Uint32Array(64);\n\n exponentTable[0] = 0;\n exponentTable[31] = 0x47800000;\n exponentTable[32] = 0x80000000;\n exponentTable[63] = 0xc7800000;\n for (let i = 1; i < 31; i++) {\n exponentTable[i] = i << 23;\n }\n for (let i = 33; i < 63; i++) {\n exponentTable[i] = 0x80000000 + ((i - 32) << 23);\n }\n\n return exponentTable;\n}\n\n/**\n * Computes offset table for casting Float16 to Float32\n * See http://www.fox-toolkit.org/ftp/fasthalffloatconversion.pdf\n *\n * @returns Uint32Array, 6d offset values.\n */\nfunction computeFloat16OffsetTable(): Uint32Array {\n const offsetTable = new Uint32Array(64);\n\n for (let i = 0; i < 64; i++) {\n offsetTable[i] = 1024;\n }\n offsetTable[0] = offsetTable[32] = 0;\n\n return offsetTable;\n}\n\n/**\n * Retrieve a Float16 decoder which will decode a ByteArray of Float16 values\n * to a Float32Array.\n *\n * @returns Function (buffer: Uint16Array) => Float32Array which decodes\n * the Uint16Array of Float16 bytes to a Float32Array.\n */\nexport function getFloat16Decoder(): (buffer: Uint16Array) => Float32Array {\n // Algorithm is based off of\n // http://www.fox-toolkit.org/ftp/fasthalffloatconversion.pdf\n\n // Cache lookup tables\n const mantisaTable = computeFloat16MantisaTable();\n const exponentTable = computeFloat16ExponentTable();\n const offsetTable = computeFloat16OffsetTable();\n\n return (quantizedArray: Uint16Array) => {\n const buffer = new ArrayBuffer(4 * quantizedArray.length);\n const bufferUint32View = new Uint32Array(buffer);\n for (let index = 0; index < quantizedArray.length; index++) {\n const float16Bits = quantizedArray[index];\n const float32Bits =\n mantisaTable[offsetTable[float16Bits >> 10] + (float16Bits & 0x3ff)] +\n exponentTable[float16Bits >> 10];\n bufferUint32View[index] = float32Bits;\n }\n return new Float32Array(buffer);\n };\n}\n", "/**\n * @license\n * Copyright 2018 Google LLC. 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 *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\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 * =============================================================================\n */\n\nimport {IOHandler, LoadOptions} from './types';\n\nexport type IORouter = (url: string|string[], loadOptions?: LoadOptions) =>\n IOHandler;\n\nexport class IORouterRegistry {\n // Singleton instance.\n private static instance: IORouterRegistry;\n\n private saveRouters: IORouter[];\n private loadRouters: IORouter[];\n\n private constructor() {\n this.saveRouters = [];\n this.loadRouters = [];\n }\n\n private static getInstance(): IORouterRegistry {\n if (IORouterRegistry.instance == null) {\n IORouterRegistry.instance = new IORouterRegistry();\n }\n return IORouterRegistry.instance;\n }\n\n /**\n * Register a save-handler router.\n *\n * @param saveRouter A function that maps a URL-like string onto an instance\n * of `IOHandler` with the `save` method defined or `null`.\n */\n static registerSaveRouter(saveRouter: IORouter) {\n IORouterRegistry.getInstance().saveRouters.push(saveRouter);\n }\n\n /**\n * Register a load-handler router.\n *\n * @param loadRouter A function that maps a URL-like string onto an instance\n * of `IOHandler` with the `load` method defined or `null`.\n */\n static registerLoadRouter(loadRouter: IORouter) {\n IORouterRegistry.getInstance().loadRouters.push(loadRouter);\n }\n\n /**\n * Look up IOHandler for saving, given a URL-like string.\n *\n * @param url\n * @returns If only one match is found, an instance of IOHandler with the\n * `save` method defined. If no match is found, `null`.\n * @throws Error, if more than one match is found.\n */\n static getSaveHandlers(url: string|string[]): IOHandler[] {\n return IORouterRegistry.getHandlers(url, 'save');\n }\n\n /**\n * Look up IOHandler for loading, given a URL-like string.\n *\n * @param url\n * @param loadOptions Optional, custom load options.\n * @returns All valid handlers for `url`, given the currently registered\n * handler routers.\n */\n static getLoadHandlers(url: string|string[], loadOptions?: LoadOptions):\n IOHandler[] {\n return IORouterRegistry.getHandlers(url, 'load', loadOptions);\n }\n\n private static getHandlers(\n url: string|string[], handlerType: 'save'|'load',\n loadOptions?: LoadOptions): IOHandler[] {\n const validHandlers: IOHandler[] = [];\n const routers = handlerType === 'load' ?\n IORouterRegistry.getInstance().loadRouters :\n IORouterRegistry.getInstance().saveRouters;\n routers.forEach(router => {\n const handler = router(url, loadOptions);\n if (handler !== null) {\n validHandlers.push(handler);\n }\n });\n return validHandlers;\n }\n}\n\nexport const registerSaveRouter = (loudRouter: IORouter) =>\n IORouterRegistry.registerSaveRouter(loudRouter);\nexport const registerLoadRouter = (loudRouter: IORouter) =>\n IORouterRegistry.registerLoadRouter(loudRouter);\nexport const getSaveHandlers = (url: string|string[]) =>\n IORouterRegistry.getSaveHandlers(url);\nexport const getLoadHandlers =\n (url: string|string[], loadOptions?: LoadOptions) =>\n IORouterRegistry.getLoadHandlers(url, loadOptions);\n", "/**\n * @license\n * Copyright 2018 Google LLC. 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 *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\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 * =============================================================================\n */\n\nimport '../flags';\n\nimport {env} from '../environment';\n\nimport {getModelArtifactsInfoForJSON} from './io_utils';\nimport {IORouter, IORouterRegistry} from './router_registry';\nimport {IOHandler, ModelArtifacts, ModelArtifactsInfo, ModelStoreManager, SaveResult} from './types';\n\nconst DATABASE_NAME = 'tensorflowjs';\nconst DATABASE_VERSION = 1;\n\n// Model data and ModelArtifactsInfo (metadata) are stored in two separate\n// stores for efficient access of the list of stored models and their metadata.\n// 1. The object store for model data: topology, weights and weight manifests.\nconst MODEL_STORE_NAME = 'models_store';\n// 2. The object store for ModelArtifactsInfo, including meta-information such\n// as the type of topology (JSON vs binary), byte size of the topology, byte\n// size of the weights, etc.\nconst INFO_STORE_NAME = 'model_info_store';\n\n/**\n * Delete the entire database for tensorflow.js, including the models store.\n */\nexport async function deleteDatabase(): Promise {\n const idbFactory = getIndexedDBFactory();\n\n return new Promise((resolve, reject) => {\n const deleteRequest = idbFactory.deleteDatabase(DATABASE_NAME);\n deleteRequest.onsuccess = () => resolve();\n deleteRequest.onerror = error => reject(error);\n });\n}\n\nfunction getIndexedDBFactory(): IDBFactory {\n if (!env().getBool('IS_BROWSER')) {\n // TODO(cais): Add more info about what IOHandler subtypes are available.\n // Maybe point to a doc page on the web and/or automatically determine\n // the available IOHandlers and print them in the error message.\n throw new Error(\n 'Failed to obtain IndexedDB factory because the current environment' +\n 'is not a web browser.');\n }\n // tslint:disable-next-line:no-any\n const theWindow: any = typeof window === 'undefined' ? self : window;\n const factory = theWindow.indexedDB || theWindow.mozIndexedDB ||\n theWindow.webkitIndexedDB || theWindow.msIndexedDB ||\n theWindow.shimIndexedDB;\n if (factory == null) {\n throw new Error(\n 'The current browser does not appear to support IndexedDB.');\n }\n return factory;\n}\n\nfunction setUpDatabase(openRequest: IDBRequest) {\n const db = openRequest.result as IDBDatabase;\n db.createObjectStore(MODEL_STORE_NAME, {keyPath: 'modelPath'});\n db.createObjectStore(INFO_STORE_NAME, {keyPath: 'modelPath'});\n}\n\n/**\n * IOHandler subclass: Browser IndexedDB.\n *\n * See the doc string of `browserIndexedDB` for more details.\n */\nexport class BrowserIndexedDB implements IOHandler {\n protected readonly indexedDB: IDBFactory;\n protected readonly modelPath: string;\n\n static readonly URL_SCHEME = 'indexeddb://';\n\n constructor(modelPath: string) {\n this.indexedDB = getIndexedDBFactory();\n\n if (modelPath == null || !modelPath) {\n throw new Error(\n 'For IndexedDB, modelPath must not be null, undefined or empty.');\n }\n this.modelPath = modelPath;\n }\n\n async save(modelArtifacts: ModelArtifacts): Promise {\n // TODO(cais): Support saving GraphDef models.\n if (modelArtifacts.modelTopology instanceof ArrayBuffer) {\n throw new Error(\n 'BrowserLocalStorage.save() does not support saving model topology ' +\n 'in binary formats yet.');\n }\n\n return this.databaseAction(this.modelPath, modelArtifacts) as\n Promise;\n }\n\n async load(): Promise {\n return this.databaseAction(this.modelPath) as Promise;\n }\n\n /**\n * Perform database action to put model artifacts into or read model artifacts\n * from IndexedDB object store.\n *\n * Whether the action is put or get depends on whether `modelArtifacts` is\n * specified. If it is specified, the action will be put; otherwise the action\n * will be get.\n *\n * @param modelPath A unique string path for the model.\n * @param modelArtifacts If specified, it will be the model artifacts to be\n * stored in IndexedDB.\n * @returns A `Promise` of `SaveResult`, if the action is put, or a `Promise`\n * of `ModelArtifacts`, if the action is get.\n */\n private databaseAction(modelPath: string, modelArtifacts?: ModelArtifacts):\n Promise {\n return new Promise((resolve, reject) => {\n const openRequest = this.indexedDB.open(DATABASE_NAME, DATABASE_VERSION);\n openRequest.onupgradeneeded = () => setUpDatabase(openRequest);\n\n openRequest.onsuccess = () => {\n const db = openRequest.result;\n\n if (modelArtifacts == null) {\n // Read model out from object store.\n const modelTx = db.transaction(MODEL_STORE_NAME, 'readonly');\n const modelStore = modelTx.objectStore(MODEL_STORE_NAME);\n const getRequest = modelStore.get(this.modelPath);\n getRequest.onsuccess = () => {\n if (getRequest.result == null) {\n db.close();\n return reject(new Error(\n `Cannot find model with path '${this.modelPath}' ` +\n `in IndexedDB.`));\n } else {\n resolve(getRequest.result.modelArtifacts);\n }\n };\n getRequest.onerror = error => {\n db.close();\n return reject(getRequest.error);\n };\n modelTx.oncomplete = () => db.close();\n } else {\n // Put model into object store.\n const modelArtifactsInfo: ModelArtifactsInfo =\n getModelArtifactsInfoForJSON(modelArtifacts);\n // First, put ModelArtifactsInfo into info store.\n const infoTx = db.transaction(INFO_STORE_NAME, 'readwrite');\n let infoStore = infoTx.objectStore(INFO_STORE_NAME);\n const putInfoRequest =\n infoStore.put({modelPath: this.modelPath, modelArtifactsInfo});\n let modelTx: IDBTransaction;\n putInfoRequest.onsuccess = () => {\n // Second, put model data into model store.\n modelTx = db.transaction(MODEL_STORE_NAME, 'readwrite');\n const modelStore = modelTx.objectStore(MODEL_STORE_NAME);\n const putModelRequest = modelStore.put({\n modelPath: this.modelPath,\n modelArtifacts,\n modelArtifactsInfo\n });\n putModelRequest.onsuccess = () => resolve({modelArtifactsInfo});\n putModelRequest.onerror = error => {\n // If the put-model request fails, roll back the info entry as\n // well.\n infoStore = infoTx.objectStore(INFO_STORE_NAME);\n const deleteInfoRequest = infoStore.delete(this.modelPath);\n deleteInfoRequest.onsuccess = () => {\n db.close();\n return reject(putModelRequest.error);\n };\n deleteInfoRequest.onerror = error => {\n db.close();\n return reject(putModelRequest.error);\n };\n };\n };\n putInfoRequest.onerror = error => {\n db.close();\n return reject(putInfoRequest.error);\n };\n infoTx.oncomplete = () => {\n if (modelTx == null) {\n db.close();\n } else {\n modelTx.oncomplete = () => db.close();\n }\n };\n }\n };\n openRequest.onerror = error => reject(openRequest.error);\n });\n }\n}\n\nexport const indexedDBRouter: IORouter = (url: string|string[]) => {\n if (!env().getBool('IS_BROWSER')) {\n return null;\n } else {\n if (!Array.isArray(url) && url.startsWith(BrowserIndexedDB.URL_SCHEME)) {\n return browserIndexedDB(url.slice(BrowserIndexedDB.URL_SCHEME.length));\n } else {\n return null;\n }\n }\n};\nIORouterRegistry.registerSaveRouter(indexedDBRouter);\nIORouterRegistry.registerLoadRouter(indexedDBRouter);\n\n/**\n * Creates a browser IndexedDB IOHandler for saving and loading models.\n *\n * ```js\n * const model = tf.sequential();\n * model.add(\n * tf.layers.dense({units: 1, inputShape: [100], activation: 'sigmoid'}));\n *\n * const saveResult = await model.save('indexeddb://MyModel'));\n * console.log(saveResult);\n * ```\n *\n * @param modelPath A unique identifier for the model to be saved. Must be a\n * non-empty string.\n * @returns An instance of `BrowserIndexedDB` (sublcass of `IOHandler`),\n * which can be used with, e.g., `tf.Model.save`.\n */\nexport function browserIndexedDB(modelPath: string): IOHandler {\n return new BrowserIndexedDB(modelPath);\n}\n\nfunction maybeStripScheme(key: string) {\n return key.startsWith(BrowserIndexedDB.URL_SCHEME) ?\n key.slice(BrowserIndexedDB.URL_SCHEME.length) :\n key;\n}\n\nexport class BrowserIndexedDBManager implements ModelStoreManager {\n private indexedDB: IDBFactory;\n\n constructor() {\n this.indexedDB = getIndexedDBFactory();\n }\n\n async listModels(): Promise<{[path: string]: ModelArtifactsInfo}> {\n return new Promise<{[path: string]: ModelArtifactsInfo}>(\n (resolve, reject) => {\n const openRequest =\n this.indexedDB.open(DATABASE_NAME, DATABASE_VERSION);\n openRequest.onupgradeneeded = () => setUpDatabase(openRequest);\n\n openRequest.onsuccess = () => {\n const db = openRequest.result;\n const tx = db.transaction(INFO_STORE_NAME, 'readonly');\n const store = tx.objectStore(INFO_STORE_NAME);\n // tslint:disable:max-line-length\n // Need to cast `store` as `any` here because TypeScript's DOM\n // library does not have the `getAll()` method even though the\n // method is supported in the latest version of most mainstream\n // browsers:\n // https://developer.mozilla.org/en-US/docs/Web/API/IDBObjectStore/getAll\n // tslint:enable:max-line-length\n // tslint:disable-next-line:no-any\n const getAllInfoRequest = (store as any).getAll() as IDBRequest;\n getAllInfoRequest.onsuccess = () => {\n const out: {[path: string]: ModelArtifactsInfo} = {};\n for (const item of getAllInfoRequest.result) {\n out[item.modelPath] = item.modelArtifactsInfo;\n }\n resolve(out);\n };\n getAllInfoRequest.onerror = error => {\n db.close();\n return reject(getAllInfoRequest.error);\n };\n tx.oncomplete = () => db.close();\n };\n openRequest.onerror = error => reject(openRequest.error);\n });\n }\n\n async removeModel(path: string): Promise {\n path = maybeStripScheme(path);\n return new Promise((resolve, reject) => {\n const openRequest = this.indexedDB.open(DATABASE_NAME, DATABASE_VERSION);\n openRequest.onupgradeneeded = () => setUpDatabase(openRequest);\n\n openRequest.onsuccess = () => {\n const db = openRequest.result;\n const infoTx = db.transaction(INFO_STORE_NAME, 'readwrite');\n const infoStore = infoTx.objectStore(INFO_STORE_NAME);\n\n const getInfoRequest = infoStore.get(path);\n let modelTx: IDBTransaction;\n getInfoRequest.onsuccess = () => {\n if (getInfoRequest.result == null) {\n db.close();\n return reject(new Error(\n `Cannot find model with path '${path}' ` +\n `in IndexedDB.`));\n } else {\n // First, delete the entry in the info store.\n const deleteInfoRequest = infoStore.delete(path);\n const deleteModelData = () => {\n // Second, delete the entry in the model store.\n modelTx = db.transaction(MODEL_STORE_NAME, 'readwrite');\n const modelStore = modelTx.objectStore(MODEL_STORE_NAME);\n const deleteModelRequest = modelStore.delete(path);\n deleteModelRequest.onsuccess = () =>\n resolve(getInfoRequest.result.modelArtifactsInfo);\n deleteModelRequest.onerror = error =>\n reject(getInfoRequest.error);\n };\n // Proceed with deleting model data regardless of whether deletion\n // of info data succeeds or not.\n deleteInfoRequest.onsuccess = deleteModelData;\n deleteInfoRequest.onerror = error => {\n deleteModelData();\n db.close();\n return reject(getInfoRequest.error);\n };\n }\n };\n getInfoRequest.onerror = error => {\n db.close();\n return reject(getInfoRequest.error);\n };\n\n infoTx.oncomplete = () => {\n if (modelTx == null) {\n db.close();\n } else {\n modelTx.oncomplete = () => db.close();\n }\n };\n };\n openRequest.onerror = error => reject(openRequest.error);\n });\n }\n}\n", "/**\n * @license\n * Copyright 2018 Google LLC. 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 *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\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 * =============================================================================\n */\n\nimport '../flags';\nimport {env} from '../environment';\n\nimport {assert} from '../util';\nimport {arrayBufferToBase64String, base64StringToArrayBuffer, getModelArtifactsInfoForJSON} from './io_utils';\nimport {IORouter, IORouterRegistry} from './router_registry';\nimport {IOHandler, ModelArtifacts, ModelArtifactsInfo, ModelStoreManager, SaveResult} from './types';\n\nconst PATH_SEPARATOR = '/';\nconst PATH_PREFIX = 'tensorflowjs_models';\nconst INFO_SUFFIX = 'info';\nconst MODEL_TOPOLOGY_SUFFIX = 'model_topology';\nconst WEIGHT_SPECS_SUFFIX = 'weight_specs';\nconst WEIGHT_DATA_SUFFIX = 'weight_data';\nconst MODEL_METADATA_SUFFIX = 'model_metadata';\n\n/**\n * Purge all tensorflow.js-saved model artifacts from local storage.\n *\n * @returns Paths of the models purged.\n */\nexport function purgeLocalStorageArtifacts(): string[] {\n if (!env().getBool('IS_BROWSER') || typeof window === 'undefined' ||\n typeof window.localStorage === 'undefined') {\n throw new Error(\n 'purgeLocalStorageModels() cannot proceed because local storage is ' +\n 'unavailable in the current environment.');\n }\n const LS = window.localStorage;\n const purgedModelPaths: string[] = [];\n for (let i = 0; i < LS.length; ++i) {\n const key = LS.key(i);\n const prefix = PATH_PREFIX + PATH_SEPARATOR;\n if (key.startsWith(prefix) && key.length > prefix.length) {\n LS.removeItem(key);\n const modelName = getModelPathFromKey(key);\n if (purgedModelPaths.indexOf(modelName) === -1) {\n purgedModelPaths.push(modelName);\n }\n }\n }\n return purgedModelPaths;\n}\n\nfunction getModelKeys(path: string): {\n info: string,\n topology: string,\n weightSpecs: string,\n weightData: string,\n modelMetadata: string\n} {\n return {\n info: [PATH_PREFIX, path, INFO_SUFFIX].join(PATH_SEPARATOR),\n topology: [PATH_PREFIX, path, MODEL_TOPOLOGY_SUFFIX].join(PATH_SEPARATOR),\n weightSpecs: [PATH_PREFIX, path, WEIGHT_SPECS_SUFFIX].join(PATH_SEPARATOR),\n weightData: [PATH_PREFIX, path, WEIGHT_DATA_SUFFIX].join(PATH_SEPARATOR),\n modelMetadata:\n [PATH_PREFIX, path, MODEL_METADATA_SUFFIX].join(PATH_SEPARATOR)\n };\n}\n\n/**\n * Get model path from a local-storage key.\n *\n * E.g., 'tensorflowjs_models/my/model/1/info' --> 'my/model/1'\n *\n * @param key\n */\nfunction getModelPathFromKey(key: string) {\n const items = key.split(PATH_SEPARATOR);\n if (items.length < 3) {\n throw new Error(`Invalid key format: ${key}`);\n }\n return items.slice(1, items.length - 1).join(PATH_SEPARATOR);\n}\n\nfunction maybeStripScheme(key: string) {\n return key.startsWith(BrowserLocalStorage.URL_SCHEME) ?\n key.slice(BrowserLocalStorage.URL_SCHEME.length) :\n key;\n}\n\ndeclare type LocalStorageKeys = {\n info: string,\n topology: string,\n weightSpecs: string,\n weightData: string,\n modelMetadata: string\n};\n\n/**\n * IOHandler subclass: Browser Local Storage.\n *\n * See the doc string to `browserLocalStorage` for more details.\n */\nexport class BrowserLocalStorage implements IOHandler {\n protected readonly LS: Storage;\n protected readonly modelPath: string;\n protected readonly keys: LocalStorageKeys;\n\n static readonly URL_SCHEME = 'localstorage://';\n\n constructor(modelPath: string) {\n if (!env().getBool('IS_BROWSER') || typeof window === 'undefined' ||\n typeof window.localStorage === 'undefined') {\n // TODO(cais): Add more info about what IOHandler subtypes are\n // available.\n // Maybe point to a doc page on the web and/or automatically determine\n // the available IOHandlers and print them in the error message.\n throw new Error(\n 'The current environment does not support local storage.');\n }\n this.LS = window.localStorage;\n\n if (modelPath == null || !modelPath) {\n throw new Error(\n 'For local storage, modelPath must not be null, undefined or empty.');\n }\n this.modelPath = modelPath;\n this.keys = getModelKeys(this.modelPath);\n }\n\n /**\n * Save model artifacts to browser local storage.\n *\n * See the documentation to `browserLocalStorage` for details on the saved\n * artifacts.\n *\n * @param modelArtifacts The model artifacts to be stored.\n * @returns An instance of SaveResult.\n */\n async save(modelArtifacts: ModelArtifacts): Promise {\n if (modelArtifacts.modelTopology instanceof ArrayBuffer) {\n throw new Error(\n 'BrowserLocalStorage.save() does not support saving model topology ' +\n 'in binary formats yet.');\n } else {\n const topology = JSON.stringify(modelArtifacts.modelTopology);\n const weightSpecs = JSON.stringify(modelArtifacts.weightSpecs);\n\n const modelArtifactsInfo: ModelArtifactsInfo =\n getModelArtifactsInfoForJSON(modelArtifacts);\n\n try {\n this.LS.setItem(this.keys.info, JSON.stringify(modelArtifactsInfo));\n this.LS.setItem(this.keys.topology, topology);\n this.LS.setItem(this.keys.weightSpecs, weightSpecs);\n this.LS.setItem(\n this.keys.weightData,\n arrayBufferToBase64String(modelArtifacts.weightData));\n this.LS.setItem(this.keys.modelMetadata, JSON.stringify({\n format: modelArtifacts.format,\n generatedBy: modelArtifacts.generatedBy,\n convertedBy: modelArtifacts.convertedBy,\n userDefinedMetadata: modelArtifacts.userDefinedMetadata\n }));\n\n return {modelArtifactsInfo};\n } catch (err) {\n // If saving failed, clean up all items saved so far.\n this.LS.removeItem(this.keys.info);\n this.LS.removeItem(this.keys.topology);\n this.LS.removeItem(this.keys.weightSpecs);\n this.LS.removeItem(this.keys.weightData);\n this.LS.removeItem(this.keys.modelMetadata);\n\n throw new Error(\n `Failed to save model '${this.modelPath}' to local storage: ` +\n `size quota being exceeded is a possible cause of this failure: ` +\n `modelTopologyBytes=${modelArtifactsInfo.modelTopologyBytes}, ` +\n `weightSpecsBytes=${modelArtifactsInfo.weightSpecsBytes}, ` +\n `weightDataBytes=${modelArtifactsInfo.weightDataBytes}.`);\n }\n }\n }\n\n /**\n * Load a model from local storage.\n *\n * See the documentation to `browserLocalStorage` for details on the saved\n * artifacts.\n *\n * @returns The loaded model (if loading succeeds).\n */\n async load(): Promise {\n const info =\n JSON.parse(this.LS.getItem(this.keys.info)) as ModelArtifactsInfo;\n if (info == null) {\n throw new Error(\n `In local storage, there is no model with name '${this.modelPath}'`);\n }\n\n if (info.modelTopologyType !== 'JSON') {\n throw new Error(\n 'BrowserLocalStorage does not support loading non-JSON model ' +\n 'topology yet.');\n }\n\n const out: ModelArtifacts = {};\n\n // Load topology.\n const topology = JSON.parse(this.LS.getItem(this.keys.topology));\n if (topology == null) {\n throw new Error(\n `In local storage, the topology of model '${this.modelPath}' ` +\n `is missing.`);\n }\n out.modelTopology = topology;\n\n // Load weight specs.\n const weightSpecs = JSON.parse(this.LS.getItem(this.keys.weightSpecs));\n if (weightSpecs == null) {\n throw new Error(\n `In local storage, the weight specs of model '${this.modelPath}' ` +\n `are missing.`);\n }\n out.weightSpecs = weightSpecs;\n\n // Load meta-data fields.\n const metadataString = this.LS.getItem(this.keys.modelMetadata);\n if (metadataString != null) {\n const metadata = JSON.parse(metadataString) as ModelArtifacts;\n out.format = metadata['format'];\n out.generatedBy = metadata['generatedBy'];\n out.convertedBy = metadata['convertedBy'];\n out.userDefinedMetadata = metadata['userDefinedMetadata'];\n }\n\n // Load weight data.\n const weightDataBase64 = this.LS.getItem(this.keys.weightData);\n if (weightDataBase64 == null) {\n throw new Error(\n `In local storage, the binary weight values of model ` +\n `'${this.modelPath}' are missing.`);\n }\n out.weightData = base64StringToArrayBuffer(weightDataBase64);\n\n return out;\n }\n}\n\nexport const localStorageRouter: IORouter = (url: string|string[]) => {\n if (!env().getBool('IS_BROWSER')) {\n return null;\n } else {\n if (!Array.isArray(url) && url.startsWith(BrowserLocalStorage.URL_SCHEME)) {\n return browserLocalStorage(\n url.slice(BrowserLocalStorage.URL_SCHEME.length));\n } else {\n return null;\n }\n }\n};\nIORouterRegistry.registerSaveRouter(localStorageRouter);\nIORouterRegistry.registerLoadRouter(localStorageRouter);\n\n/**\n * Factory function for local storage IOHandler.\n *\n * This `IOHandler` supports both `save` and `load`.\n *\n * For each model's saved artifacts, four items are saved to local storage.\n * - `${PATH_SEPARATOR}/${modelPath}/info`: Contains meta-info about the\n * model, such as date saved, type of the topology, size in bytes, etc.\n * - `${PATH_SEPARATOR}/${modelPath}/topology`: Model topology. For Keras-\n * style models, this is a stringized JSON.\n * - `${PATH_SEPARATOR}/${modelPath}/weight_specs`: Weight specs of the\n * model, can be used to decode the saved binary weight values (see\n * item below).\n * - `${PATH_SEPARATOR}/${modelPath}/weight_data`: Concatenated binary\n * weight values, stored as a base64-encoded string.\n *\n * Saving may throw an `Error` if the total size of the artifacts exceed the\n * browser-specific quota.\n *\n * @param modelPath A unique identifier for the model to be saved. Must be a\n * non-empty string.\n * @returns An instance of `IOHandler`, which can be used with, e.g.,\n * `tf.Model.save`.\n */\nexport function browserLocalStorage(modelPath: string): IOHandler {\n return new BrowserLocalStorage(modelPath);\n}\n\nexport class BrowserLocalStorageManager implements ModelStoreManager {\n private readonly LS: Storage;\n\n constructor() {\n assert(\n env().getBool('IS_BROWSER'),\n () => 'Current environment is not a web browser');\n assert(\n typeof window === 'undefined' ||\n typeof window.localStorage !== 'undefined',\n () => 'Current browser does not appear to support localStorage');\n this.LS = window.localStorage;\n }\n\n async listModels(): Promise<{[path: string]: ModelArtifactsInfo}> {\n const out: {[path: string]: ModelArtifactsInfo} = {};\n const prefix = PATH_PREFIX + PATH_SEPARATOR;\n const suffix = PATH_SEPARATOR + INFO_SUFFIX;\n for (let i = 0; i < this.LS.length; ++i) {\n const key = this.LS.key(i);\n if (key.startsWith(prefix) && key.endsWith(suffix)) {\n const modelPath = getModelPathFromKey(key);\n out[modelPath] = JSON.parse(this.LS.getItem(key)) as ModelArtifactsInfo;\n }\n }\n return out;\n }\n\n async removeModel(path: string): Promise {\n path = maybeStripScheme(path);\n const keys = getModelKeys(path);\n if (this.LS.getItem(keys.info) == null) {\n throw new Error(`Cannot find model at path '${path}'`);\n }\n const info = JSON.parse(this.LS.getItem(keys.info)) as ModelArtifactsInfo;\n\n this.LS.removeItem(keys.info);\n this.LS.removeItem(keys.topology);\n this.LS.removeItem(keys.weightSpecs);\n this.LS.removeItem(keys.weightData);\n return info;\n }\n}\n", "/**\n * @license\n * Copyright 2018 Google LLC. 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 *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\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 * =============================================================================\n */\n\n/**\n * Classes and functions for model management across multiple storage mediums.\n *\n * Supported client actions:\n * - Listing models on all registered storage mediums.\n * - Remove model by URL from any registered storage mediums, by using URL\n * string.\n * - Moving or copying model from one path to another in the same medium or from\n * one medium to another, by using URL strings.\n */\n\nimport {assert} from '../util';\n\nimport {IORouterRegistry} from './router_registry';\nimport {ModelArtifactsInfo, ModelStoreManager} from './types';\n\nconst URL_SCHEME_SUFFIX = '://';\n\nexport class ModelStoreManagerRegistry {\n // Singleton instance.\n private static instance: ModelStoreManagerRegistry;\n\n private managers: {[scheme: string]: ModelStoreManager};\n\n private constructor() {\n this.managers = {};\n }\n\n private static getInstance(): ModelStoreManagerRegistry {\n if (ModelStoreManagerRegistry.instance == null) {\n ModelStoreManagerRegistry.instance = new ModelStoreManagerRegistry();\n }\n return ModelStoreManagerRegistry.instance;\n }\n\n /**\n * Register a save-handler router.\n *\n * @param saveRouter A function that maps a URL-like string onto an instance\n * of `IOHandler` with the `save` method defined or `null`.\n */\n static registerManager(scheme: string, manager: ModelStoreManager) {\n assert(scheme != null, () => 'scheme must not be undefined or null.');\n if (scheme.endsWith(URL_SCHEME_SUFFIX)) {\n scheme = scheme.slice(0, scheme.indexOf(URL_SCHEME_SUFFIX));\n }\n assert(scheme.length > 0, () => 'scheme must not be an empty string.');\n const registry = ModelStoreManagerRegistry.getInstance();\n assert(\n registry.managers[scheme] == null,\n () => `A model store manager is already registered for scheme '${\n scheme}'.`);\n registry.managers[scheme] = manager;\n }\n\n static getManager(scheme: string): ModelStoreManager {\n const manager = this.getInstance().managers[scheme];\n if (manager == null) {\n throw new Error(`Cannot find model manager for scheme '${scheme}'`);\n }\n return manager;\n }\n\n static getSchemes(): string[] {\n return Object.keys(this.getInstance().managers);\n }\n}\n\n/**\n * Helper method for parsing a URL string into a scheme and a path.\n *\n * @param url E.g., 'localstorage://my-model'\n * @returns A dictionary with two fields: scheme and path.\n * Scheme: e.g., 'localstorage' in the example above.\n * Path: e.g., 'my-model' in the example above.\n */\nfunction parseURL(url: string): {scheme: string, path: string} {\n if (url.indexOf(URL_SCHEME_SUFFIX) === -1) {\n throw new Error(\n `The url string provided does not contain a scheme. ` +\n `Supported schemes are: ` +\n `${ModelStoreManagerRegistry.getSchemes().join(',')}`);\n }\n return {\n scheme: url.split(URL_SCHEME_SUFFIX)[0],\n path: url.split(URL_SCHEME_SUFFIX)[1],\n };\n}\n\nasync function cloneModelInternal(\n sourceURL: string, destURL: string,\n deleteSource = false): Promise {\n assert(\n sourceURL !== destURL,\n () => `Old path and new path are the same: '${sourceURL}'`);\n\n const loadHandlers = IORouterRegistry.getLoadHandlers(sourceURL);\n assert(\n loadHandlers.length > 0,\n () => `Copying failed because no load handler is found for source URL ${\n sourceURL}.`);\n assert(\n loadHandlers.length < 2,\n () => `Copying failed because more than one (${loadHandlers.length}) ` +\n `load handlers for source URL ${sourceURL}.`);\n const loadHandler = loadHandlers[0];\n\n const saveHandlers = IORouterRegistry.getSaveHandlers(destURL);\n assert(\n saveHandlers.length > 0,\n () => `Copying failed because no save handler is found for destination ` +\n `URL ${destURL}.`);\n assert(\n saveHandlers.length < 2,\n () => `Copying failed because more than one (${loadHandlers.length}) ` +\n `save handlers for destination URL ${destURL}.`);\n const saveHandler = saveHandlers[0];\n\n const sourceScheme = parseURL(sourceURL).scheme;\n const sourcePath = parseURL(sourceURL).path;\n const sameMedium = sourceScheme === parseURL(sourceURL).scheme;\n\n const modelArtifacts = await loadHandler.load();\n\n // If moving within the same storage medium, remove the old model as soon as\n // the loading is done. Without doing this, it is possible that the combined\n // size of the two models will cause the cloning to fail.\n if (deleteSource && sameMedium) {\n await ModelStoreManagerRegistry.getManager(sourceScheme)\n .removeModel(sourcePath);\n }\n\n const saveResult = await saveHandler.save(modelArtifacts);\n\n // If moving between mediums, the deletion is done after the save succeeds.\n // This guards against the case in which saving to the destination medium\n // fails.\n if (deleteSource && !sameMedium) {\n await ModelStoreManagerRegistry.getManager(sourceScheme)\n .removeModel(sourcePath);\n }\n\n return saveResult.modelArtifactsInfo;\n}\n\n/**\n * List all models stored in registered storage mediums.\n *\n * For a web browser environment, the registered mediums are Local Storage and\n * IndexedDB.\n *\n * ```js\n * // First create and save a model.\n * const model = tf.sequential();\n * model.add(tf.layers.dense(\n * {units: 1, inputShape: [10], activation: 'sigmoid'}));\n * await model.save('localstorage://demo/management/model1');\n *\n * // Then list existing models.\n * console.log(JSON.stringify(await tf.io.listModels()));\n *\n * // Delete the model.\n * await tf.io.removeModel('localstorage://demo/management/model1');\n *\n * // List models again.\n * console.log(JSON.stringify(await tf.io.listModels()));\n * ```\n *\n * @returns A `Promise` of a dictionary mapping URLs of existing models to\n * their model artifacts info. URLs include medium-specific schemes, e.g.,\n * 'indexeddb://my/model/1'. Model artifacts info include type of the\n * model's topology, byte sizes of the topology, weights, etc.\n *\n * @doc {\n * heading: 'Models',\n * subheading: 'Management',\n * namespace: 'io',\n * ignoreCI: true\n * }\n */\nasync function listModels(): Promise<{[url: string]: ModelArtifactsInfo}> {\n const schemes = ModelStoreManagerRegistry.getSchemes();\n const out: {[url: string]: ModelArtifactsInfo} = {};\n for (const scheme of schemes) {\n const schemeOut =\n await ModelStoreManagerRegistry.getManager(scheme).listModels();\n for (const path in schemeOut) {\n const url = scheme + URL_SCHEME_SUFFIX + path;\n out[url] = schemeOut[path];\n }\n }\n return out;\n}\n\n/**\n * Remove a model specified by URL from a reigstered storage medium.\n *\n * ```js\n * // First create and save a model.\n * const model = tf.sequential();\n * model.add(tf.layers.dense(\n * {units: 1, inputShape: [10], activation: 'sigmoid'}));\n * await model.save('localstorage://demo/management/model1');\n *\n * // Then list existing models.\n * console.log(JSON.stringify(await tf.io.listModels()));\n *\n * // Delete the model.\n * await tf.io.removeModel('localstorage://demo/management/model1');\n *\n * // List models again.\n * console.log(JSON.stringify(await tf.io.listModels()));\n * ```\n *\n * @param url A URL to a stored model, with a scheme prefix, e.g.,\n * 'localstorage://my-model-1', 'indexeddb://my/model/2'.\n * @returns ModelArtifactsInfo of the deleted model (if and only if deletion\n * is successful).\n * @throws Error if deletion fails, e.g., if no model exists at `path`.\n *\n * @doc {\n * heading: 'Models',\n * subheading: 'Management',\n * namespace: 'io',\n * ignoreCI: true\n * }\n */\nasync function removeModel(url: string): Promise {\n const schemeAndPath = parseURL(url);\n const manager = ModelStoreManagerRegistry.getManager(schemeAndPath.scheme);\n return manager.removeModel(schemeAndPath.path);\n}\n\n/**\n * Copy a model from one URL to another.\n *\n * This function supports:\n *\n * 1. Copying within a storage medium, e.g.,\n * `tf.io.copyModel('localstorage://model-1', 'localstorage://model-2')`\n * 2. Copying between two storage mediums, e.g.,\n * `tf.io.copyModel('localstorage://model-1', 'indexeddb://model-1')`\n *\n * ```js\n * // First create and save a model.\n * const model = tf.sequential();\n * model.add(tf.layers.dense(\n * {units: 1, inputShape: [10], activation: 'sigmoid'}));\n * await model.save('localstorage://demo/management/model1');\n *\n * // Then list existing models.\n * console.log(JSON.stringify(await tf.io.listModels()));\n *\n * // Copy the model, from Local Storage to IndexedDB.\n * await tf.io.copyModel(\n * 'localstorage://demo/management/model1',\n * 'indexeddb://demo/management/model1');\n *\n * // List models again.\n * console.log(JSON.stringify(await tf.io.listModels()));\n *\n * // Remove both models.\n * await tf.io.removeModel('localstorage://demo/management/model1');\n * await tf.io.removeModel('indexeddb://demo/management/model1');\n * ```\n *\n * @param sourceURL Source URL of copying.\n * @param destURL Destination URL of copying.\n * @returns ModelArtifactsInfo of the copied model (if and only if copying\n * is successful).\n * @throws Error if copying fails, e.g., if no model exists at `sourceURL`, or\n * if `oldPath` and `newPath` are identical.\n *\n * @doc {\n * heading: 'Models',\n * subheading: 'Management',\n * namespace: 'io',\n * ignoreCI: true\n * }\n */\nasync function copyModel(\n sourceURL: string, destURL: string): Promise {\n const deleteSource = false;\n return cloneModelInternal(sourceURL, destURL, deleteSource);\n}\n\n/**\n * Move a model from one URL to another.\n *\n * This function supports:\n *\n * 1. Moving within a storage medium, e.g.,\n * `tf.io.moveModel('localstorage://model-1', 'localstorage://model-2')`\n * 2. Moving between two storage mediums, e.g.,\n * `tf.io.moveModel('localstorage://model-1', 'indexeddb://model-1')`\n *\n * ```js\n * // First create and save a model.\n * const model = tf.sequential();\n * model.add(tf.layers.dense(\n * {units: 1, inputShape: [10], activation: 'sigmoid'}));\n * await model.save('localstorage://demo/management/model1');\n *\n * // Then list existing models.\n * console.log(JSON.stringify(await tf.io.listModels()));\n *\n * // Move the model, from Local Storage to IndexedDB.\n * await tf.io.moveModel(\n * 'localstorage://demo/management/model1',\n * 'indexeddb://demo/management/model1');\n *\n * // List models again.\n * console.log(JSON.stringify(await tf.io.listModels()));\n *\n * // Remove the moved model.\n * await tf.io.removeModel('indexeddb://demo/management/model1');\n * ```\n *\n * @param sourceURL Source URL of moving.\n * @param destURL Destination URL of moving.\n * @returns ModelArtifactsInfo of the copied model (if and only if copying\n * is successful).\n * @throws Error if moving fails, e.g., if no model exists at `sourceURL`, or\n * if `oldPath` and `newPath` are identical.\n *\n * @doc {\n * heading: 'Models',\n * subheading: 'Management',\n * namespace: 'io',\n * ignoreCI: true\n * }\n */\nasync function moveModel(\n sourceURL: string, destURL: string): Promise {\n const deleteSource = true;\n return cloneModelInternal(sourceURL, destURL, deleteSource);\n}\n\nexport {moveModel, copyModel, removeModel, listModels};\n", "/**\n * @license\n * Copyright 2019 Google LLC. 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 *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\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 * =============================================================================\n */\n\nimport '../flags';\n\nimport {env} from '../environment';\nimport {BrowserIndexedDB, BrowserIndexedDBManager} from '../io/indexed_db';\nimport {BrowserLocalStorage, BrowserLocalStorageManager} from '../io/local_storage';\nimport {ModelStoreManagerRegistry} from '../io/model_management';\n\nimport {Platform} from './platform';\n\nexport class PlatformBrowser implements Platform {\n // According to the spec, the built-in encoder can do only UTF-8 encoding.\n // https://developer.mozilla.org/en-US/docs/Web/API/TextEncoder/TextEncoder\n private textEncoder: TextEncoder;\n\n fetch(path: string, init?: RequestInit): Promise {\n return fetch(path, init);\n }\n\n now(): number {\n return performance.now();\n }\n\n encode(text: string, encoding: string): Uint8Array {\n if (encoding !== 'utf-8' && encoding !== 'utf8') {\n throw new Error(\n `Browser's encoder only supports utf-8, but got ${encoding}`);\n }\n if (this.textEncoder == null) {\n this.textEncoder = new TextEncoder();\n }\n return this.textEncoder.encode(text);\n }\n decode(bytes: Uint8Array, encoding: string): string {\n return new TextDecoder(encoding).decode(bytes);\n }\n}\n\nif (env().get('IS_BROWSER')) {\n env().setPlatform('browser', new PlatformBrowser());\n\n // Register LocalStorage IOHandler\n try {\n ModelStoreManagerRegistry.registerManager(\n BrowserLocalStorage.URL_SCHEME, new BrowserLocalStorageManager());\n } catch (err) {\n }\n\n // Register IndexedDB IOHandler\n try {\n ModelStoreManagerRegistry.registerManager(\n BrowserIndexedDB.URL_SCHEME, new BrowserIndexedDBManager());\n } catch (err) {\n }\n}\n", "/**\n * @license\n * Copyright 2019 Google LLC. 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 *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\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 * =============================================================================\n */\nimport {env} from '../environment';\n\nimport {Platform} from './platform';\n\n// We are wrapping this within an object so it can be stubbed by Jasmine.\nexport const getNodeFetch = {\n // tslint:disable-next-line:no-require-imports\n importFetch: () => require('node-fetch')\n};\n\ntype FetchFn = (url: string, init?: RequestInit) => Promise;\nlet systemFetch: FetchFn;\n// These getters and setters are for testing so we don't export a mutable\n// variable.\nexport function resetSystemFetch() {\n systemFetch = null;\n}\nexport function setSystemFetch(fetchFn: FetchFn) {\n systemFetch = fetchFn;\n}\nexport function getSystemFetch(): FetchFn {\n return systemFetch;\n}\n\nexport class PlatformNode implements Platform {\n private textEncoder: TextEncoder;\n // tslint:disable-next-line:no-any\n util: any;\n\n constructor() {\n // tslint:disable-next-line:no-require-imports\n this.util = require('util');\n // According to the spec, the built-in encoder can do only UTF-8 encoding.\n // https://developer.mozilla.org/en-US/docs/Web/API/TextEncoder/TextEncoder\n this.textEncoder = new this.util.TextEncoder();\n }\n\n fetch(path: string, requestInits?: RequestInit): Promise {\n if (env().global.fetch != null) {\n return env().global.fetch(path, requestInits);\n }\n\n if (systemFetch == null) {\n systemFetch = getNodeFetch.importFetch();\n }\n return systemFetch(path, requestInits);\n }\n\n now(): number {\n const time = process.hrtime();\n return time[0] * 1000 + time[1] / 1000000;\n }\n\n encode(text: string, encoding: string): Uint8Array {\n if (encoding !== 'utf-8' && encoding !== 'utf8') {\n throw new Error(\n `Node built-in encoder only supports utf-8, but got ${encoding}`);\n }\n return this.textEncoder.encode(text);\n }\n decode(bytes: Uint8Array, encoding: string): string {\n if (bytes.length === 0) {\n return '';\n }\n return new this.util.TextDecoder(encoding).decode(bytes);\n }\n}\n\nif (env().get('IS_NODE')) {\n env().setPlatform('node', new PlatformNode());\n}\n", "/**\n * @license\n * Copyright 2020 Google Inc. 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 *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\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 * =============================================================================\n */\n\nimport {TensorBuffer} from '../tensor';\nimport {DataType, DataTypeMap, Rank, ShapeMap} from '../types';\nimport * as util from '../util';\n\n/**\n * Creates an empty `tf.TensorBuffer` with the specified `shape` and `dtype`.\n *\n * The values are stored in CPU as `TypedArray`. Fill the buffer using\n * `buffer.set()`, or by modifying directly `buffer.values`.\n *\n * When done, call `buffer.toTensor()` to get an immutable `tf.Tensor` with\n * those values.\n *\n * ```js\n * // Create a buffer and set values at particular indices.\n * const buffer = tf.buffer([2, 2]);\n * buffer.set(3, 0, 0);\n * buffer.set(5, 1, 0);\n *\n * // Convert the buffer back to a tensor.\n * buffer.toTensor().print();\n * ```\n *\n * @param shape An array of integers defining the output tensor shape.\n * @param dtype The dtype of the buffer. Defaults to 'float32'.\n * @param values The values of the buffer as `TypedArray`. Defaults to\n * zeros.\n *\n * @doc {heading: 'Tensors', subheading: 'Creation'}\n */\nexport function buffer(\n shape: ShapeMap[R], dtype: D = 'float32' as D,\n values?: DataTypeMap[D]): TensorBuffer {\n dtype = dtype || 'float32' as D;\n util.assertNonNegativeIntegerDimensions(shape);\n return new TensorBuffer(shape, dtype, values);\n}\n", "/**\n * @license\n * Copyright 2020 Google Inc. 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 *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\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 * =============================================================================\n */\nimport {ENGINE} from '../engine';\nimport {Cast, CastAttrs, CastInputs} from '../kernel_names';\nimport {NamedAttrMap} from '../kernel_registry';\nimport {Tensor} from '../tensor';\nimport {NamedTensorMap} from '../tensor_types';\nimport {convertToTensor} from '../tensor_util_env';\nimport {DataType, TensorLike} from '../types';\nimport * as util from '../util';\n\nimport {op} from './operation';\n\n/**\n * Casts a `tf.Tensor` to a new dtype.\n *\n * ```js\n * const x = tf.tensor1d([1.5, 2.5, 3]);\n * tf.cast(x, 'int32').print();\n * ```\n * @param x The input tensor to be casted.\n * @param dtype The dtype to cast the input tensor to.\n *\n * @doc {heading: 'Tensors', subheading: 'Transformations'}\n */\nfunction cast_(x: T|TensorLike, dtype: DataType): T {\n const $x = convertToTensor(x, 'x', 'cast');\n\n // Sanity checks.\n if (!util.isValidDtype(dtype)) {\n throw new Error(`Failed to cast to unknown dtype ${dtype}`);\n }\n if (dtype === 'string' && $x.dtype !== 'string' ||\n dtype !== 'string' && $x.dtype === 'string') {\n throw new Error('Only strings can be casted to strings');\n }\n\n const inputs: CastInputs = {x: $x};\n const attrs: CastAttrs = {dtype};\n\n return ENGINE.runKernelFunc(\n backend => backend.cast($x, dtype), inputs as {} as NamedTensorMap,\n null /* grad */, Cast, attrs as {} as NamedAttrMap);\n}\n\nexport const cast = op({cast_});\n", "/**\n * @license\n * Copyright 2020 Google LLC. 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 *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\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 * =============================================================================\n */\n\nimport {ENGINE} from '../engine';\nimport {Identity, IdentityInputs} from '../kernel_names';\nimport {Tensor} from '../tensor';\nimport {NamedTensorMap} from '../tensor_types';\nimport {convertToTensor} from '../tensor_util_env';\nimport {TensorLike} from '../types';\n\nimport {op} from './operation';\n\n/**\n * Creates a new tensor with the same values and shape as the specified\n * tensor.\n *\n * ```js\n * const x = tf.tensor([1, 2]);\n *\n * x.clone().print();\n * ```\n *\n * @param x The tensor to clone.\n *\n * @doc {heading: 'Tensors', subheading: 'Creation'}\n */\nfunction clone_(x: T|TensorLike): T {\n const $x = convertToTensor(x, 'x', 'clone', null);\n const forward = () =>\n ENGINE.makeTensorFromDataId($x.dataId, $x.shape, $x.dtype) as T;\n\n const inputs: IdentityInputs = {x: $x};\n\n // Note this op is called tf.identity in python. Hence the kernel name used\n // here.\n return ENGINE.runKernelFunc(\n forward, inputs as {} as NamedTensorMap, null /* grad */, Identity);\n}\n\nexport const clone = op({clone_});\n", "/**\n * @license\n * Copyright 2020 Google Inc. 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 *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\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 * =============================================================================\n */\n\nimport {Tensor} from '../tensor';\n\n/**\n * Prints information about the `tf.Tensor` including its data.\n *\n * ```js\n * const verbose = true;\n * tf.tensor2d([1, 2, 3, 4], [2, 2]).print(verbose);\n * ```\n * @param x The tensor to be printed.\n * @param verbose Whether to print verbose information about the ` Tensor`,\n * including dtype and size.\n *\n * @doc {heading: 'Tensors', subheading: 'Creation'}\n */\nexport function print(x: T, verbose = false): void {\n console.log(x.toString(verbose));\n}\n", "/**\n * @license\n * Copyright 2020 Google Inc. 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 *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\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 * =============================================================================\n */\n\n// Required side effectful code for tfjs-core\n\n// Set up Engine and ENV\nimport {getOrMakeEngine} from './engine';\ngetOrMakeEngine();\n\n// Register backend-agnostic flags.\nimport './flags';\n// Register platforms\nimport './platforms/platform_browser';\nimport './platforms/platform_node';\n\n// Set up OpHandler\nimport {buffer} from './ops/buffer';\nimport {cast} from './ops/cast';\nimport {clone} from './ops/clone';\nimport {print} from './ops/print';\nimport {OpHandler, setOpHandler} from './tensor';\nconst opHandler: OpHandler = {\n buffer,\n cast,\n clone,\n print\n};\nsetOpHandler(opHandler);\n", "/**\n * @license\n * Copyright 2018 Google LLC. 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 *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\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 * =============================================================================\n */\n\n/**\n * IOHandlers related to files, such as browser-triggered file downloads,\n * user-selected files in browser.\n */\n\nimport '../flags';\nimport {env} from '../environment';\n\nimport {basename, concatenateArrayBuffers, getModelArtifactsInfoForJSON} from './io_utils';\nimport {IORouter, IORouterRegistry} from './router_registry';\nimport {IOHandler, ModelArtifacts, ModelJSON, SaveResult, WeightsManifestConfig, WeightsManifestEntry} from './types';\n\nconst DEFAULT_FILE_NAME_PREFIX = 'model';\nconst DEFAULT_JSON_EXTENSION_NAME = '.json';\nconst DEFAULT_WEIGHT_DATA_EXTENSION_NAME = '.weights.bin';\n\nfunction defer(f: () => T): Promise {\n return new Promise(resolve => setTimeout(resolve)).then(f);\n}\n\nexport class BrowserDownloads implements IOHandler {\n private readonly modelTopologyFileName: string;\n private readonly weightDataFileName: string;\n private readonly jsonAnchor: HTMLAnchorElement;\n private readonly weightDataAnchor: HTMLAnchorElement;\n\n static readonly URL_SCHEME = 'downloads://';\n\n constructor(fileNamePrefix?: string) {\n if (!env().getBool('IS_BROWSER')) {\n // TODO(cais): Provide info on what IOHandlers are available under the\n // current environment.\n throw new Error(\n 'browserDownloads() cannot proceed because the current environment ' +\n 'is not a browser.');\n }\n\n if (fileNamePrefix.startsWith(BrowserDownloads.URL_SCHEME)) {\n fileNamePrefix = fileNamePrefix.slice(BrowserDownloads.URL_SCHEME.length);\n }\n if (fileNamePrefix == null || fileNamePrefix.length === 0) {\n fileNamePrefix = DEFAULT_FILE_NAME_PREFIX;\n }\n\n this.modelTopologyFileName = fileNamePrefix + DEFAULT_JSON_EXTENSION_NAME;\n this.weightDataFileName =\n fileNamePrefix + DEFAULT_WEIGHT_DATA_EXTENSION_NAME;\n }\n\n async save(modelArtifacts: ModelArtifacts): Promise {\n if (typeof (document) === 'undefined') {\n throw new Error(\n 'Browser downloads are not supported in ' +\n 'this environment since `document` is not present');\n }\n const weightsURL = window.URL.createObjectURL(new Blob(\n [modelArtifacts.weightData], {type: 'application/octet-stream'}));\n\n if (modelArtifacts.modelTopology instanceof ArrayBuffer) {\n throw new Error(\n 'BrowserDownloads.save() does not support saving model topology ' +\n 'in binary formats yet.');\n } else {\n const weightsManifest: WeightsManifestConfig = [{\n paths: ['./' + this.weightDataFileName],\n weights: modelArtifacts.weightSpecs\n }];\n const modelTopologyAndWeightManifest: ModelJSON = {\n modelTopology: modelArtifacts.modelTopology,\n format: modelArtifacts.format,\n generatedBy: modelArtifacts.generatedBy,\n convertedBy: modelArtifacts.convertedBy,\n weightsManifest\n };\n const modelTopologyAndWeightManifestURL =\n window.URL.createObjectURL(new Blob(\n [JSON.stringify(modelTopologyAndWeightManifest)],\n {type: 'application/json'}));\n\n // If anchor elements are not provided, create them without attaching them\n // to parents, so that the downloaded file names can be controlled.\n const jsonAnchor = this.jsonAnchor == null ? document.createElement('a') :\n this.jsonAnchor;\n jsonAnchor.download = this.modelTopologyFileName;\n jsonAnchor.href = modelTopologyAndWeightManifestURL;\n // Trigger downloads by evoking a click event on the download anchors.\n // When multiple downloads are started synchronously, Firefox will only\n // save the last one.\n await defer(() => jsonAnchor.dispatchEvent(new MouseEvent('click')));\n\n if (modelArtifacts.weightData != null) {\n const weightDataAnchor = this.weightDataAnchor == null ?\n document.createElement('a') :\n this.weightDataAnchor;\n weightDataAnchor.download = this.weightDataFileName;\n weightDataAnchor.href = weightsURL;\n await defer(\n () => weightDataAnchor.dispatchEvent(new MouseEvent('click')));\n }\n\n return {modelArtifactsInfo: getModelArtifactsInfoForJSON(modelArtifacts)};\n }\n }\n}\n\nclass BrowserFiles implements IOHandler {\n private readonly files: File[];\n\n constructor(files: File[]) {\n if (files == null || files.length < 1) {\n throw new Error(\n `When calling browserFiles, at least 1 file is required, ` +\n `but received ${files}`);\n }\n this.files = files;\n }\n\n async load(): Promise {\n const jsonFile = this.files[0];\n const weightFiles = this.files.slice(1);\n\n return new Promise((resolve, reject) => {\n const jsonReader = new FileReader();\n jsonReader.onload = (event: Event) => {\n // tslint:disable-next-line:no-any\n const modelJSON = JSON.parse((event.target as any).result) as ModelJSON;\n const modelTopology = modelJSON.modelTopology;\n if (modelTopology == null) {\n reject(new Error(\n `modelTopology field is missing from file ${jsonFile.name}`));\n return;\n }\n\n if (weightFiles.length === 0) {\n resolve({modelTopology});\n }\n\n const weightsManifest = modelJSON.weightsManifest;\n if (weightsManifest == null) {\n reject(new Error(\n `weightManifest field is missing from file ${jsonFile.name}`));\n return;\n }\n\n let pathToFile: {[path: string]: File};\n try {\n pathToFile =\n this.checkManifestAndWeightFiles(weightsManifest, weightFiles);\n } catch (err) {\n reject(err);\n return;\n }\n\n const weightSpecs: WeightsManifestEntry[] = [];\n const paths: string[] = [];\n const perFileBuffers: ArrayBuffer[] = [];\n weightsManifest.forEach(weightsGroup => {\n weightsGroup.paths.forEach(path => {\n paths.push(path);\n perFileBuffers.push(null);\n });\n weightSpecs.push(...weightsGroup.weights);\n });\n\n weightsManifest.forEach(weightsGroup => {\n weightsGroup.paths.forEach(path => {\n const weightFileReader = new FileReader();\n weightFileReader.onload = (event: Event) => {\n // tslint:disable-next-line:no-any\n const weightData = (event.target as any).result as ArrayBuffer;\n const index = paths.indexOf(path);\n perFileBuffers[index] = weightData;\n if (perFileBuffers.indexOf(null) === -1) {\n resolve({\n modelTopology,\n weightSpecs,\n weightData: concatenateArrayBuffers(perFileBuffers),\n format: modelJSON.format,\n generatedBy: modelJSON.generatedBy,\n convertedBy: modelJSON.convertedBy,\n userDefinedMetadata: modelJSON.userDefinedMetadata\n });\n }\n };\n weightFileReader.onerror = error =>\n reject(`Failed to weights data from file of path '${path}'.`);\n weightFileReader.readAsArrayBuffer(pathToFile[path]);\n });\n });\n };\n jsonReader.onerror = error => reject(\n `Failed to read model topology and weights manifest JSON ` +\n `from file '${jsonFile.name}'. BrowserFiles supports loading ` +\n `Keras-style tf.Model artifacts only.`);\n jsonReader.readAsText(jsonFile);\n });\n }\n\n /**\n * Check the compatibility between weights manifest and weight files.\n */\n private checkManifestAndWeightFiles(\n manifest: WeightsManifestConfig, files: File[]): {[path: string]: File} {\n const basenames: string[] = [];\n const fileNames = files.map(file => basename(file.name));\n const pathToFile: {[path: string]: File} = {};\n for (const group of manifest) {\n group.paths.forEach(path => {\n const pathBasename = basename(path);\n if (basenames.indexOf(pathBasename) !== -1) {\n throw new Error(\n `Duplicate file basename found in weights manifest: ` +\n `'${pathBasename}'`);\n }\n basenames.push(pathBasename);\n if (fileNames.indexOf(pathBasename) === -1) {\n throw new Error(\n `Weight file with basename '${pathBasename}' is not provided.`);\n } else {\n pathToFile[path] = files[fileNames.indexOf(pathBasename)];\n }\n });\n }\n\n if (basenames.length !== files.length) {\n throw new Error(\n `Mismatch in the number of files in weights manifest ` +\n `(${basenames.length}) and the number of weight files provided ` +\n `(${files.length}).`);\n }\n return pathToFile;\n }\n}\n\nexport const browserDownloadsRouter: IORouter = (url: string|string[]) => {\n if (!env().getBool('IS_BROWSER')) {\n return null;\n } else {\n if (!Array.isArray(url) && url.startsWith(BrowserDownloads.URL_SCHEME)) {\n return browserDownloads(url.slice(BrowserDownloads.URL_SCHEME.length));\n } else {\n return null;\n }\n }\n};\nIORouterRegistry.registerSaveRouter(browserDownloadsRouter);\n\n/**\n * Creates an IOHandler that triggers file downloads from the browser.\n *\n * The returned `IOHandler` instance can be used as model exporting methods such\n * as `tf.Model.save` and supports only saving.\n *\n * ```js\n * const model = tf.sequential();\n * model.add(tf.layers.dense(\n * {units: 1, inputShape: [10], activation: 'sigmoid'}));\n * const saveResult = await model.save('downloads://mymodel');\n * // This will trigger downloading of two files:\n * // 'mymodel.json' and 'mymodel.weights.bin'.\n * console.log(saveResult);\n * ```\n *\n * @param fileNamePrefix Prefix name of the files to be downloaded. For use with\n * `tf.Model`, `fileNamePrefix` should follow either of the following two\n * formats:\n * 1. `null` or `undefined`, in which case the default file\n * names will be used:\n * - 'model.json' for the JSON file containing the model topology and\n * weights manifest.\n * - 'model.weights.bin' for the binary file containing the binary weight\n * values.\n * 2. A single string or an Array of a single string, as the file name prefix.\n * For example, if `'foo'` is provided, the downloaded JSON\n * file and binary weights file will be named 'foo.json' and\n * 'foo.weights.bin', respectively.\n * @param config Additional configuration for triggering downloads.\n * @returns An instance of `BrowserDownloads` `IOHandler`.\n *\n * @doc {\n * heading: 'Models',\n * subheading: 'Loading',\n * namespace: 'io',\n * ignoreCI: true\n * }\n */\nexport function browserDownloads(fileNamePrefix = 'model'): IOHandler {\n return new BrowserDownloads(fileNamePrefix);\n}\n\n/**\n * Creates an IOHandler that loads model artifacts from user-selected files.\n *\n * This method can be used for loading from files such as user-selected files\n * in the browser.\n * When used in conjunction with `tf.loadLayersModel`, an instance of\n * `tf.LayersModel` (Keras-style) can be constructed from the loaded artifacts.\n *\n * ```js\n * // Note: This code snippet won't run properly without the actual file input\n * // elements in the HTML DOM.\n *\n * // Suppose there are two HTML file input (``)\n * // elements.\n * const uploadJSONInput = document.getElementById('upload-json');\n * const uploadWeightsInput = document.getElementById('upload-weights');\n * const model = await tf.loadLayersModel(tf.io.browserFiles(\n * [uploadJSONInput.files[0], uploadWeightsInput.files[0]]));\n * ```\n *\n * @param files `File`s to load from. Currently, this function supports only\n * loading from files that contain Keras-style models (i.e., `tf.Model`s), for\n * which an `Array` of `File`s is expected (in that order):\n * - A JSON file containing the model topology and weight manifest.\n * - Optionally, One or more binary files containing the binary weights.\n * These files must have names that match the paths in the `weightsManifest`\n * contained by the aforementioned JSON file, or errors will be thrown\n * during loading. These weights files have the same format as the ones\n * generated by `tensorflowjs_converter` that comes with the `tensorflowjs`\n * Python PIP package. If no weights files are provided, only the model\n * topology will be loaded from the JSON file above.\n * @returns An instance of `Files` `IOHandler`.\n *\n * @doc {\n * heading: 'Models',\n * subheading: 'Loading',\n * namespace: 'io',\n * ignoreCI: true\n * }\n */\nexport function browserFiles(files: File[]): IOHandler {\n return new BrowserFiles(files);\n}\n", "/**\n * @license\n * Copyright 2019 Google LLC. 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 *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\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 * =============================================================================\n */\n\nimport {assert} from '../util';\n\nimport {OnProgressCallback} from './types';\n\n/**\n * Monitor Promise.all progress, fire onProgress callback function.\n *\n * @param promises Promise list going to be monitored\n * @param onProgress Callback function. Fired when a promise resolved.\n * @param startFraction Optional fraction start. Default to 0.\n * @param endFraction Optional fraction end. Default to 1.\n */\nexport function monitorPromisesProgress(\n promises: Array>, onProgress: OnProgressCallback,\n startFraction?: number, endFraction?: number) {\n checkPromises(promises);\n startFraction = startFraction == null ? 0 : startFraction;\n endFraction = endFraction == null ? 1 : endFraction;\n checkFraction(startFraction, endFraction);\n let resolvedPromise = 0;\n\n const registerMonitor = (promise: Promise<{}>) => {\n promise.then(value => {\n const fraction = startFraction +\n ++resolvedPromise / promises.length * (endFraction - startFraction);\n // pass fraction as parameter to callback function.\n onProgress(fraction);\n return value;\n });\n return promise;\n };\n\n function checkPromises(promises: Array>): void {\n assert(\n promises != null && Array.isArray(promises) && promises.length > 0,\n () => 'promises must be a none empty array');\n }\n\n function checkFraction(startFraction: number, endFraction: number): void {\n assert(\n startFraction >= 0 && startFraction <= 1,\n () => `Progress fraction must be in range [0, 1], but ` +\n `got startFraction ${startFraction}`);\n assert(\n endFraction >= 0 && endFraction <= 1,\n () => `Progress fraction must be in range [0, 1], but ` +\n `got endFraction ${endFraction}`);\n assert(\n endFraction >= startFraction,\n () => `startFraction must be no more than endFraction, but ` +\n `got startFraction ${startFraction} and endFraction ` +\n `${endFraction}`);\n }\n\n return Promise.all(promises.map(registerMonitor));\n}\n", "/**\n * @license\n * Copyright 2018 Google LLC. 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 *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\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 * =============================================================================\n */\n\nimport {env} from '../environment';\n\nimport {NamedTensorMap} from '../tensor_types';\nimport * as util from '../util';\nimport {decodeWeights} from './io_utils';\nimport {monitorPromisesProgress} from './progress';\nimport {DTYPE_VALUE_SIZE_MAP, LoadOptions, WeightsManifestConfig, WeightsManifestEntry} from './types';\n\n/**\n * Reads binary weights data from a number of URLs.\n *\n * @param fetchURLs URLs to send the HTTP requests at, using `fetch` calls.\n * @param requestOptions RequestInit (options) for the HTTP requests.\n * @param fetchFunc Optional overriding value for the `window.fetch` function.\n * @param onProgress Optional, progress callback function, fired periodically\n * before the load is completed.\n * @returns A `Promise` of an Array of `ArrayBuffer`. The Array has the same\n * length as `fetchURLs`.\n */\nexport async function loadWeightsAsArrayBuffer(\n fetchURLs: string[], loadOptions?: LoadOptions): Promise {\n if (loadOptions == null) {\n loadOptions = {};\n }\n\n const fetchFunc = loadOptions.fetchFunc == null ? env().platform.fetch :\n loadOptions.fetchFunc;\n\n // Create the requests for all of the weights in parallel.\n const requests = fetchURLs.map(\n fetchURL =>\n fetchFunc(fetchURL, loadOptions.requestInit, {isBinary: true}));\n\n const fetchStartFraction = 0;\n const fetchEndFraction = 0.5;\n\n const responses = loadOptions.onProgress == null ?\n await Promise.all(requests) :\n await monitorPromisesProgress(\n requests, loadOptions.onProgress, fetchStartFraction,\n fetchEndFraction);\n\n const bufferPromises = responses.map(response => response.arrayBuffer());\n\n const bufferStartFraction = 0.5;\n const bufferEndFraction = 1;\n\n const buffers = loadOptions.onProgress == null ?\n await Promise.all(bufferPromises) :\n await monitorPromisesProgress(\n bufferPromises, loadOptions.onProgress, bufferStartFraction,\n bufferEndFraction);\n return buffers;\n}\n\n/**\n * Reads a weights manifest JSON configuration, fetches the weights and\n * returns them as `Tensor`s.\n *\n * @param manifest The weights manifest JSON.\n * @param filePathPrefix The path prefix for filenames given in the manifest.\n * Defaults to the empty string.\n * @param weightNames The names of the weights to be fetched.\n */\nexport async function loadWeights(\n manifest: WeightsManifestConfig, filePathPrefix = '',\n weightNames?: string[],\n requestInit?: RequestInit): Promise {\n // TODO(nsthorat): Groups are currently fetched atomically. If you need a\n // single weight from a group, the whole group will be fetched. At a future\n // date, we should support fetching only the individual shards within a\n // group that are needed to reconstruct the requested weight.\n // TODO(cais): Use `decodeWeights` for implementation.\n\n const fetchWeights = (fetchUrls: string[]) =>\n loadWeightsAsArrayBuffer(fetchUrls, {requestInit});\n const loadWeights = weightsLoaderFactory(fetchWeights);\n\n return loadWeights(manifest, filePathPrefix, weightNames);\n}\n\n/**\n * Creates a function, which reads a weights manifest JSON configuration,\n * fetches the weight files using the specified function and returns them as\n * `Tensor`s.\n *\n * ```js\n * // example for creating a nodejs weight loader, which reads the weight files\n * // from disk using fs.readFileSync\n *\n * import * as fs from 'fs'\n *\n * const fetchWeightsFromDisk = (filePaths: string[]) =>\n * filePaths.map(filePath => fs.readFileSync(filePath).buffer)\n *\n * const loadWeights = tf.io.weightsLoaderFactory(fetchWeightsFromDisk)\n *\n * const manifest = JSON.parse(\n * fs.readFileSync('./my_model-weights_manifest').toString()\n * )\n * const weightMap = await loadWeights(manifest, './')\n * ```\n * @param fetchWeightsFunction The function used for fetching the weight files.\n * @returns Weight loading function.\n */\nexport function weightsLoaderFactory(\n fetchWeightsFunction: (fetchUrls: string[]) => Promise):\n (manifest: WeightsManifestConfig, filePathPrefix?: string,\n weightNames?: string[]) => Promise {\n return async(\n manifest: WeightsManifestConfig, filePathPrefix = '',\n weightNames?: string[]): Promise => {\n // Collect all the groups, weights, and their relative offsets to be\n // fetched.\n const groupIndicesToFetchMap = manifest.map(() => false);\n const groupWeightsToFetch: {\n [group: number]: Array<{\n manifestEntry: WeightsManifestEntry; groupOffset: number;\n sizeBytes: number;\n }>\n } = {};\n const weightsFound =\n weightNames != null ? weightNames.map(() => false) : [];\n const allManifestWeightNames: string[] = [];\n manifest.forEach((manifestGroupConfig, groupIndex) => {\n let groupOffset = 0;\n manifestGroupConfig.weights.forEach(weightsEntry => {\n const rawDtype = ('quantization' in weightsEntry) ?\n weightsEntry.quantization.dtype :\n weightsEntry.dtype;\n\n const weightsBytes = DTYPE_VALUE_SIZE_MAP[rawDtype] *\n util.sizeFromShape(weightsEntry.shape);\n\n const enqueueWeightsForFetchingFn = () => {\n groupIndicesToFetchMap[groupIndex] = true;\n if (groupWeightsToFetch[groupIndex] == null) {\n groupWeightsToFetch[groupIndex] = [];\n }\n\n groupWeightsToFetch[groupIndex].push({\n manifestEntry: weightsEntry,\n groupOffset,\n sizeBytes: weightsBytes\n });\n };\n\n if (weightNames != null) {\n weightNames.forEach((weightName, weightIndex) => {\n if (weightName === weightsEntry.name) {\n enqueueWeightsForFetchingFn();\n weightsFound[weightIndex] = true;\n }\n });\n } else {\n enqueueWeightsForFetchingFn();\n }\n\n allManifestWeightNames.push(weightsEntry.name);\n groupOffset += weightsBytes;\n });\n });\n\n if (!weightsFound.every(found => found)) {\n const weightsNotFound = weightNames.filter((_, i) => !weightsFound[i]);\n throw new Error(\n `Could not find weights in manifest with names: ` +\n `${weightsNotFound.join(', ')}. \\n` +\n `Manifest JSON has weights with names: ` +\n `${allManifestWeightNames.join(', ')}.`);\n }\n\n // Convert the one-hot boolean groupId => shouldFetch map to a list of group\n // IDs.\n const groupIndicesToFetch =\n groupIndicesToFetchMap.reduce((accumulator, shouldFetch, i) => {\n if (shouldFetch) {\n accumulator.push(i);\n }\n return accumulator;\n }, []);\n\n const fetchUrls: string[] = [];\n groupIndicesToFetch.forEach(i => {\n manifest[i].paths.forEach(filepath => {\n const fetchUrl = filePathPrefix +\n (!filePathPrefix.endsWith('/') ? '/' : '') + filepath;\n fetchUrls.push(fetchUrl);\n });\n });\n const buffers = await fetchWeightsFunction(fetchUrls);\n\n const weightsTensorMap: NamedTensorMap = {};\n let bufferIndexOffset = 0;\n groupIndicesToFetch.forEach(i => {\n const numBuffers = manifest[i].paths.length;\n\n let groupBytes = 0;\n for (let i = 0; i < numBuffers; i++) {\n groupBytes += buffers[bufferIndexOffset + i].byteLength;\n }\n\n // Create a buffer for the whole group.\n const groupBuffer = new ArrayBuffer(groupBytes);\n const groupByteBuffer = new Uint8Array(groupBuffer);\n let groupBufferOffset = 0;\n for (let i = 0; i < numBuffers; i++) {\n const buffer = new Uint8Array(buffers[bufferIndexOffset + i]);\n groupByteBuffer.set(buffer, groupBufferOffset);\n groupBufferOffset += buffer.byteLength;\n }\n\n const weightsEntries = groupWeightsToFetch[i];\n weightsEntries.forEach(weightsEntry => {\n const byteBuffer = groupBuffer.slice(\n weightsEntry.groupOffset,\n weightsEntry.groupOffset + weightsEntry.sizeBytes);\n const nameToTensorMap =\n decodeWeights(byteBuffer, [weightsEntry.manifestEntry]);\n for (const name in nameToTensorMap) {\n weightsTensorMap[name] = nameToTensorMap[name];\n }\n });\n\n bufferIndexOffset += numBuffers;\n });\n\n return weightsTensorMap;\n };\n}\n", "/**\n * @license\n * Copyright 2018 Google LLC. 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 *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\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 * =============================================================================\n */\n\n/**\n * IOHandler implementations based on HTTP requests in the web browser.\n *\n * Uses [`fetch`](https://developer.mozilla.org/en-US/docs/Web/API/Fetch_API).\n */\n\nimport {env} from '../environment';\n\nimport {assert} from '../util';\nimport {concatenateArrayBuffers, getModelArtifactsInfoForJSON} from './io_utils';\nimport {IORouter, IORouterRegistry} from './router_registry';\nimport {IOHandler, LoadOptions, ModelArtifacts, ModelJSON, OnProgressCallback, SaveResult, WeightsManifestConfig, WeightsManifestEntry} from './types';\nimport {loadWeightsAsArrayBuffer} from './weights_loader';\n\nconst OCTET_STREAM_MIME_TYPE = 'application/octet-stream';\nconst JSON_TYPE = 'application/json';\nexport class HTTPRequest implements IOHandler {\n protected readonly path: string;\n protected readonly requestInit: RequestInit;\n\n private readonly fetch: Function;\n private readonly weightUrlConverter: (weightName: string) => Promise;\n\n readonly DEFAULT_METHOD = 'POST';\n\n static readonly URL_SCHEME_REGEX = /^https?:\\/\\//;\n\n private readonly weightPathPrefix: string;\n private readonly onProgress: OnProgressCallback;\n\n constructor(path: string, loadOptions?: LoadOptions) {\n if (loadOptions == null) {\n loadOptions = {};\n }\n this.weightPathPrefix = loadOptions.weightPathPrefix;\n this.onProgress = loadOptions.onProgress;\n this.weightUrlConverter = loadOptions.weightUrlConverter;\n\n if (loadOptions.fetchFunc != null) {\n assert(\n typeof loadOptions.fetchFunc === 'function',\n () => 'Must pass a function that matches the signature of ' +\n '`fetch` (see ' +\n 'https://developer.mozilla.org/en-US/docs/Web/API/Fetch_API)');\n this.fetch = loadOptions.fetchFunc;\n } else {\n this.fetch = env().platform.fetch;\n }\n\n assert(\n path != null && path.length > 0,\n () => 'URL path for http must not be null, undefined or ' +\n 'empty.');\n\n if (Array.isArray(path)) {\n assert(\n path.length === 2,\n () => 'URL paths for http must have a length of 2, ' +\n `(actual length is ${path.length}).`);\n }\n this.path = path;\n\n if (loadOptions.requestInit != null &&\n loadOptions.requestInit.body != null) {\n throw new Error(\n 'requestInit is expected to have no pre-existing body, but has one.');\n }\n this.requestInit = loadOptions.requestInit || {};\n }\n\n async save(modelArtifacts: ModelArtifacts): Promise {\n if (modelArtifacts.modelTopology instanceof ArrayBuffer) {\n throw new Error(\n 'BrowserHTTPRequest.save() does not support saving model topology ' +\n 'in binary formats yet.');\n }\n\n const init = Object.assign({method: this.DEFAULT_METHOD}, this.requestInit);\n init.body = new FormData();\n\n const weightsManifest: WeightsManifestConfig = [{\n paths: ['./model.weights.bin'],\n weights: modelArtifacts.weightSpecs,\n }];\n const modelTopologyAndWeightManifest: ModelJSON = {\n modelTopology: modelArtifacts.modelTopology,\n format: modelArtifacts.format,\n generatedBy: modelArtifacts.generatedBy,\n convertedBy: modelArtifacts.convertedBy,\n userDefinedMetadata: modelArtifacts.userDefinedMetadata,\n weightsManifest\n };\n\n init.body.append(\n 'model.json',\n new Blob(\n [JSON.stringify(modelTopologyAndWeightManifest)],\n {type: JSON_TYPE}),\n 'model.json');\n\n if (modelArtifacts.weightData != null) {\n init.body.append(\n 'model.weights.bin',\n new Blob([modelArtifacts.weightData], {type: OCTET_STREAM_MIME_TYPE}),\n 'model.weights.bin');\n }\n\n const response = await this.fetch(this.path, init);\n\n if (response.ok) {\n return {\n modelArtifactsInfo: getModelArtifactsInfoForJSON(modelArtifacts),\n responses: [response],\n };\n } else {\n throw new Error(\n `BrowserHTTPRequest.save() failed due to HTTP response status ` +\n `${response.status}.`);\n }\n }\n\n /**\n * Load model artifacts via HTTP request(s).\n *\n * See the documentation to `tf.io.http` for details on the saved\n * artifacts.\n *\n * @returns The loaded model artifacts (if loading succeeds).\n */\n async load(): Promise {\n const modelConfigRequest = await this.fetch(this.path, this.requestInit);\n\n if (!modelConfigRequest.ok) {\n throw new Error(\n `Request to ${this.path} failed with status code ` +\n `${modelConfigRequest.status}. Please verify this URL points to ` +\n `the model JSON of the model to load.`);\n }\n let modelConfig: ModelJSON;\n try {\n modelConfig = await modelConfigRequest.json();\n } catch (e) {\n let message = `Failed to parse model JSON of response from ${this.path}.`;\n // TODO(nsthorat): Remove this after some time when we're comfortable that\n // .pb files are mostly gone.\n if (this.path.endsWith('.pb')) {\n message += ' Your path contains a .pb file extension. ' +\n 'Support for .pb models have been removed in TensorFlow.js 1.0 ' +\n 'in favor of .json models. You can re-convert your Python ' +\n 'TensorFlow model using the TensorFlow.js 1.0 conversion scripts ' +\n 'or you can convert your.pb models with the \\'pb2json\\'' +\n 'NPM script in the tensorflow/tfjs-converter repository.';\n } else {\n message += ' Please make sure the server is serving valid ' +\n 'JSON for this request.';\n }\n throw new Error(message);\n }\n const modelTopology = modelConfig.modelTopology;\n const weightsManifest = modelConfig.weightsManifest;\n const generatedBy = modelConfig.generatedBy;\n const convertedBy = modelConfig.convertedBy;\n const format = modelConfig.format;\n const userDefinedMetadata = modelConfig.userDefinedMetadata;\n\n // We do not allow both modelTopology and weightsManifest to be missing.\n if (modelTopology == null && weightsManifest == null) {\n throw new Error(\n `The JSON from HTTP path ${this.path} contains neither model ` +\n `topology or manifest for weights.`);\n }\n\n let weightSpecs: WeightsManifestEntry[];\n let weightData: ArrayBuffer;\n if (weightsManifest != null) {\n const results = await this.loadWeights(weightsManifest);\n [weightSpecs, weightData] = results;\n }\n\n const artifacts: ModelArtifacts = {\n modelTopology,\n weightSpecs,\n weightData,\n userDefinedMetadata,\n generatedBy,\n convertedBy,\n format\n };\n\n const initializer = modelConfig.modelInitializer;\n if (initializer) {\n artifacts.modelInitializer = initializer;\n }\n\n return artifacts;\n }\n\n private async loadWeights(weightsManifest: WeightsManifestConfig):\n Promise<[WeightsManifestEntry[], ArrayBuffer]> {\n const weightPath = Array.isArray(this.path) ? this.path[1] : this.path;\n const [prefix, suffix] = parseUrl(weightPath);\n const pathPrefix = this.weightPathPrefix || prefix;\n\n const weightSpecs = [];\n for (const entry of weightsManifest) {\n weightSpecs.push(...entry.weights);\n }\n\n const fetchURLs: string[] = [];\n const urlPromises: Array> = [];\n for (const weightsGroup of weightsManifest) {\n for (const path of weightsGroup.paths) {\n if (this.weightUrlConverter != null) {\n urlPromises.push(this.weightUrlConverter(path));\n } else {\n fetchURLs.push(pathPrefix + path + suffix);\n }\n }\n }\n\n if (this.weightUrlConverter) {\n fetchURLs.push(...await Promise.all(urlPromises));\n }\n\n const buffers = await loadWeightsAsArrayBuffer(fetchURLs, {\n requestInit: this.requestInit,\n fetchFunc: this.fetch,\n onProgress: this.onProgress\n });\n return [weightSpecs, concatenateArrayBuffers(buffers)];\n }\n}\n\n/**\n * Extract the prefix and suffix of the url, where the prefix is the path before\n * the last file, and suffix is the search params after the last file.\n * ```\n * const url = 'http://tfhub.dev/model/1/tensorflowjs_model.pb?tfjs-format=file'\n * [prefix, suffix] = parseUrl(url)\n * // prefix = 'http://tfhub.dev/model/1/'\n * // suffix = '?tfjs-format=file'\n * ```\n * @param url the model url to be parsed.\n */\nexport function parseUrl(url: string): [string, string] {\n const lastSlash = url.lastIndexOf('/');\n const lastSearchParam = url.lastIndexOf('?');\n const prefix = url.substring(0, lastSlash);\n const suffix =\n lastSearchParam > lastSlash ? url.substring(lastSearchParam) : '';\n return [prefix + '/', suffix];\n}\n\nexport function isHTTPScheme(url: string): boolean {\n return url.match(HTTPRequest.URL_SCHEME_REGEX) != null;\n}\n\nexport const httpRouter: IORouter =\n (url: string, loadOptions?: LoadOptions) => {\n if (typeof fetch === 'undefined' &&\n (loadOptions == null || loadOptions.fetchFunc == null)) {\n // `http` uses `fetch` or `node-fetch`, if one wants to use it in\n // an environment that is not the browser or node they have to setup a\n // global fetch polyfill.\n return null;\n } else {\n let isHTTP = true;\n if (Array.isArray(url)) {\n isHTTP = url.every(urlItem => isHTTPScheme(urlItem));\n } else {\n isHTTP = isHTTPScheme(url);\n }\n if (isHTTP) {\n return http(url, loadOptions);\n }\n }\n return null;\n };\nIORouterRegistry.registerSaveRouter(httpRouter);\nIORouterRegistry.registerLoadRouter(httpRouter);\n\n/**\n * Creates an IOHandler subtype that sends model artifacts to HTTP server.\n *\n * An HTTP request of the `multipart/form-data` mime type will be sent to the\n * `path` URL. The form data includes artifacts that represent the topology\n * and/or weights of the model. In the case of Keras-style `tf.Model`, two\n * blobs (files) exist in form-data:\n * - A JSON file consisting of `modelTopology` and `weightsManifest`.\n * - A binary weights file consisting of the concatenated weight values.\n * These files are in the same format as the one generated by\n * [tfjs_converter](https://js.tensorflow.org/tutorials/import-keras.html).\n *\n * The following code snippet exemplifies the client-side code that uses this\n * function:\n *\n * ```js\n * const model = tf.sequential();\n * model.add(\n * tf.layers.dense({units: 1, inputShape: [100], activation: 'sigmoid'}));\n *\n * const saveResult = await model.save(tf.io.http(\n * 'http://model-server:5000/upload', {requestInit: {method: 'PUT'}}));\n * console.log(saveResult);\n * ```\n *\n * If the default `POST` method is to be used, without any custom parameters\n * such as headers, you can simply pass an HTTP or HTTPS URL to `model.save`:\n *\n * ```js\n * const saveResult = await model.save('http://model-server:5000/upload');\n * ```\n *\n * The following GitHub Gist\n * https://gist.github.com/dsmilkov/1b6046fd6132d7408d5257b0976f7864\n * implements a server based on [flask](https://github.com/pallets/flask) that\n * can receive the request. Upon receiving the model artifacts via the requst,\n * this particular server reconsistutes instances of [Keras\n * Models](https://keras.io/models/model/) in memory.\n *\n *\n * @param path A URL path to the model.\n * Can be an absolute HTTP path (e.g.,\n * 'http://localhost:8000/model-upload)') or a relative path (e.g.,\n * './model-upload').\n * @param requestInit Request configurations to be used when sending\n * HTTP request to server using `fetch`. It can contain fields such as\n * `method`, `credentials`, `headers`, `mode`, etc. See\n * https://developer.mozilla.org/en-US/docs/Web/API/Request/Request\n * for more information. `requestInit` must not have a body, because the\n * body will be set by TensorFlow.js. File blobs representing the model\n * topology (filename: 'model.json') and the weights of the model (filename:\n * 'model.weights.bin') will be appended to the body. If `requestInit` has a\n * `body`, an Error will be thrown.\n * @param loadOptions Optional configuration for the loading. It includes the\n * following fields:\n * - weightPathPrefix Optional, this specifies the path prefix for weight\n * files, by default this is calculated from the path param.\n * - fetchFunc Optional, custom `fetch` function. E.g., in Node.js,\n * the `fetch` from node-fetch can be used here.\n * - onProgress Optional, progress callback function, fired periodically\n * before the load is completed.\n * @returns An instance of `IOHandler`.\n *\n * @doc {\n * heading: 'Models',\n * subheading: 'Loading',\n * namespace: 'io',\n * ignoreCI: true\n * }\n */\nexport function http(path: string, loadOptions?: LoadOptions): IOHandler {\n return new HTTPRequest(path, loadOptions);\n}\n\n/**\n * Deprecated. Use `tf.io.http`.\n * @param path\n * @param loadOptions\n */\nexport function browserHTTPRequest(\n path: string, loadOptions?: LoadOptions): IOHandler {\n return http(path, loadOptions);\n}\n", "/**\n * @license\n * Copyright 2018 Google LLC. 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 *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\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 * =============================================================================\n */\n\n/**\n * IOHandlers that pass through the in-memory ModelArtifacts format.\n */\n\nimport {IOHandler, ModelArtifacts, SaveResult, TrainingConfig, WeightsManifestEntry} from './types';\n\nclass PassthroughLoader implements IOHandler {\n constructor(private readonly modelArtifacts?: ModelArtifacts) {}\n\n async load(): Promise {\n return this.modelArtifacts;\n }\n}\n\nclass PassthroughSaver implements IOHandler {\n constructor(\n private readonly saveHandler:\n (artifacts: ModelArtifacts) => Promise) {}\n\n async save(modelArtifacts: ModelArtifacts) {\n return this.saveHandler(modelArtifacts);\n }\n}\n\n/**\n * Creates an IOHandler that loads model artifacts from memory.\n *\n * When used in conjunction with `tf.loadLayersModel`, an instance of\n * `tf.LayersModel` (Keras-style) can be constructed from the loaded artifacts.\n *\n * ```js\n * const model = await tf.loadLayersModel(tf.io.fromMemory(\n * modelTopology, weightSpecs, weightData));\n * ```\n *\n * @param modelArtifacts a object containing model topology (i.e., parsed from\n * the JSON format).\n * @param weightSpecs An array of `WeightsManifestEntry` objects describing the\n * names, shapes, types, and quantization of the weight data.\n * @param weightData A single `ArrayBuffer` containing the weight data,\n * concatenated in the order described by the weightSpecs.\n * @param trainingConfig Model training configuration. Optional.\n *\n * @returns A passthrough `IOHandler` that simply loads the provided data.\n */\nexport function fromMemory(\n modelArtifacts: {}|ModelArtifacts, weightSpecs?: WeightsManifestEntry[],\n weightData?: ArrayBuffer, trainingConfig?: TrainingConfig): IOHandler {\n if (arguments.length === 1) {\n const isModelArtifacts =\n (modelArtifacts as ModelArtifacts).modelTopology != null ||\n (modelArtifacts as ModelArtifacts).weightSpecs != null;\n if (isModelArtifacts) {\n return new PassthroughLoader(modelArtifacts as ModelArtifacts);\n } else {\n // Legacy support: with only modelTopology.\n // TODO(cais): Remove this deprecated API.\n console.warn(\n 'Please call tf.io.fromMemory() with only one argument. ' +\n 'The argument should be of type ModelArtifacts. ' +\n 'The multi-argument signature of tf.io.fromMemory() has been ' +\n 'deprecated and will be removed in a future release.');\n return new PassthroughLoader({modelTopology: modelArtifacts as {}});\n }\n } else {\n // Legacy support.\n // TODO(cais): Remove this deprecated API.\n console.warn(\n 'Please call tf.io.fromMemory() with only one argument. ' +\n 'The argument should be of type ModelArtifacts. ' +\n 'The multi-argument signature of tf.io.fromMemory() has been ' +\n 'deprecated and will be removed in a future release.');\n return new PassthroughLoader({\n modelTopology: modelArtifacts as {},\n weightSpecs,\n weightData,\n trainingConfig\n });\n }\n}\n\n/**\n * Creates an IOHandler that passes saved model artifacts to a callback.\n *\n * ```js\n * function handleSave(artifacts) {\n * // ... do something with the artifacts ...\n * return {modelArtifactsInfo: {...}, ...};\n * }\n *\n * const saveResult = model.save(tf.io.withSaveHandler(handleSave));\n * ```\n *\n * @param saveHandler A function that accepts a `ModelArtifacts` and returns a\n * `SaveResult`.\n */\nexport function withSaveHandler(\n saveHandler: (artifacts: ModelArtifacts) =>\n Promise): IOHandler {\n return new PassthroughSaver(saveHandler);\n}\n", "/**\n * @license\n * Copyright 2018 Google LLC. 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 *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\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 * =============================================================================\n */\n\n// Importing local_storage and indexed_db is necessary for the routers to be\n// registered.\nimport './indexed_db';\nimport './local_storage';\n\nimport {browserFiles} from './browser_files';\nimport {browserHTTPRequest, http, isHTTPScheme} from './http';\nimport {concatenateArrayBuffers, decodeWeights, encodeWeights, getModelArtifactsInfoForJSON} from './io_utils';\nimport {fromMemory, withSaveHandler} from './passthrough';\nimport {getLoadHandlers, getSaveHandlers, registerLoadRouter, registerSaveRouter} from './router_registry';\nimport {IOHandler, LoadHandler, LoadOptions, ModelArtifacts, ModelArtifactsInfo, ModelJSON, ModelStoreManager, OnProgressCallback, RequestDetails, SaveConfig, SaveHandler, SaveResult, WeightGroup, WeightsManifestConfig, WeightsManifestEntry} from './types';\nimport {loadWeights, weightsLoaderFactory} from './weights_loader';\n\nexport {copyModel, listModels, moveModel, removeModel} from './model_management';\nexport {\n browserFiles,\n browserHTTPRequest,\n concatenateArrayBuffers,\n decodeWeights,\n encodeWeights,\n fromMemory,\n getLoadHandlers,\n getModelArtifactsInfoForJSON,\n getSaveHandlers,\n http,\n IOHandler,\n isHTTPScheme,\n LoadHandler,\n LoadOptions,\n loadWeights,\n ModelArtifacts,\n ModelArtifactsInfo,\n ModelJSON,\n ModelStoreManager,\n OnProgressCallback,\n registerLoadRouter,\n registerSaveRouter,\n RequestDetails,\n SaveConfig,\n SaveHandler,\n SaveResult,\n WeightGroup,\n weightsLoaderFactory,\n WeightsManifestConfig,\n WeightsManifestEntry,\n withSaveHandler\n};\n", "/**\n * @license\n * Copyright 2020 Google LLC. 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 *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\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 * =============================================================================\n */\n\nimport {KernelBackend} from '../backends/backend';\nimport {ENGINE, ForwardFunc} from '../engine';\nimport {Reshape, ReshapeAttrs, ReshapeInputs} from '../kernel_names';\nimport {NamedAttrMap} from '../kernel_registry';\nimport {Tensor} from '../tensor';\nimport {GradSaveFunc, NamedTensorMap} from '../tensor_types';\nimport {convertToTensor} from '../tensor_util_env';\nimport {Rank, ShapeMap, TensorLike} from '../types';\nimport * as util from '../util';\n\nimport {op} from './operation';\n\n/**\n * Reshapes a `tf.Tensor` to a given shape.\n *\n * Given an input tensor, returns a new tensor with the same values as the\n * input tensor with shape `shape`.\n *\n * If one component of shape is the special value -1, the size of that\n * dimension is computed so that the total size remains constant. In\n * particular, a shape of [-1] flattens into 1-D. At most one component of\n * shape can be -1.\n *\n * If shape is 1-D or higher, then the operation returns a tensor with shape\n * shape filled with the values of tensor. In this case, the number of\n * elements implied by shape must be the same as the number of elements in\n * tensor.\n *\n * ```js\n * const x = tf.tensor1d([1, 2, 3, 4]);\n * x.reshape([2, 2]).print();\n * ```\n *\n * @param x The input tensor to be reshaped.\n * @param shape An array of integers defining the output tensor shape.\n *\n * @doc {heading: 'Tensors', subheading: 'Transformations'}\n */\nfunction reshape_(\n x: Tensor|TensorLike, shape: ShapeMap[R]): Tensor {\n const $x = convertToTensor(x, 'x', 'reshape', null);\n\n const inputs: ReshapeInputs = {x: $x};\n const attrs: ReshapeAttrs = {shape};\n const forward: ForwardFunc<\n Tensor> = (backend: KernelBackend, save: GradSaveFunc) => {\n shape = util.inferFromImplicitShape(shape, $x.size) as ShapeMap[R];\n util.assert(\n $x.size === util.sizeFromShape(shape),\n () => 'new shape and old shape must have the same number of elements.');\n save([$x]);\n return backend.reshape($x, shape);\n };\n return ENGINE.runKernelFunc(\n forward, inputs as {} as NamedTensorMap, null /* grad */, Reshape,\n attrs as {} as NamedAttrMap);\n}\nexport const reshape = op({reshape_});\n", "/**\n * @license\n * Copyright 2020 Google LLC. 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 *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\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 * =============================================================================\n */\nimport {ENGINE, ForwardFunc} from '../engine';\nimport {BatchMatMul, BatchMatMulAttrs, BatchMatMulInputs} from '../kernel_names';\nimport {NamedAttrMap} from '../kernel_registry';\nimport {Tensor, Tensor3D} from '../tensor';\nimport {NamedTensorMap} from '../tensor_types';\nimport {makeTypesMatch} from '../tensor_util';\nimport {convertToTensor} from '../tensor_util_env';\nimport {TensorLike} from '../types';\nimport * as util from '../util';\n\nimport {op} from './operation';\nimport {reshape} from './reshape';\n\n/**\n * Computes the dot product of two matrices, A * B. These must be matrices.\n *\n * ```js\n * const a = tf.tensor2d([1, 2], [1, 2]);\n * const b = tf.tensor2d([1, 2, 3, 4], [2, 2]);\n *\n * a.matMul(b).print(); // or tf.matMul(a, b)\n * ```\n * @param a First matrix in dot product operation.\n * @param b Second matrix in dot product operation.\n * @param transposeA If true, `a` is transposed before multiplication.\n * @param transposeB If true, `b` is transposed before multiplication.\n *\n * @doc {heading: 'Operations', subheading: 'Matrices'}\n */\nfunction matMul_(\n a: Tensor|TensorLike, b: Tensor|TensorLike, transposeA = false,\n transposeB = false): T {\n let $a = convertToTensor(a, 'a', 'matMul');\n let $b = convertToTensor(b, 'b', 'matMul');\n [$a, $b] = makeTypesMatch($a, $b);\n\n const forward: ForwardFunc = (backend, save) => {\n save([$a, $b]);\n\n const innerShapeA =\n transposeA ? $a.shape[$a.rank - 2] : $a.shape[$a.rank - 1];\n const innerShapeB =\n transposeB ? $b.shape[$b.rank - 1] : $b.shape[$b.rank - 2];\n\n const outerShapeA =\n transposeA ? $a.shape[$a.rank - 1] : $a.shape[$a.rank - 2];\n const outerShapeB =\n transposeB ? $b.shape[$b.rank - 2] : $b.shape[$b.rank - 1];\n\n const outerDimsA = $a.shape.slice(0, -2);\n const outerDimsB = $b.shape.slice(0, -2);\n const batchDimA = util.sizeFromShape(outerDimsA);\n const batchDimB = util.sizeFromShape(outerDimsB);\n\n const batchDimsCompatible =\n batchDimA === batchDimB || batchDimA === 1 || batchDimB === 1;\n\n util.assert(\n $a.rank >= 2 && $b.rank >= 2 && batchDimsCompatible,\n () =>\n `Error in matMul: the input batch dimensions must either be the ` +\n `same or at least one input batch dimension must be 1. Got input ` +\n `batch dimensions of (${outerDimsA}) and (${outerDimsB}).`);\n\n util.assert(\n innerShapeA === innerShapeB,\n () => `Error in matMul: inner shapes (${innerShapeA}) and (` +\n `${innerShapeB}) of Tensors with shapes ${$a.shape} and ` +\n `${$b.shape} and transposeA=${transposeA}` +\n ` and transposeB=${transposeB} must match.`);\n\n const outShapeOuterDims = batchDimA > batchDimB ? outerDimsA : outerDimsB;\n const outShape = outShapeOuterDims.concat([outerShapeA, outerShapeB]);\n\n const a3D = transposeA ?\n reshape($a, [batchDimA, innerShapeA, outerShapeA]) :\n reshape($a, [batchDimA, outerShapeA, innerShapeA]);\n const b3D = transposeB ?\n reshape($b, [batchDimB, outerShapeB, innerShapeB]) :\n reshape($b, [batchDimB, innerShapeB, outerShapeB]);\n\n const res3d = backend.batchMatMul(\n a3D as Tensor3D, b3D as Tensor3D, transposeA, transposeB);\n return reshape(res3d, outShape);\n };\n\n const inputs: BatchMatMulInputs = {a: $a, b: $b};\n const attrs: BatchMatMulAttrs = {transposeA, transposeB};\n\n return ENGINE.runKernelFunc(\n forward, inputs as {} as NamedTensorMap, null /* grad */,\n BatchMatMul, attrs as {} as NamedAttrMap) as T;\n}\n\nexport const matMul = op({matMul_});\n", "/**\n * @license\n * Copyright 2020 Google LLC. 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 *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\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 * =============================================================================\n */\n\nimport {ENGINE, ForwardFunc} from '../engine';\nimport {OneHot, OneHotAttrs, OneHotInputs} from '../kernel_names';\nimport {NamedAttrMap} from '../kernel_registry';\nimport {Tensor} from '../tensor';\nimport {NamedTensorMap} from '../tensor_types';\nimport {convertToTensor} from '../tensor_util_env';\nimport {TensorLike} from '../types';\n\nimport {op} from './operation';\nimport {reshape} from './reshape';\n\n/**\n * Creates a one-hot `tf.Tensor`. The locations represented by `indices` take\n * value `onValue` (defaults to 1), while all other locations take value\n * `offValue` (defaults to 0). If `indices` is rank `R`, the output has rank\n * `R+1` with the last axis of size `depth`.\n *\n * ```js\n * tf.oneHot(tf.tensor1d([0, 1], 'int32'), 3).print();\n * ```\n *\n * @param indices `tf.Tensor` of indices with dtype `int32`.\n * @param depth The depth of the one hot dimension.\n * @param onValue A number used to fill in the output when the index matches\n * the location.\n * @param offValue A number used to fill in the output when the index does\n * not match the location.\n *\n * @doc {heading: 'Tensors', subheading: 'Creation'}\n */\nfunction oneHot_(\n indices: Tensor|TensorLike, depth: number, onValue = 1,\n offValue = 0): Tensor {\n if (depth < 2) {\n throw new Error(`Error in oneHot: depth must be >=2, but it is ${depth}`);\n }\n const $indices = convertToTensor(indices, 'indices', 'oneHot', 'int32');\n const outShape = [...$indices.shape, depth];\n\n const forward: ForwardFunc = (backend, save) => {\n save([$indices]);\n return reshape(\n backend.oneHot(\n reshape($indices, [$indices.size]), depth, onValue, offValue),\n outShape);\n };\n\n const inputs: OneHotInputs = {indices: $indices};\n const attrs: OneHotAttrs = {depth, onValue, offValue};\n\n return ENGINE.runKernelFunc(\n forward, inputs as unknown as NamedTensorMap, null /* grad */, OneHot,\n attrs as unknown as NamedAttrMap);\n}\n\nexport const oneHot = op({oneHot_});\n", "/**\n * @license\n * Copyright 2018 Google LLC. 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 *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\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 * =============================================================================\n */\n\nimport {ENGINE} from '../engine';\nimport {Transpose, TransposeAttrs, TransposeInputs} from '../kernel_names';\nimport {NamedAttrMap} from '../kernel_registry';\nimport {Tensor} from '../tensor';\nimport {NamedTensorMap} from '../tensor_types';\nimport {convertToTensor} from '../tensor_util_env';\nimport {TensorLike} from '../types';\nimport * as util from '../util';\n\nimport {op} from './operation';\n\n/**\n * Transposes the `tf.Tensor`. Permutes the dimensions according to `perm`.\n *\n * The returned `tf.Tensor`'s dimension `i` will correspond to the input\n * dimension `perm[i]`. If `perm` is not given, it is set to `[n-1...0]`,\n * where `n` is the rank of the input `tf.Tensor`. Hence by default, this\n * operation performs a regular matrix transpose on 2-D input `tf.Tensor`s.\n *\n * ```js\n * const a = tf.tensor2d([1, 2, 3, 4, 5, 6], [2, 3]);\n *\n * a.transpose().print(); // or tf.transpose(a)\n * ```\n *\n * @param x The tensor to transpose.\n * @param perm The permutation of the dimensions of a.\n *\n * @doc {heading: 'Operations', subheading: 'Matrices'}\n */\nfunction transpose_(x: T|TensorLike, perm?: number[]): T {\n const $x = convertToTensor(x, 'x', 'transpose');\n\n if (perm == null) {\n perm = $x.shape.map((s, i) => i).reverse();\n }\n util.assert(\n $x.rank === perm.length,\n () => `Error in transpose: rank of input ${$x.rank} ` +\n `must match length of perm ${perm}.`);\n perm.forEach(axis => {\n util.assert(\n axis >= 0 && axis < $x.rank,\n () => `All entries in 'perm' must be between 0 and ${$x.rank - 1}` +\n ` but got ${perm}`);\n });\n\n if ($x.rank <= 1) {\n return $x.clone();\n }\n\n const inputs: TransposeInputs = {x: $x};\n const attrs: TransposeAttrs = {perm};\n\n return ENGINE.runKernelFunc(\n backend => backend.transpose($x, perm), inputs as {} as NamedTensorMap,\n null /* gradient */, Transpose, attrs as {} as NamedAttrMap);\n}\n\nexport const transpose = op({transpose_});\n", "/**\n * @license\n * Copyright 2018 Google LLC. 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 *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\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 * =============================================================================\n */\n\nimport {Tensor1D, Tensor2D} from '../tensor';\nimport {convertToTensor} from '../tensor_util_env';\nimport {TensorLike} from '../types';\nimport * as util from '../util';\n\nimport {cast} from './cast';\nimport {matMul} from './mat_mul';\nimport {oneHot} from './one_hot';\nimport {op} from './operation';\nimport {transpose} from './transpose';\n\n/**\n * Computes the confusion matrix from true labels and predicted labels.\n *\n * ```js\n * const labels = tf.tensor1d([0, 1, 2, 1, 0], 'int32');\n * const predictions = tf.tensor1d([0, 2, 2, 1, 0], 'int32');\n * const numClasses = 3;\n * const out = tf.math.confusionMatrix(labels, predictions, numClasses);\n * out.print();\n * // Expected output matrix:\n * // [[2, 0, 0],\n * // [0, 1, 1],\n * // [0, 0, 1]]\n * ```\n *\n * @param labels The target labels, assumed to be 0-based integers\n * for the classes. The shape is `[numExamples]`, where\n * `numExamples` is the number of examples included.\n * @param predictions The predicted classes, assumed to be\n * 0-based integers for the classes. Must have the same shape as `labels`.\n * @param numClasses Number of all classes, as an integer.\n * Its value must be larger than the largest element in `labels` and\n * `predictions`.\n * @returns The confusion matrix as a int32-type 2D tensor. The value at\n * row `r` and column `c` is the number of times examples of actual class\n * `r` were predicted as class `c`.\n *\n * @doc {heading: 'Operations', subheading: 'Evaluation'}\n */\nexport function confusionMatrix_(\n labels: Tensor1D|TensorLike, predictions: Tensor1D|TensorLike,\n numClasses: number): Tensor2D {\n const $labels = convertToTensor(labels, 'labels', 'confusionMatrix');\n const $predictions =\n convertToTensor(predictions, 'predictions', 'confusionMatrix');\n\n util.assert(\n numClasses == null || numClasses > 0 && Number.isInteger(numClasses),\n () => `If provided, numClasses must be a positive integer, ` +\n `but got ${numClasses}`);\n util.assert(\n $labels.rank === 1,\n () => `Expected the rank of labels to be 1, but got ${$labels.rank}`);\n util.assert(\n $predictions.rank === 1,\n () => `Expected the rank of predictions to be 1, ` +\n `but got ${$predictions.rank}`);\n util.assert(\n $labels.shape[0] === $predictions.shape[0],\n () => `Mismatch in the number of examples: ` +\n `${$labels.shape[0]} vs. ${$predictions.shape[0]}. ` +\n `Labels and predictions should have the same number of elements.`);\n util.assert(\n numClasses > 0 && Number.isInteger(numClasses),\n () => `numClasses is required to be a positive integer, but got ` +\n `${numClasses}`);\n // TODO(cais): In the future, if oneHot supports tensors inputs for\n // `numClasses`, `confusionMatrix` can make `numClasses` optional.\n\n const oneHotLabels = oneHot(cast($labels, 'int32'), numClasses) as Tensor2D;\n const oneHotPredictions =\n oneHot(cast($predictions, 'int32'), numClasses) as Tensor2D;\n const oneHotLabelsT: Tensor2D = transpose(oneHotLabels);\n const product: Tensor2D = matMul(oneHotLabelsT, oneHotPredictions);\n return cast(product, 'int32');\n}\n\nexport const confusionMatrix = op({confusionMatrix_});\n", "/**\n * @license\n * Copyright 2018 Google LLC. 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 *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\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 * =============================================================================\n */\n\n/**\n * Exports under the tf.math.* namespace.\n */\n\nimport {confusionMatrix} from './ops/confusion_matrix';\n\nexport {confusionMatrix};\n", "/**\n * @license\n * Copyright 2018 Google LLC. 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 *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\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 * =============================================================================\n */\n\nimport {Tensor3D} from '../tensor';\nimport {inferShape} from '../tensor_util_env';\nimport {TensorLike3D} from '../types';\nimport {DataType} from '../types';\nimport {assertNonNull} from '../util';\nimport {makeTensor} from './tensor_ops_util';\n\n/**\n * Creates rank-3 `tf.Tensor` with the provided values, shape and dtype.\n *\n * The same functionality can be achieved with `tf.tensor`, but in general\n * we recommend using `tf.tensor3d` as it makes the code more readable.\n *\n * ```js\n * // Pass a nested array.\n * tf.tensor3d([[[1], [2]], [[3], [4]]]).print();\n * ```\n * ```js\n * // Pass a flat array and specify a shape.\n * tf.tensor3d([1, 2, 3, 4], [2, 2, 1]).print();\n * ```\n *\n * @param values The values of the tensor. Can be nested array of numbers,\n * or a flat array, or a `TypedArray`.\n * @param shape The shape of the tensor. If not provided, it is inferred from\n * `values`.\n * @param dtype The data type.\n *\n * @doc {heading: 'Tensors', subheading: 'Creation'}\n */\nexport function tensor3d(\n values: TensorLike3D, shape?: [number, number, number],\n dtype?: DataType): Tensor3D {\n assertNonNull(values);\n if (shape != null && shape.length !== 3) {\n throw new Error('tensor3d() requires shape to have three numbers');\n }\n const inferredShape = inferShape(values, dtype);\n if (inferredShape.length !== 3 && inferredShape.length !== 1) {\n throw new Error(\n 'tensor3d() requires values to be number[][][] or flat/TypedArray');\n }\n if (inferredShape.length === 1 && shape == null) {\n throw new Error(\n 'tensor3d() requires shape to be provided when `values` ' +\n 'are a flat array');\n }\n return makeTensor(values, shape, inferredShape, dtype) as Tensor3D;\n}\n", "/**\n * @license\n * Copyright 2019 Google LLC. 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 *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\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 * =============================================================================\n */\n\nimport {ENGINE} from '../engine';\nimport {FromPixels, FromPixelsAttrs, FromPixelsInputs} from '../kernel_names';\nimport {getKernel, NamedAttrMap} from '../kernel_registry';\nimport {Tensor, Tensor2D, Tensor3D} from '../tensor';\nimport {NamedTensorMap} from '../tensor_types';\nimport {convertToTensor} from '../tensor_util_env';\nimport {PixelData, TensorLike} from '../types';\n\nimport {cast} from './cast';\nimport {op} from './operation';\nimport {tensor3d} from './tensor3d';\n\nlet fromPixels2DContext: CanvasRenderingContext2D;\n\n/**\n * Creates a `tf.Tensor` from an image.\n *\n * ```js\n * const image = new ImageData(1, 1);\n * image.data[0] = 100;\n * image.data[1] = 150;\n * image.data[2] = 200;\n * image.data[3] = 255;\n *\n * tf.browser.fromPixels(image).print();\n * ```\n *\n * @param pixels The input image to construct the tensor from. The\n * supported image types are all 4-channel. You can also pass in an image\n * object with following attributes:\n * `{data: Uint8Array; width: number; height: number}`\n * @param numChannels The number of channels of the output tensor. A\n * numChannels value less than 4 allows you to ignore channels. Defaults to\n * 3 (ignores alpha channel of input image).\n *\n * @doc {heading: 'Browser', namespace: 'browser', ignoreCI: true}\n */\nfunction fromPixels_(\n pixels: PixelData|ImageData|HTMLImageElement|HTMLCanvasElement|\n HTMLVideoElement,\n numChannels = 3): Tensor3D {\n // Sanity checks.\n if (numChannels > 4) {\n throw new Error(\n 'Cannot construct Tensor with more than 4 channels from pixels.');\n }\n if (pixels == null) {\n throw new Error('pixels passed to tf.browser.fromPixels() can not be null');\n }\n let isPixelData = false;\n let isImageData = false;\n let isVideo = false;\n let isImage = false;\n let isCanvasLike = false;\n if ((pixels as PixelData).data instanceof Uint8Array) {\n isPixelData = true;\n } else if (\n typeof (ImageData) !== 'undefined' && pixels instanceof ImageData) {\n isImageData = true;\n } else if (\n typeof (HTMLVideoElement) !== 'undefined' &&\n pixels instanceof HTMLVideoElement) {\n isVideo = true;\n } else if (\n typeof (HTMLImageElement) !== 'undefined' &&\n pixels instanceof HTMLImageElement) {\n isImage = true;\n // tslint:disable-next-line: no-any\n } else if ((pixels as any).getContext != null) {\n isCanvasLike = true;\n } else {\n throw new Error(\n 'pixels passed to tf.browser.fromPixels() must be either an ' +\n `HTMLVideoElement, HTMLImageElement, HTMLCanvasElement, ImageData ` +\n `in browser, or OffscreenCanvas, ImageData in webworker` +\n ` or {data: Uint32Array, width: number, height: number}, ` +\n `but was ${(pixels as {}).constructor.name}`);\n }\n if (isVideo) {\n const HAVE_CURRENT_DATA_READY_STATE = 2;\n if (isVideo &&\n (pixels as HTMLVideoElement).readyState <\n HAVE_CURRENT_DATA_READY_STATE) {\n throw new Error(\n 'The video element has not loaded data yet. Please wait for ' +\n '`loadeddata` event on the